/* Голосовое общение: распознавание речи (STT) и озвучка (TTS). */

/* Кнопка микрофона: нажал → говоришь → отпустил */
.mic-button {
  padding: 2px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #f8fafc;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.4;
  transition: background 0.2s, border-color 0.2s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.mic-button:hover:not(:disabled) {
  background: #e0f2fe;
  border-color: #38bdf8;
}

.mic-button:active {
  transform: translateY(1px);
}

.mic-button.recording {
  background: #dc2626;
  border-color: #b91c1c;
  color: #fff;
  animation: pulse 1s infinite;
}

.mic-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

/* Кнопка «Прослушать» у ответов Director AI / GEM */
.speak-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border: 1px solid #a7f3d0;
  border-radius: 6px;
  background: #ecfdf5;
  color: #047857;
  font-size: 12px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}

.speak-btn:hover:not(:disabled) {
  background: #d1fae5;
  border-color: #34d399;
}

.speak-btn:disabled {
  opacity: 0.6;
  cursor: progress;
}

/* Статус распознавания рядом с полем ввода */
.voice-status {
  font-size: 12px;
  color: #64748b;
}

.voice-status.listening {
  color: #dc2626;
  font-weight: 600;
}

.voice-status.error {
  color: #dc2626;
}

/* ---------- Тёмная тема: светлые плашки голосового интерфита ---------- */

html[data-theme="dark"] .mic-button {
  background: var(--npc-surface);
  border-color: var(--npc-border);
  color: var(--npc-text);
}

html[data-theme="dark"] .mic-button:hover:not(:disabled) {
  background: var(--npc-hover);
  border-color: #38bdf8;
}

html[data-theme="dark"] .speak-btn {
  background: rgba(16, 185, 129, 0.16);
  border-color: rgba(52, 211, 153, 0.45);
  color: #6ee7b7;
}

html[data-theme="dark"] .speak-btn:hover:not(:disabled) {
  background: rgba(16, 185, 129, 0.28);
  border-color: #34d399;
}

html[data-theme="dark"] .voice-status {
  color: var(--npc-muted);
}

html[data-theme="dark"] .voice-status.listening,
html[data-theme="dark"] .voice-status.error {
  color: #fca5a5;
}

/* Уважаем системную настройку «уменьшить движение» */
@media (prefers-reduced-motion: reduce) {
  .mic-button.recording {
    animation: none;
  }
}