@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";.theme-toggle{background:none;border:none;padding:4px;cursor:pointer}.toggle-track{width:48px;height:26px;border-radius:13px;background:var(--bg-input);border:2px solid var(--border);position:relative;transition:all .3s ease}.toggle-track.dark{background:#4f6ef7;border-color:#4f6ef7}.toggle-thumb{width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:1px;left:1px;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0003}.toggle-track.dark .toggle-thumb{left:23px}.toggle-thumb svg{color:#f59e0b}.toggle-track.dark .toggle-thumb svg{color:#4f6ef7}.sidebar{width:260px;height:100vh;background:var(--bg-sidebar);color:var(--text-sidebar);display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:50;transition:width .3s ease;border-right:1px solid rgba(255,255,255,.06)}.sidebar.collapsed{width:72px}.sidebar-logo{display:flex;align-items:center;gap:12px;padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.06);min-height:70px}.logo-icon{width:42px;height:42px;background:#4f6ef726;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#7c9aff;flex-shrink:0}.logo-text h3{font-size:18px;font-weight:800;color:#fff;letter-spacing:-.5px}.logo-text span{font-size:11px;color:#6b7280}.collapse-btn{margin-left:auto;background:#ffffff0f;border:none;color:#6b7280;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.collapse-btn:hover{background:#ffffff1f;color:#fff}.sidebar-user{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid rgba(255,255,255,.06)}.user-avatar{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.user-info h4{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info span{font-size:11px;font-weight:500}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 8px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:500;color:#8b95a5;cursor:pointer;transition:all .2s;width:100%;background:none;border:none;text-align:left}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:#4f6ef726;color:#7c9aff}.nav-item.active svg{color:#7c9aff}.has-children{position:relative}.submenu-arrow{margin-left:auto;transition:transform .2s}.has-children.open .submenu-arrow{transform:rotate(180deg)}.submenu{padding-left:12px}.sub-item{padding-left:44px;font-size:12px}.sidebar-bottom{padding:12px 8px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:4px}.sidebar-theme{padding:8px 12px;display:flex;align-items:center}.logout-btn{color:#ef4444!important}.logout-btn:hover{background:#ef44441a!important}.mobile-menu-btn{display:none;position:fixed;top:16px;left:16px;z-index:60;width:44px;height:44px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;align-items:center;justify-content:center;color:var(--text-primary);box-shadow:var(--shadow)}.sidebar-overlay{display:none}.desktop-only{display:flex}@media(max-width:768px){.sidebar{transform:translate(-100%);width:280px}.sidebar.mobile-open{transform:translate(0)}.mobile-menu-btn{display:flex}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:40}.collapse-btn,.desktop-only{display:none}}.collapsed .sidebar-user .user-info,.collapsed .logo-text,.collapsed .nav-item span,.collapsed .sidebar-theme,.collapsed .submenu-arrow{display:none}.collapsed .sidebar-user{justify-content:center}.collapsed .nav-item{justify-content:center;padding:10px}.collapsed .sidebar-logo{justify-content:center;padding:20px 8px}.collapsed .collapse-btn{display:none}.mobile-app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--bg-primary)}.mobile-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-card);border-bottom:1px solid var(--border);min-height:56px}.mobile-header-left{display:flex;align-items:center;gap:10px}.mobile-portal-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-portal-title{font-size:15px;font-weight:700;color:var(--text-primary);line-height:1.2}.mobile-user-name{font-size:11px;color:var(--text-secondary);font-weight:500}.mobile-header-right{display:flex;align-items:center;gap:4px}.mobile-icon-btn{width:38px;height:38px;border-radius:10px;border:none;background:var(--bg-hover);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.mobile-icon-btn:active{transform:scale(.95);background:var(--border)}.mobile-menu-overlay{position:fixed;inset:0;z-index:199}.mobile-dropdown{position:absolute;top:100%;right:12px;width:240px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #00000026;z-index:200;overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-dropdown-user{display:flex;align-items:center;gap:10px;padding:14px 16px}.mobile-dropdown-avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.mobile-dropdown-user h4{font-size:13px;font-weight:600;color:var(--text-primary)}.mobile-dropdown-user span{font-size:11px;font-weight:500}.mobile-dropdown-divider{height:1px;background:var(--border)}.mobile-dropdown-item{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;color:var(--text-primary);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .2s}.mobile-dropdown-item:active{background:var(--bg-hover)}.mobile-dropdown-item.logout{color:#ef4444}.mobile-content{flex:1;padding:16px 16px 80px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.mobile-content .page-header{padding:0;margin-bottom:16px}.mobile-content .page-header h1{font-size:18px}.mobile-content .form-card{border-radius:14px;padding:16px}.mobile-content .dashboard{padding:0}.mobile-content .dashboard .dash-header{flex-direction:column;gap:8px}.mobile-content .dashboard .dash-greeting h1{font-size:20px}.mobile-content .dashboard .stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px}.mobile-content .dashboard .stat-card{padding:14px}.mobile-content .dashboard .stat-value{font-size:20px}.mobile-content .dashboard .stat-label{font-size:11px}.mobile-content .dashboard .dash-grid{grid-template-columns:1fr;gap:12px}.mobile-content .dashboard .dash-card{padding:14px}.mobile-content .dashboard .actions-grid{grid-template-columns:repeat(2,1fr)}.mobile-content .fee-page{padding:0}.mobile-content .fee-page .page-header{margin-bottom:12px}.mobile-content .fee-page .page-header h1{font-size:18px}.mobile-content .data-table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}.mobile-content .data-table{font-size:12px;min-width:500px}.mobile-content .page-container,.mobile-content .student-profile,.mobile-content .academic-page,.mobile-content .attendance-page{padding:0}.mobile-content .marks-filter-grid{grid-template-columns:1fr}.mobile-content .attendance-controls{flex-direction:column;align-items:stretch;gap:10px}.mobile-content .attendance-row{width:100%}.mobile-content .attendance-row .att-select{flex:1;min-width:0}.mobile-content .att-date{width:100%}.mobile-content .attendance-row .att-action-btn{flex:1;min-width:0;padding:0 8px;font-size:12px}.mobile-content .att-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-around;background:var(--bg-card);border-top:1px solid var(--border);padding:6px 0;padding-bottom:max(6px,env(safe-area-inset-bottom));min-height:60px}.mobile-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;border:none;background:none;color:var(--text-secondary);font-size:10px;font-weight:600;cursor:pointer;transition:all .2s;border-radius:10px;min-width:56px;position:relative}.mobile-tab:active{transform:scale(.92)}.mobile-tab.active{color:#4f6ef7}.mobile-tab.active:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:24px;height:3px;background:#4f6ef7;border-radius:0 0 4px 4px}.mobile-tab svg{transition:all .2s}.mobile-tab.active svg{color:#4f6ef7}@media(max-width:768px){.mobile-content [style*="gridTemplateColumns: '1fr 1fr'"],.mobile-content [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:260px;background:var(--bg-primary);min-height:100vh;transition:margin-left .3s ease;display:flex;flex-direction:column}.sidebar.collapsed~.main-content,.app-layout:has(.sidebar.collapsed) .main-content{margin-left:72px}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;min-height:48px;gap:16px}.breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;flex-wrap:wrap}.breadcrumb-item{color:var(--text-secondary);font-weight:500;transition:color .2s}.breadcrumb-item:hover{color:var(--text-primary)}.breadcrumb-item.active{color:#4f6ef7;font-weight:600}.page-content{flex:1;padding:0}@media(max-width:768px){.main-content{margin-left:0}.top-bar{padding:10px 16px 10px 56px}.breadcrumb{display:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px}.login-bg{position:fixed;inset:0;z-index:0;overflow:hidden}.bg-shape{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}.shape-1{width:500px;height:500px;background:#4f6ef7;top:-150px;right:-100px;animation:float1 15s ease-in-out infinite}.shape-2{width:400px;height:400px;background:#10b981;bottom:-100px;left:-100px;animation:float2 18s ease-in-out infinite}.shape-3{width:300px;height:300px;background:#f59e0b;top:50%;left:50%;transform:translate(-50%,-50%);animation:float3 20s ease-in-out infinite}.bg-grid{position:absolute;inset:0;background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:40px 40px;opacity:.3}@keyframes float1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-40px,-30px) scale(1.05)}66%{transform:translate(30px,-50px) scale(.95)}}@keyframes float3{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.15)}}.login-theme-toggle{position:fixed;top:20px;right:20px;z-index:100}.login-container{display:flex;width:100%;max-width:1000px;min-height:600px;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);position:relative;z-index:1;border:1px solid var(--border)}.login-brand-panel{flex:1;background:linear-gradient(135deg,#1a1d2e,#2d3154);color:#fff;padding:48px 40px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.brand-content{position:relative;z-index:1}.brand-icon{width:80px;height:80px;background:#4f6ef733;border:2px solid rgba(79,110,247,.3);border-radius:20px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:#7c9aff}.brand-title{font-size:28px;font-weight:800;line-height:1.2;margin-bottom:8px}.brand-subtitle{font-size:15px;color:#8b95a5;margin-bottom:36px}.brand-features{display:flex;flex-direction:column;gap:20px;margin-bottom:36px}.brand-feature{display:flex;align-items:center;gap:14px}.feature-icon{width:40px;height:40px;background:#ffffff14;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#7c9aff;flex-shrink:0}.brand-feature h4{font-size:14px;font-weight:600;margin-bottom:2px}.brand-feature p{font-size:12px;color:#8b95a5}.brand-stats{display:flex;gap:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.stat{display:flex;flex-direction:column}.stat-number{font-size:24px;font-weight:800;color:#7c9aff}.stat-label{font-size:12px;color:#8b95a5}.login-form-panel{flex:1;padding:48px 40px;display:flex;flex-direction:column;justify-content:center;overflow-y:auto}.login-form-content{max-width:380px;margin:0 auto;width:100%}.login-header{margin-bottom:32px}.login-header h2{font-size:26px;font-weight:800;margin-bottom:6px;color:var(--text-primary)}.login-header p{font-size:14px;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:var(--danger-light);color:var(--danger);padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;border:1px solid rgba(239,68,68,.2)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:var(--text-primary)}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:14px;color:var(--text-secondary);pointer-events:none}.input-wrapper input{width:100%;padding:12px 14px 12px 44px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text-primary);transition:all .2s ease}.input-wrapper input:focus{border-color:var(--accent);background:var(--bg-secondary);box-shadow:0 0 0 3px var(--accent-light)}.input-wrapper input::placeholder{color:var(--text-secondary);opacity:.6}.password-toggle{position:absolute;right:12px;background:none;border:none;color:var(--text-secondary);padding:4px;display:flex;cursor:pointer;transition:color .2s}.password-toggle:hover{color:var(--text-primary)}.form-options{display:flex;justify-content:space-between;align-items:center}.remember-me{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.remember-me input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.forgot-link{font-size:13px;color:var(--accent);font-weight:500;transition:opacity .2s}.forgot-link:hover{opacity:.8}.login-btn{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .2s ease}.login-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4f6ef766}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.btn-loader{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.demo-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.demo-toggle-btn{width:100%;padding:10px;background:var(--bg-input);color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.demo-toggle-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.demo-accounts{margin-top:16px}.demo-hint{font-size:12px;color:var(--text-secondary);text-align:center;margin-bottom:12px}.demo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.demo-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}.demo-card:hover{border-color:var(--accent);background:var(--accent-light);transform:translateY(-2px)}.demo-emoji{font-size:22px}.demo-role{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent)}.demo-user{font-size:11px;color:var(--text-secondary)}.demo-password{font-size:11px;color:var(--text-secondary);text-align:center;margin-top:12px}.demo-password code{background:var(--bg-input);padding:2px 8px;border-radius:4px;font-weight:600;color:var(--accent)}@media(max-width:768px){.login-container{flex-direction:column;max-width:440px;min-height:auto}.login-brand-panel{padding:32px 24px}.brand-features,.brand-stats{display:none}.brand-title{font-size:22px}.login-form-panel{padding:32px 24px}.demo-grid{grid-template-columns:repeat(2,1fr)}}.dashboard{padding:24px;max-width:1400px}.dash-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.dash-greeting h1{font-size:26px;font-weight:800;margin-bottom:4px;color:var(--text-primary)}.dash-greeting p{font-size:14px;color:var(--text-secondary)}.dash-date{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-change{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:4px 8px;border-radius:20px}.stat-change.up{color:#10b981;background:var(--success-light)}.stat-change.down{color:#ef4444;background:var(--danger-light)}.stat-value{font-size:28px;font-weight:800;color:var(--text-primary);margin-bottom:4px}.stat-label{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.stat-bar{height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:2px;transition:width 1s ease}.dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.dash-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header h3{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text-primary)}.card-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--success-light);color:var(--success)}.card-link{font-size:13px;color:var(--accent);font-weight:500}.attendance-bars{display:flex;flex-direction:column;gap:10px}.att-row{display:flex;align-items:center;gap:12px}.att-class{font-size:12px;font-weight:600;color:var(--text-secondary);width:60px;flex-shrink:0}.att-bar-track{flex:1;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.att-bar-fill{height:100%;border-radius:4px;transition:width 1s ease}.att-pct{font-size:12px;font-weight:700;width:40px;text-align:right;color:var(--text-primary)}.admissions-list{display:flex;flex-direction:column;gap:12px}.admission-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);transition:background .2s}.admission-item:hover{background:var(--bg-hover)}.admission-avatar{width:36px;height:36px;border-radius:10px;background:var(--accent-light);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.admission-info h4{font-size:13px;font-weight:600;color:var(--text-primary)}.admission-info span{font-size:11px;color:var(--text-secondary)}.admission-status{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;text-transform:capitalize}.admission-status.completed{background:var(--success-light);color:var(--success)}.admission-status.pending{background:var(--warning-light);color:var(--warning)}.fee-list{display:flex;flex-direction:column;gap:12px}.fee-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);transition:background .2s}.fee-item:hover{background:var(--bg-hover)}.fee-avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.fee-info h4{font-size:13px;font-weight:600;color:var(--text-primary)}.fee-info span{font-size:11px;color:var(--text-secondary)}.fee-amount{margin-left:auto;font-size:14px;font-weight:700;color:var(--danger)}.fee-total{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.fee-total strong{font-size:18px;color:var(--danger)}.events-list{display:flex;flex-direction:column;gap:12px}.event-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);transition:background .2s}.event-item:hover{background:var(--bg-hover)}.event-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.event-info h4{font-size:13px;font-weight:600;color:var(--text-primary)}.event-info span{font-size:11px;color:var(--text-secondary)}.event-type{margin-left:auto;font-size:10px;font-weight:600;padding:3px 10px;border-radius:20px;text-transform:capitalize}.quick-actions{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.quick-actions h3{font-size:15px;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.action-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;background:var(--bg-primary);border:1px dashed var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s;font-size:13px;font-weight:600;color:var(--text-primary)}.action-btn:hover{border-style:solid;border-color:var(--accent);background:var(--accent-light);transform:translateY(-2px)}.action-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.actions-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dashboard{padding:12px}.dash-header{flex-direction:column;gap:12px}.dash-greeting h1{font-size:20px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-value{font-size:22px}.actions-grid{grid-template-columns:repeat(2,1fr)}}.academic-page{padding:24px;max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-header h1{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;color:var(--text-primary);margin-bottom:4px}.page-header p{font-size:13px;color:var(--text-secondary)}.btn-primary{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.form-card h3{font-size:16px;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-field input,.form-field select,.form-field textarea{padding:10px 14px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary);transition:all .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.form-actions{display:flex;gap:10px;margin-top:20px}.data-table-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead tr{background:var(--bg-input);border-bottom:2px solid var(--border)}.data-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.data-table td{padding:14px 16px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border)}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody tr:last-child td{border-bottom:none}.status-toggle{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:all .2s;background:var(--bg-input);color:var(--text-secondary)}.status-toggle.active{background:var(--success-light);color:var(--success)}.action-btns{display:flex;gap:6px}.icon-btn{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--bg-input);cursor:pointer;transition:all .2s;color:var(--text-secondary)}.icon-btn:hover{background:var(--bg-hover)}.icon-btn.edit:hover{color:var(--accent);border-color:var(--accent)}.icon-btn.delete:hover{color:var(--danger);border-color:var(--danger)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.search-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.search-input{flex:1;padding:10px 14px 10px 40px;background:var(--bg-input);border:2px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text-primary);position:relative}.search-wrapper{position:relative;flex:1}.search-wrapper svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-secondary)}.filter-btn{padding:10px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);cursor:pointer}.empty-state{text-align:center;padding:48px 20px;color:var(--text-secondary)}.empty-state h3{font-size:16px;font-weight:700;margin:12px 0 4px;color:var(--text-primary)}.empty-state p{font-size:13px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}.badge-marks{background:var(--accent-light);color:var(--accent)}.badge-grade{background:var(--success-light);color:var(--success)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border)}.marks-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:768px){.academic-page{padding:70px 16px 16px}.page-header{flex-direction:column;gap:12px}.form-grid,.marks-filter-grid{grid-template-columns:1fr}.data-table-card{overflow-x:auto}}.admission-page{padding:24px;max-width:1400px}.steps-bar{display:flex;gap:4px;margin-bottom:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.step-item{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .2s}.step-item:hover{background:var(--bg-hover)}.step-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--bg-input);color:var(--text-secondary);border:2px solid var(--border);transition:all .3s}.step-item.active .step-number{background:var(--accent);color:#fff;border-color:var(--accent)}.step-item.done .step-number{background:#10b981;color:#fff;border-color:#10b981}.step-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.step-item.active .step-label{color:var(--accent);font-weight:700}.step-item.done .step-label{color:#10b981}.photo-upload{width:130px;height:150px;border:2px dashed var(--border);border-radius:12px;cursor:pointer;overflow:hidden;flex-shrink:0;transition:all .2s}.photo-upload:hover{border-color:var(--accent);background:var(--accent-light)}.photo-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:11px;font-weight:600}.step-nav{display:flex;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.review-section{background:var(--bg-hover);border-radius:10px;padding:16px;border:1px solid var(--border)}.review-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:10px;font-weight:700}.review-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px solid var(--border)}.review-row:last-child{border-bottom:none}.review-row span{color:var(--text-secondary)}.review-row strong{color:var(--text-primary)}.toast-success{background:#10b981;color:#fff;padding:14px 20px;border-radius:10px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;margin-bottom:16px}.students-page{padding:24px;max-width:1400px}.student-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.student-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;gap:14px;transition:all .2s;cursor:pointer}.student-card:hover{border-color:var(--accent);box-shadow:0 4px 12px #0000000f;transform:translateY(-1px)}.student-avatar{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;flex-shrink:0}.student-info{flex:1;min-width:0}.student-info h4{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:2px}.student-info p{font-size:12px;color:var(--text-secondary)}.student-meta{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.student-meta .chip{font-size:10px;padding:2px 8px}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--bg-card);border-radius:var(--radius);width:100%;max-width:800px;max-height:85vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:1}.modal-body{padding:24px}.fee-page{padding:24px;max-width:1400px}.fee-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.fee-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all .2s}.fee-card:hover{border-color:var(--accent)}.fee-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.fee-breakdown{display:flex;flex-direction:column;gap:6px}.fee-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid var(--border)}.fee-row:last-child{border-bottom:none}.fee-total{display:flex;justify-content:space-between;font-size:14px;font-weight:800;padding:10px 0;border-top:2px solid var(--border);margin-top:6px}.attendance-page{padding:24px;max-width:1400px;overflow:hidden;box-sizing:border-box}.attendance-controls{display:flex;gap:10px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.attendance-row{display:flex;gap:10px;align-items:center}.att-select{height:44px;padding:0 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-weight:500;box-sizing:border-box;cursor:pointer;transition:border-color .2s;-webkit-appearance:none;appearance:none}.att-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f6ef71f}.att-date{flex:1}.att-action-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 18px;border-radius:10px;font-size:13px;font-weight:600;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:all .2s}.att-action-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.att-action-btn:disabled{opacity:.5;cursor:not-allowed}.att-btn-present{color:#10b981}.att-btn-absent{color:#ef4444}.att-btn-save{background:var(--accent);color:#fff;border-color:var(--accent)}.att-btn-save:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.swipe-list{display:flex;flex-direction:column;gap:4px}.swipe-item{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;transition:all .3s;-webkit-user-select:none;user-select:none}.swipe-item.present{border-color:#10b981;background:#10b98108}.swipe-item.absent{border-color:#ef4444;background:#ef444408}.att-status-btn{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;border:2px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:all .2s}.att-status-btn.present{background:#10b981;color:#fff;border-color:#10b981}.att-status-btn.absent{background:#ef4444;color:#fff;border-color:#ef4444}.att-status-btn:hover{transform:scale(1.05)}.qr-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.qr-box{width:200px;height:200px;background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;border:3px solid var(--border)}.qr-box canvas{width:180px!important;height:180px!important}.att-summary{display:flex;gap:16px;margin-top:20px}.att-summary-card{flex:1;padding:16px;border-radius:10px;text-align:center}.att-summary-card h3{font-size:28px;font-weight:800;margin-bottom:2px}.att-summary-card p{font-size:12px;color:var(--text-secondary)}@media(max-width:768px){.admission-page,.students-page,.fee-page,.attendance-page{padding:70px 16px 16px}.steps-bar{flex-direction:column;gap:8px}.review-grid,.student-cards,.fee-cards{grid-template-columns:1fr}.photo-upload{width:100px;height:120px}.att-summary{flex-direction:column}.attendance-controls{flex-direction:column;align-items:stretch;gap:10px}.attendance-row{width:100%}.attendance-row .att-select{flex:1;min-width:0}.att-date{width:100%}.attendance-row .att-action-btn{flex:1;min-width:0;padding:0 8px;font-size:12px}}.student-profile{padding:.75rem .75rem 2rem;max-width:600px;margin:0 auto}.sp-page-title{font-size:1.2rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 1rem .25rem}.sp-card{background:var(--bg-card, #fff);border-radius:14px;padding:1.25rem;margin-bottom:.85rem;border:1px solid var(--border-color, #e2e8f0)}.sp-profile-card{text-align:center;padding:1.75rem 1.25rem 1.5rem}.sp-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .85rem;font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:1px;background:#c7d2fe}.sp-name{font-size:1.15rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 .15rem}.sp-role{font-size:.82rem;color:var(--text-secondary, #64748b);display:block;margin-bottom:1.25rem}.sp-section-title{font-size:1rem;font-weight:700;color:var(--text-primary, #1e293b);margin:0 0 .85rem}.sp-info-list{display:flex;flex-direction:column;gap:1rem}.sp-info-row{display:flex;align-items:flex-start;gap:.75rem}.sp-info-row>svg{color:var(--text-secondary, #94a3b8);margin-top:3px;flex-shrink:0}.sp-info-row>div{flex:1;min-width:0}.sp-info-row label{display:block;font-size:.72rem;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;font-weight:500}.sp-info-row span{font-size:.92rem;font-weight:500;color:var(--text-primary, #1e293b);word-break:break-word}.sp-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.78rem;font-weight:600;text-transform:capitalize}.sp-badge.green{background:#dcfce7;color:#16a34a}.sp-badge.red{background:#fee2e2;color:#dc2626}.sp-badge.orange{background:#fef3c7;color:#d97706}[data-theme=dark] .sp-card{background:var(--bg-card, #1e293b);border-color:var(--border-color, #334155)}[data-theme=dark] .sp-badge.green{background:#16a34a20}[data-theme=dark] .sp-badge.red{background:#dc262620}[data-theme=dark] .sp-badge.orange{background:#d9770620}:root{--bg-primary: #f8f9fb;--bg-secondary: #ffffff;--bg-sidebar: #1a1d2e;--bg-card: #ffffff;--bg-input: #f1f3f7;--bg-hover: #f1f3f7;--text-primary: #1a1d2e;--text-secondary: #6b7280;--text-sidebar: #a0aec0;--text-sidebar-active: #ffffff;--accent: #4f6ef7;--accent-hover: #3b5de7;--accent-light: #eef1fe;--success: #10b981;--success-light: #ecfdf5;--warning: #f59e0b;--warning-light: #fffbeb;--danger: #ef4444;--danger-light: #fef2f2;--info: #3b82f6;--info-light: #eff6ff;--border: #e5e7eb;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-lg: 0 10px 25px rgba(0,0,0,.06), 0 4px 10px rgba(0,0,0,.04);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px}[data-theme=dark]{--bg-primary: #0f1117;--bg-secondary: #1a1d2e;--bg-sidebar: #141627;--bg-card: #1a1d2e;--bg-input: #252836;--bg-hover: #252836;--text-primary: #f1f3f7;--text-secondary: #8b95a5;--border: #2a2d3e;--shadow: 0 1px 3px rgba(0,0,0,.2), 0 1px 2px rgba(0,0,0,.15);--shadow-lg: 0 10px 25px rgba(0,0,0,.3), 0 4px 10px rgba(0,0,0,.2);--accent-light: #1e2540;--success-light: #0d2818;--warning-light: #2a2010;--danger-light: #2a1215;--info-light: #0f1a2e}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;font-family:inherit}input,select,textarea{font-family:inherit;outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:fadeIn .4s ease forwards}.slide-in-left{animation:slideInLeft .4s ease forwards}.slide-in-up{animation:slideInUp .4s ease forwards}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideInRight{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}.data-table-card{overflow-x:auto}.filter-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:#4f6ef7}.filter-btn:focus{outline:none;border-color:#4f6ef7;box-shadow:0 0 0 3px #4f6ef720}.search-wrapper{position:relative;display:flex;align-items:center}.search-wrapper svg{position:absolute;left:14px;color:var(--text-secondary);pointer-events:none}.stat-card:hover,.dash-card:hover,.action-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.academic-page,.fee-page,.dashboard{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:var(--bg-hover)!important}.confirm-overlay{position:fixed;inset:0;background:#00000080;z-index:9000;display:flex;align-items:center;justify-content:center}.confirm-box{background:var(--bg-card);border-radius:14px;padding:28px;max-width:400px;width:90%;box-shadow:0 20px 60px #0003;text-align:center}.confirm-box h3{font-size:16px;font-weight:700;margin-bottom:8px}.confirm-box p{font-size:13px;color:var(--text-secondary);margin-bottom:20px}.confirm-btns{display:flex;gap:10px;justify-content:center}.confirm-btns button{padding:8px 24px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer;border:none;transition:all .2s}.confirm-btns .confirm-yes{background:#ef4444;color:#fff}.confirm-btns .confirm-yes:hover{background:#dc2626}.confirm-btns .confirm-no{background:var(--bg-input);color:var(--text-primary)}.confirm-btns .confirm-no:hover{background:var(--border)}
