:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--primary:#1746a2;--primary-dark:#0d2f6f;--surface:#fff;--text:#172033;--border:#e4e7ec;background:#f7f9fc;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}:focus-visible{outline-offset:3px;outline:3px solid #1746a2}@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-mark{background:var(--primary);color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:21px;font-weight:750;display:grid}.brand-name{color:var(--primary-dark);letter-spacing:-.02em;font-size:17px;font-weight:750}.brand-name span{font-weight:500}.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}.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}@media (width<=760px){.access-layout,.access-layout--workspace{grid-template-columns:1fr;gap:32px;padding-block:40px}.brand-name span{font-size:12px;display:block}.structure-form{grid-template-columns:1fr}.structure-form button{grid-column:1}}@media (width<=880px){.students-grid,.enrollments-panel .student-list{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}}
