@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/12d4e8c1f08b4a66-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/cabb10e1d7cbc7c1-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/9f5a2b9f13a4ecbb-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/d8aeca813a9ab546-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.FIqq7q_className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.FIqq7q_variable{--font-sans:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--blue:#2f6bff;--blue-soft:#e8f0ff;--yellow:#f5c84c;--gold:#f0a93b;--peach:#f4a261;--ink:#1c2434;--muted:#8b93a7;--line:#eef0f4;--panel:#f6f7fb;--card:#fff;--shadow:0 6px 18px #1c24340d;--radius:14px;--radius-sm:10px;--font:var(--font-sans), "Plus Jakarta Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}html{font-size:15px}body{font-family:var(--font);color:var(--ink);background:var(--panel);-webkit-font-smoothing:antialiased;line-height:1.35}button,input{font:inherit;color:inherit;background:0 0;border:none}button{cursor:pointer}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;display:block}.page{width:100vw;height:100dvh;overflow:hidden}.dashboard{background:var(--panel);grid-template-columns:268px minmax(0,1fr);width:100%;height:100%;transition:grid-template-columns .22s;display:grid;overflow:hidden}.dashboard:has(.sidebar.is-collapsed){grid-template-columns:78px minmax(0,1fr)}.page-transition{scrollbar-width:none;-ms-overflow-style:none;opacity:1;min-width:0;height:100%;overflow:hidden auto;transform:translateY(0)}.page-transition::-webkit-scrollbar{width:0;height:0;display:none}.page-transition.is-entering{animation:.22s cubic-bezier(.22,1,.36,1) page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.route-progress{z-index:2000;pointer-events:none;opacity:0;height:2px;transition:opacity .18s;position:fixed;top:0;left:0;right:0}.route-progress.is-visible{opacity:1}.route-progress-bar{background:linear-gradient(90deg,#2f6bff 0%,#5b8cff 55%,#101828 100%);border-radius:0 2px 2px 0;height:100%;transition:width .2s cubic-bezier(.22,1,.36,1);box-shadow:0 0 10px #2f6bff59}.page-skeleton{flex-direction:column;gap:12px;padding:18px 24px 28px;animation:.22s cubic-bezier(.22,1,.36,1) page-enter;display:flex}.page-skeleton-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-skeleton-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.page-skeleton-tabs{flex-wrap:wrap;gap:6px;display:flex}.skel{background:linear-gradient(90deg,#eef0f4 0%,#f7f8fb 45%,#eef0f4 90%) 0 0/200% 100%;border-radius:10px;animation:1.1s ease-in-out infinite skel-shine}.skel-line{height:12px}.skel-title{border-radius:12px;width:42%;height:28px}.skel-pill{border-radius:999px;width:180px;height:34px}.skel-card{border-radius:12px;height:78px}.skel-tab{border-radius:12px;width:120px;height:34px}.skel-panel{background:#fff;border:1px solid #e4e7ec;border-radius:18px;flex-direction:column;gap:12px;min-height:360px;margin-top:4px;padding:16px;animation:none;display:flex}.skel-panel .skel{background:linear-gradient(90deg,#eef0f4 0%,#f7f8fb 45%,#eef0f4 90%) 0 0/200% 100%;animation:1.1s ease-in-out infinite skel-shine}.skel-row{border-radius:10px;height:40px}.skel-w-24{width:24%}.skel-w-32{width:32%}.skel-w-48{width:48%}.skel-w-56{width:56%}@keyframes skel-shine{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.page-transition.is-entering,.page-skeleton,.skel,.skel-panel .skel,.auth-boot-bar span,.auth-boot-card{animation:none!important}.route-progress-bar{transition:none}}.sidebar{background:#000;border-right:none;flex-direction:column;gap:12px;height:100%;min-height:0;padding:14px 10px 12px;display:flex;overflow:hidden}.sidebar-top{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px;display:flex}.brand{color:#fff;flex:1;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.brand-mark{color:#fff;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.brand-mark .hgi-stroke{color:inherit;font-size:22px}.brand-name{letter-spacing:-.03em;color:#fff;white-space:nowrap;font-size:1.15rem;font-weight:800;overflow:hidden}.sidebar-collapse-btn{color:#fffc;background:#2a2a2a;border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:grid}.sidebar-collapse-btn .hgi-stroke{font-size:14px}.sidebar-collapse-btn:hover{color:#fff;background:#3a3a3a}.nav{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;gap:2px;min-height:0;padding-right:2px;display:flex;overflow:hidden auto}.nav::-webkit-scrollbar{width:0;height:0;display:none}.sidebar-footer{background:#000;border-top:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;gap:2px;margin-top:auto;padding-top:12px;display:flex}.sidebar-footer--schoolos .nav-footer-link{color:#ffffffc7}.sidebar-footer--schoolos .nav-footer-link:hover{color:#fff;background:#ffffff0f}.term-switcher{color:#344054;background:#fff;border:1px solid #e4e7ec;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;font-weight:650;display:inline-flex}.term-switcher .hgi-stroke{color:#667085;font-size:14px}.term-switcher select{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;outline:none;padding-right:2px}.term-switcher-sep{color:#98a2b3}.page-title-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.record-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0 4px;display:flex}.record-tab{color:#667085;background:0 0;border-radius:10px 10px 0 0;padding:8px 12px;font-size:.8rem;font-weight:650}.record-tab:hover{color:var(--ink);background:#1018280a}.record-tab.active{color:#101828;background:#fff;box-shadow:inset 0 -2px #101828}.help-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.help-grid .card{gap:10px;height:auto}.help-grid .hgi-stroke{color:var(--blue);font-size:22px}.help-grid h2{font-size:1.05rem;font-weight:800}.help-grid p{color:var(--muted);font-size:.88rem;line-height:1.45}.help-grid a{color:var(--blue);font-size:.86rem;font-weight:650}.help-grid a:hover{text-decoration:underline}.sidebar-user{border-radius:12px;align-items:center;gap:10px;min-width:0;padding:6px 10px;display:flex}.sidebar-avatar{color:#fff;background:#2a2a2a;border:1px solid #ffffff1f;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:grid}.sidebar-user-meta{flex-direction:column;gap:1px;min-width:0;display:flex;overflow:hidden}.sidebar-user-meta strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:700;overflow:hidden}.sidebar-user-meta span{color:#ffffff73;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.nav-logout{color:#ffffffd9}.nav-logout:hover{color:#ff8d8d;background:#ff50501f}.nav-logout:hover .nav-icon{color:#ff8d8d}.sidebar.is-collapsed .brand-name,.sidebar.is-collapsed .nav-label{display:none}.sidebar.is-collapsed .sidebar-top{flex-direction:column;gap:8px}.sidebar.is-collapsed .brand{justify-content:center;padding:4px 0}.sidebar.is-collapsed .nav-item{justify-content:center;padding:10px 8px}.sidebar.is-collapsed .nav-item-main{justify-content:center}.nav-item{color:#fff;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;width:100%;padding:11px 12px;font-size:.9rem;font-weight:500;line-height:1.25;text-decoration:none;transition:background .2s,color .2s;display:flex}.nav-section .nav-item-main{min-width:0;color:inherit;flex:1;text-decoration:none}.nav-chevron-btn{color:#ffffff73;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.nav-chevron-btn:hover{color:#fff;background:#ffffff14}.nav-item-main{align-items:center;gap:10px;min-width:0;display:inline-flex}.nav-label{text-overflow:ellipsis;overflow:hidden}.nav-item .nav-icon{text-align:center;color:#ffffffb8;flex-shrink:0;width:18px;font-size:16px}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active,.nav-dashboard.active{color:#fff;background:#2a2a2a;font-weight:600}.nav-item.active .nav-icon,.nav-dashboard.active .nav-icon{color:#fff}.nav-dashboard{margin-bottom:4px}.nav-children{grid-template-rows:0fr;transition:grid-template-rows .22s;display:grid}.nav-children.open{grid-template-rows:1fr}.nav-children-inner{flex-direction:column;gap:1px;padding:0 0 0 14px;display:flex;overflow:hidden}.nav-children.open .nav-children-inner{padding:4px 0 8px 14px}.nav-child{color:#ffffffad;border-radius:8px;padding:9px 12px 9px 26px;font-size:.84rem;font-weight:500;line-height:1.3;transition:background .15s,color .15s;display:block;position:relative}.nav-child:before{content:"";background:#ffffff38;border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.nav-child:hover{color:#fff;background:#ffffff0d}.nav-child.active{color:#fff;background:#ffffff1a;font-weight:650}.nav-child.active:before{background:#fff}.main{min-width:0;height:auto;min-height:100%}.main--home{flex-direction:column;gap:22px;padding:28px 32px 36px;display:flex}.main--page{flex-direction:column;align-content:start;gap:12px;padding:18px 24px 28px;display:flex}.page-header{flex-direction:column;gap:4px;display:flex}.page-header-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-eyebrow{color:var(--muted);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:inline-flex}.page-eyebrow .hgi-stroke{color:var(--blue);font-size:16px}.page-header h1{letter-spacing:-.03em;font-size:1.45rem;font-weight:800}.page-subtitle{color:var(--muted);max-width:62ch;font-size:.84rem}.page-actions{gap:8px;display:flex}.page-btn{border-radius:999px;padding:10px 18px;font-size:.82rem;font-weight:650}.page-btn.ghost{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.page-btn.primary{background:var(--blue);color:#fff}button.page-btn.primary.school-edit-btn{appearance:none;color:#fff;cursor:pointer;background:#2f6bff;border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 18px;font-size:.88rem;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 8px 18px #2f6bff47}button.page-btn.primary.school-edit-btn .hgi-stroke{color:#fff;font-size:16px}button.page-btn.primary.school-edit-btn:hover{background:#1f54d9}.school-profile-actions{flex-shrink:0}.page-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.module-stats{margin-bottom:0}.page-stat{background:var(--card);box-shadow:none;border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.stat-meta{color:var(--muted);font-size:.72rem;font-style:normal;font-weight:650}.stat-meta.ok{color:#1b7a45}.stat-meta.warn{color:#c27803}.module-tabs{flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0 4px;display:flex}.module-tab{color:#667085;background:0 0;border-radius:12px;align-items:center;gap:7px;padding:9px 13px;font-size:.82rem;font-weight:650;transition:background .15s,color .15s;display:inline-flex}.module-tab .hgi-stroke{font-size:15px}.module-tab:hover{color:var(--ink);background:#1018280a}.module-tab.active{color:#fff;background:#101828}.module-tab.active .hgi-stroke{color:#fff}.module-panel{margin-top:0;padding:0;overflow:hidden}.module-panel-head{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.module-panel-copy{flex-shrink:0;min-width:0;max-width:34%}.module-panel-head h2{letter-spacing:-.02em;color:#101828;font-size:1.05rem;font-weight:800;line-height:1.2}.module-panel-head p{color:#667085;margin:3px 0 0;font-size:.78rem;line-height:1.35}.module-panel-copy .table-bulk{margin-top:8px}.module-panel-controls{flex-direction:column;flex:1;align-items:flex-end;gap:8px;min-width:0;display:flex}.module-control-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.module-control-row--primary{width:auto}.filter-chip{box-shadow:none;background:#fff;border:1px solid #e4e7ec;border-radius:999px;align-items:center;gap:5px;height:34px;padding:6px 10px;display:inline-flex}.filter-chip .hgi-stroke{color:#667085;font-size:13px}.filter-chip select{appearance:none;font:inherit;color:#344054;cursor:pointer;background-color:#0000;background-image:linear-gradient(45deg,#0000 50%,#98a2b3 50%),linear-gradient(135deg,#98a2b3 50%,#0000 50%);background-position:calc(100% - 3px) calc(50% - 2px),calc(100% + 3px) calc(50% - 2px);background-repeat:no-repeat;background-size:5px 5px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:none;outline:none;padding-right:12px;font-size:.78rem;font-weight:650}.page-btn.ghost.icon-btn{box-shadow:none;color:#344054;background:#fff;border:1px solid #e4e7ec;border-radius:999px;align-items:center;gap:5px;height:34px;padding:6px 11px;font-size:.78rem;display:inline-flex}.page-btn.ghost.icon-btn .hgi-stroke{color:#667085;font-size:13px}.page-btn.ghost.icon-btn .chevron{margin-left:1px;font-size:11px}.page-btn.dark{color:#fff;background:#101828;border-radius:999px;height:34px;padding:7px 14px;font-size:.8rem;font-weight:700}.page-btn.dark:hover{background:#1d2939}.module-panel .table-pagination{margin-top:0;padding:10px 16px 12px}.row-menu{display:inline-flex;position:relative}.row-menu-btn{background:var(--panel);color:var(--ink);border-radius:10px;align-items:center;gap:6px;padding:7px 12px;font-size:.78rem;font-weight:650;display:inline-flex}.row-menu-btn .hgi-stroke{color:var(--muted);font-size:12px}.row-menu-dropdown{z-index:20;background:#fff;border-radius:12px;flex-direction:column;gap:2px;min-width:140px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #10182829}.row-menu-dropdown a,.row-menu-dropdown button{text-align:left;color:var(--ink);background:0 0;border-radius:8px;padding:8px 10px;font-size:.8rem;font-weight:600}.row-menu-dropdown a:hover,.row-menu-dropdown button:hover{background:var(--panel)}.row-menu-dropdown .danger{color:#c62828}.page-stat span{color:var(--muted);font-size:.78rem;font-weight:600}.page-stat strong{letter-spacing:-.03em;font-size:1.2rem;font-weight:800}.page-card{flex-shrink:0;width:100%;height:auto;overflow:visible}.page-card--full{flex:none;width:100%;height:auto;min-height:0;overflow:visible}.table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.table-toolbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.table-filters{flex-wrap:wrap;flex:1;align-items:center;gap:10px;display:flex}.filter-search{width:auto;min-width:180px;max-width:240px;box-shadow:none;background:#fff;border:1px solid #e4e7ec;border-radius:999px;flex:0 auto;align-items:center;gap:6px;height:34px;padding:6px 12px;display:flex}.filter-search .hgi-stroke{color:#98a2b3;font-size:13px}.filter-search input{color:#344054;background:0 0;outline:none;flex:1;min-width:0;font-size:.78rem}.filter-search input::placeholder{color:#98a2b3}.filter-select{appearance:none;background:var(--panel);color:var(--ink);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,#8b93a7 50%),linear-gradient(135deg,#8b93a7 50%,#0000 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-repeat:no-repeat;background-size:6px 6px;border:none;border-radius:12px;outline:none;padding:10px 36px 10px 14px;font-size:.85rem;font-weight:600}.table-bulk{color:var(--muted);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.table-hint{color:var(--muted)}.page-btn.danger{color:#c62828}.page-table-wrap,.table-wrap{-webkit-overflow-scrolling:touch;width:100%;min-height:0;overflow:auto visible}.module-panel .page-table-wrap,.module-panel .table-wrap{min-height:auto}.table-pagination{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding-top:14px;font-size:.84rem;font-weight:600;display:flex}.table-footer-actions{align-items:center;gap:10px;display:flex}.table-footer-actions .page-btn.primary{align-items:center;gap:6px;display:inline-flex}.table-footer-actions .page-btn.primary .hgi-stroke{font-size:14px}.actions-select{appearance:none;background:var(--card);min-width:118px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,#8b93a7 50%),linear-gradient(135deg,#8b93a7 50%,#0000 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px;border:none;border-radius:999px;outline:none;padding:10px 36px 10px 18px;font-size:.82rem;font-weight:650}.actions-select:disabled{opacity:.45;cursor:not-allowed}.pagination-actions{align-items:center;gap:8px;display:flex}.page-indicator{color:var(--muted);margin-right:6px}.pagination-actions .page-btn:disabled{opacity:.4;cursor:not-allowed}.page-table,.page-table--full,.data-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:.9rem}.page-table th,.page-table td,.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;padding:11px 12px}.page-table tbody tr,.data-table tbody tr{height:44px}.page-table th,.data-table th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:#fafbfd;font-size:.78rem;font-weight:650}.page-table tbody tr:hover,.data-table tbody tr:hover{background:#f8f9fc}.page-table tbody tr.is-selected,.data-table tbody tr.is-selected{background:var(--blue-soft)}.col-check{width:48px}.col-check input{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}.col-actions{white-space:nowrap;text-align:right;z-index:2;background:#fff;width:1%;position:sticky;right:0;box-shadow:-10px 0 14px -12px #10182859}.page-table thead .col-actions{z-index:3;background:#fafbfd}.page-table tbody tr:hover .col-actions{background:#f8f9fc}.page-table tbody tr.is-selected .col-actions{background:var(--blue-soft)}.row-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.row-action-btn{background:var(--panel);color:var(--ink);border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:.74rem;font-weight:650;transition:background .15s,color .15s;display:inline-flex}.row-action-btn:disabled,.page-btn:disabled{opacity:.45;cursor:not-allowed}.row-action-btn .hgi-stroke{font-size:13px}.row-action-btn:hover{background:var(--blue-soft);color:var(--blue)}.row-action-btn.danger:hover{color:#c62828;background:#fdeaea}.table-empty{text-align:center;color:var(--muted);padding:28px 12px!important}.modal-overlay{z-index:1000;background:#10182873;place-items:center;padding:20px;animation:.16s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-card{background:#fff;border-radius:18px;width:min(480px,100%);animation:.2s page-enter;overflow:hidden;box-shadow:0 24px 60px #10182838}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 12px;display:flex}.modal-head h2{letter-spacing:-.02em;font-size:1.15rem;font-weight:800}.modal-close{width:34px;height:34px;color:var(--muted);background:var(--panel);border-radius:10px;place-items:center;display:grid}.modal-close .hgi-stroke{font-size:16px}.modal-body{color:var(--ink);padding:8px 20px 18px;font-size:.92rem;line-height:1.45}.view-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.view-grid>div{background:var(--panel);border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.view-grid span{color:var(--muted);font-size:.72rem;font-weight:650}.view-grid strong{font-size:.95rem;font-weight:700}.form-grid{flex-direction:column;gap:12px;display:flex}.form-field-block{flex-direction:column;gap:6px;display:flex}.form-section-title{border-top:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:8px 0 0;padding-top:8px;font-size:.78rem;font-weight:750}.form-field-block:first-child .form-section-title{border-top:0;margin-top:0;padding-top:0}.form-grid label{flex-direction:column;gap:6px;display:flex}.nin-field{flex-direction:column;gap:4px;display:flex}.file-upload-field{gap:8px;display:grid}.file-upload-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.file-upload-link{color:#2f6bff;text-underline-offset:2px;word-break:break-all;font-size:.84rem;font-weight:650;text-decoration:underline}.field-hint{color:var(--muted);font-size:.72rem;font-weight:550;line-height:1.35}.application-detail-grid{grid-template-columns:1fr}.page-kicker{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.78rem;font-weight:750}.form-grid label span{color:var(--muted);font-size:.78rem;font-weight:650}.form-grid input,.form-grid select{border:1px solid var(--line);font:inherit;background:#fff;border-radius:10px;outline:none;padding:10px 12px}.form-grid input:focus,.form-grid select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2f6bff1f}.form-grid input:disabled{background:var(--panel);color:var(--muted)}.modal-footer{justify-content:flex-end;gap:8px;padding:0 20px 18px;display:flex}.confirm-modal-overlay{z-index:1600}.confirm-modal-card{width:min(440px,100%)}.confirm-modal-title-row{align-items:center;gap:10px;min-width:0;display:flex}.confirm-modal-icon{border-radius:12px;flex:none;place-items:center;width:36px;height:36px;display:grid}.confirm-modal-icon .hgi-stroke{font-size:18px}.confirm-modal-icon--warning{color:#c77700;background:#fff4e5}.confirm-modal-icon--danger{color:#c62828;background:#fdecea}.confirm-modal-card .modal-body p{color:var(--ink);margin:0}.tour-overlay{z-index:1200;pointer-events:auto;background:#10182847;place-items:end center;padding:24px;animation:.16s fade-in;display:grid;position:fixed;inset:0}.tour-overlay--spotlight{background:0 0;place-items:stretch stretch;padding:0}.tour-overlay--spotlight:not(:has(.tour-spotlight)){background:#10182873}.tour-spotlight{z-index:1201;pointer-events:none;border-radius:14px;transition:top .18s,left .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #1018288c,0 0 0 3px #2f6bff,0 12px 28px #2f6bff59}.tour-card{border:1px solid var(--line);z-index:1202;background:#fff;border-radius:18px;width:min(520px,100%);animation:.2s page-enter;position:relative;overflow:hidden;box-shadow:0 24px 60px #10182838}.tour-overlay--spotlight .tour-card{max-height:min(70vh,520px);position:fixed;bottom:24px;overflow:auto}.tour-card--right{left:auto;right:24px}.tour-card--left{left:max(24px, calc(var(--sidebar-w,268px) + 16px));right:auto}.tour-progress{background:var(--panel);height:4px}.tour-progress>span{background:var(--blue,#2f6bff);height:100%;transition:width .18s;display:block}.tour-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px 8px;display:flex}.tour-eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:.72rem;font-weight:700}.tour-head h2{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:800}.tour-body{color:var(--ink);padding:4px 20px 16px;font-size:.92rem;line-height:1.45}.tour-body p{margin:0 0 10px}.tour-meta{color:var(--muted);flex-wrap:wrap;gap:6px;margin-bottom:10px;font-size:.78rem;font-weight:700;display:flex}.tour-path{color:var(--muted);align-items:center;gap:8px;font-size:.8rem;display:flex;margin:0!important}.tour-path .hgi-stroke{font-size:14px}.tour-path code{background:var(--panel);border-radius:8px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.tour-footer{justify-content:space-between;align-items:center;gap:12px;padding:0 20px 18px;display:flex}.tour-footer-actions{gap:8px;display:flex}.tour-footer .page-btn:disabled{opacity:.45;cursor:not-allowed}.page-btn.danger-solid{color:#fff;background:#c62828}.toast{color:#fff;z-index:1100;background:#111;border-radius:12px;padding:12px 16px;font-size:.86rem;font-weight:650;animation:.18s page-enter;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 30px #0003}.status-pill{border-radius:999px;align-items:center;padding:4px 10px;font-size:.74rem;font-weight:700;display:inline-flex}.status-pill.ok{color:#1b7a45;background:#e8f8ef}.status-pill.warn{color:#9a6b00;background:#fff4d8}.main-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;margin-bottom:4px;display:flex}.main-header h1{letter-spacing:-.03em;font-size:2rem;font-weight:800}.main-header-sub{color:var(--muted);margin-top:4px;font-size:.9rem}.breadcrumbs{color:var(--muted);align-items:center;gap:8px;font-size:.82rem;font-weight:600;display:flex}.breadcrumbs a{color:var(--blue)}.breadcrumbs a:hover{text-decoration:underline}.detail-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.detail-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.detail-card h2{margin-bottom:12px;font-size:1rem;font-weight:750}.detail-notes{color:var(--ink);margin:0;font-size:.92rem;line-height:1.55}.school-profile-grid{grid-template-columns:1fr}.settings-geofence-card{overflow:hidden}.settings-geofence-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8fafc;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 16px;display:grid}.settings-geofence-meta span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:650;display:block}.settings-geofence-meta strong{margin-top:2px;font-size:.9rem;font-weight:750;display:block}@media (max-width:900px){.settings-geofence-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}.school-profile-hero-row{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.school-profile-mark{color:#fff;letter-spacing:.02em;width:72px;height:72px;box-shadow:var(--shadow);border-radius:18px;flex:none;place-items:center;font-size:1.15rem;font-weight:800;display:grid}.school-profile-hero-copy{flex:220px;min-width:0}.school-profile-hero-copy h2{margin:6px 0 4px;font-size:1.35rem;font-weight:800}.school-profile-meta{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.school-profile-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:999px;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:650;display:inline-flex}.school-profile-details{min-width:0}.school-profile-swatch-row{align-items:center;gap:8px;display:inline-flex}.school-profile-swatch{border:1px solid var(--line);border-radius:4px;flex:none;width:14px;height:14px}.detail-back-bar{z-index:2;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 14px;display:flex;position:relative}.detail-back-link{color:#fff;background:#101828;border:1px solid #d0d5dd;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 1px 2px #10182814}.detail-back-link .hgi-stroke{color:#fff}.detail-back-link:hover{color:#fff;background:#1d2939;border-color:#1d2939}.detail-back-current{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:min(420px,100%);font-size:.86rem;font-weight:650;overflow:hidden}.roles-panel{overflow:visible;padding:0!important}.roles-panel-tabs{border-bottom:1px solid #eef2f6;gap:22px;padding:0 20px;display:flex}.roles-panel-tab{appearance:none;font:inherit;color:#667085;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin:0;padding:14px 0 12px;font-size:.9rem;font-weight:650}.roles-panel-tab.is-active{color:#101828;border-bottom-color:#2f6bff}.roles-panel-toolbar{border-bottom:1px solid #eef2f6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.roles-panel-toolbar--edit{border-bottom:0;padding:0}.roles-search{border-radius:12px;flex:320px;min-width:220px;max-width:none;height:40px}.roles-toolbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.roles-toolbar-meta{color:#667085;font-size:.8rem;font-weight:600}.roles-table td,.roles-perm-table td{vertical-align:middle}.roles-person{appearance:none;cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:0;align-items:center;gap:12px;margin:0;padding:0;display:inline-flex}.roles-avatar{color:#2f6bff;background:#eef4ff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.78rem;font-weight:750;display:inline-flex}.roles-person-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.roles-person-copy strong{color:#101828;font-size:.9rem;font-weight:700}.roles-person-copy span{color:#667085;font-size:.75rem}.roles-id-code{color:#344054;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem}.roles-type-cell{flex-direction:column;gap:2px;display:flex}.roles-type-cell strong{color:#101828;font-size:.86rem;font-weight:700}.roles-type-cell span{color:#667085;font-size:.72rem}.roles-status{color:#067647;align-items:center;gap:6px;font-size:.82rem;font-weight:650;display:inline-flex}.roles-status i{background:#12b76a;border-radius:999px;width:8px;height:8px}.roles-status.is-system{color:#b54708}.roles-status.is-system i{background:#f79009}.roles-tags{flex-wrap:wrap;gap:6px;display:flex}.roles-tag{color:#344054;white-space:nowrap;background:#f2f4f7;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:650;display:inline-flex}.roles-tag.is-full{color:#2f6bff;background:#eef4ff}.roles-tag.is-more{color:#667085;background:#fff;border:1px solid #e4e7ec}.roles-tag.is-muted{color:#98a2b3}.roles-editor-meta{border-bottom:1px solid #eef2f6;gap:14px;padding:16px 20px;display:grid}.roles-meta-grid{grid-template-columns:minmax(160px,.9fr) minmax(180px,1.1fr);align-items:end;gap:14px;display:grid}.roles-meta-grid label{gap:6px;display:grid}.roles-meta-grid>label>span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.roles-meta-grid input{width:100%;font:inherit;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:11px 12px;font-size:.9rem}.roles-meta-grid input:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 3px #2f6bff26}.roles-meta-grid input:disabled{color:#667085;background:#f2f4f7}.roles-role-chip{color:#475467;background:#f2f4f7;border-radius:999px;align-items:center;padding:4px 9px;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex}.roles-role-chip.is-system{color:#067647;background:#ecfdf3}.roles-group-row td{background:#f8fafc;border-top:1px solid #eef2f6}.roles-group-row strong{color:#101828;margin-right:10px;font-size:.84rem}.roles-group-row span{color:#667085;font-size:.74rem}.roles-crud-col{width:72px;text-align:center!important}.roles-check{cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.roles-check input{accent-color:#2f6bff;width:16px;height:16px}.roles-page-copy strong{color:#101828;font-size:.88rem;line-height:1.3;display:block}.roles-page-copy code{color:#98a2b3;margin-top:4px;font-size:.7rem;line-height:1.3;display:block}.roles-perm-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.roles-perm-item{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:12px 14px;display:grid}.roles-perm-item strong{font-size:.9rem;display:block}.roles-perm-item code{color:var(--muted);margin-top:2px;font-size:.72rem;display:block}.roles-legacy{background:#f5f9ff;border:1px solid #d6e4ff;border-radius:14px;margin:0 20px 20px;padding:12px 14px}.roles-legacy summary{cursor:pointer;color:#344054;align-items:center;gap:8px;font-size:.84rem;font-weight:700;list-style:none;display:inline-flex}.roles-legacy summary .hgi-stroke{color:#2f6bff;font-size:15px}.roles-legacy summary::-webkit-details-marker{display:none}.roles-legacy[open] summary{margin-bottom:12px}@media (max-width:900px){.roles-meta-grid,.roles-perm-list{grid-template-columns:1fr}.roles-panel-tabs{gap:16px;overflow-x:auto}.roles-search{flex-basis:100%}}.geo-attendance-layout{gap:12px;display:grid}.geo-map-frame{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#eef2f6;width:100%;min-height:320px}.geo-map-frame iframe{border:0;width:100%;height:320px;display:block}.geo-polygon-map{width:100%}.geo-polygon-map__canvas{z-index:0;background:#dbe4ee;width:100%;min-height:280px}.geo-polygon-map__canvas .leaflet-container{width:100%;height:100%;font:inherit;background:#dbe4ee}.leaflet-container img.leaflet-tile,.leaflet-container .leaflet-tile,.leaflet-pane img.leaflet-tile{max-width:none!important;max-height:none!important}.leaflet-tile-pane{z-index:200;opacity:1!important}.leaflet-overlay-pane{z-index:400}.leaflet-marker-pane{z-index:600}.geo-polygon-map__tools{border-top:1px solid var(--line);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 12px;display:flex}.geo-polygon-map__hint{color:var(--muted);font-size:.78rem;font-weight:600}.geo-meta,.geo-clock-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 16px 14px;display:grid}.geo-meta span,.geo-clock-stats span{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.7rem;font-weight:650;display:block}.geo-meta strong,.geo-clock-stats strong{margin-top:2px;font-size:.9rem;display:block}.geo-error{color:#b42318;margin:0;padding:0 16px 14px;font-size:.84rem}.geo-clock-actions{padding:0 16px 8px}@media (max-width:900px){.geo-meta,.geo-clock-stats{grid-template-columns:1fr 1fr}}.sms-layout{gap:12px;display:grid}.sms-status-card .sms-meta{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 16px 14px;display:grid}.sms-status-card .sms-meta span{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.7rem;font-weight:650;display:block}.sms-status-card .sms-meta strong{margin-top:2px;font-size:.9rem;display:block}.sms-test{border-top:1px solid var(--line);padding:12px 16px 16px}.sms-test h3{margin:0 0 8px;font-size:.92rem}.sms-test-grid{grid-template-columns:minmax(140px,.8fr) minmax(180px,1.4fr) auto;align-items:end;gap:8px;display:grid}.sms-test-grid label{gap:4px;display:grid}.sms-test-grid span{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.7rem;font-weight:650}.sms-test-grid input{border:1px solid var(--line);width:100%;font:inherit;border-radius:10px;padding:9px 10px}@media (max-width:900px){.sms-status-card .sms-meta,.sms-test-grid{grid-template-columns:1fr}}.sms-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.sms-credit-panel,.sms-parents-form{gap:14px;padding:0 16px 18px;display:grid}.sms-credit-amount{background:#f5f9ff;border:1px solid #d6e4ff;border-radius:14px;gap:4px;padding:14px 16px;display:grid}.sms-credit-amount span{text-transform:uppercase;letter-spacing:.04em;color:#667085;font-size:.72rem;font-weight:700}.sms-credit-amount strong{color:#101828;font-size:1.6rem;font-weight:800}.sms-credit-steps{color:#475467;gap:6px;margin:0;padding-left:18px;font-size:.88rem;line-height:1.5;display:grid}.sms-parents-form label{gap:6px;display:grid}.sms-parents-form span{text-transform:uppercase;letter-spacing:.04em;color:#667085;font-size:.72rem;font-weight:700}.sms-parents-form textarea{width:100%;font:inherit;resize:vertical;border:1px solid #d0d5dd;border-radius:12px;min-height:110px;padding:12px 14px}.sms-parents-form textarea:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 3px #2f6bff26}.sms-parents-form input[type=text],.sms-parents-form input:not([type]){width:100%;font:inherit;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px}.channel-toggles{flex-wrap:wrap;gap:10px;display:flex}.channel-toggle{color:#344054;cursor:pointer;background:#fff;border:1px solid #e4e7ec;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.84rem;font-weight:650;display:inline-flex!important}.channel-toggle input{accent-color:#2f6bff}.channel-status-list{gap:10px;display:grid}.channel-status-row{background:#fbfcfe;border:1px solid #eef2f6;border-radius:12px;gap:2px;padding:12px 14px;display:grid}.channel-status-row strong{color:#101828;font-size:.9rem}.channel-status-row span{color:#2f6bff;font-size:.78rem;font-weight:700}.channel-status-row em{color:#667085;font-size:.75rem;font-style:normal}@media (max-width:900px){.sms-settings-grid{grid-template-columns:1fr}}.inventory-mode-switch{border:1px solid var(--line);background:#fff;border-radius:14px;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:4px;display:inline-flex}.inventory-mode-btn{appearance:none;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:9px 14px;font-size:.88rem;font-weight:700}.inventory-mode-btn.active{background:color-mix(in srgb, var(--brand,#2f6bff) 12%, white);color:var(--ink)}.inventory-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.inventory-kpi{gap:6px;min-height:0}.inventory-kpi span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:650}.inventory-kpi strong{font-size:1.55rem;font-weight:800}.inventory-breakdown-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.inventory-breakdown-card{color:inherit;border:1px solid var(--line);min-height:0;text-decoration:none;transition:border-color .16s,transform .16s}.inventory-breakdown-card:hover{border-color:color-mix(in srgb, var(--brand,#2f6bff) 35%, var(--line));transform:translateY(-1px)}.inventory-breakdown-card-head{align-items:flex-start;gap:12px;display:flex}.inventory-breakdown-icon{background:color-mix(in srgb, var(--brand,#2f6bff) 12%, white);width:40px;height:40px;color:var(--brand,#2f6bff);border-radius:12px;flex:none;place-items:center;display:grid}.inventory-breakdown-card-head h2{margin:0 0 4px;font-size:1.05rem;font-weight:780}.inventory-breakdown-card-head p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.4}.inventory-breakdown-stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;padding-top:12px;display:grid}.inventory-breakdown-stats span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:650;display:block}.inventory-breakdown-stats strong{font-size:1.05rem;font-weight:780}@media (max-width:1100px){.inventory-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.inventory-kpi-row,.inventory-breakdown-grid{grid-template-columns:1fr}}.env-settings-layout{grid-template-columns:minmax(200px,240px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.env-settings-aside{gap:14px}.env-settings-groups{flex-direction:column;gap:6px;display:flex}.env-settings-group{appearance:none;text-align:left;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:10px 12px;font-weight:650}.env-settings-group:hover{background:var(--panel);color:var(--ink)}.env-settings-group.active{background:color-mix(in srgb, var(--brand,#2f6bff) 12%, white);border-color:color-mix(in srgb, var(--brand,#2f6bff) 28%, white);color:var(--ink)}.env-settings-meta{border-top:1px solid var(--line);gap:4px;padding-top:8px;display:grid}.env-settings-meta span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:650}.env-settings-meta strong{word-break:break-all;color:var(--ink);font-size:.8rem;font-weight:650}.env-settings-panel{min-height:420px}.env-settings-fields{gap:16px;padding:0 22px 22px;display:grid}.env-settings-field{gap:8px;display:grid}.env-settings-label-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.env-settings-label-row strong{font-size:.92rem}.env-settings-label-row code{color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px 8px;font-size:.75rem}.env-settings-field input{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:12px;padding:12px 14px}.env-settings-field input:focus{outline:2px solid color-mix(in srgb, var(--brand,#2f6bff) 35%, white);border-color:color-mix(in srgb, var(--brand,#2f6bff) 45%, white)}@media (max-width:900px){.env-settings-layout{grid-template-columns:1fr}.env-settings-groups{flex-flow:wrap}}.table-link{color:var(--blue);font-weight:650}.table-link:hover{text-decoration:underline}a.page-btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}a.row-action-btn{text-decoration:none}body.drawer-open,body.drawer-open .page-transition{overflow:hidden}.drawer-overlay{z-index:1400;background:#10182873;justify-content:flex-end;align-items:stretch;width:100vw;height:100dvh;animation:.16s fade-in;display:flex;position:fixed;inset:0}.drawer-panel{z-index:1401;background:#fff;flex-direction:column;width:min(440px,100%);height:100%;max-height:100dvh;animation:.22s drawer-in;display:flex;position:relative;box-shadow:-18px 0 48px #1018282e}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-form{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.drawer-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 22px 14px;display:flex}.drawer-eyebrow{color:var(--muted);margin:0 0 4px;font-size:.75rem;font-weight:650}.drawer-head h2{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:800}.drawer-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:18px 22px 24px;overflow:hidden auto}.drawer-footer{border-top:1px solid var(--line);background:#fff;flex:none;justify-content:flex-end;gap:8px;padding:16px 22px 20px;display:flex}.form-grid textarea{border:1px solid var(--line);font:inherit;resize:vertical;background:#fff;border-radius:10px;outline:none;min-height:96px;padding:10px 12px}.form-grid textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2f6bff1f}.header-actions{align-items:center;gap:10px;display:flex}.header-menu{position:relative}.header-icon-btn{background:var(--card);width:44px;height:44px;color:var(--ink);box-shadow:var(--shadow);border-radius:12px;place-items:center;transition:background .15s,color .15s,transform .15s;display:grid;position:relative}.header-icon-btn .hgi-stroke{font-size:20px}.header-icon-btn:hover,.header-icon-btn.active{background:var(--blue-soft);color:var(--blue)}.header-icon-btn.profile{color:#fff;background:#111;border-radius:50%}.header-icon-btn.profile:hover,.header-icon-btn.profile.active{color:#fff;background:#2a2a2a}.header-user-btn{color:var(--ink);background:0 0;border-radius:999px;align-items:center;gap:10px;padding:4px 12px 4px 4px;transition:background .15s;display:inline-flex}.header-user-btn:hover,.header-user-btn.active{background:var(--blue-soft)}.header-avatar{color:#fff;letter-spacing:-.02em;background:#111;border-radius:50%;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:.95rem;font-weight:700;display:grid}.header-user-name{white-space:nowrap;padding-right:4px;font-size:.88rem;font-weight:650}.header-badge{border:2px solid var(--card);background:#ff4d4f;border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:10px}.header-dropdown{z-index:30;background:#fff;border-radius:14px;flex-direction:column;gap:8px;width:260px;padding:14px;animation:.16s page-enter;display:flex;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 40px #10182829}.header-dropdown strong{font-size:.9rem}.header-dropdown p{color:var(--muted);background:var(--panel);border-radius:8px;margin:0;padding:8px;font-size:.78rem;line-height:1.4}.profile-dropdown .page-btn{margin-top:4px}.stats{flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.stat-card{color:#fff;border-radius:18px;flex-direction:column;justify-content:space-between;height:auto;min-height:118px;padding:22px 22px 20px;display:flex;position:relative;overflow:hidden}.stat-card.yellow{background:linear-gradient(145deg,#f7d067,#f0b93a)}.stat-card.gold{background:linear-gradient(145deg,#f3b14a,#e8942a)}.stat-card.peach{background:linear-gradient(145deg,#f7b57a,#ef9450)}.stat-card.blue{background:linear-gradient(145deg,#4d82ff,#2f6bff)}.stat-label{opacity:.95;font-size:1rem;font-weight:600}.stat-value{letter-spacing:-.03em;font-size:2.25rem;font-weight:800;line-height:1}.stat-arrow{color:#fff;background:#ffffff47;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:16px;right:16px}.stat-arrow .hgi-stroke{font-size:14px}.row{gap:20px;min-height:0;display:grid}.main--home .row{height:auto;min-height:280px}.charts-row{grid-template-columns:minmax(300px,.9fr) minmax(0,1.5fr)}.mid-row{grid-template-columns:1.1fr 1fr}.bottom-row{grid-template-columns:1.25fr 1fr}.card{background:var(--card);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;height:100%;min-height:0;padding:22px 22px 20px;display:flex;overflow:hidden}.card.module-panel{border:1px solid #e4e7ec;padding:0;box-shadow:0 1px 2px #1018280a}.main--home .card{min-height:280px}.card-head{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-head h2{letter-spacing:-.02em;font-size:1.15rem;font-weight:750}.select-btn{color:var(--muted);background:var(--panel);border-radius:7px;align-items:center;gap:3px;padding:4px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.select-btn .hgi-stroke{font-size:12px}.view-all{color:var(--blue);font-size:.72rem;font-weight:650}.chart-legend{color:var(--muted);gap:10px;font-size:.7rem;font-weight:560;display:flex}.chart-legend span{align-items:center;gap:5px;display:inline-flex}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}.dot.yellow{background:var(--yellow)}.dot.blue{background:var(--blue)}.dot.gold{background:var(--gold)}.dot.peach{background:var(--peach)}i.dot{font-style:normal}.students-card .donut-wrap{flex:1;min-height:0}.donut-wrap{justify-content:center;align-items:center;gap:28px;padding:16px 8px;display:flex}.donut{aspect-ratio:1;background:conic-gradient(var(--yellow) 0deg 198deg, var(--blue) 198deg 360deg);border-radius:50%;flex-shrink:0;place-items:center;width:min(180px,48%);display:grid;position:relative}.donut:before{content:"";background:var(--card);border-radius:50%;position:absolute;inset:26%}.donut-center{z-index:1;text-align:center;position:relative}.donut-center span{color:var(--muted);font-size:.85rem;font-weight:560;display:block}.donut-center strong{letter-spacing:-.03em;font-size:1.7rem;font-weight:800}.donut-legend{flex-direction:column;gap:16px;display:flex}.legend-item{align-items:flex-start;gap:8px;display:flex}.legend-item .dot{margin-top:4px}.legend-label{color:var(--muted);font-size:.85rem;font-weight:550;display:block}.legend-item strong{font-size:1.25rem;font-weight:800}.earnings-card .area-chart{flex:1;min-height:0}.area-chart{grid-template-columns:40px minmax(0,1fr);gap:8px;height:100%;min-height:220px;display:grid}.y-axis{color:var(--muted);text-align:right;flex-direction:column;justify-content:space-between;padding-bottom:16px;font-size:.62rem;display:flex}.chart-body{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.area-svg{flex:1;width:100%;min-height:0;display:block}.x-axis{color:var(--muted);flex-shrink:0;grid-template-columns:repeat(8,1fr);padding-top:4px;font-size:.62rem;display:grid}.x-axis span{text-align:center}.attendance-card .bar-chart{flex:1;min-height:0}.bar-chart{justify-content:space-between;align-items:flex-end;gap:18px;height:100%;min-height:200px;padding:8px 8px 0;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;min-height:0;display:flex;position:relative}.bar{background:var(--panel);border-radius:10px;flex-direction:column;flex:1;width:100%;max-width:48px;min-height:0;display:flex;overflow:hidden}.seg{width:100%;display:block}.seg.present{height:var(--present);background:linear-gradient(#f7d067,#f0b93a)}.seg.absent{height:var(--absent);background:linear-gradient(#5b8cff,#2f6bff)}.day{color:var(--muted);flex-shrink:0;font-size:.7rem;font-weight:600}.bar-col.active .day{color:var(--ink);font-weight:750}.tooltip{background:var(--ink);color:#fff;white-space:nowrap;z-index:2;border-radius:6px;padding:5px 7px;font-size:.6rem;position:absolute;top:0;left:50%;transform:translate(-50%);box-shadow:0 6px 14px #00000029}.tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--ink);position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.tooltip div{align-items:center;gap:5px;margin:1px 0;display:flex}.tooltip .dot{width:5px;height:5px}.activities-card .activity-list{flex:1;min-height:0;overflow:hidden}.activity-list{flex-direction:column;gap:4px;display:flex}.activity-list li{border-radius:10px;align-items:center;gap:10px;min-height:0;padding:8px;transition:background .15s;display:flex}.activity-list li:hover{background:var(--panel)}.activity-list li:nth-child(n+6){display:none}.act-icon{border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.act-icon .hgi-stroke{font-size:16px}.act-icon.gold{color:#e0a020;background:#fff4d8}.act-icon.blue{background:var(--blue-soft);color:var(--blue)}.act-icon.peach{color:var(--peach);background:#ffe8d6}.act-icon.yellow{color:#d9a51f;background:#fff6dc}.activity-list strong{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:.88rem;font-weight:700;display:block;overflow:hidden}.activity-list span{color:var(--muted);font-size:.74rem}.activity-list li>div{min-width:0}.notice-card .notice-list{flex:1;min-height:0}.notice-list{grid-template-columns:repeat(3,1fr);gap:14px;height:100%;display:grid}.notice-item{background:var(--panel);border-radius:14px;flex-direction:column;gap:8px;min-height:150px;padding:14px;display:flex;overflow:hidden}.notice-badge{color:#fff;border-radius:6px;align-self:flex-start;padding:4px 8px;font-size:.7rem;font-weight:700}.notice-badge.yellow{background:var(--yellow);color:#5a4300}.notice-badge.blue{background:var(--blue)}.notice-badge.peach{background:var(--peach)}.notice-item strong{font-size:.92rem;font-weight:750;line-height:1.3}.notice-item p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:.8rem;display:-webkit-box;overflow:hidden}.notice-meta{color:#a0a8ba;border-top:1px solid #e6e9f0;flex-shrink:0;justify-content:space-between;padding-top:3px;font-size:.6rem;font-weight:560;display:flex}.messages-card .message-list{flex:1;min-height:0;overflow:hidden}.message-list{flex-direction:column;gap:4px;display:flex}.message-list li{border-radius:12px;gap:12px;min-height:0;padding:10px 8px;transition:background .15s;display:flex}.message-list li:hover{background:var(--panel)}.message-list img{object-fit:cover;border-radius:50%;flex-shrink:0;width:42px;height:42px}.message-list li>div{flex:1;min-width:0}.msg-top{justify-content:space-between;gap:8px;margin-bottom:2px;display:flex}.msg-top strong{font-size:.9rem;font-weight:700}.msg-top time{color:var(--muted);font-size:.72rem}.message-list p{color:var(--muted);font-size:.8rem;line-height:1.35}.right-panel{background:var(--card);border-left:1px solid var(--line);grid-template-rows:auto auto minmax(0,1.1fr) minmax(0,.85fr);gap:12px;height:100%;padding:18px 16px;display:grid;overflow:hidden auto}.profile{flex-shrink:0;align-items:center;gap:8px;padding:0 2px;display:flex}.avatar{object-fit:cover;border-radius:50%;width:36px;height:36px}.profile-text{flex:1;min-width:0}.profile-text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:750;display:block;overflow:hidden}.profile-text span{color:var(--muted);font-size:.66rem}.bell{background:var(--panel);width:32px;height:32px;color:var(--ink);border-radius:9px;place-items:center;display:grid;position:relative}.bell .hgi-stroke{font-size:15px}.badge-dot{border:2px solid var(--panel);background:#ff4d4f;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px}.right-panel .card{box-shadow:none;border:1px solid var(--line);padding:10px}.calendar-card{flex-shrink:0}.cal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-head strong{font-size:.85rem;font-weight:750}.cal-head button{width:24px;height:24px;color:var(--muted);border-radius:6px;place-items:center;display:grid}.cal-head button:hover{background:var(--panel);color:var(--ink)}.cal-head .hgi-stroke{font-size:14px}.cal-weekdays,.cal-days{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-weekdays{margin-bottom:3px}.cal-weekdays span{color:var(--muted);padding:2px 0;font-size:.6rem;font-weight:650}.cal-days span{aspect-ratio:1;color:var(--ink);border-radius:7px;place-items:center;font-size:.68rem;font-weight:600;display:grid}.cal-days .muted{color:#c2c7d4}.cal-days .today{background:var(--blue);color:#fff;font-weight:750}.cal-days .event{color:#b8860b;background:#fff4d8}.events-card .events-list{flex:1;min-height:0;overflow:hidden}.events-list{flex-direction:column;gap:8px;display:flex}.events-list li{align-items:flex-start;gap:8px;display:flex}.events-list li:nth-child(n+3){display:none}.event-date{background:var(--blue-soft);width:40px;height:44px;color:var(--blue);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;line-height:1.05;display:flex}.event-date.gold{color:#c98a12;background:#fff4d8}.event-date.peach{color:#d9773a;background:#ffe8d6}.event-date strong{font-size:.92rem;font-weight:800}.event-date span{text-transform:uppercase;font-size:.58rem;font-weight:650}.event-body{min-width:0}.event-body>strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:2px;font-size:.72rem;font-weight:720;line-height:1.25;display:-webkit-box;overflow:hidden}.event-time{color:var(--muted);margin-bottom:3px;font-size:.62rem;display:block}.event-tag{color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:2px 6px;font-size:.58rem;font-weight:650;display:inline-block}.recent-card .recent-list{flex:1;min-height:0;overflow:hidden}.recent-list{flex-direction:column;gap:8px;display:flex}.recent-list li{align-items:flex-start;gap:8px;display:flex}.recent-list li:nth-child(n+3){display:none}.recent-list img{object-fit:cover;border-radius:50%;flex-shrink:0;width:26px;height:26px}.recent-list p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.35;display:-webkit-box;overflow:hidden}.recent-list strong{color:var(--ink);font-weight:700}@media (max-width:1200px){.dashboard,.dashboard--dashboard,.dashboard--page{grid-template-columns:220px minmax(0,1fr)}.dashboard:has(.sidebar.is-collapsed){grid-template-columns:78px minmax(0,1fr)}.page-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.table-toolbar{align-items:stretch}.table-filters{width:100%}.filter-search{min-width:0}.charts-row{grid-template-columns:200px minmax(0,1fr)}}@media (max-width:1000px){html{font-size:12px}.dashboard,.dashboard--dashboard,.dashboard--page{grid-template-columns:200px minmax(0,1fr)}.dashboard:has(.sidebar.is-collapsed){grid-template-columns:78px minmax(0,1fr)}}@media (max-width:900px){.detail-grid{grid-template-columns:1fr}.module-panel-head{flex-direction:column}.module-panel-copy{max-width:none}.module-panel-controls,.module-control-row{align-items:stretch;width:100%}.module-control-row{justify-content:flex-start}.filter-search{flex:100%;min-width:0;max-width:none}}@media (max-width:860px){html,body{overflow:auto}html{font-size:13px}.page{height:auto;min-height:100dvh;overflow:visible}.dashboard,.dashboard--page{grid-template-columns:1fr;height:auto;min-height:100dvh;overflow:visible}.page-stats{grid-template-columns:1fr 1fr}.page-header-top{flex-direction:column;align-items:stretch}.sidebar,.main,.right-panel{flex-direction:column;height:auto;display:flex;overflow:visible}.main{display:flex}.row,.card{height:auto}.stats{grid-template-columns:repeat(2,1fr)}.charts-row,.mid-row,.bottom-row,.notice-list{grid-template-columns:1fr}.activity-list li:nth-child(n+4),.message-list li:nth-child(n+4),.events-list li:nth-child(n+3),.recent-list li:nth-child(n+3){display:flex}.area-chart,.bar-chart{height:160px}.sidebar{border-bottom:1px solid #ffffff1f;border-right:none;max-height:42vh;padding-bottom:12px}.nav{flex-flow:column;gap:2px}.nav-item,.nav-section{padding:8px 10px;font-size:.8rem}.nav-children-inner{padding-left:8px}.right-panel{border-left:none;border-top:1px solid var(--line)}.main-header{flex-direction:row;align-items:center}}@media (max-width:560px){.stats{grid-template-columns:1fr}.donut-wrap{flex-direction:column}}.desktop-only-gate{display:none}@media (max-width:1099px){html,body{height:auto;min-height:100%;overflow:auto}.desktop-app{display:none!important}.desktop-only-gate{background:radial-gradient(circle at 0 0,#2f6bff1f,#0000 42%),radial-gradient(circle at 100% 100%,#10182814,#0000 40%),#f6f7fb;place-items:center;min-height:100dvh;padding:24px;display:grid}.desktop-only-card{text-align:center;background:#fff;border:1px solid #e4e7ec;border-radius:20px;width:min(420px,100%);padding:28px 24px;box-shadow:0 18px 40px #10182814}.desktop-only-icon{color:#fff;background:#101828;border-radius:16px;place-items:center;width:56px;height:56px;margin:0 auto 14px;display:grid}.desktop-only-icon .hgi-stroke{font-size:24px}.desktop-only-brand{letter-spacing:.04em;text-transform:uppercase;color:#667085;margin:0 0 8px;font-size:.85rem;font-weight:750}.desktop-only-card h1{letter-spacing:-.03em;color:#101828;margin:0 0 10px;font-size:1.6rem;font-weight:800}.desktop-only-card>p{color:#667085;margin:0 0 16px;font-size:.92rem;line-height:1.5}.desktop-only-card ul{text-align:left;flex-direction:column;gap:8px;list-style:none;display:flex}.desktop-only-card li{color:#344054;background:#f6f7fb;border-radius:12px;padding:10px 12px;font-size:.84rem;font-weight:600}}.auth-boot{color:#667085;background:radial-gradient(circle at 0 0,#2f6bff1f,#0000 42%),radial-gradient(circle at 100% 100%,#1018280f,#0000 40%),#f6f7fb;place-items:center;min-height:100vh;display:grid}.auth-boot-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border:1px solid #e4e7ec;border-radius:20px;flex-direction:column;align-items:center;gap:10px;width:min(280px,86vw);padding:28px 22px 24px;animation:.28s cubic-bezier(.22,1,.36,1) page-enter;display:flex;box-shadow:0 18px 40px #10182814}.auth-boot-mark{background:linear-gradient(145deg,#2f6bff 0%,#101828 100%);border-radius:14px;width:42px;height:42px;box-shadow:0 10px 20px #2f6bff47}.auth-boot-brand{letter-spacing:.06em;text-transform:uppercase;color:#344054;margin:0;font-size:.78rem;font-weight:750}.auth-boot-bar{background:#eef0f4;border-radius:999px;width:140px;height:3px;margin-top:4px;overflow:hidden}.auth-boot-bar span{border-radius:inherit;background:linear-gradient(90deg,#2f6bff,#5b8cff);width:42%;height:100%;animation:1.05s cubic-bezier(.4,0,.2,1) infinite auth-boot-slide;display:block}@keyframes auth-boot-slide{0%{transform:translate(-120%)}to{transform:translate(280%)}}.auth-boot-msg{color:#667085;margin:2px 0 0;font-size:.84rem;font-weight:550}.btn-spinner{vertical-align:-2px;border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.7s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.login-shell{--login-blue:#3b44f6;--login-blue-deep:#2a31d8;background:#fff;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:100dvh;animation:.5s both login-fade;display:grid;overflow:auto}@keyframes login-fade{0%{opacity:0}to{opacity:1}}.login-pane{background:#fff;flex-direction:column;justify-content:space-between;min-height:100dvh;padding:28px 40px 22px;display:flex}.login-brand{align-items:center;gap:12px;display:inline-flex}.login-brand-mark{background:radial-gradient(circle at 30% 30%,#93a0ff 0 18%,#0000 19%),conic-gradient(from 210deg,#3b44f6,#6f7bff,#2430d4,#3b44f6);border-radius:50%;place-items:center;width:36px;height:36px;display:grid;position:relative;box-shadow:0 8px 18px #3b44f647}.login-brand-mark span{opacity:.9;background:#fff;border-radius:50%;width:8px;height:8px;position:absolute}.login-brand-mark span:first-child{transform:translate(-6px,-2px)}.login-brand-mark span:nth-child(2){transform:translate(6px,-2px)}.login-brand-mark span:nth-child(3){transform:translateY(7px)}.login-brand strong{letter-spacing:-.02em;color:#101828;font-size:1.05rem;font-weight:800;display:block}.login-brand em{color:#667085;font-size:.72rem;font-style:normal;font-weight:650;display:block}.login-form{flex-direction:column;gap:14px;width:min(420px,100%);margin:0 auto;animation:.55s 80ms both login-rise;display:flex}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-heading{text-align:center;margin-bottom:8px}.login-heading h1{font-family:var(--font-login-display), var(--font);letter-spacing:-.03em;color:#101828;margin:0 0 8px;font-size:clamp(2rem,3vw,2.55rem);font-weight:700;line-height:1.1}.login-heading p{color:#667085;margin:0;font-size:.92rem;line-height:1.45}.login-field{color:#101828;flex-direction:column;gap:7px;font-size:.86rem;font-weight:700;display:flex}.login-field input,.login-password input{width:100%;font:inherit;color:#101828;background:#fff;border:1px solid #e4e7ec;border-radius:10px;padding:12px 14px;font-weight:500;transition:border-color .15s,box-shadow .15s}.login-field input:focus,.login-password input:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 4px #3b44f61f}.login-password{position:relative}.login-password input{padding-right:44px}.login-eye{color:#667085;cursor:pointer;border-radius:8px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-eye:hover{color:#101828;background:#f2f4f7}.login-meta{justify-content:space-between;align-items:center;gap:12px;margin-top:2px;display:flex}.login-remember{color:#344054;cursor:pointer;align-items:center;gap:8px;font-size:.84rem;font-weight:600;display:inline-flex}.login-remember input{width:16px;height:16px;accent-color:var(--login-blue)}.login-link{color:var(--login-blue);font-size:.84rem;font-weight:700;text-decoration:none}.login-link:hover{text-underline-offset:2px;text-decoration:underline}.login-error{color:#b42318;margin:0;font-size:.86rem;font-weight:650}.login-submit{background:linear-gradient(180deg, #4b53f8, var(--login-blue));color:#fff;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:13px 16px;font-size:.95rem;font-weight:750;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 10px 22px #3b44f647}.login-submit:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 14px 26px #3b44f657}.login-submit:disabled{opacity:.72;cursor:wait}.login-register{text-align:center;color:#667085;margin:6px 0 0;font-size:.86rem}.login-footer{color:#98a2b3;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;font-size:.75rem;display:flex}.login-footer a{color:#98a2b3;text-decoration:none}.login-footer a:hover{color:#667085}.login-showcase{color:#fff;background:radial-gradient(circle at 18% 20%,#ffffff29,#0000 28%),radial-gradient(circle at 88% 78%,#0f177873,#0000 36%),linear-gradient(160deg,#4a52f7 0%,#2f38e8 48%,#242db8 100%);border-radius:28px;flex-direction:column;justify-content:space-between;margin:16px;padding:42px 40px 28px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.login-showcase-glow{pointer-events:none;background:radial-gradient(circle,#ffffff2e,#0000 68%);border-radius:50%;width:70%;height:70%;position:absolute;inset:auto -18% -30% auto}.login-showcase-copy{z-index:1;max-width:34rem;position:relative}.login-showcase-copy h2{letter-spacing:-.03em;margin:0 0 12px;font-size:clamp(1.7rem,2.6vw,2.35rem);font-weight:800;line-height:1.15}.login-showcase-copy p{color:#ffffffd1;max-width:28rem;margin:0;font-size:.95rem;line-height:1.5}.login-preview{z-index:1;gap:12px;margin-top:28px;animation:5.5s ease-in-out infinite login-float;display:grid;position:relative}@keyframes login-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-preview-top,.login-preview-mid{grid-template-columns:1.1fr .9fr;gap:12px;display:grid}.login-preview article{color:#101828;background:#fffffff5;border-radius:16px;padding:14px 16px;box-shadow:0 18px 40px #1018282e}.login-preview article>span{color:#667085;margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.login-preview article>strong{letter-spacing:-.03em;font-size:1.45rem;font-weight:800;display:block}.login-preview article>em{color:#12b76a;margin-top:4px;font-size:.72rem;font-style:normal;font-weight:700;display:block}.login-bars{align-items:flex-end;gap:8px;height:78px;margin-top:8px;display:flex}.login-bars i{background:linear-gradient(#8b93ff,#3b44f6);border-radius:8px 8px 4px 4px;flex:1;display:block}.login-preview-gauge{position:relative;overflow:hidden}.login-ring{background:conic-gradient(#3b44f6 0 84%, #e4e7ec 84% 100%);border-radius:50%;width:96px;height:96px;position:absolute;bottom:-18px;right:-10px;-webkit-mask:radial-gradient(circle,#0000 52%,#000 53%);mask:radial-gradient(circle,#0000 52%,#000 53%)}.login-preview-table ul{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.login-preview-table li{border-top:1px solid #eef2f6;justify-content:space-between;gap:12px;padding:8px 0;font-size:.78rem;display:flex}.login-preview-table li b{font-weight:750}.login-preview-table li em{color:#667085;font-style:normal;font-weight:600}@media (max-width:980px){.login-shell{grid-template-columns:1fr}.login-showcase{order:-1;min-height:420px;margin:12px}.login-pane{gap:36px;min-height:auto;padding:20px 20px 28px}.login-preview-top,.login-preview-mid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.login-showcase-copy h2{font-size:1.45rem}.login-preview-top,.login-preview-mid{grid-template-columns:1fr}}.auth-error{color:#b42318;margin:0;font-size:.86rem;font-weight:600}.env-settings-form{border-bottom:1px solid var(--line);background:#fbfcfe;gap:12px 14px;padding:16px;display:grid}.env-settings-form>label{color:#344054;flex-direction:column;gap:6px;min-width:0;display:flex}.env-settings-form>label>span{letter-spacing:.03em;text-transform:uppercase;color:#667085;font-size:.72rem;font-weight:700;line-height:1.2}.env-settings-form input,.env-settings-form select{width:100%;min-width:0;font:inherit;color:#101828;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font-weight:550}.env-settings-form input:focus,.env-settings-form select:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 3px #2f6bff24}.marks-panel{flex-direction:column;min-height:0;display:flex}.marks-filters{border-bottom:1px solid var(--line);background:#fbfcfe;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;padding:16px;display:grid}.marks-field{flex-direction:column;gap:6px;min-width:0;display:flex}.marks-field>span{letter-spacing:.03em;text-transform:uppercase;color:#667085;font-size:.72rem;font-weight:700}.marks-field input,.marks-field select{width:100%;min-width:0;font:inherit;color:#101828;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font-weight:550}.marks-field input:focus,.marks-field select:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 3px #2f6bff24}.marks-learner{color:#101828;font-size:.92rem;font-weight:700;display:block}.marks-ref{color:#98a2b3;margin-top:2px;font-size:.74rem;font-style:normal;font-weight:600;display:block}.marks-score-col{width:140px}.marks-score-input,.page-table select,.data-table select{width:100%;max-width:160px;font:inherit;color:#101828;background:#fff;border:1px solid #d0d5dd;border-radius:10px;padding:9px 12px;font-weight:650}.marks-score-input:focus,.page-table select:focus,.data-table select:focus{border-color:#84a9ff;outline:none;box-shadow:0 0 0 3px #2f6bff24}@media (max-width:900px){.marks-filters{grid-template-columns:1fr 1fr}}@media (max-width:640px){.marks-filters{grid-template-columns:1fr}.marks-score-col{width:110px}}.auth-denied{background:#fff;border:1px solid #e4e7ec;border-radius:16px;flex-direction:column;gap:12px;max-width:520px;margin:0 24px 24px;padding:20px;display:flex}.auth-denied p{color:#667085;margin:0;font-size:.9rem}.sidebar-footer--schoolos .sidebar-user-meta{padding:8px 12px 4px}.sidebar.is-collapsed .sidebar-user-meta{display:none}.header-perm-count{color:#667085;font-size:.78rem;margin:0 0 8px!important}.print-overlay{z-index:2400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#10182873;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.print-dialog{background:#fff;border:1px solid #e4e7ec;border-radius:18px;flex-direction:column;width:min(920px,100%);max-height:min(90vh,920px);display:flex;overflow:hidden;box-shadow:0 24px 60px #10182838}.print-dialog-head{background:#f9fafb;border-bottom:1px solid #eef0f4;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.print-dialog-head h2{margin:0;font-size:1.05rem}.print-kicker{letter-spacing:.04em;text-transform:uppercase;color:#667085;margin:0 0 2px;font-size:.72rem;font-weight:700}.print-dialog-actions{flex-wrap:wrap;gap:8px;display:flex}.print-sheet-wrap{background:#eef0f4;padding:18px;overflow:auto}.print-sheet{color:#101828;background:#fff;border-radius:12px;max-width:760px;margin:0 auto;padding:28px 30px;box-shadow:0 8px 24px #10182814}.print-letterhead{align-items:flex-start;gap:14px;display:flex}.print-logo{object-fit:cover;border-radius:14px;flex-shrink:0;width:64px;height:64px;box-shadow:0 6px 14px #2f6bff40}.print-letterhead-copy{flex:1;min-width:0}.print-sheet .school{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:800}.print-levels{color:#2f6bff;margin:2px 0 8px;font-size:.8rem;font-weight:650}.print-contact-grid{color:#475467;grid-template-columns:1fr 1fr;gap:3px 14px;font-size:.78rem;display:grid}.print-contact-grid strong{color:#101828;margin-right:4px;font-weight:700}.print-sheet .rule{border:0;border-top:2px solid #2f6bff;margin:14px 0 16px}.print-sheet .title{margin:0;font-size:1.35rem;font-weight:750}.print-sheet .heading-strong{margin:6px 0 0;font-size:1.05rem;font-weight:700}.print-sheet .sub{color:#667085;margin:4px 0 14px;font-size:.82rem}.print-sheet table{border-collapse:collapse;width:100%;margin:8px 0 14px;font-size:.86rem}.print-sheet th,.print-sheet td{text-align:left;vertical-align:top;border:1px solid #e4e7ec;padding:8px 10px}.print-sheet th{background:#f6f7fb;font-weight:700}.print-sheet .label{background:#fcfcfd;width:28%;font-weight:650}.print-sheet h2{margin:14px 0 6px;font-size:.95rem}.print-sheet .comment{background:#f9fafb;border:1px solid #e4e7ec;border-radius:10px;padding:10px 12px;font-size:.86rem}.print-sheet .comment p{margin:4px 0 0}.print-signatures{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px;display:grid}.print-sign-line{background:#98a2b3;height:1px;margin-bottom:6px;display:block}.print-signatures em{color:#667085;font-size:.75rem;font-style:normal}.print-sheet .footer{color:#98a2b3;margin:22px 0 0;font-size:.72rem}@media print{@page{margin:12mm}html,body{background:#fff!important;height:auto!important;overflow:visible!important}body.is-printing *{visibility:hidden!important}body.is-printing .print-sheet,body.is-printing .print-sheet *{visibility:visible!important}body.is-printing .print-overlay,body.is-printing .print-dialog,body.is-printing .print-sheet-wrap{width:auto!important;max-height:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important;border:0!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}body.is-printing .no-print,body.is-printing .print-dialog-head{display:none!important}body.is-printing .print-sheet{width:100%!important;max-width:none!important;box-shadow:none!important;border-radius:0!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important}body.is-printing .print-logo{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}}.student360-hero{flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px;display:flex}.student360-avatar{color:#fff;background:linear-gradient(145deg,#2f6bff,#101828);border-radius:18px;flex-shrink:0;place-items:center;width:64px;height:64px;font-size:1.1rem;font-weight:800;display:grid}.student360-copy{flex:1;min-width:220px}.student360-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 8px;display:grid}.student360-stats article{box-shadow:var(--shadow);background:#fff;border:1px solid #eef0f4;border-radius:14px;padding:12px 14px}.student360-stats span{color:#667085;font-size:.75rem;font-weight:650;display:block}.student360-stats strong{margin-top:4px;font-size:1.35rem;display:block}.student360-list{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.student360-list li{background:#f9fafb;border:1px solid #eef0f4;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.student360-list strong{font-size:.92rem}.student360-list span{color:#667085;font-size:.8rem}@media (max-width:900px){.student360-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
