/* Voice Input — microphone button + status styles */

.voice-mic-btn {
  transition: color 0.2s, transform 0.2s;
}

.voice-mic-btn:hover {
  color: #7c3aed !important;
  transform: translateY(-50%) scale(1.1) !important;
}

.voice-mic-btn.listening {
  color: #ef4444 !important;
  animation: pulse-mic 1s infinite;
}

@keyframes pulse-mic {
  0%, 100% {
    transform: translateY(-50%) scale(1);
    box-shadow: none;
  }
  50% {
    transform: translateY(-50%) scale(1.15);
    box-shadow: 0 0 0 6px rgba(239, 68, 68, 0.2);
  }
}

.voice-status {
  animation: voice-fade-in 0.3s ease;
  min-height: 1em;
}

@keyframes voice-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .voice-mic-btn,
  .voice-mic-btn:hover,
  .voice-mic-btn.listening {
    animation: none !important;
    transform: translateY(-50%) !important;
    transition: none !important;
  }
  .voice-status {
    animation: none !important;
  }
}
