@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Fraunces:wght@700;900&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}:root{--ink:#0a0e1a;--ink2:#1a2035;--surface:#f4f6fb;--card:#fff;--accent:#2563ff;--accent2:#7c3aed;--gold:#f59e0b;--green:#10b981;--red:#ef4444;--border:#e2e8f0;--muted:#64748b;--text:#1e293b;--sidebar-w:260px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--surface);color:var(--text);font-family:DM Sans,sans-serif;height:100vh}body{height:100%}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.align-items-center{align-items:center}.flex-direction{flex-direction:column}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.text-center{text-align:center}.text-left{text-align:left!important}.text-right{text-align:right!important}.cursor_pointer{cursor:pointer}.pd{padding:12px!important}.login-page{align-items:center;background:linear-gradient(135deg,#0f0c29,#1a1a5e 40%,#0f1729);display:flex;font-family:Plus Jakarta Sans,Segoe UI,sans-serif;justify-content:center;min-height:100vh;overflow:hidden;padding:16px;position:relative}.bg-circle{border-radius:50%;pointer-events:none;position:absolute}.bg-circle-1{background:radial-gradient(circle,#6366f126 0,#0000 70%);height:500px;right:-10%;top:-20%;width:500px}.bg-circle-2{background:radial-gradient(circle,#0ea5e91f 0,#0000 70%);bottom:-10%;height:400px;left:-5%;width:400px}.bg-circle-3{background:radial-gradient(circle,#7c3aed14 0,#0000 70%);height:300px;left:20%;top:30%;width:300px}.login-container{max-width:920px!important;position:relative;z-index:1}.login-grid{background:#fff;border-radius:24px;box-shadow:0 40px 80px #00000080;min-height:580px;overflow:hidden}.login-left{background:linear-gradient(160deg,#1e3a8a,#2563eb 55%,#7c3aed);display:flex;flex-direction:column;padding:48px 44px!important;width:478px}@media (max-width:768px){.login-left{display:none}}.brand-section{gap:13px;margin-bottom:20px}.brand-icon,.brand-section{align-items:center;display:flex}.brand-icon{background:#ffffff2e;border-radius:13px;font-size:22px;height:46px;justify-content:center;width:46px}.brand-name{color:#fff!important;font-weight:800!important;letter-spacing:-.3px}.brand-tagline{color:#fff9!important;font-weight:600!important;letter-spacing:.5px}.hero-section{display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:20px 0}.hero-emoji{font-size:52px!important;margin-bottom:16px!important}.hero-title{color:#fff!important;font-size:30px!important;font-weight:900!important;line-height:1.2!important;margin-bottom:14px!important}.hero-text{color:#ffffffb8!important;font-size:14px!important;line-height:1.65!important}.features-section{display:flex;flex-direction:column;gap:10px}.feature-badge{align-items:flex-start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a!important;border:1px solid #ffffff26;border-radius:12px;box-shadow:none!important;display:flex;gap:12px;padding:12px 16px}.feature-icon{flex-shrink:0;font-size:20px}.feature-title{color:#fff!important;font-size:13px!important;font-weight:700!important}.feature-desc{color:#fff9!important;display:block;font-size:12px!important;margin-top:1px}.login-card{align-items:center;background:#fff;display:flex;flex-direction:column;height:100%;justify-content:center;padding:48px 44px}.login-header{margin-bottom:32px}.login-title{color:#0f172a!important;font-size:26px!important;font-weight:900!important;margin-bottom:6px!important}.login-subtitle{color:#64748b!important;font-size:14px!important}.role-box{background:#f8faff;border:1.5px solid #e2e8f0;border-radius:12px;margin-bottom:22px;padding:14px 16px}.role-chips{display:flex;gap:10px}.role-chip{border-radius:20px;display:inline-block;font-size:12px;font-weight:700;padding:5px 14px}.role-chip-admin{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff}.role-chip-principal{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff}.role-note{color:#94a3b8!important;display:block;font-size:11px!important;margin-top:8px}.login-error{background:#fef2f2!important;border:1.5px solid #fecaca!important;color:#dc2626!important;font-size:13px!important;margin-bottom:18px!important}.input-wrapper{align-items:center;margin-bottom:18px;min-width:297px}.input-label{color:#1e293b!important;display:block!important;font-size:13px!important;font-weight:700!important;margin-bottom:8px!important}.email-field,.password-field{background:#f8faff}.email-field .MuiOutlinedInput-root,.password-field .MuiOutlinedInput-root{border-radius:11px}.email-field .MuiOutlinedInput-input,.password-field .MuiOutlinedInput-input{font-size:14px;padding:13px 14px}.email-field .MuiOutlinedInput-notchedOutline,.password-field .MuiOutlinedInput-notchedOutline{border-color:#e2e8f0;border-width:2px}.email-field:hover .MuiOutlinedInput-notchedOutline,.password-field:hover .MuiOutlinedInput-notchedOutline{border-color:#2563eb}.email-field.Mui-focused .MuiOutlinedInput-notchedOutline,.password-field.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#3b82f6;border-width:2px}.email-field.Mui-error .MuiOutlinedInput-notchedOutline,.password-field.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#ef4444}.eye-button{color:#64748b}.eye-button:hover{background:#0000000a}.login-button{background:linear-gradient(135deg,#2563eb,#4f46e5)!important;border-radius:11px!important;box-shadow:0 4px 16px #2563eb4d!important;color:#fff!important;font-size:15px!important;font-weight:700!important;margin-top:10px!important;padding:14px!important;text-transform:none!important}.login-button:hover{background:linear-gradient(135deg,#1d4ed8,#4338ca)!important;box-shadow:0 6px 20px #2563eb66!important}.login-button:disabled{opacity:.75}.loading-content{align-items:center;display:flex;gap:10px;justify-content:center}.info-note{background:#f8faff!important;border:1px solid #e2e8f0;border-radius:10px;box-shadow:none!important;margin-top:22px;padding:12px 16px}.info-title{color:#64748b!important;display:block;font-size:11px!important;font-weight:700!important;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.info-text{color:#94a3b8!important;font-size:12px!important}.info-email{color:#6366f1!important;font-weight:600}.book-wrapper{height:70px;margin:14px auto;perspective:2000px;width:112px}.open-book{height:74px;position:relative;transform:rotateX(20deg) rotate(-10deg);transform-style:preserve-3d;width:86px}.left-cover,.right-cover{background:linear-gradient(135deg,#ff6ec4,#7873f5);border-radius:6px;height:100%;position:absolute;top:0;width:50%}.left-cover{left:0;transform:rotateY(25deg);transform-origin:right}.right-cover{right:0;transform:rotateY(-25deg)}.page,.right-cover{transform-origin:left}.page{animation:flipPage 8s linear infinite;background:#fff;border-radius:4px;box-shadow:0 5px 15px #0003;height:95%;left:50%;position:absolute;top:2.5%;width:48%}.page1{animation-delay:0s}.page2{animation-delay:2s}.page3{animation-delay:4s}.page4{animation-delay:6s}.page:after{background:repeating-linear-gradient(180deg,#ddd,#ddd 2px,#0000 0,#0000 8px);bottom:10px;content:"";left:10px;opacity:.5;position:absolute;right:10px;top:10px}@keyframes flipPage{0%{opacity:1;transform:rotateY(0deg)}80%{opacity:.8;transform:rotateY(-180deg)}to{opacity:0;transform:rotateY(-180deg)}}input[type=password]::-webkit-credentials-auto-fill-button,input[type=password]::-webkit-textfield-decoration-container{display:none!important}input[type=password]::-ms-clear,input[type=password]::-ms-reveal{display:none!important}.id-card-container{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;margin:0 auto;max-width:500px;padding:20px}.id-card-front{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;color:#fff;padding:24px}.id-card-header{align-items:center;border-bottom:2px solid #ffffff4d;display:flex;gap:16px;margin-bottom:16px;padding-bottom:16px}.id-card-school-logo{align-items:center;background:#fff;border-radius:12px;display:flex;font-size:30px;height:60px;justify-content:center;width:60px}.id-card-school-logo img{border-radius:8px;height:100%;object-fit:contain;width:100%}.id-card-photo-section{display:flex;gap:20px;margin-bottom:20px}.id-card-photo{background:#fff;border-radius:12px;height:100px;overflow:hidden;width:100px}.id-card-photo img{height:100%;object-fit:cover;width:100%}.id-card-photo-placeholder{align-items:center;background:linear-gradient(135deg,#f093fb,#f5576c);display:flex;font-size:40px;font-weight:700;height:100%;justify-content:center;width:100%}.id-card-details{background:#ffffff1a;border-radius:12px;margin-bottom:20px;padding:16px}.id-card-row{border-bottom:1px solid #ffffff1a;display:flex;padding:8px 0}.id-card-row:last-child{border-bottom:none}.id-card-label{opacity:.9;width:120px}.id-card-value{flex:1 1;font-weight:500}.id-card-footer{display:flex;font-size:12px;justify-content:space-between;opacity:.8}.id-card-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.tc-container{background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000001a;font-family:Times New Roman,serif;margin:0 auto;max-width:800px;padding:30px}.tc-header{margin-bottom:30px;text-align:center}.tc-header h1{color:#1e3a5f;font-size:28px;margin-bottom:5px}.tc-header h2{color:#333;font-size:22px;margin:15px 0;text-decoration:underline}.tc-ref-no{color:#666;font-size:14px}.tc-certify{font-size:16px;line-height:1.6;margin-bottom:25px;text-align:justify}.tc-details-table{border-collapse:collapse;margin:20px 0;width:100%}.tc-details-table tr{border-bottom:1px solid #ddd}.tc-details-table td{padding:12px}.tc-details-table td:first-child{color:#555;width:40%}.tc-footer{margin-top:40px}.tc-date{font-style:italic;margin-bottom:30px;text-align:right}.tc-signatures{display:flex;justify-content:space-between;margin-top:50px}.tc-signature{text-align:center}.tc-signature p{margin:5px 0}.tc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.delete-button{background:#f35e5e2b!important;border:1.5px solid #86555524!important;border-radius:9px!important}.delete-button,.edit-button{font-size:12px!important;padding:7px!important}.edit-button{background:#182a6829!important;border:1.5px solid #18336829!important;border-radius:9px!important}.pri-modal-wide{max-width:1000px;width:90%}.pri-modal iframe{background:#fff;border-radius:8px}.pri-loading{align-items:center;color:#666;display:flex;justify-content:center;padding:40px}.pri-loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#3b82f6;height:40px;margin:0 auto;width:40px}.pri-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pri-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:900px;overflow:hidden;width:90%}.pri-modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.pri-modal-header h3{font-size:18px;margin:0}.pri-modal-close{background:none;border:none;color:#fff;cursor:pointer;font-size:20px;padding:0 8px}.pri-modal-body{max-height:calc(90vh - 120px);overflow-y:auto;padding:20px}.sa-root{background:#070b14;color:#e2e8f0;overflow-x:hidden;width:100%}.sa-root,.sa-sidebar{display:flex;min-height:100vh}.sa-sidebar{background:linear-gradient(180deg,#0d1424,#0a1020);border-right:1px solid #f59e0b1f;bottom:0;flex-direction:column;left:0;position:fixed;top:0;transition:transform .3s ease;width:268px;z-index:200}.sa-brand{border-bottom:1px solid #ffffff0f;gap:14px;padding:28px 22px 20px}.sa-brand,.sa-brand-icon{align-items:center;display:flex}.sa-brand-icon{background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:13px;font-size:22px;height:46px;justify-content:center;width:46px}.sa-brand-name{color:#f1f5f9;font-size:18px;font-weight:700}.sa-brand-role{color:#f59e0b;font-size:11px;font-weight:600}.sa-user-card{background:#f59e0b12;border:1px solid #f59e0b26;border-radius:14px;gap:12px;margin:16px 14px;padding:14px 16px}.sa-avatar,.sa-user-card{align-items:center;display:flex}.sa-avatar{background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:11px;color:#0d1424;font-weight:800;height:40px;justify-content:center;width:40px}.sa-user-name{font-size:14px;font-weight:700}.sa-user-email{color:#64748b;font-size:11px}.sa-nav{flex:1 1;overflow-y:auto;padding:8px 12px}.sa-nav-label{color:#475569;font-size:10px;font-weight:700;letter-spacing:1px;padding:14px 10px 6px}.sa-nav-item{align-items:center;background:#0000;border:none;border-radius:11px;color:#94a3b8;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:11px 14px;width:100%}.sa-nav-item:hover{background:#ffffff0d;color:#e2e8f0}.sa-nav-item.sa-active{background:linear-gradient(135deg,#f59e0b2e,#ef44441f);border:1px solid #f59e0b33;color:#f59e0b}.sa-sidebar-footer{border-top:1px solid #ffffff0f;padding:16px 14px}.sa-logout-btn{background:#ef44441a;border:1px solid #ef444433;border-radius:11px;color:#ef4444;cursor:pointer;font-size:14px;font-weight:600;padding:11px 16px;width:100%}.sa-main{flex:1 1;flex-direction:column;padding-left:268px;transition:padding .3s}.sa-main,.sa-topbar{display:flex;width:100%}.sa-topbar{align-items:center;background:#070b14;border-bottom:1px solid #ffffff0d;height:70px;justify-content:space-between;padding:0 24px}.sa-topbar-title{font-size:18px;font-weight:700}.sa-badge{background:#111827;border-radius:8px;font-size:12px;padding:6px 12px}.sa-content{flex:1 1;padding:28px;width:100%}.sa-menu-btn{background:none;border:none;color:#fff;cursor:pointer;display:none;font-size:24px}.pri-root{background:#eef2ff;color:#0f172a;font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden;width:100%}.pri-root,.pri-sidebar{display:flex;min-height:100vh}.pri-sidebar{background:linear-gradient(180deg,#1e3a5f,#1a3152 50%,#152744);border-right:none;bottom:0;box-shadow:4px 0 24px #1e3a5f4d;flex-direction:column;left:0;position:fixed;top:0;width:260px;z-index:100}.pri-main{flex:1 1;flex-direction:column;padding-left:260px;transition:padding .3s}.pri-main,.pri-topbar{display:flex;width:100%}.pri-topbar{align-items:center;background:linear-gradient(180deg,#1e3a5f,#1a3152 50%,#152744);border-bottom:1px solid #e2e8f0;box-shadow:0 1px 8px #0000000f;height:70px;justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.pri-topbar-title{color:#f0f3f7;font-family:Fraunces,serif;font-size:20px;font-weight:900}.pri-content{flex:1 1;padding:0 20px;width:100%}.pri-menu-btn{background:none;border:none;color:#edeaea;cursor:pointer;display:none;font-size:24px}@media(max-width:900px){.sa-sidebar{transform:translateX(-100%)}.sa-sidebar.sa-sidebar-open{transform:translateX(0)}.sa-main{padding-left:0}.sa-menu-btn{display:block}.pri-sidebar{transform:translateX(-100%)}.pri-sidebar.pri-sidebar-open{transform:translateX(0)}.pri-main{padding-left:0}.pri-menu-btn{display:block}.pri-classes-container{width:100%}.pri-classes-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:14px}.pri-header-title{color:#1e3a5f;font-size:18px;font-weight:800}.pri-header-subtitle{color:#94a3b8;font-size:12px}.pri-header-actions{display:flex;gap:8px}.pri-btn-success{align-items:center;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:8px 16px}.pri-btn-success:hover{background:#059669}.pri-btn-success.pri-btn-sm{font-size:12px;padding:4px 12px}.pri-btn-xs{border-radius:6px;font-size:11px;padding:4px 10px}.pri-table tbody{background-color:#f5f5f5}.pri-class-row{background-color:#e0e0e0;border-bottom:1px solid #e2e8f0;cursor:pointer;transition:background-color .2s ease}.pri-class-row:hover{background-color:#d4d4d4!important}.pri-class-row.expanded{border-bottom:none}.pri-class-name{align-items:center;display:flex;gap:8px}.pri-class-name strong{color:#1e3a5f;font-size:16px}.pri-expand-icon{color:#64748b;display:inline-block;font-size:14px;transition:transform .2s}.pri-expand-icon.expanded{transform:rotate(90deg)}.pri-section-preview{display:flex;flex-wrap:wrap;gap:6px}.pri-section-tag{background:#b6babe;border-radius:16px;color:#0369a1;font-size:12px;padding:2px 10px}.pri-more-tag{color:#64748b;font-size:12px}.pri-no-sections{color:#94a3b8;font-style:italic}.pri-expanded-row{background-color:#f5f5f5}.pri-expanded-row:hover{background-color:#e8e8e8}.pri-expanded-cell{padding:0!important}.pri-expanded-content{background-color:#f5f5f5;padding:16px 24px}.pri-expanded-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.pri-expanded-title{color:#1e3a5f;font-size:14px;margin:0}.pri-empty-sections{background:#fff;border:1px dashed #ccc;border-radius:8px;padding:20px;text-align:center}.pri-empty-sections p{color:#64748b;margin:0}.pri-sections-list{display:flex;flex-direction:column;gap:8px}.pri-section-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:10px 16px;transition:all .2s ease}.pri-section-item:hover{background:#f8fafc;border-color:#cbd5e1}.pri-section-info{align-items:center;display:flex;gap:12px}.pri-section-name{background:#e0f2fe;border-radius:20px;color:#0369a1;font-size:13px;font-weight:500;padding:4px 12px}.pri-section-id{color:#94a3b8;font-size:11px}.pri-form-field{margin-bottom:16px}.pri-form-field label{color:#1e293b;display:block;font-weight:600;margin-bottom:6px}.pri-input,.pri-select{border:1px solid #ccc;border-radius:6px;font-size:14px;padding:10px;transition:border-color .2s ease;width:100%}.pri-input:focus,.pri-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.pri-existing-sections{background:#f8fafc;border-radius:8px;margin-top:16px;padding:12px}.pri-existing-title{color:#475569;font-size:13px;font-weight:600;margin-bottom:8px}.pri-existing-tags{display:flex;flex-wrap:wrap;gap:6px}.pri-existing-tag{background:#e0f2fe;border-radius:20px;color:#0369a1;font-size:12px;padding:4px 12px}.pri-empty{padding:40px 20px;text-align:center}.pri-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.pri-empty p{color:#94a3b8;font-size:14px;margin:0}}.school-info-banner{align-items:flex-start;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:24px;padding:20px}.info-grid{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:.75rem;letter-spacing:.5px;opacity:.8;text-transform:uppercase}.info-value{font-size:1rem;font-weight:600;word-break:break-word}.banner-actions{align-items:center;display:flex;gap:12px;margin-left:20px}.status-badge-large{border-radius:30px;font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:6px 16px;text-transform:uppercase;white-space:nowrap}.refresh-btn{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;gap:4px;padding:6px 12px;transition:all .2s}.refresh-btn:hover{background:#ffffff4d}.tabs-container{border-bottom:2px solid #e5e7eb;display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}.tab-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s;white-space:nowrap}.tab-btn:hover{background:#f3f4f6;color:#4b5563}.tab-btn.active{background:#667eea;color:#fff}.tab-icon{font-size:1.2rem}.tab-count{background:#0000001a;border-radius:20px;font-size:.75rem;font-weight:600;padding:2px 8px}.tab-btn.active .tab-count{background:#fff3}.tab-content{max-height:500px;min-height:400px;overflow-y:auto;padding:4px}.loading-state{align-items:center;color:#6b7280;display:flex;flex-direction:column;height:300px;justify-content:center}.spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-top-color:#667eea;margin-bottom:16px}.table-container{border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;font-size:.9rem;width:100%}.data-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#4b5563;font-weight:600;padding:12px 16px;text-align:left}.data-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;padding:12px 16px}.data-table tr:hover td{background:#f9fafb}.data-table tr:last-child td{border-bottom:none}.no-data{color:#9ca3af;font-style:italic;padding:40px!important;text-align:center}.user-info{display:flex;flex-direction:column;gap:4px}.user-name{color:#1f2937;font-weight:600}.user-info small{color:#6b7280;font-size:.75rem}.roll-number{background:#f3f4f6;border-radius:4px;font-family:monospace;font-size:.85rem;padding:4px 8px}.contact-info{display:flex;flex-direction:column;gap:2px}.contact-info small{color:#6b7280;font-size:.7rem}.action-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:6px 10px;transition:all .2s}.action-btn.delete:hover{background:#fee2e2;color:#dc2626}.badge{background:#e5e7eb;color:#4b5563}.badge,.status-badge{border-radius:12px;font-size:.75rem;padding:2px 8px}.status-badge{font-weight:500}.status-badge.active{background:#10b981;color:#fff}.status-badge.inactive{background:#ef4444;color:#fff}.grid-container{padding:8px 0}.class-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.class-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 4px #0000000d;padding:16px;transition:all .2s}.class-card:hover{border-color:#667eea;box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.class-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;margin-bottom:12px;padding-bottom:12px}.class-icon{font-size:1.5rem}.class-header h3{color:#1f2937;flex:1 1;font-size:1.1rem;margin:0}.class-id{color:#9ca3af;font-family:monospace;font-size:.75rem}.class-details p{color:#4b5563;font-size:.9rem;margin:8px 0}.class-details strong{color:#1f2937}.section-name{color:#667eea;font-weight:600}@media (max-width:768px){.school-info-banner{flex-direction:column}.info-grid{gap:12px;grid-template-columns:1fr}.banner-actions{justify-content:flex-end;margin-left:0;margin-top:16px;width:100%}.data-table td,.data-table th,.tab-btn{font-size:.85rem;padding:8px 12px}.class-grid{grid-template-columns:1fr}}.tab-content::-webkit-scrollbar{width:8px}.tab-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.tab-content::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.tab-content::-webkit-scrollbar-thumb:hover{background:#a0aec0}.tally-module{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a;margin:0 18px;overflow:hidden}.tally-tabs{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:4px;padding:12px 20px}.tally-tab{background:#0000;border:none;border-radius:10px;color:#64748b;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s}.tally-tab:hover{background:#e2e8f0;color:#1e293b}.tally-tab.active{background:#1e3a5f;color:#fff}.tally-content{padding:24px}.tally-dashboard{animation:fadeIn .3s ease}.tally-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.tally-header h3{color:#0f172a;font-size:20px;font-weight:600;margin:0}.tally-year-badge{background:#e2e8f0;border-radius:8px;color:#1e293b;font-size:13px;font-weight:500;padding:6px 12px}.tally-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:32px}.tally-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 8px #00000014;display:flex;gap:16px;padding:20px;transition:transform .2s,box-shadow .2s}.tally-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.tally-card-icon{align-items:center;background:#f1f5f9;border-radius:12px;display:flex;font-size:36px;height:60px;justify-content:center;width:60px}.tally-card-content{flex:1 1}.tally-card-label{color:#64748b;font-size:13px;font-weight:500;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.tally-card-value{color:#0f172a;font-size:28px;font-weight:700;margin-bottom:4px}.tally-card-sub{color:#94a3b8;font-size:12px}.fees-card .tally-card-value{color:#059669}.expenses-card .tally-card-value{color:#dc2626}.profit-positive .tally-card-value{color:#059669}.profit-negative .tally-card-value{color:#dc2626}.tally-progress-section{margin-top:8px}.tally-progress-bar-container{background:#f1f5f9;border-radius:12px;padding:16px}.tally-progress-label{color:#475569;display:flex;font-size:13px;font-weight:500;justify-content:space-between;margin-bottom:8px}.tally-progress-bar{background:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.tally-progress-fill{background:linear-gradient(90deg,#059669,#10b981);border-radius:4px;height:100%;transition:width .3s ease}.tally-add-expense{margin:0 auto;max-width:600px}.tally-form-group{margin-bottom:20px}.tally-form-group label{color:#1e293b;display:block;font-size:13px;font-weight:600;margin-bottom:8px}.tally-form-group input,.tally-form-group select,.tally-form-group textarea{border:1px solid #cbd5e1;border-radius:10px;font-size:14px;padding:12px;transition:border-color .2s;width:100%}.tally-form-group input:focus,.tally-form-group select:focus,.tally-form-group textarea:focus{border-color:#1e3a5f;box-shadow:0 0 0 3px #1e3a5f1a;outline:none}.tally-submit-btn{background:#1e3a5f;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:background .2s;width:100%}.tally-submit-btn:hover{background:#0f2a4a}.tally-submit-btn:disabled{cursor:not-allowed;opacity:.6}.tally-expense-list{animation:fadeIn .3s ease}.tally-list-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.tally-list-header h4{color:#0f172a;font-size:18px;font-weight:600;margin:0}.tally-list-total{color:#059669;font-size:16px;font-weight:600}.tally-list-filters{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.tally-filter-buttons{display:flex;gap:8px}.tally-filter-btn{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;cursor:pointer;font-size:13px;padding:6px 16px;transition:all .2s}.tally-filter-btn.active{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.tally-search input{border:1px solid #cbd5e1;border-radius:20px;font-size:13px;padding:8px 16px;width:250px}.tally-table-container{overflow-x:auto}.tally-table{border-collapse:collapse;width:100%}.tally-table thead{background:#f8fafc;border-bottom:2px solid #e2e8f0}.tally-table th{color:#475569;font-size:13px;font-weight:600;padding:12px;text-align:left}.tally-table td{border-bottom:1px solid #e2e8f0;font-size:14px;padding:12px}.tally-date{font-family:monospace;font-size:12px}.tally-amount{color:#dc2626;font-weight:600}.tally-actions{text-align:center}.tally-delete-btn{background:#0000;border:none;border-radius:6px;cursor:pointer;font-size:18px;padding:4px 8px;transition:background .2s}.tally-delete-btn:hover{background:#fee2e2}.tally-empty-state{color:#94a3b8;padding:48px;text-align:center}.tally-empty-icon{font-size:48px;margin-bottom:16px}.tally-loading{padding:48px;text-align:center}.spinner{animation:spin .8s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#1e3a5f;height:40px;margin:0 auto 16px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:768px){.tally-tabs{flex-direction:column}.tally-tab{text-align:center;width:100%}.tally-cards{grid-template-columns:1fr}.tally-list-filters{align-items:stretch;flex-direction:column}.tally-search input{width:100%}}.sa-form-field input.error,.sa-form-field select.error,.sa-form-field textarea.error{border-color:#dc3545}.sa-error-message{animation:fadeIn .3s ease-in;color:#dc3545;font-size:12px;margin-top:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
/*# sourceMappingURL=main.c4170dd3.css.map*/