/* Integrated voice view keeps the existing sidebar and conversation shell. */
#voice-panel[hidden],#voice-settings[hidden]{display:none!important}
body #send-button.is-voice,html[data-theme="light"] body #send-button.is-voice{background:#df6628;color:#fff}
#send-button .composer-voice-icon{display:none;width:22px;height:22px;fill:none}
#send-button.is-voice .composer-voice-icon{display:block}
#send-button.is-voice > .icon{display:none}
body.voice-active #main-scroll{visibility:hidden;pointer-events:none}
body.voice-active #composer-group{visibility:hidden;pointer-events:none}
body.voice-active #mode-switch,body.voice-active #header-home-actions,body.voice-active #header-chat-actions{visibility:hidden}
body.voice-active #topbar{visibility:hidden}
#voice-panel{--voice-surface:#1c1c1c;--voice-ink:#eee;position:absolute;inset:0;bottom:auto;height:var(--voice-height,100%);z-index:21;background:#000;color:var(--voice-ink);display:flex;flex-direction:column;padding:16px clamp(16px,4vw,48px) max(20px,env(safe-area-inset-bottom));}
.voice-top{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex:none;height:30px}
.voice-top button,.voice-icon{border:0;display:grid;place-items:center;background:transparent;color:inherit;border-radius:50%;width:36px;height:36px;cursor:pointer}
.voice-top button:hover,.voice-icon:hover{background:#303030}
.voice-top #voice-captions-toggle svg,.voice-top #voice-settings-toggle svg,.voice-mic svg{fill:none}
.voice-sidebar{display:none!important}
.voice-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;padding:48px 0 32px;gap:18px;overflow:hidden}
.voice-orb{flex:none;position:relative;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle at 32% 86%,#fff9f5 0%,#ffeae4 21%,#ffc2b5 44%,#f98b74 70%,#ff9c87 100%);box-shadow:inset -5px 2px 12px #e577631c;transform:scale(calc(1 + var(--voice-level,0) * .16));transition:transform .09s ease,filter .3s ease;overflow:hidden}
.voice-orb:after{content:"";position:absolute;inset:-24%;border-radius:42%;background:radial-gradient(ellipse at 65% 70%,#fff7eeab,transparent 50%);animation:voice-flow 6s linear infinite}
#voice-panel[data-state="speaking"] .voice-orb:after{animation-duration:2s}
#voice-panel[data-state="connecting"] .voice-orb{animation:voice-connect 1.5s ease-in-out infinite}
#voice-panel[data-state="muted"] .voice-orb{filter:saturate(.35);transform:scale(.96)}
.voice-status{height:20px;margin:0;color:#a0a0a0;font-size:13px;text-align:center}
.voice-caption{width:min(680px,100%);max-height:28vh;overflow-y:auto;text-align:center;font-size:18px;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap;scrollbar-width:thin}
.voice-caption:empty{display:none}
.voice-footer{width:min(768px,100%);margin:0 auto;flex:none}
.voice-composer{display:flex;align-items:center;gap:8px;background:var(--voice-surface);border:1px solid #282828;border-radius:28px;padding:7px 8px 7px 18px}
.voice-composer input{min-width:0;flex:1;background:transparent;border:0;outline:none;color:inherit;font-size:15px;padding:7px 0}
.voice-composer input::placeholder{color:#949494}
.voice-composer button:disabled{opacity:.45;cursor:default}
.voice-mic{background:#303030}.voice-mic[aria-pressed="true"]{color:#ffb7a7}
.voice-end{background:#dc6429;color:#fff}.voice-end:hover{background:#ee773b}
.voice-note{margin:8px 0 0;text-align:center;font-size:11px;color:#888}
#voice-settings{position:absolute;top:58px;right:24px;width:min(320px,calc(100% - 32px));padding:18px;background:#242424;border:1px solid #3d3d3d;border-radius:18px;box-shadow:0 16px 48px #0005;z-index:2}
#voice-settings label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;margin-bottom:14px}
#voice-settings label:last-child{margin-bottom:0}
#voice-settings select{max-width:180px;padding:7px;border-radius:8px;border:1px solid #444;background:#303030;color:#eee}
#voice-settings p{font-size:12px;color:#aaa;line-height:1.6;margin:10px 0}
.voice-retry{border:1px solid #454545;border-radius:20px;padding:7px 16px;color:inherit;background:transparent}
.voice-icon:focus-visible,.voice-top button:focus-visible,#send-button.is-voice:focus-visible,.voice-retry:focus-visible,.voice-orb:focus-visible{outline:2px solid #ff9c87;outline-offset:3px}
@keyframes voice-flow{to{transform:rotate(360deg)}}@keyframes voice-connect{50%{opacity:.6;transform:scale(.96)}}
html[data-theme="light"] #voice-panel{background:#fff;--voice-surface:#f4f4f4;--voice-ink:#222}
html[data-theme="light"] .voice-composer{border-color:#e3e3e3}html[data-theme="light"] .voice-mic{background:#e6e6e6}
html[data-theme="light"] .voice-top button:hover{background:#eee}
html[data-theme="light"] .voice-status,html[data-theme="light"] .voice-note,html[data-theme="light"] #voice-settings p{color:#646464}
html[data-theme="light"] .voice-composer input::placeholder{color:#707070}
html[data-theme="light"] #voice-settings{background:#fff;border-color:#ddd}html[data-theme="light"] #voice-settings select{background:#f4f4f4;color:#222;border-color:#ddd}
@media(max-width:766px){#voice-panel{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.voice-sidebar{display:grid!important;margin-right:auto}.voice-stage{padding-bottom:36px}.voice-orb{width:110px;height:110px}.voice-caption{font-size:16px;max-height:35vh}#voice-settings{right:16px}.voice-note{font-size:10px}}
@media(max-height:500px){.voice-stage{padding:10px 0}.voice-orb{width:64px;height:64px}.voice-caption{max-height:18vh}}
#voice-panel[data-compact="true"] .voice-stage{padding:10px 0}#voice-panel[data-compact="true"] .voice-orb{width:64px;height:64px}#voice-panel[data-compact="true"] .voice-caption{max-height:90px}
/* Expanded view is purely visual: listening and speech playback keep running. */
.voice-orb{cursor:pointer;transition:width .35s ease,height .35s ease,transform .09s ease,filter .3s ease}
#voice-panel[data-expanded="true"] .voice-stage{justify-content:center}
#voice-panel[data-expanded="true"] .voice-orb{width:min(280px,45vw,38dvh);height:min(280px,45vw,38dvh)}
#voice-panel[data-compact="true"][data-expanded="true"] .voice-orb{width:min(160px,35vw,28dvh);height:min(160px,35vw,28dvh)}
@media(prefers-reduced-motion:reduce){.voice-orb,.voice-orb:after{animation:none!important;transition:none!important}}
