/* Runtime skin. Design tokens and canvas styles are loaded unchanged before this. */
*{box-sizing:border-box}html,body{margin:0;min-width:0;min-height:100%;font:400 13px/1.4 var(--font-sans);color:var(--fg);background:var(--bg-window)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer;color:var(--fg);background:var(--bg-panel);border:1px solid var(--line);border-radius:8px;padding:7px 12px}button:disabled{cursor:default;color:var(--fg-disabled)}button:hover:enabled{background:var(--bg-hover)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}label{display:block;margin:10px 0}input,select,textarea{max-width:100%;color:var(--fg);background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:8px;padding:8px}input:not([type=checkbox]):not([type=color]),select{width:100%}input[type=checkbox]{accent-color:var(--accent)}input[type=color]{width:40px;height:32px;padding:3px}.inline,.chk{display:flex;align-items:center;gap:7px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}.note{font-size:11px;color:var(--fg-3)}h2,h3,p{margin:0 0 10px}h2{font-size:20px}h3{font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body:has(#classroom:not([hidden])) #welcome-bar,body:has(#classroom:not([hidden])) #entry-pages{display:none}#classroom{width:100%;height:100dvh}.w-top .w-title{max-width:260px}.w-top .w-chip{max-width:240px;overflow:hidden;text-overflow:ellipsis}.w-top .w-tb{border:0}.w-top .w-title b{font-size:14px}.w-rail .tl{border:0;padding:0}.w-stage{position:relative;grid-column:1}#board-surface{position:relative;width:min(100cqw,133.333cqh);max-width:100%!important;aspect-ratio:4/3!important;flex:none;background:var(--board-paper);border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0002,0 12px 32px #0002}#board-surface canvas{position:absolute;inset:0;width:100%;height:100%}#board-draft{touch-action:none}#board-laser{position:absolute;pointer-events:none;width:10px;height:10px;transform:translate(-50%,-50%);border:1px solid white;border-radius:50%;background:var(--laser);z-index:2}#board-editor{position:absolute;z-index:3;width:min(260px,95%);padding:8px;border:1px solid var(--accent);border-radius:10px;background:var(--bg-panel);box-shadow:var(--shadow-pop)}#board-text{width:100%;resize:vertical}#board-text-move{display:block;width:100%;cursor:move;touch-action:none}.w-bfoot{gap:2px;padding:0 4px}.w-bfoot .w-ib{width:28px;height:30px;border:0}.w-ib span{display:none}.w-bfoot .w-num{min-width:44px;padding:0 4px;font-size:11px}.zoom-num{font:11px var(--font-mono);min-width:34px;text-align:center}.w-bfoot .w-tbtn{padding:0 5px;border:0;font-size:11px}.sync-chip{border:0;background:var(--st-on-soft);color:var(--st-on);font-size:11px;padding:5px 8px;white-space:nowrap}.sync-chip:has([data-error=true]){background:var(--st-err-soft);color:var(--st-err)}.w-bfoot .w-tbtn .yi{width:14px}.only-full{display:none}#whiteboard:fullscreen{width:100vw;height:100dvh;grid-template-columns:64px minmax(0,1fr);padding:12px;gap:12px;background-color:var(--bg-stage)}#whiteboard:fullscreen .only-full{display:inline-flex}#whiteboard:fullscreen #board-fullscreen{display:none}#whiteboard:fullscreen .w-boardcol{padding-bottom:0}
.w-side{grid-column:2}.av-cards{display:flex;flex-direction:column;gap:6px}.video{position:relative;display:grid;place-items:center;background:var(--video-bg);color:var(--video-fg);overflow:hidden}.video video{object-fit:contain!important}#local-video>span{font-size:11px}.w-tea{margin:0}.w-tea .w-vid{display:grid;place-items:center}.w-mini{display:none}.is-col #side-panel{display:none}.is-col .w-mini{display:flex;flex-direction:column;gap:6px}.w-mini button{display:flex;align-items:center;gap:8px}.w-mini small{margin-left:auto}.w-seg{flex-shrink:0}.w-seg button{border:0}.w-seg .yi{width:14px}#students-pane{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1}#roster{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin}#roster>.student{flex:none}#selected-student,#students-pane>.chk{flex:none}#students-pane .chk{margin:0;font-size:11px}.student{border:1px solid var(--line);padding:10px;border-radius:12px}.student small{display:block;color:var(--fg-3)}.student .actions{gap:4px}.student button{font-size:11px;padding:5px}.chat-pane{min-height:0;flex:1;overflow:hidden}.chat-pane:not([open]){display:none}.chat-pane[open]{display:flex;flex-direction:column}.chat-pane>summary{display:none}#chat-messages{list-style:none;padding:0;margin:0;flex:1;min-height:40px;overflow:auto}#chat-messages li{max-width:91%;margin:8px 0;padding:8px;border-radius:10px;background:var(--bg-sunken);overflow-wrap:anywhere;white-space:pre-wrap}#chat-messages .chat-mine{margin-left:auto;background:var(--accent-soft)}#chat-messages p{margin:4px 0 0}#chat-messages small{font-size:10px;color:var(--fg-3)}#chat-form{flex-shrink:0;border-top:1px solid var(--line-subtle);padding-top:8px}#chat-input{width:100%;resize:none;font-size:12px}#chat-form .actions{margin:4px 0;gap:4px}#chat-form button{font-size:11px;padding:4px 7px}#chat-status{font-size:11px;color:var(--fg-3);margin:4px 0 0}#chat-unread:not(:empty){background:var(--st-err);color:var(--on-live);border-radius:10px;padding:1px 6px}.quanshi-frame{display:block;width:100%;height:250px;border:0;border-radius:12px;background:transparent}.w-dock .db{border:0;background:transparent;padding:0}.w-dockrow{background:var(--bg-stage)}.w-dock .db:hover{background:var(--dock-btn)}
#entry-pages{max-width:1120px;margin:40px auto;padding:0 24px}#login-panel{max-width:420px;margin:80px auto}#login-form{display:flex;flex-direction:column}#login-form button{margin-top:12px;background:var(--accent);color:var(--on-accent)}.lesson{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 8px;border-bottom:1px solid var(--line-subtle)}.lesson p{color:var(--fg-3);font-size:12px;margin:4px 0}.lesson button{flex-shrink:0}#message{position:fixed;bottom:88px;left:16px;max-width:min(520px,calc(100vw - 32px));z-index:50;border-radius:10px;color:var(--st-err);background:var(--st-err-soft);box-shadow:var(--shadow-pop);padding:10px 14px;white-space:pre-wrap}#message:empty{display:none}
dialog{width:min(850px,94vw);max-height:88dvh;border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--bg-panel);color:var(--fg);box-shadow:var(--shadow-dialog)}dialog::backdrop{background:var(--scrim)}dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}dialog header h2{margin:0}dialog .card{padding:0;box-shadow:none;gap:6px}dialog label{font-size:12px}dialog details{margin-bottom:16px}dialog summary{cursor:pointer;font-weight:600}.panel-dialog{width:min(560px,94vw)}#library-rows{min-height:150px;max-height:30vh;overflow:auto}.library-foot{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.library-foot span{flex:1;color:var(--fg-3);font-size:11px}#paste-dialog{width:min(620px,94vw)}#paste-preview{display:block;max-width:100%;max-height:45vh;object-fit:contain}#share-stage{position:relative;aspect-ratio:16/9;background:var(--video-bg);overflow:hidden}#share-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}#share-ink{touch-action:none;cursor:crosshair}#share-draft{pointer-events:none}#share-stage:fullscreen{width:100vw;height:100dvh}.menu,.tool-popover{border:1px solid var(--line);border-radius:14px;color:var(--fg);background:var(--bg-panel);box-shadow:var(--shadow-pop);padding:12px}.menu{inset:52px 12px auto auto;width:190px}.menu button{display:block;width:100%;border:0;text-align:left}.tool-popover{width:280px}.tool-popover h3{margin:0 0 12px}.connect-banner{padding:12px;border-radius:10px;background:var(--st-pending-soft);color:var(--st-pending);margin-bottom:16px}
@container (max-width:700px){.w-bfoot .w-tbtn span{display:none}.w-bfoot .sync-chip{max-width:100px;overflow:hidden;text-overflow:ellipsis}.w-bfoot .w-tbtn{width:28px;justify-content:center}}@container (max-width:450px){.zoom-num{min-width:28px;font-size:10px}.w-bfoot .w-num{min-width:38px;font-size:10px}.w-bfoot .sync-chip{max-width:80px;font-size:10px;padding:4px}.w-bfoot .w-ib,.w-bfoot .w-tbtn{width:25px}.w-bfoot .w-vsep{display:none}}
@media(max-width:1100px){.w-top .w-title{max-width:180px}.w-top .w-chip{max-width:180px;font-size:11px;padding:0 8px}.w-top{gap:6px}.w-stage{gap:8px;padding-left:10px;padding-right:10px}}
@media(max-width:850px){#classroom{grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr) 175px 80px}.w-stage{grid-row:2;grid-column:1;grid-template-columns:minmax(0,1fr);grid-template-rows:52px minmax(0,1fr);gap:8px;padding:10px 12px 0}.w-rail{flex-direction:row;width:100%;height:52px;padding:0 6px;justify-content:center;align-self:stretch;border-radius:16px}.w-rail .tl{width:52px;height:44px}.w-rail hr{height:28px;width:0;border-top:0;border-left:1px solid var(--line);margin:0 3px}.w-boardcol{padding-bottom:4px;gap:6px}.w-side{grid-row:3;grid-column:1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:10px;padding:8px 12px}.w-vhead{font-size:10px}.segsm button{font-size:10px;padding:0 5px}.av-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.65fr);gap:6px}.w-tea{align-items:start}.w-tea .w-vid{width:100%;aspect-ratio:4/3}.w-tea .info{display:none}.w-vrow{gap:5px}.w-panel{padding:8px;gap:6px}.w-dockrow{grid-row:4}.w-top .w-title{max-width:170px}.w-top .w-chip{max-width:140px;font-size:10px;padding:0 6px}.w-top .w-tb{padding:0 6px;font-size:11px}.w-top #sidebar-toggle{display:none}.w-top{gap:5px}.w-top .w-logo{width:24px;height:24px}.is-col{--side:236px}.is-col .w-mini{display:flex}.is-col .w-side{grid-template-columns:1fr 1fr}#students-pane .chk,#selected-student{display:none}#roster{gap:4px}.student{padding:6px}.student .actions{margin:4px 0 0}.w-seg{height:28px}.w-tea .w-vid>span{font-size:10px}#chat-messages{min-height:12px}#chat-input{height:34px;padding:5px}#chat-status{display:none}.chat-pane #chat-form .actions button{font-size:10px}#chat-length{font-size:10px}}
@media(max-width:620px){#classroom{height:auto;min-height:100dvh;grid-template-rows:52px 65vh 260px 80px}.w-top #connection{display:none}.w-top .w-title{max-width:150px}.w-top .w-title b{font-size:12px}.w-top .w-chip{max-width:115px}.w-top .w-tb span{display:none}.w-rail .tl{flex:1;min-width:0;font-size:8px}.w-rail .yi{width:16px}.w-rail{padding:0 2px}.w-rail hr{margin:0 1px}.w-stage{padding-left:6px;padding-right:6px}.w-side{padding:8px 6px}.w-dock{gap:2px;padding-left:8px;padding-right:8px}.w-dock .db{width:64px}.w-dock .db .l{font-size:9px}.w-side{grid-template-columns:1fr 1fr}.w-vhead{flex-wrap:wrap}.w-bfoot .w-num{font-size:9px;min-width:32px}.sync-chip{max-width:65px!important}.w-top{padding:0 6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important;animation:none!important}}
/* Media state cards never own or replace the SDK's children. */
.remote-tile{position:relative;container-type:inline-size}.sdk-video{position:absolute;inset:0;width:100%;height:100%}.video-state{position:absolute;inset:0;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;text-align:center;color:var(--video-fg);font-size:11px;pointer-events:none;padding:8px 8px 30px;background:var(--video-bg)}.video-state .av{width:36px;height:36px;font-size:15px}.video-label.np{max-width:calc(100% - 12px);font-size:10px}.w-tea .video-label{font-size:9px;height:18px;bottom:4px;left:4px}.w-tea .video-state{font-size:10px;padding-bottom:22px}.w-tea .video-state .av{width:22px;height:22px;font-size:11px}.small-class #remote-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.small-class #empty-remote{grid-column:1/-1}.small-class .w-tea{display:none}.student.w-card{padding:8px;gap:4px}.student.w-card .hd{font-weight:600;font-size:12px;padding:3px 0}.student.w-card>span{font-size:11px;color:var(--fg-3)}.student:not(.sel) .actions{display:none}.student .actions button{white-space:normal;text-align:left}.student.sel .actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:4px;margin:0}.student.sel .actions button{width:100%;min-width:0;overflow-wrap:anywhere}#chat-new{margin:4px auto;background:var(--accent-soft);color:var(--accent-text);font-size:11px}#chat-new[hidden]{display:none}.w-dock .db:disabled{color:var(--dock-fg)}.w-dock .db:disabled .c{opacity:.55}.w-top .w-tb,.w-rail .tl,.w-bfoot .w-ib,.w-bfoot .w-tbtn{color:var(--fg)}.w-rail .tl[aria-pressed=true]{color:var(--on-accent)}.w-rail .tl:disabled{color:var(--fg-disabled)}
@container(max-width:160px){.remote-tile .video-state{font-size:10px;gap:3px}.remote-tile .np{font-size:9px;height:18px;bottom:4px;left:4px;max-width:calc(100% - 8px)}.remote-tile .av{width:24px;height:24px;font-size:11px}}
@media(max-width:850px){.small-class #remote-videos{gap:4px}.small-class .av-cards{grid-template-columns:1fr}.student.sel .actions button{font-size:10px}.student.w-card>span{display:none}.student.w-card .hd{font-size:11px}.w-vrow.m-even .av-cards{grid-template-columns:1fr 1fr}.m-even .w-tea .w-vid{aspect-ratio:16/9}}
.library-content{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;border:1px solid var(--line);border-radius:12px;padding:8px;min-height:200px}.library-row,.library-columns{display:grid;grid-template-columns:32px minmax(0,1fr) 64px 90px 90px;align-items:center;gap:12px;padding:10px;border-radius:10px;border:1px solid transparent}.library-columns{position:sticky;top:0;z-index:1;background:var(--bg-panel);color:var(--fg-3);font-size:11px;font-weight:600;border-radius:0}.library-row.in-use .file-status{background:var(--accent-soft);color:var(--accent-text);font-weight:600;border-radius:8px;padding:4px 7px;justify-self:start}.file-kind,.file-updated{font-size:11px;color:var(--fg-3)}.file-updated{font-family:var(--font-mono)}.library-row.selected{border-color:var(--accent);background:var(--accent-soft)}.file-type{display:grid;place-items:center;width:32px;height:38px;border:1px solid var(--line);border-radius:7px;color:var(--accent-text);background:var(--bg-sunken);font:10px var(--font-mono);flex-shrink:0}.file-name{text-align:left;min-width:0;flex:1;overflow-wrap:anywhere;border:0;background:transparent;font-weight:600;padding:8px 0;box-shadow:none}.file-status{font-size:10px;color:var(--fg-3);white-space:nowrap}#library-preview{border-left:1px solid var(--line-subtle);padding:12px}#library-preview h3{font-size:13px;overflow-wrap:anywhere}#library-preview p{font-size:11px;color:var(--fg-3)}.file-preview{height:115px;display:grid;place-items:center;background:var(--bg-sunken);border-radius:10px;color:var(--fg-3);margin-bottom:12px}.library-foot #library-use{color:var(--on-accent);background:var(--accent)}.library-foot #library-use:disabled{color:var(--fg-disabled);background:var(--bg-sunken)}#library-status{font-size:12px;color:var(--fg-2)}#library-query{flex:1;min-width:0}#upload-task{border:1px solid var(--line-subtle);border-radius:12px;padding:10px 14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 18px}#upload-task>label,#upload-name,#upload-note{grid-column:1/-1;margin:2px 0;font-size:11px}#upload-note{color:var(--fg-3)}.progress-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;grid-column:1}#upload-task progress{width:100%;height:7px;accent-color:var(--accent);grid-column:2;margin:3px 0}#upload-task[data-phase=invalid],#upload-task[data-phase=failed]{border-color:var(--st-err)}#upload-task[data-phase=uncertain]{border-color:var(--st-warn)}#upload-task[data-phase=ready]{border-color:var(--st-on)}progress:indeterminate{appearance:none;background:repeating-linear-gradient(135deg,var(--accent-soft) 0 8px,var(--accent) 8px 16px);border-radius:6px}progress:indeterminate::-webkit-progress-bar{background:transparent}#upload-task .progress-row:nth-of-type(3){grid-column:1}.sound-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-subtle)}.sound-row b{display:block;font-size:13px}.sound-row small{display:block;color:var(--fg-3);font-size:11px}.sound-row button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}#audio-dialog section{padding-top:18px}#course-name{border-radius:10px;padding:12px;background:var(--bg-sunken);font-weight:600}#course-status,#share-status,#paste-status{font-size:12px;color:var(--fg-2);overflow-wrap:anywhere}#course-preview{margin-right:5px}.shape-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.shape-grid button{padding:4px;border:0;background:var(--bg-panel);border-radius:8px;display:flex;flex-direction:column;align-items:center;font-size:9px;gap:4px}.shape-grid svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6}.shape-grid button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.swatches{display:flex;gap:8px}.swatches button{width:26px;height:26px;padding:0;background:var(--swatch);border:2px solid var(--bg-panel);box-shadow:0 0 0 1px var(--line-strong);border-radius:50%}.swatches button:hover{background:var(--swatch)}.share-fullbar{display:none}#share-stage:fullscreen{display:grid;grid-template-rows:44px minmax(0,1fr);aspect-ratio:auto!important;overflow:hidden;background:var(--bg-stage)}#share-stage:fullscreen .share-fullbar{display:flex;align-items:center;gap:10px;padding:4px 16px;background:var(--bg-panel)}.share-viewport{position:relative;width:100%;aspect-ratio:16/9}#share-stage:fullscreen .share-viewport{width:min(100cqw,177.777cqh);align-self:center;justify-self:center}#share-stage:fullscreen{container-type:size}#share-stage:fullscreen .share-viewport{width:min(100vw,calc((100dvh - 44px)*1.777777))}#share-stage:fullscreen canvas{object-fit:fill}
@media(max-width:620px){.library-content{grid-template-columns:minmax(0,1fr)}#library-preview{display:none}.library-foot{flex-wrap:wrap}.library-foot span{display:none}#upload-task{grid-template-columns:1fr}#upload-task progress{grid-column:1}}
/* Keep action errors next to the action, including modal dialogs. */
#message{position:static;margin:12px 0;max-width:100%;box-shadow:none}#classroom>#message:not(:empty){position:absolute;bottom:86px;left:16px;max-width:min(520px,calc(100vw - 32px));z-index:30;box-shadow:var(--shadow-pop)}#share-dialog:has(#share-stage:not([hidden])){width:min(1000px,94vw)}#devices-dialog .connect-banner button{display:block;margin-top:8px}.w-rail #color-open:before{content:'';width:17px;height:17px;border-radius:50%;background:var(--selected-ink,#1479ff);box-shadow:0 0 0 2px var(--bg-panel),0 0 0 3px var(--line-strong)}.w-rail #color-open>.yi{display:none}
.small-class .av-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.small-class #remote-videos{display:contents}.small-class .w-tea{display:flex}.small-class .w-tea .w-vid{width:100%;aspect-ratio:16/9}.small-class .w-tea .info{display:none}.quanshi-frame{height:auto;aspect-ratio:1.2}.m-even .quanshi-frame{aspect-ratio:8/9}.small-class .quanshi-frame{aspect-ratio:1.1}.w-dock .db:disabled .l,.w-dock .db:disabled .s{color:var(--dock-fg);opacity:.8}
#library-dialog[open]{display:flex;flex-direction:column;height:min(672px,88dvh);gap:8px}#library-dialog>header{flex:none;margin:0 0 4px}#library-dialog>.actions{margin:0}#library-path{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;color:var(--fg-3);font-size:11px}#library-path button{padding:0;border:0;background:transparent;box-shadow:none;color:var(--accent-text);font-size:11px}#library-path [aria-current]{color:var(--fg);font-weight:600}.library-source{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.library-source .cap{font-size:11px;color:var(--fg-3)}#library-current{margin-left:auto;font-size:11px;max-width:55%;overflow-wrap:anywhere}#library-close{flex:none}#library-search{margin:0}#library-dialog .library-content{display:block;flex:1;min-height:100px;overflow:auto}#library-rows{min-height:0;max-height:none}#library-preview{display:none}#library-dialog #library-status{margin:0;flex:none}#library-dialog .library-foot{margin:0;padding-top:10px;flex:none}#upload-panel{margin:0;flex:none;font-size:12px}#upload-panel[open]{max-height:230px;overflow:auto}#upload-panel summary{margin:4px 0 8px}.file-name:hover{background:transparent}#upload-panel .actions{margin-bottom:0}
#login-panel{max-width:440px;margin:48px auto;padding:28px;gap:16px}#login-panel h2{font-size:22px}#login-panel p{font-size:12px;line-height:1.6}#login-panel .login-warning{padding:10px 12px;border-radius:10px;background:var(--st-warn-soft);color:var(--st-warn)}#login-form{gap:14px}#login-form label{font-size:12px;font-weight:600;margin:0}#login-form input{display:block;width:100%;height:38px;margin-top:6px;font-size:14px;font-weight:400}#login-form label small{display:block;font-size:11px;color:var(--fg-3);font-weight:400;margin-top:4px}.password-wrap{position:relative}.password-wrap input{padding-right:62px}.password-wrap #password-toggle{position:absolute;right:4px;top:4px;border:0;margin:0;padding:6px 10px;background:transparent;font-size:11px;color:var(--fg-2)}#login-form #login{height:40px;margin:0;font-weight:600}#login-form .login-note{font-size:11px;color:var(--fg-3);margin:0}#login-form [aria-invalid=true]{border-color:var(--st-err)}#entry-pages{max-width:1200px;margin-top:32px}.schedule-page{min-width:0}.schedule-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.schedule-toolbar h2{flex:1;font-size:24px;align-self:center;margin:0;min-width:180px}.schedule-toolbar label{font-size:11px;width:200px;margin:0}.schedule-toolbar select{margin-top:5px;height:36px}.schedule-toolbar button{height:36px}.schedule-toolbar #temporary{background:var(--accent);color:var(--on-accent)}.schedule-note{color:var(--fg-3);font-size:12px;margin-top:8px}.schedule-day{margin:28px 0 10px;font-size:12px;color:var(--fg-2)}.lesson.les{border:1px solid var(--line-subtle);border-radius:14px;padding:20px;background:var(--bg-panel);margin:8px 0;gap:20px}.lesson-time{font:600 20px var(--font-mono)}.lesson-main{min-width:0;flex:1}.lesson-main strong{font-size:15px}.lesson-state{font-size:11px;color:var(--fg-3)}.lesson button{background:var(--accent);color:var(--on-accent)}.schedule-empty{display:grid;place-items:center;border:1px dashed var(--line);border-radius:14px;color:var(--fg-3);margin-top:24px;min-height:200px}#welcome-bar #logout{font-size:12px}body:has(#schedule-panel[hidden]) #welcome-bar #logout{display:none}#welcome-status{font-size:11px}#lessons[aria-busy=true]{opacity:.65}
@media(max-width:760px){#entry-pages{padding:0 16px}#login-panel{margin:28px auto}.wp-top{padding:0 16px}.wp-top>.sub{display:none}.schedule-toolbar label{width:160px}.lesson.les{padding:14px;gap:12px;flex-wrap:wrap}.lesson-main{min-width:160px}.lesson-state{margin-left:auto}}
input[readonly]{background:var(--bg-sunken);color:var(--fg-2);border-color:var(--line)}.tool-popover .sr-only{position:absolute}#login-error-slot:empty{display:none}.shape-grid button[data-shape=lineDash] path{stroke-dasharray:3 3}#shape-grid button[data-shape=lineArrow] svg{position:relative}#shape-grid button[data-shape=lineArrow] svg{marker-end:url(#shape-arrow)}
.sdk-video video,#local-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain!important}.chat-pane::details-content{height:100%;min-height:0}.chat-body{display:flex;flex-direction:column;min-height:0;height:100%;flex:1}#chat-form{margin-top:auto}
.video-label{z-index:4}.video-state{z-index:3}
@media(max-width:850px){.w-side>#video-region{height:100%;overflow:hidden;min-height:0}.small-class .av-cards{max-height:calc(100% - 24px);min-height:0;overflow-y:auto;align-content:start;flex:1;scrollbar-width:thin}.small-class .w-vhead{flex:none}}
.w-bfoot .w-num{width:64px;min-width:64px;max-width:64px;overflow:hidden;text-overflow:ellipsis}
#library-dialog{width:min(940px,94vw)}input[type=file]::file-selector-button{font:inherit;border:1px solid var(--line);border-radius:6px;padding:4px 8px;background:var(--bg-sunken);color:var(--fg);margin-right:8px}
/* Full board keeps the same media and control DOM in the right-hand gutter. */
#classroom:fullscreen{width:100vw;height:100dvh;grid-template-columns:minmax(0,1fr) 200px;grid-template-rows:minmax(0,1fr);background:var(--bg-stage)}#classroom:fullscreen .w-top{grid-column:2;grid-row:1;align-self:start;display:flex;flex-direction:column;align-items:stretch;height:96px;padding:12px 12px 0 0;gap:6px;border:0;background:transparent;z-index:2}#classroom:fullscreen .w-top>.w-logo,#classroom:fullscreen .w-top>.w-title,#classroom:fullscreen .w-top>.w-sp,#classroom:fullscreen .w-top>.w-tb{display:none}#classroom:fullscreen .w-top .w-chip{flex:none;max-width:100%;justify-content:center}#classroom:fullscreen .w-stage{grid-column:1;grid-row:1;grid-template-columns:64px minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding:12px;gap:12px}#classroom:fullscreen .w-rail{flex-direction:column;width:64px;height:auto;padding:6px 0;align-self:start}#classroom:fullscreen .w-rail .tl{width:56px;height:44px;flex:none;font-size:10px}#classroom:fullscreen .w-rail hr{width:36px;height:0;border-left:0;border-top:1px solid var(--line);margin:3px 0}#classroom:fullscreen .w-side{grid-column:2;grid-row:1;display:flex;flex-direction:column;padding:104px 12px 12px 0;gap:8px;height:100%;overflow:hidden}#classroom:fullscreen #side-panel{display:none}#classroom:fullscreen .w-mini{display:flex;flex-direction:column;gap:6px;margin-top:auto}#classroom:fullscreen .w-mini button{font-size:11px;padding:8px}#classroom:fullscreen .w-mini small{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#classroom:fullscreen .w-dockrow{grid-column:2;grid-row:1;align-self:start;margin:324px 12px 0 0;height:auto;padding:0;z-index:2;background:transparent}#classroom:fullscreen .w-dock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:188px;padding:10px 8px;gap:4px;border-radius:16px}#classroom:fullscreen .w-dock .db{width:80px;height:64px}#classroom:fullscreen .only-full{display:inline-flex}#classroom:fullscreen #board-fullscreen{display:none}#classroom:fullscreen .w-vhead{font-size:10px;flex-wrap:wrap}#classroom:fullscreen .segsm button{font-size:10px;padding:0 5px}#classroom:fullscreen .m-even .av-cards{display:flex}#classroom:fullscreen .m-even .w-vid{max-height:88px}#classroom:fullscreen .small-class .av-cards{max-height:180px;overflow:auto}#classroom:fullscreen .w-bfoot{margin-bottom:0}
#classroom:fullscreen .m-even .w-vid{max-height:none}#classroom:fullscreen:has(.m-even) .w-dockrow{margin-top:380px}#classroom:fullscreen.full-panel #side-panel{display:flex;position:absolute;right:12px;bottom:90px;width:300px;height:340px;z-index:8;box-shadow:var(--shadow-pop)}.share-fullbar label{display:flex;align-items:center;gap:5px;margin:0;font-size:11px}.share-fullbar input[type=color]{width:30px;height:28px}.share-fullbar select{width:55px!important;padding:4px}.share-fullbar button{font-size:11px;padding:6px 9px}.share-fullbar b{font-size:12px}
[data-share-tool][aria-pressed=true]{background:var(--accent);color:var(--on-accent)}#share-stage:fullscreen .share-fullbar{gap:8px}#share-stage:fullscreen .share-fullbar>b{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:850px){.small-class .av-cards{container-type:inline-size;grid-auto-rows:max-content}.small-class .remote-tile,.small-class .w-tea .w-vid{height:calc((100cqw - 6px)*.28125);min-height:0;align-self:start}.small-class .w-tea{align-self:start}}

@media(max-width:700px){.library-row,.library-columns{grid-template-columns:24px minmax(0,1fr) 42px 36px 62px;gap:6px;padding:8px 4px}.file-type{width:24px;height:30px}.file-type .yi{width:16px}.file-status,.file-kind,.file-updated{font-size:10px}}

.library-row .file-name,.library-row .file-name:hover:enabled{background:transparent;box-shadow:none}.w-dock .db:disabled .c.off{opacity:1}
/* G: the board keeps its allocation while sharing; no zero-size resize or DOM move. */
#whiteboard:has(#share-stage:not([hidden]))>.w-rail,#whiteboard:has(#share-stage:not([hidden]))>.w-boardcol{visibility:hidden;pointer-events:none}
#share-stage{position:absolute;inset:12px 12px 8px;aspect-ratio:auto;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px;background:var(--bg-stage);border-radius:12px;min-width:0;min-height:0;z-index:4;padding:8px}
#share-summary{margin:0;color:var(--st-on);font-size:12px;overflow-wrap:anywhere}
.share-mainbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.share-mainbar button,.share-mainbar label{font-size:11px;margin:0}.share-mainbar label{display:flex;align-items:center;gap:4px}.share-mainbar button{padding:6px 8px}.share-mainbar select{width:52px;padding:4px}.share-mainbar input[type=color]{width:30px;height:28px}
.share-fit{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;container-type:size;background:var(--video-bg);border-radius:8px;overflow:hidden}
#share-stage .share-viewport{flex:none;width:min(100cqw,calc(100cqh * var(--share-ratio,1.777777)));aspect-ratio:var(--share-ratio,1.777777);height:auto;align-self:center;justify-self:center}
#share-stage:fullscreen{inset:auto;padding:8px;gap:8px;grid-template-rows:auto minmax(0,1fr)}
#share-stage:fullscreen .share-mainbar,#share-stage:fullscreen #share-summary{display:none}
#share-stage:fullscreen .share-fullbar{flex-wrap:wrap;gap:6px;padding:4px}
#share-stage:fullscreen .share-fullbar>b{max-width:none;white-space:normal;flex:1;min-width:160px}
#board-empty{position:absolute;z-index:3;width:min(360px,90%);border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg-panel);box-shadow:var(--shadow-pop);text-align:center}
#board-empty p{margin:8px 0;color:var(--fg-2)}#board-empty .actions{justify-content:center;margin-bottom:0}
/* G: provider-neutral card sizes, including short viewports and 2–5 students. */
#video-region{min-height:0;overflow:visible}
#video-region #agora-videos,#video-region #quanshi-host{width:var(--video-width,100%);max-width:100%;align-self:center;flex:none}
#video-region .quanshi-frame{width:100%;height:var(--video-height,250px);aspect-ratio:auto;margin:0}
#video-region .av-cards{display:flex;flex-direction:column;gap:6px;max-height:none;overflow:visible;min-height:0}
#video-region #remote-videos{display:flex;flex-direction:column;gap:6px}
#video-region .remote-tile{width:100%;height:auto;min-height:0;aspect-ratio:16/9;margin:0}
#video-region .w-tea{display:flex;align-items:center;width:100%;gap:6px}
#video-region .w-tea .w-vid{width:34%;height:auto;min-height:0;aspect-ratio:4/3;flex:none}
#video-region.m-even .w-tea .w-vid{width:100%;aspect-ratio:16/9}
#video-region.m-even .w-tea .info{display:none}
#video-region.small-class .av-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;grid-auto-rows:max-content;container-type:normal;align-content:start}
#video-region.small-class #remote-videos{display:contents}
#video-region.small-class .w-tea{align-self:start}
#video-region.small-class .w-tea .w-vid{width:100%;aspect-ratio:16/9;height:auto}
#video-region.small-class .w-tea .info{display:none}
#video-region .video video,#video-region .sdk-video video{object-fit:contain!important}
@media(max-width:850px){#video-region .w-tea .info{display:flex;font-size:9px;line-height:12px}#video-region .w-tea .info span:last-child{display:none}#video-region .w-tea .info b{font-size:10px}#video-region.m-even .w-tea .info,#video-region.small-class .w-tea .info{display:none}}
@container(max-width:100px){.remote-tile .video-label.np{font-size:8px;height:15px;line-height:15px;bottom:3px;left:3px;max-width:calc(100% - 6px);padding:0 4px}.remote-tile .video-state{font-size:9px;padding:2px 2px 18px;gap:0}.remote-tile .video-state .av{width:16px;height:16px;font-size:9px}}

#video-region .video-label.np{display:block;overflow:hidden;text-overflow:ellipsis;line-height:22px}#video-region .w-tea .video-label.np{line-height:18px}
@container(max-width:160px){.remote-tile .video-label.np{line-height:18px}}
@container(max-width:100px){.remote-tile .video-label.np{line-height:15px}}
/* Give the narrow video row enough height for three visible two-card rows. */
@media(min-width:621px) and (max-width:850px){#classroom:not(:fullscreen){grid-template-rows:52px minmax(0,1fr) 240px 80px}}
#local-video{container-type:inline-size}
@container(max-width:160px){.remote-tile .video-state:has(.av)>span:last-child{display:none}}
@container(max-width:90px){.w-tea .video-state{padding:0 0 18px;gap:0}.w-tea .video-state>.av{width:14px;height:14px;font-size:8px}.w-tea .video-state>span:last-child{display:none}.w-tea .video-label.np{font-size:8px;height:15px;line-height:15px;padding:0 3px}}
@container(max-width:160px){.w-tea .video-state:has(.av)>span:last-child{display:none}}

/* H: recovery text wraps above the paper; its action stays visible at every width. */
.w-boardcol{grid-template-rows:auto minmax(0,1fr) 44px}.board-state-line{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:1.5;color:var(--fg-2)}.board-state-line #board-status{flex:1;min-width:0;overflow-wrap:anywhere;white-space:normal}.board-state-line #board-retry{flex:none;padding:5px 10px;font-size:12px}.board-state-line:has([data-state="network"]),.board-state-line:has([data-state="server"]),.board-state-line:has([data-state="authentication"]),.board-state-line:has([data-state="courseware"]){color:var(--st-err)}

#other-members{padding:8px 10px;border-top:1px solid var(--line);font-size:12px}#other-members h3{font-size:12px;color:var(--fg-2);margin:4px 0}#other-member-rows p{display:flex;align-items:center;gap:8px;margin:8px 0}#other-member-rows p span{flex:1;overflow-wrap:anywhere}#other-member-rows small{font-size:11px;color:var(--fg-2)}

.lesson-state[data-state="live"]{background:var(--st-on-soft);color:var(--st-on)}.lesson-state[data-state="ended"],.lesson-state[data-state="cancelled"]{background:var(--bg-sunken);color:var(--fg-2)}.lesson-state[data-state="upcoming"]{background:var(--accent-soft);color:var(--accent)}.lesson-state[data-state="unknown"]{background:var(--st-warn-soft);color:var(--fg-2)}

.lesson-state[data-state="past"]{background:var(--bg-sunken);color:var(--fg-2)}
.w-card[role="button"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
