:root{color-scheme:light;--bg: #f3f5f7;--surface: #ffffff;--surface-2: #eef2f6;--surface-hover: #f7f9fb;--text: #17202b;--text-2: #52606e;--text-3: #74808c;--border: #dfe5eb;--border-strong: #c9d2dc;--primary: #1768e5;--primary-hover: #0f58c9;--primary-soft: #e8f1ff;--red: #c93c45;--red-soft: #fcebed;--green: #14845f;--green-soft: #e7f6f0;--orange: #c06a16;--orange-soft: #fff1df;--blue-soft: #e9f2ff;--focus: #80aef5;--shadow: 0 8px 28px rgba(56, 76, 99, .08);--radius-surface: 16px;--radius-control: 10px;--sidebar-width: 224px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=dark]{color-scheme:dark;--bg: #11161c;--surface: #1a2129;--surface-2: #232c35;--surface-hover: #202933;--text: #edf2f7;--text-2: #b3bec9;--text-3: #8c99a6;--border: #2d3742;--border-strong: #41505f;--primary: #5c9af7;--primary-hover: #78aafb;--primary-soft: #1b3152;--red: #f07178;--red-soft: #48252a;--green: #58c49e;--green-soft: #173a2f;--orange: #f0a85c;--orange-soft: #49311b;--blue-soft: #1c3150;--focus: #78aafb;--shadow: 0 10px 32px rgba(0, 0, 0, .25)}@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--bg: #11161c;--surface: #1a2129;--surface-2: #232c35;--surface-hover: #202933;--text: #edf2f7;--text-2: #b3bec9;--text-3: #8c99a6;--border: #2d3742;--border-strong: #41505f;--primary: #5c9af7;--primary-hover: #78aafb;--primary-soft: #1b3152;--red: #f07178;--red-soft: #48252a;--green: #58c49e;--green-soft: #173a2f;--orange: #f0a85c;--orange-soft: #49311b;--blue-soft: #1c3150;--focus: #78aafb;--shadow: 0 10px 32px rgba(0, 0, 0, .25)}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:15px}button,input,select,textarea{font:inherit}button{color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 50%,transparent);outline-offset:2px}button:active{transform:translateY(1px)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(28px,4vw,38px);line-height:1.12;letter-spacing:-.035em}h2{font-size:19px;line-height:1.25;letter-spacing:-.018em}h3{font-size:16px}.muted{color:var(--text-2);line-height:1.6}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.break{word-break:break-all}.button{min-height:44px;border:1px solid transparent;border-radius:var(--radius-control);padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;cursor:pointer;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,opacity .16s ease}.button:disabled{opacity:.48;cursor:not-allowed}.button.primary{background:var(--primary);color:#f9fbff}.button.primary:hover:not(:disabled){background:var(--primary-hover)}.button.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.button.secondary:hover:not(:disabled){background:var(--surface-hover)}.button.danger{background:var(--red);color:#fff}.button.danger.ghost{background:transparent;color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--border))}.button.compact{min-height:40px;padding:0 13px}.button.full{width:100%}.icon-button{width:44px;height:44px;border:0;border-radius:var(--radius-control);background:transparent;display:inline-grid;place-items:center;cursor:pointer}.icon-button:hover{background:var(--surface-2)}.icon-button.subtle{width:38px;height:38px;color:var(--text-2)}.icon-button.danger,.danger-text{color:var(--red)}.boot-screen{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--text-2)}.boot-error{padding:24px;text-align:center}.boot-error h1{color:var(--text);font-size:24px}.boot-error p{max-width:520px;line-height:1.6}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:var(--primary);color:#fff;font-weight:750;font-size:24px}.access-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);background:var(--surface)}.access-intro{padding:clamp(40px,8vw,112px);background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;gap:56px}.access-intro h1{max-width:620px;font-size:clamp(42px,6vw,76px)}.access-intro>div>p:last-child{max-width:550px;margin-top:24px;color:var(--text-2);font-size:18px;line-height:1.8}.product-name{color:var(--primary);font-weight:750}.access-promise{display:flex;gap:24px;color:var(--text-2)}.access-promise span{display:flex;align-items:center;gap:8px}.access-panel{align-self:center;justify-self:center;width:min(420px,calc(100% - 48px));padding:36px 0;display:grid;gap:28px}.access-panel h2{font-size:28px;margin-bottom:8px}.access-links{display:flex;justify-content:space-between}.access-links button{border:0;background:transparent;color:var(--primary);cursor:pointer;padding:8px 0}.local-entry-card{padding:18px;border-radius:14px;background:var(--primary-soft);color:var(--text)}.local-entry-card strong{display:block;color:var(--primary);font-size:16px}.local-entry-card p{margin:7px 0 0;color:var(--text-2);line-height:1.65}.sample-class-option{padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2);display:grid;gap:13px}.sample-class-option strong{display:block;font-size:16px}.sample-class-option p{margin:6px 0 0;color:var(--text-2);line-height:1.6}.sample-class-option small{color:var(--text-3);line-height:1.5}.stack-form{display:grid;gap:18px}.field{display:grid;gap:7px;min-width:0}.field-label{font-size:13px;font-weight:700;color:var(--text-2)}.field-hint{font-size:12px;color:var(--text-3);line-height:1.5}.field-error{font-size:12px;color:var(--red);margin:0}.input{width:100%;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--text);padding:10px 12px}.input::placeholder{color:var(--text-3);opacity:1}.textarea{resize:vertical;min-height:96px}.multi-select{min-height:140px}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.check-field{display:flex;align-items:center;gap:10px;min-height:44px}.check-field input{width:18px;height:18px}.success-notice,.settings-message{padding:12px 14px;border-radius:var(--radius-control);color:var(--green);background:var(--green-soft);margin:0}.app-shell{min-height:100dvh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr) 274px;max-width:1600px;margin:0 auto}.desktop-sidebar{position:sticky;top:0;height:100dvh;padding:24px 16px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column}.sidebar-brand{height:52px;display:flex;align-items:center;gap:10px;padding:0 10px 16px;font-weight:750;font-size:16px}.sidebar-brand svg{color:var(--primary)}.desktop-sidebar nav{display:grid;gap:6px;margin-top:18px}.desktop-sidebar nav button,.sidebar-settings{min-height:48px;border:0;border-radius:var(--radius-control);background:transparent;display:flex;align-items:center;gap:12px;padding:0 13px;cursor:pointer;color:var(--text-2);font-weight:650}.desktop-sidebar nav button:hover,.sidebar-settings:hover{background:var(--surface-2)}.desktop-sidebar nav button.active{color:var(--primary);background:var(--primary-soft)}.sidebar-settings{margin-top:auto;width:100%}.workspace{min-width:0;display:flex;flex-direction:column;min-height:100dvh}.topbar{position:sticky;top:0;z-index:5;min-height:68px;padding:10px clamp(18px,3vw,36px);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent);display:flex;align-items:center;justify-content:space-between}.topbar>div{display:flex;align-items:center;gap:14px}.topbar-context{min-width:0}.class-switcher{position:relative}.class-switcher-trigger{min-height:38px;max-width:280px;padding:0 10px;margin-left:-10px;border:0;border-radius:10px;background:transparent;color:var(--text);display:inline-flex;align-items:center;gap:5px;font:inherit;font-weight:750;cursor:pointer}.class-switcher-trigger:hover,.class-switcher-trigger[aria-expanded=true]{background:var(--surface-2)}.class-switcher-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-switcher-trigger svg{flex:none;color:var(--text-2);transition:transform .16s ease}.class-switcher-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.class-switcher-menu{position:absolute;top:calc(100% + 8px);left:-10px;z-index:20;width:min(320px,calc(100vw - 28px));padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 18px 50px color-mix(in srgb,var(--text) 16%,transparent);display:grid;gap:3px}.class-switcher-heading{padding:7px 9px 9px;display:flex;align-items:center;justify-content:space-between;color:var(--text-2);font-size:12px}.class-switcher-heading strong{color:var(--text);font-size:13px}.class-switcher-menu>button{width:100%;min-height:54px;padding:8px 9px;border:0;border-radius:10px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.class-switcher-menu>button:hover{background:var(--surface-2)}.class-switcher-menu>button.active{background:var(--primary-soft);color:var(--primary)}.class-switcher-menu>button>span:first-child{min-width:0;display:grid;gap:3px}.class-switcher-menu>button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.class-switcher-menu>button small{color:var(--text-2);font-size:11px}.class-switcher-menu>button svg{flex:none}.class-switcher-menu .class-switcher-new{min-height:44px;justify-content:flex-start;margin-top:4px;border-top:1px solid var(--border);border-radius:0 0 9px 9px;color:var(--primary);font-weight:700}.sync-brief{color:var(--text-2);font-size:13px;display:inline-flex;align-items:center;gap:6px}.sync-brief.failed,.sync-brief.conflict{color:var(--red)}.sync-brief.success{color:var(--green)}.top-actions{gap:2px!important}.mobile-settings{display:none}.page-scroll{flex:1;min-width:0}.page-content{width:min(100%,960px);margin:0 auto;padding:30px clamp(18px,4vw,42px) 64px;display:grid;gap:22px}.site-legal{width:min(100%,960px);margin:-32px auto 0;padding:0 clamp(18px,4vw,42px) 28px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;color:var(--text-3);font-size:11px;line-height:1.5}.site-legal a{color:inherit;text-decoration:none}.site-legal a:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.page-heading{min-height:78px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-heading p{margin-bottom:6px;color:var(--text-2);font-size:13px}.count-badge,.status-chip,.demo-label,.trace-type{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;white-space:nowrap}.count-badge{background:var(--primary-soft);color:var(--primary)}.demo-label{background:var(--orange-soft);color:var(--orange);display:inline-flex;align-items:center}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-surface);padding:20px;box-shadow:var(--shadow);min-width:0}.compact-surface{padding:12px}.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.section-header h2,.section-header h3{margin-bottom:4px}.section-header p{color:var(--text-2);font-size:13px;line-height:1.5;margin:0}.quick-add{display:grid;grid-template-columns:minmax(0,1fr) 44px auto;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--border)}.quick-add input,.search-box input{border:0;min-width:0;background:transparent;color:var(--text);outline:none}.todo-list{display:grid}.todo-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:13px 0;border-bottom:1px solid var(--border)}.todo-row:last-child{border-bottom:0}.check-button{width:34px;height:34px;border:0;background:transparent;color:var(--primary);display:grid;place-items:center;cursor:pointer}.todo-copy strong{display:block;line-height:1.45}.todo-row.completed .todo-copy strong{color:var(--text-3);text-decoration:line-through}.todo-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-height:20px;margin-top:3px;font-size:11px;color:var(--text-3)}.todo-meta span{display:inline-flex;align-items:center;gap:4px}.priority-high{color:var(--red)}.row-actions{display:flex;align-items:center;gap:4px}.schedule-list{display:grid}.schedule-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.schedule-row:last-child{border-bottom:0}.schedule-row .period{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--surface-2);color:var(--text-2);font-weight:750}.schedule-row p{margin:3px 0 0;color:var(--text-2);font-size:12px}.schedule-row time{text-align:right;font-size:12px;color:var(--text-3);line-height:1.5}.desktop-status{position:sticky;top:0;height:100dvh;padding:30px 22px;border-left:1px solid var(--border);background:var(--surface)}.desktop-status h2{margin-bottom:24px}.desktop-status dl{display:grid;gap:2px;margin-bottom:20px}.desktop-status dl div,.detail-list div{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.5fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.desktop-status dt,.detail-list dt{color:var(--text-2)}.desktop-status dd,.detail-list dd{margin:0;text-align:right}.status-note{color:var(--text-3);font-size:12px;line-height:1.6;margin-top:14px}.mobile-nav{display:none}.inline-notice,.warning-note{display:flex;align-items:flex-start;gap:9px;border-radius:var(--radius-control);padding:11px 13px;line-height:1.5}.inline-notice{background:var(--orange-soft);color:var(--orange)}.warning-note{background:var(--orange-soft);color:var(--text);font-size:13px}.warning-note svg{color:var(--orange);flex:0 0 auto}.empty-state{min-height:170px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--text-3);padding:24px}.empty-state strong{color:var(--text)}.empty-state p{margin:0;max-width:360px;line-height:1.6}.loading-rows{display:grid;gap:10px}.skeleton-row{height:58px;border-radius:10px;background:var(--surface-2)}@media(prefers-reduced-motion:no-preference){.skeleton-row{animation:skeleton 1.4s ease-in-out infinite alternate}}@keyframes skeleton{0%{opacity:.65}to{opacity:1}}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric{min-height:112px;border-radius:var(--radius-surface);padding:16px;display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid transparent}.metric svg{grid-row:span 2}.metric span{font-size:12px;color:var(--text-2)}.metric strong{font-size:28px;align-self:end}.metric small{align-self:end;margin:0 0 6px 4px;color:var(--text-2)}.metric.blue{background:var(--blue-soft);color:var(--primary)}.metric.red{background:var(--red-soft);color:var(--red)}.metric.orange{background:var(--orange-soft);color:var(--orange)}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:4px;border-radius:12px;background:var(--surface-2)}.segmented.compact{grid-template-columns:repeat(2,minmax(0,180px));width:fit-content}.segmented button{min-height:40px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-weight:650;cursor:pointer}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 2px 10px #2a3b4e14}.record-list{display:grid}.record-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.record-row:last-child{border-bottom:0}.record-row p{margin:3px 0 0;color:var(--text-2);font-size:12px}.record-row small{color:var(--text-3)}.record-icon,.record-type{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:750}.record-icon.income{color:var(--green);background:var(--green-soft)}.record-icon.expense{color:var(--red);background:var(--red-soft)}.record-type.leave{color:var(--primary);background:var(--blue-soft)}.record-type.discipline{color:var(--red);background:var(--red-soft)}.record-type.points{color:var(--orange);background:var(--orange-soft)}.record-row b.income{color:var(--green)}.record-row b.expense{color:var(--red)}.points-value{color:var(--orange)}.status-chip{background:var(--surface-2);color:var(--text-2)}.status-chip.success{background:var(--green-soft);color:var(--green)}.status-chip.warning{background:var(--orange-soft);color:var(--orange)}.status-chip.failed{background:var(--red-soft);color:var(--red)}.finance-balance{display:flex;align-items:flex-end;justify-content:space-between;padding:2px 0 18px;border-bottom:1px solid var(--border)}.finance-balance span{color:var(--text-2)}.finance-balance strong{font-size:28px}.student-picker{max-height:190px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;border:1px solid var(--border);border-radius:var(--radius-control);padding:8px}.student-picker label{min-height:40px;display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;cursor:pointer}.student-picker label.selected{background:var(--primary-soft);color:var(--primary)}.student-picker input{width:16px;height:16px}.filter-bar,.student-toolbar{display:flex;align-items:center;gap:10px}.search-box{min-height:42px;flex:1;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-control);color:var(--text-3)}.search-box input{width:100%}.inline-select{width:auto;min-width:130px}.trace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.trace-card{padding:0;overflow:hidden;display:grid;grid-template-columns:118px minmax(0,1fr);min-height:142px;position:relative}.trace-thumb{min-height:142px;background:var(--surface-2);display:grid;place-items:center;color:var(--text-3);overflow:hidden}.trace-thumb img{width:100%;height:100%;object-fit:cover}.trace-card-body{padding:15px 14px;min-width:0}.trace-card-body>div{display:flex;gap:6px}.trace-type{color:var(--primary);background:var(--primary-soft)}.trace-card-body h2{margin:11px 0 5px;font-size:16px}.trace-card-body p{margin:0 0 10px;color:var(--text-2);font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.trace-card-body small{color:var(--text-3)}.trace-actions{position:absolute;right:8px;bottom:8px;display:flex}.camera-fab{position:fixed;right:max(24px,calc((100vw - 1450px)/2));bottom:24px;min-height:52px;padding:0 18px;border:0;border-radius:14px;background:var(--primary);color:#fff;font-weight:700;display:flex;align-items:center;gap:9px;box-shadow:0 10px 24px #1768e53d;cursor:pointer;z-index:4}.file-actions{display:flex;gap:8px;flex-wrap:wrap}.selected-files{display:grid;gap:6px;margin-top:8px}.selected-files span{display:flex;justify-content:space-between;padding:8px 10px;border-radius:8px;background:var(--surface-2)}.student-list{padding:8px 20px}.student-row{min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;border-bottom:1px solid var(--border);cursor:pointer}.student-row:last-child{border-bottom:0}.student-row:hover{background:var(--surface-hover)}.student-row p{color:var(--text-2);font-size:12px;margin:4px 0 0}.avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:750;color:var(--primary);background:var(--blue-soft)}.avatar.green{color:var(--green);background:var(--green-soft)}.avatar.orange{color:var(--orange);background:var(--orange-soft)}.avatar.purple{color:#7a50ad;background:#f0e8fa}.student-profile-head{display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--border)}.student-profile-head h3{font-size:22px;margin:0 0 4px}.student-profile-head p{color:var(--text-2);margin:0}.student-profile-head .demo-label{margin-left:auto}.profile-metrics,.exam-metrics,.sync-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:18px 0}.profile-metrics div,.exam-metrics div,.sync-metrics div{border-radius:11px;background:var(--surface-2);padding:12px}.profile-metrics span,.exam-metrics span,.sync-metrics span{display:block;color:var(--text-2);font-size:11px;margin-bottom:7px}.profile-metrics strong,.exam-metrics strong,.sync-metrics strong{font-size:20px}.profile-section{padding-top:18px;border-top:1px solid var(--border)}.profile-event{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;color:var(--text-2)}.profile-event span{color:var(--primary);font-weight:700}.profile-event time{color:var(--text-3)}.table-scroll{overflow:auto;border:1px solid var(--border);border-radius:10px;max-height:330px}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}.data-table th{position:sticky;top:0;background:var(--surface-2);text-align:left;color:var(--text-2)}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.data-table tr:last-child td{border-bottom:0}.data-table .row-error td{color:var(--red);background:var(--red-soft)}.import-summary{display:flex;gap:16px;font-weight:650;font-size:13px}.exam-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.exam-list{padding:12px;display:grid;gap:6px}.exam-list .section-header{padding:4px 4px 10px;margin:0}.exam-list>button{border:0;border-radius:10px;background:transparent;text-align:left;display:grid;gap:4px;padding:11px;cursor:pointer}.exam-list>button span{color:var(--text-3);font-size:12px}.exam-list>button.selected{background:var(--primary-soft);color:var(--primary)}.exam-detail{min-height:400px}.exam-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.subject-stats{display:grid;gap:12px}.subject-stat-card{width:100%;padding:13px 8px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);display:grid;grid-template-columns:90px minmax(80px,1fr) 240px auto;align-items:center;gap:14px;text-align:left;cursor:pointer;transition:background .2s ease,transform .2s ease}.subject-stat-card:hover{background:var(--surface-hover);transform:translate(2px)}.subject-stat-card:active{transform:translate(2px) scale(.995)}.subject-stat-card:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 32%,transparent);outline-offset:2px}.subject-stat-card>div:first-child{display:grid;gap:3px}.subject-stats article span{font-size:11px;color:var(--text-3)}.subject-bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.subject-bar i{display:block;height:100%;background:var(--primary);border-radius:inherit}.subject-stat-card span{font-size:11px;color:var(--text-3)}.subject-stat-card>svg{color:var(--text-3)}.subject-stats dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}.subject-stats dl div{text-align:center}.subject-stats dt{color:var(--text-3);font-size:10px}.subject-stats dd{margin:4px 0 0;font-weight:750}.subject-scale-note{color:var(--text-3);line-height:1.5}.students-home{width:min(100%,1020px)}.student-page-heading{min-height:72px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.student-page-heading h1{font-size:clamp(34px,5vw,46px)}.student-page-heading p{margin:8px 0 0;color:var(--text-2)}.student-add-button{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:15px}.student-search{min-height:52px;padding:0 16px;display:flex;align-items:center;gap:10px;border-radius:15px;background:var(--surface-2);color:var(--text-3)}.student-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text);font-size:16px}.student-quick-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.student-quick-tools button{min-height:96px;padding:13px 8px;border:0;border-radius:14px;background:var(--surface);color:var(--text);display:grid;place-items:center;align-content:center;gap:9px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--border);transition:transform .18s ease,background .18s ease}.student-quick-tools button:hover{background:var(--surface-hover);transform:translateY(-2px)}.student-quick-tools button:nth-child(1) svg{color:var(--orange)}.student-quick-tools button:nth-child(2) svg{color:#6554c0}.student-quick-tools button:nth-child(3) svg{color:#a6298f}.student-quick-tools button:nth-child(4) svg{color:var(--green)}.student-quick-tools span{font-weight:700}.student-tools-row{display:flex;justify-content:space-between;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.student-tools-row button{min-height:52px;border:0;background:transparent;color:var(--primary);display:inline-flex;align-items:center;gap:8px;padding:0 4px;font-weight:700;cursor:pointer}.student-empty{display:grid;gap:18px}.empty-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.empty-tool-grid button{min-height:54px;padding:8px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);display:flex;align-items:center;gap:8px;cursor:pointer}.student-directory{position:relative;min-width:0}.student-directory .student-list{padding:5px 42px 5px 20px}.student-letter-group{scroll-margin-top:74px}.student-letter-group h2{margin:14px 0 4px;color:var(--text-2);font-size:15px}.student-letter-group .student-row{width:100%;grid-template-columns:auto minmax(0,1fr) auto;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;padding:8px 0}.student-row-copy{min-width:0;display:grid;gap:4px}.student-row-copy strong{font-size:16px}.student-row-copy small{color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-letter-group .student-row>span:last-child{color:var(--text-3);font-size:24px}.alphabet-rail{position:sticky;float:right;top:86px;margin-top:16px;margin-right:8px;width:24px;max-height:calc(100dvh - 180px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;z-index:2}.alphabet-rail a{width:24px;min-height:20px;display:grid;place-items:center;color:var(--primary);font-size:11px;font-weight:750;text-decoration:none}.student-photo{width:42px;height:42px;border-radius:14px;object-fit:cover;background:var(--surface-2)}.student-photo.large{width:68px;height:68px;border-radius:20px}.avatar.large{width:68px;height:68px;border-radius:20px;font-size:24px}.student-photo-editor{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border-radius:14px;background:var(--surface-2)}.student-photo-editor p{margin:5px 0 0;color:var(--text-2);font-size:12px;line-height:1.5}.profile-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.profile-columns .profile-section{padding:16px;border:1px solid var(--border);border-radius:14px}.profile-event{align-items:center;padding:9px 0;margin:0;border-bottom:1px solid var(--border)}.profile-event:last-child{border-bottom:0}.all-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.all-tools-grid>button{min-height:72px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer}.all-tools-grid>button:hover{background:var(--surface-hover)}.all-tools-grid>button svg{color:var(--primary);flex:0 0 auto}.all-tools-grid span{display:grid;gap:4px}.all-tools-grid small{color:var(--text-3)}.common-tools-editor{display:grid;gap:6px}.common-tools-editor>div{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.common-tools-editor label{display:flex;align-items:center;gap:10px;font-weight:650}.common-tools-editor input{width:18px;height:18px}.common-tools-editor>div>div{display:flex}.inline-loading{min-height:72px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-2)}.inline-loading span{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-file-card{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,220px);align-items:center;gap:14px;padding:14px;border-radius:13px;background:var(--surface-2)}.import-file-card>svg{color:var(--primary)}.import-file-card p{margin:5px 0 0;color:var(--text-3);font-size:12px}.import-file-card .field-label{display:none}.import-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.import-summary-grid>div{padding:11px;border-radius:11px;background:var(--surface-2)}.import-summary-grid span{display:block;color:var(--text-3);font-size:11px}.import-summary-grid strong{display:block;margin-top:5px;font-size:19px;font-variant-numeric:tabular-nums}.import-summary-grid .success{background:var(--green-soft);color:var(--green)}.import-summary-grid .danger{background:var(--red-soft);color:var(--red)}.import-preview{max-height:420px;border:1px solid var(--border);border-radius:12px}.import-preview .input{min-height:34px;padding:5px 8px}.privacy-callout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;padding:16px;border-radius:13px;background:var(--primary-soft)}.privacy-callout svg{color:var(--primary)}.privacy-callout p{margin:5px 0 0;color:var(--text-2);line-height:1.6}.roster-image-preview{margin:0;padding:12px;border:1px solid var(--border);border-radius:12px}.roster-image-preview img{display:block;max-width:100%;max-height:430px;margin:auto;border-radius:8px}.roster-image-preview figcaption{margin-top:8px;color:var(--text-3);font-size:12px;text-align:center}.student-tool-page{width:min(100%,1220px);margin:0 auto;padding:30px clamp(18px,4vw,42px) 74px;display:grid;gap:18px}.tool-page-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}.tool-page-header h1{font-size:clamp(29px,4vw,40px)}.tool-page-header p{margin:6px 0 0;color:var(--text-2)}.action-field{align-content:end}.group-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.group-column{padding:14px}.group-column header{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.8fr);align-items:center;gap:8px;margin-bottom:8px}.group-column header>div{display:flex;align-items:baseline;gap:8px}.group-column header span{color:var(--text-3);font-size:12px}.group-column .input,.tool-student-row .input{min-height:36px;padding:6px 8px}.tool-student-row{min-height:48px;display:grid;grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:8px;border-top:1px solid var(--border)}.intervention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.intervention-card>header{display:flex;justify-content:space-between;gap:10px}.intervention-card>header .input{width:120px;min-height:36px;padding:6px 8px}.intervention-card h2{margin:16px 0 5px}.intervention-card>p{color:var(--text-3)}.intervention-card dl{display:grid;gap:8px}.intervention-card dl div{padding:10px;border-radius:10px;background:var(--surface-2)}.intervention-card dt{color:var(--text-3);font-size:11px}.intervention-card dd{margin:5px 0 0;line-height:1.55}.member-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.member-chips span{padding:5px 8px;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:12px}.seating-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.seating-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;align-items:start}.unassigned-panel{position:sticky;top:86px;padding:12px;max-height:calc(100dvh - 110px);overflow:auto}.unassigned-panel h2{display:flex;justify-content:space-between;padding:4px}.unassigned-panel>div{display:grid;gap:5px}.unassigned-panel article{min-width:0;border:1px solid transparent;border-radius:9px;background:var(--surface-2);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.unassigned-panel article.selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.unassigned-panel article.assigned{opacity:.78}.unassigned-panel article>button{min-width:0;min-height:46px;border:0;background:transparent;display:grid;justify-items:start;gap:3px;padding:7px 9px;color:inherit;cursor:pointer;text-align:left}.unassigned-panel article>label{height:100%;padding:0 7px;border-left:1px solid var(--border);display:grid;place-items:center;align-content:center;gap:2px;color:var(--text-3);font-size:9px;cursor:pointer}.unassigned-panel button small{color:var(--text-3)}.seat-print-header{text-align:center;margin-bottom:22px}.seat-print-header p{width:min(360px,70%);margin:12px auto 0;padding:8px;border:1px solid var(--border);border-radius:8px;color:var(--text-2)}.independent-seat-preview{min-width:620px;margin:-10px 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.independent-seat-preview>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.independent-seat-preview>div:last-child{justify-content:flex-end}.independent-seat-preview>div>small{width:100%;color:var(--text-3);font-size:9px}.independent-seat-preview article{min-width:104px;padding:9px;border:1px solid color-mix(in srgb,var(--orange) 36%,var(--border));border-radius:9px;background:var(--orange-soft);display:grid;gap:2px;text-align:center}.independent-seat-preview article span{color:var(--text-2);font-size:9px}.seat-board{min-width:620px;display:grid;gap:8px}.seat-board-wrap{overflow-x:auto}.seat-board button{min-height:68px;border:1px dashed var(--border-strong);border-radius:10px;background:var(--surface-2);display:grid;place-items:center;align-content:center;gap:3px;cursor:pointer}.seat-board button.occupied{border-style:solid;border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft)}.seat-board small{color:var(--text-3);font-size:10px}.seat-board button em{color:var(--primary);font-size:9px;font-style:normal}.seat-board button.unavailable{border-style:solid;border-color:var(--border);background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 6px,var(--border) 6px,var(--border) 8px);color:var(--text-3);cursor:not-allowed}.seat-board button.aisle-after{margin-right:18px}.seat-capacity{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) minmax(160px,1.4fr);gap:8px;align-items:stretch}.seat-capacity>div{padding:12px;border-radius:11px;background:var(--surface-2)}.seat-capacity span,.seat-capacity small{color:var(--text-3);font-size:11px}.seat-capacity strong{display:inline-block;margin:6px 4px 0 0;font-size:25px;font-variant-numeric:tabular-nums}.seat-capacity .success{color:var(--green);background:var(--green-soft)}.seat-capacity .danger{color:var(--red);background:var(--red-soft)}.seat-capacity>p{margin:0;padding:12px;border-radius:11px;display:grid;place-items:center;text-align:center;font-weight:700;background:var(--surface-2)}.success-text{color:var(--green)}.seat-warning,.inline-error{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border-radius:13px;background:var(--orange-soft);color:color-mix(in srgb,var(--orange) 78%,var(--text))}.seat-warning p{margin:4px 0 0;color:var(--text-2);font-size:12px}.inline-error{grid-template-columns:auto minmax(0,1fr);background:var(--red-soft);color:var(--red)}.seating-tabs{width:min(520px,100%)}.seat-generate-actions{display:flex;gap:8px}.seat-generate-actions .button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.seating-rule-report{display:grid;gap:12px}.seating-rule-report>header{display:flex;justify-content:space-between;gap:12px}.seating-rule-report h2,.seating-rule-report p{margin:0}.seating-rule-report p{margin-top:4px;color:var(--text-3);font-size:12px}.seating-rule-report>div{display:flex;flex-wrap:wrap;gap:7px}.rule-result{padding:7px 9px;border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:12px}.rule-result.success{background:var(--green-soft);color:var(--green)}.rule-result.warning{background:var(--orange-soft);color:var(--orange)}.seating-rule-report ul{margin:0;padding:12px 12px 12px 30px;border-radius:10px;background:var(--red-soft);color:var(--red)}.status-chip.success{color:var(--green);background:var(--green-soft)}.status-chip.warning{color:var(--orange);background:var(--orange-soft)}.seating-profile-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}.profile-student-list{padding:12px;max-height:calc(100dvh - 190px);overflow:auto;position:sticky;top:84px}.profile-student-list h2{padding:4px 4px 10px}.profile-student-list>div{display:grid;gap:5px}.profile-student-list button{min-height:48px;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:var(--surface-2);color:var(--text);display:grid;gap:3px;text-align:left;cursor:pointer}.profile-student-list button small{min-height:14px;color:var(--text-3)}.profile-student-list button.selected{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.seating-profile-editor>header,.relation-editor>header,.priority-editor>header{display:flex;justify-content:space-between;align-items:start;gap:12px}.seating-profile-editor h2,.seating-profile-editor p,.relation-editor h2,.relation-editor p,.priority-editor h2,.priority-editor p{margin:0}.seating-profile-editor header p,.relation-editor header p,.priority-editor header p{margin-top:5px;color:var(--text-3);font-size:12px}.seating-relations-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:14px;align-items:start}.relation-list{display:grid;gap:7px}.relation-list article{min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:9px;padding:9px;border-radius:10px;background:var(--surface-2)}.relation-list article.disabled{opacity:.55}.relation-list p{margin:4px 0 0;color:var(--text-3);font-size:11px}.complement-suggestions{display:grid;gap:6px;padding:12px;border-radius:11px;background:var(--green-soft)}.complement-suggestions header{margin-bottom:3px}.complement-suggestions h3,.complement-suggestions p{margin:0}.complement-suggestions p{margin-top:4px;color:var(--text-2);font-size:11px;line-height:1.5}.complement-suggestions article{min-height:44px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid color-mix(in srgb,var(--green) 18%,transparent)}.complement-suggestions article>div{display:grid;gap:3px}.complement-suggestions small{color:var(--text-2)}.priority-editor{display:grid;gap:16px}.priority-editor>div{display:grid;gap:7px}.priority-editor article{display:grid;grid-template-columns:auto minmax(0,1fr) auto 112px auto;align-items:center;gap:9px;padding:10px;border-radius:11px;background:var(--surface-2)}.priority-editor article>div:nth-of-type(1) p{margin:4px 0 0;color:var(--text-3);font-size:11px}.priority-number{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:var(--surface);color:var(--primary);font-weight:800}.priority-editor .input{min-height:36px;padding:6px 8px;font-size:12px}.rule-toggle{display:flex;align-items:center;gap:5px;font-size:12px}.priority-actions{display:flex}.hard-rule{grid-column:2 / -1;color:var(--orange);font-size:11px;display:inline-flex;align-items:center;gap:4px}.profile-subform{display:grid;gap:14px;padding:16px;border-radius:14px;background:var(--surface-2)}.profile-subform h3,.profile-subform p{margin:0}.profile-subform p{margin-top:4px;color:var(--text-3);font-size:12px}.exams-page .exam-layout{grid-template-columns:250px minmax(0,1fr)}.exam-analysis{display:grid;gap:18px}.exam-analysis>section:not(.exam-metrics){padding:17px;border:1px solid var(--border);border-radius:14px}.exam-analysis h3{margin-bottom:14px}.distribution-card{min-height:230px}.distribution-chart{height:170px;display:flex;align-items:end;gap:8px;padding-top:22px;overflow-x:auto}.distribution-chart>div{flex:1 0 58px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px}.distribution-chart i{width:min(44px,75%);min-height:8px;border-radius:7px 7px 2px 2px;background:var(--primary)}.distribution-chart span{font-size:11px;font-weight:750}.distribution-chart small{color:var(--text-3);font-size:10px}.score-line-card .form-grid{align-items:end}.critical-list{margin-top:14px;padding:12px;border-radius:11px;background:var(--surface-2)}.rank-change-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rank-change-columns>div{padding:12px;border-radius:11px;background:var(--surface-2);display:grid;gap:8px}.rank-change-columns span{display:flex;justify-content:space-between}.rank-change-columns b{color:var(--green)}.rank-change-columns>div:last-child b{color:var(--orange)}.data-quality{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px;border-radius:12px;background:var(--surface-2)}.data-quality h3{width:100%;margin:0 0 3px}.data-quality span{padding:6px 9px;border-radius:8px;background:var(--surface);color:var(--text-2);font-size:12px}.trend-timeline{display:grid}.trend-timeline article{min-height:68px;display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--border)}.trend-timeline time{color:var(--text-3);font-size:12px}.trend-timeline p{margin:4px 0 0;color:var(--text-2)}.trend-timeline b{font-variant-numeric:tabular-nums}.trend-timeline b.up{color:var(--green)}.trend-timeline b.down{color:var(--orange)}.subject-detail-header>div:nth-child(2){display:grid}.subject-detail-header>div:nth-child(2) p{order:-1;margin:0 0 4px;color:var(--primary);font-weight:700}.subject-detail-header>div:nth-child(2) small{color:var(--text-3);margin-top:6px}.score-mode{min-width:180px}.subject-overview{display:grid;gap:16px}.subject-overview-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.subject-overview-heading h2,.subject-overview-heading p{margin:0}.subject-overview-heading p{margin-top:5px;color:var(--text-3);font-size:12px}.subject-overview-heading label{min-width:260px;display:grid;gap:6px;color:var(--text-2);font-size:12px}.subject-metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.subject-metric-grid>div,.subject-metric-grid>button{min-height:94px;padding:12px;border:0;border-radius:11px;background:var(--surface-2);color:var(--text);display:grid;align-content:center;gap:4px;text-align:left}.subject-metric-grid>button{cursor:pointer;transition:transform .2s ease,background .2s ease}.subject-metric-grid>button:hover{transform:translateY(-2px)}.subject-metric-grid>button.up{background:var(--green-soft);color:var(--green)}.subject-metric-grid>button.down{background:var(--orange-soft);color:var(--orange)}.subject-metric-grid span,.subject-metric-grid small{color:var(--text-3);font-size:11px}.subject-metric-grid strong{font-size:22px;font-variant-numeric:tabular-nums}.subject-roster{min-width:0;display:grid;gap:14px}.subject-roster-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,300px) 150px;align-items:end;gap:12px}.subject-roster-toolbar h2,.subject-roster-toolbar p{margin:0}.subject-roster-toolbar p{margin-top:5px;color:var(--text-3);font-size:12px}.subject-search{min-height:42px;border-radius:10px}.subject-filters{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.subject-filters button{min-height:34px;border:1px solid var(--border);border-radius:9px;padding:0 10px;background:var(--surface);color:var(--text-2);white-space:nowrap;cursor:pointer}.subject-filters button.active{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:var(--primary-soft);color:var(--primary);font-weight:700}.subject-filters span{margin-left:5px;color:var(--text-3);font-variant-numeric:tabular-nums}.subject-table-wrap{max-height:min(560px,calc(100dvh - 250px))}.subject-table th:first-child,.subject-table td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:8px 0 12px -12px var(--text-3)}.subject-table th:first-child{z-index:3;background:var(--surface-2)}.student-link{min-width:150px;border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) auto;text-align:left;cursor:pointer}.student-link strong,.student-link small{grid-column:1}.student-link small{margin-top:3px;color:var(--text-3)}.student-link svg{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--text-3)}.positive-number{color:var(--green);font-weight:750;font-variant-numeric:tabular-nums}.negative-number{color:var(--orange);font-weight:750;font-variant-numeric:tabular-nums}.progress-badge{width:max-content;display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:7px;background:var(--surface-2);color:var(--text-2);font-size:11px;font-weight:700}.progress-badge.up{color:var(--green);background:var(--green-soft)}.progress-badge.down{color:var(--orange);background:var(--orange-soft)}.progress-badge.absent{color:var(--red);background:var(--red-soft)}.subject-student-cards{display:none}.history-explanation{padding:13px;border-radius:11px;background:var(--primary-soft)}.history-explanation p{margin:5px 0 0;color:var(--text-2);line-height:1.55}.subject-history-list{margin-top:14px;display:grid}.subject-history-list article{min-height:86px;display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:13px;border-bottom:1px solid var(--border)}.subject-history-list time{color:var(--text-3);font-size:12px}.subject-history-list p{margin:4px 0 8px;color:var(--text-2)}.subject-history-list div>span{width:100%;height:6px;display:block;border-radius:99px;background:var(--surface-2);overflow:hidden}.subject-history-list i{height:100%;display:block;border-radius:inherit;background:var(--primary)}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#0d151e7a;display:grid;place-items:center;padding:24px}.modal-sheet{width:min(560px,100%);max-height:min(820px,calc(100dvh - 48px));overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 28px 80px #0b141e42;display:flex;flex-direction:column}.modal-sheet.modal-wide{width:min(900px,100%)}.modal-header{min-height:66px;padding:11px 16px 11px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex:0 0 auto}.modal-header h2{margin:0}.modal-body{padding:22px;overflow:auto;overscroll-behavior:contain}.settings-layout{display:grid;grid-template-columns:170px minmax(0,1fr);min-height:560px}.settings-nav{display:flex;flex-direction:column;gap:4px;padding-right:18px;border-right:1px solid var(--border)}.settings-nav button{min-height:42px;text-align:left;border:0;border-radius:9px;padding:0 11px;background:transparent;color:var(--text-2);cursor:pointer}.settings-nav button.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.settings-content{padding-left:24px;display:grid;align-content:start;gap:24px;min-width:0}.settings-section{padding-bottom:24px;border-bottom:1px solid var(--border)}.settings-section:last-of-type{border-bottom:0}.settings-section>h3{margin-bottom:8px}.settings-section>p{color:var(--text-2);line-height:1.6}.theme-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;background:var(--surface-2);border-radius:11px}.theme-switch button{min-height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:8px;background:transparent;cursor:pointer}.theme-switch button.active{background:var(--surface);color:var(--primary)}.backup-protection-toggle{margin:14px 0;min-height:58px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;display:flex;align-items:center;gap:10px;color:var(--text-2);cursor:pointer}.backup-protection-toggle.selected{border-color:color-mix(in srgb,var(--primary) 42%,var(--border));background:var(--primary-soft);color:var(--primary)}.backup-protection-toggle input{width:18px;height:18px;margin:0;accent-color:var(--primary)}.backup-protection-toggle span{min-width:0;display:grid;gap:3px}.backup-protection-toggle strong{color:var(--text)}.backup-protection-toggle small{color:var(--text-3)}.privacy-link{width:fit-content;margin-top:14px}.danger-zone{border:1px solid color-mix(in srgb,var(--red) 25%,var(--border));border-radius:14px;padding:16px}.button-stack{display:grid;gap:8px;justify-items:start}.sync-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.operation-list,.deleted-list,.conflict-list{display:grid;gap:8px}.operation-list article,.deleted-list article{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;border-radius:10px;background:var(--surface-2)}.operation-list small{display:block;color:var(--text-3);margin-top:4px;max-width:420px;overflow:hidden;text-overflow:ellipsis}.deleted-list p{margin:4px 0}.deleted-list small{color:var(--text-3)}.conflict-list article{padding:14px;border-radius:12px;border:1px solid var(--border)}.conflict-list details{margin:12px 0}.conflict-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.conflict-compare pre{max-height:240px;overflow:auto;margin:8px 0;padding:10px;border-radius:8px;background:var(--surface-2);font-size:11px;white-space:pre-wrap}.backup-preview{margin-top:14px;padding:14px;border-radius:12px;background:var(--surface-2)}.backup-preview dl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.backup-preview dl div{text-align:center}.backup-preview dt{color:var(--text-3);font-size:11px}.backup-preview dd{margin:4px 0 0;font-weight:750}.storage-number{display:flex;align-items:baseline;gap:10px}.storage-number strong{font-size:26px}.storage-number span{color:var(--text-2)}.install-guide{display:grid;gap:12px}.install-guide>h3{margin:0}.install-guide article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border-radius:12px;background:var(--surface-2)}.install-guide p{margin:5px 0 0;color:var(--text-2);line-height:1.6}.plain-list{padding-left:20px;color:var(--text-2);line-height:1.75}.toast{position:fixed;z-index:40;left:50%;bottom:28px;transform:translate(-50%);min-width:220px;max-width:min(460px,calc(100% - 32px));padding:12px 16px;border-radius:11px;background:var(--text);color:var(--surface);box-shadow:var(--shadow);text-align:center;display:flex;align-items:center;justify-content:center;gap:14px}.toast button{min-height:32px;border:1px solid currentColor;border-radius:8px;padding:4px 10px;color:inherit;background:transparent;font:inherit;cursor:pointer}.toast.error{background:var(--red);color:#fff}.toast.success{background:var(--green);color:#fff}.today-page{width:min(100%,1120px)}.today-hero{min-height:126px;display:flex;justify-content:space-between;align-items:end;gap:32px;padding:10px 2px 2px}.today-hero p{margin-bottom:10px;color:var(--primary);font-weight:750;letter-spacing:.04em}.today-hero h1{max-width:660px;font-size:clamp(34px,5vw,50px)}.today-intro>span{display:block;margin-top:12px;color:var(--text-2)}.today-status{flex:0 0 auto;min-width:118px;display:grid;justify-items:start;padding:8px 0 8px 22px;border-left:1px solid var(--border)}.today-status strong{font-size:42px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.today-status span{margin-top:5px;color:var(--text-3);font-size:12px}.countdown-strip{display:flex;gap:10px;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:thin}.countdown-strip article,.countdown-empty{min-width:248px;min-height:84px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--primary-soft) 58%,var(--surface));color:var(--text);padding:14px 12px 14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;text-align:left}.countdown-strip article>div{display:grid;gap:5px}.countdown-strip article span,.countdown-strip article time{font-size:12px;color:var(--text-2)}.countdown-strip article span{color:var(--text);font-weight:750}.countdown-strip article>strong{color:var(--primary);font-size:30px;font-variant-numeric:tabular-nums}.countdown-strip article>strong small{margin-left:3px;font-size:11px}.countdown-empty{border-style:dashed;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto}.countdown-empty span{display:grid;gap:4px}.countdown-empty small{color:var(--text-3)}.countdown-add{min-width:50px;border:1px dashed var(--border-strong);border-radius:14px;background:transparent;color:var(--primary);cursor:pointer}.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.9fr);grid-template-areas:"primary course" "dynamics course";gap:18px;align-items:start}.today-primary-card{grid-area:primary;padding:24px;box-shadow:0 16px 44px #30445b17}.today-course-card{grid-area:course;box-shadow:none}.dynamics-card{grid-area:dynamics;padding:20px 24px;box-shadow:none;background:color-mix(in srgb,var(--surface) 78%,var(--surface-2))}.today-grid:not(:has(.today-course-card)){grid-template-columns:1fr;grid-template-areas:"primary" "dynamics"}.today-grid:not(:has(.today-primary-card)){grid-template-areas:"dynamics course"}.today-grid:not(:has(.dynamics-card)){grid-template-areas:"primary course"}.today-grid:not(:has(.today-course-card)):not(:has(.today-primary-card)){grid-template-areas:"dynamics"}.today-grid:not(:has(.today-course-card)):not(:has(.dynamics-card)){grid-template-areas:"primary"}.today-grid:not(:has(.today-primary-card)):not(:has(.dynamics-card)){grid-template-columns:1fr;grid-template-areas:"course"}.section-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:7px;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.smart-add{grid-template-columns:minmax(0,1fr) 44px auto auto;padding:9px 9px 9px 15px;border:1px solid var(--border-strong);border-radius:13px;background:var(--surface-2)}.smart-add input{font-size:14px}.smart-add .recording{color:var(--red);background:var(--red-soft)}.review-source{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:11px;color:var(--text-2);background:var(--surface-2);line-height:1.55}.recognition-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 14px;padding:13px;border:1px solid var(--border);border-radius:11px}.recognition-summary span{color:var(--text-2)}.recognition-summary small{grid-column:1 / -1;color:var(--text-3)}.schedule-timeline{display:grid;padding:2px 0 8px}.schedule-timeline article{display:grid;grid-template-columns:54px 12px minmax(0,1fr);gap:10px;min-height:78px}.timeline-time{display:grid;align-content:start;padding-top:3px;text-align:right;font-variant-numeric:tabular-nums}.timeline-time strong{font-size:12px}.timeline-time span{margin-top:3px;color:var(--text-3);font-size:10px}.timeline-dot{position:relative;width:9px;height:9px;margin-top:6px;border-radius:999px;background:var(--border-strong)}.timeline-dot:after{content:"";position:absolute;top:9px;left:4px;bottom:-62px;width:1px;background:var(--border)}.schedule-timeline article:last-child .timeline-dot:after{display:none}.schedule-timeline article.mine .timeline-dot{background:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.schedule-timeline article small{color:var(--text-3)}.schedule-timeline article h3{margin:3px 0;font-size:16px}.schedule-timeline article p{margin:0;color:var(--text-2);font-size:12px}.service-inline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;margin:10px -4px -4px;padding:12px;border-radius:11px;background:var(--orange-soft);color:var(--orange)}.service-inline.done{color:var(--green);background:var(--green-soft)}.service-inline p{margin:3px 0 0;color:var(--text-2);font-size:11px}.service-inline button{border:0;background:transparent;color:inherit;font-weight:750;cursor:pointer}.dynamics-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--border)}.dynamics-metrics button{min-height:80px;border:0;background:var(--surface);display:grid;align-content:center;justify-items:center;gap:5px;cursor:pointer;transition:background-color .16s ease,color .16s ease}.dynamics-metrics button:hover{background:var(--surface-hover)}.dynamics-metrics strong{font-size:27px;font-variant-numeric:tabular-nums}.dynamics-metrics span{color:var(--text-2);font-size:11px}.privacy-note{margin:12px 0 0;color:var(--text-3);font-size:11px;line-height:1.55}.manager-tabs{display:flex;gap:5px;margin:-4px 0 20px;padding:4px;border-radius:12px;background:var(--surface-2);overflow-x:auto}.manager-tabs button{min-height:39px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-weight:650;white-space:nowrap;cursor:pointer}.manager-tabs button.active{background:var(--surface);color:var(--text);box-shadow:0 2px 10px #2a3b4e14}.manager-split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.compact-form{position:sticky;top:0;padding:17px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);gap:13px}.weekly-board{display:grid;gap:10px}.weekly-board section{border-bottom:1px solid var(--border);padding-bottom:9px}.weekly-board h4{margin:0 0 5px;color:var(--text-2)}.weekly-board article{min-height:48px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px}.weekly-board article>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);font-weight:750}.weekly-board article div{display:grid;gap:3px}.weekly-board article small{color:var(--text-3)}.weekly-board section>p{margin:6px 0;color:var(--text-3)}.import-panel{min-height:300px;display:grid;place-items:center;align-content:center;gap:14px;text-align:center;padding:20px}.import-panel>div:first-of-type{max-width:600px}.import-panel p{color:var(--text-2);line-height:1.65}.import-panel .input{max-width:520px}.preview-table-wrap{width:100%;max-height:310px;overflow:auto;border:1px solid var(--border);border-radius:11px;text-align:left}.override-list{display:grid;gap:8px}.override-list>h3{margin-bottom:7px}.override-list article{min-height:67px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:11px}.override-list p,.override-list small{margin:3px 0 0;color:var(--text-2)}.service-panel{display:grid;gap:18px}.service-checkin-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:20px;border-radius:14px;color:var(--primary);background:var(--primary-soft)}.service-checkin-card p{margin:0 0 4px;color:var(--text-2)}.service-checkin-card h3{margin:0;font-size:25px;font-variant-numeric:tabular-nums}.service-checkin-card span{color:var(--text-3);font-size:11px}.service-summary,.leave-month-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.service-summary>div,.leave-month-summary>div{min-height:92px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:grid;grid-template-columns:1fr auto;align-items:end}.service-summary span,.leave-month-summary span{grid-column:1 / -1;align-self:start;color:var(--text-2);font-size:12px}.service-summary strong,.leave-month-summary strong{font-size:25px;font-variant-numeric:tabular-nums}.service-summary small,.leave-month-summary small{margin:0 0 4px 4px;color:var(--text-3)}.filter-bar{display:grid;gap:12px;box-shadow:none}.filter-bar>.button{justify-self:start}.leave-month-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.leave-month-summary>div{background:var(--surface)}.leave-month-summary>div.attention{border-color:color-mix(in srgb,var(--orange) 42%,var(--border));background:var(--orange-soft)}.leave-record-section,.leave-record-list{display:grid;gap:12px}.leave-record-card{position:relative;overflow:hidden;padding:20px 22px 22px;display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:14px 24px;box-shadow:none}.leave-record-card.active{border-color:color-mix(in srgb,var(--primary) 28%,var(--border))}.leave-record-card.active:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--primary)}.leave-record-card.closed:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--green)}.leave-record-header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px}.leave-record-header time{color:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}.leave-record-identity{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px}.leave-record-identity h3{margin:1px 0 5px;font-size:18px;text-wrap:balance}.leave-record-identity p{margin:0;color:var(--text-2);font-size:12px;line-height:1.5}.leave-time-band{min-width:0;padding:12px 15px;border-left:2px solid var(--primary);border-radius:0 10px 10px 0;background:var(--surface-2);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;color:var(--primary)}.leave-record-card.closed .leave-time-band{border-left-color:var(--green);color:var(--green)}.leave-time-band>div{min-width:0;display:grid;gap:4px}.leave-time-band span{color:var(--text-3);font-size:10px;font-weight:700}.leave-time-band strong{overflow-wrap:anywhere;color:var(--text);font-size:14px;font-variant-numeric:tabular-nums;line-height:1.45}.leave-time-band small{color:var(--primary);font-size:11px;font-weight:700;line-height:1.45}.leave-record-card.closed .leave-time-band small{color:var(--green)}.leave-record-meta{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:6px 12px;color:var(--text-2);font-size:11px}.leave-record-meta>span:not(.demo-label){display:inline-flex;align-items:center;min-height:24px}.leave-extension-history{grid-column:1 / -1;padding:11px 13px;border-radius:10px;background:var(--surface-2)}.leave-extension-history summary{color:var(--primary);font-size:11px;font-weight:700;cursor:pointer}.leave-extension-history ol{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:8px}.leave-extension-history li{display:grid;grid-template-columns:106px minmax(0,1fr);gap:3px 10px;color:var(--text-2);font-size:11px}.leave-extension-history li time{color:var(--text-3);font-variant-numeric:tabular-nums}.leave-extension-history li small{grid-column:2;color:var(--text-3)}.leave-record-actions{min-width:0;display:flex;justify-content:flex-end;align-items:center;gap:8px}.extend-leave-button{color:var(--orange);border-color:color-mix(in srgb,var(--orange) 30%,var(--border))}.close-leave-button{min-width:104px}.return-confirm-copy{display:flex;gap:13px;padding:14px;border-radius:12px;color:var(--green);background:var(--green-soft)}.return-confirm-copy p{margin:4px 0 0;color:var(--text-2)}.extension-summary{display:flex;gap:13px;padding:14px;border-radius:12px;color:var(--orange);background:var(--orange-soft)}.extension-summary p{margin:4px 0 0;color:var(--text-2)}.module-toggles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.module-toggles label{min-height:54px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);border-radius:11px;color:var(--text-2);cursor:pointer}.module-toggles label.selected{border-color:color-mix(in srgb,var(--primary) 42%,var(--border));background:var(--primary-soft);color:var(--primary);font-weight:700}.module-toggles input{position:absolute;opacity:0;pointer-events:none}.profile-tabs{margin-top:18px}.profile-timeline-section{margin-top:14px}.profile-timeline-section>header{display:flex;align-items:end;justify-content:space-between;gap:12px}.profile-timeline-section>header h3{margin:0}.profile-timeline-section>header p{margin:4px 0 0;color:var(--text-2);font-size:12px}.timeline-filters{display:flex;gap:6px;overflow-x:auto;padding:14px 0 10px;scrollbar-width:none}.timeline-filters::-webkit-scrollbar{display:none}.timeline-filters button{flex:0 0 auto;min-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text-2);cursor:pointer}.timeline-filters button.active{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft);font-weight:700}.student-timeline{position:relative;display:grid}.student-timeline:before{content:"";position:absolute;top:22px;bottom:22px;left:77px;width:1px;background:var(--border)}.timeline-row{position:relative;width:100%;min-height:82px;padding:13px 4px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);display:grid;grid-template-columns:62px 18px minmax(0,1fr) auto;align-items:start;gap:8px;text-align:left;cursor:pointer}.timeline-row:hover{background:var(--surface-hover)}.timeline-row:active{transform:scale(.995)}.timeline-row time{padding-top:4px;color:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}.timeline-marker{z-index:1;width:9px;height:9px;margin:6px auto 0;border:2px solid var(--surface);border-radius:50%;background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.timeline-row.pending .timeline-marker,.timeline-row.warning .timeline-marker{background:var(--orange);box-shadow:0 0 0 1px var(--orange)}.timeline-row.done .timeline-marker{background:var(--green);box-shadow:0 0 0 1px var(--green)}.timeline-row>div:nth-of-type(1){min-width:0}.timeline-row>div:nth-of-type(1)>span{color:var(--text-3);font-size:11px}.timeline-row strong{display:block;margin-top:3px;line-height:1.45}.timeline-row p{margin:4px 0 0;color:var(--text-2);font-size:12px;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.timeline-row-meta{min-height:38px;display:flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--text-3)}.timeline-row-meta>span:not(.status-chip){display:inline-flex;align-items:center;gap:2px}.timeline-detail{margin:12px 0 0 88px;padding:14px;border-radius:12px;background:var(--surface-2)}.timeline-detail header{display:flex;align-items:start;justify-content:space-between;gap:12px}.timeline-detail header span,.timeline-detail small{color:var(--text-3);font-size:11px}.timeline-detail h4{margin:3px 0 0}.timeline-detail p{color:var(--text-2);line-height:1.6}.profile-timeline-empty{min-height:180px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--text-3);text-align:center}.profile-timeline-empty strong{color:var(--text)}.profile-timeline-empty p{margin:0}.conversation-form{gap:18px}.key-points-editor{display:grid;gap:8px}.key-points-editor>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-points-editor header p{margin:3px 0 0;color:var(--text-2);font-size:12px}.key-points-editor>div{display:grid;grid-template-columns:28px minmax(0,1fr) repeat(3,38px);gap:5px;align-items:center}.key-points-editor>div>span{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:11px;font-weight:750}.recorder-panel{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.recorder-panel>div:first-child{display:flex;align-items:center;gap:10px}.recorder-panel>div:first-child p{margin:3px 0 0;color:var(--text-2);font-size:12px;font-variant-numeric:tabular-nums}.recording-dot{width:12px;height:12px;border-radius:50%;background:var(--text-3)}.recorder-panel.recording .recording-dot{background:var(--red);box-shadow:0 0 0 5px color-mix(in srgb,var(--red) 15%,transparent)}.recorder-panel audio,.saved-audio audio{width:100%}.saved-audio{padding-top:10px;border-top:1px solid var(--border);display:grid;gap:8px}.saved-audio>div{display:flex;justify-content:space-between;gap:10px}.saved-audio small{color:var(--text-3)}.follow-up-panel{padding:14px;border-radius:13px;background:var(--primary-soft);display:grid;gap:12px}.file-picker{width:max-content}.leave-photo-picker{width:max-content;min-height:42px;padding:0 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;cursor:pointer}.leave-photo-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.leave-file-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.leave-file-list span{max-width:220px;padding:5px 8px;border-radius:7px;background:var(--surface-2);color:var(--text-2);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-tabs{grid-template-columns:repeat(5,minmax(100px,1fr))}.classwork-hub{display:grid;gap:16px}.classwork-module-strip{display:flex;gap:7px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:none}.classwork-module-strip::-webkit-scrollbar{display:none}.classwork-module-strip button{min-width:150px;min-height:66px;padding:10px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.classwork-module-strip button.active{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft);color:var(--primary)}.classwork-module-strip button span{min-width:0;display:grid;gap:3px}.classwork-module-strip small{color:var(--text-3);font-size:10px}.classwork-heading{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px}.classwork-heading>div{display:flex;align-items:center;gap:10px}.classwork-heading h2,.classwork-heading p{margin:0}.classwork-heading p{margin-top:3px;color:var(--text-2);font-size:12px}.homework-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:14px;align-items:start}.homework-tasks>header,.homework-followups>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border)}.homework-tasks>header h3,.homework-followups>header h3{margin:0}.homework-tasks>header span,.homework-followups>header span{color:var(--text-3);font-size:12px}.homework-tasks>article{padding:15px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.homework-tasks>article:last-child{border-bottom:0}.homework-tasks article>div:first-child>span,.module-record-list article>div>span{color:var(--primary);font-size:11px;font-weight:750}.homework-tasks article strong{display:block;margin-top:3px}.homework-tasks article p{margin:5px 0 0;color:var(--text-2);font-size:12px}.homework-tasks dl{display:flex;gap:6px;margin:0}.homework-tasks dl div{min-width:62px;padding:7px;border-radius:8px;background:var(--surface-2);display:grid;gap:2px;text-align:center}.homework-tasks dl dt{color:var(--text-3);font-size:9px}.homework-tasks dl dd{margin:0;font-weight:800}.homework-tasks dl .warning{color:var(--orange)}.homework-tasks .row-actions{grid-column:1 / -1}.homework-followups{position:sticky;top:88px}.homework-followups>article{padding:13px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.homework-followups article p{margin:4px 0;color:var(--text-2);font-size:12px}.homework-followups article small{color:var(--text-3);font-size:10px}.homework-performance-form{max-height:min(78dvh,820px)}.homework-batch-bar{display:grid;grid-template-columns:minmax(180px,1fr) 150px auto;gap:8px}.homework-select-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-2);font-size:12px}.homework-select-tools label{display:flex;align-items:center;gap:6px}.homework-student-matrix{min-height:140px;max-height:42dvh;overflow:auto;padding:3px;display:grid;gap:6px}.homework-student-matrix>article{min-height:54px;padding:7px;border:1px solid var(--border);border-radius:10px;display:grid;grid-template-columns:minmax(125px,.8fr) 130px minmax(150px,1fr) auto;align-items:center;gap:7px}.homework-student-matrix>article.selected{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));background:var(--primary-soft)}.homework-student-matrix .input{min-height:38px;padding:6px 8px}.homework-student-name{min-width:0;display:flex;align-items:center;gap:8px}.homework-student-name span{min-width:0;display:grid;gap:2px}.homework-student-name small{color:var(--text-3);font-size:9px}.homework-followup-check{display:grid;place-items:center;gap:2px;color:var(--text-2);font-size:9px}.followup-history{max-height:150px;overflow:auto;padding:11px;border-radius:10px;background:var(--surface-2)}.followup-history p{margin:6px 0 0;color:var(--text-2);font-size:11px;line-height:1.45}.followup-history time{color:var(--text-3);font-variant-numeric:tabular-nums}.module-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.module-summary-strip>div{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.module-summary-strip span,.module-summary-strip small{color:var(--text-3);font-size:10px}.module-summary-strip strong{display:inline-block;margin:5px 4px 0 0;font-size:23px;font-variant-numeric:tabular-nums}.module-summary-strip .attention{border-color:color-mix(in srgb,var(--orange) 28%,var(--border));background:var(--orange-soft);color:var(--orange)}.module-record-list>article{min-height:82px;padding:13px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.module-record-list article strong{display:block;margin:3px 0}.module-record-list article p,.module-record-list article small{color:var(--text-2);margin:0;font-size:12px}.after-service-history>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.after-service-history header h3,.after-service-history header p{margin:0}.after-service-history header p{margin-top:5px;color:var(--text-2)}.after-service-history>div{margin-top:14px;display:grid}.after-service-history article{padding:12px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:12px}.optional-module-toggles label{justify-content:flex-start;padding:8px 11px}.optional-module-toggles label>span{display:grid;gap:2px}.optional-module-toggles small{color:var(--text-3);font-size:10px}.layout-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.layout-summary p,.classroom-layout-editor p{margin:4px 0 0;color:var(--text-2);font-size:12px;line-height:1.5}.classroom-layout-editor{padding:14px;border-radius:13px;background:var(--surface-2);display:grid;gap:14px}.aisle-toggles,.seating-participants{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.seating-participants{max-height:168px;overflow-y:auto;padding:2px 4px 2px 2px;align-content:flex-start;scrollbar-width:thin}.aisle-toggles label,.seating-participants label{min-height:36px;padding:0 10px;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;gap:6px;cursor:pointer}.aisle-toggles label.selected,.seating-participants label.selected{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--primary)}.independent-seat-editor{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface);display:grid;gap:8px}.independent-seat-editor>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.independent-seat-editor>article{display:grid;grid-template-columns:minmax(120px,1fr) 130px minmax(150px,1fr) auto auto;align-items:center;gap:7px}.independent-seat-editor .input{min-height:38px;padding:6px 8px}.independent-seat-editor article>label{display:flex;align-items:center;gap:4px;font-size:11px}.layout-mode-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.layout-mode-actions p{flex:1 1 240px}.structured-issues{display:grid;gap:8px;margin-top:12px}.structured-issues article{padding:10px 12px;border-radius:10px;background:var(--orange-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}.structured-issues article p{margin:3px 0 0;color:var(--text-2);font-size:11px}.seat-board button.special{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--orange) 42%,transparent)}.special-seat-label{color:var(--orange);font-size:9px;font-weight:750}.seat-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:16px;color:var(--text-2);font-size:11px}.seat-legend span{display:inline-flex;align-items:center;gap:5px}.seat-legend i{width:14px;height:14px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2)}.seat-legend i.fixed-empty{background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 3px,var(--border) 3px,var(--border) 5px)}.seat-legend i.special{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--orange) 42%,transparent)}.backup-preflight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0}.backup-preflight>div{padding:10px;border-radius:10px;background:var(--surface-2);display:grid;gap:3px}.backup-preflight span{color:var(--text-3);font-size:10px}.backup-preflight strong{font-variant-numeric:tabular-nums}.backup-preflight .warning{color:var(--orange);background:var(--orange-soft)}.restore-checkpoint{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:12px}.restore-checkpoint p{margin:4px 0 0;color:var(--text-2);font-size:11px}@media(max-width:1180px){.app-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.desktop-status{display:none}.camera-fab{right:24px}}@media(min-width:768px)and (max-width:1040px){.today-grid{display:flex;flex-direction:column}.today-grid>.surface{width:100%}}@media(max-width:767px){body{font-size:14px}.access-page{grid-template-columns:1fr;min-height:100svh}.access-intro{padding:28px 22px;gap:28px;min-height:36svh}.access-intro h1{font-size:37px}.access-intro>div>p:last-child{font-size:15px;margin-top:14px}.access-promise{gap:14px;flex-wrap:wrap}.access-panel{width:100%;padding:28px 22px calc(28px + env(safe-area-inset-bottom))}.app-shell{display:block;min-height:100svh}.desktop-sidebar,.desktop-status{display:none}.workspace{min-height:100svh}.topbar{min-height:58px;padding:7px 12px 7px 16px}.topbar>div{gap:8px}.class-switcher-trigger{max-width:calc(100vw - 104px);min-height:38px}.class-switcher-menu{left:-8px}.sync-brief{display:none}.mobile-settings{display:inline-grid}.page-content{padding:20px 14px calc(94px + env(safe-area-inset-bottom));gap:16px}.site-legal{margin-top:-54px;padding:0 14px calc(78px + env(safe-area-inset-bottom));font-size:10px}.page-heading{min-height:68px}.page-heading .button{padding:0 13px}.daily-heading{align-items:stretch;flex-direction:column}.daily-heading h1{font-size:36px}.daily-heading>.row-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.daily-heading>.row-actions .button{min-width:0;padding:0 7px}.surface{padding:16px;border-radius:14px;box-shadow:none}.today-hero{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date status" "title title" "description description";align-items:center;column-gap:16px;row-gap:8px;padding:4px 2px 0}.today-intro{display:contents}.today-intro>p{grid-area:date;margin:0}.today-hero h1{grid-area:title;max-width:none;font-size:34px;line-height:1.08}.today-intro>span{grid-area:description;margin-top:0;font-size:12px}.today-status{grid-area:status;min-width:0;display:flex;align-items:baseline;justify-content:flex-end;gap:5px;padding:0;border-left:0}.today-status strong{font-size:20px;letter-spacing:-.03em}.today-status span{margin-top:0}.countdown-strip{margin-inline:-14px;padding-inline:14px;scroll-snap-type:x proximity}.countdown-strip article,.countdown-empty{min-width:min(292px,calc(100vw - 48px));scroll-snap-align:start}.today-grid{display:flex;flex-direction:column;gap:14px}.today-primary-card{order:2;padding:16px}.today-course-card{order:1}.dynamics-card{order:3;padding:16px}.smart-add{position:relative;grid-template-columns:repeat(2,minmax(0,1fr));padding:7px}.smart-add input{grid-column:1 / -1;min-height:42px;padding:0 46px 0 8px}.smart-add>.icon-button{position:absolute;top:7px;right:7px}.smart-add .smart-review,.smart-add .button.primary{grid-column:auto;width:100%}.smart-add .smart-review{grid-column:1}.smart-add .button.primary{grid-column:2;padding-inline:10px}.smart-add .button svg{display:none}.dynamics-metrics button{min-height:78px}.dynamics-metrics strong{font-size:24px}.manager-tabs{margin-inline:-2px}.manager-split{grid-template-columns:1fr}.compact-form{position:static}.weekly-board article{min-height:55px}.service-checkin-card{grid-template-columns:auto minmax(0,1fr);padding:16px}.service-checkin-card .button{grid-column:1 / -1;width:100%}.service-summary{grid-template-columns:1fr}.leave-month-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.leave-month-summary>div{min-height:82px;padding:11px}.leave-record-card{padding:16px;grid-template-columns:1fr;gap:13px}.leave-record-card>*{grid-column:1}.leave-record-header{grid-row:auto}.leave-time-band{padding:12px}.leave-time-band strong{font-size:13px}.leave-extension-history li{grid-template-columns:1fr}.leave-extension-history li small{grid-column:1}.leave-record-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:6px}.leave-record-actions .button{width:100%;min-width:0;padding-inline:8px}.leave-record-card.closed .leave-record-actions .icon-button{grid-column:4}.module-toggles{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-nav{position:fixed;z-index:10;left:0;right:0;bottom:0;min-height:calc(62px + env(safe-area-inset-bottom));padding:5px 8px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border)}.mobile-nav button{min-height:52px;border:0;background:transparent;color:var(--text-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;cursor:pointer}.mobile-nav button.active{color:var(--primary)}.metric-grid{gap:8px}.metric{min-height:96px;padding:12px}.metric strong{font-size:24px}.segmented{overflow-x:auto;grid-template-columns:repeat(4,minmax(80px,1fr))}.todo-row{grid-template-columns:32px minmax(0,1fr)}.todo-row>.row-actions{grid-column:2;justify-self:end;margin-top:-4px}.quick-add{grid-template-columns:minmax(0,1fr) 44px}.quick-add .button{grid-column:1 / -1;width:100%}.student-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row{grid-template-columns:auto minmax(0,1fr) auto}.record-row>.icon-button{grid-column:3}.record-row>.status-chip,.record-row>b{grid-column:3;grid-row:1}.record-row>.icon-button{grid-row:2}.trace-grid{grid-template-columns:1fr}.trace-card{grid-template-columns:105px minmax(0,1fr)}.camera-fab{right:16px;bottom:calc(76px + env(safe-area-inset-bottom));width:52px;padding:0;justify-content:center;border-radius:16px}.camera-fab span{display:none}.student-toolbar,.filter-bar{align-items:stretch;flex-direction:column}.student-toolbar .row-actions{display:grid;grid-template-columns:1fr 1fr}.inline-select{width:100%}.student-row{grid-template-columns:auto minmax(0,1fr) auto;padding:7px 0}.student-row .demo-label{display:none}.profile-metrics{grid-template-columns:repeat(3,1fr)}.form-grid.two,.form-grid.three,.form-grid.four,.exam-layout{grid-template-columns:1fr}.exam-list{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-list .section-header{grid-column:1 / -1}.subject-stat-card{grid-template-columns:70px minmax(80px,1fr) auto}.subject-stats dl{grid-column:1 / -1}.modal-backdrop{padding:0;place-items:end center}.modal-sheet,.modal-sheet.modal-wide{width:100%;max-height:calc(100svh - 18px);border-radius:18px 18px 0 0;border-bottom:0}.modal-body{padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.settings-layout{grid-template-columns:1fr;min-height:0}.settings-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border);padding:0 0 10px}.settings-nav button{white-space:nowrap;padding:0 12px}.settings-content{padding:18px 0 0}.conflict-compare{grid-template-columns:1fr}.backup-preview dl{grid-template-columns:repeat(3,1fr)}.toast{bottom:calc(78px + env(safe-area-inset-bottom))}.students-home{padding-top:14px}.student-page-heading{min-height:56px;align-items:center}.student-page-heading h1{font-size:36px}.student-page-heading p{margin-top:4px}.student-search{position:sticky;top:58px;z-index:4;min-height:48px;margin-inline:-2px;box-shadow:0 8px 20px color-mix(in srgb,var(--bg) 85%,transparent)}.student-quick-tools{gap:4px}.student-quick-tools button{min-height:82px;padding:10px 3px;box-shadow:none}.student-quick-tools button span{font-size:12px}.student-directory .student-list{padding:5px 35px 5px 14px}.alphabet-rail{top:118px;margin-right:5px}.alphabet-rail a{min-height:17px;font-size:10px}.student-letter-group .student-row{padding:9px 0}.student-row-copy small{max-width:calc(100vw - 142px)}.all-tools-grid{grid-template-columns:1fr}.student-photo-editor{grid-template-columns:auto minmax(0,1fr)}.student-photo-editor .button{grid-column:1 / -1;width:100%}.student-profile-head{align-items:flex-start;flex-wrap:wrap}.student-profile-head>.row-actions{margin-left:auto}.profile-columns{grid-template-columns:1fr}.import-file-card{grid-template-columns:auto minmax(0,1fr)}.import-file-card .field{grid-column:1 / -1}.import-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-tool-page{padding:16px 14px calc(92px + env(safe-area-inset-bottom))}.tool-page-header{grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.tool-page-header h1{font-size:27px}.tool-page-header p{font-size:12px;line-height:1.45}.tool-page-header>.button.primary,.tool-page-header>.row-actions{grid-column:1 / -1;width:100%}.tool-page-header>.row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tool-page-header>.row-actions .button:last-of-type{grid-column:1 / -1}.group-board,.intervention-grid{grid-template-columns:1fr}.group-column header{grid-template-columns:minmax(0,1fr) 150px}.seating-controls{grid-template-columns:1fr}.seat-generate-actions{display:grid;grid-template-columns:1fr}.seat-capacity{grid-template-columns:repeat(3,minmax(0,1fr))}.seat-capacity>p{grid-column:1 / -1}.seat-warning{grid-template-columns:auto minmax(0,1fr)}.seat-warning .button{grid-column:1 / -1;width:100%}.seating-layout{grid-template-columns:1fr}.unassigned-panel{position:static;max-height:none}.unassigned-panel>div{grid-template-columns:repeat(3,minmax(0,1fr))}.unassigned-panel article{grid-template-columns:minmax(0,1fr)}.unassigned-panel article>label{min-height:28px;border-left:0;border-top:1px solid var(--border);display:flex}.unassigned-panel button small{max-width:100%;overflow:hidden;text-overflow:ellipsis}.seat-board-wrap{margin-inline:-14px;border-radius:0}.seat-board{min-width:max(620px,calc(var(--seat-columns, 8) * 70px))}.seating-profile-layout,.seating-relations-layout{grid-template-columns:1fr}.profile-student-list{position:static;max-height:240px}.profile-student-list>div{grid-template-columns:repeat(2,minmax(0,1fr))}.seating-profile-editor>header{flex-direction:column}.seating-profile-editor>header .button{width:100%}.relation-list article{grid-template-columns:minmax(0,1fr) auto auto}.relation-list article>div{grid-column:1 / -1}.priority-editor article{grid-template-columns:auto minmax(0,1fr) auto}.priority-editor article .input{grid-column:2 / -1;width:100%}.priority-actions{grid-column:3;grid-row:1}.hard-rule{grid-column:2 / -1}.exams-page .exam-layout{grid-template-columns:1fr}.exam-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.exam-list .section-header{min-width:100%}.exam-list>button{min-width:220px;scroll-snap-align:start}.exam-detail{padding:14px}.exam-detail>.section-header{align-items:flex-start;flex-direction:column}.exam-detail>.section-header .row-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto}.exam-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-stat-card{grid-template-columns:64px minmax(80px,1fr) auto}.subject-stat-card dl{grid-column:1 / -1}.subject-stat-card>svg{grid-column:3;grid-row:1}.rank-change-columns{grid-template-columns:1fr}.trend-timeline article{grid-template-columns:74px minmax(0,1fr) auto;gap:8px}.subject-detail-header{grid-template-columns:1fr}.subject-detail-header>.button{width:max-content}.score-mode{width:100%}.subject-overview-heading{align-items:stretch;flex-direction:column}.subject-overview-heading label{min-width:0}.subject-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subject-metric-grid>div,.subject-metric-grid>button{min-height:86px;padding:10px}.subject-metric-grid strong{font-size:19px}.subject-roster-toolbar{grid-template-columns:1fr}.subject-table-wrap{display:none}.subject-student-cards{display:grid;gap:8px}.subject-student-cards>button{width:100%;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.subject-student-cards header{display:flex;justify-content:space-between;align-items:start;gap:8px}.subject-student-cards header>div{display:grid;gap:3px}.subject-student-cards header small{color:var(--text-3)}.subject-student-cards>button>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:12px 0}.subject-student-cards span{min-width:0;padding:7px;border-radius:8px;background:var(--surface-2);display:grid;gap:4px}.subject-student-cards span small{color:var(--text-3);font-size:9px;white-space:nowrap}.subject-student-cards span b{overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.subject-student-cards>button>p{margin:0;color:var(--text-2);display:flex;justify-content:space-between;align-items:center}.subject-history-list article{grid-template-columns:72px minmax(0,1fr)}.subject-history-list article>b{grid-column:2}}@media(max-width:767px){.daily-tabs{grid-template-columns:repeat(5,minmax(82px,1fr))}.student-profile-head>.row-actions{width:100%;display:grid;grid-template-columns:1fr 1fr auto}.student-profile-head>.row-actions .button{padding-inline:10px}.profile-tabs{grid-template-columns:repeat(3,minmax(90px,1fr))}.student-timeline:before{left:47px}.timeline-row{grid-template-columns:35px 14px minmax(0,1fr);gap:6px}.timeline-row time{font-size:9px}.timeline-row-meta{grid-column:3;justify-content:flex-start;min-height:24px}.timeline-detail{margin-left:0}.key-points-editor>div{grid-template-columns:26px minmax(0,1fr) repeat(3,34px)}.recorder-panel .row-actions{display:grid;grid-template-columns:1fr 1fr}.recorder-panel .row-actions .button{width:100%;padding-inline:8px}.classwork-module-strip{margin-inline:-14px;padding-inline:14px}.classwork-module-strip button{min-width:140px}.classwork-heading{align-items:stretch;flex-direction:column}.classwork-heading .button{width:100%}.homework-layout{grid-template-columns:1fr}.homework-followups{position:static}.homework-tasks>article{grid-template-columns:1fr}.homework-tasks dl{grid-row:2}.homework-tasks .row-actions{display:grid;grid-template-columns:1fr 1fr auto}.homework-batch-bar{grid-template-columns:1fr 1fr}.homework-batch-bar>:first-child{grid-column:1 / -1}.homework-student-matrix>article{grid-template-columns:minmax(0,1fr) 112px auto}.homework-student-matrix>article>.input[type=text]{grid-column:1 / -1}.module-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.module-summary-strip>div{padding:9px}.after-service-history article{grid-template-columns:74px minmax(0,1fr)}.after-service-history article span{grid-column:2}.layout-summary{align-items:flex-start;flex-direction:column}.layout-summary .button{width:100%}.layout-mode-actions{display:grid;grid-template-columns:1fr}.independent-seat-editor>header{align-items:flex-start;flex-direction:column}.independent-seat-editor>header .row-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.independent-seat-editor>article{grid-template-columns:minmax(0,1fr) auto}.independent-seat-editor>article>.input{grid-column:1 / -1;width:100%}.restore-checkpoint{align-items:stretch;flex-direction:column}.restore-checkpoint .button{width:100%}.structured-issues article{align-items:flex-start;flex-direction:column}.structured-issues .button{width:100%}.backup-preflight{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}@media print{body{background:#fff;color:#111;font-size:10pt}.desktop-sidebar,.desktop-status,.topbar,.mobile-nav,.no-print,.toast{display:none!important}.app-shell,.workspace,.page-scroll,.student-tool-page{display:block;min-height:0;max-width:none;width:100%;padding:0;margin:0}.surface,.print-surface{border:0;box-shadow:none;padding:0}.seat-board-wrap{overflow:visible}.seat-board{min-width:0;gap:5mm}.seat-board button{min-height:18mm;border:1px solid #777;break-inside:avoid}.data-table{font-size:8pt}.data-table thead{display:table-header-group}.data-table tr{break-inside:avoid}}
