@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-sans:"Inter","Inter Fallback"}:root{color-scheme:light dark;font-family:var(--font-sans,system-ui,sans-serif);--neutral-50:#f8fafc;--neutral-100:#f1f5f9;--neutral-200:#e2e8f0;--neutral-300:#cbd5e1;--neutral-400:#94a3b8;--neutral-500:#64748b;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1e293b;--neutral-900:#0f172a;--brand-50:#f0f9ff;--brand-100:#e0f2fe;--brand-200:#bae6fd;--brand-300:#7dd3fc;--brand-400:#38bdf8;--brand-500:#0ea5e9;--brand-600:#0284c7;--brand-700:#0369a1;--brand-800:#075985;--brand-900:#0c4a6e;--semantic-success:#22c55e;--semantic-warning:#f59e0b;--semantic-danger:#ef4444;--semantic-info:#06b6d4;--subject-maths:#3b82f6;--subject-science:#16a34a;--subject-english:#ec4899;--subject-social:#ea580c;--subject-languages:#8b5cf6;--subject-computer:#0d9488;--subject-arts:#d97706;--subject-other:#4b5563;--font-display:"Inter","Noto Sans",system-ui,sans-serif;--font-sans:"Inter","Noto Sans",system-ui,sans-serif;--text-display:44px;--text-h1:34px;--text-h2:28px;--text-h3:24px;--text-body-l:22px;--text-body:20px;--text-body-s:17px;--text-caption:15px;--spacing-0:0px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--spacing-64:64px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-full:36px;--elevation-1:0 1px 2px rgba(0,0,0,0.06);--elevation-2:0 3px 8px rgba(0,0,0,0.08);--elevation-3:0 8px 24px rgba(0,0,0,0.12);--elevation-4:0 13px 40px rgba(0,0,0,0.16);--bg:var(--neutral-900);--panel:var(--neutral-800);--text:var(--neutral-100);--muted:var(--neutral-400);--accent:var(--brand-500);--danger:var(--semantic-danger);--border:var(--neutral-700);--navy:var(--brand-800);--navy-deep:var(--brand-900);--navy-muted:var(--brand-700);--surface:#ffffff;--surface-muted:var(--neutral-50);--surface-border:var(--neutral-200);--text-primary:var(--neutral-900);--text-secondary:var(--neutral-600);--shadow-sm:var(--elevation-1);--shadow-md:var(--elevation-2);--radius:var(--radius-sm);--radius-lg:var(--radius-md)}*{box-sizing:border-box}body{margin:0;background:var(--surface-muted);color:var(--text-primary)}a{color:var(--navy-muted);text-decoration:none}a:hover{color:var(--navy)}.muted{color:var(--text-secondary)}.stack{display:flex;flex-direction:column;gap:1rem}button,input,select,textarea{font:inherit}input,select,textarea{color:#0f172a!important;background-color:#ffffff!important;border:1px solid #cbd5e1;border-radius:8px;padding:8px 12px}input::placeholder,textarea::placeholder{color:#94a3b8!important;opacity:1}.search-input{color:#0f172a!important;background-color:#ffffff!important;border:1px solid #cbd5e1!important;border-radius:8px!important;padding:8px 12px!important;font-size:14px!important;outline:none}.search-input:focus{border-color:#0284c7!important;box-shadow:0 0 0 3px rgba(2,132,199,.15)!important}button:disabled{opacity:.65;cursor:not-allowed}.error{color:#b91c1c;margin:0}.notice{margin:0;padding:.75rem .9rem;font-size:.9rem;color:var(--navy);background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px}.gradient-text{background:linear-gradient(90deg,var(--brand-500) 0,var(--subject-languages) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-bg{background:linear-gradient(90deg,var(--brand-500) 0,var(--subject-languages) 100%);color:white}.shell{background:var(--neutral-50);color:var(--text-primary);display:flex;min-height:100vh;background:#F8FAFC;color:#0F172A;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.shell-sidebar{width:240px;background:#0B132B;border-right:1px solid #172242;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:100}.shell-sidebar__logo{padding:24px 20px 20px;display:flex;flex-direction:column}.shell-sidebar__logo-top{display:flex;align-items:center;gap:12px}.logo-icon-box{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#00A3FF,#1D61F2);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#FFFFFF;box-shadow:0 4px 12px rgba(29,97,242,.35);flex-shrink:0}.logo-text-group{display:flex;flex-direction:column}.logo-brand-name{font-size:16px;font-weight:800;color:#FFFFFF;letter-spacing:.5px;line-height:1.2}.logo-school-name{font-size:11px;font-weight:500;color:#64748B;letter-spacing:.2px;margin-top:2px}.shell-nav{display:flex;flex-direction:column;padding:12px 14px;gap:6px;flex:1 1}.shell-nav__link{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;font-size:13.5px;font-weight:500;color:#94A3B8;text-decoration:none;transition:all .2s ease;height:42px}.shell-nav__link .nav-svg,.shell-nav__link svg{width:19px;height:19px;opacity:.85;stroke-width:1.8;flex-shrink:0}.shell-nav__link:hover{background:rgba(255,255,255,.06);color:#FFFFFF}.shell-nav__link--active{background:#15244C!important;color:#FFFFFF!important;font-weight:600!important;box-shadow:inset 3px 0 0 #1D61F2}.shell-nav__link--active .nav-svg,.shell-nav__link--active svg{opacity:1;color:#38BDF8}.shell-sidebar__user{padding:18px 20px;border-top:1px solid #172242;display:flex;align-items:center;gap:12px;cursor:pointer;background:rgba(0,0,0,.15);transition:background .2s ease}.shell-sidebar__user:hover{background:rgba(255,255,255,.04)}.shell-user__avatar{width:36px;height:36px;border-radius:50%;background:#1D61F2;color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.shell-user__info{display:flex;flex-direction:column;overflow:hidden}.shell-user__name{font-size:13px;font-weight:600;color:#FFFFFF}.shell-user__email,.shell-user__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-user__email{font-size:11px;color:#64748B;margin-top:1px}.shell-main{flex:1 1;margin-left:240px;min-height:100vh;display:flex;flex-direction:column;background:#F8FAFC}.page-header{min-height:72px;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;background:#FFFFFF;border-bottom:1px solid #f1f5f9;flex-shrink:0}.page-title{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em;color:#0F172A}.header-actions{display:flex;align-items:center;gap:14px}.btn--primary,.btn-invite-teacher{height:40px;padding:0 18px;border-radius:10px;display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:#FFFFFF!important;background:#1D61F2!important;text-decoration:none;border:none;cursor:pointer;box-shadow:0 2px 6px rgba(29,97,242,.25);transition:all .2s ease}.btn--primary:hover,.btn-invite-teacher:hover{background:#1551D8!important}.header-avatar-badge{width:38px;height:38px;border-radius:50%;background:#00A3FF;color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.search-input{display:flex;align-items:center;background:var(--neutral-50);border-radius:var(--radius-full);padding:0 16px;width:280px;height:40px;border:1px solid var(--surface-border)}.search-input input{border:none;background:transparent;width:100%;outline:none;font-size:13px;margin-left:8px;color:var(--neutral-900)}.search-input input::placeholder{color:var(--neutral-400)}.btn--add{padding:0 20px;border-radius:var(--radius-sm);gap:8px;color:white;background:var(--brand-500);text-decoration:none;border:none}.btn--add,.header-avatar{height:40px;display:flex;align-items:center;font-size:14px;font-weight:600}.header-avatar{width:40px;border-radius:var(--radius-full);justify-content:center;margin-left:8px}.shell-content{padding:24px 32px;width:100%;max-width:1200px;box-sizing:border-box}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;margin-bottom:22px}.kpi-card{height:106px;padding:20px;border:1px solid var(--surface-border);border-radius:14px;background:var(--surface);box-shadow:var(--elevation-1);display:flex;flex-direction:column;justify-content:center}.kpi-label{font-size:13px;color:var(--neutral-500);margin-bottom:8px;font-weight:500}.kpi-value{font-size:32px;font-weight:700;color:var(--neutral-900);margin-bottom:4px;line-height:1;letter-spacing:-.01em}.kpi-trend{font-size:13px;font-weight:500}.kpi-trend.success{color:var(--semantic-success)}.kpi-trend.warning{color:var(--subject-arts)}.table-card{padding:0;background:var(--surface);border:1px solid var(--surface-border);border-radius:14px;box-shadow:var(--elevation-1);overflow:hidden}.table-wrap{width:100%}.data-table{width:100%;border-collapse:collapse}.data-table th{height:48px;text-align:left;font-size:11px;font-weight:600;color:var(--neutral-400);text-transform:uppercase;letter-spacing:.05em;background:var(--neutral-50)}.data-table td,.data-table th{padding:0 24px;border-bottom:1px solid var(--surface-border);vertical-align:middle}.data-table td{height:64px}.data-table tr:last-child td{border-bottom:none}.school-cell{gap:16px}.school-avatar,.school-cell{display:flex;align-items:center}.school-avatar{width:36px;height:36px;border-radius:var(--radius-full);justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.school-name{font-weight:600;color:var(--neutral-900);font-size:14px;margin-bottom:2px}.school-location{font-size:12px;color:var(--neutral-500)}.badge--code{background:var(--brand-50);color:var(--brand-600);border:1px solid var(--brand-200);padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;letter-spacing:.02em}.board-cell{color:var(--neutral-600);font-size:14px;font-weight:500}.panels-cell{color:var(--neutral-900);font-size:14px;font-weight:600}.badge--status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.badge--active{background:rgba(34,197,94,.1);color:var(--semantic-success)}.badge--inactive{background:var(--neutral-100);color:var(--neutral-500)}.status-dot{width:6px;height:6px;border-radius:50%}.badge--active .status-dot{background:var(--semantic-success)}.badge--inactive .status-dot{background:var(--neutral-400)}.actions-cell{text-align:right;width:48px}.btn-icon{background:transparent;border:none;cursor:pointer;color:var(--neutral-400);font-size:20px;font-weight:700;padding:4px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn-icon:hover{background:var(--neutral-100);color:var(--neutral-700)}.error{color:var(--semantic-danger)}@media (min-width:768px){.marketing-nav__links{display:flex}.marketing-hero{grid-template-columns:1fr 1fr;padding-top:4rem}.dashboard-preview__grid,.marketing-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.marketing-nav__actions .btn--ghost{display:none}.dashboard-preview__grid{grid-template-columns:1fr 1fr}.dashboard-preview__chart{grid-column:1/-1}.dashboard-preview__table{grid-column:1/-1;grid-row:auto;height:4rem}}.auth-split{display:flex;height:100vh;height:100dvh;overflow:hidden;font-family:var(--font-sans)}.auth-split__brand{display:none;flex:0 0 560px;max-width:560px;background:#0F1730;position:relative;overflow:hidden;color:white;padding:3rem;flex-direction:column;justify-content:space-between}.auth-split__brand:before{width:660px;height:660px;background:rgba(59,130,246,.16);bottom:-200px;left:-200px}.auth-split__brand:after,.auth-split__brand:before{content:"";position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}.auth-split__brand:after{width:520px;height:520px;background:rgba(168,85,247,.13);top:-100px;right:-100px}@media (min-width:900px){.auth-split__brand{display:flex}}.auth-split__logo{gap:.75rem;font-weight:600;letter-spacing:.05em;flex-shrink:0}.auth-split__logo,.logo-icon{display:flex;align-items:center}.logo-icon{width:32px;height:32px;background:linear-gradient(90deg,#22D3EE,#3B82F6 50%,#A855F7);color:white;border-radius:8px;justify-content:center;font-weight:700}.logo-text{font-size:1.1rem}.auth-split__content{margin:2rem 0}.auth-split__title{font-size:var(--text-h1);line-height:var(--lh-h1,1.2);margin-bottom:1.5rem;font-weight:600;letter-spacing:-.02em}.auth-split__lead{font-size:var(--text-body);color:var(--neutral-300);margin-bottom:3rem;line-height:1.5}.auth-split__features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.25rem}.auth-split__features li{display:flex;align-items:center;gap:1rem;font-size:.95rem;color:var(--neutral-200)}.check-icon{width:20px;height:20px;border-radius:50%;background:linear-gradient(90deg,#22D3EE,#3B82F6 50%,#A855F7);display:flex;align-items:center;justify-content:center;font-size:12px;color:white;flex-shrink:0}.auth-split__footer{font-size:.85rem;color:var(--neutral-500);flex-shrink:0}.auth-split__form-container{flex:1 1;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:1rem;overflow-y:auto}.auth-split__form-wrapper{width:100%;max-width:400px;margin:auto}.form-title{font-size:var(--text-h2);font-weight:600;color:var(--neutral-900);margin-bottom:.5rem}.form-subtitle{font-size:.95rem;color:var(--neutral-500);margin-bottom:.5rem}.verify-btn{background:#3b82f6;color:white;padding:.8rem;border-radius:8px;font-weight:500;font-size:1rem;margin-top:1rem;border:none}.verify-btn:hover{background:#2563eb}.divider{display:flex;align-items:center;text-align:center;margin:.5rem 0;color:var(--neutral-400);font-size:.85rem}.divider:after,.divider:before{content:"";flex:1 1;border-bottom:1px solid var(--neutral-200)}.divider span{padding:0 1rem}.google-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border-radius:8px;border:1px solid var(--neutral-200);background:white;color:var(--neutral-700);font-weight:500;font-size:.95rem}.google-btn:hover{background:var(--neutral-50)}.google-icon{color:#db4437;font-weight:700}.form-footer{margin-top:1rem;font-size:.85rem}.form-footer a{color:var(--neutral-500);text-decoration:underline}.error-hint{color:var(--semantic-danger);font-size:.85rem;margin-top:.5rem}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(100,116,139,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-container{background:#ffffff;width:100%;max-width:560px;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);display:flex;flex-direction:column}.modal-header{padding:24px 24px 16px;display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0}.modal-title{margin:0 0 4px;font-size:20px;font-weight:700;color:var(--neutral-900)}.modal-subtitle{margin:0;font-size:13px;color:var(--neutral-500)}.modal-close{background:#ffffff;border:1px solid var(--surface-border);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--neutral-500);transition:all .2s}.modal-close:hover{background:var(--neutral-50);color:var(--neutral-900)}.modal-form{padding:0 24px 24px;display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;font-weight:500;color:var(--neutral-600)}.form-group input[type=email],.form-group input[type=tel],.form-group input[type=text],.form-group select{height:40px;padding:0 12px;border:1px solid var(--surface-border);border-radius:8px;font-size:13px;color:var(--neutral-900);background:#ffffff;outline:none;width:100%;box-sizing:border-box;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--brand-500)}.form-group input::placeholder{color:var(--neutral-400)}.select-wrapper{position:relative}.select-wrapper select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px}.select-icon{position:absolute;right:12px;top:12px;color:var(--neutral-400);pointer-events:none}.color-picker-wrapper{display:flex;gap:8px;align-items:center}.color-picker-input{width:40px;height:40px;border:none;border-radius:8px;cursor:pointer;padding:0;overflow:hidden;box-shadow:0 0 0 1px var(--surface-border)}.color-picker-input::-webkit-color-swatch-wrapper{padding:0}.color-picker-input::-webkit-color-swatch{border:none}.color-text-input{flex:1 1}.upload-zone{border:1px dashed #94a3b8;border-radius:8px;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;background:var(--neutral-50);transition:all .2s}.upload-zone:hover{background:#F1F5F9;border-color:var(--brand-500)}.upload-icon{color:var(--brand-500);margin-bottom:8px}.upload-text{font-size:13px;font-weight:600;color:var(--neutral-900)}.upload-hint{font-size:11px;color:var(--neutral-500)}.modal-footer{margin-top:8px;padding-top:16px;border-top:1px solid var(--surface-border);display:flex;justify-content:flex-end;gap:12px;flex-shrink:0}.btn-cancel{height:40px;padding:0 24px;background:#ffffff;border:1px solid var(--surface-border);border-radius:8px;font-size:13px;font-weight:600;color:var(--neutral-700);cursor:pointer}.btn-cancel:hover{background:var(--neutral-50)}.btn-submit{height:40px;padding:0 24px;background:var(--brand-500);border:none;border-radius:8px;font-size:13px;font-weight:600;color:#ffffff;cursor:pointer}.btn-submit:hover{background:var(--brand-600)}.btn-submit:disabled{opacity:.7;cursor:not-allowed}.error-message{background:rgba(239,68,68,.1);color:var(--semantic-danger);padding:12px;border-radius:8px;font-size:13px;margin-bottom:8px}.toast-notification{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#ffffff;border-radius:12px;box-shadow:0 10px 25px -5px rgba(0,0,0,.15),0 8px 10px -6px rgba(0,0,0,.1);padding:16px 20px;display:flex;align-items:flex-start;gap:16px;z-index:9999;border:1px solid var(--surface-border);animation:toast-slide-in .3s cubic-bezier(.16,1,.3,1);max-width:400px;width:100%}.toast-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding-top:2px}.toast-content{flex:1 1;display:flex;flex-direction:column;gap:4px}.toast-title{font-size:14px;font-weight:600;color:var(--neutral-900)}.toast-message{font-size:13px;color:var(--neutral-500)}.toast-close{background:transparent;border:none;cursor:pointer;color:var(--neutral-400);display:flex;align-items:center;justify-content:center;padding:0;margin-top:2px}.toast-close:hover{color:var(--neutral-900)}@keyframes toast-slide-in{0%{transform:translate(-50%,-45%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}