.voice-button[hidden],.voice-panel[hidden],.voice-actions button[hidden]{display:none!important}
.voice-button{position:relative!important;inset:auto!important;display:grid!important;place-items:center;padding:0!important;line-height:1!important}
.voice-button svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.voice-button:hover{border-color:color-mix(in srgb,var(--violet) 70%,var(--line))!important;color:var(--pink)!important}
.voice-button.recording{border-color:#f45f8f!important;background:linear-gradient(145deg,#7b1e43,#b32759)!important;color:#fff!important;box-shadow:0 0 0 4px #df3e7430,0 8px 24px #741d453f}
.voice-button.recording::after{content:"";position:absolute;inset:-5px;border:1px solid #f78cad80;border-radius:15px;animation:trejj-voice-ring 1.5s ease-out infinite}
.voice-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 9px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--violet) 42%,var(--line));border-radius:12px;background:linear-gradient(120deg,color-mix(in srgb,var(--panel2) 88%,#8b25a9),var(--panel));box-shadow:inset 0 1px 0 #ffffff09}
.voice-state{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;flex:1}
.voice-state>div{display:grid;min-width:0}
.voice-state strong{overflow:hidden;color:var(--text);font-size:13px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.voice-state small{overflow:hidden;color:var(--muted);font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.voice-state time{min-width:67px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:right}
.voice-orb{position:relative;display:grid;place-items:center;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--violet) 58%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--violet) 13%,var(--panel));color:var(--pink)}
.voice-orb::before,.voice-orb::after,.voice-orb i{content:"";display:block;width:2px;border-radius:3px;background:currentColor}
.voice-orb::before{height:9px}.voice-orb i{height:15px;margin:0 3px}.voice-orb::after{height:6px}
.voice-orb{grid-auto-flow:column;gap:3px}
.voice-panel[data-state=recording] .voice-orb{border-color:#f45f8f80;background:#c52d5c20;color:#ff7ca5}
.voice-panel[data-state=recording] .voice-orb::before{animation:trejj-voice-wave .8s ease-in-out infinite}
.voice-panel[data-state=recording] .voice-orb i{animation:trejj-voice-wave .8s .14s ease-in-out infinite}
.voice-panel[data-state=recording] .voice-orb::after{animation:trejj-voice-wave .8s .28s ease-in-out infinite}
.voice-panel[data-state=requesting] .voice-orb,.voice-panel[data-state=transcribing] .voice-orb{animation:trejj-voice-breathe 1.2s ease-in-out infinite}
.voice-panel[data-state=complete]{border-color:#48bd8370;background:linear-gradient(120deg,color-mix(in srgb,var(--panel) 92%,#48bd83),var(--panel))}
.voice-panel[data-state=complete] .voice-orb{border-color:#48bd8380;background:#48bd8318;color:#48bd83}
.voice-panel[data-state=error]{border-color:#f06a8480;background:linear-gradient(120deg,color-mix(in srgb,var(--panel) 91%,#9d2543),var(--panel))}
.voice-panel[data-state=error] .voice-orb{border-color:#f06a8480;background:#f06a8418;color:#f06a84}
.voice-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}
.voice-actions button{position:static!important;width:auto!important;height:34px!important;padding:0 11px!important;border:1px solid var(--line)!important;border-radius:9px!important;background:var(--panel2)!important;color:var(--text)!important;font:inherit;font-size:11px!important;font-weight:800;white-space:nowrap;cursor:pointer}
.voice-actions #voiceFinish{border-color:transparent!important;background:linear-gradient(135deg,#8b25ac,#c44cff)!important;color:#fff!important}
.voice-actions button:hover{border-color:var(--violet)!important}
.composer.sending .voice-panel{opacity:.46;pointer-events:none}
html[data-theme=light] .voice-panel{box-shadow:inset 0 1px 0 #fff,0 8px 22px #4a1a5d0b}
@keyframes trejj-voice-ring{0%{opacity:.8;transform:scale(.88)}75%,100%{opacity:0;transform:scale(1.12)}}
@keyframes trejj-voice-wave{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1.15);opacity:1}}
@keyframes trejj-voice-breathe{50%{filter:brightness(1.35);transform:scale(.92)}}
@media(max-width:760px){.voice-panel{align-items:stretch;gap:9px;margin-bottom:7px;padding:8px}.voice-state{grid-template-columns:30px minmax(0,1fr) auto;gap:7px}.voice-orb{width:29px;height:29px;border-radius:9px}.voice-actions button{height:31px!important;padding:0 9px!important}.voice-state time{min-width:61px;font-size:10px}}
@media(max-width:520px){.voice-panel{display:grid}.voice-actions{justify-content:flex-end}.voice-state small{white-space:normal}.voice-actions button{min-width:76px}.voice-button svg{width:18px;height:18px}}
@media(max-width:390px){.composer.voice-capable .tool-button,.composer.voice-capable .send-button{flex-basis:34px;width:34px!important;height:36px!important}.composer.voice-capable .composer-row{gap:4px}.voice-state{grid-template-columns:28px minmax(0,1fr)}.voice-state time{grid-column:2;text-align:left}.voice-orb{grid-row:1/3}.voice-state strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.voice-button.recording::after,.voice-panel .voice-orb,.voice-panel .voice-orb::before,.voice-panel .voice-orb::after,.voice-panel .voice-orb i{animation:none!important}}
@media(forced-colors:active){.voice-button.recording,.voice-panel,.voice-orb,.voice-actions button{border:1px solid ButtonText!important;box-shadow:none}.voice-actions #voiceFinish{background:Highlight!important;color:HighlightText!important}}
