:root{font-family:Inter,system-ui,sans-serif;color:#FFFFFF;background:#0A0A0F;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 10%,#0A0A0F00,transparent 55%);min-height:100vh}main{max-width:1040px;margin:auto;padding:32px 24px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:64px}.brand{font-size:14px;letter-spacing:3px;font-weight:800}.badge{font-size:12px;border:1px solid #555563;padding:8px 12px;border-radius:30px;color:#BEBEC9}.eyebrow{color:#BEBEC9;font-size:13px;letter-spacing:1px}h1{font-size:clamp(42px,7vw,72px);line-height:1.05;letter-spacing:-2px;margin:20px 0}.intro{color:#BEBEC9;line-height:1.7;font-size:18px}form{max-width:420px;margin-top:32px}label{display:block;font-size:13px;color:#BEBEC9;margin:20px 0}input{display:block;width:100%;border:1px solid #555563;background:#16161D;border-radius:12px;padding:16px;margin-top:8px;font-size:16px;color:white}input:focus{outline:2px solid #00D1FF}button{border:0;background:#00D1FF;color:#0A0A0F;border-radius:12px;padding:15px 20px;font-size:15px;font-weight:700;cursor:pointer;min-height:48px}button:disabled{opacity:.5;cursor:wait}form button{width:100%;display:flex;justify-content:space-between}.hint,footer{font-size:12px;line-height:1.7;color:#BEBEC9}footer{margin-top:44px}#status{color:#BEBEC9;font-size:14px;min-height:22px;margin-top:24px}.room-title{display:flex;align-items:center;justify-content:space-between}.room-title h1{font-size:40px}#people{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.person{position:relative;min-height:240px;border:1px solid #555563;background:#16161D;border-radius:20px;overflow:hidden;display:flex;align-items:center;justify-content:center}.person.speaking{border:2px solid #00D1FF}.avatar{font-size:52px;color:#BEBEC9}.person video{width:100%;height:100%;position:absolute;object-fit:cover}.person .label{position:absolute;bottom:12px;left:12px;border-radius:8px;background:#0A0A0Fc9;padding:8px 12px;font-size:13px}nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}nav button{background:#292932;color:#FFFFFF}nav .danger{background:#75383f}button:focus-visible{outline:3px solid white;outline-offset:3px}[hidden]{display:none!important}@media(min-width:800px){#welcome{position:relative}#welcome form{position:absolute;right:0;top:0;width:42%}#welcome{min-height:410px}}@media(max-width:480px){main{padding:24px 20px}header{margin-bottom:40px}.brand{font-size:12px}#people{grid-template-columns:1fr}.person{min-height:220px}nav button{flex:1 1 42%}}
body.in-call{background:#0A0A0F;overflow:hidden}body.in-call main{max-width:none;padding:0}body.in-call header,body.in-call footer{display:none}body.in-call #call{position:fixed;inset:0;display:flex;flex-direction:column;height:100dvh;padding-top:env(safe-area-inset-top)}body.in-call .room-title{flex:none;padding:12px 20px;background:#16161D;gap:16px}body.in-call .room-title h1{font-size:16px;letter-spacing:0;margin:0}body.in-call #count{font-size:12px;color:#BEBEC9}body.in-call #people{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:1;min-height:0;padding:12px;overflow:auto}body.in-call .person{flex:0 0 100px;width:160px;min-height:0;border-radius:12px;z-index:2;cursor:pointer;box-shadow:0 3px 14px #0008}body.in-call .person.featured{position:absolute;inset:0;width:100%;height:100%;border-radius:0;z-index:1;box-shadow:none;border:0}body.in-call .person video{object-fit:contain;background:#0A0A0F}body.in-call .person.camera-off video{visibility:hidden}body.in-call .person .label{font-size:11px;bottom:6px;left:6px;padding:5px 8px;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.in-call .person.featured .label{bottom:14px;left:14px;font-size:14px}body.in-call .person.speaking{outline:2px solid #00D1FF;outline-offset:-2px}body.in-call nav{flex:none;justify-content:center;gap:8px;margin:0;padding:12px 12px calc(36px + env(safe-area-inset-bottom));background:#16161D;z-index:3}body.in-call nav button{font-size:13px;padding:12px 15px;flex:0 1 auto}body.in-call #status{position:fixed;bottom:env(safe-area-inset-bottom);left:8px;right:8px;text-align:center;font-size:11px;margin:0;padding:6px;z-index:4;pointer-events:none;min-height:24px}body.in-call #people.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-auto-rows:minmax(160px,1fr);overflow:auto;align-items:stretch}body.in-call #people.gallery .person{position:relative;inset:auto;width:100%;height:100%;min-height:160px;border-radius:12px}body.in-call .person:focus-visible{outline:3px solid white;outline-offset:-3px}@media(max-width:600px){body.in-call .person{width:104px;flex-basis:138px}body.in-call #people{gap:8px;padding:8px}body.in-call nav{gap:6px}body.in-call nav button{font-size:12px;padding:10px;min-height:44px}body.in-call #people.gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(180px,1fr)}}@media(max-height:500px) and (orientation:landscape){body.in-call .room-title{padding:6px 16px}body.in-call nav{padding-top:6px;padding-bottom:28px}body.in-call .person{width:130px;flex-basis:80px}}
/* Compact bottom dock and draggable self preview. */
body.in-call .room-title{position:absolute;top:0;left:0;right:0;z-index:3;padding:8px 14px;background:linear-gradient(#0009,transparent);pointer-events:none}body.in-call .room-title h1{font-size:12px}body.in-call #people{padding-top:32px;margin-bottom:calc(64px + env(safe-area-inset-bottom))}body.in-call nav{position:absolute;bottom:0;left:0;right:0;flex-wrap:nowrap;gap:6px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));height:calc(64px + env(safe-area-inset-bottom));align-items:center}body.in-call nav button{padding:10px;width:44px;height:44px;min-width:36px;min-height:44px;flex:0 1 44px;border-radius:50%;display:flex;align-items:center;justify-content:center}nav button svg{width:22px;height:22px;flex-shrink:0}body.in-call nav button.off{background:#FFFFFF;color:#292932}body.in-call nav .danger{background:#d43d4f;color:white}body.in-call #people:not(.gallery) .person.self:not(.featured){position:absolute;z-index:4;width:110px;height:146px;flex:none;touch-action:none;user-select:none;cursor:grab}body.in-call #people:not(.gallery) .person.self:not(.featured):active{cursor:grabbing}body.in-call #status{bottom:calc(68px + env(safe-area-inset-bottom));left:8px;right:8px;color:white;text-shadow:0 1px 4px #000;pointer-events:none}body.in-call #status:empty{display:none}body.in-call .person .label{pointer-events:none}@media(min-width:700px){body.in-call #people:not(.gallery) .person.self:not(.featured){width:170px;height:120px}}@media(max-height:500px){body.in-call #people:not(.gallery) .person.self:not(.featured){width:120px;height:80px}}

body.in-call nav button.selected{background:#00D1FF;color:#0A0A0F}body.in-call nav{gap:3px}body.in-call nav button{min-width:32px;padding:8px}@media(max-width:360px){body.in-call nav{gap:2px;padding-left:2px;padding-right:2px}body.in-call nav button{min-width:30px;padding:5px}}

#welcome form{position:static;width:100%;max-width:440px;margin:24px 0}#welcome{min-height:0}#auth{display:flex;flex-wrap:wrap;gap:24px}#auth .hint{flex-basis:100%}#lobby{max-width:660px}select{display:block;width:100%;padding:16px;border:1px solid #555563;background:#16161D;color:white;border-radius:12px;font-size:16px;margin-top:8px}details{margin:24px 0;border-top:1px solid #555563;padding-top:16px}summary{cursor:pointer}#room-owner button,#logout,#accept-invite{margin:6px 6px 6px 0}#account-status{color:#BEBEC9}#invite-link{font-size:13px}

.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.member-row button{font-size:12px;flex-shrink:0}.member-row span{overflow-wrap:anywhere}
/* One-screen workspace: navigation stays visible, long lists scroll inside panels. */
body:not(.in-call){height:100dvh;min-height:0;overflow:hidden}
body:not(.in-call) main{height:100%;max-width:820px;padding:16px 24px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
body:not(.in-call) header{margin:0;min-height:38px;flex-shrink:0}
body:not(.in-call) #welcome{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#welcome h2{font-size:22px;letter-spacing:-.5px;margin:4px 0 14px}
#welcome #lobby{max-width:none;flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
.workspace-tabs{margin:0;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:5px;flex:none;padding:5px;border:1px solid #292932;background:#16161D;border-radius:16px}
.workspace-tabs button{padding:10px 6px;min-height:44px;background:transparent;color:#BEBEC9;font-size:14px;border-radius:11px}
.workspace-tabs button[aria-selected=true]{background:#00D1FF;color:#0A0A0F}
.workspace-panel{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px;background:#16161D;border:1px solid #292932;border-radius:18px;scrollbar-width:thin}
#welcome form{width:100%;max-width:none;margin:0;position:static}
#welcome label{margin:0 0 12px;font-size:13px}
#welcome input,#welcome select{padding:11px 12px;min-height:44px;margin-top:6px;border-radius:10px;background:#16161D}
#welcome button{min-height:44px;padding:10px 14px}
#welcome form button{display:inline-flex;justify-content:center;margin:3px 0;width:100%}
#welcome .secondary,#logout,#revoke-invites{background:#292932;color:#FFFFFF}
#welcome #join .secondary{width:calc(50% - 4px);font-size:13px}
#welcome #joinButton{margin-top:12px;min-height:48px}
#welcome .hint{line-height:1.5;margin:8px 0 12px}
#welcome .room-picker{margin:0;padding:0 2px}
#welcome details{margin:0;border:0;padding:0}
#welcome summary{font-weight:700;margin-bottom:12px}
#welcome #room-owner button{margin:4px 4px 4px 0}
.subtabs{display:flex;gap:5px;margin-bottom:16px}
.subtabs button{flex:1;background:#292932;color:#BEBEC9;font-size:13px}
.subtabs button[aria-pressed=true]{background:#555563;color:#fff;box-shadow:inset 0 -2px #00D1FF}
#room-access-note{padding:12px;border:1px solid #555563;border-radius:10px}
#account-status{flex:none;margin:6px 2px 0;font-size:13px;line-height:1.4;max-height:70px;overflow:auto}
#account-status:empty{display:none}
body:not(.in-call) #status{margin:0;min-height:0;max-height:50px;overflow:auto;font-size:13px}
body:not(.in-call) #status:empty{display:none}
body:not(.in-call) footer{flex:none;text-align:center;margin:0;font-size:11px;line-height:1.3}
#auth{flex:1;min-height:0;overflow:auto;align-content:center;justify-content:center;gap:12px;padding:24px;max-width:440px;width:100%;margin:auto}
#auth .hint{margin:0!important}
#signed-in{font-size:14px;color:#BEBEC9;margin:0 0 18px}
#empty-rooms{font-size:13px;margin:0}
@media(min-width:700px){#panel-users form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}#panel-users form button,#panel-users form .hint{grid-column:1/-1}#panel-account form{max-width:460px}#panel-join form{max-width:520px;margin:auto}#panel-join h2{max-width:520px;margin:4px auto 16px}}
@media(max-width:480px){body:not(.in-call) main{padding:10px 12px calc(8px + env(safe-area-inset-bottom));gap:8px}.workspace-panel{padding:14px}.workspace-tabs button{font-size:13px}#welcome h2{font-size:20px;margin-bottom:10px}#auth{padding:14px}.brand{letter-spacing:2px}.badge{padding:6px 9px}#welcome #lobby{gap:8px}}
@media(max-height:650px){body:not(.in-call) footer{display:none}body:not(.in-call) main{gap:6px;padding-top:6px}body:not(.in-call) header{min-height:30px}#welcome h2{font-size:18px;margin-bottom:8px}.workspace-panel{padding:10px 14px}#welcome label{margin-bottom:8px}#welcome .hint{margin:6px 0;font-size:12px}}
#welcome #new-meeting-key{margin-right:4px}

#welcome .delete-action{background:#8b3443;color:white;margin-top:14px}#panel-room .subtabs button{padding:10px 7px;font-size:12px}

#moderation-dialog{color:#FFFFFF;background:#16161D;border:1px solid #555563;border-radius:18px;width:min(94vw,520px);max-height:88dvh;padding:20px;overflow:auto}#moderation-dialog::backdrop{background:#0009}.moderation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.moderation-heading h2{font-size:20px;margin:0}.moderation-heading button{background:#292932;color:white}.toggle-row{display:flex;align-items:center;gap:12px;margin:18px 0 8px;font-size:16px}.toggle-row input{width:22px;height:22px;margin:0;accent-color:#00D1FF}.moderation-person{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;border-top:1px solid #555563}.moderation-person span{flex:1 1 100%;overflow-wrap:anywhere}.moderation-person button{font-size:13px;padding:10px;min-height:44px}#meeting-controls-call{position:absolute;right:12px;top:48px;z-index:6;width:44px;height:44px;padding:10px;border-radius:50%;background:#292932;color:white}#meeting-controls-call svg{width:24px;height:24px}#meeting-controls-call.has-waiting{outline:3px solid #00D1FF}#moderation-status{font-size:13px;color:#00D1FF}

body.in-call nav #meeting-controls-call{position:static;z-index:auto;width:44px;height:44px;padding:8px;flex:0 1 44px}body.in-call nav{overflow-x:auto;justify-content:safe center}body.in-call nav button{flex-shrink:1}#cancel-waiting{background:#292932;color:white}

@media(max-width:360px){body.in-call nav{gap:1px}body.in-call nav button{min-width:28px}body.in-call nav #meeting-controls-call{padding:5px}}

#guest-entry{max-width:460px;width:100%;margin:auto;overflow:auto;padding:18px}#guest-entry h2{margin-top:0}#guest-link{font-size:12px}#guest-link-output{margin-top:12px;border-top:1px solid #555563;padding-top:12px}#cancel-guest-link{margin-top:12px;background:#292932;color:white}

#guest-link-status{color:#ffd1b9;line-height:1.6;font-size:15px}#guest-link-status:empty{display:none}

#moderation-dialog #create-guest-link{margin-top:16px;width:100%}#moderation-dialog #guest-link-output{padding-bottom:10px}#moderation-dialog #copy-guest-link{width:100%}

#call-quality-dialog{color:#FFFFFF;background:#16161D;border:1px solid #555563;border-radius:18px;width:min(94vw,520px);max-height:85dvh;padding:20px;overflow:auto}#call-quality-dialog::backdrop{background:#0009}#quality-results{white-space:pre-line;line-height:1.6;font-size:14px}#call-quality-dialog button{min-height:44px}

#audio-output-dialog{color:#FFFFFF;background:#16161D;border:1px solid #555563;border-radius:18px;width:min(94vw,520px);max-height:85dvh;padding:20px;overflow:auto}#audio-output-dialog::backdrop{background:#0009}#audio-output-dialog button{min-height:44px;margin-top:8px}#audio-output-status{line-height:1.5}
/* Three primary destinations; compact, expandable settings. */
.workspace-tabs button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px}
.workspace-tabs svg{width:23px;height:23px}
#welcome .settings-group{margin:8px 0;border:1px solid #292932;border-radius:12px;padding:0;background:#16161D}
#welcome .settings-group>summary{padding:14px;margin:0;min-height:48px;list-style-position:inside;font-size:14px}
#welcome .settings-group> :not(summary){margin:0;padding:12px}
#welcome .settings-group>form{padding:12px}
#panel-users{background:none;border:0;overflow:visible}
#moderation-dialog,#call-quality-dialog{position:fixed;inset:70px 14px auto auto;margin:0;width:min(380px,calc(100vw - 28px));max-height:calc(100dvh - 150px);box-shadow:0 12px 40px #0005;z-index:8}
body.in-call.tools-open #people{margin-right:400px}
body.in-call #moderation-dialog,body.in-call #call-quality-dialog{top:48px;bottom:80px;max-height:none}
@media(max-width:650px){body.in-call.tools-open #people{margin-right:0;margin-bottom:calc(48dvh + 70px + env(safe-area-inset-bottom))}body.in-call #moderation-dialog,body.in-call #call-quality-dialog{top:auto;bottom:calc(68px + env(safe-area-inset-bottom));right:8px;width:calc(100vw - 16px);height:48dvh;max-height:48dvh;padding:14px}#moderation-dialog,#call-quality-dialog{max-height:70dvh}}

body.in-call .room-title{gap:6px;flex-wrap:wrap}#awake-state{font-size:10px;color:#BEBEC9}#mini-call{pointer-events:auto;min-height:36px;height:36px;width:36px;padding:6px;background:#292932;color:white;border-radius:10px;margin-left:auto}#mini-call svg{width:24px;height:24px}#mini-call.selected{background:#00D1FF;color:#0A0A0F}@media(max-width:400px){body.in-call .room-title h1{display:none}body.in-call .room-title .badge{font-size:10px;padding:5px 6px}body.in-call #count{font-size:10px}}

body.in-call #extra-call-controls{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;border:1px solid #555563;border-radius:18px;background:#16161D;max-width:calc(100vw - 12px);box-shadow:0 5px 20px #0005}body.in-call #extra-call-controls button{flex:0 1 40px;min-width:32px;margin:0}body.in-call #more-call[aria-expanded=true]{background:#00D1FF;color:#0A0A0F}body.in-call nav{gap:8px}body.in-call #extra-call-controls #mini-call{pointer-events:auto}
body.in-call nav{overflow:visible}
/* Room / RoboHiTec 2027: approved flat RH identity. */
:root{background:#0A0A0F;color:#FFFFFF}body{background:radial-gradient(ellipse at 80% 0,#0A0A0F00,transparent 60%),#0A0A0F}
.brand{display:flex;align-items:center;gap:10px;font-size:25px;letter-spacing:-1px;font-weight:750}.brand img{border-radius:10px;object-fit:contain}.badge{color:#BEBEC9;border-color:#555563}
button{background:#00D1FF;color:#fff}button:focus-visible{outline-color:#FFFFFF}
.workspace-tabs{background:#16161D;border-color:#555563}.workspace-tabs button[aria-selected=true]{background:#00D1FF;color:white}.workspace-panel{background:#16161D;border-color:#555563}
#welcome input,#welcome select{background:#16161D;border-color:#555563}input:focus{outline-color:#00D1FF}
#welcome .settings-group{background:#16161D;border-color:#555563}#welcome .secondary,#logout,#revoke-invites{background:#292932;color:#FFFFFF}
.meeting-home-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.meeting-home-heading h2{margin:0!important}#welcome #home-new-meeting{font-size:12px;min-height:38px;padding:9px 12px;border-radius:10px;background:#292932;color:#FFFFFF}#welcome #joinButton{background:#00D1FF;color:white;border-radius:12px;font-size:16px}
body.in-call nav{background:#0A0A0F}body.in-call nav button.selected,body.in-call #more-call[aria-expanded=true],#mini-call.selected{background:#00D1FF;color:white}body.in-call .person.speaking{outline-color:#00D1FF}
#moderation-dialog,#call-quality-dialog{background:#16161D;border-color:#555563}#account-status{color:#BEBEC9}
@media(max-width:360px){.meeting-home-heading h2{font-size:20px!important}#welcome #home-new-meeting{padding:8px;font-size:11px}}

#app-update{align-self:flex-end;padding:.35rem .65rem;font-size:.8rem;width:auto;flex-shrink:0}

/* Edge-to-edge stage; controls never reserve camera space. */
body.in-call #call{padding-top:0}
body.in-call #people{margin-bottom:0;padding-top:calc(42px + env(safe-area-inset-top));padding-bottom:calc(76px + env(safe-area-inset-bottom))}
body.in-call #people:not(.gallery) .person.featured video{object-fit:contain}
body.in-call .room-title{padding-top:calc(8px + env(safe-area-inset-top))}
body.in-call nav{background:linear-gradient(transparent,#0A0A0Fcc)}
body.in-call #call nav,body.in-call #call .room-title,body.in-call #call .person .label{transition:opacity .2s}
body.in-call #call.controls-hidden nav,body.in-call #call.controls-hidden .room-title,body.in-call #call.controls-hidden .person .label{opacity:0;visibility:hidden;pointer-events:none}
body.in-call #call.controls-hidden .person.speaking{outline:none}
@media(prefers-reduced-motion:reduce){body.in-call #call nav,body.in-call #call .room-title,body.in-call #call .person .label{transition:none}}

/* Core brand accents use carbon text for readable contrast on cyan. */
:root{--brand-carbon:#0A0A0F;--brand-cyan:#00D1FF;--brand-white:#FFFFFF}
body{background:var(--brand-carbon)}
button,.workspace-tabs button[aria-selected=true],#welcome #joinButton,body.in-call nav button.selected,body.in-call #more-call[aria-expanded=true],#mini-call.selected{color:var(--brand-carbon)}
.brand{gap:8px;letter-spacing:-.8px}.brand img{width:48px;height:48px;border-radius:0;flex-shrink:0}.brand-name{display:flex;flex-direction:column;gap:2px;line-height:1.05}.brand-name small{font-size:11px;letter-spacing:.3px;font-weight:500;color:var(--brand-white)}
#welcome input,#welcome select{border-color:#686875}
a{color:var(--brand-white);text-decoration-color:var(--brand-cyan);text-underline-offset:3px}
input[type=checkbox]{accent-color:var(--brand-cyan)}

/* Call duration and microphone state remain compact on phone screens. */
#call-timer{font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap;color:#FFFFFF}
.person .mute-badge{position:absolute;right:8px;bottom:8px;z-index:6;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#0A0A0F;color:#FFFFFF;border:1px solid #686875;pointer-events:none}
.person .mute-badge[hidden]{display:none}.mute-badge svg{width:18px;height:18px}
.person.camera-off .mute-badge{top:calc(50% + 22px);left:calc(50% + 22px);bottom:auto;right:auto}
.person.mic-muted .label{max-width:calc(100% - 44px)}

/* One compact connection entry; transient feedback never covers call controls. */
#connection-badge{font-size:12px;min-height:32px;padding:4px 8px;white-space:nowrap;color:var(--brand-cyan)}
#connection-badge[data-quality=poor],#connection-badge[data-quality=lost]{color:#ffb366}
.reaction-buttons,.feedback-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.reaction-buttons button{font-size:24px;min-width:44px;min-height:44px}
#feedback-notice{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);z-index:40;max-width:min(90vw,480px);padding:10px 14px;border-radius:12px;background:#161620;color:white;border:1px solid #00D1FF;overflow-wrap:anywhere;display:flex;gap:8px;align-items:center}
#feedback-notice[hidden]{display:none}#feedback-heard{white-space:nowrap}.feedback-tools p{overflow-wrap:anywhere}#feedback-result{min-height:1.5em}

#connection-badge{pointer-events:auto;background:#161620;border:1px solid #555563}

#feedback-notice{z-index:100}

.reaction-buttons{flex-wrap:nowrap}.reaction-buttons button{flex:1;min-width:0;padding:8px 0}

/* Compact workspace and reactions: expand details only when needed. */
#feedback-result:empty{display:none}
#call-quality-dialog .moderation-heading{margin-bottom:8px}
#call-quality-dialog .feedback-tools label{margin:6px 0;font-size:12px}
#call-quality-dialog .feedback-tools select{margin-top:4px;padding:8px;min-height:40px}
#call-quality-dialog .feedback-actions{flex-wrap:nowrap}
#call-quality-dialog .feedback-actions button{flex:1;padding:10px 6px;font-size:13px}
#call-quality-dialog details:not([open]){margin-top:8px}
#welcome .workspace-panel{padding-top:8px}
#welcome .workspace-panel h2{font-size:20px;margin:8px 0}
#welcome .settings-group{margin:8px 0}
#welcome p:empty{display:none}
@media(max-width:600px){
 #welcome{padding:12px}
 #welcome .workspace-tabs{margin:8px 0}
 #welcome label{margin-top:8px}
 #welcome input,#welcome select{padding:10px;min-height:44px}
 #welcome .hint{font-size:12px;line-height:1.35;margin:6px 0}
 #call nav{gap:6px}
}

/* Participant health stays compact; tapping the tile reveals its status. */
.person .connection-state{position:absolute;top:10px;right:10px;z-index:7;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#161620;color:#7ee0a2;font-size:14px;cursor:pointer}
.person .connection-state[data-state=connected]{background:#16162080;font-size:10px}
.person .connection-state[data-state=poor],.person .connection-state[data-state=interrupted]{color:#ffb366}
.person .connection-state[data-state=lost],.person .connection-state[data-state=reconnecting]{color:#ff8585}
.person .connection-state[data-state=unknown]{color:#b9b9c4}
.person .connection-caption{position:absolute;top:44px;right:10px;z-index:8;padding:6px 9px;background:#161620;color:white;border-radius:8px;font-size:12px;max-width:90%;pointer-events:none}
.person .connection-caption[hidden]{display:none}

#audio-state{font-size:12px;color:#ffcf8a}#audio-state:empty{display:none}

/* Reactions sit over the sender's avatar/video without blocking controls. */
.person .profile-reaction{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:9;display:grid;place-items:center;font-size:clamp(28px,6vw,56px);line-height:1.2;padding:8px;border-radius:50%;background:#161620d9;box-shadow:0 4px 18px #0006;pointer-events:none}

/* One-line emoji picker above the main call controls. */
#call nav #reaction-tray{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);display:flex;flex-wrap:nowrap;gap:4px;margin:0;padding:6px;border:1px solid #555563;border-radius:28px;background:#161620;max-width:calc(100vw - 20px);box-shadow:0 5px 20px #0006}
#call nav #reaction-tray[hidden]{display:none}
#call nav #reaction-tray button{flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;font-size:26px;line-height:1}
#call nav #reaction-tray button:hover,#call nav #reaction-tray button:focus-visible{background:#343442}

/* Mirror only the local front-camera display, never the published track. */
.person.self.mirror-preview video{transform:scaleX(-1)}
