/* Voice Mode: a full-screen conversation view in the current theme. */
/* Dictation and Voice Mode share the column the microphone had, so every composer grid keeps its layout. */
.input-row .composer-voice, body.keyboard-open .app .input-row .composer-voice { grid-row:2; grid-column:3; justify-self:end; display:flex; gap:4px; }
.composer-voice .mic[hidden] { display:none; }
/* Settings -> Personalization: the voice Voice Mode speaks with. */
.voice-settings { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.voice-settings > label { margin:0; color:var(--text); font-weight:600; }
.voice-settings > select { width:240px; max-width:100%; }
.voice-settings > .hint { flex-basis:100%; }
@media (max-width:640px) { .voice-settings { flex-direction:column; align-items:stretch; } .voice-settings > select { width:100%; } }
.voice-mode { position:fixed; inset:0; z-index:1200; display:grid; grid-template-rows:1fr auto; background:var(--bg); color:var(--text); animation:voice-in .18s ease-out; }
.voice-stage { display:grid; place-items:center; align-content:center; gap:28px; padding:24px 16px; min-height:0; }
.voice-canvas { width:240px; height:240px; color:var(--text); }
.voice-status { margin:0; color:var(--muted); font-size:15px; font-weight:550; min-height:22px; }
.voice-captions { display:grid; gap:10px; width:min(560px,100%); text-align:center; }
.voice-captions p { margin:0; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; }
.voice-user { color:var(--muted); font-size:14px; -webkit-line-clamp:2; }
.voice-assistant { color:var(--text); font-size:17px; line-height:1.5; -webkit-line-clamp:4; }
.voice-controls { display:flex; justify-content:center; gap:16px; padding:20px 16px calc(28px + env(safe-area-inset-bottom)); }
.voice-button { display:grid; justify-items:center; gap:6px; min-width:72px; padding:0; border:0; background:none; color:var(--muted); font:inherit; font-size:12.5px; cursor:pointer; }
.voice-button svg { box-sizing:content-box; width:22px; height:22px; padding:17px; border-radius:50%; background:var(--panel2,var(--soft)); color:var(--text); transition:background .15s, color .15s; }
.voice-button:hover svg { background:var(--line); }
.voice-button[aria-pressed=true] svg { background:var(--text); color:var(--bg); }
.voice-button.end svg { background:#d93025; color:#fff; }
.voice-button.end:hover svg { background:#b3261e; }
.voice-button:focus-visible { outline:none; }
.voice-button:focus-visible svg { outline:2px solid var(--text); outline-offset:3px; }
@keyframes voice-in { from { opacity:0; } }
@media (prefers-reduced-motion:reduce) { .voice-mode { animation:none !important; } }
@media (max-width:640px) { .voice-canvas { width:200px; height:200px; } .voice-assistant { font-size:16px; } }
