:root{color-scheme:light}html[data-theme=dark]{color-scheme:dark}.font-display{font-family:Georgia,Times New Roman,serif}.soft-shadow{box-shadow:0 2px 10px rgba(16,35,62,.045)}html[data-theme=dark] .soft-shadow{box-shadow:0 2px 12px rgba(0,0,0,.32)}html[data-theme=dark] .bg-white{background-color:hsl(var(--card))}html[data-theme=dark] .bg-white\/95{background-color:hsl(var(--card)/.95)}html[data-theme=dark] .bg-\[\#f7f8fb\],html[data-theme=dark] .bg-\[\#fbfaf7\]{background-color:hsl(var(--background))}html[data-theme=dark] .bg-\[\#f8fafc\],html[data-theme=dark] .bg-\[\#fbfcfe\],html[data-theme=dark] .bg-\[\#fbfcff\]{background-color:hsl(var(--muted)/.35)}html[data-theme=dark] .bg-\[\#f1fff5\],html[data-theme=dark] .bg-\[\#f5f9ff\],html[data-theme=dark] .bg-\[\#f7fbff\],html[data-theme=dark] .bg-\[\#f8f5ff\],html[data-theme=dark] .bg-\[\#fff5f5\],html[data-theme=dark] .bg-\[\#fff8ed\],html[data-theme=dark] .bg-\[\#fff9ec\],html[data-theme=dark] .bg-\[\#fffaf0\],html[data-theme=dark] .bg-\[\#fffdf8\],html[data-theme=dark] .bg-\[\#fffefb\]{background-color:hsl(var(--card))}html[data-theme=dark] .text-\[\#10233e\]{color:hsl(var(--foreground))}html[data-theme=dark] .text-\[\#31506b\],html[data-theme=dark] .text-\[\#526176\],html[data-theme=dark] .text-\[\#586273\],html[data-theme=dark] .text-\[\#667085\],html[data-theme=dark] .text-\[\#7a8798\]{color:hsl(var(--muted-foreground))}html[data-theme=dark] .border-\[\#d8ccff\],html[data-theme=dark] .border-\[\#d8e4ef\],html[data-theme=dark] .border-\[\#eadfca\],html[data-theme=dark] .border-\[\#eee8da\]{border-color:hsl(var(--border))}html[data-theme=dark] .hover\:bg-\[\#f2eadb\]:hover,html[data-theme=dark] .hover\:bg-\[\#fff9ec\]:hover{background-color:hsl(var(--muted))}html[data-theme=dark] .hover\:text-\[\#10233e\]:hover{color:hsl(var(--foreground))}html[data-theme=dark] .bg-slate-100{background-color:rgb(51 65 85/.42)}html[data-theme=dark] .text-slate-700{color:rgb(203 213 225)}html[data-theme=dark] .bg-emerald-50{background-color:rgb(6 78 59/.3)}html[data-theme=dark] .text-emerald-700{color:rgb(110 231 183)}html[data-theme=dark] .bg-amber-50{background-color:rgb(120 53 15/.28)}html[data-theme=dark] .text-amber-700{color:rgb(252 211 77)}html[data-theme=dark] .bg-red-50{background-color:rgb(127 29 29/.28)}html[data-theme=dark] .text-red-700{color:rgb(252 165 165)}.portal-dashboard{min-height:100vh;background:radial-gradient(circle at 18% 8%,hsl(var(--primary)/.12),transparent 34rem),linear-gradient(180deg,hsl(var(--background)) 0,hsl(var(--card)) 100%);color:hsl(var(--foreground))}html[data-theme=dark] .portal-dashboard{background:radial-gradient(circle at 22% -8%,rgba(37,99,235,.24),transparent 38rem),radial-gradient(circle at 82% 18%,rgba(20,184,166,.12),transparent 32rem),linear-gradient(180deg,#081321,#07101c 42%,#050b14)}.portal-shell{width:min(100% - 2rem,1536px);margin-inline:auto}@media (min-width:640px){.portal-shell{width:min(100% - 3rem,1536px)}}.portal-dashboard-header{position:sticky;top:0;z-index:30;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card)/.86);backdrop-filter:blur(18px)}html[data-theme=dark] .portal-dashboard-header{border-color:rgba(148,163,184,.16);background:rgba(6,13,24,.84)}.portal-dashboard-header-inner{display:flex;flex-direction:column;gap:1.4rem;padding-block:1.5rem 1.05rem}@media (min-width:768px){.portal-dashboard-header-inner{padding-block:1.7rem 1.2rem}}.portal-header-row{justify-content:space-between}.portal-brand,.portal-header-row{display:flex;align-items:center;gap:1rem}.portal-brand{min-width:0}.portal-brand-mark{display:grid;flex-shrink:0;place-items:center;overflow:hidden}.portal-brand-mark-image{display:block;height:100%;width:100%;-o-object-fit:contain;object-fit:contain}.portal-title-icon{display:grid;height:3.5rem;width:3.5rem;flex-shrink:0;place-items:center;border:1px solid hsl(var(--primary)/.28);border-radius:.75rem;background:linear-gradient(145deg,hsl(var(--primary)),hsl(var(--primary)/.72));color:hsl(var(--primary-foreground));box-shadow:0 16px 40px hsl(var(--primary)/.22)}html[data-theme=dark] .portal-title-icon{color:#ffffff}.portal-title{font-size:clamp(1.25rem,1.8vw,1.75rem);line-height:1.1;font-weight:800;letter-spacing:0;color:hsl(var(--foreground))}.portal-subtitle,.portal-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-subtitle{margin-top:.35rem;font-size:.9rem;color:hsl(var(--muted-foreground))}.portal-actions{display:flex;align-items:center;gap:.5rem}.portal-mobile-menu-button{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 10px 24px hsl(var(--foreground)/.08)}.portal-mobile-menu-button:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}@media (max-width:767px){.portal-dashboard-header-inner{gap:.9rem;padding-block:.85rem .7rem}.portal-brand{gap:.55rem}.portal-title-icon{height:2.15rem;width:2.15rem;border-radius:.62rem}.portal-title{max-width:42vw;font-size:.98rem}.portal-subtitle{margin-top:.22rem;max-width:42vw;font-size:.72rem}.portal-actions{gap:.35rem}}.portal-mobile-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:stretch;justify-content:flex-start;background:linear-gradient(90deg,hsl(var(--foreground)/.38),hsl(var(--foreground)/.18));backdrop-filter:blur(10px)}.portal-mobile-sheet{position:relative;display:flex;flex-direction:column;height:100dvh;width:min(19.5rem,84vw);max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;border:1px solid hsl(var(--border));border-left:0;border-radius:0 1.35rem 1.35rem 0;background:radial-gradient(circle at 0 0,hsl(var(--primary)/.14),transparent 16rem),hsl(var(--card));color:hsl(var(--foreground));box-shadow:18px 0 58px hsl(var(--foreground)/.24);padding-bottom:max(.9rem,env(safe-area-inset-bottom));animation:portal-mobile-sheet-enter .18s ease-out}.portal-mobile-sheet:before{content:none}@media (min-width:520px) and (max-width:767px){.portal-mobile-overlay{padding:0}.portal-mobile-sheet{max-width:23rem;border-radius:0 1.35rem 1.35rem 0}}.portal-mobile-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.55rem;border-bottom:1px solid hsl(var(--border));padding:.8rem .85rem .7rem}.portal-mobile-sheet-icon{display:flex;height:2.1rem;width:2.1rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.75rem;background:linear-gradient(145deg,hsl(var(--primary)),hsl(var(--primary)/.74));color:hsl(var(--primary-foreground));box-shadow:0 12px 30px hsl(var(--primary)/.22)}.portal-mobile-close-button{color:hsl(var(--muted-foreground))}.portal-mobile-close-button:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.portal-mobile-profile{margin:.55rem .7rem 0;border:1px solid hsl(var(--border));border-radius:.85rem;background:hsl(var(--muted)/.48);padding:.5rem .6rem}.portal-mobile-nav{display:grid;flex:0 0 auto;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:.24rem;padding:.58rem .7rem}.portal-mobile-logout{margin-top:.15rem;padding:0 .7rem .7rem}.portal-platform-signature{display:flex;min-height:2.5rem;align-items:center;justify-content:flex-end;gap:.55rem;border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.portal-platform-footer{display:none;padding-bottom:1rem}@media (min-width:768px){.portal-platform-footer{display:block}}.portal-platform-signature-label{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.portal-platform-signature-logo{display:block;height:1.75rem;width:7.1rem}.portal-platform-signature-logo img{display:block;height:100%;width:100%;-o-object-fit:contain;object-fit:contain}.portal-platform-logo-dark{display:none!important}.portal-platform-signature-compact{justify-content:flex-start;min-height:2.65rem;margin-inline:.7rem;gap:.45rem;border-top-color:hsl(var(--border))}.portal-platform-signature-compact .portal-platform-signature-label{font-size:.6rem}.portal-platform-signature-compact .portal-platform-signature-logo{height:1.55rem;width:6.6rem}html[data-theme=dark] .portal-platform-logo-light{display:none!important}html[data-theme=dark] .portal-platform-logo-dark{display:block!important}.portal-mobile-logout-button{display:flex;min-height:2.7rem;width:100%;min-width:0;align-items:center;gap:.6rem;border:1px solid hsl(var(--destructive)/.2);border-radius:.75rem;background:hsl(var(--destructive)/.08);padding:.4rem .5rem;color:hsl(var(--destructive));text-align:left;box-shadow:0 10px 26px hsl(var(--foreground)/.04);transition:transform .15s ease,border-color .15s ease,background-color .15s ease}.portal-mobile-logout-button:hover{transform:translateY(-1px);border-color:hsl(var(--destructive)/.34);background:hsl(var(--destructive)/.14)}.portal-mobile-logout-icon{display:inline-flex;height:1.7rem;width:1.7rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.65rem;background:hsl(var(--destructive)/.12);color:hsl(var(--destructive))}.portal-mobile-logout-copy{min-width:0}.portal-mobile-logout-meta{display:none}.portal-mobile-nav-item{position:relative;display:flex;min-height:2.65rem;width:100%;min-width:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:.52rem;border:1px solid hsl(var(--border));border-radius:.75rem;background:hsl(var(--card)/.88);padding:.4rem 2.05rem .4rem .45rem;color:hsl(var(--foreground));text-align:left;box-shadow:0 10px 26px hsl(var(--foreground)/.045);transition:transform .15s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.portal-mobile-nav-item:hover{transform:translateY(-1px);border-color:hsl(var(--primary)/.3);background:hsl(var(--muted)/.72)}.portal-mobile-nav-item-active,.portal-mobile-nav-item-active:hover{border-color:hsl(var(--primary));background:linear-gradient(145deg,hsl(var(--primary)),hsl(var(--primary)/.78));color:hsl(var(--primary-foreground));box-shadow:0 18px 42px hsl(var(--primary)/.28)}.portal-mobile-nav-icon{display:inline-flex;height:1.7rem;width:1.7rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.65rem;background:hsl(var(--primary)/.1);color:hsl(var(--primary))}.portal-mobile-nav-copy{min-width:0;padding-right:0;font-size:.84rem;font-weight:650;line-height:1.1}.portal-mobile-nav-meta{display:none}.portal-mobile-nav-status{position:absolute;top:50%;right:.58rem;transform:translateY(-50%)}.portal-mobile-nav-item-active .portal-mobile-nav-icon{background:hsl(var(--primary-foreground)/.18);color:hsl(var(--primary-foreground))}.portal-mobile-nav-item-active .portal-mobile-nav-meta{color:hsl(var(--primary-foreground)/.84)}.portal-mobile-nav-badge{display:inline-flex;min-width:1.25rem;justify-content:center;border-radius:999px;background:hsl(var(--muted));padding:.08rem .36rem;color:hsl(var(--foreground));font-size:.64rem;font-weight:800}.portal-mobile-nav-badge-danger{background:#ef4444;color:#ffffff}.portal-mobile-nav-item-active .portal-mobile-nav-badge{background:hsl(var(--primary-foreground)/.18);color:hsl(var(--primary-foreground))}.portal-mobile-nav-item-active .portal-mobile-nav-badge-danger{background:#ef4444;color:#ffffff}.portal-mobile-sheet .text-white,.portal-mobile-sheet [class*="text-white/"]{color:hsl(var(--foreground))}.portal-mobile-sheet [class*="text-white/50"],.portal-mobile-sheet [class*="text-white/52"],.portal-mobile-sheet [class*="text-white/65"]{color:hsl(var(--muted-foreground))}.portal-mobile-nav-item-active .text-white,.portal-mobile-nav-item-active [class*="text-white/"]{color:hsl(var(--primary-foreground))}.portal-mobile-sheet [class*="border-white/"]{border-color:hsl(var(--border))}.portal-mobile-sheet [class*="bg-white/10"]{background:hsl(var(--primary)/.12)}@keyframes portal-mobile-sheet-enter{0%{opacity:0;transform:translateX(-1.25rem)}to{opacity:1;transform:translateX(0)}}html[data-theme=dark] .portal-mobile-overlay{background:linear-gradient(180deg,rgba(2,6,23,.32),rgba(2,6,23,.74))}html[data-theme=dark] .portal-mobile-sheet{border-color:rgba(148,163,184,.18);background:radial-gradient(circle at 0 0,rgba(37,99,235,.22),transparent 16rem),#07111f;box-shadow:18px 0 58px rgba(0,0,0,.42)}html[data-theme=dark] .portal-mobile-menu-button{border-color:rgba(148,163,184,.16);background:rgba(15,23,42,.78);color:#f8fafc}html[data-theme=dark] .portal-mobile-nav-item,html[data-theme=dark] .portal-mobile-profile{border-color:rgba(148,163,184,.16);background:rgba(15,23,42,.7)}html[data-theme=dark] .portal-mobile-nav-item:hover{background:rgba(30,41,59,.86)}html[data-theme=dark] .portal-mobile-nav-item-active,html[data-theme=dark] .portal-mobile-nav-item-active:hover{border-color:rgba(96,165,250,.9);background:linear-gradient(145deg,#2f7df4,#245fd7);color:#ffffff}html[data-theme=dark] .portal-mobile-nav-icon{background:rgba(96,165,250,.16);color:#93c5fd}.portal-tabs-scroll{display:none;overflow-x:auto;padding-bottom:.05rem}@media (min-width:768px){.portal-tabs-scroll{display:block}}.portal-tabs{display:flex;min-width:-moz-max-content;min-width:max-content;gap:.85rem}.portal-tab-button{display:inline-flex;min-height:2.8rem;min-width:8.8rem;align-items:center;justify-content:center;gap:.6rem;border:1px solid hsl(var(--border));border-radius:.65rem;background:hsl(var(--card)/.66);padding-inline:1rem;color:hsl(var(--muted-foreground));font-size:.94rem;font-weight:700;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.portal-tab-button:hover{border-color:hsl(var(--primary)/.35);background:hsl(var(--muted)/.8);color:hsl(var(--foreground))}.portal-tab-button-active{border-color:hsl(var(--primary));background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--primary)/.78));color:hsl(var(--primary-foreground));box-shadow:0 14px 30px hsl(var(--primary)/.26)}html[data-theme=dark] .portal-tab-button{border-color:rgba(148,163,184,.18);background:rgba(15,23,42,.62)}html[data-theme=dark] .portal-tab-button:hover{background:rgba(30,41,59,.76)}html[data-theme=dark] .portal-tab-button-active,html[data-theme=dark] .portal-tab-button-active:hover{border-color:rgba(96,165,250,.9);background:linear-gradient(135deg,#2f7df4,#245fd7);color:#ffffff;box-shadow:0 16px 34px rgba(37,99,235,.36)}.portal-profile-band{margin-top:0}.portal-profile-card{border:1px solid hsl(var(--border));border-radius:1rem;background:hsl(var(--card)/.72);padding:1.35rem;box-shadow:0 18px 48px rgba(15,23,42,.08)}html[data-theme=dark] .portal-profile-card{border-color:rgba(148,163,184,.15);background:rgba(15,23,42,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 24px 70px rgba(0,0,0,.2)}.portal-avatar{display:grid;height:5rem;width:5rem;flex-shrink:0;place-items:center;border-radius:.85rem;background:linear-gradient(145deg,hsl(var(--primary)),hsl(var(--primary)/.72));color:hsl(var(--primary-foreground));font-size:1.75rem;font-weight:800;box-shadow:0 18px 46px hsl(var(--primary)/.25)}html[data-theme=dark] .portal-avatar{color:#ffffff}.portal-metric-card{min-width:0;border:1px solid hsl(var(--border));border-radius:.85rem;background:hsl(var(--card)/.72);padding:1rem;box-shadow:0 12px 34px rgba(15,23,42,.06)}html[data-theme=dark] .portal-metric-card{border-color:rgba(148,163,184,.15);background:rgba(15,23,42,.64)}.portal-metric-icon{display:flex;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.75rem}.portal-content{padding-block:1rem 3rem}@media (min-width:640px){.portal-content{padding-block:1.5rem 4rem}}@media (max-width:639px){.portal-profile-card{padding:1rem;border-radius:.9rem}.portal-avatar{height:4rem;width:4rem;border-radius:.75rem;font-size:1.45rem}.portal-metric-card{padding:.85rem}.portal-metric-icon{height:2.5rem;width:2.5rem;border-radius:.65rem}}.portal-dashboard .rounded-lg.border.border-dashed{min-height:min(48vh,420px);border-radius:1rem;background:hsl(var(--card)/.42)}html[data-theme=dark] .portal-dashboard .rounded-lg.border.border-dashed{border-color:rgba(148,163,184,.24);background:radial-gradient(circle at 50% 30%,rgba(37,99,235,.1),transparent 22rem),rgba(8,20,34,.54)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.erp-shell{background:hsl(var(--background))}.erp-sidebar{background:#032449;color:#fff;scrollbar-color:rgba(255,255,255,.22) transparent}.erp-sidebar-item-active{background:linear-gradient(90deg,#d59b2c,#e3b453);box-shadow:0 3px 9px rgba(0,0,0,.12)}.dashboard-content{width:100%;max-width:none;min-width:0;min-height:calc(100vh - 104px);margin:0;display:flex;flex-direction:column;gap:14px}.dashboard-card,.dashboard-panel{min-width:0;border:1px solid hsl(var(--border));border-radius:11px;background:hsl(var(--card)/.94);box-shadow:0 2px 8px rgba(16,35,62,.035)}html[data-theme=dark] .dashboard-card,html[data-theme=dark] .dashboard-panel{box-shadow:0 16px 42px rgba(0,0,0,.22)}.dashboard-panel{overflow:hidden}.welcome-banner{position:relative;min-height:108px;overflow:hidden;background:linear-gradient(90deg,hsl(var(--card)) 0,hsl(var(--card)) 62%,hsl(var(--muted)) 100%)}.welcome-banner:after{content:"";position:absolute;inset:auto -5% 0 auto;width:42%;height:100%;background:url(/illustrations/school-building.svg) 100%/contain no-repeat;opacity:.38;pointer-events:none}.welcome-content{position:relative;z-index:1}.connection-pill{display:inline-flex;height:24px;align-items:center;border-radius:999px;border:1px solid;padding:0 9px;font-size:10px;font-weight:700}.connection-pill-live{border-color:#cdeed4;background:#f0fbf3;color:#22753a}.connection-pill-offline{border-color:#ffd8d2;background:#fff4f1;color:#c3342b}html[data-theme=dark] .connection-pill-live{border-color:rgba(74,222,128,.32);background:rgba(22,101,52,.26);color:#86efac}html[data-theme=dark] .connection-pill-offline{border-color:rgba(248,113,113,.32);background:rgba(127,29,29,.26);color:#fca5a5}.connection-refresh{display:inline-grid;height:24px;width:24px;place-items:center;border:1px solid hsl(var(--border));border-radius:999px;background:hsl(var(--card));color:hsl(var(--muted-foreground));transition:background .16s ease,color .16s ease,border-color .16s ease}.connection-refresh:hover{border-color:hsl(var(--accent));background:hsl(var(--muted));color:hsl(var(--foreground))}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.kpi-card{min-width:0;padding:14px 14px 12px}.kpi-icon{display:flex;height:38px;width:38px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:50%}.kpi-blue{background:#eef5ff;color:#1160b9}.kpi-green{background:#eef8ee;color:#2e914b}.kpi-purple{background:#f5efff;color:#7245bd}.kpi-red{background:#fff0ed;color:#e84b3f}.kpi-teal{background:#eaf8f7;color:#168a97}.kpi-gold{background:#fff8e8;color:#cd8a00}html[data-theme=dark] .kpi-blue{background:rgba(37,99,235,.16);color:#93c5fd}html[data-theme=dark] .kpi-green{background:rgba(22,163,74,.16);color:#86efac}html[data-theme=dark] .kpi-purple{background:rgba(124,58,237,.16);color:#c4b5fd}html[data-theme=dark] .kpi-red{background:rgba(220,38,38,.16);color:#fca5a5}html[data-theme=dark] .kpi-teal{background:rgba(20,184,166,.16);color:#5eead4}html[data-theme=dark] .kpi-gold{background:rgba(217,119,6,.16);color:#fcd34d}.kpi-sparkline{height:25px;width:64px}.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.25fr) minmax(320px,.9fr);gap:14px;min-height:clamp(220px,24vh,285px)}.dashboard-chart-grid>.dashboard-panel{min-height:100%}.dashboard-lower-grid{display:grid;grid-template-columns:minmax(440px,1.35fr) minmax(260px,.9fr) minmax(280px,.9fr) minmax(280px,.9fr);gap:14px;flex:1 1 auto;min-height:clamp(230px,27vh,330px)}.dashboard-lower-grid>.dashboard-panel{display:flex;min-height:100%;flex-direction:column}.dashboard-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.chart-svg{display:block;height:clamp(166px,18vh,220px);width:100%}.chart-grid-line{stroke:hsl(var(--border));stroke-width:1}.chart-axis-label{fill:hsl(var(--muted-foreground));font-size:9px}.chart-line-blue{fill:none;stroke:#155eb8;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.chart-line-teal{fill:none;stroke:#1399a5;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.chart-area-blue{fill:url(#feeArea);opacity:.8}.bar-item{display:grid;grid-template-columns:48px minmax(0,1fr) 44px;align-items:center;gap:8px;font-size:11px}.bar-track{height:9px;overflow:hidden;border-radius:99px;background:hsl(var(--muted))}.bar-fill{height:100%;border-radius:inherit}.dashboard-table{width:100%;border-collapse:collapse;font-size:11px}.dashboard-table th{padding:0 8px 9px;text-align:left;color:hsl(var(--muted-foreground));font-size:10px;font-weight:600;white-space:nowrap}.dashboard-table td{border-top:1px solid hsl(var(--border));padding:8px;white-space:nowrap}.dashboard-table-wrap{overflow-x:auto}.dashboard-table tbody tr:hover{background:hsl(var(--muted))}.dashboard-empty{display:flex;min-height:158px;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;border:1px dashed hsl(var(--border));border-radius:8px;background:hsl(var(--card));padding:18px;text-align:center}.dashboard-empty-icon{display:grid;height:34px;width:34px;place-items:center;border-radius:50%;background:#f7efe0;color:#b17b19}.event-row,.notice-row{display:flex;gap:10px;border-bottom:1px solid hsl(var(--border));padding:9px 0}.event-row:last-child,.notice-row:last-child{border-bottom:0}.date-tile{width:42px;height:42px;flex:0 0 auto;flex-direction:column;justify-content:center;line-height:1}.date-tile,.quick-action{display:flex;align-items:center;border:1px solid hsl(var(--border));border-radius:7px;background:hsl(var(--card))}.quick-action{min-width:0;min-height:45px;gap:9px;padding:9px;color:hsl(var(--foreground));font-size:11px;font-weight:600;transition:border-color .16s ease,background .16s ease,transform .16s ease}.quick-action span:last-child{min-width:0;overflow-wrap:anywhere}.quick-action:hover{border-color:hsl(var(--accent));background:hsl(var(--muted));transform:translateY(-1px)}.summary-card{min-height:112px;gap:15px;padding:14px}.summary-card,.summary-icon{display:flex;align-items:center}.summary-icon{height:44px;width:44px;flex:0 0 auto;justify-content:center;border:1px solid hsl(var(--border));border-radius:50%;background:hsl(var(--muted));color:hsl(var(--foreground))}.summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.summary-ring{position:relative;display:grid;height:49px;width:49px;flex:0 0 auto;place-items:center;border-radius:50%;background:conic-gradient(#1562b9 0 92%,#edf0f3 92% 100%)}.summary-ring-gold{background:conic-gradient(#d99508 0 68%,#f2eee5 68% 100%)}.summary-ring:after{content:"";position:absolute;inset:5px;border-radius:50%;background:hsl(var(--card))}.summary-ring span{position:relative;z-index:1;font-size:11px;font-weight:700}@media (max-width:1280px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-chart-grid{grid-template-columns:1fr 1fr}.dashboard-chart-grid>:last-child{grid-column:1/-1}.dashboard-lower-grid{grid-template-columns:1.2fr 1fr 1fr}.dashboard-lower-grid>:last-child{grid-column:1/-1}}@media (max-width:900px){.dashboard-chart-grid,.dashboard-lower-grid,.dashboard-summary-grid{grid-template-columns:1fr}.dashboard-chart-grid>:last-child,.dashboard-lower-grid>:last-child{grid-column:auto}}@media (max-width:640px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-card{padding:11px}.kpi-sparkline{width:52px}.welcome-banner{min-height:148px}.welcome-banner:after{width:72%;opacity:.22}.dashboard-table{min-width:560px}.summary-card{align-items:flex-start}.summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-page{min-height:100vh;background:hsl(var(--background));color:hsl(var(--foreground))}.auth-brand-panel{position:relative;overflow:hidden;background:#031d3b;color:white}.auth-brand-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,25,53,.2),rgba(2,25,53,.84)),url(/illustrations/school-building.svg) 50% 66% /78% auto no-repeat;opacity:.38}.auth-brand-panel:after{content:"";position:absolute;inset:0 0 0 auto;width:5px;background:linear-gradient(180deg,rgba(228,181,79,0),#e4b54f 18%,#e4b54f 82%,rgba(228,181,79,0));box-shadow:-12px 0 36px rgba(228,181,79,.16);opacity:.95}.auth-brand-content{position:relative;z-index:1}.auth-form-area{position:relative;min-width:0;background:hsl(var(--background))}.auth-form-area:after{content:"";position:absolute;right:-10px;bottom:90px;height:300px;width:280px;background:url(/illustrations/school-building.svg) 50%/contain no-repeat;opacity:.14;pointer-events:none}.auth-form-card{position:relative;z-index:1;width:min(100%,490px);border:1px solid hsl(var(--border));border-radius:13px;background:hsl(var(--card)/.94);padding:34px 32px 31px;box-shadow:0 12px 32px rgba(16,35,62,.06)}html[data-theme=dark] .auth-form-card{box-shadow:0 18px 44px rgba(0,0,0,.32)}.auth-gold-button{height:46px;border-radius:6px;background:#dda52d;color:#fff;font-weight:700;box-shadow:inset 0 -2px 0 rgba(124,77,0,.14)}.auth-gold-button:hover{background:#c9941e}@media (max-width:1023px){.auth-brand-panel{display:none}.auth-form-area{min-height:100vh}}@media (max-width:520px){.auth-form-card{border:0;box-shadow:none;padding:20px 0;background:transparent}}@media print{.no-print{display:none!important}body{background:white}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .16s ease-out}.public-hero-slide{animation-duration:30s;animation-fill-mode:both;animation-iteration-count:infinite;animation-name:public-hero-slide-5;animation-timing-function:ease-in-out;opacity:0;transform:scale(1.08)}.public-hero-count-1 .public-hero-slide{animation:none;opacity:.72;transform:scale(1.02)}.public-hero-count-2 .public-hero-slide{animation-duration:12s;animation-name:public-hero-slide-2}.public-hero-count-3 .public-hero-slide{animation-duration:18s;animation-name:public-hero-slide-3}.public-hero-count-4 .public-hero-slide{animation-duration:24s;animation-name:public-hero-slide-4}.public-hero-count-5 .public-hero-slide{animation-duration:30s;animation-name:public-hero-slide-5}.public-hero-dot{animation-duration:30s;animation-iteration-count:infinite;animation-name:public-hero-dot-5;animation-timing-function:ease-in-out;transform-origin:left}.public-hero-count-2~* .public-hero-dot{animation-duration:12s;animation-name:public-hero-dot-2}.public-hero-count-3~* .public-hero-dot{animation-duration:18s;animation-name:public-hero-dot-3}.public-hero-count-4~* .public-hero-dot{animation-duration:24s;animation-name:public-hero-dot-4}@keyframes public-hero-slide-2{0%{opacity:0;transform:scale(1.08) translateX(1.2%)}8%{opacity:.72}45%{opacity:.72}55%{opacity:0;transform:scale(1.02) translateX(-1.2%)}to{opacity:0;transform:scale(1.08) translateX(1.2%)}}@keyframes public-hero-slide-3{0%{opacity:0;transform:scale(1.08) translateX(1.2%)}6%{opacity:.72}30%{opacity:.72}36%{opacity:0;transform:scale(1.02) translateX(-1.2%)}to{opacity:0;transform:scale(1.08) translateX(1.2%)}}@keyframes public-hero-slide-4{0%{opacity:0;transform:scale(1.08) translateX(1.2%)}5%{opacity:.72}22%{opacity:.72}28%{opacity:0;transform:scale(1.02) translateX(-1.2%)}to{opacity:0;transform:scale(1.08) translateX(1.2%)}}@keyframes public-hero-slide-5{0%{opacity:0;transform:scale(1.08) translateX(1.2%)}4%{opacity:.72}17%{opacity:.72}23%{opacity:0;transform:scale(1.02) translateX(-1.2%)}to{opacity:0;transform:scale(1.08) translateX(1.2%)}}@keyframes public-hero-dot-2{0%,55%{background:rgba(255,255,255,.88);transform:scaleX(1)}60%,to{background:rgba(255,255,255,.3);transform:scaleX(.72)}}@keyframes public-hero-dot-3{0%,36%{background:rgba(255,255,255,.88);transform:scaleX(1)}41%,to{background:rgba(255,255,255,.3);transform:scaleX(.72)}}@keyframes public-hero-dot-4{0%,28%{background:rgba(255,255,255,.88);transform:scaleX(1)}33%,to{background:rgba(255,255,255,.3);transform:scaleX(.72)}}@keyframes public-hero-dot-5{0%,23%{background:rgba(255,255,255,.88);transform:scaleX(1)}28%,to{background:rgba(255,255,255,.3);transform:scaleX(.72)}}@media (prefers-reduced-motion:reduce){.public-hero-dot,.public-hero-slide{animation:none}.public-hero-slide:first-child{opacity:.72;transform:scale(1.02)}}@keyframes action-toast-in{0%{opacity:0;transform:translateX(22px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes action-toast-icon-pop{0%{transform:scale(.78) rotate(-8deg)}58%{transform:scale(1.1) rotate(3deg)}to{transform:scale(1) rotate(0)}}@keyframes action-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.action-toast{animation:action-toast-in .22s cubic-bezier(.16,1,.3,1)}.action-toast:after{animation:action-toast-progress 3.6s linear forwards;background:currentColor;bottom:0;content:"";height:2px;left:0;opacity:.22;position:absolute;transform-origin:left;width:100%}.action-toast-icon{animation:action-toast-icon-pop .32s cubic-bezier(.2,.8,.2,1)}