/* Microphone states from the delivered design. Audio starts only after the
   disclosure and browser permission, never during boot. */
.description-wrap {grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s-6)}
.app-shell .description-wrap .description {grid-row:1;min-width:0;width:100%}
.voice-button {width:48px;min-width:48px;height:48px;border:1px solid var(--v2-control-border);border-radius:var(--r-circle);background:var(--v2-control-surface);color:var(--v2-control-ink);display:grid;place-items:center;padding:var(--s-6);cursor:pointer}
.voice-button svg {width:20px;height:20px}
.voice-button:disabled {opacity:.55;cursor:not-allowed}
.voice-button.recording {background:linear-gradient(var(--v2-hero-shade),var(--v2-hero-shade)),var(--rec);animation:ut-mic 1.3s ease-in-out infinite}
@keyframes ut-mic {0%,100%{box-shadow:0 0 0 0 var(--red-soft)}50%{box-shadow:0 0 0 8px var(--red-soft)}}
.voice-status {grid-column:1 / -1;margin:0;padding:var(--s-5) var(--s-8);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--v2-hero-label-surface);color:var(--v2-control-ink)}
.voice-status:empty {display:none}
#voiceReviewOpen {grid-column:1 / -1;justify-self:start;min-height:44px;padding:var(--s-6) var(--s-8);border:1px solid var(--v2-control-border);border-radius:var(--r-pill);background:var(--v2-hero-label-surface);color:var(--v2-control-ink);cursor:pointer}
#voiceReviewOpen[hidden] {display:none!important}
#voiceConsentDialog,#voiceReviewDialog {max-width:calc(100vw - 32px);color:var(--ink);font-family:var(--font)}
.voice-dialog-card {width:min(480px,calc(100vw - 32px));padding:var(--s-12);border:1px solid var(--glass-brd);border-radius:var(--r-4xl);background:var(--glass-2);backdrop-filter:var(--glass-blur);box-shadow:var(--sh)}
.voice-dialog-card h2 {font-size:var(--fs-2xl);margin-top:0;color:var(--ink)}
.voice-dialog-card p {color:var(--ink2);font-size:var(--fs-lg);line-height:1.6}
.voice-dialog-card button {min-height:44px;padding:var(--s-6) var(--s-8);border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--btn);color:var(--ink);font-family:var(--font);cursor:pointer}
.voice-dialog-card button:last-child {background:var(--acc);color:var(--on-acc)}
.voice-dialog-actions {display:flex;flex-wrap:wrap;gap:var(--s-8);justify-content:flex-end}
#voiceReviewText {width:100%;min-height:120px;padding:var(--s-8);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);color:var(--ink);font-family:var(--font);font-size:var(--fs-lg);resize:vertical}
#voiceReviewError {color:var(--red-ink)}
#voiceConsentDialog :focus-visible,#voiceReviewDialog :focus-visible {outline:3px solid var(--ink);outline-offset:3px}
@media(max-width:760px) {.description-wrap {gap:var(--s-4)}.voice-dialog-card {padding:var(--s-10)}}
@media(prefers-reduced-motion:reduce) {.voice-button.recording {animation:none}.voice-button {transition:none}}

.app-shell .timer-card.running .voice-button:not(.recording) {background:var(--v2-hero-label-surface)}
