/* Custom styles beyond Tailwind */
html, body {
  height: 100%;
}

.pb-safe {
  padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}

/* Message bubbles */
.msg-user {
  background: linear-gradient(135deg, #7c3aed 0%, #4f46e5 100%);
}

.msg-ai {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* Source chips */
.source-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.6rem;
  border-radius: 9999px;
  background: rgba(139, 92, 246, 0.15);
  border: 1px solid rgba(139, 92, 246, 0.25);
  font-size: 0.7rem;
  color: #c4b5fd;
  text-decoration: none;
  transition: background 0.15s;
}
.source-chip:hover {
  background: rgba(139, 92, 246, 0.25);
}

/* Loading dots */
.loading-dots span {
  animation: blink 1.4s infinite both;
}
.loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.loading-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes blink {
  0%, 80%, 100% { opacity: 0.2; }
  40% { opacity: 1; }
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }

textarea {
  field-sizing: content;
}
