.language-picker{flex-direction:column;gap:.25rem;min-width:0;display:flex}.language-picker-list{overscroll-behavior:contain;border:1px solid var(--hairline-strong);background:var(--surface);border-radius:.5rem;max-height:310px;margin:0;padding:0;list-style:none;overflow-y:auto}.language-picker-option{box-sizing:border-box;overflow-wrap:anywhere;cursor:pointer;border-bottom:1px solid var(--hairline);align-items:center;gap:.5rem;min-height:44px;padding:.25rem .75rem;display:flex}.language-picker-option:last-child{border-bottom:0}.language-picker-option[aria-selected=true]{background:var(--accent-surface);font-weight:600}.language-picker-option[aria-selected=true]:after{content:"✓";margin-inline-start:auto}.language-picker-option[data-active]{outline:2px solid var(--accent);outline-offset:-2px}.language-picker-option[aria-disabled=true]{color:var(--text-muted);cursor:not-allowed}.language-picker-none{color:var(--text-muted)}.language-picker-count{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.language-chosen{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.language-chosen-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;min-width:0;display:flex}.language-chosen-name{overflow-wrap:anywhere;align-self:center;min-width:0;font-weight:600}.language-chosen-row button{min-width:44px;min-height:44px}.language-chosen-row label{align-self:center}.invite-overlay{width:100%;max-width:none;height:var(--invite-vvh,100dvh);box-sizing:border-box;background:var(--bg);max-height:none;color:var(--text);border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.invite-overlay::backdrop{background:var(--bg)}.invite-overlay-body{box-sizing:border-box;flex-direction:column;gap:.75rem;max-width:32rem;margin:0 auto;padding:1rem;display:flex}.invite-overlay-body h2{margin:0}.invite-overlay-body h2:focus{outline:none}.invite-overlay-body p{overflow-wrap:anywhere;margin:0}.invite-choices{flex-direction:column;gap:.5rem;display:flex}.invite-choice{border:1px solid var(--border-control);width:100%;min-height:3rem;padding:.5rem 1rem;font-weight:600}.invite-notice{color:var(--text-muted)}.invite-inviter{align-items:center;gap:.5rem;display:flex}.invite-not-me{background:0 0;border:1px solid;align-self:flex-start;min-height:44px;padding:0 1rem}.invite-page{box-sizing:border-box;flex-direction:column;gap:.75rem;max-width:32rem;margin:0 auto;padding:1rem;display:flex}.invite-page h2:focus{outline:none}.invite-page p{overflow-wrap:anywhere;margin:0}.invite-page form{flex-direction:column;gap:.75rem;display:flex}.invite-page label{flex-direction:column;gap:.25rem;display:flex}.invite-page input:not([type=checkbox]),.invite-page select{min-height:44px;font:inherit;box-sizing:border-box;max-width:100%;padding:0 .5rem}.invite-page fieldset{border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:.25rem;margin:0;padding:.5rem .75rem;display:flex}.invite-page .invite-check{flex-direction:row;align-items:center;gap:.5rem;min-height:44px}.invite-page .invite-check input[type=checkbox]{flex:none;width:44px;height:44px;margin:0}.invite-spoken-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.invite-actions{flex-wrap:wrap;gap:.5rem;display:flex}.invite-actions button{padding:0 1rem}.invite-reference{font-family:var(--font-mono);white-space:nowrap}.secure-page h1{margin:0;font-size:1.25rem}.secure-both p+p{margin-top:.5rem}.lesson-room.lesson-room-wide .lesson-wide .lesson-board-area{flex-direction:column;gap:.5rem;display:flex;overflow:hidden}.lesson-room.lesson-room-wide .lesson-wide .lesson-board-area>*{flex:none}.lesson-room.lesson-room-wide .lesson-wide .lesson-board-area>.whiteboard{flex:1 1 0;height:auto;min-height:0;overflow-y:auto}.lesson-room .lesson-title{min-width:0;max-width:100%}.lesson-room-phone .lesson-topbar .lesson-title{flex:10rem}.lesson-room .lesson-title,.lesson-room .lesson-title button{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lesson-room .lesson-title button{text-align:start;max-width:100%}.lesson-room-phone .lesson-title button{width:100%}.contour-line{font-family:var(--font-hanzi);color:var(--text);--contour-py-scale:.3;--contour-stroke:2px;flex-wrap:wrap;align-items:flex-start;line-height:1;display:inline-flex}.contour-word{white-space:nowrap;margin-right:.3em;display:inline-flex}.contour-word:last-child{margin-right:0}.contour-syl{text-align:center;flex-direction:column;align-items:stretch;padding:0 .03em;display:inline-flex}.contour-hz{line-height:1.12;display:block}.contour-say{min-width:1.5em;font-size:max(var(--text-xs), calc(var(--contour-py-scale) * 1em));align-self:center;margin-top:.3em;padding-top:1.05em;display:block;position:relative}.contour-mark{width:100%;height:.8em;color:var(--text-muted);position:absolute;top:0;left:0;overflow:visible}.contour-dot{background:currentColor;border-radius:50%;width:.26em;height:.26em;margin:-.13em 0 0 -.13em;position:absolute;top:62%;left:50%}.contour-mark path{fill:none;stroke:currentColor;stroke-width:var(--contour-stroke);stroke-linecap:round;stroke-linejoin:round}.contour-py{font-family:var(--font-pinyin);letter-spacing:.01em;white-space:nowrap;padding:0 .1em;line-height:1.3;display:block}.contour-hv{color:var(--text-muted);letter-spacing:-.02em;font-size:.85em}.contour-punct .contour-hz{padding-right:.05em}.contour-line.is-above .contour-syl{flex-direction:column-reverse}.contour-line.is-above .contour-say{margin:0 0 .35em}.contour-line[data-pinyin=hidden] .contour-say{visibility:hidden}.contour-syl:focus-within .contour-hz{color:var(--accent-text)}.contour-syl:focus-within .contour-mark{color:var(--text)}.photo-editor{flex-direction:column;align-items:flex-start;gap:.75rem;max-inline-size:100%;display:flex}.photo-editor-frame{aspect-ratio:1;border:1px solid var(--hairline-strong);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:var(--control);border-radius:12%;inline-size:min(16rem,100%);position:relative;overflow:hidden}.photo-editor-frame:active{cursor:grabbing}.photo-editor-frame:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.photo-editor-picture{max-inline-size:none;pointer-events:none;-webkit-user-drag:none;max-width:none;position:absolute}.photo-editor-picture.is-loading{visibility:hidden}.photo-editor-hint{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;animation:4s ease-in-out both photo-editor-hint-fade;display:flex;position:absolute;inset:0}.photo-editor-hint-hand{color:var(--on-video);filter:drop-shadow(0 1px 2px var(--photo-hint-scrim));animation:1.3s ease-in-out 3 alternate photo-editor-hint-slide;display:inline-flex}.photo-editor-hint-chip{background:var(--photo-hint-scrim);color:var(--on-video);white-space:nowrap;border-radius:999px;padding:.35rem .75rem;font-size:.9rem}@keyframes photo-editor-hint-slide{0%{transform:translate(-2.5rem)}to{transform:translate(2.5rem)}}@keyframes photo-editor-hint-fade{0%{opacity:0}10%,85%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.photo-editor-hint,.photo-editor-hint-hand{animation:none}}.photo-editor-controls{flex-wrap:wrap;align-items:center;gap:.75rem;max-inline-size:100%;display:flex}.photo-editor-pad{grid-template-columns:repeat(3,minmax(44px,auto));grid-template-areas:".up.""left centre right"".down.";gap:.25rem;display:grid}.photo-editor-up{grid-area:up}.photo-editor-left{grid-area:left}.photo-editor-centre{grid-area:centre}.photo-editor-right{grid-area:right}.photo-editor-down{grid-area:down}.photo-editor-pad button,.photo-editor-zoom button{min-block-size:44px;min-inline-size:44px;font-size:1.1rem}.photo-editor-zoom{align-items:center;gap:.25rem;max-inline-size:100%;display:flex}.photo-editor-zoom input[type=range]{flex:auto;min-block-size:44px;inline-size:8rem;min-inline-size:0;margin:0}.photo-sheet .photo-preview.photo-editor-face{border-radius:8px;block-size:4rem;inline-size:4rem}.photo-editor-result{align-items:center;gap:.75rem;display:flex}@font-face{font-family:Noto Sans SC;src:url(/assets/NotoSansSC-Regular-2.004-common-zolqwURT.woff2)format("woff2"),url(/assets/NotoSansSC-Regular-2.004-common-Bs0KxgZy.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/assets/Lora-Variable-CPruou0W.woff2)format("woff2"),url(/assets/Lora-Variable-C2-beQ_z.woff)format("woff");font-weight:400 700;font-style:normal;font-display:swap}:root{--ink-950:#0f1127;--ink-900:#1b1d40;--ink-800:#2a2c5d;--ink-700:#3c3f7f;--ink-600:#5257a3;--mist-600:#5f6275;--mist-500:#6d7083;--mist-400:#9b9dab;--mist-300:#c8cad2;--mist-200:#e3e4ea;--paper-0:#fff;--paper-50:#fdfaf4;--paper-100:#f6f2ea;--paper-200:#ede7dc;--dawn-100:#feeddd;--dawn-300:#f6cba5;--dawn-400:#f6aa72;--dawn-500:#ee8b49;--dawn-700:#a44c1d;--dawn-900:#4a200c;--jade-100:#dff7eb;--jade-300:#84d1af;--jade-600:#1c7b5a;--jade-900:#0d3325;--crimson-100:#feebea;--crimson-300:#f19e9b;--crimson-600:#ba2936;--crimson-900:#481b1b;--bg:var(--paper-50);--surface:var(--paper-100);--surface-sunken:var(--paper-200);--border:var(--mist-200);--border-control:var(--mist-500);--text:var(--ink-900);--text-muted:var(--mist-600);--primary:var(--dawn-400);--primary-hover:var(--dawn-500);--on-primary:var(--ink-900);--accent-text:var(--dawn-700);--brand:var(--ink-900);--on-brand:var(--paper-50);--brand-dot:var(--dawn-400);--success:var(--jade-600);--danger:var(--crimson-600);--focus:var(--ink-600);--state-due:var(--dawn-700);--state-due-bg:var(--dawn-100);--state-verified:var(--jade-600);--state-verified-bg:var(--jade-100);--state-waiting:var(--ink-600);--state-waiting-bg:var(--mist-200);--state-error:var(--crimson-600);--state-error-bg:var(--crimson-100);--state-neutral:var(--mist-600);--state-neutral-bg:var(--paper-200);--board:var(--paper-0);--on-board:var(--ink-900);--video:var(--ink-950);--on-video:var(--paper-50);--photo-hint-scrim:#000000b8;--scrim:#0f112773;--shadow-card:0 1px 0 var(--border), 0 10px 30px #0f11270f;--shadow-overlay:0 0 0 1px var(--border), 0 12px 40px #0f11272e;--font-latin:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-cjk:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-ui:var(--font-latin);--font-hanzi:var(--font-cjk);--font-pinyin:var(--font-cjk);--font-display:"Lora", Georgia, "Times New Roman", serif;--font-wordmark:"Lora", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--hanzi-practice:4rem;--input-min-text:1rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-sheet:1.25rem;--radius-pill:999px;--ease:cubic-bezier(.2, .7, .2, 1);--dur-fast:.15s;--dur:.25s;--dur-slow:.35s;--target-touch:2.75rem;--target-pointer:2rem;--target-min:1.5rem;--target-gap:.5rem;--gutter-phone:1.25rem;--gutter-desktop:1.75rem;--row-touch:2.75rem;--row-compact:2.25rem;--pane-chat:21.25rem;--tab-bar:3.5rem;--toast-ms:8000;--focus-width:2px;--focus-offset:2px;--z-sticky:10;--z-sheet:40;--z-dialog:60;--z-toast:70;--content-card:35rem;--content-read:68ch}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--ink-950);--surface:var(--ink-900);--surface-sunken:var(--ink-950);--border:var(--ink-800);--border-control:var(--mist-500);--text:var(--paper-50);--text-muted:var(--mist-400);--primary:var(--dawn-400);--primary-hover:var(--dawn-300);--on-primary:var(--ink-900);--accent-text:var(--dawn-300);--brand:var(--paper-50);--on-brand:var(--ink-900);--success:var(--jade-300);--danger:var(--crimson-300);--focus:var(--dawn-300);--state-due:var(--dawn-300);--state-due-bg:var(--dawn-900);--state-verified:var(--jade-300);--state-verified-bg:var(--jade-900);--state-waiting:var(--mist-300);--state-waiting-bg:var(--ink-800);--state-error:var(--crimson-300);--state-error-bg:var(--crimson-900);--state-neutral:var(--mist-400);--state-neutral-bg:var(--ink-800);--scrim:#0009;--shadow-card:0 0 0 1px var(--border);--shadow-overlay:0 0 0 1px var(--border), 0 12px 40px #00000080}}:root[data-theme=dark]{--bg:var(--ink-950);--surface:var(--ink-900);--surface-sunken:var(--ink-950);--border:var(--ink-800);--border-control:var(--mist-500);--text:var(--paper-50);--text-muted:var(--mist-400);--primary:var(--dawn-400);--primary-hover:var(--dawn-300);--on-primary:var(--ink-900);--accent-text:var(--dawn-300);--brand:var(--paper-50);--on-brand:var(--ink-900);--success:var(--jade-300);--danger:var(--crimson-300);--focus:var(--dawn-300);--state-due:var(--dawn-300);--state-due-bg:var(--dawn-900);--state-verified:var(--jade-300);--state-verified-bg:var(--jade-900);--state-waiting:var(--mist-300);--state-waiting-bg:var(--ink-800);--state-error:var(--crimson-300);--state-error-bg:var(--crimson-900);--state-neutral:var(--mist-400);--state-neutral-bg:var(--ink-800);--scrim:#0009;--shadow-card:0 0 0 1px var(--border);--shadow-overlay:0 0 0 1px var(--border), 0 12px 40px #00000080}[lang|=zh]{font-family:var(--font-cjk);--font-ui:var(--font-cjk);--font-display:var(--font-cjk);font-variant-east-asian:normal;font-synthesis:none}[lang|=en]{font-family:var(--font-latin);--font-ui:var(--font-latin);--font-display:"Lora", Georgia, "Times New Roman", serif}:lang(en){font-variant-east-asian:proportional-width}:focus{outline:var(--focus-width) solid var(--focus);outline-offset:var(--focus-offset)}:focus:not(:focus-visible){outline:none}@property --sky-top{syntax:"<color>";inherits:true;initial-value:#0000}@property --sky-mid{syntax:"<color>";inherits:true;initial-value:#0000}@property --sky-bottom{syntax:"<color>";inherits:true;initial-value:#0000}@property --sky-glow{syntax:"<color>";inherits:true;initial-value:#0000}@property --sky-w{syntax:"<length-percentage>";inherits:true;initial-value:150%}@property --sky-h{syntax:"<length-percentage>";inherits:true;initial-value:50%}:root{--sky-fade:1.8s;transition-property:--sky-top,--sky-mid,--sky-bottom,--sky-glow,--sky-w,--sky-h;transition-duration:var(--sky-fade);transition-timing-function:var(--ease)}body.has-sky{background:var(--bg)}:root[data-sky] body.has-sky:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(var(--sky-w) var(--sky-h) at 50% 100%, var(--sky-glow), transparent 70%), linear-gradient(to bottom, var(--sky-top), var(--sky-mid) 55%, var(--sky-bottom));position:fixed;inset:0}:root[data-sky=night]{--sky-top:#dae2f7;--sky-mid:#e6e9f6;--sky-bottom:#eeedf8;--sky-glow:transparent;--sky-w:150%;--sky-h:50%}:root[data-sky=first-light]{--sky-top:#d7e2f4;--sky-mid:#ebecf6;--sky-bottom:#fde3c4;--sky-glow:#ffdebd;--sky-w:150%;--sky-h:45%}:root[data-sky=morning]{--sky-top:#daf2fa;--sky-mid:#fbf4e6;--sky-bottom:#ffdcbc;--sky-glow:#fedbc0;--sky-w:170%;--sky-h:38%}:root[data-sky=day]{--sky-top:#c2e6ff;--sky-mid:#dcf0fd;--sky-bottom:#faf8f0;--sky-glow:transparent;--sky-w:150%;--sky-h:50%}:root[data-sky=dusk]{--sky-top:#e6ddfe;--sky-mid:#fce1ef;--sky-bottom:#ffd9d1;--sky-glow:#fedad0;--sky-w:150%;--sky-h:45%}@media (prefers-color-scheme:dark){:root[data-sky=night]:not([data-theme=light]){--sky-top:#0c0e1e;--sky-mid:#0f1127;--sky-bottom:#1a1939;--sky-glow:#211d44;--sky-w:150%;--sky-h:50%}:root[data-sky=first-light]:not([data-theme=light]){--sky-top:#0f1026;--sky-mid:#281641;--sky-bottom:#581605;--sky-glow:#601b00;--sky-w:150%;--sky-h:45%}:root[data-sky=morning]:not([data-theme=light]){--sky-top:#112144;--sky-mid:#1b2444;--sky-bottom:#252846;--sky-glow:#552700;--sky-w:170%;--sky-h:38%}:root[data-sky=day]:not([data-theme=light]){--sky-top:#00365a;--sky-mid:#0e3457;--sky-bottom:#182e4e;--sky-glow:transparent;--sky-w:150%;--sky-h:50%}:root[data-sky=dusk]:not([data-theme=light]){--sky-top:#231342;--sky-mid:#3d113b;--sky-bottom:#5e1020;--sky-glow:#650d1a;--sky-w:150%;--sky-h:45%}}:root[data-sky=night][data-theme=dark]{--sky-top:#0c0e1e;--sky-mid:#0f1127;--sky-bottom:#1a1939;--sky-glow:#211d44;--sky-w:150%;--sky-h:50%}:root[data-sky=first-light][data-theme=dark]{--sky-top:#0f1026;--sky-mid:#281641;--sky-bottom:#581605;--sky-glow:#601b00;--sky-w:150%;--sky-h:45%}:root[data-sky=morning][data-theme=dark]{--sky-top:#112144;--sky-mid:#1b2444;--sky-bottom:#252846;--sky-glow:#552700;--sky-w:170%;--sky-h:38%}:root[data-sky=day][data-theme=dark]{--sky-top:#00365a;--sky-mid:#0e3457;--sky-bottom:#182e4e;--sky-glow:transparent;--sky-w:150%;--sky-h:50%}:root[data-sky=dusk][data-theme=dark]{--sky-top:#231342;--sky-mid:#3d113b;--sky-bottom:#5e1020;--sky-glow:#650d1a;--sky-w:150%;--sky-h:45%}@media (prefers-reduced-motion:reduce){:root{transition:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-ui);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.5}::selection{background:var(--state-due-bg);color:var(--text)}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--text);line-height:1.2}h2{font-family:var(--font-display);font-size:var(--text-xl);margin:var(--space-6) 0 var(--space-3);font-weight:600}h3{font-size:var(--text-md);margin:var(--space-6) 0 var(--space-2);font-weight:600}p{margin:0 0 var(--space-3)}small{font-size:var(--text-sm)}code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--surface-sunken);padding:0 .25em;font-size:.9em}a{color:var(--accent-text);text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){a:hover{text-decoration-thickness:2px}}button,.button{appearance:none;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-touch);min-width:var(--target-touch);padding:0 var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-md);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:translate var(--dur-fast) var(--ease);font-weight:500;line-height:1.25;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){button:hover:not(:disabled),.button:hover{background:var(--surface-sunken);transition:background-color var(--dur-fast) var(--ease), translate var(--dur-fast) var(--ease)}}button:active:not(:disabled),.button:active{translate:0 1px}button:disabled{cursor:default;color:var(--text-muted);border-color:var(--border)}button[aria-busy=true]{cursor:progress}.primary,button.primary,.reveal,.grade.primary,.sign-in button[type=submit],.today>button:not(.secondary),.class-join{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}@media (hover:hover) and (pointer:fine){.primary:hover:not(:disabled),.reveal:hover:not(:disabled),.grade.primary:hover:not(:disabled),.sign-in button[type=submit]:hover:not(:disabled),.today>button:not(.secondary):hover:not(:disabled),.class-join:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}}.primary:disabled,.reveal:disabled,.grade.primary:disabled,.sign-in button[type=submit]:disabled{background:var(--primary);border-color:var(--primary);color:var(--on-primary);cursor:progress}.quiet,button.quiet{color:var(--text);text-underline-offset:.2em;background:0 0;border-color:#0000;text-decoration:underline;text-decoration-thickness:1px}button.danger,.danger{color:var(--danger);border-color:var(--danger);background:var(--surface);font-weight:600}.symbol{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;block-size:1.5rem;inline-size:1.5rem}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font:inherit;font-size:max(var(--input-min-text), 1em);color:var(--text);background:var(--bg);border:1px solid var(--border-control);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-sizing:border-box;max-width:100%;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}textarea{resize:vertical;min-height:6rem;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}select{appearance:none;padding-right:calc(var(--space-3) + 1.25rem);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 1.125rem),calc(100% - .8125rem);background-repeat:no-repeat;background-size:.3125rem .3125rem,.3125rem .3125rem}label{font-weight:500}fieldset{border:1px solid var(--border);border-radius:var(--radius-md)}legend{padding:0 var(--space-1);font-weight:600}.chip{align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-sm);white-space:nowrap;color:var(--state-neutral);background:var(--state-neutral-bg);font-weight:500;line-height:1.4;display:inline-flex}.chip-due{color:var(--state-due);background:var(--state-due-bg)}.chip-verified{color:var(--state-verified);background:var(--state-verified-bg)}.chip-waiting{color:var(--state-waiting);background:var(--state-waiting-bg)}.chip-error{color:var(--state-error);background:var(--state-error-bg)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border-left:3px solid var(--state-neutral);background:var(--state-neutral-bg);color:var(--text)}.surface-card{background:var(--surface);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}:root{--motion-rise:rise;--motion-rise-sheet:rise-sheet}@keyframes rise{0%{translate:0 .75rem}to{translate:0}}@keyframes rise-sheet{0%{translate:0 1.5rem}to{translate:0}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s;--dur-slow:0s;--motion-rise:none;--motion-rise-sheet:none}}:root{--z-tab-bar:20;scroll-padding-bottom:calc(max(var(--tab-bar-block,0px), env(safe-area-inset-bottom)) + var(--space-2));--tick-empty:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='1' y='1' width='18' height='18' rx='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");--tick-done:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3 0h14a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V3a3 3 0 0 1 3-3zm5.2 14.6l7-7-1.6-1.6-5.4 5.4-2.4-2.4L4.2 10.6l4 4z'/%3E%3C/svg%3E");--dot-empty:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");--dot-done:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='8' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='10' cy='10' r='4.5' fill='%23000'/%3E%3C/svg%3E")}body{margin:0;padding:1rem}main{max-width:var(--content-card);margin:0 auto}h1{font-size:var(--text-lg);margin:0;font-weight:600}.practice{gap:var(--space-4);min-height:70vh;margin-top:var(--space-4);flex-direction:column;display:flex}.progress{color:var(--text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0}.how-far{block-size:.375rem;margin-top:calc(-1 * var(--space-2));border-radius:var(--radius-pill);background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--border);overflow:hidden}.how-far-done{border-radius:var(--radius-pill);background:var(--primary);block-size:100%;transition:inline-size var(--dur) var(--ease);display:block}.card{text-align:center;padding:clamp(var(--space-8), 10vh, var(--space-16)) var(--space-6) var(--space-8);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:var(--motion-rise) var(--dur) var(--ease);flex-direction:column;flex:1;justify-content:flex-start;align-items:center;display:flex}.hanzi{font-family:var(--font-hanzi);font-size:var(--hanzi-practice);margin:0;font-weight:400;line-height:1.15}.hanzi .contour-line{--contour-py-scale:.3125}.pinyin{font-family:var(--font-pinyin);font-size:var(--text-xl);color:var(--text);margin:var(--space-3) 0 0}.reveal{min-height:3.5rem;font-size:var(--text-lg)}.grades{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.grade{min-height:3.5rem;font-size:var(--text-lg)}.tile-card{flex-direction:column;gap:1rem;display:flex}.slots,.tray{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.slot,.tile{font-family:var(--font-hanzi);font-size:var(--text-xl);min-width:3rem;padding:0 var(--space-3);border-radius:var(--radius-md);font-weight:400}.slot{background:0 0;border-style:dashed}.tile:disabled{visibility:hidden}.correction-order{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:0;display:flex}.correction-chunk{flex-direction:column;align-items:center;display:flex}.hanzi-small{font-family:var(--font-hanzi);font-size:var(--text-xl)}.pinyin-small{font-family:var(--font-pinyin);font-size:var(--text-sm)}.app-header{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:var(--target-touch);display:flex}.app-title{align-items:center;gap:var(--space-3);flex:auto;min-width:0;display:flex}.app-title h1{overflow-wrap:anywhere}.english-switch{font-size:var(--text-sm);padding:0 var(--space-3)}.signed-out .app-title h1{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.english-switch[aria-checked=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}main>.app-header:after{content:"";flex-basis:100%;order:2;height:0}main>.app-header>.app-title{order:0}.tutor-shell>.app-header>button:not(.account-button){min-height:var(--target-touch);padding:0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm);text-underline-offset:.2em;background:0 0;border-color:#0000;text-decoration:underline;text-decoration-thickness:1px}.brand-pending{min-width:6rem;min-height:1.75rem;display:inline-block}main>.app-header>.english-switch,main>.app-header>.account-button{order:1}main>.app-header>button:not(.english-switch):not(.account-button){min-height:var(--target-touch);padding:0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm);text-underline-offset:.2em;background:0 0;border-color:#0000;order:3;text-decoration:underline;text-decoration-thickness:1px}.english,.meaning{text-align:center;margin:.5rem 0 0}.word-classes{margin:var(--space-2) 0 0;text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.library-results .word-classes{text-align:start;margin:var(--space-1) 0 0}.card-origin{margin:var(--space-2) 0 0;text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.card-origin-sets{display:inline-block}.select-with-chevron{max-width:100%;display:inline-block;position:relative}.select-with-chevron select{background-image:none}.select-with-chevron:after{content:"";top:50%;pointer-events:none;border-bottom:2px solid;border-right:2px solid;width:.4375rem;height:.4375rem;position:absolute;inset-inline-end:1rem;transform:translateY(-70%)rotate(45deg)}.library-group-by{margin:var(--space-4) 0 var(--space-1);display:block}.library-group h3{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-md)}.word-class-question{min-width:0;margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--state-waiting-bg);border:0;border-left:3px solid var(--state-waiting);padding-inline-end:calc(44px + var(--space-3));position:relative}.word-class-question>p{margin:0 0 var(--space-3)}.word-class-choices{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.word-class-choices button{width:100%;min-height:44px}.word-class-dismiss{top:var(--space-2);min-width:44px;min-height:44px;font-size:var(--text-lg);background:0 0;border-color:#0000;padding:0;line-height:1;position:absolute;inset-inline-end:var(--space-2)}.word-class-failure{margin:var(--space-3) 0 0}.notices{margin:0;padding:0;list-style:none}.notices:empty{display:none}.notice{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);border-left:3px solid var(--state-waiting);border-radius:var(--radius-md);background:var(--state-waiting-bg);color:var(--text);display:flex}.notice-text{flex:1}.notice-dismiss{min-width:44px;min-height:44px;font-size:var(--text-lg);background:0 0;border-color:#0000;padding:0;line-height:1}.unread-mark{top:2px;background:var(--state-waiting);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface,var(--bg));border-radius:50%;position:absolute;inset-inline-end:2px}.notice-history-list{margin:0;padding:0;list-style:none}.notice-history-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.notice-past.done .notice-text{color:var(--text-muted)}.notice-when,.notice-state{color:var(--text-muted);font-size:var(--text-sm)}.notice-new{font-size:var(--text-sm);font-weight:600}.notice-choices h4{margin:var(--space-4) 0 var(--space-2)}.notice-choice{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);border:0;flex-wrap:wrap;min-width:0;padding:0;display:flex}.notice-choice legend{float:left;width:100%;margin-bottom:var(--space-1)}.notice-switch{min-height:44px;padding:0 var(--space-3)}.notice-switch[aria-checked=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.push-pending{visibility:hidden}.push-device h5{margin:var(--space-4) 0 var(--space-2)}.push-devices{margin:0;padding:0;list-style:none}.push-devices li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;flex-wrap:wrap;min-width:0;display:flex}.push-devices li span{overflow-wrap:anywhere;min-width:0}.push-remove{min-height:44px;padding:0 var(--space-3)}.schedule-choice,.reminder-question{align-items:center;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;min-width:0;display:flex}.reminder-question h3,.schedule-choice .settings-note,.reminder-question .settings-note{flex-basis:100%;margin:0}.reminder-time{align-items:center;gap:var(--space-2);display:inline-flex}.reminder-time input{min-height:44px}.reminder-answers{gap:var(--space-2);flex-wrap:wrap;display:flex}.reminder-answers button{min-height:44px;padding:0 var(--space-3)}.sync-notice{border-left:3px solid var(--state-waiting);border-radius:var(--radius-md);background:var(--state-waiting-bg);color:var(--text);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0 var(--space-4);animation:var(--motion-rise) var(--dur) var(--ease)}.sync-notice p{margin:0 0 var(--space-2)}.sync-notice ul{padding-left:1.25rem}.sync-notice button{margin:.25rem .5rem .25rem 0}.offline-notice{border-left:3px solid var(--state-neutral);border-radius:var(--radius-md);background:var(--state-neutral-bg);color:var(--text);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0 var(--space-4)}.offline-notice h2{margin:0 0 .25rem;font-size:1rem}.offline-notice .offline-still-works{margin:0 0 .5rem}.offline-notice ul{margin:0;padding-left:1.25rem}.offline-notice li+li{margin-top:.25rem}.sign-in-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sign-in form,.sign-in [data-testid=keep-practice]{gap:var(--space-3);flex-direction:column;display:flex}.sign-in input,.sign-in select{min-height:3rem;font:inherit;padding:0 var(--space-4);box-sizing:border-box;max-width:100%}.sign-in button{min-height:3rem}.sign-in p{overflow-wrap:anywhere}.sign-in .language-choice{margin-bottom:var(--space-4)}@media (min-width:37.5rem){.signed-out{max-width:30rem;padding-top:var(--space-12)}.signed-out .sign-in{margin-top:var(--space-6);padding:var(--space-8);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.signed-out .sign-in h2{margin-top:0}}.app-header{flex-wrap:wrap}.tutor-shell{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.tutor-shell:not(.wide){margin-bottom:-1rem}.tutor-nav{border-top:1px solid var(--border);z-index:var(--z-tab-bar);padding-bottom:env(safe-area-inset-bottom);background:var(--bg);padding-top:var(--space-1);flex-wrap:wrap;order:3;justify-content:space-around;display:flex;position:sticky;bottom:0}.tutor-nav a{overflow-wrap:anywhere;min-width:0;min-height:44px;color:var(--text-muted);font-size:var(--text-xs);border-radius:var(--radius-md);flex:4rem;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:flex;position:relative}.tutor-nav a[aria-current=page]{color:var(--text);font-weight:600}.tutor-nav a[aria-current=page]:before{content:"";border-radius:0 0 var(--radius-pill) var(--radius-pill);background:var(--text);width:1.5rem;height:3px;margin-left:-.75rem;position:absolute;top:0;left:50%}@media (hover:hover) and (pointer:fine){.tutor-nav a:hover{color:var(--text)}}.tutor-main{box-sizing:border-box;padding:0 var(--space-4) var(--space-6);min-width:0;max-width:100%}.tutor-page h2,.tutor-page h3{overflow-wrap:anywhere}.tutor-shell.wide{grid-template-rows:auto 1fr;grid-template-columns:14rem 1fr}.tutor-shell.wide .app-header{padding:0 var(--space-2) var(--space-4);grid-column:1/-1}.tutor-shell.wide .tutor-nav{justify-content:flex-start;gap:var(--space-1);padding:var(--space-2) var(--space-4) 0 0;border-top:0;flex-direction:column;order:0;position:static}.tutor-shell.wide .tutor-nav a{min-height:var(--row-touch);padding:0 var(--space-4);font-size:var(--text-md);flex:none;justify-content:flex-start}.tutor-shell.wide .tutor-nav a[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-card)}.tutor-shell.wide .tutor-nav a[aria-current=page]:before{border-radius:0 var(--radius-pill) var(--radius-pill) 0;width:3px;height:50%;margin-left:0;top:25%;left:0}@media (hover:hover) and (pointer:fine){.tutor-shell.wide .tutor-nav a:hover:not([aria-current=page]){background:var(--surface-sunken)}}.deck-list{margin:0;padding:0;list-style:none}.deck-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.deck-name{overflow-wrap:anywhere;margin:0;font-weight:600}.deck-meta{color:var(--text-muted);margin:0}.assign-sheet fieldset{border:0;margin:1rem 0;padding:0}.check-row,.field{align-items:center;gap:.5rem;min-height:44px;display:flex}.field{flex-direction:column;align-items:stretch}.check-row input{width:1.25rem;height:1.25rem}.sheet-actions{flex-wrap:wrap;gap:.75rem;display:flex}.invite-code .code{font-family:var(--font-mono);letter-spacing:.1em;margin:.5rem 0;font-size:1.5rem}.verify-panes{gap:1rem;display:grid}@media (min-width:900px){.verify-panes{grid-template-columns:1fr 1fr;align-items:start}}.verify-source,.verify-generated{min-width:0}.verify-block{white-space:pre-wrap;overflow-wrap:anywhere;border:2px solid #0000;border-radius:.5rem;padding:.5rem}.verify-block[aria-current=true]{border-color:var(--state-due);background:var(--state-due-bg)}.verify-block:focus{outline:3px solid var(--focus);outline-offset:0}.verify-page{color:var(--text-muted);margin-right:.5rem;font-size:.8rem}.verify-queue{padding:var(--space-1) 0;margin:0 0 var(--space-3);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);list-style:none;overflow:hidden}.verify-queue:focus{outline:3px solid var(--focus)}.verify-item{overflow-wrap:anywhere;border-left:4px solid #0000;padding:.5rem .75rem}.verify-item[aria-selected=true]{border-left-color:var(--text);background:var(--surface-sunken);font-weight:600}.verify-hanzi{font-size:1.25rem}.verify-chip{margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--state-neutral-bg);color:var(--state-neutral);font-size:var(--text-xs);font-weight:500;display:inline-block}.verify-chip.flag{background:var(--state-due-bg);color:var(--state-due)}.verify-actions,.verify-dialog-actions{flex-wrap:wrap;gap:.5rem;display:flex}.verify-classes-line{color:var(--text-muted);font-size:var(--text-sm)}.verify-classes{min-width:0;margin:var(--space-3) 0;border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.verify-classes-grid{gap:0 var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr));display:grid}.verify-class{align-items:center;gap:var(--space-2);min-width:0;min-height:44px;display:flex}.verify-class-name{overflow-wrap:anywhere;min-width:0}.send-cards{margin:var(--space-5) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border)}.send-cards-list{gap:var(--space-2) var(--space-4);font-size:var(--text-lg);flex-wrap:wrap;padding:0;list-style:none;display:flex}.send-cards-to{min-width:0;margin:var(--space-3) 0;border:0;padding:0}.send-cards-student,.lesson-name-form label{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.verify-flag{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.verify-flag input{flex:12rem;min-width:0;min-height:2.75rem}.verify-bulk{margin-top:.75rem}.verify-hint{color:var(--text-muted);font-size:.85rem}.verify-dialog{inset:auto 1rem calc(1rem + max(var(--tab-bar-block,0px), env(safe-area-inset-bottom)));z-index:var(--z-sheet);max-height:calc(100dvh - 2rem - max(var(--tab-bar-block,0px), env(safe-area-inset-bottom)));box-sizing:border-box;max-width:32rem;padding:var(--space-6);background:var(--surface);border-radius:var(--radius-sheet);box-shadow:var(--shadow-overlay);animation:var(--motion-rise-sheet) var(--dur-slow) var(--ease);margin:0 auto;position:fixed;overflow-y:auto}.verify-check{align-items:center;gap:.5rem;min-height:2.75rem;display:flex}.verify-keys{padding:0;list-style:none}.own-marker{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--state-waiting-bg);color:var(--state-waiting);font-size:var(--text-xs);font-family:inherit;font-weight:500;display:inline-block}main.learner{flex-direction:column;min-height:calc(100dvh - 1rem);margin-bottom:-1rem;display:flex}@supports not (height:1dvh){main.learner{min-height:calc(100vh - 1rem)}}.learner-nav{z-index:var(--z-tab-bar);padding:var(--space-1) var(--space-1) env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--border);flex-wrap:wrap;order:99;margin:auto -1rem 0;display:flex;position:sticky;bottom:0}main.learner.on-the-card:not(.wide) .learner-nav{display:none}.learner-link{min-width:0;min-height:3.25rem;padding:var(--space-1) 0;border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-xs);text-align:center;overflow-wrap:anywhere;flex-direction:column;flex:4rem;justify-content:center;align-items:center;gap:.125rem;font-weight:500;line-height:1.2;text-decoration:none;display:flex;position:relative}.learner-link[aria-current=page]{color:var(--text);font-weight:700}.learner-link[aria-current=page] .symbol{stroke-width:2.6px}.learner-link[aria-current=page]:before{content:"";top:calc(-1 * var(--space-1));border-radius:0 0 var(--radius-pill) var(--radius-pill);background:var(--text);width:1.5rem;height:3px;margin-left:-.75rem;position:absolute;left:50%}@media (hover:hover) and (pointer:fine){.learner-link:hover:not([aria-current=page]){color:var(--text)}}main.learner.wide{column-gap:var(--space-8);grid-template-columns:12rem minmax(0,1fr);align-content:start;max-width:none;margin-bottom:0;display:grid}main.learner.wide>*{box-sizing:border-box;width:100%;max-width:var(--content-card);grid-column:2;justify-self:center}main.learner.wide>.app-header{max-width:none;margin-bottom:var(--space-4);grid-column:1/-1}main.learner.wide>.learner-nav{top:var(--space-4);align-self:start;gap:var(--space-1);background:0 0;border-top:0;flex-flow:column;order:0;grid-area:2/1/span 40;margin:0;padding:0;position:sticky}main.learner.wide .learner-link{justify-content:flex-start;gap:var(--space-3);min-height:var(--row-touch);padding:0 var(--space-3);font-size:var(--text-md);text-align:start;flex-direction:row;flex:none}main.learner.wide .learner-link[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-card)}main.learner.wide .learner-link[aria-current=page]:before{border-radius:0 var(--radius-pill) var(--radius-pill) 0;width:3px;height:50%;margin-left:0;top:25%;left:0}main.learner.one-sky{padding-bottom:calc(var(--target-touch) + var(--space-8))}.practice-leave{align-self:flex-start;align-items:center;gap:var(--space-1);min-height:var(--target-touch);margin:var(--space-2) 0 0 calc(-1 * var(--space-2));padding:0 var(--space-3) 0 var(--space-1);border-radius:var(--radius-pill);color:var(--text);font-weight:500;text-decoration:none;display:inline-flex}main.learner.wide .practice-leave{display:none}.library-decks,.library-results,.reviewed ul{padding:0;list-style:none}.library-decks li,.library-results li,.reviewed li{padding:var(--space-3) 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.library input[type=search]{box-sizing:border-box;width:100%;min-height:2.75rem}.audio-control{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.audio-note{font-size:var(--text-sm);color:var(--text-muted)}.drill-words{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.drill-words button,.tonelab-word>button{min-width:44px;min-height:44px}.tonelab-word{justify-items:start;gap:.75rem;display:grid}.tonelab-hanzi{font-family:var(--font-hanzi);font-weight:400;font-size:var(--text-3xl);margin:0}.tonelab-syllables label{align-items:center;gap:.25rem;min-height:44px;margin-right:.75rem;display:inline-flex}.tone-trace{width:100%;max-width:100%;height:auto}.word-check{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--surface);box-shadow:var(--shadow-card);max-width:100%}.word-check h3{margin:0 0 .25rem;font-size:1rem}.tonelab-word>p,.tier-note{overflow-wrap:anywhere;max-width:100%}.say-it{min-height:44px}.tone-line{overflow-wrap:anywhere;margin:.25rem 0 0}button.danger{color:var(--danger);border-color:var(--danger);background:var(--surface);font-weight:600}.admin-waiting{gap:.5rem;padding:0;list-style:none;display:grid}.admin-waiting button{min-height:44px}.admin-who{font-weight:600}.admin-decide{display:inline-block}.admin-decide--apart{margin-inline-start:2rem}.admin-undone{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.confirm-group{border:0;min-width:0;margin:0;padding:0}.confirm-group legend{padding:0;font-weight:600}.invite-apart{margin-inline-start:1.5rem}button,select,textarea,input:not([type=checkbox]):not([type=radio]){box-sizing:border-box;min-height:44px}.learner-link,.tutor-nav a{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.settings-screen{gap:var(--space-6);padding:var(--space-6);margin:var(--space-4) 0;background:var(--surface);border-radius:var(--radius-lg);max-width:44rem;box-shadow:var(--shadow-card);animation:var(--motion-rise) var(--dur) var(--ease);flex-direction:column;display:flex}.settings-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.settings-group{overflow-wrap:anywhere;flex-direction:column;gap:.75rem;display:flex}.account-actions>button{align-self:flex-start}.account-actions>button.danger{margin-top:var(--space-2)}.account-actions>.sync-notice{margin:0}.settings-note{font-size:var(--text-sm);color:var(--text-muted);margin:0}.settings-action{align-self:flex-start;align-items:center;min-height:44px;display:inline-flex}.photo-current{display:flex}.avatar.photo-current-face{block-size:4rem;inline-size:4rem}.photo-actions{flex-wrap:wrap;gap:.5rem;display:flex}.photo-sheet{border:1px solid;border-radius:8px;flex-direction:column;gap:.75rem;max-inline-size:100%;padding:.75rem;display:flex}.photo-sheet h4{margin:0}.photo-preview{aspect-ratio:1;object-fit:cover;border-radius:8px;block-size:auto;inline-size:min(12rem,100%)}.settings-link{min-height:44px;color:var(--accent-text);align-items:center;display:inline-flex}.settings-planned-list{flex-direction:column;gap:.9rem;margin:0;display:flex}.settings-planned-item dt{font-weight:600}.settings-planned-item dd{margin:.15rem 0 0;font-size:.95rem;line-height:1.5}.settings-where{color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap}.language-choice,.choice-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.language-choice-label{font-size:var(--text-sm);color:var(--text-muted);flex:100%}.language-option,.choice-option{min-width:44px;min-height:44px;padding:0 var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);cursor:pointer;flex:8rem}.language-option.chosen,.choice-option.chosen{border-color:var(--brand);background:var(--brand);color:var(--on-brand);font-weight:600}.class-next{gap:var(--space-2);padding:var(--space-6);margin:var(--space-4) 0;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.class-next-when{font-family:var(--font-display);font-size:var(--text-xl);margin:0;font-weight:600}.class-next-length,.class-not-yet,.class-failed{font-size:var(--text-sm);color:var(--text-muted);margin:0}.class-join{align-self:flex-start;min-height:44px;padding:0 1.25rem;font-weight:600}.lesson{flex-direction:column;gap:1rem;display:flex}.lesson-stage{grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.lesson-tile{gap:var(--space-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:relative;overflow:hidden}.lesson-video{aspect-ratio:16/9;background:var(--video);max-width:100%}.lesson-camera-off{text-align:center;background:var(--surface-sunken);color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;margin:0;display:flex;position:absolute;inset:0}.lesson-camera-off-note{font-size:var(--text-xs);color:var(--text-muted)}.lesson-tile-name{margin:0;padding:.25rem .5rem;font-size:.9rem}.lesson-controls{flex-wrap:wrap;gap:.5rem;display:flex}.tutor-schedule{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.tutor-lesson{gap:var(--space-1);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.tutor-lesson-when{margin:0;font-weight:600}.tutor-lesson-length,.tutor-lesson-nobody{color:var(--text-muted);margin:0;font-size:.9rem}.tutor-lesson-who{flex-direction:column;gap:.125rem;margin:0;display:flex}.tutor-lesson-their-time{color:var(--text-muted);font-size:.9rem}.tutor-lesson-moved{margin-top:var(--space-1);padding:var(--space-1) var(--space-2);border-left:3px solid var(--state-due);border-radius:var(--radius-sm);background:var(--state-due-bg);color:var(--text);font-size:var(--text-sm)}.schedule-open{align-self:flex-start;min-height:44px;margin-bottom:1rem;padding:0 1.25rem;font-weight:600}.schedule-lesson{flex-direction:column;gap:1rem;display:flex}.schedule-field{flex-direction:column;gap:.25rem;display:flex}.schedule-field input,.schedule-field select{min-height:44px;font:inherit;box-sizing:border-box;max-width:100%;padding:0 .5rem}.schedule-hint,.schedule-email-note{color:var(--text-muted);font-size:.9rem}.schedule-email-note{padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-waiting);border-radius:var(--radius-md);background:var(--state-waiting-bg);color:var(--text);margin:0}.schedule-students{gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);flex-direction:column;display:flex}.schedule-student{align-items:center;gap:.5rem;min-height:44px;display:flex}.schedule-failed{padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-error);border-radius:var(--radius-md);background:var(--state-error-bg);color:var(--text);margin:0}.schedule-actions{flex-wrap:wrap;gap:.5rem;display:flex}.app-header a{min-width:0}.today-drill li{list-style:none}.today-drill a,.app-header a{align-items:center;min-height:44px;padding:0 .5rem;display:inline-flex}.today-drill{padding-left:0}.today-drill-coming{margin-top:.75rem}.today-drill-coming-row{color:var(--text-muted);flex-direction:column;gap:.125rem;display:flex}.today-drill-coming-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.today-drill-coming-name{font-weight:600}.today-drill-coming-state{border-radius:var(--radius-pill);padding:0 var(--space-2);background:var(--state-neutral-bg);color:var(--state-neutral);font-size:var(--text-xs);font-weight:500}.inbox-failed button{min-height:44px}.whiteboard{flex-direction:column;gap:.75rem;display:flex}.whiteboard-stage{aspect-ratio:4/3;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-card);background:var(--board);color:var(--on-board);touch-action:none;position:relative;overflow:hidden}.whiteboard-material,.whiteboard-ink,.whiteboard-draw{position:absolute;inset:0}.whiteboard-material-figure{flex-direction:column;width:100%;height:100%;margin:0;display:flex}.whiteboard-material-figure img{object-fit:contain;flex:auto;width:100%;min-height:0}.whiteboard-material-figure figcaption{color:var(--text-muted);padding:.25rem .5rem;font-size:.875rem}.whiteboard-ink{pointer-events:none}.whiteboard-stroke{pointer-events:stroke}.whiteboard-stroke-highlighter{opacity:.4}.whiteboard-draw{cursor:crosshair}.whiteboard-texts{position:absolute;inset:0;overflow:hidden}.whiteboard-text{box-sizing:border-box;font:inherit;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;margin:0;padding:.125rem .25rem;font-size:clamp(.875rem,2.4vw,1.25rem);line-height:1.35;position:absolute}.whiteboard-text-control{border:1px dashed var(--border-control);cursor:pointer;border-radius:.25rem}.whiteboard-text-control[aria-pressed=true]{outline:2px solid var(--focus)}.board-text-field{box-sizing:border-box;width:100%;min-height:44px;font:inherit;margin:.25rem 0 .75rem;display:block}.board-text-ai-off{color:var(--text-muted)}.board-text-move{margin-top:.5rem}.whiteboard-rail ol{flex-wrap:wrap;gap:.5rem;margin:0;padding-left:0;list-style:none;display:flex}.whiteboard-rail button[aria-current=true]{outline:2px solid var(--focus)}.whiteboard-tools{flex-wrap:wrap;gap:.5rem;display:flex}.whiteboard-capture{flex-direction:column;gap:.25rem;display:flex}.whiteboard-capture input{width:100%;min-height:44px}.whiteboard-failed{padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-error);border-radius:var(--radius-md);background:var(--state-error-bg);color:var(--text)}.whiteboard-failed h3{margin:0 0 .25rem;font-size:1rem}.whiteboard-reference code{-webkit-user-select:all;user-select:all}.inbox{flex-direction:column;gap:.75rem;display:flex}.inbox-threads{flex-direction:column;gap:.5rem;margin:0;padding-left:0;list-style:none;display:flex}.inbox-row{text-align:left;width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border-color:#0000;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:.125rem;display:grid}.inbox-row-head,.inbox-message-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin:0;display:flex}.inbox-name,.inbox-who{overflow-wrap:anywhere;min-width:0;font-weight:600}.inbox-when,.inbox-at{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:.8125rem;font-weight:400}.inbox-preview{color:var(--text-muted);overflow-wrap:anywhere;min-width:0;font-size:.9375rem}.inbox-unread{font-size:var(--text-xs);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--state-due-bg);color:var(--state-due);justify-self:start;font-weight:600}.inbox-thread-bar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.inbox-thread-bar h2{overflow-wrap:anywhere;min-width:0;margin:0}.inbox-messages{flex-direction:column;gap:.5rem;margin:0;padding-left:0;list-style:none;display:flex}.inbox-message{max-width:90%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);background:var(--surface);color:var(--text);box-shadow:var(--shadow-card);flex-direction:column;gap:.125rem;display:flex}.inbox-mine{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-lg);background:var(--state-waiting-bg);align-self:flex-end}.inbox-body{overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.inbox-status{padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-error);border-radius:var(--radius-md);background:var(--state-error-bg);color:var(--text);margin:0}.inbox-compose{flex-direction:column;gap:.25rem;display:flex}.inbox-compose textarea{width:100%;font:inherit}.upload-choose{align-items:flex-start;position:relative}.upload-choose-label{min-height:44px;padding:0 var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);overflow-wrap:anywhere;cursor:pointer;align-items:center;display:inline-flex}.upload-choose-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-choose:focus-within .upload-choose-label{outline:2px solid var(--focus);outline-offset:2px}.privacy-page{flex-direction:column;gap:1rem;display:flex}.privacy-page h2{margin:0;font-size:1.05rem}.privacy-empty{color:var(--text-muted);margin:0}.privacy-processors{margin:0;padding:0;list-style:none}.privacy-processor+.privacy-processor{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.privacy-processor h3{overflow-wrap:anywhere;margin:0 0 .375rem;font-size:1rem}.privacy-processor dl{margin:0}.privacy-processor dt{color:var(--text-muted);font-size:.875rem}.privacy-processor dd{overflow-wrap:anywhere;margin:0 0 .5rem}.privacy-dismiss{min-height:2.75rem;padding:0 var(--space-4);border:1px solid var(--border-control);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);align-self:flex-start;align-items:center;text-decoration:none;display:inline-flex}.upload-remove-confirm{flex-direction:column;flex:100%;gap:.5rem;min-width:0;display:flex}.upload-remove-confirm p{overflow-wrap:anywhere;min-width:0;margin:0}.board-remove-confirm{margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);background:var(--surface);max-width:40rem}.board-remove-confirm p{overflow-wrap:anywhere;margin:0 0 .75rem}.board-remove-answers{flex-wrap:wrap;gap:.75rem;display:flex}.check-row input[type=checkbox],.check-row input[type=radio],.schedule-student input[type=checkbox]{appearance:none;background-color:var(--border-control);block-size:44px;inline-size:44px;-webkit-mask:var(--tick-empty) center / 20px 20px no-repeat;-webkit-mask:var(--tick-empty) center / 20px 20px no-repeat;mask:var(--tick-empty) center / 20px 20px no-repeat;border:none;flex:none;margin:0}.check-row input[type=checkbox]:checked,.schedule-student input[type=checkbox]:checked{background-color:var(--text);-webkit-mask-image:var(--tick-done);-webkit-mask-image:var(--tick-done);mask-image:var(--tick-done)}.check-row input[type=radio]{-webkit-mask-image:var(--dot-empty);-webkit-mask-image:var(--dot-empty);mask-image:var(--dot-empty)}.check-row input[type=radio]:checked{background-color:var(--text);-webkit-mask-image:var(--dot-done);-webkit-mask-image:var(--dot-done);mask-image:var(--dot-done)}.check-row input[type=checkbox]:focus-visible,.check-row input[type=radio]:focus-visible,.schedule-student input[type=checkbox]:focus-visible{outline:2px solid var(--text);outline-offset:-10px;border-radius:4px}.settings-choice{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:44px;display:flex}.settings-choice input[type=radio]{appearance:none;background-color:#0000;background-position:50%;background-repeat:no-repeat;background-image:radial-gradient(circle, transparent 0 7px, var(--border-control) 7px 9px, transparent 9px);border:none;flex:none;block-size:44px;inline-size:44px;margin:0}.settings-choice input[type=radio]:checked{background-image:radial-gradient(circle, var(--text) 0 5px, transparent 5px), radial-gradient(circle, transparent 0 7px, var(--text) 7px 9px, transparent 9px)}.settings-choice input[type=radio]:focus-visible{outline:2px solid var(--text);outline-offset:-6px;border-radius:50%}.week-panel{flex-direction:column;gap:.75rem;min-width:0;margin:0 0 1.25rem;display:flex}.week-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.week-switch{border:0;flex-wrap:wrap;gap:.375rem;min-width:0;margin:0;padding:0;display:flex}.week-switch button{padding:0 .875rem}.week-switch button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.week-move{align-items:center;gap:.5rem;display:flex}.week-move button{padding:0;font-size:1.25rem;line-height:1}.week-span{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.95rem;font-weight:600}.week-home{align-self:flex-start;padding:0 .875rem}.week-empty{padding:var(--space-4);border:1px dashed var(--border-control);border-radius:var(--radius-md);color:var(--text-muted);margin:0}.week-board{grid-template-columns:minmax(0,1fr);gap:.5rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:45rem){.week-board.as-week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch}}.week-day{min-width:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-card);overflow-wrap:anywhere;flex-direction:column;gap:.375rem;display:flex}.week-day[aria-current=date]{box-shadow:inset 0 0 0 2px var(--text)}.week-day-name{flex-wrap:wrap;align-items:baseline;gap:.375rem;margin:0;font-size:.95rem;font-weight:600;display:flex}.week-day-today{padding:.0625rem var(--space-2);border-radius:var(--radius-pill);background:var(--state-due-bg);color:var(--state-due);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.02em;font-weight:600}.week-day-hours,.week-day-free{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.8rem}.week-blocks{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.week-block{min-width:0;padding:var(--space-2);border-left:3px solid var(--state-waiting);border-radius:var(--radius-sm);background:var(--state-waiting-bg);color:var(--text);flex-direction:column;gap:.125rem;display:flex}.week-block-time{font-variant-numeric:tabular-nums;font-weight:600}.week-block-who{overflow-wrap:anywhere;font-size:.85rem}.week-block-now,.week-block-moved{font-size:.75rem;font-weight:600}.week-block-now{color:var(--accent-text)}.lesson-in-progress{color:var(--accent-text);margin:0;font-size:.875rem;font-weight:600}.classes-switch{flex-wrap:wrap;gap:.75rem 1.5rem;display:flex}.week-block-moved{border-left:3px solid var(--state-due);background:var(--state-due-bg);color:var(--text);padding:.125rem .375rem}.booking-with-week{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}@media (min-width:60rem){.booking-with-week{grid-template-columns:minmax(0,22rem) minmax(0,1fr)}}.avatar{block-size:2.75rem;inline-size:2.75rem;color:var(--avatar-ink);flex:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .avatar{color:var(--avatar-ink-dark)}}:root[data-theme=dark] .avatar{color:var(--avatar-ink-dark)}.avatar-ring{fill:none;stroke:currentColor;stroke-width:2px}.avatar-cell{fill:currentColor}.avatar-photo{object-fit:cover;border-radius:8px}.avatar.avatar-beside{block-size:1.75rem;inline-size:1.75rem}.account-button{justify-content:center;align-items:center;min-block-size:44px;min-inline-size:44px;padding:0;display:inline-flex;position:relative}.deck-row>.avatar-beside+div{flex:auto;min-inline-size:0}.tutor-student-head,.class-tutor,.tutor-lesson-person,.lesson-person{align-items:center;gap:.5rem;min-inline-size:0;display:flex}.tutor-student-head h2{overflow-wrap:anywhere;margin:.5rem 0}.class-tutor p{margin:0}.class-tutor-label{color:var(--text-muted);font-size:.9rem}.class-tutor-name{overflow-wrap:anywhere;font-weight:600}.lesson-part{margin:1.25rem 0 .5rem;font-size:1rem}.lesson-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.lesson-row{border-radius:var(--radius-lg);padding:var(--space-4);background:var(--surface);box-shadow:var(--shadow-card)}.lesson-people{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.lesson-people span{overflow-wrap:anywhere}.lesson-record{text-align:start;overflow-wrap:anywhere;inline-size:100%;padding:0 .75rem;font-weight:600;display:block}.lesson-mark{margin:var(--space-1) 0;padding:.125rem var(--space-2);border-radius:var(--radius-pill);background:var(--state-neutral-bg);color:var(--state-neutral);font-size:var(--text-xs);align-self:flex-start;font-weight:500;display:inline-block}.lesson-older{margin-top:.75rem;padding:0 1rem}.lesson-older-failed{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-error);border-radius:var(--radius-md);background:var(--state-error-bg);color:var(--text)}.lesson-older-failed p{margin:0 0 .5rem}.recap-backdrop{z-index:var(--z-sheet);padding:1rem;padding-bottom:calc(1rem + max(var(--tab-bar-block,0px), env(safe-area-inset-bottom)));background:var(--scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.recap-sheet{gap:var(--space-3);max-block-size:100%;inline-size:min(28rem,100%);padding:var(--space-6);border-radius:var(--radius-sheet);background:var(--surface);color:var(--text);box-shadow:var(--shadow-overlay);animation:var(--motion-rise-sheet) var(--dur-slow) var(--ease);flex-direction:column;display:flex;overflow-y:auto}.recap-sheet h3,.recap-sheet p{overflow-wrap:anywhere;margin:0}.recap-when{font-weight:600}.recap-sheet button{align-self:flex-end;padding:0 1.25rem}@media (min-width:60rem){.recap-backdrop{align-items:center}}body.lesson-live>:not(.lesson-room),body.takeover-open>:not(.takeover-layer){display:none}.takeover-layer{z-index:50;background:var(--bg);color:var(--text);padding:.75rem;position:fixed;inset:0;overflow-y:auto}.lesson-room{z-index:50;background:var(--bg);color:var(--text);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.lesson-room button,.lesson-room input,.lesson-room select,.lesson-room textarea{min-width:44px;min-height:44px}.lesson-topbar{align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3);padding-top:max(var(--space-2), env(safe-area-inset-top));border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.lesson-title{margin:0;font-size:1.1rem}.lesson-title button{font:inherit;color:inherit;background:0 0;border:none;padding:0 .5rem;font-weight:600}.lesson-topbar-end{gap:.5rem;margin-left:auto;display:flex}.lesson-tabs{gap:.25rem;display:flex}.lesson-tabs [role=tab][aria-selected=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}@media (max-width:599.98px){.lesson-tabs{flex-basis:100%;order:5}.lesson-tabs [role=tab]{flex:1 1 0}}.lesson-panel{flex-direction:column;flex:auto;gap:.5rem;min-height:0;padding:.5rem;display:flex;position:relative;overflow:hidden auto}.lesson-panel-tools{justify-content:flex-end;display:flex}.lesson-board-area{min-width:0;min-height:0}.lesson-video-down{padding:var(--space-3) var(--space-4);border-left:3px solid var(--state-due);border-radius:var(--radius-md);background:var(--state-due-bg);color:var(--text);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lesson-video-down p{margin:0}.lesson-video-down [role=alert]{flex:16rem;min-width:0}.lesson-reference code{-webkit-user-select:all;user-select:all}.lesson-tile{border-radius:var(--radius-lg);background:var(--surface-sunken);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:relative;overflow:hidden}.lesson-people{flex-direction:column;gap:.5rem;display:flex}.lesson-people-focus{grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));gap:.5rem;display:grid}.lesson-people-float{max-width:10rem}.lesson-people-controls{flex-wrap:wrap;gap:.5rem;display:flex}.lesson-float{z-index:2;width:7.5rem;position:absolute}.lesson-float-bottom-right{bottom:.5rem;right:.5rem}.lesson-float-bottom-left{bottom:.5rem;left:.5rem}.lesson-float-top-left{top:.5rem;left:.5rem}.lesson-float-top-right{top:.5rem;right:.5rem}.lesson-float-move{position:absolute;top:0;right:0}.lesson-notes-sheet{z-index:5;max-height:80%;padding:var(--space-4);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-overlay);animation:var(--motion-rise-sheet) var(--dur-slow) var(--ease);position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.lesson-notes-sheet[hidden]{display:none}.lesson-notes-close{float:right}.lesson-end-confirm{z-index:10;width:min(28rem,100% - 2rem);padding:var(--space-6);gap:var(--space-2);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);flex-wrap:wrap;display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%)}.lesson-end-confirm p{flex-basis:100%;margin:0}.lesson-chat{flex-direction:column;gap:.5rem;display:flex}.lesson-chat-messages{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.lesson-chat-messages p{overflow-wrap:anywhere;margin:0}.lesson-chat-mine{align-self:flex-end}.lesson-chat-who{font-size:var(--text-xs);color:var(--text-muted)}.lesson-chat-compose{flex-direction:column;gap:.25rem;display:flex}.lesson-chat-compose textarea{box-sizing:border-box;width:100%}.lesson-wide{flex:auto;grid-template:"board people"minmax(0,1fr)"notes people"/minmax(0,1fr) minmax(10rem,15rem);gap:.5rem;min-height:0;padding:.5rem;display:grid}.lesson-wide-chat{grid-template-columns:minmax(0,1fr) minmax(10rem,15rem) minmax(14rem,20rem);grid-template-areas:"board people chat""notes people chat"}.lesson-wide .lesson-board-area{grid-area:board;overflow:hidden}.lesson-wide .lesson-board-area>.whiteboard{box-sizing:border-box;height:100%;overflow-y:auto}.lesson-people-column{grid-area:people;min-height:0;overflow-y:auto}.lesson-chat-panel{border-left:1px solid var(--border);grid-area:chat;min-height:0;padding-left:.5rem;overflow-y:auto}.lesson-chat-panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.lesson-chat-panel-head h2{margin:0;font-size:1rem}.lesson-notes-area{grid-area:notes;max-height:11rem;overflow-y:auto}.lesson-notes-area:empty{display:none}@media (orientation:portrait){.lesson-room-wide .lesson-wide{grid-template:"people""board"minmax(0,1fr)"notes"/minmax(0,1fr)}.lesson-room-wide .lesson-wide-chat{grid-template-columns:minmax(0,1fr) minmax(14rem,20rem);grid-template-areas:"people chat""board chat""notes chat"}.lesson-room-wide .lesson-people-column{max-height:14rem}.lesson-room-wide .lesson-people-column .lesson-people{flex-flow:wrap;align-items:flex-start}.lesson-room-wide .lesson-people-column .lesson-people-focus{flex:12rem}}.lesson-video-gated{align-self:center;margin:0;font-size:.85rem}.lesson-add{flex-direction:column;gap:.25rem;display:flex}.lesson-add-hint{font-size:var(--text-xs);color:var(--text-muted);margin:0}.lesson-add-who ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.lesson-add-picture{flex-basis:100%;margin:0}.lesson-add-picture svg{border:1px solid var(--border-control);border-radius:.25rem;width:min(14rem,100%);display:block}.lesson-add-picture figcaption{font-size:.8rem}.board-history-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.board-export{flex-direction:column;align-items:flex-start;gap:.25rem;max-width:100%;display:flex}.board-export p{max-width:40rem;margin:0}.board-history-sheets{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.board-history-sheet{width:min(14rem,100%);margin:0}.board-history-sheet svg{border:1px solid var(--border-control);border-radius:.25rem;width:100%;display:block}.board-history-sheet figcaption{overflow-wrap:anywhere;font-size:.8rem}.confirm-backdrop{z-index:var(--z-dialog);background:var(--scrim);position:fixed;inset:0}.confirm{z-index:61;box-sizing:border-box;width:min(30rem,100% - 2rem);max-height:calc(100% - 2rem);padding:var(--space-6);gap:var(--space-3);background:var(--surface);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.confirm p{margin:0}.confirm-question{font-weight:600}.confirm-answers{flex-wrap:wrap;gap:.5rem;display:flex}.confirm-cancel{margin-left:auto}.board-earlier-bar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.board-look-note{flex:12rem;margin:0}.board-earlier{z-index:6;max-height:80%;padding:var(--space-4);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));background:var(--surface);color:var(--text);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-overlay);animation:var(--motion-rise-sheet) var(--dur-slow) var(--ease);position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.board-earlier-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.board-earlier h3,.board-earlier h4{margin:.25rem 0}.board-earlier ul{flex-wrap:wrap;gap:.5rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.lesson-door{overflow-y:auto}.lesson-door>*{padding:0 .75rem .75rem}.preflight-bar{justify-content:space-between;margin:0 -.75rem .5rem}.lesson-panel,.lesson-wide .lesson-board-area{container-type:size}.lesson-room .whiteboard-stage{flex-shrink:0;width:max(min(100%,20rem),min(100%,133.333cqh - 16rem));margin-inline:auto}@media (max-height:700px){.lesson-notes-area{max-height:5.5rem}}.lesson-bar{padding:var(--space-2) var(--space-3);padding-bottom:max(var(--space-2), env(safe-area-inset-bottom));border:none;border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:.5rem;min-width:0;margin:0;display:flex}.lesson-bar-legend{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lesson-bar .lesson-leave{margin-left:1.5rem}.lesson-bar-button{flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.25rem .5rem;display:inline-flex}.lesson-bar-symbol{font-size:1.1rem;line-height:1}.lesson-bar-label{font-size:.75rem}.lesson-wide .whiteboard>h2{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lesson-wide .whiteboard-stage{width:max(min(100%,20rem),min(100%,133.333cqh - 16rem))}@media (max-height:900px){.lesson-notes-area{max-height:8rem}}.lesson-board-area[hidden]{display:none}.preflight-actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.lesson-ended{margin:var(--space-3);padding:var(--space-4) var(--space-6);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.lesson-ended h2{margin:0 0 .25rem;font-size:1.1rem}.lesson-ended p{margin:0 0 .5rem}.lesson-news{padding:0 .5rem;font-size:.9rem}.lesson-news p{margin:.25rem 0}.lesson-present{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.lesson-present-person{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lesson-present-mark{font-size:var(--text-xs);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--state-neutral-bg);color:var(--state-neutral)}.lesson-present-note,.lesson-chat-when{font-size:var(--text-xs);color:var(--text-muted)}.lesson-camera-off .avatar{background:var(--bg);border-radius:8px;block-size:2.5rem;inline-size:2.5rem}.lesson-tile-small .lesson-camera-off .avatar{block-size:1.75rem;inline-size:1.75rem}.moved-banner{border:1px solid var(--warn);background:var(--warn-surface);color:var(--text);overflow-wrap:anywhere;border-radius:8px;margin:.5rem;padding:.75rem}.moved-banner p{margin:0 0 .5rem}.moved-reference{white-space:nowrap;font-family:ui-monospace,monospace}.moved-screen{z-index:calc(var(--z-sheet) + 10);background:var(--surface);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.moved-screen section{overflow-wrap:anywhere;flex-direction:column;gap:.75rem;inline-size:100%;max-inline-size:32rem;display:flex}.moved-screen h2{margin:0}.help-button{border-radius:50%;flex:none;min-block-size:44px;min-inline-size:44px;padding:0;font-size:1.25rem;font-weight:600;line-height:1}.report-backdrop{z-index:var(--z-sheet);padding:1rem;padding-bottom:calc(1rem + max(var(--tab-bar-block,0px), env(safe-area-inset-bottom)));background:color-mix(in srgb, var(--text) 35%, transparent);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.report-sheet{box-sizing:border-box;border:1px solid var(--hairline-strong);background:var(--surface);max-block-size:100%;inline-size:min(32rem,100%);color:var(--text);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex;overflow-y:auto}.report-sheet h2,.report-sheet h3,.report-sheet p{overflow-wrap:anywhere;margin:0}.report-categories,.report-messages{border:1px solid var(--hairline);border-radius:.5rem;gap:.25rem;min-inline-size:0;margin:0;padding:.5rem;display:grid}.report-choice{overflow-wrap:anywhere;align-items:center;gap:.5rem;min-block-size:44px;display:flex}.report-choice input{flex:none;block-size:44px;inline-size:44px;margin:0}.report-words{gap:.25rem;display:grid}.report-words textarea{box-sizing:border-box;inline-size:100%;font:inherit}.report-sent-with ul{overflow-wrap:anywhere;margin:.25rem 0 0;padding-inline-start:1.25rem}.report-actions,.support-actions,.support-hold{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.5rem;display:flex}.report-reference{overflow-wrap:anywhere}@media (min-width:60rem){.report-backdrop{align-items:center}}.support-rows{gap:.5rem;padding:0;list-style:none;display:grid}.support-rows li{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.support-words{white-space:pre-wrap;overflow-wrap:anywhere}.support-hold label{flex:12rem;gap:.25rem;min-inline-size:0;display:grid}.support-hold input{box-sizing:border-box;min-block-size:44px}
