:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}button{font-family:inherit}img{max-width:100%;height:auto}button:focus,a:focus,input:focus,textarea:focus{outline:2px solid #2563eb;outline-offset:2px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .6s ease-out}.text-center{text-align:center}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body{width:100%;overflow-x:hidden}.landing-page{min-height:100vh;background:#fff;width:100%;margin:0;padding:0;overflow-x:hidden}.navbar{position:fixed;top:0;left:0;right:0;width:100%;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e1e5e9;z-index:1000;margin:0;padding:0}.nav-container{width:100%;margin:0;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box}.nav-brand{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:#2563eb}.brand-icon{font-size:2rem}.nav-links{display:flex;align-items:center;gap:2rem}.nav-link{color:#64748b;text-decoration:none;font-weight:500;transition:color .2s}.nav-link:hover{color:#2563eb}.login-btn{background:#2563eb;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.login-btn:hover{background:#1d4ed8}.exam-login-btn{background:transparent;color:#2563eb;border:2px solid #2563eb;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.exam-login-btn:hover{background:#eff6ff}.landing-mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#1f2937;z-index:1002;padding:.5rem}.nav-items{display:flex;align-items:center;gap:2rem}.hero{padding:8rem 0 4rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:relative;overflow:hidden;width:100vw;min-height:100vh;display:flex;align-items:center;margin:0;box-sizing:border-box}.hero-container{width:100%;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;gap:4rem;margin:0;box-sizing:border-box}.hero-content{flex:1;max-width:600px}.hero-title{font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:1.5rem}.highlight{color:#fbbf24}.hero-description{font-size:1.25rem;line-height:1.6;margin-bottom:2rem;opacity:.9}.hero-stats{display:flex;gap:3rem;margin-bottom:3rem}.stat{text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700;color:#fbbf24}.stat-label{font-size:.9rem;opacity:.8}.hero-actions{display:flex;gap:1rem}.cta-primary,.cta-secondary{padding:1rem 2rem;border-radius:8px;font-weight:600;font-size:1.1rem;cursor:pointer;transition:all .2s;border:none}.cta-primary{background:#fbbf24;color:#1f2937}.cta-primary:hover{background:#f59e0b;transform:translateY(-2px)}.cta-secondary{background:transparent;color:#fff;border:2px solid white}.cta-secondary:hover{background:#fff;color:#2563eb}.login-panel{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 20px 25px -5px #0000001a;width:400px;min-width:350px;transform:translate(50px);opacity:0;transition:all .3s ease;flex-shrink:0}.login-panel.active{transform:translate(0);opacity:1}.login-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.login-panel-header h3{color:#1f2937;margin:0}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280}.login-panel-footer{text-align:center;margin-top:1rem}.login-panel-footer a{color:#2563eb;text-decoration:none}.container{width:100%;margin:0;padding:0 2rem;box-sizing:border-box}.section-header{text-align:center;margin-bottom:4rem}.section-header h2{font-size:2.5rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.section-header p{font-size:1.25rem;color:#6b7280}.features{padding:6rem 0;background:#f8fafc;width:100vw;margin:0;box-sizing:border-box}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.feature-card{background:#fff;padding:2rem;border-radius:12px;text-align:center;box-shadow:0 4px 6px -1px #0000001a;transition:transform .2s}.feature-card:hover{transform:translateY(-4px)}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-title{font-size:1.25rem;font-weight:600;color:#1f2937;margin-bottom:1rem}.feature-description{color:#6b7280;line-height:1.6}.about{padding:6rem 0;width:100vw;margin:0;box-sizing:border-box}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.about-text h2{font-size:2.5rem;font-weight:700;color:#1f2937;margin-bottom:1.5rem}.about-text p{font-size:1.1rem;color:#6b7280;line-height:1.6;margin-bottom:2rem}.about-features{list-style:none;padding:0}.about-features li{padding:.5rem 0;color:#374151;font-weight:500}.dashboard-preview{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;overflow:hidden}.preview-header{background:#f3f4f6;padding:1rem;display:flex;align-items:center;gap:1rem}.preview-dots{display:flex;gap:.5rem}.preview-dots span{width:12px;height:12px;border-radius:50%;background:#d1d5db}.preview-title{font-weight:600;color:#374151}.preview-content{display:flex;height:300px}.preview-sidebar{background:#f9fafb;width:200px;padding:1rem}.sidebar-item{padding:.75rem;margin-bottom:.5rem;border-radius:6px;font-size:.9rem;cursor:pointer}.sidebar-item.active{background:#2563eb;color:#fff}.preview-main{flex:1;padding:1rem}.testimonials{padding:6rem 0;background:#f8fafc;width:100vw;margin:0;box-sizing:border-box}.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.testimonial-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a}.testimonial-content{margin-bottom:1.5rem}.testimonial-content p{font-style:italic;color:#374151;line-height:1.6}.testimonial-author{display:flex;align-items:center;gap:1rem}.author-avatar{font-size:2rem}.author-name{font-weight:600;color:#1f2937}.author-role{font-size:.9rem;color:#6b7280}.pricing{padding:6rem 0}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.pricing-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:2rem;text-align:center;position:relative;transition:transform .2s}.pricing-card:hover{transform:translateY(-4px)}.pricing-card.featured{border-color:#2563eb;transform:scale(1.05)}.pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:#2563eb;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.8rem;font-weight:600}.pricing-header h3{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:1rem}.price{display:flex;align-items:baseline;justify-content:center;margin-bottom:2rem}.currency{font-size:1.5rem;color:#6b7280}.amount{font-size:3rem;font-weight:700;color:#1f2937}.period{font-size:1rem;color:#6b7280}.pricing-features{list-style:none;padding:0;margin-bottom:2rem}.pricing-features li{padding:.75rem 0;color:#374151;border-bottom:1px solid #f3f4f6}.pricing-btn{width:100%;background:#2563eb;color:#fff;border:none;padding:1rem;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.pricing-btn:hover{background:#1d4ed8}.cta{padding:6rem 0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center}.cta-content h2{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.cta-content p{font-size:1.25rem;margin-bottom:2rem;opacity:.9}.cta-actions{display:flex;gap:1rem;justify-content:center}.footer{background:#1f2937;color:#fff;padding:4rem 0 2rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}.footer-brand{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.footer-section h4{font-weight:600;margin-bottom:1rem}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:.5rem}.footer-section a{color:#d1d5db;text-decoration:none;transition:color .2s}.footer-section a:hover{color:#fff}.footer-bottom{border-top:1px solid #374151;padding-top:2rem;text-align:center;color:#9ca3af}@media (max-width: 1024px){.hero-title{font-size:3rem}.hero-container{flex-direction:column;padding-top:2rem;text-align:center}.hero-content{max-width:100%}.hero-stats,.hero-actions{justify-content:center}.login-panel{width:100%;max-width:450px;transform:none;opacity:1;margin-top:2rem}.login-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);z-index:2000;opacity:0;pointer-events:none;box-shadow:0 25px 50px -12px #00000040}.login-panel.active{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:all}.login-panel.active:before{content:"";position:fixed;top:-100vh;left:-100vw;width:300vw;height:300vh;background:#00000080;z-index:-1}.about-content{grid-template-columns:1fr;text-align:center}.about-features{display:inline-block;text-align:left}}@media (max-width: 768px){.landing-mobile-menu-btn{display:block!important}.nav-items{position:fixed!important;top:0;right:-100%;height:100vh;width:80%;max-width:300px;background:#fff;flex-direction:column;padding:6rem 2rem 2rem;box-shadow:-5px 0 15px #0000001a;transition:right .3s ease;z-index:1001;gap:1.5rem;align-items:stretch;display:flex}.nav-items.active{right:0}.nav-link{font-size:1.1rem;padding:.5rem 0;border-bottom:1px solid #f3f4f6}.login-btn,.exam-login-btn{width:100%;text-align:center;margin-top:.5rem}.hero-title{font-size:2.5rem}.hero-stats{flex-direction:column;gap:1.5rem}.features-grid{grid-template-columns:1fr}.preview-content{flex-direction:column;height:auto}.preview-sidebar{width:100%;display:flex;overflow-x:auto;padding:.5rem}.sidebar-item{white-space:nowrap;margin:0 .5rem 0 0}.preview-cards{grid-template-columns:1fr}}.preview-card{background:#f8fafc;padding:1rem;border-radius:8px}.card-header{font-size:.8rem;color:#6b7280;margin-bottom:.5rem}.card-value{font-size:1.5rem;font-weight:700;color:#1f2937}.activation-form{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background-color:#f5f5f5}.activation-form .form-container{background:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:450px}.activation-form h2{text-align:center;margin-bottom:10px;color:#333;font-size:1.8em}.activation-form p{text-align:center;margin-bottom:30px;color:#666;line-height:1.5}.activation-form .form{display:flex;flex-direction:column;gap:20px}.activation-form .form-group{display:flex;flex-direction:column;gap:8px}.activation-form label{font-weight:600;color:#333;font-size:.9em}.activation-form input{padding:12px 16px;border:2px solid #e1e5e9;border-radius:6px;font-size:1em;transition:border-color .2s ease}.activation-form input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.activation-form input.error{border-color:#dc3545}.activation-form .error-text{color:#dc3545;font-size:.85em;margin-top:4px}.activation-form .error-message{background-color:#f8d7da;color:#721c24;padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #f5c6cb}.activation-form .success-message{text-align:center;padding:20px 0}.activation-form .success-message h2{color:#28a745;margin-bottom:20px}.activation-form .success-message p{margin-bottom:15px}.activation-form .submit-button{background-color:#007bff;color:#fff;border:none;padding:14px 20px;border-radius:6px;font-size:1em;font-weight:600;cursor:pointer;transition:background-color .2s ease}.activation-form .submit-button:hover:not(:disabled){background-color:#0056b3}.activation-form .submit-button:disabled{background-color:#6c757d;cursor:not-allowed}.activation-form .form-footer{text-align:center;margin-top:30px;padding-top:20px;border-top:1px solid #e1e5e9}.activation-form .link-button{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;font-size:.9em;padding:0;margin:5px 0}.activation-form .link-button:hover:not(:disabled){color:#0056b3}.activation-form .link-button:disabled{color:#6c757d;cursor:not-allowed}.activation-form .otp-inputs{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.activation-form .otp-input{width:45px;height:55px;text-align:center;font-size:1.5rem;font-weight:600;border:2px solid #e1e5e9;border-radius:8px;background:#fff;transition:all .2s ease}.activation-form .otp-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none;transform:translateY(-2px)}.activation-form .otp-input.error{border-color:#dc3545;background-color:#fff8f8}@media (max-width: 480px){.activation-form{padding:5px;min-height:100vh}.activation-form .form-container{padding:20px 15px;border-radius:0;box-shadow:none}.activation-form h2{font-size:1.4em;margin-bottom:8px}.activation-form p{margin-bottom:20px;font-size:.9em}.activation-form .otp-input{width:40px;height:50px;font-size:1.3rem}.activation-form .otp-inputs{gap:6px}}.school-selection{min-height:100vh;background-color:#f5f5f5;display:flex;justify-content:center;align-items:center;padding:2rem}.school-selection .container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:800px;width:100%}.school-selection .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e1e5e9}.school-selection h2{color:#333;margin:0;font-size:1.8em}.school-selection p{color:#666;margin:.5rem 0}.school-selection .logout-button{background:#dc3545;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9em}.school-selection .logout-button:hover{background:#c82333}.school-selection .error-message{background-color:#f8d7da;color:#721c24;padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #f5c6cb}.school-selection .schools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.school-selection .school-card{border:2px solid #e1e5e9;border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s ease;background:#fff}.school-selection .school-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.school-selection .school-card.selected{border-color:#007bff;background-color:#f8f9ff}.school-selection .school-info h3{margin:0 0 .5rem;color:#333;font-size:1.2em}.school-selection .school-slug{color:#666;font-size:.9em;margin-bottom:1rem}.school-selection .school-roles{margin-bottom:1rem}.school-selection .school-roles p{font-weight:600;margin-bottom:.5rem;color:#333}.school-selection .school-roles ul{list-style:none;padding:0;margin:0}.school-selection .school-roles li{background:#e9ecef;padding:.25rem .5rem;border-radius:4px;margin-bottom:.25rem;font-size:.9em;color:#495057}.school-selection .no-roles{color:#dc3545;font-style:italic;font-size:.9em}.school-selection .school-status{font-weight:600;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.school-selection .select-button{background:#007bff;color:#fff;border:none;padding:.75rem 1rem;border-radius:4px;cursor:pointer;width:100%;margin-top:1rem;font-size:.9em;transition:background-color .2s}.school-selection .select-button:hover:not(:disabled){background:#0056b3}.school-selection .select-button:disabled{background:#6c757d;cursor:not-allowed}.school-selection .selection-actions{text-align:center;padding-top:1rem;border-top:1px solid #e1e5e9}.school-selection .continue-button{background:#28a745;color:#fff;border:none;padding:.75rem 2rem;border-radius:4px;cursor:pointer;font-size:1em;font-weight:600}.school-selection .continue-button:hover:not(:disabled){background:#218838}.school-selection .continue-button:disabled{background:#6c757d;cursor:not-allowed}.school-selection .actions{display:flex;gap:1rem;justify-content:center;margin-top:1rem}@media (max-width: 768px){.school-selection{padding:1rem}.school-selection .container{padding:1.5rem}.school-selection .header{flex-direction:column;gap:1rem;text-align:center}.school-selection .schools-grid{grid-template-columns:1fr}}.role-selection{min-height:100vh;background-color:#f5f5f5;display:flex;justify-content:center;align-items:center;padding:2rem}.role-selection .container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:800px;width:100%}.role-selection .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e1e5e9}.role-selection .school-info{display:flex;align-items:center;gap:1rem}.role-selection .school-logo-small{width:40px;height:40px;border-radius:4px}.role-selection h2{color:#333;margin:0;font-size:1.8em}.role-selection p{color:#666;margin:.5rem 0}.role-selection .header-actions{display:flex;gap:1rem}.role-selection .back-button,.role-selection .logout-button{background:#6c757d;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9em}.role-selection .logout-button{background:#dc3545}.role-selection .back-button:hover{background:#545b62}.role-selection .logout-button:hover{background:#c82333}.role-selection .error-message{background-color:#f8d7da;color:#721c24;padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #f5c6cb}.role-selection .roles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.role-selection .role-card{border:2px solid #e1e5e9;border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s ease;background:#fff}.role-selection .role-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.role-selection .role-card.selected{border-color:#007bff;background-color:#f8f9ff}.role-selection .role-info h3{margin:0 0 .5rem;color:#333;font-size:1.2em}.role-selection .role-type{color:#666;font-size:.9em;margin-bottom:.5rem;text-transform:capitalize}.role-selection .role-assigned{color:#666;font-size:.8em;margin-bottom:1rem}.role-selection .select-button{background:#007bff;color:#fff;border:none;padding:.75rem 1rem;border-radius:4px;cursor:pointer;width:100%;margin-top:1rem;font-size:.9em;transition:background-color .2s}.role-selection .select-button:hover:not(:disabled){background:#0056b3}.role-selection .select-button:disabled{background:#6c757d;cursor:not-allowed}.role-selection .selection-actions{text-align:center;padding-top:1rem;border-top:1px solid #e1e5e9}.role-selection .continue-button{background:#28a745;color:#fff;border:none;padding:.75rem 2rem;border-radius:4px;cursor:pointer;font-size:1em;font-weight:600}.role-selection .continue-button:hover:not(:disabled){background:#218838}.role-selection .continue-button:disabled{background:#6c757d;cursor:not-allowed}.role-selection .actions{display:flex;gap:1rem;justify-content:center;margin-top:1rem}@media (max-width: 768px){.role-selection{padding:1rem}.role-selection .container{padding:1.5rem}.role-selection .header{flex-direction:column;gap:1rem;text-align:center}.role-selection .school-info{flex-direction:column;text-align:center}.role-selection .header-actions{justify-content:center}.role-selection .roles-grid{grid-template-columns:1fr}}.branding-section{margin-bottom:2rem}.branding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.branding-item{display:flex;flex-direction:column;gap:.5rem}.image-preview{width:100%;height:150px;border-radius:8px;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center}.image-preview img{width:100%;height:100%;object-fit:contain}.image-preview.logo-preview,.image-preview.banner-preview{height:150px}.placeholder-image{color:#9ca3af;font-size:.9rem;font-weight:500}.branding-upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.upload-field{display:flex;flex-direction:column;gap:.5rem}.upload-container{display:flex;flex-direction:column;gap:1rem}.image-preview.small{height:100px;width:100px}.image-preview.banner-preview.small{width:100%;height:100px}.view-mode-toggle{display:flex;background:#f8f9fa;border-radius:6px;padding:.25rem;border:1px solid #dee2e6}.toggle-btn{padding:.5rem 1rem;border:none;background:transparent;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s;color:#6c757d}.toggle-btn.active{background:#007bff;color:#fff;box-shadow:0 2px 4px #007bff33}.toggle-btn:hover:not(.active){background:#e9ecef;color:#495057}.expand-controls{display:flex;gap:.5rem}.control-btn{padding:.5rem .75rem;border:1px solid #dee2e6;background:#fff;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s;color:#6c757d}.control-btn:hover{background:#f8f9fa;border-color:#007bff;color:#007bff}.structure-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e9ecef;padding-bottom:0}.tab-btn{padding:.75rem 1.5rem;border:none;background:transparent;border-bottom:3px solid transparent;cursor:pointer;font-size:.9rem;font-weight:500;color:#6c757d;transition:all .2s}.tab-btn.active{color:#007bff;border-bottom-color:#007bff}.tab-btn:hover:not(.active){color:#495057;background:#f8f9fa}.hierarchical-structure{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.hierarchy-container{padding:1rem}.track-section{margin-bottom:2rem;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.track-header{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #e9ecef}.track-info{flex:1}.track-info h3{margin:0 0 .25rem;color:#212529;font-size:1.25rem;font-weight:600}.track-info p{margin:0 0 .5rem;color:#6c757d;font-size:.9rem}.track-stats{font-size:.8rem;color:#007bff;font-weight:500}.departments-container{padding:0 1rem 1rem}.department-section{margin-bottom:1.5rem;border:1px solid #dee2e6;border-radius:6px;margin-left:2rem}.department-header{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#fff;border-bottom:1px solid #f1f3f4}.department-info{flex:1}.department-info h4{margin:0 0 .25rem;color:#212529;font-size:1.1rem;font-weight:600}.department-info p{margin:0 0 .25rem;color:#6c757d;font-size:.85rem}.department-stats{font-size:.75rem;color:#28a745;font-weight:500}.department-actions{display:flex;gap:.5rem}.classes-container{padding:.75rem;background:#fafbfc}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-left:1rem}.class-card{background:#fff;border:1px solid #e9ecef;border-radius:6px;overflow:hidden;transition:transform .2s,box-shadow .2s}.class-card:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.class-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid #f1f3f4;gap:1rem}.class-info{flex:1;min-width:0}.class-info h5{margin:0 0 .25rem;color:#212529;font-size:1rem;font-weight:600}.class-code{display:inline-block;background:#e3f2fd;color:#1565c0;padding:.2rem .4rem;border-radius:4px;font-size:.7rem;font-weight:500;margin-right:.5rem}.grade-level{display:inline-block;background:#f3e5f5;color:#7b1fa2;padding:.2rem .4rem;border-radius:4px;font-size:.7rem;font-weight:500}.track-badge,.dept-badge{display:block;background:#fff3e0;color:#e65100;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;margin:.25rem 0;width:fit-content}.class-actions{display:flex;gap:.25rem;align-items:center;flex-shrink:0}.class-details{padding:.75rem}.class-meta{display:flex;justify-content:space-between;font-size:.8rem;color:#6c757d}.expand-btn{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:.25rem;border-radius:4px;transition:background-color .2s}.expand-btn:hover{background:#f8f9fa}.add-btn{background:#28a745;color:#fff;border:none;cursor:pointer;padding:.4rem .75rem;border-radius:4px;transition:all .2s;font-size:.8rem;font-weight:500}.add-btn:hover{background:#218838;transform:translateY(-1px);box-shadow:0 2px 4px #28a7454d}.edit-btn,.delete-btn{background:none;border:none;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:all .2s;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.edit-btn:hover{background:#e3f2fd;transform:scale(1.1)}.delete-btn:hover{background:#ffebee;transform:scale(1.1)}.no-departments,.no-classes{text-align:center;padding:1rem;color:#6c757d;font-style:italic;background:#f8f9fa;border-radius:4px;margin:.5rem 0}.structure-content h3{margin:0 0 1.5rem;color:#212529;font-size:1.5rem;font-weight:600}.grouped-content{display:flex;flex-direction:column;gap:2rem}.track-group,.department-group{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden;border:1px solid #e9ecef}.group-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef}.group-header h4{margin:0;color:#212529;font-size:1.1rem;font-weight:600}.group-count{background:#007bff;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.8rem;font-weight:500}.no-items{padding:2rem;text-align:center;color:#6c757d;font-style:italic;background:#fafbfc}.track-stats,.dept-stats{font-size:.8rem;color:#007bff;font-weight:500}.structure-card.orphan{border-left:4px solid #ffc107}.structure-card.orphan .structure-info h4{color:#856404}.structure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.structure-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid #e9ecef}.structure-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #00000026}.structure-header{padding:1.5rem 1.5rem 1rem;display:flex;justify-content:space-between;align-items:flex-start}.structure-info h4{margin:0 0 .5rem;color:#212529;font-size:1.25rem;font-weight:600}.structure-info p{margin:0 0 .5rem;color:#6c757d;font-size:.9rem}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:500;color:#495057}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;box-sizing:border-box}@media (max-width: 768px){.view-container{padding:1rem}.view-header,.header-actions{flex-direction:column;align-items:stretch}.view-mode-toggle{align-self:center}.expand-controls{justify-content:center}.structure-tabs{flex-direction:column}.structure-grid{grid-template-columns:1fr}.classes-grid{grid-template-columns:1fr;margin-left:0}.department-section{margin-left:1rem}.track-header,.department-header,.class-header{flex-direction:column;align-items:stretch;gap:.75rem}.track-actions,.department-actions,.class-actions{justify-content:center}}.structure-card.clickable{cursor:pointer}.structure-card.clickable:hover{border-color:#007bff}.filter-banner{background-color:#e3f2fd;border:1px solid #90caf9;border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;color:#0d47a1}.filter-banner p{margin:0;font-weight:500}.clear-filter-btn{background:#fff;border:1px solid #90caf9;color:#1976d2;padding:.4rem .8rem;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.clear-filter-btn:hover{background:#bbdefb}.class-card-enhanced{border-top:4px solid #007bff;background:linear-gradient(to bottom,#fff,#f8f9fa)}.class-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.class-title-row h4{margin:0;font-size:1.1rem;font-weight:700;color:#2d3748}.class-badges{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.class-code-badge{background:#e2e8f0;color:#4a5568;padding:.15rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.5px}.grade-level-badge{background:#e9d8fd;color:#6b46c1;padding:.15rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.enrollment-section{margin-top:.5rem}.enrollment-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.85rem}.enrollment-label{color:#718096;font-weight:500}.enrollment-count{color:#4a5568}.progress-bar-container{width:100%;height:8px;background-color:#e2e8f0;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .3s ease,background-color .3s ease}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.view-header h2{margin:0 0 .5rem;color:#212529;font-size:1.75rem}.view-header p{margin:0;color:#6c757d;font-size:1rem}.header-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.filter-section{display:flex;align-items:center;gap:.5rem}.filter-section label{font-size:.9rem;font-weight:500;color:#495057;white-space:nowrap}.class-filter-select{padding:.5rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;background:#fff;min-width:180px}.class-filter-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.filter-status{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#e3f2fd;border-radius:8px;margin-bottom:1.5rem;border:1px solid #bbdefb}.filter-indicator{color:#1565c0;font-size:.9rem}.clear-filter-btn{background:#1976d2;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.8rem;cursor:pointer;transition:background-color .2s}.clear-filter-btn:hover{background:#1565c0}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;color:#495057}.empty-state p{margin:0 0 1.5rem;color:#6c757d}.subjects-section h3{margin:0 0 1rem;color:#212529;font-size:1.25rem;font-weight:600}.subject-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid #e9ecef}.subject-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #00000026}.subject-card.core{border-left:4px solid #007bff}.subject-card.elective{border-left:4px solid #28a745}.subject-header{padding:1.5rem 1.5rem 1rem;display:flex;justify-content:space-between;align-items:flex-start}.subject-info h4{margin:0 0 .5rem;color:#212529;font-size:1.25rem;font-weight:600}.subject-code{display:inline-block;background:#f8f9fa;color:#495057;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500;margin-right:.5rem}.subject-category{display:inline-block;background:#e3f2fd;color:#1565c0;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.manage-classes-btn,.edit-btn,.delete-btn{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s}.manage-classes-btn:hover{background:#e3f2fd}.edit-btn:hover{background:#f8f9fa}.delete-btn:hover{background:#f8d7da}.subject-details{padding:0 1.5rem 1.5rem}.subject-description{margin:0 0 1rem;color:#6c757d;font-size:.9rem;line-height:1.4}.assigned-classes{margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.assigned-classes h5{margin:0 0 .75rem;color:#495057;font-size:.9rem;font-weight:600}.class-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;width:fit-content;flex-shrink:0}.class-chip.has-teacher{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.class-chip.no-teacher{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.teacher-indicator{font-size:.7rem}.more-classes{display:inline-block;padding:.25rem .5rem;background:#e9ecef;color:#6c757d;border-radius:12px;font-size:.75rem;font-style:italic;width:fit-content;flex-shrink:0}.subject-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.credit-hours{color:#6c757d;font-size:.85rem}.subject-type{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.subject-type.core{background:#cce5ff;color:#0056b3}.subject-type.elective{background:#d1ecf1;color:#0c5460}.subjects-summary{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat{text-align:center;padding:1rem;background:#f8f9fa;border-radius:8px}.stat-number{display:block;font-size:2rem;font-weight:700;color:#007bff;margin-bottom:.25rem}.stat-label{font-size:.9rem;color:#6c757d;font-weight:500}.primary-btn{background:#007bff;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.primary-btn:hover:not(:disabled){background:#0056b3}.primary-btn:disabled{background:#6c757d;cursor:not-allowed}.secondary-btn{background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.secondary-btn:hover{background:#545b62}.modal{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#495057}.form-field label{margin-bottom:.5rem;font-weight:500;color:#495057}.form-field input,.form-field select,.form-field textarea{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.checkbox-field{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-field input[type=checkbox]{margin:0}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #dee2e6}.modal-description{margin:0 0 1.5rem;color:#6c757d;font-size:.9rem;line-height:1.4}.no-classes-message{text-align:center;padding:2rem;background:#f8f9fa;border-radius:8px;border:2px dashed #dee2e6}.no-classes-message p{margin:0;color:#6c757d;font-style:italic}.classes-assignment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem;max-height:400px;overflow-y:auto;padding:.5rem;border:1px solid #e9ecef;border-radius:8px;background:#f8f9fa}.class-assignment-item{background:#fff;border-radius:8px;border:1px solid #e9ecef;transition:all .2s}.class-assignment-item:hover{border-color:#007bff;box-shadow:0 2px 4px #007bff1a}.class-checkbox-label{display:flex;align-items:center;gap:.75rem;padding:1rem;cursor:pointer;width:100%}.class-checkbox-label input[type=checkbox]{margin:0;transform:scale(1.2)}.class-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.class-name{font-weight:600;color:#212529;font-size:.9rem}.class-grade{font-size:.8rem;color:#6c757d}.class-department{font-size:.75rem;color:#007bff;background:#e3f2fd;padding:.2rem .4rem;border-radius:12px;width:fit-content}.assignment-summary{text-align:center;padding:1rem;background:#e3f2fd;border-radius:8px;margin-bottom:1rem}.assignment-summary p{margin:0;color:#1565c0;font-size:.9rem}@media (max-width: 768px){.view-container{padding:1rem}.view-header{flex-direction:column;align-items:stretch}.subjects-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.classes-list{gap:.25rem}.class-chip{font-size:.7rem;padding:.2rem .4rem}.header-actions{flex-direction:column;align-items:stretch;gap:1rem}.filter-section{flex-direction:column;align-items:stretch;gap:.5rem}.class-filter-select{min-width:auto;width:100%}.filter-status{flex-direction:column;gap:.75rem;text-align:center}}.calendar-view{padding:1.5rem;width:100%}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #f1f3f4}.header-content p{margin:0;color:#666}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1em;font-weight:500;transition:all .2s}.btn-sm{padding:.5rem 1rem;font-size:.9em}.alert{padding:1rem;border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.alert button{background:none;border:none;font-size:1.2em;cursor:pointer;color:inherit}.current-term-card{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;padding:1.5rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 4px 6px #007bff33}.current-term-card h3{margin:0 0 1rem;font-size:1.3em}.current-term-info .term-details h4{margin:0 0 .5rem;font-size:1.2em}.current-term-info .term-details p{margin:.25rem 0;opacity:.9}.calendar-filters{margin-bottom:2rem}.year-filter{padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;background:#fff;font-size:1em;min-width:200px}.calendar-content{display:flex;flex-direction:column;gap:2rem}.academic-year-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.year-title{margin:0 0 1.5rem;color:#333;font-size:1.4em;padding-bottom:.5rem;border-bottom:2px solid #f1f3f4}.terms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.term-card{border:2px solid #e1e5e9;border-radius:8px;padding:1.5rem;background:#fff;transition:all .2s}.term-card:hover{box-shadow:0 4px 8px #0000001a}.term-card.current{border-color:#007bff;background:#f8f9ff}.term-card.upcoming{border-color:#28a745;background:#f8fff9}.term-card.completed{border-color:#6c757d;background:#f8f9fa}.term-card.active{border-color:#ffc107;background:#fffdf5}.term-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.term-header h4{margin:0;color:#333;font-size:1.2em}.term-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.term-badge.current{background:#007bff;color:#fff}.term-badge.upcoming{background:#28a745;color:#fff}.term-badge.completed{background:#6c757d;color:#fff}.term-badge.active{background:#ffc107;color:#212529}.term-dates{margin-bottom:1rem}.date-row{display:flex;justify-content:space-between;margin-bottom:.5rem}.date-label{font-weight:600;color:#666}.date-value{color:#333}.term-notes{margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:4px;border-left:4px solid #007bff}.term-notes p{margin:0;color:#666;font-style:italic}.term-actions{display:flex;gap:.75rem}.no-data{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.no-data h3{color:#333;margin-bottom:1rem}.no-data p{color:#666;margin-bottom:2rem}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e1e5e9}.modal-close{background:none;border:none;font-size:1.5em;cursor:pointer;color:#666;padding:.25rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.form-group label{font-weight:600;color:#333;font-size:.9em}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;font-size:1em;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff}.checkbox-group{flex-direction:row;align-items:center;gap:.75rem}.checkbox-group input[type=checkbox]{width:auto;margin:0}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e1e5e9;background:#f8f9fa}.session-selection{margin-bottom:2rem}.session-selection h3{margin-bottom:1rem;color:#333}.sessions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:2rem}.session-card{border:2px solid #e1e5e9;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s ease;background:#fff}.session-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.session-card.selected{border-color:#007bff;background-color:#f8f9ff}.session-card.active{border-left:4px solid #28a745}.session-card.completed{border-left:4px solid #6c757d}.session-card.planned{border-left:4px solid #ffc107}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.session-header h4{margin:0;color:#333;font-size:1.1em}.current-badge{background:#007bff;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.7em;font-weight:600}.session-year{font-weight:600;color:#666;margin:.25rem 0}.session-dates{color:#666;font-size:.9em;margin:.25rem 0}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.7em;font-weight:600;text-transform:uppercase}.status-badge.completed{background:#f8f9fa;color:#6c757d}.status-badge.planned{background:#fff3cd;color:#856404}.terms-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.terms-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f1f3f4}.terms-header h3{margin:0 0 .5rem;color:#333}.terms-header p{margin:0;color:#666}.no-selection{text-align:center;padding:3rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.no-selection h3{color:#333;margin-bottom:1rem}.no-selection p{color:#666}.date-value.pending{color:#ffc107;font-style:italic}@media (max-width: 768px){.calendar-view{padding:1rem}.calendar-header{flex-direction:column;gap:1rem;text-align:center}.header-actions{justify-content:center}.sessions-grid,.terms-grid,.form-grid{grid-template-columns:1fr}.modal-content{width:95%;margin:1rem}.term-actions{flex-direction:column}.date-row{flex-direction:column;gap:.25rem}}.result-upload-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:1000px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e1e5e9;background:#f8f9fa;border-radius:8px 8px 0 0}.modal-header h2{margin:0;color:#333;font-size:1.5rem}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.close-button:hover{background:#e9ecef}.progress-bar{display:flex;justify-content:center;align-items:center;padding:1.5rem 2rem;background:#f8f9fa;border-bottom:1px solid #e1e5e9}.progress-step{width:40px;height:40px;border-radius:50%;background:#e9ecef;color:#666;display:flex;align-items:center;justify-content:center;font-weight:700;margin:0 1rem;position:relative}.progress-step.active{background:#007bff;color:#fff}.progress-step:not(:last-child):after{content:"";position:absolute;top:50%;left:100%;width:2rem;height:2px;background:#e9ecef;transform:translateY(-50%)}.progress-step.active:not(:last-child):after{background:#007bff}.modal-body{padding:2rem}.step-content h3{margin:0 0 1.5rem;color:#333;font-size:1.25rem}.form-group{margin-bottom:1.5rem}.form-select,.form-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.form-select:focus,.form-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.step-actions{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e1e5e9}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s;font-weight:500}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-primary:disabled{background:#6c757d;cursor:not-allowed}.existing-exams{margin-bottom:2rem}.existing-exams h4{margin:0 0 1rem;color:#333}.exam-list{display:flex;flex-direction:column;gap:.75rem}.exam-item{padding:1rem;border:2px solid #e1e5e9;border-radius:6px;cursor:pointer;transition:all .2s}.exam-item:hover{border-color:#007bff;background:#f8f9fa}.exam-item.selected{border-color:#007bff;background:#e3f2fd}.exam-name{font-weight:600;color:#333;margin-bottom:.25rem}.exam-details{font-size:.9rem;color:#666}.create-exam-section{border-top:1px solid #e1e5e9;padding-top:1.5rem}.create-exam-form{margin-top:1rem;padding:1.5rem;background:#f8f9fa;border-radius:6px;border:1px solid #e1e5e9}.exam-info{background:#e3f2fd;padding:1rem;border-radius:6px;margin-bottom:1.5rem;border-left:4px solid #007bff}.exam-info h4{margin:0 0 .5rem;color:#333}.exam-info p{margin:0;color:#666}.results-table{overflow-x:auto;margin:1.5rem 0}.results-table table{width:100%;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.results-table th,.results-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e1e5e9}.results-table th{background:#f8f9fa;font-weight:600;color:#333}.results-table tr:hover{background:#f8f9fa}.marks-input,.remarks-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.marks-input{max-width:80px;text-align:center}.remarks-input{min-width:150px}.success-step{text-align:center;padding:2rem}.success-icon{font-size:4rem;margin-bottom:1rem}.success-step h3{color:#28a745;margin-bottom:1rem}.success-step p{color:#666;font-size:1.1rem;margin-bottom:2rem}.alert{padding:1rem;border-radius:4px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:inherit;padding:0;margin-left:1rem}@media (max-width: 768px){.modal-content{width:95%;margin:1rem}.form-row{grid-template-columns:1fr}.progress-bar{padding:1rem}.progress-step{width:30px;height:30px;margin:0 .5rem;font-size:.9rem}.progress-step:not(:last-child):after{width:1rem}.results-table{font-size:.9rem}.step-actions{flex-direction:column;gap:1rem}}.student-management{display:flex;flex-direction:column;width:100%;flex:1;overflow-x:hidden;max-width:100%;box-sizing:border-box;padding:0 .5rem}.student-management *,.student-management *:before,.student-management *:after{box-sizing:border-box}.management-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e9ecef}.header-content h2{margin:0 0 .5rem;color:#333;font-size:1.75rem}.error-alert,.success-alert{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:1rem;border-radius:4px;font-size:.9rem}.error-alert{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.success-alert{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-alert button,.success-alert button{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:0;margin-left:1rem}.management-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;width:100%;max-width:100%}.controls-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;width:100%;max-width:100%}.search-input,.filter-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.search-input{min-width:150px;max-width:250px;flex:1 1 150px}.filter-select{min-width:120px;max-width:160px;flex:0 1 140px}.results-info{color:#6c757d;font-size:.9rem;padding:.5rem 0;border-top:1px solid #e9ecef;text-align:center}.clear-filters-btn{background:#f8f9fa;color:#6c757d;border:1px solid #dee2e6;padding:.375rem .75rem;font-size:.8rem;white-space:nowrap;flex:0 0 auto}.clear-filters-btn:hover{background:#e9ecef;color:#495057}.students-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1rem;margin-top:1rem;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box}.student-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;width:100%;max-width:500px;min-width:350px;min-height:200px;max-height:300px;overflow:hidden;word-wrap:break-word;box-sizing:border-box}.student-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.student-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #f1f3f4}.student-info{flex:1}.student-name{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#333;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.student-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admission-number{background:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.top-badges{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.5rem}.gender-badge{background:#f3e5f5;color:#7b1fa2;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.age-badge{background:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.student-badges{display:flex;flex-direction:column;gap:.5rem;width:100%}.badges-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.classes-row,.admission-row{display:flex;gap:.5rem;flex-wrap:wrap}.admission-badge{background:#fff3e0;color:#f57c00;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.class-chips{display:flex;gap:.5rem;flex-wrap:wrap}.class-chip{background:#e8f5e8;color:#2e7d32;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.class-chip.unassigned{background:#fff3e0;color:#f57c00}.no-class-chip{background:#f5f5f5;color:#757575;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-style:italic}.card-actions{display:flex;gap:.5rem}.student-card-body{display:flex;flex-direction:column;gap:.75rem}.contact-info{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.contact-label{font-weight:500;color:#666}.contact-value{color:#333}.class-assignments-card{background:#f8f9fa;padding:.75rem;border-radius:6px;border:1px solid #e9ecef}.assignments-header{margin-bottom:.5rem}.assignments-label{font-weight:500;color:#333;font-size:.9rem}.assignments-list{display:flex;flex-wrap:wrap;gap:.5rem}.assignment-badge{display:inline-flex;align-items:center}.class-name.assigned{background:#d4edda;color:#155724;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.class-name.unassigned{background:#f8d7da;color:#721c24;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-style:italic}.no-assignments{color:#6c757d;font-style:italic;font-size:.85rem}.admission-info{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#666;padding-top:.5rem;border-top:1px solid #f1f3f4}.admission-label{font-weight:500}.admission-date{color:#333}.no-data-card{grid-column:1 / -1;text-align:center;padding:3rem 2rem;background:#fff;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d}.no-data-icon{font-size:3rem;margin-bottom:1rem}.no-data-card h3{margin:0 0 .5rem;color:#495057}.no-data-card p{margin:0 0 1.5rem;font-size:.95rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-primary:hover{background-color:#0056b3}.btn-secondary:hover{background-color:#545b62}.btn-danger:hover{background-color:#c82333}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin:2rem 0 1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;overflow-x:auto;max-width:100%}.page-numbers{display:flex;gap:.25rem;overflow-x:auto;max-width:100%;padding:.25rem 0;scrollbar-width:thin;scrollbar-color:#6c757d #f8f9fa}.page-numbers::-webkit-scrollbar{height:6px}.page-numbers::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.page-numbers::-webkit-scrollbar-thumb{background:#6c757d;border-radius:3px}.page-numbers::-webkit-scrollbar-thumb:hover{background:#495057}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;position:relative}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;color:#333}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;color:#6c757d}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding-top:1rem;border-top:1px solid #e9ecef}.form-group label{font-weight:500;margin-bottom:.25rem;color:#333}.form-group input,.form-group select,.form-group textarea{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.class-assignments-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e9ecef}.class-assignments-section h4{margin:0 0 .5rem;color:#333;font-size:1.1rem}.section-description{margin:0 0 1rem;color:#6c757d;font-size:.9rem}.track-assignment{display:flex;flex-direction:column;margin-bottom:1rem}.track-assignment label{font-weight:500;margin-bottom:.25rem;color:#333}.track-class-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.track-class-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.loading-spinner{text-align:center;padding:2rem;color:#6c757d}@media (max-width: 1200px) and (min-width: 769px){.students-list{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1rem}.student-card{max-width:none;min-width:300px}}@media (max-width: 768px){.student-management{padding:0}.management-header{flex-direction:column;gap:1rem;align-items:stretch}.management-controls{flex-direction:column;align-items:stretch}.controls-left{flex-direction:column}.students-list{grid-template-columns:1fr;gap:1rem}.student-card{min-width:280px;max-width:none;min-height:auto;max-height:none}.student-card-header{flex-direction:column;gap:.75rem;align-items:stretch}.card-actions{justify-content:flex-end}.pagination{flex-direction:column;gap:.75rem;padding:.75rem}.page-numbers{justify-content:center;flex-wrap:nowrap;min-width:0}.form-grid{grid-template-columns:1fr}.modal-content{width:95%;margin:1rem}}@media (max-width: 480px){.student-management{padding:.5rem}.student-card{padding:1rem}.assignments-list{flex-direction:column;gap:.25rem}}.staff-management,.teacher-management{padding:1.5rem;max-width:1200px;margin:0 auto}.management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.header-content h2{margin:0 0 .5rem;color:#212529;font-size:1.75rem}.header-content p{margin:0;color:#6c757d;font-size:1rem}.management-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.results-info{color:#6c757d;font-size:.9rem;font-weight:500}.page-indicator{color:#007bff;font-weight:600}.staff-grid,.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.staff-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid #e9ecef}.staff-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #00000026}.staff-card-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;align-items:flex-start}.staff-info h3.staff-name{margin:0 0 .5rem;color:#212529;font-size:1.25rem;font-weight:600}.staff-id{margin:0;color:#6c757d;font-size:.9rem;font-family:monospace}.staff-role{margin:0;color:#6c757d;font-size:.9rem;font-weight:500}.staff-status{flex-shrink:0}.staff-card-body{padding:1rem 1.5rem}.staff-contact{margin-bottom:1rem}.contact-item{margin-bottom:.5rem}.contact-value{color:#495057;font-size:.9rem}.assignments-summary{display:flex;flex-direction:column;gap:.5rem}.subject-assignments-list{display:flex;gap:.25rem;flex-wrap:wrap}.assignment-tag{display:inline-block;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;line-height:1.2}.class-tag{background:#e3f2fd;color:#1565c0;width:fit-content;flex-shrink:0}.subject-tag{background:#f3e5f5;color:#7b1fa2;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:fit-content;flex-shrink:0}.subject-tag .class-info{color:#9c27b0;font-weight:400;font-size:.7rem}.more-subjects{background:#e8f5e8;color:#2e7d32;font-style:italic}.subjects-tag{background:#f3e5f5;color:#7b1fa2}.staff-details{margin-bottom:1.5rem}.teacher-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s;border:1px solid #e9ecef}.teacher-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #00000026}.teacher-card-header{padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;align-items:flex-start}.teacher-info h3.teacher-name{margin:0 0 .5rem;color:#212529;font-size:1.25rem;font-weight:600}.teacher-id{margin:0;color:#6c757d;font-size:.9rem;font-family:monospace}.teacher-status{flex-shrink:0}.teacher-card-body{padding:1rem 1.5rem}.teacher-details{margin-bottom:1.5rem}.detail-item{display:flex;align-items:center;margin-bottom:.75rem;gap:.5rem}.detail-label{font-size:.9rem;color:#495057;min-width:100px;font-weight:500}.detail-value{color:#212529;font-size:.9rem}.assignments-section{border-top:1px solid #f1f3f4;padding-top:1rem}.assignment-group{margin-bottom:1rem}.assignment-title{margin:0 0 .75rem;color:#495057;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.class-teacher-badge,.subject-teacher-badge{background:#007bff;color:#fff;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500}.subject-teacher-badge{background:#28a745}.assignment-item{background:#f8f9fa;padding:.5rem .75rem;border-radius:6px;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.assignment-name{font-weight:500;color:#212529}.assignment-details{font-size:.85rem;color:#6c757d}.subjects-list{max-height:120px;overflow-y:auto}.no-assignment{color:#6c757d;font-style:italic;font-size:.9rem;padding:.5rem 0}.staff-card-footer,.teacher-card-footer{padding:1rem 1.5rem;background:#f8f9fa;border-top:1px solid #e9ecef}.card-actions{display:flex;gap:.5rem;justify-content:flex-end}.no-data-card{grid-column:1 / -1;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:3rem;text-align:center;border:2px dashed #dee2e6}.no-data-content h3{margin:0 0 1rem;color:#495057;font-size:1.5rem}.no-data-content p{margin:0;color:#6c757d;font-size:1rem}.assignment-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e9ecef}.assignment-section h4{margin:0 0 1rem;color:#212529;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.assignment-section h5{margin:1rem 0 .5rem;color:#495057;font-size:1rem;font-weight:500}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:8px}.loading-overlay .loading-spinner{background:#fff;padding:1rem 2rem;border-radius:8px;box-shadow:0 4px 12px #00000026;font-weight:500;color:#495057}.current-assignment,.current-assignments{margin-bottom:1rem}.assignment-display{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:6px;margin-bottom:.5rem;border:1px solid #e9ecef}.assignment-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.assignment-label{font-size:.8rem;color:#6c757d;font-weight:500}.assignment-value{font-size:.9rem;color:#212529;display:flex;align-items:center;gap:.5rem}.class-info{color:#6c757d;font-size:.85rem}.no-assignment{padding:1rem;text-align:center;color:#6c757d;font-style:italic;background:#f8f9fa;border-radius:6px;border:2px dashed #dee2e6}.assignments-list{max-height:200px;overflow-y:auto}.assignment-form{background:#f8f9fa;padding:1rem;border-radius:6px}.form-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.assignment-select{flex:1;min-width:150px;padding:.5rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem}.name-cell{display:flex;flex-direction:column}.primary-name{font-weight:500;color:#212529;margin-bottom:.25rem}.secondary-info{font-size:.85rem;color:#6c757d}.action-buttons{display:flex;gap:.25rem}.pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;border:1px solid #e9ecef}.pagination-info{color:#6c757d;font-size:.9rem;font-weight:500}.page-numbers{display:flex;gap:.25rem;align-items:center}.pagination-ellipsis{padding:.5rem;color:#6c757d;font-size:.9rem}.page-size-info{color:#6c757d;font-size:.85rem;font-style:italic}.phone-input-container{display:flex;gap:.5rem;align-items:center}.country-code-select{padding:.75rem .25rem;border:1px solid #ced4da;border-radius:4px;font-size:.85rem;background:#fff;width:110px!important;flex:0 0 110px!important;min-width:110px}.phone-number-input{flex:1;width:100%;padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;min-width:0}.phone-number-input:focus,.country-code-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.phone-preview{display:block;margin-top:.25rem;color:#6c757d;font-size:.8rem;font-style:italic}.btn-sm{padding:.25rem .5rem;font-size:.8rem}@media (max-width: 768px){.staff-management,.teacher-management{padding:1rem}.management-header,.management-controls{flex-direction:column;align-items:stretch}.controls-left{flex-direction:column}.search-input,.filter-select{min-width:auto;width:100%}.staff-grid,.teachers-grid{grid-template-columns:1fr;gap:1rem}.staff-card-header,.teacher-card-header{flex-direction:column;align-items:stretch;gap:1rem}.staff-status,.teacher-status{align-self:flex-start}.card-actions{flex-direction:column}.card-actions .btn{width:100%;justify-content:center}.assignments-summary{margin-top:.5rem}.form-row{flex-direction:column}.assignment-select{width:100%}.assignment-display{flex-direction:column;align-items:stretch;gap:.5rem}.modal-content{width:95%;margin:1rem}.form-grid{grid-template-columns:1fr}.pagination{flex-direction:column;gap:1rem;text-align:center}.pagination-controls{justify-content:center;flex-wrap:wrap}.pagination-info,.page-size-info{order:2}.page-numbers{flex-wrap:wrap;justify-content:center}}.teachers-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.teachers-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.teachers-table{width:100%;border-collapse:collapse}.teachers-table th{background:#f8f9fa;padding:1rem;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6}.teachers-table td{padding:1rem;border-bottom:1px solid #dee2e6;vertical-align:top}.teachers-table tbody tr:hover{background-color:#f8f9fa}.teacher-name{font-weight:500;color:#212529;margin-bottom:.25rem}.teacher-phone{font-size:.85rem;color:#6c757d;display:flex;align-items:center;gap:.25rem}.designation-badge{display:inline-block;padding:.25rem .5rem;background:#e9ecef;color:#495057;border-radius:12px;font-size:.8rem;font-weight:500}@media (max-width: 768px){.teachers-controls{flex-direction:column;align-items:stretch}.controls-left{flex-direction:column}.search-input,.filter-select{min-width:auto;width:100%}.teachers-table-container{overflow-x:auto}.teachers-table{min-width:800px}.modal-content{width:95%;margin:1rem}.form-grid{grid-template-columns:1fr}}.students-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.controls-left{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.search-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;min-width:250px;font-size:.9rem}.filter-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;background:#fff;min-width:150px;font-size:.9rem}.students-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.students-table{width:100%;border-collapse:collapse}.students-table th{background:#f8f9fa;padding:1rem;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6}.students-table td{padding:1rem;border-bottom:1px solid #dee2e6;vertical-align:top}.students-table tbody tr:hover{background-color:#f8f9fa}.student-name{font-weight:500;color:#212529;margin-bottom:.25rem}.student-phone{font-size:.85rem;color:#6c757d;display:flex;align-items:center;gap:.25rem}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:capitalize}.status-badge.active{background:#d4edda;color:#155724}.status-badge.inactive{background:#f8d7da;color:#721c24}.no-data{text-align:center;color:#6c757d;font-style:italic;padding:2rem}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #dee2e6}.modal-header h3{margin:0;color:#212529}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#495057}.modal-body{padding:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1.5rem}.form-group label{margin-bottom:.5rem;font-weight:500;color:#495057}.form-group input,.form-group select{padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:.9rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group input:disabled{background-color:#e9ecef;opacity:1}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid #dee2e6}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-sm{padding:.25rem .5rem;font-size:.8rem;margin-right:.25rem}.error-alert,.success-alert{display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-bottom:1rem;border-radius:4px}.error-alert{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.success-alert{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-alert button,.success-alert button{background:none;border:none;font-size:1.2rem;cursor:pointer;color:inherit;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.view-container{padding:1.5rem;width:100%}.loading-spinner{display:flex;justify-content:center;align-items:center;padding:3rem;font-size:1.1rem;color:#6c757d}@media (max-width: 768px){.students-controls{flex-direction:column;align-items:stretch}.controls-left{flex-direction:column}.search-input,.filter-select{min-width:auto;width:100%}.students-table-container{overflow-x:auto}.students-table{min-width:800px}.modal-content{width:95%;margin:1rem}.form-grid{grid-template-columns:1fr}}.examinations-view{padding:20px}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e9ecef}.view-header h2{font-size:1.8em;font-weight:700;color:#212529;margin:0 0 4px}.view-header p{color:#6c757d;margin:0;font-size:.95em}.exams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.exam-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #00000014;border:1px solid #e9ecef;transition:all .3s ease;position:relative;overflow:hidden}.exam-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);opacity:0;transition:opacity .3s ease}.exam-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.exam-card:hover:before{opacity:1}.exam-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.exam-type{padding:6px 12px;border-radius:6px;font-size:.75em;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.exam-type.ca-1{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0}.exam-type.ca-2{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32}.exam-type.terminal-examination{background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#e65100}.exam-card h3{font-size:1.1em;font-weight:700;color:#212529;margin:10px 0 12px;line-height:1.4}.exam-details p{margin:5px 0;color:#666;font-size:.9em}.exam-actions{margin-top:15px;padding-top:15px;border-top:1px solid #eee}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:30px;border-radius:8px;width:500px;max-width:90%}.upload-modal{width:800px}.upload-tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:1px solid #eee;padding-bottom:10px}.tab-button{background:none;border:none;padding:10px 20px;cursor:pointer;font-weight:500;color:#666;border-bottom:2px solid transparent}.tab-button.active{color:#007bff;border-bottom-color:#007bff}.paste-area{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:monospace;font-size:.9em;margin-bottom:15px;resize:vertical}.help-text{font-size:.9em;color:#666;margin-bottom:15px;background:#f8f9fa;padding:10px;border-radius:4px;border-left:3px solid #17a2b8}.full-width{width:100%}.text-button{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline}.preview-section{max-height:500px;overflow-y:auto}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.questions-preview-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.preview-item{background:#f8f9fa;padding:10px;border-radius:4px;border:1px solid #eee}.preview-question{margin-bottom:5px}.preview-options{display:flex;gap:15px;font-size:.9em;color:#555;flex-wrap:wrap}.view-questions-modal{width:800px;max-height:90vh;display:flex;flex-direction:column}.close-button{background:none;border:none;font-size:1.5em;cursor:pointer;color:#666}.questions-list{overflow-y:auto;flex:1;padding-right:10px}.question-item{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}.question-header{display:flex;justify-content:space-between;margin-bottom:10px;color:#666;font-size:.9em}.question-number{font-weight:700;color:#333}.question-text{font-size:1.1em;margin-bottom:15px;line-height:1.5}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.option{padding:10px;background:#f8f9fa;border-radius:4px;border:1px solid #eee}.option.correct{background:#d4edda;border-color:#c3e6cb;color:#155724}.opt-label{font-weight:700;margin-right:5px}.no-data{text-align:center;padding:40px;color:#666;font-style:italic}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.form-group input,.form-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:3px;margin-top:20px}.primary-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.primary-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.secondary-button{background:#fff;color:#007bff;border:1px solid #007bff;padding:8px 16px;border-radius:4px;cursor:pointer;width:100%}.view-questions-button{color:#17a2b8;border-color:#17a2b8}.view-questions-button:hover{background:#e3fcf9}.filters-bar{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;padding:20px;background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:12px;box-shadow:0 4px 12px #00000014;border:1px solid #e9ecef}.filter-section{display:flex;flex-direction:column;gap:8px}.filter-section-label{font-weight:600;color:#495057;font-size:.85em;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.chips-container{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{padding:8px 16px;border:2px solid transparent;border-radius:20px;font-size:.9em;font-weight:600;cursor:pointer;transition:all .2s ease;background:#fff;box-shadow:0 2px 4px #0000001a}.filter-chip:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.session-chip{background:linear-gradient(135deg,#e9d5ff,#ddd6fe);color:#6b21a8;border-color:#c084fc}.session-chip.selected{background:linear-gradient(135deg,#a855f7,#9333ea);color:#fff;border-color:#7e22ce;box-shadow:0 4px 12px #a855f766}.term-chip{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border-color:#60a5fa}.term-chip.selected{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:#1d4ed8;box-shadow:0 4px 12px #3b82f666}.track-chip{background:linear-gradient(135deg,#ccfbf1,#99f6e4);color:#115e59;border-color:#5eead4}.track-chip.selected{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#fff;border-color:#0f766e;box-shadow:0 4px 12px #14b8a666}.department-chip{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border-color:#6ee7b7}.department-chip.selected{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#047857;box-shadow:0 4px 12px #10b98166}.class-chip{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#9a3412;border-color:#fb923c}.class-chip.selected{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;border-color:#c2410c;box-shadow:0 4px 12px #f9731666}.subject-chip{background:linear-gradient(135deg,#fce7f3,#fbcfe8);color:#9f1239;border-color:#f9a8d4}.subject-chip.selected{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;border-color:#be185d;box-shadow:0 4px 12px #ec489966}.results-summary{padding:6px 14px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:8px;margin-bottom:20px;border-left:4px solid #2196f3}.results-summary p{margin:0;color:#1565c0;font-size:.85em;font-weight:600}.exam-meta{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #eee}.exam-meta p{margin:4px 0;font-size:.85em;color:#666}.no-exams{text-align:center;padding:60px 20px;color:#666;font-size:1.1em}.exam-status{padding:4px 8px;border-radius:4px;font-size:.8em;font-weight:700;background:#e8f5e9;color:#388e3c}.uploading-status{padding:20px;text-align:center;color:#666;font-style:italic;background:#f8f9fa;border-radius:4px;border:1px dashed #ced4da}.action-buttons{display:flex;gap:10px;flex-wrap:wrap}.action-buttons button{flex:1;white-space:nowrap}.edit-button{color:#ffc107;border-color:#ffc107}.edit-button:hover{background:#fff3cd}.delete-button{color:#dc3545;border-color:#dc3545}.delete-button:hover{background:#f8d7da}.questions-uploaded-label{color:#28a745;font-weight:600;display:flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:#d4edda;border-radius:4px;font-size:.85rem}.submissions-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.9em}.submissions-table thead{background:#f8f9fa;border-bottom:2px solid #dee2e6}.submissions-table th{padding:12px;text-align:left;font-weight:600;color:#495057;white-space:nowrap}.submissions-table td{padding:12px;border-bottom:1px solid #dee2e6}.submissions-table tbody tr:hover{background:#f8f9fa}.score-cell{font-weight:600;color:#28a745}.submissions-summary{padding:15px;background:#f8f9fa;border-radius:4px;margin-top:10px;text-align:right;font-size:.95em}.status-badge.submitted{background:#d4edda;color:#155724}.status-badge.in_progress{background:#fff3cd;color:#856404}.status-badge.graded{background:#d1ecf1;color:#0c5460}.dashboard-container{min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:100}.school-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.25rem 2rem;box-shadow:0 2px 8px #0000001a;width:100%;position:sticky;top:0;z-index:100}.school-header-content{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 2rem}.school-name-section h1{margin:0;font-size:1.75rem;font-weight:700;color:#fff}.header-user-section{display:flex;align-items:center;gap:1.5rem}.user-greeting{font-size:.95rem;font-weight:500;opacity:.95}.logout-button{background:#ffffff40;border:1px solid rgba(255,255,255,.4);color:#fff;padding:.625rem 1.25rem;border-radius:.5rem;cursor:pointer;font-weight:600;font-size:.875rem;transition:all .2s ease}.logout-button:hover{background:#ffffff59;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.logout-button:active{transform:translateY(0)}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:none;padding:0 2rem}.school-info h1{margin:0;font-size:1.5rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:1rem}.user-info{font-size:.875rem;opacity:.9}.logout-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;transition:all .2s}.logout-btn:hover{background:#ffffff4d}.dashboard-main{display:flex;flex:1;width:100%;gap:2rem;padding:2rem;min-height:calc(100vh - 80px);position:relative}.mobile-menu-btn{display:none;position:absolute;top:1rem;left:1rem;z-index:90;background:#fff;border:1px solid #e5e7eb;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;color:#374151;cursor:pointer;box-shadow:0 1px 2px #0000000d}.dashboard-sidebar{width:320px;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem;height:fit-content;position:sticky;top:2rem;transition:transform .3s ease,opacity .3s ease;z-index:1000}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;opacity:0;transition:opacity .3s ease}.sidebar-close-btn{display:none;position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:.5rem}@media (max-width: 1024px){.mobile-menu-btn{display:none!important}.dashboard-main{flex-direction:row!important;padding:0 0 0 70px!important}.dashboard-sidebar{position:fixed!important;top:0!important;left:0!important;height:100vh!important;width:70px!important;border-radius:0!important;transform:none!important;overflow-y:auto!important;padding:.5rem .25rem!important;z-index:100!important}.dashboard-sidebar.active{transform:none!important}.sidebar-overlay,.sidebar-close-btn,.setup-progress,.setup-nav h3{display:none!important}.setup-item{flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:.75rem .25rem!important;gap:0!important;min-height:65px!important;margin-bottom:.25rem!important}.item-icon{font-size:1.75rem!important;width:auto!important;height:auto!important;background:none!important;margin:0!important}.item-content,.item-status{display:none!important}.setup-item.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;border-radius:.5rem!important}.setup-item.active .item-icon{filter:brightness(0) invert(1)!important}.setup-item.completed .item-icon{background:none!important}.dashboard-content{margin-left:0!important}}@media (max-width: 768px){.dashboard-main{padding:0 0 0 60px!important}.dashboard-sidebar{width:60px!important;padding:.5rem .125rem!important}.setup-item{min-height:55px!important;padding:.5rem .125rem!important}.item-icon{font-size:1.5rem!important}}.setup-progress h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#1f2937}.progress-overview{margin-bottom:2rem}.progress-bar{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease}.progress-text{font-size:.875rem;color:#6b7280;margin:0}.setup-nav h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#1f2937;border-top:1px solid #e5e7eb;padding-top:1.5rem}.setup-item{width:100%;display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;border:none;background:none;text-align:left;border-radius:.5rem;cursor:pointer;transition:all .2s;margin-bottom:.5rem;position:relative}.setup-item:hover:not(.disabled){background-color:#f3f4f6}.setup-item.active{background-color:#eff6ff;border:1px solid #dbeafe}.setup-item.disabled{opacity:.5;cursor:not-allowed}.setup-item.completed{background-color:#f0fdf4;border:1px solid #dcfce7}.item-icon{font-size:1.25rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.375rem;background-color:#f9fafb;flex-shrink:0}.setup-item.completed .item-icon{background-color:#dcfce7}.setup-item.active .item-icon{background-color:#dbeafe}.item-content{flex:1;min-width:0}.item-title{font-weight:500;color:#1f2937;margin-bottom:.25rem;font-size:.875rem}.item-description{font-size:.75rem;color:#6b7280;line-height:1.4}.item-badge{display:inline-block;background-color:#fef3c7;color:#92400e;font-size:.625rem;padding:.125rem .375rem;border-radius:.25rem;margin-top:.25rem;font-weight:500}.item-status{display:flex;align-items:center;font-size:.875rem}.status-completed{color:#059669}.status-locked{color:#6b7280}.status-available{color:#2563eb}.status-current{color:#dc2626}.dashboard-content{flex:1;background:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;width:100%;max-width:none}.view-container{padding:2rem;flex:1;display:flex;flex-direction:column;width:100%}.view-header{margin-bottom:2rem;border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.view-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;color:#1f2937}.view-header p{margin:0;color:#6b7280}.setup-status-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:.75rem;margin-bottom:2rem;text-align:center}.setup-status-card h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600}.setup-complete .success-icon{font-size:3rem;margin-bottom:1rem}.setup-complete h4{margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.setup-incomplete{display:flex;flex-direction:column;align-items:center}.progress-circle{width:80px;height:80px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;border:3px solid rgba(255,255,255,.3)}.progress-text{font-size:1.25rem;font-weight:600}.setup-incomplete h4{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.next-steps{margin-bottom:2rem}.next-steps h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;color:#1f2937}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.step-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;text-align:center;transition:all .2s}.step-card:hover{box-shadow:0 4px 6px #0000001a}.step-card.completed{background-color:#f0fdf4;border-color:#dcfce7}.step-card.current{background-color:#fef3c7;border-color:#fcd34d}.step-card.locked{opacity:.6}.step-icon{font-size:2rem;margin-bottom:1rem}.step-card h4{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:#1f2937}.step-card p{margin:0 0 1rem;color:#6b7280;font-size:.875rem}.step-status span{display:inline-block;padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500}.step-status .completed{background-color:#dcfce7;color:#166534}.step-status .current{background-color:#fcd34d;color:#92400e}.step-status .available{background-color:#dbeafe;color:#1e40af}.step-status .locked{background-color:#f3f4f6;color:#6b7280}.quick-actions h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;color:#1f2937}.action-btn{padding:.75rem 1.5rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;color:#374151;font-weight:500;cursor:pointer;transition:all .2s;text-align:center}.action-btn:hover:not(:disabled){background-color:#f9fafb;border-color:#9ca3af}.action-btn.primary{background-color:#2563eb;border-color:#2563eb;color:#fff}.action-btn.primary:hover:not(:disabled){background-color:#1d4ed8}.action-btn:disabled{opacity:.5;cursor:not-allowed}.coming-soon{text-align:center;padding:3rem 2rem;color:#6b7280}.coming-soon h3{margin:0 0 1rem;font-size:1.5rem;color:#374151}.coming-soon p{margin:0 0 1.5rem;font-size:1rem}.coming-soon ul{text-align:left;max-width:400px;margin:0 auto}.coming-soon li{margin-bottom:.5rem}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background-color:#f8fafc}.loading-spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background-color:#f8fafc;text-align:center;padding:2rem}.dashboard-error h2{margin:0 0 1rem;color:#1f2937}.dashboard-error p{margin:0 0 2rem;color:#6b7280}.dashboard-error button{background-color:#2563eb;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-weight:500}.school-info-content{background:#f9fafb;border-radius:.5rem;padding:1rem}@media (max-width: 768px){.dashboard-main{padding:1rem}.header-content{flex-direction:column;gap:1rem;text-align:center}.school-header{padding:1rem}.school-header-content{flex-direction:column;gap:1rem;text-align:center}.school-name-section h1{font-size:1.5rem}.header-user-section{flex-direction:column;gap:.75rem}.view-container{padding:1rem}.setup-status-card{padding:1.5rem}}.school-form{width:100%}.form-section{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.form-section h3{margin:0 0 1.5rem;font-size:1.125rem;font-weight:600;color:#1f2937;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem}.form-field{display:flex;flex-direction:column}.form-field label{font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-field input,.form-field select,.form-field textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-actions{display:flex;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid #e5e7eb;margin-top:2rem}.save-btn{background-color:#2563eb;color:#fff;border:none;padding:.75rem 2rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.save-btn:hover:not(:disabled){background-color:#1d4ed8}.save-btn:disabled{opacity:.5;cursor:not-allowed}.structure-content{width:100%}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border:2px dashed #d1d5db;border-radius:.75rem}.empty-icon{font-size:4rem;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:#1f2937}.empty-state p{margin:0 0 2rem;color:#6b7280}.primary-btn{background-color:#2563eb;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.primary-btn:hover{background-color:#1d4ed8}.secondary-btn{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s}.secondary-btn:hover{background-color:#e5e7eb}.structure-hierarchy{space-y:1rem}.track-item{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden;margin-bottom:1rem}.track-header{display:flex;align-items:center;padding:1.5rem;background:#f9fafb;border-bottom:1px solid #e5e7eb}.expand-btn{background:none;border:none;font-size:1rem;cursor:pointer;padding:.5rem;margin-right:1rem;color:#6b7280}.track-info{display:flex;align-items:center;flex:1;gap:1rem}.track-icon,.department-icon,.class-icon{font-size:1.5rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:#eff6ff;border-radius:.5rem}.track-info h3{margin:0 0 .25rem;font-size:1.25rem;font-weight:600;color:#1f2937}.track-info p{margin:0;color:#6b7280;font-size:.875rem}.track-actions{display:flex;gap:.5rem}.action-btn{background-color:#2563eb;color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:background-color .2s}.action-btn:hover{background-color:#1d4ed8}.action-btn.small{padding:.375rem .75rem;font-size:.75rem}.track-content{padding:1.5rem}.empty-departments{text-align:center;padding:2rem;color:#6b7280}.empty-departments p{margin:0 0 1rem}.departments-list{space-y:1rem}.department-item{border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden;margin-bottom:1rem}.department-info{display:flex;align-items:center;gap:1rem}.department-info h4{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#1f2937}.department-info p{margin:0;color:#6b7280;font-size:.875rem}.classes-list{padding:1rem}.empty-classes{text-align:center;color:#6b7280;font-size:.875rem}.empty-classes p{margin:0}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.class-item{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;display:flex;align-items:center;gap:.75rem}.class-info h5{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:#1f2937}.class-info p{margin:0;font-size:.75rem;color:#6b7280}.modal{background:#fff;border-radius:.75rem;width:90%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.modal-large{background:#fff;border-radius:.75rem;width:95%;max-width:1200px;max-height:95vh;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:.25rem}.modal-body{padding:1.5rem;max-height:60vh;overflow-y:auto}.modal-large .modal-body{padding:2rem;flex:1;overflow-y:auto;max-height:calc(95vh - 140px)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid #e5e7eb;background:#f9fafb}.modal-large .modal-footer{padding:2rem;gap:1rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-state p{margin-top:1rem;color:#6b7280}gap: 1rem; } .classes-grid{grid-template-columns:1fr}.modal{width:95%;margin:1rem}} .view-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.header-actions{display:flex;gap:.75rem;align-items:center}.empty-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem}.or-divider{position:relative;width:100%;text-align:center;margin:.5rem 0}.or-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:#e5e7eb;z-index:1}.or-divider span{background:#fff;padding:0 1rem;color:#6b7280;font-size:.875rem;position:relative;z-index:2}.quick-setup-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:.5rem;padding:1.5rem;text-align:left;max-width:400px;margin:0 auto}.quick-setup-info h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#0c4a6e}.quick-setup-info ul{margin:0;padding-left:1.5rem;list-style:none}.quick-setup-info li{margin-bottom:.5rem;color:#0369a1;font-size:.875rem;position:relative}.quick-setup-info li:before{content:"✓";position:absolute;left:-1.25rem;color:#059669;font-weight:700}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.primary-btn:disabled:hover{background-color:#2563eb}@media (max-width: 768px){.view-header{flex-direction:column;align-items:stretch;gap:1rem}.header-actions{justify-content:center;flex-wrap:wrap}.empty-actions{gap:.75rem}.quick-setup-info{margin-top:1rem}}.action-btn.quick-setup{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;color:#fff;position:relative;overflow:hidden}.action-btn.quick-setup:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.action-btn.quick-setup:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.action-btn.quick-setup:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.action-btn.quick-setup:hover:before{left:100%}.delete-btn{background-color:#dc2626!important;border-color:#dc2626!important;color:#fff!important;min-width:40px;display:flex;align-items:center;justify-content:center}.delete-btn:hover{background-color:#b91c1c!important;border-color:#b91c1c!important;transform:scale(1.05)}.delete-btn:active{transform:scale(.95)}.danger-btn{background-color:#dc2626;color:#fff;border:1px solid #dc2626;padding:.75rem 1.5rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.danger-btn:hover{background-color:#b91c1c;border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.danger-btn:active{transform:scale(.95)}.track-actions,.department-actions{display:flex;gap:.5rem;align-items:center}.class-actions{display:flex;align-items:center;margin-left:auto}.class-item{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;display:flex;align-items:center;gap:.75rem;position:relative;transition:all .2s}.class-item:hover{box-shadow:0 2px 4px #0000001a;border-color:#d1d5db}.class-item:hover .class-actions{opacity:1}.class-actions{opacity:0;transition:opacity .2s;position:absolute;top:.5rem;right:.5rem}.department-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background:#f8fafc;border-bottom:1px solid #e5e7eb}.track-item:hover .delete-btn,.department-item:hover .delete-btn{opacity:1}.delete-btn{opacity:.7;transition:all .2s}.delete-btn:hover{opacity:1}.delete-btn{position:relative}.delete-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#dc26261a;border-radius:inherit;opacity:0;transition:opacity .2s}.delete-btn:hover:before{opacity:1}@media (max-width: 768px){.track-actions,.department-actions{flex-direction:column;gap:.25rem}.class-actions{position:static;opacity:1;margin-top:.5rem}.class-item{flex-direction:column;align-items:flex-start}.class-actions{align-self:flex-end;margin-left:0}}.delete-confirmation{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;padding:1rem;margin:1rem 0}.delete-confirmation h4{color:#dc2626;margin:0 0 .5rem}.delete-confirmation p{color:#7f1d1d;margin:0;font-size:.875rem}.delete-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.delete-btn.loading{position:relative}.delete-btn.loading:after{content:"";position:absolute;width:12px;height:12px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.debug-btn{background-color:#f59e0b;color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:background-color .2s}.debug-btn:hover{background-color:#d97706}.delete-btn{position:relative;white-space:nowrap}.track-actions .delete-btn{background:linear-gradient(135deg,#dc2626,#b91c1c);border:2px solid #dc2626;font-weight:600;padding:.5rem 1rem;min-width:auto}.track-actions .delete-btn:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);border-color:#b91c1c;box-shadow:0 4px 12px #dc262666;transform:translateY(-1px)}.department-actions .delete-btn{background-color:#dc2626;border-color:#dc2626;font-weight:500}.department-actions .delete-btn:hover{background-color:#b91c1c;border-color:#b91c1c;box-shadow:0 2px 8px #dc26264d}.class-actions .delete-btn{background-color:#dc2626;border-color:#dc2626;opacity:.8}.class-actions .delete-btn:hover{opacity:1;background-color:#b91c1c;border-color:#b91c1c}.delete-btn:after{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#fbbf24;border-radius:50%;opacity:0;transition:opacity .2s}.track-actions .delete-btn:after,.department-actions .delete-btn:after{opacity:1}.delete-btn[title]:hover:before{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000000e6;color:#fff;padding:.5rem;border-radius:.25rem;font-size:.75rem;white-space:nowrap;z-index:1000;margin-bottom:.25rem}.delete-btn[title]:hover:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#000000e6;z-index:1000}.delete-confirmation-dialog{background:#fef2f2;border:2px solid #fecaca;border-radius:.5rem;padding:1rem;margin:1rem 0}.delete-confirmation-dialog h4{color:#dc2626;margin:0 0 .5rem;font-weight:600}.delete-confirmation-dialog .delete-summary{background:#fee2e2;border-radius:.25rem;padding:.75rem;margin:.5rem 0}.delete-confirmation-dialog .delete-summary ul{margin:0;padding-left:1.25rem;color:#7f1d1d}.delete-confirmation-dialog .delete-summary li{margin-bottom:.25rem}.delete-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:.75rem;border-radius:.375rem;margin:.5rem 0}@media (max-width: 768px){.track-actions .delete-btn{font-size:.75rem;padding:.375rem .75rem}.department-actions .delete-btn,.class-actions .delete-btn{font-size:.75rem;padding:.25rem .5rem}.delete-btn[title]:hover:before,.delete-btn[title]:hover:after{display:none}}@keyframes deleteConfirm{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.delete-btn:active{animation:deleteConfirm .2s ease-in-out}.delete-btn.deleting{opacity:.6;cursor:not-allowed;pointer-events:none}.delete-btn.deleting:before{content:"⏳";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem}.school-display{width:100%}.display-section{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.display-section h3{margin:0 0 1.5rem;font-size:1.125rem;font-weight:600;color:#1f2937;border-bottom:1px solid #e5e7eb;padding-bottom:.5rem}.display-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.display-field{display:flex;flex-direction:column}.display-field label{font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.display-value{padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.875rem;color:#1f2937;min-height:2.5rem;display:flex;align-items:center}.display-value .no-value{color:#9ca3af;font-style:italic}.website-link{color:#2563eb;text-decoration:none;word-break:break-all}.view-header .primary-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.view-header .primary-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 8px #2563eb4d}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid #e5e7eb;margin-top:2rem}.form-actions .secondary-btn{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s}.form-actions .secondary-btn:hover{background-color:#e5e7eb;border-color:#9ca3af}@media (max-width: 768px){.display-grid{grid-template-columns:1fr}.view-header{flex-direction:column;align-items:stretch;gap:1rem}.view-header .primary-btn{align-self:flex-end}}.school-display,.school-form{transition:all .3s ease-in-out}.display-value{transition:all .2s ease}.display-value:hover{background-color:#f3f4f6}.view-header.editing{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:.5rem;padding:1rem;margin-bottom:1rem}.view-header.editing h2{color:#92400e}.view-header.editing p{color:#b45309}.school-form input:focus,.school-form select:focus,.school-form textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background-color:#fefefe}.form-actions .secondary-btn{position:relative;overflow:hidden}.form-actions .secondary-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s}.form-actions .secondary-btn:hover:before{left:100%}.save-btn.saving{position:relative;color:transparent}.save-btn.saving:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #ffffff;border-top:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.school-display,.school-form{animation:fadeIn .3s ease-out}@media (max-width: 768px){.view-header.editing{padding:.75rem;margin-bottom:.75rem}.form-actions{flex-direction:column-reverse;gap:.75rem}.form-actions button{width:100%}}.subjects-content{width:100%}.subjects-grid{display:flex!important;flex-direction:column!important;gap:1rem!important;width:100%!important;grid-template-columns:none!important;grid-template-rows:none!important}.subjects-grid>.subject-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .2s;width:100%!important;max-width:100%!important;min-width:100%!important;flex:0 0 100%!important;flex-shrink:0!important;box-sizing:border-box!important;display:block!important}.subject-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .2s;width:100%!important;max-width:100%;flex-shrink:0;box-sizing:border-box}.subject-card:hover{box-shadow:0 4px 6px #0000001a;border-color:#d1d5db}.subject-info h4{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#1f2937}.subject-code{background:#eff6ff;color:#1e40af;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.subject-actions{display:flex;gap:.25rem;opacity:.7;transition:opacity .2s}.subject-card:hover .subject-actions{opacity:1}.subject-description{color:#6b7280;font-size:.875rem;margin:0 0 1rem;line-height:1.4}.subject-meta{display:flex;gap:.75rem;margin-bottom:.75rem}.subject-type{padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500}.subject-type.core{background:#dcfce7;color:#166534}.subject-type.elective{background:#fef3c7;color:#92400e}.credit-hours{background:#f3f4f6;color:#374151;padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500}.subject-department{font-size:.75rem;color:#6b7280;background:#f9fafb;padding:.5rem;border-radius:.25rem;border-left:3px solid #e5e7eb}.modal .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.modal .form-field.full-width{grid-column:1 / -1}.modal .form-field label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.modal .form-field input,.modal .form-field select,.modal .form-field textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.modal .form-field input:focus,.modal .form-field select:focus,.modal .form-field textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.modal .form-field textarea{resize:vertical;min-height:80px}.classes-selection{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;max-height:200px;overflow-y:auto;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;background-color:#f9fafb}.class-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;cursor:pointer;transition:all .2s}.class-checkbox:hover{background-color:#f3f4f6;border-color:#d1d5db}.class-checkbox input[type=checkbox]{width:auto;margin:0}.class-label{display:inline-block;font-size:.875rem}.no-classes-available{grid-column:1 / -1;text-align:center;color:#6b7280;font-style:italic;margin:1rem 0}.subjects-content .empty-state{text-align:center;padding:4rem 2rem;background:#fff;border:2px dashed #d1d5db;border-radius:.75rem}.subjects-content .empty-icon{font-size:4rem;margin-bottom:1rem}.subjects-content .empty-state h3{margin:0 0 .5rem;font-size:1.5rem;color:#1f2937}.subjects-content .empty-state p{margin:0 0 2rem;color:#6b7280}@media (max-width: 768px){.subjects-grid{gap:.75rem}.subject-card{padding:1rem}.subject-header{flex-direction:column;align-items:flex-start;gap:.75rem}.subject-actions{opacity:1;align-self:flex-end}.subject-meta{flex-direction:column;gap:.5rem}.modal .form-grid{grid-template-columns:1fr}}.subject-card{position:relative;overflow:hidden}.subject-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transform:scaleX(0);transition:transform .3s ease}.subject-card:hover:before{transform:scaleX(1)}.subject-classes{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.subject-classes h5{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#374151}.classes-list{display:flex;flex-wrap:wrap;gap:.5rem}.class-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background-color:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:1rem;font-size:.75rem;font-weight:500;transition:all .2s}.class-chip:hover{background-color:#dbeafe;border-color:#93c5fd}.class-chip.unknown{background-color:#fef2f2;color:#dc2626;border-color:#fecaca}.no-classes{color:#6b7280;font-style:italic;font-size:.875rem;margin:0}.subject-category{background-color:#f3f4f6;color:#4b5563;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.alphabet-filter{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.filter-label{font-weight:600;color:#374151;margin-bottom:1rem;font-size:.875rem}.alphabet-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.alphabet-btn{padding:.5rem .75rem;border:1px solid #d1d5db;background-color:#fff;color:#374151;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;min-width:40px;text-align:center}.alphabet-btn:hover{background-color:#f3f4f6;border-color:#9ca3af}.alphabet-btn.active{background-color:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 2px 4px #2563eb33}.alphabet-btn.active:hover{background-color:#1d4ed8;border-color:#1d4ed8}.filter-info{color:#6b7280;font-size:.875rem;font-style:italic}@media (max-width: 768px){.alphabet-filter{padding:1rem}.alphabet-buttons{gap:.375rem}.alphabet-btn{padding:.375rem .5rem;font-size:.75rem;min-width:35px}}.subject-type.core:before{content:"⭐ "}.subject-type.elective:before{content:"📖 "}.subjects-content .empty-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem}.subjects-content .or-divider{position:relative;width:100%;text-align:center;margin:.5rem 0}.subjects-content .or-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:#e5e7eb;z-index:1}.subjects-content .or-divider span{background:#fff;padding:0 1rem;color:#6b7280;font-size:.875rem;position:relative;z-index:2}.default-subjects-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:.75rem;padding:1.5rem;text-align:left;max-width:600px;margin:0 auto}.default-subjects-info h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#0c4a6e;text-align:center}.subjects-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.preview-column{background:#ffffffb3;border-radius:.5rem;padding:1rem}.preview-column h5{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#0369a1}.preview-column ul{margin:0;padding-left:1rem;list-style:none}.preview-column li{margin-bottom:.25rem;color:#0369a1;font-size:.75rem;position:relative}.preview-column li:before{content:"•";position:absolute;left:-.75rem;color:#0ea5e9;font-weight:700}.header-actions .secondary-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;font-weight:600;box-shadow:0 2px 4px #10b98133}.header-actions .secondary-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.header-actions .secondary-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.primary-btn:disabled{position:relative}.primary-btn:disabled:after{content:"";position:absolute;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.subjects-preview{grid-template-columns:1fr;gap:.75rem}.preview-column{padding:.75rem}.default-subjects-info{padding:1rem}.subjects-content .empty-actions{gap:.75rem}}div.subjects-grid{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;grid-template-columns:none!important;grid-template-rows:none!important;width:100%!important}div.subjects-grid>div.subject-card{width:100%!important;max-width:none!important;flex:0 0 auto!important;margin:0!important}.teachers-filters{display:flex;gap:1rem;margin-bottom:2rem;align-items:center}.search-box{flex:1;max-width:400px}.search-input{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.filter-box{min-width:150px}.filter-select{width:100%;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;background-color:#fff;cursor:pointer}.teachers-grid{display:flex;flex-direction:column;gap:1.5rem}.teacher-card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem;transition:all .2s;width:100%}.teacher-card:hover{box-shadow:0 4px 6px #0000001a;border-color:#d1d5db}.teacher-info h4{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#111827}.teacher-meta{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.teacher-id{background-color:#f3f4f6;color:#4b5563;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.teacher-email{color:#6b7280;font-size:.875rem}.verification-status{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.verification-status.verified{background-color:#d1fae5;color:#065f46}.verification-status.unverified{background-color:#fef3c7;color:#92400e}.teacher-actions{display:flex;gap:.5rem;opacity:.7;transition:opacity .2s}.teacher-card:hover .teacher-actions{opacity:1}.teacher-roles{display:flex;gap:.5rem;margin-bottom:1rem}.role-badge{padding:.375rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:500}.role-badge.class-teacher{background-color:#dbeafe;color:#1d4ed8}.role-badge.subject-teacher{background-color:#d1fae5;color:#065f46}.role-badge.no-role{background-color:#f3f4f6;color:#6b7280}.teacher-assignments,.assignment-section{margin-bottom:1rem}.assignment-section h5{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:#374151}.assignment-item{display:inline-block;padding:.25rem .5rem;margin:.25rem .25rem .25rem 0;border-radius:.25rem;font-size:.75rem;font-weight:500}.assignment-item.class-assignment{background-color:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.assignment-item.subject-assignment{background-color:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.assignment-item.more-assignments{background-color:#f9fafb;color:#6b7280;border:1px solid #e5e7eb}.subject-assignments{display:flex;flex-wrap:wrap;gap:.25rem}.teacher-details{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.detail-value{font-size:.875rem;color:#111827;font-weight:500}.modal.large{max-width:800px;width:90vw}.form-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section h4{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#111827}.form-note{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.75rem;font-size:.875rem;color:#6b7280;margin-top:1rem}.assignment-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.assignment-section:last-child{border-bottom:none;margin-bottom:0}.subject-assignment-row{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:1rem;margin-bottom:1rem}.current-assignment{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;padding:.75rem;margin-top:1rem;font-size:.875rem;color:#1d4ed8}.form-actions{display:flex;gap:.5rem;align-items:center}.primary-btn.small,.secondary-btn.small,.danger-btn.small{padding:.5rem 1rem;font-size:.875rem}@media (max-width: 768px){.teachers-filters{flex-direction:column;align-items:stretch}.search-box{max-width:none}.teacher-header{flex-direction:column;gap:1rem}.teacher-actions{opacity:1}.teacher-details{flex-direction:column;gap:.75rem}.form-row{grid-template-columns:1fr}.modal.large{width:95vw;max-width:none}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem}.loading-spinner{width:40px;height:40px;border:4px solid #f3f4f6;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-large .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:none}.modal-large .form-section{background:#f8f9fa;padding:1.5rem;border-radius:8px;border:1px solid #e9ecef;height:fit-content}.modal-large .form-section h4{margin:0 0 1.5rem;color:#495057;font-size:1.125rem;font-weight:600;border-bottom:2px solid #dee2e6;padding-bottom:.5rem}.form-subsection{margin-top:1rem;padding:1rem;background-color:#fff;border-radius:8px;border:1px solid #e9ecef}.form-subsection h5{margin:0 0 1rem;color:#495057;font-size:1rem;font-weight:600}.modal-large .form-subsection{margin-top:1.5rem;padding:1.5rem}.modal-large .form-subsection h5{font-size:1.125rem;margin-bottom:1.5rem;border-bottom:1px solid #e9ecef;padding-bottom:.5rem}.subject-assignments{display:flex;flex-direction:column;gap:1rem}.modal-large .subject-assignments{gap:1.5rem}.assignment-row{display:grid;grid-template-columns:1fr 2fr auto;gap:1rem;align-items:end;padding:1rem;background-color:#fff;border-radius:6px;border:1px solid #dee2e6}.modal-large .assignment-row{grid-template-columns:1fr 2fr auto;gap:1.5rem;padding:1.5rem}.assignment-row .form-field{margin-bottom:0}.remove-btn{background-color:#dc3545;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;height:fit-content}.remove-btn:hover{background-color:#c82333}.add-btn{background-color:#28a745;color:#fff;border:none;padding:.75rem 1rem;border-radius:4px;cursor:pointer;font-size:.875rem;align-self:flex-start}.add-btn:hover{background-color:#218838}.error-text{color:#dc3545;font-size:.75rem;margin-top:.25rem;display:block}.form-field select[multiple]{min-height:80px;padding:.5rem}.form-field small{color:#6c757d;font-size:.75rem;margin-top:.25rem;display:block}.form-field label input[type=checkbox]{margin-right:.5rem;transform:scale(1.2)}.form-row .form-field:has(select)+.form-field:has(input[type=tel]){flex:2}.modal-large .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.modal-large .form-field{display:flex;flex-direction:column}.modal-large .form-field label{font-weight:500;margin-bottom:.5rem;color:#374151}.modal-large .form-field input,.modal-large .form-field select{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem}.modal-large .form-field input:focus,.modal-large .form-field select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-large .assignments-section{grid-column:1 / -1}.roles-vertical{display:flex;flex-direction:column;gap:1rem}.role-item{display:flex;align-items:center}.role-item label{display:flex;align-items:center;font-weight:500;cursor:pointer;padding:.75rem;background-color:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;transition:all .2s ease}.role-item label:hover{background-color:#e9ecef;border-color:#dee2e6}.role-item input[type=checkbox]{margin-right:.75rem;transform:scale(1.3)}.role-item input[type=checkbox]:checked+span,.role-item label:has(input[type=checkbox]:checked){background-color:#e3f2fd;border-color:#2196f3;color:#1976d2}@media (max-width: 1024px){.modal-large .form-grid{grid-template-columns:1fr;gap:1.5rem}.modal-large{width:98%;max-width:800px}}@media (max-width: 768px){.assignment-row{grid-template-columns:1fr;gap:.5rem}.modal-large .form-row{grid-template-columns:1fr}.modal-large{width:95%;max-height:90vh}.modal-large .modal-body{padding:1rem}}/ * Account Details Section Styling */ .modal-large .form-section:has(h4:contains("Account Details")){background:#f0f9ff;border:1px solid #bae6fd}.modal-large .form-section:has(h4:contains("Account Details")) h4{color:#0369a1;border-bottom-color:#bae6fd}.form-field input[pattern="[0-9]{10}"]{font-family:Courier New,monospace;letter-spacing:1px}.form-field input[pattern="[0-9]{10}"]:focus{border-color:#0369a1;box-shadow:0 0 0 3px #0369a11a}.form-field input[pattern="[0-9]{10}"]:invalid{border-color:#dc2626}.form-field input[pattern="[0-9]{10}"]:valid{border-color:#16a34a}.modal-large .assignments-section{background:#f8f9fa;border:2px solid #dee2e6;margin-top:1rem}.modal-large .assignments-section h4{color:#495057;border-bottom-color:#dee2e6;margin-bottom:1.5rem}.modal-large .assignments-section .form-subsection{background:#fff;border:1px solid #e9ecef;margin-bottom:1rem}.modal-large .assignments-section .form-subsection:last-child{margin-bottom:0}.role-item label{width:100%;justify-content:flex-start}.role-item input[type=checkbox]:checked{accent-color:#2196f3}@media (max-width: 1024px){.roles-vertical{flex-direction:row;flex-wrap:wrap}.role-item{flex:1;min-width:200px}}@media (max-width: 768px){.roles-vertical{flex-direction:column}.role-item{width:100%}}/ * Teacher card employee number styling */ .teacher-meta .teacher-id{background-color:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:4px;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.teacher-card{border:1px solid #e0e0e0;border-radius:8px;padding:1rem;background:#fff;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s ease}.teacher-card:hover{box-shadow:0 4px 8px #00000026}.teacher-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.teacher-meta{display:flex;flex-direction:row;align-items:center;gap:.75rem;margin-top:.5rem;flex-wrap:wrap}.teacher-email{color:#666;font-size:.875rem;padding-left:.75rem;border-left:1px solid #e0e0e0}.verification-status{font-size:.75rem;border-radius:3px;font-weight:500;margin-left:.75rem;border-left:1px solid #e0e0e0;padding:.125rem .375rem .125rem .75rem}.verification-status.verified{background-color:#e8f5e8;color:#2e7d32}.verification-status.unverified{background-color:#fff3e0;color:#f57c00}@media (max-width: 768px){.teacher-meta{flex-direction:column;align-items:flex-start;gap:.25rem}.teacher-email,.verification-status{border-left:none;padding-left:0;margin-left:0}}@media (max-width: 1024px){.teachers-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (max-width: 768px){.teachers-grid{grid-template-columns:1fr}.teacher-header{flex-direction:column;gap:1rem}.teacher-actions{align-self:flex-end}}.pagination-container{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding:1rem 0;border-top:1px solid #e5e7eb}.pagination-info{color:#6b7280;font-size:.875rem}.pagination-controls{display:flex;align-items:center;gap:.5rem}.pagination-btn{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:#e5e7eb;border-color:#9ca3af}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-pages{display:flex;gap:.25rem}.pagination-page{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.875rem;min-width:40px;text-align:center;transition:all .2s ease}.pagination-page:hover{background-color:#e5e7eb;border-color:#9ca3af}.pagination-page.active{background-color:#3b82f6;color:#fff;border-color:#3b82f6}.pagination-page.active:hover{background-color:#2563eb;border-color:#2563eb}@media (max-width: 768px){.pagination-container{flex-direction:column;gap:1rem;align-items:center}.pagination-controls{flex-wrap:wrap;justify-content:center}.pagination-pages{order:-1}}.designation-badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:.375rem;margin-right:.5rem;text-transform:uppercase;letter-spacing:.025em}.designation-badge{background-color:#e0e7ff;color:#3730a3}.teacher-meta .designation-badge,.teacher-meta .designation-badge[data-designation=Teacher]{background-color:#dbeafe;color:#1e40af}.teacher-meta .designation-badge[data-designation=Cleaner]{background-color:#fef3c7;color:#92400e}.teacher-meta .designation-badge[data-designation=Gateman]{background-color:#f3e8ff;color:#7c2d12}.teacher-meta .designation-badge[data-designation=Security]{background-color:#fecaca;color:#991b1b}.teacher-meta .designation-badge[data-designation=Cook]{background-color:#d1fae5;color:#065f46}.teacher-meta .designation-badge[data-designation=Driver]{background-color:#e0e7ff;color:#3730a3}.teacher-meta .designation-badge[data-designation=Librarian]{background-color:#fce7f3;color:#be185d}.teacher-meta .designation-badge[data-designation="IT Support"]{background-color:#ecfdf5;color:#047857}.teacher-meta .designation-badge[data-designation=Other]{background-color:#f3f4f6;color:#374151}.student-id{background-color:#e0f2fe;color:#0277bd;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;margin-right:.5rem}.class-badge{background-color:#f3e8ff;color:#7c3aed;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;margin-right:.5rem}.form-section h4{color:#1f2937;font-size:1rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.form-field textarea{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;resize:vertical;min-height:80px}.form-field label input[type=checkbox]{margin-right:.5rem;transform:scale(1.1)}.modal-large{max-width:800px;width:90vw;max-height:90vh;overflow-y:auto}.form-grid{display:grid;gap:2rem}.form-section{background:#f9fafb;padding:1.5rem;border-radius:.5rem;border:1px solid #e5e7eb}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.form-row:last-child{margin-bottom:0}.form-field label{display:block;font-weight:500;color:#374151;margin-bottom:.5rem;font-size:.875rem}.form-field input,.form-field select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-field input:focus,.form-field select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-field input[required]{border-left:3px solid #ef4444}.form-field input[required]:valid{border-left:3px solid #10b981}.photo-upload-container{margin-top:.5rem}.photo-upload-area{border:2px dashed #d1d5db;border-radius:.5rem;padding:2rem;text-align:center;background-color:#f9fafb;transition:all .2s;cursor:pointer}.photo-upload-area:hover{border-color:#3b82f6;background-color:#eff6ff}.photo-input{display:none}.photo-upload-label{display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer}.upload-icon{font-size:2rem;color:#6b7280}.upload-text{color:#374151}.upload-text small{color:#6b7280;font-size:.75rem}.photo-preview{display:flex;flex-direction:column;align-items:center;gap:1rem}.preview-image{width:120px;height:120px;object-fit:cover;border-radius:.5rem;border:2px solid #e5e7eb}.remove-photo-btn{padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;transition:background-color .2s}.remove-photo-btn:hover{background-color:#dc2626}/ * Test Students Button Styling */ .header-actions{display:flex;gap:.75rem;align-items:center}.secondary-btn{padding:.5rem 1rem;background-color:#6b7280;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:.5rem}.secondary-btn:hover{background-color:#4b5563;transform:translateY(-1px)}.secondary-btn:active{transform:translateY(0)}.secondary-btn:disabled{background-color:#9ca3af;cursor:not-allowed;transform:none}.parents-list{margin-top:1.5rem}.parents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.parent-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0;transition:all .2s ease}.parent-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.parent-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.parent-info h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#2d3748}.relationship-badge{background:#e2e8f0;color:#4a5568;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.parent-actions{display:flex;gap:.5rem}.edit-btn,.delete-btn{background:none;border:none;padding:.5rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s ease}.edit-btn:hover{background-color:#f7fafc}.delete-btn:hover{background-color:#fed7d7}.parent-details{space-y:1rem}.contact-info p{margin:.5rem 0;font-size:.875rem;color:#4a5568}.preferences{margin-top:1rem}.preference-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.badge.primary{background:#bee3f8;color:#2b6cb0}.badge.emergency{background:#fed7d7;color:#c53030}.badge.financial{background:#c6f6d5;color:#2f855a}.communication-prefs{margin-top:.75rem}.communication-prefs small{color:#718096;font-weight:500;display:block;margin-bottom:.5rem}.comm-badges{display:flex;flex-wrap:wrap;gap:.25rem}.comm-badge{background:#f7fafc;color:#4a5568;padding:.125rem .5rem;border-radius:12px;font-size:.75rem;border:1px solid #e2e8f0}.parents-summary{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0}.summary-stats{display:flex;justify-content:space-around;text-align:center}.stat{display:flex;flex-direction:column;align-items:center}.stat-number{font-size:2rem;font-weight:700;color:#2d3748;line-height:1}.stat-label{font-size:.875rem;color:#718096;margin-top:.25rem}.form-section{margin-bottom:2rem}.form-section h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#2d3748;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.checkbox-field{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem;border-radius:8px;border:1px solid #e2e8f0;transition:all .2s ease}.checkbox-field:hover{background-color:#f7fafc;border-color:#cbd5e0}.checkbox-field input[type=checkbox]{margin:0;width:1rem;height:1rem}.checkbox-field span{font-size:.875rem;color:#4a5568;font-weight:500}@media (max-width: 768px){.parents-grid{grid-template-columns:1fr;gap:1rem}.parent-card{padding:1rem}.parent-header{flex-direction:column;align-items:flex-start;gap:.75rem}.parent-actions{align-self:flex-end}.preference-badges{flex-direction:column;align-items:flex-start}.summary-stats{flex-direction:column;gap:1rem}.checkbox-grid{grid-template-columns:1fr}}/ * Student Linkage Styles */ .form-description{color:#6b7280;font-size:.875rem;margin-bottom:1rem;line-height:1.4}.students-selection{margin-top:1rem}.no-students{color:#9ca3af;font-style:italic;text-align:center;padding:2rem;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;max-height:300px;overflow-y:auto;padding:.5rem;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.student-checkbox{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s ease}.student-checkbox:hover{border-color:#3b82f6;background:#f8faff}.student-checkbox input[type=checkbox]{margin:0;width:1rem;height:1rem;flex-shrink:0}.student-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.student-name{font-weight:500;color:#1f2937;font-size:.875rem}.student-id{font-size:.75rem;color:#6b7280;font-family:monospace}.student-class{font-size:.75rem;color:#059669;background:#d1fae5;padding:.125rem .5rem;border-radius:12px;align-self:flex-start}@media (max-width: 768px){.students-grid{grid-template-columns:1fr}.student-checkbox{padding:.5rem}}.linked-students{margin-top:.75rem}.linked-students small{color:#718096;font-weight:500;display:block;margin-bottom:.5rem}.student-badges{display:flex;flex-wrap:wrap;gap:.25rem}.student-badge{background:#e0f2fe;color:#0277bd;padding:.125rem .5rem;border-radius:12px;font-size:.75rem;border:1px solid #b3e5fc;font-weight:500}.student-filters{margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.filter-row{display:grid;grid-template-columns:2fr 1fr;gap:1rem;align-items:end}.search-field,.filter-field{display:flex;flex-direction:column}.search-field label,.filter-field label{font-size:.875rem;font-weight:500;color:#495057;margin-bottom:.5rem}.search-input,.class-filter{padding:.75rem;border:1px solid #ced4da;border-radius:6px;font-size:.875rem;background:#fff;transition:border-color .2s ease}.search-input:focus,.class-filter:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.search-input::placeholder{color:#9ca3af}.filter-info{margin-top:.75rem;padding:.5rem .75rem;background:#e3f2fd;border-radius:6px;font-size:.875rem;color:#1565c0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.clear-filters{background:#1976d2;color:#fff;border:none;padding:.25rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:background-color .2s ease}.clear-filters:hover{background:#1565c0}.students-grid{margin-top:.75rem}@media (max-width: 768px){.filter-row{grid-template-columns:1fr;gap:.75rem}.filter-info{flex-direction:column;align-items:flex-start;gap:.5rem}.clear-filters{align-self:flex-end}}.no-filtered-students{text-align:center;padding:2rem;color:#6b7280;font-style:italic;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db;margin-top:.75rem}.no-filtered-students .suggestion{margin-top:.5rem;font-size:.875rem;color:#9ca3af}/ * Selection count styling */ .selection-count{font-size:.875rem;font-weight:400;color:#059669;background:#d1fae5;padding:.25rem .75rem;border-radius:12px;margin-left:.5rem}.filter-actions{display:flex;flex-direction:column;gap:.75rem}.selection-actions{display:flex;gap:.5rem;justify-content:flex-end}.select-action{background:#f3f4f6;color:#374151;border:1px solid #d1d5db;padding:.375rem .75rem;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease}.select-action:hover{background:#e5e7eb;border-color:#9ca3af}.select-action:active{background:#d1d5db}@media (max-width: 768px){.selection-actions{justify-content:stretch}.select-action{flex:1;text-align:center}}/ * Enhanced search input with icon */ .search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;color:#9ca3af;font-size:.875rem;pointer-events:none;z-index:1}.search-input{padding-left:2.5rem!important;padding-right:2.5rem!important}.clear-search{position:absolute;right:.75rem;background:none;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;border-radius:50%;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:all .2s ease}.clear-search:hover{background:#f3f4f6;color:#6b7280}.clear-search:active{background:#e5e7eb}.fee-structures-list{margin-top:1.5rem}.fee-structures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem;margin-bottom:2rem}.fee-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0;transition:all .2s ease}.fee-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.fee-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.fee-info h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#2d3748}.fee-badges{display:flex;gap:.5rem;flex-wrap:wrap}.frequency-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.frequency-badge.termly{background:#e0f2fe;color:#0277bd}.frequency-badge.annually{background:#f3e8ff;color:#7c3aed}.frequency-badge.monthly{background:#ecfdf5;color:#059669}.frequency-badge.one-time{background:#fef3c7;color:#d97706}.mandatory-badge{background:#fee2e2;color:#dc2626;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.fee-actions{display:flex;gap:.5rem}.fee-details{space-y:1rem}.fee-amount{margin-bottom:1rem}.fee-amount .amount{font-size:1.5rem;font-weight:700;color:#059669}.fee-description{margin-bottom:1rem}.fee-description p{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.applicable-classes{margin-top:1rem}.applicable-classes small{color:#718096;font-weight:500;display:block;margin-bottom:.5rem}.class-badges{display:flex;flex-wrap:wrap;gap:.25rem}.class-badge{background:#f0f9ff;color:#0369a1;padding:.125rem .5rem;border-radius:12px;font-size:.75rem;border:1px solid #bae6fd;font-weight:500}.no-classes-assigned{color:#9ca3af;font-style:italic;font-size:.75rem}.fee-summary{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0}.classes-selection{margin-top:1rem}.no-classes{color:#9ca3af;font-style:italic;text-align:center;padding:2rem;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;max-height:300px;overflow-y:auto;padding:.5rem;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.class-checkbox{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s ease}.class-checkbox:hover{border-color:#3b82f6;background:#f8faff}.class-checkbox input[type=checkbox]{margin:0;width:1rem;height:1rem;flex-shrink:0}.class-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.class-name{font-weight:500;color:#1f2937;font-size:.875rem}.class-code{font-size:.75rem;color:#6b7280;font-family:monospace}.form-field textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;resize:vertical;min-height:80px}.form-field textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}@media (max-width: 768px){.fee-structures-grid{grid-template-columns:1fr;gap:1rem}.fee-card{padding:1rem}.fee-header{flex-direction:column;align-items:flex-start;gap:.75rem}.fee-actions{align-self:flex-end}.fee-badges{flex-direction:column;align-items:flex-start}.classes-grid{grid-template-columns:1fr}.summary-stats{flex-direction:column;gap:1rem}}.structure-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e2e8f0}.tab-btn{padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-weight:500;color:#64748b;transition:all .2s ease}.tab-btn:hover{color:#3b82f6;background:#f8faff}.tab-btn.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#f8faff}.structure-content{margin-top:1.5rem}.structure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-top:1rem}.structure-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0;transition:all .2s ease}.structure-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.structure-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.structure-info h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#2d3748}.structure-info p{margin:0;color:#6b7280;font-size:.875rem;line-height:1.4}.class-code,.grade-level{display:inline-block;background:#e0f2fe;color:#0277bd;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;margin-right:.5rem;margin-top:.5rem}.structure-actions{display:flex;gap:.5rem}.class-details{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.class-meta{display:flex;gap:1rem;font-size:.875rem;color:#6b7280}.subjects-content{margin-top:1.5rem}.subjects-sections{display:flex;flex-direction:column;gap:2rem}.subjects-section h3{margin:0 0 1rem;font-size:1.25rem;font-weight:600;color:#2d3748}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.subject-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0;transition:all .2s ease}.subject-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.subject-card.core{border-left:4px solid #059669}.subject-card.elective{border-left:4px solid #7c3aed}.subject-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.subject-info h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:#2d3748}.subject-code{background:#f3f4f6;color:#374151;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500;font-family:monospace;margin-right:.5rem}.subject-category{background:#fef3c7;color:#d97706;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.subject-actions{display:flex;gap:.5rem}.subject-details{margin-top:1rem}.subject-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0 0 1rem}.subject-meta{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #e2e8f0}.credit-hours{font-size:.875rem;color:#6b7280}.subject-type{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.subject-type.core{background:#d1fae5;color:#059669}.subject-type.elective{background:#e0e7ff;color:#7c3aed}.subjects-summary{margin-top:2rem;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0}.school-display{margin-top:1.5rem}.display-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0}.display-section h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#2d3748;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.display-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.display-field{display:flex;flex-direction:column;gap:.5rem}.display-field.full-width{grid-column:1 / -1}.display-field label{font-weight:500;color:#374151;font-size:.875rem}.display-value{color:#1f2937;font-size:.875rem;line-height:1.4}.no-value{color:#9ca3af;font-style:italic}.website-link{color:#3b82f6;text-decoration:none}.website-link:hover{text-decoration:underline}.school-form{margin-top:1.5rem}.form-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e2e8f0}.form-section h3{margin:0 0 1rem;font-size:1.125rem;font-weight:600;color:#2d3748;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field.full-width{grid-column:1 / -1}.form-field label{font-weight:500;color:#374151;font-size:.875rem}.form-field input,.form-field select,.form-field textarea{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .2s ease}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #e2e8f0}@media (max-width: 768px){.structure-grid,.subjects-grid{grid-template-columns:1fr}.structure-tabs{flex-direction:column}.tab-btn{text-align:left}.display-grid,.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}}.management-page{min-height:100vh;background-color:#f8f9fa}.page-header{background:#fff;border-bottom:1px solid #dee2e6;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.breadcrumb{display:flex;align-items:center;gap:.5rem;color:#6c757d;font-size:.9rem}.breadcrumb .separator{color:#adb5bd}.breadcrumb .current{color:#495057;font-weight:500}.school-context{display:flex;align-items:center;gap:.5rem}.school-name{font-weight:600;color:#495057;padding:.25rem .75rem;background:#e9ecef;border-radius:12px;font-size:.85rem}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:2rem}.error-state h2{color:#495057;margin-bottom:.5rem}.error-state p{color:#6c757d;margin:0}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.breadcrumb,.school-context{justify-content:center}}.teacher-student-management{padding:2rem;max-width:1200px;margin:0 auto;background-color:#f8f9fa;min-height:100vh}.management-header{background:#fff;padding:2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a}.header-content h2{margin:0 0 .5rem;color:#333;font-size:1.8em}.header-content p{margin:0 0 1rem;color:#666}.teacher-info{display:flex;gap:1rem;align-items:center}.teacher-name{font-weight:600;color:#007bff}.employee-number{background:#e9ecef;padding:.25rem .5rem;border-radius:4px;font-size:.9em;color:#495057}.management-controls{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a}.controls-row{display:flex;gap:1rem;align-items:center}.search-input{flex:1;padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;font-size:1em}.search-input:focus{outline:none;border-color:#007bff}.filter-select{padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;background:#fff;min-width:200px}.classes-container{display:flex;flex-direction:column;gap:2rem}.class-section{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.section-title{margin:0;padding:1.5rem;font-size:1.3em;border-bottom:2px solid #f1f3f4}.class-teacher-title{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff}.subject-teacher-title{background:linear-gradient(135deg,#28a745,#1e7e34);color:#fff}.class-card{border-bottom:1px solid #f1f3f4}.class-card:last-child{border-bottom:none}.class-teacher-card{border-left:4px solid #007bff}.subject-teacher-card{border-left:4px solid #28a745}.class-header{display:flex;align-items:center;padding:1.5rem;cursor:pointer;transition:background-color .2s}.class-header:hover{background-color:#f8f9fa}.class-info{flex:1;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.class-name{margin:0;font-size:1.2em;color:#333}.subject-name{background:#e9ecef;padding:.25rem .75rem;border-radius:12px;font-size:.9em;color:#495057;font-weight:500}.grade-level{background:#fff3cd;color:#856404;padding:.25rem .5rem;border-radius:4px;font-size:.8em;font-weight:500}.student-count{background:#d1ecf1;color:#0c5460;padding:.25rem .5rem;border-radius:4px;font-size:.8em;font-weight:500}.class-badge{padding:.5rem 1rem;border-radius:20px;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.class-teacher-badge{background:#007bff;color:#fff}.subject-teacher-badge{background:#28a745;color:#fff}.expand-button{background:none;border:none;font-size:1.2em;cursor:pointer;padding:.5rem;color:#666;margin-left:1rem}.students-list{padding:0 1.5rem 1.5rem;background:#f8f9fa}.student-card{background:#fff;border:1px solid #e1e5e9;border-radius:6px;padding:1rem;margin-bottom:.75rem;transition:box-shadow .2s}.student-card:hover{box-shadow:0 2px 8px #0000001a}.student-card:last-child{margin-bottom:0}.student-info{display:flex;flex-direction:column;gap:.5rem}.student-name{font-weight:600;color:#333;font-size:1.1em}.student-details{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.admission-number{background:#e9ecef;padding:.25rem .5rem;border-radius:4px;font-size:.8em;color:#495057;font-family:monospace}.gender-badge{background:#d4edda;color:#155724;padding:.25rem .5rem;border-radius:4px;font-size:.8em;font-weight:500}.age-badge{background:#fff3cd;color:#856404;padding:.25rem .5rem;border-radius:4px;font-size:.8em;font-weight:500}.student-email{color:#666;font-size:.9em}.student-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e9ecef}.action-button{padding:.5rem .75rem;border:none;border-radius:4px;font-size:.8em;cursor:pointer;transition:all .2s;font-weight:500;display:flex;align-items:center;gap:.25rem}.add-assessment-btn{background:#28a745;color:#fff}.add-assessment-btn:hover{background:#218838;transform:translateY(-1px)}.view-assessments-btn{background:#007bff;color:#fff}.view-assessments-btn:hover{background:#0056b3;transform:translateY(-1px)}.no-students{text-align:center;padding:2rem;color:#666;font-style:italic}.no-classes{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.no-data-icon{font-size:4em;margin-bottom:1rem}.no-classes h3{color:#333;margin-bottom:1rem}.no-classes p{color:#666;max-width:400px;margin:0 auto}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:400px;font-size:1.2em;color:#666}.error-message{text-align:center;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.error-message h3{color:#dc3545;margin-bottom:1rem}.error-message p{color:#666;margin-bottom:1.5rem}.retry-button{background:#007bff;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1em}.retry-button:hover{background:#0056b3}@media (max-width: 768px){.teacher-student-management{padding:1rem}.controls-row{flex-direction:column;align-items:stretch}.filter-select{min-width:auto}.class-header{flex-direction:column;align-items:flex-start;gap:1rem}.class-info{width:100%}.student-details{flex-direction:column;align-items:flex-start;gap:.5rem}}.subjects-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.subject-tag{background:#007bff;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.8em;font-weight:500;white-space:nowrap}.subject-name{background:#6c757d;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.8em;font-weight:500}.teacher-classes-page{min-height:100vh;background-color:#f5f5f5}.page-header{background:#fff;padding:1rem 2rem;border-bottom:1px solid #e1e5e9;margin-bottom:2rem}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.school-info h1{margin:0;color:#333;font-size:1.5em}.school-info p{margin:0;color:#666}.user-info{display:flex;flex-direction:column;align-items:center;gap:.5rem}.secondary-btn{background:#6c757d;color:#fff;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer}.logout-btn{background:#dc3545;color:#fff;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer}.breadcrumb-container{max-width:1200px;margin:0 auto 1.5rem;padding:0 2rem}.breadcrumb{display:flex;align-items:center;gap:1rem}.breadcrumb h2{margin:0;color:#333}.back-btn{background:none;border:none;color:#007bff;cursor:pointer;font-size:1rem;padding:0}.page-content{max-width:1200px;margin:0 auto;padding:0 2rem}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.class-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.class-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.class-card h3{margin:0 0 .5rem;color:#333}.class-card p{color:#666;margin-bottom:1rem}.view-btn{color:#007bff;font-weight:500}.class-details{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.tabs{display:flex;border-bottom:1px solid #e1e5e9;background:#f8f9fa}.tab{padding:1rem 2rem;border:none;background:none;cursor:pointer;font-weight:500;color:#666;border-bottom:2px solid transparent}.tab.active{color:#007bff;border-bottom-color:#007bff;background:#fff}.tab-content{padding:2rem}.actions-bar{display:flex;justify-content:flex-end;margin-bottom:1.5rem}.primary-btn{background:#007bff;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.list-view{display:flex;flex-direction:column;gap:1rem}.list-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid #e1e5e9;border-radius:4px}.item-info h4{margin:0 0 .25rem;color:#333}.item-info p{margin:0;color:#666;font-size:.9em}.loading,.empty-state{text-align:center;padding:3rem;color:#666}.admin-page{min-height:100vh;background-color:#f8f9fa}.admin-header{background:#fff;padding:1rem 2rem;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;align-items:center}.admin-header h1{margin:0;color:#333}.school-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.school-name{font-weight:600;color:#007bff}.user-info{font-size:.875rem;color:#6c757d}.admin-content{display:flex;min-height:calc(100vh - 80px)}.admin-nav{width:250px;background:#fff;border-right:1px solid #e9ecef;padding:1rem 0}.nav-tabs{list-style:none;padding:0;margin:0}.nav-tab{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1.5rem;border:none;background:none;text-align:left;cursor:pointer;transition:background-color .2s}.nav-tab:hover{background-color:#f8f9fa}.nav-tab.active{background-color:#007bff;color:#fff}.tab-icon{font-size:1.25rem}.tab-label{font-weight:500}.admin-main{flex:1;padding:2rem;overflow-y:auto}.form{max-width:800px}.form-header{margin-bottom:2rem}.form-header h2,.form-header h3{margin:0 0 .5rem;color:#333}.form-header p{margin:0;color:#6c757d}.form-section{margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:8px;border:1px solid #e9ecef}.form-section h3,.form-section h4{margin:0 0 1rem;color:#333;font-size:1.125rem}.form-group{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ced4da;border-radius:4px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545}.error-message{display:block;margin-top:.25rem;font-size:.875rem;color:#dc3545}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem;border-top:1px solid #e9ecef}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#545b62}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background-color:#c82333}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.error-banner{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#721c24}.loading{text-align:center;padding:2rem;color:#6c757d}.data-table{background:#fff;border-radius:8px;border:1px solid #e9ecef;overflow:hidden}.table-controls{padding:1rem;border-bottom:1px solid #e9ecef}.search-box{max-width:300px}.search-input{width:100%;padding:.5rem;border:1px solid #ced4da;border-radius:4px}.table-container{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid #e9ecef}.table th{background-color:#f8f9fa;font-weight:600;color:#333}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-content{display:flex;align-items:center;justify-content:space-between}.sort-indicator{margin-left:.5rem;font-size:.875rem}.loading-cell,.empty-cell{text-align:center;padding:2rem;color:#6c757d}.actions-cell{white-space:nowrap}.actions{display:flex;gap:.5rem}.status-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-active{background-color:#d4edda;color:#155724}.status-inactive{background-color:#f8d7da;color:#721c24}.status-pending{background-color:#fff3cd;color:#856404}.status-suspended{background-color:#f1f3f4;color:#5f6368}.pagination{display:flex;justify-content:center;align-items:center;gap:.25rem;padding:1rem;border-top:1px solid #e9ecef}.pagination-btn{padding:.5rem .75rem;border:1px solid #ced4da;background:#fff;cursor:pointer;border-radius:4px;transition:all .2s}.pagination-btn:hover{background-color:#f8f9fa}.pagination-btn.active{background-color:#007bff;color:#fff;border-color:#007bff}.pagination-ellipsis{padding:.5rem;color:#6c757d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;padding:2rem}.admin-dashboard{max-width:1200px}.dashboard-header{margin-bottom:2rem}.dashboard-header h2{margin:0 0 .5rem;color:#333}.dashboard-header p{margin:0;color:#6c757d}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:2rem}.metric-card{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e9ecef;display:flex;align-items:center;gap:1rem}.metric-icon{font-size:2rem}.metric-content{flex:1}.metric-value{margin:0 0 .25rem;font-size:1.75rem;font-weight:700;color:#333}.metric-title{margin:0;font-size:.875rem;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.dashboard-charts{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.chart-section{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e9ecef}.chart-section h3{margin:0 0 1rem;color:#333}.stats-grid{display:flex;flex-direction:column;gap:1rem}.stat-item{display:flex;align-items:center;gap:1rem}.stat-label{min-width:120px;font-size:.875rem;color:#6c757d}.progress-bar{flex:1;height:8px;background-color:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background-color:#007bff;transition:width .3s ease}.progress-fill.payment{background-color:#28a745}.stat-value{min-width:50px;text-align:right;font-weight:600;color:#333}.user-distribution{display:flex;justify-content:space-around;align-items:end;height:200px;padding:1rem 0}.distribution-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.distribution-bar{width:40px;height:150px;background-color:#f8f9fa;border-radius:4px;display:flex;align-items:end;overflow:hidden}.bar{width:100%;border-radius:4px 4px 0 0;transition:height .3s ease}.bar.students{background-color:#007bff}.bar.teachers{background-color:#28a745}.bar.parents{background-color:#6f42c1}.bar.staff{background-color:#fd7e14}.distribution-label{font-size:.75rem;color:#6c757d;text-align:center}.distribution-value{font-weight:600;color:#333}.dashboard-actions{text-align:center}.branding-customization{max-width:800px}.logo-upload{display:flex;gap:2rem;align-items:start}.logo-preview{width:150px;height:150px;border:2px dashed #ced4da;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative}.logo-container{position:relative;width:100%;height:100%}.logo-image{width:100%;height:100%;object-fit:contain;border-radius:6px}.remove-logo-btn{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background-color:#dc3545;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1}.logo-placeholder{color:#6c757d;text-align:center;font-size:.875rem}.logo-controls{flex:1}.file-input{display:none}.help-text{margin:.5rem 0 0;font-size:.75rem;color:#6c757d}.color-input-group{display:flex;gap:.5rem;align-items:center}.color-picker{width:50px!important;height:40px;padding:0;border:1px solid #ced4da;border-radius:4px;cursor:pointer}.color-text{flex:1}.branding-preview{padding:2rem;border:1px solid #e9ecef;border-radius:8px;background:#fff}.preview-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.preview-logo{width:60px;height:60px;object-fit:contain}.preview-text h3{margin:0 0 .25rem}.preview-text p{margin:0;font-size:.875rem}.preview-buttons{display:flex;gap:1rem}.preview-buttons button{padding:.5rem 1rem;border:none;border-radius:4px;color:#fff;cursor:pointer}@media (max-width: 768px){.admin-content{flex-direction:column}.admin-nav{width:100%}.nav-tabs{display:flex;overflow-x:auto}.nav-tab{white-space:nowrap;min-width:150px}.form-row,.metrics-grid,.dashboard-charts{grid-template-columns:1fr}.logo-upload{flex-direction:column}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}.app{min-height:100vh}.loading-container{display:flex;justify-content:center;align-items:center;min-height:100vh}.loading-spinner{font-size:1.2rem;color:#666}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-container{width:100%;max-width:400px;padding:20px}.form-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a}.form-container h2{margin:0 0 1rem;text-align:center;color:#333}.form-container p{margin:0 0 1.5rem;text-align:center;color:#666}.form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:500;color:#333}.form-group input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.form-group input.error{border-color:#ef4444}.error-text{color:#ef4444;font-size:.875rem;margin-top:.25rem}.error-message{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.75rem;border-radius:4px;margin-bottom:1rem}.info-message{background-color:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;padding:.75rem;border-radius:4px;margin-bottom:1rem}.submit-button{background-color:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:#5a67d8}.submit-button:disabled{background-color:#9ca3af;cursor:not-allowed}.link-button{background:none;border:none;color:#667eea;cursor:pointer;text-decoration:underline;font-size:inherit}.link-button:hover{color:#5a67d8}.form-footer{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.school-selection{min-height:100vh;background-color:#f9fafb;padding:2rem}.container{max-width:1200px;margin:0 auto}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.header h2{margin:0;color:#111827}.logout-button{background-color:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.logout-button:hover{background-color:#dc2626}.schools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.school-card{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s}.school-card:hover{border-color:#667eea;box-shadow:0 4px 6px #0000001a}.school-card.selected{border-color:#667eea;background-color:#f0f4ff}.school-logo{width:60px;height:60px;object-fit:contain;margin-bottom:1rem}.school-info h3{margin:0 0 .5rem;color:#111827}.school-domain{color:#6b7280;margin:0 0 .5rem}.school-status{font-weight:500;font-size:.875rem}.select-button{background-color:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;margin-top:1rem;width:100%}.select-button:hover:not(:disabled){background-color:#5a67d8}.select-button:disabled{background-color:#9ca3af;cursor:not-allowed}.selection-actions{text-align:center}.continue-button{background-color:#10b981;color:#fff;border:none;padding:.75rem 2rem;border-radius:4px;font-size:1.1rem;cursor:pointer}.continue-button:hover:not(:disabled){background-color:#059669}.continue-button:disabled{background-color:#9ca3af;cursor:not-allowed}.role-selection .header{display:flex;justify-content:space-between;align-items:flex-start}.school-info{display:flex;align-items:center;gap:1rem}.school-logo-small{width:40px;height:40px;object-fit:contain}.header-actions{display:flex;gap:1rem}.back-button{background-color:#6b7280;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.back-button:hover{background-color:#4b5563}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.role-card{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:1.5rem;cursor:pointer;transition:all .2s}.role-card:hover{border-color:#667eea;box-shadow:0 4px 6px #0000001a}.role-card.selected{border-color:#667eea;background-color:#f0f4ff}.role-info h3{margin:0 0 1rem;color:#111827}.role-permissions p{margin:0 0 .5rem;font-weight:500;color:#374151}.role-permissions ul{margin:0;padding-left:1rem;color:#6b7280}.role-permissions li{margin-bottom:.25rem}.dashboard{min-height:100vh;background-color:#f9fafb}.dashboard-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 2rem}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.dashboard-header .school-info{display:flex;align-items:center;gap:1rem}.dashboard-header .school-logo{width:50px;height:50px;object-fit:contain}.dashboard-header h1{margin:0;color:#111827}.role-badge{background-color:#667eea;color:#fff;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem}.dropdown{position:relative}.dropdown-toggle{background:none;border:1px solid #d1d5db;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #d1d5db;border-radius:4px;box-shadow:0 4px 6px #0000001a;min-width:150px;z-index:10;display:none}.dropdown:hover .dropdown-menu{display:block}.dropdown-menu button{display:block;width:100%;padding:.5rem 1rem;border:none;background:none;text-align:left;cursor:pointer}.dropdown-menu button:hover{background-color:#f3f4f6}.dropdown-menu hr{margin:0;border:none;border-top:1px solid #e5e7eb}.dashboard-main{padding:2rem}.dashboard-content{max-width:1200px;margin:0 auto}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin:2rem 0}.stat-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.stat-card h3{margin:0 0 .5rem;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.stat-card p{margin:0 0 .25rem;font-size:1.5rem;font-weight:600;color:#111827}.stat-card small{color:#6b7280}.quick-actions{margin-top:3rem}.quick-actions h3{margin:0 0 1rem;color:#111827}.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.action-button{background:#fff;border:1px solid #d1d5db;padding:1rem;border-radius:8px;cursor:pointer;transition:all .2s}.action-button:hover{border-color:#667eea;box-shadow:0 2px 4px #0000001a}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-container{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:500px}.register-form .auth-container{max-width:600px}.form-header{text-align:center;margin-bottom:30px}.form-header h2{color:#333;margin-bottom:8px;font-size:28px;font-weight:600}.form-header p{color:#666;font-size:16px}.auth-form{display:flex;flex-direction:column;gap:20px}.form-section{border:1px solid #e1e5e9;border-radius:8px;padding:20px;background:#f8f9fa}.form-section h3{margin:0 0 15px;color:#333;font-size:18px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group label{font-weight:500;color:#333;font-size:14px}.form-group input,.form-group select{padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input.error,.form-group select.error{border-color:#e74c3c}.form-group input:disabled,.form-group select:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{color:#e74c3c;font-size:12px;font-weight:500}.form-help{color:#666;font-size:12px;margin-top:4px}.error-banner{background-color:#ffeaea;border:1px solid #e74c3c;color:#c0392b;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500}.success-banner{background-color:#eafaf1;border:1px solid #27ae60;color:#1e8449;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500}.info-banner{background-color:#e8f4fd;border:1px solid #3498db;color:#2980b9;padding:12px 16px;border-radius:8px;font-size:14px}.form-actions{margin-top:10px}.btn{padding:14px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:100%}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-footer{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid #e1e5e9}.form-footer p{color:#666;font-size:14px;margin:8px 0}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-weight:600;text-decoration:underline;font-size:inherit}.link-button:hover{color:#764ba2}.otp-verification{width:100%}.otp-form{display:flex;flex-direction:column;gap:24px}.otp-inputs{display:flex;gap:12px;justify-content:center;margin:20px 0}.otp-input{width:50px;height:60px;text-align:center;font-size:24px;font-weight:600;border:2px solid #e1e5e9;border-radius:8px;transition:all .2s ease}.otp-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.otp-input.error{border-color:#e74c3c;animation:shake .3s ease}.otp-input:disabled{background-color:#f5f5f5;cursor:not-allowed}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.otp-actions{display:flex;justify-content:center}.otp-footer{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid #e1e5e9}.otp-footer p{color:#666;font-size:14px;margin:8px 0}@media (max-width: 768px){.auth-container{padding:30px 20px;margin:10px}.form-row{grid-template-columns:1fr}.form-header h2{font-size:24px}}@media (max-width: 480px){.auth-page{padding:10px}.auth-container{padding:20px 15px}.form-section{padding:15px}}.academic-management{padding:20px;max-width:1400px;margin:0 auto}.academic-header{margin-bottom:30px}.academic-header h1{color:#1f2937;margin-bottom:8px;font-size:2rem;font-weight:600}.academic-header p{color:#6b7280;font-size:1rem}.academic-content{display:flex;gap:20px;min-height:600px}.academic-nav{flex-shrink:0;width:280px}.nav-tabs{display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000001a}.nav-tab{display:flex;align-items:center;gap:12px;padding:12px 16px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;font-size:.95rem}.nav-tab:hover{background:#f3f4f6}.nav-tab.active{background:#3b82f6;color:#fff}.nav-tab .tab-icon{font-size:1.2rem;width:24px;text-align:center}.nav-tab .tab-label{font-weight:500}.academic-main{flex:1;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.tab-content{padding:24px}.attendance-recording{max-width:1200px}.attendance-header{display:flex;justify-content:between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.attendance-header h2{color:#1f2937;margin:0}.attendance-stats{display:flex;gap:16px;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;align-items:center;padding:8px 16px;border-radius:8px;min-width:80px}.stat-item.present{background:#dcfce7;color:#166534}.stat-item.absent{background:#fee2e2;color:#991b1b}.stat-item.late{background:#fef3c7;color:#92400e}.stat-item.excused{background:#e0e7ff;color:#3730a3}.stat-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.25rem;font-weight:600}.attendance-form{display:flex;flex-direction:column;gap:24px}.form-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-group label{font-weight:500;color:#374151;font-size:.9rem}.form-group select,.form-group input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.form-group select:focus,.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.students-list{margin-top:24px}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.list-header h3{color:#1f2937;margin:0}.bulk-actions{display:flex;gap:8px}.bulk-btn{padding:6px 12px;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.bulk-btn.present{background:#10b981;color:#fff}.bulk-btn.absent{background:#ef4444;color:#fff}.bulk-btn:hover{opacity:.9;transform:translateY(-1px)}.student-card{border:1px solid #e5e7eb;border-radius:8px;padding:16px;background:#fafafa}.student-id{font-size:.85rem;color:#6b7280}.attendance-controls{display:flex;flex-direction:column;gap:12px}.status-buttons{display:flex;gap:6px;flex-wrap:wrap}.status-btn{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;text-transform:capitalize}.status-btn:hover{border-color:#9ca3af}.status-btn.active.present{background:#10b981;border-color:#10b981;color:#fff}.status-btn.active.absent{background:#ef4444;border-color:#ef4444;color:#fff}.status-btn.active.late{background:#f59e0b;border-color:#f59e0b;color:#fff}.status-btn.active.excused{background:#6366f1;border-color:#6366f1;color:#fff}.notes-input{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.notes-input:focus{outline:none;border-color:#3b82f6}.form-actions{display:flex;justify-content:center;padding-top:16px}.submit-btn{padding:12px 32px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.submit-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.attendance-reporting{max-width:1200px}.reporting-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.reporting-header h2{color:#1f2937;margin:0}.export-btn{padding:8px 16px;background:#059669;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.export-btn:hover:not(:disabled){background:#047857}.export-btn:disabled{opacity:.6;cursor:not-allowed}.filters-section{background:#f9fafb;padding:20px;border-radius:8px;margin-bottom:24px}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.date-range-section h4{color:#374151;margin:0 0 12px;font-size:1rem}.date-range-inputs{display:flex;gap:16px;flex-wrap:wrap}.date-input{display:flex;flex-direction:column;gap:6px;min-width:150px}.stats-section{margin-bottom:24px}.stats-section h3{color:#1f2937;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:8px;border-left:4px solid #e5e7eb}.stat-card.present{border-left-color:#10b981}.stat-card.absent{border-left-color:#ef4444}.stat-card.late{border-left-color:#f59e0b}.stat-card.excused{border-left-color:#6366f1}.stat-card.rate{border-left-color:#3b82f6}.stat-icon{font-size:1.5rem}.stat-content{flex:1}.stat-value{font-size:1.5rem;font-weight:600;color:#1f2937;line-height:1}.stat-label{font-size:.85rem;color:#6b7280;margin-top:2px}.records-section{margin-bottom:24px}.records-section h3{color:#1f2937;margin-bottom:16px}.records-table{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb}.table-header{display:grid;grid-template-columns:120px 1fr 120px 1fr 150px;background:#f9fafb;border-bottom:1px solid #e5e7eb}.header-cell{padding:12px 16px;font-weight:600;color:#374151;font-size:.9rem}.table-body{max-height:600px;overflow-y:auto}.table-row{display:grid;grid-template-columns:120px 1fr 120px 1fr 150px;border-bottom:1px solid #f3f4f6}.table-row:hover{background:#f9fafb}.table-cell{padding:12px 16px;display:flex;align-items:center;font-size:.9rem}.student-info{display:flex;flex-direction:column;gap:2px}.student-name{font-weight:500;color:#1f2937}.student-id{font-size:.8rem;color:#6b7280}.status-badge{padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:500;color:#fff;display:inline-flex;align-items:center;gap:4px}.grade-entry{max-width:1400px}.grade-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.grade-entry-header h2{color:#1f2937;margin:0}.create-exam-btn{padding:10px 20px;background:#059669;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.create-exam-btn:hover:not(:disabled){background:#047857}.create-exam-btn:disabled{opacity:.6;cursor:not-allowed}.selection-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.control-group{display:flex;flex-direction:column;gap:6px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{color:#1f2937;margin:0}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280;padding:4px}.close-btn:hover{color:#374151}.exam-form{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.exam-form textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;resize:vertical}.exam-form textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.form-actions button{padding:10px 20px;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.form-actions button[type=button]{background:#f3f4f6;color:#374151}.form-actions button[type=submit]{background:#3b82f6;color:#fff}.form-actions button:hover{opacity:.9}.grade-stats{background:#f9fafb;padding:20px;border-radius:8px;margin-bottom:24px}.grade-stats h3{color:#1f2937;margin-bottom:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stat-item{text-align:center;padding:12px;background:#fff;border-radius:6px}.stat-item .stat-label{font-size:.8rem;color:#6b7280;margin-bottom:4px}.stat-item .stat-value{font-size:1.25rem;font-weight:600;color:#1f2937}.grades-form{display:flex;flex-direction:column;gap:20px}.exam-info{background:#f0f9ff;padding:16px;border-radius:8px;border-left:4px solid #3b82f6}.exam-info h3{color:#1f2937;margin:0 0 8px}.exam-details{display:flex;gap:20px;flex-wrap:wrap;font-size:.9rem;color:#6b7280}.students-grades{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb}.grades-header{display:grid;grid-template-columns:200px 120px 100px 80px 1fr;background:#f9fafb;border-bottom:1px solid #e5e7eb}.grades-body{max-height:600px;overflow-y:auto}.grade-row{display:grid;grid-template-columns:200px 120px 100px 80px 1fr;border-bottom:1px solid #f3f4f6;align-items:center}.grade-row:hover{background:#f9fafb}.student-cell{padding:12px 16px}.score-cell{padding:12px 16px;display:flex;align-items:center;gap:8px}.score-input{width:60px;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;text-align:center}.score-input:focus{outline:none;border-color:#3b82f6}.max-score{font-size:.85rem;color:#6b7280}.percentage-cell{padding:12px 16px}.percentage{font-weight:500}.percentage.pass{color:#059669}.percentage.fail{color:#dc2626}.grade-cell{padding:12px 16px}.grade-badge{padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:600;color:#fff;display:inline-block;min-width:32px;text-align:center}.grade-badge.grade-a-plus,.grade-badge.grade-a{background:#059669}.grade-badge.grade-b-plus,.grade-badge.grade-b{background:#3b82f6}.grade-badge.grade-c-plus,.grade-badge.grade-c{background:#f59e0b}.grade-badge.grade-d{background:#ef4444}.grade-badge.grade-f{background:#dc2626}.remarks-cell{padding:12px 16px}.remarks-input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem}.remarks-input:focus{outline:none;border-color:#3b82f6}.save-grades-btn{padding:12px 32px;background:#059669;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.save-grades-btn:hover:not(:disabled){background:#047857}.save-grades-btn:disabled{opacity:.6;cursor:not-allowed}.student-feedback{max-width:1200px}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.feedback-header h2{color:#1f2937;margin:0}.add-feedback-btn{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.add-feedback-btn:hover:not(:disabled){background:#2563eb}.add-feedback-btn:disabled{opacity:.6;cursor:not-allowed}.student-info{background:#f0f9ff;padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:.95rem}.feedback-form{display:flex;flex-direction:column;gap:16px}.checkbox-group{display:flex;align-items:center;gap:8px}.checkbox-group input[type=checkbox]{margin:0}.feedback-list{margin-top:24px}.feedback-list h3{color:#1f2937;margin-bottom:16px;display:flex;align-items:center;gap:8px}.feedback-list .count{font-size:.9rem;color:#6b7280;font-weight:400}.feedback-items{display:flex;flex-direction:column;gap:16px}.feedback-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;border-left:4px solid #e5e7eb}.feedback-item.academic{border-left-color:#3b82f6}.feedback-item.behavior{border-left-color:#f59e0b}.feedback-item.participation{border-left-color:#10b981}.feedback-item.general{border-left-color:#6b7280}.feedback-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.feedback-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.feedback-type{font-size:.85rem;font-weight:500;color:#374151}.feedback-subject{font-size:.8rem;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:4px}.feedback-date{font-size:.8rem;color:#6b7280}.private-badge{font-size:.75rem;background:#fef3c7;color:#92400e;padding:2px 6px;border-radius:4px}.feedback-actions{display:flex;gap:8px}.edit-btn,.delete-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s}.edit-btn:hover{background:#f3f4f6}.delete-btn:hover{background:#fee2e2}.feedback-content{margin-bottom:12px}.feedback-title{font-weight:600;color:#1f2937;margin-bottom:8px}.feedback-rating{margin-bottom:8px;font-size:1.1rem}.feedback-text{color:#374151;line-height:1.5;margin:0}.feedback-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#6b7280;border-top:1px solid #f3f4f6;padding-top:8px}.feedback-teacher{font-weight:500}.report-card-generation{max-width:1400px}.generation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.generation-header h2{color:#1f2937;margin:0}.generate-all-btn{padding:10px 20px;background:#059669;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.generate-all-btn:hover:not(:disabled){background:#047857}.generate-all-btn:disabled{opacity:.6;cursor:not-allowed}.students-section{margin-bottom:32px}.students-section h3{color:#1f2937;margin-bottom:16px}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.student-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.student-info{margin-bottom:12px}.student-name{font-weight:600;color:#1f2937;font-size:1rem}.student-id,.student-class{font-size:.85rem;color:#6b7280}.student-actions,.existing-report{display:flex;flex-direction:column;gap:8px}.report-status{color:#059669;font-weight:500;font-size:.9rem}.report-info{display:flex;flex-direction:column;gap:4px}.overall-grade{font-weight:600;font-size:1.1rem}.attendance-info{font-size:.85rem;color:#6b7280}.download-btn{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;font-size:.9rem}.download-btn:hover:not(:disabled){background:#2563eb}.download-btn:disabled{opacity:.6;cursor:not-allowed}.generate-btn{padding:10px 16px;background:#059669;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.generate-btn:hover:not(:disabled){background:#047857}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.report-cards-section{margin-bottom:24px}.report-cards-section h3{color:#1f2937;margin-bottom:16px}.report-cards-list{display:flex;flex-direction:column;gap:16px}.report-card-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.report-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.student-info h4{color:#1f2937;margin:0 0 8px}.report-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:#6b7280}.class-info,.term-info,.generated-date{background:#f3f4f6;padding:2px 8px;border-radius:4px}.report-card-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:16px}.summary-item{text-align:center;padding:12px;background:#f9fafb;border-radius:6px}.summary-label{font-size:.8rem;color:#6b7280;margin-bottom:4px}.summary-value{font-size:1.25rem;font-weight:600;color:#1f2937}.summary-value.grade{font-size:1.5rem}.subjects-preview{margin-bottom:16px}.subjects-preview h5{color:#374151;margin:0 0 8px;font-size:.95rem}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.subject-item{padding:8px 12px;background:#f9fafb;border-radius:4px;text-align:center}.subject-item.more{background:#e5e7eb;color:#6b7280;font-style:italic}.subject-name{font-size:.8rem;color:#6b7280;margin-bottom:2px}.subject-grade{font-weight:600;font-size:.9rem}.feedback-preview{margin-bottom:16px}.feedback-preview h5{color:#374151;margin:0 0 8px;font-size:.95rem}.feedback-items{display:flex;flex-direction:column;gap:6px}.feedback-item{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:#f9fafb;border-radius:4px;font-size:.85rem}.feedback-item.more{background:#e5e7eb;color:#6b7280;font-style:italic;justify-content:center}.feedback-title{font-weight:500;color:#374151}.feedback-type{color:#6b7280;font-size:.8rem}.loading{text-align:center;padding:40px;color:#6b7280;font-style:italic}.error-message{background:#fee2e2;color:#991b1b;padding:12px 16px;border-radius:6px;margin-bottom:16px;border-left:4px solid #dc2626}.success-message{background:#dcfce7;color:#166534;padding:12px 16px;border-radius:6px;margin-bottom:16px;border-left:4px solid #16a34a}.no-data,.no-students,.no-feedback,.no-report-cards{text-align:center;padding:40px;color:#6b7280;font-style:italic;background:#f9fafb;border-radius:8px}@media (max-width: 768px){.academic-content{flex-direction:column}.academic-nav{width:100%}.nav-tabs{flex-direction:row;overflow-x:auto;padding:12px}.nav-tab{flex-shrink:0;min-width:120px}.students-grid,.stats-grid,.filters-grid,.form-controls,.selection-controls{grid-template-columns:1fr}.table-header,.table-row{grid-template-columns:1fr;gap:8px}.table-cell{padding:8px 12px;border-bottom:1px solid #f3f4f6}.grades-header,.grade-row{grid-template-columns:1fr;gap:8px}.modal{width:95%;margin:20px}}.financial-management{padding:20px;max-width:1200px;margin:0 auto}.tab-navigation{display:flex;border-bottom:2px solid #e0e0e0;margin-bottom:30px;gap:5px}.tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:16px;font-weight:500;color:#666;transition:all .3s ease}.tab:hover{color:#333;background-color:#f5f5f5}.tab.active{color:#2563eb;border-bottom-color:#2563eb;background-color:#eff6ff}.finance-dashboard{padding:20px 0}.dashboard-header{margin-bottom:30px}.dashboard-header h2{margin:0 0 8px;color:#1f2937}.dashboard-header p{margin:0;color:#6b7280}.dashboard-section{margin-bottom:40px}.dashboard-section h3{margin:0 0 20px;color:#374151;font-size:20px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.metric-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;border-left:4px solid #e5e7eb;display:flex;align-items:center;gap:16px;transition:transform .2s ease,box-shadow .2s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.metric-card.revenue{border-left-color:#10b981}.metric-card.paid{border-left-color:#059669}.metric-card.outstanding{border-left-color:#f59e0b}.metric-card.overdue{border-left-color:#ef4444}.metric-card.payroll-gross{border-left-color:#3b82f6}.metric-card.payroll-deductions{border-left-color:#f97316}.metric-card.payroll-net{border-left-color:#8b5cf6}.metric-card.payroll-average{border-left-color:#06b6d4}.metric-icon{font-size:32px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:50%}.metric-content h4{margin:0 0 4px;font-size:24px;font-weight:700;color:#1f2937}.metric-content p{margin:0 0 4px;font-size:14px;color:#6b7280;font-weight:500}.metric-content small{font-size:12px;color:#9ca3af}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.action-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:24px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:16px;text-align:left}.action-card:hover{border-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 16px #2563eb1a}.action-icon{font-size:28px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#eff6ff;border-radius:50%}.action-content h4{margin:0 0 4px;color:#1f2937;font-size:16px}.action-content p{margin:0;color:#6b7280;font-size:14px}.health-indicators{display:flex;flex-direction:column;gap:20px}.indicator{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000001a}.indicator-label{min-width:150px;font-weight:500;color:#374151}.progress-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:#10b981;transition:width .3s ease}.progress-fill.outstanding{background:#f59e0b}.progress-fill.overdue{background:#ef4444}.indicator-value{min-width:60px;text-align:right;font-weight:600;color:#1f2937}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:16px}.summary-card.outstanding{border-left:4px solid #f59e0b}.summary-card.overdue{border-left:4px solid #ef4444}.summary-card.pending{border-left:4px solid #3b82f6}.summary-card.paid{border-left:4px solid #10b981}.card-icon{font-size:24px}.card-content h3{margin:0 0 4px;font-size:20px;color:#1f2937}.card-content p{margin:0;font-size:14px;color:#6b7280}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-header{padding:24px 24px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e7eb;margin-bottom:24px}.modal-header h3{margin:0;color:#1f2937}.fee-form,.invoice-form,.payment-form,.salary-form{padding:0 24px 24px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;color:#374151;font-size:14px}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group small{color:#6b7280;font-size:12px}.checkbox-group{flex-direction:row;align-items:center;gap:8px}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:8px}.checkbox-item{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.checkbox-item input[type=checkbox]{margin:0}.form-section{margin:24px 0;padding:20px;background:#f9fafb;border-radius:8px}.form-section h4{margin:0 0 16px;color:#374151}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e5e7eb}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:6px 12px;font-size:12px}.btn-link{background:none;color:#2563eb;text-decoration:underline;padding:4px 8px}.btn-link:hover{color:#1d4ed8}.data-table{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #0000001a}.data-table th{background:#f9fafb;padding:12px 16px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.data-table td{padding:12px 16px;border-bottom:1px solid #f3f4f6;vertical-align:top}.data-table tr:hover{background:#f9fafb}.data-table tr.overdue{background:#fef2f2}.data-table tr.overdue:hover{background:#fee2e2}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:uppercase}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#dbeafe;color:#1e40af}.badge-secondary{background:#f3f4f6;color:#374151}.status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status.active{background:#d1fae5;color:#065f46}.status.inactive{background:#f3f4f6;color:#6b7280}.status.pending{background:#fef3c7;color:#92400e}.filters-section{display:flex;gap:20px;margin-bottom:20px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000001a}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{font-weight:500;color:#374151;font-size:14px}.filter-group input,.filter-group select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px;padding:20px}.page-info{color:#6b7280;font-size:14px}.action-buttons{display:flex;gap:8px}.header-actions{display:flex;gap:12px}.empty-state{text-align:center;padding:40px 20px;color:#6b7280}.empty-state p{margin:0 0 16px;font-size:16px}.error-banner{background:#fee2e2;color:#991b1b;padding:12px 16px;border-radius:6px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.loading{text-align:center;padding:40px 20px;color:#6b7280;font-size:16px}.fee-name strong{display:block;color:#1f2937}.fee-name small{color:#6b7280;font-size:12px}.fee-amount{font-weight:600;color:#059669}.balance-due{color:#dc2626}.balance-paid{color:#059669}.overdue-text{color:#dc2626;font-size:11px;display:block}.invoice-summary{background:#f9fafb;padding:16px;border-radius:8px;margin-bottom:20px}.invoice-summary p{margin:4px 0;display:flex;justify-content:space-between}.payment-instructions{background:#eff6ff;padding:20px;border-radius:8px;margin-top:30px}.payment-instructions h3{margin:0 0 16px;color:#1e40af}.payment-instructions h4{margin:16px 0 8px;color:#374151}.payment-instructions p{margin:0 0 12px;line-height:1.5}.instructions-content{color:#374151}.quick-stats{display:flex;gap:20px;margin-top:30px}.stat-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 4px #0000001a;text-align:center;flex:1}.stat-card h4{margin:0 0 8px;color:#6b7280;font-size:14px;font-weight:500}.stat-value{font-size:24px;font-weight:700;color:#1f2937}@media (max-width: 768px){.financial-management{padding:10px}.tab-navigation{flex-wrap:wrap}.metrics-grid,.quick-actions,.form-row{grid-template-columns:1fr}.filters-section,.action-buttons{flex-direction:column}.modal-content{margin:10px;max-height:calc(100vh - 20px)}.data-table{overflow-x:auto}.data-table table{min-width:600px}}.admin-dashboard{min-height:100vh;background-color:#f5f7fa}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 2rem;box-shadow:0 2px 8px #0000001a}.header-content{width:100%;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.school-info h1{margin:0;font-size:1.75rem;font-weight:600}.school-code{margin:.25rem 0 0;opacity:.9;font-size:.875rem}.user-info{display:flex;align-items:center;gap:1rem}.user-name{font-weight:500}.btn-logout{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s}.btn-logout:hover{background:#ffffff4d}.dashboard-container{width:100%;padding:2rem;display:flex;flex-direction:column;gap:2rem}.dashboard-sidebar{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000d;height:fit-content;position:sticky;top:2rem}.setup-progress{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.setup-progress h3{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.5px}.progress-steps{display:flex;flex-direction:column;gap:.75rem}.progress-step{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:8px;background:#f7fafc;border:2px solid transparent}.progress-step.completed{background:#f0fff4;border-color:#9ae6b4}.progress-step.current{background:#ebf8ff;border-color:#90cdf4;box-shadow:0 0 0 3px #4299e11a}.progress-step.pending{opacity:.6}.step-icon{font-size:1.5rem;flex-shrink:0}.step-content{display:flex;flex-direction:column;gap:.125rem}.step-number{font-size:.75rem;font-weight:600;color:#718096}.step-title{font-size:.875rem;font-weight:500;color:#2d3748}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.sidebar-nav h3{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.5px}.nav-item{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;width:100%}.nav-item:hover{background:#f5f7fa}.nav-item.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.nav-icon{font-size:1.5rem;flex-shrink:0}.nav-content{display:flex;flex-direction:column;gap:.25rem}.nav-title{font-weight:600;font-size:.875rem}.nav-description{font-size:.75rem;opacity:.7}.nav-item.active .nav-description{opacity:.9}.dashboard-main{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d;min-height:600px}.view-container{max-width:100%}.view-container h2{margin:0 0 1.5rem;color:#2d3748;font-size:1.75rem}.setup-workflow-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 12px #0000000d}.workflow-card-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.workflow-card-header h3{margin:0 0 .5rem;color:#2d3748;font-size:1.5rem}.workflow-card-header p{margin:0;color:#718096;font-size:.875rem}.workflow-steps-list{display:flex;flex-direction:column;gap:1.5rem}.workflow-step-item{display:flex;gap:1.5rem;padding:1.5rem;border-radius:12px;background:#f7fafc;border:2px solid #e2e8f0;transition:all .3s}.workflow-step-item.completed{background:linear-gradient(135deg,#f0fff4,#c6f6d5);border-color:#9ae6b4}.workflow-step-item.current{background:linear-gradient(135deg,#ebf8ff,#bee3f8);border-color:#4299e1;box-shadow:0 4px 12px #4299e14d;transform:scale(1.02)}.workflow-step-item.pending{opacity:.7}.step-indicator{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-shrink:0}.step-icon-large{font-size:3rem;line-height:1}.step-number-badge{background:#667eea;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.workflow-step-item.completed .step-number-badge{background:#48bb78}.workflow-step-item.current .step-number-badge{background:#4299e1}.workflow-step-item.pending .step-number-badge{background:#a0aec0}.step-details{flex:1;display:flex;flex-direction:column;gap:.5rem}.step-details h4{margin:0;color:#2d3748;font-size:1.125rem;font-weight:600}.step-details p{margin:0;color:#4a5568;font-size:.875rem;line-height:1.5}.step-status-badge{margin-top:.5rem}.badge{display:inline-block;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.badge.completed{background:#c6f6d5;color:#22543d}.badge.current{background:#bee3f8;color:#2c5282}.badge.pending{background:#e2e8f0;color:#718096}.stats-section{margin-bottom:2rem}.stats-section h3{margin:0 0 1rem;color:#2d3748;font-size:1.25rem}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.view-header h2{margin:0}.workflow-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem}.workflow-step{display:flex;flex-direction:column;gap:.5rem}.step-badge{display:inline-block;background:#fff3;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;width:fit-content}.workflow-header h2{margin:0;font-size:1.5rem}.workflow-header p{margin:0;opacity:.9;font-size:.875rem}.tab-navigation{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:500;color:#718096;transition:all .2s;margin-bottom:-2px}.tab-btn:hover{color:#4a5568;background:#f7fafc}.tab-btn.active{color:#667eea;border-bottom-color:#667eea;background:#f7fafc}.tab-btn span{font-size:1.25rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-radius:12px;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 12px #667eea4d}.stat-icon{font-size:2.5rem}.stat-content h3{margin:0;font-size:.875rem;font-weight:500;opacity:.9}.stat-number{margin:.5rem 0 0;font-size:2rem;font-weight:700}.quick-actions{margin-top:2rem}.quick-actions h3{margin:0 0 1rem;color:#2d3748}.action-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.action-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:500;color:#4a5568}.action-btn:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea33}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.search-filter{display:flex;gap:1rem;margin-bottom:1.5rem}.search-input{flex:1;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem}.search-input:focus{outline:none;border-color:#667eea}.filter-select{padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;min-width:200px}.filter-select:focus{outline:none;border-color:#667eea}.data-table{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.data-table table{width:100%;border-collapse:collapse}.data-table thead{background:#f7fafc}.data-table th{padding:1rem;text-align:left;font-weight:600;color:#4a5568;font-size:.875rem;border-bottom:2px solid #e2e8f0}.data-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:#2d3748}.data-table tbody tr:hover{background:#f7fafc}.empty-state{text-align:center;padding:3rem 1rem!important;color:#a0aec0;font-style:italic}.onboarding-status{display:flex;flex-direction:column;gap:1rem;margin:2rem 0}.status-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f0fff4;border:2px solid #9ae6b4;border-radius:8px;color:#22543d}.status-item.pending{background:#fffaf0;border-color:#fbd38d;color:#744210}.status-icon{font-size:1.5rem}.linkage-form,.assignment-form{background:#f7fafc;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#4a5568;font-size:.875rem}.form-select{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem}.form-select:focus{outline:none;border-color:#667eea}.form-select[multiple]{min-height:120px}.existing-links,.existing-assignments{margin-top:2rem}.existing-links h3,.existing-assignments h3{margin:0 0 1rem;color:#2d3748;font-size:1.25rem}@media (max-width: 1024px){.dashboard-container{grid-template-columns:1fr}.dashboard-sidebar{position:static}.sidebar-nav{flex-direction:row;overflow-x:auto}.nav-item{min-width:200px}}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem;text-align:center}.dashboard-container{padding:0}.dashboard-main{display:flex;flex-direction:row;padding:0}.dashboard-sidebar{width:60px;min-width:60px;padding:.5rem;border-radius:0;position:fixed;left:0;top:0;bottom:0;z-index:99;overflow-y:auto;box-shadow:2px 0 8px #0000001a}.sidebar-overlay{display:none}.dashboard-content{margin-left:60px;width:calc(100% - 60px);padding:1rem;border-radius:0}.setup-progress,.setup-nav h3{display:none}.setup-item{flex-direction:column;padding:.75rem .5rem;gap:.25rem;min-height:60px;justify-content:center;align-items:center}.item-icon{font-size:1.5rem;margin:0}.item-content,.item-status{display:none}.setup-item:hover:after{content:attr(title);position:absolute;left:65px;background:#2d3748;color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.75rem;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #00000026}.setup-item{position:relative}.setup-item.active{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px}.setup-item.active .item-icon{filter:brightness(0) invert(1)}.sidebar-close-btn{display:none}.stats-grid,.action-buttons{grid-template-columns:1fr}.search-filter{flex-direction:column}.form-row{grid-template-columns:1fr}.mobile-menu-btn{display:block;position:fixed;bottom:20px;right:20px;z-index:1001;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:30px;box-shadow:0 4px 12px #0003;font-weight:600;cursor:pointer}.dashboard-sidebar.active{width:280px;padding:1.5rem}.dashboard-sidebar.active .item-content,.dashboard-sidebar.active .item-status,.dashboard-sidebar.active .setup-progress,.dashboard-sidebar.active .setup-nav h3,.dashboard-sidebar.active .sidebar-close-btn{display:block}.dashboard-sidebar.active .setup-item{flex-direction:row;padding:1rem}.dashboard-sidebar.active .item-icon{font-size:1.5rem}.sidebar-overlay.active{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:98}}@media (max-width: 480px){.dashboard-sidebar{width:50px;min-width:50px;padding:.25rem}.dashboard-content{margin-left:50px;width:calc(100% - 50px);padding:.75rem}.setup-item{padding:.5rem .25rem;min-height:50px}.item-icon{font-size:1.25rem}.stat-card{padding:1rem}.stat-icon{font-size:2rem}.stat-number{font-size:1.5rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003;animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.modal-header h2{margin:0;color:#2d3748;font-size:1.5rem}.close-btn{background:none;border:none;font-size:2rem;color:#718096;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#f7fafc;color:#2d3748}.modal-form{display:flex;flex-direction:column;gap:1rem}.modal-form .form-group input,.modal-form .form-group select,.modal-form .form-group textarea{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.875rem;transition:border-color .2s}.modal-form .form-group input:focus,.modal-form .form-group select:focus,.modal-form .form-group textarea:focus{outline:none;border-color:#667eea}.modal-form .form-group textarea{resize:vertical;font-family:inherit}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e2e8f0}.btn-secondary{padding:.75rem 1.5rem;background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;color:#4a5568}.btn-secondary:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0}.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}.error-message{background:#fed7d7;color:#c53030;padding:.75rem;border-radius:8px;font-size:.875rem;margin-bottom:1rem}.success-message{background:#c6f6d5;color:#22543d;padding:.75rem;border-radius:8px;font-size:.875rem;margin-bottom:1rem}
