:root{--background-color:var(--portal-page-bg-start);--bg:var(--portal-page-bg-start);--blkquot-background:var(--portal-color-cd5fad86be);--body-bgcolor:var(--portal-page-bg-start);--border:var(--portal-border);--border-strong:var(--portal-border-strong);--brand:var(--tertiary-color);--btn-delete-bg:var(--portal-color-039996725e);--btn-delete-border:var(--portal-color-763bbb26ad);--btn-delete-text:var(--portal-color-323093c4da);--btn-edit-bg:var(--portal-color-437c03ed17);--btn-edit-border:var(--portal-color-9b98859584);--btn-edit-text:var(--portal-color-4643f99d7f);--btn-refresh-bg:var(--portal-color-3d608aab85);--btn-refresh-border:var(--portal-color-4b848cb5df);--btn-refresh-text:var(--portal-color-7801470977);--chart-grid:var(--portal-border);--chart-text:var(--portal-chart-axis-label);--danger:var(--portal-color-bd827b1b26);--danger-bg:var(--portal-color-55a7dc028b);--danger-border:var(--portal-color-75e50d3433);--danger-color:var(--portal-color-bd827b1b26);--font-base:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI Variable","Segoe UI",roboto,"Noto Sans",ubuntu,cantarell,"Liberation Sans","DejaVu Sans","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;--font-header:system-ui,-apple-system,blinkmacsystemfont,"Segoe UI Variable","Segoe UI",roboto,"Noto Sans",ubuntu,cantarell,"Liberation Sans","DejaVu Sans","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;--footer-background:var(--portal-color-d03a38f50d);--icon-color-on-dk:var(--portal-color-469978e86b);--icon-color-on-lt:var(--portal-color-e4eca72dfb);--info-bg:var(--portal-color-7133576b43);--info-border:var(--portal-color-08145c4aa5);--info-color:var(--portal-color-c8b4c9efb7);--ink:var(--text-color);--ink-muted:var(--text-muted);--level-detail-btn-bg:var(--tertiary-color);--level-detail-btn-border:var(--portal-color-e45f66b6fc);--level-detail-btn-text:var(--icon-color-on-dk);--link-aaa:var(--portal-color-bd827b1b26);--link-active:var(--primary-color);--link-color:var(--link-aaa);--link-hover:var(--tertiary-color);--link-visited:var(--portal-color-dcaac7c975);--menu-bg:var(--portal-surface-support);--menu-border:var(--portal-border);--menu-header-bg:var(--portal-surface-support);--menu-link-active-bg:var(--portal-surface-support);--menu-link-bg:var(--portal-surface-card);--pager-hover-background:var(--portal-color-d14f901611);--pager-text-color:var(--text-color);--panel:var(--portal-surface-panel);--primary-color:var(--portal-color-bd827b1b26);--radius-base:3.667px;--radius-pill:999px;--secondary-color:var(--portal-color-be77b3b86a);--sis-global-text-zoom:1;--success-bg:var(--portal-color-1b2ad6543d);--success-border:var(--portal-color-b75eb09de7);--success-color:var(--portal-color-0c79f2d461);--surface-card:var(--portal-surface-card);--surface-card-muted:var(--portal-surface-support);--surface-color:var(--portal-color-4c58cd2153);--surface-contrast:var(--portal-surface-support);--surface-muted:var(--portal-color-51f08e7078);--surface-soft:var(--portal-surface-support);--surface-warm:var(--portal-surface-card);--tertiary-color:var(--portal-color-45756b2b73);--text-color:var(--portal-text);--text-muted:var(--portal-text-soft);--warning-bg:var(--portal-color-51f08e7078);--warning-border:var(--portal-color-81a116a7df);--warning-color:var(--portal-color-0b88d7b8bd);--radius-1:var(--radius-base);--radius-2:calc(var(--radius-base)*2);--radius-3:calc(var(--radius-base)*3);--surface-1:var(--portal-surface-card);--surface-2:var(--portal-surface-support)}*{box-sizing:border-box}body{background:var(--portal-page-bg);color:var(--ink);font-family:var(--font-base);margin:0}body.admin-auth-booting .wrap{padding-top:clamp(3rem,5vw,4rem)}html[data-theme="dark"] body{background:var(--portal-dark-page-bg)}
      #appPageHeader,
      #authPanel,
      #parentQueueModal .queue-modal-card,
      #status,
      #studentListPanel,
      #topControlsPanel,.app-sidebar,
      .page-section{zoom:var(--sis-global-text-zoom,1)}.wrap{display:grid;gap:12px;margin:0 auto;max-width:1440px;padding:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-3);min-width:0;padding:12px}#authPanel{margin:clamp(3rem,5vw,4rem) auto 0;padding:20px}#authPanel .row{grid-template-columns:1fr}
      #authPanel .row>[class*=" col-"],#authPanel .row>[class^="col-"]{grid-column:span 12}
      #authPanel button,#authPanel input{min-height:48px;padding:12px 16px}#authPanel .login-links{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:10px}#authPanel .login-link{color:var(--link-hover);font-size:.92rem;font-weight:700;text-decoration:none}
      #authPanel .login-link:focus-visible,#authPanel .login-link:hover{text-decoration:underline}h1,
      h2,
      h3{font-weight:700;letter-spacing:.2px;margin:0 0 10px}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}.muted{color:var(--ink-muted);font-size:12px}.hidden{display:none!important}.row{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(12,minmax(0,1fr))}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-1{grid-column:span 1}.col-12{grid-column:span 12}.col-7{grid-column:span 7}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}label{color:var(--ink-muted);display:block;font-size:12px;margin-bottom:4px}
      button,input,
      select,
      textarea{background:var(--portal-color-d14f901611);border:1px solid var(--border);border-radius:var(--radius-2);color:var(--text-color);font-size:13px;inline-size:100%;padding:8px}textarea{min-height:64px;resize:vertical}button{--btn-active-shadow:inset 0 2px 7px var(--portal-color-22aee4e14f),0 3px 9px var(--portal-color-ba0cc5c38a);--btn-hover-shadow:0 8px 18px var(--portal-color-2ff174e8be);--btn-ripple-color:var(--portal-color-4a4eba674d);background:var(--portal-color-c82f339b4e);box-shadow:0 1px 0 var(--portal-color-f8f09f4f88);cursor:pointer;font-weight:600;overflow:hidden;position:relative;transform:translateY(0);transition:transform .12s ease,box-shadow .15s ease,border-color .16s ease,background-color .16s ease,color .16s ease,filter .16s ease}
      button::after,button::before{border-radius:inherit;content:"";inset:0;opacity:0;pointer-events:none;position:absolute}button::before{border:2px solid var(--btn-ripple-color);transform:scale(.98)}button::after{background:radial-gradient(circle at center,var(--btn-ripple-color) 0,var(--portal-color-254f75671f) 68%);transform:scale(.45)}button:hover:not(:disabled){box-shadow:var(--btn-hover-shadow);filter:saturate(1.06);transform:translateY(-1px)}
      button.btn-press-feedback:not(:disabled),button:active:not(:disabled){box-shadow:var(--btn-active-shadow);filter:saturate(1.1);transform:translateY(0)}button.btn-press-feedback:not(:disabled)::before{animation:button-click-ring .32s ease-out}button.btn-press-feedback:not(:disabled)::after{animation:button-click-ripple .32s ease-out}button:focus-visible{outline:2px solid var(--portal-color-243de7efde);outline-offset:1px}button:disabled{box-shadow:none;cursor:not-allowed;filter:none;opacity:.55}@keyframes button-click-ring{0%{opacity:.75;transform:scale(.98)}100%{opacity:0;transform:scale(1.08)}}@keyframes button-click-ripple{0%{opacity:.55;transform:scale(.4)}100%{opacity:0;transform:scale(1.2)}}button.primary{--btn-active-shadow:inset 0 2px 10px var(--portal-color-1b4f759bcf),0 3px 8px var(--portal-color-4961d06ce2);--btn-hover-shadow:0 10px 18px var(--portal-color-11a8da3fa1);--btn-ripple-color:var(--portal-color-ff50535d27);background:var(--brand);border-color:var(--brand);color:var(--portal-color-d14f901611)}button.primary:hover:not(:disabled){background:var(--portal-color-80f5b9512c);border-color:var(--portal-color-80f5b9512c)}button.alt{--btn-active-shadow:inset 0 2px 8px var(--portal-color-3505c4ac4c),0 2px 7px var(--portal-color-a5b5be78d6);--btn-hover-shadow:0 9px 16px var(--portal-color-515a32c043);--btn-ripple-color:var(--portal-color-2774a5c299);background:var(--btn-edit-bg);border-color:var(--btn-edit-border);color:var(--btn-edit-text)}button.alt:hover:not(:disabled){background:var(--portal-color-8749aa0320);border-color:var(--portal-color-9b98859584)}button.danger{--btn-active-shadow:inset 0 2px 8px var(--portal-color-c559054d76),0 2px 7px var(--portal-color-f0163600e1);--btn-hover-shadow:0 9px 16px var(--portal-color-a8c93a3767);--btn-ripple-color:var(--portal-color-1a725bdb9a);background:var(--btn-delete-bg)}button.danger,button.ghost{border-color:var(--btn-delete-border);color:var(--btn-delete-text)}button.ghost{background:transparent}button.btn-delete{--btn-active-shadow:inset 0 2px 8px var(--portal-color-c559054d76),0 2px 7px var(--portal-color-f0163600e1);--btn-hover-shadow:0 9px 16px var(--portal-color-a8c93a3767);--btn-ripple-color:var(--portal-color-1a725bdb9a);background:var(--btn-delete-bg);border-color:var(--btn-delete-border);color:var(--btn-delete-text)}button.btn-edit{--btn-active-shadow:inset 0 2px 8px var(--portal-color-3505c4ac4c),0 2px 7px var(--portal-color-a5b5be78d6);--btn-hover-shadow:0 9px 16px var(--portal-color-515a32c043);--btn-ripple-color:var(--portal-color-2774a5c299);background:var(--btn-edit-bg);border-color:var(--btn-edit-border);color:var(--btn-edit-text)}button.btn-refresh{--btn-active-shadow:inset 0 2px 8px var(--portal-color-991ebe2c3a),0 2px 7px var(--portal-color-157650bcd0);--btn-hover-shadow:0 9px 16px var(--portal-color-9bd5813b2b);--btn-ripple-color:var(--portal-color-41b1689b86);background:var(--btn-refresh-bg);border-color:var(--btn-refresh-border);color:var(--btn-refresh-text)}@media (prefers-reduced-motion:reduce){button{transition:none}
        button::after,button::before{display:none}}.profile-tabs-shell{background:linear-gradient(180deg,var(--portal-color-53432a348e) 0,var(--portal-color-8aa2dbb5d9) 100%);border:1px solid var(--portal-color-c26311f0ba);border-radius:var(--radius-3);display:grid;gap:8px;padding:8px}.profile-mode-shell{display:grid;gap:10px}.profile-edit-shell,.profile-editor-form,.profile-info-shell{display:grid;gap:8px}
      .profile-editor-toolbar,.profile-info-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
      .profile-editor-toolbar h3,.profile-info-toolbar h3{color:var(--portal-color-cebb176820);font-size:15px;margin:0}.profile-info-tabs{background:var(--portal-color-e83556da4c);padding:6px}.profile-tab-nav{-webkit-overflow-scrolling:touch;align-items:center;background:var(--portal-color-4222bb2d34);border:1px solid var(--portal-color-6b2342831b);border-radius:var(--radius-pill);display:grid;gap:4px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;overflow-x:auto;padding:4px;scroll-padding-inline:4px;scroll-snap-type:x proximity;scrollbar-width:none}.profile-tab-nav::-webkit-scrollbar{display:none}.profile-tab-nav button{align-items:center;background:var(--portal-color-3b79014ba0);border-color:var(--portal-color-95bd928787);border-radius:var(--radius-pill);box-shadow:none;box-sizing:border-box;color:var(--portal-color-1b8d818ad2);display:inline-flex;font-size:13px;font-weight:700;justify-content:center;min-height:34px;padding:6px 10px;scroll-snap-align:start;white-space:nowrap;width:100%}.profile-tab-nav button:hover{background:var(--portal-color-d14f901611);border-color:var(--portal-color-ab255e34c0)}.profile-tab-nav button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.profile-tab-nav button.active{background:var(--brand);border-color:var(--brand);box-shadow:none;color:var(--portal-color-d14f901611)}.profile-tab-panel{background:var(--portal-color-3b79014ba0);border:1px solid var(--portal-color-9fc7feb5f0);border-radius:var(--radius-3);display:none;padding:14px}.profile-tab-panel.active{display:block}.profile-info-summary{background:linear-gradient(180deg,var(--portal-color-2cdb084429) 0,var(--portal-color-997324aabe) 100%);border:1px solid var(--portal-color-c2efe9c01a);border-radius:var(--radius-3);display:grid;gap:8px;grid-template-columns:repeat(12,minmax(0,1fr));padding:10px}.profile-summary-primary{align-content:start;background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-293711fbb6);border-radius:var(--radius-2);box-sizing:border-box;display:grid;gap:4px;grid-column:span 6;min-height:94px;padding:10px 12px}.profile-summary-kicker{color:var(--portal-color-90f12f5115);font-size:11px;font-weight:700;letter-spacing:.05em;margin:0;text-transform:uppercase}.profile-summary-name{color:var(--portal-color-37b99f5bd9);font-size:20px;line-height:1.25;margin:0}.profile-summary-subline{color:var(--portal-color-48cd3a6648);font-size:13px;line-height:1.35;margin:0}.profile-summary-chip{align-content:start;background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-a5d9717d79);border-radius:var(--radius-2);box-sizing:border-box;display:grid;gap:4px;grid-column:span 3;min-height:70px;padding:8px 10px}.profile-summary-chip-label{color:var(--portal-color-1d89e3bf1e);font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.2;margin:0;text-transform:uppercase}.profile-summary-chip-value{color:var(--portal-color-97f9ffca77);font-size:14px;font-weight:700;line-height:1.35;margin:0;word-break:break-word}.profile-info-panel{background:var(--portal-color-c82f339b4e);border:1px solid var(--portal-color-8e5456173c);border-radius:var(--radius-3);display:none;padding:12px}.profile-info-panel.active{display:block}.profile-info-group{background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-b6a2764085);border-radius:var(--radius-2);box-shadow:inset 0 0 0 1px var(--portal-color-e83556da4c);margin:0 0 10px;padding:10px}.profile-info-group:last-child{margin-bottom:0}.profile-info-group-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;margin:0 0 8px}.profile-info-group h4{color:var(--portal-color-2c68c614a2);font-size:14px;line-height:1.3;margin:0}.profile-info-group-meta{color:var(--portal-color-be559484b4);font-size:11px;letter-spacing:.03em;line-height:1.2;margin:0;text-transform:uppercase}.profile-info-grid{display:grid;gap:8px;grid-template-columns:repeat(12,minmax(0,1fr))}.profile-info-item{align-content:start;background:var(--portal-color-87159a30a0);border:1px solid var(--portal-color-bf36793f67);border-radius:var(--radius-2);box-sizing:border-box;display:grid;gap:4px;grid-column:span var(--profile-span,4);min-height:66px;padding:8px 10px}.profile-info-item[data-priority="primary"]{background:var(--portal-color-2cdb084429);border-color:var(--portal-color-87bbb79e2e)}.profile-info-label{color:var(--portal-color-9f5af08a94);display:block;font-size:11px;letter-spacing:.03em;line-height:1.3;margin:0;text-transform:uppercase}.profile-info-value{color:var(--portal-color-b245852d50);display:block;font-size:14px;font-weight:600;line-height:1.35;word-break:break-word}.profile-info-empty{color:var(--portal-color-b7090b879b);font-weight:600}.profile-info-empty-stack{background:var(--portal-color-367774f22d);border:1px dashed var(--portal-color-54b560c774);border-radius:var(--radius-2);margin-top:8px;padding:8px}.profile-info-empty-stack[open]{background:var(--portal-color-3b79014ba0)}.profile-info-empty-toggle{color:var(--portal-color-66a08ca4d4);cursor:pointer;font-size:12px;font-weight:700;line-height:1.35;list-style:none;outline:none}.profile-info-empty-toggle::-webkit-details-marker{display:none}.profile-info-empty-toggle::before{content:"\25B6";display:inline-block;margin-right:6px;transform:translateY(-1px);transition:transform .14s ease}.profile-info-empty-stack[open] .profile-info-empty-toggle::before{transform:rotate(90deg) translateY(-1px)}.profile-info-empty-grid{margin-top:8px}.profile-info-empty-note{color:var(--portal-color-dfd1c124aa);font-size:12px;line-height:1.4;margin:8px 0 0}.profile-field-group{background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-48d9abbb8e);border-radius:var(--radius-3);box-shadow:inset 0 0 0 1px var(--portal-color-a3a68d90c8);margin:0 0 10px;padding:10px}.profile-field-group:last-child{margin-bottom:0}.profile-field-group h3{background:var(--portal-color-55773a19e5);border:1px solid var(--portal-color-cd39781015);border-radius:var(--radius-2);color:var(--portal-color-2c68c614a2);font-size:15px;line-height:1.3;margin:0 0 10px;padding:8px 10px}.profile-field{align-self:start}.profile-field label{color:var(--portal-color-a85bd9ef7f);font-size:13px;font-weight:700;line-height:1.35;margin-bottom:6px}.profile-field input,
      .profile-field select,
      .profile-field textarea{background:var(--portal-color-d14f901611);border-color:var(--portal-color-27470381e4);color:var(--portal-color-f549e07556);font-size:14px;min-height:40px}.profile-field textarea{min-height:96px}.profile-field input:focus,
      .profile-field select:focus,
      .profile-field textarea:focus{outline:2px solid var(--portal-color-da467d2b4a);outline-offset:1px}.profile-choice-grid{align-items:start;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.profile-choice-item{align-items:center;background:var(--portal-color-cbc1cfa6cf);border:1px solid var(--portal-color-48d9abbb8e);border-radius:var(--radius-2);display:flex;gap:6px;min-height:40px;padding:8px 10px}.profile-choice-item input{border:none;border-radius:0;inline-size:auto;margin:0;padding:0;width:auto}.profile-choice-item input[type="checkbox"],
      .profile-choice-item input[type="radio"]{accent-color:var(--brand);flex:0 0 20px;height:20px;min-height:20px;min-width:20px;width:20px}.profile-choice-item label{color:var(--portal-color-f549e07556);font-size:13px;line-height:1.35;margin:0}.profile-file-row{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-file-row+.file-caption{color:var(--portal-color-ccf3801810);font-size:12px;line-height:1.4;margin:0}.page-section[data-page="profile"]{background:linear-gradient(180deg,var(--portal-color-367774f22d) 0,var(--portal-color-469978e86b) 100%);border-color:var(--portal-color-0c609735cb);padding:12px}.page-section[data-page="profile"]>h2{color:var(--portal-color-972749c27e);font-size:21px;margin-bottom:8px}.page-section[data-page="profile"] .page-note{color:var(--portal-color-2affe7a39e);font-size:13px}.page-section[data-page="profile"] .actions button{font-size:14px;min-height:42px}#profileTabStatus{color:var(--portal-color-373f0ec52e);font-size:13px}@media (max-width:820px){.profile-tabs-shell{padding:6px}.profile-info-tabs{padding:4px}.profile-tab-nav{grid-auto-columns:max-content}.profile-tab-nav button{box-sizing:border-box;font-size:14px;min-height:38px;padding:7px 12px;width:auto}.profile-info-summary{grid-template-columns:1fr}
        .profile-summary-chip,.profile-summary-primary{grid-column:1/-1}.profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-info-item{grid-column:span 2}.profile-choice-item{min-height:48px;padding:10px 12px}.profile-choice-item input[type="checkbox"],
        .profile-choice-item input[type="radio"]{flex-basis:24px;height:24px;min-height:24px;min-width:24px;width:24px}.profile-choice-item label{font-size:14px}}@media (max-width:560px){.profile-info-grid{grid-template-columns:1fr}.profile-info-item{grid-column:1/-1}}.profile-layout-editor{background:var(--portal-color-9e200f76d6);border:1px solid var(--portal-color-d2d30945b7);border-radius:var(--radius-2);display:grid;gap:8px;margin-top:12px;padding:10px}.profile-layout-editor table{font-size:12px}.profile-layout-editor td input,
      .profile-layout-editor td select{font-size:12px;min-width:90px;padding:6px}.profile-layout-editor td .layout-delete-btn{font-size:12px;padding:6px 8px}.profile-layout-table-wrap{background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-ea68f7072c);border-radius:var(--radius-2);max-height:280px;overflow:auto}.grid-main{display:grid;gap:12px;grid-template-columns:minmax(300px,420px) minmax(0,1fr)}.app-shell,.grid-main.overview-full{grid-template-columns:minmax(0,1fr)}.app-shell{align-items:start;display:grid;gap:12px}.app-sidebar{border-radius:0 var(--radius-3) var(--radius-3) 0;box-shadow:0 22px 48px var(--portal-color-b0e4f2e1c7);inset-block:0;inset-inline-start:0;margin:0;overflow-y:auto;overscroll-behavior:contain;position:fixed;transform:translateX(calc(-100% - 14px));transition:transform .18s ease;width:min(86vw,320px);will-change:transform;z-index:82}body.menu-open .app-sidebar{transform:translateX(0)}body.menu-open{overflow:hidden}.menu-backdrop{background:var(--portal-color-05477e89d0);inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .18s ease;z-index:81}body.menu-open .menu-backdrop{opacity:1;pointer-events:auto}.floating-menu-btn{align-items:center;background:var(--primary-color);block-size:44px;border:1px solid var(--portal-color-588c301c36);border-radius:var(--radius-pill);box-shadow:0 12px 24px var(--portal-color-27bfe87810);color:var(--portal-color-d14f901611);display:inline-flex;inline-size:44px;inset-block-start:12px;inset-inline-start:12px;justify-content:center;padding:0;position:fixed;z-index:90}.floating-menu-btn:hover{background:var(--portal-color-91d2ea6cfe);border-color:var(--portal-color-155b35e0df)}.floating-menu-btn:focus-visible{outline:2px solid var(--portal-color-d14f901611);outline-offset:2px}.floating-menu-icon,
      .floating-menu-icon::after,
      .floating-menu-icon::before{background:var(--portal-color-d14f901611);border-radius:2px;content:"";display:block;height:2px;transition:transform .16s ease,opacity .16s ease;width:18px}.floating-menu-icon{position:relative}.floating-menu-icon::before{left:0;position:absolute;top:-6px}.floating-menu-icon::after{left:0;position:absolute;top:6px}body.menu-open .floating-menu-icon{background:transparent}body.menu-open .floating-menu-icon::before{transform:translateY(6px) rotate(45deg)}body.menu-open .floating-menu-icon::after{transform:translateY(-6px) rotate(-45deg)}body.menu-collapsed .app-shell{grid-template-columns:minmax(0,1fr)}body.menu-collapsed .app-sidebar{transform:translateX(calc(-100% - 14px))}.app-page-header{background:linear-gradient(180deg,var(--portal-color-bd827b1b26) 0,var(--portal-color-75e50d3433) 100%);border-color:var(--portal-color-588c301c36);color:var(--portal-color-d14f901611);padding:10px 12px 10px 64px}.app-brand-strip{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto}.app-header-actions{align-items:center;display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.app-brand-logo-wrap{align-items:center;background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-106784249d);border-radius:var(--radius-3);box-sizing:border-box;cursor:pointer;display:inline-flex;flex:0 0 auto;height:44px;justify-content:center;overflow:hidden;width:44px}.app-brand-logo-wrap img{display:block;height:100%;object-fit:cover;width:100%}.app-brand-logo-fallback{color:var(--text-color);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.app-school-name{color:var(--portal-text);font-size:clamp(13px,1.7vw,18px);font-weight:800;letter-spacing:.05em;line-height:1.25;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.text-zoom-controls{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin:0}.text-zoom-controls .global-text-label{white-space:nowrap}.text-zoom-controls button{font-size:12px;inline-size:auto;min-width:44px;padding:6px 8px;white-space:nowrap}.text-zoom-controls .zoom-label{color:var(--portal-color-5bdf769798);font-family:ui-monospace,SF Mono,menlo,consolas,monospace;font-size:11px}.menu-groups{display:grid;gap:10px}.menu-group{background:var(--menu-bg);border:1px solid var(--menu-border);border-radius:var(--radius-2);overflow:hidden}.menu-group-btn{align-items:center;background:var(--menu-header-bg);border:0;border-radius:0;color:var(--text-color);display:inline-flex;font-size:11px;font-weight:700;justify-content:space-between;letter-spacing:.08em;min-height:36px;padding:10px 12px;text-align:left;text-transform:uppercase}.menu-group-links{display:none;gap:6px;padding:8px}.menu-group.expanded .menu-group-links{display:grid}.menu-link{background:var(--menu-link-bg);border:1px solid var(--menu-border);border-radius:var(--radius-2);color:var(--ink);font-size:12px;padding:8px 10px;text-decoration:none}.menu-link-top{align-items:center;border-width:2px;display:inline-flex;font-size:11px;font-weight:700;justify-content:space-between;letter-spacing:.08em;min-height:36px;text-transform:uppercase}.sidebar-logo-wrap{align-items:center;background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-106784249d);border-radius:var(--radius-3);box-sizing:border-box;display:flex;justify-content:center;margin:0 0 8px;min-height:78px;overflow:hidden;padding:6px;width:100%}.sidebar-logo-wrap img{display:block;max-height:72px;max-width:100%;object-fit:contain}.sidebar-logo-fallback{color:var(--portal-color-f5531c30a5);font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.menu-group[data-menu-group="tracking"]>.menu-group-links>.menu-link{font-weight:600}.menu-link.active{background:var(--menu-link-active-bg);border-color:var(--portal-color-9a49c7aede);color:var(--portal-color-3c582210ea)}.menu-sub-links{display:grid;gap:4px;margin:0 0 2px 12px}.sidebar-actions{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.sidebar-actions button{box-sizing:border-box;width:100%}.menu-sublink{font-size:11px;padding:6px 8px}.page-section{display:none}.page-section.active{display:block}.page-section.level-accent{border-color:var(--level-page-border,var(--border-strong));box-shadow:inset 0 0 0 1px var(--level-page-shadow,transparent)}.page-section.level-accent>h2{color:var(--level-page-title,var(--ink))}.page-note{line-height:1.5}.permission-role-card{background:var(--portal-color-24f3dafd18);border:1px solid var(--portal-color-8ff5c44654);border-radius:var(--radius-2);margin-bottom:10px;padding:10px}.permission-role-title{font-size:14px;font-weight:700;margin:0 0 8px;text-transform:capitalize}.permission-page-grid{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.permission-page-item{align-items:center;display:flex;font-size:12px;gap:6px}.permission-page-item input[type="checkbox"]{inline-size:auto;margin:0}.list-box{border:1px solid var(--border);border-radius:var(--radius-2);max-height:70vh;overflow:auto}.top-search-results-box{max-height:220px}.top-search-results-box.expanded{max-height:none}.top-search-results-title{font-weight:600;margin:2px 0 6px}.top-search-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-top:6px}#topSearchCount{margin:0}#topSearchExpandBtn{font-size:11px;inline-size:auto;min-width:132px;padding:6px 10px}#topSearchRows tr.top-search-row{cursor:pointer}#topSearchRows tr.top-search-row:hover{background:var(--portal-color-21fe6cd7d5)}.top-search-open-btn{inline-size:auto;min-width:96px}#topSearchResultsPanel th[data-top-search-sort]{cursor:pointer;padding-right:18px;position:relative;user-select:none}#topSearchResultsPanel th[data-top-search-sort]:focus{outline:2px solid var(--portal-color-9b98859584);outline-offset:-2px}#topSearchResultsPanel th.sort-active-asc::after,
      #topSearchResultsPanel th.sort-active-desc::after{color:var(--portal-color-4643f99d7f);font-size:10px;position:absolute;right:6px;top:50%;transform:translateY(-50%)}#topSearchResultsPanel th.sort-active-asc::after{content:"▲"}#topSearchResultsPanel th.sort-active-desc::after{content:"▼"}table{border-collapse:collapse;font-size:12px;width:100%}.table-scroll-wrap{-webkit-overflow-scrolling:touch;background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-0288ae9c5c);border-radius:var(--radius-2);box-sizing:border-box;overflow-x:auto;overflow-y:hidden}.table-scroll-wrap table{border-collapse:collapse;min-width:100%}
      td,th{border-bottom:1px solid var(--portal-color-cf16fd64c5);padding:8px;text-align:left;vertical-align:top}.school-col,
      .school-col-cell{min-width:160px}tr.active{background:var(--portal-color-21fe6cd7d5)}.actions{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.actions-1{grid-template-columns:minmax(0,1fr)}.actions-2{grid-template-columns:repeat(2,minmax(0,1fr))}.actions-3{grid-template-columns:repeat(3,minmax(0,1fr))}.actions-4{grid-template-columns:repeat(4,minmax(0,1fr))}.table-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.admin-table-summary{color:var(--ink);font-size:12px;letter-spacing:.04em;margin:6px 0 12px;text-transform:uppercase}.table-toolbar .toolbar-field{flex:1 1 220px;min-width:200px}.table-toolbar .toolbar-field.compact{flex:0 0 auto;min-width:160px}.table-toolbar button{inline-size:auto;min-width:140px}.grade-chart-shell{background:var(--portal-chart-surface);border:1px solid var(--portal-border);border-radius:var(--radius-2);margin:10px 0 14px;padding:10px}.grade-chart-head{display:grid;gap:4px;margin-bottom:8px}.grade-chart-head h3{font-size:14px;margin:0}.grade-chart-head .small{color:var(--portal-support-message);margin:0}.tabulator-entry-callout{background:var(--portal-chart-surface-soft);border:1px solid var(--portal-border);border-radius:var(--radius-2);box-sizing:border-box;display:grid;gap:6px;margin-top:4px;max-width:100%;padding:8px}.tabulator-entry-btn{align-items:center;background:var(--portal-color-e32e5ac3d5);border:1px solid var(--portal-color-e32e5ac3d5);border-radius:var(--radius-pill);box-sizing:border-box;color:var(--portal-color-ec28aed7ca);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;letter-spacing:.03em;line-height:1.1;max-width:100%;min-height:34px;padding:7px 12px;text-transform:uppercase;width:fit-content}.tabulator-entry-btn:hover{background:var(--portal-color-5647dd626d);border-color:var(--portal-color-5647dd626d)}.grade-chart-periods{-webkit-overflow-scrolling:touch;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}.grade-chart-period-btn{background:var(--portal-color-d14f901611);border:1px solid var(--portal-color-64f144942a);border-radius:var(--radius-pill);color:var(--portal-color-25a7b86435);cursor:pointer;font-size:11px;font-weight:700;inline-size:auto;letter-spacing:.03em;margin:0;min-width:0;padding:7px 10px;text-transform:uppercase;white-space:nowrap}.grade-chart-period-btn.is-active{background:var(--portal-color-e32e5ac3d5);border-color:var(--portal-color-e32e5ac3d5);box-shadow:0 3px 8px var(--portal-color-9121bb2e26);color:var(--portal-color-469978e86b)}.grade-chart-filter-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.grade-chart-field{display:grid;gap:4px}.grade-chart-field label{color:var(--portal-data-label);font-size:11px;font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase}
      .grade-chart-field input,.grade-chart-field select{background:var(--portal-surface-card);border:1px solid var(--portal-border);margin:0;min-width:0}.grade-chart-field input:disabled,
      .grade-chart-field select:disabled{background:var(--portal-surface-support);color:var(--portal-text-soft);cursor:not-allowed}.grade-chart-summary{color:var(--portal-support-message);line-height:1.4;margin:10px 0 8px}.grade-chart-lanes{display:grid;gap:10px;grid-template-columns:1fr}.grade-chart-lane{background:var(--portal-chart-surface);border:1px solid var(--portal-border);border-radius:var(--radius-2);box-shadow:inset 0 0 0 1px var(--portal-color-28b516db10);padding:8px}.grade-chart-lane-head{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.grade-chart-lane-actions{align-items:center;display:inline-flex;gap:6px;margin-left:auto}.grade-chart-lane-title{color:var(--portal-text);font-size:13px;font-weight:700;line-height:1.25;margin:0}.grade-chart-lane-metrics{color:var(--portal-support-message);font-size:11px;letter-spacing:.03em;text-align:right}.grade-chart-expand-btn,.grade-chart-lane-metrics{font-weight:700;margin:0;text-transform:uppercase;white-space:nowrap}.grade-chart-expand-btn{background:var(--portal-chart-surface-soft);border:1px solid var(--portal-border);border-radius:var(--radius-pill);box-sizing:border-box;color:var(--portal-text);cursor:pointer;font-size:10px;letter-spacing:.04em;padding:5px 10px}.grade-chart-expand-btn:hover{background:var(--portal-surface-support);border-color:var(--portal-border-strong)}.grade-chart-svg-wrap{-webkit-overflow-scrolling:touch;margin-top:6px;overflow-x:auto;overflow-y:hidden}.grade-chart-svg{display:block;height:90px;min-width:240px;width:100%}.grade-chart-lane-meta{font-size:11px;line-height:1.35}.grade-chart-lane-legend,.grade-chart-lane-meta{color:var(--portal-support-message);margin:6px 0 0}.grade-chart-lane-legend{display:flex;flex-wrap:wrap;font-size:10px;font-weight:700;gap:8px;letter-spacing:.03em;text-transform:uppercase}.grade-chart-legend-item{align-items:center;box-sizing:border-box;display:inline-flex;gap:4px}.grade-chart-legend-dot{border-radius:999px;box-sizing:border-box;display:inline-block;height:8px;width:8px}.grade-chart-legend-dot.data{background:var(--portal-color-7f8784021f)}.grade-chart-legend-dot.threshold{background:var(--portal-color-6773f1a111)}.grade-chart-legend-dot.average{background:var(--portal-color-e337dcad67)}.grade-chart-legend-dot.trend{background:var(--portal-color-107a42fd77)}.grade-chart-svg .grade-chart-grid{stroke:var(--portal-color-d22a529744);stroke-width:1}.grade-chart-svg .grade-chart-axis{stroke:var(--portal-color-f145d41978);stroke-width:1.2}.grade-chart-svg .grade-chart-threshold{stroke:var(--portal-color-6773f1a111);stroke-dasharray:5 4;stroke-width:1.7}.grade-chart-svg .grade-chart-average{stroke:var(--portal-color-e337dcad67);stroke-dasharray:3 3;stroke-width:1.6}.grade-chart-svg .grade-chart-trend{opacity:.9;stroke:var(--portal-color-107a42fd77);stroke-dasharray:6 3;stroke-width:1.9}.grade-chart-svg .grade-chart-data{fill:none;stroke:var(--portal-color-7f8784021f);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4}.grade-chart-svg .grade-chart-dot{transform-origin:center;transition:transform .12s ease-in-out}.grade-chart-svg .grade-chart-dot:hover{transform:scale(1.12)}.grade-chart-svg .grade-chart-axis-label{fill:var(--portal-chart-axis-label);font-size:10px;font-weight:700}.grade-chart-modal-card{box-sizing:border-box;max-width:min(1100px,calc(100vw - 32px));width:min(1100px,calc(100vw - 32px))}.grade-chart-modal-header{align-items:center;display:flex;gap:10px;justify-content:space-between}.grade-chart-modal-title{color:var(--portal-text);font-size:14px;margin:0}.grade-chart-modal-meta{color:var(--portal-support-message);font-size:11px;line-height:1.35;margin:2px 0 0}.grade-chart-modal-body{box-sizing:border-box;max-height:min(76vh,760px);overflow:auto}.grade-chart-modal-svg-wrap .grade-chart-svg{height:380px;min-width:860px}@media (min-width:481px){.grade-chart-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.grade-chart-head h3{font-size:clamp(12px,4vw,13px);line-height:1.15}.grade-chart-lane-title{font-size:clamp(11px,3.4vw,12px);line-height:1.18}}
      .attendance-column-controls,.table-column-controls{align-items:center;background:var(--portal-surface-support);border:1px solid var(--portal-border);border-radius:var(--radius-2);display:flex;flex-wrap:wrap;gap:8px 12px;margin:6px 0 10px;padding:8px}
      .attendance-column-controls .small,.table-column-controls .small{color:var(--portal-support-message);font-size:11px;font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase}
      .attendance-column-controls label,.table-column-controls label{align-items:center;color:var(--portal-color-42f0808f83);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;margin:0}
      .attendance-column-controls input[type="checkbox"],.table-column-controls input[type="checkbox"]{accent-color:var(--tertiary-color);border:0;inline-size:auto;margin:0;min-width:0;padding:0;width:auto}
      .attendance-col-student-number,.table-col-student-number{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:78px}.attendance-col-hidden{display:none!important}th[data-table-sort][data-sort-field]{cursor:pointer;padding-right:18px;position:relative;user-select:none}th[data-table-sort][data-sort-field]:focus{outline:2px solid var(--portal-color-9b98859584);outline-offset:-2px}th.sort-active-asc::after,
      th.sort-active-desc::after{color:var(--portal-color-4643f99d7f);font-size:10px;position:absolute;right:6px;top:50%;transform:translateY(-50%)}th.sort-active-asc::after{content:"▲"}th.sort-active-desc::after{content:"▼"}.table-row-options-cell{padding:0;position:relative;vertical-align:middle;white-space:nowrap;width:1%}.row-options-menu{display:block;height:100%;position:relative}.row-options-trigger{align-items:center;background:var(--btn-edit-text);border-inline-start:1px solid var(--portal-color-5ce4c7c743);border-radius:var(--radius-2);box-sizing:border-box;color:var(--secondary-color);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;height:100%;justify-content:center;letter-spacing:.01em;list-style:none;margin:0 0 3px;min-height:40px;min-width:84px;padding:6px 10px;position:relative;text-decoration:none;text-decoration-color:var(--portal-color-7a33f242ff);text-decoration-thickness:1.5px;text-underline-offset:2px;transition:color .14s ease,background-color .14s ease,text-decoration-color .14s ease;user-select:none}.row-options-trigger::-webkit-details-marker{display:none}.row-options-trigger::after{content:"▾";font-size:10px;margin-inline-start:5px;opacity:.82;transform:translateY(1px);transition:transform .14s ease,opacity .14s ease}.row-options-trigger:hover{background:var(--portal-color-8aa2dbb5d9);border:1px solid var(--tertiary-color);color:var(--link-hover);text-decoration-color:currentColor}.row-options-trigger:active{background:var(--portal-color-9bc0b93906);color:var(--link-active);text-decoration-color:currentColor}.row-options-trigger:focus-visible{border-radius:var(--radius-2);outline:2px solid var(--portal-color-da467d2b4a);outline-offset:-1px}.row-options-menu[open]>.row-options-trigger{background:var(--portal-color-437c03ed17);color:var(--link-hover);text-decoration-color:currentColor}.row-options-menu[open]>.row-options-trigger::after{opacity:1;transform:rotate(180deg)}.row-options-dropdown{background:transparent;border-radius:var(--radius-2);display:grid;gap:4px;inset-block-start:calc(100% - 4px);inset-inline-end:6px;min-width:116px;padding:6px;position:absolute;z-index:12}.row-options-dropdown button{font-size:12px;inline-size:100%;min-width:0;padding:6px 8px;white-space:nowrap}.section-label{color:var(--ink-muted);font-size:12px;font-weight:600;margin:8px 0 4px}.overview-layout,.section-stack{display:grid;gap:12px}.overview-layout{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr))}.overview-group{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-3);display:grid;gap:8px;min-width:0;padding:10px}.overview-group>details{min-width:0}.overview-group .table-scroll-wrap{max-width:100%;min-width:0}.overview-group h3{margin-bottom:2px}.overview-group.full{grid-column:1/-1}.queue-hub-panels{display:grid;gap:10px;margin-top:10px}.queue-hub-panel{background:var(--portal-color-2cdb084429);border:solid var(--portal-color-5987913019);border-radius:var(--radius-3);border-width:2px 2px 4px;cursor:grab;display:grid;gap:8px;padding:10px}.queue-hub-panel.dragging{cursor:grabbing;opacity:.5}.queue-hub-panel.drop-target{background:var(--portal-color-dbb4046a12);border-color:var(--portal-color-fbe71060c6)}.queue-hub-panel-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.queue-hub-panel-header h3{font-size:14px;margin:0}.queue-hub-meta{color:var(--ink-muted);font-size:11px}.queue-hub-empty{background:var(--surface-card-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-2);color:var(--ink-muted);font-size:12px;padding:10px}.queue-hub-panel .table-scroll-wrap table{min-width:620px}.queue-hub-order-dirty{border-color:var(--portal-status-warn-border)}.queue-hub-order-dirty,.school-setup-access-warning{background:var(--portal-status-warn-bg);color:var(--portal-status-warn-text)}.school-setup-access-warning{border:1px solid var(--portal-status-warn-border);border-radius:var(--radius-2);font-size:12px;line-height:1.45;margin-top:10px;padding:10px 12px}.school-setup-access-warning a{color:inherit;font-weight:700}.stats-grid,.system-health-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.system-health-shell{min-height:572px;position:relative}.system-health-loading{backdrop-filter:none;background:transparent;border:0;border-radius:var(--radius-2);display:grid;gap:10px;inset:0;padding:12px;place-items:center;pointer-events:none;position:absolute;text-align:center;z-index:2}.system-health-loading.hidden{display:none}.system-health-loading-pulse{color:var(--primary-color);height:105.6px;position:relative;width:105.6px}
      .system-health-loading-pulse::after,.system-health-loading-pulse::before{background:currentColor;box-shadow:0 0 0 63.4px currentColor;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);content:"";inset:0;position:absolute}.system-health-loading-pulse::after{animation:system-health-pulse .8s infinite;transform:perspective(352px) translateZ(0)}.system-health-loading-copy{display:grid;gap:4px;justify-items:center;max-width:320px;min-width:0}.system-health-loading-copy strong{color:var(--ink);font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.system-health-loading-copy span{color:var(--ink-muted);font-size:12px;line-height:1.35}.system-health-grid-content{display:contents}.system-health-item{background:var(--portal-status-neutral-bg);border:solid var(--portal-status-neutral-border);border-radius:var(--radius-2);border-width:2px 2px 4px;display:grid;gap:4px;padding:8px}.system-health-hub-card{gap:6px;grid-column:span 2}.system-health-item.ok{background:var(--portal-status-good-bg);border-color:var(--portal-status-good-border);color:var(--portal-status-good-text)}.system-health-item.warn{background:var(--portal-status-warn-bg);border-color:var(--portal-status-warn-border);color:var(--portal-status-warn-text)}.system-health-item.error{background:var(--portal-status-bad-bg);border-color:var(--portal-status-bad-border);color:var(--portal-status-bad-text)}.system-health-item.pending{background:var(--portal-status-info-bg);border-color:var(--portal-status-info-border);color:var(--portal-status-info-text)}.system-health-label{align-items:center;color:var(--ink);display:flex;font-size:11px;font-weight:700;gap:7px;letter-spacing:.02em;text-transform:uppercase}.system-health-detail{color:var(--ink-muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}.led{background:var(--portal-status-neutral-border);border-radius:50%;box-shadow:0 0 0 2px var(--portal-color-9203fef560),0 0 0 1px var(--portal-color-bf48c79991);display:inline-block;height:10px;width:10px}.led.ok{background:var(--portal-status-good-border)}.led.warn{background:var(--portal-status-warn-border)}.led.error{background:var(--portal-status-bad-border)}.led.pending{background:var(--portal-status-info-border)}.system-health-summary{margin-top:6px}.system-health-shell.is-loading .system-health-grid,
      .system-health-shell.is-loading .system-health-summary{visibility:hidden}.stat-card{--stat-card-accent:var(--portal-border-strong);--stat-card-accent-soft:var(--portal-color-3adead38cc);--stat-card-bg-end:var(--portal-chart-surface);--stat-card-bg-start:var(--portal-chart-surface-soft);--stat-card-border:var(--portal-border);--stat-card-border-soft:var(--portal-color-7f8b941c53);--stat-card-label:var(--portal-data-label);--stat-card-value:var(--ink);background:linear-gradient(180deg,var(--stat-card-bg-start) 0,var(--stat-card-bg-end) 100%);border:1px solid var(--stat-card-border);border-radius:var(--radius-2);overflow:hidden;padding:8px;position:relative}.stat-card::before{background:linear-gradient(135deg,var(--stat-card-accent-soft),transparent 70%);inset:0}.stat-card::after,.stat-card::before{content:"";pointer-events:none;position:absolute}.stat-card::after{background:var(--stat-card-accent);height:3px;inset-block-start:0;inset-inline:0}.stat-card > *{position:relative;z-index:1}.stat-card--student{--stat-card-accent:var(--hub-theme-card-student-tone-border);--stat-card-accent-soft:var(--hub-theme-card-student-tone-soft);--stat-card-bg-start:var(--portal-color-a6f8278158);--stat-card-bg-end:var(--portal-color-4ae9a1f7c6);--stat-card-border:var(--hub-theme-card-student-border);--stat-card-border-soft:var(--hub-theme-card-student-border-soft)}.stat-card--good{--stat-card-accent:var(--portal-status-good-border);--stat-card-accent-soft:var(--portal-color-b0a854d782);--stat-card-bg-start:var(--portal-status-good-bg);--stat-card-bg-end:var(--portal-color-d2900205b2);--stat-card-border:var(--portal-status-good-border);--stat-card-border-soft:var(--portal-color-4b343826a8)}.stat-card--warn{--stat-card-accent:var(--portal-status-warn-border);--stat-card-accent-soft:var(--portal-color-a747dbf759);--stat-card-bg-start:var(--portal-status-warn-bg);--stat-card-bg-end:var(--portal-color-a48f0535e6);--stat-card-border:var(--portal-status-warn-border);--stat-card-border-soft:var(--portal-color-9783dee77b)}.stat-card--bad{--stat-card-accent:var(--portal-status-bad-border);--stat-card-accent-soft:var(--portal-color-6fcde86d35);--stat-card-bg-start:var(--portal-status-bad-bg);--stat-card-bg-end:var(--portal-color-375613b652);--stat-card-border:var(--portal-status-bad-border);--stat-card-border-soft:var(--portal-color-9783dee77b)}.stat-label{color:var(--stat-card-label);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.stat-value{color:var(--stat-card-value);font-size:18px;font-variant-numeric:tabular-nums;font-weight:700;margin-top:2px}.mini-list{max-height:180px;overflow:auto;padding:8px;white-space:pre-wrap}.chart-shell,.mini-list{background:var(--portal-chart-surface);border:1px solid var(--portal-border);border-radius:var(--radius-2)}.chart-shell{margin-top:6px;padding:6px}.chart-svg{background:var(--portal-chart-surface);border-radius:var(--radius-2);display:block;min-height:240px;width:100%}.chart-legend{color:var(--portal-support-message);display:flex;font-size:11px;gap:12px;margin-top:6px}.legend-dot{border-radius:50%;display:inline-block;height:9px;margin-right:5px;width:9px}.legend-dot.assigned{background:var(--portal-color-2e75310a87)}.legend-dot.completed{background:var(--portal-color-25d88c9a84)}.bar-chart-shell .chart-svg{min-height:240px}.bar-detail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.bar-detail-actions button{align-items:center;background:var(--level-detail-btn-bg);border-color:var(--level-detail-btn-border);color:var(--level-detail-btn-text);display:inline-flex;font-size:11px;font-variant-numeric:tabular-nums;inline-size:auto;justify-content:center;min-width:160px;padding:6px 10px;text-align:center}.bar-detail-actions button.level-theme-btn{background:var(--level-theme-bg,var(--level-detail-btn-bg));border-color:var(--level-theme-border,var(--level-detail-btn-border));color:var(--level-theme-text,var(--level-detail-btn-text))}.bar-detail-actions button:hover{filter:brightness(.92)}.panelbg-eggs-chicks{background-color:var(--portal-color-cbfc8005b4);border-radius:var(--radius-1)}.panelbg-starters{background-color:var(--portal-color-03b5721e8c);border-radius:var(--radius-1)}.panelbg-mov{background-color:var(--portal-color-46586438f4)}.panelbg-fly,.panelbg-mov{border-radius:var(--radius-1)}.panelbg-fly{background-color:var(--portal-color-edb7fe91a8)}.panelbg-key{background-color:var(--portal-color-709e6795a7)}.panelbg-key,.panelbg-pet{border-radius:var(--radius-1)}.panelbg-pet{background-color:var(--portal-color-9c1eaddb49)}.panelbg-ielts{background-color:var(--portal-color-fd15f49e34)}.panelbg-ielts,.panelbg-tayk{border-radius:var(--radius-1)}.panelbg-tayk{background-color:var(--portal-color-312c8e26c3)}.panelbg-private{background-color:var(--tertiary-color);border-radius:var(--radius-1)}
      .bar-detail-actions button.panelbg-fly,.bar-detail-actions button.panelbg-starters{color:var(--portal-color-acba0a17f6)}.level-detail-panel{background:var(--surface-contrast);border:1px solid var(--level-panel-border,var(--border-strong));border-radius:var(--radius-2);box-shadow:inset 0 0 0 1px var(--level-panel-shadow,transparent);margin-top:0;padding:8px}.overview-layout>.level-detail-panel{grid-column:1/-1}.level-detail-panel h3{color:var(--level-panel-title,var(--ink))}.level-detail-panel input[type="checkbox"]{accent-color:var(--level-panel-accent,var(--tertiary-color))}#levelDetailPanel .table-scroll-wrap table{min-width:760px}#levelDetailRows td{font-size:11px;overflow-wrap:anywhere}.level-chip{--chip-height:30px;--chip-min-ar:4.2;align-items:center;background:var(--chip-bg,var(--portal-color-e794d5c0c8));border:solid var(--chip-border,var(--border-strong));border-radius:999px;border-width:2px 2px 3px;box-shadow:0 1px 0 var(--portal-color-2a05c02cf9);box-sizing:border-box;color:var(--chip-text,var(--ink));display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:900;gap:6px;height:var(--chip-height);inline-size:auto;line-height:1;max-inline-size:100%;min-height:0;text-align:center;text-transform:uppercase;white-space:nowrap}.level-chip,.level-chip.level-chip-standard{justify-content:center;min-inline-size:calc(var(--chip-height)*var(--chip-min-ar));padding:0 10px}.level-chip::before{display:none}
      a .level-chip:focus-visible,
      a .level-chip:hover,
      a.level-chip:focus-visible,a.level-chip:hover{cursor:pointer}.checkbox-inline{inline-size:auto;margin:0}.menu-toggle-wrap{display:none}.menu-toggle-btn{background:var(--menu-header-bg);border-color:var(--menu-border);color:var(--ink);inline-size:auto;min-inline-size:92px}.portal-theme-toggle{align-items:center;background:transparent;border-color:transparent;box-shadow:none;color:var(--ink);display:inline-flex;flex:0 0 auto;inline-size:44px;justify-content:center;min-inline-size:44px;padding:0}.portal-theme-toggle:hover:not(:disabled){background:var(--portal-color-57b962ee7c);border-color:transparent;box-shadow:none;filter:none;transform:none}.portal-theme-toggle:focus-visible{outline-offset:2px}.portal-theme-toggle__icon{align-items:center;display:inline-flex;height:22px;justify-content:center;width:22px}.portal-theme-toggle__icon svg{display:block;height:100%;width:100%}.app-header-menu-toggle{display:none;justify-self:end;max-inline-size:160px}.hub-status-wrap{align-items:center;display:grid;gap:6px;grid-template-columns:minmax(0,1fr) auto}.hub-pill{align-items:center;border:1px solid transparent;border-radius:var(--radius-pill);display:inline-flex;font-size:11px;font-weight:700;justify-content:center;min-height:30px;padding:5px 10px;text-align:center;white-space:nowrap}.hub-pill.pending{background:var(--portal-status-warn-bg);border-color:var(--portal-status-warn-border);color:var(--portal-status-warn-text)}.hub-pill.connected{background:var(--portal-status-good-bg);border-color:var(--portal-status-good-border);color:var(--portal-status-good-text)}.hub-pill.disconnected{background:var(--portal-status-bad-bg);border-color:var(--portal-status-bad-border);color:var(--portal-status-bad-text)}.system-health-service-card{gap:6px}.service-control-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}#hubStatusMeta{font-family:ui-monospace,SF Mono,menlo,consolas,monospace;margin-top:4px}.attendance-landing-grid{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(220px,320px) minmax(0,1fr)}.attendance-level-panel,
      .attendance-student-panel{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-3);display:grid;gap:8px;min-width:0;padding:10px}.attendance-level-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.attendance-level-tile{align-items:flex-end;appearance:none;aspect-ratio:1/1;background-position:50%,50%;background-repeat:no-repeat,no-repeat;background-size:cover,contain;border:1px solid var(--border-strong);border-radius:var(--radius-3);box-shadow:0 1px 3px var(--portal-color-ca3c517be2);color:var(--portal-color-53432a348e);cursor:pointer;display:flex;font-size:11px;font-weight:700;justify-content:center;min-height:92px;padding:6px;text-align:center;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.attendance-level-tile:hover{box-shadow:0 3px 8px var(--portal-color-8f0ff52e0d);transform:translateY(-1px)}.attendance-level-tile.active{border-color:var(--tertiary-color);box-shadow:0 0 0 2px var(--portal-color-4a4eba674d),0 3px 8px var(--portal-color-ddbaa7561b)}.attendance-level-tile-title{background:var(--portal-color-a4aa943622);border-radius:var(--radius-2);box-sizing:border-box;color:var(--portal-color-2cdb084429);inline-size:100%;line-height:1.2;overflow-wrap:anywhere;padding:3px 5px}.attendance-level-editor{border-top:1px solid var(--border-strong);display:grid;gap:6px;padding-top:8px}.attendance-level-editor h4{color:var(--ink);font-size:12px;margin:0}.attendance-level-editor input[type="file"]{line-height:1.2;min-height:34px;padding:3px}.school-logo-preview{aspect-ratio:1/1;background:var(--portal-color-ec28aed7ca);border:1px dashed var(--border-strong);border-radius:var(--radius-3);display:grid;inline-size:min(220px,100%);margin-bottom:8px;overflow:hidden;place-items:center}.school-logo-preview.has-image{background:var(--portal-color-c659d630ce);border-style:solid}.school-logo-preview img{block-size:100%;inline-size:100%;object-fit:cover}.school-logo-preview .fallback{color:var(--ink-muted);font-size:12px;padding:10px;text-align:center}.school-setup-links-grid{border-top:1px solid var(--border-soft);margin-top:8px;padding-top:8px}.school-setup-links-grid textarea{min-height:52px}.attendance-row-name{color:var(--ink);font-weight:700}.attendance-row-id{color:var(--ink-muted);font-family:ui-monospace,SF Mono,menlo,consolas,monospace;font-size:10px;margin-top:2px}.attendance-radio-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.attendance-radio-option{align-items:center;background:var(--portal-color-d14f901611);border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--portal-color-c3656bda4a);display:inline-flex;font-size:13px;font-weight:700;gap:6px;line-height:1.2;padding:5px 10px;white-space:nowrap}.attendance-radio-option:has(input:checked){background:var(--portal-color-3c48a6d95d);border-color:var(--tertiary-color);box-shadow:0 0 0 1px var(--portal-color-ba0cc5c38a);color:var(--portal-color-4d6f92dfee)}.attendance-radio-option input{accent-color:var(--tertiary-color);height:16px;inline-size:auto;margin:0;width:16px}.attendance-cell-num{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700;text-align:center}.attendance-state-readonly{color:var(--portal-color-c1ea88f252)}.assignments-landing-grid{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(220px,320px) minmax(0,1fr)}.assignment-item-builder{background:var(--surface-card-muted);border:1px solid var(--border-strong);border-radius:var(--radius-2);display:grid;gap:8px;padding:8px}.assignment-item-builder h4{color:var(--ink);font-size:12px;margin:0}
      .assignment-item-table td,.assignment-item-table th{vertical-align:middle}.assignment-item-title{color:var(--ink);font-weight:700}.assignment-item-link{color:var(--link-color);overflow-wrap:anywhere;text-decoration:underline}.assignment-completion-pill{align-items:center;background:var(--portal-color-a28e5c5618);border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--portal-color-6861024013);display:inline-flex;font-size:11px;font-weight:700;padding:3px 8px;white-space:nowrap}.assignment-completion-pill.complete{background:var(--portal-status-good-bg);border-color:var(--portal-status-good-border);color:var(--portal-status-good-text)}.assignment-record-items{display:grid;gap:4px;min-width:0}.assignment-record-item{line-height:1.3;overflow-wrap:anywhere}.assignment-record-item.done{color:var(--portal-color-b710eadc9f)}.parent-tracking-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-tracking-grid>.attendance-level-panel,
      .parent-tracking-grid>.attendance-student-panel{grid-column:1/-1}.parent-tracking-form{gap:10px}.progress-report-meta{align-items:end;display:grid;gap:8px;grid-template-columns:repeat(12,minmax(0,1fr))}.progress-report-layout{align-items:start;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(clamp(260px,42vw,540px),1fr))}.progress-report-span-2{grid-column:1/-1}.progress-report-column{display:grid;gap:10px;min-width:0}.progress-report-card{background:var(--portal-chart-surface-soft);border:1px solid var(--portal-border);border-radius:var(--radius-2);display:grid;gap:6px;min-width:0;padding:8px}.progress-report-card h4{color:var(--portal-text);font-size:12px;letter-spacing:.01em;margin:0}.progress-report-card p{color:var(--portal-support-message);line-height:1.45;margin:0}.progress-report-vision-row{display:flex;flex-wrap:wrap;gap:8px}.progress-report-vision-option{align-items:center;background:var(--portal-chart-surface);border:1px solid var(--portal-border);border-radius:var(--radius-pill);color:var(--portal-text);display:inline-flex;font-size:11px;gap:6px;margin:0;padding:4px 8px}.progress-report-vision-option input{inline-size:auto;margin:0}.progress-report-table-wrap{background:var(--portal-chart-surface);border:1px solid var(--portal-border);border-radius:var(--radius-2);overflow:auto}.progress-report-table{border-collapse:collapse;font-size:12px;min-width:620px;width:100%}
      .progress-report-table td,.progress-report-table th{border:1px solid var(--border);line-height:1.35;padding:5px 6px;vertical-align:top}.progress-report-table thead th{background:var(--portal-chart-surface-soft);color:var(--portal-text);font-weight:700}.progress-report-table .score-cell{max-width:96px;min-width:96px;text-align:center;white-space:nowrap;width:96px}.progress-report-rubric-table th.score-cell{overflow:visible;position:relative}.pt-score-header-label{display:inline-block;vertical-align:middle}.pt-score-legend{display:inline-flex;margin-left:4px;position:relative;vertical-align:middle}.pt-score-legend-btn{align-items:center;background:var(--portal-color-2d8370cc89);border:1px solid var(--portal-color-1fafc2b5c0);border-radius:999px;box-sizing:border-box;color:var(--portal-color-bd73054f6d);cursor:pointer;display:inline-flex;font-size:10px;font-weight:800;height:17px;justify-content:center;line-height:1;margin:0;min-width:17px;padding:0;width:17px}.pt-score-legend-btn:hover{background:var(--portal-color-9548739191);border-color:var(--portal-color-ccfa40c9d0)}.pt-score-legend-popover{background:var(--portal-color-c659d630ce);border:1px solid var(--portal-color-5f0caed72f);border-radius:8px;box-shadow:0 10px 22px var(--portal-color-426a2e5cc8);box-sizing:border-box;color:var(--portal-color-a0cebdc6af);max-width:min(360px,78vw);min-width:260px;padding:8px 10px;position:absolute;right:0;text-align:left;top:calc(100% + 7px);white-space:normal;z-index:50}.pt-score-legend-title{color:var(--portal-color-6f258c7bd7);font-size:11px;font-weight:800;letter-spacing:.02em;margin:0 0 6px}.pt-score-legend-list{display:grid;gap:4px;list-style:none;margin:0;padding:0}.pt-score-legend-list li{font-size:11px;line-height:1.3;margin:0}.progress-report-table .score-cell input:not([type="radio"]):not([type="hidden"]),
      .progress-report-table .score-cell select{box-sizing:border-box;line-height:1.2;max-width:5.2ch;min-width:5.2ch;padding:2px 1px;text-align:center;width:5.2ch}.progress-report-rubric-table .score-cell input[type="number"]{appearance:textfield}
      .progress-report-rubric-table .score-cell input[type="number"]::-webkit-inner-spin-button,.progress-report-rubric-table .score-cell input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pt-score-radio-wrapper{display:grid;justify-items:stretch}.pt-score-radio-grid{display:grid;gap:3px 4px;grid-template-columns:repeat(3,minmax(0,1fr));min-width:86px}.pt-score-radio-option{align-items:center;background:var(--portal-color-53432a348e);border:1px solid var(--portal-color-9d851aa3c8);border-radius:6px;box-sizing:border-box;color:var(--portal-color-ad9368f436);display:flex;font-size:11px;font-weight:700;gap:3px;justify-content:center;min-height:24px;padding:1px 2px}.pt-score-radio-option input[type="radio"]{accent-color:var(--portal-color-7f8784021f);height:12px;margin:0;width:12px}.pt-score-radio-option span{line-height:1}.pt-score-hidden{display:none}.progress-report-table .recommendation-cell{width:36%}.progress-report-rubric-table{min-width:0;table-layout:fixed}
      .progress-report-rubric-table td:first-child,.progress-report-rubric-table th:first-child{max-width:30%;overflow-wrap:anywhere;width:30%;word-break:break-word}.progress-report-rubric-table .recommendation-cell{width:auto}.progress-report-table .recommendation-cell textarea{min-height:48px;resize:vertical}.progress-report-rubric-row-disabled td{background:var(--portal-color-000d003e64);color:var(--portal-color-4809f882c5)}
      .progress-report-rubric-row-disabled .recommendation-cell textarea:disabled,
      .progress-report-rubric-row-disabled .score-cell input:disabled,.progress-report-rubric-row-disabled .score-cell select:disabled{background:var(--portal-color-47fb0fc0c1);box-sizing:border-box;color:var(--portal-color-4809f882c5);cursor:not-allowed;opacity:1}.progress-report-rubric-row-disabled .pt-score-radio-option{background:var(--portal-color-47fb0fc0c1);border-color:var(--portal-color-fac29d76ac);color:var(--portal-color-4809f882c5)}.progress-shorthand-row{align-items:end}#pt_actionHelperStatus{margin-top:2px}.parent-tracking-grid #pt_outstandingRows td{vertical-align:top}.parent-tracking-detail-body{color:var(--ink);font-family:ui-monospace,SF Mono,menlo,consolas,monospace;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.parent-tracking-link-btn{align-items:center;background:transparent;border:none;color:var(--link-color);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;padding:0;text-decoration:underline}
      #overviewIncomingExerciseDetails summary,#performanceQueueDetails summary{align-items:center;color:var(--ink);cursor:pointer;display:flex;font-weight:700;gap:8px;justify-content:space-between;list-style:none}
      #overviewIncomingExerciseDetails summary::-webkit-details-marker,#performanceQueueDetails summary::-webkit-details-marker{display:none}.queue-row-btn{background:transparent;border:none;color:var(--link-color);cursor:pointer;font-size:12px;font-weight:700;padding:0;text-decoration:underline}.incoming-disposition-actions{display:flex;flex-wrap:wrap;gap:4px}.incoming-disposition-actions button{font-size:11px;inline-size:auto;min-width:74px;padding:4px 8px}#overviewIncomingExerciseActionStatus{margin-top:4px;overflow-wrap:anywhere}#overviewClassTableWrap table{min-width:420px}#overviewIncomingExerciseDetails .table-scroll-wrap table{min-width:980px}#performanceQueueDetails .table-scroll-wrap table{min-width:760px}.hs-cm-cell{font-weight:700;white-space:nowrap}.hs-cm-flag{padding:0 2px}.hs-cm-flag.is-yes{color:var(--portal-color-0c79f2d461)}.hs-cm-flag.is-no{color:var(--portal-color-7a02302f0b)}#overviewClassRows td,
      #overviewIncomingExerciseRows td,
      #performanceQueueRows td{overflow-wrap:anywhere}.small{color:var(--tertiary-color);font-size:13px}#status{color:var(--ink-muted);font-size:12px;min-height:28px;white-space:pre-wrap}.parent-tracking-save-notice{background:var(--portal-color-e59910651a);border:1px solid var(--portal-color-c736538b33);border-radius:var(--radius-2);color:var(--portal-color-ec630fca03);display:grid;font-size:13px;font-weight:700;gap:4px;line-height:1.35;margin-top:8px;padding:10px 12px}.parent-tracking-save-notice.error{background:var(--portal-color-23882d0d91);border-color:var(--portal-color-3e7fb9eac4);color:var(--portal-color-69fd3cb4e6)}.parent-tracking-save-notice .small{color:inherit;font-size:11px;font-weight:500}.news-review-viewer-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.news-review-viewer-block{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-2);display:grid;gap:4px;min-width:0;padding:8px 10px}.news-review-viewer-block strong{color:var(--ink);font-size:11px;letter-spacing:.04em;margin:0;text-transform:uppercase}.news-review-viewer-block span,
      .news-review-viewer-long{color:var(--ink);font-size:13px;line-height:1.45;margin:0;overflow-wrap:anywhere}.news-review-viewer-long{white-space:pre-wrap}.news-review-viewer-block a{color:var(--link-color);overflow-wrap:anywhere;word-break:break-word}.news-review-viewer-review{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-2);display:grid;gap:6px;padding:8px 10px}.news-review-viewer-review label{margin-bottom:0}.news-review-viewer-actions{display:flex;flex-wrap:wrap;gap:8px}.news-review-viewer-actions button{inline-size:auto;min-width:132px}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.app-sidebar{width:min(92vw,320px)}.news-review-viewer-grid,.progress-report-layout{grid-template-columns:1fr}.permission-page-grid,.stats-grid,.system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.system-health-hub-card{grid-column:1/-1}.system-health-shell{min-height:620px}.chart-svg{min-height:220px}.assignments-landing-grid,.attendance-landing-grid{grid-template-columns:1fr}.queue-modal-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main{grid-template-columns:1fr}.col-1,.col-10,.col-11,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{grid-column:span 12}.panel.page-section[data-page="assignments-data"],
        .panel.page-section[data-page="grades-data"],
        .panel.page-section[data-page="performance-data"],
        .panel.page-section[data-page="reports"]{overflow-x:auto}}@media (max-width:820px){.app-page-header{padding:8px 10px 8px 60px}.app-brand-strip{gap:8px;grid-template-columns:auto minmax(0,1fr);row-gap:6px}.app-header-actions{grid-column:1/-1}.app-brand-logo-wrap{height:38px;width:38px}.app-school-name{font-size:clamp(11px,3.8vw,14px)}.menu-toggle-btn{min-inline-size:clamp(74px,24vw,102px);padding-inline:8px}.text-zoom-controls{justify-content:flex-start}.text-zoom-controls .global-text-label{display:none}#globalTextZoomControls{gap:4px}.text-zoom-controls button{min-inline-size:0}.floating-menu-btn{block-size:40px;inline-size:40px}.progress-report-table{min-width:560px}.progress-report-rubric-table{min-width:0}.progress-report-rubric-table thead{display:none}.progress-report-rubric-table tbody{display:block}.progress-report-rubric-table tr{border-bottom:1px solid var(--border);display:grid;gap:6px 10px;grid-template-columns:minmax(0,1fr) auto;padding:8px 6px}.progress-report-rubric-table td{border:0;display:block;padding:0}.progress-report-rubric-table td:first-child{grid-column:1;max-width:none;width:auto}.progress-report-rubric-table td.score-cell{grid-column:2;justify-self:end;max-width:none;min-width:0;width:auto}.progress-report-rubric-table td.recommendation-cell{grid-column:1/-1;margin-top:2px}.progress-report-rubric-table td.recommendation-cell textarea{min-height:72px;width:100%}.overview-layout{grid-template-columns:1fr}.overview-group.full,.overview-layout>.level-detail-panel{grid-column:auto}
        #overviewIncomingExerciseDetails summary,#performanceQueueDetails summary{align-items:flex-start;flex-wrap:wrap}
        #overviewIncomingExerciseSummary,#performanceQueueSummary{width:100%}#overviewClassTableWrap table{min-width:360px}#overviewIncomingExerciseDetails .table-scroll-wrap table{min-width:820px}#performanceQueueDetails .table-scroll-wrap table{min-width:680px}#levelDetailPanel .actions,#overviewIncomingExerciseSection .actions,#performanceQueueSection .actions,.grade-chart-filter-grid{grid-template-columns:1fr}.grade-chart-lane-head{align-items:flex-start;flex-direction:column}.grade-chart-lane-metrics{text-align:left}.page-section[data-page="news-reports"] .table-toolbar{align-items:start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.page-section[data-page="news-reports"] .table-toolbar .toolbar-field,
        .page-section[data-page="news-reports"] .table-toolbar .toolbar-field.compact{flex:initial;min-width:0}.page-section[data-page="news-reports"] .table-toolbar button{box-sizing:border-box;min-width:0;width:100%}.page-section[data-page="news-reports"] .table-scroll-wrap table{min-width:0;width:100%}.page-section[data-page="news-reports"] .table-scroll-wrap thead{display:none}.page-section[data-page="news-reports"] .table-scroll-wrap tbody{display:grid;gap:10px}.page-section[data-page="news-reports"] .table-scroll-wrap tbody tr{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-2);display:grid;gap:6px;grid-template-columns:minmax(0,1fr);padding:10px}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td{align-items:start;border:0;display:grid;gap:8px;grid-template-columns:minmax(112px,40%) minmax(0,1fr);padding:0}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td::before{color:var(--ink-muted);content:attr(data-label);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td:last-child{grid-template-columns:minmax(0,1fr)}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td:last-child::before{content:""}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td:last-child .queue-row-btn{box-sizing:border-box;width:100%}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td[colspan]{display:block}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td[colspan]::before{content:none}.table-scroll-wrap{border-radius:var(--radius-2)}}@media (max-width:560px){.text-zoom-controls .global-text-label{display:none}.page-section[data-page="news-reports"] .table-toolbar{grid-template-columns:minmax(0,1fr)}.page-section[data-page="news-reports"] .admin-table-summary{font-size:11px;letter-spacing:.02em}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td{gap:3px;grid-template-columns:minmax(0,1fr)}.page-section[data-page="news-reports"] .table-scroll-wrap tbody td::before{font-size:10px}.news-review-viewer-actions button{min-width:0;width:100%}}*,
      *::after,
      *::before{box-sizing:border-box}html[data-theme="dark"] body.admin-portal-page :where(.wrap){background:transparent}html[data-theme="dark"] body.admin-portal-page :where(.panel, .app-sidebar, .page-section, .app-page-header, .attendance-student-panel, .overview-group > details, .level-detail-panel){background:linear-gradient(180deg,var(--portal-dark-surface-support),var(--portal-dark-panel));border-color:var(--portal-dark-border);border-radius:var(--portal-dark-radius);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.school-map-preview-shell,
        .queue-modal-card,
        .queue-hub-panel,
        .profile-tabs-shell,
        .profile-info-tabs,
        .profile-tab-panel,
        .profile-info-summary,
        .profile-summary-primary,
        .profile-info-panel,
        .profile-info-group,
        .profile-info-item,
        .profile-info-empty-stack,
        .profile-field-group,
        .profile-choice-item,
        .profile-layout-editor,
        .profile-layout-table-wrap,
        .table-scroll-wrap,
        .table-column-controls,
        .attendance-column-controls,
        .school-logo-preview,
        .attendance-radio-option,
        .progress-report-card,
        .progress-report-vision-option,
        .progress-report-table-wrap,
        .pt-score-legend-popover,
        .pt-score-radio-option,
        .grade-chart-shell,
        .tabulator-entry-callout){background:linear-gradient(180deg,var(--portal-dark-card-soft),var(--portal-dark-card));border-color:var(--portal-dark-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.muted, .small, .page-note, .admin-table-summary, .profile-summary-kicker, .profile-summary-subline, .profile-summary-chip-label, .grade-chart-summary, .parent-tracking-detail-body){color:var(--portal-dark-text-soft)}html[data-theme="dark"] body.admin-portal-page :where(.menu-group, .menu-link, .menu-link.active){border-color:var(--portal-dark-border)}html[data-theme="dark"] body.admin-portal-page .menu-group{background:linear-gradient(180deg,var(--portal-dark-surface-support) 0,var(--portal-dark-panel) 100%)}html[data-theme="dark"] body.admin-portal-page .menu-link{background:var(--portal-dark-surface-support);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .menu-link.active{background:var(--portal-dark-surface-soft);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.app-brand-logo-wrap, .sidebar-logo-wrap){background:var(--portal-dark-surface-soft)!important;border-color:var(--portal-dark-border)!important}html[data-theme="dark"] body.admin-portal-page .system-health-loading-pulse{color:var(--portal-color-7e4f1499c9)}@keyframes system-health-pulse{to{opacity:0;transform:perspective(352px) translateZ(176px)}}html[data-theme="dark"] body.admin-portal-page :where(.app-brand-logo-fallback, .sidebar-logo-fallback){color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page{background:var(--portal-dark-page-bg);color:var(--portal-dark-text);color-scheme:dark}html[data-theme="dark"] body.admin-portal-page .app-page-header{background:linear-gradient(180deg,var(--portal-color-bd827b1b26) 0,var(--portal-color-75e50d3433) 100%);border-color:var(--portal-color-588c301c36);color:var(--portal-color-d14f901611)}html[data-theme="dark"] body.admin-portal-page .app-school-name{color:var(--portal-dark-text)}
      html[data-theme="dark"] body.admin-portal-page .chart-shell,html[data-theme="dark"] body.admin-portal-page .mini-list{background:var(--portal-chart-surface-soft);border-color:var(--portal-border);color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .chart-svg{background:var(--portal-chart-surface)}
      html[data-theme="dark"] body.admin-portal-page #overviewRiskStudents,
      html[data-theme="dark"] body.admin-portal-page .bar-chart-shell .small,html[data-theme="dark"] body.admin-portal-page .chart-legend{color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .system-health-item{border-color:var(--portal-dark-border-strong);box-shadow:inset 0 0 0 1px var(--portal-color-33ade86742);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .system-health-item,html[data-theme="dark"] body.admin-portal-page .system-health-item.error,html[data-theme="dark"] body.admin-portal-page .system-health-item.ok,html[data-theme="dark"] body.admin-portal-page .system-health-item.pending,html[data-theme="dark"] body.admin-portal-page .system-health-item.warn{background:linear-gradient(180deg,var(--portal-dark-card-soft),var(--portal-dark-card))}html[data-theme="dark"] body.admin-portal-page .system-health-item.ok{border-color:var(--portal-color-597d622954)}html[data-theme="dark"] body.admin-portal-page .system-health-item.warn{border-color:var(--portal-color-01768eaf2d)}html[data-theme="dark"] body.admin-portal-page .system-health-item.error{border-color:var(--portal-color-b52559cb1c)}html[data-theme="dark"] body.admin-portal-page .system-health-item.pending{border-color:var(--portal-color-4a291f7155)}html[data-theme="dark"] body.admin-portal-page .system-health-label{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .system-health-detail,
      html[data-theme="dark"] body.admin-portal-page .system-health-summary,
      html[data-theme="dark"] body.admin-portal-page .text-zoom-controls .zoom-label{color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .queue-hub-panel{background:linear-gradient(180deg,var(--portal-dark-card-soft),var(--portal-dark-card));border-color:var(--portal-dark-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .queue-row-btn:focus-visible,
      html[data-theme="dark"] body.admin-portal-page .row-options-trigger:focus-visible{outline:2px solid var(--portal-color-56fcea51d1)}html[data-theme="dark"] body.admin-portal-page .attendance-level-panel{background:var(--portal-chart-surface-soft);border-color:var(--portal-border);color:var(--portal-dark-text)}
      html[data-theme="dark"] body.admin-portal-page .attendance-level-editor h4,html[data-theme="dark"] body.admin-portal-page .attendance-level-panel>h3{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .attendance-level-tile{border-color:var(--portal-dark-border);box-shadow:inset 0 1px 0 var(--portal-color-81aacf4ad5);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .attendance-level-tile-title{background:var(--portal-color-eb22a8aca6);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .assignment-item-builder{background:var(--portal-chart-surface-soft);border-color:var(--portal-border);color:var(--portal-dark-text)}
      html[data-theme="dark"] body.admin-portal-page .assignment-item-builder .small,html[data-theme="dark"] body.admin-portal-page .assignment-item-builder h4,
      html[data-theme="dark"] body.admin-portal-page .assignment-item-builder label{color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .assignment-item-table thead th{background:var(--portal-dark-card-deep);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .assignment-item-table td{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .queue-hub-empty{background:var(--portal-chart-surface-soft);border-color:var(--portal-border);color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .queue-hub-panel.drop-target{background:linear-gradient(180deg,var(--portal-color-344889c9c5) 0,var(--portal-color-ff3f35cedc) 100%);border-color:var(--portal-color-719541c06a)}html[data-theme="dark"] body.admin-portal-page .queue-hub-order-dirty{background:linear-gradient(180deg,var(--portal-color-069bc807ea) 0,var(--portal-color-ddfd1638e3) 100%);border-color:var(--portal-color-f901fae8ae)}html[data-theme="dark"] body.admin-portal-page :where(.profile-tabs-shell, .profile-info-tabs, .profile-tab-panel, .profile-info-summary, .profile-summary-primary, .profile-summary-chip, .profile-info-panel, .profile-info-group, .profile-info-item, .profile-info-empty-stack, .profile-field-group, .profile-choice-item, .profile-layout-editor, .profile-layout-table-wrap){box-shadow:none}html[data-theme="dark"] body.admin-portal-page .profile-summary-chip{background:var(--portal-color-d14f901611);border-color:var(--portal-color-a5d9717d79)}html[data-theme="dark"] body.admin-portal-page .profile-summary-chip-label{color:var(--portal-color-1d89e3bf1e)}html[data-theme="dark"] body.admin-portal-page .profile-summary-chip-value{color:var(--portal-color-97f9ffca77)}html[data-theme="dark"] body.admin-portal-page :where(.profile-info-toolbar h3,
        .profile-editor-toolbar h3,
        .profile-summary-name,
        .profile-summary-chip-value,
        .profile-info-group h4,
        .profile-field-group h3,
        .profile-choice-item label,
        #profileTabStatus){color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.profile-summary-kicker,
        .profile-summary-subline,
        .profile-summary-chip-label,
        .profile-info-group-meta,
        .profile-info-label,
        .profile-info-value,
        .profile-info-empty,
        .profile-info-empty-toggle,
        .profile-info-empty-note,
        .profile-file-row + .file-caption,
        .page-section[data-page="profile"] .page-note){color:var(--portal-dark-text-soft)}html[data-theme="dark"] body.admin-portal-page .profile-info-value{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .profile-field-group h3{background:var(--portal-dark-surface-support);border-color:var(--portal-dark-border)}html[data-theme="dark"] body.admin-portal-page .page-section[data-page="profile"]>h2{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.table-column-controls,
        .attendance-column-controls){background:var(--portal-chart-surface);border-color:var(--portal-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page :where(.table-column-controls .small,
        .attendance-column-controls .small,
        .table-column-controls label,
        .attendance-column-controls label){color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page .school-logo-preview{background:var(--portal-chart-surface);border-color:var(--portal-border)}html[data-theme="dark"] body.admin-portal-page .school-logo-preview.has-image{background:var(--portal-chart-surface-soft)}html[data-theme="dark"] body.admin-portal-page .attendance-radio-option{background:linear-gradient(180deg,var(--portal-dark-card-soft),var(--portal-dark-card));border-color:var(--portal-dark-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .attendance-radio-option:has(input:checked){background:var(--portal-color-e826bd6aa5);border-color:var(--portal-color-719541c06a);box-shadow:0 0 0 1px var(--portal-color-568e8455f1);color:var(--portal-color-997324aabe)}html[data-theme="dark"] body.admin-portal-page .attendance-state-readonly{color:var(--portal-color-f901fae8ae)}html[data-theme="dark"] body.admin-portal-page .assignment-record-item.done{color:var(--portal-color-194b2d925e)}html[data-theme="dark"] body.admin-portal-page :where(.progress-report-card,
        .progress-report-table-wrap,
        .pt-score-legend-popover,){background:var(--portal-chart-surface);border-color:var(--portal-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .progress-report-table thead th{background:var(--portal-dark-card-deep);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .pt-score-legend-title{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .progress-report-rubric-row-disabled td{background:var(--portal-chart-surface-soft);color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page :where(.progress-report-rubric-row-disabled .score-cell select:disabled,
        .progress-report-rubric-row-disabled .score-cell input:disabled,
        .progress-report-rubric-row-disabled .recommendation-cell textarea:disabled,
        .progress-report-rubric-row-disabled .pt-score-radio-option){background:var(--portal-chart-surface-soft);border-color:var(--portal-border);color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page :where(.news-review-viewer-block,
        .news-review-viewer-review){background:linear-gradient(180deg,var(--portal-dark-card-soft),var(--portal-dark-card));border-color:var(--portal-dark-border);color:var(--portal-dark-text)}
      html[data-theme="dark"] body.admin-portal-page .news-review-viewer-block span,html[data-theme="dark"] body.admin-portal-page .news-review-viewer-block strong,
      html[data-theme="dark"] body.admin-portal-page .news-review-viewer-long,
      html[data-theme="dark"] body.admin-portal-page .news-review-viewer-review label{color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .news-review-viewer-block .level-chip,
      html[data-theme="dark"] body.admin-portal-page .news-review-viewer-review .level-chip{color:var(--chip-text,var(--portal-color-efc4ce6dd0))}html[data-theme="dark"] body.admin-portal-page #levelReminderSendBtn{color:var(--portal-color-d14f901611)}html[data-theme="dark"] body.admin-portal-page :where(#overviewRuntimeRestartBtn, #exerciseMailerRestartBtn){color:var(--portal-color-d14f901611)}html[data-theme="dark"] body.admin-portal-page :where(input, select, textarea){background:var(--portal-dark-field-bg);border-color:var(--portal-dark-field-border);color:var(--portal-dark-field-text)}html[data-theme="dark"] body.admin-portal-page :where(input, select, textarea)::placeholder{color:var(--portal-dark-field-placeholder)}html[data-theme="dark"] body.admin-portal-page :where(h1, h2, h3, h4, strong, label, summary, th, td){color:inherit}html[data-theme="dark"] body.admin-portal-page :where(table, thead, tbody, tr, th, td, .table-scroll-wrap table){background:transparent;border-color:var(--portal-dark-border);color:var(--portal-dark-text)}html[data-theme="dark"] body.admin-portal-page .grade-chart-shell,html[data-theme="dark"] body.admin-portal-page .tabulator-entry-callout{background:var(--portal-chart-surface);border-color:var(--portal-border)}html[data-theme="dark"] body.admin-portal-page .tabulator-entry-callout{color:var(--portal-dark-text)}
      html[data-theme="dark"] body.admin-portal-page .grade-chart-field label,html[data-theme="dark"] body.admin-portal-page .grade-chart-head .small,
      html[data-theme="dark"] body.admin-portal-page .grade-chart-lane-meta,
      html[data-theme="dark"] body.admin-portal-page .grade-chart-lane-metrics,
      html[data-theme="dark"] body.admin-portal-page .grade-chart-legend-item,
      html[data-theme="dark"] body.admin-portal-page .grade-chart-summary{color:var(--portal-support-message)}html[data-theme="dark"] body.admin-portal-page :where(.grade-chart-field select, .grade-chart-field input){background:var(--portal-dark-field-bg);border-color:var(--portal-dark-field-border);color:var(--portal-dark-field-text)}html[data-theme="dark"] body.admin-portal-page :where(.grade-chart-field input:disabled, .grade-chart-field select:disabled){background:var(--portal-dark-field-bg);color:var(--portal-dark-field-placeholder)}html[data-theme="dark"] body.admin-portal-page .permission-role-card{background:var(--portal-chart-surface);border-color:var(--portal-border);color:var(--portal-dark-text)}