@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;0,700;1,600&family=DM+Sans:wght@300;400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--blue:#2563eb;--blue-hover:#1d4ed8;--blue-light:#e0f2fe;--blue-soft:#2563eb1f;--navy:#0b1320;--navy-mid:#111c2e;--navy-soft:#0f172a0d;--bg-app:#f8fafc;--card:#fff;--text:#0f172a;--text-muted:#64748b;--border:#00000012;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-card:0 1px 3px #0000000a, 0 8px 20px -4px #00000008;--shadow-hover:0 10px 28px #0000000f;--green:#16a34a;--green-bg:#dcfce7;--green-text:#166534;--red:#e11d48;--red-bg:#fee2e2;--red-text:#991b1b;--amber:#f59e0b;--amber-bg:#fef3c7;--amber-text:#92400e}[data-theme=dark]{--blue:#38bdf8;--blue-hover:#0284c7;--blue-light:#0369a1;--blue-soft:#38bdf833;--navy:#0b1320;--navy-mid:#1e293b;--navy-soft:#ffffff14;--bg-app:#090e1a;--card:#0f172ae0;--text:#f8fafc;--text-muted:#94a3b8;--border:#ffffff1f;--shadow-card:0 10px 30px #00000073;--shadow-hover:0 14px 40px #0009;--green:#22c55e;--green-bg:#34d39933;--green-text:#6ee7b7;--red:#f87171;--red-bg:#f8717133;--red-text:#fca5a5;--amber:#fbbf24;--amber-bg:#f59e0b33;--amber-text:#fde047}body{background-color:var(--bg-app);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}[data-theme=dark] body{background:radial-gradient(circle at 50% 0,#1e293b80 0%,#090e1a 100%)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#64748b40;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b73}.font-serif{font-family:Playfair Display,Georgia,serif}.portal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform .25s,box-shadow .25s,border-color .25s}.portal-card:hover{box-shadow:var(--shadow-hover)}.badge{border-radius:var(--radius-full);align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;line-height:1.2;display:inline-flex}.badge-blue{background:var(--blue-soft);color:var(--blue);border:1px solid var(--blue)}.badge-green{background:var(--green-bg);color:var(--green-text);border:1px solid #22c55e4d}.badge-amber{background:var(--amber-bg);color:var(--amber-text);border:1px solid #f59e0b4d}.badge-red{background:var(--red-bg);color:var(--red-text);border:1px solid #ef44444d}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 2px 8px #2563eb40}.btn-primary:hover:not(:disabled){background:var(--blue-hover);transform:translateY(-1px)}.btn-outline{color:var(--text);border:1px solid var(--border);background:0 0}.btn-outline:hover:not(:disabled){background:var(--navy-soft)}.btn-danger{background:var(--red-bg);color:var(--red-text);border:1px solid #ef44444d}.btn-danger:hover:not(:disabled){background:var(--red);color:#fff}.form-control{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--card);outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}[data-theme=dark] .form-control{background:#0f172a99;border-color:#ffffff1f}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.25s cubic-bezier(.16,1,.3,1) forwards fadeIn}@keyframes tickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.animate-ticker{white-space:nowrap;will-change:transform;width:max-content;animation:35s linear infinite tickerScroll;display:inline-flex}.animate-ticker:hover{animation-play-state:paused}.school-page{gap:18px;display:grid}.school-header{justify-content:space-between;align-items:center;gap:20px;padding:26px 30px;display:flex}.school-heading h1{color:var(--text);margin:5px 0 3px;font-size:28px}.school-heading p,.school-muted{color:var(--text-muted);font-size:13px}.school-eyebrow,.school-section-kicker{color:var(--blue);letter-spacing:.09em;align-items:center;gap:7px;font-size:11px;font-weight:700;display:inline-flex}.school-status,.school-unavailable-pill{border:1px solid var(--amber);border-radius:var(--radius-full);background:var(--amber-bg);color:var(--amber-text);white-space:nowrap;align-items:center;gap:7px;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.school-notice{border:1px solid var(--amber);border-radius:var(--radius-md);background:var(--amber-bg);color:var(--amber-text);align-items:flex-start;gap:11px;padding:14px 17px;font-size:13px;display:flex}.school-notice svg{flex:none;margin-top:1px}.school-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.school-stat{grid-template-columns:38px 1fr;align-items:center;gap:3px 12px;padding:17px;display:grid}.school-stat-icon{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:12px;grid-row:span 2;place-items:center;display:grid}.school-stat-label{color:var(--text-muted);font-size:12px}.school-stat strong{color:var(--text);font-size:17px}.school-tabs{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);gap:5px;padding:5px;display:flex;overflow-x:auto}.school-tab{color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:9px;flex:none;padding:9px 13px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.school-tab:hover{background:var(--navy-soft);color:var(--text)}.school-tab.is-active{background:var(--blue);color:#fff}.school-tab:focus-visible,.school-panel:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.school-panel{min-height:360px;padding:25px}.school-overview{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);align-items:center;gap:44px;min-height:300px;display:grid}.school-overview h2,.school-section-heading h2{color:var(--text);margin:6px 0;font-size:21px}.school-overview .school-muted{max-width:490px;line-height:1.7}.school-setup-list{gap:10px;display:grid}.school-setup-item{border:1px solid var(--border);border-radius:12px;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.school-setup-item>span{background:var(--navy-soft);width:32px;height:32px;color:var(--text-muted);border-radius:10px;place-items:center;font-size:11px;font-weight:700;display:grid}.school-setup-item p{color:var(--text);font-size:12.5px;font-weight:600}.school-setup-item small{color:var(--text-muted);font-size:11px}.school-section{min-height:305px}.school-section-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.school-section-heading .school-muted{margin-top:6px}.school-filter{min-width:190px;color:var(--text-muted);gap:5px;font-size:11px;font-weight:600;display:grid}.school-filter select{font-size:12px}.school-empty{border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;align-content:center;justify-items:center;min-height:220px;padding:26px;display:grid}.school-empty-icon{background:var(--blue-soft);width:48px;height:48px;color:var(--blue);border-radius:15px;place-items:center;margin-bottom:13px;display:grid}.school-empty h3{color:var(--text);margin-bottom:5px;font-size:15px}.school-empty p{max-width:540px;color:var(--text-muted);font-size:12.5px;line-height:1.65}.school-attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.school-attendance-count{border:1px solid var(--border);color:var(--text-muted);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:13px 15px;font-size:12px;display:flex}.school-attendance-count strong{color:var(--text);font-size:14px}@media (width<=780px){.school-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.school-overview{grid-template-columns:1fr;gap:24px;padding:8px 0}}@media (width<=560px){.school-header{flex-direction:column;align-items:flex-start;padding:21px}.school-heading h1{font-size:24px}.school-panel{padding:18px}.school-section-heading{flex-direction:column}.school-filter{width:100%}.school-attendance-summary{grid-template-columns:1fr}.school-setup-item{grid-template-columns:34px 1fr}.school-setup-item small{grid-column:2}}
