.dialogue-composer.s3-voice-probe, .consultant-chat form.s3-voice-probe { grid-template-columns: minmax(0, 1fr) 48px; }
.dialogue-composer.s3-voice-probe textarea, .consultant-chat form.s3-voice-probe textarea { width: 100%; height: 100px; min-height: 100px; max-height: 100px; }
.s3-voice-actions { display: flex; flex-direction: column; gap: 4px; width: 48px; height: 100px; }
.s3-voice-actions button { display: grid; place-items: center; flex: 0 0 auto; width: 48px; margin: 0; padding: 0; align-self: auto; }
.s3-voice-actions .s3-voice-mic { height: 44px; border: 1px solid #c3955c; border-radius: 14px; background: #243243; color: #f0b76b; }
.s3-voice-mic svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.s3-voice-actions .s3-voice-mic.is-recording { border-color: #ff857c; background: #643139; color: #ffaaa2; }
.s3-voice-mic.is-recording svg { display: none; }
.s3-voice-mic.is-recording::after { content: '■'; font-size: 19px; }
.s3-voice-actions .s3-voice-send { height: 52px; }
.dialogue-stage .dialogue-list, .s3-dialogue-stage .dialogue-list, .consultant-chat .consultant-history { min-height: 0; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; touch-action: pan-y; }
.s3-voice-status { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 18px; padding: 0 2px; color: #f4dec0; font: 600 11px/1.25 Inter,sans-serif; }
.s3-voice-status[hidden] { display: none; }
.s3-voice-status.is-transcribing span { color: #f3a39b; animation: s3-transcription-pulse 1.15s ease-in-out infinite; }
.s3-voice-status button { appearance: none; width: auto; height: auto; min-height: 18px; padding: 0; border: 0; background: none; color: #ecc080; font: inherit; }
.s3-voice-mic.is-transcribing { animation: s3-voice-pulse 1.25s ease-in-out infinite; box-shadow: 0 0 0 0 rgba(240,183,107,.5); }
@keyframes s3-transcription-pulse { 0%,100% { opacity: 1; text-shadow: 0 0 3px rgba(243,130,120,.15); } 50% { opacity: .5; text-shadow: 0 0 11px rgba(243,130,120,.75); } }
@keyframes s3-voice-pulse { 0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(240,183,107,.4); } 50% { opacity: .55; box-shadow: 0 0 0 5px rgba(240,183,107,0); } }
@media (prefers-reduced-motion: reduce) { .s3-voice-status.is-transcribing span, .s3-voice-mic.is-transcribing { animation: none; } }
