@layer base{.icon-button{justify-content:center;align-items:center;gap:var(--space-2);min-width:3.5rem;min-height:var(--control-min);padding:var(--space-2);border-radius:var(--radius-md);background:var(--paper-sunken);color:var(--ink);font-weight:600;font-size:var(--text-sm);line-height:var(--leading-tight);text-align:center;cursor:pointer;transition:background var(--dur-fast) var(--ease-quiet), box-shadow var(--dur-fast) var(--ease-quiet);border:none;flex-direction:row;display:inline-flex}.surface-stage .icon-button,.controls .icon-button{background:var(--control-fill);color:var(--primary)}.icon-button:hover,.icon-button:active{background:var(--rule)}.surface-stage .icon-button:hover,.surface-stage .icon-button:active,.controls .icon-button:hover,.controls .icon-button:active{background:var(--primary);color:var(--accent-ink)}.popover-panel{z-index:7;min-width:var(--field-w);padding:var(--space-1);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);top:calc(100% + var(--space-1));position:absolute;right:0}.dewarp-panel{aspect-ratio:1/1.4142;width:auto;max-width:100%;height:100%;max-height:var(--work-height,80vh);background:var(--stage-void);border-radius:var(--radius-sm);place-self:center;margin:0 auto;position:relative;overflow:hidden}.calendar-cell{align-items:start;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--paper-raised);font:inherit;text-align:start;color:var(--ink);cursor:pointer;flex-wrap:nowrap;width:100%;display:flex;position:absolute;overflow:hidden;container:calendar-tile/inline-size}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fff;--paper-raised:#fff;--paper-sunken:#f5f5f4;--ink:#1c1917;--ink-muted:#57534d;--ink-faint:#79716b;--rule:#e7e5e4;--rule-strong:#d6d3d1;--red-600:231 0 11;--lime-600:94 165 0;--teal-600:0 150 137;--sky-600:0 132 209;--fuchsia-600:200 0 222;--red-300:255 162 162;--lime-300:187 244 81;--teal-300:70 236 213;--sky-300:116 212 255;--fuchsia-300:244 168 255;--swatch-lime:var(--lime-600);--swatch-teal:var(--teal-600);--swatch-sky:var(--sky-600);--swatch-fuchsia:var(--fuchsia-600);--primary:rgb(var(--primary-rgb));--accent:var(--primary);--accent-soft:rgb(var(--primary-rgb) / 10%);--region-wash:rgb(var(--primary-rgb) / 12%);--control-fill:rgb(var(--primary-rgb) / 12%);--accent-ink:#fff;--warn:#9a5b00;--warn-soft:#fdf2e0;--danger-rgb:var(--red-600);--danger:rgb(var(--danger-rgb));--danger-fill:rgb(var(--danger-rgb) / 12%);--danger-ink:#fff;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-pill:999px;--shadow-soft:0 1px 2px #1a1a190f, 0 10px 30px #1a1a1914;--stage:#121316;--stage-raised:#1b1c20;--stage-ink:#e7e5e4;--stage-ink-muted:#a6a09b;--stage-ink-faint:#79716b;--stage-rule:#2f3238;--stage-sunken:#0d0e10;--stage-void:#000;--stage-scrim:#000000d9;--stage-plate:#000000b8;--stage-backdrop:#000000b3;--annotation-ink:#e0533c;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--control-min:44px;--handle-dot:1rem;--field-w:12rem;--field-w-narrow:3.5rem;--panel-max:22rem;--switch-w:2.5rem;--switch-h:1.5rem;--switch-thumb:1.25rem;--icon-md:1.4rem;--icon-sm:1.15rem;--measure-wide:72rem;--grid-columns:3;--gap-column:var(--space-4);--gap-card:var(--space-3);--gap-section:var(--space-6);--measure-cell:6rem;--calendar-minute:.075rem;--font-ui:system-ui, sans-serif;--font-mono:ui-monospace, sfmono-regular, menlo, monospace;--text-xs:.7rem;--text-sm:.8rem;--text-base:.9rem;--text-md:1rem;--text-lg:1.15rem;--text-2xl:1.75rem;--leading-tight:1.2;--leading-normal:1.5;--measure:34rem;--ease-quiet:cubic-bezier(.32, .08, .24, 1);--dur-fast:.12s;--focus-ring:0 0 0 2px var(--paper), 0 0 0 4px var(--accent), 0 0 0 5px var(--ink)}:root,:root[data-primary=lime]{--primary-rgb:var(--swatch-lime);--primary-rgb-dark:var(--lime-300)}:root[data-primary=teal]{--primary-rgb:var(--swatch-teal);--primary-rgb-dark:var(--teal-300)}:root[data-primary=sky]{--primary-rgb:var(--swatch-sky);--primary-rgb-dark:var(--sky-300)}:root[data-primary=fuchsia]{--primary-rgb:var(--swatch-fuchsia);--primary-rgb-dark:var(--fuchsia-300)}:root[data-theme=grey]{--paper:#f5f5f5;--paper-raised:#fff;--paper-sunken:#ebebeb;--rule:#dedcd8;--rule-strong:#c6c4c0}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#121316;--paper-raised:#1b1c20;--paper-sunken:#0d0e10;--ink:#e7e5e4;--ink-muted:#a6a09b;--ink-faint:#79716b;--rule:#2a2c31;--rule-strong:#3c3f46;--swatch-lime:var(--lime-300);--swatch-teal:var(--teal-300);--swatch-sky:var(--sky-300);--swatch-fuchsia:var(--fuchsia-300);--accent-ink:var(--paper);--warn:#f5a623;--warn-soft:#33260f;--danger-rgb:var(--red-300);--danger-ink:var(--paper);--shadow-soft:0 1px 2px #0006, 0 10px 30px #00000073}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#121316;--ink:#e7e5e4}}.surface-stage{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--paper);color:var(--ink);--paper:var(--stage);--paper-raised:var(--stage-raised);--paper-sunken:var(--stage-sunken);--ink:var(--stage-ink);--ink-muted:var(--stage-ink-muted);--ink-faint:var(--stage-ink-faint);--rule:var(--stage-rule);--rule-strong:var(--stage-rule);--primary-rgb:var(--primary-rgb-dark);--primary:rgb(var(--primary-rgb));--accent:var(--primary);--control-fill:rgb(var(--primary-rgb) / 12%);--region-wash:rgb(var(--primary-rgb) / 12%);--accent-ink:var(--paper);--warn:#f5a623;--warn-soft:#33260f;--danger-rgb:var(--red-300);--danger:rgb(var(--danger-rgb));--danger-fill:rgb(var(--danger-rgb) / 12%);--danger-ink:var(--paper);--focus-ring:0 0 0 2px var(--stage), 0 0 0 4px var(--accent), 0 0 0 5px var(--stage-ink)}:root{--face-tile-height:5rem;--face-tile-aspect:16 / 9;--work-min-height:480px;--dialog-min-height:240px}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);line-height:var(--leading-normal);margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}:focus-visible{box-shadow:var(--focus-ring);outline:none}.icon-button--danger{background:var(--danger-fill);color:var(--danger)}.icon-button--danger:hover,.icon-button--danger:active{background:var(--danger);color:var(--danger-ink)}.icon-button--bare{min-width:var(--control-min);color:var(--ink-muted);background:0 0}.icon-button--bare:hover,.icon-button--bare:active{color:var(--ink);background:0 0}.icon-button--quiet{background:var(--paper-sunken);color:var(--ink)}.icon-button--quiet:hover,.icon-button--quiet:active{background:var(--rule);color:var(--ink)}a.icon-button{text-decoration:none}.icon-button-glyph{width:var(--icon-sm);height:var(--icon-sm);stroke:currentColor;stroke-width:2px;fill:none;flex:none}.icon-button-label{overflow-wrap:anywhere;max-width:7rem}.icon-button:disabled{opacity:.5;cursor:default}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar,.calibration-notice,.controls{flex:none}.workarea{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.stage-empty{justify-content:center;align-items:center;gap:var(--space-3);min-height:0;padding:var(--space-6);text-align:center;color:var(--stage-ink);flex-direction:column;flex:1;display:flex}.stage-empty-text{max-width:var(--measure);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.stage-empty-link{padding:var(--space-2) var(--space-4);border:1px solid var(--primary);border-radius:var(--radius-md);background:var(--control-fill);color:var(--primary);font-size:var(--text-sm);text-decoration:none}.stage-empty-link:hover,.stage-empty-link:active{background:var(--primary);color:var(--accent-ink)}.stage-empty-practice{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm)}.child-view,.tutor-host,.face-stage{flex-direction:column;flex:1;min-height:0;display:flex}.page{z-index:5;padding:var(--space-6) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));background:var(--paper);position:absolute;inset:0;overflow-y:auto}.page>*{max-width:var(--measure-wide);margin-inline:auto}.page-title{margin:0 0 var(--space-2);font-size:var(--text-2xl);letter-spacing:-.01em;font-weight:600}.page-intro{margin:0 0 var(--gap-section);max-width:var(--measure);color:var(--ink-muted);line-height:var(--leading-normal);margin-inline:0}.page-grid{grid-template-columns:repeat(var(--grid-columns), minmax(0, 1fr));gap:var(--gap-card) var(--gap-column);display:grid}.page-grid>*{grid-column:1/-1}.page-grid>.span-1{grid-column:span 1}.appearance-section+.appearance-section{margin-top:var(--gap-section)}.appearance-heading{margin:0 0 var(--space-2);font-size:var(--text-md);font-weight:600}.appearance-section .appearance-hint{margin:0 0 var(--space-2)}.timezone-select{max-width:var(--panel-max)}.appearance-section .menu-group{padding:var(--space-1);background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--radius-md)}.session-dock{--dock-inset:var(--space-4);--dock-width:min(var(--panel-max), calc(100vw - 2 * var(--space-4)));--dock-height:15rem;right:var(--dock-inset);bottom:var(--dock-inset);z-index:7;width:var(--dock-width);height:var(--dock-height);border:1px solid var(--rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);background:0 0;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;overflow:hidden}.session-dock-hit{cursor:pointer;flex:1;min-height:0}.session-dock-bar{align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--paper);border-top:1px solid var(--rule);flex:none;display:flex}.session-dock-dot{border-radius:var(--radius-pill);background:var(--accent);flex:none;width:.5rem;height:.5rem}.session-dock-job{font-size:var(--text-sm);color:var(--ink-muted);flex:none}.session-dock-clock{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink-muted);flex:none;margin-right:auto}.session-dock-button{min-width:0;padding:var(--space-1);color:var(--ink);border:1px solid var(--rule);background:0 0;flex-direction:column}.workarea[data-docked=true]>.child-view,.workarea[data-docked=true]>.tutor-host,.workarea[data-docked=true]>.face-stage{right:var(--space-4);bottom:var(--space-4);z-index:6;width:min(var(--panel-max), calc(100vw - 2 * var(--space-4)));border-radius:var(--radius-lg);pointer-events:none;flex:none;height:15rem;position:absolute;overflow:hidden}.workarea[data-docked=true] .dewarp-panel,.workarea[data-docked=true] .publish-panel,.workarea[data-docked=true] .handle-layer,.workarea[data-docked=true] .raw-panel canvas,.workarea[data-docked=true] .region-layer,.workarea[data-docked=true] .annotation-layer,.workarea[data-docked=true] .tutor-faces,.workarea[data-docked=true] .tutor-controls,.workarea[data-docked=true] .tutor-side,.workarea[data-docked=true] .tutor-presence,.workarea[data-docked=true] .face-stack-self,.workarea[data-docked=true] .child-view>[data-el=face]{display:none}.workarea[data-docked=true] .panels,.workarea[data-docked=true] .tutor,.workarea[data-docked=true] .tutor-main,.workarea[data-docked=true] .tutor-worksheet,.workarea[data-docked=true] .tutor-stage,.workarea[data-docked=true] .raw-panel,.workarea[data-docked=true] .face-stack,.workarea[data-docked=true] .face-window{aspect-ratio:auto;border:0;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;display:block;overflow:hidden}.workarea[data-docked=true] .raw-panel video,.workarea[data-docked=true] .tutor-worksheet video,.workarea[data-docked=true] .face-window video{object-fit:cover;border-radius:0;width:100%;max-width:none;height:100%;max-height:none}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--paper);border-bottom:1px solid var(--rule);display:flex}.account-bar{flex:none;align-items:center;display:flex}.avatar-button{border-radius:var(--radius-pill);background:var(--primary);width:2.25rem;height:2.25rem;color:var(--accent-ink);font-size:var(--text-sm);letter-spacing:.02em;cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;font-weight:600;display:flex}.avatar-button--anonymous{width:auto;height:auto;padding:var(--space-1) var(--space-2);color:var(--ink-muted);border:1px solid var(--rule);border-radius:var(--radius-md);background:0 0}.account-menu{min-width:14rem;max-height:min(32rem,80vh);overflow-y:auto}.menu-heading{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--ink-muted);margin:0}.app-nav{flex-direction:column;display:flex}.app-nav-item{font-weight:500}@media (width<=700px){.topbar h1{display:none}}.theme-trigger{min-width:3rem;padding:var(--space-1) var(--space-2);color:var(--ink-muted);border:1px solid var(--rule);background:0 0}.popover-host{position:relative}.popover-panel--below{top:calc(100% + var(--space-1))}.popover-panel--above{top:auto;bottom:calc(100% + var(--space-1))}.menu-item{justify-content:flex-start;align-items:center;gap:var(--space-3);width:100%;min-height:2.5rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--ink);text-align:left;font-size:var(--text-base);background:0 0;border-color:#0000;flex-direction:row;display:flex}.menu-item .icon-button-label{font-size:inherit;white-space:nowrap;max-width:none}.menu-item:hover{background:var(--paper-sunken)}.menu-item--current,.app-nav-item--current{background:var(--accent-soft);color:var(--ink);font-weight:600}.menu-group{flex-direction:column;display:flex}.menu-group+.menu-group{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--rule)}.menu-status{margin:var(--space-1) 0 0;padding:0 var(--space-3) var(--space-2);max-width:16rem;font-size:var(--text-sm);color:var(--warn)}.color-swatch .icon-button-glyph{border-radius:var(--radius-pill);stroke:var(--rule-strong);stroke-width:1px}.color-swatch[data-color=lime] .icon-button-glyph{fill:rgb(var(--swatch-lime))}.color-swatch[data-color=teal] .icon-button-glyph{fill:rgb(var(--swatch-teal))}.color-swatch[data-color=sky] .icon-button-glyph{fill:rgb(var(--swatch-sky))}.color-swatch[data-color=fuchsia] .icon-button-glyph{fill:rgb(var(--swatch-fuchsia))}.topbar h1{font-size:var(--text-lg);color:var(--accent);letter-spacing:.01em;margin:0;font-weight:600}.sign-in-panel{justify-content:center;align-items:center;gap:var(--space-6);min-height:100dvh;padding:var(--space-8) var(--space-6);text-align:center;flex-direction:column;display:flex}.sign-in-panel h1{font-size:var(--text-2xl);color:var(--accent);margin:0;font-weight:600}.sign-in-intro{max-width:var(--measure);color:var(--ink-muted);margin:0}.sign-in-ways{justify-content:center;align-items:stretch;gap:var(--space-4);flex-wrap:wrap;display:flex}.sign-in-hint{max-width:var(--measure);font-size:var(--text-base);color:var(--ink-faint);margin:0}.sign-in-status{max-width:var(--measure);color:var(--danger);margin:0}.sign-in-theme{margin-top:var(--space-4)}.hud{gap:var(--space-3);font-variant-numeric:tabular-nums;min-width:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-faint);flex:auto;justify-content:center;display:flex;overflow-x:auto}.hud>span{white-space:nowrap}.panels{gap:var(--space-2);padding:0 var(--space-2);grid-template-columns:2fr 3fr;display:grid}.panels,.tutor-main{grid-auto-rows:minmax(var(--work-min-height), 1fr);flex:1;min-height:0;overflow-y:auto}@media (width<=700px){.panels{grid-template-columns:1fr}}.raw-panel{place-self:center;width:fit-content;max-width:100%;position:relative}.raw-panel video{width:auto;max-width:100%;height:auto;max-height:var(--work-height,80vh);border-radius:var(--radius-sm);display:block}.raw-panel canvas,.handle-layer{position:absolute;inset:0}.handle-layer{pointer-events:none}.corner-handle{width:var(--control-min);height:var(--control-min);margin:calc(var(--control-min) / -2) 0 0 calc(var(--control-min) / -2);pointer-events:auto;touch-action:none;border-radius:50%;position:absolute}.corner-handle:after{content:"";inset:calc((var(--control-min) - var(--handle-dot)) / 2);background:var(--accent);border:2px solid var(--stage-ink);border-radius:50%;position:absolute}.dewarp-panel--landscape{aspect-ratio:1.4142}.publish-panel{aspect-ratio:auto;grid-column:1/-1;place-self:start stretch;width:100%;height:auto}.publish-panel video{object-fit:contain;width:100%;height:100%;display:block}.tutor{flex-direction:column;flex:1;min-height:0;display:flex}.tutor-main{grid-template-columns:minmax(0, 3fr) minmax(var(--field-w), 1fr);gap:var(--space-2);padding:0 var(--space-2);align-items:stretch;display:grid}.tutor-worksheet{background:var(--stage-void);border-radius:var(--radius-sm);cursor:zoom-in;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.tutor-stage{width:fit-content;max-width:100%;margin:0 auto;position:relative}.tutor-side{min-height:0}.tutor-worksheet video{width:auto;max-width:100%;height:auto;max-height:var(--work-height,80vh);object-fit:contain;display:block}.tutor-raw{min-width:0;display:none}.tutor--zoomed .tutor-main{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.tutor--zoomed .tutor-raw{display:block}.tutor--zoomed .tutor-side{display:none}.tutor--zoomed .tutor-worksheet{cursor:zoom-out}.tutor-placeholder{padding:var(--space-4);text-align:center;color:var(--stage-ink-muted);font-size:var(--text-base);place-items:center;margin:0;display:grid;position:absolute;inset:0}.tutor-side{gap:var(--space-2);display:grid}.tutor-faces{align-items:flex-start;gap:var(--space-2);padding:var(--space-2);flex:none;display:flex;overflow-x:auto}.tutor-face-children{gap:var(--space-2);display:flex}.tutor-face,.tutor-face-self{height:var(--face-tile-height);aspect-ratio:var(--face-tile-aspect);background:var(--stage-void);border:1px solid var(--stage-rule);border-radius:var(--radius-sm);flex:none;padding:0;overflow:hidden}.tutor-face{cursor:pointer}.tutor-face[aria-pressed=true]{border-color:var(--accent)}.tutor-face video{object-fit:cover;width:100%;height:100%;display:block}.tutor-face-self{object-fit:cover;display:block;transform:scaleX(-1)}.tutor-ocr{border:1px dashed var(--stage-rule);border-radius:var(--radius-sm);padding:var(--space-3);color:var(--stage-ink);font-size:var(--text-sm);min-height:6rem;max-height:100%;overflow-y:auto}.tutor-ocr-heading{margin:0 0 var(--space-1);color:var(--accent);font-weight:600}.tutor-ocr-verdict{margin:0 0 var(--space-2);font-weight:600}.tutor-ocr-source,.tutor-ocr-empty{margin:var(--space-2) 0 0;color:var(--stage-ink-faint)}.grade-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.grade-item{justify-content:space-between;gap:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--paper-sunken);border-left:3px solid var(--rule-strong);display:flex}.grade-item-source{font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.grade-item-outcome{color:var(--ink-muted);flex:none}.grade-item--correct{border-left-color:var(--accent)}.grade-item--incorrect{border-left-color:var(--warn)}.grade-item--not-graded{border-left-color:var(--rule-strong)}.tutor-presence{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--stage-ink-muted);flex:none;margin:0}@media (width<=700px){.tutor-main{grid-template-columns:minmax(0,1fr)}}.face-stack{min-width:0;display:flex}.face-stack--stage{gap:var(--space-4);padding:var(--space-4);flex-wrap:wrap;justify-content:center;align-items:stretch}.face-stack--stage>*{flex:320px;min-width:0;max-width:640px}.face-stack--row{align-items:flex-start;gap:var(--space-2);padding:var(--space-2);flex:none;overflow-x:auto}.face-stack--row>*{height:var(--face-tile-height);aspect-ratio:var(--face-tile-aspect);flex:none;width:auto}.face-stack-self{aspect-ratio:16/9;background:var(--stage-void);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex;overflow:hidden}.face-stack-self video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.face-stack--stage .face-stack-self{width:100%}.face-stack--row .face-window-notice{padding:var(--space-1);font-size:.7rem;line-height:1.2}.face-window{aspect-ratio:16/9;background:var(--stage-void);border:1px solid var(--stage-rule);border-radius:var(--radius-md);justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.face-window video{object-fit:cover;width:100%;height:100%;display:block}.footer-hint{color:var(--ink-muted);font-size:var(--text-xs);max-width:18rem}.face-window-notice{padding:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-tight);text-align:center;color:var(--stage-ink-muted);margin:0}.lobby{z-index:10;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6);background:var(--stage-scrim);flex-direction:column;display:flex;position:fixed;inset:0}.lobby-title{font-size:var(--text-lg);margin:0;font-weight:600}.lobby-row{align-items:center;gap:var(--space-3);font-size:var(--text-md);padding:var(--space-2) var(--space-4);min-width:var(--field-w);display:flex}.lobby-row input{width:1.2rem;height:1.2rem}.remote-status{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-family:var(--font-mono);color:var(--ink-muted);background:var(--paper-sunken);border-radius:var(--radius-sm);margin:0}.remote-status--waiting{color:var(--warn)}.lobby-row--device select{font-size:var(--text-base);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md)}.lobby-row--code{justify-content:space-between}.lobby-row--code input{width:8rem;height:auto;font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.08em;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--rule-strong);background:var(--paper-sunken);color:var(--ink)}.lobby-actions{gap:var(--space-3);display:flex}.readback{z-index:10;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6);background:var(--stage-scrim);flex-direction:column;display:flex;position:fixed;inset:0}.readback-heading,.readback-question{font-size:var(--text-lg);margin:0;font-weight:600}.readback-reading{max-width:min(40rem,90vw);max-height:40vh;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--paper-sunken);color:var(--ink);font-size:var(--text-lg);line-height:var(--leading-normal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;overflow:auto}.readback-correction{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.readback-hint{font-size:var(--text-md)}.readback-correction textarea{width:min(40rem,90vw);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--rule);background:var(--paper-sunken);color:var(--ink);font-family:inherit;font-size:var(--text-lg);line-height:var(--leading-normal)}.readback-actions{gap:var(--space-3);display:flex}.readback-actions button{font-size:var(--text-sm)}.readback-actions .icon-button-label{max-width:var(--field-w)}.readback-declined{max-width:var(--measure);font-size:var(--text-md);line-height:var(--leading-normal);margin:0}.readback-status{font-size:var(--text-md);margin:0}.controls{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-3);background:var(--paper);border-top:1px solid var(--rule);flex-wrap:wrap;display:flex}.controls button{font-size:var(--text-xs)}.controls button:disabled{opacity:.5}.camera-picker{align-items:center;gap:var(--space-2);font-size:var(--text-base);display:inline-flex}.camera-picker select{font-size:var(--text-base);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink)}.status{font-size:var(--text-base);color:var(--ink-muted);margin:0}.status--warning{color:var(--warn)}.settings-drawer{z-index:8;width:min(var(--panel-max), 92vw);padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));background:var(--paper-raised);border-left:1px solid var(--rule);box-shadow:var(--shadow-soft);position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.settings-drawer-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--rule);display:flex}.settings-drawer-title{font-size:var(--text-md);margin:0;font-weight:600}.settings{font-size:var(--text-base)}.settings-rows{gap:var(--space-2);padding:var(--space-2) 0;display:grid}.settings-row{align-items:center;gap:var(--space-1-5) var(--space-3);grid-template-columns:1fr 3rem;grid-template-areas:"label value""input input";display:grid}.settings-label{grid-area:label}.settings-row input{grid-area:input}.settings-value{color:var(--ink-muted);font-variant-numeric:tabular-nums;text-align:right;grid-area:value}.settings-expert{margin:var(--space-1) 0 var(--space-3);padding-left:var(--space-3);border-left:2px solid var(--rule)}.settings-expert>summary{cursor:pointer;padding:var(--space-1) 0;color:var(--ink-muted);font-size:var(--text-sm)}.settings-hint{margin:var(--space-1) 0 var(--space-2);max-width:var(--measure);color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.settings-expert-rows{gap:var(--space-2);padding:var(--space-1) 0;display:grid}.calibration-notice{padding:var(--space-3) var(--space-4);background:var(--danger);color:var(--danger-ink);font-size:var(--text-md);text-align:center;margin:0;font-weight:600}.raw-panel.calibration-active{outline:3px solid var(--warn);outline-offset:-3px}.tutor-worksheet{position:relative}.tutor-controls{top:var(--space-2);right:var(--space-2);z-index:4;gap:var(--space-1);display:flex;position:absolute}.tutor-calibrate{min-width:var(--control-min);min-height:var(--control-min);border-radius:var(--radius-md);border:1px solid var(--stage-rule);background:var(--stage-plate);color:var(--stage-ink);font-size:var(--text-xs);font-weight:600;line-height:var(--leading-tight);cursor:pointer}.tutor-calibrate .icon-button-label,.calendar-cell .icon-button-label,.link-group .icon-button-label,.icon-button--bare .icon-button-label{clip-path:inset(50%);white-space:nowrap;position:absolute;overflow:hidden}.tutor-mark[aria-pressed=true],.mark-button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--accent-ink)}.calibration{width:min(96vw,1400px);max-height:94dvh;padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow-soft);overflow:hidden}.calibration[open],.annotation[open]{flex-direction:column;display:flex}.calibration-title,.calibration-hint,.calibration-actions{flex:none}.calibration::backdrop{background:var(--stage-backdrop)}.calibration-title{margin:0 0 var(--space-1);font-size:var(--text-lg)}.calibration-hint{margin:0 0 var(--space-3);color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.calibration-panes{gap:var(--space-3);flex:auto;grid-template-columns:1fr 1fr;align-items:start;min-height:0;display:grid;overflow-y:auto}.calibration-column{min-width:0}.calibration-pane{background:var(--stage-void);border-radius:var(--radius-sm);margin:0;position:relative;overflow:hidden}.calibration-pane figcaption{top:var(--space-1);left:var(--space-2);z-index:2;color:var(--stage-ink);font-size:var(--text-xs);text-shadow:0 1px 2px var(--stage-void);position:absolute}.calibration-pane--empty{aspect-ratio:4/3;min-width:100%}.calibration-pane video{width:100%;height:auto;display:block}.calibration-waiting{color:var(--stage-ink-muted);font-size:var(--text-sm);place-items:center;margin:0;display:grid;position:absolute;inset:0}.calibration-handles{z-index:3;position:absolute;inset:0}.calibration-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-3);display:flex}@media (width<=700px){.page-grid{--grid-columns:1}.page-grid>.span-1{grid-column:1/-1}.calibration-panes{grid-template-columns:1fr}}.region-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.region-layer--armed{pointer-events:auto;touch-action:none;cursor:crosshair}.region-box{border:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--region-wash);pointer-events:none;position:absolute}.annotation-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.annotation-layer--drawing{pointer-events:auto;touch-action:none;cursor:crosshair}.annotation-svg{width:100%;height:100%;display:block;overflow:visible}.annotation-stroke{fill:none;stroke:var(--annotation-ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.annotation{border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised);width:min(96vw,1000px);max-height:94dvh;color:var(--ink);padding:var(--space-4);box-shadow:var(--shadow-soft);overflow:hidden}.annotation-title,.annotation-hint,.annotation-notice,.annotation-actions{flex:none}.annotation-body{--work-min-height:var(--dialog-min-height);flex:1;place-content:start center;min-height:0;display:grid;overflow-y:auto}.annotation::backdrop{background:var(--stage-backdrop)}.annotation-title{margin:0 0 var(--space-1);font-size:var(--text-md)}.annotation-hint{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-muted)}.annotation-stage{border-radius:var(--radius-sm);background:var(--stage-void);width:fit-content;max-width:100%;margin:0;position:relative;overflow:hidden}.annotation-stage figcaption{top:var(--space-1);left:var(--space-2);z-index:2;font-size:var(--text-xs);color:var(--stage-ink);background:var(--stage-plate);padding:var(--space-0-5) var(--space-1);border-radius:var(--radius-sm);position:absolute}.annotation-stage canvas{width:auto;max-width:100%;height:auto;max-height:var(--work-height,80vh);display:block}.annotation-waiting{color:var(--stage-ink-muted);font-size:var(--text-base);place-items:center;margin:0;display:grid;position:absolute;inset:0}.annotation-notice{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--warn)}.annotation-actions{gap:var(--space-2);margin-top:var(--space-3);justify-content:flex-end;display:flex}.region-box--draft{border-style:dashed}.region-caption{top:calc(var(--icon-md) * -1);padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--stage-plate);color:var(--accent);font-size:var(--text-xs);white-space:nowrap;position:absolute;left:0}.booking-intro,.start-hint,.availability-intro,.consent-intro,.erasure-intro,.push-hint{margin:0 0 var(--space-3);max-width:var(--measure);color:var(--ink-muted);font-size:var(--text-base);line-height:var(--leading-normal)}.appearance-hint,.booking-hint,.start-lesson-hint,.availability-hint,.consent-hint{margin:var(--space-1) 0 0;max-width:var(--measure);color:var(--ink-faint);font-size:var(--text-sm);line-height:var(--leading-normal)}.booking-heading,.start-heading,.push-heading{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-md);color:var(--ink);font-weight:600}.booking>.booking-heading:first-of-type,.push-toggle>.push-heading:first-child{margin-top:0}.booking-status,.start-code-error,.availability-status,.consent-status,.erasure-status,.push-status{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--ink-muted)}.booking-tutor{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--ink-faint)}.booking-week{gap:var(--space-3);display:grid}.booking-slots,.start-lessons,.consent-children{gap:var(--space-2);display:grid}.booking-slot,.start-lesson{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--paper-raised);flex-wrap:wrap;display:flex}.booking-slot-when,.start-lesson-when{flex:1 1 var(--field-w);min-width:0;font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--ink);margin:0}.availability-detail-line{display:block}.availability-exception{align-items:center;gap:var(--space-2);color:var(--ink-faint);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin:0;display:flex}.availability-edit{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);font-size:var(--text-sm);flex-direction:column;flex:1 0 100%;display:flex}.availability-edit-note{color:var(--warn);font-size:var(--text-sm);margin:0}.availability-edit label{gap:var(--space-1);flex-direction:column;display:flex}.availability-confirm{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--paper);color:var(--ink);font-size:var(--text-sm);flex-direction:column;display:flex}.availability-confirm-lessons{padding-left:var(--space-4);font-variant-numeric:tabular-nums;margin:0}.availability-preview{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;max-width:var(--measure);color:var(--ink);font-size:var(--text-sm);line-height:var(--leading-normal);flex-wrap:wrap;display:flex}.booking-needs-consent{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--warn-soft);color:var(--warn);font-size:var(--text-sm);line-height:var(--leading-normal);flex-wrap:wrap;flex:100%;margin:0;display:flex}.booking-child-field,.consent-label-field,.availability-form label{gap:var(--space-1);font-size:var(--text-sm);color:var(--ink-muted);display:grid}.booking-child-field select,.consent-label-field input,.availability-form select,.availability-form input,.timezone-select{width:100%;min-height:var(--control-min);padding:var(--space-2) var(--space-3);border:1px solid var(--rule-strong);border-radius:var(--radius-md);background:var(--paper);color:var(--ink);font-family:inherit;font-size:var(--text-md)}.availability-form{margin-bottom:var(--gap-card);align-items:end}.availability-caption{align-items:center;gap:var(--space-1);min-height:var(--control-min);display:flex}.availability-add{grid-column:1/-1;justify-self:start}.availability-form-hint{grid-column:1/-1}.link-actions{justify-self:start}.week-view{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.week-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.week-name{flex:1 1 var(--field-w);font-size:var(--text-md);color:var(--ink);margin:0}.week-layout{display:none}.week-strip{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);display:none}.week-grid{gap:var(--space-2);grid-template-columns:auto 1fr;align-items:start;display:grid}.week-axis{height:calc(var(--calendar-span,240) * var(--calendar-minute));min-width:var(--field-w-narrow);border-right:1px solid var(--rule);position:relative}.week-axis-mark{right:var(--space-1);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--ink-faint);position:absolute;transform:translateY(-50%)}.week-days{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.week-day{align-content:start;gap:var(--space-2);min-width:0;display:grid}.day-grid{gap:var(--space-1);height:calc(var(--calendar-span,240) * var(--calendar-minute));grid-template-columns:minmax(0,1fr);display:grid;position:relative}.day-grid[data-booked=yes]{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.day-lane{min-width:0;position:relative}.day-note{font-size:var(--text-xs);color:var(--ink-faint);margin:0}.day-lane--booked{border-left:1px solid var(--rule);padding-left:var(--space-1)}.week-day-name{gap:var(--space-0-5);font-size:var(--text-sm);color:var(--ink);margin:0;font-weight:600;display:grid}.week-day-date{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-weight:400}.week-day[data-off=yes] .week-day-date{color:var(--danger);font-weight:600}.week-day-says{padding-bottom:var(--space-1);font-size:var(--text-xs);color:var(--danger);margin:0;font-weight:600}.calendar-cell--free{border:1px solid var(--rule);background:var(--paper-raised)}.calendar-cell--booked{background:var(--control-fill)}.calendar-cell--off{background:var(--danger-fill)}.calendar-cell-body{flex:1 1 0;min-width:0}.calendar-duration{color:var(--ink-faint);display:none}@container calendar-tile (width>=120px){.calendar-duration{display:inline}}.calendar-time{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--ink);margin:0}.calendar-state{font-size:var(--text-xs);color:var(--ink-muted);margin:0}.calendar-cell--off .calendar-state{color:var(--danger);font-weight:600}.week-note,.week-empty{font-size:var(--text-sm);color:var(--ink-faint);margin:0}.availability-later,.availability-absence{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--rule);display:grid}@media (width<=700px){.week-days{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.week-layout{display:inline-flex}.week-view[data-layout=day] .week-strip{display:flex}.week-view[data-layout=day] .week-day[data-selected=no]{display:none}}.availability-dialog{width:min(96vw, var(--measure));max-height:94dvh;padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow-soft);overflow:hidden}.availability-dialog[open]{gap:var(--space-3);flex-direction:column;display:flex}.availability-dialog-title,.availability-dialog-actions{flex:none}.availability-dialog-title{font-size:var(--text-lg);margin:0}.availability-dialog-body{flex:auto;min-height:0;overflow-y:auto}.availability-dialog-section{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--rule);display:grid}.availability-dialog-section:first-child{border-top:none;padding-top:0}.availability-dialog-section p{margin:0}.availability-dialog-section-title{font-size:var(--text-sm);color:var(--ink-muted);margin:0;font-weight:600}.availability-dialog-lessons{gap:var(--space-1);padding-left:var(--space-4);font-size:var(--text-sm);color:var(--ink-muted);margin:0;display:grid}.availability-dialog::backdrop{background:var(--stage-backdrop)}.consent-practice,.booking-link,.availability-share{gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);flex:100%;display:grid}.link-group{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--paper-sunken);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid;overflow:hidden}.link-group-field{min-width:0;padding:var(--space-2) var(--space-3);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-sm);background:0 0;border:none}.link-group .icon-button{min-width:var(--control-min);border-left:1px solid var(--rule);border-radius:0}.consent-child{padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised)}.consent-child-name{margin:0 0 var(--space-3);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:600}.consent-purpose{align-items:start;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.consent-purpose-name{font-weight:600;font-size:var(--text-base);grid-area:1/1;margin:0}.consent-purpose-detail{max-width:var(--measure);color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal);grid-area:2/1;margin:0}.consent-purpose-state{grid-area:1/2;justify-self:end}.consent-purpose>.switch-control{grid-area:2/2;justify-self:end}.switch-control{min-width:var(--control-min);min-height:var(--control-min);padding:var(--space-1);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.state-pill{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--paper-sunken);color:var(--ink-muted);font-size:var(--text-xs);font-weight:600}.switch-control-track{width:var(--switch-w);height:var(--switch-h);border-radius:var(--radius-pill);background:var(--rule-strong);transition:background var(--dur-fast) var(--ease-quiet);display:block;position:relative}.switch-control[aria-checked=true] .switch-control-track{background:var(--primary)}.switch-control-thumb{top:var(--space-0-5);left:var(--space-0-5);width:var(--switch-thumb);height:var(--switch-thumb);border-radius:var(--radius-pill);background:var(--paper);box-shadow:var(--shadow-soft);transition:transform var(--dur-fast) var(--ease-quiet);position:absolute}.switch-control[aria-checked=true] .switch-control-thumb{transform:translateX(calc(var(--switch-w) - var(--switch-thumb) - var(--space-0-5) * 2))}.erasure{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--rule-strong)}.erasure-heading{margin:0 0 var(--space-2);font-size:var(--text-md);color:var(--ink);font-weight:600}.erasure-what{margin:0 0 var(--space-4);max-width:var(--measure);color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}.erasure-learners{gap:var(--space-2);display:grid}.erasure-learner{padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised)}.erasure-learner-name{margin:0 0 var(--space-3);font-size:var(--text-md);font-variant-numeric:tabular-nums;font-weight:600}.erasure-actions{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.erasure-actions--armed{padding:var(--space-3);border-radius:var(--radius-md);background:var(--warn-soft)}.erasure-warning{max-width:var(--measure);color:var(--danger);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-normal);flex:100%;margin:0}.erasure-linked{max-width:var(--measure);color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal);flex:100%;margin:0}.erasure-pending{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.erasure-when{flex:1 1 var(--field-w);font-size:var(--text-base);color:var(--warn);margin:0;font-weight:600}.erasure-elsewhere{margin:var(--space-4) 0 0;max-width:var(--measure);color:var(--ink-faint);font-size:var(--text-sm);line-height:var(--leading-normal)}.erasure-account-link{color:var(--ink-muted)}.push-toggle,.email-toggle,.calendar-panel{align-items:start;gap:var(--space-2) var(--space-3);padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper-raised);grid-template-columns:minmax(0,1fr) auto;display:grid}.push-toggle>*,.email-toggle>*,.calendar-panel>*{grid-column:1;margin:0}.push-toggle>.state-pill,.email-toggle>.state-pill,.calendar-panel>.state-pill{grid-area:1/2;justify-self:end}.push-toggle>.settings-control,.email-toggle>.settings-control,.calendar-panel>.settings-control{justify-self:end;align-items:center;gap:var(--space-2);grid-area:2/2;display:flex}.calendar-panel>.availability-share{grid-column:1/-1}.email-toggle,.calendar-panel{margin-top:var(--space-3)}.booking-note,.start-empty,.availability-note{padding:var(--space-6) var(--space-4);border:1px dashed var(--rule-strong);border-radius:var(--radius-md);color:var(--ink-muted);font-size:var(--text-base);line-height:var(--leading-normal);text-align:center;margin:0}.start{gap:var(--space-4);display:grid}.start-code{padding-top:var(--space-4);border-top:1px solid var(--rule)}.start-code-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.start-code-row input{flex:1 1 var(--field-w);min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--paper-sunken);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-base)}.tutor-face-name,.face-window-name{padding:var(--space-0-5) var(--space-1);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:var(--text-sm);line-height:var(--leading-tight);text-align:center;color:var(--stage-ink-muted);margin:0;display:block;overflow:hidden}
