.composer-entry { display:flex; align-items:flex-start; gap:9px; min-width:0; padding-bottom:7px; }
.composer-entry #composerInput { flex:1; min-width:0; padding:8px 0; }
.composer-entry [hidden] { display:none !important; }
.voice-icon-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 36px; width:36px; height:36px; padding:8px; color:var(--muted,#64748b); background:transparent; border:0; border-radius:10px; cursor:pointer; font:inherit; font-size:23px; }
.voice-icon-button:hover,.voice-settings[open] summary { background:rgba(59,130,246,.08); color:var(--ink,#334155); }
.voice-icon-button:focus-visible,.voice-hold-button:focus-visible { outline:2px solid #547ff0; outline-offset:3px; }
.voice-icon-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.voice-icon-button .voice-keyboard-icon { display:none; }
.is-voice-mode .voice-mic-icon { display:none; }
.is-voice-mode .voice-keyboard-icon { display:block; }
.voice-input-panel { flex:1; min-width:0; text-align:center; }
.voice-hold-button { width:100%; min-height:46px; border:1px solid rgba(133,157,196,.23); border-radius:12px; background:rgba(99,131,184,.07); color:var(--ink,#24334b); font:inherit; font-size:14px; font-weight:600; letter-spacing:.05em; cursor:pointer; touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
.voice-hold-button[aria-pressed="true"] { background:rgba(59,130,246,.13); border-color:#80a8f7; }
.voice-hold-button:disabled { opacity:.55; cursor:default; }
.voice-hint { display:block; margin-top:6px; color:var(--muted,#8391a5); font-size:11px; letter-spacing:.04em; }
.voice-settings { position:relative; flex:0 0 36px; }
.voice-settings summary { list-style:none; }
.voice-settings summary::-webkit-details-marker { display:none; }
.voice-settings-popover { position:absolute; bottom:calc(100% + 12px); right:0; width:230px; padding:17px; border:1px solid rgba(139,161,195,.23); border-radius:16px; background:var(--panel,#fff); box-shadow:0 12px 40px rgba(30,50,90,.16); z-index:12; color:var(--ink,#24334b); font-size:13px; }
.voice-settings-popover>strong { font-size:11px; color:var(--muted,#8391a5); font-weight:500; }
.voice-read-toggle { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:15px; cursor:pointer; }
.voice-read-toggle small { display:block; margin-top:5px; color:var(--muted,#8391a5); font-size:11px; }
.voice-read-toggle input { appearance:none; width:34px; height:20px; border:0; border-radius:12px; background:#c6cfdb; position:relative; cursor:pointer; flex-shrink:0; }
.voice-read-toggle input::after { content:''; position:absolute; width:14px; height:14px; top:3px; left:3px; border-radius:50%; background:#fff; transition:transform .15s; }
.voice-read-toggle input:checked { background:#4778eb; }
.voice-read-toggle input:checked::after { transform:translateX(14px); }
.voice-playback-stop { color:#4778eb; }
.voice-feedback { position:absolute; bottom:calc(100% + 18px); left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:10px; width:min(340px,calc(100vw - 48px)); padding:25px 16px 22px; border-radius:24px; background:#e9f0ff; border:1px solid #c3d4ff; color:#345a9f; box-shadow:0 18px 55px rgba(35,64,120,.16); pointer-events:none; text-align:center; z-index:15; }
.voice-feedback[hidden] { display:none; }
.voice-feedback strong { font-size:17px; font-weight:600; }
#voiceStatus { font-size:12px; }
#voiceGestureHint { font-size:12px; opacity:.75; }
.voice-recording-mark { height:34px; display:flex; align-items:center; gap:5px; margin-bottom:3px; }
.voice-recording-mark span { height:16px; width:5px; border-radius:4px; background:currentColor; animation:voice-pulse .8s ease-in-out infinite alternate; }
.voice-recording-mark span:nth-child(2n) { height:30px; animation-delay:-.3s; }
.voice-recording-mark span:nth-child(3) { height:23px; animation-delay:-.6s; }
.voice-feedback.is-cancelling { background:#fff0f1; border-color:#f5c0c6; color:#ac3445; }
.voice-feedback.is-processing .voice-recording-mark span { animation:none; height:8px; }
@keyframes voice-pulse { to { transform:scaleY(.45); } }
html[data-theme="dark"] .voice-settings-popover { background:#192437; }
html[data-theme="dark"] .voice-feedback { background:#192e51; border-color:#375c8f; color:#c6dbff; }
html[data-theme="dark"] .voice-feedback.is-cancelling { background:#4a2330; border-color:#7e3f51; color:#ffd6dc; }
@media(max-width:600px) { .composer-entry { gap:5px; } .voice-icon-button,.voice-settings { flex-basis:32px; width:32px; } .voice-input-panel { padding-top:0; } .voice-hold-button { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .voice-recording-mark span { animation:none; } .voice-read-toggle input::after { transition:none; } }

.is-voice-mode #sendButton { display:none; }
