/* Connected meeting room. The header, the video stage and the control bar each
   own their space, so no control ever covers a video; a tile only carries a
   compact name tag. This sheet loads last and is the single source of the
   connected-room look (and of the partner entry screen that precedes it);
   the other meeting sheets keep their own components. */
/* Line icons used as CSS masks, so they follow the button colour. */
:root{--i-mic:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203a3%203%200%200%200-3%203v6a3%203%200%200%200%206%200V6a3%203%200%200%200-3-3Z%22%2F%3E%3Cpath%20d%3D%22M19%2011a7%207%200%200%201-14%200M12%2018v3%22%2F%3E%3C%2Fsvg%3E");--i-mic-off:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203l18%2018M9%209v3a3%203%200%200%200%205.1%202.1M15%209.3V6a3%203%200%200%200-5.7-1.3%22%2F%3E%3Cpath%20d%3D%22M19%2011a7%207%200%200%201-1.2%203.9M5%2011a7%207%200%200%200%2010.9%205.8M12%2018v3%22%2F%3E%3C%2Fsvg%3E");--i-cam:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%2010l5-3v10l-5-3%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%226%22%20width%3D%2212%22%20height%3D%2212%22%20rx%3D%222.5%22%2F%3E%3C%2Fsvg%3E");--i-cam-off:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203l18%2018M15%2010l5-3v10l-3-1.8M10.5%206H13a2%202%200%200%201%202%202v2.5M15%2015.5V16a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%201.5-1.9%22%2F%3E%3C%2Fsvg%3E");--i-share:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%222.5%22%2F%3E%3Cpath%20d%3D%22M12%2014V8M9%2010.5%2012%207.5l3%203M8%2021h8%22%2F%3E%3C%2Fsvg%3E");--i-hand:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%2013V5.5a1.5%201.5%200%200%201%203%200V11M11%2010V4.5a1.5%201.5%200%200%201%203%200V11M14%2010.5V6a1.5%201.5%200%200%201%203%200v8a7%207%200%200%201-12.4%204.4L3%2015.8a1.6%201.6%200%200%201%202.4-2L8%2016%22%2F%3E%3C%2Fsvg%3E");--i-more:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h.01M12%2012h.01M19%2012h.01%22%20stroke-width%3D%223%22%2F%3E%3C%2Fsvg%3E");--i-leave:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2020H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h3M16%2016.5l4.5-4.5L16%207.5M20.5%2012H9.5%22%2F%3E%3C%2Fsvg%3E");--i-users:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2020v-1a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v1%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M22%2020v-1a4%204%200%200%200-3-3.9M16%204.6a3.5%203.5%200%200%201%200%206.8%22%2F%3E%3C%2Fsvg%3E");--i-chat:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2012a8%208%200%200%201-11.8%207L4%2020l1.1-4.4A8%208%200%201%201%2021%2012Z%22%2F%3E%3C%2Fsvg%3E");--i-grid:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227.5%22%20height%3D%227.5%22%20rx%3D%221.5%22%2F%3E%3Crect%20x%3D%2213.5%22%20y%3D%223%22%20width%3D%227.5%22%20height%3D%227.5%22%20rx%3D%221.5%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2213.5%22%20width%3D%227.5%22%20height%3D%227.5%22%20rx%3D%221.5%22%2F%3E%3Crect%20x%3D%2213.5%22%20y%3D%2213.5%22%20width%3D%227.5%22%20height%3D%227.5%22%20rx%3D%221.5%22%2F%3E%3C%2Fsvg%3E");--i-full:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%209V4h5M20%209V4h-5M4%2015v5h5M20%2015v5h-5%22%2F%3E%3C%2Fsvg%3E");--i-collapse:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%204v5H4M15%204v5h5M9%2020v-5H4M15%2020v-5h5%22%2F%3E%3C%2Fsvg%3E");--i-pin:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%204h6l-1%206%203%203H7l3-3-1-6ZM12%2013v7%22%2F%3E%3C%2Fsvg%3E");--i-headphones:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2015v-3a8%208%200%200%201%2016%200v3%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%224%22%20height%3D%226%22%20rx%3D%221.5%22%2F%3E%3Crect%20x%3D%2217%22%20y%3D%2214%22%20width%3D%224%22%20height%3D%226%22%20rx%3D%221.5%22%2F%3E%3C%2Fsvg%3E");--i-chev:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2015l6-6%206%206%22%2F%3E%3C%2Fsvg%3E");--i-chev-down:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%2010l5%205%205-5%22%2F%3E%3C%2Fsvg%3E");--i-check:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012.5l4.5%204.5L19%207.5%22%2F%3E%3C%2Fsvg%3E");--i-invite:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%2020v-1a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v1%22%2F%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M19%208v6M16%2011h6%22%2F%3E%3C%2Fsvg%3E");--i-x:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%206l12%2012M18%206%206%2018%22%2F%3E%3C%2Fsvg%3E");--i-file:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%203H7a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V8Z%22%2F%3E%3Cpath%20d%3D%22M14%203v5h5M9%2013h6M9%2017h4%22%2F%3E%3C%2Fsvg%3E");--i-smile:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M8.5%2014.5a4.5%204.5%200%200%200%207%200M9%209.5h.01M15%209.5h.01%22%2F%3E%3C%2Fsvg%3E")}
body.is-connected{
 --room-bg:#0d0f12;--surface:#16191e;--surface-2:#1f232a;--surface-3:#2a2f37;--surface-4:#353b45;--line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.14);
 --text:#f3f5f7;--muted:#9aa4b1;--accent:#2fd3b5;--accent-strong:#5fe0c8;--accent-ink:#03241d;--accent-soft:rgba(47,211,181,.14);
 --danger:#ef4444;--danger-strong:#dc2626;--danger-soft:#3a1d22;--danger-text:#fca5a5;--warn:#f5b748;
 --header-h:60px;--toolbar-h:84px;--pad:12px;--gap:8px;--radius:14px;--live-panel-width:360px;--live-camera-fit:contain;--focus-ring:#8fe9d7;
 --mobile-header:var(--header-h);--mobile-toolbar:var(--toolbar-h);
 margin:0;padding:0;height:100dvh;overflow:hidden;background:var(--room-bg);color:var(--text);
 font-family:Inter,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased
}
body.is-connected .meeting-app{max-width:none;margin:0;padding:0;width:100%;height:100dvh;overflow:hidden}
body.is-connected :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
body.is-connected button{font-family:inherit;cursor:pointer}
body.is-connected button:disabled{cursor:default}
body.is-connected button:hover:enabled{filter:none}

/* Header: the meeting on the left, quiet tools on the right. */
body.is-connected .room-header{position:fixed;inset:0 0 auto;height:var(--header-h);display:flex;align-items:center;gap:12px;padding:0 var(--pad) 0 calc(var(--pad) + 4px);background:var(--room-bg);border:0;z-index:20;opacity:1;transform:none;transition:none}
body.is-connected:has(#host-record-banner:not([hidden])) .room-header{padding-right:var(--pad)}
body.is-connected .room-header .brand{flex:none;display:grid;place-items:center;width:34px;height:34px;padding:0;border-radius:10px;font-size:0;letter-spacing:0;line-height:0;color:var(--accent-ink);background:linear-gradient(140deg,#4fe6c9,#169a82);text-decoration:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
body.is-connected .room-header .brand::before{content:'V';font-size:17px;line-height:1;font-weight:800;letter-spacing:-.02em}
body.is-connected .room-header .brand span{display:none}
body.partner-embedded.is-connected .room-header .brand{pointer-events:none}
body.is-connected .room-header>div:not(#live-header-actions){flex:1;min-width:0}
body.is-connected #meeting-title{display:flex;align-items:center;min-width:0;margin:0;font-size:15px;font-weight:650;line-height:1.3;letter-spacing:-.005em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-connected #title-info-toggle{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:0;margin:0 0 0 -6px;padding:2px 6px;border:0;border-radius:7px;background:transparent;color:inherit;font:inherit;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-connected #title-info-toggle:hover{background:var(--surface-2)}
body.is-connected #title-info-toggle::after{content:'';flex:none;width:16px;height:16px;background:var(--muted);-webkit-mask:var(--i-chev-down) center/contain no-repeat;mask:var(--i-chev-down) center/contain no-repeat}
body.is-connected #status{margin:1px 0 0;font-size:12.5px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-connected.is-reconnecting #status{color:var(--warn)}
body.is-connected #account-badge{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.is-connected .header-home{display:none}
#live-header-actions{display:flex;align-items:center;gap:8px;flex:none}
body.is-connected .room-header :is(#copy-invite,#live-display,#live-fullscreen){position:relative;display:grid;place-items:center;width:40px;height:40px;min-width:0;max-width:none;min-height:0;padding:0;font-size:0;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--text)}
body.is-connected .room-header :is(#copy-invite,#live-display,#live-fullscreen):hover{background:var(--surface-2)}
body.is-connected .room-header :is(#copy-invite,#live-display,#live-fullscreen)::before{content:'';width:19px;height:19px;background:currentColor;-webkit-mask:var(--icon,var(--i-more)) center/contain no-repeat;mask:var(--icon,var(--i-more)) center/contain no-repeat}
body.is-connected #copy-invite{--icon:var(--i-invite)}
body.is-connected #live-display{--icon:var(--i-grid)}
body.is-connected #live-display[aria-expanded=true]{background:var(--surface-2);border-color:rgba(47,211,181,.5);color:var(--accent-strong)}
body.is-connected #live-fullscreen{--icon:var(--i-full)}
body.is-connected #live-fullscreen[aria-pressed=true]{--icon:var(--i-collapse)}

/* Tooltips repeat the hidden button text on pointer devices. */
body.is-connected :is(#meeting-toolbar,.room-header) button[data-tip]:not([aria-expanded=true]):is(:hover,:focus-visible)::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;top:auto;right:auto;transform:translateX(-50%);width:max-content;max-width:260px;height:auto;margin:0;padding:6px 10px;border:0;border-radius:8px;background:#000;color:#fff;font-size:12px;line-height:1.3;font-weight:500;letter-spacing:0;text-align:center;white-space:nowrap;pointer-events:none;z-index:30;box-shadow:0 8px 20px rgba(0,0,0,.45)}
body.is-connected .room-header button[data-tip]:is(:hover,:focus-visible)::after{bottom:auto;top:calc(100% + 8px);left:auto;right:0;transform:none}
body.is-connected #meeting-toolbar-side button[data-tip]:is(:hover,:focus-visible)::after{left:auto;right:0;transform:none}
@media(hover:none){body.is-connected :is(#meeting-toolbar,.room-header) button[data-tip]:is(:hover,:focus-visible)::after{display:none}}

/* Stage: a padded area between the header and the control bar. */
body.is-connected #room-layout{position:fixed;top:var(--header-h);bottom:var(--toolbar-h);left:0;right:0;display:block;margin:0;padding:0}
body.is-connected #meeting-stage{position:absolute;top:0;bottom:0;left:var(--pad);right:var(--pad);min-height:0;height:auto;max-width:none;padding:0;border:0;border-radius:0;background:transparent}
body.is-connected .room-layout.with-panel #meeting-stage{right:calc(var(--live-panel-width) + var(--pad) * 2)}
body.is-connected #meeting-stage>.stage-heading,body.is-connected #meeting-stage>.stage-options,body.is-connected #presentation-status,body.is-connected #workspace-tabs{display:none}
body.is-connected #videos{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--gallery-columns,1),minmax(0,1fr))!important;grid-template-rows:var(--live-gallery-template,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--gap);padding:0;min-height:0;overflow:hidden;background:transparent}
body.is-connected #videos[data-sharing=true]{inset:0}
body.is-connected #video-empty{position:absolute;inset:0;margin:0;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--muted)}
body.is-connected #video-empty .empty-icon{color:var(--accent)}
body.is-connected #video-empty h3{color:var(--text)}

/* Tiles: rounded and calm, with one name tag. */
body.is-connected #videos .tile{position:relative;min-height:0;min-width:0;height:100%;max-height:none;aspect-ratio:auto;grid-column:auto;grid-row:auto;border:0;border-radius:var(--radius);overflow:hidden;background:#171a20;isolation:isolate;box-shadow:none}
body.is-connected #videos .tile video{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:var(--live-camera-fit);background:transparent}
body.is-connected #videos .tile:has(video[data-screen]) video{object-fit:contain}
/* Videos paint above a tile's own outline, so the state ring is an overlay. */
body.is-connected #videos .tile:is(.speaking,.hand-raised):not(.camera-off)::after{content:'';position:absolute;inset:0;z-index:5;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--accent);pointer-events:none}
body.is-connected #videos .tile.hand-raised:not(.camera-off)::after{box-shadow:inset 0 0 0 2px var(--warn)}
body.is-connected #videos .tile.hand-raised.camera-off::after{box-shadow:0 0 0 8px rgba(245,183,72,.3)}
body.is-connected #videos .tile.hand-raised::before{content:'✋\00a0 Main levée';position:absolute;top:10px;left:10px;right:auto;bottom:auto;z-index:4;display:flex;align-items:center;height:28px;padding:0 12px 0 10px;border-radius:999px;background:var(--warn);color:#2a1c00;font-size:12.5px;font-weight:700;pointer-events:none}
body.is-connected #videos .tile.camera-off video{visibility:hidden}
body.is-connected #videos .tile.camera-off::after,body.is-connected #videos .participant-avatar{content:attr(data-initial);position:absolute;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(56px,22%,112px);height:auto;min-height:0;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-size:clamp(22px,3.2vw,42px);font-weight:650;line-height:1;color:#fff;background:hsl(var(--avatar-hue,168) 38% 36%);box-shadow:0 0 0 8px hsl(var(--avatar-hue,168) 38% 36% / .16)}
body.is-connected #videos .tile.speaking.camera-off::after,body.is-connected #videos .tile.speaking .participant-avatar{box-shadow:0 0 0 8px rgba(47,211,181,.3)}
body.is-connected .tile-heading,body.is-connected #videos[data-visible-count] .tile-heading{position:absolute;inset:auto auto 10px 10px;z-index:3;display:inline-flex;flex-wrap:nowrap;align-items:center;gap:6px;max-width:calc(100% - 20px);height:28px;padding:0 11px 0 10px;border-radius:999px;background:rgba(9,10,12,.68);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}
body.is-connected .tile-heading p{flex:0 1 auto;max-width:none;margin:0;padding:0;border-radius:0;background:none;font-size:13px;line-height:1;font-weight:550;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.is-connected .tile-heading .media-badge{display:none;flex:none;width:15px;height:15px;padding:0;font-size:0;border-radius:0;background:var(--danger-text);-webkit-mask:var(--i-mic-off) center/contain no-repeat;mask:var(--i-mic-off) center/contain no-repeat}
body.is-connected #videos .tile.mic-off .tile-heading .media-badge{display:block}
body.is-connected .tile-heading .role-badge{flex:none;padding:0 6px;border:1px solid rgba(47,211,181,.45);border-radius:6px;font-size:10.5px;line-height:16px;font-weight:700;letter-spacing:.02em;color:var(--accent-strong)}
body.is-connected #videos .tile .pin-button{position:absolute;top:10px;right:10px;left:auto;bottom:auto;z-index:4;display:grid;place-items:center;width:34px;height:34px;min-width:0;min-height:0;margin:0;padding:0;font-size:0;border:0;border-radius:50%;background:rgba(9,10,12,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;opacity:0;transition:opacity .15s ease}
body.is-connected #videos .tile .pin-button::before{content:'';width:17px;height:17px;background:currentColor;-webkit-mask:var(--i-pin) center/contain no-repeat;mask:var(--i-pin) center/contain no-repeat}
body.is-connected #videos .tile:hover .pin-button,body.is-connected #videos .tile .pin-button:focus-visible{opacity:1}
body.is-connected #videos .tile .pin-button[aria-pressed=true]{opacity:1;background:var(--accent);color:var(--accent-ink)}
body.is-connected #videos[data-sharing=true]{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr);gap:0}
body.is-connected #videos[data-sharing=true] .tile-heading{display:none}
body.is-connected #video-pagination{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:10px;margin:0;padding:5px;border-radius:999px;background:rgba(9,10,12,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:12.5px;color:var(--text);white-space:nowrap}
body.is-connected #video-pagination button{min-height:32px;padding:0 12px;border-radius:999px;background:var(--surface-2);border:0;color:var(--text);font-size:12.5px}

/* View modes keep their geometry from the shared sheets; only spacing and
   corners follow the room. Rules repeated here keep their original priority. */
body.is-connected #videos .tile.focused{grid-column:1/-1;grid-row:1}
body.is-connected #videos:not(.studio-view) .tile,body.is-connected #videos.studio-view.has-focus .tile{grid-column:auto;grid-row:auto}
body.is-connected #videos.has-focus .tile.focused{grid-column:1/-1;grid-row:1}
body.is-connected #videos.studio-view:not(.has-focus){grid-template-columns:repeat(6,minmax(0,1fr))!important}
body.is-connected #videos[data-presentation=side] .focused{grid-column:1;grid-row:1}
body.is-connected #videos[data-presentation=side] .presenter-tile{grid-column:2;grid-row:1}
body.is-connected #videos[data-presentation=inset] .presenter-tile{right:12px;bottom:12px;border:2px solid var(--surface-4);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.5)}
body.is-connected #videos:is([data-mode=gallery],[data-mode=dynamic]):not([data-visible-count="1"]){padding:0;gap:var(--gap)}
body.is-connected #videos:is([data-mode=gallery],[data-mode=dynamic]) .tile{border-radius:var(--radius)}
body.is-connected #videos[data-mode=immersive]{border-radius:var(--radius)}
body.is-connected .local-share-notice{inset:24px}
body.is-connected .local-share-toggle{border-radius:999px;background:var(--surface-2);border:1px solid var(--line-strong);padding:0 18px}
body.is-connected #share-view-controls{right:12px;bottom:12px;gap:2px;padding:4px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(22,25,30,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
body.is-connected #share-view-controls>button{min-width:40px;min-height:40px;border-radius:999px}
body.is-connected #share-view-controls>button:hover:enabled{background:var(--surface-3)}
body.is-connected #share-view-controls>button:disabled{opacity:.4}

/* Side panel: participants, messages, documents, board and access. */
body.is-connected #workspace-content,body.is-connected:has(.workspace-view[data-view=people]:not([hidden])) #workspace-content{position:absolute;top:0;bottom:0;right:var(--pad);left:auto;width:var(--live-panel-width);max-width:calc(100vw - var(--pad) * 2);max-height:none;height:auto;padding:0 16px 16px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);box-shadow:none;z-index:12}
body.is-connected:has(.workspace-view[data-view=people]:not([hidden])) #meeting-toolbar{right:0}
body.is-connected:has(.workspace-view[data-view=people]:not([hidden])) :is(#workspace-content .panel-heading,.people-footer){background:var(--surface)}
body.is-connected #workspace-content:has(.host-view:not([hidden])){padding:0 16px 16px;background:var(--surface)}
body.is-connected #workspace-content .panel-heading{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -16px 14px;padding:14px 12px 12px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
body.is-connected #workspace-title{margin:0;font-size:16px;font-weight:650;letter-spacing:-.005em}
body.is-connected #close-workspace{display:grid;place-items:center;flex:none;width:36px;height:36px;min-width:0;min-height:0;padding:0;font-size:0;border:0;border-radius:10px;background:transparent;color:var(--muted)}
body.is-connected #close-workspace:hover{background:var(--surface-2);color:var(--text)}
body.is-connected #close-workspace::before{content:'';width:18px;height:18px;background:currentColor;-webkit-mask:var(--i-x) center/contain no-repeat;mask:var(--i-x) center/contain no-repeat}
body.is-connected #workspace-content .muted{color:var(--muted)}
body.is-connected #workspace-content h3{font-size:14px;font-weight:650;margin:0 0 6px}
body.is-connected #workspace-content label{color:var(--text)}
body.is-connected #workspace-content :is(input:not([type=checkbox]):not([type=color]):not([type=range]),select,textarea){background:var(--room-bg);border:1px solid var(--line-strong);border-radius:10px;color:var(--text)}
body.is-connected #workspace-content :is(input,select,textarea):focus{border-color:rgba(47,211,181,.6)}
body.is-connected #workspace-content button{border-radius:10px;font-weight:600}
body.is-connected #workspace-content :is(form button:not(.secondary):not(.danger),#chat-send,#file-submit,#admission-request,#control-start){background:var(--accent);color:var(--accent-ink);border-color:transparent}
body.is-connected #workspace-content :is(form button:not(.secondary):not(.danger),#chat-send,#file-submit,#admission-request,#control-start):disabled{background:var(--surface-3);color:var(--muted)}
body.is-connected #workspace-content .secondary{background:var(--surface-2);border:1px solid var(--line);color:var(--text)}
body.is-connected #workspace-content .secondary:hover:enabled{background:var(--surface-3)}
body.is-connected #workspace-content .danger{background:var(--danger-soft);color:var(--danger-text);border-color:transparent}
body.is-connected #workspace-content .tool-section{border-top:1px solid var(--line)}
body.is-connected #chat-messages li{background:var(--surface-2);border:0;border-radius:12px 12px 12px 4px;padding:10px 12px}
body.is-connected #workspace-content :is(.document-card,.upload-card,.empty-files){background:var(--surface-2);border:1px solid var(--line);border-radius:12px}
body.is-connected #people-list>li{border-bottom:1px solid var(--line);min-height:60px}
body.is-connected .people-avatar{background:hsl(168 38% 34%)}
body.is-connected .people-role{color:var(--muted)}
body.is-connected .people-menu summary:hover{background:var(--surface-2)}
body.is-connected .people-row-actions{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.5)}
body.is-connected .people-row-actions button:hover:enabled{background:var(--surface-3)}
body.is-connected .people-footer{bottom:-16px;background:var(--surface);border-top:1px solid var(--line)}
body.is-connected .people-footer{display:flex;flex-wrap:wrap;gap:8px}
body.is-connected .people-footer>button{flex:1 1 auto;min-height:40px;padding:0 14px;border-radius:10px;font-size:13px;line-height:1.2}
body.is-connected .people-footer>p{flex-basis:100%}
body.is-connected #admission-panel{margin:0 0 12px;padding:0 0 14px;border-top:0;border-bottom:1px solid var(--line)}
body.is-connected #admission-panel h3{margin:10px 0 4px;color:var(--text)}
body.is-connected #admission-panel :is(button,#admission-host-open){min-height:36px;padding:0 12px;font-size:13px;line-height:1.2}
body.is-connected #admission-panel .document-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
body.is-connected #admission-status{margin:4px 0 10px;font-size:12.5px;color:var(--muted)}
body.is-connected #people-list .people-media:hover:enabled{background:var(--surface-2);border-color:var(--line-strong)}
body.is-connected .host-view{color:var(--text)}
body.is-connected .host-view p{color:var(--muted)}
body.is-connected :is(.host-block,.host-view li){border-color:var(--line)}
body.is-connected .host-view .host-link:hover{background:var(--surface-2)}
body.is-connected .host-view .host-link[aria-disabled=true]{color:var(--muted)}
body.is-connected .host-view .host-link[aria-disabled=true]::after{content:'Désactivé';font-size:12px;font-weight:500;color:var(--muted)}
body.is-connected .host-section-head button{background:var(--surface-2);color:var(--accent-strong);border-radius:8px}
body.is-connected :is(.host-row,.menu-switch) input[type=checkbox]{background:var(--surface-4);border-color:transparent}
body.is-connected :is(.host-row,.menu-switch) input[type=checkbox]:checked,body.is-connected #host-tools-panel .host-row input:checked{background:var(--accent);border-color:var(--accent)}

/* Control bar: time on the left, one centred group, panels on the right. */
body.is-connected #meeting-toolbar{position:fixed;inset:auto 0 0;height:var(--toolbar-h);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"status actions side";align-items:center;gap:12px;padding:0 calc(var(--pad) + 4px) env(safe-area-inset-bottom);background:var(--room-bg);border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:1;transform:none;transition:none;z-index:20}
body.is-connected #meeting-toolbar .toolbar-status{grid-area:status;position:static;justify-self:start;display:flex;align-items:center;gap:10px;min-width:0;padding:0;background:none;border-radius:0;color:var(--muted);font-size:13.5px;font-weight:500;font-variant-numeric:tabular-nums;pointer-events:auto}
body.is-connected #meeting-toolbar #presence{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.is-connected #meeting-toolbar-actions{grid-area:actions;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:10px;width:auto;min-width:0;grid-template-columns:none}
body.is-connected #meeting-toolbar-side{grid-area:side;justify-self:end;display:flex;align-items:center;gap:8px;min-width:0}
body.is-connected :is(.media-tool-group,#record-group){position:relative;display:flex;flex:none;align-items:center;gap:0;min-width:0;max-width:none;margin:0}
body.is-connected #meeting-toolbar-actions button,body.is-connected #meeting-toolbar-actions #record-tool{position:relative;flex:none;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0;width:48px;height:48px;min-width:0;max-width:none;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:var(--surface-2);color:var(--text);font-size:0;line-height:0;font-weight:500;white-space:nowrap;text-align:center;word-break:normal;overflow-wrap:normal}
body.is-connected #meeting-toolbar-actions button:not(.media-options):hover:enabled{background:var(--surface-3)}
body.is-connected #meeting-toolbar-actions button::before{content:'';display:block;flex:none;width:22px;height:22px;margin:0;background:currentColor;-webkit-mask:var(--icon,var(--i-more)) center/contain no-repeat;mask:var(--icon,var(--i-more)) center/contain no-repeat}
body.is-connected #meeting-toolbar-actions button:has(>.tool-icon)::before{display:none}
body.is-connected #meeting-toolbar #meeting-toolbar-actions button>.tool-icon{display:block;width:22px;height:22px;margin:0;stroke-width:1.8}
body.is-connected #meeting-toolbar-actions button>span:not(.tool-icon,.toolbar-count,.toolbar-hands,.reaction-alert){position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.is-connected #mic{--icon:var(--i-mic)}
body.is-connected #cam{--icon:var(--i-cam)}
body.is-connected #mic[aria-pressed=false]{--icon:var(--i-mic-off)}
body.is-connected #cam[aria-pressed=false]{--icon:var(--i-cam-off)}
body.is-connected #audio-connect{--icon:var(--i-headphones)}
body.is-connected #screen{--icon:var(--i-share)}
body.is-connected #raise-hand{--icon:var(--i-hand)}
body.is-connected #live-more{--icon:var(--i-more)}
body.is-connected #leave{--icon:var(--i-leave)}
body.is-connected [data-workspace=people]{--icon:var(--i-users)}
body.is-connected [data-workspace=chat]{--icon:var(--i-chat)}
body.is-connected :is(#audio-options,#video-options,#host-record-options){--icon:var(--i-chev)}
body.is-connected #meeting-toolbar-actions :is(#mic,#cam)[aria-pressed=false]{background:var(--danger-soft);color:var(--danger-text)}
body.is-connected #meeting-toolbar-actions :is(#mic,#cam)[aria-pressed=false]:hover:enabled{background:#4a2329}
body.is-connected #meeting-toolbar-actions :is(#mic,#cam)[data-media-blocked=true]{background:var(--surface-2);color:var(--muted)}
body.is-connected #meeting-toolbar-actions #audio-connect{background:var(--accent);color:var(--accent-ink)}
body.is-connected #meeting-toolbar-actions :is(#screen,#raise-hand,#reactions)[aria-pressed=true],body.is-connected #meeting-toolbar-actions :is(#live-more,#reactions)[aria-expanded=true]{background:var(--accent);color:var(--accent-ink)}
body.is-connected #meeting-toolbar-actions #record-tool[aria-pressed=true]{background:var(--danger-soft)}
body.is-connected #meeting-toolbar-actions button:disabled{opacity:.45}
body.is-connected #meeting-toolbar-actions #leave{display:flex;align-items:center;gap:8px;width:auto;height:48px;margin-left:6px;padding:0 20px 0 16px;border:0;border-radius:999px;background:var(--danger-strong);color:#fff;font-size:15px;font-weight:650;line-height:1;letter-spacing:0}
body.is-connected #meeting-toolbar-actions #leave:hover:enabled{background:#b91c1c}
body.is-connected #meeting-toolbar-actions #leave::before{width:20px;height:20px}
body.is-connected #meeting-toolbar-actions :is(.media-options,#host-record-options){position:absolute;top:auto;left:auto;right:-5px;bottom:-4px;z-index:2;display:grid;place-items:center;width:22px;height:22px;min-width:0;min-height:0;margin:0;padding:0!important;font-size:0!important;border:2px solid var(--room-bg);border-radius:50%;background:var(--surface-4);color:var(--text)}
body.is-connected #meeting-toolbar-actions :is(.media-options,#host-record-options)::before{width:11px;height:11px}
body.is-connected #meeting-toolbar-actions :is(.media-options,#host-record-options):hover:enabled{background:#444b57}
body.is-connected #meeting-toolbar-actions :is(.media-options,#host-record-options)[aria-expanded=true]{background:var(--accent);color:var(--accent-ink)}
body.is-connected #meeting-toolbar-actions>.host-tool-button::before{display:none}
body.is-connected #meeting-toolbar-side>button{position:relative;flex:none;display:flex;align-items:center;gap:8px;width:auto;min-width:44px;height:44px;min-height:0;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-size:0;line-height:1}
body.is-connected #meeting-toolbar-side>button:hover{background:var(--surface-2)}
body.is-connected #meeting-toolbar-side>button[aria-pressed=true]{background:var(--surface-2);border-color:rgba(47,211,181,.55);color:var(--accent-strong)}
body.is-connected #meeting-toolbar-side>button::before{content:'';flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--icon,var(--i-more)) center/contain no-repeat;mask:var(--icon,var(--i-more)) center/contain no-repeat}
body.is-connected #meeting-toolbar-side>button:has(>.tool-icon)::before{display:none}
body.is-connected #meeting-toolbar-side>button>.tool-icon{width:20px;height:20px;stroke-width:1.8}
body.is-connected #meeting-toolbar-side>button>.live-tool-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.toolbar-count{display:none}
body.is-connected #meeting-toolbar .toolbar-count{display:block;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--text);font-size:12px;font-weight:650;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}
body.is-connected #files-count{display:none}

/* Menus and dialogs share one surface. */
body.is-connected :is(.live-popover,.meeting-popover){border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 24px 60px rgba(0,0,0,.55)}
body.is-connected .live-popover{position:fixed;bottom:calc(var(--toolbar-h) + 6px);right:var(--pad);z-index:40;width:340px;max-width:calc(100vw - var(--pad) * 2);max-height:calc(100dvh - var(--header-h) - var(--toolbar-h) - 20px);overflow:auto;overscroll-behavior:contain;padding:12px}
body.is-connected #live-more-panel{width:340px;padding:12px;background:var(--surface);border-color:var(--line-strong)}
body.is-connected #live-display-panel{top:calc(var(--header-h) + 4px);bottom:auto;width:340px;padding:12px;background:var(--surface);border-color:var(--line-strong)}
body.is-connected .live-popover-heading,body.is-connected #live-display-panel>.live-popover-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px;padding:2px 2px 2px 8px}
body.is-connected :is(.live-popover-heading strong,.live-popover-heading h2){font-size:15px;font-weight:650;color:var(--text);margin:0}
body.is-connected .live-popover .live-popover-heading button{display:grid;place-items:center;width:32px;height:32px;min-height:0;min-width:0;padding:0;font-size:0;border:0;border-radius:8px;background:transparent;color:var(--muted)}
body.is-connected .live-popover .live-popover-heading button:hover{background:var(--surface-2);color:var(--text)}
body.is-connected .live-popover-heading button::before{content:'';width:17px;height:17px;background:currentColor;-webkit-mask:var(--i-x) center/contain no-repeat;mask:var(--i-x) center/contain no-repeat}
body.is-connected .live-tool-list{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
body.is-connected #live-extra-tools button,body.is-connected #live-view-modes button{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;width:100%;min-width:0;min-height:44px;height:auto;margin:0;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:14px;font-weight:500;line-height:1.3;text-align:left}
body.is-connected #live-extra-tools button:hover:enabled,body.is-connected #live-view-modes button:hover{background:var(--surface-2)}
body.is-connected #live-extra-tools button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}
body.is-connected #live-extra-tools .tool-icon{display:block;width:20px;height:20px;margin:0;flex:none;color:var(--muted);stroke-width:1.8}
body.is-connected #live-extra-tools button>span{min-height:0}
body.is-connected #live-extra-tools button::before{display:none}
body.is-connected #live-extra-tools :is(#screen,#raise-hand,#audio-connect,[data-workspace=chat],.media-options)::before{content:'';display:block;flex:none;width:20px;height:20px;margin:0;background:var(--muted);-webkit-mask:var(--icon,var(--i-more)) center/contain no-repeat;mask:var(--icon,var(--i-more)) center/contain no-repeat}
body.is-connected #live-extra-tools .media-options{--icon:var(--i-chev)}
body.is-connected #live-extra-tools #record-group{width:100%}
body.is-connected #live-extra-tools #record-group #record-tool{flex:1;min-height:44px;flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:14px}
body.is-connected #live-extra-tools #host-record-options{width:44px;min-width:44px;font-size:0!important;justify-content:center}
body.is-connected #live-extra-tools #host-record-options::before{content:'';display:block;width:16px;height:16px;background:var(--muted);-webkit-mask:var(--i-chev) center/contain no-repeat;mask:var(--i-chev) center/contain no-repeat}
body.is-connected #live-extra-tools>#more-host-tools{align-items:center;min-height:52px;margin-bottom:4px;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}
body.is-connected #live-extra-tools .host-tool-button{min-height:44px}
body.is-connected #live-other-tools{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
body.is-connected #live-other-tools>summary,body.is-connected .live-view-extras summary{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:8px 12px;border-radius:10px;color:var(--muted);font-size:13px;list-style:none;cursor:pointer}
body.is-connected :is(#live-other-tools,.live-view-extras details)>summary::-webkit-details-marker{display:none}
body.is-connected :is(#live-other-tools,.live-view-extras details)>summary::after{content:'';flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-chev-down) center/contain no-repeat;mask:var(--i-chev-down) center/contain no-repeat;transition:transform .15s ease}
body.is-connected :is(#live-other-tools,.live-view-extras details)[open]>summary::after{transform:rotate(180deg)}
body.is-connected .live-view-extras details{padding:0}
body.is-connected .live-view-extras details[open]{padding-bottom:6px}
body.is-connected .live-view-extras details>label{margin:6px 12px}
body.is-connected #live-other-tools>summary:hover,body.is-connected .live-view-extras summary:hover{background:var(--surface-2);color:var(--text)}
body.is-connected #live-tools-back{min-height:40px;margin:0 0 8px;padding:0 12px;border:0;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:13px}
body.is-connected #live-more-panel .toolbar-pin-help{margin:6px 0 0;padding:10px 12px 2px;border-top:1px solid var(--line);color:var(--muted);font-size:11.5px;line-height:1.5}
body.is-connected #live-more-panel .toolbar-pin-help button{min-height:28px;padding:0 6px;background:transparent;border:0;color:var(--accent-strong);font-size:11.5px}
body.is-connected #live-extra-tools #tool-restrictions{position:static;margin:8px 0 0;padding:10px 12px;background:transparent;border:0;color:var(--muted);font-size:12px}
body.is-connected #live-view-modes{display:grid;gap:2px}
body.is-connected #live-view-modes button{min-height:42px;padding:8px 12px}
body.is-connected #live-view-modes .mode-check{width:16px;height:16px;flex:none;visibility:hidden;font-size:0;background:var(--accent-strong);-webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat}
body.is-connected #live-view-modes [aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}
body.is-connected #live-view-modes [aria-pressed=true] .mode-check{visibility:visible}
body.is-connected #live-view-modes .tool-icon{margin-left:auto;width:18px;height:18px;color:var(--muted)}
body.is-connected :is(#live-display-panel>label,.live-view-extras){margin:8px 0 0;padding:10px 4px 0;border-top:1px solid var(--line)}
body.is-connected #live-display-panel label{font-size:13px;color:var(--text)}
body.is-connected .live-check{display:flex;flex-direction:row;gap:10px;align-items:center;margin:8px 0;padding:4px 8px;font-weight:400;font-size:13.5px;color:var(--text)}
body.is-connected .live-check input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--accent)}
body.is-connected :is(.live-popover,.meeting-popover) :is(input:not([type=checkbox]),select){background:var(--room-bg);border:1px solid var(--line-strong);border-radius:10px;color:var(--text)}
body.is-connected .live-popover .secondary,body.is-connected #live-menu-fullscreen{background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:10px}
body.is-connected #live-more-panel #meeting-settings{display:block;margin:0;padding:0;border:0;background:transparent}
body.is-connected .live-popover .devices{display:grid;gap:14px}
body.is-connected .live-popover .devices label{min-width:0;color:var(--text);font-size:13px}
body.is-connected .meeting-popover{padding:12px}
body.is-connected .meeting-popover h3{margin:6px 8px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.02em}
body.is-connected .meeting-popover hr{border-top:1px solid var(--line);margin:8px 0}
body.is-connected :is(.meeting-popover>button,.device-choice){min-height:40px;padding:9px 12px;border-radius:10px;color:var(--text);font-size:13.5px}
body.is-connected .meeting-popover button:hover:enabled{background:var(--surface-2)}
body.is-connected .meeting-popover button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong)}
body.is-connected .device-choice[aria-pressed=true]::before{color:var(--accent-strong)}
body.is-connected .meeting-popover p{color:var(--muted);font-size:12px}
body.is-connected .reaction-grid button{background:var(--surface-2);border-radius:12px}
body.is-connected .reaction-grid button:hover:enabled{background:var(--surface-3)}
body.is-connected :is(#reaction-hand-home button,.reaction-menu>#reaction-away){background:var(--surface-2);border-radius:999px}
body.is-connected :is(#host-leave-dialog,#live-info-dialog,#share-dialog,#audio-test-dialog,#host-key-dialog,#record-finish-dialog,#media-help-dialog){background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
body.is-connected :is(#host-leave-dialog,#live-info-dialog,#share-dialog,#audio-test-dialog,#host-key-dialog,#record-finish-dialog,#media-help-dialog)::backdrop{background:rgba(5,6,8,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
body.is-connected #host-leave-dialog .leave-transfer{background:var(--surface-2);border-color:var(--line-strong)}
body.is-connected #host-leave-dialog #leave-and-transfer{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
body.is-connected #host-leave-dialog #leave-and-transfer:disabled{background:var(--surface-3);border-color:var(--line);color:var(--muted)}
body.is-connected #host-leave-dialog #end-for-everyone{background:var(--danger-strong);border-color:var(--danger-strong)}
body.is-connected #host-leave-dialog :is(#leave-without-transfer,#cancel-host-leave){background:var(--surface-2);border-color:var(--line-strong)}
body.is-connected #host-leave-dialog #next-host{background:var(--room-bg);border-color:var(--line-strong)}
body.is-connected #host-leave-dialog :is(.leave-end,.leave-footer){border-color:var(--line)}
body.is-connected #share-dialog :is(.share-heading,.share-footer,.share-options){border-color:var(--line)}
body.is-connected #share-dialog :is(.share-footer,.share-options){background:var(--surface)}
body.is-connected #share-start{background:var(--accent);color:var(--accent-ink);border-radius:10px}
body.is-connected #share-tabs button{background:var(--surface-2)}
body.is-connected #share-tabs button:is([aria-pressed=true],[aria-selected=true]){background:var(--accent-soft);color:var(--accent-strong)}
body.is-connected :is(.share-source-card,#share-selected-video){border-color:var(--accent)}
body.is-connected #share-presenter-layout button[aria-pressed=true],body.is-connected .share-content-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}

/* Notices float above the stage, never above the control bar. */
body.is-connected #meeting-notice{position:fixed;top:calc(var(--header-h) + 8px);left:calc(var(--pad) + 8px);max-width:min(460px,calc(100vw - var(--pad) * 2 - 16px));max-height:30dvh;overflow:auto;margin:0;padding:14px 16px;z-index:25;border:1px solid var(--line-strong);border-left:3px solid var(--accent);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 16px 40px rgba(0,0,0,.45)}
body.is-connected #meeting-notice strong{font-size:14px}
body.is-connected #meeting-notice p{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:#d3d9e0}
body.is-connected #meeting-notice[data-kind=error]{border-left-color:var(--danger)}
body.is-connected #meeting-notice[data-kind=waiting]{border-left-color:var(--warn)}
body.is-connected #lobby-inbox{position:fixed;top:calc(var(--header-h) + 8px);right:calc(var(--pad) + 8px);width:340px;max-width:calc(100vw - var(--pad) * 2 - 16px);max-height:40dvh;overflow:auto;margin:0;padding:14px 16px;z-index:26;border:1px solid rgba(47,211,181,.35);border-radius:14px;background:#11211e;color:var(--text);box-shadow:0 16px 40px rgba(0,0,0,.45)}
body.is-connected #lobby-inbox p{color:#b6d8cf;font-size:13px}
body.is-connected #lobby-inbox li{border-top:1px solid rgba(47,211,181,.18);padding:10px 0;gap:8px}
body.is-connected #lobby-inbox button{min-height:36px;padding:0 14px;border-radius:9px;font-weight:650}
body.is-connected #lobby-inbox button:not(.secondary){background:var(--accent);color:var(--accent-ink)}
body.is-connected #lobby-inbox .secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}
body.is-connected #tool-restrictions{position:fixed;left:calc(var(--pad) + 8px);bottom:calc(var(--toolbar-h) + 8px);max-width:calc(100vw - 32px);margin:0;padding:8px 12px;background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:10px;z-index:15}
body.is-connected #host-record-banner{position:fixed;top:calc((var(--header-h) - 30px) / 2);left:50%;right:auto;transform:translateX(-50%);z-index:30;display:flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;background:var(--danger-soft);border:1px solid rgba(239,68,68,.4);color:#ffd5d5;font-size:12.5px;font-weight:600;pointer-events:none}
body.is-connected #host-record-banner::before{content:'';width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 3px rgba(239,68,68,.25)}
body.is-connected #record-elapsed{border-left-color:rgba(255,255,255,.2)}
body.is-connected #meeting-captions{bottom:calc(var(--toolbar-h) + 20px);border-radius:12px;background:rgba(0,0,0,.82)}
body.is-connected #reaction-overlay{inset:var(--header-h) 0 var(--toolbar-h)}
body.is-connected #partner-audio-unlock{top:calc(var(--header-h) + 10px)}
body.is-connected #partner-audio-unlock>button{background:var(--accent);border-color:var(--accent-strong);color:var(--accent-ink)}
body.is-connected #title-info-panel{top:calc(var(--header-h) + 4px)}

/* Controls stay visible: inactivity only hides the pointer over the videos. */
body.is-connected.live-controls-hidden .room-header,body.is-connected.live-controls-hidden #meeting-toolbar{opacity:1;pointer-events:auto}
body.is-connected.live-controls-hidden #meeting-stage{cursor:none}
body.is-connected.live-controls-hidden .pin-button{pointer-events:auto}
body.is-connected.live-controls-hidden #videos[data-sharing=true]{inset:0}
body.live-controls-hidden #share-view-controls{opacity:1;pointer-events:auto}

/* Narrower screens drop the duration and align the panel buttons right. */
@media(max-width:900px){
 body.is-connected{--live-panel-width:320px}
 body.is-connected #meeting-toolbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"actions side";gap:8px}
 body.is-connected #meeting-toolbar .toolbar-status{display:none}
 body.is-connected #meeting-toolbar-actions{gap:8px}
}

/* Phones and short touch screens. */
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 body.is-connected{--header-h:56px;--toolbar-h:calc(76px + env(safe-area-inset-bottom,0px));--pad:8px;--gap:6px;--radius:12px}
 body.is-connected .room-header{gap:10px;padding:0 var(--pad) 0 calc(var(--pad) + 4px)}
 body.is-connected .room-header .brand{display:grid;width:30px;height:30px;border-radius:9px}
 body.is-connected .room-header .brand::before{font-size:15px}
 body.is-connected #meeting-title{font-size:14px}
 body.is-connected #status{font-size:11.5px}
 body.is-connected .room-header #copy-invite{display:none}
 body.is-connected #live-header-actions{gap:6px}
 body.is-connected .room-header #live-fullscreen{width:38px;height:38px}
 body.is-connected #meeting-toolbar{grid-template-columns:minmax(0,1fr);grid-template-areas:"actions";height:var(--toolbar-h);padding:0 var(--pad) env(safe-area-inset-bottom,0px);border-top:0}
 body.is-connected #meeting-toolbar .toolbar-status,body.is-connected #meeting-toolbar-side{display:none}
 body.is-connected #meeting-toolbar-actions{display:flex;gap:6px;justify-content:space-evenly}
 body.is-connected #meeting-toolbar-actions button,body.is-connected #meeting-toolbar-actions #record-tool{width:52px;height:52px}
 body.is-connected #meeting-toolbar-actions #leave{width:52px;height:52px;margin:0;padding:0;justify-content:center;font-size:0;border-radius:50%}
 body.is-connected #meeting-toolbar-actions #leave::before{width:22px;height:22px}
 body.is-connected #meeting-toolbar-actions :is(.media-options,#host-record-options){width:22px;height:22px}
 body.is-connected #meeting-toolbar-actions .toolbar-count{position:absolute;top:-3px;right:-5px;min-width:20px;height:20px;padding:0 5px;border:2px solid var(--room-bg);border-radius:999px;font-size:11px;line-height:16px;box-sizing:border-box}
 body.is-connected .tile-heading,body.is-connected #videos[data-visible-count] .tile-heading{inset:auto auto 8px 8px;height:24px;padding:0 9px 0 8px;gap:5px;max-width:calc(100% - 16px)}
 body.is-connected .tile-heading p{font-size:12px;max-width:none}
 body.is-connected .tile-heading .role-badge{display:none}
 body.is-connected #videos .tile .pin-button{display:none}
 body.is-connected #videos .tile{border:0;border-radius:var(--radius)}
 body.is-connected #videos .tile.hand-raised::before{content:'✋';top:8px;left:8px;height:26px;padding:0 8px}
 body.is-connected #videos{inset:0;gap:var(--gap)}
 body.is-connected #videos:not(.studio-view),body.is-connected #videos.studio-view{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:var(--live-mobile-template,minmax(0,1fr))}
 body.is-connected #videos[data-visible-count="1"],body.is-connected #videos[data-sharing=true]{grid-template-columns:minmax(0,1fr)!important}
 body.is-connected #videos[data-sharing=true]{inset:0}
 body.is-connected #videos.studio-view:not(.has-focus) .tile{grid-column:auto}
 body.is-connected .room-layout.with-panel #meeting-stage{right:var(--pad)}
 body.is-connected #workspace-content,body.is-connected:has(.workspace-view[data-view=people]:not([hidden])) #workspace-content{position:fixed;top:var(--header-h);bottom:var(--toolbar-h);left:var(--pad);right:var(--pad);width:auto;max-width:none;padding:0 14px 14px;border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.6)}
 body.is-connected #workspace-content .panel-heading{margin:0 -14px 12px;padding:10px 8px 10px 16px}
 body.is-connected .people-footer{bottom:-14px}
 body.is-connected .live-popover{left:var(--pad);right:var(--pad);width:auto;max-height:calc(100dvh - var(--header-h) - var(--toolbar-h) - 16px)}
 body.is-connected #live-more-panel{width:auto}
 body.is-connected #live-display-panel{top:calc(var(--header-h) + 4px);width:auto}
 body.is-connected .meeting-popover{max-height:calc(100dvh - var(--header-h) - var(--toolbar-h) - 16px)}
 body.is-connected #meeting-notice,body.is-connected #lobby-inbox{left:var(--pad);right:var(--pad);width:auto;max-width:none}
 body.is-connected #host-record-banner{top:calc(var(--header-h) + 8px);left:auto;right:calc(var(--pad) + 8px);transform:none;height:26px;font-size:11.5px}
 body.is-connected #meeting-captions{bottom:calc(var(--toolbar-h) + 14px);font-size:16px}
 body.is-connected .toolbar-pin-help{display:none}
}
@media(max-width:380px){
 body.is-connected #meeting-toolbar-actions{gap:4px}
 body.is-connected #meeting-toolbar-actions button,body.is-connected #meeting-toolbar-actions #record-tool,body.is-connected #meeting-toolbar-actions #leave{width:48px;height:48px}
}
@media(max-width:620px) and (orientation:portrait){
 body.is-connected #videos[data-visible-count="2"]:not(.has-focus){grid-template-columns:minmax(0,1fr)!important;grid-template-rows:repeat(2,minmax(0,1fr))!important}
}
@media(max-height:450px) and (max-width:900px){
 body.is-connected{--header-h:48px;--toolbar-h:64px}
 body.is-connected #meeting-toolbar-actions button,body.is-connected #meeting-toolbar-actions #record-tool,body.is-connected #meeting-toolbar-actions #leave{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){body.is-connected #videos .tile .pin-button{transition:none}}

/* Before joining from a partner site: the same header and surfaces, one
   centred card, and quiet tool tabs for the waiting-room requests. */
body.partner-embedded:not(.is-connected){--room-bg:#0d0f12;--surface:#16191e;--surface-2:#1f232a;--surface-3:#2a2f37;--line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.14);--text:#f3f5f7;--muted:#9aa4b1;--accent:#2fd3b5;--accent-strong:#5fe0c8;--accent-ink:#03241d;--focus-ring:#8fe9d7;min-height:100dvh;margin:0;padding:0;background:var(--room-bg);color:var(--text);font-family:Inter,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body.partner-embedded:not(.is-connected) .room-header{position:sticky;top:0;z-index:5;height:60px;padding:0 16px;gap:12px;background:var(--room-bg);border:0}
body.partner-embedded:not(.is-connected) .room-header .brand{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:0;line-height:0;letter-spacing:0;color:var(--accent-ink);background:linear-gradient(140deg,#4fe6c9,#169a82);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
body.partner-embedded:not(.is-connected) .room-header .brand::before{content:'V';font-size:17px;line-height:1;font-weight:800}
body.partner-embedded:not(.is-connected) .room-header .brand span{display:none}
body.partner-embedded:not(.is-connected) .room-header>div{min-width:0}
body.partner-embedded:not(.is-connected) #meeting-title{display:block;font-size:15px;font-weight:650;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.partner-embedded:not(.is-connected) #title-info-toggle{max-width:100%;min-height:0;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;pointer-events:none}
body.partner-embedded:not(.is-connected) #status{margin:1px 0 0;font-size:12.5px;line-height:1.3;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.partner-embedded:not(.is-connected) #account-badge{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.partner-embedded .header-home{display:none}
body.partner-embedded:not(.is-connected) .meeting-app{max-width:560px;margin:0 auto;padding:clamp(16px,6vh,56px) 16px 32px}
body.partner-embedded:not(.is-connected) #partner-entry-state{margin:0 auto 16px;padding:0;max-width:none;color:var(--muted);font-size:14px;line-height:1.5;text-align:center}
body.partner-embedded:not(.is-connected):not(.partner-auth-pending):not(.partner-direct) #partner-entry-state:not(:empty){position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.partner-embedded:is(.partner-auth-pending,.partner-direct):not(.is-connected) #partner-entry-state{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:12vh;color:var(--text);font-size:15px}
body.partner-embedded:is(.partner-auth-pending,.partner-direct):not(.is-connected) #partner-entry-state::before{content:'';width:34px;height:34px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--accent);animation:veyora-spin .8s linear infinite}
@keyframes veyora-spin{to{transform:rotate(360deg)}}
body.partner-embedded.is-failed #partner-entry-state::before{display:none;animation:none}
@media(prefers-reduced-motion:reduce){body.partner-embedded #partner-entry-state::before{animation:none}}
body.partner-embedded:not(.is-connected) #meeting-entry{max-width:none;margin:0 0 12px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
body.partner-embedded:not(.is-connected) #meeting-entry .eyebrow{color:var(--accent-strong);font-size:11px;letter-spacing:.12em;font-weight:700}
body.partner-embedded:not(.is-connected) #meeting-entry h1{margin:6px 0 8px;font-size:26px;line-height:1.2;letter-spacing:-.02em;color:var(--text)}
body.partner-embedded:not(.is-connected) #meeting-entry .muted{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
body.partner-embedded:not(.is-connected) #meeting-entry-actions{margin-top:22px;gap:10px}
body.partner-embedded:not(.is-connected) #join{flex:1 1 auto;min-height:48px;padding:0 22px;border:0;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-size:15px;font-weight:700}
body.partner-embedded:not(.is-connected) #join:hover:enabled{background:var(--accent-strong);filter:none}
body.partner-embedded:not(.is-connected) #join:disabled{opacity:.6}
body.partner-embedded:not(.is-connected) #cancel-waiting{min-height:48px;border-radius:12px;background:transparent;border:1px solid var(--line-strong);color:var(--text)}
body.partner-embedded:not(.is-connected) #copy-room-status:empty{display:none}
body.partner-embedded:not(.is-connected) #meeting-settings{margin:0 0 12px;padding:4px 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
body.partner-embedded:not(.is-connected) #meeting-settings>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;color:var(--text);font-size:14px;font-weight:600;list-style:none;cursor:pointer}
body.partner-embedded:not(.is-connected) #meeting-settings>summary::-webkit-details-marker{display:none}
body.partner-embedded:not(.is-connected) #meeting-settings>summary::after{content:'';width:18px;height:18px;background:var(--muted);-webkit-mask:var(--i-chev-down) center/contain no-repeat;mask:var(--i-chev-down) center/contain no-repeat;transition:transform .15s ease}
body.partner-embedded:not(.is-connected) #meeting-settings[open]>summary::after{transform:rotate(180deg)}
body.partner-embedded:not(.is-connected) #meeting-settings :is(select,input){background:var(--room-bg);border:1px solid var(--line-strong);border-radius:10px;color:var(--text)}
body.partner-embedded:not(.is-connected) #meeting-settings .secondary{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;color:var(--text)}
body.partner-embedded:not(.is-connected) #workspace-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 12px}
body.partner-embedded:not(.is-connected) .workspace-tab{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600}
body.partner-embedded:not(.is-connected) .workspace-tab:hover{background:var(--surface-2);color:var(--text)}
body.partner-embedded:not(.is-connected) .workspace-tab[aria-pressed=true]{background:var(--accent-soft,rgba(47,211,181,.14));border-color:rgba(47,211,181,.45);color:var(--accent-strong)}
body.partner-embedded:not(.is-connected) .workspace-tab .tool-icon{width:16px;height:16px}
body.partner-embedded:not(.is-connected) .workspace-tab:is([data-workspace=people],[data-workspace=chat])::before{content:'';flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
body.partner-embedded:not(.is-connected) .workspace-tab[data-workspace=people]{--icon:var(--i-users)}
body.partner-embedded:not(.is-connected) .workspace-tab[data-workspace=chat]{--icon:var(--i-chat)}
body.partner-embedded:not(.is-connected) #files-count{min-width:20px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--text);font-size:11px;line-height:20px;text-align:center}
body.partner-embedded:not(.is-connected) .workspace-tab[data-workspace=meeting]{display:none}
body.partner-embedded:not(.is-connected) #meeting-stage{display:none}
body.partner-embedded:not(.is-connected) .room-layout.with-panel{grid-template-columns:minmax(0,1fr)}
body.partner-embedded:not(.is-connected) #workspace-content{padding:0 16px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;color:var(--text)}
body.partner-embedded:not(.is-connected) #workspace-content .panel-heading{margin:0 -16px 12px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line)}
body.partner-embedded:not(.is-connected) #workspace-content :is(input:not([type=checkbox]),select,textarea){background:var(--room-bg);border:1px solid var(--line-strong);border-radius:10px;color:var(--text)}
body.partner-embedded:not(.is-connected) #workspace-content button{border-radius:10px}
body.partner-embedded:not(.is-connected) #workspace-content .secondary{background:var(--surface-2);border:1px solid var(--line);color:var(--text)}
body.partner-embedded:not(.is-connected) #workspace-content .muted{color:var(--muted)}
body.partner-embedded:not(.is-connected) #lobby-inbox{background:#11211e;border:1px solid rgba(47,211,181,.35);border-radius:16px;color:var(--text)}
body.partner-embedded:not(.is-connected) #meeting-notice{border-radius:14px;background:var(--surface);border:1px solid var(--line-strong);color:var(--text)}
body.partner-embedded:not(.is-connected) :focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
@media(max-width:520px){
 body.partner-embedded:not(.is-connected) .room-header{height:56px;padding:0 12px;gap:10px}
 body.partner-embedded:not(.is-connected) .room-header .brand{width:30px;height:30px;border-radius:9px}
 body.partner-embedded:not(.is-connected) #meeting-entry{padding:22px 18px}
 body.partner-embedded:not(.is-connected) #meeting-entry h1{font-size:22px}
}

/* Classroom interaction: place in the hand queue, giving the floor and
   understanding checks that only the organizer sees. */
body.is-connected #videos .tile.hand-raised[data-hand-rank]::before{content:'✋\00a0 Main levée · ' attr(data-hand-rank)}
body.is-connected #meeting-toolbar .toolbar-hands{display:block;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--warn);color:#2a1c00;font-size:12px;font-weight:700;line-height:22px;text-align:center;white-space:nowrap}
body.is-connected #hand-list{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none;counter-reset:hand}
body.is-connected #hand-list>li{counter-increment:hand;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:var(--surface-2)}
body.is-connected #hand-list>li::before{content:counter(hand);flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--warn);color:#2a1c00;font-size:12px;font-weight:800}
body.is-connected #hand-list>li>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
body.is-connected #hand-list>li>button{min-height:34px;padding:0 10px;font-size:12.5px}
body.is-connected #hand-list>li>.give-floor{background:var(--accent);color:var(--accent-ink);border:0}
body.is-connected #hand-list>li.acknowledged{opacity:.6}
#floor-notice{position:fixed;top:calc(var(--header-h,60px) + 10px);left:50%;transform:translateX(-50%);z-index:35;max-width:calc(100vw - 24px);margin:0;padding:12px 20px;border-radius:999px;background:#2fd3b5;color:#03241d;font-size:14.5px;font-weight:700;line-height:1.35;text-align:center;box-shadow:0 12px 32px rgba(0,0,0,.45)}
@keyframes veyora-attention{0%{box-shadow:0 0 0 0 rgba(47,211,181,.75)}100%{box-shadow:0 0 0 14px rgba(47,211,181,0)}}
body.is-connected #meeting-toolbar-actions #mic.attention{animation:veyora-attention 1.2s ease-out infinite}
body.is-connected #videos .tile .check-badge{position:absolute;right:10px;bottom:10px;z-index:3;display:grid;place-items:center;min-width:34px;height:28px;padding:0 8px;border-radius:999px;background:rgba(9,10,12,.7);font-size:15px;line-height:1;pointer-events:none}
body.is-connected #videos .tile .check-badge[data-check=confused]{box-shadow:inset 0 0 0 2px var(--warn)}
body.is-connected .people-check{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
body.is-connected .check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:4px 0}
body.is-connected .meeting-popover .check-grid>button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:13.5px;font-weight:600;text-align:center}
body.is-connected .meeting-popover .check-grid>button[aria-pressed=true]{background:var(--accent-soft);border-color:rgba(47,211,181,.6);color:var(--accent-strong)}
body.is-connected .check-note{margin:6px 4px 0;font-size:12px;color:var(--muted)}
body.is-connected #check-counts{margin:4px 8px 8px;font-size:13.5px;color:var(--text)}
body.is-connected .meeting-popover #check-reset{width:100%;min-height:40px;text-align:center;background:var(--surface-2);border:1px solid var(--line);color:var(--text);border-radius:10px;font-weight:600}
body.is-connected #reactions .reaction-alert{position:absolute;top:-3px;right:-5px;min-width:20px;height:20px;padding:0 5px;border:2px solid var(--room-bg);border-radius:999px;background:var(--warn);color:#2a1c00;font-size:11px;font-weight:800;line-height:16px;box-sizing:border-box}
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 body.is-connected #videos .tile.hand-raised[data-hand-rank]::before{content:'✋ ' attr(data-hand-rank)}
 body.is-connected #meeting-toolbar-actions .toolbar-hands{position:absolute;top:-3px;left:-5px;min-width:20px;height:20px;padding:0 5px;border:2px solid var(--room-bg);font-size:11px;line-height:16px;box-sizing:border-box}
 #floor-notice{border-radius:16px;font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){body.is-connected #meeting-toolbar-actions #mic.attention{animation:none;box-shadow:0 0 0 3px #2fd3b5}}

/* ---- Polls and quizzes (2.62) ---- */
body.is-connected #polls-root{padding:0 0 12px}
body.is-connected #poll-form{display:grid;gap:8px;padding:14px 16px}
body.is-connected #poll-form h3,body.is-connected #polls-root .tool-section h3{margin:4px 0;font-size:15px}
body.is-connected #poll-form fieldset{margin:4px 0;padding:0;border:0;display:grid;gap:8px}
body.is-connected #poll-form legend{margin-bottom:6px;color:var(--muted);font-size:12.5px;font-weight:650}
body.is-connected .poll-kind{grid-template-columns:1fr 1fr}
body.is-connected .poll-kind label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px;font-size:13.5px}
body.is-connected .poll-kind label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
body.is-connected .poll-kind input,body.is-connected .poll-choice input,body.is-connected .poll-correct input{width:18px;height:18px;min-height:18px;flex:none;margin:0;accent-color:var(--accent)}
body.is-connected #poll-question{width:100%;min-height:64px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;resize:vertical}
body.is-connected .poll-option-row{display:flex;align-items:center;gap:8px}
body.is-connected .poll-option-row input[type=text]{flex:1;min-width:0;min-height:44px}
/* The shared form helper describes the 120-character rule; it stays for screen readers only. */
body.is-connected .poll-option-row .field-rule{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.is-connected .poll-option-row .field-error{flex-basis:100%;order:3;margin:0}
body.is-connected .poll-correct{display:flex;align-items:center;gap:6px;margin:0;font-size:12.5px;white-space:nowrap}
body.is-connected .poll-remove{flex:none;width:40px;min-width:40px;min-height:40px;padding:0}
body.is-connected #poll-launch{margin-top:6px}
body.is-connected #poll-form-status:empty{display:none}
body.is-connected .poll-list{display:grid;gap:12px;margin:8px 0 0;padding:0;list-style:none}
body.is-connected .poll-card{padding:14px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface-2)}
body.is-connected .poll-card[data-status=open]{border-color:rgba(47,211,181,.45)}
body.is-connected .poll-card h4{margin:6px 0 10px;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
body.is-connected .poll-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0}
body.is-connected .poll-tags span{padding:2px 8px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:11.5px;font-weight:650}
body.is-connected .poll-card[data-status=open] .poll-tags span:nth-child(2){background:var(--accent-soft);color:var(--accent-strong)}
body.is-connected .poll-answer{display:grid;gap:8px}
body.is-connected .poll-answer fieldset{display:grid;gap:8px;margin:0;padding:0;border:0}
body.is-connected .poll-choice{display:flex;align-items:center;gap:10px;min-height:46px;margin:0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;font-size:14px;cursor:pointer;overflow-wrap:anywhere}
body.is-connected .poll-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
body.is-connected .poll-results{display:grid;gap:10px;margin:4px 0 8px;padding:0;list-style:none}
body.is-connected .poll-results li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;font-size:13.5px}
body.is-connected .poll-option-label{overflow-wrap:anywhere}
body.is-connected .poll-count{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
body.is-connected .poll-bar{grid-column:1/-1;height:8px;border-radius:999px;background:var(--surface-4);overflow:hidden}
body.is-connected .poll-fill{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .3s}
body.is-connected .poll-results li.correct .poll-option-label{color:#86efac;font-weight:650}
body.is-connected .poll-results li.correct .poll-fill{background:#22c55e}
body.is-connected .poll-note{margin:6px 0;color:var(--muted);font-size:13px}
body.is-connected .poll-verdict{margin:6px 0;font-weight:700;font-size:14px}
body.is-connected .poll-verdict.right{color:#86efac}
body.is-connected .poll-verdict.wrong{color:var(--warn)}
body.is-connected .poll-card details{margin:6px 0}
body.is-connected .poll-card details ul{margin:6px 0 0;padding-left:18px;font-size:13px}
body.is-connected .poll-card .document-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
body.is-connected .poll-card [role=status]:empty{display:none}
body.is-connected .workspace-tab[data-workspace=polls][data-pending=true]{position:relative}
body.is-connected .workspace-tab[data-workspace=polls][data-pending=true]::after{content:'';position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 2px var(--surface)}
#poll-prompt{position:fixed;top:calc(var(--header-h,60px) + 10px);left:50%;transform:translateX(-50%);z-index:34;display:flex;align-items:center;gap:14px;max-width:min(560px,calc(100vw - 24px));padding:10px 10px 10px 18px;border:1px solid rgba(47,211,181,.5);border-radius:16px;background:#16191e;color:#f3f5f7;box-shadow:0 12px 32px rgba(0,0,0,.5)}
#poll-prompt p{margin:0;font-size:14px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}
#poll-prompt .poll-prompt-actions{display:flex;flex:none;gap:6px}
#poll-prompt button{min-height:40px;padding:8px 14px;border-radius:10px;font-size:13.5px;white-space:nowrap}
@media (max-width:700px){
 #poll-prompt{left:12px;right:12px;transform:none;max-width:none;flex-direction:column;align-items:stretch;gap:8px;padding:12px;top:calc(var(--header-h,56px) + 6px)}
 #poll-prompt .poll-prompt-actions button{flex:1}
 body.is-connected .poll-option-row{flex-wrap:wrap}
 body.is-connected .poll-option-row input[type=text]{flex-basis:calc(100% - 48px)}
}
body.is-connected .poll-student{padding:12px 16px}
body.is-connected :is(.poll-choice,.poll-kind label,.poll-correct){flex-direction:row;text-align:left}
body.is-connected .poll-student .poll-list{margin:0}
body.is-connected .poll-overview{padding:12px 16px}
body.is-connected .poll-overview+#poll-form{border-top:1px solid var(--line)}

/* ---- Breakout timer and automatic split (2.62) ---- */
.host-view .host-group-duration,.host-view .host-group-auto label{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;font-size:13px;font-weight:600}
.host-view .host-group-duration select,.host-view .host-group-auto input{min-height:44px;padding:8px 12px;border:1px solid #737c8c;border-radius:8px;background:#14161b;color:#fff;font:inherit}
.host-view .host-group-auto{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin:4px 0 4px}
.host-view .host-group-auto label{flex:1 1 140px}
.host-view .host-group-auto button{min-height:44px}
.host-view #host-group-timer-status:empty{display:none}
#breakout-timer{position:fixed;top:calc(var(--header-h,60px) + 10px);left:16px;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:33;margin:0;padding:8px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#16191e;color:#f3f5f7;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 10px 28px rgba(0,0,0,.45)}
#breakout-timer[data-urgent=true]{border-color:#f5b748;color:#f5b748}
@media (max-width:700px){#breakout-timer{left:12px;top:calc(var(--header-h,56px) + 6px);font-size:13px}}

/* ---- Recitation turn history (2.62) ---- */
.teaching-dialog .teaching-turns{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}
.teaching-dialog .teaching-turns summary{min-height:32px;font-weight:650;cursor:pointer}
.teaching-dialog .teaching-turns ol{display:grid;gap:4px;margin:8px 0;padding-left:22px}
.teaching-dialog .teaching-turns button{margin-top:6px}

/* ---- Media rules: red alerts (2.63) ---- */
body.is-connected .teaching-banner:not([hidden]){position:fixed;top:calc(var(--header-h,60px) + 10px);left:50%;transform:translateX(-50%);z-index:37;display:flex;align-items:center;gap:14px;width:max-content;max-width:min(640px,calc(100vw - 24px));margin:0;padding:12px 12px 12px 18px;border:1px solid #fecaca;border-radius:14px;background:#dc2626;color:#fff;font-size:15px;font-weight:700;box-shadow:0 12px 32px rgba(0,0,0,.5)}
body.is-connected .teaching-banner p{margin:0;color:#fff}
body.is-connected .teaching-banner button{flex:none;min-height:40px;padding:8px 16px;border:0;border-radius:10px;background:#fff;color:#b91c1c;font-weight:800}
body.is-connected .tile.teaching-breach{outline:3px solid #ef4444;outline-offset:-3px}
body.is-connected .tile.teaching-breach .tile-heading::after{color:#ef4444}
.teaching-dialog article.teaching-row-breach{border-inline-start:4px solid #ef4444;padding-inline-start:12px}
.teaching-dialog .teaching-violation{margin:4px 0;color:#fca5a5;font-weight:700}
@media (max-width:700px){body.is-connected .teaching-banner:not([hidden]){left:12px;right:12px;transform:none;width:auto;max-width:none;font-size:14px}}
/* The teacher's invitation (« … vous invite à activer cet appareil ») stays visible above the toolbar. */
body.is-connected .teaching-hint[role=status]:not([hidden]){position:fixed;bottom:calc(var(--toolbar-h,88px) + 12px);left:50%;transform:translateX(-50%);z-index:36;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,calc(100vw - 24px));margin:0;padding:10px 10px 10px 16px;border:1px solid rgba(47,211,181,.6);border-radius:14px;background:#16191e;color:#f3f5f7;font-size:14px;font-weight:650;box-shadow:0 12px 32px rgba(0,0,0,.5)}
body.is-connected .teaching-hint[role=status] button{flex:none;min-height:40px;padding:8px 14px;border-radius:10px}
@media (max-width:700px){body.is-connected .teaching-hint[role=status]:not([hidden]){left:12px;right:12px;transform:none;width:auto;max-width:none}}

/* ---- Arabic text on the whiteboard (2.64) ---- */
body.is-connected #board-text-toggle{margin-top:10px}
body.is-connected #board-text-panel{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-2)}
body.is-connected #board-text-panel[hidden]{display:none}
body.is-connected #board-text{min-height:52px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--text);font-family:"Noto Naskh Arabic","Amiri","Scheherazade New","Traditional Arabic",serif;font-size:24px}
body.is-connected .board-keys{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;direction:rtl}
body.is-connected .board-keys button{min-width:0;min-height:44px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-3);color:var(--text);font-family:"Noto Naskh Arabic","Amiri","Scheherazade New","Traditional Arabic",serif;font-size:22px;font-weight:500}
body.is-connected .board-harakat button{font-size:26px}
body.is-connected .board-text-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
body.is-connected .board-text-actions label{display:flex;flex-direction:column;gap:4px;margin:0;font-size:12.5px}
body.is-connected #board-text-help{margin:0;color:var(--muted);font-size:13px}
/* 2.65 session lexicon and revision cards (request 27). */
body.is-connected #lexicon-root{padding:0 0 12px}
body.is-connected #lexicon-root .tool-section h3{margin:4px 0;font-size:15px}
body.is-connected #lexicon-form label{display:block;margin:10px 0 4px}
body.is-connected #lexicon-form input,body.is-connected #lexicon-form textarea{width:100%;box-sizing:border-box}
body.is-connected #lexicon-word{font-family:"Noto Naskh Arabic","Amiri","Scheherazade New","Traditional Arabic",serif;font-size:24px}
body.is-connected #lexicon-form>button,body.is-connected .lexicon-keys{margin-top:8px}
body.is-connected .lexicon-list{display:grid;gap:10px;margin:8px 0 0;padding:0;list-style:none}
body.is-connected .lexicon-card,body.is-connected .lexicon-face{padding:12px 14px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface-2)}
body.is-connected .lexicon-card[data-mark=su]{border-color:rgba(47,211,181,.45)}
body.is-connected .lexicon-card[data-mark=a_revoir]{border-color:rgba(252,211,77,.55)}
body.is-connected .lexicon-word{margin:0;font-family:"Noto Naskh Arabic","Amiri","Scheherazade New","Traditional Arabic",serif;font-size:28px;line-height:1.9;text-align:center;overflow-wrap:anywhere}
body.is-connected .lexicon-meaning{margin:4px 0;font-weight:650;overflow-wrap:anywhere}
body.is-connected .lexicon-example{margin:4px 0;color:var(--muted);overflow-wrap:anywhere}
body.is-connected .lexicon-totals{margin:6px 0;color:var(--muted);font-size:13px}
body.is-connected .lexicon-marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
body.is-connected .lexicon-marks button{min-height:40px}
body.is-connected .lexicon-actions{margin-top:10px}
body.is-connected .lexicon-review-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
body.is-connected .lexicon-face{margin:8px 0;min-height:120px;display:flex;flex-direction:column;justify-content:center}
body.is-connected .lexicon-face .lexicon-word{font-size:40px}
body.is-connected .lexicon-counter{margin:6px 0 0;color:var(--muted);font-size:13px}
body.is-connected #lexicon-root .document-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
body.is-connected #lexicon-form{padding:14px 16px}
body.is-connected #lexicon-form-status:empty{display:none}
body.is-connected #lexicon-example{min-height:56px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;resize:vertical}
/* 2.67 consent before recording (request 50), chapters (40), waiting message (4). */
body.is-connected #recording-consent:not([hidden]){position:fixed;left:50%;bottom:calc(var(--toolbar-h,88px) + 12px);transform:translateX(-50%);z-index:38;width:max-content;max-width:min(560px,calc(100vw - 24px));box-sizing:border-box;padding:12px 16px;border:1px solid #fcd34d;border-radius:14px;background:#2a2312;color:#fff7e0;box-shadow:0 8px 24px #0008}
body.is-connected #recording-consent p{margin:0 0 8px}body.is-connected #recording-consent .recording-consent-status:empty{display:none}body.is-connected #recording-consent[data-decision=accept],body.is-connected #recording-consent[data-decision=refuse]{border-color:#4b5563;background:#1f2430}
body.is-connected .recording-consent-actions{display:flex;flex-wrap:wrap;gap:8px}body.is-connected .recording-consent-actions button{min-height:40px}
body.is-connected .record-chapter-form{display:grid;gap:6px;margin:8px 0;padding-top:8px;border-top:1px solid var(--line)}body.is-connected .record-chapter-form p:empty{display:none}
.record-chapter-list{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px;max-height:180px;overflow:auto}.record-chapter-list button{width:100%;text-align:start}
.host-waiting-message{display:grid;gap:6px;margin:6px 0 10px}.host-waiting-message textarea{width:100%;box-sizing:border-box;min-height:56px;padding:8px 10px;border:1px solid var(--line-strong,#3b4252);border-radius:10px;background:var(--surface-2,#1f2430);color:inherit;font:inherit;resize:vertical}.host-waiting-message p:empty{display:none}
/* 2.69 on-device chat translation (request 34) and right-to-left messages. */
body.is-connected .chat-translate-target{display:grid;gap:4px;margin:6px 0}
body.is-connected #chat-messages .chat-text{unicode-bidi:isolate}
body.is-connected #chat-messages button.chat-translate{min-height:32px;padding:4px 10px;font-size:12.5px;margin-inline-start:6px}
body.is-connected #chat-messages .chat-translation{margin:4px 0 0;color:var(--muted);font-style:italic;overflow-wrap:anywhere}
body.is-connected #chat-messages .chat-translation small{font-style:normal;font-size:11.5px}
body.is-connected #chat-messages .chat-translation-error{margin:4px 0 0;color:#fca5a5;font-size:12.5px}
#meeting-captions span[dir=auto]{unicode-bidi:isolate}
