.voice-control { position:fixed; right:16px; bottom:max(12px,env(safe-area-inset-bottom)); z-index:1080; display:flex; flex-direction:column; align-items:flex-end; gap:8px; max-width:calc(100vw - 24px); }
.voice-control button { min-height:48px; padding:10px 14px; border:2px solid #173858; border-radius:10px; font-size:1rem; font-weight:650; line-height:1.3; }
.voice-control .voice-button { width:auto; height:auto; min-width:145px; color:white; background:#123252; box-shadow:0 3px 10px #0003; }
.voice-control .voice-button.listening { background:#a71929; animation:none; }
.voice-toolbar { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; max-width:520px; }
.voice-tool { color:#102c47; background:#fff; }
.voice-control [hidden] { display:none !important; }
.voice-control button:focus-visible { outline:4px solid #f6bc35; outline-offset:3px; }
.voice-status { width:min(480px,calc(100vw - 32px)); max-height:30vh; overflow-y:auto; color:white; background:#122c45; padding:16px; border-radius:12px; font-size:1.05rem; line-height:1.55; box-shadow:0 4px 18px #0004; }
.voice-help { width:min(500px,calc(100vw - 32px)); max-height:60vh; overflow:auto; padding:18px; color:#152c43; background:white; border:2px solid #173858; border-radius:12px; font-size:1rem; line-height:1.5; box-shadow:0 4px 18px #0003; }
.voice-confirm-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
#voiceConfirmButton { background:#123252; color:white; }
#voiceCancelButton { background:white; color:#123252; }
.voice-current-field { outline:4px solid #126c98 !important; outline-offset:3px; scroll-margin-block:120px; }
.voice-control .d-none { display:none !important; }
input, textarea, .voice-status, .voice-help { -webkit-user-select:text; user-select:text; }
body:has(.voice-control) { padding-bottom:180px; }
@media (max-width:575px) {
    .voice-control { right:10px; left:10px; max-width:none; }
    .voice-toolbar { max-width:100%; }
    .voice-control button { padding:9px 11px; }
    .voice-status { max-height:27vh; }
    body:has(.voice-control) { padding-bottom:230px; }
}
