#voice-dock {
    position:fixed; left:max(8px,env(safe-area-inset-left)); bottom:max(8px,env(safe-area-inset-bottom));
    z-index:120; display:grid; grid-template-columns:auto auto; gap:6px; align-items:center;
    max-width:min(410px,calc(100vw - 68px)); padding:7px; border:1px solid rgba(255,255,255,.2);
    border-radius:15px; background:rgba(8,13,25,.88); box-shadow:0 8px 28px rgba(0,0,0,.38);
    backdrop-filter:blur(10px); color:#fff;
}
#voice-dock[hidden] { display:none; }
#voice-toggle,#voice-mute {
    min-height:38px; border:1px solid rgba(255,255,255,.18); border-radius:10px; padding:7px 10px;
    background:rgba(255,255,255,.1); color:#fff; font:800 12px/1.15 inherit; cursor:pointer;
}
#voice-toggle[aria-pressed="true"] { background:#22a965; color:#071c12; }
#voice-mute[aria-pressed="true"] { background:#d98c22; color:#251704; }
#voice-toggle:disabled { opacity:.48; cursor:not-allowed; }
#voice-status { grid-column:1/-1; color:#cbd7e8; font-size:11px; line-height:1.25; text-align:left; }
#voice-status[data-kind="ok"] { color:#8ff0b9; }
#voice-status[data-kind="warn"] { color:#ffd27d; }
#voice-status[data-kind="error"] { color:#ffaaa4; }
#voice-people { grid-column:1/-1; display:flex; gap:5px; max-width:100%; overflow-x:auto; scrollbar-width:none; }
#voice-people:empty { display:none; }
.voice-person { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border-radius:999px; background:rgba(255,255,255,.08); color:#dbe5f1; font-size:10px; font-weight:750; }
.voice-person i { width:7px; height:7px; border-radius:50%; background:#8290a5; box-shadow:0 0 0 2px rgba(130,144,165,.15); }
.voice-person.speaking i { background:#49e58c; box-shadow:0 0 0 3px rgba(73,229,140,.22); }
.voice-person.muted { opacity:.62; }
.voice-person.muted i { background:#d98c22; }
@media (max-width:520px) {
    #voice-dock { grid-template-columns:1fr auto; max-width:calc(100vw - 54px); padding:6px; }
    #voice-toggle,#voice-mute { min-height:36px; padding:6px 8px; }
}
@media (prefers-reduced-motion:reduce) { #voice-dock * { transition:none!important; } }
