:root{color-scheme:light;--color-canvas: #faf9f5;--color-surface: #f5f0e8;--color-card: #efe9de;--color-selected: #e8e0d2;--color-ink: #141413;--color-text: #3d3d3a;--color-muted: #64635d;--color-border: #e6dfd8;--color-border-strong: #8e8b82;--color-accent: #cc785c;--color-accent-active: #a9583e;--color-link: #8f4934;--color-on-accent: #141413;--color-on-accent-active: #ffffff;--color-dark: #181715;--color-dark-elevated: #252320;--color-dark-hover: #3d3d3a;--color-on-dark: #faf9f5;--color-on-dark-muted: #a09d96;--color-dark-border: #6c6a64;--color-success: #356b43;--color-success-bg: #eaf2e7;--color-warning: #805719;--color-warning-bg: #f6ecda;--color-danger: #a63434;--color-danger-bg: #f8e9e7;--color-overlay: rgb(20 20 19 / 42%);--color-floating-surface: rgb(250 249 245 / 96%);--color-print-paper: #ffffff;--color-print-ink: #000000;--font-display: "Copernicus", "Tiempos Headline", "Cormorant Garamond", Georgia, "Songti SC", "STSong", "Noto Serif CJK SC", serif;--font-body: "StyreneB", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--text-xs: 12px;--text-caption: 13px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px;--text-4xl: 36px;--text-5xl: 48px;--text-display: 64px;--leading-body: 1.65;--leading-heading: 1.3;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-24: 96px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgb(20 20 19 / 8%);--shadow-modal: 0 12px 40px rgb(20 20 19 / 16%);--control-height: 44px;--control-height-teaching: 56px;--control-height-primary: 64px;--layout-content: 1280px;--layout-admin: 1440px;--layout-detail: 760px;--layout-sidebar: 224px;--layout-header: 76px;--layout-header-mobile: 64px;--row-height: 64px;--duration-fast: .15s;--duration-normal: .2s}.classroom-app{--color-canvas: #f5f5fc;--color-surface: #ffffff;--color-card: #efedfa;--color-selected: #eeebfc;--color-ink: #252644;--color-text: #373951;--color-muted: #62667d;--color-border: #e5e4f0;--color-border-strong: #8c8ba5;--color-accent: #6554dc;--color-accent-active: #5140be;--color-link: #5743c4;--color-on-accent: #ffffff;--color-on-accent-active: #ffffff;--color-dark: #191a30;--color-dark-elevated: #2b2c48;--color-dark-hover: #3b3b5d;--color-dark-border: #787a99;--color-on-dark: #ffffff;--color-on-dark-muted: #c4c6df;--color-floating-surface: rgb(255 255 255 / 94%);--color-overlay: rgb(30 28 65 / 36%);--classroom-glass: rgb(255 255 255 / 70%);--classroom-mist: #e6dcfc;--classroom-sky: #dcf4fb;--classroom-gradient-end: #805aca;--classroom-toolbar: rgb(27 28 51 / 96%);--library-wood: #d7ab71;--library-wood-back: #926d49;--library-floor: #e6dcc4;--library-wall: #f1e7d4;--library-yellow: #f1c94e;--library-door: #d9e6dc;--library-glass: #8fc7ce;--library-book-paper: #faf1d8;--library-book-blue: #609bb9;--library-book-red: #ce7969;--library-book-green: #7ca987;--library-seat-blue: #368dbb;--library-seat-green: #95b951;--library-wall-teal: #406b65;--library-blind: #d9cfbd;--library-cushion: #c7a774;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display: var(--font-body);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 22px;--radius-xl: 28px;--layout-sidebar: 200px;--shadow-sm: 0 5px 22px rgb(37 38 68 / 5%);--shadow-modal: 0 20px 60px rgb(37 38 68 / 18%)}.project-showcase{--color-canvas: #ffffff;--color-surface: #f7e9ed;--color-card: #ffffff;--color-ink: #30262b;--color-text: #53434b;--color-muted: #78656e;--color-border: #e8dce1;--color-border-strong: #b58e9a;--color-accent: #8f233b;--color-link: #8f233b;--color-on-accent: #ffffff;--color-dark: #691a2d;--color-dark-elevated: #8f233b;--color-dark-border: #b58e9a;--color-on-dark: #ffffff;--color-on-dark-muted: #f0d8df;--radius-2xl: 24px;--scene-shift: 0px;--font-body: "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: var(--font-body);--shadow-project: 0 20px 60px color-mix(in srgb, var(--color-ink) 8%, transparent)}:root{font-family:var(--font-body);color:var(--color-text);background:var(--color-canvas);font-synthesis:none;font-size:var(--text-base);line-height:var(--leading-body)}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0;overflow-wrap:anywhere}h1,h2{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.02em}h1{font-size:var(--text-4xl);line-height:var(--leading-heading);font-weight:400}h2{font-size:var(--text-2xl);font-weight:400;line-height:1.5}h3{color:var(--color-ink);font-size:var(--text-lg);font-weight:500;line-height:1.5}p+p{margin-top:var(--space-2)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button,.file-button{min-height:var(--control-height);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-on-accent);padding:var(--space-2) var(--space-4);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer;text-decoration:none;line-height:1.4;font-weight:400;transition:background-color var(--duration-normal),border-color var(--duration-normal),color var(--duration-normal)}button:hover:not(:disabled),.button:hover:not(:disabled){background:var(--color-accent-active);color:var(--color-on-accent-active);border-color:var(--color-link)}button:active:not(:disabled),.button:active:not(:disabled){background:var(--color-accent-active);color:var(--color-on-accent-active)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.button.secondary{background:transparent;color:var(--color-ink);border-color:var(--color-border-strong)}button.secondary:hover:not(:disabled),.button.secondary:hover:not(:disabled){color:var(--color-ink);background:var(--color-card);border-color:var(--color-border-strong)}button.text-button{border:0;background:transparent;color:var(--color-ink);padding:var(--space-2) var(--space-1)}button.text-button:hover:not(:disabled){color:var(--color-link);background:var(--color-card)}.compact{padding:var(--space-2) var(--space-3)}.text-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);color:var(--color-muted);font-size:var(--text-sm)}.text-link:hover{color:var(--color-ink);text-decoration:underline;text-underline-offset:5px}.full-width{width:100%}a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-accent-active);outline-offset:3px}input,select,textarea{width:100%;min-height:var(--control-height);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-ink);background:var(--color-canvas);padding:var(--space-2) var(--space-3);max-width:100%}input[type=checkbox]{accent-color:var(--color-link);width:18px;height:18px;min-height:18px;margin:0}input[type=file]{padding:var(--space-2);font-size:var(--text-sm)}input:disabled{background:var(--color-card);color:var(--color-muted)}textarea{resize:vertical;line-height:1.7}input::placeholder,textarea::placeholder{color:var(--color-muted)}fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;padding:var(--space-3) var(--space-4)}legend{padding:0 var(--space-1)}.muted,.fine-print,.field small{color:var(--color-muted)}.fine-print{font-size:var(--text-sm);margin-top:var(--space-4);line-height:1.7}.eyebrow{color:var(--color-muted);font-size:var(--text-sm);letter-spacing:.12em;margin-bottom:var(--space-2)}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin:var(--space-2) 0 var(--space-10)}.page-title .muted{margin-top:var(--space-2);max-width:var(--layout-detail)}.page-title .actions{flex-shrink:0}.section{margin-top:var(--space-8)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.section-heading h2{flex:1}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.grow{flex:1;min-width:0}.block{display:block}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.panel{background:var(--color-surface);border:0;border-radius:var(--radius-lg);padding:var(--space-6)}.panel>h2{margin-bottom:var(--space-5)}.panel>p+h2{margin-top:var(--space-6)}.form-stack{display:flex;flex-direction:column;gap:var(--space-5)}.field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.field>span{font-size:var(--text-sm)}.field small{font-size:var(--text-sm)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.check{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);font-size:var(--text-sm)}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-1) var(--space-4)}.notice{background:var(--color-success-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin:var(--space-4) 0;color:var(--color-success)}.notice.error{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.notice.warning{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning)}.notice.error p{margin:0}.badge{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);line-height:1.7;white-space:nowrap;color:var(--color-muted);background:var(--color-card)}.badge.approved,.badge.active,.badge.compatible{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success)}.badge.changes_requested,.badge.failed{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger)}.badge.pending,.badge.unverified{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning)}.badge.disabled{background:var(--color-card)}.empty{min-height:160px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-8) var(--space-6);text-align:center;border:0;border-radius:var(--radius-lg);color:var(--color-muted);gap:var(--space-2);background:var(--color-surface)}.empty>svg{color:var(--color-muted);margin-bottom:var(--space-1)}.empty h3{font-size:var(--text-lg);font-weight:400;color:var(--color-ink)}.empty p{font-size:var(--text-sm);max-width:440px}.loading{display:flex;gap:var(--space-2);justify-content:center;align-items:center;min-height:180px;color:var(--color-muted)}.spin{animation:spin 1.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{position:fixed;left:16px;top:-100px;padding:var(--space-3);background:var(--color-ink);color:var(--color-on-dark);z-index:100}.skip-link:focus{top:10px}.site-header{height:var(--layout-header);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:0 max(var(--space-8),calc((100vw - var(--layout-content)) / 2 + var(--space-8)));background:var(--color-canvas)}.brand{font-family:var(--font-display);display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-2xl);letter-spacing:0;white-space:nowrap}.brand small{font-family:var(--font-body);display:block;font-size:var(--text-sm);color:var(--color-muted);letter-spacing:.18em;line-height:1.5}.brand-symbol{width:32px;height:44px;border:0;display:inline-flex;align-items:center;justify-content:center;color:var(--color-link);border-radius:var(--radius-md);background:transparent}.main-nav{display:flex;gap:var(--space-8);height:100%;align-items:stretch}.main-nav a{display:flex;align-items:center;gap:var(--space-2);border-bottom:2px solid transparent;color:var(--color-muted);padding:var(--space-1) var(--space-1) 0}.main-nav a.active{color:var(--color-ink);border-bottom-color:var(--color-link)}.header-user{display:flex;align-items:center;gap:var(--space-6)}.admin-entry{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-muted)}.avatar{width:var(--control-height);height:var(--control-height);background:var(--color-card);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--radius-full);color:var(--color-muted);flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.large{width:88px;height:88px;margin-bottom:var(--space-4)}.avatar.small{width:32px;height:32px;font-size:var(--text-sm)}.site-main{max-width:var(--layout-content);padding:var(--space-10) var(--space-8);margin:0 auto;min-height:calc(100vh - 200px)}.site-footer{max-width:var(--layout-content);margin:var(--space-12) auto 0;padding:var(--space-6) var(--space-8);border-top:1px solid var(--color-border);display:flex;justify-content:space-between;color:var(--color-muted);font-size:var(--text-sm);letter-spacing:.04em}.mobile-nav{display:none}.home-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:var(--space-6)}.welcome-panel{background:var(--color-surface);border:0;border-radius:var(--radius-lg);padding:var(--space-8);display:grid;grid-template-columns:56px 1fr;gap:var(--space-5);align-items:start}.welcome-panel .button{grid-column:2;justify-self:start}.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);flex-shrink:0}.icon-tile.blue,.icon-tile.green,.icon-tile.wood{background:var(--color-card);color:var(--color-ink)}.today-panel{background:transparent;border:0;border-radius:var(--radius-lg);padding:var(--space-6) var(--space-6);border-left:1px solid var(--color-border)}.stat-number{font-size:var(--text-5xl);font-weight:300;line-height:1.5;margin-top:var(--space-2)}.stat-number span{font-size:var(--text-sm);padding-left:var(--space-2);color:var(--color-muted)}.today-panel>p{font-size:var(--text-sm)}.stat-detail{border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-3);font-size:var(--text-sm);color:var(--color-muted)}.task-list{border:0;border-radius:0;background:transparent}.task-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) 0;border-bottom:1px solid var(--color-border);min-width:0;justify-content:space-between}.task-row:last-child{border:0}.task-row:hover{background:var(--color-card)}.task-row p{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-1);flex-wrap:wrap}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.work-card{padding:0;display:block;text-align:left;background:transparent;color:var(--color-ink);border:0;border-radius:0;overflow:hidden;min-width:0}.work-card:hover{background:transparent;border-color:transparent}.work-card>img{width:100%;object-fit:contain;display:block;height:auto;border-radius:var(--radius-lg)}.work-card>div{padding:var(--space-4) 0}.work-card .eyebrow{font-size:var(--text-sm)}.work-card .muted{font-size:var(--text-sm);margin-top:var(--space-2)}.quote{font-size:var(--text-sm);border-left:2px solid var(--color-border);padding-left:var(--space-3);margin-top:var(--space-4);color:var(--color-muted)}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6)}.module-card{padding:var(--space-6);border:0;border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);background:var(--color-surface)}.module-card:hover{border-color:var(--color-border-strong);background:var(--color-card)}.module-card p{font-size:var(--text-base);color:var(--color-muted);margin-top:var(--space-2)}.module-card>.text-link{margin-top:auto}.page-note{text-align:center;color:var(--color-muted);font-size:var(--text-sm);padding:var(--space-10) 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.page-title-display h1{font-size:var(--text-5xl)}.segmented-control{display:inline-flex;flex-wrap:wrap;align-self:end;gap:var(--space-1);padding:var(--space-1);margin:0;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);min-width:0}.segmented-control label{position:relative;display:flex;cursor:pointer}.segmented-control input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.segmented-control label>span{border:1px solid transparent;display:flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--color-muted)}.segmented-control input:checked+span{border-color:var(--color-link);color:var(--color-ink);background:var(--color-selected)}.segmented-control input:focus-visible+span{outline:2px solid var(--color-link);outline-offset:2px}.segmented-control:disabled{opacity:.5}.segmented-control:disabled label{cursor:not-allowed}.filters>input,.filters>select{width:auto;flex:0 1 220px}.filters .file-button{flex:none;min-height:var(--control-height)}.task-row>div,.page-title>div,.section-heading h2{min-width:0}.task-row>span{flex-shrink:0}.table-wrap th:last-child,.table-wrap td:last-child{white-space:normal}.table-wrap tbody tr:hover{background:var(--color-surface)}.table-wrap .empty{border-radius:0}.work-placeholder{min-height:200px;display:grid;place-items:center;color:var(--color-muted);background:var(--color-surface);border-radius:var(--radius-lg)}.community-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-rows:min-content 1fr auto;gap:var(--space-10) var(--space-8);align-items:start}.community-grid>.section{margin-top:0;min-width:0}.community-featured{grid-column:1;grid-row:1}.community-featured .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-recommended{grid-column:1;grid-row:2}.community-board{grid-column:2;grid-row:1 / span 2;background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-lg)}.community-board .section-heading{flex-wrap:wrap}.community-board .section-heading .text-link{font-size:var(--text-sm)}.community-totals{grid-column:2;grid-row:3}.community-activity{grid-column:1;grid-row:3}.community-tasks{display:grid}.community-task{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-5) 0;border-bottom:1px solid var(--color-border)}.community-task>div{min-width:0}.community-task h3{margin:var(--space-1) 0;font-size:var(--text-lg)}.community-task h3 a{color:var(--color-ink)}.community-task .button{flex-shrink:0}.community-filters{align-items:center;justify-content:space-between;margin-bottom:var(--space-5);gap:var(--space-3)}.community-filters>.field{flex:0 1 auto;flex-direction:row;align-items:center}.community-filters select{width:auto;min-width:90px;max-width:200px}.community-board .community-filters>.field>span{display:none}.community-board .segmented-control label>span{padding-inline:var(--space-3)}.community-rank{margin:0;padding:0;list-style:none}.community-rank li,.community-rank-heading{display:grid;grid-template-columns:4.5em minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-4) var(--space-2);border-bottom:1px solid var(--color-border)}.community-rank-heading{color:var(--color-muted);font-size:var(--text-sm)}.community-rank-heading>:last-child{text-align:right}.community-rank li{min-height:var(--row-height)}.community-rank li.mine{background:var(--color-card);border-radius:var(--radius-md)}.community-rank-number{font-size:var(--text-base);font-variant-numeric:tabular-nums;color:var(--color-muted)}.community-rank-number small{font-size:var(--text-sm)}.community-rank-student strong{display:block;font-weight:500;overflow-wrap:anywhere}.community-rank-student>small{display:block;font-size:var(--text-sm);color:var(--color-muted)}.community-rank-count{display:flex;align-items:baseline;gap:var(--space-1);font-variant-numeric:tabular-nums}.community-rank-count strong{font-size:var(--text-2xl);font-weight:500;color:var(--color-ink)}.community-rank-count small{color:var(--color-muted);font-size:var(--text-sm)}.rank-me{display:inline-block;font-size:var(--text-sm);font-weight:400;color:var(--color-link);margin-left:var(--space-2)}.community-note{color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-4)}.community-note summary{min-height:var(--control-height);padding-block:var(--space-2);cursor:pointer}.community-note p{padding-block:var(--space-2)}.community-summary{display:flex;gap:var(--space-6);padding-block:var(--space-4)}.community-summary>div{display:grid;gap:var(--space-1);min-width:0}.community-summary>div+div{border-left:1px solid var(--color-border);padding-left:var(--space-6)}.community-summary strong{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:400}.community-summary span{color:var(--color-muted);font-size:var(--text-sm)}.community-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap}.community-pagination span{font-size:var(--text-sm);color:var(--color-muted)}.community-detail{max-width:var(--layout-detail);padding-block:var(--space-4)}.community-detail>.preserve-lines{margin-block:var(--space-8)}@media(max-width:1100px){.community-grid{grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:var(--space-8) var(--space-6)}.community-board{padding:var(--space-5)}}@media(max-width:800px){.site-main{padding:var(--space-6)}}@media(max-width:780px){.community-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:var(--space-8)}.community-grid>.section{grid-column:auto;grid-row:auto}.community-board{padding:var(--space-6)}.community-task{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.page-title-display h1{font-size:var(--text-3xl)}.community-featured .gallery-grid{grid-template-columns:minmax(0,1fr)}.community-board{padding:var(--space-4)}.community-rank li,.community-rank-heading{gap:var(--space-2);grid-template-columns:3.8em minmax(0,1fr) auto;padding-inline:var(--space-1)}.community-rank-count strong{font-size:var(--text-xl)}.filters>label{flex:1 1 140px}.community-filters>.field{flex:0 1 auto}.community-filters select{max-width:160px}.admin-layout{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.admin-layout .mobile-nav,.preparation-workspace .mobile-nav{display:grid}.site-main{padding:var(--space-6) var(--space-4)}}.profile-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-10);max-width:900px}.profile-summary{text-align:center;padding:var(--space-8) var(--space-5)}.profile-summary .badge{margin-top:var(--space-4)}.profile-layout .panel{padding:var(--space-8)}.profile-layout form{margin-top:var(--space-6)}.filters{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-6)}.filters>label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);min-width:0;flex:0 1 200px}.filters>label select,.filters>label input{font-size:var(--text-base)}.filters>.muted{font-size:var(--text-sm);margin-left:auto;padding-bottom:var(--space-2)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:0;border-radius:0;margin-bottom:var(--space-8);background:transparent}.metrics>div{padding:var(--space-5) var(--space-6);border-right:1px solid var(--color-border)}.metrics>a{padding:var(--space-5) var(--space-6);border-right:1px solid var(--color-border);min-height:var(--control-height-primary)}.metrics>a:hover{background:var(--color-card)}.metrics>a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.metrics>div:last-child{border:0}.metrics>a:last-child{border-right:0}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.dashboard-grid .section{margin-top:0;min-width:0}.dashboard-grid .task-row{min-height:var(--control-height-teaching);justify-content:space-between}.task-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.task-state{color:var(--color-link);font-size:var(--text-sm);white-space:nowrap}.task-state.completed{color:var(--color-success)}.task-state.changes_requested{color:var(--color-danger)}.feedback-excerpt{white-space:normal}.quote-footer{align-items:baseline;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-sm);letter-spacing:0}.quote-footer p{margin:0}.quote-footer a{color:var(--color-link);text-decoration:underline;white-space:nowrap}.site-filing{width:100%;text-align:center;font-size:var(--text-sm);letter-spacing:0}.icp-filing-link{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);color:var(--color-link);text-decoration:underline}.labor-task-preview{margin:var(--space-5) auto;max-width:100%}.labor-task-preview.phone{width:390px}.labor-task-preview.tablet{width:768px}.labor-task-preview .panel{display:grid;gap:var(--space-4)}.labor-task-preview .photo-preview button{position:absolute;right:var(--space-1);top:var(--space-1)}.admin-tools-mobile{display:none}.metrics span{display:block;font-size:var(--text-sm);color:var(--color-muted)}.metrics strong{display:block;font-size:var(--text-4xl);font-weight:300;line-height:1.5;margin-top:var(--space-1)}.metrics strong small{font-size:var(--text-sm);color:var(--color-muted)}.metrics .text-value{font-size:var(--text-2xl)}.ranking{border-top:1px solid var(--color-border)}.ranking-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--text-base)}.rank-position{font-size:var(--text-base);color:var(--color-muted);width:26px}.ranking-row .grow>small{display:block;font-size:var(--text-sm)}.ranking-row strong{font-weight:400}.ranking-row strong small{font-size:var(--text-sm);color:var(--color-muted)}.ranking-row.mine{background:var(--color-card)}.tag{display:inline-block!important;font-size:var(--text-sm);color:var(--color-ink);background:var(--color-selected);border-radius:var(--radius-full);margin-left:var(--space-2);padding:0 var(--space-1)}.compact-filters{gap:var(--space-2)}.compact-filters>label{min-width:120px;flex:1}.task-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.task-card{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column}.task-card:hover{background:var(--color-card);border-color:var(--color-border-strong)}.task-card .section-heading{margin-bottom:var(--space-5)}.task-card h3{margin-bottom:var(--space-2)}.line-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--text-sm)}.task-card-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:var(--space-6);color:var(--color-muted);font-size:var(--text-sm)}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.tool-card{display:flex;align-items:center;background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border);padding:var(--space-5);text-align:left}.tool-card:hover{background:var(--color-card);border-color:var(--color-border-strong)}.tool-card>img{width:68px;height:68px;object-fit:cover}.tool-card p{font-size:var(--text-sm);margin-top:var(--space-1)}.task-detail-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--space-6)}.task-detail-layout aside p{font-size:var(--text-base)}.task-detail-layout .labor-submit-action,.work-showcase-action,.auth-card .full-width{min-height:var(--control-height-primary)}.upload-zone{position:relative;border:1px dashed var(--color-border-strong);min-height:120px;display:flex;align-items:center;justify-content:center;gap:var(--space-3);background:var(--color-surface);color:var(--color-muted);border-radius:var(--radius-md)}.upload-zone input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-zone:focus-within{outline:2px solid var(--color-accent-active);outline-offset:2px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.photo-preview{position:relative}.photo-preview img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md)}.icon-button{width:44px;height:44px;min-height:var(--control-height);padding:0}.photo-preview .icon-button{position:absolute;right:4px;top:4px;background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;justify-content:center;align-items:center;z-index:100;padding:var(--space-6)}.modal-backdrop dialog{position:relative;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-canvas);color:var(--color-ink);padding:var(--space-6);max-height:90dvh;overflow:auto;width:min(900px,100%);box-shadow:var(--shadow-modal)}.work-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin:var(--space-5) 0}.work-images img{width:100%;object-fit:contain;border-radius:var(--radius-md);max-height:520px;background:var(--color-card)}.tool-frame{width:100%;height:65dvh;border:1px solid var(--color-border);background:var(--color-canvas)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-10);gap:clamp(40px,9vw,140px)}.auth-intro{max-width:470px}.auth-intro .brand-symbol{margin-bottom:var(--space-6)}.auth-intro h1{font-size:clamp(36px,3.4vw,48px);line-height:1.5;margin:var(--space-6) 0}.auth-intro>p:not(.eyebrow){color:var(--color-muted);line-height:2}.intro-foot{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-16)}.auth-card{width:410px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-8);border-radius:var(--radius-lg)}.auth-card h2{font-size:var(--text-2xl)}.auth-card>p.muted{font-size:var(--text-sm);margin:var(--space-2) 0 var(--space-6)}.auth-card .fine-print{font-size:var(--text-sm);text-align:center}.auth-switch{margin-top:var(--space-5);text-align:center}.auth-switch button{font-size:var(--text-sm)}.auth-card .brand-symbol{margin-bottom:var(--space-5)}.admin-shell{display:flex;min-height:calc(100dvh - var(--layout-header));font-size:var(--text-base)}.admin-sidebar{width:var(--layout-sidebar);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-6) var(--space-4);display:flex;flex-direction:column;position:sticky;top:0;height:calc(100dvh - var(--layout-header));overflow:auto}.admin-sidebar>.brand{padding:0 var(--space-3)}.admin-sidebar>.eyebrow{margin:var(--space-2) var(--space-3) var(--space-4);font-size:var(--text-sm)}.admin-sidebar nav{display:flex;flex-direction:column;gap:var(--space-1)}.admin-sidebar nav a{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-3);min-height:var(--control-height);border-radius:var(--radius-md);color:var(--color-muted)}.admin-sidebar nav a.active{color:var(--color-ink);background:var(--color-selected)}.admin-sidebar nav a:hover{background:var(--color-card)}.admin-content{flex:1;min-width:0}.admin-topbar{height:68px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-8);color:var(--color-muted);font-size:var(--text-sm)}.admin-content main{padding:var(--space-10) var(--space-8) var(--space-12);max-width:var(--layout-admin);margin-inline:auto}.admin-content .page-title{margin-bottom:var(--space-8)}.admin-shortcuts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}.shortcut{display:flex;gap:var(--space-5);align-items:center}.shortcut>div{flex:1}.shortcut p{margin-top:var(--space-1)}.shortcut>svg{color:var(--color-link)}.shortcut:hover{background:var(--color-card)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:transparent}table{border-collapse:collapse;width:100%;font-size:var(--text-base);white-space:normal}th,td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle;height:var(--row-height)}th{background:var(--color-surface);font-weight:500;color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap}tbody tr:last-child td{border-bottom:0}td .actions{flex-wrap:nowrap}td small{font-size:var(--text-sm)}td select{min-width:130px}td code{font-size:var(--text-sm);letter-spacing:.08em}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.plain-list{list-style:none;padding:0;margin:0 0 var(--space-6)}.plain-list li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border);padding:var(--space-3) 0}.inline-form{display:flex;align-items:flex-end;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap}.inline-form .field{flex:1;min-width:140px}.file-button{position:relative;overflow:hidden;flex-direction:row!important;color:var(--color-on-accent);min-width:160px}.file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.review-card{display:block;background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border);padding:0;text-align:left;overflow:hidden}.review-card:hover{background:var(--color-card);border-color:var(--color-border-strong)}.review-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.review-card>div{padding:var(--space-4)}.review-card .section-heading{margin-bottom:var(--space-2)}.review-card p{font-size:var(--text-sm)}.review-card .muted{font-size:var(--text-sm);margin:var(--space-1) 0}.panel summary{cursor:pointer;min-height:var(--control-height);display:flex;align-items:center}.classroom-start{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--space-8)}.classroom-start>section>h2{margin-bottom:var(--space-6)}.presentation-wrap{position:relative;width:100%;height:100%;min-height:400px;background:var(--color-card)}.presentation-mount{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.presentation-mount>iframe{width:100%!important;height:100%!important;border:0;display:block}.presentation-ink-notice,.presentation-ink-legacy{position:absolute;left:12px;right:12px;z-index:5;margin:0;padding:var(--space-2) var(--space-3);background:var(--color-warning-bg);color:var(--color-warning);font-size:var(--text-sm);pointer-events:none}.presentation-ink-notice{top:12px}.presentation-ink-legacy{bottom:72px}.presentation-message{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-6);pointer-events:none}.presentation-message .notice{pointer-events:auto}.presentation-controls{position:absolute;bottom:12px;left:12px;right:12px;z-index:2}.modal-backdrop .presentation-wrap{height:60dvh}.teaching-room{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-canvas);z-index:40;display:flex;flex-direction:column;font-size:var(--text-xl)}.teaching-room:fullscreen{width:100vw;height:100dvh}.teaching-header{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border)}.teaching-header h1{font-size:var(--text-2xl)}.teaching-header span{font-size:var(--text-sm);color:var(--color-muted)}.teaching-room button{min-height:var(--control-height-teaching);font-size:var(--text-xl);padding:var(--space-2) var(--space-3)}.teaching-room button.major{min-height:var(--control-height-primary)}.teaching-body{flex:1;min-height:0;display:flex}.teaching-stage{flex:1;position:relative;background:var(--color-canvas);min-width:0;overflow:hidden}.teaching-stage .presentation-wrap{height:100%;min-height:0}.drawing-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;z-index:4}.drawing-canvas.inactive{pointer-events:none}.whiteboard-note{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--color-muted);font-size:var(--text-3xl);pointer-events:none}.class-panel{width:350px;flex-shrink:0;border-left:1px solid var(--color-border);padding:var(--space-5);background:var(--color-canvas);overflow:auto;font-size:var(--text-base)}.class-panel h2{font-size:var(--text-xl)}.class-panel .section-heading button{font-size:var(--text-base);padding:var(--space-2) var(--space-3)}.class-panel .section-heading{margin-bottom:var(--space-3)}.class-panel .field{margin-top:var(--space-4)}.class-panel .notice{font-size:var(--text-sm);padding:var(--space-2);margin:var(--space-2) 0}.class-panel details{font-size:var(--text-sm);margin:var(--space-3) 0}.class-panel summary{min-height:var(--control-height);cursor:pointer}.draw-result{font-size:var(--text-3xl);text-align:center;padding:var(--space-5) 0;color:var(--color-ink)}.timer-digits{font-size:60px;font-variant-numeric:tabular-nums;text-align:center;margin:var(--space-10) 0}.teaching-toolbar{display:flex;gap:var(--space-3);justify-content:space-between;flex-wrap:wrap;padding:var(--space-3);border-top:1px solid var(--color-border);background:var(--color-canvas)}.toolbar-group{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.teaching-toolbar input[type=color]{width:56px;height:56px;padding:var(--space-1)}.teaching-toolbar select{width:64px;height:56px;font-size:var(--text-lg)}.teaching-toolbar button{font-size:var(--text-lg)}.teaching-toolbar button.major{font-size:var(--text-xl)}.teaching-room .ranking-row,.teaching-room .rank-position{font-size:var(--text-lg)}.teaching-room .field>span{font-size:var(--text-base)}.teaching-room input,.teaching-room select{font-size:var(--text-lg);min-height:var(--control-height-teaching)}.teaching-room input[type=checkbox]{min-height:18px}.teaching-room .check{font-size:var(--text-base)}@media(min-width:1500px){.teaching-toolbar{padding:var(--space-4) var(--space-5);gap:var(--space-4)}.class-panel{width:380px}.teaching-room button{padding:var(--space-3) var(--space-4)}}@media(max-width:1100px){.site-header{padding:0 var(--space-6)}.main-nav{gap:var(--space-5)}.task-grid,.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-sidebar{width:200px;padding:var(--space-6) var(--space-3)}.admin-content main{padding:var(--space-6)}.class-panel{width:300px}.teaching-toolbar button{font-size:var(--text-base)}.teaching-header{gap:var(--space-3)}.teaching-header button{font-size:var(--text-base)}.gallery-grid{gap:var(--space-4)}}@media(max-width:800px){.site-main{padding:var(--space-6)}.site-header{height:var(--layout-header)}.brand{font-size:var(--text-xl)}.main-nav{gap:var(--space-3);font-size:var(--text-sm)}.admin-entry{font-size:var(--text-sm)}.header-user{gap:var(--space-3)}.home-grid{grid-template-columns:1fr}.today-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center}.today-panel .eyebrow{grid-column:1/3}.today-panel .stat-number{grid-row:2/4}.today-panel .stat-detail{grid-column:2;margin:0;border:0;padding:0;flex-direction:column;gap:var(--space-1)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:200px 1fr;gap:var(--space-6)}.task-detail-layout,.settings-grid,.admin-shortcuts{grid-template-columns:1fr}.admin-topbar{padding:0 var(--space-6)}.page-title{align-items:flex-start;flex-direction:column;gap:var(--space-4)}.auth-page{gap:var(--space-8);padding:var(--space-6)}.auth-intro h1{font-size:var(--text-3xl)}.auth-intro{flex:1}.auth-card{width:370px;padding:var(--space-6)}.intro-foot{flex-wrap:wrap;gap:var(--space-2)}.classroom-start{grid-template-columns:1fr}.teaching-header h1{font-size:var(--text-lg)}.teaching-header span{display:none}.teaching-header{padding:var(--space-2)}.teaching-header button{font-size:var(--text-sm)}.teaching-header button svg{width:18px}.class-panel{position:absolute;right:0;top:80px;bottom:190px;z-index:8;width:min(340px,95vw);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.teaching-toolbar{gap:var(--space-2);overflow:auto;max-height:220px}.teaching-toolbar .toolbar-group{gap:var(--space-1)}.teaching-toolbar button,.teaching-toolbar button.major{font-size:var(--text-base);padding:var(--space-2) var(--space-2)}.teaching-toolbar button svg{width:18px}.teaching-toolbar button.major{min-height:var(--control-height-primary)}}@media(max-width:560px){.dashboard-grid{grid-template-columns:1fr}.quote-footer{flex-wrap:wrap}.metrics>a{padding:var(--space-4) var(--space-3)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-xl)}.site-header{height:var(--layout-header-mobile);padding:0 var(--space-4)}.main-nav{display:none}.brand{font-size:var(--text-xl)}.brand-symbol{width:36px;height:36px}.header-user{gap:var(--space-4)}.site-main{padding:var(--space-6) var(--space-4);min-height:calc(100vh - 200px)}.site-footer{padding:var(--space-5) var(--space-4) var(--space-24);margin-top:var(--space-5);font-size:var(--text-sm);display:block;text-align:center}.site-footer>span+span{display:none}.mobile-nav{position:fixed;bottom:0;left:0;right:0;height:70px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;background:var(--color-surface);border-top:1px solid var(--color-border);z-index:20}.mobile-nav>a{display:flex;flex-direction:column;gap:var(--space-1);align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--color-muted);min-height:var(--control-height-teaching)}.mobile-nav>a.active{color:var(--color-link);background:var(--color-surface)}.page-title{margin:0 0 var(--space-6)}.page-title h1{font-size:var(--text-3xl)}.page-title .muted{font-size:var(--text-sm);line-height:1.8}.welcome-panel{padding:var(--space-5);gap:var(--space-4);grid-template-columns:42px 1fr}.welcome-panel .icon-tile{width:42px;height:42px}.welcome-panel h2{font-size:var(--text-xl)}.welcome-panel p.muted{font-size:var(--text-sm)}.welcome-panel .button{grid-column:1/3;justify-self:stretch}.today-panel{padding:var(--space-5) var(--space-5)}.stat-number{font-size:var(--text-4xl)}.section{margin-top:var(--space-8)}.section-heading{gap:var(--space-2);margin-bottom:var(--space-4)}.section-heading h2{font-size:var(--text-xl)}.section-heading .text-link{font-size:var(--text-sm)}.task-row{padding:var(--space-4);gap:var(--space-3);flex-wrap:wrap}.task-row .icon-tile{width:36px;height:36px}.task-row h3{font-size:var(--text-base)}.task-row>.badge{font-size:var(--text-sm)}.task-row>svg{display:none}.gallery-grid{grid-template-columns:1fr}.work-card>img{aspect-ratio:16/10}.module-grid{grid-template-columns:1fr}.module-card{padding:var(--space-6);gap:var(--space-4)}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics>div{padding:var(--space-4) var(--space-3)}.metrics span{font-size:var(--text-sm)}.metrics strong{font-size:var(--text-3xl)}.metrics .text-value{font-size:var(--text-lg)}.task-grid,.tool-grid{grid-template-columns:1fr}.task-card{padding:var(--space-5)}.profile-layout{grid-template-columns:1fr;gap:var(--space-4)}.profile-summary{padding:var(--space-2) var(--space-4) var(--space-6)}.profile-layout .panel,.panel{padding:var(--space-5)}.filters{gap:var(--space-3)}.filters>label{min-width:120px;flex:1}.filters>.muted{margin-left:0;font-size:var(--text-sm)}.form-row{grid-template-columns:1fr}.modal-backdrop{padding:var(--space-3)}.modal-backdrop dialog{padding:var(--space-5);max-height:94dvh}.work-images{grid-template-columns:1fr}.auth-page{display:block;padding:var(--space-6) var(--space-4)}.auth-intro{max-width:410px;margin:0 auto var(--space-6)}.auth-intro .brand-symbol{margin-bottom:var(--space-3)}.auth-intro h1{font-size:var(--text-2xl);line-height:1.6;margin:var(--space-2) 0}.auth-intro>p:not(.eyebrow),.intro-foot{display:none}.auth-card{width:100%;max-width:410px;padding:var(--space-6);margin:auto}.auth-card>p.muted{margin-bottom:var(--space-5)}.admin-shell{display:block}.admin-sidebar{width:100%;height:auto;position:static;display:block;padding:var(--space-4);border-right:0;border-bottom:1px solid var(--color-border)}.admin-sidebar>.brand{display:inline-flex;padding:0}.admin-sidebar .brand>span:last-child{display:block}.admin-sidebar nav{margin-top:var(--space-4);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-1)}.admin-sidebar nav a{flex:1 1 44%;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);gap:var(--space-1);white-space:nowrap}.admin-sidebar nav a svg{width:15px;height:15px}.admin-topbar{display:none}.admin-content main{padding:var(--space-6) var(--space-4)}.admin-content .metrics{grid-template-columns:repeat(2,1fr)}.admin-content .metrics>div:nth-child(2){border-right:0}.admin-content .metrics>div{border-bottom:1px solid var(--color-border)}.admin-content .metrics>div:nth-last-child(-n+2){border-bottom:0}.review-grid{grid-template-columns:1fr}.inline-form{display:grid;grid-template-columns:1fr}.table-wrap table{min-width:550px}.table-wrap th,.table-wrap td{padding:var(--space-3)}.settings-grid{gap:var(--space-5)}.page-title .actions{width:100%}.page-title .actions button,.page-title .actions .button{flex:1}.photo-grid{grid-template-columns:repeat(2,1fr)}.teaching-header h1{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teaching-header button{min-height:var(--control-height-teaching);padding:var(--space-2);font-size:var(--text-sm)}.teaching-header button svg{width:17px}.teaching-toolbar{max-height:230px}.teaching-toolbar button,.teaching-toolbar button.major{font-size:var(--text-sm)}.teaching-toolbar .toolbar-group{width:100%}.class-panel{top:75px;bottom:225px}.teaching-room .presentation-message{font-size:var(--text-base)}.teaching-room .notice.error{display:block}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.auth-card .fine-print{font-size:var(--text-sm)}.teaching-room .field>span,.teaching-room .check{font-size:var(--text-lg)}.verification-player{background:var(--color-canvas);display:flex;flex-direction:column}.verification-player:fullscreen{height:100dvh;width:100vw;padding:var(--space-3)}.verification-stage{height:60dvh;position:relative;flex:1;min-height:320px}.verification-stage .presentation-wrap{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0}.verification-drawing{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;z-index:4}.verification-drawing.inactive{pointer-events:none}.verification-toolbar{padding:var(--space-3) 0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.verification-toolbar button{min-height:var(--control-height-teaching);font-size:var(--text-xl)}.verification-toolbar>input{width:56px;height:56px;padding:var(--space-1)}.verification-panel{position:absolute;right:0;top:0;bottom:0;z-index:5;background:var(--color-canvas);padding:var(--space-6);border-left:1px solid var(--color-border);width:min(320px,80%);font-size:var(--text-lg)}.verification-panel p{margin:var(--space-4) 0}.verification-player:fullscreen .verification-stage{height:auto}.site-shell .brand small{letter-spacing:.06em}.site-shell .mobile-nav{height:76px}.site-shell .mobile-nav a{min-height:60px}.record-thumbnail{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}button.history-record{width:100%;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent;color:var(--color-ink);text-align:left;justify-content:flex-start}button.history-record:hover:not(:disabled){background:var(--color-card);color:var(--color-ink)}.admin-entry,.auth-page .eyebrow,.auth-page .field small,.auth-page .field>span,.auth-page .intro-foot{font-size:var(--text-sm)}.teaching-room .teaching-toolbar button,.teaching-room input,.teaching-room select,.teaching-room .class-panel button,.teaching-room .field>span,.teaching-room .check{font-size:var(--text-xl)}.saved-board{width:100%;aspect-ratio:16/9;background:var(--color-canvas);border:1px solid var(--color-border);margin-top:var(--space-4)}.deck-cover{width:84px;height:52px;object-fit:cover;float:left;margin-right:var(--space-3);border-radius:var(--radius-md)}.jump-form{display:flex;align-items:center;gap:var(--space-1)}.teaching-toolbar .jump-form input{width:80px;height:56px;font-size:var(--text-xl)}button.danger,.button.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-dark)}button.danger:hover:not(:disabled),.button.danger:hover:not(:disabled){background:var(--color-danger-bg);color:var(--color-danger)}button:disabled{background:var(--color-card);color:var(--color-muted);border-color:var(--color-border);opacity:1}:is(input,select,textarea):focus-visible{border-color:var(--color-link)}:is(input,select,textarea)[aria-invalid=true]{border-color:var(--color-danger)}:is(.work-card,.review-card,.tool-card):hover{color:var(--color-ink)}.task-card,.review-card,.tool-card{border-radius:var(--radius-lg)}.text-link{color:var(--color-link)}.stat-number,.metrics strong{font-family:var(--font-display);font-weight:400}.admin-home-link{display:none}@media(max-width:700px){.admin-sidebar{position:relative}.admin-home-link{display:inline-flex;position:absolute;right:var(--space-4);top:var(--space-3);align-items:center;gap:var(--space-1);min-height:var(--control-height);padding:0 var(--space-3);color:var(--color-link)}}@media(max-width:560px){.admin-tools-desktop{display:none}.admin-tools-mobile{display:block;margin-top:var(--space-3)}.admin-tools-mobile summary{min-height:var(--control-height);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--color-ink)}.admin-sidebar .admin-tools-mobile nav{margin-top:var(--space-2);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.admin-sidebar .admin-tools-mobile nav a{min-height:var(--control-height);white-space:normal}.admin-content .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-content .metrics>a{padding:var(--space-3);border-right:1px solid var(--color-border)}.admin-content .metrics>a:last-child{border-right:0}.admin-content .metrics strong{font-size:var(--text-xl)}}.table-wrap caption{padding:var(--space-4);text-align:left;color:var(--color-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.spin{animation:none}}.file-button:focus-within,.button:has(input[type=file]:focus-visible){outline:2px solid var(--color-accent-active);outline-offset:3px}.auth-page.auth-login-page{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6) var(--space-4)}.auth-login-page .auth-login-card{width:410px;max-width:100%;margin:auto;padding:var(--space-6)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-6)}.auth-brand .brand-symbol{margin:0}.auth-brand h1{margin:0;font-size:var(--text-2xl)}.auth-kind-switch{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-bottom:var(--space-6)}.auth-kind-switch button{min-height:var(--control-height);padding:var(--space-2)}.auth-kind-switch button[aria-pressed=true]{background:var(--color-selected);border-color:var(--color-link);color:var(--color-ink)}.auth-login-card .form-stack{gap:var(--space-4)}.auth-login-card button[type=submit]{min-height:var(--control-height-primary)}.auth-card-entry{display:flex;justify-content:center;align-items:center;min-height:var(--control-height);margin-top:var(--space-2)}.auth-card-entry .text-link{display:inline-flex;align-items:center;min-height:var(--control-height)}.auth-login-card .fine-print{margin:var(--space-3) 0 0;color:var(--color-muted)}.classroom-device-setup{margin-block:var(--space-4) var(--space-6)}.classroom-device-setup h3,.classroom-device-setup p{margin:0}.auth-step-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-4)}.brand-mark{display:block;object-fit:contain;flex-shrink:0}.empty .brand-mark{margin-inline:auto}.public-home{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8)}.public-home .site-filing,.public-home .auth-brand{margin-top:auto}.group-student{max-width:var(--layout-detail);margin:auto;min-height:100dvh;padding:var(--space-8) var(--space-6)}.group-entry{margin:var(--space-16) auto;max-width:var(--layout-detail)}.group-entry h1{font-size:var(--text-4xl)}.group-student button,.group-student input:not([type=radio]),.group-student textarea,.group-teaching button,.group-teaching input,.group-teaching select{min-height:var(--control-height-teaching)}.group-student .live-primary-action,.group-teaching .live-primary-action{min-height:var(--control-height-primary)}.group-picker,.group-members,.group-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin:var(--space-6) 0}.group-members button{display:flex;flex-direction:column}.group-task,.group-teaching section{margin-top:var(--space-6)}.questionnaire-fields{display:grid;gap:var(--space-6);margin:var(--space-6) 0}.questionnaire-choice{border:0;padding:0;margin:0;min-width:0}.questionnaire-choice legend{margin-bottom:var(--space-2)}.questionnaire-choice>div{display:flex;flex-wrap:wrap;gap:var(--space-3)}.questionnaire-choice label{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);min-height:var(--control-height-teaching);cursor:pointer}.questionnaire-choice label:has(input:checked){background:var(--color-selected);border-color:var(--color-accent-active)}.questionnaire-choice input{width:var(--space-5);height:var(--space-5);min-height:0;padding:0}.questionnaire-answer{display:grid;gap:var(--space-4)}.questionnaire-answer>div{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3)}.questionnaire-answer dt{color:var(--color-muted);font-size:var(--text-sm)}.questionnaire-answer dd{margin:var(--space-1) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.questionnaire-statistics{display:grid;gap:var(--space-6)}.questionnaire-statistics caption{text-align:left;font-size:var(--text-xl);padding-bottom:var(--space-3)}.questionnaire-statistics>.questionnaire-field-statistic{margin-top:0;border-top:1px solid var(--color-border);padding-top:var(--space-6);min-width:0}.questionnaire-field-statistic h3{margin:0 0 var(--space-3);font-size:var(--text-xl);overflow-wrap:anywhere}.questionnaire-field-counts{color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.questionnaire-option-statistics{list-style:none;padding:0;margin:var(--space-4) 0 0;display:grid;gap:var(--space-5)}.questionnaire-option-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);overflow-wrap:anywhere}.questionnaire-option-count{display:flex;align-items:baseline;gap:var(--space-3);flex-shrink:0;font-variant-numeric:tabular-nums}.questionnaire-option-count small{color:var(--color-muted);font-size:var(--text-sm)}.questionnaire-option-track{height:var(--space-2);margin-top:var(--space-2);background:var(--color-card);border-radius:var(--radius-xs);overflow:hidden}.questionnaire-option-track>span{display:block;height:100%;background:var(--color-link)}.questionnaire-text-details summary{min-height:var(--control-height-teaching);align-content:center;cursor:pointer}.questionnaire-text-answers{list-style:none;padding:0;margin:var(--space-3) 0 0}.questionnaire-text-answers li{padding:var(--space-4) 0;border-top:1px solid var(--color-border)}.questionnaire-answer-source{color:var(--color-muted);font-size:var(--text-sm);margin:0 0 var(--space-2)}.questionnaire-answer-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.live-display-task .questionnaire-field-statistic h3,.live-display-task .questionnaire-option-heading,.live-display-task .questionnaire-answer-text{font-size:var(--text-2xl)}.live-display-task .questionnaire-field-counts,.live-display-task .questionnaire-answer-source,.live-display-task .questionnaire-option-count small{font-size:var(--text-lg)}.live-display-task .questionnaire-text-details summary{font-size:var(--text-xl)}.group-total{font-size:var(--text-xl)}.group-code{font-size:var(--text-4xl);font-family:var(--font-mono);letter-spacing:.15em}.group-submissions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:var(--space-6)}.group-teaching .live-tabs{flex-wrap:wrap}.live-display-results .questionnaire-answer dt{color:var(--color-muted);font-size:var(--text-lg)}.live-display-results .questionnaire-answer dd{font-size:var(--text-2xl)}@media(max-width:640px){.group-student{padding:var(--space-6) var(--space-4)}.group-entry{margin-top:var(--space-8)}.group-picker,.group-members{grid-template-columns:repeat(2,minmax(0,1fr))}}.questionnaire-editor-field{display:grid;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0}.live-display-results .questionnaire-answer>div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:var(--space-4);align-items:start}.live-display-results.count-3 .questionnaire-answer,.live-display-results.count-4 .questionnaire-answer{gap:var(--space-2)}.live-display-results.count-3 .questionnaire-answer dt,.live-display-results.count-4 .questionnaire-answer dt{font-size:var(--text-base)}.live-display-results.count-3 .questionnaire-answer dd,.live-display-results.count-4 .questionnaire-answer dd{font-size:var(--text-xl)}.live-display-task .questionnaire-statistics th,.live-display-task .questionnaire-statistics td{font-size:var(--text-2xl)}.classroom-entry-links{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-8)}.classroom-entry-links a{display:flex;align-items:center;min-height:var(--control-height-teaching)}.teacher-classroom-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6)}.teacher-classroom-layout>section{min-width:0}.teacher-ppt-preview{aspect-ratio:16 / 9;position:relative;background:var(--color-dark);pointer-events:none}.teacher-ppt-preview iframe{width:100%;height:100%}.classroom-controls button{min-height:var(--control-height-teaching)}.group-tool-task[hidden]{display:none}.group-tool-task:fullscreen{margin:0;border:0;border-radius:0;padding:var(--space-4);background:var(--color-canvas);overflow:auto}.group-tool-viewport{height:60dvh;min-height:320px;position:relative}.group-tool-task:fullscreen .group-tool-viewport{height:calc(100dvh - 200px)}.group-tool-viewport iframe{width:100%;height:100%;border:0}.group-tool-pause{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-content:center;padding:var(--space-8);background:var(--color-floating-surface);text-align:center}.group-screenshot{max-width:100%;height:auto}@media(max-width:1000px){.teacher-classroom-layout{grid-template-columns:minmax(0,1fr)}}.display-tools-modal{color:var(--color-text)}.display-tools-modal .modal-backdrop dialog{width:min(760px,100%)}.display-tools-modal .segmented-control{margin-block:var(--space-5)}.display-tools-modal .segmented-control label{min-height:var(--control-height-teaching)}.display-tools-modal dialog>.section-heading:first-child{position:sticky;top:calc(-1 * var(--space-6));z-index:2;background:var(--color-canvas);padding-block:var(--space-3)}.display-tools-modal .notice{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.display-tools-modal .live-card{padding:var(--space-5);margin-top:var(--space-5)}.display-tools-modal button,.display-tools-modal summary{min-height:var(--control-height-teaching)}.display-playback-options{border-top:1px solid var(--color-border);margin-top:var(--space-6);padding-top:var(--space-3)}.display-playback-options summary,.classroom-controls summary{display:flex;align-items:center;cursor:pointer;min-height:var(--control-height-teaching)}.classroom-star-group{margin-block:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.live-workspace button.danger{background:var(--color-danger);color:var(--color-print-paper);border-color:var(--color-danger)}@media(max-width:560px){.display-tools-modal .segmented-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}.questionnaire-rating-table{max-width:100%}.questionnaire-rating-table table{min-width:0;table-layout:fixed}.questionnaire-rating-table th:first-child{width:22%}.questionnaire-rating-table th:last-child{width:220px}.questionnaire-rating-table :is(th,td){white-space:normal;overflow-wrap:anywhere;vertical-align:top}.questionnaire-rating-table .rating-dimension{font-size:var(--text-base);color:var(--color-text)}.rating-control{border:0;padding:0;margin:0;min-width:0}.classroom-app .modal-backdrop fieldset.rating-control{border:0;padding:0;margin:0}.rating-stars{display:flex;gap:var(--space-2)}.rating-stars label{display:flex;align-items:center;justify-content:center;position:relative;width:var(--control-height-teaching);min-width:var(--control-height-teaching);min-height:var(--control-height-teaching);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer}.rating-stars label:has(input:checked){border-color:var(--color-link);background:var(--color-selected)}.rating-stars label:focus-within{outline:2px solid var(--color-link);outline-offset:2px}.rating-stars input.sr-only{width:1px;height:1px;min-height:0;padding:0}.rating-star{color:var(--color-muted);font-size:var(--text-4xl);line-height:1}.rating-star.selected{color:var(--color-link)}.rating-control:disabled .rating-stars label{cursor:default}.rating-selection{font-size:var(--text-sm);margin:var(--space-2) 0 0}.rating-statistics{max-width:100%}.rating-statistics table{min-width:640px;table-layout:fixed}.rating-statistics :is(th,td){overflow-wrap:anywhere;white-space:normal}.rating-statistics th:first-child{width:40%}.rating-statistics :is(th,td):not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.rating-statistics small{display:block;color:var(--color-muted)}.rating-statistic-dimension{display:block;color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-2)}.questionnaire-preview summary{display:flex;align-items:center;min-height:var(--control-height-teaching);cursor:pointer}@media(max-width:700px){.questionnaire-rating-table table{min-width:0}.questionnaire-rating-table :is(table,caption,tbody,tr,th,td){display:block;width:100%}.questionnaire-rating-table thead{display:none}.questionnaire-rating-table tr{padding:var(--space-4);border-bottom:1px solid var(--color-border)}.questionnaire-rating-table :is(th,td){padding:var(--space-2) 0;border:0;height:auto}.questionnaire-rating-table th:first-child{width:100%;color:var(--color-muted)}.questionnaire-rating-table td:last-child{padding-top:var(--space-4)}}
