:root{--ink:#101711;--ink-2:#263229;--muted:#6f7b72;--muted-2:#909a92;--line:#e4e9e5;--line-dark:#d6ded8;--bg:#f6f8f6;--card:#ffffff;--green:#17db57;--green-2:#0fc94d;--green-dark:#0b5a2c;--brand-dark:#0c140e;--green-soft:#e7fbed;--yellow-soft:#fff5ce;--yellow:#eeae00;--blue-soft:#e9f2ff;--blue:#3f7edb;--lilac-soft:#f0eaff;--lilac:#7d5dd4;--peach-soft:#fff0e7;--red-soft:#ffebea;--red:#db4a42;--shadow:0 10px 30px rgba(24,45,30,0.055);--shadow-lg:0 28px 70px rgba(18,36,23,0.17)}body{font-size:15px}.branding-help,.detail-grid span,.eyebrow,.form-notice,.integration-strip small,.placeholder-row small,.sidebar small,.topbar small,.warning-note,small{font-size:13px!important;line-height:1.45}button,input,label,select,textarea{font-size:14px}.school-settings-stack{display:grid;gap:18px}.integration-settings-card{padding:24px}.integration-provider-grid{display:grid;gap:10px;margin-top:18px}.integration-provider-grid>div{align-items:center;border:1px solid var(--line);border-radius:14px;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto auto;padding:13px}.integration-provider-grid>div>span:nth-child(2){display:grid;gap:3px}.integration-provider-grid small{color:var(--muted)}.integration-editor-modal{max-height:min(820px,92vh);overflow:auto}.attendance-register-modal{max-height:min(860px,94vh);overflow:auto}.attendance-register-list{border:1px solid var(--line);border-radius:15px;display:grid;margin-top:18px;max-height:430px;overflow:auto}.attendance-register-list>div{align-items:center;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) minmax(130px,180px);padding:11px 13px}.attendance-register-list>div:last-child{border-bottom:0}.attendance-register-list>div>span:nth-child(2){display:grid}.history-filter-tools{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.history-filter-tools>select{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-height:42px;padding:0 12px}.record-management-panel{background:#f7faf8;border:1px solid var(--line);border-radius:15px;margin-top:18px;padding:17px}.record-management-panel h3{margin:0 0 14px}.record-management-actions{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end;margin-top:13px}.detail-profile-photo,.profile-menu-photo{border-radius:50%;height:44px;object-fit:cover;width:44px}.profile-upload-button{align-items:center;cursor:pointer;display:flex;gap:10px;padding:10px 13px}.profile-upload-button input{display:none}.lesson-detail-modal{max-height:94vh;max-width:980px;overflow:auto;width:min(980px,94vw)}.lesson-edit-toolbar{align-items:center;display:flex;justify-content:space-between;margin:12px 0}.formatted-lesson{background:white;border:1px solid var(--line);border-radius:15px;color:#17211b;font-size:15px;line-height:1.72;padding:clamp(20px,4vw,42px)}.formatted-lesson h2{font-size:25px;margin:0 0 22px}.formatted-lesson h3{border-bottom:1px solid #e4ebe6;color:#0b6f47;font-size:18px;margin:28px 0 12px;padding-bottom:7px}.formatted-lesson p{margin:8px 0}.formatted-lesson .lesson-bullet{padding-left:20px;position:relative}.formatted-lesson .lesson-bullet:before{color:var(--green);content:"•";left:5px;position:absolute}.lesson-editor{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.6;min-height:520px;width:100%}.lesson-status-field{display:grid;gap:7px;margin-top:12px}@media (max-width:720px){.integration-provider-grid>div{grid-template-columns:auto minmax(0,1fr)}.integration-provider-grid .button,.integration-provider-grid .status-pill{grid-column:2;justify-self:start}.attendance-register-list>div{grid-template-columns:auto minmax(0,1fr)}.attendance-register-list select{grid-column:2}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-geist-sans),Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(23,219,87,.26);outline-offset:2px}button,select{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;width:264px;flex-direction:column;background:var(--brand-dark);color:#f7fff9;box-shadow:8px 0 25px rgba(8,18,10,.05)}.sidebar-top{display:flex;height:76px;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid rgba(255,255,255,.08)}.logo{display:inline-flex;align-items:center;gap:10px}.logo-mark{position:relative;width:25px;height:25px;transform:rotate(45deg);border:3px solid var(--green);border-radius:5px 11px 5px 11px}.logo-mark span{position:absolute;width:7px;height:7px;top:6px;left:6px;border-radius:2px;background:var(--green)}.logo-type{font-size:22px;font-weight:760;letter-spacing:-1px;color:#fff}.logo-type span{color:var(--green)}.custom-logo{width:30px;height:30px;object-fit:contain;flex:none}.custom-logo-name{overflow:hidden;max-width:165px;color:#fff;font-size:16px;font-weight:760;letter-spacing:-.4px;text-overflow:ellipsis;white-space:nowrap}.mobile-logo .custom-logo-name,.mobile-wordmark .custom-logo-name{color:var(--ink)}.school-crest img{width:72%;height:72%;object-fit:contain}.school-switcher{display:flex;width:calc(100% - 28px);align-items:center;gap:11px;margin:17px 14px 10px;padding:11px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.055);text-align:left;transition:.2s ease}.school-switcher:hover{background:rgba(255,255,255,.09);border-color:rgba(23,219,87,.3)}.school-switcher>span:nth-child(2){display:flex;min-width:0;flex:1 1;flex-direction:column}.school-switcher b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.school-switcher small{margin-top:2px;color:#9aa89e;font-size:11px}.school-switcher>svg{transform:rotate(90deg);color:#8b988e}.school-crest{display:grid;width:51px;height:51px;place-items:center;flex:none;border-radius:16px;background:var(--green);color:#0b351a;font-size:24px;font-weight:850;box-shadow:inset 0 0 0 4px rgba(255,255,255,.32)}.school-crest.small{width:38px;height:38px;border-radius:11px;font-size:17px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.25)}.platform-badge{display:flex;align-items:center;gap:11px;margin:17px 14px 10px;padding:12px;border:1px solid rgba(23,219,87,.22);border-radius:13px;background:rgba(23,219,87,.08)}.platform-badge>span{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:var(--green);color:#093418}.platform-badge p{display:flex;flex-direction:column;margin:0}.platform-badge b{font-size:13px}.platform-badge small{margin-top:2px;color:#95a59a;font-size:11px}.main-nav{flex:1 1;overflow-y:auto;padding:8px 13px 15px;scrollbar-width:thin;scrollbar-color:#314137 transparent}.main-nav>p{margin:12px 12px 8px;color:#78867b;font-size:9.5px;font-weight:750;letter-spacing:1.25px;text-transform:uppercase}.main-nav>button,.sidebar-bottom>button{position:relative;display:flex;width:100%;height:42px;align-items:center;gap:12px;margin:2px 0;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#a9b5ac;font-size:13px;font-weight:560;text-align:left;transition:.18s ease}.main-nav>button:hover,.sidebar-bottom>button:hover{background:rgba(255,255,255,.055);color:#fff}.main-nav>button.active{background:var(--green);color:#0b2514;font-weight:720;box-shadow:0 7px 18px rgba(23,219,87,.16)}.main-nav>button.active:before{position:absolute;left:-13px;width:3px;height:20px;border-radius:0 4px 4px 0;background:var(--green);content:""}.main-nav>button span{min-width:0;flex:1 1;white-space:nowrap}.main-nav>button b{min-width:23px;padding:2px 6px;border-radius:20px;background:rgba(255,255,255,.08);color:#c4cec6;font-size:10px;font-weight:680;text-align:center}.main-nav>button.active b{background:rgba(8,44,21,.12);color:#0b351a}.main-nav>button em{padding:2px 6px;border-radius:20px;background:rgba(23,219,87,.14);color:var(--green);font-size:9px;font-style:normal;font-weight:800;letter-spacing:.5px}.main-nav>button.active em{background:#0a2f18}.sidebar-bottom{padding:11px 13px 14px;border-top:1px solid rgba(255,255,255,.07)}.sidebar-bottom>button i{width:6px;height:6px;margin-left:auto;border-radius:50%;background:var(--green)}.sidebar-plan{display:flex;gap:10px;margin-top:9px;padding:12px;border-radius:12px;background:rgba(255,255,255,.055)}.plan-icon{display:grid;width:31px;height:31px;place-items:center;flex:none;border-radius:9px;background:rgba(23,219,87,.14);color:var(--green)}.sidebar-plan>div{display:flex;min-width:0;flex:1 1;flex-direction:column}.sidebar-plan b{font-size:11px}.sidebar-plan small{margin:2px 0 7px;color:#859188;font-size:9px}.sidebar-plan .progress-track{height:3px;background:rgba(255,255,255,.09)}.app-main{min-height:100vh;margin-left:264px}.topbar{position:sticky;top:0;z-index:30;height:76px;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.desktop-breadcrumb,.profile-button,.topbar,.topbar-actions,.topbar-left{display:flex;align-items:center}.desktop-breadcrumb{gap:7px;font-size:12px}.desktop-breadcrumb span{color:var(--muted)}.desktop-breadcrumb svg{color:#abb4ad}.desktop-breadcrumb b{font-weight:680}.topbar-actions{gap:10px}.top-search{display:flex;width:230px;height:39px;align-items:center;gap:9px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#f8faf8;color:#8d978f;font-size:11px}.top-search span{flex:1 1;text-align:left}.top-search kbd{padding:3px 6px;border:1px solid var(--line-dark);border-radius:5px;background:#fff;color:#7d887f;font-family:inherit;font-size:9px}.menu-button,.notification-button{position:relative;display:grid;width:39px;height:39px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff}.icon-button:hover,.notification-button:hover{border-color:#c7d1ca;background:#f6f9f7}.notification-button i{position:absolute;top:7px;right:7px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#ff524a}.top-divider{width:1px;height:28px;margin:0 3px;background:var(--line)}.profile-button{gap:9px;padding:3px 2px 3px 3px;border:0;background:transparent;text-align:left}.profile-button>span:nth-child(2){display:flex;min-width:135px;flex-direction:column}.profile-button b{font-size:11px;font-weight:720}.profile-button small{margin-top:1px;color:var(--muted);font-size:9px}.profile-button>svg{transform:rotate(90deg);color:#8c968e}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;color:#203126;font-weight:760}.avatar-sm{width:31px;height:31px;font-size:9px}.avatar-md{width:36px;height:36px;font-size:10px}.avatar-lg{width:54px;height:54px;font-size:14px}.avatar-green,.avatar-mint{background:#dff9e8;color:#146633}.avatar-blue{background:var(--blue-soft);color:#3569b3}.avatar-lilac{background:var(--lilac-soft);color:#6c50bb}.avatar-peach{background:var(--peach-soft);color:#a75e32}.avatar-yellow{background:var(--yellow-soft);color:#936d0b}.avatar-pink{background:#ffe7ef;color:#a44467}.avatar-dark{background:#18271c;color:var(--green)}.avatar-grey{background:#edf1ee;color:#68736b}.page-container{padding:30px}.page{width:min(1420px,100%);margin:0 auto;animation:page-in .28s ease both}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-header{display:flex;min-height:66px;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-header h1{margin:3px 0 5px;font-size:clamp(24px,2.1vw,31px);font-weight:750;letter-spacing:-1.05px}.page-header>div:first-child>p:not(.eyebrow){margin:0;color:var(--muted);font-size:12.5px;line-height:1.55}.eyebrow{margin:0;color:var(--muted-2);font-size:9.5px;font-weight:760;letter-spacing:1px;text-transform:uppercase}.page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:9px}.button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-size:11px;font-weight:690;transition:.18s ease}.button.primary{border-color:#0b2012;background:var(--green);color:#0c2f18;box-shadow:0 4px 0 #102418}.button.primary:hover{transform:translateY(2px);box-shadow:0 2px 0 #102418}.button.quiet,.button.secondary{border-color:var(--line-dark);background:#fff}.button.quiet:hover,.button.secondary:hover{border-color:#b9c5bc;background:#f8faf8}.button.dark{border-color:#111d14;background:#111d14;color:#fff}.button:disabled{cursor:wait;opacity:.7}.term-selector{display:grid;grid-template-columns:auto auto 20px;align-items:center;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:10px}.term-selector b{padding-left:6px;border-left:1px solid var(--line);color:var(--ink);font-weight:680}.term-selector svg{transform:rotate(90deg)}.card{border:1px solid var(--line);border-radius:15px;background:var(--card);box-shadow:var(--shadow)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{position:relative;display:flex;min-height:106px;align-items:center;gap:12px;padding:17px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.mini-icon,.stat-icon{display:grid;width:42px;height:42px;place-items:center;flex:none;border-radius:12px}.mint{background:var(--green-soft);color:#14713a}.yellow{background:var(--yellow-soft);color:#936d08}.blue{background:var(--blue-soft);color:#396fba}.lilac{background:var(--lilac-soft);color:#7052c0}.peach{background:var(--peach-soft);color:#a75e32}.grey{background:#eef2ef;color:#667269}.stat-copy{display:flex;min-width:0;flex:1 1;flex-direction:column}.stat-copy p{margin:0 0 4px;color:var(--muted);font-size:10px;font-weight:560}.stat-copy strong{font-size:21px;font-weight:770;letter-spacing:-.7px}.stat-copy>span{margin-top:3px;color:#7c887f;font-size:9px}.stat-card>.icon-button{align-self:flex-start;transform:rotate(-45deg)}.icon-button{display:inline-grid;width:34px;height:34px;place-items:center;padding:0;border:1px solid var(--line);border-radius:9px;background:#fff}.icon-button.subtle{width:29px;height:29px;border-color:transparent;background:transparent;color:#7e8981}.dashboard-grid{display:grid;gap:17px;margin-bottom:17px}.dashboard-grid-main{grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr)}.revenue-card{min-height:346px;padding:21px 22px 16px}.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.card-heading h2,.card-heading h3{margin:4px 0 2px;letter-spacing:-.55px}.card-heading h2{font-size:23px}.card-heading h3{font-size:15px}.card-heading>div>span,.card-heading>span{color:var(--muted);font-size:9px}.compact-heading,.text-button{align-items:center}.text-button{display:inline-flex;gap:6px;padding:4px;border:0;background:transparent;color:#32734a;font-size:9.5px;font-weight:680}.chart-wrap{display:flex;height:215px;gap:12px;margin-top:15px}.chart-y{display:flex;width:31px;flex-direction:column;justify-content:space-between;padding-bottom:24px;color:#a2aaa4;font-size:8px}.bar-chart{position:relative;display:flex;flex:1 1;align-items:flex-end;justify-content:space-around;gap:10px;padding:8px 8px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(180deg,transparent 0,transparent 43px,#edf0ed 44px)}.bar-column{display:flex;height:100%;flex:1 1;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px}.chart-bar{position:relative;width:min(31px,72%);min-height:8px;border-radius:5px 5px 2px 2px;background:#dfe8e1}.chart-bar.active{background:var(--green)}.bar-column>span{height:17px;color:#909a92;font-size:8px}.bar-tooltip{top:-31px;z-index:2;padding:5px 7px;border-radius:6px;background:#102017;color:white;font-size:8px;white-space:nowrap}.bar-tooltip,.bar-tooltip:after{position:absolute;left:50%;transform:translateX(-50%)}.bar-tooltip:after{top:100%;border:4px solid transparent;border-top-color:#102017;content:""}.revenue-footer{display:flex;align-items:center;gap:16px;padding:11px 4px 0;font-size:8.5px}.revenue-footer>span{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.revenue-footer b{color:var(--ink)}.dot-dark,.dot-green{width:7px;height:7px;border-radius:2px;background:var(--green)}.dot-dark{background:#1a2b20}.revenue-footer .growth{margin-left:auto;color:#1b8747;font-weight:680}.quick-actions{padding:21px 18px 14px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.quick-grid button{display:grid;grid-template-columns:33px 1fr 13px;align-items:center;gap:8px;min-height:72px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:9.5px;font-weight:650;text-align:left;transition:.18s ease}.quick-grid button:hover{transform:translateY(-2px);border-color:#c7d2ca;box-shadow:0 8px 20px rgba(24,45,30,.07)}.quick-grid button>svg{color:#a0aaa2}.quick-icon{display:grid;width:33px;height:33px;place-items:center;border-radius:9px}.dashboard-grid-lower{grid-template-columns:1.05fr .86fr 1.2fr}.activity-card,.attendance-card,.task-card{min-height:248px;padding:19px}.status-pill{display:inline-flex;width:max-content;align-items:center;gap:4px;padding:4px 8px;border-radius:20px;font-size:8.5px;font-weight:700;white-space:nowrap}.status-green{background:var(--green-soft);color:#16723a}.status-amber{background:var(--yellow-soft);color:#8b690b}.status-red{background:var(--red-soft);color:#b54039}.status-grey{background:#eef2ef;color:#68736b}.status-purple{background:var(--lilac-soft);color:#6d4fb9}.status-blue{background:var(--blue-soft);color:#396db5}.activity-list,.task-list{margin-top:11px}.task-list button{display:grid;width:100%;grid-template-columns:34px 1fr 16px;align-items:center;gap:10px;padding:10px 0;border:0;border-bottom:1px solid #edf0ed;background:transparent;text-align:left}.task-list button:last-child{border-bottom:0}.task-list button:hover b{color:#14713a}.task-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px}.task-icon.red{background:var(--red-soft);color:var(--red)}.task-icon.yellow{background:var(--yellow-soft);color:#9b750b}.task-icon.blue{background:var(--blue-soft);color:var(--blue)}.task-list button>span:nth-child(2){display:flex;flex-direction:column}.task-list b{font-size:9.5px}.task-list small{margin-top:3px;color:var(--muted);font-size:8.5px}.task-list button>svg{color:#a0aaa2}.attendance-ring-wrap{display:flex;align-items:center;gap:22px;margin-top:24px}.attendance-ring{display:grid;width:126px;height:126px;place-items:center;flex:none;border-radius:50%;background:conic-gradient(var(--green) 0 94.6%,#edf1ee 94.6% 100%)}.attendance-ring:before{position:absolute;width:88px;height:88px;border-radius:50%;background:#fff;content:""}.attendance-ring>div{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.attendance-ring strong{font-size:22px;letter-spacing:-.8px}.attendance-ring span{color:var(--muted);font-size:8px}.attendance-legend{display:flex;flex-direction:column;gap:13px}.attendance-legend span{display:grid;grid-template-columns:8px 30px 1fr;align-items:center;gap:5px;color:var(--muted);font-size:8.5px}.attendance-legend b{color:var(--ink)}.legend-dot{width:7px;height:7px;border-radius:50%}.legend-dot.green{background:var(--green)}.legend-dot.red{background:#ef6b64}.legend-dot.amber{background:#f2ba25}.legend-dot.purple{background:#8a68da}.activity-list>div{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-bottom:1px solid #edf0ed}.activity-list>div:last-child{border-bottom:0}.activity-list p{display:flex;flex-direction:column;margin:0;font-size:8.8px;line-height:1.4}.activity-list b{font-weight:690}.activity-list span{margin-top:2px;color:var(--muted-2);font-size:7.8px}.live-dot{display:inline-flex;align-items:center;gap:5px;color:#25844a!important}.live-dot:before{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(23,219,87,.11);content:""}.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px}.mini-stats article{display:flex;min-height:80px;align-items:center;gap:11px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.mini-stats article>div{display:flex;flex:1 1;flex-direction:column}.mini-stats p,.mini-stats strong{margin:0}.mini-stats p{color:var(--muted);font-size:9px}.mini-stats strong{margin-top:2px;font-size:17px}.mini-stats article>small{align-self:flex-end;color:var(--muted);font-size:8px}.table-card{overflow:hidden}.table-title-row,.table-toolbar{display:flex;align-items:center;gap:9px;padding:15px 17px;border-bottom:1px solid var(--line)}.table-title-row{justify-content:space-between}.table-title-row h3{margin:3px 0 0;font-size:15px}.search-box{display:flex;min-width:240px;height:37px;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fafbfa;color:#8d978f}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:10px}.filter-button{display:inline-flex;height:37px;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#536057;font-size:9px}.filter-button svg:last-child{transform:rotate(90deg)}.table-toolbar .button{min-height:37px;margin-left:auto}.table-scroll{overflow-x:auto}table{width:100%;min-width:850px;border-collapse:collapse}th{height:39px;background:#f8faf8;color:#7c887f;font-size:8px;font-weight:700;letter-spacing:.55px;text-align:left;text-transform:uppercase}td,th{padding:0 15px}td{height:67px;border-top:1px solid #edf0ed;color:#4a564d;font-size:9.5px}tbody tr{transition:.15s ease}tbody tr:hover{background:#fbfcfb}td b{color:var(--ink);font-weight:650}td code{padding:3px 5px;border-radius:4px;background:#f2f5f3;color:#617067;font-family:var(--font-geist-mono);font-size:8px}.completion-cell,.parent-cell,.person-cell{display:flex;align-items:center;gap:10px}.parent-cell>span,.person-cell>span{display:flex;min-width:0;flex-direction:column}.parent-cell small,.person-cell small{margin-top:3px;color:var(--muted);font-size:8px}.parent-cell{justify-content:space-between}.attendance-value{display:flex;align-items:center;gap:8px}.attendance-value .progress-track{width:55px}.progress-track{display:block;height:5px;overflow:hidden;border-radius:10px;background:#edf1ee}.progress-value{display:block;height:100%;border-radius:inherit}.progress-green{background:var(--green)}.progress-dark{background:#1c3022}.progress-amber{background:#efba26}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:8.5px}.table-footer>div{display:flex;gap:4px;align-items:center}.table-footer button{min-width:26px;height:26px;padding:0 7px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:8px}.table-footer button.active{border-color:#132a1b;background:#132a1b;color:#fff}.table-footer button:disabled{opacity:.45}.student-drawer{position:absolute;top:0;right:0;width:min(430px,100%);height:100%;padding:30px;overflow-y:auto;background:#fff;box-shadow:-20px 0 50px rgba(12,28,17,.15);animation:drawer-in .25s ease}@keyframes drawer-in{0%{transform:translateX(100%)}to{transform:none}}.student-profile{display:flex;flex-direction:column;align-items:center;padding:28px 0 25px;border-bottom:1px solid var(--line);text-align:center}.student-profile h2{margin:13px 0 4px;font-size:20px}.student-profile p{margin:0 0 10px;color:var(--muted);font-size:10px}.drawer-section{padding:23px 0;border-bottom:1px solid var(--line)}.drawer-section h3{margin:7px 0 3px;font-size:14px}.drawer-section>p:last-of-type{margin:0;color:var(--muted);font-size:10px}.linked-note{display:flex;gap:8px;margin-top:13px;padding:11px;border-radius:9px;background:var(--lilac-soft);color:#5c487c;font-size:9px}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:22px 0}.drawer-grid>div{display:flex;flex-direction:column;padding:12px;border:1px solid var(--line);border-radius:10px}.drawer-grid span{color:var(--muted);font-size:8px}.drawer-grid b{margin-top:4px;font-size:14px}.drawer-actions{display:grid;gap:8px}.academic-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px;padding:20px 22px;overflow:hidden;border-radius:15px;background:radial-gradient(circle at 70% 160%,rgba(23,219,87,.28),transparent 35%),#102018;color:#fff}.academic-banner>div{display:flex;align-items:center;gap:14px}.banner-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:13px;background:var(--green);color:#0b391b}.academic-banner .eyebrow{color:#7e9b86}.academic-banner h2{margin:4px 0;font-size:17px}.academic-banner p:last-child{margin:0;color:#a9baae;font-size:9px}.segmented{display:flex;padding:3px;border-radius:8px;background:#f2f5f3}.segmented button{height:29px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:8px}.segmented button.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(20,38,25,.08)}.completion-cell{width:150px}.completion-cell .progress-track{width:100px}.small-action{padding:6px 9px;border:1px solid #c9d4cc;border-radius:7px;background:#fff;color:#226d3e;font-size:8px;font-weight:680}.attendance-hero{display:grid;grid-template-columns:.75fr 1.4fr .7fr;gap:30px;align-items:center;margin-bottom:17px;padding:26px 30px;border-radius:16px;background:radial-gradient(circle at 8% 20%,rgba(23,219,87,.15),transparent 28%),#102018;color:#fff}.attendance-score{display:flex;flex-direction:column}.attendance-score>span{color:#88a291;font-size:9px;text-transform:uppercase}.attendance-score strong{margin:3px 0;color:var(--green);font-size:39px;letter-spacing:-2px}.attendance-score p{margin:0;color:#9eb1a4;font-size:9px}.week-chart{display:flex;height:112px;align-items:flex-end;justify-content:space-around;gap:12px}.week-chart>div{display:flex;height:100%;flex:1 1;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}.week-chart small,.week-chart span{color:#a4b6aa;font-size:8px}.week-chart i{display:flex;width:17px;height:70px;align-items:flex-end;overflow:hidden;border-radius:5px;background:rgba(255,255,255,.08)}.week-chart b{width:100%;border-radius:inherit;background:var(--green)}.week-chart div:nth-last-child(-n+2) b{background:rgba(255,255,255,.12)}.attendance-summary{display:flex;flex-direction:column;gap:11px}.attendance-summary>div{display:flex;align-items:center;gap:9px}.summary-dot{width:8px;height:8px;border-radius:50%}.summary-dot.green{background:var(--green)}.summary-dot.red{background:#ed655e}.summary-dot.amber{background:#efb826}.attendance-summary p{display:flex;flex:1 1;align-items:center;justify-content:space-between;margin:0;color:#a8b7ad;font-size:9px}.attendance-summary strong{color:#fff;font-size:12px}.attendance-layout{grid-template-columns:1.2fr .8fr}.attendance-layout .card{padding:20px}.level-list{margin-top:20px}.level-list>div{display:grid;grid-template-columns:150px 1fr 35px;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.level-list>div:last-child{border-bottom:0}.level-list>div>span{display:flex;flex-direction:column}.level-list b{font-size:10px}.level-list small{margin-top:2px;color:var(--muted);font-size:8px}.level-list strong{font-size:10px}.absence-list{margin-top:12px}.absence-list button{display:grid;width:100%;grid-template-columns:37px 1fr 16px;align-items:center;gap:10px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.absence-list button>span:nth-child(2){display:flex;flex-direction:column}.absence-list b{font-size:9px}.absence-list small{margin-top:2px;color:var(--muted);font-size:8px}.audit-banner,.success-banner{display:flex;align-items:center;gap:11px;margin-bottom:17px;padding:13px 15px;border:1px solid #cfd5f3;border-radius:11px;background:#f3f1ff;color:#6049aa}.success-banner{border-color:#bfeacc;background:#ecfcf1;color:#176b36}.audit-banner>div,.success-banner>div{display:flex;flex:1 1;flex-direction:column}.audit-banner b,.success-banner b{font-size:10px}.audit-banner span,.success-banner span{margin-top:2px;font-size:8.5px}.audit-banner button,.success-banner button{border:0;background:transparent}.fees-layout{grid-template-columns:1.2fr .8fr}.fee-summary-card,.gateway-card{padding:20px}.large-progress{margin:23px 0 19px}.large-progress>div{display:flex;justify-content:space-between;margin-bottom:8px;font-size:9px}.large-progress b{font-size:12px}.large-progress .progress-track{height:9px}.fee-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.fee-breakdown>div{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px}.fee-breakdown>div>span{display:flex;flex:1 1;flex-direction:column}.fee-breakdown b{font-size:10px}.fee-breakdown small{color:var(--muted);font-size:7.5px}.fee-breakdown strong{color:var(--muted);font-size:8px}.gateway-list{margin-top:12px}.gateway-list>div{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.gateway-list>div:last-child{border-bottom:0}.gateway-logo{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;color:white;font-weight:850}.gateway-logo.paystack{background:#12a8c4}.gateway-logo.flutter{background:#f2a51c;color:#2c2108}.gateway-logo.monnify{background:#195f3c}.gateway-list>div>span:nth-child(2){display:flex;flex-direction:column}.gateway-list b{font-size:9.5px}.gateway-list small{margin-top:2px;color:var(--muted);font-size:8px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;padding:20px;background:rgba(7,15,9,.56);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-card{width:min(620px,100%);max-height:calc(100vh - 40px);padding:25px;overflow-y:auto;border-radius:17px;background:#fff;box-shadow:var(--shadow-lg);animation:modal-in .2s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal-heading{position:relative;display:grid;grid-template-columns:43px 1fr 28px;align-items:start;gap:12px;margin-bottom:22px}.modal-heading h2{margin:1px 0 4px;font-size:17px}.modal-heading p{margin:0;color:var(--muted);font-size:9px}.modal-icon{display:grid;width:43px;height:43px;place-items:center;border-radius:12px}.modal-icon.purple{background:var(--lilac-soft);color:var(--lilac)}.modal-icon.mint{background:var(--green-soft);color:#14713a}.modal-close{display:grid;width:29px;height:29px;place-items:center;padding:0;border:0;border-radius:8px;background:#f3f6f4;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,.password-modal>label{display:flex;min-width:0;flex-direction:column;gap:6px}.form-grid label.full{grid-column:1/-1}.form-grid label>span,.password-modal label>span{color:#49554c;font-size:9px;font-weight:650}.form-grid em{color:var(--muted-2);font-size:8px;font-style:normal;font-weight:450}.form-grid input,.form-grid select,.form-grid textarea,.password-input input{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--line-dark);border-radius:9px;outline:0;background:#fff;color:var(--ink);font-size:10px}.form-grid textarea{min-height:84px;padding-top:10px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.password-input:focus-within{border-color:#46c66f;box-shadow:0 0 0 3px rgba(23,219,87,.1)}.input-prefix{display:flex;height:40px;align-items:center;border:1px solid var(--line-dark);border-radius:9px;overflow:hidden}.input-prefix b{display:grid;height:100%;place-items:center;padding:0 11px;border-right:1px solid var(--line);background:#f6f8f6;font-size:11px}.input-prefix input{border:0;border-radius:0}.warning-note{display:flex;gap:9px;margin-top:16px;padding:11px;border-radius:9px;background:var(--yellow-soft);color:#795d0d;font-size:8.5px;line-height:1.5}.warning-note svg{flex:none}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.ai-provider-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid #d9cdf9;border-radius:30px;background:#f5f1ff;color:#684db2;font-size:9px;font-weight:690}.ai-layout{display:grid;grid-template-columns:minmax(370px,.75fr) minmax(450px,1.25fr);gap:17px;align-items:start}.ai-form{padding:22px}.form-title{display:flex;align-items:center;gap:11px;margin-bottom:22px}.form-title h2{margin:0 0 3px;font-size:16px}.form-title p{margin:0;color:var(--muted);font-size:9px}.ai-form-icon,.compose-icon{display:grid;width:43px;height:43px;place-items:center;border-radius:12px;background:var(--lilac-soft);color:var(--lilac)}.generate-options{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.generate-options label{cursor:pointer}.generate-options input{position:absolute;opacity:0}.generate-options span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:8px}.generate-options input:checked+span{border-color:#d5c9f7;background:#f7f4ff;color:#684db2}.ai-button{width:100%;min-height:44px;border:1px solid #5735aa;background:linear-gradient(135deg,#7e5cdc,#5d3db9);color:#fff;box-shadow:0 5px 0 #3f2785}.ai-button:hover{transform:translateY(2px);box-shadow:0 3px 0 #3f2785}.ai-disclaimer{display:flex;align-items:center;justify-content:center;gap:5px;margin:12px 0 0;color:var(--muted);font-size:7.5px;text-align:center}.lesson-output{min-height:705px;overflow:hidden}.empty-lesson{display:flex;min-height:705px;align-items:center;justify-content:center;flex-direction:column;padding:35px;text-align:center;background:radial-gradient(circle at 50% 40%,rgba(125,93,212,.08),transparent 33%),repeating-linear-gradient(#fff 0 31px,#f6f3ff 32px)}.empty-sparkle{display:grid;width:76px;height:76px;place-items:center;margin-bottom:19px;border:1px solid #ddd3fa;border-radius:24px;background:#f4f0ff;color:var(--lilac);box-shadow:0 13px 28px rgba(103,73,178,.13)}.empty-lesson h2{margin:0 0 7px;font-size:19px}.empty-lesson>p{max-width:340px;margin:0;color:var(--muted);font-size:10px;line-height:1.6}.empty-features{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:18px}.empty-features span{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--muted);font-size:8px}.empty-features svg{color:#24a850}.lesson-output.generated{background:#f4f1ed}.lesson-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line);background:#fff}.lesson-toolbar>div{display:flex;align-items:center;gap:7px}.lesson-toolbar>div:first-child>span:last-child{color:var(--muted);font-size:8px}.lesson-document{width:calc(100% - 36px);margin:18px auto;padding:30px 34px;background:#fff;box-shadow:0 8px 28px rgba(49,42,34,.1)}.lesson-document header{padding-bottom:17px;border-bottom:2px solid #15261a}.lesson-document header>p{margin:0 0 6px;color:#4a6b55;font-size:7.5px;font-weight:800;letter-spacing:1.3px}.lesson-document h2{margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:22px}.lesson-document header>div{display:flex;flex-wrap:wrap;gap:6px 14px;color:#59645c;font-size:7.5px}.lesson-document section{margin-top:17px}.lesson-document h3{margin:0 0 6px;font-size:10px;text-transform:uppercase}.lesson-document li,.lesson-document p{color:#3e4941;font-size:8.5px;line-height:1.6}.lesson-document p{margin:0}.lesson-document ol{margin:5px 0 0;padding-left:17px}.water-cycle{position:relative;height:130px;overflow:hidden;border:1px solid #c9e2d1;border-radius:9px;background:linear-gradient(#e5f3ff 0 58%,#e1f1dc 58% 76%,#bde3f1 76%)}.sun{top:12px;right:34px;font-size:27px}.cloud,.sun{position:absolute}.cloud{top:24px;left:50%;color:#a7b7c2;font-size:35px}.rain{top:55px;left:57%;color:#4c8fb8;font-size:28px;letter-spacing:2px}.rain,.water{position:absolute}.water{right:16px;bottom:7px;color:#3c94b9;font-size:22px}.evaporation{position:absolute;left:30px;bottom:13px;color:#459365;font-size:20px}.water-cycle span{display:block;color:#405246;font-size:7px;font-weight:720;letter-spacing:0}.lesson-steps{display:grid;gap:7px}.lesson-steps>div{padding:8px 9px;border-left:3px solid var(--green);background:#f6faf7}.lesson-steps b{font-size:8px}.assignment-box{padding:11px;border:1px solid #d7cbf5;border-radius:7px;background:#f7f4ff}.lesson-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--line);background:#fff}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner.dark{border-color:#102018 rgba(11,31,17,.25) rgba(11,31,17,.25)}@keyframes spin{to{transform:rotate(1turn)}}.message-layout{display:grid;grid-template-columns:minmax(480px,1.35fr) minmax(300px,.65fr);gap:17px;align-items:start}.compose-card,.message-history{padding:22px}.compose-icon{background:var(--blue-soft);color:var(--blue)}.message-textarea{min-height:115px!important}.character-count{align-self:flex-end;margin-top:-2px;color:var(--muted);font-size:7.5px}.channel-section{margin-top:17px;padding-top:17px;border-top:1px solid var(--line)}.channel-section>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.channel-section p{margin:0;font-size:9px;font-weight:680}.channel-section>div:first-child>span{color:var(--muted);font-size:8px}.channel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.channel-grid>button{position:relative;display:flex;min-height:76px;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);text-align:left}.channel-grid>button.active{border-color:#78d894;background:#f3fdf6;color:#1c6c37}.channel-grid>button>span:last-child{display:flex;flex-direction:column}.channel-grid b{color:var(--ink);font-size:9px}.channel-grid small{margin-top:2px;font-size:7px}.channel-check{position:absolute;top:6px;right:6px;display:grid;width:14px;height:14px;place-items:center;border:1px solid var(--line-dark);border-radius:4px;background:#fff}.channel-grid>button.active .channel-check{border-color:var(--green);background:var(--green);color:#0c351a}.recipient-preview{display:flex;align-items:center;gap:9px;margin-top:13px;padding:11px;border-radius:9px;background:#f4f7f5}.recipient-preview>svg{color:#4c6e57}.recipient-preview>span{display:flex;flex:1 1;flex-direction:column}.recipient-preview b{font-size:9px}.recipient-preview small{margin-top:2px;color:var(--muted);font-size:7.5px}.recipient-preview button{border:0;background:transparent;color:#276f42;font-size:8px;font-weight:680}.compose-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.phone-note{display:flex;align-items:center;justify-content:center;gap:5px;margin:11px 0 0;color:var(--muted);font-size:7.5px}.message-history{padding-bottom:16px}.message-history>button{display:grid;width:100%;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.history-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px}.message-history>button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.message-history>button b{overflow:hidden;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.message-history>button em,.message-history>button small{color:var(--muted);font-size:7.5px;font-style:normal}.message-history>button em{margin-top:3px;color:var(--muted-2)}.message-credit{margin-top:16px;padding:13px;border-radius:10px;background:#102018;color:#fff}.message-credit>div{display:flex;justify-content:space-between;font-size:8px}.message-credit b{font-size:14px}.message-credit .progress-track{margin:9px 0;background:rgba(255,255,255,.1)}.message-credit button{display:flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--green);font-size:8px}.family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.family-card{padding:19px}.family-head{display:grid;grid-template-columns:54px 1fr 29px;align-items:center;gap:11px;margin-bottom:19px}.family-head h3{margin:0 0 3px;font-size:13px}.family-head p{margin:0;color:var(--muted);font-size:8.5px}.children-list{margin-top:8px}.children-list>div{display:grid;grid-template-columns:8px 1fr 15px;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid var(--line);color:#445148;font-size:8.5px}.children-list>div:last-child{border-bottom:0}.child-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.family-balance{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:10px;border-radius:9px;background:#f4f7f5;color:var(--muted);font-size:8.5px}.family-balance b{color:var(--ink);font-size:12px}.family-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.family-actions button{display:flex;height:35px;align-items:center;justify-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:8px;font-weight:650}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-card{padding:20px}.report-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:12px}.report-card h3{margin:14px 0 5px;font-size:13px}.report-card>p{min-height:33px;margin:0;color:var(--muted);font-size:8.5px;line-height:1.55}.report-card>div{display:flex;gap:7px;margin-top:14px}.report-card button{display:flex;height:32px;align-items:center;gap:5px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:8px;font-weight:650}.scheduled-report{display:flex;align-items:center;gap:17px;margin-top:15px;padding:18px}.scheduled-report>div{display:flex;flex:1 1;align-items:center;gap:12px}.scheduled-report h2{margin:3px 0;font-size:14px}.scheduled-report p:last-child{margin:0;color:var(--muted);font-size:8px}.scheduled-icon{display:grid;width:45px;height:45px;place-items:center;border-radius:12px;background:#102018;color:var(--green)}.parent-hero{display:grid;grid-template-columns:1.4fr repeat(3,.6fr);align-items:stretch;margin-bottom:17px;overflow:hidden}.parent-hero>div{display:flex;min-height:105px;align-items:center;justify-content:center;flex-direction:column;border-left:1px solid var(--line)}.parent-hero>div:first-child{align-items:flex-start;padding:20px 24px;border-left:0;background:radial-gradient(circle at 85% 20%,rgba(23,219,87,.17),transparent 38%),#102018;color:white}.parent-hero h2{margin:3px 0;color:var(--green);font-size:27px}.parent-hero>div:first-child>span{color:#9eb0a3;font-size:8.5px}.parent-hero>div:not(:first-child) b{font-size:20px}.parent-hero>div:not(:first-child) span{margin-top:4px;color:var(--muted);font-size:8px}.children-dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:17px}.child-card{padding:18px}.child-head{display:grid;grid-template-columns:54px 1fr 29px;align-items:center;gap:11px}.child-head h3{margin:0 0 3px;font-size:13px}.child-head p{margin:0;color:var(--muted);font-size:8.5px}.child-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0 13px}.child-metrics>div{display:flex;align-items:center;flex-direction:column;padding:9px 4px;border-radius:8px;background:#f5f8f6}.child-metrics span{color:var(--muted);font-size:7px}.child-metrics b{margin-top:4px;font-size:11px}.child-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.child-actions button{display:flex;min-height:33px;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:7.5px}.parent-lower{grid-template-columns:1.15fr .85fr}.parent-lower .card{padding:19px}.notice-list{margin-top:10px}.notice-list>div{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--line)}.notice-list p{display:flex;flex-direction:column;margin:0}.notice-list b{font-size:8.5px}.notice-list p span{margin-top:2px;color:var(--muted);font-size:7.5px}.notice-list button{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff}.notice-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px}.teacher-chat{margin-top:10px}.teacher-chat button{display:grid;width:100%;grid-template-columns:37px 1fr auto;align-items:center;gap:9px;padding:11px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.teacher-chat button>span:nth-child(2){display:flex;flex-direction:column}.teacher-chat b{font-size:8.5px}.teacher-chat em,.teacher-chat small{margin-top:2px;color:var(--muted);font-size:7.5px;font-style:normal}.teacher-chat em{margin-top:4px;color:#47534a}.teacher-chat i{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;background:var(--green);font-size:8px;font-style:normal;font-weight:800}.platform-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:17px;margin-bottom:17px}.onboarding-list,.platform-health{padding:20px}.platform-chart{display:flex;height:190px;align-items:flex-end;gap:7px;margin-top:18px;padding:10px 5px 0;background:repeating-linear-gradient(180deg,transparent 0 44px,#edf0ed 45px)}.platform-chart i{position:relative;flex:1 1;border-radius:4px 4px 0 0;background:linear-gradient(to top,#b7f7c9,var(--green))}.platform-chart i:last-child{background:#102018}.platform-chart span{position:absolute;top:-21px;left:50%;transform:translateX(-50%);color:#102018;font-size:8px;font-style:normal;font-weight:750}.platform-metrics{display:flex;gap:20px;padding-top:13px;color:var(--muted);font-size:8px}.platform-metrics b{color:var(--ink)}.onboarding-list>button{display:grid;width:100%;grid-template-columns:37px 1fr auto;align-items:center;gap:9px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.school-logo{display:grid;width:37px;height:37px;place-items:center;border-radius:10px;font-size:12px;font-weight:850}.onboarding-list>button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.onboarding-list b{font-size:8.5px}.onboarding-list b,.onboarding-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onboarding-list small{margin-top:2px;color:var(--muted);font-size:7px}.platform-lower{grid-template-columns:repeat(3,1fr)}.platform-lower .card{padding:19px}.distribution-bar{display:flex;height:11px;margin:24px 0 15px;overflow:hidden;border-radius:20px;background:#edf1ee}.distribution-bar i:first-child{background:var(--green)}.distribution-bar i:nth-child(2){background:#1b3423}.distribution-bar i:nth-child(3){background:#a9b3ac}.plan-distribution>div:last-child{display:flex;justify-content:space-between;gap:10px}.plan-distribution span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:8px}.plan-distribution b{color:var(--ink)}.plan-dot{width:7px;height:7px;border-radius:2px}.plan-dot.green{background:var(--green)}.plan-dot.dark{background:#1b3423}.plan-dot.grey{background:#a9b3ac}.support-summary{margin-top:13px}.support-summary>div{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line)}.support-number{display:grid;width:27px;height:27px;place-items:center;border-radius:8px;font-size:9px;font-weight:750}.support-number.red{background:var(--red-soft);color:var(--red)}.support-number.amber{background:var(--yellow-soft);color:#916c09}.support-number.grey{background:#edf1ee;color:#647068}.support-summary p{display:flex;flex-direction:column;margin:0}.support-summary b{font-size:8.5px}.support-summary small{color:var(--muted);font-size:7.5px}.audit-card>p{display:flex;flex-direction:column;margin:0;padding:10px 0;border-bottom:1px solid var(--line);color:#49564d;font-size:8.5px}.audit-card>p b{color:var(--ink)}.audit-card>p span{margin-top:2px;color:var(--muted);font-size:7px}.module-hero{display:flex;align-items:center;gap:15px;margin-bottom:17px;padding:22px}.module-icon{display:grid;width:58px;height:58px;place-items:center;flex:none;border-radius:16px;background:var(--green-soft);color:#14713a}.module-hero h2{margin:4px 0;font-size:17px}.module-hero p:last-child{max-width:700px;margin:0;color:var(--muted);font-size:9px;line-height:1.6}.placeholder-table{padding-bottom:7px}.placeholder-row{display:grid;width:calc(100% - 28px);grid-template-columns:37px 1fr auto 16px;align-items:center;gap:10px;margin:0 14px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.placeholder-avatar{display:grid;width:37px;height:37px;place-items:center;border-radius:10px;background:var(--green-soft);color:#18703b}.tone-2{background:var(--blue-soft);color:var(--blue)}.tone-3{background:var(--lilac-soft);color:var(--lilac)}.tone-4{background:var(--yellow-soft);color:#9a730c}.placeholder-row>span:nth-child(2){display:flex;flex-direction:column}.placeholder-row b{font-size:9.5px}.placeholder-row small{margin-top:2px;color:var(--muted);font-size:8px}.password-modal{width:min(480px,100%)}.password-modal>label{margin-bottom:13px}.password-input{display:flex;height:41px;align-items:center;overflow:hidden;border:1px solid var(--line-dark);border-radius:9px}.password-input input{border:0;border-radius:0}.password-input button{display:grid;width:42px;height:100%;place-items:center;border:0;background:transparent;color:var(--muted)}.password-rules{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 17px}.password-rules span{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font-size:7.5px}.password-rules span.done{color:#247745}.checkbox-label{display:flex!important;align-items:center!important;flex-direction:row!important;gap:8px!important;color:var(--muted);font-size:8.5px}.checkbox-label input{width:15px!important;height:15px!important;min-height:0!important;accent-color:var(--green)}.popover-wrap{position:relative}.popover{position:absolute;z-index:60;top:calc(100% + 12px);right:0;width:340px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 22px 55px rgba(20,37,25,.15);animation:popover-in .18s ease}@keyframes popover-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.popover-head{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid var(--line)}.popover-head h3{margin:0;font-size:13px}.popover-head button{border:0;background:transparent;color:#247644;font-size:8px}.notification-list>button{position:relative;display:grid;grid-template-columns:34px 1fr;align-items:start;gap:9px;border:0;background:#fff}.notification-list>button:hover{background:#fafcfa}.notification-list p{display:flex;flex-direction:column;margin:0}.notification-list b{font-size:9px}.notification-list small,.notification-list span{margin-top:2px;color:var(--muted);font-size:7.5px}.notification-list small{margin-top:5px;color:var(--muted-2)}.notification-list>button>i{position:absolute;top:16px;right:14px;width:5px;height:5px;border-radius:50%;background:var(--green)}.popover-footer{display:flex;width:100%;height:40px;align-items:center;justify-content:center;gap:5px;border:0;background:#f8faf8;color:#216e3d;font-size:8px;font-weight:680}.profile-popover{width:275px;padding:8px}.profile-summary{display:flex;align-items:center;gap:10px;padding:9px 8px 13px;border-bottom:1px solid var(--line)}.profile-summary>span{display:flex;min-width:0;flex-direction:column}.profile-summary b{font-size:10px}.profile-summary small{margin-top:2px;color:var(--muted);font-size:8px}.profile-popover>button{display:flex;width:100%;height:37px;align-items:center;gap:9px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#536057;font-size:9px;text-align:left}.profile-popover>button:hover{background:#f4f7f5;color:var(--ink)}.profile-popover>button svg:last-child{margin-left:auto}.profile-popover>button.logout-button{color:var(--red)}.popover-separator{display:block;height:1px;margin:5px 0;background:var(--line)}.role-list{margin:3px 0 7px;padding:5px;border-radius:9px;background:#f4f7f5}.role-list>button{display:grid;width:100%;grid-template-columns:29px 1fr 16px;align-items:center;gap:7px;padding:6px;border:0;border-radius:7px;background:transparent;text-align:left}.role-list>button.active,.role-list>button:hover{background:#fff}.role-list>button>span{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;background:#e4ece6;font-size:8px;font-weight:750}.role-list p{display:flex;flex-direction:column;margin:0}.role-list b{font-size:8px}.role-list small{margin-top:1px;color:var(--muted);font-size:6.8px}.role-list svg{color:#1a9348}.toast{position:fixed;z-index:150;right:25px;bottom:25px;display:flex;min-width:270px;align-items:center;gap:9px;padding:12px 15px;border:1px solid #bce5c8;border-radius:11px;background:#fff;box-shadow:0 17px 50px rgba(14,37,21,.18);color:#285b39;font-size:9px;font-weight:620;animation:toast-in .25s ease}.toast>span{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--green);color:#0b3c1d}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.login-page{display:grid;min-height:100vh;grid-template-columns:minmax(430px,1.08fr) minmax(480px,.92fr);background:#fff}.login-brand{position:relative;display:flex;min-height:100vh;flex-direction:column;overflow:hidden;padding:42px 54px;background:radial-gradient(circle at 20% 85%,rgba(23,219,87,.18),transparent 25%),radial-gradient(circle at 90% 10%,rgba(23,219,87,.11),transparent 27%),var(--brand-dark);color:#fff}.login-copy{position:relative;z-index:2;margin:auto 0}.login-kicker{display:inline-flex;align-items:center;gap:8px;color:#b5c2b8;font-size:10px;font-weight:650;letter-spacing:.3px}.login-kicker i{width:21px;height:2px;background:var(--green)}.login-copy h1{max-width:670px;margin:21px 0;font-size:clamp(44px,5.1vw,76px);line-height:.98;letter-spacing:-4px}.login-copy h1 em{color:var(--green);font-style:normal}.login-copy>p{max-width:510px;margin:0;color:#93a399;font-size:14px;line-height:1.7}.login-proof{position:relative;z-index:2;display:flex;align-items:center;gap:14px}.login-proof>div{display:flex}.login-proof .avatar,.login-proof>div>span{margin-left:-7px;border:2px solid #0d160f}.login-proof .avatar:first-child{margin-left:0}.login-proof>div>span{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:var(--green);color:#0c2e18;font-size:8px;font-weight:750}.login-proof>p{display:flex;flex-direction:column;margin:0}.login-proof b{font-size:9px}.login-proof p span{margin-top:2px;color:#829187;font-size:8px}.login-orbit{position:absolute;border:1px solid rgba(23,219,87,.11);border-radius:50%}.orbit-one{right:-210px;bottom:-250px;width:650px;height:650px}.orbit-two{right:-70px;bottom:-110px;width:380px;height:380px}.login-form-wrap{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column;padding:40px;background:linear-gradient(rgba(244,248,245,.7) 1px,transparent 0),linear-gradient(90deg,rgba(244,248,245,.7) 1px,transparent 0),#fff;background-size:32px 32px}.login-form-container{width:min(415px,100%);padding:35px;border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.96);box-shadow:0 24px 75px rgba(19,39,25,.09)}.school-identity{display:flex;align-items:center;gap:11px;margin-bottom:29px;padding-bottom:21px;border-bottom:1px solid var(--line)}.school-identity .school-crest{width:45px;height:45px;border-radius:13px;font-size:20px}.school-identity h2{margin:0 0 3px;font-size:13px}.school-identity p{margin:0;color:var(--muted);font-size:7.5px}.login-form-container>h1{margin:0 0 6px;font-size:26px;letter-spacing:-1px}.login-subtitle{margin:0 0 23px;color:var(--muted);font-size:9.5px}.login-form-container form>label:not(.checkbox-label){display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.login-form-container form>label>span{display:flex;justify-content:space-between;color:#49554c;font-size:9px;font-weight:650}.login-form-container form>label>span button{padding:0;border:0;background:transparent;color:#247644;font-size:8px;font-weight:650}.login-input{display:flex;height:43px;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--line-dark);border-radius:10px;background:#fff;color:var(--muted)}.login-input:focus-within{border-color:#52ca76;box-shadow:0 0 0 3px rgba(23,219,87,.1)}.login-input input{min-width:0;flex:1 1;border:0;outline:0;color:var(--ink);font-size:9.5px}.login-input button{display:grid;width:28px;height:28px;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.login-form-container .checkbox-label{margin:16px 0}.login-button{width:100%;min-height:45px;border:1px solid #102018;background:var(--green);color:#0d2d18;box-shadow:0 5px 0 #102018}.login-button:hover{transform:translateY(2px);box-shadow:0 3px 0 #102018}.form-error{display:flex;align-items:flex-start;gap:7px;margin:2px 0 12px;padding:10px 11px;border:1px solid #f1b9b9;border-radius:9px;background:#fff5f5;color:#a32d2d;font-size:9px;font-weight:600;line-height:1.45}.form-error svg{flex:0 0 auto}.form-notice{margin:2px 0 12px;padding:10px 11px;border:1px solid #bfdac8;border-radius:9px;background:#f3faf5;color:#316143;font-size:8.5px;line-height:1.5}.auth-loading{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:radial-gradient(circle at 20% 10%,rgba(64,231,117,.12),transparent 34%),#f7faf7;color:var(--muted)}.auth-loading p{margin:0;font-size:13px;font-weight:600}.demo-access{margin-top:21px;padding:11px;border:1px dashed #cbd5cd;border-radius:9px;background:#f7f9f7;text-align:center}.demo-access span{color:#287744;font-size:7px;font-weight:750;letter-spacing:.7px;text-transform:uppercase}.demo-access p{margin:4px 0 0;color:var(--muted);font-size:7.5px}.login-help{margin:17px 0 0;color:var(--muted);font-size:8px;text-align:center}.login-help button{padding:0;border:0;background:transparent;color:#287744;font-weight:650}.login-form-wrap>footer{margin-top:19px;color:#8b958d;font-size:7.5px}.menu-button,.mobile-close,.mobile-logo,.mobile-wordmark,.sidebar-scrim{display:none}@media (max-width:1180px){.top-search{width:170px}.dashboard-grid-main{grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr)}.dashboard-grid-lower{grid-template-columns:1fr 1fr}.activity-card{grid-column:1/-1}.activity-list{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.children-dashboard,.family-grid,.mini-stats,.report-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.ai-layout{grid-template-columns:.85fr 1.15fr}.channel-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:980px){.sidebar{transform:translateX(-100%);transition:transform .25s ease}.sidebar.open{transform:none}.sidebar-scrim{position:fixed;inset:0;z-index:35;display:block;border:0;background:rgba(7,15,9,.48)}.mobile-close{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:8px;background:rgba(255,255,255,.07);color:#fff}.app-main{margin-left:0}.menu-button{display:grid}.desktop-breadcrumb{display:none}.mobile-wordmark{display:block;margin-left:10px}.mobile-wordmark .logo-type{color:var(--ink)}.top-search{width:40px}.top-search kbd,.top-search span{display:none}.login-page{grid-template-columns:1fr 1fr}.login-brand{padding:34px}.login-copy h1{font-size:54px}.login-form-wrap{padding:25px}}@media (max-width:760px){.topbar{height:67px;padding:0 15px}.page-container{padding:20px 15px 80px}.profile-button>span:nth-child(2),.profile-button>svg,.top-divider{display:none}.profile-button{padding:0}.page-header{flex-direction:column;gap:13px;margin-bottom:18px}.page-actions{width:100%;justify-content:flex-start}.attendance-layout,.children-dashboard,.dashboard-grid-lower,.dashboard-grid-main,.family-grid,.fees-layout,.message-layout,.mini-stats,.parent-lower,.platform-grid,.platform-lower,.report-grid,.stats-grid,.stats-grid.three{grid-template-columns:1fr}.activity-card{grid-column:auto}.activity-list{grid-template-columns:1fr}.revenue-card{padding:18px 14px 14px}.revenue-footer{flex-wrap:wrap}.revenue-footer .growth{width:100%;margin-left:0}.quick-grid{grid-template-columns:1fr 1fr}.mini-stats article>small{align-self:center}.table-toolbar{flex-wrap:wrap}.search-box{width:100%;min-width:0}.table-toolbar .button{margin-left:0}.table-footer{gap:10px}.academic-banner,.table-footer{align-items:flex-start;flex-direction:column}.attendance-hero{grid-template-columns:1fr;gap:20px}.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr)}.attendance-summary p{flex-direction:column-reverse;align-items:flex-start}.level-list>div{grid-template-columns:120px 1fr 32px}.ai-layout,.fee-breakdown{grid-template-columns:1fr}.empty-lesson,.lesson-output{min-height:520px}.lesson-document{width:calc(100% - 18px);padding:22px 18px}.message-layout{display:flex;flex-direction:column}.message-history{width:100%}.children-dashboard,.family-grid,.report-grid{grid-template-columns:1fr}.parent-hero{grid-template-columns:1fr 1fr 1fr}.parent-hero>div:first-child{grid-column:1/-1}.parent-hero>div:nth-child(2){border-left:0}.scheduled-report{align-items:flex-start;flex-wrap:wrap}.scheduled-report>div{width:100%}.placeholder-table .table-title-row{align-items:flex-start;flex-direction:column}.placeholder-row{grid-template-columns:37px 1fr auto}.placeholder-row>svg{display:none}.login-page{display:block;background:#f5f8f6}.login-brand{display:none}.login-form-wrap{min-height:100vh;padding:22px 16px}.login-form-container{padding:25px 20px}.mobile-logo{display:block;margin-bottom:28px}.mobile-logo .logo-type{color:var(--ink)}.popover{position:fixed;top:73px;right:12px;left:12px;width:auto}.profile-popover{left:auto;width:min(275px,calc(100vw - 24px))}.form-grid{grid-template-columns:1fr}.form-grid label.full{grid-column:auto}.toast{right:14px;bottom:14px;left:14px;min-width:0}}@media (max-width:450px){.top-search{display:none}.mobile-wordmark .logo-type{font-size:18px}.mobile-wordmark .logo-mark{width:21px;height:21px}.page-header h1{font-size:25px}.mini-stats,.quick-grid,.stats-grid{grid-template-columns:1fr}.channel-grid{grid-template-columns:1fr 1fr}.parent-hero{grid-template-columns:1fr}.parent-hero>div:first-child{grid-column:auto}.parent-hero>div{border-top:1px solid var(--line);border-left:0}.child-actions{grid-template-columns:1fr}}.branding-loading{display:flex;min-height:240px;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:var(--muted)}.branding-scope-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.branding-scope-tabs>button{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;transition:.18s ease}.branding-scope-tabs>button.active{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent)}.branding-scope-tabs>button>svg{color:#247644}.branding-scope-tabs>button>span{display:flex;flex-direction:column}.branding-scope-tabs b{font-size:11px}.branding-scope-tabs small{margin-top:3px;color:var(--muted);font-size:8px}.branding-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);align-items:start;gap:16px}.branding-form-card,.branding-preview-card{padding:20px}.branding-field{display:flex;flex-direction:column;gap:7px;margin-top:15px}.branding-field>span{color:#455149;font-size:9px;font-weight:700}.branding-field>input,.branding-field>select,.colour-input{width:100%;min-height:43px;border:1px solid var(--line-dark);border-radius:10px;background:#fff;color:var(--ink);font-size:10px}.branding-field>input,.branding-field>select{padding:0 12px}.branding-field>small{color:var(--muted);font-size:7.5px}.branding-colours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.colour-input{display:flex;align-items:center;gap:8px;padding:5px 8px}.colour-input input[type=color]{width:30px;height:30px;padding:0;overflow:hidden;border:0;border-radius:7px;background:transparent}.colour-input input:last-child{min-width:0;flex:1 1;border:0;outline:0;color:var(--ink);font-size:10px;font-weight:650}.branding-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:17px}.branding-upload{position:relative;display:flex;align-items:center;gap:11px;min-height:92px;padding:13px;border:1px dashed #bfc9c1;border-radius:11px;background:#fafcfb;cursor:pointer}.branding-upload:hover{border-color:var(--green);background:#f5fbf7}.branding-upload>input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{display:grid;width:37px;height:37px;place-items:center;flex:none;border-radius:10px;background:var(--green-soft);color:#237745}.branding-upload>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.branding-upload b{font-size:9px}.branding-upload small{margin-top:3px;color:var(--muted);font-size:7px}.branding-upload em{overflow:hidden;margin-top:8px;color:#277746;font-size:7.5px;font-style:normal;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.branding-remove-row{display:flex;flex-wrap:wrap;gap:15px;margin:12px 0 0}.branding-remove-row label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:8px}.branding-remove-row input{accent-color:var(--green)}.branding-actions{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.branding-preview-card{position:sticky;top:92px}.branding-preview-card>div:first-child h3{overflow:hidden;margin:3px 0;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.branding-preview-card>div:first-child>span{color:var(--muted);font-size:8px}.branding-preview-window{margin:18px 0 13px;overflow:hidden;border-radius:12px;box-shadow:0 12px 26px rgba(10,25,14,.13)}.preview-window-top{display:flex;height:53px;align-items:center;gap:9px;padding:0 13px;color:#fff}.preview-window-top img{width:26px;height:26px;object-fit:contain}.preview-window-top .logo-mark{width:22px;height:22px;border-width:2px}.preview-window-top .logo-mark span{top:5px;left:5px;width:6px;height:6px}.preview-window-top b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.preview-window-body{display:grid;min-height:145px;grid-template-columns:62px 1fr;grid-template-rows:repeat(3,28px);gap:9px;padding:16px;background:#f5f8f6}.preview-window-body span{grid-row:1/4;border-radius:8px;opacity:.88}.preview-window-body i{border:1px solid #e5ebe6;border-radius:8px;background:#fff}.favicon-preview{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px}.favicon-preview>span{display:grid;width:34px;height:34px;place-items:center;overflow:hidden;border-radius:8px;background:var(--green);font-size:13px;font-weight:800}.favicon-preview img{width:100%;height:100%;object-fit:contain}.favicon-preview p{display:flex;flex-direction:column;margin:0}.favicon-preview b{font-size:8.5px}.favicon-preview small{margin-top:2px;color:var(--muted);font-size:7px}.branding-help{margin:13px 0 0;padding:11px;border-radius:9px;background:#f1f8f3;color:#41604c;font-size:7.5px;line-height:1.55}.demo-mode-banner{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;margin-bottom:15px;padding:10px 13px;border:1px solid #e6cf76;border-radius:11px;background:#fff9df;color:#5c4c15}.demo-mode-banner>span{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:#ffec9c}.demo-mode-banner p{margin:0;font-size:8.5px;line-height:1.45}.demo-mode-banner button{padding:6px 9px;border:1px solid #d2ba59;border-radius:8px;background:#fff;color:#5c4c15;font-size:8px;font-weight:700}.school-identity .school-crest img{width:75%;height:75%;object-fit:contain}.demo-access a{display:inline-flex;align-items:center;gap:5px;margin-top:9px;color:#1f713d;font-size:8px;font-weight:750;text-decoration:none}.public-demo-page{min-height:100vh;padding:0 7vw 56px;background:radial-gradient(circle at 10% 0,rgba(23,219,87,.13),transparent 28%),linear-gradient(rgba(220,229,222,.55) 1px,transparent 0),linear-gradient(90deg,rgba(220,229,222,.55) 1px,transparent 0),#f7faf7;background-size:auto,34px 34px,34px 34px,auto}.demo-header{display:flex;height:82px;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(28,57,36,.1)}.demo-wordmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.demo-wordmark .logo-type{color:var(--ink)}.demo-signin-link{padding:10px 14px;border:1px solid #cad3cc;border-radius:9px;background:rgba(255,255,255,.8);color:var(--ink);font-size:10px;font-weight:700;text-decoration:none}.demo-intro{max-width:700px;margin:70px auto 38px;text-align:center}.demo-kicker{display:inline-block;padding:6px 10px;border-radius:20px;background:#e2f9e9;color:#17683a;font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase}.demo-intro h1{margin:16px 0 13px;font-size:clamp(34px,5vw,58px);letter-spacing:-2.4px;line-height:1.03}.demo-intro p{max-width:580px;margin:0 auto;color:var(--muted);font-size:13px;line-height:1.65}.demo-role-grid{display:grid;max-width:1120px;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 auto}.demo-role-card{padding:24px;border:1px solid #dce4de;border-radius:18px;background:rgba(255,255,255,.95);box-shadow:0 18px 45px rgba(23,47,29,.06)}.demo-role-card.featured{border-color:var(--green);box-shadow:0 18px 55px rgba(23,219,87,.13)}.demo-role-top{display:flex;align-items:center;justify-content:space-between}.demo-role-number{color:#aab4ac;font-size:11px;font-weight:800}.demo-role-label{padding:5px 8px;border-radius:20px;background:#eef7f0;color:#276a3f;font-size:8px;font-weight:750}.demo-role-card h2{margin:28px 0 8px;font-size:20px;letter-spacing:-.6px}.demo-role-card>p{min-height:46px;margin:0;color:var(--muted);font-size:10px;line-height:1.55}.demo-role-card ul{display:grid;gap:8px;margin:21px 0;padding:0;list-style:none}.demo-role-card li{position:relative;padding-left:18px;color:#35433a;font-size:9px}.demo-role-card li:before{position:absolute;top:2px;left:0;width:10px;height:10px;border-radius:50%;background:var(--green);content:"";box-shadow:inset 0 0 0 3px #e7fbed}.demo-role-card>button{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;padding:0 13px;border:1px solid #101d14;border-radius:10px;background:var(--brand-dark);color:#fff;font-size:9px;font-weight:750}.demo-role-card.featured>button{background:var(--green);color:#0b2915}.demo-role-card>button:disabled{opacity:.6}.demo-error,.demo-note{max-width:680px;margin:25px auto 0;color:var(--muted);font-size:9px;line-height:1.55;text-align:center}.demo-error{padding:10px;border:1px solid #f1b9b9;border-radius:9px;background:#fff5f5;color:#a32d2d}@media (max-width:900px){.branding-layout,.demo-role-grid{grid-template-columns:1fr}.branding-preview-card{position:static}.demo-role-card>p{min-height:0}}@media (max-width:620px){.branding-colours,.branding-scope-tabs,.branding-upload-grid{grid-template-columns:1fr}.branding-layout .branding-form-card,.branding-layout .branding-preview-card{padding:16px}.demo-mode-banner{grid-template-columns:30px 1fr}.demo-mode-banner button{grid-column:2;justify-self:start}.public-demo-page{padding:0 18px 40px}.demo-header{height:68px}.demo-wordmark .logo-type{font-size:19px}.demo-intro{margin:48px auto 28px}.demo-intro h1{letter-spacing:-1.5px}}.platform-records{overflow:hidden}.records-message{display:flex;min-height:112px;align-items:center;gap:13px;margin:0 14px;padding:20px 8px;color:var(--muted)}.records-message>span:not(.spinner){display:flex;min-width:0;flex:1 1;flex-direction:column;gap:3px}.records-message b{color:var(--ink);font-size:10px}.records-message small{font-size:8.5px}.records-message.error{color:#a43838}.records-empty{display:grid;min-height:190px;place-items:center;align-content:center;padding:30px;text-align:center}.records-empty>span{display:grid;width:54px;height:54px;place-items:center;border-radius:16px;background:var(--green-soft);color:#16733d}.records-empty h3{margin:13px 0 5px;font-size:14px}.records-empty p{max-width:360px;margin:0;color:var(--muted);font-size:9px;line-height:1.6}.management-modal{width:min(720px,100%)}.form-section-label{display:flex;align-items:center;gap:10px;margin:21px 0 12px}.form-section-label:first-of-type{margin-top:0}.form-section-label span{color:var(--ink);font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.form-section-label i{height:1px;flex:1 1;background:var(--line)}.portal-prefix{flex-direction:row-reverse}.portal-prefix b{border-right:0;border-left:1px solid var(--line);white-space:nowrap}.colour-input,.generated-password{display:flex;min-width:0;gap:7px}.colour-input input[type=color]{width:46px;flex:none;padding:4px}.generated-password input{min-width:0;flex:1 1}.generated-password button{min-height:40px;padding:0 12px;border:1px solid var(--line-dark);border-radius:9px;background:#f6f8f6;color:var(--ink);font-size:9px;font-weight:650}.generated-password button:first-of-type{display:grid;width:42px;place-items:center;padding:0}.modal-error{margin-top:15px}.role-levels-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.role-level-card{display:flex;min-width:0;gap:10px;padding:14px}.permission-summary>span,.portal-access-card>span,.role-level-card>span{display:grid;width:35px;height:35px;flex:none;place-items:center;border-radius:10px;background:var(--green-soft);color:#16733d}.role-level-card h3{margin:1px 0 4px;font-size:10px}.role-level-card p{min-height:30px;margin:0;color:var(--muted);font-size:8px;line-height:1.45}.role-level-card small{display:block;margin-top:7px;color:#17723d;font-size:7.5px;font-weight:700}.permission-summary,.portal-access-card{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:13px;border:1px solid #dfe8e1;border-radius:11px;background:#f8fbf9}.permission-summary b,.portal-access-card b{font-size:9.5px}.permission-summary p,.portal-access-card p{margin:3px 0 0;color:var(--muted);font-size:8.5px;line-height:1.5}.portal-access-card>div{min-width:0;flex:1 1}.portal-access-card p{overflow:hidden;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.portal-access-card small{display:block;margin-top:4px;color:var(--muted);font-size:8px;line-height:1.45}.detail-modal{width:min(640px,100%)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.detail-grid p{display:flex;min-width:0;flex-direction:column;gap:4px;margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcfb}.detail-grid span{color:var(--muted);font-size:8px}.detail-grid b{overflow:hidden;font-size:9.5px;text-overflow:ellipsis}.detail-description{margin-top:12px;padding:13px;border:1px solid var(--line);border-radius:10px}.detail-description>b{font-size:9px}.detail-description>p{margin:6px 0 0;color:var(--muted);font-size:9px;line-height:1.6}.module-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.module-tags span{padding:6px 9px;border-radius:20px;background:var(--green-soft);color:#166e3b;font-size:8px;font-weight:650}.school-detail-hero{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid;border-radius:12px;background:#fafcfb}.school-detail-hero>span{display:grid;width:47px;height:47px;flex:none;place-items:center;border-radius:12px;color:#fff;font-size:17px;font-weight:800}.school-detail-hero>div{min-width:0;flex:1 1}.school-detail-hero h3{overflow:hidden;margin:3px 0;font-size:12px;text-overflow:ellipsis}.school-detail-hero small{color:var(--muted);font-size:8px}.split-actions{justify-content:space-between}.module-checks{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:13px;border:1px solid var(--line-dark);border-radius:10px}.module-checks legend{padding:0 5px;color:#49554c;font-size:9px;font-weight:650}.module-checks label{display:flex;align-items:center;flex-direction:row;gap:8px;padding:7px;border-radius:8px;background:#f7f9f7}.module-checks input{width:15px;min-height:15px;accent-color:var(--green)}.module-checks span{font-size:8.5px}.analytics-panel{padding:17px}.analytics-bars{display:flex;min-height:190px;align-items:flex-end;gap:8px;padding:22px 4px 0}.analytics-bars>div{display:flex;min-width:0;height:160px;flex:1 1;align-items:center;flex-direction:column;justify-content:flex-end;gap:6px}.analytics-bars i{position:relative;width:min(32px,100%);min-height:8px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--green),#9df0b4)}.analytics-bars i span{position:absolute;top:-17px;left:50%;color:var(--ink);font-size:7px;font-style:normal;transform:translateX(-50%)}.analytics-bars small{color:var(--muted);font-size:7px;white-space:nowrap}.activity-record{display:grid;grid-template-columns:37px 1fr auto;align-items:center;gap:10px;margin:0 14px;padding:12px 0;border-bottom:1px solid var(--line)}.activity-record p{display:flex;min-width:0;flex-direction:column;gap:3px;margin:0}.activity-record b{font-size:9.5px}.activity-record small,.activity-record time{color:var(--muted);font-size:8px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:14px}.settings-card{padding:18px}.settings-form{margin-top:16px}.switch-settings>div{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.settings-switch-icon{display:grid;width:36px;height:36px;flex:none;place-items:center;border-radius:10px}.settings-switch-icon.mint{background:var(--green-soft);color:#16733d}.settings-switch-icon.yellow{background:var(--yellow-soft);color:#8a6811}.switch-settings p{display:flex;min-width:0;flex:1 1;flex-direction:column;gap:3px;margin:0}.switch-settings b{font-size:9.5px}.switch-settings small{color:var(--muted);font-size:8px;line-height:1.4}.switch{position:relative;display:block;width:39px;height:23px;flex:none}.switch input{position:absolute;opacity:0}.switch i{position:absolute;inset:0;border-radius:20px;background:#d7ded9}.switch i:after{position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.15);content:"";transition:.2s ease}.switch input:checked+i{background:var(--green)}.switch input:checked+i:after{transform:translateX(16px)}.settings-actions,.settings-error{grid-column:1/-1}.settings-actions{display:flex;justify-content:flex-end}@media (max-width:980px){.role-levels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}}@media (max-width:620px){.detail-grid,.module-checks,.role-levels-grid{grid-template-columns:1fr}.generated-password,.portal-access-card{flex-wrap:wrap}.portal-access-card .button{width:100%;justify-content:center}.split-actions{align-items:stretch;flex-direction:column}.analytics-bars{gap:4px;overflow-x:auto}.analytics-bars>div{min-width:24px}.activity-record{grid-template-columns:37px 1fr}.activity-record time{grid-column:2}}.live-school-workspace{padding-bottom:36px}.school-context-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px}.school-context-strip h2,.school-context-strip p{margin:0}.school-context-strip h2{margin:3px 0 5px;font-size:18px}.school-context-strip>div>p:last-child{color:var(--muted);font-size:9px}.integration-strip{display:flex;flex-wrap:wrap;gap:10px;padding:13px}.integration-strip>div{display:flex;min-width:210px;flex:1 1;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fbfcfb}.integration-strip>div>span{display:grid;width:30px;height:30px;flex:none;place-items:center;border-radius:9px}.integration-strip .ready>span{color:#137840;background:var(--green-soft)}.integration-strip .not-ready>span{color:#996e04;background:var(--yellow-soft)}.integration-strip p{display:flex;flex-direction:column;gap:2px;margin:0}.integration-strip b{font-size:9px}.integration-strip small{color:var(--muted);font-size:7.5px;line-height:1.35}.live-summary-card{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(280px,1.3fr);gap:18px;padding:22px}.live-summary-card h2,.live-summary-card p{margin:0}.live-summary-card h2{margin-top:5px;font-size:19px}.live-summary-card>p{color:var(--muted);font-size:9.5px;line-height:1.7}.summary-checks{display:flex;grid-column:1/-1;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px solid var(--line)}.summary-checks span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:8px;color:#137840;background:var(--green-soft);font-size:8px;font-weight:700}.school-record-form{max-height:min(820px,calc(100vh - 36px));overflow-y:auto}.school-record-form textarea{min-height:110px;resize:vertical}.channel-fieldset{display:flex;flex-wrap:wrap;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px}.channel-fieldset legend{padding:0 5px;color:var(--muted);font-size:8px;font-weight:700}.channel-fieldset label{display:flex;align-items:center;flex-direction:row;gap:6px;padding:7px 9px;border-radius:8px;background:#f6f8f6;font-size:8.5px}.channel-fieldset input{width:15px;min-height:15px;accent-color:var(--green)}.detail-subtitle{margin:0 0 14px;padding:10px 12px;border-radius:9px;color:var(--muted);background:#f5f8f5;font-size:9px}.workspace-search-modal{width:min(520px,calc(100vw - 28px))}.workspace-search-input{width:100%;margin-bottom:12px}.workspace-search-results{display:flex;max-height:360px;overflow-y:auto;flex-direction:column;gap:5px}.workspace-search-results button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:9px;border:1px solid transparent;border-radius:9px;text-align:left}.workspace-search-results button:hover{border-color:var(--line);background:#f5f8f5}.workspace-search-results button>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;color:#147743;background:var(--green-soft)}.workspace-search-results b{font-size:9.5px}.workspace-search-results>p{padding:24px;color:var(--muted);font-size:9px;text-align:center}.notification-empty{display:flex;align-items:center;flex-direction:column;gap:5px;padding:26px 18px;color:var(--muted);text-align:center}.notification-empty>span{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;color:#147743;background:var(--green-soft)}.notification-empty b{color:var(--ink);font-size:10px}.notification-empty p{max-width:230px;margin:0;font-size:8px;line-height:1.5}@media (max-width:720px){.live-summary-card,.school-context-strip{grid-template-columns:1fr}.school-context-strip>.status-pill{width:max-content}.summary-checks{grid-column:1}}.card p,.channel-fieldset label,.detail-grid span,.detail-subtitle,.form-notice,.modal-card p,.modal-card small,.notification-empty b,.notification-empty p,.page p,.placeholder-row small,.sidebar small,.topbar small,.warning-note,.workspace-search-results b,.workspace-search-results p{font-size:13px;line-height:1.5}.card h3,.modal-card h3,.page h3{font-size:16px}.detail-grid b,.placeholder-row b,.status-pill,button,input,select,table,textarea{font-size:14px}.nested-modal{z-index:120}.management-modal,.school-detail-modal,.student-report-modal{max-height:calc(100vh - 32px);overflow-y:auto}.management-modal>.modal-actions,.sticky-modal-actions{position:sticky;z-index:5;bottom:-1px;margin:18px -24px -24px;padding:16px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.97);box-shadow:0 -12px 30px rgba(16,23,17,.07);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.compact-management-modal{width:min(680px,calc(100vw - 28px))}.modal-heading-submit{margin-left:auto;white-space:nowrap}.selection-fieldset{min-width:0;padding:15px;border:1px solid var(--line);border-radius:14px}.selection-fieldset legend{padding:0 7px;color:var(--ink);font-size:14px;font-weight:800}.selection-fieldset>p{margin:0;color:var(--muted)}.assignment-check-grid,.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px;max-height:300px;overflow-y:auto}.assignment-check-grid label,.check-grid label{display:flex;align-items:center;flex-direction:row;gap:9px;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f8faf8}.assignment-check-grid input,.check-grid input{width:17px;min-height:17px;accent-color:var(--green)}.assignment-check-grid label>span{display:grid;gap:2px}.assignment-check-grid small{color:var(--muted)}.student-report-modal{width:min(1020px,calc(100vw - 28px))}.report-sheet{padding:8px 4px;color:#17211b}.report-sheet>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:3px solid var(--green)}.report-sheet>header h1{margin:4px 0;font-size:28px}.report-sheet>header img{width:70px;height:70px;object-fit:contain}.report-sheet>h2{margin:28px 0 12px;font-size:18px}.attendance-report-grid,.report-student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:20px}.report-student-profile{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px}.report-student-profile>img{width:78px;height:78px;margin-top:20px;border-radius:14px;object-fit:cover}.report-student-profile .report-student-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.attendance-report-grid p,.report-student-grid p{display:grid;gap:5px;margin:0;padding:13px;border:1px solid var(--line);border-radius:11px;background:#f8faf8}.attendance-report-grid span,.report-student-grid span{color:var(--muted);font-size:12px}.history-timeline{display:grid;gap:10px}.history-timeline>div{display:grid;grid-template-columns:12px 1fr;gap:10px}.history-timeline>div>span{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--green)}.history-timeline p{display:grid;gap:3px;margin:0}.history-timeline small{color:var(--muted)}.formatted-lesson{max-width:820px;margin:0 auto}.formatted-lesson h1{margin:0 0 26px;padding-bottom:14px;border-bottom:3px solid var(--green);font-size:clamp(25px,4vw,34px);line-height:1.2}.formatted-lesson h2{margin:30px 0 12px;color:#0b6f47;font-size:21px}.formatted-lesson h3{margin:22px 0 10px;font-size:17px}.formatted-lesson ol,.formatted-lesson ul{display:grid;gap:7px;padding-left:26px}.formatted-lesson li,.formatted-lesson p{font-size:15px;line-height:1.75}.notification-button{position:relative}.notification-count{position:absolute;top:-5px;right:-5px;display:grid;min-width:18px;height:18px;padding:0 4px;place-items:center;border:2px solid #fff;border-radius:999px;color:#fff;background:var(--red);font-size:10px;font-style:normal;font-weight:800}.notification-list{display:grid;max-height:420px;overflow-y:auto}.notification-list>button{width:100%;padding:12px 15px;border-bottom:1px solid var(--line);text-align:left}.notification-list>button.unread{background:var(--green-soft)}.notification-list span{display:grid;gap:4px}.notification-list small{display:-webkit-box;overflow:hidden;color:var(--muted);-webkit-box-orient:vertical;-webkit-line-clamp:2}.notification-list time{color:var(--muted-2);font-size:11px}.child-switcher{min-width:260px;min-height:46px;padding:0 42px 0 14px;border:1px solid var(--line);border-radius:12px;background-color:#fff;font-weight:700}.family-child-hero{display:grid;grid-template-columns:minmax(270px,1.7fr) repeat(3,minmax(130px,.75fr));gap:14px;padding:20px}.family-child-hero>div:not(.family-child-person){display:grid;align-content:center;gap:6px;min-height:78px;padding:14px;border-left:1px solid var(--line)}.family-child-hero>div>span{color:var(--muted);font-size:13px}.family-child-hero>div>b{font-size:21px}.family-child-person{display:flex;align-items:center;gap:14px}.family-child-person>img{width:58px;height:58px;border-radius:16px;object-fit:cover}.family-child-person h2,.family-child-person p{margin:0}.family-child-person>span{display:grid;gap:4px}.family-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.family-section{min-width:0;padding:20px}.family-activity-list,.family-invoice-list,.family-subject-list,.learning-file-list{display:grid}.family-activity-list>a,.family-activity-list>div,.family-subject-list>div,.learning-file-list>a{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.family-activity-list>:last-child,.family-subject-list>div:last-child,.learning-file-list>:last-child{border-bottom:0}.family-activity-list p,.family-subject-list p,.learning-file-list p{display:grid;flex:1 1;gap:3px;margin:0}.family-activity-list small,.family-subject-list small,.learning-file-list em,.learning-file-list small{color:var(--muted);font-size:13px;font-style:normal}.assignment-timeline{display:grid;gap:0}.assignment-timeline article{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding-bottom:22px}.assignment-timeline article:before{position:absolute;top:10px;bottom:-5px;left:5px;width:2px;background:var(--line);content:""}.assignment-timeline article:last-of-type:before{display:none}.assignment-timeline article>span{z-index:1;width:12px;height:12px;margin-top:5px;border:3px solid var(--green-soft);border-radius:50%;background:var(--green)}.assignment-timeline article>div{display:grid;gap:7px}.assignment-timeline h4,.assignment-timeline p{margin:0}.assignment-timeline a{color:var(--green-dark);font-weight:800}.family-report-button{margin-top:18px}.family-fees-section{padding:22px}.family-invoice-list{gap:15px}.family-invoice-list>article{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fbfcfb}.family-invoice-list header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.family-invoice-list h4,.family-invoice-list header p{margin:0}.family-invoice-list header>div{display:grid;gap:5px}.invoice-item-list{display:grid;gap:8px;margin:16px 0;padding:14px;border-radius:12px;background:#fff}.family-invoice-list details p,.invoice-item-list p,.invoice-total-row p{display:flex;justify-content:space-between;gap:14px;margin:0}.invoice-total-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.invoice-total-row p{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.invoice-total-row span{color:var(--muted);font-size:12px}.family-invoice-list details{margin-top:14px;padding:12px;border-radius:10px;background:#fff}.family-invoice-list details summary{cursor:pointer;font-weight:800}.family-invoice-list details p{padding-top:10px}.partial-payment-row{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;margin-top:16px}.partial-payment-row label{min-width:210px}.fee-item-editor{display:grid;gap:12px}.fee-item-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(150px,.8fr) auto;align-items:end;gap:10px}.fee-item-editor-footer,.integration-row-actions{display:flex;align-items:center;justify-content:space-between;gap:9px}.integration-row-actions{justify-content:flex-end}.form-notice code{font-size:12px;font-weight:800}@media (max-width:960px){.family-child-hero{grid-template-columns:repeat(3,1fr)}.family-child-person{grid-column:1/-1}.family-child-hero>div:not(.family-child-person){border-top:1px solid var(--line);border-left:0}.family-dashboard-grid{grid-template-columns:1fr}}@media (max-width:620px){.family-child-hero,.invoice-total-row{grid-template-columns:1fr}.family-child-person{grid-column:auto}.family-child-hero>div:not(.family-child-person){min-height:auto}.fee-item-editor-footer,.partial-payment-row{align-items:stretch;flex-direction:column}.partial-payment-row label{min-width:0}.fee-item-row{grid-template-columns:1fr auto}.fee-item-row label:first-child{grid-column:1/-1}}@media print{body *{visibility:hidden}.student-report-modal,.student-report-modal *{visibility:visible}.student-report-modal{position:absolute;inset:0;width:100%;max-height:none;overflow:visible;box-shadow:none}.no-print{display:none!important}}