@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2)format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/manrope-latin-700-normal-BZp_XxE4.woff2)format("woff2"),url(/assets/manrope-latin-700-normal-DGRFkw-m.woff)format("woff")}:root{color:#152b56;font-synthesis:none;text-rendering:optimizelegibility;--primary:#152b56;--primary-dark:#102244;--brand-accent:#3b82f6;--brand-support:#9cc7ff;--surface:#fff;--text:#152b56;--border:#d8e2f0;--panel-radius:20px;--control-radius:14px;--panel-shadow:0 12px 32px #152b5611;--button-shadow:0 7px 16px #152b5629;background:#f3f6fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}:is(h1,h2,h3){font-family:Manrope,Inter,ui-sans-serif,system-ui,sans-serif}:focus-visible{outline-offset:3px;outline:3px solid #3b82f6}*{scrollbar-color:#9cc7ff #f3f6fb;scrollbar-width:thin}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:#f3f6fb}::-webkit-scrollbar-thumb{background:#9cc7ff;border:3px solid #f3f6fb;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#3b82f6}@media (forced-colors:active){*{scrollbar-color:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.skip-link{background:var(--surface);z-index:10;padding:10px 14px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:10px}.topbar{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:20px clamp(20px,5vw,72px);display:flex}.brand-logo{width:142px;height:auto;display:block;transform:translateY(-11%)}.brand-product{border-left:1px solid var(--border);color:var(--primary);padding-left:12px;font-size:14px;font-weight:600}.environment-badge{color:#314f83;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#f1f5fb;border:1px solid #d5dff0;border-radius:999px;margin-left:auto;padding:5px 10px;font-size:11px;font-weight:750}.access-layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:center;gap:clamp(32px,6vw,92px);width:min(1120px,100%);margin:auto;padding:72px clamp(20px,5vw,48px);display:grid}.access-layout--workspace{grid-template-columns:minmax(190px,250px) minmax(0,1fr);align-items:start;gap:36px;width:min(1280px,100%)}.access-layout--workspace .access-card{min-width:0}.access-layout--workspace:has(.students-workspace){max-width:1280px;padding-top:46px;display:block}.access-layout--workspace:has(.students-workspace) .access-intro{display:none}.access-layout--workspace:has(.students-workspace) .access-card{box-shadow:none;background:0 0;border:0;padding:0}.access-layout--workspace:has(.portal-workspace){max-width:1120px;padding-top:46px;display:block}.access-layout--workspace:has(.portal-workspace) .access-intro{display:none}.access-layout--workspace:has(.portal-workspace) .access-card{box-shadow:none;background:0 0;border:0;padding:0}.eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin:0 0 20px;font-size:13px;font-weight:700}h1{color:var(--text);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(34px,5vw,56px);line-height:1.08}.description{color:#475467;max-width:560px;margin:24px 0 0;font-size:18px;line-height:1.6}.access-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:clamp(24px,4vw,36px);box-shadow:0 8px 28px #1720330a}.access-card h2{color:var(--text);margin:0;font-size:25px;line-height:1.25}.form-help{color:#475467;margin:10px 0 24px;line-height:1.55}.development-notice{color:#713f12;background:#fffaeb;border:1px solid #f3c465;border-radius:10px;margin:0 0 24px;padding:14px 16px;line-height:1.5}.access-card form{gap:8px;display:grid}.access-card label{color:var(--text);margin-top:10px;font-size:14px;font-weight:650}.access-card input,.access-card select{background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border:1px solid #98a2b3;border-radius:8px;padding:10px 12px}.access-card input:focus,.access-card select:focus{border-color:var(--primary)}.access-card button:not(.text-button){color:#fff;background:var(--primary);min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:8px;margin-top:20px;padding:10px 16px;font-weight:650}.access-card button:disabled{opacity:.6;cursor:wait}.access-card button:not(.text-button):not(:disabled):hover{background:var(--primary-dark)}.text-button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:14px 0 0;font-weight:600}.totp-secret{color:var(--primary-dark);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#eaf1ff;border-radius:8px;margin-top:14px;padding:12px;font:600 15px ui-monospace,monospace;display:block}.form-error{color:#912018;background:#fef3f2;border:1px solid #fda29b;border-radius:8px;margin:18px 0 0;padding:12px;line-height:1.5}.status{border:1px solid var(--border);color:var(--text);background:#f7f9fc;border-radius:10px;padding:16px;line-height:1.5}.home-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.home-actions button{flex:180px}.access-card .home-actions button{margin-top:0}.structure-sections{gap:24px;display:grid}.structure-section{border-top:1px solid var(--border);padding-top:20px}.structure-section h3{color:var(--text);margin:0 0 14px}.structure-form{grid-template-columns:minmax(130px,1fr) minmax(0,2fr);align-items:center;gap:10px 16px;display:grid}.structure-form label{margin:0}.structure-form button{grid-column:2;justify-self:start}.structure-list{border-top:1px solid var(--border);margin:0 0 18px;padding:0;list-style:none}.structure-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;display:flex}.structure-list li span{color:#475467}.structure-list .text-button{margin-left:auto;padding:0}.structure-pagination{color:#475467;align-items:center;gap:16px;margin:0 0 18px;font-size:13px;display:flex}.structure-pagination .text-button{padding:0}.invite-list{border-top:1px solid var(--border);margin:12px 0;padding:0;list-style:none}.invite-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.invite-list li div{overflow-wrap:anywhere;gap:3px;min-width:0;display:grid}.invite-list li .invite-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.invite-list li span{color:#475467;font-size:13px}.invite-list .text-button{padding:8px}.invite-pages{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.invite-pages .text-button{padding:10px 0}.students-workspace{width:100%}.workspace-heading{justify-content:space-between;align-items:start;gap:24px;margin-bottom:24px;display:flex}.workspace-heading .eyebrow{margin-bottom:8px}.workspace-heading h1,.workspace-heading h2{letter-spacing:-.035em;font-size:clamp(30px,3.3vw,42px)}.workspace-heading .form-help{margin:8px 0 0}.workspace-heading .text-button{white-space:nowrap;padding-top:4px}.students-grid{grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);align-items:start;gap:22px;display:grid}.workspace-stack{gap:22px;display:grid}.workspace-panel{border:1px solid var(--border);background:#fff;border-radius:16px;min-width:0;padding:24px;box-shadow:0 6px 22px #17203309}.platform-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid}.platform-summary>div{border:1px solid var(--border);border-left:4px solid var(--primary);background:var(--surface);border-radius:12px;gap:7px;padding:20px 24px;display:grid}.platform-summary span{color:#475467;font-size:14px}.platform-summary strong{color:var(--text);font-size:clamp(28px,4vw,38px);line-height:1}.platform-grid{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start;gap:22px;display:grid}.platform-invite h2{margin:0}.platform-invite .form-help{margin-bottom:18px}.platform-invite .workspace-success{margin:18px 0 0}.platform-directory .panel-heading{align-items:center}.platform-directory .panel-heading h2{color:var(--text);margin:0;font-size:22px}.platform-directory .panel-heading .text-button{white-space:nowrap;padding:8px 0}.platform-directory .panel-heading .text-button:disabled{opacity:.55;cursor:wait}.platform-school-list{margin:0;padding:0;list-style:none}.platform-school-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:20px;padding:18px 0;display:flex}.platform-school-list li:last-child{border-bottom:0}.platform-school-main{gap:5px;min-width:0;display:grid}.platform-school-main strong{color:var(--text);overflow-wrap:anywhere;font-size:16px}.platform-school-main span{color:#475467;overflow-wrap:anywhere;font-size:13px}.platform-school-count{text-align:right;align-content:center;justify-items:end;gap:2px;min-width:118px;display:grid}.platform-school-count strong{color:var(--primary-dark);font-size:27px;line-height:1}.platform-school-count span,.platform-school-count small{color:#475467;font-size:12px}.platform-empty{color:#475467;margin:22px 0 0;line-height:1.5}.panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:16px;padding-bottom:18px;display:flex}.panel-heading h3{color:var(--text);letter-spacing:-.025em;margin:5px 0 0;font-size:22px}.panel-kicker{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.panel-count{color:#667085;white-space:nowrap;font-size:12px}.search-form{margin:18px 0}.search-form label{margin:0 0 7px;display:block}.search-form>div{gap:8px;display:flex}.access-card .search-form button{min-width:82px;margin:0}.student-list{margin:0;padding:0;list-style:none}.student-list li{border-bottom:1px solid var(--border);align-items:center;gap:13px;min-width:0;padding:15px 0;display:flex}.student-list li:last-child{border-bottom:0}.student-avatar{height:38px;color:var(--primary-dark);background:#eaf1ff;border-radius:12px;flex:0 0 38px;place-items:center;font-weight:800;display:grid}.student-list li>div{flex:1;gap:3px;min-width:0;display:grid}.student-list strong{overflow-wrap:anywhere;font-size:14px}.student-list li>div span{color:#667085;font-size:12px}.student-list .text-button{flex:none;padding:8px;font-size:13px}.workspace-form{padding-top:12px}.workspace-form label{margin-top:8px}.access-card .workspace-form button{margin-top:16px}.enrollments-panel{grid-column:1/-1}.enrollments-panel .student-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid}.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;display:grid}.portal-student h4{color:var(--text);margin:22px 0 8px}.portal-enrollments{margin:0;padding:0;list-style:none}.portal-enrollments li{border-top:1px solid var(--border);gap:4px;padding:14px 0;display:grid}.portal-enrollments li strong{color:var(--text)}.portal-enrollments li span,.portal-enrollments li small{color:#667085}.portal-attendance{margin-top:3px}.portal-attendance .text-button{width:fit-content;padding:4px 0}.portal-attendance-detail{background:#f6f8fc;border-radius:12px;margin-top:8px;padding:14px}.portal-attendance-detail ul{margin:0;padding:0;list-style:none}.portal-attendance-detail li{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.portal-attendance-detail li:first-child{border-top:0}.portal-attendance-detail time{color:#596579}.workspace-success{color:#14532d;background:#f0fbf4;border-color:#a6d9bc;margin-bottom:22px}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;display:grid}.report-actions{flex-wrap:wrap;gap:10px;margin:12px 0;display:flex}.report-actions button{margin:0}.grade-row{grid-template-columns:minmax(0,1fr) minmax(100px,150px);align-items:end;gap:16px;margin:10px 0;display:grid}.grade-row label{overflow-wrap:anywhere;min-width:0}.grade-row input{margin:0}.schedule-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.schedule-fields>div{gap:7px;min-width:0;display:grid}.schedule-fields label{margin-top:8px}.schedule-list-panel{grid-column:1/-1}.schedule-list-panel .student-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid}.schedule-day{height:38px;color:var(--primary-dark);text-transform:uppercase;background:#eaf1ff;border-radius:10px;flex:0 0 42px;place-items:center;font-size:11px;font-weight:800;display:grid}.conflict-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.conflict-comparison>div{border:1px solid var(--border);background:#f7f9fc;border-radius:10px;min-width:0;padding:16px}.conflict-comparison h4{color:var(--text);margin:0 0 10px;font-size:14px}.conflict-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;margin:0;font-size:12px;overflow:auto}footer{color:#667085;padding:24px clamp(20px,5vw,72px);font-size:13px}button,input{touch-action:manipulation}.app-shell--login{background:#b4c7e5;height:100dvh;min-height:0;padding:clamp(10px,2vw,24px);overflow:auto}.access-layout--login{background:linear-gradient(145deg,#f3f6fb 5%,#edf3fc 62%,#deecff 100%);border-radius:clamp(24px,3vw,48px);grid-template-columns:minmax(360px,44%) minmax(0,1fr);align-items:stretch;gap:0;width:min(1680px,100%);height:100%;min-height:0;margin:auto;padding:clamp(10px,1.4vw,20px);position:relative;overflow:hidden;box-shadow:0 20px 55px #152b5626}.access-layout--login:focus-visible{outline:3px solid var(--primary);outline-offset:-5px}.access-layout--login .access-intro{display:none}.access-layout--login .access-card{min-width:0;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;padding:18px clamp(24px,4vw,62px) 20px;display:flex;position:relative}.login-brand{background:#ffffff73;border:1px solid #152b563d;border-radius:100px;align-self:flex-start;align-items:center;padding:6px 12px;display:inline-flex}.login-brand img{width:112px;height:auto;display:block;transform:translateY(-11%)}.login-content{width:min(100%,440px);margin:auto}.login-heading{text-align:center;margin-bottom:14px}.login-kicker{color:var(--primary);letter-spacing:.13em;text-transform:uppercase;font-size:12px;font-weight:750}.access-layout--login .login-heading h2{color:var(--text);letter-spacing:-.05em;margin-top:5px;font-size:clamp(28px,2.8vw,38px);font-weight:600;line-height:1.1}.access-layout--login .login-heading .form-help{color:#475467;margin:6px 0 0;font-size:14px;line-height:1.35}.access-layout--login .login-form{gap:3px}.access-layout--login .login-form label{color:#475467;margin-top:7px;font-size:13px;font-weight:600}.access-layout--login .login-form input{min-height:46px;color:var(--text);background:#ffffffd9;border:1px solid #152b561c;border-radius:100px;padding:10px 18px;font-size:16px}.access-layout--login .login-form input::placeholder{color:#818da0}.access-layout--login .login-form input:focus{border-color:var(--brand-accent);outline-offset:1px;outline:3px solid #3b82f638}.login-password{position:relative}.login-password input{padding-right:100px!important}.access-layout--login .access-card .login-password-toggle{min-height:38px;color:var(--primary-dark);background:0 0;border-radius:100px;margin:0;padding:6px 10px;font-size:12px;font-weight:700;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.access-layout--login .access-card button.login-password-toggle:not(:disabled):hover{color:var(--primary-dark);background:#3b82f61a}.access-layout--login .access-card .login-form>button[type=submit]{background:var(--primary);color:#fff;min-height:50px;box-shadow:0 7px 14px #152b562b, inset 0 -3px 0 var(--brand-accent);border-radius:100px;margin-top:13px;font-size:16px;font-weight:700}.access-layout--login .access-card .login-form>button[type=submit]:not(:disabled):hover{background:var(--primary-dark)}.login-links{text-align:center;flex-wrap:wrap;justify-content:center;gap:0 16px;margin-top:8px;display:flex}.access-layout--login .login-links .text-button{color:var(--primary-dark);text-underline-offset:3px;padding:4px 0;font-size:12px;text-decoration:underline}.access-layout--login .login-links .text-button:hover{color:var(--primary)}.login-footnote{color:#64748b;text-align:center;margin:11px 0 0;font-size:11px}.login-media{background:var(--primary);border-radius:clamp(24px,3vw,42px);min-width:0;min-height:0;position:relative;overflow:hidden}.login-media:after{content:"";pointer-events:none;background:linear-gradient(#152b566b,#152b560a 42%,#152b5647);position:absolute;inset:0}.login-media img{object-fit:cover;object-position:center 38%;width:100%;height:100%;display:block}.login-media-top,.login-media-bottom{z-index:1;-webkit-backdrop-filter:blur(18px);gap:3px;display:grid;position:absolute}.login-media-top{border-left:5px solid var(--brand-accent);background:var(--primary);color:#fff;border-radius:18px;max-width:260px;padding:16px 20px;top:34px;left:34px;box-shadow:13px 12px #152b56cc}.login-media-top span{font-size:13px}.login-media-top strong{letter-spacing:-.02em;font-size:16px}.login-media-bottom{max-width:390px;color:var(--primary);background:#ffffffdb;border:1px solid #ffffff61;border-radius:20px;padding:19px 22px;bottom:30px;left:30px;right:30px;box-shadow:0 16px 35px #152b5633}.login-media-bottom span{text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700}.login-media-bottom strong{letter-spacing:-.02em;font-size:18px;line-height:1.3}@media (width<=900px){.access-layout--login{grid-template-columns:minmax(340px,47%) minmax(0,1fr)}.access-layout--login .access-card{padding-inline:26px}}@media (width<=760px){.app-shell--login{padding:8px}.access-layout--login{border-radius:28px;flex-direction:column;padding:10px;display:flex;overflow:auto}.access-layout--login .access-card{flex:1;padding:16px clamp(14px,5vw,28px)}.login-content{margin:auto}.login-media{display:none}.login-heading{margin-bottom:16px}}@media (width<=390px){.login-links{gap:0 10px}}@media (width<=760px) and (height<=600px){.access-layout--login .access-card{padding-block:8px}.login-brand{padding:4px 9px}.login-brand img{width:96px}.login-kicker,.login-footnote{display:none}.login-heading{margin-bottom:8px}.access-layout--login .login-heading h2{margin-top:0;font-size:25px}.access-layout--login .login-heading .form-help{font-size:13px}.access-layout--login .login-form label{margin-top:4px}.access-layout--login .login-form input{min-height:42px}.access-layout--login .access-card .login-form>button[type=submit]{min-height:46px;margin-top:8px}.login-links{margin-top:4px}.access-layout--login .login-links .text-button{padding:2px 0}}@media (height<=650px) and (width>=761px){.access-layout--login .access-card{padding-block:10px}.login-heading{margin-bottom:8px}.login-kicker,.login-footnote{display:none}}@media (width<=760px){.access-layout,.access-layout--workspace{grid-template-columns:1fr;gap:32px;padding-block:40px}.brand-logo{width:116px}.brand-product{font-size:12px}.structure-form{grid-template-columns:1fr}.structure-form button{grid-column:1}}@media (width<=880px){.students-grid,.enrollments-panel .student-list,.platform-grid{grid-template-columns:1fr}}@media (width<=760px){.portal-grid{grid-template-columns:1fr}}@media (width<=880px){.schedule-grid,.schedule-list-panel .student-list,.conflict-comparison{grid-template-columns:1fr}}@media (width<=560px){.workspace-heading{display:block}.workspace-panel{padding:18px}.student-list li{flex-wrap:wrap}.student-list .text-button{margin-left:50px}.platform-summary>div{padding:16px}.platform-school-list li{flex-wrap:wrap}.platform-school-count{text-align:left;justify-items:start}}@media (width<=760px){.app-shell--login .access-layout--login{gap:0;padding:12px}}.app-shell:not(.app-shell--login){background:radial-gradient(55% 340px at 93% 0,#9cc7ff3d,#0000 80%),#f3f6fb}.app-shell:not(.app-shell--login) .topbar{background:linear-gradient(105deg,#fff 45%,#f5f9ff);box-shadow:0 4px 18px #152b560b}.app-shell:not(.app-shell--login) .environment-badge{color:var(--primary);background:#ecf4ff;border-color:#c5d8f5}.app-shell:not(.app-shell--login) .access-layout{padding-block:clamp(28px,4vw,58px)}.app-shell:not(.app-shell--login) .access-intro{border-left:3px solid var(--brand-accent);padding-left:18px}.app-shell:not(.app-shell--login) .access-card{border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);background:linear-gradient(155deg,#fff 72%,#f8fbff)}:is(.app-shell:not(.app-shell--login) .access-layout--workspace:has(.students-workspace) .access-card,.app-shell:not(.app-shell--login) .access-layout--workspace:has(.portal-workspace) .access-card){box-shadow:none;background:0 0;border-radius:0}.app-shell:not(.app-shell--login) .workspace-panel{border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);background:linear-gradient(155deg,#fff 80%,#fafcff)}.app-shell:not(.app-shell--login) .workspace-heading .eyebrow{color:var(--primary);margin-bottom:10px}.app-shell:not(.app-shell--login) .workspace-heading h1,.app-shell:not(.app-shell--login) .workspace-heading h2{color:var(--primary)}.app-shell:not(.app-shell--login) .platform-summary>div{border-left-color:var(--brand-accent);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);background:linear-gradient(135deg,#fff 65%,#edf5ff)}.app-shell:not(.app-shell--login) .platform-summary strong{font-family:Manrope,Inter,sans-serif}.app-shell:not(.app-shell--login) .panel-heading{border-bottom-color:#d8e2f0}.app-shell:not(.app-shell--login) .panel-kicker{color:var(--primary)}.app-shell:not(.app-shell--login) .access-card :is(input,select,textarea){border-radius:var(--control-radius);background:#fcfdff;border-color:#8798b1;transition:border-color .16s,box-shadow .16s,background-color .16s}.app-shell:not(.app-shell--login) .access-card :is(input,select,textarea):focus-visible{border-color:var(--brand-accent);background:#fff;outline:0;box-shadow:0 0 0 4px #3b82f624}.app-shell:not(.app-shell--login) .access-card textarea{width:100%;min-height:110px;font:inherit;color:var(--text);resize:vertical;padding:12px}.app-shell:not(.app-shell--login) .access-card button:not(.text-button){border-radius:var(--control-radius);box-shadow:var(--button-shadow), inset 0 -2px 0 var(--brand-accent);transition:transform .16s,box-shadow .16s,background-color .16s}.app-shell:not(.app-shell--login) .access-card button:not(.text-button):not(:disabled):hover{box-shadow:0 10px 20px #152b5633, inset 0 -2px 0 var(--brand-accent);transform:translateY(-1px)}.app-shell:not(.app-shell--login) .access-card button:not(.text-button):not(:disabled):active{box-shadow:0 3px 8px #152b5626, inset 0 -2px 0 var(--brand-accent);transform:translateY(0)}.app-shell:not(.app-shell--login) .access-card button.secondary-button{color:var(--primary);box-shadow:none;background:#edf5ff;border:1px solid #c5d8f5}.app-shell:not(.app-shell--login) .access-card button.secondary-button:not(:disabled):hover{background:#dfecff;box-shadow:0 5px 14px #152b5614}.app-shell:not(.app-shell--login) .text-button:not(:disabled):hover{color:var(--primary-dark);text-underline-offset:3px;text-decoration:underline}.app-shell:not(.app-shell--login) .status:not(.workspace-success){border-left:3px solid var(--brand-accent);border-radius:var(--control-radius);background:#f2f7ff}.app-shell:not(.app-shell--login) .status.workspace-success,.app-shell:not(.app-shell--login) .form-error,.app-shell:not(.app-shell--login) .development-notice{border-radius:var(--control-radius)}.app-shell:not(.app-shell--login) .portal-attendance-detail{background:linear-gradient(145deg,#f4f8ff,#fff)}.app-shell:not(.app-shell--login) .home-actions{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.app-shell:not(.app-shell--login) .home-actions button{text-align:left;width:100%;min-height:54px;margin:0}@media (width<=760px){.app-shell:not(.app-shell--login) .access-intro{padding-left:14px}.app-shell:not(.app-shell--login) .access-layout{padding-block:28px}}.app-shell.app-shell--onboarding{height:100dvh;min-height:0;overflow:auto}.app-shell--onboarding footer{display:none}.app-shell.app-shell--onboarding .access-layout--onboarding{grid-template-columns:minmax(0,.85fr) minmax(480px,1.15fr);align-items:center;gap:clamp(26px,4vw,56px);width:min(1180px,100%);height:100%;min-height:0;padding:clamp(12px,2.5vh,28px) clamp(18px,4vw,48px)}.app-shell.app-shell--onboarding .access-intro{border-left:0;padding-left:0}.app-shell--onboarding .access-intro h1{max-width:520px;font-size:clamp(36px,4.2vw,58px)}.app-shell--onboarding .access-intro .description{margin-top:18px;font-size:16px;line-height:1.5}.onboarding-intro-brand{margin-bottom:clamp(28px,6vh,62px)}.onboarding-intro-brand img{width:160px;height:auto;display:block;transform:translateY(-11%)}.app-shell.app-shell--onboarding .access-card{padding:clamp(18px,3vh,28px) clamp(20px,3vw,34px)}.onboarding-content .onboarding-brand{display:none}.onboarding-step{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:800}.app-shell--onboarding .onboarding-content h2{font-size:clamp(25px,2.4vw,31px)}.onboarding-content .form-help{margin:6px 0 14px;font-size:14px;line-height:1.4}.app-shell--onboarding .onboarding-form{gap:0}.onboarding-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.onboarding-field{align-content:start;gap:5px;min-width:0;display:grid}.onboarding-field--wide{grid-column:1/-1}.app-shell--onboarding .onboarding-field label{margin:0;font-size:13px}.app-shell--onboarding .onboarding-field input{min-width:0;min-height:43px;padding:8px 11px;font-size:15px}.app-shell--onboarding .onboarding-form>button{min-height:46px;margin-top:16px}.app-shell--onboarding .onboarding-content .form-error{margin:10px 0 0;padding:9px 11px;font-size:13px;line-height:1.35}.onboarding-back{flex-wrap:wrap;justify-content:space-between;gap:0 14px;margin-top:8px;display:flex}.app-shell--onboarding .onboarding-back .text-button{padding:4px 0;font-size:13px}@media (width<=850px){.app-shell.app-shell--onboarding .access-layout--onboarding{justify-content:center;max-width:640px;padding:12px 18px;display:flex}.app-shell.app-shell--onboarding .access-intro{display:none}.app-shell.app-shell--onboarding .access-card{width:100%}.onboarding-content .onboarding-brand{margin-bottom:10px;display:block}.onboarding-brand img{width:106px;height:auto;display:block;transform:translateY(-11%)}}@media (width<=560px){.app-shell.app-shell--onboarding .access-layout--onboarding{padding:8px 12px}.app-shell.app-shell--onboarding .access-card{padding:16px 18px}.onboarding-fields{grid-template-columns:1fr;gap:8px}.onboarding-field--wide{grid-column:auto}}@media (height<=650px){.app-shell.app-shell--onboarding .access-layout--onboarding{padding-block:7px}.app-shell.app-shell--onboarding .access-card{padding-block:12px}.onboarding-intro-brand{margin-bottom:18px}.onboarding-content .onboarding-brand{margin-bottom:5px}.onboarding-content .form-help{margin-bottom:9px;font-size:13px}.onboarding-fields{gap:6px 12px}.onboarding-field{gap:3px}.app-shell--onboarding .onboarding-field input{min-height:38px;padding-block:6px}.app-shell--onboarding .onboarding-form>button{min-height:42px;margin-top:10px}.onboarding-back{margin-top:5px}}@media (height<=600px){.app-shell--onboarding .onboarding-content:has(.form-error) .form-help{display:none}}.app-shell.app-shell--authenticated{grid-template-rows:66px minmax(0,1fr);grid-template-columns:264px minmax(0,1fr);min-width:0;display:grid}.app-shell--authenticated .topbar--workspace{grid-area:1/2;gap:10px;min-width:0;padding:0 clamp(22px,3vw,44px)}.workspace-topbar-context{color:#5e6f86;text-overflow:ellipsis;white-space:nowrap;max-width:min(35vw,360px);font-size:13px;font-weight:600;overflow:hidden}.workspace-topbar-divider{color:#9aabc4}.workspace-topbar-title{min-width:0;color:var(--primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.app-shell--authenticated .environment-badge{margin-left:auto}.app-shell.app-shell--authenticated .access-layout--authenticated{grid-area:2/2;width:min(1460px,100%);min-width:0;max-width:none;margin:0 auto;padding:clamp(24px,3vw,42px) clamp(22px,3vw,44px) 64px;display:block}.app-shell.app-shell--authenticated .access-layout--authenticated .access-card{min-width:0}.app-shell.app-shell--authenticated .access-layout--authenticated:has(.workspace-overview) .access-card{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.workspace-menu-trigger,.workspace-menu-close,.workspace-menu-scrim{display:none}.workspace-sidebar{z-index:30;background:var(--primary);color:#fff;flex-direction:column;width:264px;min-height:0;padding:24px 14px 18px;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:5px 0 22px #152b5612}.workspace-sidebar-brand{align-items:center;min-height:48px;padding:0 13px;display:flex}.workspace-sidebar-brand img{filter:brightness(0)invert();width:128px;height:auto;display:block;transform:translateY(-11%)}.workspace-sidebar-school{background:#ffffff12;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:11px;min-width:0;margin:22px 4px 16px;padding:11px;display:flex}.workspace-sidebar-school-mark{background:#3b82f6;border-radius:10px;flex:0 0 36px;place-items:center;height:36px;font-family:Manrope,Inter,sans-serif;font-size:16px;font-weight:750;display:grid}.workspace-sidebar-school>span:last-child,.workspace-sidebar-user>span:last-child{gap:2px;min-width:0;display:grid}.workspace-sidebar-school strong,.workspace-sidebar-user strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;overflow:hidden}.workspace-sidebar-school small,.workspace-sidebar-user small{color:#bdd0ee;font-size:11px}.workspace-sidebar-nav{scrollbar-width:thin;scrollbar-color:#7189af transparent;flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow-y:auto}.workspace-nav-group{gap:2px;display:grid}.workspace-nav-label{color:#a8bee1;letter-spacing:.1em;text-transform:uppercase;margin:9px 12px 5px;font-size:10px;font-weight:750}.workspace-nav-item{color:#e1ebfb;width:100%;min-height:41px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;padding:9px 12px;font-size:13px;font-weight:550;display:flex}.workspace-nav-item svg{flex:0 0 19px}.workspace-nav-item:hover{color:#fff;background:#ffffff1a}.workspace-nav-item--active,.workspace-nav-item--active:hover{box-shadow:inset 3px 0 0 var(--brand-accent);color:#fff;background:#9cc7ff2b;font-weight:700}.workspace-nav-item:focus-visible,.workspace-logout:focus-visible,.workspace-menu-trigger:focus-visible,.workspace-menu-close:focus-visible,.workspace-quick-links button:focus-visible{outline-offset:2px;outline:3px solid #9cc7ff}.workspace-sidebar-footer{flex:none;gap:10px;margin-top:auto;padding:10px 4px 0;display:grid}.workspace-sidebar-user{border-top:1px solid #ffffff21;align-items:center;gap:10px;min-width:0;padding:17px 7px 2px;display:flex}.workspace-user-avatar{background:#395888;border-radius:50%;flex:0 0 33px;place-items:center;height:33px;font-weight:750;display:grid}.workspace-logout{color:#f4f7ff;min-height:39px;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:9px;font-size:12px;font-weight:650}.workspace-logout:hover{background:#ffffff1a}.workspace-logout:disabled{opacity:.5;cursor:wait}.workspace-overview{gap:36px;display:grid}.workspace-overview-header{padding:8px 0 4px}.workspace-overview-header .eyebrow{margin:0 0 10px;font-size:11px}.workspace-overview-header h1{max-width:820px;color:var(--primary);font-size:clamp(30px,3.5vw,48px)}.workspace-overview-header>p:last-child{color:#5e6f86;margin:12px 0 0;font-size:16px}.workspace-overview-section{gap:17px;display:grid}.workspace-overview-section h2{font-size:19px}.workspace-overview-section>div:first-child p{color:#5e6f86;margin:5px 0 0;font-size:14px}.workspace-quick-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.app-shell.app-shell--authenticated .access-card .workspace-quick-links button{min-height:130px;color:var(--primary);text-align:left;cursor:pointer;background:#fff;border:1px solid #d7e3f4;border-radius:16px;flex-direction:column;justify-content:space-between;align-items:flex-start;margin:0;padding:20px;display:flex;box-shadow:0 8px 26px #152b560d}.app-shell.app-shell--authenticated .access-card .workspace-quick-links button:hover{background:#f8fbff;border-color:#9cc7ff}.workspace-quick-links strong{font-family:Manrope,Inter,sans-serif;font-size:17px;line-height:1.35}.workspace-quick-links span{color:#496798;font-size:12px;font-weight:650}.workspace-overview-footnote{color:#5e6f86;margin:0;font-size:13px}@media (width<=950px){.app-shell.app-shell--authenticated{flex-direction:column;display:flex}.app-shell--authenticated .topbar--workspace{min-height:60px;padding:0 16px 0 70px}.workspace-topbar-context,.workspace-topbar-divider{display:none}.workspace-menu-trigger{z-index:21;width:40px;height:40px;color:var(--primary);cursor:pointer;background:#fff;border:1px solid #d4e0f0;border-radius:10px;place-items:center;font-size:20px;display:grid;position:fixed;top:10px;left:14px}.workspace-sidebar{z-index:42;visibility:hidden;width:min(290px,100vw - 48px);transition:transform .18s,visibility .18s;transform:translate(-105%)}.workspace-sidebar--open{visibility:visible;transform:translate(0)}.workspace-menu-close{color:#fff;width:35px;height:35px;font:inherit;cursor:pointer;background:#ffffff1f;border:0;border-radius:8px;place-items:center;margin-left:auto;font-size:24px;display:grid}.workspace-menu-scrim{z-index:41;cursor:pointer;background:#0f203d80;border:0;width:100%;display:block;position:fixed;inset:0}.app-shell.app-shell--authenticated .access-layout--authenticated{width:100%;padding:24px 18px 46px}}@media (width<=580px){.app-shell--authenticated .environment-badge{padding:4px 7px;font-size:9px}.workspace-quick-links{grid-template-columns:1fr}.app-shell.app-shell--authenticated .access-card .workspace-quick-links button{min-height:88px;padding:16px}.workspace-overview{gap:24px}}@media (prefers-reduced-motion:reduce){.workspace-sidebar{transition:none}}
