:root{color-scheme:light dark;--brand: #143257;--brand-strong: #0d2440;--brand-tint: #e7ecf3;--brand-ink: var(--brand);--on-brand: #fff;--accent: #ff7a2e;--accent-strong: #ff8a45;--accent-tint: #fcdec4;--on-accent: #143257;--accent-ink: #a8420a;--gradient-brand: linear-gradient(135deg, #103157 0%, #000 100%);--canvas: #fff9ef;--surface: #fff;--surface-2: #fffcf7;--surface-sunken: #f7eee0;--ink: #101b2b;--ink-2: #2b3b52;--ink-soft: #5b6a80;--line: #e6ded1;--line-strong: #d2c6b4;--ok: #146c50;--ok-tint: #e7f4ee;--warn: #8a5a06;--danger: #b3261e;--danger-tint: #fdecea;--radius: 6px;--radius-lg: 10px;--shadow: 0 1px 2px rgba(16, 27, 43, .06), 0 4px 14px rgba(16, 27, 43, .06);--shadow-lift: 0 4px 10px rgba(16, 27, 43, .1), 0 12px 32px rgba(16, 27, 43, .09);--topbar-h: 60px;--sidebar-w: 268px}@media (prefers-color-scheme: dark){:root{--brand-strong: color-mix(in srgb, var(--brand) 78%, #fff);--brand-tint: color-mix(in srgb, var(--brand) 26%, #080f1a);--brand-ink: color-mix(in srgb, var(--brand) 52%, #fff);--accent: #ff7a2e;--accent-strong: #ff9c5e;--accent-tint: #3a2413;--on-accent: #143257;--accent-ink: #ff9c5e;--canvas: #080f1a;--surface: #0f1c30;--surface-2: #16263e;--surface-sunken: #0b1524;--ink: #f4eee5;--ink-2: #d8dfea;--ink-soft: #8fa8c8;--line: #22344f;--line-strong: #365072;--ok: #4cbf95;--ok-tint: #102c23;--warn: #d9a441;--danger: #ff8f85;--danger-tint: #331714;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 4px 14px rgba(0, 0, 0, .35);--shadow-lift: 0 4px 10px rgba(0, 0, 0, .55), 0 12px 32px rgba(0, 0, 0, .45)}}@font-face{font-family:"Awesome Serif Italic VAR";src:url(/fonts/AwesomeSerifItalicVAR.woff2) format("woff2-variations"),url(/fonts/AwesomeSerifItalicVAR.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--font-ui: Poppins, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Awesome Serif Italic VAR", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}.grid,.grid__mono,.pager{font-variant-numeric:tabular-nums}.page-head h1,.profile__identity h2{font-family:var(--font-display);font-style:italic;font-weight:500;letter-spacing:0}.profile__identity h2 .badge{font-family:var(--font-ui);font-style:normal}a{color:inherit;text-decoration:none}button,select,input{font:inherit;color:inherit}:where(a,button,select,input,[tabindex]):focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px;border-radius:3px}.shell{--sidebar-current: var(--sidebar-w);min-height:100vh}.shell--collapsed{--sidebar-current: 0px}.topbar{position:fixed;inset:0 0 auto 0;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:var(--brand);background-image:var(--gradient-brand);color:var(--on-brand);z-index:30;box-shadow:0 1px #0000001f,0 2px 10px #101b2b24}.topbar__left,.topbar__right{display:flex;align-items:center;gap:16px;min-width:0}.lockup{display:flex;align-items:center;gap:11px}.lockup__text{display:flex;flex-direction:column;line-height:1.12}.lockup__name{font-size:17px;font-weight:700;letter-spacing:-.01em;text-transform:uppercase}.lockup__name em{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:none;letter-spacing:.01em;font-size:1.08em}.lockup__sub{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.82}.topbar__rule{width:1px;height:30px;background:#ffffff3d}.topbar__burger,.topbar__gear{background:none;border:0;color:inherit;font-size:18px;cursor:pointer;padding:6px 8px;border-radius:var(--radius);line-height:1}.topbar__burger:hover,.topbar__gear:hover{background:#ffffff29}.topbar__tenant{display:flex;align-items:center;gap:9px;background:#ffffff24;border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:5px 14px;max-width:340px}.topbar__tenant:hover{background:#fff3}.topbar__tenant-icon{display:block;color:#ffffffeb;flex:none}.topbar__tenant select{background:transparent;border:0;color:inherit;font-weight:600;font-size:15px;cursor:pointer;max-width:280px;text-overflow:ellipsis}.topbar__tenant select option{color:var(--ink);background:var(--surface)}.topbar__school,.topbar__chip,.topbar__user{display:flex;align-items:center;gap:8px;font-size:14.5px;white-space:nowrap}.topbar__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff3}.sidebar{position:fixed;top:var(--topbar-h);bottom:0;left:0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;overflow-x:hidden;transition:transform .18s ease;z-index:20}.sidebar--collapsed{transform:translate(-100%)}.sidebar__brand{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid var(--line)}.sidebar__brand-text{display:flex;flex-direction:column;gap:3px;font-size:15.5px;font-weight:600}.sidebar__brand-text small{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-ink)}.sidebar__nav{display:flex;flex-direction:column;padding:8px 0 40px}.sidebar__link{display:flex;align-items:center;gap:13px;padding:11px 20px;border-left:3px solid transparent;color:var(--ink-2);font-size:14.5px}.sidebar__link:hover{background:var(--surface-2);color:var(--ink)}.sidebar__link.is-active{background:var(--brand-tint);border-left-color:var(--brand);color:var(--brand-ink);font-weight:600}.sidebar__icon{width:20px;text-align:center}.content{padding:calc(var(--topbar-h) + 24px) 26px 48px;margin-left:var(--sidebar-current);transition:margin-left .18s ease}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.page-head small{font-size:15px;font-weight:400;color:var(--ink-soft)}.breadcrumb{font-size:13px;color:var(--ink-soft)}.breadcrumb a:hover{color:var(--brand-ink)}.card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.toolbar__show,.toolbar__search{color:var(--ink-soft)}.toolbar__show select,.toolbar__search input,.advance__field select{border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 10px;background:var(--surface);color:var(--ink)}.toolbar__show select{min-width:88px}.toolbar__right{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.toolbar__search{display:flex;align-items:center;gap:8px}.toolbar__search input{min-width:250px}.toolbar__search input::placeholder{color:var(--ink-soft);opacity:.75}.toolbar__search input:focus,.toolbar__show select:focus,.advance__field select:focus{outline:2px solid color-mix(in srgb,var(--brand) 42%,transparent);outline-offset:1px;border-color:var(--brand)}.btn{border:1px solid transparent;border-radius:var(--radius);padding:8px 14px;cursor:pointer;font-weight:600;white-space:nowrap;transition:background .14s ease,border-color .14s ease}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:var(--accent-strong)}.btn--ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2)}.btn--ghost:hover{background:var(--surface-2);border-color:var(--brand);color:var(--brand-ink)}.btn--badged{box-shadow:0 0 0 2px var(--accent-tint)}.advance{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end;padding:15px;margin-bottom:14px;background:var(--brand-tint);border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);border-radius:var(--radius)}.advance__field{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.advance__actions{display:flex;gap:8px}.grid__wrap{position:relative;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.grid{width:100%;border-collapse:collapse;min-width:1080px}.grid th{text-align:left;vertical-align:top;padding:13px 12px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line-strong);background:var(--surface-sunken);position:sticky;top:0;z-index:2}.grid th.is-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.grid th.is-sortable:hover{color:var(--brand-ink)}.grid__th{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.sort{display:inline-flex;flex-direction:column;font-size:7px;line-height:1;color:var(--line-strong);padding-top:3px}.sort--asc .sort__up,.sort--desc .sort__down{color:var(--brand-ink)}.grid td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px;background:var(--surface)}.grid tbody tr:nth-child(2n) td{background:var(--surface-2)}.grid--inset{min-width:0}.grid--inset th{position:static;border-radius:0}.grid__num{width:72px;white-space:nowrap}.grid__row{cursor:pointer;transition:background .12s ease}.grid__row:hover td,.grid__row:focus-visible td{background:var(--brand-tint)}.grid__row:focus-visible{outline:none}.grid__row:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.grid__stack{display:inline-flex;flex-direction:column;gap:2px}.grid__secondary{color:var(--ink-soft);font-size:12.5px}.grid__primary{font-weight:600;font-variant-numeric:tabular-nums}.grid__link{color:var(--brand-ink);font-weight:600}.grid__row:hover .grid__link{text-decoration:underline}.grid__mono{font-variant-numeric:tabular-nums}.grid__muted{color:var(--ink-soft)}.grid__expand{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:10px;border-radius:50%;background:var(--brand);color:var(--on-brand);font-size:13px;line-height:1;vertical-align:top}.grid__empty{padding:44px;text-align:center;color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px;letter-spacing:.02em}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge--active{color:var(--ok);background:var(--ok-tint)}.badge--inactive{color:var(--danger);background:var(--danger-tint)}.grid__wrap.is-loading .grid{opacity:.45;pointer-events:none}.grid__veil{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--surface);padding:5px 16px;border-radius:20px;font-size:12px;font-weight:600;z-index:3}.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}.pager__info{margin:0;color:var(--ink-soft);font-variant-numeric:tabular-nums}.pager__nav{display:flex;gap:4px}.pager__nav button{border:1px solid var(--line-strong);background:var(--surface);padding:6px 12px;border-radius:var(--radius);cursor:pointer;color:var(--ink-2);font-variant-numeric:tabular-nums}.pager__nav button:hover:not(:disabled){background:var(--brand-tint);border-color:var(--brand);color:var(--brand-ink)}.pager__nav button.is-current{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:700}.pager__nav button:disabled{opacity:.42;cursor:not-allowed}.pager__gap{padding:6px 4px;color:var(--ink-soft)}.profile__hero{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.profile__avatar,.profile__photo{width:74px;height:74px;border-radius:18px;flex:none}.profile__avatar{display:grid;place-items:center;background:var(--brand);color:var(--on-brand);font-size:26px;font-weight:700;letter-spacing:.5px}.profile__photo{object-fit:cover;object-position:center top;border:1px solid var(--line);background:var(--surface-sunken)}.grid__named{display:flex;align-items:center;gap:10px}.grid__photo{width:34px;height:34px;border-radius:8px;flex:none;object-fit:cover;object-position:center top;background:var(--surface-sunken)}.grid__photo--none{display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-ink);font-size:13px;font-weight:700}.profile__identity{flex:1 1 320px;min-width:0}.profile__identity h2{display:flex;align-items:center;gap:12px;margin:0 0 6px;font-size:23px;font-weight:600;letter-spacing:-.015em}.profile__meta{margin:0;color:var(--ink-soft)}.profile__meta strong{color:var(--ink-2);font-variant-numeric:tabular-nums}.profile__meta--muted{font-size:13px;margin-top:3px}.profile__actions{display:flex;gap:8px}.profile__quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:18px 0}.stat{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius)}.stat__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.stat__value{font-size:17px;font-weight:600}.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line)}.tabs__tab{border:0;background:none;padding:11px 18px;cursor:pointer;color:var(--ink-soft);border-bottom:3px solid transparent;font-weight:600}.tabs__tab:hover{color:var(--ink)}.tabs__tab.is-active{color:var(--brand-ink);border-bottom-color:var(--brand)}.profile__panel{padding-top:20px}.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 24px;margin:0}.field dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:3px}.field dd{margin:0;font-size:15px}.profile__subhead{margin:26px 0 12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.siblings{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.siblings a{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.siblings a:hover{border-color:var(--brand);background:var(--brand-tint);box-shadow:var(--shadow)}.siblings__name{font-weight:600;color:var(--brand-ink)}.siblings__class{color:var(--ink-soft)}.alert{padding:12px 14px;border-radius:var(--radius);margin:0 0 14px}.alert--error{background:var(--danger-tint);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 32%,transparent)}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--surface-2) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:var(--radius)}.skeleton--avatar{width:74px;height:74px;border-radius:18px;margin-bottom:18px}.skeleton--line{height:16px;margin-bottom:12px}.skeleton--short{width:40%}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.placeholder__title{margin-top:0}@media (max-width: 900px){.shell{--sidebar-current: 0px}.sidebar{transform:translate(-100%)}.shell:not(.shell--collapsed) .sidebar{transform:none;box-shadow:var(--shadow-lift)}.content{padding-inline:14px}.topbar__chip,.topbar__user,.lockup__sub{display:none}.toolbar__search input{min-width:0;width:100%}}.signin{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.signin__card{max-width:26rem;width:100%;text-align:center;padding:2.5rem 2rem;border-radius:12px;border:1px solid var(--line, #e2e6ee);background:var(--surface, #fff);box-shadow:var(--shadow, 0 1px 3px rgb(20 50 87 / 8%))}.signin__title{margin:0 0 .5rem;font-size:1.25rem;color:var(--brand, #143257)}.signin__body{margin:0 0 1.5rem;color:var(--ink-soft, #5a6478);line-height:1.5;font-size:.925rem}.signin__button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.7rem 1rem;font:inherit;font-weight:600;color:#fff;background:var(--brand, #143257);border:0;border-radius:8px;cursor:pointer}.signin__button:hover{filter:brightness(1.1)}.signin__button:focus-visible{outline:2px solid var(--brand, #143257);outline-offset:2px}
