
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes rainbow {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.message {
  animation: fadeIn 0.3s ease-out;
}

.bot {
  position: relative;
}

.bot:not(:last-child) {
  margin-bottom: 1.5rem;
}

.user:not(:last-child) {
  margin-bottom: 1.5rem;
}
.bot::after {
  content: "";
  position: absolute;
  left: -8px;
  top: 0;
  width: 8px;
  height: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M8 12V0H0l8 12z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat;
  background-size: contain;
  filter: drop-shadow(1px 0 1px rgba(0,0,0,0.1));
}

.dark .bot::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M8 12V0H0l8 12z' fill='%231e293b'/%3E%3C/svg%3E");
  filter: drop-shadow(1px 0 1px rgba(0,0,0,0.2));
}
.user::before {
  content: "";
  position: absolute;
  right: -8px;
  top: 0;
  width: 8px;
  height: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M0 0v12h8L0 0z' fill='%23a855f7'/%3E%3C/svg%3E") no-repeat;
  background-size: contain;
  filter: drop-shadow(-1px 0 1px rgba(0,0,0,0.1));
}
@keyframes pulse {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

.thinking {
  position: relative;
  display: inline-block;
}

.thinking::after {
  content: "...";
  position: absolute;
  animation: pulse 1.5s infinite;
}
textarea {
  min-height: 60px;
  max-height: 200px;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.empty i {
  animation: rainbowPulse 2s infinite;
}

@keyframes rainbowPulse {
  0% { filter: drop-shadow(0 0 5px rgba(168,85,247,0.5)); }
  25% { filter: drop-shadow(0 0 5px rgba(236,72,153,0.5)); }
  50% { filter: drop-shadow(0 0 5px rgba(59,130,246,0.5)); }
  75% { filter: drop-shadow(0 0 5px rgba(16,185,129,0.5)); }
  100% { filter: drop-shadow(0 0 5px rgba(168,85,247,0.5)); }
}
/* Smooth scrolling */
main {
  scroll-behavior: smooth;
}