html,body{min-height:100%}#root{min-height:100vh}:root{color:#18233a;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f4f6fa;min-width:320px;margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled{cursor:wait;opacity:.6}input,select{color:#18233a}.auth-page{background:radial-gradient(circle at 10% 10%,#1b66be1f,#0000 28%),linear-gradient(145deg,#f7f9fc 0%,#eef3f9 100%);place-items:center;min-height:100vh;padding:28px 16px;display:grid}.auth-card,.loading-card{background:#fffffff5;border:1px solid #e0e6ef;border-radius:22px;width:min(100%,480px);padding:34px;box-shadow:0 24px 70px #16345c1f}.loading-card{text-align:center;justify-items:center;gap:18px;display:grid}.loading-card .brand{justify-content:center;margin-bottom:6px}.loading-card p{color:#617086;margin:0;font-weight:700}.loading-spinner{border:3px solid #d9e4f1;border-top-color:#1766bd;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand__icon{object-fit:contain;flex:none;width:44px;height:44px}.brand__text{min-width:0;line-height:1.1;display:grid}.brand__text strong{color:#143e76;letter-spacing:-.02em;white-space:nowrap;font-size:21px}.brand__text span{color:#78869a;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin-top:4px;font-size:11px;font-weight:700}.auth-card>.brand{margin-bottom:30px}.auth-card__eyebrow,.section-label{color:#1766bd;letter-spacing:.11em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:850;display:inline-block}.auth-card h1,.page-title,.welcome-panel h1{color:#15233b;letter-spacing:-.035em;margin:0;font-size:clamp(30px,5vw,42px);line-height:1.12}.auth-card__subtitle{color:#68768b;margin:12px 0 0;line-height:1.65}.auth-form,.branch-form{gap:18px;margin:28px 0 16px;display:grid}label{color:#28364d;gap:8px;font-size:13px;font-weight:800;display:grid}input,select{background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;width:100%;min-height:46px;padding:10px 13px;transition:border-color .18s,box-shadow .18s}input:focus,select:focus{border-color:#1766bd;box-shadow:0 0 0 3px #1766bd21}.button{color:#fff;background:#1766bd;border:0;border-radius:10px;min-height:46px;padding:10px 18px;font-weight:850;box-shadow:0 7px 18px #1766bd33}.button:hover:not(:disabled){background:#0f529c}.button--secondary{color:#12559e;box-shadow:none;background:#edf4fb}.button--secondary:hover:not(:disabled){background:#dfecf8}.button--full{width:100%}.alert{overflow-wrap:anywhere;border-radius:10px;padding:13px 15px;line-height:1.5}.alert--warning{color:#6a4b06;background:#fff4d8;border:1px solid #f4dfaa;margin-top:18px}.app-shell{grid-template-columns:272px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:30;color:#d7e4f7;background:radial-gradient(circle at 10% 0,#358ae82e,#0000 34%),#102d53;border-right:1px solid #ffffff0d;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.sidebar__top{padding:25px 22px 20px;position:relative}.sidebar .brand__text strong{color:#fff}.sidebar .brand__text span{color:#a7bad4}.sidebar__close{display:none}.sidebar__organisation{background:#ffffff12;border:1px solid #ffffff14;border-radius:12px;gap:4px;margin:0 18px 14px;padding:13px 14px;display:grid}.sidebar__organisation span{color:#92a9c6;letter-spacing:.09em;text-transform:uppercase;font-size:10px;font-weight:800}.sidebar__organisation strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sidebar__nav{flex:1;align-content:start;gap:3px;padding:4px 14px 20px;display:grid;overflow-y:auto}.sidebar__link{color:#b7c7dc;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:21px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:44px;padding:9px 11px;display:grid}.sidebar__link:hover{color:#fff;background:#ffffff12}.sidebar__link--active{color:#fff;background:linear-gradient(90deg,#2980e26b,#2980e22b);box-shadow:inset 3px 0 #4da1ff}.sidebar__link>span:nth-child(2){font-size:13px;font-weight:750}.sidebar__soon{color:#8da4c1;letter-spacing:.05em;text-transform:uppercase;background:#ffffff0f;border-radius:999px;padding:3px 6px;font-size:9px;font-weight:850}.nav-icon{width:20px;height:20px}.sidebar__footer{background:#05152a59;border-top:1px solid #ffffff0f;padding:14px}.sidebar__user,.topbar__profile{align-items:center;gap:10px;min-width:0;display:flex}.sidebar__user>span:last-child,.topbar__profile>span:last-child{gap:2px;min-width:0;display:grid}.sidebar__user strong,.topbar__profile strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar__user small{color:#8fa6c2;text-transform:capitalize;font-size:10px}.avatar{color:#fff;background:linear-gradient(135deg,#267bd8,#5e9cea);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:850;display:grid}.avatar--small{width:34px;height:34px}.sidebar__signout{color:#c7d6e8;background:0 0;border:1px solid #ffffff1f;border-radius:8px;width:100%;min-height:37px;margin-top:11px;font-size:11px;font-weight:800}.sidebar__signout:hover:not(:disabled){color:#fff;background:#ffffff12}.app-shell__main{min-width:0}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border-bottom:1px solid #e3e8ef;justify-content:space-between;align-items:center;gap:24px;min-height:78px;padding:14px 26px;display:flex;position:sticky;top:0}.topbar__left{align-items:center;gap:13px;min-width:0;display:flex}.topbar__left>div{min-width:0}.topbar__left p{color:#16233b;margin:0 0 3px;font-size:17px;font-weight:850}.topbar__left span{color:#748197;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.topbar__actions{flex:none;align-items:center;gap:18px;display:flex}.branch-picker{gap:3px;min-width:160px;display:grid}.branch-picker span{color:#7a8798;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:850}.branch-picker select{background-color:#f6f8fb;border-color:#dce3ec;min-height:35px;padding:5px 31px 5px 10px;font-size:12px;font-weight:750}.topbar__profile{border-left:1px solid #e2e7ee;max-width:190px;padding-left:17px}.topbar__profile strong{color:#24324a}.topbar__profile small{color:#7c8999;text-transform:capitalize;font-size:10px}.icon-button{width:38px;height:38px;color:inherit;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.topbar__menu{align-content:center;gap:4px;display:none}.topbar__menu span{background:#526279;border-radius:999px;width:19px;height:2px}.content{min-height:calc(100vh - 78px);padding:26px}.page-stack{gap:20px;display:grid}.welcome-panel,.panel,.metric-card{background:#fff;border:1px solid #e0e6ee;border-radius:16px;box-shadow:0 8px 28px #1a365b0d}.welcome-panel{background:linear-gradient(110deg,#fffffffa,#f3f8fef0),#fff;justify-content:space-between;align-items:center;gap:26px;padding:27px 28px;display:flex;overflow:hidden}.welcome-panel h1{margin-top:12px;font-size:clamp(28px,4vw,39px)}.welcome-panel p{color:#65748a;max-width:720px;margin:10px 0 0;line-height:1.55}.status-pill,.progress-chip{color:#137044;background:#e7f8ef;border-radius:999px;align-items:center;width:fit-content;padding:6px 9px;font-size:10px;font-weight:850;display:inline-flex}.status-pill--neutral,.progress-chip{color:#52657d;background:#edf2f7}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{gap:6px;padding:20px;display:grid}.metric-card>span{color:#65748a;font-size:12px;font-weight:750}.metric-card strong{color:#17243b;font-size:30px;line-height:1}.metric-card small{color:#8a96a7;font-size:10px}.metric-card--muted strong{color:#9aa6b5}.dashboard-layout{grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:20px;display:grid}.panel{padding:23px}.panel__heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.panel__heading h1,.panel__heading h2{margin:0}.panel__heading h2{color:#1b2940;font-size:20px}.setup-list,.branch-cards,.settings-branch-list{gap:10px;display:grid}.setup-item{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:12px 13px;display:grid}.setup-item__check{color:#9aa7b7;background:#fff;border:1px solid #dce3eb;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:900;display:grid}.setup-item__check--done{color:#fff;background:#26a56a;border-color:#26a56a}.setup-item__copy,.branch-card>span:last-child,.settings-branch-row>span:nth-child(2){gap:3px;min-width:0;display:grid}.setup-item__copy strong,.branch-card strong,.settings-branch-row strong{color:#26344a;font-size:12px}.setup-item__copy small,.branch-card small,.settings-branch-row small{color:#7c899a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.text-button{color:#1766bd;background:0 0;border:0;padding:5px 2px;font-size:11px;font-weight:850}.text-button:hover{color:#0f4c91;text-decoration:underline}.branch-card,.settings-branch-row{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:11px;padding:12px;display:grid}.settings-branch-row{grid-template-columns:40px minmax(0,1fr) auto}.branch-card__mark{color:#155aab;background:#e4effb;border-radius:9px;place-items:center;width:38px;height:38px;font-size:14px;font-weight:900;display:grid}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.details-grid>div{overflow-wrap:anywhere;background:#f7f9fc;border-radius:11px;gap:5px;padding:14px;display:grid}.details-grid span{color:#7b899c;text-transform:uppercase;font-size:10px;font-weight:800}.details-grid strong{color:#27354b;font-size:12px}.branch-form{border-top:1px solid #edf0f4;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-bottom:0;padding-top:20px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:500px;display:flex}.empty-state__icon{color:#1766bd;background:#e9f2fc;border-radius:16px;place-items:center;width:60px;height:60px;margin-bottom:18px;display:grid}.empty-state__icon .nav-icon{width:28px;height:28px}.empty-state p{color:#69778b;max-width:560px;margin:13px 0 0;line-height:1.6}.empty-state__note{color:#596a80;background:#f6f8fb;border:1px solid #e6ebf1;border-radius:10px;max-width:560px;margin:22px 0;padding:13px 15px;font-size:12px;line-height:1.55}.sidebar-backdrop{display:none}@media (width<=1050px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout{grid-template-columns:1fr}}@media (width<=820px){.app-shell{display:block}.sidebar{width:min(88vw,292px);transition:transform .22s;position:fixed;left:0;transform:translate(-102%);box-shadow:20px 0 55px #07193047}.sidebar--open{transform:translate(0)}.sidebar__close{color:#dbe7f6;font-size:29px;display:grid;position:absolute;top:17px;right:12px}.sidebar-backdrop{z-index:25;background:#0a192d75;border:0;display:block;position:fixed;inset:0}.topbar__menu{display:grid}.topbar__profile{display:none}}@media (width<=620px){.auth-card,.loading-card{padding:27px 22px}.topbar{min-height:70px;padding:11px 15px}.topbar__left span{max-width:190px}.branch-picker{min-width:124px}.branch-picker span{display:none}.content{min-height:calc(100vh - 70px);padding:15px}.welcome-panel{padding:22px;display:grid}.welcome-panel .button{width:100%}.metric-grid,.details-grid{grid-template-columns:1fr}.panel{padding:18px}.panel__heading{display:grid}.branch-form{grid-template-columns:1fr}.settings-branch-row{grid-template-columns:40px minmax(0,1fr)}.settings-branch-row .status-pill{grid-column:2}}.auth-page--invitation{align-items:start;padding-top:48px}.invitation-card{width:min(100%,560px)}.invitation-summary{gap:10px;margin:22px 0;display:grid}.invitation-summary>div{background:#f6f8fb;border:1px solid #e8edf3;border-radius:10px;gap:4px;padding:13px 14px;display:grid}.invitation-summary span{color:#7c899a;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:850}.invitation-summary strong{color:#24334a;overflow-wrap:anywhere;font-size:13px}.invitation-warning{margin-bottom:16px}.alert--success{color:#11633e;background:#e8f8ef;border:1px solid #bce8cf}.staff-loading{color:#607086;text-align:center;align-content:center;place-items:center;gap:14px;min-height:260px;display:grid}.staff-loading p{margin:0;font-weight:750}.staff-welcome{align-items:flex-end}.staff-summary{justify-items:end;gap:4px;min-width:132px;display:grid}.staff-summary strong{color:#1766bd;font-size:34px;line-height:1}.staff-summary span{color:#6f7d91;font-size:11px;font-weight:800}.staff-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:20px;display:grid}.staff-invite-form{gap:20px;margin:0;display:grid}.staff-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.branch-checklist{border:0;min-width:0;margin:0;padding:0}.branch-checklist legend{color:#28364d;margin-bottom:9px;font-size:13px;font-weight:800}.branch-checklist>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.check-card{cursor:pointer;background:#f7f9fc;border:1px solid #e8edf3;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:12px}.check-card:has(input:checked){background:#eef6ff;border-color:#9dc5ed}.check-card input{width:17px;height:17px;min-height:auto;padding:0}.check-card span{gap:3px;min-width:0;display:grid}.check-card strong{color:#27354b;font-size:12px}.check-card small{color:#7f8c9d;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.form-actions{border-top:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:18px;padding-top:18px;display:flex}.form-actions p{color:#768497;max-width:470px;margin:0;font-size:11px;line-height:1.55}.form-actions .button{flex:none}.generated-link{background:#edf8f2;border:1px solid #cbead8;border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:18px;padding:14px;display:grid}.generated-link input{background:#fff}.permission-guide{align-self:start}.role-guide-list{gap:14px;display:grid}.role-guide-list>div{background:#f7f9fc;border:1px solid #edf0f4;border-radius:10px;padding:13px}.role-guide-list p{color:#69788d;margin:8px 0 0;font-size:11px;line-height:1.55}.role-badge{color:#405168;text-transform:capitalize;background:#e9eef4;border-radius:999px;align-items:center;width:fit-content;padding:5px 8px;font-size:10px;font-weight:900;display:inline-flex}.role-badge--owner{color:#6f4c00;background:#fff0c7}.role-badge--admin{color:#174f95;background:#e4effb}.role-badge--tutor{color:#14603e;background:#e5f7ed}.role-badge--finance{color:#69429a;background:#f0e7fb}.staff-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.staff-table{border-collapse:collapse;width:100%;min-width:720px}.staff-table th,.staff-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.staff-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.staff-table td{color:#2b394f;font-size:12px}.staff-table tbody tr:last-child td{border-bottom:0}.staff-person{align-items:center;gap:10px;min-width:210px;display:flex}.staff-person>span:last-child{gap:3px;min-width:0;display:grid}.staff-person strong,.invitation-row__person strong{color:#26344a;font-size:12px}.staff-person small,.invitation-row__person small{color:#7c899a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.branch-tag-list{flex-wrap:wrap;gap:5px;display:flex}.branch-tag{color:#4c6078;background:#eef2f7;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;display:inline-flex}.branch-tag--warning{color:#805a08;background:#fff2cf}.compact-empty-state{color:#748297;text-align:center;background:#f8fafc;border:1px dashed #dbe3ec;border-radius:11px;padding:24px;font-size:12px;line-height:1.55}.invitation-list{gap:9px;display:grid}.invitation-row{background:#f8fafc;border:1px solid #e8edf3;border-radius:11px;grid-template-columns:minmax(160px,1.1fr) auto minmax(140px,1fr) auto auto;align-items:center;gap:12px;padding:13px;display:grid}.invitation-row__person{gap:3px;min-width:0;display:grid}.invitation-expiry{color:#7b899c;white-space:nowrap;font-size:10px}.invitation-row__actions{align-items:center;gap:8px;display:flex}.button--small{min-height:34px;padding:7px 10px;font-size:10px}.text-button--danger{color:#b33b3b}.text-button--danger:hover{color:#8e2929}.settings-permission-note{color:#627187;background:#f7f9fc;border:1px solid #e7ecf2;border-radius:10px;margin-top:20px;padding:13px 15px;font-size:12px;line-height:1.55}@media (width<=1080px){.staff-layout{grid-template-columns:1fr}.staff-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.invitation-row{grid-template-columns:minmax(160px,1fr) auto minmax(140px,1fr)}.invitation-expiry,.invitation-row__actions{grid-column:span 1}}@media (width<=700px){.staff-welcome{align-items:stretch}.staff-summary{justify-items:start}.staff-form-grid,.branch-checklist>div,.generated-link{grid-template-columns:1fr}.form-actions{display:grid}.form-actions .button,.generated-link .button{width:100%}.invitation-row{grid-template-columns:1fr;align-items:start}.invitation-row__actions{justify-content:space-between;width:100%}}textarea{color:#18233a;width:100%;min-height:88px;font:inherit;resize:vertical;background:#fff;border:1px solid #cbd5e1;border-radius:10px;outline:none;padding:11px 13px;line-height:1.5;transition:border-color .18s,box-shadow .18s}textarea:focus{border-color:#1766bd;box-shadow:0 0 0 3px #1766bd21}.rooms-heading p{color:#6d7b8f;max-width:720px;margin:8px 0 0;font-size:12px;line-height:1.55}.room-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.room-metrics>div{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;gap:5px;padding:14px;display:grid}.room-metrics span{color:#77859a;letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:850}.room-metrics strong{color:#1b2a42;font-size:25px;line-height:1}.room-editor{background:#f8fafc;border:1px solid #e7ecf2;border-radius:12px;gap:17px;margin:0 0 20px;padding:18px;scroll-margin-top:96px;display:grid}.room-editor__heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.room-editor__heading>div{gap:4px;display:grid}.room-editor__heading strong{color:#24334a;font-size:14px}.room-editor__heading span{color:#748297;font-size:11px}.room-form-grid{grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr) minmax(120px,.5fr);gap:12px;display:grid}.optional-label{color:#8a96a7;margin-left:4px;font-size:10px;font-weight:700;display:inline}.rooms-toolbar{grid-template-columns:minmax(190px,.7fr) minmax(240px,1.3fr);gap:12px;margin:0 0 15px;display:grid}.rooms-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.rooms-table{border-collapse:collapse;width:100%;min-width:820px}.rooms-table th,.rooms-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.rooms-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.rooms-table td{color:#2b394f;font-size:12px}.rooms-table tbody tr:last-child td{border-bottom:0}.room-row--inactive td{color:#8a96a7;background:#fbfcfd}.room-name-cell{align-items:center;gap:9px;min-width:150px;display:flex}.room-name-cell>span{color:#155aab;background:#e4effb;border-radius:8px;flex:none;place-items:center;width:31px;height:31px;font-size:11px;font-weight:900;display:grid}.room-name-cell strong{color:#26344a;font-size:12px}.room-notes-cell{max-width:260px;line-height:1.45;color:#6f7d91!important}.room-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.rooms-loading{min-height:190px}.rooms-panel>.alert{margin-bottom:14px}@media (width<=820px){.room-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-form-grid label:last-child{grid-column:span 2}}@media (width<=620px){.room-metrics,.room-form-grid,.rooms-toolbar{grid-template-columns:1fr}.room-form-grid label:last-child{grid-column:auto}.room-editor__heading{display:grid}}.course-welcome{align-items:flex-end}.course-summary{justify-items:end;gap:5px;min-width:145px;display:grid}.course-summary strong{color:#1766bd;font-size:38px;line-height:1}.course-summary span{color:#6f7d91;font-size:11px;font-weight:800}.course-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.course-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:6px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.course-metrics span{color:#65748a;font-size:11px;font-weight:800}.course-metrics strong{color:#17243b;font-size:28px;line-height:1}.course-editor{gap:18px;scroll-margin-top:96px;display:grid}.course-editor__heading{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:17px;display:flex}.course-editor__heading h2{color:#1b2940;margin:0;font-size:20px}.course-editor__heading p,.courses-heading p{color:#6d7b8f;max-width:720px;margin:8px 0 0;font-size:12px;line-height:1.55}.course-form-grid{gap:12px;display:grid}.course-form-grid--identity{grid-template-columns:minmax(140px,.65fr) minmax(230px,1.35fr) minmax(190px,1fr) minmax(100px,.45fr)}.course-form-grid--defaults{grid-template-columns:repeat(3,minmax(180px,1fr))}.input-with-suffix{background:#fff;border:1px solid #cbd5e1;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;transition:border-color .18s,box-shadow .18s;display:grid;overflow:hidden}.input-with-suffix:focus-within{border-color:#1766bd;box-shadow:0 0 0 3px #1766bd21}.input-with-suffix input{border:0;border-radius:0;min-width:0;box-shadow:none!important}.input-with-suffix span{color:#7a8798;white-space:nowrap;border-left:1px solid #e2e7ee;padding:0 12px;font-size:11px;font-weight:750}.course-colour-field{grid-template-columns:54px minmax(0,1fr);gap:8px;display:grid}.course-colour-field input[type=color]{cursor:pointer;min-height:46px;padding:5px}.course-branch-checklist>div{grid-template-columns:repeat(3,minmax(0,1fr))}.courses-toolbar{grid-template-columns:minmax(170px,.8fr) minmax(115px,.45fr) minmax(125px,.5fr) minmax(250px,1.25fr);gap:12px;margin:0 0 15px;display:grid}.courses-panel>.alert{margin-bottom:14px}.courses-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.courses-table{border-collapse:collapse;width:100%;min-width:900px}.courses-table th,.courses-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.courses-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.courses-table td{color:#2b394f;font-size:12px}.courses-table tbody tr:last-child td{border-bottom:0}.course-row--inactive td{color:#8a96a7;background:#fbfcfd}.course-name-cell{align-items:center;gap:11px;min-width:220px;display:flex}.course-colour-dot{border-radius:999px;flex:none;width:12px;height:34px;box-shadow:inset 0 0 0 1px #0f233e1f}.course-name-cell>span:last-child{gap:4px;min-width:0;display:grid}.course-name-cell strong{color:#26344a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.course-name-cell small{color:#77859a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.grade-badge{color:#174f95;background:#e4effb;border-radius:8px;place-items:center;min-width:34px;min-height:28px;padding:4px 8px;font-size:10px;font-weight:900;display:inline-grid}.course-branch-list{color:#7b8797;flex-wrap:wrap;gap:5px;min-width:160px;display:flex}.course-branch-list span{color:#405168;background:#edf2f7;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:750}.course-defaults-cell{color:#5e6d82;gap:4px;min-width:100px;font-size:11px;display:grid}.course-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.courses-loading{min-height:210px}@media (width<=1050px){.course-form-grid--identity,.course-branch-checklist>div,.courses-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.course-welcome,.course-editor__heading{align-items:flex-start;display:grid}.course-summary{justify-items:start}.course-metrics,.course-form-grid--identity,.course-form-grid--defaults,.course-branch-checklist>div,.courses-toolbar{grid-template-columns:1fr}}.student-welcome{align-items:flex-end}.student-summary{justify-items:end;gap:5px;min-width:145px;display:grid}.student-summary strong{color:#1766bd;font-size:38px;line-height:1}.student-summary span{color:#6f7d91;font-size:11px;font-weight:800}.student-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.student-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:6px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.student-metrics span{color:#65748a;font-size:11px;font-weight:800}.student-metrics strong{color:#17243b;font-size:28px;line-height:1}.student-editor{gap:18px;scroll-margin-top:96px;display:grid}.student-editor__heading,.student-details__heading,.guardians-heading,.guardian-editor__heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.student-editor__heading{border-bottom:1px solid #edf0f4;padding-bottom:17px}.student-editor__heading h2,.student-details__heading h2,.guardians-heading h3{color:#1b2940;margin:0}.student-editor__heading h2,.student-details__heading h2{font-size:20px}.guardians-heading h3{font-size:17px}.student-editor__heading p,.students-heading p,.student-details__heading p,.guardians-heading p{color:#6d7b8f;max-width:760px;margin:8px 0 0;font-size:12px;line-height:1.55}.student-form-grid,.guardian-form-grid{gap:12px;display:grid}.student-form-grid--identity{grid-template-columns:minmax(150px,.7fr) minmax(230px,1.3fr) minmax(190px,1fr) minmax(100px,.45fr)}.student-form-grid--details{grid-template-columns:minmax(230px,1.3fr) minmax(170px,.8fr) minmax(150px,.7fr)}.student-branch-checklist>div{grid-template-columns:repeat(3,minmax(0,1fr))}.student-primary-branch{max-width:360px}.student-initial-guardian{background:#f8fafc;border:1px solid #e7ecf2;border-radius:12px;gap:14px;margin:0;padding:17px;display:grid}.student-initial-guardian legend{color:#27364d;padding:0 7px;font-size:13px;font-weight:850}.student-initial-guardian legend span{color:#8a96a7;margin-left:5px;font-size:10px}.student-initial-guardian>p{color:#738095;margin:-5px 0 0;font-size:11px;line-height:1.5}.guardian-form-grid--identity,.guardian-form-grid--contacts{grid-template-columns:repeat(3,minmax(0,1fr))}.students-toolbar{grid-template-columns:minmax(170px,.8fr) minmax(110px,.45fr) minmax(130px,.55fr) minmax(260px,1.3fr);gap:12px;margin:0 0 15px;display:grid}.students-panel>.alert{margin:0 0 14px}.students-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.students-table{border-collapse:collapse;width:100%;min-width:1050px}.students-table th,.students-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.students-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.students-table td{color:#2b394f;font-size:12px}.students-table tbody tr:last-child td{border-bottom:0}.student-row--archived td{color:#8a96a7;background:#fbfcfd}.student-name-cell{min-width:230px;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.student-name-cell>span:first-child{color:#155aab;background:#e4effb;border-radius:9px;flex:none;place-items:center;width:35px;height:35px;font-size:10px;font-weight:900;display:grid}.student-name-cell>span:last-child{gap:3px;min-width:0;display:grid}.student-name-cell strong{color:#26344a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.student-name-cell small{color:#7c899a;font-size:10px}.student-name-cell:hover strong{color:#1766bd}.student-branch-list{flex-wrap:wrap;gap:5px;min-width:190px;display:flex}.student-branch-list span{color:#405168;background:#edf2f7;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:750}.student-branch-list em{color:#8a96a7;font-size:10px}.student-school-cell{min-width:150px;max-width:210px}.student-status{color:#405168;text-transform:uppercase;background:#edf2f7;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;display:inline-flex}.student-status--active{color:#14603e;background:#e5f7ed}.student-status--trial{color:#174f95;background:#e4effb}.student-status--prospective{color:#69429a;background:#f0e7fb}.student-status--paused{color:#805a08;background:#fff2cf}.student-status--archived{color:#6b7280;background:#eceff3}.student-guardian-count{color:#405168;background:#edf2f7;border-radius:8px;place-items:center;min-width:28px;min-height:28px;font-size:10px;font-weight:900;display:inline-grid}.student-actions,.student-details__actions,.guardian-card__actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.students-loading{min-height:220px}.student-details{gap:20px;scroll-margin-top:96px;display:grid}.student-details__heading{border-bottom:1px solid #edf0f4;padding-bottom:17px}.student-profile-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.student-profile-grid>div{background:#f7f9fc;border:1px solid #edf0f4;border-radius:11px;align-content:start;gap:6px;min-width:0;padding:14px;display:grid}.student-profile-grid span{color:#7b899c;letter-spacing:.05em;text-transform:uppercase;font-size:9px;font-weight:850}.student-profile-grid strong{color:#27354b;overflow-wrap:anywhere;font-size:11px;line-height:1.5}.guardians-heading{align-items:flex-end;padding-top:3px}.guardian-editor{background:#f8fafc;border:1px solid #dfe7ef;border-radius:12px;gap:15px;padding:18px;display:grid}.guardian-editor__heading strong{color:#24334a;font-size:14px}.guardian-permission-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.guardian-check{background:#fff;border:1px solid #e1e7ee;border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:9px 10px}.guardian-check:has(input:checked){background:#eef6ff;border-color:#a9caeb}.guardian-check input{width:16px;height:16px;min-height:0;padding:0}.guardian-check span{color:#405168;font-size:10px;font-weight:800}.guardian-card-list{gap:10px;display:grid}.guardian-card{background:#fff;border:1px solid #e5eaf0;border-radius:12px;grid-template-columns:minmax(190px,.9fr) minmax(330px,1.5fr) minmax(210px,1fr) auto;align-items:center;gap:14px;padding:15px;display:grid}.guardian-card--inactive{opacity:.72;background:#fbfcfd}.guardian-card__identity{align-items:center;gap:10px;min-width:0;display:flex}.guardian-card__identity>span{color:#fff;background:#1766bd;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:900;display:grid}.guardian-card__identity>div{gap:3px;min-width:0;display:grid}.guardian-card__identity strong{color:#26344a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.guardian-card__identity small{color:#77859a;font-size:10px}.guardian-contact-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;display:grid}.guardian-contact-list>span{gap:3px;min-width:0;display:grid}.guardian-contact-list small{color:#8793a4;letter-spacing:.05em;text-transform:uppercase;font-size:8px;font-weight:850}.guardian-contact-list strong{color:#405168;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.guardian-tags{flex-wrap:wrap;gap:5px;display:flex}.guardian-tags span{color:#405168;text-transform:capitalize;background:#edf2f7;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:850}.guardian-card__notes{color:#67768b;background:#f7f9fc;border-radius:8px;grid-column:1/-1;margin:-3px 0 0;padding:9px 11px;font-size:10px;line-height:1.5}@media (width<=1120px){.student-form-grid--identity,.student-profile-grid,.student-branch-checklist>div,.guardian-permission-grid,.students-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.guardian-card{grid-template-columns:minmax(190px,.8fr) minmax(330px,1.4fr)}.guardian-tags,.guardian-card__actions{justify-content:flex-start}}@media (width<=760px){.student-welcome,.student-editor__heading,.student-details__heading,.guardians-heading{align-items:flex-start;display:grid}.student-summary{justify-items:start}.student-metrics,.student-form-grid--identity,.student-form-grid--details,.student-branch-checklist>div,.guardian-form-grid--identity,.guardian-form-grid--contacts,.students-toolbar,.student-profile-grid,.guardian-permission-grid,.guardian-card,.guardian-contact-list{grid-template-columns:1fr}.student-details__actions,.guardian-card__actions{flex-wrap:wrap;justify-content:flex-start}}.enrolment-welcome{align-items:flex-end}.enrolment-summary{justify-items:end;gap:5px;min-width:165px;display:grid}.enrolment-summary strong{color:#1766bd;font-size:38px;line-height:1}.enrolment-summary span{color:#6f7d91;text-align:right;font-size:11px;font-weight:800}.enrolment-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.enrolment-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:6px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.enrolment-metrics span{color:#65748a;font-size:11px;font-weight:800}.enrolment-metrics strong{color:#17243b;font-size:28px;line-height:1}.enrolment-editor{gap:18px;scroll-margin-top:96px;display:grid}.enrolment-editor form{gap:16px;display:grid}.enrolment-editor__heading{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:17px;display:flex}.enrolment-editor__heading h2{color:#1b2940;margin:0;font-size:20px}.enrolment-editor__heading p,.enrolments-heading p{color:#6d7b8f;max-width:760px;margin:8px 0 0;font-size:12px;line-height:1.55}.enrolment-form-grid{gap:12px;display:grid}.enrolment-form-grid--placement{grid-template-columns:minmax(150px,.8fr) minmax(230px,1.35fr) minmax(230px,1.35fr) minmax(125px,.65fr)}.enrolment-form-grid--dates{grid-template-columns:minmax(160px,.55fr) minmax(160px,.55fr) minmax(280px,1.9fr);align-items:start}.enrolment-notes-field textarea{min-height:88px}.enrolments-toolbar{grid-template-columns:minmax(165px,.75fr) minmax(140px,.55fr) minmax(210px,1fr) minmax(260px,1.25fr);gap:12px;margin:0 0 15px;display:grid}.enrolments-panel>.alert{margin-bottom:14px}.enrolments-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.enrolments-table{border-collapse:collapse;width:100%;min-width:1120px}.enrolments-table th,.enrolments-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.enrolments-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.enrolments-table td{color:#2b394f;font-size:12px}.enrolments-table tbody tr:last-child td{border-bottom:0}.enrolment-row--closed td{color:#8a96a7;background:#fbfcfd}.enrolment-student-cell,.enrolment-course-cell{align-items:center;gap:10px;min-width:215px;display:flex}.enrolment-student-cell>span{color:#155aab;background:#e4effb;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:900;display:grid}.enrolment-course-cell>span{border-radius:999px;flex:none;width:10px;height:34px;box-shadow:inset 0 0 0 1px #0f233e1f}.enrolment-student-cell>div,.enrolment-course-cell>div,.enrolment-dates-cell{gap:4px;min-width:0;display:grid}.enrolment-student-cell strong,.enrolment-course-cell strong,.enrolment-dates-cell strong{color:#26344a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.enrolment-student-cell small,.enrolment-course-cell small,.enrolment-dates-cell small{color:#77859a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.enrolment-branch-chip{color:#405168;white-space:nowrap;background:#edf2f7;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;display:inline-flex}.enrolment-status{text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;display:inline-flex}.enrolment-status--active{color:#137044;background:#e7f8ef}.enrolment-status--trial{color:#92520b;background:#fff1d7}.enrolment-status--enquiry{color:#155aab;background:#e4effb}.enrolment-status--paused{color:#7b4d08;background:#f8ead0}.enrolment-status--completed{color:#52657d;background:#e9eef4}.enrolment-status--withdrawn{color:#8a3540;background:#fbe8eb}.enrolment-notes-cell{color:#64748a;text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-size:10px;line-height:1.45;display:block;overflow:hidden}.enrolment-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.enrolments-loading{min-height:210px}@media (width<=1180px){.enrolment-form-grid--placement,.enrolments-toolbar,.enrolment-form-grid--dates{grid-template-columns:repeat(2,minmax(0,1fr))}.enrolment-notes-field{grid-column:1/-1}}@media (width<=760px){.enrolment-welcome,.enrolment-editor__heading{align-items:flex-start;display:grid}.enrolment-summary{justify-items:start}.enrolment-summary span{text-align:left}.enrolment-metrics,.enrolment-form-grid--placement,.enrolment-form-grid--dates,.enrolments-toolbar{grid-template-columns:1fr}.enrolment-notes-field{grid-column:auto}}.class-group-welcome{align-items:center}.class-group-summary{justify-items:end;gap:5px;min-width:170px;display:grid}.class-group-summary strong{color:#17243b;font-size:38px;line-height:1}.class-group-summary span{color:#728096;text-align:right;font-size:11px;font-weight:800}.class-group-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.class-group-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:6px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.class-group-metrics span{color:#65748a;font-size:11px;font-weight:800}.class-group-metrics strong{color:#17243b;font-size:28px;line-height:1}.class-group-editor{gap:18px;scroll-margin-top:96px;display:grid}.class-group-editor form{gap:16px;display:grid}.class-group-editor__heading,.roster-editor__heading{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:17px;display:flex}.class-group-editor__heading h2,.class-group-roster__heading h2{color:#1b2940;margin:0;font-size:20px}.class-group-editor__heading p,.class-groups-heading p,.class-group-roster__heading p{color:#6d7b8f;max-width:800px;margin:8px 0 0;font-size:12px;line-height:1.55}.class-group-form-grid{gap:12px;display:grid}.class-group-form-grid--identity{grid-template-columns:minmax(150px,.75fr) minmax(240px,1.25fr) minmax(160px,.75fr) minmax(250px,1.25fr)}.class-group-form-grid--settings{grid-template-columns:minmax(130px,.55fr) minmax(110px,.45fr) minmax(230px,1fr) minmax(150px,.65fr) minmax(150px,.65fr);align-items:start}.class-group-notes-field{grid-column:1/-1}.class-group-notes-field textarea{min-height:88px}.class-groups-toolbar{grid-template-columns:minmax(165px,.75fr) minmax(140px,.55fr) minmax(210px,1fr) minmax(260px,1.25fr);gap:12px;margin:0 0 15px;display:grid}.class-groups-panel>.alert,.class-group-roster>.alert{margin-bottom:14px}.class-groups-table-wrap,.class-roster-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.class-groups-table,.class-roster-table{border-collapse:collapse;width:100%}.class-groups-table{min-width:1280px}.class-roster-table{min-width:960px}.class-groups-table th,.class-groups-table td,.class-roster-table th,.class-roster-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.class-groups-table th,.class-roster-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.class-groups-table td,.class-roster-table td{color:#2b394f;font-size:12px}.class-groups-table tbody tr:last-child td,.class-roster-table tbody tr:last-child td{border-bottom:0}.class-group-row--closed td,.class-roster-row--closed td{color:#8a96a7;background:#fbfcfd}.class-group-row--selected td{background:#f3f8fe}.class-group-name-cell,.class-group-course-cell{align-items:center;gap:10px;min-width:205px;display:flex}.class-group-name-cell>span{color:#155aab;background:#e4effb;border-radius:9px;flex:none;place-items:center;width:36px;height:36px;font-size:10px;font-weight:900;display:grid}.class-group-course-cell>span{border-radius:999px;flex:none;width:10px;height:34px;box-shadow:inset 0 0 0 1px #0f233e1f}.class-group-name-cell>div,.class-group-course-cell>div,.class-group-tutor-cell,.class-group-capacity-cell,.class-roster-enrolment-cell{gap:4px;min-width:0;display:grid}.class-group-name-cell strong,.class-group-course-cell strong,.class-group-tutor-cell strong,.class-group-capacity-cell strong,.class-roster-enrolment-cell strong{color:#26344a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.class-group-name-cell small,.class-group-course-cell small,.class-group-tutor-cell small,.class-group-capacity-cell small,.class-roster-enrolment-cell small{color:#77859a;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.class-group-tutor-cell{min-width:145px}.class-group-capacity-cell{min-width:90px}.class-group-status,.roster-status{text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;display:inline-flex}.class-group-status--active,.roster-status--active{color:#137044;background:#e7f8ef}.class-group-status--planned{color:#155aab;background:#e4effb}.class-group-status--paused,.roster-status--paused{color:#7b4d08;background:#f8ead0}.class-group-status--completed,.class-group-status--archived,.roster-status--completed{color:#52657d;background:#e9eef4}.roster-status--trial{color:#92520b;background:#fff1d7}.roster-status--waitlisted{color:#69429a;background:#f0e7fb}.roster-status--withdrawn{color:#8a3540;background:#fbe8eb}.class-group-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.class-groups-loading{min-height:210px}.class-group-roster{gap:18px;scroll-margin-top:96px;display:grid}.class-group-roster__heading{margin-bottom:0}.roster-editor{background:#f8fafc;border:1px solid #e7ecf2;border-radius:12px;gap:14px;padding:17px;scroll-margin-top:110px;display:grid}.roster-editor__heading{padding-bottom:13px}.roster-editor__heading>div{gap:4px;display:grid}.roster-editor__heading strong{color:#26344a;font-size:13px}.roster-editor__heading span{color:#748297;font-size:10px;line-height:1.45}.roster-form-grid{grid-template-columns:minmax(250px,1.45fr) minmax(130px,.65fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(220px,1fr) auto;align-items:end;gap:10px;display:grid}.roster-form-grid .button{white-space:nowrap;min-height:44px}@media (width<=1280px){.class-group-form-grid--identity,.class-group-form-grid--settings,.class-groups-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.class-group-notes-field{grid-column:1/-1}.roster-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-notes-field{grid-column:span 2}}@media (width<=760px){.class-group-welcome,.class-group-editor__heading,.class-group-roster__heading,.roster-editor__heading{align-items:flex-start;display:grid}.class-group-summary{justify-items:start}.class-group-summary span{text-align:left}.class-group-metrics,.class-group-form-grid--identity,.class-group-form-grid--settings,.class-groups-toolbar,.roster-form-grid{grid-template-columns:1fr}.class-group-notes-field,.roster-notes-field{grid-column:auto}.roster-form-grid .button{width:100%}}.schedule-page{--lesson-regular-colour:#3486e5;--lesson-makeup-colour:#ee9425;--lesson-trial-colour:#dd4d8a;--lesson-assessment-colour:#7357d8;--lesson-other-colour:#1aa89c}.schedule-welcome{align-items:center}.schedule-summary{justify-items:end;gap:5px;min-width:190px;display:grid}.schedule-summary strong{color:#17243b;font-size:38px;line-height:1}.schedule-summary span{color:#728096;text-align:right;font-size:11px;font-weight:800}.schedule-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.schedule-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:6px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.schedule-metrics span{color:#65748a;font-size:11px;font-weight:800}.schedule-metrics strong{color:#17243b;font-size:28px;line-height:1}.schedule-rule-editor,.session-editor{gap:18px;scroll-margin-top:96px;display:grid}.schedule-rule-editor form,.session-editor form{gap:15px;display:grid}.schedule-editor-heading,.weekly-calendar-heading{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:17px;display:flex}.schedule-editor-heading h2,.schedule-section-heading h2,.weekly-calendar-heading h2{color:#1b2940;margin:0;font-size:20px}.schedule-editor-heading p,.schedule-section-heading p,.weekly-calendar-heading p{color:#6d7b8f;max-width:790px;margin:8px 0 0;font-size:12px;line-height:1.55}.schedule-form-grid{align-items:end;gap:12px;display:grid}.schedule-form-grid--rule-main{grid-template-columns:minmax(300px,1.5fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(130px,.6fr)}.schedule-form-grid--rule-time{grid-template-columns:repeat(2,minmax(120px,.55fr)) repeat(3,minmax(155px,.8fr))}.schedule-form-grid--resources{grid-template-columns:minmax(190px,.8fr) minmax(220px,.9fr) minmax(260px,1.25fr) auto}.schedule-form-grid .button{white-space:nowrap;min-height:44px}.schedule-toolbar{grid-template-columns:minmax(160px,.65fr) minmax(230px,1fr) minmax(160px,.65fr) minmax(260px,1.15fr);gap:12px;margin-bottom:15px;display:grid}.schedule-rules-panel>.alert{margin-bottom:14px}.schedule-rules-table-wrap{border:1px solid #e7ecf2;border-radius:11px;overflow-x:auto}.schedule-rules-table{border-collapse:collapse;width:100%;min-width:1320px}.schedule-rules-table th,.schedule-rules-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:13px 14px}.schedule-rules-table th{color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;font-size:10px;font-weight:900}.schedule-rules-table td{color:#2b394f;font-size:12px}.schedule-rules-table tbody tr:last-child td{border-bottom:0}.schedule-rules-table td>strong,.schedule-rules-table td>small{white-space:nowrap;display:block}.schedule-rules-table td>strong{color:#26344a;font-size:12px}.schedule-rules-table td>small{color:#77859a;margin-top:4px;font-size:10px}.schedule-row--ended td{color:#8a96a7;background:#fbfcfd}.schedule-group-cell{align-items:center;gap:10px;min-width:230px;display:flex}.schedule-group-cell>span{border-radius:999px;flex:none;width:10px;height:36px;box-shadow:inset 0 0 0 1px #0f233e1f}.schedule-group-cell>div{gap:4px;min-width:0;display:grid}.schedule-group-cell strong,.schedule-group-cell small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-group-cell strong{color:#26344a;font-size:12px}.schedule-group-cell small{color:#77859a;font-size:10px}.schedule-status,.session-status{text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;display:inline-flex}.schedule-status--active,.session-status--scheduled{color:#137044;background:#e7f8ef}.schedule-status--paused{color:#7b4d08;background:#f8ead0}.schedule-status--ended,.session-status--completed{color:#52657d;background:#e9eef4}.session-status--cancelled{color:#8a3540;background:#fbe8eb}.schedule-actions{white-space:nowrap;justify-content:flex-end;gap:9px;display:flex}.schedule-loading{min-height:190px}.session-form-grid{grid-template-columns:minmax(280px,1.35fr) minmax(145px,.7fr) minmax(115px,.55fr) minmax(115px,.55fr) minmax(125px,.6fr) minmax(140px,.65fr)}.session-form-grid .field:nth-of-type(n+7),.session-cancel-field,.session-notes-field{grid-column:span 2}.week-navigation{align-items:center;gap:8px;display:flex}.week-navigation .button{white-space:nowrap;padding:10px 13px;font-size:11px}.session-filter-row{justify-content:space-between;align-items:end;gap:15px;margin:16px 0;display:flex}.session-filter-row .field{width:min(240px,100%)}.session-filter-note{color:#7a8799;padding-bottom:12px;font-size:10px;font-weight:700}.weekly-calendar-grid{grid-template-columns:repeat(7,minmax(190px,1fr));gap:9px;padding-bottom:5px;display:grid;overflow-x:auto}.calendar-day{background:#f8fafc;border:1px solid #e4eaf1;border-radius:12px;min-width:190px;min-height:270px;overflow:hidden}.calendar-day--today{border-color:#78a9dc;box-shadow:0 0 0 2px #2d6fb71a}.calendar-day>header{background:#fff;border-bottom:1px solid #e7ecf2;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding:12px;display:grid}.calendar-day>header span{color:#65748a;text-transform:uppercase;font-size:10px;font-weight:900}.calendar-day>header strong{color:#17243b;grid-row:span 2;font-size:23px;line-height:1}.calendar-day>header small{color:#8894a6;font-size:9px;font-weight:700}.calendar-day__sessions{align-content:start;gap:8px;padding:9px;display:grid}.calendar-day__empty{color:#9aa4b2;text-align:center;padding:20px 8px;font-size:10px;font-weight:700}.session-card{background:#fff;border:1px solid #e5eaf0;border-left:4px solid #2d6fb7;border-radius:9px;gap:6px;padding:10px 10px 9px;display:grid;box-shadow:0 4px 13px #1c34540d}.session-card--cancelled{opacity:.72;background:#fffafb}.session-card--completed{background:#fbfcfd}.session-card__top{justify-content:space-between;align-items:center;gap:5px;display:flex}.session-card__top strong{color:#24344b;font-size:11px}.session-card .session-status{padding:4px 6px;font-size:7px}.session-card h3{color:#1f2e45;margin:0;font-size:12px;line-height:1.3}.session-card p,.session-card small,.session-card em{color:#718096;margin:0;font-size:9px;line-height:1.45}.session-card em{color:#9b3d4a;font-style:normal;font-weight:700}.session-card__actions{border-top:1px solid #edf0f4;flex-wrap:wrap;gap:7px;padding-top:5px;display:flex}.session-card__actions .text-button{font-size:9px}@media (width<=1280px){.schedule-form-grid--rule-main,.schedule-form-grid--rule-time,.schedule-form-grid--resources,.schedule-toolbar,.session-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-group-field,.schedule-notes-field,.session-group-field,.session-cancel-field,.session-notes-field{grid-column:1/-1}.session-form-grid .field:nth-of-type(n+7){grid-column:auto}}@media (width<=820px){.schedule-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-welcome,.schedule-editor-heading,.weekly-calendar-heading,.session-filter-row{align-items:flex-start;display:grid}.schedule-summary{justify-items:start}.schedule-summary span{text-align:left}.week-navigation{flex-wrap:wrap}.session-filter-note{padding-bottom:0}}@media (width<=620px){.schedule-metrics,.schedule-form-grid--rule-main,.schedule-form-grid--rule-time,.schedule-form-grid--resources,.schedule-toolbar,.session-form-grid{grid-template-columns:1fr}.schedule-group-field,.schedule-notes-field,.session-group-field,.session-cancel-field,.session-notes-field,.session-form-grid .field:nth-of-type(n+7){grid-column:auto}.schedule-form-grid .button{width:100%}}.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}.weekly-calendar-panel{overflow:hidden}.weekly-calendar-heading--room-view{align-items:center;padding-bottom:18px}.calendar-navigation-row,.calendar-view-controls{align-items:center;gap:10px;display:flex}.calendar-nav-button,.calendar-today-button,.calendar-add-button,.calendar-room__add{color:#175fae;font:inherit;cursor:pointer;background:#fff;border:1px solid #d8e2ef;font-weight:900;transition:background .18s,border-color .18s,transform .18s}.calendar-nav-button:hover,.calendar-today-button:hover,.calendar-add-button:hover,.calendar-room__add:hover{background:#eef6ff;border-color:#9bbce0}.calendar-nav-button:active,.calendar-today-button:active,.calendar-add-button:active,.calendar-room__add:active{transform:translateY(1px)}.calendar-nav-button{border-radius:12px;place-items:center;width:44px;height:44px;font-size:26px;line-height:1;display:grid}.calendar-today-button{color:#173f73;border-radius:12px;min-height:44px;padding:0 20px;font-size:14px}.calendar-range-title{color:#17243b;white-space:nowrap;margin-left:4px;font-size:17px;font-weight:900}.calendar-filter-field{min-width:178px}.calendar-filter-field select{color:#52637b;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #dfe6ef;border-radius:12px;padding:0 38px 0 14px;font-size:13px;font-weight:700}.calendar-view-pill{color:#1767c5;background:#eaf3ff;border:1px solid #dbe5f0;border-radius:12px;justify-content:center;align-items:center;min-height:44px;padding:0 19px;font-size:13px;font-weight:900;display:inline-flex}.session-filter-row--compact{margin-bottom:18px}.weekly-calendar-scroll{overscroll-behavior-inline:contain;width:100%;padding:2px 2px 12px;overflow-x:auto}.weekly-calendar-grid--rooms{grid-template-columns:repeat(7,minmax(270px,1fr));gap:16px;min-width:2050px;padding-bottom:0;display:grid;overflow:visible}.weekly-calendar-grid--rooms .calendar-day{background:#fff;border:1px solid #dfe7f1;border-radius:16px;min-width:270px;min-height:430px;overflow:hidden;box-shadow:0 9px 28px #1f3b5e12}.weekly-calendar-grid--rooms .calendar-day--today{border-color:#6ea6df;box-shadow:0 0 0 2px #2d6fb71c,0 9px 28px #1f3b5e14}.calendar-day__header{background:#fff;border-bottom:1px solid #e6ecf3;justify-content:space-between;align-items:center;gap:12px;min-height:74px;padding:15px 16px;display:flex}.calendar-day__header>div{gap:5px;min-width:0;display:grid}.calendar-day__header strong{color:#1c2a42;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;overflow:hidden}.calendar-day__header small{color:#8794a8;font-size:10px;font-weight:700}.calendar-add-button{background:#e8f2ff;border:0;border-radius:10px;flex:none;place-items:center;width:38px;height:38px;font-size:25px;line-height:1;display:grid}.calendar-day__rooms{background:#f8fafc;align-content:start;gap:14px;padding:14px;display:grid}.calendar-day__empty{color:#99a5b5;text-align:center;place-items:center;min-height:120px;padding:24px 10px;font-size:11px;font-weight:800;display:grid}.calendar-room{background:#f5f9fe;border:1px solid #dce6f1;border-radius:14px;overflow:hidden}.calendar-room__header{background:#e9f3ff;border-bottom:1px solid #d7e5f5;justify-content:space-between;align-items:center;gap:10px;min-height:50px;padding:10px 11px 10px 13px;display:flex}.calendar-room__header>div,.calendar-room__meta{align-items:center;gap:7px;display:flex}.calendar-room__header>div:first-child{min-width:0}.calendar-room__header strong{color:#1767c5;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:900;overflow:hidden}.calendar-room__icon{color:#3f8bd9;font-size:14px}.calendar-room__meta>span{color:#1767c5;white-space:nowrap;font-size:10px;font-weight:800}.calendar-room__add{background:#d9eaff;border:0;border-radius:9px;place-items:center;width:32px;height:32px;font-size:22px;line-height:1;display:grid}.calendar-room__sessions{gap:9px;padding:9px;display:grid}.weekly-calendar-grid--rooms .session-card{background:#fff;border:1px solid #edf1f5;border-left:5px solid #2d6fb7;border-radius:11px;gap:5px;padding:11px 11px 10px 12px;display:grid;position:relative;box-shadow:0 4px 13px #1c34540d}.weekly-calendar-grid--rooms .session-card--type-regular{border-left-color:var(--lesson-regular-colour)}.weekly-calendar-grid--rooms .session-card--type-makeup{border-left-color:var(--lesson-makeup-colour)}.weekly-calendar-grid--rooms .session-card--type-trial{border-left-color:var(--lesson-trial-colour)}.weekly-calendar-grid--rooms .session-card--type-assessment{border-left-color:var(--lesson-assessment-colour)}.weekly-calendar-grid--rooms .session-card--type-other{border-left-color:var(--lesson-other-colour)}.weekly-calendar-grid--rooms .session-card--cancelled{opacity:.72;background:#fff9fa}.weekly-calendar-grid--rooms .session-card--completed{background:#fbfcfd}.session-card__time{color:#175a9f;letter-spacing:-.01em;font-size:11px;font-weight:900}.weekly-calendar-grid--rooms .session-card h3{color:#1e2c42;margin:0;font-size:12px;line-height:1.3}.session-card__detail{color:#68788f;overflow-wrap:anywhere;margin:0;font-size:9.5px;line-height:1.45}.session-card__detail strong{color:#4b5b72;font-weight:900}.session-card__badges{flex-wrap:wrap;gap:5px;padding-top:2px;display:flex}.session-type-badge{color:#6d3f82;text-transform:uppercase;background:#f3e8f8;border-radius:999px;padding:4px 6px;font-size:7px;font-weight:900;display:inline-flex}.weekly-calendar-grid--rooms .session-card__actions{gap:6px;margin-top:3px;padding-top:6px}.weekly-calendar-grid--rooms .session-card__actions .text-button{font-size:8px}.calendar-legend{color:#758399;flex-wrap:wrap;align-items:center;gap:14px;padding-top:13px;font-size:10px;font-weight:700;display:flex}.calendar-legend>span{align-items:center;gap:6px;display:inline-flex}.calendar-legend small{color:#8491a3;margin-left:2px;font-size:9px}.calendar-legend__dot{border-radius:50%;width:8px;height:8px;display:inline-block}.calendar-legend__dot--regular{background:var(--lesson-regular-colour)}.calendar-legend__dot--makeup{background:var(--lesson-makeup-colour)}.calendar-legend__dot--trial{background:var(--lesson-trial-colour)}.calendar-legend__dot--assessment{background:var(--lesson-assessment-colour)}.calendar-legend__dot--other{background:var(--lesson-other-colour)}@media (width<=1120px){.weekly-calendar-heading--room-view{align-items:flex-start;display:grid}.calendar-view-controls{width:100%}.calendar-filter-field{flex:180px}}@media (width<=700px){.calendar-navigation-row{flex-wrap:wrap}.calendar-range-title{width:100%;margin:4px 0 0}.calendar-view-controls{flex-wrap:wrap;align-items:stretch}.calendar-filter-field{min-width:min(100%,170px)}.calendar-view-pill{flex:none}.weekly-calendar-grid--rooms{grid-template-columns:repeat(7,minmax(255px,1fr));gap:12px;min-width:1940px}}.attendance-page{--attendance-present:#1d9b62;--attendance-late:#e08a19;--attendance-absent:#d94a5a;--attendance-excused:#7357d8;--attendance-unmarked:#94a1b2}.attendance-welcome{align-items:center}.attendance-week-summary{justify-items:end;gap:6px;min-width:210px;display:grid}.attendance-week-summary strong{color:#17243b;font-size:40px;line-height:1}.attendance-week-summary span{color:#728096;text-align:right;max-width:220px;font-size:11px;font-weight:800;line-height:1.45}.attendance-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.attendance-metrics article{background:#fff;border:1px solid #e0e6ee;border-radius:14px;gap:7px;padding:18px 20px;display:grid;box-shadow:0 8px 28px #1a365b0d}.attendance-metrics span{color:#65748a;font-size:11px;font-weight:800}.attendance-metrics strong{color:#17243b;font-size:28px;line-height:1}.attendance-metrics strong small{color:#8e9bad;font-size:14px;font-weight:800}.attendance-control-panel{padding:0;overflow:hidden}.attendance-navigation{background:#fbfcfe;border-bottom:1px solid #e7ecf2;justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:16px 18px;display:flex}.attendance-week-controls,.attendance-filters{align-items:center;gap:10px;display:flex}.attendance-range{color:#1b2940;white-space:nowrap;margin-left:3px;font-size:14px;font-weight:900}.attendance-filters label{min-width:165px}.attendance-filters select,.attendance-filters input{color:#52637b;border-color:#dfe6ef;border-radius:11px;min-height:42px;font-size:12px;font-weight:700}.attendance-search{min-width:270px!important}.attendance-control-panel>.alert,.attendance-success{margin:14px 18px 0}.attendance-success{color:#17693f;background:#e9f8ef;border:1px solid #cbead8;border-radius:10px;padding:13px 15px;font-size:12px;font-weight:750}.attendance-loading{color:#7c899a;place-items:center;min-height:420px;font-size:12px;font-weight:800;display:grid}.attendance-workspace{grid-template-columns:minmax(300px,.34fr) minmax(0,1fr);min-height:610px;display:grid}.attendance-session-pane{background:#f7f9fc;border-right:1px solid #e3e9f0;min-width:0}.attendance-pane-heading{background:#fff;border-bottom:1px solid #e5eaf1;justify-content:space-between;align-items:flex-start;gap:12px;min-height:76px;padding:17px 17px 14px;display:flex}.attendance-pane-heading .section-label{margin-bottom:5px}.attendance-pane-heading h2{color:#26344a;margin:0;font-size:16px}.attendance-session-list{align-content:start;gap:10px;max-height:780px;padding:12px;display:grid;overflow-y:auto}.attendance-empty-list{color:#8a96a7;text-align:center;padding:34px 18px;font-size:11px;font-weight:700;line-height:1.55}.attendance-session-card{width:100%;min-height:118px;color:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #e1e7ef;border-radius:12px;grid-template-columns:5px minmax(0,1fr) auto;gap:11px;padding:12px 11px 12px 0;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 14px #1e37580a}.attendance-session-card:hover{border-color:#a9c7e8;transform:translateY(-1px);box-shadow:0 7px 20px #20487614}.attendance-session-card--selected{border-color:#6fa5dd;box-shadow:0 0 0 2px #2d6fb71a}.attendance-session-accent{border-radius:0 999px 999px 0;align-self:stretch}.attendance-session-copy{align-content:start;gap:5px;min-width:0;display:grid}.attendance-session-date{color:#175b9e;font-size:10px;font-weight:900;line-height:1.35}.attendance-session-copy strong{color:#213048;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.attendance-session-copy small{color:#7a879a;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.35;overflow:hidden}.attendance-session-result{align-content:start;justify-items:end;gap:6px;min-width:88px;display:grid}.attendance-session-result small{color:#8a96a7;white-space:nowrap;font-size:8px;font-weight:800}.attendance-progress,.attendance-status-pill{text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:5px 7px;font-size:8px;font-weight:900;display:inline-flex}.attendance-progress--complete{color:#137044;background:#e5f7ed}.attendance-progress--unmarked{color:#8a5a09;background:#faedcf}.attendance-progress--not-started{color:#52657d;background:#eaf0f6}.attendance-progress--cancelled{color:#913a46;background:#fbe8eb}.attendance-register-pane{background:#fff;min-width:0}.attendance-register-empty{color:#7c899a;text-align:center;align-content:center;place-items:center;gap:10px;min-height:580px;padding:35px;display:grid}.attendance-register-empty h2,.attendance-register-empty h3{color:#26344a;margin:0}.attendance-register-empty p{max-width:500px;margin:0;font-size:12px;line-height:1.6}.attendance-register-empty--inside{min-height:400px}.attendance-register-header{border-bottom:1px solid #e5eaf1;justify-content:space-between;align-items:center;gap:18px;min-height:112px;padding:18px 20px;display:flex}.attendance-register-title{align-items:stretch;gap:13px;min-width:0;display:flex}.attendance-register-colour{border-radius:999px;flex:none;width:7px}.attendance-register-title>div{min-width:0}.attendance-register-title .section-label{margin-bottom:4px}.attendance-register-title h2{color:#1d2c43;margin:0 0 6px;font-size:20px}.attendance-register-title p{color:#718096;margin:3px 0 0;font-size:10px;font-weight:700}.attendance-register-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.attendance-register-actions .button{white-space:nowrap;min-height:40px;padding:9px 13px;font-size:10px}.attendance-cancelled-note,.attendance-readonly-note{border-radius:9px;margin:14px 18px 0;padding:11px 13px;font-size:10px;font-weight:700;line-height:1.5}.attendance-cancelled-note{color:#8a3540;background:#fff0f2;border:1px solid #f2d3d8}.attendance-readonly-note{color:#52657d;background:#f2f6fa;border:1px solid #dde5ed}.attendance-register-summary{color:#65748a;background:#fbfcfe;border-bottom:1px solid #e8edf3;flex-wrap:wrap;align-items:center;gap:13px;padding:13px 18px;font-size:9px;font-weight:750;display:flex}.attendance-register-summary>span{align-items:center;gap:6px;display:inline-flex}.attendance-register-summary strong{color:#26344a}.attendance-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.attendance-dot--present{background:var(--attendance-present)}.attendance-dot--late{background:var(--attendance-late)}.attendance-dot--absent{background:var(--attendance-absent)}.attendance-dot--excused{background:var(--attendance-excused)}.attendance-dot--unmarked{background:var(--attendance-unmarked)}.attendance-table-wrap{width:100%;overflow:auto}.attendance-table{border-collapse:collapse;width:100%;min-width:1220px}.attendance-table th,.attendance-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f4;padding:12px 11px}.attendance-table th{z-index:2;color:#758398;letter-spacing:.05em;text-transform:uppercase;background:#f7f9fc;font-size:9px;font-weight:900;position:sticky;top:0}.attendance-table td{color:#526178;font-size:10px}.attendance-table tbody tr:last-child td{border-bottom:0}.attendance-table tbody tr:hover td{background:#fbfdff}.attendance-table input,.attendance-table select{border-radius:8px;min-height:38px;padding:7px 9px;font-size:10px}.attendance-student-cell{align-items:center;gap:9px;min-width:210px;display:flex}.attendance-student-cell>span:first-child{color:#1766bd;background:#e8f2fd;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:900;display:grid}.attendance-student-cell>span:last-child,.attendance-marked-cell{gap:4px;min-width:0;display:grid}.attendance-student-cell strong,.attendance-marked-cell strong{color:#28364d;font-size:10px}.attendance-student-cell small,.attendance-marked-cell small{color:#8a96a7;font-size:8px}.attendance-status-select{min-width:105px;font-weight:850}.attendance-status-select--present,.attendance-status-pill--present{color:#137044;background:#e7f8ef;border-color:#bce6cd}.attendance-status-select--late,.attendance-status-pill--late{color:#85520a;background:#fff0d8;border-color:#efd3a8}.attendance-status-select--absent,.attendance-status-pill--absent{color:#963847;background:#fde8eb;border-color:#efc5cb}.attendance-status-select--excused,.attendance-status-pill--excused{color:#6046b8;background:#eee9ff;border-color:#d6ccf8}.attendance-status-select--unmarked,.attendance-status-pill--unmarked{color:#59697e;background:#edf2f7;border-color:#d9e1e9}.attendance-time-input{min-width:108px}.attendance-minutes-input{width:88px!important}.attendance-table td:nth-child(5) input,.attendance-table td:nth-child(6) input{min-width:160px}.attendance-footer-actions{background:#fbfcfe;border-top:1px solid #e7ecf2;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.attendance-footer-actions span{color:#718096;font-size:10px;font-weight:700;line-height:1.5}.attendance-footer-actions .button{min-width:140px}@media (width<=1280px){.attendance-navigation{align-items:flex-start;display:grid}.attendance-filters{width:100%}.attendance-filters label{flex:150px}.attendance-search{flex:2 260px!important}.attendance-workspace{grid-template-columns:minmax(280px,.38fr) minmax(0,1fr)}.attendance-register-header{align-items:flex-start;display:grid}.attendance-register-actions{justify-content:flex-start}}@media (width<=920px){.attendance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-welcome{align-items:flex-start;display:grid}.attendance-week-summary{justify-items:start}.attendance-week-summary span{text-align:left}.attendance-workspace{display:block}.attendance-session-pane{border-bottom:1px solid #e3e9f0;border-right:0}.attendance-session-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:390px}.attendance-register-empty{min-height:360px}}@media (width<=700px){.attendance-navigation,.attendance-register-header{padding:14px}.attendance-week-controls,.attendance-filters{flex-wrap:wrap;align-items:stretch}.attendance-range{width:100%;margin:4px 0 0}.attendance-filters label,.attendance-search{min-width:100%!important}.attendance-session-list{grid-template-columns:1fr}.attendance-footer-actions{align-items:stretch;display:grid}.attendance-footer-actions .button{width:100%}}@media (width<=560px){.attendance-metrics{grid-template-columns:1fr}.attendance-register-actions{align-items:stretch;display:grid}.attendance-register-actions .button{width:100%}}.finance-page{--finance-green:#177245;--finance-red:#a83d49;--finance-amber:#9a650e;--finance-purple:#6750b8}.finance-welcome{background:radial-gradient(circle at 92% 12%,#208f5b1f,#0000 31%),linear-gradient(110deg,#fffffffc,#f3f9f7f2)}.finance-welcome p{max-width:760px}.finance-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.finance-metrics .metric-card strong{font-size:clamp(22px,2.3vw,30px)}.finance-success{color:#126a41;background:#e7f8ef;border:1px solid #bee7d0;border-radius:10px;padding:13px 15px;font-size:12px;font-weight:750}.finance-editor{padding:0;overflow:hidden}.finance-editor-heading{background:#fbfcfe;border-bottom:1px solid #e7ecf2;margin:0;padding:22px 23px}.finance-editor form{padding:22px 23px}.finance-form-grid{grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;display:grid}.finance-form-grid label,.finance-item-row label,.finance-payment-form label,.finance-filters label{color:#66758a;text-transform:uppercase;gap:6px;font-size:9px;font-weight:850;display:grid}.finance-form-grid input,.finance-form-grid select,.finance-item-row input,.finance-item-row select,.finance-payment-form input,.finance-payment-form select,.finance-filters input,.finance-filters select{text-transform:none;border-radius:8px;min-height:40px;padding:8px 10px;font-size:11px}.finance-notes-field{grid-column:span 2}.finance-items-heading,.finance-section-heading,.finance-toolbar,.finance-pane-heading,.finance-editor-footer,.finance-detail-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.finance-items-heading{border-top:1px solid #e8edf3;margin:24px 0 12px;padding-top:20px}.finance-items-heading h3,.finance-section-heading h3,.finance-toolbar h2{color:#26344a;margin:3px 0 0}.finance-items-heading h3,.finance-section-heading h3{font-size:15px}.finance-item-list{gap:9px;display:grid}.finance-item-row{background:#f8fafc;border:1px solid #e7ecf2;border-radius:11px;grid-template-columns:30px 105px minmax(190px,1.4fr) minmax(150px,1fr) 88px 115px 126px 126px minmax(116px,auto) 30px;align-items:end;gap:8px;padding:12px;display:grid;position:relative}.finance-item-number{color:#1766bd;background:#e8f2fd;border-radius:8px;align-self:center;place-items:center;width:28px;height:28px;font-size:10px;font-weight:900;display:grid}.finance-item-total{background:#fff;border:1px solid #e0e6ee;border-radius:8px;align-content:center;justify-items:end;gap:3px;min-height:40px;padding:7px 9px;display:grid}.finance-item-total span{color:#8995a5;text-transform:uppercase;font-size:8px;font-weight:850}.finance-item-total strong{color:#27354b;white-space:nowrap;font-size:10px}.finance-remove-item{color:#a83d49;background:#fff0f2;border:0;border-radius:8px;align-self:center;width:30px;height:30px;font-size:18px}.finance-remove-item:disabled{color:#aab4c0;background:#edf1f5}.finance-editor-footer{border-top:1px solid #e7ecf2;align-items:flex-end;margin-top:18px;padding-top:18px}.finance-draft-totals{gap:7px;min-width:300px;display:grid}.finance-draft-totals span{color:#718096;justify-content:space-between;gap:24px;font-size:11px;display:flex}.finance-draft-totals strong{color:#27354b}.finance-draft-total{border-top:1px solid #dde5ed;padding-top:8px;font-weight:850;color:#27354b!important;font-size:14px!important}.finance-editor-actions{gap:8px;display:flex}.finance-directory-panel{padding:0;overflow:hidden}.finance-toolbar{border-bottom:1px solid #e4eaf0;align-items:flex-end;padding:20px 22px}.finance-toolbar h2{font-size:20px}.finance-filters{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:9px;display:flex}.finance-filters label{min-width:145px}.finance-search{min-width:245px!important}.finance-workspace{grid-template-columns:minmax(300px,.35fr) minmax(0,1fr);min-height:720px;display:grid}.finance-invoice-pane{background:#f8fafc;border-right:1px solid #e3e9f0;min-width:0}.finance-pane-heading{border-bottom:1px solid #e3e9f0;min-height:53px;padding:12px 14px}.finance-pane-heading strong{color:#42536a;text-transform:uppercase;font-size:10px}.finance-invoice-list{gap:8px;max-height:760px;padding:10px;display:grid;overflow:auto}.finance-invoice-card{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #e2e8ef;border-radius:11px;gap:7px;padding:13px;display:grid;box-shadow:0 3px 10px #19345809}.finance-invoice-card:hover,.finance-invoice-card--active{border-color:#8bb9e9;box-shadow:0 0 0 2px #1766bd14}.finance-invoice-card--active{background:#f4f9fe}.finance-invoice-card-top,.finance-invoice-card-amounts{justify-content:space-between;align-items:center;gap:10px;display:flex}.finance-invoice-card-top>strong{color:#223149;font-size:11px}.finance-card-student{color:#3d4d63;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;overflow:hidden}.finance-invoice-card>small{color:#8390a1;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.finance-invoice-card-amounts{border-top:1px solid #edf1f5;margin-top:2px;padding-top:8px}.finance-invoice-card-amounts span{color:#8b97a7;text-transform:uppercase;gap:2px;font-size:8px;display:grid}.finance-invoice-card-amounts span:last-child{justify-items:end}.finance-invoice-card-amounts strong{color:#2b3b52;text-transform:none;font-size:10px}.finance-status,.finance-payment-status{text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;width:fit-content;padding:5px 7px;font-size:8px;font-weight:900;display:inline-flex}.finance-status--draft{color:#5e6d80;background:#eaf0f6}.finance-status--issued{color:#145da8;background:#e7f2fd}.finance-status--part_paid{color:var(--finance-amber);background:#fff0d5}.finance-status--paid{color:var(--finance-green);background:#e6f7ee}.finance-status--void{color:var(--finance-red);background:#fbe9eb}.finance-detail-pane{background:#fff;min-width:0}.finance-empty-detail{text-align:center;align-content:center;place-items:center;gap:8px;min-height:650px;padding:30px;display:grid}.finance-empty-detail h2{color:#28364d;margin:0}.finance-empty-detail p{color:#7b899c;max-width:440px;margin:0;font-size:11px;line-height:1.6}.finance-detail-header{border-bottom:1px solid #e5eaf1;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px;display:flex}.finance-detail-header h2{color:#1e2d44;margin:4px 0 5px;font-size:24px}.finance-detail-header p{color:#718096;margin:0;font-size:11px;font-weight:700}.finance-detail-status{justify-items:end;gap:7px;display:grid}.finance-detail-status small{color:#909baa;font-size:8px}.finance-balance-grid{background:#fbfcfe;border-bottom:1px solid #e7ecf2;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:17px 22px;display:grid}.finance-balance-grid>div{background:#fff;border:1px solid #e6ebf1;border-radius:10px;gap:5px;padding:12px;display:grid}.finance-balance-grid span{color:#7f8c9e;text-transform:uppercase;font-size:8px;font-weight:850}.finance-balance-grid strong{color:#26354b;font-size:15px}.finance-balance-due strong{color:var(--finance-red)}.finance-detail-actions{border-bottom:1px solid #e7ecf2;flex-wrap:wrap;justify-content:flex-start;padding:13px 22px}.finance-void-note,.finance-readonly-note,.finance-invoice-note{border-radius:9px;margin:15px 22px 0;padding:11px 13px;font-size:10px;line-height:1.5}.finance-void-note{color:#8f3541;background:#fff0f2;border:1px solid #f0d0d5;gap:4px;display:grid}.finance-readonly-note{color:#53667d;background:#f2f6fa;border:1px solid #dde5ed}.finance-invoice-note{color:#586a81;background:#f6f8fb;border:1px solid #e6ebf1;margin:12px 0 0}.finance-detail-section,.finance-payment-form-section{border-bottom:1px solid #e7ecf2;padding:22px}.finance-section-heading{align-items:flex-end;margin-bottom:13px}.finance-section-heading>span{color:#8390a1;font-size:9px;font-weight:750}.finance-line-table-wrap{border:1px solid #e3e9f0;border-radius:10px;overflow:auto}.finance-line-table{border-collapse:collapse;width:100%;min-width:720px}.finance-line-table th,.finance-line-table td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1f5;padding:11px 12px}.finance-line-table th{color:#77869a;text-transform:uppercase;background:#f7f9fc;font-size:8px;font-weight:900}.finance-line-table td{color:#526178;font-size:10px}.finance-line-table td:first-child{min-width:220px}.finance-line-table td strong,.finance-line-table td small{display:block}.finance-line-table td strong{color:#28364c;font-size:10px}.finance-line-table td small{color:#8b97a7;margin-top:3px;font-size:8px}.finance-line-table td:last-child,.finance-line-table th:last-child,.finance-line-table tfoot td:last-child{text-align:right;white-space:nowrap}.finance-line-table tfoot td{color:#53637a;background:#fbfcfe;font-weight:750}.finance-line-table tfoot td:first-child{text-align:right}.finance-line-table .finance-table-total td{color:#26344a;border-bottom:0;font-size:12px;font-weight:900}.finance-negative{color:var(--finance-red)!important}.finance-payment-list{gap:8px;display:grid}.finance-payment{background:#f8fafc;border:1px solid #e6ebf1;border-radius:10px;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.finance-payment--void{opacity:.7}.finance-payment-icon{color:#177245;background:#e5f6ed;border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;font-weight:900;display:grid}.finance-payment-copy{gap:3px;min-width:0;display:grid}.finance-payment-copy strong{color:#26344a;font-size:11px}.finance-payment-copy span,.finance-payment-copy small{color:#7e8b9d;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.finance-payment-status--confirmed{color:#137044;background:#e5f7ed}.finance-payment-status--void{color:#913a46;background:#fbe8eb}.finance-payment-form-section{background:#fbfcfe}.finance-payment-form{grid-template-columns:125px 145px 145px minmax(150px,1fr) minmax(180px,1.2fr) auto;align-items:end;gap:9px;display:grid}.finance-payment-form .button{white-space:nowrap;min-height:40px;padding:8px 13px;font-size:10px}@media (width<=1500px){.finance-form-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.finance-notes-field{grid-column:span 1}.finance-item-row{grid-template-columns:30px 105px minmax(190px,1fr) minmax(150px,1fr) 88px 115px 30px}.finance-item-row label:nth-of-type(6),.finance-item-row label:nth-of-type(7),.finance-item-total{grid-row:2}.finance-item-row label:nth-of-type(6){grid-column:2/span 2}.finance-item-row label:nth-of-type(7){grid-column:4/span 2}.finance-item-total{grid-column:6}.finance-payment-form{grid-template-columns:repeat(3,minmax(140px,1fr))}.finance-payment-notes{grid-column:span 2}}@media (width<=1180px){.finance-toolbar{align-items:flex-start;display:grid}.finance-filters{justify-content:flex-start;width:100%}.finance-filters label{flex:150px}.finance-search{flex:2 240px!important}.finance-workspace{grid-template-columns:minmax(280px,.38fr) minmax(0,1fr)}.finance-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=920px){.finance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-welcome{align-items:flex-start;display:grid}.finance-workspace{display:block}.finance-invoice-pane{border-bottom:1px solid #e3e9f0;border-right:0}.finance-invoice-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:420px}.finance-form-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.finance-item-row{grid-template-columns:30px repeat(2,minmax(0,1fr)) 30px}.finance-item-row label,.finance-item-row label:nth-of-type(6),.finance-item-row label:nth-of-type(7),.finance-item-total{grid-area:auto}.finance-item-description{grid-column:span 2!important}.finance-editor-footer{align-items:stretch;display:grid}.finance-editor-actions{justify-content:flex-end}}@media (width<=700px){.finance-metrics,.finance-form-grid,.finance-invoice-list,.finance-balance-grid,.finance-payment-form{grid-template-columns:1fr}.finance-toolbar,.finance-detail-header,.finance-section-heading{align-items:flex-start;display:grid}.finance-filters,.finance-filters label,.finance-search{width:100%;min-width:100%!important}.finance-item-row{grid-template-columns:30px minmax(0,1fr) 30px}.finance-item-row label,.finance-item-description,.finance-item-total{grid-column:2!important}.finance-remove-item{grid-area:1/3}.finance-editor-actions{display:grid}.finance-editor-actions .button{width:100%}.finance-payment{grid-template-columns:36px minmax(0,1fr) auto}.finance-payment .text-button{grid-column:2/-1;justify-self:start}.finance-payment-notes{grid-column:auto}.finance-detail-status{justify-items:start}}
