:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--foreground);background:var(--background);font-synthesis:none;--background:#15191c;--foreground:#edf3f0;--card:#1e2428;--card-foreground:#edf3f0;--primary:#4fc2a1;--primary-foreground:#0c211b;--muted:#293036;--muted-foreground:#a3b1ab;--accent:#263a35;--accent-foreground:#dff8ef;--border:#394349;--border-strong:#4a565d;--ring:#75dfc1;--status-success:#53c99e;--status-success-bg:#17352c;--status-warning:#e5b866;--status-warning-bg:#3b2e18;--status-danger:#ef8e8e;--status-danger-bg:#3d2023;--status-info:#7fc8e8;--status-info-bg:#19313b;--sidebar:#101416;--sidebar-foreground:#dbe7e2;--sidebar-muted:#91a29b;--sidebar-accent:#1d332d;--sidebar-hover:#182d27;--sidebar-active:#205043;--sidebar-active-foreground:#f1fff9;--overlay:#040708b8;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--shadow-xs:0 1px 2px #00000038;--shadow-sm:0 6px 18px #0000002e;--motion-fast:.16s;--color-page:var(--background);--color-surface:var(--card);--color-surface-muted:var(--muted);--color-surface-accent:var(--accent);--color-text:var(--foreground);--color-text-muted:var(--muted-foreground);--color-border:var(--border);--color-border-strong:var(--border-strong);--color-primary:var(--primary);--color-primary-hover:#72d8ba;--color-primary-soft:var(--accent);--color-primary-soft-foreground:var(--accent-foreground);--color-success:var(--status-success);--color-success-soft:var(--status-success-bg);--color-warning:var(--status-warning);--color-warning-soft:var(--status-warning-bg);--color-danger:var(--status-danger);--color-danger-hover:#ffabab;--color-danger-soft:var(--status-danger-bg);--color-focus:var(--ring);--color-sidebar:var(--sidebar);--color-sidebar-text:var(--sidebar-foreground);--color-sidebar-muted:var(--sidebar-muted);--color-overlay:var(--overlay);--color-attendance-alert:#f1a078;--color-attendance-alert-soft:#3b251d;--color-attendance-leave:#b9a9ef;--color-attendance-leave-soft:#29243d;--color-chart-primary:var(--primary);--color-chart-secondary:#a99de2;--color-chart-alert:#e3a56f;font-family:Microsoft YaHei,PingFang SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#edf1ef;--foreground:#202a27;--card:#fff;--card-foreground:#202a27;--primary:#19745f;--primary-foreground:#fff;--muted:#f2f5f3;--muted-foreground:#61706a;--accent:#e1eee9;--accent-foreground:#184f42;--border:#d2ddd8;--border-strong:#b8c8c1;--ring:#126d59;--status-success:#1f7459;--status-success-bg:#dcefe7;--status-warning:#8a5713;--status-warning-bg:#fff1d7;--status-danger:#a23f44;--status-danger-bg:#fbe9ea;--status-info:#226a88;--status-info-bg:#e2f1f7;--sidebar:#f8fbf9;--sidebar-foreground:#1b3129;--sidebar-muted:#526961;--sidebar-accent:#e2f0ea;--sidebar-hover:#edf5f2;--sidebar-active:#d6ebe2;--sidebar-active-foreground:#124f3f;--overlay:#0b121070;--color-primary-hover:#105d4b;--color-attendance-alert:#934328;--color-attendance-alert-soft:#fff0e8;--color-attendance-leave:#625286;--color-attendance-leave-soft:#f4f0ff}*{box-sizing:border-box}html{background:var(--color-page)}body{background:var(--color-page);min-width:320px;min-height:100vh;color:var(--color-text);margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button,.file-button{border:1px solid var(--color-border);background:var(--color-surface);min-height:42px;color:var(--color-text);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;padding:.62rem .9rem}button:hover,.file-button:hover{border-color:var(--color-primary);background:var(--color-surface-muted);color:var(--color-primary-hover)}.file-button:focus-within{outline:3px solid color-mix(in srgb, var(--color-focus) 38%, transparent);outline-offset:2px}button:focus-visible{outline:3px solid color-mix(in srgb, var(--color-focus) 38%, transparent);outline-offset:2px}button:disabled{background:var(--muted);color:var(--muted-foreground);border-color:var(--border-strong);opacity:1;cursor:not-allowed;pointer-events:none}.file-button:has(input:disabled){background:var(--muted);color:var(--muted-foreground);border-color:var(--border-strong);opacity:1;cursor:not-allowed;pointer-events:none}button.primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);font-weight:750}button.primary:hover{background:var(--color-primary-hover);color:var(--primary-foreground);border-color:var(--color-primary-hover)}button.primary:disabled{background:var(--muted);color:var(--muted-foreground);border-color:var(--border-strong)}button.danger{background:var(--color-danger);color:#17191b;border-color:var(--color-danger)}button.danger:hover{background:var(--color-danger-hover);color:#17191b;border-color:var(--color-danger-hover)}button.danger-text{color:var(--color-danger);background:0 0;border-color:#0000}button.danger-text:hover{color:var(--color-danger-hover);background:var(--color-danger-soft)}button.wide{width:100%}input,select,textarea{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:var(--radius-md);outline:none;padding:.7rem .75rem}input:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 16%, transparent)}select:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 16%, transparent)}textarea:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 16%, transparent)}textarea{resize:vertical;line-height:1.55}label{color:var(--color-text);gap:.4rem;font-size:.9rem;font-weight:650;display:grid}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.02em;margin-bottom:0;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1.25}h2{margin-bottom:.55rem;font-size:clamp(1.08rem,1.6vw,1.38rem);line-height:1.35}h3{margin-bottom:.5rem;font-size:1rem;line-height:1.4}p{line-height:1.65}strong,td,th,.mini-card span,.workspace-warnings li{overflow-wrap:anywhere}.eyebrow{color:var(--color-primary);letter-spacing:.11em;margin:0 0 .35rem;font-size:.73rem;font-weight:800}.muted{color:var(--color-text-muted)}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--color-sidebar);height:100vh;color:var(--sidebar-foreground);z-index:20;flex-direction:column;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid color-mix(in srgb, var(--sidebar-foreground) 18%, transparent);align-items:center;gap:.75rem;padding:.2rem .4rem 1.15rem;display:flex}.brand>span:last-child{display:grid}.brand small{color:var(--color-sidebar-muted);margin-top:.12rem;font-size:.72rem}.brand-mark{border-radius:var(--radius-lg);background:var(--primary);width:54px;height:54px;color:var(--primary-foreground);box-shadow:var(--shadow-xs);place-items:center;font-size:1.5rem;font-weight:900;display:grid}.brand-mark.small{border-radius:var(--radius-md);flex:none;width:40px;height:40px;font-size:1.08rem}.sidebar nav{gap:.3rem;margin-top:1rem;display:grid}.sidebar nav button{width:100%;color:var(--color-sidebar-text);text-align:left;background:0 0;border:0;align-items:center;gap:.8rem;display:flex}.sidebar nav button span{text-align:center;width:22px;font-size:1.05rem}.sidebar nav button:hover{color:var(--sidebar-active-foreground);background:var(--sidebar-hover)}.sidebar nav button.active{color:var(--sidebar-active-foreground);background:var(--sidebar-active);box-shadow:inset 3px 0 var(--primary)}.sidebar nav button:focus-visible{outline-color:var(--ring);outline-width:3px;outline-style:solid}.local-note{border:1px solid color-mix(in srgb, var(--sidebar-foreground) 16%, transparent);border-radius:var(--radius-md);background:var(--sidebar-hover);color:var(--sidebar-foreground);gap:.25rem;margin-top:auto;padding:.8rem;font-size:.78rem;display:grid}.local-note span{color:var(--color-sidebar-muted)}.workspace,.page,.panel,.toolbar-panel,.hero-panel,.report-sheet{min-width:0}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--card) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:15;justify-content:space-between;align-items:center;gap:.8rem;min-height:68px;padding:.7rem clamp(1rem,2.2vw,1.6rem);display:flex;position:sticky;top:0}.update-banner{border:1px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text);align-items:flex-start;gap:.75rem;margin:1rem clamp(1rem,3vw,2.2rem) 0;padding:.8rem 1rem;display:flex}.update-banner strong{color:var(--color-warning);flex:none}.top-actions,.button-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.privacy-pill,.tag{background:var(--color-primary-soft);color:var(--color-primary-soft-foreground);border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .68rem;font-size:.78rem;font-weight:750;display:inline-flex}.privacy-badge{border:1px solid color-mix(in srgb, var(--color-warning) 28%, var(--color-border));border-radius:var(--radius-sm);background:var(--color-warning-soft);width:-moz-fit-content;width:fit-content;color:var(--color-warning);align-items:center;gap:.35rem;padding:.4rem .65rem;font-size:.78rem;font-weight:750;display:inline-flex}.privacy-badge:before{content:"!";background:var(--color-warning);width:1.2rem;height:1.2rem;color:var(--color-surface);border-radius:50%;flex:none;place-items:center;font-size:.72rem;display:inline-grid}.tag.gray{background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border)}.page{max-width:1600px;margin:0 auto;padding:clamp(.85rem,2vw,1.5rem)}.panel,.toolbar-panel,.hero-panel,.report-sheet{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.panel,.report-sheet{margin-bottom:.8rem;padding:clamp(.85rem,1.8vw,1.1rem)}.toolbar-panel{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;padding:.75rem 1rem;display:flex}.toolbar-panel h2{margin:0}.hero-panel{min-height:140px;color:var(--color-text);background:var(--color-surface-accent);justify-content:space-between;align-items:center;gap:1.4rem;margin-bottom:.8rem;padding:clamp(1.1rem,2.6vw,1.65rem);display:flex}.hero-panel h2{margin-bottom:.45rem;font-size:clamp(1.65rem,4vw,2.4rem)}.hero-panel p:last-child{max-width:680px;color:var(--color-text-muted);margin:0}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.8rem;display:grid}.metric-grid article{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:104px;box-shadow:var(--shadow-xs);align-content:center;gap:.22rem;padding:.9rem 1rem;display:grid}.metric-grid span,.metric-grid small{color:var(--color-text-muted)}.metric-grid strong{color:var(--color-primary);font-variant-numeric:tabular-nums;font-size:1.85rem;line-height:1.1}.metric-grid .warning-card{border-color:color-mix(in srgb, var(--color-warning) 35%, var(--color-border));background:var(--color-warning-soft)}.metric-grid .warning-card strong{color:var(--color-warning)}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;min-height:40px;margin-bottom:.9rem;display:flex}.section-heading h2,.section-heading h3{margin:0}.form-grid{gap:.8rem;margin-bottom:1rem;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three,.score-ceilings{grid-template-columns:repeat(3,minmax(0,1fr))}.score-ceilings{gap:.8rem;margin-top:1rem;display:grid}.score-config-heading{margin-top:1.2rem}.score-config-heading p{color:var(--color-text-muted);margin:.3rem 0 0}.score-rules{grid-template-columns:repeat(7,minmax(90px,1fr));gap:.65rem;display:grid}.score-table th small,.score-table td small{color:var(--color-text-muted);white-space:nowrap;margin-top:.25rem;display:block}.score-table input{width:86px;min-width:86px}.card-list{gap:.65rem;display:grid}.mini-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);justify-content:space-between;align-items:center;gap:1rem;min-height:66px;padding:.72rem .85rem;display:flex}.mini-card>div:first-child{gap:.25rem;display:grid}.mini-card span:not(.tag){color:var(--color-text-muted);font-size:.85rem}.chip-list{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.chip-list span{background:var(--color-primary-soft);border-radius:var(--radius-sm);padding:.42rem .65rem;font-size:.78rem}.file-button{align-items:center;font-size:.9rem;font-weight:400;display:inline-flex}.file-button input{display:none}.import-help{border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border);align-self:stretch;padding:1rem}.import-help p{color:var(--color-text-muted)}.preview-box,.success-box{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-success-soft);margin:1rem 0;padding:1rem}.error,.error-list,.negative{color:var(--color-danger)}.positive{color:var(--color-success)}.error-list{padding-left:1.3rem}.empty{min-height:105px;color:var(--color-text-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);place-items:center;display:grid}.table-scroll{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap;padding:.62rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--color-surface-muted)}th{background:var(--color-surface-accent);color:var(--color-text);z-index:1;font-size:.78rem;font-weight:750;position:sticky;top:0}td small{color:var(--color-text-muted);margin-top:.18rem;display:block}td button{min-height:34px;margin-right:.25rem;padding:.35rem .55rem}td select{min-width:100px;padding:.45rem}.attendance-editor table th:first-child,.attendance-editor table td:first-child{z-index:2;background:var(--color-surface);position:sticky;left:0}.attendance-editor table th:first-child{z-index:3;background:var(--color-surface-accent)}.note-input{min-width:130px;margin-top:.35rem;padding:.45rem}.status-缺勤,.status-迟到,.status-早退{color:var(--color-attendance-alert);background:var(--color-attendance-alert-soft)}.status-病假,.status-事假,.status-其他{color:var(--color-attendance-leave);background:var(--color-attendance-leave-soft)}.active-filter{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover)}.student-total{background:var(--color-surface-accent);border-radius:var(--radius-md);margin-top:1rem;padding:.9rem 1rem}.student-total strong{color:var(--color-primary);font-variant-numeric:tabular-nums;margin-left:.4rem;font-size:1.7rem}.revoked{opacity:.55;text-decoration:line-through}.draw-stage{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-accent);align-content:center;place-items:center;min-height:315px;padding:2rem;display:grid}.draw-stage p{color:var(--color-text-muted);margin-bottom:.4rem}.draw-stage strong{color:var(--color-primary);font-size:clamp(3rem,8vw,6.3rem);line-height:1.1}.draw-stage span{color:var(--color-text-muted);margin:.6rem 0 1.4rem}button.jumbo{min-width:210px;min-height:58px;font-size:1.12rem}.quick-score{justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}details{margin-top:1rem}summary{cursor:pointer;color:var(--color-primary);font-weight:700}.student-checks{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-top:1rem;display:grid}.student-checks label{background:var(--color-surface-muted);border-radius:var(--radius-sm);align-items:center;gap:.4rem;padding:.5rem;display:flex}.student-checks input{width:auto}.privacy-warning{border-left:4px solid var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning);margin:1rem 0 0;padding:.8rem}.capacity-warning{border:1px solid color-mix(in srgb, var(--color-warning) 42%, var(--color-border));border-radius:var(--radius-lg);background:var(--color-warning-soft);color:var(--color-text);flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:.8rem;padding:.7rem .8rem;display:flex}.capacity-warning strong{color:var(--color-warning)}.capacity-warning span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto}.report-sheet{background:var(--color-surface)}.report-heading{border-bottom:2px solid var(--color-text);margin-bottom:1rem;padding-bottom:1rem}.report-heading span,.report-heading p{color:var(--color-text-muted);font-size:.8rem}.report-heading h2{margin:.25rem 0;font-size:1.5rem}.backup-hero{background:var(--color-surface-accent)}.test-fixture{border-style:dashed;justify-content:space-between;align-items:center;gap:1rem;display:flex}.test-fixture p{color:var(--color-text-muted);margin-bottom:0}.toast{z-index:50;border-radius:var(--radius-md);background:var(--color-sidebar);max-width:min(440px,100vw - 2.4rem);color:var(--color-surface);box-shadow:var(--shadow-sm);animation:toast-in var(--motion-fast) ease-out;padding:.85rem 1rem;position:fixed;bottom:1.2rem;right:1.2rem}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.access-screen,.decision-screen{background:var(--color-page);place-items:center;min-height:100vh;padding:1rem;display:grid}.access-card,.decision-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(100%,520px);box-shadow:var(--shadow-sm);padding:clamp(1.35rem,4vw,2.1rem)}.decision-panel{width:min(100%,920px)}.access-card .brand-mark{margin-bottom:1.2rem}.access-form{gap:1rem;margin:1.25rem 0;display:grid}.access-footnote{color:var(--color-text-muted);margin:1.2rem 0 0;font-size:.8rem}.version-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.2rem 0;display:grid}.version-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);padding:1rem}.version-card dl{gap:.55rem;margin:1rem 0 0;display:grid}.version-card dl div{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:1rem;padding-bottom:.4rem;display:flex}.version-card dt{color:var(--color-text-muted)}.version-card dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.decision-exports{margin-bottom:1rem}.decision-actions{border-top:1px solid var(--color-border);padding-top:1rem}.sync-ok{background:var(--color-success-soft);color:var(--color-success)}.sync-notice{background:var(--color-warning-soft);color:var(--color-warning)}.status-compact,.nav-overlay,.menu-button{display:none}.workspace-context{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:1.5rem;display:grid}.workspace-context p:last-child{color:var(--color-text-muted);margin-bottom:0}.workspace-status{border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.workspace-status span{color:var(--color-text-muted);font-size:.85rem}.workspace-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.workspace-action,.workspace-warnings{flex-direction:column;align-items:stretch;min-height:210px;display:flex}.workspace-action>button,.workspace-warnings>button{margin-top:auto}.workspace-action>p:not(.eyebrow),.workspace-warnings>p:not(.eyebrow){color:var(--color-text-muted)}.workspace-action h2{font-size:clamp(1.4rem,3vw,2.1rem)}.preset-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:.65rem;display:grid}.preset-actions button{padding-inline-start:.45rem;padding-inline-end:.45rem}.workspace-warnings ul{gap:.4rem;margin:.2rem 0 1rem;padding:0;list-style:none;display:grid}.workspace-warnings li{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:.75rem;padding-bottom:.38rem;display:flex}.workspace-warnings li span{color:var(--color-warning)}.workspace-attendance{border-top:4px solid var(--color-primary)}.archived-workspace{border-left:4px solid var(--color-warning)}.profiles-page{min-width:0}.profile-privacy{margin:0 0 1rem}.profiles-page>.profile-privacy{border:1px solid color-mix(in srgb, var(--status-warning) 45%, var(--border));border-left:4px solid var(--status-warning);background:var(--status-warning-bg)}.profiles-layout{grid-template-columns:minmax(230px,270px) minmax(520px,1fr) minmax(200px,240px);align-items:start;gap:.8rem;display:grid}.profile-directory{grid-template-rows:auto auto auto auto minmax(120px,1fr);gap:.8rem;max-height:calc(100vh - 112px);display:grid;position:sticky;top:94px;overflow:hidden}.profile-filters{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);margin:0;padding:.65rem;overflow-y:auto}.profile-filters summary{margin-bottom:.55rem}.profile-filters label{margin-top:.55rem}.profile-filters button{width:100%;margin-top:.65rem}.profile-directory-list{overscroll-behavior:contain;align-content:start;gap:.35rem;min-height:0;display:grid;overflow-y:auto}.profile-directory-list button{text-align:left;gap:.18rem;min-height:54px;display:grid}.profile-directory-list button span{color:var(--color-text-muted);font-size:.78rem}.profile-directory-list button.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-soft-foreground)}.profile-directory-list button.active span{color:var(--color-primary-soft-foreground)}.profile-content{min-width:0}.profile-context-rail{position:sticky;top:86px}.profile-context-rail dl{gap:0;margin:.8rem 0;display:grid}.profile-context-rail dl div{border-bottom:1px solid var(--border);gap:.2rem;padding:.55rem 0;display:grid}.profile-context-rail dt{color:var(--muted-foreground);font-size:.72rem}.profile-context-rail dd{overflow-wrap:anywhere;margin:0;font-size:.84rem;font-weight:650}.profile-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.profile-header p:last-child{color:var(--color-text-muted);margin-bottom:0}.profile-tabs{scrollbar-width:thin;gap:.35rem;margin-bottom:1rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.profile-tabs button{flex:none}.profile-tabs button.active{color:var(--color-primary-soft-foreground);border-color:var(--color-primary);background:var(--color-primary-soft);font-weight:750}.profile-summary-grid{grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(150px,.75fr));gap:.8rem;display:grid}.profile-summary-grid>.panel{min-height:190px}.profile-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin:0;display:grid}.profile-stats div{background:var(--color-surface-muted);border-radius:var(--radius-sm);justify-content:space-between;gap:.25rem;padding:.38rem .42rem;font-size:.88rem;display:flex}.profile-stats dt{color:var(--color-text-muted);white-space:nowrap}.profile-stats dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:750}.profile-score{color:var(--color-primary);font-variant-numeric:tabular-nums;margin:1rem 0 .45rem;font-size:clamp(2.3rem,5vw,4rem);display:block}.profile-form{border-top:4px solid var(--color-primary)}.profile-form .privacy-warning{margin:0 0 1rem}.check-line{align-items:center;gap:.55rem;min-height:48px;display:flex}.check-line input{width:auto}.profile-records{gap:.7rem;display:grid}.profile-records>article{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);padding:.85rem 1rem}.profile-records>article.archived{opacity:.82;border-style:dashed}.profile-records article header{justify-content:space-between;gap:1rem;display:flex}.profile-records article header>div:first-child{gap:.25rem;display:grid}.profile-records article header span{color:var(--color-text-muted);font-size:.8rem}.profile-records article p:last-child{margin-bottom:0}.timeline-list{border-left:2px solid var(--color-border-strong);margin:1rem 0 0;padding:0 0 0 1.2rem;list-style:none;position:relative}.timeline-list li{padding:0 0 1.2rem 1rem;position:relative}.timeline-list li:before{content:"";border:2px solid var(--color-surface);background:var(--color-primary);width:.55rem;height:.55rem;box-shadow:0 0 0 1px var(--color-primary);border-radius:50%;position:absolute;top:.28rem;left:-1.48rem}.timeline-list time{color:var(--color-text-muted);font-size:.78rem;display:block}.timeline-list p{margin:.25rem 0 0}.tag.warning{background:var(--color-warning-soft);color:var(--color-warning)}.upgrade-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:1.25rem 0}.upgrade-summary article{min-height:100px}.onboarding-panel{max-width:900px}.onboarding-steps{gap:.7rem;margin:1.2rem 0;display:grid}.onboarding-steps article{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);grid-template-columns:42px minmax(0,1fr);gap:.85rem;padding:.9rem;display:grid}.onboarding-steps article>strong{background:var(--color-primary);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.onboarding-steps h2{margin:0 0 .25rem;font-size:1rem}.onboarding-steps p{color:var(--color-text-muted);margin:0}.onboarding-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.health-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.health-card{flex-direction:column;min-height:140px;display:flex}.health-card>span,.health-card>small{color:var(--color-text-muted)}.health-card>strong{font-variant-numeric:tabular-nums;margin:.4rem 0;font-size:clamp(1.3rem,3vw,2rem)}.health-card>small{margin-top:auto}.search-overlay{z-index:80;background:var(--color-overlay);place-items:center;padding:1rem;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.search-dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(1040px,100%);max-height:calc(100vh - 2rem);box-shadow:var(--shadow-sm);flex-direction:column;padding:clamp(1rem,2.5vw,1.4rem);display:flex;overflow:hidden}.search-dialog>header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.85rem;display:flex}.semester-search-choice{max-width:460px;margin-top:1rem}.search-guidance{border-left:4px solid var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning);margin:.8rem 0 0;padding:.75rem .85rem}.search-field{margin-top:1rem}.search-field input{min-height:50px;font-size:1.05rem}.search-dialog #search-help{margin:.5rem 0 .25rem;font-size:.82rem}.search-dialog #search-status{min-height:1.5rem;color:var(--color-text-muted);margin:0 0 .55rem}.search-results{overscroll-behavior:contain;align-content:start;gap:.55rem;min-height:120px;padding:.15rem .2rem .25rem 0;display:grid;overflow-y:auto}.search-result{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);grid-template-columns:minmax(180px,.75fr) minmax(0,1.6fr);gap:1rem;padding:.8rem;scroll-margin:.5rem;display:grid}.search-result.active{border-color:var(--color-primary);box-shadow:inset 4px 0 var(--color-primary);background:var(--color-surface-accent)}.search-result>div:first-child{align-content:start;gap:.25rem;display:grid}.search-result>div:first-child>span{color:var(--color-text-muted);font-size:.84rem}.search-courses{gap:.45rem;display:grid}.search-courses>div{grid-template-columns:minmax(120px,1fr) auto auto;align-items:center;gap:.45rem;display:grid}.search-courses button{min-height:42px;padding:.48rem .65rem}.course-choice,.student-detail{padding-top:1rem;overflow-y:auto}.course-choice>article{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:.65rem;padding:.8rem;display:flex}.student-detail>section{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:1rem;padding:1rem}.student-detail .detail-focus{border-color:var(--color-primary);box-shadow:inset 4px 0 var(--color-primary)}.detail-metrics{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.detail-metrics article{min-height:86px;padding:.65rem}.detail-metrics strong{font-size:1.5rem}@media (max-width:1280px){.profiles-layout{grid-template-columns:minmax(230px,270px) minmax(0,1fr)}.profile-context-rail{grid-column:2;grid-template-columns:minmax(180px,.6fr) minmax(0,1fr);gap:.8rem;display:grid;position:static}.profile-context-rail dl{grid-area:1/2/span 3;margin:0}}@media (max-width:980px){.shell{grid-template-columns:1fr}.sidebar{width:232px;box-shadow:var(--shadow-sm);transition:left .2s;position:fixed;left:-260px}.sidebar.open{left:0}.nav-overlay{z-index:19;background:var(--color-overlay);border:0;border-radius:0;width:100%;height:100%;min-height:0;padding:0;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.menu-button{place-items:center;display:inline-grid}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-checks{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-grid,.profile-summary-grid{grid-template-columns:1fr 1fr}.profile-summary-grid>.panel:first-child{grid-column:1/-1}.workspace-warnings{grid-column:1/-1;min-height:auto}.upgrade-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.health-grid,.onboarding-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.form-grid.three,.score-ceilings,.score-rules,.upgrade-summary{grid-template-columns:1fr}.toolbar-panel .privacy-badge{align-self:flex-start}button,.file-button,td button{min-height:48px}}@media (max-width:800px){button,.file-button,td button{min-height:48px}.profiles-layout{grid-template-columns:1fr}.profile-context-rail{grid-column:auto;display:block}.profile-directory{grid-template-rows:auto;max-height:none;position:static}.profile-directory-list{max-height:240px}}@media (max-width:680px){.topbar{min-height:72px;padding:.75rem}.topbar .eyebrow,.privacy-pill{display:none}.top-actions button{min-height:48px;padding:.5rem}.top-actions{flex-wrap:nowrap}.top-actions .status-full{display:none}.top-actions .status-compact{display:inline}.top-actions .privacy-pill{white-space:nowrap;padding:.38rem .55rem;display:inline-flex}.page{padding:.75rem}.hero-panel,.toolbar-panel,.mini-card,.test-fixture{flex-direction:column;align-items:stretch}.hero-panel{justify-content:center;min-height:220px}.metric-grid,.two-column,.form-grid.two,.form-grid.three,.score-ceilings,.score-rules{grid-template-columns:1fr}.metric-grid article{min-height:108px}.section-heading{flex-direction:column}.section-heading .button-row,.toolbar-panel .button-row{width:100%}.section-heading .button-row button,.toolbar-panel .button-row button{flex:1}button,.file-button{min-height:48px}input,select,textarea{min-height:48px;font-size:16px}.student-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-context,.workspace-grid,.upgrade-summary,.profiles-layout,.profile-summary-grid{grid-template-columns:1fr}.profile-directory{grid-template-rows:auto;max-height:none;position:static}.profile-directory-list{max-height:240px}.profile-summary-grid>.panel:first-child{grid-column:auto}.profile-header,.profile-records article header{flex-direction:column;align-items:stretch}.profile-header .button-row button,.profile-tabs button{min-height:48px}.health-grid,.onboarding-summary{grid-template-columns:1fr}.workspace-status{flex-direction:column;align-items:flex-start}.workspace-action,.workspace-warnings{min-height:auto}.workspace-warnings{grid-column:auto}.preset-actions,.version-grid{grid-template-columns:1fr}.decision-actions button,.decision-exports button{width:100%}.draw-stage{min-height:280px;padding:1rem}.draw-stage strong{font-size:3.5rem}.toast{max-width:calc(100vw - 1.5rem);bottom:.75rem;right:.75rem}.search-launch kbd{display:none}.search-launch{width:48px;font-size:0}.search-launch:before{content:"⌕";font-size:1.1rem}.theme-toggle{min-width:48px;padding-inline-start:.35rem!important;padding-inline-end:.35rem!important}.search-overlay{align-items:stretch;padding:0}.search-dialog{border:0;border-radius:0;width:100%;min-height:100dvh;max-height:100dvh;padding:.85rem}.search-dialog>header button,.search-result button,.course-choice button{min-height:48px}.search-result{grid-template-columns:1fr;gap:.65rem}.search-courses>div{grid-template-columns:1fr 1fr}.search-courses>div>span{grid-column:1/-1;font-weight:700}.course-choice>article{flex-direction:column;align-items:stretch}.course-choice .button-row button{flex:1}.detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{body{background:var(--color-surface)}.sidebar,.topbar,.update-banner,.no-print,.toolbar-panel,.toast,.privacy-badge,.privacy-warning{display:none!important}.shell{display:block}.page{max-width:none;padding:0}.report-sheet,.table-scroll{box-shadow:none;border:0;padding:0}th{position:static}table{font-size:8pt}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
