:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}#root:has(.lesson-shell){border-inline:none;width:100%}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--c-accent:#2b5797;--c-accent-soft:#7fb0ff;--c-danger:#e54d4d;--c-danger-deep:#b32424;--c-success:#4caf50;--c-warn:#e0b73c;--c-bg:#161616;--c-surface:#232323;--c-surface-2:#2a2a2a;--c-surface-3:#3a3a3a;--c-border:#444;--c-border-soft:#555;--c-text:#fff;--c-text-muted:#d7d7d7;--c-text-faint:#777;--r-sm:.4rem;--r-md:.5rem;--r-lg:.6rem;--sp-1:.2rem;--sp-2:.35rem;--sp-3:.5rem;--sp-4:.6rem;--sp-5:.8rem;--sp-6:1rem;--touch-min:44px}.center-screen{text-align:center;flex-direction:column;justify-content:safe center;align-items:center;height:100dvh;padding:1rem;display:flex;overflow-y:auto}.center-screen h1{margin:0 0 .75rem;line-height:1.25}.app-handoff{text-align:center;flex-direction:column;gap:.7rem;width:min(22rem,90vw);display:flex}.app-handoff p.muted{margin:0 0 .3rem}.app-handoff button,.app-handoff .ah-install{border:1px solid var(--border,#555);cursor:pointer;box-sizing:border-box;border-radius:.6rem;width:100%;padding:.75rem 1rem;font-size:1.05rem;text-decoration:none;display:block}.app-handoff .ah-primary{color:#fff;background:#2b5797;border-color:#2b5797}.app-handoff .ah-install{color:inherit;background:0 0}.app-handoff .ah-browser{color:inherit;opacity:.7;background:0 0;border:none;font-size:.95rem}.wait-spinner{border:3px solid #333;border-top-color:#2b5797;border-radius:50%;width:2.6rem;height:2.6rem;margin-bottom:1.2rem;animation:.9s linear infinite wait-spin}@keyframes wait-spin{to{transform:rotate(360deg)}}.wait-dots{gap:.55rem;margin-bottom:1.3rem;display:flex}.wait-dots span{background:#4f82d8;border-radius:50%;width:.9rem;height:.9rem;animation:1.3s ease-in-out infinite wait-bounce}.wait-dots span:nth-child(2){animation-delay:.16s}.wait-dots span:nth-child(3){animation-delay:.32s}@keyframes wait-bounce{0%,70%,to{opacity:.45;transform:translateY(0)scale(.8)}35%{opacity:1;transform:translateY(-.85rem)scale(1.05)}}.wait-calm{opacity:.6;max-width:22rem;font-size:.82rem}.prejoin{flex-direction:column;gap:.55rem;width:min(26rem,92vw);display:flex}.prejoin h1{margin:0 0 .2rem;font-size:1.3rem}.prejoin-video{aspect-ratio:16/9;object-fit:cover;background:#000;border-radius:.6rem;align-self:center;width:auto;max-width:100%;height:32vh;transform:scaleX(-1)}.prejoin-video-wrap{position:relative}.prejoin-refresh{color:#fff;cursor:pointer;opacity:.85;background:#0009;border:none;border-radius:.4rem;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.8rem;display:inline-flex;position:absolute;bottom:.5rem;right:.5rem}.prejoin-refresh:hover{opacity:1}.prejoin-level{background:#2a2a2a;border-radius:.3rem;height:.45rem;overflow:hidden}.prejoin-level-bar{background:#4caf50;height:100%;transition:width .1s linear}.prejoin-row{align-items:center;gap:.5rem;display:flex}.prejoin-row>svg{opacity:.8;flex:0 0 1.4rem}.pj-toggle{width:2.4rem;height:2.4rem;color:inherit;cursor:pointer;background:0 0;border:1px solid #555;border-radius:.5rem;flex:none;justify-content:center;align-items:center;display:flex}.pj-toggle:hover{background:#7f7f7f26}.pj-toggle.off{color:#e54d4d;border-color:#a33}.pj-toggle.playing{color:#7fd58a;border-color:#3f7a47}.prejoin-cam-off{color:#777;justify-content:center;align-items:center;display:flex}.prejoin-row select{min-width:0;color:inherit;background:0 0;border:1px solid #555;border-radius:.5rem;flex:1;padding:.6rem .8rem;font-size:1rem}.prejoin-row select option{color:#eee;background:#161616}.prejoin-rtt{border-radius:.4rem;padding:.45rem .6rem;font-size:.85rem}.prejoin-rtt.good{color:#7fd58a}.prejoin-rtt.mid{color:#e8c06a;background:#9e711040}.prejoin-rtt.bad{color:#ff8a84;background:#a0262040}.prejoin-enter{padding:.6rem;font-size:1.1rem}.check-label{cursor:pointer;align-items:center;gap:.3rem;font-size:.9rem;display:inline-flex}.error{color:#e54d4d}.join-form{flex-direction:column;gap:1rem;width:min(20rem,90vw);display:flex}.join-form input{color:inherit;background:0 0;border:1px solid #555;border-radius:.5rem;padding:.6rem .8rem;font-size:1.1rem}.join-form button{padding:.6rem;font-size:1.1rem}.prejoin-check{gap:.5rem}.prejoin-check input[type=checkbox]{accent-color:#2e7dff;width:1.05rem;height:1.05rem}.prejoin-check span{font-size:.92rem}.prejoin-cam-warn{color:#fff;background:#9e7110f2;border-radius:.5rem;margin-bottom:.5rem;padding:.55rem .7rem;font-size:.85rem;line-height:1.3}.lesson-shell{height:100%;min-height:0;display:flex}.room-root{position:fixed;inset:0;overflow:hidden}.lesson-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.side-panel{text-align:left;background:#161616;border-left:1px solid #444;flex-direction:column;width:min(20rem,90vw);display:flex}.lesson-shell.screens-compact .side-panel.people{width:min(13rem,45vw)}.screens-compact .person-name{font-size:.82rem}.screens-compact .people-list{padding:.4rem .5rem}.screen-full{z-index:50;background:#000;position:fixed;inset:0}.screen-full .lk-participant-tile{width:100%;height:100%}.screen-full-exit{z-index:51;color:#fff;cursor:pointer;background:#282828d9;border:none;border-radius:.6rem;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.9rem;display:flex;position:fixed;top:.6rem;left:50%;transform:translate(-50%)}.screen-full-exit:hover{background:#2b5797}.esc-hint{opacity:.7;border:1px solid #888;border-radius:.25rem;padding:0 .25rem;font-size:.7rem}.side-panel-header{border-bottom:1px solid #444;justify-content:space-between;align-items:center;padding:.6rem .8rem;display:flex}.side-panel-header button{color:inherit;cursor:pointer;background:0 0;border:none;font-size:1.1rem}.side-panel-close{border-radius:.5rem;justify-content:center;align-items:center;min-width:40px;min-height:40px;margin:-.4rem -.4rem -.4rem 0;display:flex}.side-panel-close:hover{background:#2a2a2a}.side-panel-titles{flex-direction:column;gap:.1rem;min-width:0;display:flex}.conf-topbar{background:#1f1f22;border-bottom:1px solid #333;flex:none;justify-content:center;align-items:center;gap:.45rem;padding:.4rem .9rem;display:flex;position:relative}.conf-logo{width:auto;height:28px;display:block;position:absolute;top:50%;left:.6rem;transform:translateY(-50%)}.conf-topbar-title{white-space:nowrap;text-overflow:ellipsis;max-width:70%;font-size:.92rem;font-weight:600;overflow:hidden}.conf-topbar .lesson-duration{opacity:.8}@media (width<=600px){.side-panel{z-index:30;width:100%;position:fixed;inset:0}.side-panel-header{padding-top:calc(.6rem + env(safe-area-inset-top,0px))}}.panel-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid #777;border-radius:.5rem;padding:.5rem .8rem}.panel-btn.active{background:#2b5797;border-color:#2b5797}.people-list{flex:1;padding:.5rem .8rem;overflow-y:auto}.people-footer{border-top:1px solid #333;flex-direction:column;gap:.4rem;padding:.5rem .8rem;display:flex}.panel-foot-btn{width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #444;border-radius:.5rem;justify-content:center;align-items:center;gap:.45rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.panel-foot-btn:hover{background:#2a2a2a}.lower-hand-btn{color:#e8b923;cursor:pointer;opacity:0;background:0 0;border:none;padding:.1rem;display:flex}.person-row:hover .lower-hand-btn,.lower-hand-btn:focus{opacity:1}.deep-ns-toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #444;border-radius:.5rem;align-items:center;gap:.45rem;padding:.5rem .6rem;font-size:.82rem;display:flex}.deep-ns-toggle:hover{background:#232323}.deep-ns-toggle.on{background:#1d3050;border-color:#2b5797}.deep-ns-toggle>span:first-of-type{flex:1}.deep-ns-state{opacity:.7;text-transform:uppercase;font-size:.72rem}.deep-ns-toggle.on .deep-ns-state{color:#7fb0ff;opacity:1}.person-avatar{color:#fff;border-radius:.35rem;flex:0 0 1.7rem;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.85rem;font-weight:600;display:flex}.person-dev{opacity:.85;align-items:center;display:flex}.person-dev.off{color:#e54d4d;opacity:1}.person-row{align-items:center;gap:.5rem;padding:.45rem 0;display:flex;position:relative}.row-menu-btn{color:inherit;opacity:.55;cursor:pointer;background:0 0;border:none;padding:.1rem;display:flex}.person-row:hover .row-menu-btn,.row-menu-btn:focus{opacity:1}.tile-menu.row-menu{z-index:40;position:absolute;top:100%;right:0}.row-menu-portal{z-index:60}.person-row.speaking{color:#4caf50}.person-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.person-role{font-size:.78rem}.rename-row{cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:.9rem}.sharing-banner{z-index:40;color:#fff;background:#2b5797;border-radius:0 0 .6rem .6rem;align-items:center;gap:.6rem;padding:.4rem 1rem;font-size:.9rem;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.sharing-banner button{color:#fff;cursor:pointer;background:#b32424;border:none;border-radius:.4rem;padding:.3rem .7rem}.sharing-banner button.sound-toggle{background:#1d3e6e;align-items:center;gap:.3rem;display:inline-flex}body.is-sharing .controls-row{margin-bottom:3.5rem}.share-warn,.share-hint{z-index:41;border-radius:.6rem;align-items:center;gap:.5rem;max-width:min(92vw,34rem);padding:.45rem .9rem;font-size:.88rem;line-height:1.25;display:flex;position:fixed;top:2.4rem;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #00000040}.share-warn{color:#fff;background:#b32424}.share-hint{color:#fff;background:#8a5a00}.share-warn svg,.share-hint svg{flex:none}.share-hint button{color:#fff;cursor:pointer;background:#ffffff38;border:none;border-radius:.4rem;flex:none;margin-left:.3rem;padding:.25rem .6rem}.ask-video-toast{z-index:40;color:#fff;background:#2b5797;border-radius:0 0 .6rem .6rem;align-items:center;gap:.6rem;padding:.4rem .5rem .4rem 1rem;font-size:.9rem;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.ask-video-toast .ask-video-on{color:#fff;cursor:pointer;background:#2e8b57;border:none;border-radius:.4rem;padding:.3rem .7rem}.ask-video-toast .ask-video-dismiss{color:#cfd8e6;cursor:pointer;background:0 0;border:none;border-radius:.4rem;align-items:center;padding:.25rem;display:inline-flex}.ask-video-toast .ask-video-dismiss:hover{color:#fff;background:#ffffff26}.lesson-layout{flex-direction:column;height:100%;min-height:0;display:flex}.lesson-layout>:first-child{flex:1;min-height:0}.simple-grid{flex:1;grid-auto-rows:1fr;gap:4px;min-height:0;padding:4px;display:grid;overflow-y:auto}.simple-grid .tile-wrap{aspect-ratio:auto;height:100%;min-height:0}.simple-grid .tile-wrap:not(.is-screen) video{object-fit:contain}.simple-grid-landscape .tile-wrap{aspect-ratio:16/9;height:auto}.simple-grid-landscape .tile-wrap video{object-fit:contain}.tile-wrap.is-screen .lk-participant-metadata{display:none}.screen-label{z-index:2;text-overflow:ellipsis;white-space:nowrap;color:#fff;background:#000000a6;border-radius:.3rem;max-width:calc(100% - 1rem);padding:.15rem .5rem;font-size:.8rem;position:absolute;bottom:.4rem;left:.4rem;overflow:hidden}.lk-focus-layout>.tile-wrap,.screen-full .tile-wrap{height:100%}.tile-wrap>.lk-participant-tile{container-type:inline-size}.tile-wrap .lk-participant-metadata{max-width:calc(100% - .5rem)}.tile-wrap .lk-participant-metadata-item{gap:.3em;min-width:0;max-width:100%;padding:.25em .5em;font-size:clamp(.5rem,5cqi,.8rem)}.tile-wrap .lk-participant-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:clamp(.62rem,7cqi,.9rem);overflow:hidden}.tile-wrap .lk-participant-metadata-item svg{transform-origin:50%;flex:none;width:1rem;height:1rem}@container (width<=200px){.tile-wrap .lk-participant-metadata-item svg{transform:scale(.82)}}@container (width<=120px){.tile-wrap .lk-participant-metadata-item svg{transform:scale(.68)}}.connection-toast{z-index:60;color:#fff;background:#1e1e1ee6;border-radius:.6rem;padding:.5rem 1.2rem;font-size:.95rem;position:fixed;top:3rem;left:50%;transform:translate(-50%)}.alone-hint{z-index:20;color:#fff;background:#2b5797eb;border-radius:.6rem;align-items:center;gap:.6rem;max-width:min(34rem,92vw);padding:.5rem 1rem;font-size:.88rem;display:flex;position:fixed;top:3rem;left:50%;transform:translate(-50%)}.alone-hint button{color:#fff;cursor:pointer;background:0 0;border:none;font-size:1rem}.tile-wrap .lk-participant-metadata .lk-connection-quality{display:none}.conn-badge{z-index:4;cursor:help;align-items:center;display:flex;position:absolute;bottom:.4rem;right:.4rem}.conn-tip{white-space:nowrap;color:#fff;text-align:left;z-index:60;pointer-events:none;background:#141414f2;border-radius:.4rem;margin-bottom:.35rem;padding:.4rem .6rem;font-size:.72rem;line-height:1.4;position:absolute;bottom:100%;right:0;box-shadow:0 4px 16px #0000008c}.lk-connection-quality[data-lk-quality=excellent]{color:#4caf50}.lk-connection-quality[data-lk-quality=good]{color:#e0b73c}.lk-connection-quality[data-lk-quality=poor],.lk-connection-quality[data-lk-quality=lost],.lk-connection-quality[data-lk-quality=unknown]{color:#e54d4d}.quality-hint{z-index:35;color:#fff;border-radius:.6rem;align-items:center;gap:.6rem;max-width:min(36rem,94vw);padding:.55rem .9rem;font-size:.85rem;display:flex;position:fixed;bottom:6.2rem;left:50%;transform:translate(-50%)}.quality-hint.poor{background:#9e7110f2}.quality-hint.lost{background:#a02620f2}.quality-hint-text{flex-direction:column;gap:.15rem;display:flex}.quality-hint button{color:#fff;cursor:pointer;background:0 0;border:none;align-self:flex-start;font-size:1rem}.cpu-toast{z-index:40;color:#fff;text-align:center;background:#be7800f2;border-radius:.6rem;max-width:90vw;padding:.5rem .9rem;font-size:.85rem;position:fixed;bottom:6.4rem;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #00000059}.cpu-badge{z-index:3;color:#fff;background:#be7800eb;border-radius:.4rem;align-items:center;padding:.22rem;display:flex;position:absolute;top:.4rem;left:.4rem}.tile-wrap:has(.hand-badge) .cpu-badge{left:2.6rem}.hand-badge{z-index:3;color:#fff;background:#2b5797e6;border-radius:.4rem;align-items:center;padding:.22rem;animation:1.6s ease-in-out infinite hand-pulse;display:flex;position:absolute;top:.4rem;left:.4rem}@keyframes hand-pulse{50%{transform:scale(1.15)}}.person-hand{color:#7fb0ff;flex:none;display:flex}.hands-float{z-index:30;text-overflow:ellipsis;white-space:nowrap;color:#fff;background:#2b5797eb;border-radius:.6rem;align-items:center;gap:.35rem;max-width:18rem;padding:.4rem .7rem;font-size:.85rem;display:inline-flex;position:fixed;bottom:6.4rem;left:1rem;overflow:hidden}.tile-menu button{align-items:center;gap:.45rem;display:flex}.volume-row{align-items:center;gap:.4rem;padding:.35rem .5rem;display:flex}.volume-row input[type=range]{accent-color:#2b5797;flex:0 0 6rem;width:6rem}.volume-val{text-align:right;opacity:.8;flex:0 0 2.6rem;font-size:.78rem}.rename-row{color:inherit;opacity:.75;display:flex}.rename-row:hover{opacity:1}.tile-wrap.mic-unavail .lk-track-muted-indicator-microphone{display:none}.tile-wrap.drag-over{outline-offset:-3px;border-radius:.5rem;outline:3px solid #2b5797}.tile-wrap[draggable=true]{cursor:grab}.tile-wrap[draggable=true] :is(img,video,canvas){-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.audio-list{padding:1rem;overflow-y:auto}.audio-participant{align-items:center;gap:.5rem;padding:.4rem 0;list-style:none;display:flex}.admin{text-align:left;letter-spacing:normal;color:#1f2330;max-width:60rem;margin:0 auto;padding:1.5rem 1rem;font-size:15px;line-height:1.45}.admin-header{align-items:center;gap:var(--sp-4);padding-bottom:var(--sp-4);margin-bottom:var(--sp-6);border-bottom:1px solid #e4e4ea;flex-wrap:wrap;display:flex}.admin-header h1{margin:0 auto 0 0;font-size:1.5rem;font-weight:700}.admin-card{border-radius:var(--r-lg);margin:0 0 var(--sp-6);background:#fff;border:1px solid #e4e4ea;padding:1rem 1.2rem 1.2rem;box-shadow:0 1px 3px #0000000d}.admin-card h2{margin:0 0 var(--sp-4);text-align:left;font-size:1.15rem;font-weight:700}.admin h1,.admin h2,.admin h3{color:#1f2330}.admin button{border-radius:var(--r-sm);color:inherit;cursor:pointer;background:#f3f3f5;border:1px solid #c9c9d0;padding:.4rem .75rem;font-family:inherit;font-size:.95rem;line-height:1.2}.admin button:hover{background:#e9e9ee}.admin button.primary,.admin .inline-form button[type=submit]{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.admin button.primary:hover,.admin .inline-form button[type=submit]:hover{filter:brightness(1.08)}.admin button.danger{color:var(--c-danger);border-color:var(--c-danger);background:0 0}.admin button.danger:hover{background:var(--c-danger);color:#fff}.admin button.link{min-height:0;color:inherit;background:0 0;border:none;padding:0;font-size:1rem}.admin button.link:hover{background:0 0}.inline-form{align-items:center;gap:var(--sp-3);margin:var(--sp-3) 0;flex-wrap:wrap;display:flex}.admin input,.admin select{border-radius:var(--r-sm);color:inherit;box-sizing:border-box;background:#fff;border:1px solid #c9c9d0;padding:.4rem .55rem;font-family:inherit;font-size:.95rem}.admin input:focus,.admin select:focus{outline:2px solid var(--c-accent-soft);outline-offset:0;border-color:var(--c-accent)}.muted{opacity:.65}.invite-off{opacity:.5}.lesson-list{padding:0;list-style:none}.lesson-group{margin-top:var(--sp-5)}.lesson-group-title{margin:0 0 var(--sp-1);opacity:.85;padding-bottom:var(--sp-1);border-bottom:1px solid #e4e4ea;font-size:.95rem}.lesson-item{padding:var(--sp-4) 0;border-top:1px solid #ededf1}.lesson-row{align-items:center;gap:var(--sp-4);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.lesson-kind{white-space:nowrap;flex:none}.lesson-actions{align-items:center;gap:var(--sp-1);flex:none;display:flex}.lesson-toggle{align-items:center;gap:var(--sp-2);flex:auto;min-width:0;display:inline-flex;overflow:hidden}.lesson-toggle b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin .icon-btn{color:#5a5f6b;border-radius:var(--r-sm);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:2rem;height:2rem;min-height:0;padding:0;display:inline-flex}.admin .icon-btn:hover{color:#1f2330;background:#eceef1}.admin .icon-btn.danger{color:var(--c-danger);background:0 0;border-color:#0000}.admin .icon-btn.danger:hover{color:var(--c-danger);background:#e54d4d1f}.admin .host-link-btn{align-items:center;gap:.3rem;display:inline-flex}.lesson-toggle .lesson-caret{opacity:.8;flex:none;transition:transform .15s}.lesson-toggle.open .lesson-caret{transform:rotate(90deg)}.lesson-toggle b{text-underline-offset:2px;text-decoration:underline}.lesson-details{margin:var(--sp-2) 0 var(--sp-1) 1.4rem}.lesson-meta{align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.invites{margin:var(--sp-3) 0 var(--sp-3) 0}.invites-head{align-items:center;gap:var(--sp-6);display:flex}.invite-table td{padding:var(--sp-1) var(--sp-4) var(--sp-1) 0}.invite-name,.invite-name-edit{align-items:center;gap:var(--sp-1);display:inline-flex}.invite-name .icon-btn{width:1.6rem;height:1.6rem}.login-tabs{gap:var(--sp-2);display:flex}.login-tabs button{border-radius:var(--r-sm);border:1px solid var(--c-border-soft);color:inherit;cursor:pointer;background:0 0;flex:1;padding:.45rem}.login-tabs button.active{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.glossary-edit{width:100%;margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);font:inherit;border-radius:var(--r-sm);resize:vertical;box-sizing:border-box;border:1px solid #c9c9d0}.download-btn{border-radius:var(--r-lg);background:var(--c-accent);color:#fff;margin-top:1.5rem;padding:.8rem 1.4rem;font-size:1.1rem;text-decoration:none;display:inline-block}.admin-link{color:inherit;margin-top:2rem;font-size:.9rem}.controls-row{flex-wrap:nowrap;align-items:center;gap:.25rem .5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.controls-row:before,.controls-row:after{content:"";margin:auto}.controls-row .lk-control-bar{flex-wrap:nowrap;padding:.4rem 0}@media (width<=560px){.admin{padding:1rem .6rem}.admin-header h1{font-size:1.25rem}.admin-card{padding:.8rem}.inline-form{gap:var(--sp-2)}.inline-form input,.inline-form select,.inline-form button{width:100%}.admin button,.admin input,.admin select{min-height:var(--touch-min)}}.controls-row:has(.zbar-btn){padding:.3rem .5rem calc(.35rem + env(safe-area-inset-bottom,0px));background:#141414;border-top:1px solid #2c2c2c;gap:.35rem;position:relative;overflow:visible}.zbar-item{align-items:stretch;display:flex}.zbar-measure{visibility:hidden;pointer-events:none;gap:.35rem;display:flex;position:absolute;top:0;left:0}.zbar-more{display:flex;position:relative}.zbar-more-menu{left:auto;right:.5rem;bottom:calc(4.6rem + env(safe-area-inset-bottom,0px));z-index:45;background:#1e1e1e;border:1px solid #333;border-radius:.7rem;flex-direction:column;gap:.2rem;min-width:min(13rem,90vw);max-width:calc(100vw - 1rem);max-height:calc(100vh - 6rem);padding:.4rem;display:flex;position:fixed;overflow-y:auto;box-shadow:0 8px 28px #0000008c}.zbar-more-menu .zbar-item{width:100%}.zbar-more-menu .zbar-btn{width:100%;height:auto;min-width:unset;flex-direction:row;justify-content:flex-start;gap:.6rem;padding:.55rem .75rem}.zbar-more-menu .zbar-btn .ic{height:auto}.zbar-more-menu .zbar-btn .lbl{opacity:1;font-size:.88rem}.zbar-more-menu .zbar-btn{position:relative}.zbar-more-menu .zbar-btn .ic{position:static}.zbar-more-menu .zbar-btn .zbadge{top:50%;left:auto;right:.6rem;transform:translateY(-50%)}.zbar-more-menu .zbar-split{width:100%}.zbar-more-menu .zbar-split .zbar-btn{flex:1}.zbar-more-menu .reaction-bar{flex-direction:column;gap:.2rem;width:100%}.zbar-more-menu .reaction-pop-wrap{width:100%}.zbar-btn{color:#d7d7d7;min-width:4.4rem;height:3.6rem;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:.6rem;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:.3rem .7rem;transition:background .12s,color .12s;display:flex}.zbar-btn:hover{color:#fff;background:#272727}.zbar-btn.active{color:#fff;background:#2b5797}.zbar-btn.danger{color:#ff5f57}.zbar-btn.off .ic:after{content:"";background:#e54d4d;border-radius:2px;width:26px;height:2.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.zbar-btn.speaking .ic:before{content:"";border:2px solid #4caf50;border-radius:50%;width:30px;height:30px;animation:1s ease-out infinite mic-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes mic-pulse{0%{opacity:.9;transform:translate(-50%,-50%)scale(.7)}to{opacity:0;transform:translate(-50%,-50%)scale(1.25)}}.zbar-btn:disabled{opacity:.6;cursor:default}.zbar-btn.unavail{opacity:.4;cursor:not-allowed}.zbar-btn.unavail:hover{color:#d7d7d7;background:0 0}.device-unavail-wrap{display:flex;position:relative}.device-unavail-hint{z-index:50;color:#ff8080;text-align:center;pointer-events:none;white-space:normal;background:#160000f7;border:1px solid #622;border-radius:.5rem;min-width:15rem;max-width:22rem;padding:.5rem .75rem;font-size:.8rem;line-height:1.5;display:none;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.device-unavail-wrap:hover .device-unavail-hint{display:block}.zbar-btn.danger:hover{color:#ff8a84;background:#5c1714}.zbar-btn .ic{align-items:center;height:24px;display:flex;position:relative}.zbar-btn .ic svg{display:block}.zbar-btn .lbl{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;opacity:.95;max-width:100%;font-size:.67rem;overflow:hidden}.zbar-split{align-items:stretch;display:flex;position:relative}.zbar-caret{color:#bdbdbd;cursor:pointer;background:0 0;border:none;border-radius:.35rem;justify-content:center;align-self:flex-start;align-items:center;width:1.1rem;height:1.5rem;margin-top:.45rem;margin-left:-.45rem;padding:0;display:flex}.zbar-caret:hover,.zbar-caret.open{color:#fff;background:#272727}.mic-menu{z-index:45;text-align:left;background:#1d1d1d;border:1px solid #555;border-radius:.6rem;min-width:16rem;max-width:20rem;max-height:60vh;padding:.35rem;position:absolute;bottom:calc(100% + .4rem);left:0;overflow-y:auto}.mic-menu-title{text-transform:uppercase;letter-spacing:.03em;opacity:.6;padding:.3rem .5rem .15rem;font-size:.72rem}.mic-menu-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:.4rem;align-items:center;gap:.2rem;padding:.4rem .5rem;font-size:.85rem;display:flex;overflow:hidden}.mic-menu-item:hover{background:#2b2b2b}.mic-menu-check{color:#7fb0ff;flex:0 0 1.1rem}.mic-menu-note{color:#ffd479;white-space:normal;padding:.3rem .5rem;font-size:.78rem;line-height:1.3}.mic-menu-sep{border-top:1px solid #3a3a3a;margin:.3rem .4rem}.mic-gain-row{align-items:center;gap:.4rem;padding:.35rem .7rem .5rem;display:flex}.mic-gain-row input[type=range]{accent-color:#2b5797;flex:1;min-width:7rem}.mic-gain-row input[type=range]:disabled{opacity:.4}.mic-gain-val{text-align:right;opacity:.8;flex:0 0 2.8rem;font-size:.78rem}.zbar-btn .zbadge{color:#fff;text-align:center;background:#4a4a4a;border:1px solid #141414;border-radius:.55rem;min-width:1.05rem;padding:0 .28rem;font-size:.62rem;font-weight:600;line-height:1.05rem;position:absolute;top:-.35rem;left:calc(100% + 2px);right:auto}.zbar-btn .zbadge.alert{background:#e02828}.zbar-btn.active .zbadge{background:#16365e}.lesson-duration{font-variant-numeric:tabular-nums;opacity:.85;border-left:1px solid #555;margin-left:.6rem;padding-left:.6rem}.lesson-title{z-index:15;text-overflow:ellipsis;white-space:nowrap;background:#1e1e1eb3;border-radius:1rem;max-width:60vw;padding:.3rem .9rem;font-size:.9rem;position:absolute;top:.6rem;left:50%;overflow:hidden;transform:translate(-50%)}.reaction-bar{gap:.35rem;display:flex}.reaction-pop-wrap{position:relative}.reaction-pop{z-index:25;background:#222;border:1px solid #555;border-radius:.6rem;gap:.2rem;padding:.3rem;display:flex;position:absolute;bottom:2.9rem;left:0}.reaction-pop button,.reaction-bar .panel-btn{font-size:1.1rem}.reaction-pop button{cursor:pointer;background:0 0;border:none}.reaction-overlay{z-index:22;pointer-events:none;gap:.5rem;display:flex;position:fixed;bottom:5rem;left:50%;transform:translate(-50%)}.fly-reaction{font-size:2.2rem;animation:4s ease-out forwards fly-up}@keyframes fly-up{0%{opacity:0;transform:translateY(20px)scale(.5)}15%{opacity:1;transform:translateY(0)scale(1.2)}80%{opacity:1}to{opacity:0;transform:translateY(-120px)scale(1)}}.hands-indicator{background:#6b4f1d;border-radius:.5rem;padding:.4rem .7rem;font-size:.85rem}.muted-warning{z-index:25;color:#fff;background:#b32424;border-radius:.6rem;padding:.6rem 1.1rem;position:fixed;top:3rem;left:50%;transform:translate(-50%)}.device-churn-hint{z-index:25;color:#fff;background:#8a5a00;border-radius:.6rem;align-items:center;gap:.4rem;max-width:min(92vw,30rem);padding:.6rem 1.1rem;display:flex;position:fixed;top:6rem;left:50%;transform:translate(-50%)}.leave-menu-wrap{position:relative}.leave-btn{color:#fff;cursor:pointer;background:#b32424;border:none;border-radius:.5rem;padding:.5rem .9rem}.tile-menu.leave-menu{position:absolute;top:auto;bottom:2.9rem;right:0}.lesson-layout>.economy-banner,.economy-banner{text-align:center;background:#6b4f1d;flex:none;padding:.3rem;font-size:.85rem}.focus-main-first.economy{flex:1;grid-template-columns:minmax(0,1fr);min-height:0}.spotlight-badge{z-index:5;background:#2b5797e6;border-radius:.4rem;padding:.1rem .35rem;font-size:.95rem;position:absolute;top:.3rem;left:2.6rem}.no-mic{z-index:5;background:#b42828d9;border-radius:.4rem;padding:.15rem .4rem;font-size:.8rem;position:absolute;top:.3rem;left:.3rem}.tile-wrap{width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative}.tile-wrap>.lk-participant-tile{flex:1;min-width:0;min-height:0}.tile-menu-btn{z-index:5;color:#fff;cursor:pointer;opacity:0;background:#141414bf;border:none;border-radius:50%;width:1.9rem;height:1.9rem;font-size:1rem;transition:opacity .15s;position:absolute;top:.3rem;right:.3rem}.tile-wrap:hover .tile-menu-btn{opacity:1}@media (hover:none){.tile-menu-btn{opacity:.7}}.tile-menu{z-index:6;color:#f1f1f1;background:#222;border:1px solid #555;border-radius:.5rem;flex-direction:column;width:max-content;min-width:8.5rem;max-width:min(16rem,90vw);display:flex;position:absolute;top:2.4rem;right:.3rem;overflow:hidden}.tile-menu button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.55rem .9rem}.tile-menu button:hover{background:#333}.focus-main-first .lk-carousel .tile-wrap{aspect-ratio:16/9;flex:none}.focus-main-first .lk-carousel[data-lk-orientation=vertical] .tile-wrap{width:100%;height:auto}.focus-main-first .lk-carousel[data-lk-orientation=horizontal] .tile-wrap{width:auto;height:100%}.rename-self{cursor:pointer;background:0 0;border:1px solid #777;border-radius:.5rem;padding:.5rem .7rem}.mute-all{color:inherit;cursor:pointer;background:0 0;border:1px solid #777;border-radius:.5rem;padding:.5rem .9rem}.audio-participant.speaking{color:#4caf50}.lesson-layout .focus-main-first.lk-focus-layout{grid-template-columns:minmax(0,5fr) minmax(0,1fr)}@media (aspect-ratio<=1){.lesson-layout .focus-main-first.lk-focus-layout{grid-template-rows:minmax(0,4fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}}.start-audio{z-index:10;color:#000;cursor:pointer;background:#e6a23c;border:none;border-radius:.6rem;padding:.7rem 1.2rem;font-size:1rem;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.back-to-grid{z-index:7;color:#fff;cursor:pointer;background:#141414cc;border:none;border-radius:.5rem;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.85rem;display:inline-flex;position:absolute;top:.5rem;left:.5rem}.back-to-grid:hover{background:#2b5797f2}.chat-messages{flex-direction:column;flex:1;gap:.5rem;padding:.8rem;display:flex;overflow-y:auto}.chat-msg{flex-direction:column;display:flex}.chat-from{opacity:.65;font-size:.78rem}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere}.chat-body a{color:#7fb0ff}.chat-image{margin-top:.3rem;display:inline-block}.chat-image img{border-radius:.5rem;max-width:100%;max-height:14rem;display:block}.chat-file{color:inherit;border:1px solid #444;border-radius:.5rem;align-items:center;gap:.45rem;margin-top:.3rem;padding:.45rem .6rem;text-decoration:none;display:flex}.chat-file:hover{background:#232323}.chat-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chat-file-size{opacity:.6;font-size:.72rem}.chat-error{padding:0 .6rem .4rem;font-size:.8rem}.chat-form{border-top:1px solid #444;flex-direction:column;gap:.45rem;padding:.6rem;display:flex}.chat-form textarea{box-sizing:border-box;resize:none;width:100%;min-height:4.2rem;max-height:10rem;color:inherit;font:inherit;background:0 0;border:1px solid #555;border-radius:.4rem;padding:.5rem .6rem;line-height:1.35}.chat-form-row{align-items:center;gap:.4rem;min-width:0;display:flex}.chat-form-row .chat-to{flex:1;min-width:0}.chat-send{white-space:nowrap}.chat-msg.private{border-left:2px solid #b58a2c;padding-left:.45rem}.chat-private-badge{color:#e3b04b;margin-left:.4rem;font-size:.74rem}.chat-to{max-width:7.5rem;color:inherit;background:#161616;border:1px solid #555;border-radius:.4rem;padding:.3rem;font-size:.8rem}.spin{animation:1s linear infinite wait-spin}.muted-warning{align-items:center;gap:.4rem;display:flex}.chat-attach{color:inherit;cursor:pointer;background:0 0;border:1px solid #555;border-radius:.4rem;padding:0 .55rem;font-size:1rem}.chat-attach:hover{background:#232323}.speaking-dot{background:#4caf50;border-radius:50%;width:.6rem;height:.6rem;display:inline-block}.chat-react-trigger{color:inherit;opacity:0;cursor:pointer;vertical-align:middle;background:0 0;border:none;padding:0 .15rem;line-height:1}.chat-msg:hover .chat-react-trigger{opacity:.55}.chat-react-trigger:hover{opacity:1!important}.msg-footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;min-height:1.1rem;margin-top:.15rem;display:flex}.react-add-wrap{align-items:center;display:inline-flex;position:relative}.reaction-picker{z-index:6;background:#2a2a2a;border:1px solid #555;border-radius:.5rem;flex-wrap:wrap;gap:.1rem;width:max-content;max-width:14rem;padding:.3rem .4rem;display:flex;position:absolute;bottom:calc(100% + .25rem);right:0;box-shadow:0 4px 16px #00000080}.reaction-picker button{cursor:pointer;background:0 0;border:none;border-radius:.3rem;padding:.15rem .2rem;font-size:1.15rem;line-height:1}.reaction-picker button:hover{background:#3a3a3a}.msg-reactions{flex-wrap:wrap;gap:.25rem;display:flex}.msg-reaction{color:inherit;cursor:pointer;background:0 0;border:1px solid #555;border-radius:.9rem;align-items:center;gap:.2rem;padding:.15rem .45rem;font-size:.85rem;line-height:1.4;display:inline-flex}.msg-reaction:hover{background:#2a2a2a}.msg-reaction.mine{background:#1d3050;border-color:#2b5797}.msg-reaction span{opacity:.85;font-size:.78rem}.emoji-wrap{position:relative}.emoji-picker-grid{z-index:30;background:#2a2a2a;border:1px solid #555;border-radius:.5rem;grid-template-columns:repeat(6,1fr);gap:.05rem;width:12rem;padding:.35rem;display:grid;position:absolute;bottom:calc(100% + .3rem);left:0}.emoji-picker-grid button{cursor:pointer;background:0 0;border:none;border-radius:.3rem;padding:.2rem;font-size:1.2rem;line-height:1}.emoji-picker-grid button:hover{background:#3a3a3a}.chat-reply-private{color:#7fb0ff;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0 .25rem;font-size:.72rem}.chat-reply-private:hover{opacity:1}
