:root{--bg: #fafafa;--surface: #ffffff;--surface-2: #f4f4f5;--surface-3: #ebebed;--line: #e4e4e7;--line-strong: #d4d4d8;--text: #0a0a0a;--text-2: #52525b;--text-3: #8a8a93;--ink: #0a0a0a;--ink-text: #ffffff;--focus: #0a0a0a;--ok: #15803d;--ok-bg: #f0fdf4;--warn: #a16207;--warn-bg: #fefce8;--bad: #b91c1c;--bad-bg: #fef2f2;--info: #3f3f46;--info-bg: #f4f4f5;--wash: #f6f6f7;--sunken: #eeeeef;--ink-soft: #f0f0f1;--field-line: #d4d4d8;--field-hover: #a1a1aa;--side-bg: #0a0a0a;--side-text: #ffffff;--side-muted: #a1a1aa;--side-icon: #d4d4d8;--side-hover: rgba(255,255,255,.12);--side-line: rgba(255,255,255,.14);--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(0,0,0,.05);--shadow-lg: 0 12px 32px rgba(0,0,0,.22), 0 4px 8px rgba(0,0,0,.1);--page-max: 1360px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display: "Space Grotesk", "Inter", system-ui, sans-serif;--side: 280px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #09090b;--surface: #111113;--surface-2: #18181b;--surface-3: #232327;--line: #26262a;--line-strong: #34343a;--text: #fafafa;--text-2: #b4b4bb;--text-3: #7c7c85;--ink: #fafafa;--ink-text: #0a0a0a;--focus: #fafafa;--ok: #4ade80;--ok-bg: #0f2418;--warn: #facc15;--warn-bg: #261f08;--bad: #f87171;--bad-bg: #2a1212;--info: #d4d4d8;--info-bg: #1c1c20;--shadow: 0 1px 2px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);color-scheme:dark;--wash: #131316;--sunken: #1c1c20;--ink-soft: #1f1f23;--field-line: #5a5a63;--field-hover: #8a8a93}}:root[data-theme=dark]{--bg: #09090b;--surface: #111113;--surface-2: #18181b;--surface-3: #232327;--line: #26262a;--line-strong: #34343a;--text: #fafafa;--text-2: #b4b4bb;--text-3: #7c7c85;--ink: #fafafa;--ink-text: #0a0a0a;--focus: #fafafa;--ok: #4ade80;--ok-bg: #0f2418;--warn: #facc15;--warn-bg: #261f08;--bad: #f87171;--bad-bg: #2a1212;--info: #d4d4d8;--info-bg: #1c1c20;--shadow: 0 1px 2px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);color-scheme:dark;--wash: #131316;--sunken: #1c1c20;--ink-soft: #1f1f23;--field-line: #5a5a63;--field-hover: #8a8a93}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}h1{font-size:28px;line-height:1.15}h2{font-size:18px}h3{font-size:15px}p{margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:12.5px}.mono{font-variant-numeric:tabular-nums}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .22s cubic-bezier(.4,0,.2,1)}.side{position:sticky;top:0;height:100vh;height:100dvh;background:var(--side-bg);color:var(--side-text);display:flex;flex-direction:column;border-right:1px solid var(--line);transition:width .22s cubic-bezier(.4,0,.2,1),opacity .2s ease,visibility .2s ease;overflow:hidden}.collapse-btn{display:inline-flex}@media (max-width: 960px){.collapse-btn{display:none!important}}.shell.collapsed{--side: 0px;grid-template-columns:minmax(0,1fr)}.shell.collapsed .side{display:none!important}.shell.collapsed .topbar{padding-left:28px;padding-right:28px}.shell.collapsed .content{max-width:100%;padding-left:36px;padding-right:36px}.side .brand{display:flex;align-items:center;gap:12px;padding:14px 20px;min-height:64px;text-decoration:none;border-bottom:1px solid var(--side-line);color:var(--side-text);flex:none}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--ink);color:var(--ink-text);display:grid;place-items:center;flex:none;overflow:hidden}.side .brand-mark{background:#fff;color:#0a0a0a}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand-name{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:-.02em;line-height:1.25}.brand-sub{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--side-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:175px}.brand-sub:before{content:"";width:7px;height:7px;border-radius:50%;background:#d4d4d8;flex:none}.nav-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 24px;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--side-line) transparent}.nav-group{padding:4px 0;margin-bottom:12px}.nav-group:last-child{margin-bottom:0}.nav-group>.eyebrow{display:block;margin:12px 0 8px 16px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted)}.nav-link{display:flex;align-items:center;gap:13px;min-height:44px;height:auto;padding:10px 16px;margin:4px 0;border-radius:999px;text-decoration:none;color:var(--side-text);font-size:14px;font-weight:500;line-height:1.35;transition:background .15s,color .15s,box-shadow .15s}.nav-link:hover{background:var(--side-hover)}.nav-link.active{background:#fff;color:#0a0a0a;font-weight:600;box-shadow:0 2px 6px #00000026}.nav-link svg{width:19px;height:19px;flex:none;color:var(--side-icon);stroke-width:2px}.nav-link.active svg{color:#0a0a0a}.nav-link:focus-visible,.side .brand:focus-visible{outline:2px solid #fff;outline-offset:2px}.nav-pinned{flex:none;padding:12px 14px;border-top:1px solid var(--side-line)}.nav-foot{margin-top:auto;padding:20px 16px 0;font-size:11.5px;color:var(--side-muted)}@media (max-height: 860px) and (min-width: 961px){.nav-scroll{padding:10px 12px 16px}.nav-group{margin-bottom:6px}.nav-group>.eyebrow{margin:8px 0 4px 14px}.nav-link{min-height:38px;padding:7px 14px;margin:2px 0;font-size:13.5px}}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:64px;padding:0 max(24px,calc((100% - var(--page-max)) / 2 + 32px));background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar .menu-btn{display:none}.topbar-school{margin:0;font-family:var(--font);font-size:15px;font-weight:700;letter-spacing:0;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}.chip.role{background:var(--ink-soft);color:var(--text)}.chip.term{border:1px solid var(--line);font-weight:600;color:var(--text-2)}.chip.term svg{width:16px;height:16px}.chip.term b{color:var(--text)}.search{position:relative;margin-left:auto;flex:0 1 280px;min-width:150px}.search input{width:100%;height:40px;padding:0 64px 0 38px;border-radius:999px;border:1px solid var(--line);background:var(--wash);color:var(--text);font:inherit;font-weight:500}.search input::placeholder{color:var(--text-3)}.search input:focus{outline:none;background:var(--surface);border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 14%,transparent)}.search>svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;color:var(--text-3)}.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);padding:2px 6px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);font:inherit;font-size:12px;font-weight:600;color:var(--text-3);pointer-events:none}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:280px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;max-height:360px;overflow:auto}.search-results a{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;text-decoration:none}.search-results a:hover,.search-results a.on{background:var(--surface-2)}.topbar-right{display:flex;align-items:center;gap:8px}.user-pill{display:flex;align-items:center;gap:10px;padding:3px 14px 3px 3px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:14px;font-weight:500}.user-pill:hover{background:var(--wash)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--ink-text);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.content{padding:32px;max-width:var(--page-max);width:100%;margin:0 auto}.scrim{display:none}@media (max-width: 960px){.shell{grid-template-columns:1fr}.side{position:fixed;z-index:50;left:0;top:0;width:280px;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.side.open{transform:none}.scrim.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:40}.topbar{height:56px;padding:0 8px 0 4px;gap:8px}.topbar .menu-btn{display:inline-flex}.chip.role,.chip.term{display:none}.user-pill{border-color:transparent;padding-right:3px}.content{padding:20px 16px 40px}h1{font-size:24px}.hide-sm{display:none!important}}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:22px}.page-head .eyebrow{margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--text)}.page-head h1{font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.15}.page-head p.muted{margin-top:6px;max-width:640px;font-size:16px;font-weight:500}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 22px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;font-size:15px;font-weight:500;letter-spacing:.01em;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s}.btn:hover{background:var(--ink-soft)}.btn svg{width:18px;height:18px}.btn.primary{background:var(--ink);color:var(--ink-text);border-color:var(--ink)}.btn.primary:hover{background:var(--ink);opacity:.86;box-shadow:var(--shadow)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--sunken)}.btn.sm{height:34px;padding:0 16px;font-size:14px}.btn.icon{width:40px;padding:0}.btn.sm.icon{width:34px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn .spin{width:16px;height:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;margin-bottom:18px}.grid>.card,.stats>.card,.stack>.card{margin-bottom:0}.card-pad{padding:18px 22px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;padding:16px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}.card-head h2{font-size:16px;font-weight:700}.card-head p.muted{margin-top:2px;font-size:14px;font-weight:500}.card-body{padding:18px 22px}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:14px 16px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 960px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{gap:10px}}@media (max-width: 640px){.g2{grid-template-columns:1fr}.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.mt{margin-top:16px}.mt-lg{margin-top:28px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}@media (max-width: 960px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (max-width: 540px){.stats{grid-template-columns:1fr}}.stat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px;display:flex;flex-direction:column;justify-content:space-between;min-height:124px;box-shadow:0 1px 3px #0000000a;align-content:start;min-width:0;transition:box-shadow .15s ease,transform .15s ease}.stat:hover{box-shadow:0 4px 14px #0000000f}.stat-top{display:flex;align-items:flex-start;justify-content:space-between;min-height:28px;gap:8px}.stat-label,.stat .eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);line-height:1.35}.stat-icon{width:34px;height:34px;border-radius:10px;background:var(--ink-soft);color:var(--text);display:grid;place-items:center;flex:none}.stat-icon svg{width:18px;height:18px}.stat-icon.ok{background:var(--ok-bg);color:var(--ok)}.stat-icon.warn{background:var(--warn-bg);color:var(--warn)}.stat-value{font-family:var(--display);font-size:clamp(20px,2.2vw,28px);font-weight:800;letter-spacing:-.02em;line-height:1.25;color:var(--text);margin:6px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value.tone-positive,.tone-positive{color:var(--ok, #16a34a)}.stat-value.tone-bad,.tone-bad{color:var(--bad, #dc2626)}.stat-value.tone-neutral,.tone-neutral{color:var(--text)}.stat-caption,.stat-sub{color:var(--text-2);font-size:13px;font-weight:500;line-height:1.4;margin-top:2px}@media (max-width: 960px){.stat{padding:14px;min-height:96px}.stat-value{font-size:24px}}.stats-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:26px}@media (max-width: 1080px){.stats-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}@media (max-width: 600px){.stats-kpi-grid{grid-template-columns:1fr;gap:12px}}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-weight:600;font-size:13.5px;color:var(--text-2);letter-spacing:-.01em}.field .hint{font-size:12px;color:var(--text-3);font-weight:400}.input,select.input,textarea.input{width:100%;height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--field-line);background:var(--surface);color:var(--text);font:inherit;font-size:14.5px;transition:border-color .15s,box-shadow .15s,background .15s;box-sizing:border-box}.input:hover,select.input:hover,textarea.input:hover{border-color:var(--field-hover)}.input::placeholder,textarea.input::placeholder{color:var(--text-3);font-weight:400}textarea.input{height:auto;min-height:88px;padding:10px 14px;resize:vertical;line-height:1.45}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 14%,transparent)}.input:disabled,select.input:disabled,textarea.input:disabled{background:var(--sunken);color:var(--text-3);cursor:not-allowed;opacity:.75}.input.sm{height:34px;padding:0 10px;border-radius:8px;font-size:13.5px}.input.num{max-width:90px;text-align:right}.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--ink);cursor:pointer}.check span{font-size:14px;font-weight:500;line-height:1.4;color:var(--text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.form-grid .full,.form-grid .wide,.form-grid .field.wide{grid-column:1 / -1}@media (max-width: 640px){.form-grid{grid-template-columns:1fr;gap:12px}}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}.filters .field{min-width:160px;flex:0 1 auto}.filters .field.wide-field{min-width:240px}.filters select.input,.toolbar select.input{border-radius:999px}.tabs{display:inline-flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;width:fit-content;max-width:100%;overflow-x:auto;margin-bottom:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0!important;min-height:42px;box-sizing:border-box}.tabs::-webkit-scrollbar{display:none}.tab{border:0;background:transparent;height:34px;min-height:34px;padding:0 16px;border-radius:999px;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;display:inline-flex;align-items:center;gap:8px;flex-shrink:0!important;box-sizing:border-box}.tab:hover{background:var(--sunken)}.tab.on{background:var(--ink);color:var(--ink-text)}.tab:focus-visible{outline-offset:0}.card .tabs{margin-bottom:0}@media (max-width: 900px){.tabs{flex-wrap:wrap;border-radius:20px}.tab{padding:0 12px}}@media (max-width: 640px){.tabs{width:100%;display:flex;border-radius:14px;gap:4px;padding:4px}.tab{flex:1 1 0;min-width:0;padding:0 8px;font-size:12px;height:32px;min-height:32px;justify-content:center}}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--wash)}.table td{padding:12px 16px;height:52px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:14px}.table td .sub{font-size:13px;font-weight:500;color:var(--text-2);margin-top:2px;line-height:1.3}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--wash)}.table tbody tr.click{cursor:pointer}.table tbody tr.click:hover td{background:var(--wash)}@media (max-width: 900px){.table th,.table td{padding:10px 12px}}.table .r{text-align:right}.table td.mono,.table td.r{white-space:nowrap}.table .sticky{position:sticky;left:0;background:var(--surface);z-index:1}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--line);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--info-bg);color:var(--info);white-space:nowrap;border:1px solid transparent}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.ink{background:var(--ink);color:var(--ink-text)}.badge.line{background:transparent;border-color:var(--line-strong);color:var(--text-2)}.empty{text-align:center;padding:36px 16px;color:var(--text-2);font-weight:500}.empty .ico{width:48px;height:48px;border-radius:50%;background:var(--sunken);display:grid;place-items:center;margin:0 auto 8px;color:var(--text-3)}.empty h3{color:var(--text);margin-bottom:4px;font-size:16px;font-weight:700}.empty .btn{margin-top:14px}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);background:var(--info-bg);color:var(--text);border:1px solid var(--line);font-size:13.5px}.alert svg{width:18px;flex:none;margin-top:1px}.alert.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}.alert.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.alert.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.alert ul{margin:6px 0 0;padding-left:18px}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px;height:14px}@keyframes sk{to{background-position:-200% 0}}.spin{animation:rot .8s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:100;padding:16px;animation:fade .15s}.modal{background:var(--surface);border-radius:20px;width:100%;max-width:520px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow:hidden}.modal.wide{max-width:920px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 22px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-head h2{font-size:18px;font-weight:700;color:var(--text);margin:0}.modal-body{padding:16px 22px;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:10px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 22px;border-top:1px solid var(--line);flex-wrap:wrap;background:var(--wash);flex-shrink:0}@keyframes fade{0%{opacity:0}}@media (max-width: 640px){.modal-back{padding:8px}.modal{max-height:calc(100vh - 16px);border-radius:16px}.modal-head{padding:12px 16px}.modal-body{padding:14px;gap:10px}.modal-foot{padding:10px 14px}}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:200;max-width:calc(100vw - 40px)}.toast{background:var(--ink);color:var(--ink-text);padding:11px 16px;border-radius:12px;box-shadow:var(--shadow-lg);font-weight:500;display:flex;gap:8px;align-items:center;animation:fade .2s;max-width:420px}.toast.bad{background:var(--bad);color:#fff}.toast svg{width:16px;flex:none}.credentials{border:1px solid var(--ink);border-radius:12px;padding:16px;margin:16px 0;background:var(--ink-soft);display:grid;gap:8px}.credentials strong{font-size:15px;color:var(--text)}.credentials code{font-size:18px;-webkit-user-select:all;user-select:all;background:var(--surface);padding:2px 8px;border-radius:6px;border:1px solid var(--line-strong);display:inline-block;margin-top:4px}.person-card{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.8fr);gap:18px 28px;align-items:center;padding:22px 24px;margin-bottom:18px}button.photo-trigger{position:relative;flex:none;height:auto;width:auto;min-height:0;padding:0;margin:0;border:0;border-radius:50%;background:none;box-shadow:none;display:block;line-height:0;cursor:pointer}button.photo-trigger:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.photo-badge{position:absolute;right:-4px;bottom:-4px;width:34px;height:34px;border-radius:50%;background:#2563eb;color:#fff;display:grid;place-items:center;border:3px solid var(--surface);box-shadow:var(--shadow);transition:background .15s,transform .15s}.photo-badge svg{width:18px;height:18px}button.photo-trigger:hover .photo-badge{transform:scale(1.08)}.person-avatar{display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;font-weight:700;letter-spacing:.02em;-webkit-user-select:none;user-select:none;object-fit:cover}.person-avatar-lg{width:72px;height:72px;font-size:26px}.person-avatar-md{width:56px;height:56px;font-size:20px}.person-photo{object-fit:cover}.photo-form{display:flex;flex-direction:column;gap:16px}.photo-pick{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;margin-bottom:4px}.photo-pick p{margin:0;max-width:420px;font-size:13.5px;line-height:1.45}.photo-pick .person-avatar,.photo-preview{width:132px;height:132px;font-size:46px;border-radius:50%;object-fit:cover;border:1px solid var(--line-strong);background:var(--sunken);display:block}.file-pick{position:relative;display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 24px;margin:0;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:14.5px;font-weight:600;cursor:pointer;overflow:hidden;max-width:100%;transition:background .15s,border-color .15s,box-shadow .15s}.file-pick:hover{background:var(--ink-soft)}.file-pick:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 20%,transparent)}.file-pick input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}.photo-remove{border:1px solid color-mix(in srgb,var(--bad) 35%,var(--line));background:var(--bad-bg);border-radius:12px;padding:14px 16px;margin-top:8px}.photo-remove p{margin:0 0 10px;font-weight:600;font-size:14px}.profile-id{min-width:0}.profile-id h3{margin:0 0 2px;font-size:24px;letter-spacing:-.01em;overflow-wrap:anywhere}.profile-id p{margin:0 0 8px;color:var(--text-2);font-size:15px}.profile-facts{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 24px;padding-left:28px;border-left:1px solid var(--line);min-width:0}.profile-facts div{display:grid;gap:2px;min-width:0}.profile-facts dt{font-size:13px;font-weight:600;color:var(--text-3)}.profile-facts dd{margin:0;font-weight:600;font-size:14.5px;color:var(--text);overflow-wrap:anywhere}@media (max-width: 900px){.person-card{grid-template-columns:auto minmax(0,1fr);padding:18px;gap:14px 16px}.profile-facts{grid-column:1 / -1;padding:16px 0 0;border-left:0;border-top:1px solid var(--line)}}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}@media (max-width: 1100px){.profile-layout{grid-template-columns:minmax(0,1fr)}}.profile-main{min-width:0}.profile-main .stats{margin-bottom:18px}.cards-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;align-items:start;margin:0 0 18px}.cards-2>.card{margin:0}.profile-main>.card:last-child,.profile-main>.cards-2:last-child{margin-bottom:0}.profile-summary-sections{display:flex;flex-direction:column;gap:20px}.profile-summary-section{padding-bottom:18px;border-bottom:1px solid var(--line)}.profile-summary-section:last-child{padding-bottom:0;border-bottom:none}.profile-section-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 14px}.facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 22px;margin:0}.facts-grid div{display:flex;flex-direction:column;gap:4px;min-width:0}.facts-grid dt{font-size:12.5px;font-weight:600;color:var(--text-3);line-height:1.25}.facts-grid dd{margin:0;font-weight:600;font-size:14.5px;color:var(--text);line-height:1.4;overflow-wrap:anywhere}.facts-grid .span-2{grid-column:span 2}.facts-grid .span-3{grid-column:span 3}.facts-grid .span-4,.profile-facts .wide,.facts-grid .wide{grid-column:1 / -1}.not-recorded{color:var(--text-3);font-weight:500}@media (max-width: 1200px){.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.facts-grid .span-2,.facts-grid .span-3{grid-column:1 / -1}}@media (max-width: 600px){.facts-grid{grid-template-columns:1fr;gap:12px}.facts-grid .span-2,.facts-grid .span-3,.facts-grid .span-4,.facts-grid .wide{grid-column:1}}.summary-list{margin:0;display:grid}.summary-list>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);min-width:0}.summary-list>div:first-child{padding-top:0}.summary-list>div:last-child{border-bottom:0;padding-bottom:0}.summary-list dt{display:flex;align-items:center;gap:8px;color:var(--text-3);font-size:14px;font-weight:500;flex:none}.summary-list dt svg{width:18px;height:18px;color:var(--text-2)}.summary-list dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere;min-width:0;font-size:14px}.profile-rail{display:grid;gap:18px;align-content:start;min-width:0}.profile-rail .card{margin:0}.profile-actions{list-style:none;margin:0;padding:0;display:grid;gap:2px}.profile-action{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;height:auto;min-height:44px;padding:6px 10px;font-size:15px;line-height:1.3;white-space:normal;border:0;border-radius:10px;background:none;color:var(--text);font-weight:500;text-decoration:none;text-align:left;cursor:pointer;transition:background .12s}.profile-action:hover{background:var(--sunken);box-shadow:none}.profile-action svg{width:20px;height:20px;color:var(--text-2);flex:none}.profile-action.danger{color:var(--bad)}.profile-action.danger svg{color:var(--bad)}.profile-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.profile-actions-grid .profile-action{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);padding:10px 14px}.profile-actions-grid .profile-action:hover{background:var(--sunken);border-color:var(--line-strong)}.parent-page .profile-layout,.staff-page .profile-layout{display:block}.profile-summary-row,.parent-summary-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px;align-items:start;margin-bottom:18px}.profile-summary-row>.card,.parent-summary-row>.card{margin:0}.profile-side-column{display:flex;flex-direction:column;gap:18px;min-width:0}.profile-side-column>.card{margin:0}.activity-scroll{max-height:124px;overflow-y:auto;overflow-x:hidden;padding:2px 6px 2px 10px;margin-left:2px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.activity-scroll::-webkit-scrollbar{width:5px}.activity-scroll::-webkit-scrollbar-track{background:transparent}.activity-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.profile-summary-row.single,.parent-summary-row.single{grid-template-columns:1fr}@media (max-width: 1024px){.profile-summary-row,.parent-summary-row{grid-template-columns:1fr}}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line-strong)}.timeline li{position:relative;display:grid;gap:2px;padding:0 0 16px 6px}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";position:absolute;left:-25px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px var(--surface)}.timeline strong{font-size:14.5px;font-weight:700;color:var(--text);line-height:1.3}.timeline span{font-size:13px;color:var(--text-3);overflow-wrap:anywhere}.details-group{border:1px solid var(--line);border-radius:16px;padding:16px 20px 20px;margin:0 0 18px;background:var(--wash);min-width:0}.details-group legend{font-weight:700;font-size:13.5px;letter-spacing:.01em;padding:0 8px;color:var(--text)}.details-group>p{margin:0 0 12px;font-size:13px;color:var(--text-3)}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.details-grid .wide,.details-grid .full,.details-grid .field.wide{grid-column:1 / -1}@media (max-width: 640px){.details-grid{grid-template-columns:1fr;gap:12px}}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}.step{display:flex;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line);align-items:flex-start}.step:last-child{border-bottom:0}.step-num{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.step.done .step-num{background:var(--ink);color:var(--ink-text);border-color:var(--ink)}.progress{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.progress>div{height:100%;background:var(--ink);border-radius:99px}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden}.seg button{border:0;background:var(--surface);padding:5px 10px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--text-2);border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:var(--ink-text)}.kv{display:grid;grid-template-columns:140px 1fr;gap:8px 16px}.kv dt{color:var(--text-3)}.kv dd{margin:0;font-weight:500}.bar-row{display:grid;grid-template-columns:160px 1fr 54px;gap:12px;align-items:center;padding:6px 0}.bar{height:10px;border-radius:99px;background:var(--surface-3);overflow:hidden}.bar>div{height:100%;background:var(--ink)}@media (max-width: 640px){.bar-row{grid-template-columns:100px 1fr 44px}.kv{grid-template-columns:110px 1fr}}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line)}.cal-h{padding:8px;font-size:11px;font-weight:600;color:var(--text-3);text-align:center;border-bottom:1px solid var(--line)}.cal-d{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;font-size:12px;overflow:hidden}.cal-d:nth-child(7n){border-right:0}.cal-d.out{background:var(--surface-2);color:var(--text-3)}.cal-d.closed{background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 6px,var(--surface) 6px,var(--surface) 12px)}.cal-d.today .cal-n{background:var(--ink);color:var(--ink-text)}.cal-n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:600}.cal-ev{display:block;margin-top:3px;padding:2px 6px;border-radius:6px;background:var(--surface-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border:0;width:100%;text-align:left;font:inherit;font-size:11.5px;color:var(--text)}.cal-ev.Academic{background:var(--ink);color:var(--ink-text)}@media (max-width: 640px){.cal-d{min-height:64px;padding:3px}.cal-ev{font-size:0;height:6px;padding:0}}.tt{border-collapse:separate;border-spacing:4px;width:100%;min-width:760px}.tt th{font-size:11.5px;color:var(--text-3);font-weight:600;padding:6px;text-align:left}.tt td{background:var(--surface-2);border-radius:10px;padding:8px;height:62px;vertical-align:top;font-size:12.5px}.tt td.lesson{background:var(--surface);border:1px solid var(--line-strong)}.tt td.brk{background:transparent;text-align:center;color:var(--text-3);height:28px;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase}.tt td.edit{cursor:pointer}.tt td.edit:hover{outline:2px solid var(--ink)}.reg-row{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.reg-row .name{flex:1;min-width:160px;font-weight:500}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-art{background:#0a0a0a;color:#fafafa;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(circle at 70% 40%,#000,transparent 70%);mask-image:radial-gradient(circle at 70% 40%,#000,transparent 70%)}.auth-art>*{position:relative;z-index:1}.auth-art h1{font-size:44px;max-width:520px}.auth-art ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px;color:#c9c9cf}.auth-art li{display:flex;gap:10px;align-items:center}.auth-form{display:grid;place-items:center;padding:32px 20px}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px}@media (max-width: 900px){.auth{grid-template-columns:1fr}.auth-art{display:none}}.doc{background:#fff;color:#0a0a0a;max-width:800px;margin:0 auto;padding:36px;border:1px solid var(--line);border-radius:12px}.doc table{width:100%;border-collapse:collapse;font-size:13px}.doc th,.doc td{border:1px solid #d4d4d8;padding:6px 8px;text-align:left}.doc th{background:#f4f4f5;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em}.doc-head{display:flex;gap:16px;align-items:center;border-bottom:2px solid #0a0a0a;padding-bottom:14px;margin-bottom:18px}.doc-head img{width:64px;height:64px;object-fit:contain}.doc-logo{width:64px;height:64px;border-radius:12px;background:#0a0a0a;color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:22px}@media print{.side,.topbar,.no-print,.toasts{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.doc{border:0;padding:0}body{background:#fff}}@media (max-width: 640px){.topbar{flex-wrap:wrap;row-gap:8px}.topbar .brand{min-width:0}.topbar .brand-sub{max-width:150px}.topbar-right{gap:4px}.doc{padding:16px;overflow-x:auto}.doc-head{flex-wrap:wrap}.modal-foot .spacer{display:none}}.provisional-banner{background:var(--surface);border:1px solid var(--line-strong);border-left:4px solid var(--warn);border-radius:var(--radius);padding:16px 20px;margin-bottom:24px;box-shadow:var(--shadow)}.prov-header{display:flex;gap:16px;align-items:flex-start}.prov-icon{margin-top:2px;flex:none}.prov-body{flex:1;min-width:0}.prov-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prov-title-row strong{font-size:14.5px;color:var(--text)}.prov-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:999px;background:var(--wash);color:var(--text-2);border:1px solid var(--line)}.prov-desc{font-size:13px;color:var(--text-2);margin-top:6px;line-height:1.5}.prov-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:none}.prov-status-indicators{display:flex;gap:6px;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--line)}.status-pill.ok{background:var(--ok-bg);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.status-pill.warn{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.status-pill.bad{background:var(--bad-bg);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 30%,transparent)}.onboarding-steps-indicator{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}.step-track{display:flex;align-items:center;gap:8px;margin-bottom:8px}.step-dot{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--text-3);font-size:12px;font-weight:700;display:grid;place-items:center;transition:all .2s}.step-dot.active{background:var(--ink);color:var(--ink-text);border-color:var(--ink)}.step-line{flex:1;height:2px;background:var(--line);transition:background .2s}.step-line.active{background:var(--ink)}.step-label{font-size:12px;font-weight:600;color:var(--text-2)}.school-type-selector{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px}.type-option{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:all .15s ease}.type-option:hover{background:var(--wash);border-color:var(--line-strong)}.type-option.selected{border-color:var(--ink);background:var(--ink-soft);box-shadow:0 0 0 1px var(--ink)}.type-icon{width:36px;height:36px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;color:var(--text)}.type-option.selected .type-icon{background:var(--ink);color:var(--ink-text)}.sms-preview-card{margin:10px 0;padding:14px 16px;background:var(--wash);border:1px solid var(--line);border-radius:var(--radius-sm)}.sms-phone-bar{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:8px}.sms-bubble{background:var(--surface);border:1px solid var(--line);border-radius:12px 12px 12px 2px;padding:10px 14px;font-size:13px;line-height:1.45;color:var(--text);box-shadow:var(--shadow)}.sms-bubble strong{color:var(--ink)}.info-box-note{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:var(--surface-2);border-radius:8px;color:var(--text-2);line-height:1.4}.info-box-note svg{flex:none;margin-top:1px;color:var(--text)}.landing-page{background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}.landing-wrap{width:min(1200px,100% - 48px);margin:0 auto}.landing-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid var(--line)}.nav-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:700;font-size:20px;color:var(--text);letter-spacing:-.03em}.logo-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px;border-radius:999px;background:var(--wash);color:var(--text-2);border:1px solid var(--line);margin-left:4px}.landing-menu{display:flex;gap:20px;font-size:14px;font-weight:500}.landing-menu a{color:var(--text-2);text-decoration:none;padding:6px 12px;border-radius:999px;transition:all .2s}.landing-menu a:hover{color:var(--text);background:var(--wash)}.landing-cta-group{display:flex;align-items:center;gap:10px}.btn-landing-primary{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px 0 20px;border-radius:999px;background:var(--ink);color:var(--ink-text);text-decoration:none;font-size:14px;font-weight:600;box-shadow:var(--shadow);transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s}.btn-landing-primary:hover{transform:translateY(-1px)}.btn-landing-primary .ar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#ffffff26;transition:transform .2s}.btn-landing-primary:hover .ar{transform:translate(2px)}.btn-landing-primary.lg{height:50px;padding:0 16px 0 24px;font-size:15px}.btn-landing-primary.lg .ar{width:32px;height:32px}.btn-landing-secondary{display:inline-flex;align-items:center;height:50px;padding:0 24px;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--line-strong);text-decoration:none;font-size:15px;font-weight:600;transition:background .2s,border-color .2s}.btn-landing-secondary:hover{background:var(--wash);border-color:var(--text)}.btn-landing-ghost{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:999px;color:var(--text);text-decoration:none;font-size:14px;font-weight:500}.btn-landing-ghost:hover{background:var(--wash)}.landing-hero{padding:80px 0 60px;text-align:center;background:radial-gradient(circle at 50% 10%,var(--surface-2) 0%,transparent 60%)}.hero-content{display:flex;flex-direction:column;align-items:center}.hero-pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:6px 16px;border-radius:999px;background:var(--surface);border:1px solid var(--line-strong);color:var(--text-2);margin-bottom:24px;box-shadow:var(--shadow)}.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}.hero-headline{font-family:var(--display);font-size:clamp(38px,5.5vw,68px);font-weight:700;line-height:1.08;letter-spacing:-.04em;max-width:860px;color:var(--text)}.hero-subhead{margin-top:20px;font-size:clamp(16px,1.35vw,19px);color:var(--text-2);max-width:660px;line-height:1.55}.hero-actions{display:flex;gap:14px;align-items:center;margin-top:36px;flex-wrap:wrap;justify-content:center}.hero-metrics-strip{display:flex;align-items:center;gap:32px;margin-top:60px;padding:16px 32px;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);flex-wrap:wrap;justify-content:center}.metric-item{display:flex;flex-direction:column;align-items:center;gap:2px}.metric-item strong{font-size:18px;font-family:var(--display);font-weight:700;color:var(--text)}.metric-item span{font-size:11.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.metric-divider{width:1px;height:28px;background:var(--line)}.landing-sec{padding:80px 0}.sec-header{text-align:center;max-width:680px;margin:0 auto 48px}.sec-pill{display:inline-block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-3);margin-bottom:8px}.sec-header h2{font-family:var(--display);font-size:clamp(28px,3.5vw,42px);font-weight:700;letter-spacing:-.035em;color:var(--text);line-height:1.15}.sec-lead{margin-top:12px;font-size:16px;color:var(--text-2);line-height:1.5}.ecosystem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.eco-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}.eco-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}.eco-card.featured{border:2px solid var(--ink);background:var(--wash)}.eco-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.eco-icon{width:44px;height:44px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;color:var(--text)}.eco-icon.active{background:var(--ink);color:var(--ink-text)}.eco-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line)}.eco-tag.live{background:var(--ink);color:var(--ink-text)}.eco-tag.live-badge{background:var(--ok-bg);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.eco-card h3{font-size:19px;font-weight:700;margin-bottom:10px}.eco-card p{font-size:14px;color:var(--text-2);line-height:1.5;flex:1}.eco-link{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13.5px;font-weight:600;color:var(--text);text-decoration:none}.eco-link:hover{text-decoration:underline}.eco-note{margin-top:20px;font-size:12px;font-weight:600;color:var(--text-3)}.schools-comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.school-type-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.school-type-card.premium{border-color:var(--line-strong)}.type-header{display:flex;align-items:center;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:20px}.type-header h3{font-size:20px;font-weight:700}.type-sub{font-size:13px;color:var(--text-2)}.type-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.type-features li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text-2);line-height:1.45}.type-features li svg{flex:none;margin-top:2px;color:var(--ok)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.feat-icon{width:40px;height:40px;border-radius:10px;background:var(--wash);display:grid;place-items:center;color:var(--text);margin-bottom:16px}.feature-card h4{font-size:16px;font-weight:700;margin-bottom:8px}.feature-card p{font-size:13.5px;color:var(--text-2);line-height:1.5}.landing-cta-sec{padding:40px 0 80px}.cta-banner-box{background:var(--side-bg);color:var(--side-text);border-radius:var(--radius-lg, 24px);padding:60px 40px;text-align:center;box-shadow:var(--shadow-lg)}.cta-content{max-width:640px;margin:0 auto}.cta-content h2{font-family:var(--display);font-size:clamp(28px,4vw,44px);font-weight:700;letter-spacing:-.03em;margin-top:14px;color:#fff}.cta-content p{margin-top:14px;font-size:16px;color:#a1a1aa;line-height:1.5}.cta-btns{display:flex;gap:14px;justify-content:center;margin-top:32px;flex-wrap:wrap}.landing-footer{border-top:1px solid var(--line);padding:48px 0 32px;background:var(--surface)}.footer-inner{display:flex;flex-direction:column;gap:32px}.footer-brand{display:flex;align-items:center;gap:12px}.footer-links{display:flex;gap:24px;flex-wrap:wrap;font-size:14px}.footer-links a{color:var(--text-2);text-decoration:none}.footer-links a:hover{color:var(--text);text-decoration:underline}.footer-bottom{padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:var(--text-3)}@media (max-width: 960px){.ecosystem-grid,.features-grid,.schools-comparison-grid{grid-template-columns:1fr}.landing-hero{padding:50px 0 40px}}.lockout-banner{background:var(--bad-wash, #fef2f2);border:1px solid var(--bad-border, #fca5a5);border-left:4px solid var(--bad, #dc2626);border-radius:var(--radius, 12px);padding:16px 20px;margin-bottom:20px;box-shadow:0 2px 8px #dc26260f}.lockout-header{display:flex;gap:16px;align-items:flex-start}.lockout-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:#dc26261a;color:#dc2626;flex-shrink:0}.lockout-body{flex:1}.lockout-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.lockout-title-row strong{font-size:15px;color:#991b1b}.lockout-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;background:#dc2626;color:#fff;border-radius:999px}.lockout-desc{font-size:13.5px;color:#7f1d1d;line-height:1.5;margin:0 0 10px}.lockout-modules-list{display:flex;gap:8px;flex-wrap:wrap}.lockout-module-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;padding:3px 10px;border-radius:6px}.nav-link-locked{opacity:.8}.nav-lock-icon{margin-left:auto}.text-ok{color:var(--ok, #16a34a)!important}.text-bad{color:var(--bad, #dc2626)!important}.school-title-link{color:var(--text);text-decoration:none;font-weight:700;display:inline-flex;align-items:center;gap:4px;transition:color .15s ease}.school-title-link:hover{color:var(--brand, #0284c7);text-decoration:underline}.formula-box{background:var(--surface-2, var(--wash, #f8fafc));border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.formula-math{font-family:var(--font-mono, monospace);font-size:15px;font-weight:700;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;gap:8px}.formula-math .calc-tag{background:var(--surface);border:1px solid var(--line-strong);padding:3px 8px;border-radius:6px}.formula-math .calc-res{background:var(--ink);color:var(--ink-text);padding:3px 10px;border-radius:6px;font-size:16px}.cap-meter{width:100%;height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:4px}.cap-meter-fill{height:100%;border-radius:999px;background:var(--ink);transition:width .3s ease}.module-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.module-status-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface);display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease,box-shadow .15s ease}.module-status-card.locked{border-color:#fca5a5;background:#fef2f2}.school-profile-page{max-width:100%!important;width:100%}.profile-header-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 28px;margin-bottom:24px;box-shadow:0 1px 3px #0000000a}.profile-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.profile-toolbar .btn{height:38px;font-size:13.5px;font-weight:600;padding:0 16px}.school-tabs-bar{display:flex;gap:6px;background:var(--surface-2, var(--wash));border:1px solid var(--line);padding:6px;border-radius:14px;margin-bottom:24px;overflow-x:auto;scrollbar-width:none}.school-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--text-2);background:transparent;border:none;cursor:pointer;white-space:nowrap;transition:all .15s ease}.school-tab-btn:hover{color:var(--text);background:var(--surface)}.school-tab-btn.active{color:var(--text);background:var(--surface);box-shadow:0 1px 3px #00000014;font-weight:700}.oversight-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start;transition:grid-template-columns .2s ease}.oversight-layout.nav-collapsed{grid-template-columns:minmax(0,1fr)}.oversight-layout.nav-collapsed .oversight-nav{display:none!important}.oversight-collapsed-bar{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px 12px;margin-bottom:20px;box-shadow:0 1px 3px #0000000a;flex-wrap:wrap}.oversight-horizontal-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}.horizontal-pill-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.horizontal-pill-btn:hover{background:var(--wash);color:var(--text)}.horizontal-pill-btn.active{background:var(--wash);border-color:var(--line);color:var(--ink);font-weight:700;box-shadow:0 1px 2px #0000000a}.oversight-nav-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:4px;position:sticky;top:80px}.oversight-nav-header{padding:8px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.oversight-nav-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.oversight-nav-btn{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:all .15s ease;width:100%;text-decoration:none}.oversight-nav-btn:hover{background:var(--wash)}.oversight-nav-btn.active{background:var(--wash);border-color:var(--line);box-shadow:0 1px 3px #0000000a}.oversight-nav-btn .tab-icon{flex:none;margin-top:2px;color:var(--muted)}.oversight-nav-btn.active .tab-icon{color:var(--ink)}.oversight-nav-btn .tab-info{flex:1;min-width:0}.oversight-nav-btn .tab-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.oversight-nav-btn .tab-label{font-size:13.5px;font-weight:600;color:var(--text);line-height:1.3}.oversight-nav-btn.active .tab-label{color:var(--ink);font-weight:700}.oversight-nav-btn .tab-sub{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}.oversight-nav-badge{font-size:11px;padding:2px 7px;border-radius:999px;font-weight:600;background:var(--surface);border:1px solid var(--line);color:var(--text)}.oversight-nav-badge.warn{background:#fef3c7;border-color:#f59e0b;color:#92400e}.oversight-nav-badge.bad{background:#fee2e2;border-color:#f87171;color:#991b1b}.oversight-content{flex:1;min-width:0}.quick-view-section{background:var(--wash);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}.quick-view-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:10px}.quick-view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.quick-view-item{display:flex;flex-direction:column;gap:3px}.quick-view-label{font-size:11.5px;color:var(--muted)}.quick-view-value{font-size:13.5px;font-weight:600;color:var(--text)}@media (max-width: 900px){.oversight-layout{grid-template-columns:1fr}.oversight-nav-card{position:static}}.syntrax-pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%}.syntrax-pricing-grid.all-tiers{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}@media (max-width: 860px){.syntrax-pricing-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media (max-width: 600px){.syntrax-pricing-grid,.syntrax-pricing-grid.all-tiers{grid-template-columns:1fr;gap:14px}}.syntrax-plan-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;box-sizing:border-box}.syntrax-plan-card:hover{border-color:var(--brand, #0284c7);box-shadow:0 4px 14px #0000000f;transform:translateY(-2px)}.syntrax-plan-card.featured{border:2px solid var(--brand, #0284c7);background:linear-gradient(180deg,rgba(2,132,199,.05) 0%,var(--surface) 100%);box-shadow:0 4px 16px #0284c71a}.syntrax-plan-card.best-value{border:2px solid #8b5cf6;background:linear-gradient(180deg,rgba(139,92,246,.05) 0%,var(--surface) 100%);box-shadow:0 4px 16px #8b5cf61a}.syntrax-ribbon{display:inline-block;align-self:flex-start;background:#0284c71f;color:var(--brand, #0284c7);font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}.syntrax-ribbon.purple{background:#8b5cf624;color:#8b5cf6}.syntrax-plan-name{font-size:14.5px;font-weight:700;color:var(--text);margin-bottom:2px}.syntrax-plan-price{font-size:22px;font-weight:800;line-height:1.15;color:var(--text);margin-bottom:2px;display:flex;align-items:baseline;gap:4px}.syntrax-plan-price small{font-size:12px;font-weight:500;color:var(--muted)}.syntrax-plan-credits{color:var(--brand, #0284c7);font-weight:700;font-size:13.5px;margin-bottom:2px}.syntrax-plan-tagline{color:var(--muted);font-size:11.5px;margin-bottom:8px}.syntrax-plan-features{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text)}.syntrax-plan-features li{display:flex;align-items:center;gap:6px}.syntrax-plan-features li svg{color:var(--ok, #16a34a);flex-shrink:0;width:14px;height:14px}.syntrax-plan-btn{width:100%;margin-top:auto}.syntrax-toggle-pill{display:inline-flex;gap:4px;padding:3px;background:var(--surface-2, var(--sunken));border:1px solid var(--line);border-radius:999px}.syntrax-toggle-btn{border:0;background:transparent;padding:5px 14px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s ease}.syntrax-toggle-btn.active{background:var(--ink);color:var(--ink-text);box-shadow:var(--shadow-sm)}@media (max-width: 600px){.syntrax-plan-card{padding:18px 16px;min-height:auto}.syntrax-plan-price{font-size:24px}}
