/* Voice controls share the composer surface and keep 44px touch targets. */
#btn-voice { display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 10px; border-radius: 12px; border-color: transparent; background: transparent; color: #bfcbea; }
#btn-voice:hover { background: #30344b; }
#btn-voice.recording { color: #ffe4ea; border-color: #a75d71; background: #6e3447; }
.voice-preferences { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 12px; padding: 0 6px; color: #b5bfd4; }
.voice-preferences label { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; cursor: pointer; font-size: 12px; }
.voice-preferences input { width: 17px; height: 17px; accent-color: var(--accent); }
.voice-preferences .voice-preference-help { font-size: 11px; color: #99a7bf; }
.voice-draft { padding: 10px; margin: 2px 3px 8px; border: 1px solid #50526d; border-radius: 12px; background: #181e2a; }
.voice-draft-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 12px; }
.voice-draft-title { display: inline-flex; align-items: center; gap: 8px; color: #e4e5ff; font-size: 13px; font-weight: 600; }
.voice-draft button, .voice-listen { min-height: 44px; min-width: 44px; padding: 8px 12px; font-size: 12px; }
.voice-draft-actions { display: flex; gap: 8px; margin-top: 8px; }
.voice-primary { color: #eeeaff; border-color: #7572a6; background: #3d3b5e; }
.voice-discard { color: #c7bfd1; background: transparent; border-color: transparent; }
.voice-timer { color: #f4dbe4; font-size: 13px; font-variant-numeric: tabular-nums; }
.voice-record-dot { width: 8px; height: 8px; border-radius: 50%; background: #fa819a; box-shadow: 0 0 0 4px #fa819a20; animation: voice-pulse 1.4s ease-in-out infinite; }
.voice-player { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; width: 100%; min-width: 0; margin-top: 6px; }
.voice-player audio { flex: 1 1 170px; width: 170px; min-width: 0; max-width: 100%; height: 46px; color-scheme: dark; }
.voice-speed { flex: none; }
.voice-speed select { min-height: 44px; min-width: 55px; padding: 7px 5px; color: #e7e9f4; border: 1px solid #4c566d; border-radius: 8px; background: #242d3e; font: inherit; font-size: 12px; }
.voice-help, .voice-feedback, .voice-notice { display: block; margin: 6px 0 0; font-size: 11px; line-height: 1.5; color: #abb9d3; overflow-wrap: anywhere; }
.voice-notice { padding: 0 6px 6px; }
.voice-error { color: #f3b3a6; font-size: 12px; line-height: 1.5; }
.voice-message { width: min(100%, 370px); margin-top: 10px; }
.voice-message-label { display: block; color: #c4cee3; font-size: 11px; }
.voice-listen { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-color: #3d475e; background: #1d2636; color: #c9d6ed; }
.voice-listen .ui-icon { width: 17px; height: 17px; }
@keyframes voice-pulse { 50% { opacity: .45; } }
@media (max-width: 820px) {
  .voice-preferences { padding: 0 3px; }
  .voice-preferences label { font-size: 11px; }
  .voice-preference-help { display: none; }
  .voice-draft { padding: 8px; }
  .voice-message { width: 100%; max-width: 350px; }
}
@media (prefers-reduced-motion: reduce) { .voice-record-dot { animation: none; } }
