*{box-sizing:border-box}html{min-height:100%;background:var(--bg);color:var(--ink)}body{min-height:100vh;margin:0;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,p{margin-top:0}button,input{font:inherit}button{cursor:pointer}::selection{background:color-mix(in srgb,var(--primary) 16%,transparent)}button:focus-visible,input:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 65%,transparent);outline-offset:2px}.erp-shell{display:flex;min-height:100vh;background:radial-gradient(52rem 30rem at 100% 0,color-mix(in srgb,var(--primary-soft) 28%,transparent),transparent 65%),var(--bg)}.sidebar{position:-webkit-sticky;position:sticky;top:0;flex:0 0 272px;gap:18px;height:100vh;padding:18px 16px 16px;border-right:1px solid var(--line);background:var(--surface)}.brand-block,.sidebar{display:flex;flex-direction:column}.brand-block{position:relative;align-items:stretch;gap:10px;min-height:120px;padding:0 2px 14px 0;border-bottom:1px solid var(--line)}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:10px;background:var(--primary);color:white}.brand-logo-wrap{display:flex;width:186px;height:50px;align-items:center}.brand-logo-wrap img{display:block;width:100%;height:auto;object-fit:contain}.brand-text strong{display:block;color:var(--ink);font-size:.98rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}.brand-text span{color:var(--faint);font-size:.75rem;font-weight:500}.tenant-switcher{display:grid;grid-gap:3px;gap:3px;min-width:0}.tenant-label{color:var(--faint);font-size:.62rem;font-weight:800;letter-spacing:.08em;line-height:1;text-transform:uppercase}.tenant-switcher select{width:100%;min-height:26px;border:0;border-radius:7px;background:transparent;color:var(--ink);padding:0 22px 0 0;font:inherit;font-size:.86rem;font-weight:800;letter-spacing:-.01em}.tenant-switcher select:focus,.tenant-switcher select:hover{background:var(--surface-2);outline:none}.tenant-meta{display:flex;align-items:center;gap:6px;min-width:0}.tenant-meta strong{border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);padding:2px 7px;font-size:.64rem;font-weight:800}.tenant-meta small{overflow:hidden;color:var(--faint);font-size:.68rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.module-nav{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.nav-group+.nav-group{margin-top:6px}.nav-section{margin:8px 10px 6px;color:var(--faint);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.modules-page-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.module-tile{display:grid;min-width:0;min-height:136px;align-content:start;grid-gap:7px;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink);padding:11px;font-size:.8rem;text-decoration:none;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease)}.module-tile:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);color:var(--ink);transform:translateY(-1px)}.module-tile:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 65%,transparent);outline-offset:2px}.module-tile-footer,.module-tile-top{display:flex;align-items:center;justify-content:space-between;gap:7px}.module-tile-icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:7px;background:var(--primary-soft);color:var(--primary-strong)}.module-tile-top small{color:var(--faint);font-size:.7rem;font-weight:700;line-height:1.15;text-align:right}.module-tile strong{margin-top:2px;font-size:.82rem;line-height:1.2}.module-tile-description{color:var(--ink-2);font-size:.7rem;line-height:1.35}.module-tile-footer{align-self:stretch;margin-top:auto;border-top:1px solid var(--line);padding-top:7px;color:var(--faint);font-size:.68rem}.module-tile-footer b{color:var(--primary-strong);font-size:.7rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.grounds-toolbar{display:flex;align-items:center;gap:9px}.maintenance-composer{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr) 150px 130px;grid-gap:10px;gap:10px;border-bottom:1px solid var(--line);background:var(--primary-soft);padding:14px}.maintenance-composer label{display:grid;grid-gap:5px;gap:5px;color:var(--primary-strong);font-size:.73rem;font-weight:750}.maintenance-composer input,.maintenance-composer select{width:100%;min-height:36px;border:1px solid var(--primary);border-radius:8px;background:var(--surface-raised);color:var(--ink);padding:0 9px;font:inherit;font-size:.82rem}.composer-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.table-link-button{display:grid;grid-gap:2px;gap:2px;border:0;background:transparent;color:var(--ink);padding:0;text-align:left}.table-link-button:hover strong{color:var(--primary-strong);text-decoration:underline;text-underline-offset:3px}.table-link-button small{color:var(--faint);font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.maintenance-plan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.maintenance-plan>div{display:grid;grid-gap:3px;gap:3px;border-right:1px solid var(--line);padding:14px 16px}.maintenance-plan>div:last-child{border-right:0}.maintenance-plan small,.maintenance-plan span{color:var(--faint);font-size:.74rem}.maintenance-plan strong{color:var(--ink);font-size:.84rem}.work-order-context{display:grid;grid-gap:9px;gap:9px}.work-order-context h2{margin:0;font-size:.94rem}.work-order-context p{margin:0;color:var(--ink-2);font-size:.79rem;line-height:1.45}.work-order-context>div{display:flex;flex-wrap:wrap;gap:6px}.nav-item{position:relative;display:grid;grid-template-columns:18px 1fr auto;align-items:center;grid-gap:10px;gap:10px;min-height:40px;width:100%;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2);padding:0 8px 0 10px;text-align:left;font-size:.875rem;font-weight:550;transition:background-color .16s var(--ease),color .16s var(--ease)}.nav-item,a.queue-item{text-decoration:none}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--primary-soft);color:var(--primary-strong);font-weight:650}.nav-item.active:before{content:"";position:absolute;left:-16px;top:50%;width:3px;height:20px;translate:0 -50%;border-radius:0 3px 3px 0;background:var(--primary)}.nav-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);color:var(--ink-2);padding:2px 8px;font-size:.7rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.nav-item.active .nav-badge{background:var(--surface-raised);border-color:var(--primary);color:var(--primary-strong)}.nav-badge.live{color:var(--success-strong);border-color:var(--success);background:var(--success-soft)}.nav-badge.live i{width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 color-mix(in srgb,var(--success) 35%,transparent)}50%{opacity:.65;box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 0%,transparent)}}.term-card{margin-top:auto;border-radius:var(--radius);background:linear-gradient(160deg,var(--primary),var(--primary));color:white;padding:15px 16px;box-shadow:var(--shadow-sm)}.term-card .label{color:var(--primary);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.term-card strong{display:block;margin-top:3px;font-size:.95rem;font-weight:700}.term-card p{margin:12px 0 0;color:var(--primary);font-size:.79rem;line-height:1.5}.term-meter{height:7px;overflow:hidden;margin-top:13px;border-radius:999px;background:color-mix(in srgb,var(--surface) 22%,transparent)}.term-meter span{display:block;width:64%;height:100%;border-radius:inherit;background:var(--teal)}.workspace{flex:1 1;min-width:0;padding:0 28px 32px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;gap:12px;margin:0 -28px;padding:12px 28px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.search-box,.topbar{display:flex;align-items:center}.search-box{gap:9px;min-height:40px;max-width:560px;flex:1 1;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:0 11px;color:var(--faint);transition:border-color .16s var(--ease),background-color .16s var(--ease),box-shadow .16s var(--ease)}.search-box:focus-within{border-color:var(--primary);background:var(--surface-raised);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:.875rem}.search-box input::placeholder{color:var(--faint)}.search-box:focus-within input{outline:none}kbd{border:solid var(--line);border-width:1px 1px 2px;border-radius:6px;padding:2px 7px;font-family:inherit;font-size:.7rem;font-weight:700}.date-chip,kbd{background:var(--surface-raised);color:var(--ink-2)}.date-chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:999px;padding:0 13px;font-size:.78rem;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.icon-button,.primary-button,.profile-button,.quiet-button,.secondary-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border-radius:10px;font-size:.85rem;font-weight:650;transition:background-color .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease)}.icon-button{position:relative;width:40px;flex:none;color:var(--ink-2)}.icon-button,.profile-button,.quiet-button,.secondary-button{border:1px solid var(--line);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.profile-button,.quiet-button,.secondary-button{color:var(--ink);padding:0 13px}.quiet-button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.primary-button{border:1px solid var(--primary);background:linear-gradient(180deg,var(--primary),var(--primary));box-shadow:var(--shadow-sm),inset 0 1px 0 color-mix(in srgb,var(--surface) 16%,transparent);color:white;padding:0 15px}.primary-button:hover{background:linear-gradient(180deg,var(--primary),var(--primary-strong));border-color:var(--primary-strong);box-shadow:var(--shadow-md)}.text-button{border:0;background:transparent;color:var(--primary-strong);padding:4px 6px;font-size:.82rem}.link-button{min-height:auto;text-decoration:none}.icon-button:hover,.profile-button:hover,.quiet-button:hover,.secondary-button:hover{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink)}.primary-button:active,.secondary-button:active,.text-button:active{transform:translateY(1px)}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.inline-notice{display:flex;align-items:center;gap:5px;margin:14px 0 -6px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--ink-2);padding:10px 12px;font-size:.84rem;box-shadow:var(--shadow-sm)}.inline-notice strong{color:var(--ink)}.inline-notice.assistant{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 42%,transparent);padding:18px}.action-modal{width:min(640px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:0 18px 42px color-mix(in srgb,var(--primary) 22%,transparent);padding:18px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.modal-header h2{margin:2px 0 0;font-size:1.08rem}.modal-close{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);font-size:1.25rem;line-height:1}.modal-close:hover{border-color:var(--line-strong);color:var(--ink)}.action-modal>p{margin:0 0 14px;color:var(--ink-2);font-size:.875rem;line-height:1.55}.modal-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:14px 0}.modal-field-grid label{display:grid;grid-gap:6px;gap:6px;color:var(--ink-2);font-size:.76rem;font-weight:750}.modal-field-grid label.wide{grid-column:1/-1}.modal-field-grid input,.modal-field-grid select,.modal-field-grid textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);padding:9px 10px;font:inherit;font-size:.84rem}.modal-field-grid select{min-height:38px}.modal-field-grid input[type=file]{padding:7px 9px}.modal-field-grid input:focus,.modal-field-grid select:focus,.modal-field-grid textarea:focus{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 20%,transparent);outline-offset:0}.modal-field-grid textarea{min-height:78px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}@media (max-width:1180px){.maintenance-composer{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.modal-backdrop{align-items:end;padding:0}.action-modal{width:100%;max-height:min(88dvh,760px);border-right:0;border-bottom:0;border-left:0;border-radius:12px 12px 0 0;padding:16px}.modal-field-grid{grid-template-columns:1fr}}.notification-dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border:2px solid var(--surface-raised);border-radius:50%;background:var(--danger)}.profile-button{gap:9px;min-height:42px;padding:0 10px 0 8px}.profile-button>span:first-child{display:grid;width:29px;height:29px;flex:none;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:800}.profile-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}.profile-text strong{display:block;color:var(--ink);font-size:.82rem;font-weight:650}.profile-text small{color:var(--faint);font-size:.7rem;font-weight:550}.close-mobile,.menu-button{display:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:24px 0 20px}.module-context{display:inline-flex;align-items:center;gap:7px;color:var(--primary-strong);font-size:.8rem;font-weight:700;letter-spacing:.01em}.context-sep{color:var(--line-strong)}h1{max-width:720px;margin-bottom:7px;color:var(--ink);font-size:1.72rem;font-weight:700;letter-spacing:-.022em;line-height:1.15;text-wrap:balance}.page-head p,.panel-header p{max-width:70ch;margin-bottom:0;color:var(--ink-2);font-size:.875rem;line-height:1.55}.action-feedback{display:inline-flex;margin-top:9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);padding:4px 10px;font-size:.76rem;font-weight:700}h2{margin-bottom:3px;color:var(--ink);font-size:.95rem;font-weight:700;letter-spacing:-.01em;line-height:1.3;text-wrap:balance}.head-actions{display:flex;align-items:center;gap:10px}.module-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.module-metric{position:relative;display:grid;grid-gap:5px;gap:5px;min-height:120px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:15px 16px;box-shadow:var(--shadow-sm)}.module-metric>span:not(.metric-dot){color:var(--ink-2);font-size:.8rem;font-weight:650}.module-metric strong{color:var(--ink);font-size:1.65rem;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.module-metric p{margin:0;color:var(--faint);font-size:.8rem}.academic-pulse,.attendance-pulse,.finance-pulse,.hr-pulse,.inventory-pulse,.library-pulse,.student-pulse,.timetable-pulse,.transport-pulse{margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.student-pulse{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);overflow:hidden}.pulse-intro{display:grid;align-content:start;grid-gap:8px;gap:8px;background:var(--primary-soft);padding:18px}.academic-pulse h2,.circulation-summary h2,.dispatch-heading h2,.pulse-intro h2,.staffing-summary h2,.stock-priority h2{margin:0;font-size:1.08rem}.academic-pulse p,.circulation-summary p,.pulse-intro p,.staffing-summary p,.stock-priority p{margin:0;color:var(--ink-2);font-size:.82rem;line-height:1.5}.academic-pulse-action,.attendance-pulse-action,.circulation-summary>button,.dispatch-heading>button,.finance-pulse-action,.pulse-intro button,.staffing-summary>button,.stock-priority>button{justify-self:start;min-height:34px;border:0;border-radius:8px;background:var(--primary);color:white;padding:0 11px;font-size:.79rem;font-weight:750}.academic-pulse-action:hover,.attendance-pulse-action:hover,.circulation-summary>button:hover,.dispatch-heading>button:hover,.finance-pulse-action:hover,.pulse-intro button:hover,.staffing-summary>button:hover,.stock-priority>button:hover{background:var(--primary-strong)}.student-readiness{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.student-readiness article{display:grid;align-content:center;grid-gap:3px;gap:3px;min-height:88px;border-bottom:1px solid var(--line);padding:14px 17px}.student-readiness article:nth-child(odd){border-right:1px solid var(--line)}.student-readiness article:nth-last-child(-n+2){border-bottom:0}.student-readiness small,.student-readiness span{color:var(--ink-2);font-size:.76rem}.student-readiness strong{color:var(--ink);font-size:1.35rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.student-readiness article.danger strong{color:var(--danger-strong)}.student-readiness article.warn strong{color:var(--warning-strong)}.finance-pulse{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr) auto;align-items:stretch;overflow:hidden}.collection-position{display:grid;grid-gap:13px;gap:13px;border-right:1px solid var(--line);background:var(--accent-soft);padding:17px}.collection-position strong{display:block;margin-top:2px;color:var(--accent-strong);font-size:1.8rem;letter-spacing:-.02em}.collection-position p{margin:0;color:var(--accent-strong);font-size:.78rem}.collection-meter{height:7px;overflow:hidden;border-radius:999px;background:var(--warning-soft)}.collection-meter span{display:block;width:82.6%;height:100%;border-radius:inherit;background:var(--teal)}.finance-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.finance-figures article{display:flex;gap:9px;align-items:flex-start;border-right:1px solid var(--line);padding:18px 14px}.finance-figures article>div{display:grid;grid-gap:2px;gap:2px}.finance-figures small,.finance-figures span:not(.metric-dot){color:var(--ink-2);font-size:.74rem}.finance-figures strong{color:var(--ink);font-size:1.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.finance-pulse-action{align-self:center;margin:0 14px;background:var(--accent-strong)}.finance-pulse-action:hover{background:var(--warning)}.attendance-pulse{display:grid;grid-template-columns:210px minmax(0,1fr) auto;align-items:stretch;overflow:hidden}.attendance-score{display:grid;align-content:center;grid-gap:2px;gap:2px;background:var(--success-soft);padding:18px}.attendance-score small,.attendance-score span{color:var(--success-strong);font-size:.77rem}.attendance-score strong{color:var(--success-strong);font-size:1.8rem;letter-spacing:-.03em}.attendance-exceptions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-exceptions button{display:grid;grid-template-columns:9px 1fr;align-content:center;grid-gap:8px 9px;gap:8px 9px;border:0;border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:15px;text-align:left}.attendance-exceptions button:hover{background:var(--surface-2)}.attendance-exceptions button em{grid-column:2;color:var(--faint);font-size:.74rem;font-style:normal;line-height:1.35}.attendance-exceptions small{color:var(--ink-2);font-size:.74rem}.attendance-exceptions strong{display:block;font-size:1.15rem}.attendance-pulse-action{align-self:center;margin:0 14px;background:var(--success-strong)}.attendance-pulse-action:hover{background:var(--success)}.academic-pulse{display:grid;grid-template-columns:245px minmax(0,1fr) auto;align-items:stretch;overflow:hidden}.academic-pulse-heading{display:grid;align-content:center;grid-gap:7px;gap:7px;border-right:1px solid var(--line);background:var(--info-soft);padding:17px}.department-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.department-progress button{position:relative;display:grid;align-content:center;grid-gap:3px;gap:3px;border:0;border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:15px;text-align:left}.department-progress button:hover{background:var(--surface-2)}.department-progress button span{color:var(--ink-2);font-size:.75rem;font-weight:700}.department-progress button strong{font-size:1.2rem}.department-progress button small{color:var(--faint);font-size:.73rem}.department-progress i{display:block;height:5px;overflow:hidden;margin-top:5px;border-radius:999px;background:var(--line)}.department-progress b{display:block;height:100%;border-radius:inherit;background:var(--info)}.academic-pulse-action{align-self:center;margin:0 14px;background:var(--info-strong)}.academic-pulse-action:hover{background:var(--primary)}.timetable-pulse{display:grid;grid-template-columns:1.1fr .9fr minmax(250px,.75fr);overflow:hidden}.circulation-summary,.dispatch-heading,.staffing-summary,.stock-priority,.timetable-alert,.timetable-next,.timetable-now{display:flex;align-items:center;gap:11px;padding:17px}.timetable-now{background:var(--accent-soft);color:var(--accent-strong)}.timetable-next{display:grid;align-content:center;grid-gap:3px;gap:3px;border-right:1px solid var(--line)}.timetable-next span,.timetable-now span{font-size:.74rem;font-weight:800}.timetable-next strong,.timetable-now strong{font-size:1.04rem}.timetable-alert small,.timetable-next small,.timetable-now small{color:var(--ink-2);font-size:.76rem}.timetable-alert>span,.timetable-now div{display:grid;grid-gap:2px;gap:2px}.timetable-alert{border-left:1px solid var(--line);background:var(--warning-soft)}.timetable-alert button,.timetable-alert svg{color:var(--warning-strong)}.timetable-alert button{margin-left:auto;min-height:31px;border:1px solid var(--warning);border-radius:8px;background:transparent;padding:0 9px;font-size:.77rem;font-weight:750}.transport-pulse{overflow:hidden}.dispatch-heading{justify-content:space-between;background:var(--warning-soft)}.dispatch-heading>div{margin-right:auto}.dispatch-heading h2{margin-top:2px}.dispatch-heading>button{background:var(--warning-strong)}.dispatch-heading>button:hover{background:var(--warning)}.dispatch-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dispatch-routes button{display:grid;grid-template-columns:30px 1fr;align-items:center;grid-gap:8px;gap:8px;border:0;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:12px 14px;text-align:left}.dispatch-routes button:hover{background:var(--surface-2)}.dispatch-routes button:last-child{border-right:0}.dispatch-routes b{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:var(--warning-soft);color:var(--warning-strong);font-size:.77rem}.dispatch-routes span{font-size:.8rem;font-weight:750}.dispatch-routes small{grid-column:2;color:var(--faint);font-size:.73rem}.dispatch-routes small.danger{color:var(--danger-strong)}.dispatch-routes small.warn{color:var(--warning-strong)}.dispatch-routes small.good{color:var(--success-strong)}.inventory-pulse{overflow:hidden}.stock-priority{background:var(--success-soft)}.stock-priority>div{margin-right:auto}.stock-priority svg{color:var(--success-strong)}.stock-priority>button{background:var(--success-strong)}.stock-priority>button:hover{background:var(--success)}.stock-priority-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.stock-priority-list button{display:grid;grid-template-columns:24px 1fr auto;align-items:center;grid-gap:8px;gap:8px;border:0;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:12px 15px;font-size:.79rem;text-align:left}.stock-priority-list button:last-child{border-right:0}.stock-priority-list button:hover{background:var(--surface-2)}.stock-priority-list button span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--ink-2);font-size:.7rem;font-weight:800}.stock-priority-list small{color:var(--danger-strong);font-size:.71rem;font-weight:750}.stock-priority-list button:not(:first-child) small{color:var(--ink-2)}.hr-pulse{overflow:hidden}.staffing-summary{background:var(--primary-soft)}.staffing-summary>div{margin-right:auto}.staffing-summary svg{color:var(--primary-strong)}.staffing-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.staffing-rail span{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:13px 16px;color:var(--ink-2);font-size:.79rem}.staffing-rail span:last-child{border-right:0}.staffing-rail b{color:var(--ink);font-size:.92rem}.library-pulse{overflow:hidden}.circulation-summary{background:var(--info-soft)}.circulation-summary>div{margin-right:auto}.circulation-summary svg{color:var(--info-strong)}.circulation-summary>button{background:var(--info-strong)}.circulation-summary>button:hover{background:var(--primary)}.circulation-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.circulation-figures span{border-top:1px solid var(--line);border-right:1px solid var(--line);padding:13px 17px;color:var(--ink-2);font-size:.78rem}.circulation-figures span:last-child{border-right:0}.circulation-figures b{color:var(--ink);font-size:1.08rem}.metric-dot{width:9px;height:9px;border-radius:50%;background:var(--info)}.metric-dot.good{background:var(--success)}.metric-dot.warn{background:var(--warning)}.metric-dot.danger{background:var(--danger)}.metric-dot.info{background:var(--info)}.module-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.6fr);grid-gap:16px;gap:16px;align-items:start}.module-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 78px;align-items:center;grid-gap:18px;gap:18px;overflow:hidden;margin:24px 0 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:20px;box-shadow:var(--shadow-sm)}.module-hero:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--primary)}.module-hero.finance:before,.module-hero.timetable:before{background:var(--teal)}.module-hero.attendance:before,.module-hero.inventory:before{background:var(--success)}.module-hero.academics:before,.module-hero.library:before{background:var(--info)}.module-hero.hr:before,.module-hero.transport:before{background:var(--warning)}.module-hero-copy{min-width:0}.module-hero-copy h1{margin-bottom:7px}.module-hero-copy p{max-width:75ch;margin:0;color:var(--ink-2);font-size:.875rem}.module-hero-actions{display:flex;align-items:center;gap:9px}.module-hero-emblem{display:grid;width:66px;height:66px;place-items:center;border-radius:16px;background:var(--primary-soft);color:var(--primary-strong)}.module-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.62fr);grid-gap:16px;gap:16px;align-items:start}.module-primary,.module-side{display:grid;grid-gap:16px;gap:16px;min-width:0}.selected-row td{background:var(--primary-soft)}.row-action{min-height:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--primary-strong);padding:0 9px;font-size:.75rem;font-weight:750}.row-action:hover{border-color:var(--primary);background:var(--primary-soft)}.context-card{display:grid;grid-gap:10px;gap:10px}.context-label{color:var(--faint);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.context-card>strong{color:var(--ink);font-size:1rem}.context-card p{margin:0;color:var(--ink-2);font-size:.82rem;line-height:1.5}.workflow-item{grid-template-columns:10px 1fr auto}.cover-slot.filled,.loan-card.done,.mini-task.done,.planner-block.done,.register-card.marked,.route-card.done,.workflow-item.done{border-color:var(--success);background:var(--success-soft);color:var(--success-strong)}.student-record-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-gap:12px;gap:12px}.student-profile-panel{display:grid;grid-template-columns:68px 1fr;align-items:center;grid-gap:14px;gap:14px}.record-avatar{width:62px;height:62px;border-radius:50%;background:var(--primary);color:white;font-size:1rem}.student-profile-panel p{margin:4px 0 0;color:var(--ink-2);font-size:.84rem}.student-actions{grid-column:1/-1;flex-wrap:wrap;gap:8px}.gradebook-row button,.mini-task,.scan-panel button,.shelf-card button,.student-actions button{min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised);color:var(--ink);padding:0 10px;font-size:.8rem;font-weight:750}.gradebook-row button:hover,.mini-task:hover,.scan-panel button:hover,.shelf-card button:hover,.student-actions button:hover{border-color:var(--line-strong);background:var(--surface-2)}.student-snapshot{display:grid;grid-gap:8px;gap:8px}.student-snapshot span{display:flex;align-items:center;min-height:41px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--ink-2);padding:0 12px;font-size:.82rem;font-weight:700}.collection-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.collection-lane{display:grid;grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:14px;box-shadow:var(--shadow-sm)}.collection-lane h2,.collection-lane strong{margin:0}.collection-lane strong{display:block;margin-top:4px;color:var(--ink);font-size:1.35rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mini-task{width:100%;text-align:left}.register-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.cover-slot,.loan-card,.planner-block,.register-card,.route-card{display:grid;grid-gap:4px;gap:4px;min-height:92px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);padding:13px;text-align:left;box-shadow:var(--shadow-sm)}.cover-slot:hover,.loan-card:hover,.planner-block:hover,.register-card:hover,.route-card:hover{border-color:var(--line-strong);background:var(--surface-2)}.cover-slot span,.loan-card span,.register-card span,.route-card span{color:var(--ink-2);font-size:.8rem;font-weight:750}.cover-slot strong,.register-card strong,.route-card strong{font-size:1rem;font-weight:800}.loan-card small,.register-card small{color:var(--faint);font-size:.74rem}.gradebook-board{display:grid;grid-gap:10px;gap:10px}.gradebook-row{display:grid;grid-template-columns:minmax(150px,.8fr) 1fr auto;align-items:center;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:13px;box-shadow:var(--shadow-sm)}.gradebook-row p{margin:2px 0 0;color:var(--faint);font-size:.78rem}.grade-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:7px;gap:7px}.grade-cells span{display:grid;place-items:center;min-height:42px;border-radius:9px;background:var(--info-soft);color:var(--info-strong);font-size:.72rem;font-weight:800}.grade-cells b{display:block;color:var(--ink);font-size:.92rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.planner-surface{display:grid;grid-gap:12px;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:14px}.planner-tabs{display:flex;gap:6px}.planner-tabs button{min-height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);padding:0 12px;font-weight:750}.planner-tabs button.active{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--warning-soft)}.day-planner{display:grid;grid-template-columns:1fr 1.1fr 1fr;grid-gap:9px;gap:9px}.planner-block{min-height:68px;border-color:var(--warning-soft);background:linear-gradient(180deg,var(--accent-soft),var(--surface-raised))}.timetable-schedule{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:14px 16px}.schedule-toolbar h2{margin:2px 0 0;font-size:1rem}.schedule-row{grid-template-columns:76px minmax(160px,1fr) 110px 74px;grid-gap:14px;gap:14px;min-height:70px;border:0;border-bottom:1px solid var(--line);color:var(--ink);padding:10px 16px;text-align:left}.schedule-row:last-child{border-bottom:0}.schedule-row:hover{background:var(--surface-2)}.schedule-row.live{background:var(--accent-soft)}.schedule-row.next{background:var(--primary-soft)}.schedule-row.done{background:var(--success-soft)}.schedule-activity,.schedule-time{display:grid;grid-gap:2px;gap:2px}.schedule-time strong{color:var(--primary-strong);font-size:.92rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.schedule-activity small,.schedule-room,.schedule-time small{color:var(--faint);font-size:.75rem}.schedule-activity strong{font-size:.86rem}.schedule-status{justify-self:start;border-radius:999px;background:var(--surface-2);color:var(--ink-2);padding:3px 8px;font-size:.7rem;font-weight:800}.schedule-status.live{background:var(--accent-soft);color:var(--accent-strong)}.schedule-status.next{background:var(--primary-soft);color:var(--primary-strong)}.schedule-status.ready{background:var(--success-soft);color:var(--success-strong)}.week-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.week-strip button{display:grid;grid-gap:4px;gap:4px;min-height:136px;border:0;border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:16px;text-align:left}.week-strip button:last-child{border-right:0}.week-strip button:hover{background:var(--surface-2)}.week-strip button.active{background:var(--accent-soft)}.week-strip span{color:var(--ink-2);font-size:.78rem;font-weight:750}.week-strip strong{font-size:1.45rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.week-strip small{color:var(--faint);font-size:.75rem}.schedule-conflicts{display:grid}.schedule-conflicts button{display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;border-bottom:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:15px 16px;text-align:left}.schedule-conflicts button:last-child{border-bottom:0}.schedule-conflicts button:hover{background:var(--surface-2)}.schedule-conflicts span{display:grid;grid-gap:3px;gap:3px}.schedule-conflicts strong{font-size:.86rem}.schedule-conflicts small{color:var(--faint);font-size:.76rem}.schedule-conflicts em{border-radius:8px;background:var(--warning-soft);color:var(--warning-strong);padding:5px 8px;font-size:.73rem;font-style:normal;font-weight:750}.route-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.route-card{min-height:118px;background:linear-gradient(180deg,var(--warning-soft),var(--surface-raised))}.route-card svg{color:var(--warning-strong)}.stock-shelves{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.shelf-card{display:grid;grid-gap:11px;gap:11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:14px;box-shadow:var(--shadow-sm)}.shelf-meter{height:72px;overflow:hidden;display:flex;align-items:flex-end;border-radius:10px;background:var(--surface-2)}.shelf-meter span{display:block;width:100%;background:var(--success)}.cover-planner{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.cover-slot{min-height:102px;background:linear-gradient(180deg,var(--warning-soft),var(--surface-raised))}.circulation-desk{display:grid;grid-template-columns:270px 1fr;grid-gap:12px;gap:12px}.scan-panel{display:grid;grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--info-soft);color:var(--info-strong);padding:16px}.scan-panel p{margin:0;color:var(--ink-2);font-size:.82rem}.loan-stack{display:grid;grid-gap:8px;gap:8px}.loan-card{grid-template-columns:22px 1fr;min-height:62px;align-items:center}.filter-tabs{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:3px}.filter-tabs button{min-height:28px;border:0;border-radius:7px;background:transparent;color:var(--ink-2);padding:0 9px;font-size:.76rem;font-weight:750}.filter-tabs button.active,.filter-tabs button:hover{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.quick-action-grid,.workflow-list{display:grid;grid-gap:9px;gap:9px}.workflow-feedback{margin:10px 0 0;border-radius:9px;background:var(--surface-2);color:var(--ink-2);padding:8px 10px;font-size:.78rem;font-weight:650}.workflow-item{display:grid;grid-template-columns:10px 1fr;align-items:center;grid-gap:10px;gap:10px;min-height:54px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);padding:9px 11px;text-align:left;transition:background-color .16s var(--ease),border-color .16s var(--ease)}.workflow-item:hover{border-color:var(--line-strong);background:var(--surface-2)}.workflow-item strong{display:block;color:var(--ink);font-size:.83rem;font-weight:700;line-height:1.3}.workflow-item small{display:block;margin-top:2px;color:var(--faint);font-size:.74rem}.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action-grid button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);color:var(--ink-2);padding:0 10px;font-size:.8rem;font-weight:700}.quick-action-grid button:hover{border-color:var(--line-strong);background:var(--surface-2);color:var(--ink)}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.kpi-card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.kpi-card{display:flex;flex-direction:column;gap:2px;padding:14px 16px 13px;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.kpi-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.kpi-topline{display:flex;align-items:center;gap:8px}.kpi-icon{display:grid;width:26px;height:26px;flex:none;place-items:center;border-radius:8px}.kpi-icon.good{background:var(--success-soft);color:var(--success-strong)}.kpi-icon.warn{background:var(--warning-soft);color:var(--warning-strong)}.kpi-icon.danger{background:var(--danger-soft);color:var(--danger-strong)}.kpi-icon.info{background:var(--info-soft);color:var(--info-strong)}.kpi-label{flex:1 1;color:var(--ink-2);font-size:.8rem;font-weight:650;overflow:hidden;text-overflow:ellipsis}.kpi-label,.trend{white-space:nowrap}.trend{display:inline-flex;align-items:center;gap:3px;border-radius:999px;background:var(--success-soft);color:var(--success-strong);padding:2.5px 8px;font-size:.72rem;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-main{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:11px}.kpi-value{color:var(--ink);font-size:1.72rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.05}.sparkline{width:88px;height:30px;flex:none;margin-bottom:3px}.kpi-detail{margin:5px 0 0;color:var(--faint);font-size:.8rem}.status-pill{display:inline-flex;align-items:center;min-height:23px;border-radius:999px;padding:0 10px 0 8px;font-size:.73rem;font-weight:750;white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;flex:none;margin-right:6px;border-radius:50%;background:currentColor}.status-pill.good{background:var(--success-soft);color:var(--success-strong)}.status-pill.warn{background:var(--warning-soft);color:var(--warning-strong)}.status-pill.danger{background:var(--danger-soft);color:var(--danger-strong)}.status-pill.info{background:var(--info-soft);color:var(--info-strong)}.status-pill.live:before{animation:pulse 2.2s ease-in-out infinite}.main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.72fr);grid-gap:16px;gap:16px;align-items:start}.left-stack,.right-stack{display:flex;min-width:0;flex-direction:column;gap:16px}.panel{padding:16px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.panel-header.tight{align-items:center;margin-bottom:11px}.panel-icon{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:9px;background:var(--surface-2);color:var(--ink-2)}.school-day-panel{container-type:inline-size;padding:18px}.day-layout{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);align-items:stretch;grid-gap:14px;gap:14px}.attendance-orbit{display:grid;grid-template-rows:162px auto;align-items:center;min-width:0;min-height:244px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:16px 14px 14px}.attendance-ring{display:grid;justify-self:center;place-items:center;width:162px;height:162px}.attendance-orbit svg{grid-area:1/1;width:158px;height:158px;transform:rotate(-90deg)}.attendance-orbit circle{fill:none;stroke-width:13;stroke-linecap:round}.attendance-orbit .track{stroke:var(--ink-2)}.attendance-orbit .progress{stroke:var(--primary)}.orbit-center{grid-area:1/1;display:grid;place-items:center;text-align:center}.orbit-center strong{color:var(--ink);font-size:1.85rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.orbit-center span{color:var(--faint);font-size:.75rem;font-weight:650;margin-top:1px}.orbit-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;width:100%;margin-top:18px}.legend-item{display:grid;justify-items:center;grid-gap:2px;gap:2px;text-align:center}.legend-dot{width:8px;height:8px;border-radius:50%;background:var(--info)}.legend-dot.good{background:var(--success)}.legend-dot.warn{background:var(--warning)}.legend-dot.danger{background:var(--danger)}.legend-item span{color:var(--faint);font-size:.68rem;font-weight:650}.legend-item b{color:var(--ink);font-size:.8rem;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.queue-list{display:grid;min-width:0;align-content:start;grid-gap:9px;gap:9px}.queue-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:2px 2px 5px}.queue-heading strong{color:var(--ink);font-size:.8rem}.queue-item{display:grid;grid-template-columns:1fr auto;align-items:center;grid-column-gap:12px;column-gap:12px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);padding:10px 12px 10px 14px;color:var(--ink-2);text-align:left;box-shadow:var(--shadow-sm);transition:border-color .16s var(--ease),background-color .16s var(--ease),transform .16s var(--ease)}.queue-item.urgent{border-color:var(--danger-soft);background:linear-gradient(90deg,var(--danger-soft),var(--surface-raised) 42%)}@container (max-width: 620px){.day-layout{grid-template-columns:1fr}.attendance-orbit{grid-template-columns:162px minmax(0,1fr);grid-template-rows:1fr;justify-items:center;min-height:178px}.attendance-ring{grid-column:1;grid-row:1}.orbit-legend{grid-column:2;grid-row:1;grid-template-columns:1fr;gap:9px;margin:0}.legend-item{grid-template-columns:8px 1fr auto;justify-items:start;align-items:center;gap:7px;text-align:left}}.queue-item.high{border-color:var(--warning-soft);background:linear-gradient(90deg,var(--warning-soft),var(--surface-raised) 42%)}.queue-item.normal{border-color:var(--primary-soft);background:linear-gradient(90deg,var(--info-soft),var(--surface-raised) 42%)}.queue-item:hover{border-color:var(--line-strong);background:var(--surface);transform:translateX(2px)}.queue-copy{display:grid;grid-gap:2px;gap:2px;min-width:0}.queue-title{color:var(--ink);font-size:.85rem;font-weight:650;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-meta{color:var(--faint);font-size:.75rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.severity-chip{border-radius:999px;padding:3px 9px;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.severity-chip.urgent{background:var(--danger-soft);color:var(--danger-strong)}.severity-chip.high{background:var(--warning-soft);color:var(--warning-strong)}.severity-chip.normal{background:var(--info-soft);color:var(--info-strong)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised)}table{width:100%;min-width:700px;border-collapse:collapse}td,th{border-bottom:1px solid var(--line);padding:10px 14px;color:var(--ink);font-size:.845rem;text-align:left;vertical-align:middle}th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface-2);border-bottom:1px solid var(--line-strong);color:var(--faint);font-size:.69rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td.num{font-weight:600}td.num.alert{color:var(--danger-strong);font-weight:750}tbody tr{transition:background-color .14s var(--ease)}tbody tr:hover{background:var(--surface)}tbody tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:10px;min-width:0}.avatar{display:grid;width:32px;height:32px;flex:none;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary-strong);font-size:.72rem;font-weight:800}.avatar.warn{background:var(--warning-soft);color:var(--warning-strong)}.avatar.danger{background:var(--danger-soft);color:var(--danger-strong)}.avatar.info{background:var(--info-soft);color:var(--info-strong)}.student-id{display:grid;grid-gap:1px;gap:1px;min-width:0}.student-id strong{color:var(--ink);font-size:.845rem;font-weight:650;white-space:nowrap}.student-id small{color:var(--faint);font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:var(--faint);font-size:.74rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-pagination{flex-wrap:wrap}.data-table-footer{display:grid;grid-gap:4px;gap:4px}.data-table-tools{display:flex;align-items:center;gap:8px;margin-bottom:10px}.data-table-tools .mini-search{min-width:min(260px,100%)}.table-filter-select{display:inline-flex;align-items:center;gap:6px;color:var(--faint);font-size:.72rem;font-weight:700}.table-filter-select select{min-height:30px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:0 25px 0 8px;font:inherit;font-size:.76rem}.table-filter-clear{width:30px;height:30px}.data-table-note{color:var(--faint);font-size:.7rem;text-align:right}.table-sort-button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:inherit}.table-sort-button:hover{color:var(--primary-strong)}.table-record-link{color:inherit;text-decoration:none}.table-record-link:hover strong{color:var(--primary-strong);text-decoration:underline;text-underline-offset:3px}.record-summary{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding-bottom:16px}.record-avatar{display:grid;width:48px;height:48px;flex:none;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong);font-size:.9rem;font-weight:800}.record-avatar.warn{background:var(--warning-soft);color:var(--warning-strong)}.record-avatar.danger{background:var(--danger-soft);color:var(--danger-strong)}.record-avatar.info{background:var(--info-soft);color:var(--info-strong)}.record-summary h2{margin:2px 0;font-size:1rem}.record-summary p{margin:0;color:var(--ink-2);font-size:.8rem}.record-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.record-facts>div{display:grid;grid-gap:3px;gap:3px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 14px}.record-facts>div:nth-child(3n){border-right:0}.record-facts>div:nth-last-child(-n+3){border-bottom:0}.detail-list span,.record-facts dt{color:var(--faint);font-size:.72rem}.record-facts dd{margin:0;color:var(--ink);font-size:.82rem;font-weight:700}.detail-list{display:grid}.detail-list>div{display:grid;grid-gap:3px;gap:3px;border-top:1px solid var(--line);padding:11px 0}.detail-list>div:first-child{border-top:0;padding-top:0}.detail-list span{display:inline-flex;align-items:center;gap:6px}.detail-list strong{color:var(--ink);font-size:.86rem}.detail-list small{color:var(--ink-2);font-size:.75rem}.compact-detail-list>div:last-child{padding-bottom:0}.detail-actions{display:grid}.detail-actions a{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:10px 0;color:var(--ink);font-size:.8rem;font-weight:650;text-decoration:none}.detail-actions a:first-child{border-top:0;padding-top:0}.detail-actions a:last-child{padding-bottom:0}.detail-actions a:hover{color:var(--primary-strong)}.statement-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);margin-bottom:12px}.statement-summary span{display:grid;grid-gap:2px;gap:2px;border-right:1px solid var(--line);padding:0 14px 12px}.statement-summary span:first-child{padding-left:0}.statement-summary span:last-child{border-right:0}.statement-summary small{color:var(--faint);font-size:.72rem}.statement-summary strong{color:var(--ink);font-size:.9rem}.statement-table td,.statement-table th{white-space:nowrap}.fee-rule-form{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(150px,1.1fr) 120px 110px 120px;grid-gap:10px;gap:10px;border-bottom:1px solid var(--line);background:var(--primary-soft);margin-bottom:12px;padding:14px}.billing-settings-form label,.fee-rule-form label{display:grid;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:700}.billing-settings-form input,.billing-settings-form select,.fee-rule-form input,.fee-rule-form select{width:100%;min-height:34px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:0 8px;font:inherit;font-size:.8rem}.fee-rule-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.billing-settings-form{display:grid;grid-gap:12px;gap:12px}.billing-inline-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:9px;gap:9px}.billing-toggle{grid-template-columns:16px 1fr;align-items:center;color:var(--ink)!important;font-size:.8rem!important}.billing-toggle input{width:16px;min-height:16px;accent-color:var(--primary)}.billing-settings-form>.primary-button{justify-self:start}.config-notice{border:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);padding:10px 12px;font-size:.78rem;font-weight:650}.payment-processor{display:grid;grid-template-columns:minmax(240px,1.4fr) 130px 150px minmax(180px,1fr);grid-gap:10px;gap:10px;border-bottom:1px solid var(--line);background:var(--primary-soft);margin-bottom:12px;padding:14px}.payment-processor-heading{grid-column:1/-1;display:flex;align-items:center;gap:9px}.payment-processor-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:7px;background:var(--surface-raised);color:var(--primary-strong)}.payment-processor-heading small,.payment-processor-heading strong{display:block}.payment-processor-heading strong{color:var(--ink);font-size:.84rem}.payment-processor-heading small{color:var(--ink-2);font-size:.73rem}.payment-processor label{display:grid;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:700}.payment-processor input,.payment-processor select{width:100%;min-height:34px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:0 8px;font:inherit;font-size:.8rem}.payment-processor-summary{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:9px;gap:9px;border-top:1px solid var(--primary);padding-top:10px;color:var(--ink-2);font-size:.75rem}.payment-processor-summary strong{color:var(--ink);font-size:.8rem}.payment-processor-summary b{color:var(--danger-strong);font-size:.8rem}.payment-processor-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.payment-notice{border:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);margin-bottom:12px;padding:10px 12px;font-size:.78rem;font-weight:650}.payment-receipts{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.payment-receipts span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-2);padding:5px 7px;font-size:.71rem}.assignment-marking-anchor{scroll-margin-top:92px;margin-bottom:16px}.queue-count{display:inline-flex;align-items:center;gap:6px;color:var(--warning-strong);font-size:.76rem;font-weight:750}.assignment-workspace{display:grid;grid-template-columns:minmax(250px,.66fr) minmax(0,1.34fr);border-top:1px solid var(--line)}.assignment-queue{display:grid;align-content:start;border-right:1px solid var(--line)}.assignment-queue-item{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;grid-gap:9px;gap:9px;width:100%;min-height:76px;border:0;border-bottom:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:12px 14px;text-align:left}.assignment-queue-item:last-child{border-bottom:0}.assignment-queue-item:hover{background:var(--surface-2)}.assignment-queue-item.active{background:var(--info-soft);box-shadow:inset 3px 0 0 var(--info)}.assignment-queue-item>span:nth-child(2){display:grid;grid-gap:3px;gap:3px;min-width:0}.assignment-queue-item strong{font-size:.82rem}.assignment-queue-item small{overflow:hidden;color:var(--ink-2);font-size:.71rem;text-overflow:ellipsis;white-space:nowrap}.assignment-queue-item b{color:var(--ink-2);font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.assignment-dot{width:8px;height:8px;border-radius:50%;background:var(--info)}.assignment-dot.warn{background:var(--warning)}.assignment-dot.danger{background:var(--danger)}.marking-form{display:grid;grid-template-columns:minmax(0,1fr) 130px;grid-gap:11px;gap:11px;padding:15px}.all-marked,.marking-actions,.marking-form-context{grid-column:1/-1}.marking-form-context{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px}.marking-form-context div{display:grid;grid-gap:2px;gap:2px}.marking-form-context span{color:var(--faint);font-size:.69rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.marking-form-context strong{font-size:.88rem}.marking-form-context small{color:var(--ink-2);font-size:.74rem}.marking-form label{display:grid;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:750}.marking-form label:first-of-type{grid-column:1/-1}.marking-form input,.marking-form select,.marking-form textarea{width:100%;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);font:inherit;font-size:.8rem}.marking-form input:not([type=file]),.marking-form select{min-height:34px;padding:0 8px}.marking-form input[type=file]{min-height:34px;padding:5px}.marking-form textarea{min-height:69px;padding:8px;resize:vertical}.marking-form label small{color:var(--faint);font-size:.68rem;font-weight:600;line-height:1.3}.submission-source{display:grid;align-content:center;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);padding:9px}.submission-source span{color:var(--faint);font-size:.68rem;font-weight:800;text-transform:uppercase}.submission-source strong{overflow:hidden;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.submission-source small{color:var(--ink-2);font-size:.7rem}.marking-feedback{grid-column:1/-1}.marking-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:11px}.marking-actions span{color:var(--ink-2);font-size:.72rem}.marking-notice{border-top:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);padding:10px 14px;font-size:.78rem;font-weight:700}.all-marked{display:grid;justify-items:center;grid-gap:5px;gap:5px;color:var(--success-strong);padding:42px 16px;text-align:center}.all-marked span{color:var(--ink-2);font-size:.76rem}.approvals-anchor,.circulation-anchor,.performance-anchor{scroll-margin-top:92px}.circulation-anchor,.performance-anchor{margin-bottom:16px}.circulation-workspace{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(260px,.97fr);border-top:1px solid var(--line)}.circulation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:11px;gap:11px;border-right:1px solid var(--line);padding:15px}.circulation-tabs{grid-column:1/-1;display:inline-flex;justify-self:start;gap:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);padding:3px}.circulation-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);padding:0 9px;font-size:.75rem;font-weight:750}.circulation-tabs button.active{background:var(--info-strong);color:white}.circulation-form label{display:grid;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:750}.circulation-form label:first-of-type,.circulation-loan-field{grid-column:1/-1}.circulation-form input,.circulation-form select{width:100%;min-height:34px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:0 8px;font:inherit;font-size:.8rem}.circulation-selection{display:grid;align-content:center;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);padding:9px}.circulation-selection span{color:var(--faint);font-size:.68rem;font-weight:800;text-transform:uppercase}.circulation-selection strong{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.circulation-selection small{color:var(--ink-2);font-size:.7rem}.circulation-return{grid-column:1/-1;min-height:70px}.circulation-submit{grid-column:1/-1;justify-self:end}.circulation-ledger{display:grid;align-content:start}.circulation-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line)}.circulation-totals span{display:grid;grid-gap:3px;gap:3px;border-right:1px solid var(--line);padding:14px}.circulation-totals span:last-child{border-right:0}.circulation-totals small{color:var(--ink-2);font-size:.7rem}.circulation-totals strong{color:var(--ink);font-size:1.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.circulation-loans{display:grid}.circulation-loans>div{display:grid;grid-gap:2px;gap:2px;border-bottom:1px solid var(--line);padding:12px 14px}.circulation-loans>div strong{font-size:.8rem}.circulation-loans>div small{color:var(--ink-2);font-size:.72rem}.circulation-loans article{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:10px 14px}.circulation-loans article:last-child{border-bottom:0}.circulation-loans article>span{display:grid;grid-gap:2px;gap:2px;min-width:0}.circulation-loans article strong{overflow:hidden;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.circulation-loans article small{overflow:hidden;color:var(--ink-2);font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.circulation-report{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--primary);background:var(--info-soft);padding:13px 15px}.circulation-report div{display:grid;grid-gap:2px;gap:2px}.circulation-report span{color:var(--info-strong);font-size:.7rem;font-weight:800;text-transform:uppercase}.circulation-report strong{color:var(--ink);font-size:.8rem}.circulation-report small{color:var(--ink-2);font-size:.71rem}.circulation-notice{border-top:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);padding:10px 14px;font-size:.78rem;font-weight:700}.performance-cycle{display:inline-flex;align-items:center;gap:6px;color:var(--primary-strong);font-size:.76rem;font-weight:750}.performance-workspace{display:grid;grid-template-columns:minmax(245px,.58fr) minmax(0,1.42fr);border-top:1px solid var(--line)}.performance-queue{display:grid;align-content:start;border-right:1px solid var(--line)}.performance-person{display:flex;align-items:center;justify-content:space-between;gap:9px;width:100%;min-height:70px;border:0;border-bottom:1px solid var(--line);background:var(--surface-raised);color:var(--ink);padding:11px 14px;text-align:left}.performance-person:last-child{border-bottom:0}.performance-person:hover{background:var(--surface-2)}.performance-person.active{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.performance-person>span{display:grid;grid-gap:3px;gap:3px;min-width:0}.performance-person strong{font-size:.8rem}.performance-person small{overflow:hidden;color:var(--ink-2);font-size:.71rem;text-overflow:ellipsis;white-space:nowrap}.performance-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;padding:15px}.performance-actions,.performance-context,.performance-evidence,.performance-focus{grid-column:1/-1}.performance-context{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px}.performance-context>div:first-child{display:grid;grid-gap:2px;gap:2px}.performance-context>div:first-child span,.performance-evidence span{color:var(--faint);font-size:.68rem;font-weight:800;text-transform:uppercase}.performance-context>div:first-child strong{font-size:.86rem}.performance-context>div:first-child small{color:var(--ink-2);font-size:.73rem}.performance-score{display:flex;align-items:center;gap:4px;color:var(--warning-strong)}.performance-score strong{font-size:1.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.performance-score span{color:var(--ink-2);font-size:.7rem}.performance-evidence{display:grid;grid-gap:3px;gap:3px;border-left:3px solid var(--info);background:var(--surface-2);padding:9px 10px}.performance-evidence strong{color:var(--ink);font-size:.76rem;line-height:1.4}.performance-sheet label{display:grid;grid-template-columns:1fr auto;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:750}.performance-sheet label input{grid-column:1/-1;width:100%;accent-color:var(--primary)}.performance-sheet .rating-output{color:var(--primary-strong);font-size:.75rem}.performance-sheet textarea{min-height:66px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink);padding:8px;font:inherit;font-size:.8rem;resize:vertical}.performance-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:11px}.performance-notice{border-top:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);padding:10px 14px;font-size:.78rem;font-weight:700}.config-workspace,.notices-workspace{display:grid;grid-gap:16px;gap:16px}.channel-toggle-group,.form-actions,.scheme-toolbar{display:flex;flex-wrap:wrap;gap:8px}.scheme-toolbar{margin-bottom:12px}.channel-toggle-group button,.scheme-toolbar button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);padding:0 11px;font-size:.8rem;font-weight:750}.channel-toggle-group button.active,.channel-toggle-group button:hover,.scheme-toolbar button.active,.scheme-toolbar button:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.configuration-form,.notice-composer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:12px}.notice-composer{grid-template-columns:minmax(180px,.8fr) minmax(150px,.65fr) minmax(0,1.55fr)}.configuration-form label,.notice-composer label{display:grid;grid-gap:5px;gap:5px;color:var(--ink-2);font-size:.72rem;font-weight:750}.configuration-form input,.configuration-form select,.notice-composer input,.notice-composer select,.notice-composer textarea{width:100%;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-raised);color:var(--ink);padding:0 9px;font:inherit;font-size:.8rem}.configuration-form input,.configuration-form select,.notice-composer input,.notice-composer select{min-height:36px}.notice-composer textarea{min-height:86px;padding-top:8px;resize:vertical}.notice-composer .channel-toggle-group,.notice-composer .composer-summary,.notice-composer label.wide{grid-column:1/-1}.grading-preview{display:grid;grid-gap:10px;gap:10px;margin:12px 0;border:1px solid var(--primary);border-radius:10px;background:var(--primary-soft);padding:12px}.grading-preview strong{display:block;margin-top:2px;color:var(--ink);font-size:.9rem}.grading-preview p{margin:3px 0 0;color:var(--ink-2);font-size:.78rem}.form-actions,.table-section{margin-top:12px}.form-actions{justify-content:flex-end}.composer-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;border-top:1px solid var(--line);padding-top:11px}.composer-summary>svg{color:var(--primary-strong)}.composer-summary span{display:grid;grid-gap:2px;gap:2px;min-width:0}.composer-summary strong{overflow:hidden;color:var(--ink);font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.composer-summary small{color:var(--ink-2);font-size:.73rem}.notice-list,.report-pack{display:grid;grid-gap:9px;gap:9px}.report-pack-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.notice-list article,.report-pack article{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);padding:10px 11px}.notice-icon,.report-pack article>svg{display:grid;width:31px;height:31px;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong)}.notice-list article>div,.report-pack article>span{display:grid;grid-gap:2px;gap:2px;min-width:0}.notice-list strong,.report-pack strong{overflow:hidden;color:var(--ink);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.notice-list small,.report-pack small{overflow:hidden;color:var(--ink-2);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.report-value{color:var(--ink);font-size:.8rem;font-weight:800;white-space:nowrap}.report-pack.downloadable article{grid-template-columns:auto minmax(0,1fr) auto auto 34px}.report-download-button{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--primary-strong)}.report-download-button:hover{border-color:var(--primary);background:var(--primary-soft)}.system-flow{display:grid;grid-gap:8px;gap:8px}.system-flow article{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:9px}.system-flow article>span:first-child{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong);font-size:.72rem;font-weight:800}.system-flow strong{overflow:hidden;color:var(--ink);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.system-flow small{grid-column:2;color:var(--ink-2);font-size:.71rem}.operations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.operations-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.operations-grid article{display:grid;align-content:start;grid-gap:7px;gap:7px;min-height:132px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:12px}.operations-grid article>svg{color:var(--primary-strong)}.operations-grid strong{color:var(--ink);font-size:.86rem}.operations-grid small,.operations-grid span{color:var(--ink-2);font-size:.74rem;line-height:1.35}.project-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.project-board section{display:grid;align-content:start;grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:11px}.project-board h2{margin:0 0 2px;color:var(--ink-2);font-size:.78rem;font-weight:800}.project-board article{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised);padding:10px}.project-board article>svg{color:var(--primary-strong)}.project-board article>span{display:grid;grid-gap:2px;gap:2px;min-width:0}.project-board strong{color:var(--ink);font-size:.82rem;line-height:1.3}.project-board small{color:var(--ink-2);font-size:.72rem}.project-board .status-pill{grid-column:2;justify-self:start}@media (max-width:560px){.data-table-tools{align-items:stretch;flex-wrap:wrap}.data-table-tools .mini-search{width:100%}.record-facts{grid-template-columns:1fr}.record-facts>div,.record-facts>div:nth-child(3n),.record-facts>div:nth-last-child(-n+3){border-right:0;border-bottom:1px solid var(--line)}.record-facts>div:last-child{border-bottom:0}.statement-summary{grid-template-columns:1fr}.statement-summary span,.statement-summary span:first-child{border-right:0;border-bottom:1px solid var(--line);padding:9px 0}.statement-summary span:last-child{border-bottom:0}.fee-rule-form,.payment-processor{grid-template-columns:1fr}.payment-processor-summary{grid-template-columns:1fr;gap:3px}.assignment-workspace{grid-template-columns:1fr}.assignment-queue{border-right:0;border-bottom:1px solid var(--line)}.marking-form{grid-template-columns:1fr}.submission-source{min-height:62px}.marking-actions{align-items:stretch;flex-direction:column}.marking-actions .primary-button{width:100%}.circulation-workspace,.performance-workspace{grid-template-columns:1fr}.circulation-form,.performance-queue{border-right:0;border-bottom:1px solid var(--line)}.circulation-form,.performance-sheet{grid-template-columns:1fr}.circulation-report{align-items:stretch;flex-direction:column}.circulation-report .secondary-button{width:100%}.performance-actions{align-items:stretch;flex-direction:column}.performance-actions .primary-button,.performance-actions .secondary-button{width:100%}.composer-summary,.configuration-form,.notice-composer{grid-template-columns:1fr}.composer-summary .primary-button{width:100%}.operations-grid,.operations-grid.four,.project-board{grid-template-columns:1fr}.notice-list article,.report-pack article,.report-pack.downloadable article{grid-template-columns:auto minmax(0,1fr)}.notice-list .status-pill,.report-download-button,.report-pack .status-pill,.report-value{grid-column:2;justify-self:start}.report-pack-toolbar{justify-content:stretch}.report-pack-toolbar .secondary-button{width:100%}}.pagination-controls{display:inline-flex;align-items:center;gap:5px}.pagination-status{min-width:88px;color:var(--ink-2);text-align:center}.pagination-button{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface-raised);color:var(--ink)}.pagination-button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);color:var(--primary-strong)}.pagination-button:disabled{cursor:not-allowed;opacity:.42}.compact-panel{padding:15px}.finance-list{display:grid}.finance-row{display:grid;grid-gap:7px;gap:7px;padding:10px 0;border-top:1px solid var(--line)}.finance-row:first-child{border-top:0;padding-top:2px}.finance-row:last-child{padding-bottom:2px}.finance-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.finance-head strong{color:var(--ink);font-size:.845rem;font-weight:650}.finance-head b{color:var(--ink);font-size:.88rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar{height:6px;overflow:hidden;border-radius:999px;background:var(--surface-2)}.bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--primary))}.bar span.full{background:linear-gradient(90deg,var(--success),var(--success))}.finance-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--faint);font-size:.72rem;font-weight:550}.finance-foot .pct{color:var(--ink-2);font-weight:700}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:42px 18px 1fr;grid-gap:10px;gap:10px;padding:9px 8px 9px 0;border-radius:9px}.timeline-item.next{background:var(--accent-soft);padding-left:4px}.timeline-item time{color:var(--primary-strong);font-size:.78rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:2px}.timeline-item.next time{color:var(--accent-strong)}.rail{position:relative;display:grid;justify-items:center}.rail:before{content:"";position:absolute;top:0;bottom:0;width:2px;border-radius:2px;background:var(--line)}.timeline-item:first-child .rail:before{top:50%}.timeline-item:last-child .rail:before{bottom:auto;height:50%}.rail i{position:relative;z-index:1;width:9px;height:9px;margin-top:5px;border:2.5px solid var(--primary);border-radius:50%;background:var(--surface-raised)}.timeline-item.next .rail i{border-color:var(--teal);box-shadow:0 0 0 3px var(--accent-soft)}.timeline-copy{display:grid;grid-gap:1px;gap:1px;min-width:0;padding-right:4px}.timeline-copy strong{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:.845rem;font-weight:650}.next-tag{border-radius:999px;background:var(--teal);color:white;padding:1.5px 7px;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.timeline-copy span{color:var(--faint);font-size:.75rem}.signal-list{display:grid;grid-gap:8px;gap:8px}.signal{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);padding:9px 10px;transition:border-color .16s var(--ease)}.signal:hover{border-color:var(--line-strong)}.signal-icon{display:grid;width:26px;height:26px;flex:none;place-items:center;border-radius:8px;margin-top:1px}.signal-icon.danger{background:var(--danger-soft);color:var(--danger-strong)}.signal-icon.warn{background:var(--warning-soft);color:var(--warning-strong)}.signal-icon.info{background:var(--info-soft);color:var(--info-strong)}.signal-icon.good{background:var(--success-soft);color:var(--success-strong)}.signal p{flex:1 1;min-width:0;margin:0;color:var(--ink-2);font-size:.815rem;line-height:1.45}.signal-time{flex:none;color:var(--faint);font-size:.72rem;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-top:2px}.kpi-card-link,a{color:inherit;text-decoration:none}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.select{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface-raised);padding:0 10px}.select-label{color:var(--faint);font-size:.72rem;font-weight:700}.select select{border:0;outline:0;background:transparent;color:var(--ink);font-size:.8rem;font-weight:650;cursor:pointer}.mini-search{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);padding:0 10px;color:var(--faint);transition:border-color .16s var(--ease),background-color .16s var(--ease),box-shadow .16s var(--ease)}.mini-search:focus-within{border-color:var(--primary);background:var(--surface-raised);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.mini-search input{width:150px;border:0;outline:0;background:transparent;color:var(--ink);font-size:.8rem}.mini-search input::placeholder{color:var(--faint)}.panel-badge{border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink-2);padding:3px 10px;font-size:.72rem;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.flag-list{display:grid;grid-gap:8px;gap:8px}.flag{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-column-gap:12px;column-gap:12px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:9px;background:var(--surface-raised);color:var(--ink-2);padding:9px 12px;transition:border-color .16s var(--ease),background-color .16s var(--ease),transform .16s var(--ease)}.flag:hover{border-color:var(--line-strong);background:var(--surface);transform:translateX(2px)}.flag.urgent{border-left-color:var(--danger)}.flag.high{border-left-color:var(--warning)}.flag.normal{border-left-color:var(--info)}.flag.urgent:hover{border-left-color:var(--danger)}.flag.high:hover{border-left-color:var(--warning)}.flag.normal:hover{border-left-color:var(--info)}.flag-copy{display:grid;grid-gap:1px;gap:1px;min-width:0}.flag-copy strong{color:var(--ink);font-size:.82rem;font-weight:650;line-height:1.35}.flag-copy span{color:var(--faint);font-size:.74rem}.stat-row,.stat-row-list{display:grid}.stat-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:4px 10px;gap:4px 10px;padding:9px 0;border-top:1px solid var(--line)}.stat-row:first-child{border-top:0;padding-top:2px}.stat-row:last-child{padding-bottom:2px}.stat-row>span{display:grid;grid-gap:1px;gap:1px;color:var(--ink-2);font-size:.82rem;font-weight:600;min-width:0}.stat-row>span small{color:var(--faint);font-size:.72rem;font-weight:550}.stat-row b{color:var(--ink);font-size:.88rem;font-weight:750}.stat-track{grid-column:1/-1}.stat-track .bar{height:5px}.trend-block{display:grid;justify-items:start;grid-gap:6px;gap:6px}.trend-value{color:var(--ink);font-size:1.55rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.trend-note{color:var(--faint);font-size:.76rem;font-weight:550}.trend-block .sparkline{width:100%;height:44px}.plan-list{display:grid;grid-gap:8px;gap:8px}.plan{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-column-gap:10px;column-gap:10px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:9px;background:var(--surface-raised);padding:9px 11px}.plan.warn{border-left-color:var(--warning)}.plan.info{border-left-color:var(--info)}.plan.danger{border-left-color:var(--danger)}.plan-copy{display:grid;grid-gap:1px;gap:1px;min-width:0}.plan-copy strong{color:var(--ink);font-size:.84rem;font-weight:650}.plan-copy span{color:var(--faint);font-size:.74rem}.plan-next{color:var(--ink-2);font-size:.74rem;font-weight:700;white-space:nowrap}.adjustment-list{display:grid;grid-gap:9px;gap:9px}.adjustment{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;color:var(--ink-2);font-size:.8rem}.adjustment svg{color:var(--faint)}.adjustment p{margin:0;line-height:1.4}.adjustment b{font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.week-bars{grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:14px;gap:14px;height:150px;padding-top:10px}.week-bar,.week-bars{display:grid;align-items:end}.week-bar{grid-template-rows:1fr auto auto;justify-items:center;grid-gap:6px;gap:6px;height:100%}.week-bar-fill{width:min(46px,72%);min-height:10px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--primary),var(--primary))}.week-bar time{color:var(--faint);font-size:.72rem;font-weight:700}.week-bar b{color:var(--ink-2);font-size:.75rem;font-weight:750}.mini-trend{font-size:.72rem;font-weight:800}.mini-trend.up{color:var(--success-strong)}.mini-trend.down{color:var(--danger-strong)}.note-list{display:grid;grid-gap:8px;gap:8px}.note{border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:9px;background:var(--surface-raised);padding:9px 11px}.note p{margin:0;color:var(--ink-2);font-size:.8rem;line-height:1.45}.note.warn{border-left-color:var(--warning)}.note.info{border-left-color:var(--info)}.note.good{border-left-color:var(--success)}.term-meter.wide{width:100%;height:9px;margin-top:6px}.day-tabs,.term-meter.wide{background:var(--surface-2)}.day-tabs{display:inline-flex;gap:2px;border:1px solid var(--line);border-radius:9px;padding:3px}.day-tab{min-height:30px;border:0;border-radius:6px;background:transparent;color:var(--ink-2);padding:0 13px;font-size:.78rem;font-weight:700;transition:background-color .16s var(--ease),color .16s var(--ease)}.day-tab:hover{color:var(--ink)}.day-tab.active{background:var(--surface-raised);color:var(--primary-strong);box-shadow:var(--shadow-sm)}.schedule-list{display:grid;grid-gap:8px;gap:8px}.schedule-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto auto;align-items:center;grid-column-gap:14px;column-gap:14px;border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:10px;background:var(--surface-raised);padding:10px 14px}.schedule-row.exam{border-left-color:var(--warning)}.schedule-row.practical{border-left-color:var(--info)}.schedule-row.activity{border-left-color:var(--success)}.schedule-time{display:grid;grid-gap:1px;gap:1px}.schedule-time time{color:var(--primary-strong);font-size:.84rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.schedule-time span{color:var(--faint);font-size:.7rem;font-weight:700}.schedule-copy{display:grid;grid-gap:1px;gap:1px;min-width:0}.schedule-copy strong{color:var(--ink);font-size:.86rem;font-weight:650}.schedule-copy span,.schedule-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-copy span{color:var(--faint);font-size:.75rem}.schedule-room{color:var(--ink-2);font-size:.8rem;font-weight:700;white-space:nowrap}.room-list,.room-row{display:grid}.room-row{grid-template-columns:1fr auto;align-items:center;grid-gap:2px 10px;gap:2px 10px;padding:8px 0;border-top:1px solid var(--line)}.room-row:first-child{border-top:0;padding-top:2px}.room-row:last-child{padding-bottom:2px}.room-row small{grid-column:1/-1;color:var(--faint);font-size:.72rem}.room-name{color:var(--ink);font-size:.84rem;font-weight:700}.rank-list,.rank-row{display:grid}.rank-row{grid-template-columns:24px minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;padding:7px 0;border-top:1px solid var(--line)}.rank-row:first-child{border-top:0;padding-top:2px}.rank-row:last-child{padding-bottom:2px}.rank-num{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;background:var(--surface-2);color:var(--ink-2);font-size:.72rem;font-weight:800}.rank-title{color:var(--ink);font-size:.82rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-row b{color:var(--ink-2);font-size:.82rem}.link-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.link-tile{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-raised);padding:10px 12px;color:var(--ink-2);transition:border-color .16s var(--ease),background-color .16s var(--ease)}.link-tile:hover{border-color:var(--line-strong);background:var(--surface)}.link-tile svg{color:var(--primary-strong)}.link-tile strong{display:block;color:var(--ink);font-size:.8rem;font-weight:650;line-height:1.25}.link-tile small{color:var(--faint);font-size:.7rem;font-weight:550}@media (max-width:1180px){.sidebar{flex-basis:236px}.modules-page-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.main-grid{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.circulation-desk,.module-workspace,.student-record-layout{grid-template-columns:1fr}.collection-board,.cover-planner,.module-side,.route-board,.stock-shelves{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-pulse,.attendance-pulse,.finance-pulse{grid-template-columns:1fr}.academic-pulse-heading,.collection-position{border-right:0;border-bottom:1px solid var(--line)}.academic-pulse-action,.attendance-pulse-action,.finance-pulse-action{justify-self:stretch;margin:12px 16px}}@media (max-width:920px){.erp-shell{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(312px,calc(100vw - 28px));transform:translateX(-105%);transition:transform .22s var(--ease);box-shadow:var(--shadow-md)}.sidebar-open{transform:translateX(0)}.close-mobile,.menu-button{display:inline-flex}.close-mobile{position:absolute;top:5px;right:0}.workspace{padding:0 16px 24px}.topbar{gap:9px;margin:0 -16px;padding-left:16px;padding-right:16px}.date-chip,.profile-button svg,.profile-text,.quiet-button,.search-box kbd{display:none}.page-head{align-items:stretch;flex-direction:column}.head-actions{justify-content:stretch}.head-actions button{flex:1 1}.day-layout{flex-direction:column}.attendance-orbit{flex-basis:auto;min-height:258px}.module-hero,.right-stack{grid-template-columns:1fr}.module-hero-emblem{display:none}.module-hero-actions,.student-actions{justify-content:stretch}.module-hero-actions button,.student-actions button{flex:1 1}.collection-board,.cover-planner,.day-planner,.gradebook-row,.module-side,.register-grid,.route-board,.stock-shelves{grid-template-columns:1fr}.gradebook-row{align-items:stretch}.schedule-row{grid-template-columns:70px minmax(0,1fr) auto}.schedule-room{display:none}.student-pulse,.timetable-pulse{grid-template-columns:1fr}.pulse-intro,.timetable-next{border-right:0;border-bottom:1px solid var(--line)}.attendance-exceptions,.circulation-figures,.department-progress,.dispatch-routes,.finance-figures,.staffing-rail,.stock-priority-list,.student-readiness{grid-template-columns:repeat(2,minmax(0,1fr))}.circulation-figures span:nth-child(2),.dispatch-routes button:nth-child(2),.staffing-rail span:nth-child(2),.stock-priority-list button:nth-child(2){border-right:0}.circulation-summary,.dispatch-heading,.staffing-summary,.stock-priority{align-items:flex-start;flex-wrap:wrap}.circulation-summary>button,.dispatch-heading>button,.staffing-summary>button,.stock-priority>button{margin-left:31px}}@media (max-width:560px){h1{font-size:1.45rem}.modules-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip{grid-template-columns:1fr}.kpi-main{flex-direction:row}.topbar-actions{gap:6px}.primary-button,.secondary-button{padding:0 11px}.page-head p,.panel-header p{font-size:.845rem}.attendance-exceptions,.circulation-figures,.department-progress,.dispatch-routes,.finance-figures,.staffing-rail,.stock-priority-list,.student-readiness{grid-template-columns:1fr}.attendance-exceptions button,.circulation-figures span,.department-progress button,.dispatch-routes button,.finance-figures article,.staffing-rail span,.stock-priority-list button,.student-readiness article{border-right:0;border-bottom:1px solid var(--line)}.attendance-exceptions button:last-child,.circulation-figures span:last-child,.department-progress button:last-child,.dispatch-routes button:last-child,.finance-figures article:last-child,.staffing-rail span:last-child,.stock-priority-list button:last-child,.student-readiness article:last-child{border-bottom:0}.student-readiness article:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.student-readiness article:last-child{border-bottom:0}.schedule-toolbar{align-items:stretch;flex-direction:column}.planner-tabs{width:100%}.planner-tabs button{flex:1 1}.schedule-row{grid-template-columns:62px minmax(0,1fr);gap:10px;min-height:74px;padding:10px 12px}.schedule-status{grid-column:2}.week-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.week-strip button{min-height:98px;border-bottom:1px solid var(--line)}.week-strip button:nth-child(2n){border-right:0}.week-strip button:last-child{border-bottom:0}.grounds-toolbar{align-items:stretch;flex-direction:column}.grounds-toolbar>*{width:100%}.grounds-toolbar .filter-tabs{justify-content:stretch}.grounds-toolbar .filter-tabs button{flex:1 1}.maintenance-composer,.maintenance-plan{grid-template-columns:1fr}.maintenance-plan>div{border-right:0;border-bottom:1px solid var(--line)}.maintenance-plan>div:last-child{border-bottom:0}}.mobile-portal{display:grid;min-height:100vh;place-items:center;background:var(--surface-2);padding:18px}.mobile-canvas{display:flex;width:min(100%,480px);min-height:min(860px,calc(100vh - 36px));flex-direction:column;overflow:hidden;border:1px solid var(--primary-soft);border-radius:18px;background:var(--surface-raised);box-shadow:0 16px 46px color-mix(in srgb,var(--primary) 14%,transparent)}.mobile-topbar{justify-content:space-between;border-bottom:1px solid var(--line);padding:15px 16px 13px}.mobile-brand,.mobile-topbar{display:flex;align-items:center}.mobile-brand{gap:9px}.mobile-brand-logo{display:block;width:112px;height:auto;object-fit:contain}.mobile-brand-school{border-left:1px solid var(--line-strong);color:var(--ink-2);padding-left:9px;font-size:.68rem;font-weight:700;line-height:1.2}.mobile-icon-button{position:relative;display:grid;width:35px;height:35px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink)}.mobile-icon-button i{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--danger)}.mobile-profile{display:flex;align-items:center;gap:10px;padding:15px 16px 11px}.mobile-avatar{display:grid;width:40px;height:40px;flex:none;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary-strong);font-size:.76rem;font-weight:800}.mobile-avatar.student{background:var(--info-soft);color:var(--info-strong)}.mobile-avatar.parent{background:var(--accent-soft);color:var(--accent-strong)}.mobile-avatar.sdc{background:var(--success-soft);color:var(--success-strong)}.mobile-profile small,.mobile-profile span{display:block;color:var(--ink-2);font-size:.69rem}.mobile-profile strong{display:block;color:var(--ink);font-size:.84rem}.mobile-role-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);padding:0 14px 10px;scrollbar-width:none}.mobile-role-tabs button{min-height:30px;flex:none;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-2);padding:0 8px;font-size:.7rem;font-weight:750}.mobile-role-tabs button.active{border-color:var(--primary);background:var(--primary);color:white}.auth-page{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(480px,1.05fr);min-height:100vh;background:var(--surface-raised)}.auth-story{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(28px,4vw,64px);color:white;background:radial-gradient(34rem 30rem at 105% 100%,var(--primary) 0,transparent 72%),linear-gradient(145deg,var(--primary) 0,var(--primary) 62%,var(--primary) 100%)}.auth-brand{display:inline-flex;align-items:center;gap:12px;width:-moz-fit-content;width:fit-content;color:white;text-decoration:none}.auth-brand-logo{display:block;width:250px;height:64px;overflow:hidden}.auth-brand-logo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.auth-story-copy{max-width:33rem;padding-bottom:6vh}.auth-story-kicker{display:inline-block;margin-bottom:18px;color:var(--primary);font-size:.73rem;font-weight:800;letter-spacing:.14em}.auth-story-copy h1{max-width:11ch;margin:0 0 20px;color:white;font-size:clamp(2.8rem,4.1vw,4.7rem);line-height:1.04;letter-spacing:-.055em}.auth-story-copy p{max-width:29rem;color:var(--primary);font-size:1.02rem;line-height:1.65}.auth-story-footer{color:var(--primary);font-size:.77rem}.auth-main{display:grid;place-items:center;padding:48px 28px}.auth-card{width:min(100%,410px)}.auth-eyebrow{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.14em}.auth-card h2{margin:13px 0 10px;color:var(--ink);font-size:clamp(2rem,3vw,2.5rem);letter-spacing:-.045em;line-height:1.15}.auth-description{margin-bottom:32px;color:var(--ink-2);font-size:.94rem;line-height:1.6}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-form label{color:var(--ink);font-size:.82rem;font-weight:750}.auth-form input{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:9px;background:white;padding:0 14px;color:var(--ink);outline:none}.auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.auth-form input::placeholder{color:var(--faint)}.auth-label-row{display:flex;justify-content:space-between;align-items:center;margin-top:13px}.auth-back,.auth-label-row a{color:var(--primary);font-size:.82rem;font-weight:750;text-decoration:none}.auth-back:hover,.auth-label-row a:hover{text-decoration:underline}.auth-password-field{position:relative}.auth-password-field input{padding-right:48px}.auth-password-field button{position:absolute;top:4px;right:4px;display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--ink-2)}.auth-code-inputs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:clamp(5px,1.5vw,10px);gap:clamp(5px,1.5vw,10px)}.auth-form .auth-code-inputs input{min-width:0;min-height:56px;padding:0;text-align:center;font-size:1.35rem;font-weight:750;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.auth-submit{display:inline-flex;justify-content:center;align-items:center;gap:9px;width:100%;min-height:48px;margin-top:15px;border:1px solid var(--primary);border-radius:9px;background:var(--primary);color:white;font-size:.9rem;font-weight:800;text-decoration:none;transition:background .15s ease,transform .15s ease}.auth-submit:hover{background:var(--primary-strong)}.auth-submit:active{transform:translateY(1px)}.auth-submit:disabled{opacity:.65;cursor:wait}.auth-text-button{align-self:center;border:0;background:transparent;color:var(--primary);font:inherit;font-size:.82rem;font-weight:750;cursor:pointer}.auth-text-button:hover{text-decoration:underline}.staff-admin-grid{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.staff-admin-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);padding:22px;box-shadow:var(--shadow-sm)}.staff-admin-panel h2{font-size:1.05rem;margin:0 0 5px}.staff-admin-panel>p{color:var(--ink-2);font-size:.84rem;margin:0 0 20px}.staff-admin-form{display:grid;grid-gap:9px;gap:9px}.staff-admin-form label{font-size:.8rem;font-weight:750;color:var(--ink)}.staff-admin-form input,.staff-admin-form select{width:100%;min-height:42px;border:1px solid var(--line-strong);border-radius:8px;background:white;padding:0 12px;color:var(--ink);margin-bottom:7px}.staff-admin-form .primary-button{justify-self:start;margin-top:8px}.staff-admin-list{display:grid}.staff-admin-user{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);padding:14px 0}.staff-admin-user:first-child{border-top:0}.staff-admin-user>div{display:grid;min-width:0;grid-gap:3px;gap:3px}.staff-admin-user strong{color:var(--ink);font-size:.88rem}.staff-admin-user span{color:var(--ink-2);overflow-wrap:anywhere;font-size:.8rem}.staff-admin-user small{color:var(--faint);font-size:.75rem}.staff-admin-user .secondary-button{flex:none}.staff-admin-user>.staff-admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.staff-admin-actions select{min-height:38px;border:1px solid var(--line-strong);border-radius:7px;background:white;padding:0 9px;color:var(--ink)}.staff-admin-actions .secondary-button:disabled{opacity:.5;cursor:not-allowed}.role-manager{margin-top:18px}.role-manager-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.role-manager-heading p{margin:3px 0 0;color:var(--ink-2);font-size:.84rem}.role-manager-layout{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);grid-gap:22px;gap:22px}.role-list{display:grid;align-content:start;grid-gap:7px;gap:7px}.role-list button{border:1px solid var(--line);border-radius:8px;background:white;padding:11px;text-align:left;cursor:pointer}.role-list button.active{border-color:var(--primary);background:var(--primary-soft)}.role-list small,.role-list strong{display:block}.role-list strong{color:var(--ink);font-size:.84rem}.role-list small{color:var(--ink-2);font-size:.75rem;line-height:1.35;margin-top:3px}.role-form{display:grid;grid-gap:8px;gap:8px}.role-form legend,.role-form>label{color:var(--ink);font-size:.8rem;font-weight:750}.role-form>input{min-height:40px;border:1px solid var(--line-strong);border-radius:7px;background:white;padding:0 11px;color:var(--ink)}.role-form>input:disabled{background:var(--surface-2)}.role-key{color:var(--ink-2);font-size:.76rem;font-family:ui-monospace,monospace}.role-form fieldset{border:1px solid var(--line);border-radius:8px;margin:8px 0 0;padding:12px}.role-form legend{padding:0 5px}.role-permission{display:flex;align-items:flex-start;gap:10px;padding:9px 0;cursor:pointer}.role-permission+.role-permission{border-top:1px solid var(--line)}.role-permission input{margin-top:3px;accent-color:var(--primary)}.role-permission small,.role-permission strong{display:block}.role-permission strong{font-size:.82rem}.role-permission small{color:var(--ink-2);font-size:.75rem;font-weight:400;margin-top:2px}.role-note{color:var(--ink-2);font-size:.8rem}.role-form>.primary-button{justify-self:start}.forbidden-page{max-width:580px;margin:12vh auto;padding:35px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised)}.forbidden-page p{color:var(--ink-2);line-height:1.6}@media (max-width:700px){.role-manager-layout{grid-template-columns:1fr}}@media (max-width:850px){.staff-admin-grid{grid-template-columns:1fr}}@media (max-width:480px){.staff-admin-user{align-items:flex-start;flex-direction:column}}.auth-help{margin:14px 0 0;color:var(--ink-2);font-size:.78rem;line-height:1.55;text-align:center}.auth-error{margin:5px 0 0;border:1px solid var(--danger);border-radius:8px;background:var(--danger-soft);padding:10px 12px;color:var(--danger-strong);font-size:.82rem}.auth-success{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--success);border-radius:10px;background:var(--success-soft);padding:16px;color:var(--success-strong)}.auth-success p{margin:0;line-height:1.55}.auth-back{display:inline-flex;align-items:center;gap:7px;margin-top:28px}.auth-complete{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--primary)}.auth-complete strong{color:var(--ink);font-size:1.14rem}.auth-complete p{color:var(--ink-2);line-height:1.6}.auth-complete .auth-submit{margin-top:10px}@media (max-width:850px){.auth-page{grid-template-columns:1fr}.auth-story{min-height:auto;padding:24px}.auth-story-copy,.auth-story-footer{display:none}.auth-main{min-height:calc(100vh - 96px);align-items:start;padding:clamp(42px,10vw,80px) 24px}}.mobile-content{display:grid;flex:1 1;align-content:start;grid-gap:18px;gap:18px;overflow-y:auto;padding:16px}.mobile-hero{display:grid;grid-gap:7px;gap:7px;border:1px solid var(--line);border-radius:9px;background:var(--primary-soft);padding:15px}.mobile-hero.student{background:var(--info-soft)}.mobile-hero.parent{background:var(--accent-soft)}.mobile-hero.sdc{background:var(--success-soft)}.mobile-hero>span{color:var(--primary-strong);font-size:.69rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.mobile-hero.student>span{color:var(--info-strong)}.mobile-hero.parent>span{color:var(--accent-strong)}.mobile-hero.sdc>span{color:var(--success-strong)}.mobile-hero h1{margin:0;color:var(--ink);font-size:1.3rem;line-height:1.16;letter-spacing:0}.mobile-hero p{margin:0;color:var(--ink-2);font-size:.78rem;line-height:1.45}.mobile-hero>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}.mobile-hero button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:33px;border:1px solid var(--primary-strong);border-radius:7px;background:var(--primary-strong);color:white;padding:0 9px;font-size:.73rem;font-weight:750}.mobile-hero.student button{border-color:var(--info-strong);background:var(--info-strong)}.mobile-hero.parent button{border-color:var(--accent-strong);background:var(--accent-strong)}.mobile-hero.sdc button{border-color:var(--success-strong);background:var(--success-strong)}.mobile-hero button.quiet{border-color:transparent;background:transparent;color:var(--ink)}.mobile-hero button.complete{border-color:var(--success-strong);background:var(--success-strong)}.dashboard-page{--dashboard-indigo:var(--chart-1);--dashboard-gold:var(--chart-3);--dashboard-coral:var(--chart-4);--dashboard-muted-bar:var(--line);display:grid;grid-gap:22px;gap:22px;padding-bottom:24px}.dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);grid-gap:28px;gap:28px;overflow:hidden;align-items:flex-end;border:1px solid var(--primary);border-radius:20px;background:radial-gradient(circle at 88% 17%,var(--primary) 0,transparent 31%),radial-gradient(circle at 5% 115%,var(--primary) 0,transparent 35%),linear-gradient(120deg,var(--primary) 0,var(--primary) 68%,var(--primary) 100%);color:white;padding:clamp(22px,2.6vw,34px);box-shadow:0 16px 40px color-mix(in srgb,var(--primary) 10.98%,transparent)}.dashboard-hero:after{position:absolute;top:-118px;right:205px;width:310px;height:310px;border:1px solid color-mix(in srgb,var(--surface) 9.412%,transparent);border-radius:50%;content:"";pointer-events:none}.dashboard-hero-aside,.dashboard-hero-content{position:relative;z-index:1}.dashboard-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-size:.69rem;font-weight:800;letter-spacing:.11em}.dashboard-hero-eyebrow i,.dashboard-live-pill i{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 13.333%,transparent)}.dashboard-hero h1{margin:13px 0 8px;color:white;font-size:clamp(2.2rem,4.2vw,3.45rem);font-weight:760;line-height:1;letter-spacing:-.055em}.dashboard-hero p{max-width:620px;margin:0;color:var(--primary);font-size:.87rem;line-height:1.6}.dashboard-hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.dashboard-hero-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;border-radius:9px;padding:8px 13px;font-size:.76rem;font-weight:760;text-decoration:none;transition:transform .16s ease,background .16s ease}.dashboard-hero-actions a:hover{transform:translateY(-1px)}.dashboard-hero-primary{background:var(--primary-soft);color:var(--primary)}.dashboard-hero-secondary{border:1px solid color-mix(in srgb,var(--surface) 33.333%,transparent);background:color-mix(in srgb,var(--surface) 7.059%,transparent);color:white}.dashboard-hero-secondary:hover{background:color-mix(in srgb,var(--surface) 14.118%,transparent)}.dashboard-hero-aside{border:1px solid color-mix(in srgb,var(--surface) 18.039%,transparent);border-radius:15px;background:color-mix(in srgb,var(--surface) 7.843%,transparent);padding:18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-hero-aside>span{color:var(--primary);font-size:.72rem;font-weight:750}.dashboard-hero-aside strong{display:block;margin:7px 0 2px;color:white;font-size:2.45rem;font-weight:750;line-height:1;letter-spacing:-.05em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-hero-aside p{font-size:.72rem}.dashboard-hero-track{height:7px;overflow:hidden;margin-top:17px;border-radius:999px;background:color-mix(in srgb,var(--surface) 18.824%,transparent)}.dashboard-hero-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--success),var(--success-soft))}.dashboard-page .kpi-strip{gap:14px;margin:0}.dashboard-page .kpi-card{min-height:135px;border-color:var(--line);border-radius:15px;padding:19px;box-shadow:0 5px 22px color-mix(in srgb,var(--primary) 3.137%,transparent)}.dashboard-page .kpi-card:hover{border-color:var(--hf-primary-border);box-shadow:0 12px 26px color-mix(in srgb,var(--primary) 7.451%,transparent)}.dashboard-page .kpi-icon{width:31px;height:31px;border-radius:10px}.dashboard-page .kpi-label{font-size:.76rem}.dashboard-page .kpi-value{font-size:clamp(1.55rem,2vw,2rem);font-weight:760;letter-spacing:-.045em}.dashboard-page .kpi-detail{font-size:.75rem}.dashboard-page .trend{background:var(--primary-soft);color:var(--ink-2);font-size:.65rem}.dashboard-insights{display:grid;grid-gap:14px;gap:14px}.dashboard-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.dashboard-eyebrow{color:var(--dashboard-indigo);font-size:.67rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.dashboard-section-heading h2{margin:3px 0;color:var(--primary);font-size:1.55rem;font-weight:760;letter-spacing:-.04em}.dashboard-section-heading p{margin:0;color:var(--ink-2);font-size:.79rem}.dashboard-live-pill{display:inline-flex;align-items:center;gap:10px;flex:none;border:1px solid var(--line);border-radius:999px;background:var(--success-soft);color:var(--ink-2);padding:7px 11px;font-size:.7rem;font-weight:760}.dashboard-live-pill i{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 12.549%,transparent)}.dashboard-chart-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:14px;gap:14px;align-items:stretch}.dashboard-chart-grid>.dashboard-chart-panel{grid-column:span 6;min-width:0;min-height:350px;border-color:var(--line);border-radius:16px;padding:clamp(19px,2vw,26px);box-shadow:0 5px 22px color-mix(in srgb,var(--primary) 3.137%,transparent)}.dashboard-chart-grid>.dashboard-chart-wide{grid-column:1/-1}.dashboard-chart-grid>.dashboard-chart-half,.dashboard-chart-grid>.dashboard-chart-narrow{grid-column:span 6}.dashboard-chart-panel .panel-header{min-height:43px;margin-bottom:20px}.dashboard-chart-panel .panel-header h2,.dashboard-followup-panel .panel-header h2{color:var(--primary);font-size:1.08rem;font-weight:760;letter-spacing:-.025em}.dashboard-chart-panel .panel-header p,.dashboard-followup-panel .panel-header p{font-size:.79rem}.dashboard-chart-link{display:inline-flex;align-items:center;gap:3px;flex:none;color:var(--primary);font-size:.72rem;font-weight:770;text-decoration:none}.dashboard-chart-link:hover{color:var(--primary);text-decoration:underline}.dashboard-chart-lead{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px 12px;margin-bottom:5px}.dashboard-chart-lead strong{color:var(--primary);font-size:2rem;font-weight:760;letter-spacing:-.045em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-chart-lead span{color:var(--ink-2);font-size:.74rem}.dashboard-chart-lead em{border-radius:999px;padding:4px 8px;font-size:.68rem;font-style:normal;font-weight:760}.dashboard-chart-lead em.positive{background:var(--success-soft);color:var(--success-strong)}.dashboard-chart-lead em.negative{background:var(--danger-soft);color:var(--danger-strong)}.dashboard-line-legend{display:flex;flex-wrap:wrap;gap:7px 17px;margin:11px 0 1px;color:var(--ink-2);font-size:.69rem;font-weight:720}.dashboard-line-legend span{display:inline-flex;align-items:center;gap:6px}.dashboard-line-legend i{display:block;width:17px;height:3px;border-radius:3px}.dashboard-line-legend b{color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-line-legend i.present{background:var(--dashboard-indigo)}.dashboard-line-legend i.late{background:var(--dashboard-gold)}.dashboard-line-legend i.absent{background:var(--dashboard-coral)}.dashboard-chart-scale{margin:8px 0 0;color:var(--ink-2);font-size:.72rem;font-weight:700}.dashboard-pop-balloon{position:relative;min-width:174px;max-width:240px;border:1px solid var(--hf-primary-border);border-radius:13px;background:var(--surface);box-shadow:0 14px 34px color-mix(in srgb,var(--primary) 16.863%,transparent),0 3px 10px color-mix(in srgb,var(--primary) 7.059%,transparent);padding:11px 13px;color:var(--primary);font-size:.73rem;pointer-events:none}.dashboard-pop-balloon:after{position:absolute;bottom:-7px;left:18px;width:12px;height:12px;border-right:1px solid var(--hf-primary-border);border-bottom:1px solid var(--hf-primary-border);background:var(--surface);content:"";transform:rotate(45deg)}.dashboard-pop-balloon>strong{display:block;margin-bottom:7px;color:var(--primary);font-size:.81rem}.dashboard-pop-balloon-row{display:flex;justify-content:space-between;gap:14px;margin-top:5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-pop-balloon-row span{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}.dashboard-pop-balloon-row i{width:7px;height:7px;flex:none;border-radius:50%}.dashboard-pop-balloon-row b{color:var(--primary);font-weight:780;white-space:nowrap}.dashboard-pop-balloon small{display:block;border-top:1px solid var(--line);margin-top:8px;padding-top:7px;color:var(--ink-2);font-size:.68rem}.dashboard-pulse-chart-scroll{max-height:380px;overflow-y:auto}.dashboard-pulse-class-picker{display:flex;flex-wrap:wrap;gap:6px;max-height:96px;overflow-y:auto;margin-top:10px}.dashboard-pulse-class-picker button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--hf-primary-border);border-radius:7px;background:var(--primary-soft);padding:5px 8px;color:var(--ink-2);cursor:pointer;font:inherit;font-size:.69rem}.dashboard-pulse-class-picker button:focus-visible,.dashboard-pulse-class-picker button:hover{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-pulse-class-picker strong{color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-timeline-scroll{overflow-x:auto}.dashboard-timeline{display:block;width:100%;min-width:620px;max-width:960px;height:auto;margin:0 auto}.dashboard-trend-context{margin:0;color:var(--ink-2);font-size:.72rem;font-weight:670}.dashboard-timeline-grid{stroke:var(--ink-2);stroke-width:1}.dashboard-timeline-axis{fill:var(--ink-2);font-size:11px;font-family:inherit;font-weight:680}.dashboard-timeline-line{fill:none;stroke:var(--dashboard-indigo);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.dashboard-timeline-point{fill:white;stroke:var(--dashboard-indigo);stroke-width:3}.dashboard-timeline-line.late,.dashboard-timeline-point.late{stroke:var(--warning-strong)}.dashboard-timeline-line.absent,.dashboard-timeline-line.followup,.dashboard-timeline-point.absent,.dashboard-timeline-point.followup{stroke:var(--danger-strong)}.dashboard-chart-note{margin:12px 0 0;color:var(--ink-2);font-size:.69rem;line-height:1.5}.dashboard-chart-detail{display:flex;align-items:center;min-height:46px;margin:12px 0 0;border:1px solid var(--hf-primary-border);border-radius:10px;background:var(--primary-soft);color:var(--ink-2);padding:10px 13px;font-size:.76rem;font-weight:650;line-height:1.45}.dashboard-chart-detail.is-active{border-color:var(--hf-primary-border);background:var(--primary-soft);color:var(--primary)}.dashboard-chart-data{margin-top:10px;border:1px solid var(--hf-primary-border);border-radius:10px;color:var(--ink-2)}.dashboard-chart-data summary{cursor:pointer;padding:10px 13px;font-size:.75rem;font-weight:740}.dashboard-chart-data summary:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.dashboard-chart-data-scroll{overflow-x:auto;padding:0 13px 12px}.dashboard-chart-data table{width:100%;border-collapse:collapse;font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.dashboard-chart-data caption{padding:4px 0 8px;color:var(--ink-2);text-align:left}.dashboard-chart-data td,.dashboard-chart-data th{border-bottom:1px solid var(--line);padding:8px 10px;text-align:right}.dashboard-chart-data th:first-child{text-align:left}.dashboard-chart-data thead th{color:var(--ink-2);font-weight:760}.dashboard-chart-data tbody tr:last-child td,.dashboard-chart-data tbody tr:last-child th{border-bottom:0}.dashboard-chart-datum{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:0}.dashboard-chart-datum:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.dashboard-chart-datum:hover{filter:brightness(.96)}.dashboard-chart-hit{fill:transparent;pointer-events:all}.dashboard-histogram-datum,.dashboard-interactive-point,.dashboard-pie-slice{cursor:pointer}.dashboard-interactive-point.is-active .dashboard-timeline-point,.dashboard-interactive-point.is-active .dashboard-volume-point,.dashboard-interactive-point:focus .dashboard-timeline-point,.dashboard-interactive-point:focus .dashboard-volume-point,.dashboard-interactive-point:hover .dashboard-timeline-point,.dashboard-interactive-point:hover .dashboard-volume-point{fill:var(--primary);stroke-width:4}.dashboard-histogram-datum:focus-visible,.dashboard-interactive-point:focus-visible,.dashboard-pie-slice:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.dashboard-pie-slice:focus-visible,.dashboard-pie-slice:hover{filter:brightness(1.1);stroke-width:4px}.dashboard-histogram-datum.is-active .dashboard-histogram-bar,.dashboard-histogram-datum:focus .dashboard-histogram-bar,.dashboard-histogram-datum:hover .dashboard-histogram-bar{fill:var(--primary)}.dashboard-chart-empty{display:grid;min-height:170px;align-items:center;margin:0;border:1px dashed var(--hf-primary-border);border-radius:12px;background:var(--primary-soft);color:var(--ink-2);padding:17px;text-align:center;font-size:.76rem;line-height:1.5}.dashboard-mix-layout{display:grid;justify-items:center;grid-gap:15px;gap:15px}.dashboard-donut{display:grid;width:184px;height:184px;place-items:center;border-radius:50%;box-shadow:0 7px 24px color-mix(in srgb,var(--primary) 7.059%,transparent)}.dashboard-donut-hole{display:flex;width:134px;height:134px;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:white}.dashboard-donut-hole strong{color:var(--primary);font-size:1.8rem;line-height:1;letter-spacing:-.045em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-donut-hole span{margin-top:4px;color:var(--ink-2);font-size:.68rem;font-weight:700}.dashboard-mix-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;grid-gap:9px 18px;gap:9px 18px}.dashboard-mix-legend>button{display:grid;grid-template-columns:8px 1fr auto;grid-gap:7px;gap:7px;align-items:center;border-radius:7px;color:var(--ink-2);padding:5px;text-align:left;font-size:.74rem}.dashboard-mix-legend i{width:8px;height:8px;border-radius:3px}.dashboard-mix-legend i.present{background:var(--dashboard-indigo)}.dashboard-mix-legend i.late{background:var(--dashboard-gold)}.dashboard-mix-legend i.absent{background:var(--dashboard-coral)}.dashboard-mix-legend i.unmarked{background:var(--dashboard-muted-bar)}.dashboard-mix-legend strong{color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-mix-layout>.dashboard-chart-note{width:100%;margin-top:0;text-align:center}.dashboard-column-scroll{overflow-x:auto;padding-bottom:3px}.dashboard-columns{display:flex;align-items:flex-end;gap:14px;min-width:max-content;height:245px;padding:5px 2px 0}.dashboard-column{display:flex;width:72px;height:100%;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;text-align:center}.dashboard-column strong{color:var(--primary);font-size:.77rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-column:focus-visible .dashboard-column-track span,.dashboard-column:hover .dashboard-column-track span{background:linear-gradient(180deg,var(--primary),var(--primary))}.dashboard-column-track{display:flex;width:36px;height:172px;flex-direction:column;justify-content:flex-end;border-radius:7px 7px 3px 3px;background:var(--primary-soft)}.dashboard-column-track span{display:block;width:100%;border-radius:inherit;background:linear-gradient(180deg,var(--primary),var(--primary))}.dashboard-column small{display:block;width:78px;overflow:hidden;color:var(--ink-2);font-size:.73rem;font-weight:690;text-overflow:ellipsis;white-space:nowrap}.dashboard-rate-list{display:grid;grid-gap:12px;gap:12px}.dashboard-rate-row{display:grid;width:100%;grid-template-columns:minmax(110px,1fr) minmax(80px,1.1fr) 38px;grid-gap:10px;gap:10px;align-items:center;border-radius:9px;padding:5px;text-align:left}.dashboard-rate-label{display:grid;grid-gap:1px;gap:1px;min-width:0}.dashboard-rate-row strong{overflow:hidden;color:var(--ink);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-rate-row small{color:var(--ink-2);font-size:.66rem}.dashboard-rate-track{height:9px;overflow:hidden;border-radius:999px;background:var(--primary-soft)}.dashboard-rate-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--primary))}.dashboard-rate-row b{color:var(--primary);font-size:.72rem;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-aging-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;margin-bottom:12px}.dashboard-aging-total strong{color:var(--primary);font-size:1.5rem;font-weight:760;letter-spacing:-.04em}.dashboard-aging-total span{color:var(--ink-2);font-size:.7rem}.dashboard-aging-chart{display:flex;justify-content:space-between;gap:10px;height:225px}.dashboard-aging-column{display:flex;flex:1 1;min-width:0;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;border-radius:8px;padding:3px}.dashboard-aging-column b{max-width:100%;overflow:hidden;color:var(--ink);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-aging-column small{color:var(--ink-2);font-size:.71rem;font-weight:710;white-space:nowrap}.dashboard-aging-track{display:flex;width:min(100%,46px);height:155px;flex-direction:column;justify-content:flex-end;border-radius:6px 6px 3px 3px;background:var(--surface-2)}.dashboard-aging-track span{display:block;width:100%;border-radius:inherit;background:var(--primary)}.dashboard-aging-column.recent .dashboard-aging-track>span{background:var(--warning)}.dashboard-aging-column.middle .dashboard-aging-track>span,.dashboard-aging-column.old .dashboard-aging-track>span{background:var(--danger)}.dashboard-aging-column.unknown .dashboard-aging-track>span{background:var(--ink-2)}.dashboard-pie-lead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 9px;margin-bottom:8px}.dashboard-pie-lead strong{color:var(--primary);font-size:1.55rem;font-weight:760;letter-spacing:-.04em}.dashboard-pie-lead span{color:var(--ink-2);font-size:.71rem}.dashboard-pie-layout{display:grid;grid-template-columns:minmax(165px,205px) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:center}.dashboard-pie{display:block;width:100%;height:auto;filter:drop-shadow(0 7px 12px color-mix(in srgb,var(--ink) 9%,transparent))}.dashboard-pie-legend{display:grid;grid-gap:8px;gap:8px}.dashboard-pie-legend>button{color:var(--ink-2);font-size:.7rem}.dashboard-pie-legend button{display:grid;width:100%;grid-template-columns:9px minmax(0,1fr) auto;grid-column-gap:7px;column-gap:7px;align-items:center;border-radius:7px;padding:4px;text-align:left}.dashboard-pie-legend i{width:9px;height:9px;border-radius:3px}.dashboard-pie-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-pie-legend strong{color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-pie-legend small{grid-column:2/-1;color:var(--ink-2);font-size:.65rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-heat-legend{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:var(--ink-2);font-size:.66rem;font-weight:700}.dashboard-heat-legend i{width:88px;height:7px;border-radius:999px;background:linear-gradient(90deg,hsl(6 68% 78%),hsl(75 68% 78%),hsl(138 68% 78%))}.dashboard-heat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));grid-gap:9px;gap:9px;margin:0;padding:0;list-style:none}.dashboard-heat-grid li{min-width:0}.dashboard-heat-grid button{display:grid;width:100%;min-height:67px;align-content:center;grid-gap:3px;gap:3px;border:1px solid;border-radius:9px;padding:8px;text-align:center}.dashboard-heat-grid strong{overflow:hidden;color:var(--ink);font-size:.73rem;font-weight:780;text-overflow:ellipsis;white-space:nowrap}.dashboard-heat-grid span{color:var(--primary);font-size:.91rem;font-weight:790;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-heat-grid small{color:var(--ink-2);font-size:.68rem;white-space:nowrap}.dashboard-class-dialog{width:min(760px,calc(100vw - 28px));max-height:min(86vh,850px);margin:auto;overflow:hidden;border:1px solid var(--hf-primary-border);border-radius:22px;background:var(--surface);color:var(--primary);padding:0;box-shadow:0 30px 90px color-mix(in srgb,var(--primary) 27.059%,transparent),0 8px 24px color-mix(in srgb,var(--primary) 10.98%,transparent)}.dashboard-class-dialog[open]{animation:dashboard-dialog-in .22s cubic-bezier(.2,.8,.2,1) both}.dashboard-class-dialog::-webkit-backdrop{background:color-mix(in srgb,var(--primary) 54.118%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:dashboard-backdrop-in .22s ease both}.dashboard-class-dialog::backdrop{background:color-mix(in srgb,var(--primary) 54.118%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:dashboard-backdrop-in .22s ease both}@keyframes dashboard-dialog-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dashboard-backdrop-in{0%{opacity:0}to{opacity:1}}.dashboard-class-dialog-content{display:flex;max-height:min(86vh,850px);flex-direction:column}.dashboard-class-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--hf-primary-border);background:radial-gradient(circle at 90% 0,var(--primary-soft) 0,transparent 34%),linear-gradient(115deg,var(--primary-soft),var(--surface));padding:26px 28px 22px}.dashboard-class-dialog-header span{color:var(--primary);font-size:.7rem;font-weight:820;letter-spacing:.11em}.dashboard-class-dialog-header h2{margin:7px 0 4px;color:var(--primary);font-size:clamp(1.45rem,3vw,1.85rem);letter-spacing:-.045em;line-height:1.15}.dashboard-class-dialog-header p{margin:0;color:var(--ink-2);font-size:.79rem}.dashboard-class-dialog-close{display:grid;width:36px;height:36px;flex:none;place-items:center;border:1px solid var(--hf-primary-border);border-radius:10px;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.dashboard-class-dialog-close:hover{transform:rotate(90deg);background:var(--primary-soft);color:var(--primary)}.dashboard-class-dialog-close:focus-visible,.dashboard-class-dialog-filters button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.dashboard-class-dialog-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;padding:20px 28px 18px}.dashboard-class-dialog-stats>div{display:grid;grid-gap:5px;gap:5px;min-width:0;border:1px solid var(--hf-primary-border);border-radius:12px;background:var(--primary-soft);padding:13px 15px}.dashboard-class-dialog-stats>div:first-child{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-class-dialog-stats span{color:var(--ink-2);font-size:.72rem;font-weight:700}.dashboard-class-dialog-stats strong{color:var(--primary);font-size:1.5rem;font-weight:780;line-height:1;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-class-dialog-stats>div:first-child strong{color:var(--primary)}.dashboard-class-dialog-toolbar{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:0 28px 16px}.dashboard-class-dialog-toolbar>div:first-child{display:grid;grid-gap:2px;gap:2px}.dashboard-class-dialog-toolbar strong{color:var(--primary);font-size:.92rem}.dashboard-class-dialog-toolbar>div:first-child span{color:var(--ink-2);font-size:.72rem}.dashboard-class-dialog-filters{display:flex;flex-wrap:wrap;gap:5px;border:1px solid var(--hf-primary-border);border-radius:11px;background:var(--primary-soft);padding:4px}.dashboard-class-dialog-filters button{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);cursor:pointer;padding:5px 9px;font:inherit;font-size:.72rem;font-weight:730;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.dashboard-class-dialog-filters button:hover{color:var(--primary)}.dashboard-class-dialog-filters button.is-active{background:var(--surface);color:var(--primary);box-shadow:0 1px 5px color-mix(in srgb,var(--primary) 10.98%,transparent)}.dashboard-class-dialog-filters button span{color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-class-dialog-list{display:grid;grid-gap:7px;gap:7px;min-height:0;margin:0;overflow-y:auto;overscroll-behavior:contain;padding:0 28px 25px;list-style:none}.dashboard-class-dialog-list li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-gap:11px;gap:11px;align-items:center;border:1px solid var(--hf-primary-border);border-radius:11px;background:var(--surface);padding:9px 12px;transition:border-color .15s ease,background .15s ease}.dashboard-class-dialog-list li:hover{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-class-dialog-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:.72rem;font-weight:800}.dashboard-class-dialog-student{display:grid;grid-gap:2px;gap:2px;min-width:0}.dashboard-class-dialog-student strong{overflow:hidden;color:var(--primary);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-class-dialog-student small{color:var(--ink-2);font-size:.68rem}.dashboard-class-dialog-student p{overflow:hidden;margin:2px 0 0;color:var(--ink-2);font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-class-status{border-radius:999px;padding:6px 10px;font-size:.69rem;font-weight:780}.dashboard-class-status.present{background:var(--success-soft);color:var(--success-strong)}.dashboard-class-status.late{background:var(--warning-soft);color:var(--warning-strong)}.dashboard-class-status.absent{background:var(--danger-soft);color:var(--danger-strong)}.dashboard-class-dialog-empty{margin:0 28px 25px;border:1px dashed var(--hf-primary-border);border-radius:12px;color:var(--ink-2);padding:22px;text-align:center;font-size:.78rem}@media (max-width:650px){.dashboard-class-dialog{border-radius:17px}.dashboard-class-dialog-header{padding:20px 18px}.dashboard-class-dialog-stats{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 18px}.dashboard-class-dialog-toolbar{padding:0 18px 14px}.dashboard-class-dialog-list{padding:0 18px 18px}.dashboard-class-dialog-empty{margin:0 18px 18px}}@media (prefers-reduced-motion:reduce){.dashboard-class-dialog::-webkit-backdrop{animation:none}.dashboard-class-dialog::backdrop,.dashboard-class-dialog[open]{animation:none}.dashboard-class-dialog-close,.dashboard-class-dialog-filters button,.dashboard-class-dialog-list li{transition:none}}.dashboard-volume-lead{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px 10px;margin:0 0 8px}.dashboard-volume-lead strong{color:var(--primary);font-size:1.65rem;font-weight:780;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-volume-lead span{color:var(--ink-2);font-size:.71rem}.dashboard-svg-scroll{overflow-x:auto}.dashboard-histogram,.dashboard-volume-chart{display:block;width:100%;min-width:520px;max-width:720px;height:auto;margin:0 auto;overflow:visible}.dashboard-volume-grid{stroke:var(--ink-2);stroke-width:1}.dashboard-volume-axis{fill:var(--ink-2);font-family:inherit;font-size:11px;font-weight:680}.dashboard-volume-line{fill:none;stroke:var(--success-strong);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.dashboard-volume-point{fill:white;stroke:var(--success-strong);stroke-width:3}.dashboard-histogram-bar,.dashboard-histogram-bar:hover{fill:var(--primary)}.dashboard-histogram-count{fill:var(--ink-2);font-family:inherit;font-size:10px;font-weight:740;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-followup-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-gap:14px;gap:14px;align-items:start}.dashboard-followup-panel{min-width:0;border-color:var(--line);border-radius:16px;padding:19px;box-shadow:0 5px 22px color-mix(in srgb,var(--primary) 3.137%,transparent)}.dashboard-action-list{display:grid;grid-gap:9px;gap:9px}.dashboard-action{display:grid;grid-template-columns:9px 1fr auto;grid-gap:11px;gap:11px;align-items:center;border:1px solid var(--hf-primary-border);border-radius:11px;background:var(--primary-soft);color:inherit;padding:11px;text-decoration:none;transition:background .16s ease,border-color .16s ease}.dashboard-action:hover{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-action-mark{width:9px;height:30px;border-radius:4px;background:var(--danger)}.dashboard-action.attention .dashboard-action-mark{background:var(--warning)}.dashboard-action.finance .dashboard-action-mark{background:var(--primary)}.dashboard-action>span:nth-child(2){display:grid;grid-gap:2px;gap:2px}.dashboard-action strong{color:var(--primary);font-size:.76rem;font-weight:760}.dashboard-action small{color:var(--ink-2);font-size:.69rem}.dashboard-action>svg{color:var(--ink-2)}.dashboard-student-list{display:grid;grid-gap:7px;gap:7px}.dashboard-student-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto 16px;align-items:center;grid-gap:10px;gap:10px;min-width:0;border:1px solid var(--hf-primary-border);border-radius:11px;padding:9px 10px;color:inherit;text-decoration:none;transition:background .16s ease,border-color .16s ease}.dashboard-student-row:hover{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-student-avatar{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:.68rem;font-weight:800}.dashboard-student-main,.dashboard-student-meta{display:grid;grid-gap:2px;gap:2px;min-width:0}.dashboard-student-main strong,.dashboard-student-meta strong{overflow:hidden;color:var(--primary);font-size:.73rem;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.dashboard-student-main small,.dashboard-student-meta small{overflow:hidden;color:var(--ink-2);font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.dashboard-student-meta{text-align:right}.dashboard-student-row>svg{color:var(--ink-2)}@media (max-width:1180px){.dashboard-chart-grid>.dashboard-chart-panel{grid-column:1/-1}}@media (max-width:900px){.dashboard-hero{grid-template-columns:1fr}.dashboard-hero-aside{max-width:360px}.dashboard-followup-grid{grid-template-columns:1fr}}@media (max-width:650px){.dashboard-page{gap:17px}.dashboard-hero{gap:18px;padding:22px}.dashboard-hero-aside{max-width:none}.dashboard-page .kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-page .kpi-card{min-height:118px;padding:13px}.dashboard-page .kpi-topline{flex-wrap:wrap}.dashboard-page .kpi-label{flex-basis:calc(100% - 40px)}.dashboard-page .kpi-value{font-size:1.55rem}.dashboard-chart-grid>.dashboard-chart-narrow,.dashboard-chart-grid>.dashboard-chart-panel,.dashboard-chart-grid>.dashboard-chart-wide{grid-column:1/-1}.dashboard-section-heading{align-items:start;flex-direction:column}.dashboard-rate-row{grid-template-columns:minmax(100px,1fr) minmax(70px,1fr) 34px}.dashboard-chart-grid>.dashboard-chart-panel{min-height:0}.dashboard-student-row{grid-template-columns:32px minmax(0,1fr) auto;gap:8px}.dashboard-student-avatar{width:32px;height:32px}.dashboard-student-row>svg{display:none}.dashboard-student-meta{max-width:92px}.dashboard-chart-grid>.dashboard-chart-panel{padding:18px}.dashboard-pie-layout{grid-template-columns:1fr}.dashboard-pie{width:min(100%,205px);margin:0 auto}.dashboard-pie-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-heat-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}}.record-edit-dialog-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:auto;padding:14px;background:color-mix(in srgb,var(--primary) 55%,transparent)}.record-edit-dialog{width:min(500px,calc(100vw - 28px));max-height:min(88vh,760px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);color:var(--ink);padding:22px;box-shadow:var(--shadow-md)}.record-edit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.record-edit-heading h2{margin:0;font-size:1.18rem;line-height:1.3}.record-edit-close{display:grid;width:30px;height:30px;flex:none;place-items:center;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink);font-size:1.3rem;line-height:1}.record-edit-form{display:grid;grid-gap:13px;gap:13px}.record-edit-context{margin:0 0 3px;color:var(--ink-2);font-size:.8rem}.record-edit-form>label:not(.record-edit-checkbox){display:grid;grid-gap:5px;gap:5px;color:var(--ink);font-size:.79rem;font-weight:700}.record-edit-form input:not([type=checkbox]),.record-edit-form select,.record-edit-form textarea{width:100%;min-height:39px;border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-raised);color:var(--ink);padding:8px 10px;font:inherit;font-weight:450}.record-edit-form textarea{resize:vertical}.record-edit-close:focus-visible,.record-edit-form input:focus-visible,.record-edit-form select:focus-visible,.record-edit-form textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.record-edit-checkbox{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:.81rem;font-weight:650}.record-edit-checkbox input{width:16px;height:16px;accent-color:var(--primary)}.record-edit-error{margin:0;border:1px solid var(--danger);border-radius:var(--radius-xs);background:var(--danger-soft);color:var(--danger-strong);padding:9px 11px;font-size:.8rem}.record-edit-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:7px}@media (max-width:560px){.record-edit-dialog{padding:17px}.record-edit-actions{flex-direction:column-reverse}.record-edit-actions button{width:100%}}.student-save-confirmation{position:fixed;right:22px;bottom:22px;z-index:90;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);border:1px solid var(--success);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);padding:12px 14px;box-shadow:var(--shadow-md);font-size:.82rem}.student-save-confirmation a{color:var(--primary-strong);font-weight:750;text-decoration:underline}.student-save-confirmation button{border:0;background:transparent;color:var(--ink-2);font-size:1.2rem;line-height:1}.audit-log-panel{overflow:hidden}.audit-log-summary{display:flex;align-items:baseline;gap:8px;margin-bottom:16px;color:var(--ink-2);font-size:.82rem}.audit-log-summary strong{color:var(--ink);font-size:1.4rem}.audit-log-scroll{overflow-x:auto}.audit-log-table{width:100%;border-collapse:collapse;font-size:.78rem}.audit-log-table td,.audit-log-table th{border-bottom:1px solid var(--line);padding:11px 10px;text-align:left;vertical-align:top;white-space:nowrap}.audit-log-table th{color:var(--ink-2);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}.audit-log-table td small,.audit-log-table td strong{display:block}.audit-log-table td small{color:var(--ink-2);margin-top:3px}.audit-log-table code{color:var(--primary-strong);font-size:.73rem}.audit-status{display:inline-flex;border-radius:999px;background:var(--success-soft);color:var(--success-strong);padding:3px 8px;font-weight:750}.audit-status.failed{background:var(--danger-soft);color:var(--danger-strong)}@media (max-width:560px){.student-save-confirmation{right:16px;bottom:16px;left:16px}}.toast-notification{position:fixed;top:22px;right:22px;z-index:1100;display:flex;align-items:center;gap:11px;width:min(430px,calc(100vw - 32px));border:1px solid var(--success);border-radius:12px;background:var(--surface-raised);color:var(--ink);padding:13px 14px;box-shadow:0 14px 36px color-mix(in srgb,var(--primary) 18%,transparent)}.toast-icon{flex:none;color:var(--success-strong)}.toast-copy{display:grid;min-width:0;grid-gap:2px;gap:2px}.toast-copy strong{font-size:.82rem;font-weight:780}.toast-copy>span{overflow:hidden;color:var(--ink-2);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.toast-action{flex:none;margin-left:auto}.toast-action a{color:var(--primary-strong);font-size:.75rem;font-weight:750;text-decoration:underline;text-underline-offset:2px}.toast-close{display:grid;flex:none;place-items:center;border:0;background:transparent;color:var(--ink-2);padding:3px}.toast-close:hover{color:var(--ink)}@media (max-width:560px){.toast-notification{top:16px;right:16px}}.student-actions{display:flex;align-items:center;gap:9px}.student-new-button,.student-new-button:hover{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.record-import-file{min-height:42px;padding:8px!important}.record-edit-error ul{margin:6px 0 0;padding-left:19px}.record-import-success{margin:0;border:1px solid var(--success);border-radius:var(--radius-xs);background:var(--success-soft);color:var(--success-strong);padding:9px 11px;font-size:.8rem}@media (max-width:560px){.student-actions{align-items:stretch;flex-direction:column-reverse;width:100%}.student-actions button{width:100%}}.editable-module-table{min-width:0;scroll-margin-top:100px}.editable-module-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.editable-module-tools>span{color:var(--ink-2);font-size:.76rem}.editable-module-tools button{flex:none}.editable-module-notice{margin:0 0 12px;border:1px solid var(--success);border-radius:var(--radius-xs);background:var(--success-soft);color:var(--success-strong);padding:8px 11px;font-size:.79rem}.record-edit-field{display:grid;grid-gap:5px;gap:5px}.record-edit-field>label:first-child{color:var(--ink);font-size:.79rem;font-weight:700}.record-edit-field>input{width:100%;min-height:39px;border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-raised);color:var(--ink);padding:8px 10px;font:inherit}.record-edit-tone{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:.75rem}.record-edit-tone select{flex:1 1;min-height:34px;border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-raised);color:var(--ink);padding:5px 8px}@media (max-width:560px){.editable-module-tools{align-items:flex-start;flex-direction:column}}.mobile-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.mobile-section-title span{display:block;color:var(--faint);font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.mobile-section-title h2{margin:1px 0 0;color:var(--ink);font-size:.93rem}.mobile-link-button{border:0;background:transparent;color:var(--primary-strong);padding:0;font-size:.71rem;font-weight:750}.mobile-agenda,.mobile-task-list{display:grid;border-top:1px solid var(--line)}.mobile-agenda article,.mobile-inline-action,.mobile-task-list button{display:grid;align-items:center;grid-gap:9px;gap:9px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 0;text-align:left}.mobile-agenda article{grid-template-columns:44px 5px minmax(0,1fr) auto}.mobile-agenda time{color:var(--ink-2);font-size:.73rem;font-weight:750}.agenda-line{width:5px;height:33px;border-radius:4px;background:var(--success)}.agenda-line.info{background:var(--info)}.mobile-agenda article div,.mobile-inline-action>span,.mobile-task-list button>span:nth-child(2){display:grid;grid-gap:2px;gap:2px;min-width:0}.mobile-agenda strong,.mobile-inline-action strong,.mobile-task-list strong{color:var(--ink);font-size:.78rem}.mobile-agenda small,.mobile-inline-action small,.mobile-task-list small{overflow:hidden;color:var(--ink-2);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.mobile-agenda svg,.mobile-inline-action svg:last-child,.mobile-task-list svg{color:var(--faint)}.mobile-task-list button{grid-template-columns:32px minmax(0,1fr) auto;width:100%}.task-icon{display:grid;width:29px;height:29px;place-items:center;border-radius:7px;background:var(--primary-soft);color:var(--primary-strong)}.task-icon.warn{background:var(--warning-soft);color:var(--warning-strong)}.task-icon.info{background:var(--info-soft);color:var(--info-strong)}.task-icon.good{background:var(--success-soft);color:var(--success-strong)}.mobile-assignment{display:grid;grid-gap:7px;gap:7px;border:1px solid var(--primary);border-radius:9px;background:var(--info-soft);padding:13px}.assignment-chip{justify-self:start;border-radius:5px;background:var(--surface-raised);color:var(--info-strong);padding:3px 6px;font-size:.66rem;font-weight:800}.mobile-assignment strong{font-size:.91rem}.mobile-assignment p{margin:0;color:var(--ink-2);font-size:.74rem}.mobile-assignment div{display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-assignment div span{color:var(--info-strong);font-size:.7rem;font-weight:750}.mobile-assignment button{min-height:30px;border:1px solid var(--info-strong);border-radius:6px;background:var(--info-strong);color:white;padding:0 8px;font-size:.7rem;font-weight:750}.mobile-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.mobile-stat-grid article{display:grid;grid-gap:4px;gap:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 8px}.mobile-stat-grid article:last-child{border-right:0}.mobile-stat-grid small,.mobile-stat-grid span{color:var(--ink-2);font-size:.66rem;line-height:1.25}.mobile-stat-grid strong{color:var(--ink);font-size:.98rem}.budget-meter,.mini-meter{display:block;height:4px;overflow:hidden;border-radius:4px;background:var(--line)}.budget-meter i,.mini-meter i{display:block;height:100%;border-radius:inherit;background:var(--success)}.mobile-inline-action{grid-template-columns:29px minmax(0,1fr) auto;width:100%;border-top:1px solid var(--line)}.mobile-inline-action>svg:first-child{color:var(--info-strong)}.mobile-inline-form{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--warning);border-radius:9px;background:var(--accent-soft);padding:12px}.mobile-inline-form strong{font-size:.82rem}.mobile-inline-form label{display:grid;grid-gap:4px;gap:4px;color:var(--accent-strong);font-size:.7rem;font-weight:750}.mobile-inline-form input,.mobile-inline-form select{width:100%;min-height:33px;border:1px solid var(--warning);border-radius:6px;background:var(--surface-raised);color:var(--ink);padding:0 7px;font:inherit;font-size:.75rem}.mobile-form-submit{min-height:33px;border:1px solid var(--accent-strong);border-radius:6px;background:var(--accent-strong);color:white;font-size:.74rem;font-weight:750}.mobile-parent-summary{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}.child-avatar{display:grid;width:33px;height:33px;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-size:.68rem;font-weight:800}.mobile-parent-summary div{display:grid;grid-gap:2px;gap:2px;min-width:0}.mobile-parent-summary strong{overflow:hidden;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.mobile-parent-summary small{color:var(--ink-2);font-size:.68rem}.present-dot{color:var(--success-strong);font-size:.66rem;font-weight:800}.mobile-meeting-pack{display:grid;grid-gap:9px;gap:9px;border:1px solid var(--success);border-radius:9px;background:var(--success-soft);padding:12px}.mobile-meeting-pack div{display:grid;grid-gap:3px;gap:3px}.mobile-meeting-pack span{color:var(--success-strong);font-size:.67rem;font-weight:800;text-transform:uppercase}.mobile-meeting-pack strong{font-size:.82rem}.mobile-meeting-pack small{color:var(--ink-2);font-size:.72rem}.mobile-meeting-pack button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:1px solid var(--success-strong);border-radius:6px;background:var(--success-strong);color:white;font-size:.72rem;font-weight:750}.mobile-budget{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line)}.mobile-budget article{display:grid;grid-gap:3px;gap:3px;background:var(--surface-raised);padding:11px}.mobile-budget small,.mobile-budget span{color:var(--ink-2);font-size:.68rem}.mobile-budget strong{color:var(--ink);font-size:1rem}.mobile-budget .budget-meter{grid-column:1/-1;background:var(--surface-raised);padding:0 11px 11px}.mobile-budget .budget-meter i{background:var(--success)}.mobile-notice{display:flex;align-items:center;gap:7px;border-top:1px solid var(--success);background:var(--success-soft);color:var(--success-strong);padding:9px 14px;font-size:.72rem;font-weight:750}.mobile-notice span{flex:1 1}.mobile-notice button{border:0;background:transparent;color:var(--success-strong);font-size:1.05rem;line-height:1}.mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface-raised)}.mobile-bottom-nav button{display:grid;min-height:56px;place-items:center;align-content:center;grid-gap:2px;gap:2px;border:0;background:transparent;color:var(--faint);font-size:.63rem}.mobile-bottom-nav button.active{color:var(--primary-strong)}.mobile-bottom-nav button.active svg{stroke-width:2.5}@media (max-width:560px){.mobile-portal{display:block;padding:0}.mobile-canvas{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.workflow-stack{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;grid-gap:24px;gap:24px;margin-top:24px}.report-preview,.workflow-stack>.panel{min-width:0}.workflow-form{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin:16px 0 24px}.workflow-form label{display:flex;flex-direction:column;gap:7px;flex:1 1 180px;min-width:0;font-size:13px;font-weight:600}.workflow-form input,.workflow-form select,.workflow-form textarea{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-raised);color:var(--ink);font:inherit}.workflow-form textarea{min-width:0}.workflow-table-wrap{overflow-x:auto}.workflow-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.workflow-table td,.workflow-table th{padding:13px 12px;border-bottom:1px solid var(--line,var(--line));vertical-align:top}.workflow-table th{font-weight:700;white-space:nowrap}.workflow-table td{max-width:360px;overflow-wrap:anywhere}.workflow-table details p{margin:6px 0}.workflow-table .primary-button,.workflow-table .secondary-button{white-space:nowrap}.report-preview{border:1px solid var(--line,var(--line));border-radius:10px;padding:20px;margin:20px 0}.tenant-admin-page{display:grid;grid-gap:20px;gap:20px;padding-bottom:34px}.tenant-admin-hero{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:28px;overflow:hidden;min-height:214px;border:1px solid var(--primary);border-radius:19px;padding:clamp(24px,3vw,36px);background:radial-gradient(circle at 88% 12%,var(--primary) 0,transparent 32%),radial-gradient(circle at 2% 100%,var(--primary) 0,transparent 38%),linear-gradient(115deg,var(--primary),var(--primary));box-shadow:0 16px 36px color-mix(in srgb,var(--primary) 11.373%,transparent);color:var(--primary-foreground)}.tenant-admin-hero:after{position:absolute;top:-102px;right:140px;width:290px;height:290px;border:1px solid color-mix(in srgb,var(--surface) 11.765%,transparent);border-radius:50%;content:"";pointer-events:none}.tenant-admin-hero-copy,.tenant-admin-hero-stat{position:relative;z-index:1}.tenant-admin-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-size:.7rem;font-weight:800;letter-spacing:.12em}.tenant-admin-hero h1{margin:14px 0 8px;color:var(--primary-foreground);font-size:clamp(2.25rem,4vw,3.3rem);line-height:1;letter-spacing:-.055em}.tenant-admin-hero p{max-width:570px;margin:0;color:var(--primary);font-size:.91rem;line-height:1.6}.tenant-admin-hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.tenant-admin-hero-tags span{display:inline-flex;align-items:center;gap:7px;border:1px solid color-mix(in srgb,var(--surface) 22.353%,transparent);border-radius:100px;background:color-mix(in srgb,var(--surface) 7.451%,transparent);padding:7px 11px;color:var(--primary);font-size:.71rem;font-weight:700}.tenant-admin-hero-stat{display:grid;flex:none;align-content:center;width:170px;min-height:135px;border:1px solid color-mix(in srgb,var(--surface) 21.961%,transparent);border-radius:15px;background:color-mix(in srgb,var(--surface) 8.627%,transparent);padding:18px 20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tenant-admin-hero-stat span{color:var(--primary);font-size:.73rem;font-weight:700}.tenant-admin-hero-stat strong{margin:5px 0 2px;color:var(--primary-foreground);font-size:3rem;line-height:1;letter-spacing:-.07em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tenant-admin-hero-stat small{color:var(--success-strong);font-size:.72rem;font-weight:750}.tenant-admin-layout{display:grid;grid-template-columns:minmax(350px,.88fr) minmax(410px,1.12fr);align-items:start;grid-gap:18px;gap:18px}.tenant-admin-panel{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface-raised);padding:clamp(20px,2.2vw,28px);box-shadow:0 8px 24px color-mix(in srgb,var(--primary) 4.314%,transparent)}.tenant-admin-panel-heading{display:flex;align-items:center;gap:12px}.tenant-admin-panel-icon{display:grid;flex:none;width:40px;height:40px;place-items:center;border-radius:11px;background:var(--primary-soft);color:var(--primary)}.tenant-admin-panel-icon.teal{background:var(--success-soft);color:var(--success-strong)}.tenant-admin-panel-heading span{color:var(--ink-2);font-size:.64rem;font-weight:800;letter-spacing:.11em}.tenant-admin-panel-heading h2{margin:2px 0 0;color:var(--ink);font-size:1.22rem;letter-spacing:-.025em}.tenant-admin-intro{margin:16px 0 24px;color:var(--ink-2);font-size:.82rem;line-height:1.65}.tenant-admin-form{display:grid;grid-gap:9px;gap:9px}.tenant-admin-form-section{display:flex;gap:12px;align-items:flex-start;margin:15px 0 7px}.tenant-admin-form-section:first-child{margin-top:0}.tenant-admin-step{display:inline-grid;flex:none;width:30px;height:30px;place-items:center;border:1px solid var(--hf-primary-border);border-radius:9px;background:var(--primary-soft);color:var(--ink-2);font-size:.67rem;font-weight:800}.tenant-admin-form-section h3{margin:1px 0 2px;color:var(--ink);font-size:.89rem}.tenant-admin-form-section p{margin:0;color:var(--ink-2);font-size:.73rem;line-height:1.45}.tenant-admin-branding>label,.tenant-admin-form>label{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px;color:var(--ink);font-size:.76rem;font-weight:750}.tenant-admin-form>label span{color:var(--ink-2);font-size:.66rem;font-weight:650}.tenant-admin-form input{min-width:0;width:100%;min-height:43px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 12px;color:var(--ink);font:inherit;font-size:.82rem;outline:none;transition:border-color .15s,box-shadow .15s}.tenant-admin-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tenant-admin-form input::placeholder{color:var(--ink-2)}.tenant-admin-slug-field{display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--primary-soft)}.tenant-admin-slug-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tenant-admin-slug-field>span{padding:0 0 0 14px;color:var(--ink-2);font-weight:800}.tenant-admin-form .tenant-admin-slug-field input{border:0;background:transparent;box-shadow:none;padding-left:3px}.tenant-admin-field-note{margin:-1px 0 5px;color:var(--ink-2);font-size:.7rem}.tenant-admin-field-note strong{color:var(--ink-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.tenant-admin-field-note.error{color:var(--danger-strong)}.tenant-admin-password-field{position:relative}.tenant-admin-password-field input{padding-right:45px}.tenant-admin-password-field button{position:absolute;top:4px;right:4px;display:grid;width:35px;height:35px;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--ink-2);cursor:pointer}.tenant-admin-password-field button:hover{background:var(--primary-soft)}.tenant-admin-generate{display:inline-flex;justify-self:start;align-items:center;gap:7px;border:0;background:transparent;padding:2px 0 9px;color:var(--primary);font-size:.73rem;font-weight:750;cursor:pointer}.tenant-admin-generate:hover{text-decoration:underline}.tenant-admin-branding{margin-top:8px;border:1px solid var(--line);border-radius:11px;background:var(--primary-soft);padding:0 14px 13px}.tenant-admin-branding summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:58px;cursor:pointer;list-style:none}.tenant-admin-branding summary::-webkit-details-marker{display:none}.tenant-admin-branding summary>span:first-child{display:inline-flex;align-items:center;gap:9px}.tenant-admin-branding summary strong{color:var(--ink);font-size:.79rem}.tenant-admin-branding summary small{border-radius:5px;background:var(--primary-soft);padding:3px 5px;color:var(--ink-2);font-size:.59rem;font-weight:800}.tenant-admin-branding summary>span:last-child{color:var(--ink-2);font-size:.7rem}.tenant-admin-branding p{margin:1px 0 14px;color:var(--ink-2);font-size:.73rem;line-height:1.55}.tenant-admin-colors{display:grid;grid-template-columns:1fr 1fr;grid-gap:11px;gap:11px;margin-bottom:11px}.tenant-admin-colors label{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:7px 9px;color:var(--ink);font-size:.72rem;font-weight:700}.tenant-admin-colors input[type=color]{width:32px;min-height:27px;height:27px;border:0;border-radius:6px;padding:0;cursor:pointer}.tenant-admin-branding>input{margin-top:7px}.tenant-admin-form-footer{display:grid;grid-gap:15px;gap:15px;border-top:1px solid var(--line);margin-top:11px;padding-top:17px}.tenant-admin-form-footer>div{display:flex;align-items:flex-start;gap:8px;color:var(--ink-2);font-size:.72rem;line-height:1.45}.tenant-admin-form-footer>div svg{flex:none;color:var(--ink-2)}.tenant-admin-form-footer .primary-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:43px;border-radius:9px}.tenant-admin-form-footer .primary-button:disabled{opacity:.65;cursor:not-allowed}.tenant-admin-spin{animation:tenant-spin 1s linear infinite}@keyframes tenant-spin{to{transform:rotate(1turn)}}.tenant-admin-search{display:flex;align-items:center;gap:9px;min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--primary-soft);padding:0 12px;color:var(--ink-2)}.tenant-admin-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tenant-admin-search input{width:100%;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.82rem;outline:none}.tenant-admin-search input::placeholder{color:var(--ink-2)}.tenant-admin-list{margin-top:10px}.tenant-admin-item{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:16px 1px}.tenant-admin-avatar{display:grid;flex:none;width:39px;height:39px;place-items:center;border:1px solid var(--hf-primary-border);border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:.74rem;font-weight:800}.tenant-admin-item:nth-child(4n+2) .tenant-admin-avatar{border-color:var(--success);background:var(--success-soft);color:var(--success-strong)}.tenant-admin-item:nth-child(4n+3) .tenant-admin-avatar{border-color:var(--warning);background:var(--warning-soft);color:var(--warning-strong)}.tenant-admin-item:nth-child(4n+4) .tenant-admin-avatar{border-color:var(--hf-primary-border);background:var(--primary-soft);color:var(--ink-2)}.tenant-admin-item-main{flex:1 1;min-width:0}.tenant-admin-item-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.tenant-admin-item-title h3{margin:0;color:var(--ink);font-size:.85rem;letter-spacing:-.01em}.tenant-admin-status{display:inline-flex;align-items:center;gap:5px;border-radius:100px;background:var(--success-soft);padding:4px 7px;color:var(--success-strong);font-size:.61rem;font-weight:800}.tenant-admin-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.tenant-admin-status.inactive{background:var(--surface-2);color:var(--ink-2)}.tenant-admin-item p,.tenant-admin-item small{display:flex;align-items:center;gap:6px;margin:5px 0 0;color:var(--ink-2);font-size:.72rem;overflow-wrap:anywhere}.tenant-admin-item small{color:var(--ink-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem}.tenant-admin-item>a{display:grid;flex:none;width:34px;height:34px;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--ink-2)}.tenant-admin-item>a:hover{border-color:var(--hf-primary-border);background:var(--primary-soft);color:var(--primary)}.tenant-admin-empty{display:grid;justify-items:center;grid-gap:7px;gap:7px;border:1px dashed var(--line);border-radius:12px;margin-top:14px;padding:42px 18px;color:var(--ink-2);text-align:center}.tenant-admin-empty strong{color:var(--ink);font-size:.83rem}.tenant-admin-empty p{margin:0;color:var(--ink-2);font-size:.74rem}.tenant-admin-directory-foot{display:flex;gap:9px;border-radius:10px;background:var(--primary-soft);margin-top:19px;padding:12px;color:var(--ink-2)}.tenant-admin-directory-foot svg{flex:none}.tenant-admin-directory-foot p{margin:0;font-size:.71rem;line-height:1.5}.tenant-admin-success{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--success);border-radius:14px;background:linear-gradient(120deg,var(--success-soft),var(--success-soft));padding:20px;color:var(--success-strong)}.tenant-admin-success-icon{display:grid;flex:none;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--success-soft)}.tenant-admin-success-body{flex:1 1;min-width:0}.tenant-admin-success-body>span{font-size:.63rem;font-weight:800;letter-spacing:.11em}.tenant-admin-success h2{margin:3px 0 5px;color:var(--success-strong);font-size:1.17rem}.tenant-admin-success p{margin:0;font-size:.79rem;line-height:1.6}.tenant-admin-success-actions{display:flex;flex-wrap:wrap;gap:8px;margin:13px 0 10px}.tenant-admin-success-actions a,.tenant-admin-success-actions button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);padding:6px 10px;color:var(--success-strong);font:inherit;font-size:.71rem;font-weight:750;text-decoration:none;cursor:pointer}.tenant-admin-success-actions a:hover,.tenant-admin-success-actions button:hover{background:var(--success-soft)}.tenant-admin-success-body>small{color:var(--ink-2);font-size:.68rem;line-height:1.5}.tenant-admin-dismiss{display:grid;flex:none;width:28px;height:28px;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--ink-2);cursor:pointer}.tenant-admin-dismiss:hover{background:var(--success-soft)}@media (max-width:1080px){.tenant-admin-layout{grid-template-columns:1fr}}@media (max-width:560px){.tenant-admin-hero{align-items:stretch;flex-direction:column}.tenant-admin-hero-stat{width:100%;min-height:100px}.tenant-admin-hero-stat strong{font-size:2.3rem}.tenant-admin-branding summary>span:last-child{display:none}.tenant-admin-panel{padding:18px}.tenant-admin-colors{grid-template-columns:1fr}}.login-audit-page{display:grid;grid-gap:20px;gap:20px;padding-bottom:28px}.login-audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:13px;gap:13px}.login-audit-summary article{display:flex;align-items:flex-start;gap:12px;min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:17px;box-shadow:0 5px 17px color-mix(in srgb,var(--primary) 3.137%,transparent)}.login-audit-stat-icon{display:grid;flex:none;width:36px;height:36px;place-items:center;border-radius:10px}.login-audit-stat-icon.success{background:var(--success-soft);color:var(--success-strong)}.login-audit-stat-icon.danger{background:var(--danger-soft);color:var(--danger-strong)}.login-audit-stat-icon.info{background:var(--primary-soft);color:var(--primary)}.login-audit-stat-icon.warning{background:var(--warning-soft);color:var(--warning-strong)}.login-audit-summary small{display:block;color:var(--ink-2);font-size:.69rem;font-weight:750}.login-audit-summary strong{display:block;margin:3px 0 0;color:var(--ink);font-size:1.7rem;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.045em}.login-audit-summary p{margin:5px 0 0;color:var(--ink-2);font-size:.65rem;line-height:1.4}.login-audit-panel{min-width:0;border:1px solid var(--line);border-radius:15px;background:var(--surface-raised);box-shadow:0 7px 24px color-mix(in srgb,var(--primary) 4.314%,transparent);overflow:hidden}.login-audit-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 15px}.login-audit-panel-head span{color:var(--ink-2);font-size:.65rem;font-weight:800;letter-spacing:.1em}.login-audit-panel-head h2{margin:4px 0 5px;color:var(--ink);font-size:1.1rem;letter-spacing:-.02em}.login-audit-panel-head p{margin:0;color:var(--ink-2);font-size:.78rem;line-height:1.5}.login-audit-count{display:inline-flex;flex:none;align-items:center;gap:6px;border-radius:100px;background:var(--primary-soft);padding:7px 10px;color:var(--primary);font-size:.71rem;font-weight:800}.login-audit-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:11px;border-bottom:1px solid var(--line);padding:0 24px 18px}.login-audit-filters form{display:flex;flex:1 1 230px;align-items:center;gap:8px;min-height:41px;border:1px solid var(--line);border-radius:9px;background:var(--primary-soft);padding:0 4px 0 11px;color:var(--ink-2)}.login-audit-filters form:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.login-audit-filters form input{width:100%;min-width:90px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.78rem;outline:none}.login-audit-filters form button{min-height:32px;border:0;border-radius:6px;background:var(--primary-soft);padding:0 10px;color:var(--primary);font-size:.7rem;font-weight:800;cursor:pointer}.login-audit-filters form button:hover{background:var(--primary-soft)}.login-audit-filters label{display:grid;grid-gap:4px;gap:4px;color:var(--ink-2);font-size:.66rem;font-weight:800}.login-audit-filters select{min-height:41px;min-width:144px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 10px;color:var(--ink);font:inherit;font-size:.76rem}.login-audit-panel>.auth-error{margin:14px 24px}.login-audit-table-wrap{overflow-x:auto}.login-audit-table{width:100%;border-collapse:collapse;font-size:.75rem}.login-audit-table th{background:var(--primary-soft);padding:12px 15px;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}.login-audit-table td,.login-audit-table th{border-bottom:1px solid var(--line);color:var(--ink-2)}.login-audit-table td{padding:14px 15px;vertical-align:middle}.login-audit-table tr:last-child td{border-bottom:0}.login-audit-table td small,.login-audit-table td strong{display:block}.login-audit-table td strong{color:var(--primary);font-weight:750;white-space:nowrap}.login-audit-table td small{margin-top:3px;color:var(--ink-2);font-size:.68rem}.login-audit-table td code{color:var(--ink-2);font-size:.69rem}.login-audit-event{display:inline-flex;border-radius:100px;padding:5px 9px;font-size:.65rem;font-weight:800;white-space:nowrap}.login-audit-event.success{background:var(--success-soft);color:var(--success-strong)}.login-audit-event.danger{background:var(--danger-soft);color:var(--danger-strong)}.login-audit-event.warning{background:var(--warning-soft);color:var(--warning-strong)}.login-audit-event.neutral{background:var(--primary-soft);color:var(--ink-2)}.login-audit-table td.login-audit-client{max-width:260px;overflow:hidden;color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap}.login-audit-empty{display:grid;justify-items:center;grid-gap:6px;gap:6px;padding:55px 20px;color:var(--ink-2);font-size:.79rem;text-align:center}.login-audit-empty strong{color:var(--ink);font-size:.9rem}.login-audit-empty p{margin:0;color:var(--ink-2);font-size:.75rem}.login-audit-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 24px;color:var(--ink-2);font-size:.72rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login-audit-footer>div{display:flex;gap:7px}.login-audit-footer button{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:6px 10px}.login-audit-footer button:disabled{opacity:.45;cursor:not-allowed}@media (max-width:1050px){.login-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:590px){.login-audit-summary{grid-template-columns:1fr 1fr;gap:8px}.login-audit-summary article{flex-direction:column;padding:13px}.login-audit-filters,.login-audit-panel-head{padding-left:16px;padding-right:16px}.login-audit-filters form{flex-basis:100%}.login-audit-filters label{flex:1 1 130px}.login-audit-filters select{min-width:0;width:100%}.login-audit-footer{padding:12px 16px}}.dashboard-future{--dashboard-indigo:var(--chart-1);--dashboard-coral:var(--chart-4);--dashboard-gold:var(--chart-3);--dashboard-muted-bar:var(--line);border:1px solid var(--primary);border-radius:22px;padding:clamp(16px,2vw,28px);background:radial-gradient(ellipse at 85% 0,color-mix(in srgb,var(--primary) 20.784%,transparent),transparent 34%),radial-gradient(ellipse at 3% 30%,color-mix(in srgb,var(--primary) 12.549%,transparent),transparent 32%),var(--primary);box-shadow:0 20px 65px color-mix(in srgb,var(--primary) 10.98%,transparent)}.dashboard-future .dashboard-hero{position:relative;isolation:isolate;border:1px solid color-mix(in srgb,var(--primary) 39.608%,transparent);border-radius:18px;background:radial-gradient(ellipse at 80% 10%,color-mix(in srgb,var(--primary) 15.686%,transparent),transparent 55%),linear-gradient(115deg,var(--primary),var(--primary) 70%,var(--primary));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--primary-soft) 6.275%,transparent)}.dashboard-future .dashboard-hero:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:linear-gradient(color-mix(in srgb,var(--primary) 2%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primary) 2%,transparent) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(90deg,transparent,black);mask-image:linear-gradient(90deg,transparent,black)}.dashboard-future .dashboard-hero h1{font-size:clamp(2.5rem,4.1vw,3.8rem);letter-spacing:-.055em}.dashboard-future .dashboard-hero-eyebrow{letter-spacing:.1em}.dashboard-future .dashboard-hero-primary{color:var(--primary);box-shadow:0 0 20px color-mix(in srgb,var(--primary) 9.412%,transparent)}.dashboard-future .dashboard-hero-primary:hover{background:var(--success)}.dashboard-future .dashboard-hero-secondary{background:color-mix(in srgb,var(--surface) 1.961%,transparent);border-color:color-mix(in srgb,var(--line-strong) 33.333%,transparent)}.dashboard-future .dashboard-hero-aside{background:color-mix(in srgb,var(--primary) 40%,transparent);border-color:color-mix(in srgb,var(--hf-primary-border) 16.471%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-future .dashboard-hero-track{background:color-mix(in srgb,var(--primary-soft) 3.922%,transparent)}.dashboard-future .dashboard-hero-track span{box-shadow:0 0 10px color-mix(in srgb,var(--primary) 25.098%,transparent)}.dashboard-telemetry-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border:1px solid var(--primary);border-radius:12px;padding:12px 16px;background:var(--primary)}.dashboard-stream-status{display:flex;align-items:center;gap:11px;color:var(--success-strong)}.dashboard-stream-status>svg{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--green) 19%,transparent))}.dashboard-stream-status.is-stale{color:var(--warning-strong)}.dashboard-stream-status>span{display:grid;grid-gap:3px;gap:3px}.dashboard-stream-status strong{color:inherit;font-size:.76rem;letter-spacing:.015em}.dashboard-stream-status small{color:var(--ink-2);font-size:.67rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-telemetry-controls{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.dashboard-telemetry-controls label{color:var(--ink-2);font-size:.7rem;margin-right:2px}.dashboard-telemetry-controls button,.dashboard-telemetry-controls select{min-height:34px;border:1px solid var(--line-strong);border-radius:7px;padding:0 10px;background:var(--primary);color:var(--primary);font:inherit;font-size:.7rem;cursor:pointer}.dashboard-telemetry-controls select{color-scheme:dark}.dashboard-telemetry-controls button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.dashboard-telemetry-controls button:hover{border-color:var(--primary);color:var(--primary)}.dashboard-telemetry-controls button:disabled{cursor:wait;opacity:.65}.dashboard-insight-tabs button:focus-visible,.dashboard-telemetry-controls :focus-visible,.echart-dimension-toolbar button:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.dashboard-refresh-spin{animation:dashboard-refresh-spin 1s linear infinite}@keyframes dashboard-refresh-spin{to{transform:rotate(1turn)}}.dashboard-refresh-alert{margin:0;border:1px solid color-mix(in srgb,var(--warning) 27.059%,transparent);background:color-mix(in srgb,var(--warning) 4.314%,transparent);border-radius:10px;padding:12px 15px;color:var(--warning-strong);font-size:.77rem;line-height:1.5}.dashboard-future .kpi-card{position:relative;border-color:var(--primary);background:linear-gradient(130deg,var(--primary),var(--primary));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface) 2.353%,transparent);overflow:hidden}.dashboard-future .kpi-card:after{content:"";position:absolute;height:2px;left:18px;right:18px;bottom:0;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 50.196%,transparent),transparent)}.dashboard-future .kpi-card:nth-child(2):after{background:linear-gradient(90deg,color-mix(in srgb,var(--primary-soft) 50.196%,transparent),transparent)}.dashboard-future .kpi-card:nth-child(3):after{background:linear-gradient(90deg,color-mix(in srgb,var(--warning) 50.196%,transparent),transparent)}.dashboard-future .kpi-card:nth-child(4):after{background:linear-gradient(90deg,color-mix(in srgb,var(--danger) 50.196%,transparent),transparent)}.dashboard-future .kpi-card:hover{border-color:var(--line-strong);box-shadow:0 10px 24px color-mix(in srgb,var(--ink) 12.549%,transparent);transform:translateY(-2px)}.dashboard-future .kpi-icon{background:color-mix(in srgb,var(--primary) 7.059%,transparent)}.dashboard-future .kpi-trend{border-color:var(--primary);background:color-mix(in srgb,var(--surface) 1.961%,transparent);color:var(--primary)}.dashboard-future .dashboard-eyebrow{display:inline-flex;align-items:center;gap:6px}.dashboard-future .dashboard-section-heading{margin:10px 0 2px}.dashboard-future .dashboard-section-heading h2{font-size:1.6rem}.dashboard-future .dashboard-section-heading p{font-size:.76rem}.dashboard-insight-tabs{display:inline-flex;flex:none;gap:3px;padding:4px;border:1px solid var(--primary);border-radius:9px;background:var(--primary)}.dashboard-insight-tabs button{min-height:32px;border:0;border-radius:6px;background:transparent;padding:0 12px;color:var(--ink-2);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer}.dashboard-insight-tabs button[aria-pressed=true]{background:var(--primary);color:var(--primary);box-shadow:0 1px 4px color-mix(in srgb,var(--ink) 14.51%,transparent)}.dashboard-future .dashboard-chart-grid{gap:16px}.dashboard-future .dashboard-chart-grid>.dashboard-chart-panel{min-height:0;border:1px solid var(--primary);border-radius:15px;background:linear-gradient(145deg,var(--primary),var(--primary) 65%);padding:22px;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface) 1.961%,transparent),0 5px 20px color-mix(in srgb,var(--ink) 6.275%,transparent)}.dashboard-future .dashboard-chart-grid>.dashboard-chart-feature{grid-column:span 8}.dashboard-future .dashboard-chart-grid>.dashboard-chart-compact{grid-column:span 4}.dashboard-future .dashboard-chart-grid>.dashboard-chart-spatial{background:radial-gradient(ellipse at 65% 65%,color-mix(in srgb,var(--primary) 14.902%,transparent),transparent 65%),var(--primary)}.dashboard-future .dashboard-chart-panel .panel-header{gap:12px;margin-bottom:18px}.dashboard-future .dashboard-chart-panel .panel-header h2,.dashboard-future .dashboard-followup-panel .panel-header h2{font-size:1rem}.dashboard-future .dashboard-chart-panel .panel-header p,.dashboard-future .dashboard-followup-panel .panel-header p{font-size:.72rem}.dashboard-future .dashboard-chart-link{font-size:.68rem}.dashboard-future .dashboard-chart-lead{margin-bottom:6px}.dashboard-future .dashboard-chart-lead strong{font-size:clamp(1.6rem,2.4vw,2.2rem)}.dashboard-chart-lead strong small{font-size:.56em;font-weight:500;margin-left:2px;color:var(--ink-2)}.dashboard-future .dashboard-chart-lead span{color:var(--ink-2);font-size:.7rem}.dashboard-future .dashboard-chart-lead em.positive{background:color-mix(in srgb,var(--success) 7.059%,transparent)}.dashboard-future .dashboard-chart-lead em.negative{background:color-mix(in srgb,var(--danger) 7.059%,transparent)}.echart-frame{position:relative;width:100%;min-width:0}.echart-canvas{width:100%;height:100%;outline:none}.echart-canvas:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:8px}.echart-error,.echart-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:9px;margin:0;color:var(--ink-2);font-size:.75rem;pointer-events:none}.echart-loading i{width:7px;height:7px;background:var(--primary);border-radius:50%;box-shadow:0 0 10px color-mix(in srgb,var(--primary) 31.373%,transparent)}.echart-error{padding:20px;text-align:center;color:var(--warning-strong)}.echart-balloon{position:relative;min-width:175px;max-width:280px;border:1px solid var(--line-strong);border-radius:11px;background:color-mix(in srgb,var(--primary) 96.078%,transparent);color:var(--primary);padding:13px 15px;box-shadow:0 16px 42px color-mix(in srgb,var(--primary) 50.196%,transparent),inset 0 1px 0 color-mix(in srgb,var(--primary-soft) 7.451%,transparent);font:12px Inter,sans-serif;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.echart-balloon>strong{display:block;margin-bottom:10px;color:var(--primary);font-size:13px}.echart-balloon>div{display:flex;justify-content:space-between;gap:20px;margin-top:7px}.echart-balloon span{color:var(--ink-2)}.echart-balloon b{color:var(--primary);font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.echart-balloon small{display:block;border-top:1px solid var(--line-strong);margin-top:11px;padding-top:9px;color:var(--ink-2);font-size:10px;line-height:1.5}.echart-stat-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px 14px;gap:10px 14px;margin:8px 0 14px}.echart-stat-legend>span{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-size:.7rem}.echart-stat-legend i{height:7px;width:7px;flex:none;border-radius:2px}.echart-stat-legend b{margin-left:auto;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.echart-stat-legend>span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.echart-dimension-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.echart-dimension-toolbar>span{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:.68rem}.echart-dimension-toolbar>div{display:flex;gap:3px;border:1px solid var(--primary);border-radius:7px;padding:3px}.echart-dimension-toolbar button{min-height:28px;border:0;border-radius:4px;background:transparent;color:var(--ink-2);padding:0 9px;font:inherit;font-size:.65rem;cursor:pointer}.echart-dimension-toolbar button[aria-pressed=true]{background:var(--primary);color:var(--primary)}.dashboard-future .dashboard-chart-note{line-height:1.65;font-size:.68rem}.dashboard-future .dashboard-chart-empty{border-color:var(--line-strong);background:var(--primary)}.dashboard-future .dashboard-chart-data{background:color-mix(in srgb,var(--primary) 25.098%,transparent);border-color:var(--primary);margin-top:15px}.dashboard-future .dashboard-chart-data summary{display:flex;justify-content:space-between;padding:10px 12px;font-size:.68rem;color:var(--primary)}.dashboard-chart-data summary>span{color:var(--ink-2);font-size:.62rem}.dashboard-future .dashboard-chart-data-scroll{max-height:260px;overflow:auto}.dashboard-future .dashboard-chart-data td,.dashboard-future .dashboard-chart-data th{border-color:var(--primary);color:var(--primary)}.dashboard-future .dashboard-chart-data caption,.dashboard-future .dashboard-chart-data thead th{color:var(--primary)}.dashboard-future .dashboard-pulse-class-picker button{background:var(--primary);border-color:var(--primary);color:var(--primary)}.dashboard-future .dashboard-action,.dashboard-future .dashboard-action:hover,.dashboard-future .dashboard-followup-panel,.dashboard-future .dashboard-student-row,.dashboard-future .dashboard-student-row:hover{background:var(--primary);border-color:var(--primary)}.dashboard-future .dashboard-student-avatar{background:color-mix(in srgb,var(--primary-soft) 8.235%,transparent)}@media (max-width:1400px){.dashboard-future .dashboard-chart-grid>.dashboard-chart-compact,.dashboard-future .dashboard-chart-grid>.dashboard-chart-feature{grid-column:span 6}}@media (max-width:1100px){.dashboard-future .dashboard-chart-grid>.dashboard-chart-panel{grid-column:1/-1}.dashboard-future .dashboard-chart-grid>.dashboard-chart-compact .echart-stat-legend{max-width:400px;margin-inline:auto}.dashboard-future .dashboard-followup-grid{grid-template-columns:1fr}}@media (max-width:650px){.dashboard-future{border-radius:14px;padding:12px;gap:13px}.dashboard-future .dashboard-hero{padding:21px}.dashboard-future .dashboard-chart-grid>.dashboard-chart-panel{padding:15px 12px}.dashboard-future .dashboard-chart-panel .panel-header h2{font-size:.9rem}.dashboard-future .dashboard-chart-panel .panel-header p{font-size:.65rem}.dashboard-telemetry-bar{padding:12px}.dashboard-telemetry-controls{width:100%;gap:5px}.dashboard-telemetry-controls button,.dashboard-telemetry-controls select{padding-inline:8px}.dashboard-insight-tabs{width:100%}.dashboard-insight-tabs button{flex:1 1;padding-inline:7px}.echart-balloon{min-width:150px;max-width:220px;font-size:11px;padding:10px 12px}.echart-dimension-toolbar>span{font-size:.62rem}}@media (prefers-reduced-motion:reduce){.dashboard-refresh-spin{animation:none}.dashboard-future .kpi-card:hover{transform:none}}.dashboard-future{color:var(--primary);border-color:var(--line);background:var(--surface);box-shadow:0 12px 42px color-mix(in srgb,var(--primary) 3.922%,transparent)}.dashboard-future .dashboard-hero{border-color:var(--hf-primary-border);background:var(--surface);color:var(--primary);box-shadow:0 9px 28px color-mix(in srgb,var(--primary) 4.314%,transparent)}.dashboard-future .dashboard-hero:before{background-image:linear-gradient(color-mix(in srgb,var(--primary) 17%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--primary) 17%,transparent) 1px,transparent 1px)}.dashboard-future .dashboard-hero:after{border-color:var(--hf-primary-border)}.dashboard-future .dashboard-hero h1{color:var(--primary)}.dashboard-future .dashboard-hero p{color:var(--ink-2)}.dashboard-future .dashboard-hero-eyebrow{color:var(--primary)}.dashboard-future .dashboard-hero-primary{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 15.686%,transparent)}.dashboard-future .dashboard-hero-primary:hover{background:var(--primary)}.dashboard-future .dashboard-hero-secondary{border-color:var(--hf-primary-border);background:var(--surface);color:var(--primary)}.dashboard-future .dashboard-hero-secondary:hover{background:var(--primary-soft)}.dashboard-future .dashboard-hero-aside{border-color:var(--hf-primary-border);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 5px 19px color-mix(in srgb,var(--primary) 3.529%,transparent)}.dashboard-future .dashboard-hero-aside p,.dashboard-future .dashboard-hero-aside>span{color:var(--ink-2)}.dashboard-future .dashboard-hero-aside strong{color:var(--primary)}.dashboard-future .dashboard-hero-track{background:var(--primary-soft)}.dashboard-future .dashboard-hero-track span{background:linear-gradient(90deg,var(--primary),var(--primary));box-shadow:none}.dashboard-future .dashboard-telemetry-bar{border-color:var(--hf-primary-border);background:var(--surface)}.dashboard-future .dashboard-stream-status{color:var(--success-strong)}.dashboard-future .dashboard-stream-status.is-stale{color:var(--warning-strong)}.dashboard-future .dashboard-stream-status small,.dashboard-future .dashboard-telemetry-controls label{color:var(--ink-2)}.dashboard-future .dashboard-telemetry-controls button,.dashboard-future .dashboard-telemetry-controls select{border-color:var(--hf-primary-border);background:var(--surface);color:var(--ink)}.dashboard-future .dashboard-telemetry-controls select{color-scheme:light}.dashboard-future .dashboard-telemetry-controls button:hover{border-color:var(--primary);color:var(--primary)}.dashboard-future .dashboard-refresh-alert{border-color:var(--warning);background:var(--warning-soft);color:var(--warning-strong)}.dashboard-future .kpi-card{border-color:var(--hf-primary-border);background:var(--surface);box-shadow:0 5px 19px color-mix(in srgb,var(--primary) 3.529%,transparent)}.dashboard-future .kpi-card:hover{border-color:var(--hf-primary-border);box-shadow:0 10px 25px color-mix(in srgb,var(--primary) 7.843%,transparent)}.dashboard-future .kpi-value{color:var(--primary)}.dashboard-future .kpi-detail,.dashboard-future .kpi-label{color:var(--ink-2)}.dashboard-future .kpi-icon{background:var(--primary-soft);color:var(--primary)}.dashboard-future .kpi-trend{border-color:var(--hf-primary-border);background:var(--primary-soft);color:var(--ink-2)}.dashboard-future .dashboard-eyebrow,.dashboard-future .dashboard-section-heading h2{color:var(--primary)}.dashboard-future .dashboard-section-heading p{color:var(--ink-2)}.dashboard-future .dashboard-insight-tabs{border-color:var(--hf-primary-border);background:var(--surface)}.dashboard-future .dashboard-insight-tabs button{color:var(--ink-2)}.dashboard-future .dashboard-insight-tabs button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary);box-shadow:0 1px 4px color-mix(in srgb,var(--primary) 7.059%,transparent)}.dashboard-future .dashboard-chart-grid>.dashboard-chart-panel,.dashboard-future .dashboard-chart-grid>.dashboard-chart-spatial{border-color:var(--hf-primary-border);background:var(--surface);box-shadow:0 5px 20px color-mix(in srgb,var(--primary) 3.922%,transparent)}.dashboard-future .dashboard-chart-panel .panel-header h2,.dashboard-future .dashboard-followup-panel .panel-header h2{color:var(--primary)}.dashboard-future .dashboard-chart-panel .panel-header p,.dashboard-future .dashboard-followup-panel .panel-header p{color:var(--ink-2)}.dashboard-future .dashboard-chart-lead strong,.dashboard-future .dashboard-chart-link,.dashboard-future .dashboard-chart-link:hover{color:var(--primary)}.dashboard-future .dashboard-chart-lead span,.dashboard-future .dashboard-chart-lead strong small{color:var(--ink-2)}.dashboard-future .dashboard-chart-lead em.positive{background:var(--success-soft);color:var(--success-strong)}.dashboard-future .dashboard-chart-lead em.negative{background:var(--danger-soft);color:var(--danger-strong)}.dashboard-future .echart-canvas{background:var(--surface)}.dashboard-future .dashboard-insight-tabs button:focus-visible,.dashboard-future .dashboard-telemetry-controls :focus-visible,.dashboard-future .echart-canvas:focus-visible,.dashboard-future .echart-dimension-toolbar button:focus-visible{outline-color:var(--primary)}.dashboard-future .echart-loading{color:var(--ink-2)}.dashboard-future .echart-error{color:var(--danger-strong)}.dashboard-future .echart-balloon{border-color:var(--hf-primary-border);background:var(--surface);color:var(--primary);box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 14.118%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.dashboard-future .echart-balloon>strong{color:var(--primary)}.dashboard-future .echart-balloon small,.dashboard-future .echart-balloon span{color:var(--ink-2)}.dashboard-future .echart-balloon b{color:var(--primary)}.dashboard-future .echart-balloon small{border-color:var(--hf-primary-border)}.dashboard-future .echart-stat-legend>span{color:var(--ink-2)}.dashboard-future .echart-stat-legend b{color:var(--primary)}.dashboard-future .echart-dimension-toolbar>span{color:var(--ink-2)}.dashboard-future .echart-dimension-toolbar>div{border-color:var(--hf-primary-border);background:var(--surface)}.dashboard-future .echart-dimension-toolbar button{color:var(--ink-2)}.dashboard-future .echart-dimension-toolbar button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary)}.dashboard-future .dashboard-chart-note{color:var(--ink-2)}.dashboard-future .dashboard-chart-empty{border-color:var(--line);background:var(--surface);color:var(--ink-2)}.dashboard-future .dashboard-chart-data{border-color:var(--hf-primary-border);background:var(--surface);color:var(--ink-2)}.dashboard-future .dashboard-chart-data summary{color:var(--ink-2)}.dashboard-future .dashboard-chart-data summary:hover{color:var(--primary)}.dashboard-future .dashboard-chart-data td,.dashboard-future .dashboard-chart-data th{border-color:var(--hf-primary-border);color:var(--ink-2)}.dashboard-future .dashboard-chart-data caption,.dashboard-future .dashboard-chart-data thead th{color:var(--ink-2)}.dashboard-future .dashboard-pulse-class-picker button{border-color:var(--hf-primary-border);background:var(--surface);color:var(--ink-2)}.dashboard-future .dashboard-pulse-class-picker button strong{color:var(--primary)}.dashboard-future .dashboard-pulse-class-picker button:hover{border-color:var(--primary)}.dashboard-future .dashboard-action,.dashboard-future .dashboard-followup-panel,.dashboard-future .dashboard-student-row{border-color:var(--hf-primary-border);background:var(--surface)}.dashboard-future .dashboard-action:hover,.dashboard-future .dashboard-student-row:hover{border-color:var(--hf-primary-border);background:var(--primary-soft)}.dashboard-future .dashboard-action strong,.dashboard-future .dashboard-student-main strong,.dashboard-future .dashboard-student-meta strong{color:var(--primary)}.dashboard-future .dashboard-action small,.dashboard-future .dashboard-student-main small,.dashboard-future .dashboard-student-meta small{color:var(--ink-2)}.dashboard-future .dashboard-student-avatar{background:var(--primary-soft);color:var(--primary)}.echart-range-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;color:var(--ink-2);font-size:.66rem}.echart-range-controls span{min-width:0;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.echart-range-controls button{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid var(--hf-primary-border);border-radius:7px;background:var(--surface);color:var(--primary);cursor:pointer}.echart-range-controls button:disabled{color:var(--ink-2);cursor:default}.echart-range-controls button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.echart-keyboard-details{position:absolute;z-index:5;top:28px;right:18px;pointer-events:none}.student-export-trigger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;border-radius:9px;padding:8px 13px;font:inherit;font-size:.76rem;font-weight:760;cursor:pointer}.student-export-dialog{width:min(650px,calc(100vw - 28px));max-height:90vh;overflow:auto;margin:auto;padding:0;border:1px solid var(--hf-primary-border);border-radius:22px;background:var(--surface);color:var(--primary);box-shadow:0 30px 100px color-mix(in srgb,var(--primary) 25.098%,transparent)}.student-export-dialog[open]{animation:dashboard-dialog-in .22s cubic-bezier(.2,.8,.2,1) both}.student-export-dialog::-webkit-backdrop{background:color-mix(in srgb,var(--primary) 45.882%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.student-export-dialog::backdrop{background:color-mix(in srgb,var(--primary) 45.882%,transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.student-export-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:27px 28px 21px;border-bottom:1px solid var(--hf-primary-border);background:linear-gradient(115deg,var(--primary-soft),var(--surface))}.student-export-eyebrow{font-size:.65rem;letter-spacing:.12em;font-weight:800;color:var(--primary)}.student-export-heading h2{margin:7px 0;color:var(--primary);font-size:1.55rem;letter-spacing:-.04em}.student-export-heading p{margin:0;font-size:.78rem;line-height:1.5;color:var(--ink-2)}.student-export-close{display:grid;width:34px;height:34px;flex:none;place-items:center;border:1px solid var(--hf-primary-border);border-radius:10px;background:var(--surface);color:var(--ink-2);cursor:pointer}.student-export-close:hover{color:var(--primary);background:var(--primary-soft)}.student-export-close:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.student-export-formats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;border:0;margin:0;padding:23px 28px 18px}.student-export-formats legend{float:left;grid-column:1/-1;width:100%;margin-bottom:0;color:var(--ink-2);font-size:.76rem;font-weight:750}.student-export-format{position:relative;display:grid;grid-gap:8px;gap:8px;min-width:0;border:1px solid var(--hf-primary-border);border-radius:13px;padding:16px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.student-export-format:hover{border-color:var(--line-strong)}.student-export-format.is-selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 4.314%,transparent)}.student-export-format input{position:absolute;width:1px;height:1px;opacity:0}.student-export-format:focus-within{outline:2px solid var(--primary);outline-offset:3px}.student-export-format-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:4px;border-radius:12px}.student-export-format-icon.pdf{background:var(--primary-soft);color:var(--primary)}.student-export-format-icon.csv{background:var(--success-soft);color:var(--success-strong)}.student-export-format strong{color:var(--primary);font-size:.86rem}.student-export-format>span:last-of-type{max-width:205px;color:var(--ink-2);font-size:.72rem;line-height:1.5}.student-export-format i{position:absolute;display:grid;place-items:center;top:17px;right:15px;width:19px;height:19px;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--primary-foreground)}.student-export-format.is-selected i{border-color:var(--primary);background:var(--primary)}.student-export-scope{margin:0 28px 18px;border:1px solid var(--hf-primary-border);border-radius:11px;padding:13px 15px;background:var(--primary-soft)}.student-export-scope>span{display:block;color:var(--ink-2);font-size:.6rem;font-weight:800;letter-spacing:.08em}.student-export-scope strong{display:block;margin-top:5px;color:var(--primary);font-size:.82rem}.student-export-scope p{margin:5px 0 0;color:var(--ink-2);font-size:.71rem;line-height:1.5;overflow-wrap:anywhere}.student-export-preview{margin:0 28px 23px;overflow:hidden;border:1px solid var(--hf-primary-border);border-top:5px solid var(--primary);border-radius:10px;background:var(--surface);padding:16px 18px 11px;box-shadow:0 4px 13px color-mix(in srgb,var(--primary) 3.529%,transparent)}.student-export-preview-letterhead{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:13px;border-bottom:1px solid var(--hf-primary-border)}.student-export-preview-letterhead img{width:130px;height:auto}.student-export-preview-letterhead>div{display:grid;grid-gap:3px;gap:3px;min-width:0;color:var(--ink-2);text-align:right;font-size:.65rem}.student-export-preview-letterhead strong{color:var(--ink-2);overflow-wrap:anywhere}.student-export-preview-band{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:6px;margin-top:11px;background:var(--primary);color:var(--primary-foreground);padding:12px}.student-export-preview-band strong{font-size:.73rem;overflow-wrap:anywhere}.dashboard-chart-export{display:flex;justify-content:flex-end;margin-top:9px}.dashboard-chart-export .student-export-trigger{font-size:.68rem;min-height:32px;padding:6px 10px}.student-export-preview-band span{color:var(--primary);font-size:.57rem;text-align:right}.student-export-preview>p{color:var(--ink-2);font-size:.61rem;text-align:center;line-height:1.5;margin:11px 0 0}.student-export-csv-note{display:flex;gap:13px;align-items:flex-start;margin:0 28px 23px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--success-soft);color:var(--success-strong)}.student-export-csv-note>svg{flex:none}.student-export-csv-note strong{color:var(--ink);font-size:.84rem}.student-export-csv-note p{margin:6px 0 0;color:var(--ink-2);font-size:.72rem;line-height:1.6}.student-export-error{margin:0 28px 18px;border:1px solid var(--danger);border-radius:10px;padding:12px 14px;color:var(--danger-strong);background:var(--danger-soft);font-size:.75rem;line-height:1.5}.student-export-footer{display:flex;justify-content:flex-end;gap:9px;padding:18px 28px;border-top:1px solid var(--hf-primary-border);background:var(--primary-soft)}.student-export-footer .primary-button,.student-export-footer .primary-button:hover{background:var(--primary)}.student-export-spinner{animation:dashboard-refresh-spin 1s linear infinite}.student-export-dialog button:disabled{cursor:wait;opacity:.65}.student-export-formats:disabled .student-export-format{cursor:wait;opacity:.7}@media (max-width:590px){.student-export-heading{padding:22px 19px 18px}.student-export-heading h2{font-size:1.32rem}.student-export-formats{padding:20px 19px 16px;gap:9px}.student-export-format{padding:13px}.student-export-format i{top:14px;right:11px}.student-export-csv-note,.student-export-error,.student-export-preview,.student-export-scope{margin-inline:19px}.student-export-preview-letterhead img{width:104px}.student-export-preview-band{flex-direction:column;align-items:flex-start;gap:4px}.student-export-footer{padding:16px 19px}.student-export-footer button{flex:1 1}}@media (prefers-reduced-motion:reduce){.student-export-dialog[open],.student-export-spinner{animation:none}.student-export-format{transition:none}}.guardian-fields{margin:2px 0;padding:16px;border:1px solid var(--hf-primary-border);border-radius:13px;background:var(--primary-soft);min-width:0}.guardian-fields legend{padding:0 6px;color:var(--primary);font-size:.82rem;font-weight:780}.guardian-fields legend svg{display:inline-block;vertical-align:middle;margin-right:6px}.guardian-fields>p{margin:0 0 14px;color:var(--ink-2);font-size:.73rem;line-height:1.5}.guardian-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:13px 12px;gap:13px 12px}.guardian-fields-grid>label{display:grid;grid-gap:6px;gap:6px;min-width:0;color:var(--ink-2);font-size:.75rem;font-weight:700}.guardian-fields-grid>label>span{display:flex;gap:6px;align-items:center}.guardian-field-wide{grid-column:1/-1}.guardian-contact-person{display:flex;align-items:center;gap:12px;padding:2px 0 16px;border-bottom:1px solid var(--line)}.guardian-contact-person>span{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:13px;color:var(--primary);background:var(--primary-soft)}.guardian-contact-person>div{display:grid;grid-gap:5px;gap:5px;min-width:0}.guardian-contact-person strong{color:var(--ink);font-size:.88rem;overflow-wrap:anywhere}.guardian-contact-person small{color:var(--ink-2);font-size:.72rem}.guardian-contact-list{margin:0;display:grid}.guardian-contact-list>div{padding:14px 0;border-bottom:1px solid var(--line)}.guardian-contact-list dt{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-size:.73rem}.guardian-contact-list dd{margin:7px 0 0 22px;color:var(--ink);font-size:.81rem;font-weight:650;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}.guardian-contact-list a{color:var(--primary);text-underline-offset:3px}.guardian-contact-list a:hover{text-decoration:underline}.guardian-contact-list dd>span{color:var(--faint);font-weight:450}.guardian-contact-edit{display:inline-flex;margin-top:15px;color:var(--primary);font-size:.74rem;font-weight:700;text-underline-offset:3px}.guardian-contact-edit:hover{text-decoration:underline}@media (max-width:440px){.guardian-fields{padding:13px}.guardian-fields-grid{grid-template-columns:1fr}}.student-details-dialog{width:min(680px,calc(100vw - 28px))}.student-details-dialog .record-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}.student-details-dialog .record-edit-actions,.student-details-dialog .record-edit-checkbox,.student-details-dialog .record-edit-form>fieldset,.student-details-dialog .record-edit-form>p{grid-column:1/-1}.student-details-dialog .record-edit-actions{position:-webkit-sticky;position:sticky;bottom:-22px;margin-top:0;margin-inline:-22px;padding:16px 22px;background:var(--surface-raised);border-top:1px solid var(--line)}.table-contact-cell{display:grid;grid-gap:4px;gap:4px;max-width:230px;white-space:normal;overflow-wrap:anywhere}.table-contact-cell strong{font-size:.79rem;font-weight:650}.table-contact-cell small{font-size:.69rem;line-height:1.5;color:var(--ink-2)}@media (max-width:560px){.student-details-dialog .record-edit-form{grid-template-columns:1fr}.student-details-dialog .record-edit-actions{bottom:-17px;margin-inline:-17px;padding:14px 17px}}.form-field-error{display:block;color:var(--danger-strong);font-size:.75rem;font-weight:500;line-height:1.45;overflow-wrap:anywhere}form input[aria-invalid=true],form select[aria-invalid=true],form textarea[aria-invalid=true]{border-color:var(--danger);background-color:var(--danger-soft)}form input[aria-invalid=true]:focus-visible,form select[aria-invalid=true]:focus-visible,form textarea[aria-invalid=true]:focus-visible{outline-color:var(--danger)}.form-validation-summary{grid-column:1/-1;flex:1 0 100%;min-width:0;padding:13px 15px;border:1px solid var(--danger);border-radius:10px;background:var(--danger-soft);color:var(--danger-strong);font-size:.78rem;line-height:1.5}.form-validation-summary strong{font-weight:700}.form-validation-summary ul{margin:5px 0 0;padding-left:19px}.auth-code-inputs+.form-field-error{margin-top:-3px}.tenant-admin-slug-field:has([aria-invalid=true]){border-color:var(--danger)}.tenant-admin-slug-field .form-field-error{flex:1 0 100%;padding:0 12px 8px}.tenant-admin-slug-field:has(.form-field-error){flex-wrap:wrap}.tenant-admin-password-field:has(.form-field-error){flex-wrap:wrap}.tenant-admin-password-field .form-field-error{flex:1 0 100%}.login-audit-filters form:has(.form-field-error){flex-wrap:wrap}.tenant-admin-slug-field:has(.form-field-error) input{width:0;flex:1 1}.login-audit-filters form .form-field-error{flex:1 0 100%}