.voice-input-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:flex-end;gap:0;flex:none;width:34px;min-width:34px;height:34px;min-height:34px;padding:6px;border:1px solid transparent;border-radius:18px;background:transparent;color:var(--ui-text);cursor:pointer;transition:width .22s cubic-bezier(.2,.7,.2,1),gap .22s ease,background .15s,color .15s,opacity .15s;vertical-align:middle}.voice-input-button [data-voice-symbol]{display:grid;place-items:center;flex:none;width:20px;height:20px}.voice-input-button [data-voice-symbol]>svg{display:block;width:20px;height:20px}.voice-input-button:hover,.voice-input-button[data-voice-state=recording]{background:color-mix(in srgb,var(--ui-text) 8%,transparent)}.voice-input-button[data-voice-state=recording]{width:80px;gap:8px;border-color:color-mix(in srgb,var(--ui-text) 12%,transparent)}.voice-input-button[data-voice-state=preparing],.voice-input-button[data-voice-state=recognizing]{color:var(--ui-muted)}.voice-input-button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.voice-input-button:disabled{opacity:.4;cursor:default}
.voice-waveform{display:block;flex:none;width:0;overflow:hidden;opacity:0;color:var(--ui-text);transition:width .22s cubic-bezier(.2,.7,.2,1),opacity .15s ease}.voice-waveform svg{display:block;width:34px;height:20px}.voice-waveform rect{opacity:.6;transform-box:fill-box;transform-origin:center;transform:scaleY(.12);transition:transform 70ms linear}.voice-input-button[data-voice-state=recording] .voice-waveform{width:34px;opacity:1}
.channel-compose-actions{display:flex;flex:none;align-items:center;gap:8px;margin-left:auto}.channel-compose-actions>.channel-send{margin-left:0}.interaction-custom-row>.voice-input-button,.social-compose-row>.voice-input-button{align-self:flex-end;margin-bottom:3px}.interaction-poll-custom{display:flex;align-items:flex-end;gap:8px}.interaction-poll-custom>textarea{flex:1;min-width:0}
.voice-loading-icon{animation:voice-spin 1.4s linear infinite}.voice-loading-icon circle{stroke-dasharray:35 51;transform-origin:center;animation:voice-dash 1.4s ease-in-out infinite}
.voice-inline-error{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:8px;font-size:11px;line-height:1.6;color:var(--ui-muted)}.voice-inline-error>span{flex:1;min-width:160px}.voice-inline-error button{padding:3px 5px;border:0;background:transparent;color:var(--ui-accent);font:inherit;cursor:pointer}.question-dock .voice-inline-error{padding:0 12px 9px;margin:0}
.voice-recovery{position:fixed;right:20px;bottom:20px;z-index:120;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:16px;border:1px solid var(--ui-border);border-radius:14px;background:var(--ui-panel);color:var(--ui-text);box-shadow:0 12px 40px #0003;animation:voice-recover .18s ease-out}.voice-recovery p{margin:0 0 12px;font-size:12px;line-height:1.6}.voice-recovery textarea{width:100%;min-height:96px;padding:10px;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-input);color:var(--ui-text);font:inherit;font-size:12px;line-height:1.6}.voice-recovery>div{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.voice-recovery button{border:1px solid var(--ui-border);border-radius:7px;padding:7px 10px;background:var(--ui-soft);color:var(--ui-text);font:inherit;font-size:12px;cursor:pointer}
@keyframes voice-spin{to{transform:rotate(360deg)}}@keyframes voice-dash{0%{stroke-dasharray:1 85;stroke-dashoffset:0}50%{stroke-dasharray:60 26;stroke-dashoffset:-18}100%{stroke-dasharray:1 85;stroke-dashoffset:-85}}@keyframes voice-recover{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:520px){.channel-compose-actions{gap:6px}.voice-recovery{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.voice-loading-icon,.voice-loading-icon circle,.voice-recovery{animation:none}.voice-input-button,.voice-waveform,.voice-waveform rect{transition:none}}
[data-voice-announcement]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
