@import"https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";.navbar{display:flex;justify-content:space-between;align-items:center;background-color:#fff;box-shadow:0 2px 5px #0000001a;padding:15px 50px;position:sticky;top:0}.navbar-logo{font-size:24px;font-weight:700;color:#6a0dad}.navbar-links{list-style:none;display:flex;gap:25px;margin:0}.navbar-links a{text-decoration:none;color:#06c;font-weight:500;transition:color .3s}.navbar-links a:hover{color:#6a0dad}.hero{background:linear-gradient(90deg,#5b73f2,#7456c2);color:#fff;text-align:center;padding:120px 20px}.hero-content{max-width:800px;margin:0 auto}.hero h1{font-size:3.5rem;font-weight:800;margin-bottom:20px}.hero p{font-size:1.2rem;line-height:1.6;margin-bottom:40px;color:#f0f0f0}.hero-buttons{display:flex;justify-content:center;gap:20px}.btn-primary{background-color:#fff;color:#4b63e0;border:none;padding:12px 30px;font-size:1rem;font-weight:600;border-radius:5px;cursor:pointer;transition:background .3s,color .3s}.btn-primary:hover{background-color:#f5f5f5}.btn-outline{background:transparent;color:#fff;border:2px solid #ffffff;padding:12px 30px;font-size:1rem;font-weight:600;border-radius:5px;cursor:pointer;transition:background .3s,color .3s}.btn-outline:hover{background-color:#fff;color:#6a0dad}@media (max-width: 768px){.hero h1{font-size:2.2rem}.hero-buttons{flex-direction:column;gap:15px}}.why-container{max-width:1200px;margin:60px auto;padding:20px;text-align:center;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.why-title{font-size:2rem;font-weight:700;color:#111;margin-bottom:10px}.why-subtitle{color:#555;font-size:1.1rem;max-width:700px;margin:0 auto 40px;line-height:1.6}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:25px}.feature-card{background:#fff;border:1px solid #e3e3e3;border-radius:10px;padding:25px;text-align:left;box-shadow:0 4px 12px #0000000d;transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 6px 16px #0000001a}.feature-number{width:60px;height:60px;border-radius:50%;color:#fff;font-weight:700;font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin-bottom:15px}.feature-title{font-size:1.2rem;font-weight:700;color:#111;margin-bottom:10px}.feature-description{color:#555;font-size:1rem;line-height:1.6}@media (max-width: 768px){.why-title{font-size:1.6rem}.why-subtitle{font-size:1rem}.feature-card{padding:20px}.feature-number{width:50px;height:50px;font-size:1.2rem}}:root{--primary-pink: #f75d86;--light-pink: #ffc4e1;--dark-pink: #e7336a;--white: #ffffff}.cta-container{background:linear-gradient(to right,var(--light-pink),var(--dark-pink),var(--primary-pink));padding:80px 20px;display:flex;justify-content:center;align-items:center;text-align:center}.cta-content{max-width:800px;width:100%}.cta-headline{font-size:2.5rem;font-weight:700;color:var(--white);margin-bottom:1rem}.cta-text{font-size:1.15rem;color:var(--white);line-height:1.6;margin-bottom:2.5rem;max-width:650px;margin-left:auto;margin-right:auto}.cta-buttons{display:flex;gap:20px;justify-content:center}.cta-button{padding:14px 30px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.primary-button{background-color:var(--white);color:var(--primary-pink);border:2px solid var(--white)}.primary-button:hover{background-color:transparent;color:var(--white)}.secondary-button{background-color:var(--primary-pink);color:var(--white);border:2px solid var(--primary-pink)}.secondary-button:hover{background-color:var(--dark-pink);border-color:var(--dark-pink)}.stats-section{display:flex;justify-content:space-around;align-items:center;background-color:#f3f5f9;padding:60px 20px;flex-wrap:wrap}.stat-item{text-align:center;margin:20px}.stat-item h2{font-size:2.5rem;color:#7a63c8;font-weight:800;margin-bottom:10px}.stat-item p{color:#333;font-size:1.1rem;font-weight:500}.footer{background-color:#f8f9fc;padding:60px 40px 20px;color:#333;border-top:1px solid #e0e0e0}.footer-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:40px;margin-bottom:40px}.footer-column h3{font-size:1.5rem;color:#7a63c8;margin-bottom:15px}.footer-column h4{font-size:1.1rem;font-weight:700;margin-bottom:15px}.footer-column p{color:#555;line-height:1.6;font-size:.95rem}.footer-column ul{list-style:none;padding:0}.footer-column li{margin-bottom:10px}.footer-column a{text-decoration:none;color:#1e63c6;font-weight:500;transition:color .3s}.footer-column a:hover{color:#6a0dad}.footer-bottom{border-top:1px solid #ddd;text-align:center;padding-top:20px;font-size:.9rem;color:#555}.heart{color:red}@media (max-width: 768px){.stats-section{flex-direction:column;text-align:center}.stat-item{margin-bottom:25px}.footer-container{text-align:center}}.courses-section{padding:40px;text-align:center;background-color:#f9f9f9;font-family:Arial,sans-serif}.courses-section h2{font-size:32px;margin-bottom:20px;color:#333}.courses-section p{font-size:18px;margin-bottom:30px;color:#555}.coming-soon{border:2px dashed #ff6b6b;padding:20px;background-color:#fff3f3;display:inline-block;border-radius:8px}.coming-soon h3{font-size:24px;margin-bottom:10px;color:#ff4b4b}.coming-soon p{font-size:16px;color:#777}.login-wrapper{display:flex;height:100vh;font-family:Segoe UI,sans-serif}.login-slider{flex:2;position:relative;background:#0aa8f2;overflow:hidden}.login-slider img{width:100%;height:100%;object-fit:cover}.slider-dots{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;gap:8px}.dot{width:10px;height:10px;background:#ffffff80;border-radius:50%}.dot.active{background:#fff}.login-form-section{flex:1;background:#fff;padding:80px 90px;display:flex;flex-direction:column;justify-content:center}.login-form-section h2{font-size:32px;margin-bottom:5px}.subtitle{color:#666;margin-bottom:30px}.login-form{display:flex;flex-direction:column;gap:18px}.login-form input{padding:14px;font-size:15px;border-radius:6px;border:1px solid #ddd}.login-form input:focus{outline:none;border-color:#0aa8f2}.login-form button{padding:14px;background:#0aa8f2;color:#fff;font-size:16px;border:none;border-radius:6px;cursor:pointer}.login-form button:hover{background:#028fd0}.error-msg{color:red;margin-bottom:10px}@media (max-width: 900px){.login-wrapper{flex-direction:column}.login-slider{height:300px}.login-form-section{padding:40px 25px}}.role-toggle{display:flex;background:#eaf6ff;border-radius:30px;padding:5px;margin-bottom:25px;width:fit-content}.role-toggle button{padding:10px 22px;border-radius:25px;border:none;background:transparent;cursor:pointer;font-weight:600;color:#0aa8f2;transition:.25s}.role-toggle button.active{background:#0aa8f2;color:#fff;box-shadow:0 3px 8px #00000026}.school-dashboard-container{display:flex;height:auto;background-color:#f8fcfa;font-family:Poppins,sans-serif}.sidebar{width:250px;min-height:100vh;background:linear-gradient(90deg,#5a6fe0,#6b4298);color:#fff;padding:20px;display:flex;flex-direction:column}.sidebar-title{font-size:32px;font-weight:700;margin-top:-10px;margin-bottom:30px;text-align:center}.sidebar-menu{list-style:none;padding:0}.sidebar-menu li{margin:15px 0;padding:10px;border-radius:8px;cursor:pointer;transition:background .3s ease;display:flex;align-items:center;gap:12px}.sidebar-menu li:hover{background-color:#3b82f6}.sidebar-menu li svg{font-size:18px;min-width:20px}.sidebar .logout-btn{margin-top:auto;background-color:#ef4444!important;color:#fff!important;border:none;padding:12px;border-radius:6px;cursor:pointer;font-weight:600;transition:background .3s ease;display:block;width:100%}.sidebar .logout-btn:hover{background-color:#dc2626}.dashboard-content{flex:1;padding:10px;overflow-y:auto}.dashboard-content h2{color:#1e3a8a;margin-bottom:20px}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.card{background-color:#fff;padding:20px;border-radius:10px;box-shadow:0 3px 6px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-5px);box-shadow:0 5px 10px #00000026}.school-logo{width:80px;height:100px;object-fit:cover;display:block;margin:15px auto}.toggle-btn{background:#fff;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;margin-bottom:15px;font-weight:700}.sidebar.collapsed{width:70px;padding:20px 10px;transition:width .3s ease}.sidebar{transition:width .3s ease}.sidebar.collapsed .sidebar-title,.sidebar.collapsed .logout-btn{display:none}.sidebar.collapsed .sidebar-menu li{text-align:center}.nav-title{margin-top:20px;font-size:13px;font-weight:600;opacity:.8}.nav-badge{margin-left:auto;background:#ef4444;color:#fff;font-size:11px;padding:2px 8px;border-radius:20px}.submenu{list-style:none;padding-left:35px;margin-top:5px}.submenu li{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer;font-size:14px;color:#eff1f4;transition:.3s ease;border-radius:6px}.submenu li:hover{background:#eef2ff;color:#4f46e5}.submenu-icon{font-size:14px}.tm-page{padding:20px;background:#f5f6fa;min-height:100vh}.tm-header{background:linear-gradient(90deg,#6a6ff5,#8b5fbf);color:#fff;padding:24px;border-radius:18px;display:flex;justify-content:space-between;align-items:center}.tm-add-btn{background:#ffffff40;border:none;padding:12px 18px;border-radius:12px;color:#fff;cursor:pointer;transition:all .2s ease}.tm-header h2{color:#fff;margin:0 0 5px}.tm-add-btn:hover{background:#ffffff59}.tm-filters{background:#fff;margin:20px 0;padding:16px;border-radius:14px;display:grid;grid-template-columns:2fr 2fr 1fr auto;gap:12px}.tm-filters input,.tm-filters select{padding:10px;border-radius:8px;border:1px solid #ddd}.tm-filters .clear{background:#f1f1f1;border:none;border-radius:8px;cursor:pointer;padding:10px 15px}.tm-filters .clear:hover{background:#e5e5e5}.tm-table-container{overflow-x:auto;border-radius:12px;background:#fff;width:100%}.tm-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:900px}.tm-table th{text-align:left;font-weight:600;background:#f8f9fa}.tm-table th,.tm-table td{padding:14px 12px;border-bottom:1px solid #eee;vertical-align:middle}.tm-table th:nth-child(1){width:80px}.tm-table th:nth-child(2){width:200px}.tm-table th:nth-child(3){width:120px}.tm-table th:nth-child(4){width:140px}.tm-table th:nth-child(5){width:120px}.tm-table th:nth-child(6){width:180px}.tm-photo{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 2px 5px #0000001a;transition:all .3s ease}.tm-photo:hover{transform:scale(1.1);border-color:#6a6ff5}.tm-photo-placeholder{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#6a6ff5,#8b5fbf);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;text-transform:uppercase;border:2px solid #fff;box-shadow:0 2px 5px #0000001a}.tm-table td:first-child{position:relative;width:60px;height:60px;display:flex;align-items:center;justify-content:center}.view{background:#2196f3}.edit{background:#4caf50}.delete{background:#f44336}.view,.edit,.delete{color:#fff;border:none;padding:8px 12px;border-radius:6px;margin-right:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;min-width:60px}.view:hover{background:#1976d2}.edit:hover{background:#388e3c}.delete:hover{background:#d32f2f}.tm-empty-state{text-align:center;padding:40px;color:#999;font-size:16px}.tm-form{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;background:#fff;padding:24px;border-radius:16px}.tm-form input,.tm-form select,.tm-form textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #e0e0e0;font-size:14px;outline:none;transition:all .2s ease;background:#fafafa}.tm-form input:focus,.tm-form textarea:focus,.tm-form select:focus{border-color:#6a6ff5;box-shadow:0 0 0 3px #6a6ff51a;background:#fff}.tm-form textarea{resize:vertical;min-height:100px;grid-column:span 2}.tm-form .full{grid-column:span 2}.tm-form-actions{grid-column:span 2;display:flex;justify-content:flex-end;gap:15px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.tm-form-actions button{padding:12px 28px;border-radius:10px;border:none;cursor:pointer;font-weight:500;font-size:15px;transition:all .2s ease}.tm-form-actions .save{background:#6a6ff5;color:#fff;box-shadow:0 4px 10px #6a6ff54d}.tm-form-actions .save:hover{background:#5a5fd5;transform:translateY(-2px);box-shadow:0 6px 15px #6a6ff566}.tm-form-actions .cancel{background:#f5f5f5;color:#666}.tm-form-actions .cancel:hover{background:#e8e8e8;transform:translateY(-2px)}.tm-header .tm-add-btn:last-child{background:#fff3;border:1px solid rgba(255,255,255,.3);font-size:14px;padding:12px 24px}.tm-header .tm-add-btn:last-child:hover{background:#ffffff4d}.tm-loading{text-align:center;padding:40px;color:#999}@media (max-width: 1024px){.tm-form{grid-template-columns:1fr}.tm-form textarea,.tm-form .full,.tm-form-actions{grid-column:span 1}}@media (max-width: 768px){.tm-header{flex-direction:column;text-align:center;gap:15px}.tm-filters{grid-template-columns:1fr}.tm-form-actions{flex-direction:column}.tm-form-actions button{width:100%}.tm-header .tm-add-btn:last-child{width:100%}}.tm-page{transition:all .3s ease}.tm-card{transition:transform .2s ease,box-shadow .2s ease}.tm-card:hover{box-shadow:0 8px 20px #0000000d}.student-page{padding:20px;background:#f5f7fb}.student-header{background:linear-gradient(90deg,#6b7cff,#7c5db0);color:#fff;padding:20px 24px;border-radius:16px;display:flex;justify-content:space-between;align-items:center}.back-btn{background:#fff3;border:none;padding:10px;border-radius:10px;color:#fff;cursor:pointer}.add-btn{background:#ffffff40;border:none;padding:10px 18px;border-radius:10px;color:#fff;display:flex;gap:8px;cursor:pointer}.filter-card{background:#fff;margin-top:20px;padding:20px;border-radius:14px}.filter-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:16px;margin-top:16px}.filter-input{display:flex;align-items:center;gap:10px;border:1px solid #ddd;padding:10px 12px;border-radius:10px}.filter-input input,.filter-input select{border:none;outline:none;width:100%}.clear-btn{background:#f1f3f6;border:none;border-radius:10px;padding:10px 16px;cursor:pointer}.table-card{background:#fff;margin-top:20px;padding:20px;border-radius:14px}table{width:100%;border-collapse:collapse;margin-top:12px}th{text-align:left;padding:12px;color:#555;border-bottom:2px solid #eee}td{padding:14px 12px;border-bottom:1px solid #eee}.roll{color:#2563eb;font-weight:600}.class-chip{background:#e7f0ff;color:#2563eb;padding:6px 10px;border-radius:999px;font-size:13px}.view-btn{background:#e7f0ff;border:none;padding:8px 14px;border-radius:8px;color:#2563eb;cursor:pointer}.student-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid #ddd}.no-photo{font-size:12px;color:#999}.fee-management-container{max-width:1440px;margin:0 auto;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.fee-header{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:28px 36px;margin-bottom:28px;box-shadow:0 20px 35px -10px #0003;transition:all .3s ease;animation:slideDown .5s cubic-bezier(.68,-.55,.265,1.55)}.fee-header-left{display:flex;align-items:center;gap:20px}.fee-icon-circle{width:64px;height:64px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 25px -5px #667eea66;transition:transform .3s ease}.fee-header-left:hover .fee-icon-circle{transform:scale(1.05) rotate(5deg)}.fee-header-left h1{margin:0 0 6px;font-size:32px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.fee-header-left p{margin:0;color:#6b7280;font-size:15px;font-weight:500}.fee-search-section{margin-bottom:28px;animation:fadeInUp .5s ease-out}.fee-search-box{display:flex;align-items:center;gap:12px;background:#fffffffa;padding:8px 20px;border-radius:60px;box-shadow:0 8px 20px #0000001a;transition:all .3s ease}.fee-search-box:focus-within{box-shadow:0 12px 30px #667eea33;transform:translateY(-2px)}.fee-search-box input{flex:1;border:none;outline:none;padding:14px 0;font-size:15px;background:transparent;font-weight:500;color:#1f2937}.fee-search-box input::placeholder{color:#9ca3af;font-weight:400}.fee-search-box button{padding:10px 28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.fee-search-box button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.clear-btn{background:#6b7280!important;box-shadow:0 4px 12px #6b72804d!important}.clear-btn:hover{background:#4b5563!important}.fee-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px;animation:fadeInUp .6s ease-out}.fee-stat-card{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:24px;display:flex;align-items:center;gap:20px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 6px #00000012}.fee-stat-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eea1a,#764ba21a);transform:translate(-100%);transition:transform .5s ease}.fee-stat-card:hover:before{transform:translate(0)}.fee-stat-card:hover{transform:translateY(-6px);box-shadow:0 20px 30px -10px #00000026}.fee-stat-icon{width:60px;height:60px;border-radius:18px;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .3s ease;position:relative;z-index:1}.fee-stat-card:hover .fee-stat-icon{transform:scale(1.1) rotate(5deg)}.fee-stat-icon.blue{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 8px 20px #3b82f64d}.fee-stat-icon.green{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 20px #10b9814d}.fee-stat-icon.orange{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 8px 20px #f59e0b4d}.fee-stat-info{flex:1;position:relative;z-index:1}.fee-stat-info h3{margin:0 0 6px;font-size:14px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.fee-stat-value{margin:0;font-size:32px;font-weight:800;background:linear-gradient(135deg,#1f2937,#374151);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.students-table-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:24px;overflow-x:auto;box-shadow:0 8px 20px #0000001a;animation:fadeInUp .7s ease-out}.students-table{width:100%;border-collapse:separate;border-spacing:0 12px}.students-table thead th{text-align:left;padding:16px 20px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);font-weight:700;font-size:13px;color:#4b5563;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.students-table tbody tr{background:#fff;transition:all .3s ease;border-radius:16px;box-shadow:0 2px 4px #0000000d}.students-table tbody tr:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001a;background:linear-gradient(90deg,#fff,#f9fafb)}.students-table td{padding:16px 20px;border-bottom:1px solid #f3f4f6;font-size:14px;vertical-align:middle;color:#374151}.photo-cell{width:60px}.student-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 4px 12px #0000001a;transition:transform .3s ease}.student-avatar:hover{transform:scale(1.1)}.student-name{font-weight:700;color:#1f2937;font-size:15px}.class-badge,.section-badge{display:inline-block;padding:6px 14px;border-radius:30px;font-size:12px;font-weight:700;letter-spacing:.3px}.class-badge{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;box-shadow:0 2px 4px #3b82f61a}.section-badge{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;box-shadow:0 2px 4px #10b9811a}.view-fee-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.view-fee-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.fee-modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.fee-modal-container{background:#fff;border-radius:32px;width:90%;max-width:1000px;max-height:90vh;overflow-y:auto;animation:slideUp .4s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 25px 50px -12px #00000040}.fee-modal-container::-webkit-scrollbar{width:8px}.fee-modal-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.fee-modal-container::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px}.fee-modal-header{display:flex;justify-content:space-between;align-items:center;padding:28px 32px;border-bottom:2px solid #f3f4f6;position:sticky;top:0;background:#fff;z-index:10;border-radius:32px 32px 0 0}.fee-modal-header h2{margin:0;font-size:26px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-close-btn{background:#f3f4f6;border:none;width:40px;height:40px;border-radius:50%;font-size:20px;cursor:pointer;color:#6b7280;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:#fee2e2;color:#dc2626;transform:rotate(90deg)}.student-info-card{display:flex;align-items:center;gap:24px;padding:28px 32px;background:linear-gradient(135deg,#f9fafb,#fff);margin:24px;border-radius:20px;box-shadow:0 4px 12px #0000000d}.student-avatar-large{width:90px;height:90px;flex-shrink:0}.student-avatar-large img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid white;box-shadow:0 8px 20px #00000026}.student-info-details{flex:1}.student-info-details h3{margin:0 0 12px;font-size:22px;font-weight:800;color:#1f2937}.info-badges{display:flex;gap:12px;flex-wrap:wrap}.info-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border-radius:30px;font-size:13px;font-weight:600;color:#4b5563;box-shadow:0 2px 4px #0000000d;transition:all .3s ease}.info-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.fee-summary-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding:0 32px;margin-bottom:28px}.summary-mini-card{background:linear-gradient(135deg,#f9fafb,#fff);border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;border:1px solid #e5e7eb;transition:all .3s ease}.summary-mini-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0000001a;border-color:#667eea}.summary-mini-icon{width:50px;height:50px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .3s ease}.summary-mini-card:hover .summary-mini-icon{transform:scale(1.1) rotate(5deg)}.summary-mini-card label{font-size:12px;font-weight:600;color:#6b7280;display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.summary-mini-card h4{margin:0;font-size:22px;font-weight:800;color:#1f2937}.fee-table-wrapper{padding:0 32px;overflow-x:auto}.fee-structure-table{width:100%;border-collapse:separate;border-spacing:0 8px}.fee-structure-table thead th{text-align:left;padding:16px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);font-weight:700;font-size:13px;color:#4b5563;text-transform:uppercase;letter-spacing:.5px;border-radius:12px 12px 0 0}.fee-structure-table tbody tr{background:#fff;transition:all .3s ease;border-radius:12px;box-shadow:0 2px 4px #0000000d}.fee-structure-table tbody tr:hover{background:linear-gradient(90deg,#f9fafb,#fff);transform:translate(4px)}.fee-structure-table td{padding:16px;border-bottom:1px solid #f3f4f6}.fee-row{cursor:pointer}.fee-type{display:flex;align-items:center;gap:10px;font-weight:600;color:#1f2937}.frequency-badge{display:inline-block;padding:6px 14px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border-radius:30px;font-size:12px;font-weight:700}.yearly-amount{font-weight:800;color:#10b981;font-size:16px}.expand-row-btn{background:none;border:none;cursor:pointer;color:#6b7280;transition:all .3s ease;padding:8px;border-radius:8px}.expand-row-btn:hover{background:#f3f4f6;color:#667eea;transform:scale(1.1)}.fee-details-row{background:linear-gradient(135deg,#f9fafb,#fff)}.fee-details{padding:24px;animation:slideDown .3s ease}.detail-item{margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.detail-item strong{min-width:160px;font-size:13px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.detail-item span{color:#374151;font-weight:500}.detail-item.full-width{flex-direction:column;gap:8px}.schedule-list{margin:8px 0 0 20px;color:#4b5563}.schedule-list li{margin:6px 0;font-size:13px}.total-row{background:linear-gradient(135deg,#f9fafb,#f3f4f6);font-weight:800;border-radius:12px}.total-row td{padding:20px 16px;border-top:2px solid #e5e7eb}.grand-total{font-size:20px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fee-notes{margin:28px 32px;padding:20px 24px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;border-left:5px solid #f59e0b}.notes-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#92400e;font-weight:700}.fee-notes ul{margin:0;padding-left:24px;color:#78350f}.fee-notes li{margin:8px 0;font-size:13px;line-height:1.5}.modal-footer{padding:24px 32px;border-top:2px solid #f3f4f6;text-align:right;background:#fff;border-radius:0 0 32px 32px}.close-modal-btn{padding:12px 28px;background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease;box-shadow:0 4px 12px #6b72804d}.close-modal-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6b728066;background:linear-gradient(135deg,#4b5563,#374151)}.loading-state,.fee-loading{text-align:center;padding:80px;color:#6b7280}.spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.spinner-small{width:35px;height:35px;border:3px solid #e5e7eb;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 15px}.empty-state{text-align:center;padding:80px;color:#9ca3af}.empty-icon{margin-bottom:20px;opacity:.5}.empty-state p{font-size:16px;font-weight:500}.no-fee-structure{text-align:center;padding:80px 40px;color:#9ca3af}.no-fee-structure h3{margin:20px 0 12px;font-size:22px;color:#4b5563}.no-fee-structure p{margin-bottom:8px}.contact-message{margin-top:20px;font-size:14px;color:#6b7280;font-style:italic}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.fee-management-container{padding:20px}.fee-header{padding:24px 28px}.fee-header-left h1{font-size:28px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.fee-management-container{padding:16px}.fee-header{padding:20px}.fee-header-left{flex-direction:column;text-align:center}.fee-header-left h1{font-size:24px}.fee-stats-grid{grid-template-columns:1fr;gap:16px}.students-table-container{padding:16px}.students-table thead th,.students-table td{padding:12px;font-size:12px}.student-avatar{width:36px;height:36px}.view-fee-btn{padding:6px 12px;font-size:11px}.fee-summary-cards{grid-template-columns:1fr;padding:0 20px}.fee-table-wrapper{padding:0 20px}.student-info-card{flex-direction:column;text-align:center;margin:16px;padding:20px}.info-badges{justify-content:center}.fee-notes{margin:20px;padding:16px}.fee-modal-header{padding:20px}.fee-modal-header h2{font-size:20px}.detail-item{flex-direction:column;gap:6px}.detail-item strong{min-width:auto}}@media (max-width: 480px){.fee-search-box{flex-wrap:wrap;padding:12px;border-radius:20px}.fee-search-box input{width:100%;order:1}.fee-search-box button{flex:1;order:2}.clear-btn{order:3}.students-table{font-size:11px}.class-badge,.section-badge{padding:4px 8px;font-size:10px}.fee-modal-container{width:95%}.student-avatar-large{width:70px;height:70px}.student-info-details h3{font-size:18px}.info-badge{font-size:11px;padding:5px 10px}}@media print{.fee-management-container{background:#fff;padding:0}.fee-search-section,.fee-stats-grid,.view-fee-btn,.modal-close-btn,.close-modal-btn,.expand-row-btn{display:none}.fee-header{background:#fff;box-shadow:none;border:1px solid #e5e7eb}.students-table-container,.fee-modal-container{box-shadow:none;border:1px solid #e5e7eb}.student-avatar{filter:grayscale(100%)}}.fee-row{transition:all .3s ease}.summary-mini-card,.fee-stat-card,.students-table tbody tr{transition:all .3s cubic-bezier(.4,0,.2,1)}.fee-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fee-header-left div h1,.fee-header-left div p{color:#fff!important}.fee-header-left div h1{background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:white!important;background-clip:unset!important;color:#fff!important}.fee-header-left div p{color:#fffffff2!important}.pay-action-cell{text-align:center}.pay-now-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s ease;box-shadow:0 2px 8px #10b9814d}.pay-now-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166;background:linear-gradient(135deg,#059669,#047857)}.payment-modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .3s ease}.payment-modal-container{background:#fff;border-radius:24px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease;box-shadow:0 25px 50px -12px #00000040}.payment-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:2px solid #f3f4f6;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px 24px 0 0}.payment-modal-header h2{margin:0;font-size:24px;font-weight:700;color:#fff}.payment-modal-close{background:#fff3;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .3s ease}.payment-modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.payment-modal-body{padding:28px}.payment-student-info{display:flex;align-items:center;gap:16px;padding:16px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-radius:16px;margin-bottom:24px}.payment-student-avatar{width:60px;height:60px;flex-shrink:0}.payment-student-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 4px 12px #0000001a}.payment-student-details h4{margin:0 0 4px;font-size:16px;font-weight:700;color:#1f2937}.payment-student-details p{margin:2px 0;font-size:13px;color:#6b7280}.payment-fee-details{background:#fef3c7;padding:16px;border-radius:12px;margin-bottom:24px;border-left:4px solid #f59e0b}.payment-fee-details div{margin:8px 0;font-size:14px;color:#92400e}.payment-fee-details strong{color:#78350f}.payment-form{margin-top:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:#374151}.payment-input,.payment-select,.payment-textarea{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;transition:all .3s ease;font-family:inherit}.payment-input:focus,.payment-select:focus,.payment-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.payment-textarea{resize:vertical;min-height:80px}.form-group small{display:block;margin-top:6px;font-size:12px;color:#6b7280}.payment-modal-footer{display:flex;gap:12px;padding:20px 28px;border-top:2px solid #f3f4f6;background:#f9fafb;border-radius:0 0 24px 24px}.payment-cancel-btn{flex:1;padding:12px;background:#6b7280;color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease}.payment-cancel-btn:hover{background:#4b5563;transform:translateY(-2px)}.payment-submit-btn{flex:2;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease}.payment-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.payment-submit-btn:disabled{opacity:.6;cursor:not-allowed}.spinner-small-white{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 640px){.payment-modal-container{width:95%;margin:16px}.payment-modal-header,.payment-modal-body{padding:20px}.payment-student-info{flex-direction:column;text-align:center}.payment-modal-footer{flex-direction:column}.payment-cancel-btn,.payment-submit-btn{width:100%}}.attendance-page{padding:20px;background:#f5f7fb;min-height:100vh;display:flex;justify-content:center;width:100%;max-width:1200px;margin:0 auto}@media (max-width: 768px){.attendance-page{padding:10px;max-width:100%}}.attendance-card{width:100%;max-width:1200px;background:#fff;padding:20px;border-radius:14px;box-shadow:0 4px 20px #00000012}.attendance-header h2{margin:0;font-size:24px;font-weight:700;color:#333}.controls-row{margin-top:15px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.type-toggle{display:flex;gap:8px}.toggle-btn{padding:8px 14px;background:#e3e8ef;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:.2s}.toggle-btn.active{background:#4a90e2;color:#fff}.toggle-btn:hover{background:#d3d8df}.search-left input{padding:9px 12px;border:1px solid #d0d5dd;border-radius:10px;width:260px;outline:none;transition:.2s}.search-left input:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233}.table-wrap{width:100%;overflow-x:auto;margin-top:20px}.modern-table{width:100%;border-collapse:collapse;min-width:750px}.modern-table thead{background:#f0f3f7}.modern-table th,.modern-table td{padding:12px 15px;border-bottom:1px solid #eee;text-align:left;font-size:14px}.avatar{width:45px;height:45px;border-radius:50%;object-fit:cover}.name-line{font-weight:600;color:#333}.sub-line{font-size:12px;color:#777}.date-input,.status-select{width:100%;padding:8px 6px;border:1px solid #d0d5dd;border-radius:6px;background:#fff}.date-input:focus,.status-select:focus{border-color:#4a90e2;outline:none}.save-btn{padding:8px 12px;background:#4a90e2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;transition:.2s}.save-btn:hover{background:#347acb}.save-btn:disabled{background:#a3c4e4;cursor:not-allowed}.saved-note{margin-top:5px;font-size:11px;color:#58a55c}.no-records{text-align:center;padding:20px;color:#777}@media (max-width: 768px){.attendance-card{padding:15px}.controls-row{flex-direction:column;align-items:flex-start}.search-left input{width:100%}}@media (max-width: 600px){.modern-table{min-width:100%}.type-toggle{width:100%;justify-content:space-between}.toggle-btn{flex:1;text-align:center;padding:10px}.modern-table thead{display:none}.modern-table tr{display:block;margin-bottom:15px;background:#fff;padding:12px;border-radius:10px;box-shadow:0 2px 6px #00000014}.modern-table td{display:flex;justify-content:space-between;border:none;padding:8px 0}.modern-table td:before{content:attr(data-label);font-weight:700;color:#333;margin-right:10px}}.sp-page{display:flex;min-height:100vh;transition:all .3s ease}.sp-sidebar{width:250px;min-height:100vh;background:linear-gradient(90deg,#5a6fe0,#6b4298);color:#fff;padding:20px;display:flex;flex-direction:column;position:relative;transition:width .3s ease,padding .3s ease;overflow-y:auto}.sp-sidebar.collapsed{width:80px;padding:20px 10px}.sidebar-toggle{position:absolute;top:10px;right:9px;width:24px;height:24px;background:#6b4298;border:2px solid white;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;z-index:100;transition:all .3s ease}.sidebar-toggle:hover{background:#5a6fe0;transform:scale(1.1)}.sp-sidebar.collapsed .sidebar-toggle{right:25px}.sp-sidebar-top{text-align:center;margin-bottom:30px;transition:all .3s ease}.sp-avatar-wrap{display:flex;justify-content:center;margin-bottom:10px}.sp-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid white;transition:all .3s ease}.sp-sidebar.collapsed .sp-avatar{margin-top:32px;width:50px;height:50px}.sp-name{margin:5px 0;font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .3s ease}.sp-small{font-size:.8rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-nav{display:flex;flex-direction:column;gap:10px}.sp-nav button{padding:12px 15px;border:none;border-radius:8px;background:#ffffff1a;color:#fff;font-size:1rem;font-weight:500;text-align:left;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;white-space:nowrap;overflow:hidden}.sp-nav button:hover{background:#fff3;transform:translate(5px)}.sp-nav button.active{background:#fff;color:#5a6fe0;font-weight:600}.sp-nav button.sp-logout{margin-top:20px;background:#ffffff26;border:1px solid rgba(255,255,255,.3)}.sp-nav button.sp-logout:hover{background:#ff3b304d}.sp-sidebar.collapsed .sp-nav button{padding:12px;justify-content:center;text-align:center}.sp-sidebar.collapsed .sp-nav button span{display:none}.main-content{flex:1;padding:20px;background-color:#f9f9f9;height:100vh;overflow-y:auto;transition:margin-left .3s ease,width .3s ease}.sp-loading{text-align:center;padding:50px;font-size:1.2rem;color:#666}@media (max-width: 768px){.sp-sidebar{position:fixed;left:0;top:0;z-index:1000;transform:translate(0)}.sp-sidebar.collapsed{transform:translate(-70px)}.main-content{margin-left:80px;width:calc(100% - 80px)}.main-content.expanded{margin-left:250px;width:calc(100% - 250px)}.sidebar-toggle{right:-12px}}.sp-sidebar.collapsed .sp-nav button[title]:hover:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#333;color:#fff;padding:5px 10px;border-radius:4px;font-size:.9rem;white-space:nowrap;margin-left:10px;z-index:1001;pointer-events:none;box-shadow:0 2px 5px #0003}.sp-sidebar.collapsed .sp-nav button{position:relative}.sp-sidebar,.sp-sidebar *,.main-content{transition:all .3s ease}.sp-page{display:flex;min-height:100vh;background-color:#f5f7fa}.sp-main{flex:1;padding:0;background-color:#f5f7fa;overflow-y:auto}.sp-banner{position:relative;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 30px;color:#fff;margin-bottom:30px;border-radius:0 0 20px 20px;box-shadow:0 4px 20px #0000001a}.sp-banner-overlay{position:absolute;inset:0;background:linear-gradient(135deg,#667eeae6,#764ba2e6);border-radius:0 0 20px 20px}.sp-banner-content{position:relative;z-index:2;display:flex;align-items:center;gap:30px;flex-wrap:wrap}.sp-banner-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid white;box-shadow:0 4px 15px #0003;transition:transform .3s ease}.sp-banner-avatar:hover{transform:scale(1.05)}.sp-banner-content h1{font-size:2.5rem;margin:0 0 10px;font-weight:600;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.sp-meta{font-size:1.1rem;opacity:.95;margin:0;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.sp-actions{margin-left:auto;display:flex;gap:12px}.sp-section{background:#fff;border-radius:16px;padding:25px 30px;margin:0 30px 30px;box-shadow:0 2px 12px #00000014;transition:box-shadow .3s ease}.sp-section:hover{box-shadow:0 4px 20px #0000001f}.sp-section h2{margin:0 0 25px;font-size:1.5rem;color:#333;font-weight:600;padding-bottom:15px;border-bottom:2px solid #f0f0f0;position:relative}.sp-section h2:after{content:"";position:absolute;bottom:-2px;left:0;width:60px;height:2px;background:linear-gradient(90deg,#667eea,#764ba2)}.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px}.sp-grid>div{background:#f8f9fa;padding:18px 20px;border-radius:12px;transition:all .3s ease;border:1px solid transparent}.sp-grid>div:hover{background:#fff;border-color:#e0e0e0;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.sp-grid strong{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:#666;margin-bottom:8px;font-weight:600}.sp-grid p{margin:0;font-size:1.1rem;color:#333;font-weight:500;line-height:1.5}.sp-edit-btn,.sp-save-btn,.sp-cancel-btn,.sp-logout-inline{padding:10px 24px;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 8px #0000001a}.sp-edit-btn{background:#fff;color:#667eea;border:2px solid white}.sp-edit-btn:hover{background:transparent;color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #ffffff4d}.sp-save-btn{background:#28a745;color:#fff}.sp-save-btn:hover:not(:disabled){background:#218838;transform:translateY(-2px);box-shadow:0 4px 15px #28a7454d}.sp-save-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.sp-cancel-btn{background:#dc3545;color:#fff}.sp-cancel-btn:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 15px #dc35454d}.sp-logout-inline{background:#fff3;color:#fff;border:2px solid white}.sp-logout-inline:hover{background:#fff;color:#667eea;transform:translateY(-2px);box-shadow:0 4px 15px #ffffff4d}.edit-input{font-size:2.5rem;font-weight:600;padding:8px 15px;border:2px solid rgba(255,255,255,.3);border-radius:10px;background:#ffffff26;color:#fff;width:100%;max-width:500px;transition:all .3s ease}.edit-input:focus{outline:none;border-color:#fff;background:#ffffff40;box-shadow:0 0 15px #ffffff4d}.edit-input::placeholder{color:#ffffffb3}.edit-field{margin-bottom:20px}.edit-field strong{display:block;margin-bottom:8px;color:#555;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.edit-field input{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .3s ease;background:#fff}.edit-field input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.edit-field input:hover{border-color:#b0b0b0}.sp-loading{text-align:center;padding:60px;font-size:1.2rem;color:#666;background:#fff;border-radius:16px;margin:30px;box-shadow:0 2px 12px #00000014}.sp-error{text-align:center;padding:40px;background:#fff3f3;color:#dc3545;border-radius:16px;margin:30px;border:1px solid #ffcdd2}.sp-error button{margin-top:20px;padding:12px 30px;background:#dc3545;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease}.sp-error button:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}@media (max-width: 768px){.sp-banner{padding:30px 20px}.sp-banner-content{flex-direction:column;text-align:center;gap:15px}.sp-banner-content h1{font-size:1.8rem}.sp-actions{margin-left:0;width:100%;justify-content:center;flex-wrap:wrap}.sp-section{margin:0 15px 20px;padding:20px}.sp-grid{grid-template-columns:1fr;gap:15px}.edit-input{font-size:1.8rem;text-align:center}.sp-banner-avatar{width:100px;height:100px}}@media (max-width: 480px){.sp-banner{padding:20px 15px}.sp-banner-content h1{font-size:1.5rem}.sp-meta{font-size:.95rem}.sp-section h2{font-size:1.3rem}.sp-grid strong{font-size:.8rem}.sp-grid p{font-size:1rem}.sp-edit-btn,.sp-save-btn,.sp-cancel-btn,.sp-logout-inline{padding:8px 16px;font-size:.85rem}}@media print{.sp-banner{background:none;color:#000;padding:20px}.sp-actions,.sp-edit-btn,.sp-logout-inline{display:none}.sp-section{break-inside:avoid;box-shadow:none;border:1px solid #ddd}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sp-section{animation:fadeIn .5s ease-out}.sp-main::-webkit-scrollbar{width:8px}.sp-main::-webkit-scrollbar-track{background:#f1f1f1}.sp-main::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px}.sp-main::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5a6fe0,#6b4298)}.attendance-container{max-width:1440px;margin:0 auto;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.attendance-header{background:linear-gradient(135deg,#fffffff2,#fffffffa);border-radius:28px;padding:40px 48px;margin-bottom:32px;position:relative;overflow:hidden;box-shadow:0 20px 40px -15px #0003;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideDown .6s cubic-bezier(.68,-.55,.265,1.55)}.attendance-header:before{content:"📅";position:absolute;bottom:-30px;right:-30px;font-size:180px;opacity:.05;pointer-events:none;transform:rotate(-15deg)}.attendance-title{font-size:42px;font-weight:800;margin:0 0 12px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.attendance-subtitle{font-size:16px;margin:0;color:#6b7280;font-weight:500}.student-info-card{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:28px 36px;margin-bottom:32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;box-shadow:0 8px 20px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideUp .6s cubic-bezier(.68,-.55,.265,1.55)}.student-info-card:hover{transform:translateY(-4px);box-shadow:0 20px 30px -10px #00000026}.student-info{flex:1}.student-info h3{margin:0 0 10px;font-size:28px;font-weight:800;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.student-info p{margin:6px 8px 6px 0;color:#6b7280;font-size:14px;font-weight:500;display:inline-block;background:#f3f4f6;padding:4px 12px;border-radius:20px}.date-range-selector{display:flex;gap:12px;align-items:center}.date-select{padding:12px 24px;border-radius:14px;border:2px solid #e5e7eb;background:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s ease;font-family:Inter,sans-serif;color:#374151}.date-select:hover{border-color:#667eea;transform:scale(1.02);box-shadow:0 4px 12px #667eea33}.date-label{background:linear-gradient(135deg,#667eea,#764ba2);padding:12px 24px;border-radius:14px;font-size:14px;font-weight:700;color:#fff;box-shadow:0 4px 12px #667eea4d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px;animation:fadeIn .8s ease-out}.stat-card{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:28px;display:flex;align-items:center;gap:20px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 6px #00000012}.stat-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eea1a,#764ba21a);transform:translate(-100%);transition:transform .6s ease}.stat-card:hover:before{transform:translate(0)}.stat-card:hover{transform:translateY(-6px);box-shadow:0 20px 30px -10px #00000026}.stat-icon{width:70px;height:70px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:36px;transition:all .3s ease;position:relative;z-index:1}.stat-card:hover .stat-icon{transform:scale(1.1) rotate(5deg)}.present-icon{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 20px #10b9814d}.percentage-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 8px 20px #3b82f64d}.streak-icon{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 8px 20px #f59e0b4d}.stat-content{flex:1;position:relative;z-index:1}.student-stat-label{font-size:13px;font-weight:700;color:#6b7280;margin:0 0 8px;text-transform:uppercase;letter-spacing:1px}.student-stat-value{font-size:36px;font-weight:800;background:linear-gradient(135deg,#1f2937,#374151);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;line-height:1}.stat-card small{display:block;font-size:12px;color:#9ca3af;margin-top:8px;font-weight:500}.chart-section{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:28px;padding:32px;margin-bottom:32px;box-shadow:0 8px 20px #0000001a;transition:all .3s ease;animation:fadeInUp .7s ease-out}.chart-section:hover{transform:translateY(-4px);box-shadow:0 20px 30px -10px #00000026}.chart-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:28px;padding-bottom:20px;border-bottom:2px solid #f3f4f6}.section-title{font-size:24px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-.3px}.chart-controls{display:flex;gap:12px}.chart-select{padding:10px 20px;border-radius:12px;border:2px solid #e5e7eb;background:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s ease;font-family:Inter,sans-serif;color:#374151}.chart-select:hover{border-color:#667eea;transform:scale(1.02)}.chart-container{height:420px;position:relative}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px;animation:fadeInUp .8s ease-out}.summary-card{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px #00000012}.summary-card:hover{transform:translateY(-6px);box-shadow:0 20px 30px -10px #00000026}.summary-color{height:6px;transition:height .3s ease}.summary-card:hover .summary-color{height:8px}.summary-content{padding:24px;text-align:center}.summary-status{font-size:18px;font-weight:700;margin:0 0 12px;color:#1f2937}.summary-count{font-size:32px;font-weight:800;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.summary-percentage{font-size:14px;font-weight:600;color:#6b7280;margin:0;background:#f3f4f6;display:inline-block;padding:4px 12px;border-radius:20px}.recent-attendance{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:28px;padding:32px;margin-bottom:32px;box-shadow:0 8px 20px #0000001a;animation:fadeInUp .9s ease-out}.table-container{overflow-x:auto;margin-top:24px;border-radius:16px}.attendance-table{width:100%;border-collapse:separate;border-spacing:0}.attendance-table thead{background:linear-gradient(135deg,#f9fafb,#f3f4f6)}.attendance-table th{padding:18px 16px;text-align:left;font-weight:700;font-size:14px;color:#4b5563;border-bottom:2px solid #e5e7eb;text-transform:uppercase;letter-spacing:.5px}.attendance-table td{padding:16px;border-bottom:1px solid #f3f4f6;font-size:14px;color:#1f2937;font-weight:500}.attendance-table tbody tr{transition:all .3s ease}.attendance-table tbody tr:hover{background:linear-gradient(90deg,#667eea0d,#764ba20d);transform:scale(1.01)}.status-badge{display:inline-block;padding:6px 16px;border-radius:30px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease}.status-badge:hover{transform:scale(1.05)}.badge-present{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;box-shadow:0 2px 4px #10b98133}.badge-absent{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;box-shadow:0 2px 4px #f4433633}.attendance-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;background:linear-gradient(135deg,#667eea,#764ba2)}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:24px}.attendance-loading p{color:#fff;font-size:18px;font-weight:500}.attendance-error{text-align:center;padding:60px 40px;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:28px;margin:80px auto;max-width:550px;box-shadow:0 20px 40px -15px #0003;animation:shake .5s ease-out}.error-icon{font-size:64px;margin-bottom:24px;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.attendance-error h3{margin:0 0 16px;font-size:28px;font-weight:800;color:#dc2626}.attendance-error p{color:#6b7280;margin-bottom:32px;font-size:16px}.retry-btn{padding:12px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:14px;cursor:pointer;font-size:16px;font-weight:700;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.no-data{text-align:center;padding:80px 40px;color:#9ca3af;font-size:16px;font-weight:500}.no-data-chart{display:flex;align-items:center;justify-content:center;height:100%;min-height:350px;color:#9ca3af;font-size:16px;font-weight:500}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.attendance-container{padding:20px}.attendance-title{font-size:32px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.attendance-container{padding:16px}.attendance-header{padding:28px 24px}.attendance-title{font-size:28px}.student-info-card{flex-direction:column;align-items:flex-start;padding:24px}.date-range-selector{width:100%;justify-content:space-between}.stats-grid{grid-template-columns:1fr;gap:16px}.stat-card{padding:20px}.stat-icon{width:60px;height:60px;font-size:30px}.student-stat-value{font-size:28px}.chart-section{padding:20px}.chart-container{height:300px}.section-title{font-size:20px}.chart-header{flex-direction:column;align-items:flex-start}.chart-controls{width:100%}.chart-select{flex:1}.summary-cards{grid-template-columns:1fr;gap:16px}.recent-attendance{padding:20px}.attendance-table th,.attendance-table td{padding:12px 10px;font-size:12px}}@media (max-width: 480px){.attendance-header{padding:24px 20px}.attendance-title{font-size:24px}.attendance-subtitle{font-size:14px}.student-info h3{font-size:22px}.date-select,.date-label{padding:8px 16px;font-size:12px}.stat-card{padding:16px}.stat-icon{width:50px;height:50px;font-size:24px}.student-stat-value{font-size:24px}.attendance-table th,.attendance-table td{padding:10px 8px;font-size:11px}.status-badge{padding:4px 10px;font-size:10px}}@media print{.attendance-container{background:#fff;padding:0}.attendance-header{background:#fff;box-shadow:none;border:1px solid #e5e7eb}.attendance-title{-webkit-text-fill-color:#1f2937}.date-range-selector,.chart-controls,.retry-btn{display:none}.stat-card,.chart-section,.summary-cards,.recent-attendance{box-shadow:none;border:1px solid #e5e7eb;break-inside:avoid}.attendance-table{border:1px solid #e5e7eb}}.results-container{display:flex;flex-direction:column;max-width:1400px;margin:0 auto;padding:30px 20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f8f9fa;min-height:100vh;width:100%}.results-header{text-align:center;margin-bottom:30px;padding:30px;background:linear-gradient(90deg,#5a6fe0,#6b4298);border-radius:20px;color:#fff;box-shadow:0 10px 30px #1e4b7a4d}.results-title{font-size:2.5rem;margin:0 0 10px;font-weight:600;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.results-subtitle{font-size:1.1rem;opacity:.95;margin:0;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.student-info-card{background:#fff;border-radius:16px;padding:25px;margin-bottom:30px;box-shadow:0 4px 20px #00000014;border:1px solid #e0e0e0}.student-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.info-item{display:flex;flex-direction:column;gap:5px}.info-label{font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:1.1rem;color:#333;font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:0 4px 15px #00000014;transition:all .3s ease;border:1px solid #e0e0e0}.summary-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #0000001f}.summary-icon{width:50px;height:50px;border-radius:12px;background:linear-gradient(135deg,#1e4b7a,#2a6b9e);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px}.summary-content{flex:1}.summary-content h3{font-size:.9rem;color:#666;margin:0 0 5px;font-weight:500}.summary-value{font-size:1.5rem;font-weight:700;color:#333;margin:0;line-height:1.2}.filters-section{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap;background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 10px #0000000d}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;font-size:.85rem;color:#666;margin-bottom:5px;font-weight:500}.filter-select{width:100%;padding:10px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;color:#333;background:#fff;cursor:pointer;transition:all .3s ease}.filter-select:hover,.filter-select:focus{border-color:#1e4b7a;outline:none;box-shadow:0 0 0 3px #1e4b7a1a}.exam-card{background:#fff;border-radius:16px;padding:25px;margin-bottom:25px;box-shadow:0 4px 20px #00000014;border:1px solid #e0e0e0;transition:all .3s ease}.exam-card:hover{box-shadow:0 8px 30px #0000001f}.exam-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.exam-title-section{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.exam-name{font-size:1.3rem;color:#333;margin:0;font-weight:600}.exam-date{font-size:.9rem;color:#666;background:#f5f5f5;padding:4px 10px;border-radius:20px}.result-badge{display:inline-block;padding:8px 20px;border-radius:30px;font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.result-badge.pass{background:#4caf501a;color:#2e7d32;border:2px solid #4CAF50}.result-badge.fail{background:#f443361a;color:#c62828;border:2px solid #F44336}.exam-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px;padding:15px;background:#f8f9fa;border-radius:12px}.stat-label{display:block;font-size:.8rem;color:#666;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.2rem;font-weight:700;color:#1e4b7a}.subjects-table-container{overflow-x:auto;margin-bottom:20px;border-radius:12px;border:1px solid #e0e0e0}.subjects-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:800px}.subjects-table th{background:#f5f5f5;padding:15px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #ddd}.subjects-table td{padding:12px 15px;border-bottom:1px solid #e0e0e0;color:#555}.subjects-table tbody tr:hover{background:#f8f9fa}.subject-name{font-weight:500;color:#333}.total-marks{font-weight:600;color:#1e4b7a}.grade-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:600}.grade-a{background:#4caf501a;color:#2e7d32;border:1px solid #4CAF50}.grade-b{background:#2196f31a;color:#1565c0;border:1px solid #2196F3}.grade-c{background:#ff98001a;color:#ef6c00;border:1px solid #FF9800}.grade-d{background:#f443361a;color:#c62828;border:1px solid #F44336}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:600}.status-badge.pass{background:#4caf501a;color:#2e7d32}.status-badge.fail{background:#f443361a;color:#c62828}.exam-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0;flex-wrap:wrap;gap:15px}.result-summary{display:flex;align-items:center;gap:10px}.result-label{font-size:.9rem;color:#666}.result-date{font-size:.95rem;color:#333;font-weight:500}.download-btn{padding:10px 25px;background:linear-gradient(135deg,#1e4b7a,#2a6b9e);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px}.download-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #1e4b7a4d}.download-btn:active{transform:translateY(0)}.no-results{text-align:center;padding:60px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014}.no-results p{font-size:1.1rem;color:#666;margin:0}@media (max-width: 768px){.results-container{padding:20px 15px}.results-title{font-size:2rem}.results-subtitle{font-size:1rem}.student-info-grid{grid-template-columns:1fr;gap:15px}.summary-cards{grid-template-columns:1fr}.filters-section{flex-direction:column}.filter-group{width:100%}.exam-header{flex-direction:column;align-items:flex-start;gap:15px}.exam-title-section{width:100%;justify-content:space-between}.exam-stats{grid-template-columns:1fr;gap:10px}.stat-item{display:flex;justify-content:space-between;align-items:center;text-align:left}.stat-label{margin-bottom:0}.exam-footer{flex-direction:column;align-items:stretch}.result-summary{justify-content:center}.download-btn{width:100%;justify-content:center}}@media (max-width: 480px){.results-title{font-size:1.5rem}.exam-name{font-size:1.1rem}.exam-date{font-size:.8rem}.summary-value{font-size:1.2rem}.subjects-table th,.subjects-table td{padding:10px;font-size:.85rem}}@media print{.results-container{padding:0;background:#fff}.results-header{background:none;color:#000;box-shadow:none;padding:20px 0}.filters-section,.download-btn,.summary-cards{display:none}.exam-card{break-inside:avoid;box-shadow:none;border:1px solid #ddd}.subjects-table{border:1px solid #ddd}}.exam-card{animation:fadeIn .5s ease-out}.tp-page{display:flex;min-height:100vh;transition:all .3s ease}.tp-sidebar{width:250px;min-height:100vh;background:linear-gradient(90deg,#5a6fe0,#6b4298);color:#fff;padding:20px;display:flex;flex-direction:column;position:relative;transition:width .3s ease,padding .3s ease;overflow-y:auto}.tp-sidebar.collapsed{width:80px;padding:20px 10px}.sidebar-toggle{position:absolute;top:10px;right:9px;width:24px;height:24px;background:#3498db;border:2px solid white;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;z-index:100;transition:all .3s ease}.sidebar-toggle:hover{background:#2c3e50;transform:scale(1.1)}.tp-sidebar.collapsed .sidebar-toggle{right:25px}.tp-sidebar-top{text-align:center;margin-bottom:30px;transition:all .3s ease}.tp-avatar-wrap{display:flex;justify-content:center;margin-bottom:10px}.tp-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid white;transition:all .3s ease}.tp-sidebar.collapsed .tp-avatar{margin-top:32px;width:50px;height:50px}.tp-name{margin:5px 0;font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .3s ease}.tp-small{font-size:.8rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-subject{font-size:.85rem;color:#f1c40f;font-weight:500;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-nav{display:flex;flex-direction:column;gap:10px}.tp-nav button{padding:12px 15px;border:none;border-radius:8px;background:#ffffff1a;color:#fff;font-size:1rem;font-weight:500;text-align:left;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;white-space:nowrap;overflow:hidden}.tp-nav button:hover{background:#fff3;transform:translate(5px)}.tp-nav button.active{background:#fff;color:#2c3e50;font-weight:600}.tp-nav button.tp-logout{margin-top:20px;background:#ffffff26;border:1px solid rgba(255,255,255,.3)}.tp-nav button.tp-logout:hover{background:#e74c3c4d}.tp-sidebar.collapsed .tp-nav button{padding:12px;justify-content:center;text-align:center}.tp-sidebar.collapsed .tp-nav button span{display:none}.tp-main-content{flex:1;padding:20px;background-color:#f9f9f9;min-height:100vh;overflow-y:auto;transition:margin-left .3s ease,width .3s ease}.tp-loading{text-align:center;padding:50px;font-size:1.2rem;color:#666}.tp-sidebar.collapsed .tp-nav button[title]:hover:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#333;color:#fff;padding:5px 10px;border-radius:4px;font-size:.9rem;white-space:nowrap;margin-left:10px;z-index:1001;pointer-events:none;box-shadow:0 2px 5px #0003}.tp-sidebar.collapsed .tp-nav button{position:relative}.tp-sidebar,.tp-sidebar *,.tp-main-content{transition:all .3s ease}@media (max-width: 768px){.tp-sidebar{position:fixed;left:0;top:0;z-index:1000;transform:translate(0)}.tp-sidebar.collapsed{transform:translate(-70px)}.tp-main-content{margin-left:80px;width:calc(100% - 80px)}.tp-main-content.expanded{margin-left:250px;width:calc(100% - 250px)}.sidebar-toggle{right:-12px}}@media (max-width: 480px){.tp-sidebar{width:220px}.tp-sidebar.collapsed{width:70px}.tp-main-content{margin-left:70px;width:calc(100% - 70px)}.tp-main-content.expanded{margin-left:220px;width:calc(100% - 220px)}.tp-name{font-size:1rem}.tp-small,.tp-subject{font-size:.75rem}}.tp-profile-container{max-width:1200px;margin:-39px auto;padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.tp-profile-header{display:flex;gap:40px;align-items:center;background:linear-gradient(90deg,#5a6fe0,#6b4298);padding:40px;border-radius:16px;margin-bottom:30px;color:#fff;box-shadow:0 4px 20px #2c3e5033}.tp-profile-avatar{width:150px;height:150px;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 4px 15px #0003}.tp-profile-avatar img{width:100%;height:100%;object-fit:cover}.tp-profile-info{flex:1}.tp-profile-info h1{font-size:2.2rem;margin:0 0 10px;font-weight:600}.tp-teacher-id,.tp-school-code,.tp-teacher-subject{font-size:1rem;margin:5px 0;opacity:.9}.tp-teacher-subject{color:#f1c40f;font-weight:500;margin-top:10px}.tp-edit-btn{margin-top:15px;padding:10px 25px;background:#fff;color:#2c3e50;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.tp-edit-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #ffffff4d}.tp-profile-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:30px}.tp-section{background:#fff;border-radius:16px;padding:30px;box-shadow:0 4px 20px #00000014;border:1px solid #e0e0e0}.tp-section h2{font-size:1.3rem;color:#2c3e50;margin:0 0 20px;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.tp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.tp-info-item{display:flex;flex-direction:column;gap:5px}.tp-info-item.tp-full-width{grid-column:span 2}.tp-info-item label{font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.tp-info-item p{font-size:1.1rem;color:#333;margin:0;font-weight:500;line-height:1.5}.tp-profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.loading-spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@media (max-width: 768px){.tp-profile-header{flex-direction:column;text-align:center;padding:30px}.tp-profile-info h1{font-size:1.8rem}.tp-profile-content,.tp-grid{grid-template-columns:1fr}.tp-info-item.tp-full-width{grid-column:span 1}}@media (max-width: 480px){.tp-profile-header{padding:20px}.tp-profile-avatar{width:120px;height:120px}.tp-profile-info h1{font-size:1.5rem}.tp-section{padding:20px}.tp-section h2{font-size:1.1rem}.tp-info-item p{font-size:1rem}}.attendance-container{padding:24px;max-width:1200px;margin:0 auto;min-height:100vh;background:#f8fafc}.attendance-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 1px 3px #0000001a}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.attendance-title{font-size:24px;color:#1f2937;margin:0;display:flex;align-items:center;gap:12px}.attendance-title i{color:#4c2bb5}.student-attendance-btn{background:linear-gradient(135deg,#4c2bb5,#6b46c1);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.student-attendance-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4c2bb54d}.no-data{text-align:center;padding:60px 24px;color:#9ca3af}.no-data i{font-size:64px;color:#e5e7eb;margin-bottom:16px}.no-data p{font-size:16px;color:#6b7280;margin-bottom:8px}.no-data small{font-size:13px;color:#9ca3af}.assigned-class-info{animation:fadeIn .5s ease}.class-badge-large{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-radius:16px;padding:32px;text-align:center}.class-icon{width:80px;height:80px;background:linear-gradient(135deg,#4c2bb5,#6b46c1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff;font-size:40px}.class-details h3{font-size:20px;color:#374151;margin-bottom:24px;font-weight:500}.class-section-wrapper{display:flex;justify-content:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.class-standard{font-size:32px;font-weight:700;color:#4c2bb5;background:#eef2ff;padding:12px 24px;border-radius:12px;display:inline-block}.class-section{font-size:32px;font-weight:700;padding:12px 24px;border-radius:12px;display:inline-block}.teacher-name{font-size:16px;color:#4b5563;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:8px}.teacher-name i{color:#4c2bb5}.responsibility{font-size:14px;color:#6b7280;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px;background:#f9fafb;padding:12px;border-radius:8px;max-width:500px;margin-left:auto;margin-right:auto}.responsibility i{color:#4c2bb5}@media (max-width: 768px){.attendance-container{padding:16px}.attendance-card{padding:20px}.header-row{flex-direction:column;gap:16px;text-align:center}.attendance-title{font-size:20px}.student-attendance-btn{width:100%;justify-content:center}.class-badge-large{padding:20px}.class-standard,.class-section{font-size:24px;padding:8px 16px}.class-section-wrapper{flex-direction:column;align-items:center}.teacher-name,.responsibility{font-size:13px}}@media (max-width: 480px){.class-standard,.class-section{font-size:20px;padding:6px 12px}.class-icon{width:60px;height:60px;font-size:30px}.class-details h3{font-size:18px}}.quick-actions{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}.quick-action-btn{background:#fff;border:1px solid #e5e7eb;padding:8px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px;color:#374151}.quick-action-btn:hover{background:#4c2bb5;border-color:#4c2bb5;color:#fff;transform:translateY(-1px)}.quick-action-btn:hover i{color:#fff}.quick-action-btn i{color:#4c2bb5;transition:color .2s ease}.header-info{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.search-left{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:#9ca3af;font-size:14px}.search-input{padding:10px 12px 10px 36px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;width:280px;transition:all .2s}.error-state{text-align:center;padding:60px 24px;color:#ef4444}.error-state i{font-size:48px;margin-bottom:16px}.error-state p{font-size:16px;margin-bottom:8px}.error-state small{font-size:13px;color:#9ca3af}.no-records{text-align:center;padding:40px;color:#9ca3af}.no-records i{font-size:32px;margin-bottom:8px;display:block}.saved-note{font-size:11px;color:#10b981;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:4px}.saved-note i{font-size:10px}.student-count{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#f3f4f6;border-radius:20px;font-size:13px;color:#374151}.status-select{padding:8px 12px;border-radius:6px;border:1px solid #e5e7eb;font-size:14px;cursor:pointer;transition:all .2s}.status-select.present{background-color:#d1fae5;color:#065f46;border-color:#10b981}.status-select.absent{background-color:#fee2e2;color:#991b1b;border-color:#ef4444}.status-select.leave{background-color:#fed7aa;color:#9b2c1d;border-color:#f59e0b}.success-toast{position:fixed;bottom:20px;right:20px;background:#10b981;color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;z-index:1000;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.row-saved{background-color:#f0fdf4;transition:background-color .3s}.save-btn i{margin-right:6px}.saved-note i{font-size:14px;color:#10b981;margin-top:4px;display:inline-block}.attendance-buttons{display:flex;gap:8px}.att-btn{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:14px;transition:.2s}.att-btn.present{background-color:#e6f9ed;color:#1a7f37}.att-btn.absent{background-color:#fdeaea;color:#c62828}.att-btn.active.present{background-color:#1a7f37;color:#fff}.att-btn.active.absent{background-color:#c62828;color:#fff}.att-btn:hover{transform:scale(1.05)}.teacher-classes-container{padding:24px;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.page-header{margin-bottom:32px}.page-header h2{font-size:28px;color:#1f2937;margin-bottom:8px;display:flex;align-items:center;gap:12px}.page-header h2 i{color:#4c2bb5;font-size:28px}.page-header p{color:#6b7280;font-size:14px;margin-left:40px}.message{padding:12px 16px;border-radius:8px;margin-bottom:24px;display:flex;align-items:center;gap:12px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.message.success{background:#d1fae5;border-left:4px solid #10b981;color:#065f46}.message.error{background:#fee2e2;border-left:4px solid #ef4444;color:#991b1b}.message i{font-size:18px}.message span{flex:1;font-size:14px}.assignment-form-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:32px;box-shadow:0 1px 3px #0000001a;transition:box-shadow .3s ease}.assignment-form-card:hover{box-shadow:0 4px 12px #0000001a}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.card-header i{font-size:24px;color:#4c2bb5}.card-header h3{font-size:20px;color:#1f2937;margin:0;flex:1}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;align-items:end}.form-group label{font-size:14px;font-weight:500;color:#374151}.form-group .required{color:#ef4444;margin-left:4px}.form-group select{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#1f2937;background:#fff;cursor:pointer;transition:all .2s ease}.form-group select:hover{border-color:#4c2bb5}.form-group select:focus{outline:none;border-color:#4c2bb5;box-shadow:0 0 0 3px #4c2bb51a}.form-group select:disabled{background:#f3f4f6;cursor:not-allowed;color:#9ca3af}.form-actions{display:flex;gap:12px}.btn-primary{background:linear-gradient(135deg,#4c2bb5,#6b46c1);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4c2bb54d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover:not(:disabled){background:#e5e7eb;border-color:#d1d5db}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.assigned-classes-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:32px;box-shadow:0 1px 3px #0000001a}.count-badge{background:#eef2ff;color:#4c2bb5;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}.table-responsive{overflow-x:auto;margin-top:20px}.data-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.data-table th{text-align:left;padding:12px 16px;font-size:14px;font-weight:600;color:#374151}.data-table td{padding:16px;border-bottom:1px solid #f3f4f6;font-size:14px;color:#1f2937}.data-table tbody tr{transition:background .2s ease}.data-table tbody tr:hover{background:#f9fafb}.class-badge{display:inline-block;padding:4px 12px;background:#eef2ff;color:#4c2bb5;border-radius:6px;font-size:13px;font-weight:500}.section-badge{display:inline-block;padding:4px 12px;border-radius:6px;font-size:13px;font-weight:500}.section-badge.sec-a{background:#dbeafe;color:#1e40af}.section-badge.sec-b{background:#dcfce7;color:#166534}.section-badge.sec-c{background:#fed7aa;color:#9b2c1d}.section-badge.sec-d{background:#fbcfe8;color:#9d174d}.subject-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#f3e8ff;color:#6b21a5;border-radius:6px;font-size:13px;font-weight:500}.subject-badge i{font-size:12px}.btn-icon{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px;font-size:13px}.btn-icon.edit{background:#eef2ff;color:#4c2bb5}.btn-icon.edit:hover:not(:disabled){background:#4c2bb5;color:#fff;transform:translateY(-1px)}.btn-icon.delete{background:#fee2e2;color:#ef4444}.btn-icon.delete:hover:not(:disabled){background:#ef4444;color:#fff;transform:translateY(-1px)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.stats-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;color:#fff}.stat-item{display:flex;align-items:center;gap:16px}.stat-item i{font-size:32px;opacity:.9}.stat-item div{display:flex;flex-direction:column}.stat-value{font-size:28px;font-weight:700;line-height:1;margin-bottom:4px;color:#fff!important}.stat-label{font-size:13px;opacity:.9;color:#fff!important}.loading-state{text-align:center;padding:60px 24px;color:#6b7280}.loading-state i{font-size:48px;color:#4c2bb5;margin-bottom:16px;display:inline-block}.loading-state p{font-size:14px;margin-top:8px}.empty-state{text-align:center;padding:60px 24px;color:#9ca3af}.empty-state i{font-size:64px;color:#e5e7eb;margin-bottom:16px}.empty-state p{font-size:16px;color:#6b7280;margin-bottom:8px}.empty-state small{font-size:13px;color:#9ca3af}@media (max-width: 768px){.teacher-classes-container{padding:16px}.page-header h2{font-size:24px}.page-header p{margin-left:0;font-size:13px}.form-grid{grid-template-columns:1fr;gap:16px}.form-actions{justify-content:flex-end}.btn-primary,.btn-secondary{padding:8px 16px;font-size:13px}.card-header{margin-bottom:20px}.card-header h3{font-size:18px}.data-table th,.data-table td{padding:12px}.stats-card{grid-template-columns:1fr;gap:16px}.stat-item{justify-content:center}.action-buttons{flex-direction:column;gap:6px}.btn-icon{justify-content:center}}@media (max-width: 480px){.teacher-classes-container{padding:12px}.assignment-form-card,.assigned-classes-card{padding:16px}.data-table{font-size:12px}.data-table th,.data-table td{padding:8px}.class-badge,.section-badge,.subject-badge{padding:2px 8px;font-size:11px}.btn-icon{padding:4px 8px;font-size:11px}}.teacher-classes-container{animation:fadeIn .3s ease}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media print{.teacher-classes-container{background:#fff;padding:0}.assignment-form-card,.stats-card{break-inside:avoid}.btn-primary,.btn-secondary,.action-buttons{display:none}}.ts-container{padding:24px;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.ts-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.ts-header-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.ts-title{font-size:24px;color:#1f2937;margin:0;display:flex;align-items:center;gap:12px}.ts-title i{color:#4c2bb5;font-size:28px}.class-info-badge{display:flex;gap:12px;align-items:center}.class-standard{background:#eef2ff;color:#4c2bb5;padding:6px 16px;border-radius:20px;font-weight:600;font-size:14px}.class-section{padding:6px 16px;border-radius:20px;font-weight:600;font-size:14px}.class-section.sec-a{background:#dbeafe;color:#1e40af}.class-section.sec-b{background:#dcfce7;color:#166534}.class-section.sec-c{background:#fed7aa;color:#9b2c1d}.class-section.sec-d{background:#fbcfe8;color:#9d174d}.ts-stats{display:flex;gap:12px;flex-wrap:wrap}.stat-badge{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#f3f4f6;border-radius:20px;font-size:13px;font-weight:500;color:#374151}.stat-badge i{font-size:14px}.stat-badge.boys i{color:#3b82f6}.stat-badge.girls i{color:#ec489a}.ts-search{position:relative;margin-bottom:24px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:14px}.search-input{width:100%;padding:12px 40px;border:1px solid #e5e7eb;border-radius:12px;font-size:14px;transition:all .2s}.search-input:focus{outline:none;border-color:#4c2bb5;box-shadow:0 0 0 3px #4c2bb51a}.clear-search{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:4px}.clear-search:hover{color:#ef4444}.ts-loading{text-align:center;padding:60px 24px;color:#6b7280}.ts-loading i{font-size:48px;color:#4c2bb5;margin-bottom:16px;display:inline-block}.error-state,.empty-state{text-align:center;padding:60px 24px}.error-state i,.empty-state i{font-size:64px;margin-bottom:16px}.error-state i{color:#ef4444}.empty-state i{color:#e5e7eb}.error-state p,.empty-state p{font-size:16px;color:#6b7280;margin-bottom:8px}.error-state small,.empty-state small{font-size:13px;color:#9ca3af}.ts-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.ts-card{background:#fff;border-radius:16px;padding:20px;display:flex;gap:16px;transition:all .3s ease;box-shadow:0 1px 3px #0000001a;border:1px solid #f3f4f6}.ts-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#e5e7eb}.ts-card-photo{flex-shrink:0}.student-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid #eef2ff}.ts-card-details{flex:1}.ts-card-details h4{font-size:18px;font-weight:600;color:#1f2937;margin-bottom:12px}.student-info-grid{display:flex;flex-direction:column;gap:8px}.info-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b5563}.info-item i{width:20px;color:#4c2bb5;font-size:12px}.info-item strong{font-weight:600;color:#374151;margin-right:4px}@media (max-width: 768px){.ts-container{padding:16px}.ts-header{flex-direction:column;align-items:stretch}.ts-header-left{flex-direction:column;align-items:flex-start}.ts-title{font-size:20px}.ts-stats{justify-content:flex-start}.ts-list{grid-template-columns:1fr}.ts-card{flex-direction:column;align-items:center;text-align:center}.student-info-grid{align-items:center}.info-item{justify-content:center}}@media (max-width: 480px){.class-info-badge{flex-direction:column;align-items:flex-start}.stat-badge{font-size:12px;padding:4px 10px}}.teacher-timetable-container{max-width:1400px;margin:0 auto;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.timetable-header{background:#fff;border-radius:20px;padding:24px 32px;margin-bottom:24px;box-shadow:0 10px 40px #0000001a}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.title-section{display:flex;align-items:center;gap:16px}.title-section h1{margin:0;font-size:28px;font-weight:700;color:#1f2937}.title-section p{margin:4px 0 0;color:#6b7280;font-size:14px}.action-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.print-btn{background:#f3f4f6;color:#374151}.print-btn:hover{background:#e5e7eb;transform:translateY(-2px)}.export-btn{background:#4f46e5;color:#fff}.export-btn:hover{background:#4338ca;transform:translateY(-2px);box-shadow:0 4px 12px #4f46e54d}.teacher-profile-card{background:#fff;border-radius:16px;padding:20px 24px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;box-shadow:0 4px 15px #0000001a}.profile-header{display:flex;align-items:center;gap:16px}.profile-avatar{width:60px;height:60px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.profile-info h3{margin:0;font-size:20px;font-weight:600;color:#1f2937}.profile-info p{margin:4px 0 0;color:#6b7280;font-size:14px}.profile-stats{display:flex;gap:24px}.stat{display:flex;align-items:center;gap:8px;color:#6b7280;font-size:14px}.filters-section{background:#fff;border-radius:16px;padding:20px;margin-bottom:24px;display:flex;gap:16px;flex-wrap:wrap;align-items:center;box-shadow:0 4px 15px #0000001a}.search-box{flex:1;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.search-box input{flex:1;border:none;background:none;outline:none;font-size:14px}.filter-group{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.filter-group select{border:none;background:none;outline:none;font-size:14px;cursor:pointer}.view-toggle{display:flex;gap:8px;background:#f3f4f6;padding:4px;border-radius:12px}.toggle-btn{padding:8px 20px;border:none;border-radius:8px;background:transparent;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease}.toggle-btn.active{background:#4f46e5;color:#fff}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:24px}.stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 15px #0000001a;transition:transform .3s ease}.stat-card:hover{transform:translateY(-4px)}.stat-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-icon.blue{background:#dbeafe;color:#3b82f6}.stat-icon.green{background:#d1fae5;color:#10b981}.stat-icon.orange{background:#fed7aa;color:#f59e0b}.stat-info{flex:1}.stat-info label{font-size:13px;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-info h3{margin:4px 0 0;font-size:28px;font-weight:700;color:#1f2937}.timetable-table-container{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 15px #0000001a}.timetable-table thead{background:#f9fafb}.timetable-table th{padding:16px;text-align:left;font-size:13px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e5e7eb}.timetable-table td{padding:16px;border-bottom:1px solid #f3f4f6}.timetable-row{cursor:pointer;transition:background-color .2s ease}.timetable-row:hover{background-color:#f9fafb}.day-cell .day-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#f3f4f6;border-radius:20px;font-size:13px;font-weight:500}.class-badge,.section-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.class-badge{background:#dbeafe;color:#1e40af}.section-badge{background:#d1fae5;color:#065f46}.subject-cell strong{color:#1f2937;font-size:15px}.time-cell{font-family:Courier New,monospace;font-weight:500;color:#4f46e5}.duration-cell{font-size:13px;color:#6b7280}.details-row td{background:#f9fafb;padding:16px 24px}.row-details{display:flex;gap:24px;flex-wrap:wrap}.detail-item{display:flex;gap:8px;font-size:14px;color:#4b5563}.detail-item strong{color:#1f2937}.timetable-cards{display:flex;flex-direction:column;gap:24px}.day-group{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 15px #0000001a}.day-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;color:#fff}.day-header h3{margin:0;font-size:18px;font-weight:600}.class-count{background:#fff3;padding:4px 12px;border-radius:20px;font-size:13px}.day-classes{padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.timetable-card{background:#f9fafb;border-radius:12px;padding:16px;transition:all .3s ease;border:1px solid #e5e7eb}.timetable-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001a;border-color:#4f46e5}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.subject-info{display:flex;align-items:center;gap:10px}.subject-info h4{margin:0;font-size:16px;font-weight:600;color:#1f2937}.time-info{display:flex;align-items:center;gap:6px;font-size:13px;color:#4f46e5;font-weight:500}.day-badge-large{padding:4px 12px;background:#e0e7ff;border-radius:20px;font-size:12px;font-weight:600;color:#4f46e5}.card-body{display:flex;flex-direction:column;gap:10px}.info-row{display:flex;align-items:center;gap:10px;font-size:14px;color:#6b7280}.empty-state{background:#fff;border-radius:16px;padding:60px 20px;text-align:center;color:#9ca3af}.empty-state h3{margin:16px 0 8px;color:#374151}.teacher-timetable-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.teacher-timetable-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:#ef4444;background:#fff;border-radius:16px;margin:24px;padding:40px}.teacher-timetable-error h3{margin:0;color:#1f2937}.timetable-footer{background:#fef3c7;border-left:4px solid #f59e0b;padding:16px 20px;border-radius:12px;margin-top:24px}.timetable-footer p{margin:0;font-size:13px;color:#92400e;line-height:1.5}@media (max-width: 768px){.teacher-timetable-container{padding:16px}.header-content,.teacher-profile-card{flex-direction:column;align-items:flex-start}.filters-section{flex-direction:column}.search-box,.filter-group{width:100%}.timetable-table{font-size:12px}.timetable-table th,.timetable-table td{padding:10px}.day-classes,.summary-stats{grid-template-columns:1fr}}@media print{.teacher-timetable-container{background:#fff;padding:0}.header-actions,.filters-section,.timetable-footer,.view-toggle{display:none}.timetable-table{border:1px solid #ddd}.timetable-table th{background:#f0f0f0}}.fee-structure-container{max-width:1400px;margin:0 auto;padding:24px;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.fee-header-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:32px;margin-bottom:32px;color:#fff;box-shadow:0 10px 40px #0000001a}.fee-header-content{max-width:1200px;margin:0 auto}.fee-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}.fee-title h1{margin:0;font-size:32px;font-weight:700}.fee-header-content p{margin:0;opacity:.95;font-size:16px}.student-profile-card{background:#fff;border-radius:20px;padding:24px;margin-bottom:32px;box-shadow:0 4px 20px #00000014;transition:transform .3s ease}.student-profile-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}.profile-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid #e0e7ff;color:#4f46e5}.profile-header h3{margin:0;font-size:20px;font-weight:600}.profile-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.detail-group{display:flex;flex-direction:column;gap:8px}.detail-group label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.detail-group p{margin:0;font-size:16px;font-weight:500;color:#1f2937}.fee-structure-main{background:#fff;border-radius:20px;padding:24px;margin-bottom:24px;box-shadow:0 4px 20px #00000014}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid #e0e7ff;color:#4f46e5}.section-header h3{margin:0;font-size:20px;font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px}.summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;color:#fff;transition:transform .3s ease}.summary-card:hover{transform:translateY(-4px)}.summary-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff3}.summary-info{flex:1}.summary-info label{font-size:13px;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.summary-info h3{margin:4px 0 0;font-size:24px;font-weight:700}.fee-structure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-bottom:32px}.fee-structure-card{background:#f9fafb;border-radius:16px;padding:20px;transition:all .3s ease;border:1px solid #e5e7eb}.fee-structure-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #0000001a;border-color:#4f46e5}.fee-card-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e5e7eb;color:#4f46e5}.fee-card-header h4{margin:0;font-size:18px;font-weight:600;color:#1f2937}.fee-card-details{display:flex;flex-direction:column;gap:12px}.fee-detail-row{display:flex;justify-content:space-between;align-items:center;font-size:14px}.fee-detail-row span:first-child{color:#6b7280}.fee-detail-row strong{color:#1f2937;font-weight:600}.fee-detail-row.total{margin-top:8px;padding-top:8px;border-top:1px dashed #d1d5db;font-size:16px}.fee-detail-row.total strong{color:#4f46e5;font-size:18px}.fee-description{margin-top:8px;padding:8px;background:#f3f4f6;border-radius:8px}.fee-description small{color:#6b7280;font-size:12px}.grand-total-card{background:linear-gradient(135deg,#10b981,#059669);border-radius:16px;padding:24px;margin-top:20px}.grand-total-content{display:flex;justify-content:space-between;align-items:center;color:#fff}.grand-total-text h3{margin:0 0 8px;font-size:20px}.grand-total-text p{margin:0;opacity:.9;font-size:14px}.grand-total-amount{font-size:36px;font-weight:700}.no-fee-structure{text-align:center;padding:60px 20px}.empty-icon{color:#9ca3af;margin-bottom:20px}.no-fee-structure h3{margin:0 0 10px;color:#374151;font-size:20px}.no-fee-structure p{color:#6b7280;margin:0}.contact-note{margin-top:10px;font-size:14px;color:#9ca3af}.fee-footer-note{background:#fef3c7;border-left:4px solid #f59e0b;padding:16px 20px;border-radius:12px;margin-top:24px}.fee-footer-note p{margin:0;font-size:13px;color:#92400e;line-height:1.5}.fee-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}.fee-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:#ef4444}.fee-error{color:#ef4444;text-align:center;font-size:16px}@media (max-width: 768px){.fee-structure-container{padding:16px}.fee-title h1{font-size:24px}.profile-details,.fee-structure-grid,.summary-cards{grid-template-columns:1fr}.grand-total-content{flex-direction:column;text-align:center;gap:16px}.grand-total-amount{font-size:28px}}:root{--accent-purple: #4c2bb5;--accent-blue: #2563eb;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--text-h: #1e293b;--text-b: #334155;--text-muted: #64748b;--border: #e2e8f0;--surface-2: #f8fafc;--surface-3: #f1f5f9;--shadow-card: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-glow: 0 0 0 3px rgba(76, 43, 181, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;background:#f9fafc;color:var(--text-b)}.content{padding:32px 36px;flex:1;max-width:1400px;margin:0 auto}.page-header{margin-bottom:28px}.page-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:8px}.ph-left{display:flex;align-items:center;gap:16px}.ph-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#4c2bb5,#7c4fe0);display:flex;align-items:center;justify-content:center;font-size:1.35rem;color:#fff;box-shadow:0 6px 20px #6366f159}.ph-text h1{font-size:1.65rem;font-weight:800;color:var(--text-h);letter-spacing:-.4px;margin:0}.ph-text p{font-size:.9rem;color:var(--text-muted);margin-top:2px}.ph-stats{display:flex;gap:12px;flex-wrap:wrap}.ph-stat{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.ph-stat-dot{width:8px;height:8px;border-radius:50%}.ph-stat-val{font-weight:700;font-size:.95rem;color:var(--text-h)}.ph-stat-lbl{font-size:.8rem;color:var(--text-muted)}.assign-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-xl);padding:28px 32px;margin-bottom:24px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}.assign-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#4c2bb5,#7c4fe0,#2563eb)}.assign-card-title{font-size:1rem;font-weight:700;color:var(--text-h);margin-bottom:20px;display:flex;align-items:center;gap:9px}.assign-card-title i{color:var(--accent-purple);font-size:1.1rem}.assign-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:16px;align-items:end}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.8rem;font-weight:700;color:var(--text-h);text-transform:uppercase;letter-spacing:.8px}.form-select,.form-input{padding:12px 38px 12px 16px;font-family:Outfit,sans-serif;font-size:.95rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-h);cursor:pointer;transition:all .2s;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b91c4' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.form-input{background-image:none;padding-right:16px;cursor:text}.form-select:focus,.form-input:focus{border-color:var(--accent-purple);box-shadow:var(--shadow-glow);background:#fff}.form-select:disabled{background-color:#e9ecef;cursor:not-allowed;opacity:.7}.btn-assign{padding:12px 24px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:var(--radius-md);font-family:Outfit,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s;white-space:nowrap;box-shadow:0 4px 14px #2563eb59}.btn-assign:hover{transform:translateY(-2px);box-shadow:0 8px 24px #2563eb73}.btn-assign:active{transform:translateY(0)}.btn-cancel{padding:12px 24px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-b);font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-cancel:hover{border-color:var(--accent-purple);color:var(--accent-purple);background:#fff}.table-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-card)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);gap:16px;flex-wrap:wrap}.table-toolbar-left{display:flex;align-items:center;gap:12px}.toolbar-title{font-size:1.05rem;font-weight:700;color:var(--text-h)}.count-pill{padding:3px 10px;border-radius:20px;background:linear-gradient(135deg,#4c2bb51f,#7c4fe01f);color:var(--accent-purple);font-size:.78rem;font-weight:700}.table-toolbar-right{display:flex;align-items:center;gap:10px}.search-wrap{position:relative}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9rem}.search-box{padding:9px 14px 9px 36px;font-family:Outfit,sans-serif;font-size:.875rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-h);outline:none;width:220px;transition:all .2s}.search-box:focus{border-color:var(--accent-purple);box-shadow:var(--shadow-glow);background:#fff;width:260px}.search-box::placeholder{color:var(--text-muted);opacity:.7}.filter-select-sm{padding:9px 32px 9px 12px;font-family:Outfit,sans-serif;font-size:.875rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-h);outline:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:all .2s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%238b91c4' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.filter-select-sm:focus{border-color:var(--accent-purple);box-shadow:var(--shadow-glow);background:#fff}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--surface-3)}.data-table th{padding:12px 20px;text-align:left;font-size:.75rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border)}.data-table th:first-child{padding-left:24px}.data-table th:last-child{padding-right:24px}.data-table td{padding:0;border-bottom:1px solid var(--border);font-size:.925rem}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:#6366f106}.td-inner{display:flex;align-items:center;padding:16px 20px;gap:10px}.td-inner:first-child{padding-left:24px}.std-badge{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;font-weight:800;font-size:.9rem;background:linear-gradient(135deg,#4c2bb51f,#7c4fe01f);color:var(--accent-purple);border:1.5px solid rgba(124,79,224,.2);font-family:JetBrains Mono,monospace}.sec-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 13px;border-radius:20px;font-weight:700;font-size:.85rem}.sec-a{background:#10b9811a;color:#059669;border:1px solid rgba(16,185,129,.25)}.sec-b{background:#2563eb1a;color:#1d4ed8;border:1px solid rgba(37,99,235,.2)}.sec-c{background:#f59e0b1a;color:#b45309;border:1px solid rgba(245,158,11,.25)}.sec-d{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.teacher-cell{display:flex;align-items:center;gap:10px}.teacher-avatar{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.75rem;color:#fff;object-fit:cover}.teacher-name{font-weight:600;color:var(--text-h)}.teacher-sub{font-size:.78rem;color:var(--text-muted);font-family:JetBrains Mono,monospace}.id-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface-3);border-radius:6px;border:1px solid var(--border);font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-muted);font-weight:600}.id-chip i{font-size:.65rem;color:var(--accent-purple)}.action-wrap{display:flex;gap:8px}.btn-edit,.btn-delete{padding:7px 16px;border:none;border-radius:var(--radius-sm);font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:5px}.btn-edit{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 3px 8px #f59e0b4d}.btn-edit:hover{transform:translateY(-1px);box-shadow:0 5px 14px #f59e0b66}.btn-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 3px 8px #ef44444d}.btn-delete:hover{transform:translateY(-1px);box-shadow:0 5px 14px #ef444466}.empty-state{padding:52px 24px;text-align:center}.empty-icon{font-size:3rem;color:var(--border);margin-bottom:12px}.empty-text{color:var(--text-muted);font-size:.95rem}.modal-overlay{position:fixed;inset:0;background:#140e3c8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:#fff;border-radius:var(--radius-xl);padding:32px;width:480px;max-width:95vw;box-shadow:0 24px 60px #4c2bb540;transform:translateY(20px);transition:transform .25s;position:relative}.modal-overlay.open .modal{transform:translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.modal-title{font-size:1.15rem;font-weight:800;color:var(--text-h);display:flex;align-items:center;gap:10px}.modal-title i{color:var(--accent-purple)}.modal-close{width:32px;height:32px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem;transition:all .2s}.modal-close:hover{background:#ef44441a;border-color:var(--danger);color:var(--danger)}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.modal-full{grid-column:1 / -1}.modal-footer{display:flex;gap:10px;justify-content:flex-end}.btn-save{padding:10px 28px;background:linear-gradient(135deg,#4c2bb5,#7c4fe0);border:none;border-radius:var(--radius-md);color:#fff;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #6366f159;display:flex;align-items:center;gap:8px}.btn-save:hover{transform:translateY(-1px);box-shadow:0 7px 20px #6366f173}.del-confirm{text-align:center;padding:8px 0}.del-icon{width:64px;height:64px;border-radius:50%;background:#ef44441a;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:1.6rem;color:var(--danger)}.del-confirm h3{font-size:1.1rem;font-weight:800;color:var(--text-h);margin-bottom:8px}.del-confirm p{color:var(--text-muted);font-size:.9rem;margin-bottom:8px}.del-confirm-name{font-weight:700;color:var(--text-h)}.toast{position:fixed;bottom:28px;right:28px;z-index:300;display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;border-radius:var(--radius-lg);box-shadow:0 8px 32px #4c2bb52e,0 1px 4px #00000014;border:1px solid var(--border);transform:translateY(80px);opacity:0;transition:all .35s cubic-bezier(.34,1.56,.64,1);max-width:340px}.toast.show{transform:translateY(0);opacity:1}.toast-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.toast-icon.success{background:#10b9811f;color:var(--success)}.toast-icon.error{background:#ef44441f;color:var(--danger)}.toast-icon.info{background:#6366f11f;color:var(--accent-purple)}.toast-body{flex:1}.toast-title{font-weight:700;font-size:.9rem;color:var(--text-h)}.toast-msg{font-size:.8rem;color:var(--text-muted)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.table-row-enter{animation:fadeSlideIn .3s ease forwards}@media (max-width: 1100px){.assign-form{grid-template-columns:1fr 1fr}.assign-form .btn-assign{grid-column:span 2}}@media (max-width: 768px){.content{padding:20px 16px}.ph-left{flex-direction:column;align-items:flex-start;gap:8px}.ph-text h1{font-size:1.4rem}.assign-form{grid-template-columns:1fr}.assign-form .btn-assign{grid-column:span 1}.table-toolbar{flex-direction:column;align-items:flex-start}.table-toolbar-right{width:100%;flex-direction:column}.search-wrap,.search-box{width:100%}.search-box:focus{width:100%}.filter-select-sm{width:100%}.data-table{overflow-x:auto;display:block}.toast{left:16px;right:16px;max-width:none}}.content.loading{opacity:.7;pointer-events:none;position:relative}.content.loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent-purple);outline-offset:2px}::-webkit-scrollbar-track{background:var(--surface-2);border-radius:8px}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--accent-purple)}.dashboard-container{min-height:100vh;background:#f5f7fb;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.dashboard-header{background:linear-gradient(135deg,#667eea,#764ba2);background:-webkit-linear-gradient(135deg,#667eea 0%,#764ba2 100%);background:-moz-linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:32px;border-radius:24px;display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:32px}.header-left{display:flex;align-items:center;gap:16px}.header-actions{display:flex;gap:12px}.icon-circle{width:56px;height:56px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.icon-circle:hover{transform:scale(1.05)}.dashboard-header h1{margin:0;font-size:28px;font-weight:700}.dashboard-header p{margin-top:4px;opacity:.85}.logout-btn,.refresh-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 18px;border-radius:14px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .3s ease;font-weight:500}.logout-btn:hover,.refresh-btn:hover{background:#ffffff40;transform:translateY(-2px)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.section-title{margin:40px 0 24px;font-size:24px;font-weight:600;color:#1a1a2e;position:relative;padding-bottom:12px}.section-title:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:2px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-bottom:40px}.stat-card{position:relative;background:#fff;border:1px solid #d6deee;border-radius:20px;padding:28px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#667eea,#764ba2);transform:scaleX(0);transition:transform .3s ease}.stat-card:hover{box-shadow:0 12px 24px #0000001a;transform:translateY(-4px)}.stat-card:hover:before{transform:scaleX(1)}.stat-growth{position:absolute;top:20px;right:20px;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:700;cursor:help;transition:all .2s ease}.stat-growth:hover{transform:scale(1.05)}.stat-icon{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:transform .3s ease}.stat-card:hover .stat-icon{transform:scale(1.05)}.stat-content{flex:1}.stat-title{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#666;margin-bottom:12px}.admin-stat-value{font-weight:800;line-height:1.1;margin:8px 0;letter-spacing:-1.5px}.stat-value-default{font-size:38px}.stat-value-large{font-size:52px}.stat-value-xlarge{font-size:68px}.stat-value-xxlarge{font-size:86px}.stat-subtitle{font-size:13px;color:#999;margin-top:12px;font-weight:500}.stat-blue .stat-icon,.stat-blue .stat-growth{background:#e8f2ff;color:#0b3c7a}.stat-blue .admin-stat-value{color:#0b3c7a}.stat-green .stat-icon,.stat-green .stat-growth{background:#e8fce8;color:#0f6b1f}.stat-green .admin-stat-value{color:#0f6b1f}.stat-orange .stat-icon,.stat-orange .stat-growth{background:#fff3e3;color:#8a4b00}.stat-orange .admin-stat-value{color:#8a4b00}.stat-red .stat-icon,.stat-red .stat-growth{background:#fdeaea;color:#8a1f1f}.stat-red .admin-stat-value{color:#8a1f1f}.management-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.manage-card{position:relative;background:#fff;border:1px solid #d6deee;border-radius:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;overflow:hidden}.manage-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.manage-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:transform .3s ease}.manage-card:hover .manage-icon{transform:scale(1.05)}.manage-card h3{margin:10px 0 8px;font-size:20px;font-weight:600;color:#1a1a2e}.manage-card p{color:#666;margin-bottom:20px;line-height:1.5}.manage-count{position:absolute;top:20px;right:20px;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:700}.manage-btn{border:none;padding:10px 20px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%}.manage-btn:hover{transform:translateY(-2px);filter:brightness(.95)}.bg-green{background:#e8fce8;color:#0f6b1f}.bg-blue{background:#e8f2ff;color:#0b3c7a}.bg-orange{background:#fff3e3;color:#8a4b00}.bg-red{background:#fdeaea;color:#8a1f1f}.bg-gray{background:#f1f3f5;color:#444}.bg-pink{background:#fce8f0;color:#8a1f4b}.count-green,.btn-green{background:#e8fce8;color:#0f6b1f}.count-blue,.btn-blue{background:#e8f2ff;color:#0b3c7a}.count-orange,.btn-orange{background:#fff3e3;color:#8a4b00}.count-red,.btn-red{background:#fdeaea;color:#8a1f1f}.count-gray,.btn-gray{background:#f1f3f5;color:#444}.count-pink,.btn-pink{background:#fce8f0;color:#8a1f4b}.card-link{text-decoration:none;color:inherit;display:block}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.stat-card.loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:1000px 100%;animation:shimmer 2s infinite;cursor:default}.stat-card.loading:hover{transform:none;box-shadow:none}.skeleton-icon{width:64px;height:64px;border-radius:16px;background:#e0e0e0;margin-bottom:20px}.skeleton-content{flex:1}.skeleton-title{height:15px;width:60%;background:#e0e0e0;margin-bottom:12px;border-radius:4px}.skeleton-value{height:68px;width:50%;background:#e0e0e0;border-radius:4px}@media (min-width: 769px) and (max-width: 1024px){.dashboard-container{padding:20px}.cards-grid,.management-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.stat-value-xxlarge{font-size:72px}.stat-value-xlarge{font-size:58px}.stat-value-large{font-size:44px}.stat-value-default{font-size:32px}}@media (max-width: 768px){.dashboard-container{padding:16px}.dashboard-header{padding:20px;flex-direction:column;text-align:center;gap:20px}.header-left{flex-direction:column;text-align:center}.header-actions{width:100%;justify-content:center}.dashboard-header h1{font-size:24px}.section-title{font-size:20px;margin:32px 0 16px}.cards-grid,.management-grid{grid-template-columns:1fr;gap:16px}.stat-card,.manage-card{padding:20px}.stat-value-xxlarge{font-size:58px}.stat-value-xlarge{font-size:48px}.stat-value-large{font-size:40px}.stat-value-default{font-size:32px}.manage-card h3{font-size:18px}}@media (max-width: 480px){.stat-value-xxlarge{font-size:48px}.stat-value-xlarge{font-size:40px}.stat-value-large{font-size:34px}.stat-value-default{font-size:28px}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5a67d8,#6b46a0)}.logout-btn:focus-visible,.manage-btn:focus-visible,.refresh-btn:focus-visible,.stat-card:focus-visible,.manage-card:focus-visible{outline:2px solid #667eea;outline-offset:3px}@media print{.dashboard-container{background:#fff;padding:0}.logout-btn,.manage-btn,.refresh-btn,.stat-growth{display:none}.stat-card,.manage-card{break-inside:avoid;box-shadow:none;border:1px solid #ddd;page-break-inside:avoid}.dashboard-header{background:#667eea;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (prefers-color-scheme: dark){.dashboard-container{background:#1a1a2e}.stat-card,.manage-card{background:#16213e;border-color:#2a3a5e}.stat-card h3,.manage-card h3,.admin-stat-value{color:#eee}.stat-title,.manage-card p{color:#aaa}.section-title{color:#eee}.section-title:after{background:linear-gradient(90deg,#8b7cf0,#9d6bc4)}}.dues-container{max-width:1100px;margin:auto;padding:24px;font-family:Segoe UI,system-ui,sans-serif;background:linear-gradient(90deg,#667eea,#764ba2)}.dues-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 6px 18px #00000014}.dues-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dues-header h2{margin:0;color:#1f2937}.student-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:20px}.info-box{background:#f1f5f9;padding:12px 16px;border-radius:8px;font-size:14px}.summary-box{display:flex;gap:16px;margin-bottom:20px}.summary-card{flex:1;padding:16px;border-radius:10px;color:#fff}.summary-card.amount{background:linear-gradient(135deg,#ef4444,#dc2626)}.summary-card.date{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.summary-card h3{margin:0;font-size:22px}.summary-card p{margin:4px 0 0;font-size:14px;opacity:.9}.dues-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:10px}.dues-table thead{color:#fff}.dues-table th,.dues-table td{padding:12px 14px;font-size:14px;text-align:left}.dues-table tbody tr:nth-child(2n){background:#f8fafc}.dues-table tbody tr:hover{background:#e2e8f0}.overdue{background:#fee2e2!important;color:#991b1b;font-weight:600}.no-dues{text-align:center;padding:40px;font-size:18px;color:#16a34a;font-weight:600}@media (max-width: 768px){.summary-box{flex-direction:column}.student-info{grid-template-columns:1fr}}.pay-now-btn{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:600;cursor:pointer}.pay-now-btn:disabled{background:#9ca3af;cursor:not-allowed}.status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.pending{background-color:#fee2e2;color:#b91c1c}.status-badge.paid{background-color:#dcfce7;color:#166534}.timetable-container{min-height:100vh;padding:30px;background:#f5f7fb;color:#1f2937;font-family:Arial,sans-serif}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.breadcrumb{font-size:13px;color:#6b7280}.title{font-size:28px;font-weight:700;margin-top:8px;color:#111827}.header-buttons{display:flex;gap:15px}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:.3s ease}.btn-primary{background:linear-gradient(to right,#8b5cf6,#6366f1);color:#fff}.btn-primary:hover{opacity:.9}.btn-secondary{background:#e5e7eb;color:#111827}.btn-secondary:hover{background:#d1d5db}.section-title{margin-bottom:20px;font-size:20px;font-weight:600;color:#111827}.stats-grid,.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:25px;margin-bottom:40px}.stat-card,.action-card{background:#fff;padding:25px;border-radius:12px;transition:.3s ease;box-shadow:0 4px 12px #0000000d}.stat-card:hover,.action-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px #00000014}.icon{margin-bottom:15px;color:#6366f1}.stat-card h4{font-size:14px;color:#6b7280}.admin-stat-value{font-size:24px;font-weight:700;margin-top:6px;color:#111827}.stat-sub{font-size:12px;color:#9ca3af}.action-card h4{font-size:18px;margin-bottom:8px;color:#111827}.action-card p{font-size:14px;color:#6b7280;margin-bottom:12px}.action-card button{background:none;border:none;color:#6366f1;cursor:pointer;font-size:14px}.action-card button:hover{color:#4338ca}.activity-box{background:#fff;padding:25px;border-radius:12px;margin-bottom:40px;box-shadow:0 4px 12px #0000000d}.activity-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e5e7eb}.activity-item:last-child{border-bottom:none}.activity-left{display:flex;align-items:center;gap:12px}.activity-item span{font-size:12px;color:#6b7280}.table-wrapper{background:#fff;padding:25px;border-radius:12px;overflow-x:auto;box-shadow:0 4px 12px #0000000d}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px;text-align:left}thead{border-bottom:2px solid #e5e7eb;color:#6b7280;background:#f9fafb}tbody tr{border-bottom:1px solid #e5e7eb}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f3f4f6}.timetable-container{max-width:1400px;margin:0 auto;padding:2rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f8fafc;min-height:100vh}.page-header{margin-bottom:2rem;text-align:center}.page-header h1{font-size:2.2rem;font-weight:700;background:linear-gradient(135deg,#1e293b,#3b82f6);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.5rem}.page-header p{color:#64748b;font-size:1rem}.form-card,.list-card{background:#fff;border-radius:1.5rem;box-shadow:0 4px 20px #0000000d;margin-bottom:2rem;overflow:hidden;transition:box-shadow .3s ease}.form-card:hover,.list-card:hover{box-shadow:0 8px 30px #0000001a}.form-header,.list-header{padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.form-header h2,.list-header h2{font-size:1.4rem;font-weight:600;color:#0f172a;margin:0}.list-stats{display:flex;align-items:center}.count-badge{background:#eef2ff;color:#3b82f6;padding:.25rem .75rem;border-radius:2rem;font-size:.85rem;font-weight:500}.timetable-form{padding:2rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.85rem;font-weight:600;color:#334155;text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select{padding:.75rem 1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;font-size:.95rem;transition:all .2s ease;background:#fff;font-family:inherit}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled{background:#f1f5f9;cursor:not-allowed}.field-hint{font-size:.7rem;color:#ef4444;margin-top:.25rem}.submit-group{display:flex;align-items:flex-end}.submit-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.75rem;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;width:100%;box-shadow:0 2px 5px #2563eb33}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.cancel-btn{background:#f1f5f9;border:none;padding:.5rem 1rem;border-radius:.5rem;font-size:.85rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease}.cancel-btn:hover{background:#e2e8f0}.table-wrapper{overflow-x:auto;padding:0 0 1rem}.timetable-table thead{background:#f8fafc;border-bottom:2px solid #e2e8f0}.timetable-table th{padding:1rem;text-align:left;font-size:.85rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.timetable-table td{padding:1rem;border-bottom:1px solid #f1f5f9;font-size:.9rem;color:#1e293b}.timetable-table tbody tr:hover{background:#fef9e3;transition:background .2s ease}.badge-class,.badge-section{display:inline-block;padding:.25rem .75rem;border-radius:2rem;font-size:.8rem;font-weight:500}.badge-class{background:#dbeafe;color:#1e40af}.badge-section{background:#e0e7ff;color:#3730a3}.subject-name{font-weight:500;color:#0f172a}.day-badge{display:inline-block;padding:.25rem .75rem;background:#f1f5f9;border-radius:2rem;font-size:.75rem;font-weight:500;color:#334155}.actions-cell{display:flex;gap:.5rem}.action-btn{background:none;border:none;padding:.5rem;border-radius:.5rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.edit-btn{color:#3b82f6;background:#eff6ff}.edit-btn:hover{background:#dbeafe;transform:scale(1.05)}.delete-btn{color:#ef4444;background:#fef2f2}.delete-btn:hover{background:#fee2e2;transform:scale(1.05)}.loading-state,.empty-state{padding:3rem 2rem;text-align:center;color:#64748b}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.empty-state svg{color:#cbd5e1;margin-bottom:1rem}.empty-state p{font-size:1rem;font-weight:500;margin-bottom:.25rem}.empty-state small{font-size:.85rem;color:#94a3b8}@media (max-width: 768px){.timetable-container{padding:1rem}.form-header,.list-header{padding:1rem;flex-direction:column;align-items:flex-start}.timetable-form{padding:1rem}.form-row{grid-template-columns:1fr;gap:1rem}.submit-group{margin-top:.5rem}.timetable-table th,.timetable-table td{padding:.75rem;font-size:.8rem}.actions-cell{flex-direction:column;gap:.25rem}}@media (max-width: 480px){.page-header h1{font-size:1.5rem}.form-header h2,.list-header h2{font-size:1.2rem}.timetable-table{font-size:.75rem}}.manage-container{padding:30px;background:#f5f7fb;min-height:100vh}.manage-container h2{margin-bottom:20px}.manage-container table{width:100%;background:#fff;border-collapse:collapse;border-radius:10px;overflow:hidden;box-shadow:0 4px 12px #0000000d}.manage-container th,.manage-container td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left}.manage-container th{background:#f9fafb}.manage-container button{padding:6px 10px;margin-right:5px;border:none;border-radius:5px;cursor:pointer;background:#6366f1;color:#fff}.delete-btn{background:#ef4444}.manage-container button:hover{opacity:.85}.view-container{padding:30px;background:#f5f7fb;min-height:100vh}.view-container h2{margin-bottom:20px}.view-container table{width:100%;background:#fff;border-collapse:collapse;border-radius:10px;overflow:hidden;box-shadow:0 4px 12px #0000000d}.view-container th,.view-container td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left}.view-container th{background:#f9fafb}.view-container tbody tr:hover{background:#f3f4f6}.student-view-page{padding:25px;background:#f4f6f9;min-height:100vh}.student-view-header{background:linear-gradient(90deg,#667eea,#764ba2);color:#fff;padding:25px 30px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.header-left{display:flex;align-items:center;gap:15px}.back-btn{background:#fff3;border:none;padding:8px;border-radius:8px;cursor:pointer;color:#fff}.avatar-circle{width:55px;height:55px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center}.student-view-header h2{margin:0}.student-view-header p{margin:4px 0 0;font-size:14px;opacity:.9}.status-badge{background:#d4edda;color:#155724;padding:8px 14px;border-radius:20px;font-size:14px;font-weight:600}.student-view-page{padding:24px;background:#f4f6f9;min-height:100vh;font-family:Inter,sans-serif}.student-view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px;margin-top:20px}.card{background:#fff;border-radius:12px;padding:22px;border:1px solid #e2e6ea;box-shadow:0 2px 6px #0000000a;transition:.2s ease}.card:hover{box-shadow:0 4px 12px #00000012}.card h3{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:18px;border-bottom:1px solid #edf0f3;padding-bottom:10px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 28px}.info-grid span{font-size:13px;color:#6c757d;display:block;margin-bottom:4px}.info-grid p{font-size:15px;font-weight:500;color:#2d3436;margin:0}.address-text{font-size:15px;line-height:1.6;color:#2d3436}.status-badge{background:#e6f4ea;color:#2e7d32;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500}@media (max-width: 768px){.student-view-grid,.info-grid{grid-template-columns:1fr}}.student-view-header h2{color:#fff;margin:0}.performance-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:10px}.stat-item{text-align:center}.stat-label{display:block;font-size:12px;color:#6c757d;margin-bottom:5px}.stat-value{font-size:20px;font-weight:600;color:#2c3e50}.exam-list{margin-top:15px}.exam-item{margin-bottom:15px;padding:10px;background:#f8f9fa;border-radius:8px}.exam-info{display:flex;justify-content:space-between;margin-bottom:5px}.exam-name{font-weight:500;color:#2c3e50}.exam-date{font-size:12px;color:#6c757d}.exam-score{margin-bottom:8px}.score-value{font-weight:600;color:#2c3e50}.score-percentage{font-size:12px;color:#6c757d;margin-left:5px}.attendance-overall{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;margin-bottom:20px;color:#fff}.overall-label{font-size:14px;opacity:.9}.overall-value{font-size:24px;font-weight:600}.subject-list{margin-top:15px}.subject-item{margin-bottom:15px}.subject-info{display:flex;justify-content:space-between;margin-bottom:5px}.subject-name{font-weight:500;color:#2c3e50}.subject-attendance{font-size:13px;color:#6c757d}.progress-bar-container{width:100%;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.fee-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.fee-item{text-align:center;padding:10px;border-radius:8px}.fee-item.total{background:#e3f2fd}.fee-item.paid{background:#e8f5e8}.fee-item.pending{background:#fff3e0}.fee-label{display:block;font-size:12px;color:#6c757d;margin-bottom:5px}.fee-amount{font-size:16px;font-weight:600}.pending-amount{color:#f44336}.fee-progress{margin-bottom:20px}.progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px;color:#6c757d}.fee-dates{display:flex;gap:20px;padding:15px;background:#f8f9fa;border-radius:8px;margin-bottom:20px}.date-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c3e50}.fee-structure{margin-top:15px}.fee-structure-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f3}.fee-structure-item:last-child{border-bottom:none}.fee-head{font-weight:500;color:#2c3e50;flex:1}.fee-amounts{display:flex;gap:20px;font-size:13px}.fee-total{color:#2c3e50;width:80px;text-align:right}.fee-paid{color:#4caf50;width:80px;text-align:right}.fee-pending{width:80px;text-align:right}.fee-pending.has-pending{color:#f44336;font-weight:600}.card.performance-card:hover,.card.attendance-card:hover,.card.fee-card:hover{transform:translateY(-2px);transition:transform .2s ease}@media (max-width: 768px){.fee-summary{grid-template-columns:1fr}.fee-amounts{flex-direction:column;gap:5px;align-items:flex-end}.fee-total,.fee-paid,.fee-pending{width:auto}.fee-dates{flex-direction:column;gap:10px}}.student-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:25px;background:#fff;padding:15px;border-radius:16px;box-shadow:0 2px 8px #0000000a;border:1px solid #e2e6ea}.tab-btn{padding:10px 18px;border:none;border-radius:10px;background:#f8f9fa;color:#6c757d;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap}.tab-btn:hover{background:#e9ecef;color:#495057}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 10px #667eea4d}.card.full-width{grid-column:1 / -1}.stats-card .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.stat-box{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.stat-box:hover{transform:translateY(-3px);box-shadow:0 6px 12px #0000000d}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-icon.blue{background:#e3f2fd;color:#1976d2}.stat-icon.green{background:#e8f5e9;color:#388e3c}.stat-icon.orange{background:#fff3e0;color:#f57c00}.stat-icon.purple{background:#f3e5f5;color:#7b1fa2}.stat-box h4{margin:0 0 5px;font-size:20px;font-weight:600;color:#2c3e50}.stat-box p{margin:0;font-size:13px;color:#6c757d}.achievements-list{display:flex;flex-direction:column;gap:15px}.achievement-item{display:flex;gap:15px;padding:12px;background:#f8f9fa;border-radius:10px;transition:all .3s ease}.achievement-item:hover{transform:translate(5px);background:#f0f2f5}.achievement-icon{width:40px;height:40px;border-radius:10px;background:#fff3e0;color:#f57c00;display:flex;align-items:center;justify-content:center}.achievement-details h4{margin:0 0 5px;font-size:15px;font-weight:600;color:#2c3e50}.achievement-details p{margin:0 0 5px;font-size:13px;color:#6c757d}.achievement-date{font-size:11px;color:#999}.subject-performance{margin:20px 0;background:#f8f9fa;border-radius:12px;padding:15px}.subject-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e9ecef}.subject-row:last-child{border-bottom:none}.subject-name{font-weight:500;color:#2c3e50;flex:1}.subject-score{font-weight:600;color:#2c3e50;width:60px;text-align:right}.subject-grade{width:50px;text-align:right;font-weight:600;color:#667eea}.timetable-card .day-selector{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.day-btn{padding:8px 16px;border:1px solid #dee2e6;background:#fff;border-radius:20px;font-size:13px;cursor:pointer;transition:all .3s ease}.day-btn.active{background:#667eea;color:#fff;border-color:#667eea}.day-btn:hover:not(.active){background:#f8f9fa}.timetable-table{width:100%;border-collapse:collapse}.timetable-table th{text-align:left;padding:12px;background:#f8f9fa;font-weight:600;font-size:13px;color:#495057;border-bottom:2px solid #dee2e6}.timetable-table td{padding:12px;border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:14px}.break-row{background:#f8f9fa;opacity:.8}.subject-tag{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.subject-tag.math{background:#e3f2fd;color:#1976d2}.subject-tag.science{background:#e8f5e9;color:#388e3c}.subject-tag.english{background:#fff3e0;color:#f57c00}.subject-tag.other{background:#f3e5f5;color:#7b1fa2}.monthly-attendance{display:grid;grid-template-columns:repeat(6,1fr);gap:15px;margin-top:20px}.month-item{text-align:center}.month-name{font-size:13px;color:#6c757d;margin-bottom:10px}.month-bars{display:flex;justify-content:center;gap:4px;height:80px;align-items:flex-end;margin-bottom:8px}.month-bar{width:12px;border-radius:4px 4px 0 0;transition:height .3s ease}.month-bar.present{background:#28a745}.month-bar.absent{background:#dc3545}.month-bar.late{background:#ffc107}.month-total{font-size:12px;color:#2c3e50;font-weight:500}.fee-table{width:100%;border-collapse:collapse;margin:15px 0}.fee-table th{text-align:left;padding:12px;background:#f8f9fa;font-weight:600;font-size:13px;color:#495057;border-bottom:2px solid #dee2e6}.fee-table td{padding:12px;border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:14px}.paid-text{color:#4caf50;font-weight:500}.pending-text{font-weight:500}.pending-text.has-pending{color:#f44336}.fee-actions{display:flex;gap:15px;margin-top:20px}.pay-now-btn,.download-receipt-btn{padding:12px 24px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.pay-now-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.pay-now-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.download-receipt-btn{background:#f8f9fa;color:#6c757d;border:1px solid #dee2e6}.download-receipt-btn:hover{background:#e9ecef;transform:translateY(-2px)}.teachers-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.teacher-item{display:flex;gap:15px;padding:15px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.teacher-item:hover{transform:translateY(-3px);box-shadow:0 6px 12px #0000000d}.teacher-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;flex-shrink:0}.teacher-info h4{margin:0 0 5px;font-size:16px;font-weight:600;color:#2c3e50}.teacher-subject{margin:0 0 5px;font-size:13px;color:#667eea;font-weight:500}.teacher-qualification{margin:0 0 8px;font-size:12px;color:#6c757d}.teacher-contact{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#6c757d}.teacher-contact span{display:flex;align-items:center;gap:6px}.homework-list{display:grid;gap:15px}.homework-item{padding:15px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.homework-item:hover{transform:translate(5px);box-shadow:0 4px 12px #0000000d}.homework-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.homework-subject{font-weight:600;color:#667eea;font-size:14px}.homework-status{padding:4px 10px;border-radius:20px;color:#fff;font-size:11px;font-weight:500;text-transform:uppercase}.homework-item h4{margin:0 0 8px;font-size:16px;font-weight:600;color:#2c3e50}.homework-item p{margin:0 0 12px;font-size:13px;color:#6c757d;line-height:1.5}.homework-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px}.due-date{display:flex;align-items:center;gap:5px;color:#f57c00}.homework-grade{padding:4px 10px;background:#e8f5e9;color:#388e3c;border-radius:20px;font-weight:500}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.achievement-card{padding:20px;background:#f8f9fa;border-radius:12px;transition:all .3s ease}.achievement-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #0000000d}.achievement-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.achievement-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.achievement-icon.attendance{background:#e3f2fd;color:#1976d2}.achievement-icon.academic{background:#e8f5e9;color:#388e3c}.achievement-icon.co-curricular{background:#fff3e0;color:#f57c00}.achievement-icon.sports{background:#f3e5f5;color:#7b1fa2}.achievement-type{font-size:12px;color:#6c757d;text-transform:capitalize}.achievement-card h4{margin:0 0 8px;font-size:16px;font-weight:600;color:#2c3e50}.achievement-card p{margin:0 0 15px;font-size:13px;color:#6c757d;line-height:1.5}.achievement-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding-top:10px;border-top:1px solid #e9ecef}.achievement-position,.achievement-award{padding:3px 8px;border-radius:12px;font-weight:500}.achievement-position{background:#fff3e0;color:#f57c00}.achievement-award{background:#ffebee;color:#c62828}.library-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:25px}.library-stat{text-align:center;padding:15px;background:#f8f9fa;border-radius:10px}.library-stat .stat-value{font-size:28px;font-weight:600;color:#2c3e50;display:block;margin-top:5px}.library-stat .stat-value.overdue{color:#f44336}.books-table{width:100%;border-collapse:collapse}.books-table th{text-align:left;padding:12px;background:#f8f9fa;font-weight:600;font-size:13px;color:#495057;border-bottom:2px solid #dee2e6}.books-table td{padding:12px;border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:14px}.book-status{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:500;text-transform:uppercase}.book-status.issued{background:#e3f2fd;color:#1976d2}.book-status.overdue{background:#ffebee;color:#c62828}.book-status.returned{background:#e8f5e9;color:#388e3c}.transport-info{padding:10px 0}.transport-header{margin-bottom:20px}.transport-route{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.transport-route h4{margin:0;font-size:18px;font-weight:600;color:#2c3e50}.bus-number{padding:6px 12px;background:#667eea;color:#fff;border-radius:20px;font-size:12px;font-weight:500}.transport-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:12px}.transport-detail{display:flex;flex-direction:column;gap:5px}.detail-label{font-size:12px;color:#6c757d}.detail-value{font-size:15px;font-weight:500;color:#2c3e50}.route-stops{margin-top:15px}.stop-item{display:flex;align-items:center;gap:15px;padding:12px;border-bottom:1px solid #e9ecef}.stop-item:last-child{border-bottom:none}.stop-marker{width:24px;height:24px;border-radius:50%;background:#667eea;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.stop-detail{font-size:14px;color:#2c3e50}.documents-list{display:grid;gap:12px}.document-item{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:10px;transition:all .3s ease}.document-item:hover{transform:translate(5px);background:#f0f2f5}.document-icon{width:40px;height:40px;border-radius:8px;background:#e3f2fd;color:#1976d2;display:flex;align-items:center;justify-content:center}.document-info{flex:1}.document-info h4{margin:0 0 4px;font-size:15px;font-weight:600;color:#2c3e50}.document-info p{margin:0;font-size:12px;color:#6c757d}.document-actions{display:flex;gap:8px}.view-doc,.download-doc{width:36px;height:36px;border:none;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.view-doc{background:#e3f2fd;color:#1976d2}.download-doc{background:#e8f5e9;color:#388e3c}.view-doc:hover,.download-doc:hover{transform:scale(1.1)}@media (max-width: 768px){.student-tabs{overflow-x:auto;flex-wrap:nowrap;padding:12px}.tab-btn{white-space:nowrap}.stats-card .stats-grid{grid-template-columns:1fr}.monthly-attendance{grid-template-columns:repeat(3,1fr)}.teachers-list,.achievements-grid,.library-stats,.transport-details{grid-template-columns:1fr}.fee-actions{flex-direction:column}.pay-now-btn,.download-receipt-btn{width:100%}.document-item{flex-wrap:wrap}.document-actions{width:100%;justify-content:flex-end}}.card{animation:fadeIn .3s ease-out}.loading-spinner{display:inline-block;width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.page-container{min-height:100vh;background:linear-gradient(135deg,#eef2ff,#f8fafc);padding:40px 20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.page-inner{max-width:1200px;margin:auto;background:#fff;padding:35px;border-radius:16px;box-shadow:0 15px 40px #00000014;animation:fadeIn .3s ease-in-out}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.page-header h2{font-size:24px;font-weight:600;color:#1e293b}.page-header button{background:#f1f5f9;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;transition:.3s}.page-header button:hover{background:#e2e8f0}.stepper{display:flex;justify-content:space-between;margin-bottom:40px;position:relative}.step{text-align:center;flex:1;position:relative;opacity:.5;transition:.3s}.step.active{opacity:1}.step span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#e2e8f0;font-weight:600;margin-bottom:8px;transition:.3s}.step.active span{background:#6366f1;color:#fff;box-shadow:0 5px 15px #6366f166}.step p{font-size:13px;font-weight:500;color:#334155}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-bottom:25px}input,select,textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;font-size:14px;transition:.3s;background:#f9fafb}input:focus,select:focus,textarea:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f126}textarea{min-height:80px;resize:none}h4{margin-top:20px;margin-bottom:10px;color:#1e293b}.checkbox-grid{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.checkbox-grid label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.checkbox-grid input{accent-color:#6366f1;width:16px;height:16px}.review-section{background:#f8fafc;padding:20px;border-radius:12px;line-height:1.8;font-size:14px}.review-section p{margin-bottom:8px}.review-section label{display:flex;align-items:center;gap:8px;margin-top:15px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}.modal-footer button{padding:10px 18px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:.3s}.modal-footer button:first-child:not(.primary){background:#e2e8f0}.modal-footer button:first-child:not(.primary):hover{background:#cbd5e1}.primary{background:#6366f1;color:#fff}.primary:hover{background:#4f46e5;box-shadow:0 8px 20px #4f46e54d}.primary:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none}.error{color:#ef4444;font-size:12px;margin-top:4px}.form-grid div{display:flex;flex-direction:column}@media (max-width: 768px){.page-inner{padding:20px}.stepper{flex-direction:column;gap:15px}.step{text-align:left}}.image-upload-section{margin-bottom:24px;display:flex;justify-content:center}.profile-image-container{display:flex;flex-direction:column;align-items:center;gap:12px}.profile-preview{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #3b82f6}.profile-placeholder{width:120px;height:120px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;border:2px dashed #94a3b8}.profile-placeholder i{font-size:40px;color:#64748b}.upload-btn{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:14px;transition:all .2s}.upload-btn:hover{background:#2563eb;transform:translateY(-1px)}.review-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:20px}.review-profile-image{display:flex;justify-content:center;margin-bottom:24px}.review-profile-img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid #3b82f6;box-shadow:0 4px 10px #0000001a}.review-profile-placeholder{width:150px;height:150px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;border:3px dashed #94a3b8}.review-profile-placeholder i{font-size:60px;color:#64748b}.review-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-bottom:24px}.review-details h3{grid-column:1 / -1;color:#1e293b;margin:16px 0 8px;padding-bottom:8px;border-bottom:2px solid #e2e8f0}.review-details h3:first-of-type{margin-top:0}.review-details p{margin:4px 0;color:#334155;font-size:14px}.review-details p b{color:#0f172a;min-width:140px;display:inline-block}.confirmation-checkbox{display:flex;align-items:flex-start;gap:12px;padding:20px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;margin-top:20px}.confirmation-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer}.confirmation-checkbox{font-size:14px;color:#334155;line-height:1.5}.cropper-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:999}.cropper-container{background:#fff;padding:20px;width:350px;border-radius:8px;text-align:center}.slider-box{margin:15px 0}.crop-buttons{margin-top:15px;display:flex;justify-content:space-around}.save-btn{background:green;color:#fff;padding:7px 15px;border:none;cursor:pointer;border-radius:5px}.cancel-btn{background:red;color:#fff;padding:7px 15px;border:none;cursor:pointer;border-radius:5px}.student-form-page{padding:30px;background:#f4f6f9;min-height:100vh}.student-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.student-form-header h2{font-size:24px;font-weight:600;color:#222}.cancel-btn{padding:8px 18px;border-radius:6px;border:none;background:#e74c3c;color:#fff;cursor:pointer;transition:.3s}.cancel-btn:hover{background:#c0392b}.dashboard-container{padding:20px;background:#fff;min-height:100vh;font-family:Segoe UI,sans-serif;color:#333}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.dashboard-header h2{margin:0;color:#fff}.dashboard-header p{margin:4px 0 0;font-size:14px;color:#fff}.header-right{display:flex;gap:10px}.search-box{padding:8px 12px;border-radius:6px;border:1px solid #ddd;outline:none}.date-btn{padding:8px 14px;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;cursor:pointer}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:#fff;padding:20px;border-radius:14px;box-shadow:0 2px 10px #0000000d}.summary-card h3{margin-bottom:15px;color:#8b5cf6}.summary-numbers{display:flex;justify-content:space-between;margin-bottom:15px;text-align:center}.summary-numbers h2{font-size:22px;font-weight:600}.summary-numbers p{font-size:12px;color:#6b7280}.progress{background:#e5e7eb;height:8px;border-radius:6px;overflow:hidden;margin:8px 0}.progress div{height:100%;background:#3b82f6;transition:width .4s ease}.progress.small{height:6px}.attention-section{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}.panel{background:#fff;padding:20px;border-radius:14px;box-shadow:0 2px 10px #0000000d}.alert{padding:12px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}.alert-danger{background:#fee2e2;color:#b91c1c}.alert-warning{background:#fef3c7;color:#92400e}.alert-info{background:#dbeafe;color:#1e40af}.live-feed{list-style:none;padding:0;margin:15px 0 0}.live-feed li{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e5e7eb}.live-feed strong{font-size:14px;color:#111827}.live-feed p{font-size:12px;color:#6b7280}.badge{background:#22c55e;color:#fff;font-size:11px;padding:4px 10px;border-radius:20px}.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:15px;margin-top:20px}.class-card{background:#f9fafb;padding:15px;border-radius:10px;text-align:center}.class-card h4{margin-bottom:8px;font-size:14px}.red{color:#ef4444}.yellow{color:#f59e0b}@media (max-width: 992px){.attention-section{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start;gap:15px}.header-right,.search-box{width:100%}}.dashboard-container{padding:24px;background-color:#f8fafc;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.back-btn{background:#fff;border:1px solid #e2e8f0;color:#475569;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.back-btn:hover{background-color:#f8fafc;border-color:#cbd5e1;transform:translate(-2px);box-shadow:0 4px 6px -1px #0000001a}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;background:#fff;padding:20px 24px;border-radius:16px;box-shadow:0 1px 3px #0000001a}.header-row h2{font-size:24px;font-weight:600;color:#0f172a;margin:0;background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.date-display{background:#f1f5f9;padding:10px 20px;border-radius:40px;font-size:14px;color:#334155;font-weight:500;border:1px solid #e2e8f0;box-shadow:inset 0 1px 2px #0000000d}.date-display strong{color:#64748b;font-weight:600;margin-right:6px}.filters-row{display:flex;gap:16px;margin-bottom:28px;flex-wrap:nowrap;background:#fff;padding:20px;border-radius:16px;box-shadow:0 1px 3px #0000001a}.filter-select{padding:12px 40px 12px 18px;border:1.5px solid #e2e8f0;border-radius:12px;font-size:14px;color:#1e293b;background-color:#fff;cursor:pointer;min-width:160px;transition:all .2s ease;font-weight:500;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20' stroke='%23475569'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:20px}.filter-select:hover{border-color:#94a3b8;background-color:#f8fafc}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.refresh-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:12px 24px;border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;transition:all .2s ease;margin-left:auto;box-shadow:0 4px 6px -1px #2563eb33}.refresh-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 10px -1px #2563eb4d}.refresh-btn:disabled{opacity:.6;cursor:not-allowed;background:#94a3b8;box-shadow:none}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:#fff;padding:20px;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a;display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .2s ease;border:1px solid #e2e8f0}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.stat-card.present{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#86efac}.stat-card.absent{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5}.stat-card.late{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d}.stat-card.leave{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:#c4b5fd}.stat-label{font-size:14px;color:#64748b;margin-bottom:8px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:32px;font-weight:700;color:#0f172a;line-height:1.2}.stat-card.present .stat-value{color:#166534}.stat-card.absent .stat-value{color:#991b1b}.stat-card.late .stat-value{color:#92400e}.stat-card.leave .stat-value{color:#5b21b6}.table-container{background:#fff;border-radius:20px;box-shadow:0 4px 6px -1px #0000001a;overflow:auto;border:1px solid #e2e8f0}.record-table{width:100%;border-collapse:collapse;font-size:14px;min-width:1000px}.record-table thead tr{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e2e8f0}.record-table th{text-align:left;padding:18px 16px;font-weight:600;color:#475569;text-transform:uppercase;font-size:12px;letter-spacing:.5px;white-space:nowrap}.record-table td{padding:16px;border-bottom:1px solid #e2e8f0;color:#1e293b;vertical-align:middle}.record-table tbody tr{transition:all .2s ease}.record-table tbody tr:hover{background-color:#f8fafc;transform:scale(1.01);box-shadow:0 2px 8px #0000000d}.name-cell{display:flex;align-items:center;gap:14px;font-weight:500}.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;text-transform:uppercase;box-shadow:0 2px 4px #0000001a;border:2px solid white;overflow:hidden}.avatar-img{width:100%;height:100%;object-fit:cover}.status{padding:8px 14px;border-radius:40px;font-size:12px;font-weight:600;text-transform:capitalize;display:inline-block;min-width:80px;text-align:center;letter-spacing:.3px;box-shadow:0 1px 2px #0000000d}.status.present{background:linear-gradient(135deg,#86efac,#4ade80);color:#14532d;border:1px solid #22c55e}.status.absent{background:linear-gradient(135deg,#fca5a5,#f87171);color:#7f1d1d;border:1px solid #ef4444}.status.late{background:linear-gradient(135deg,#fcd34d,#fbbf24);color:#78350f;border:1px solid #f59e0b}.status.leave{background:linear-gradient(135deg,#c4b5fd,#a78bfa);color:#4c1d95;border:1px solid #8b5cf6}.status.half-day{background:linear-gradient(135deg,#a5f3fc,#67e8f9);color:#155e75;border:1px solid #06b6d4}.status.holiday{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;border:1px solid #6366f1}.method{padding:6px 12px;border-radius:40px;font-size:11px;font-weight:600;text-transform:uppercase;display:inline-block;min-width:70px;text-align:center;letter-spacing:.5px}.method.rfid{background:#dbeafe;color:#1e3a8a;border:1px solid #93c5fd}.method.manual{background:#f3e8ff;color:#581c87;border:1px solid #c4b5fd}.method.face{background:#dcfce7;color:#14532d;border:1px solid #86efac}.method.fingerprint{background:#fff1f2;color:#881337;border:1px solid #fda4af}.percentage-cell{display:flex;align-items:center;gap:12px;min-width:140px}.progress-container{flex:1;height:8px;background:#e2e8f0;border-radius:20px;overflow:hidden;box-shadow:inset 0 1px 2px #0000001a}.progress-bar{height:100%;border-radius:20px;transition:width .3s ease;position:relative;overflow:hidden}.progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff1a 25%,#ffffff4d,#ffffff1a 75%);animation:shimmer 2s infinite;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.progress-bar.progress-green{background:linear-gradient(90deg,#4ade80,#22c55e)}.progress-bar.progress-yellow{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.progress-bar.progress-red{background:linear-gradient(90deg,#f87171,#ef4444)}.percentage-value{font-size:13px;font-weight:600;min-width:65px;color:#0f172a;display:flex;flex-direction:column;align-items:flex-start}.percentage-value small{font-size:10px;color:#64748b;font-weight:400;margin-top:2px}.loading-state{text-align:center;padding:80px 20px;background:#fff;border-radius:20px;box-shadow:0 4px 6px -1px #0000001a}.spinner{border:4px solid #f1f5f9;border-top:4px solid #3b82f6;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 20px}.loading-state p{color:#64748b;font-size:16px;font-weight:500;margin:0}.error-state{text-align:center;padding:60px 20px;background:#fff;border-radius:20px}.error-message{color:#dc2626;margin-bottom:20px;font-size:15px;font-weight:500;background:#fee2e2;padding:12px 24px;border-radius:40px;display:inline-block;border:1px solid #fecaca}.retry-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:12px 32px;border-radius:40px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;box-shadow:0 4px 6px -1px #2563eb33}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 6px 10px -1px #2563eb4d}.empty-state{text-align:center;padding:80px 20px;background:#fff;border-radius:20px;color:#64748b}.empty-state p{font-size:16px;margin:0 0 8px;font-weight:500}.empty-hint{font-size:14px;color:#94a3b8;margin-top:8px}.login-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:14px 36px;border-radius:40px;cursor:pointer;font-size:15px;font-weight:600;margin-top:20px;transition:all .2s ease;box-shadow:0 4px 6px -1px #2563eb33}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 10px -1px #2563eb4d}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px;padding:20px 0;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a}.page-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;padding:10px 24px;border-radius:40px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.page-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 6px -1px #2563eb4d}.page-btn:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6;box-shadow:none}.page-info{font-size:15px;color:#334155;font-weight:500;background:#f1f5f9;padding:8px 20px;border-radius:40px;border:1px solid #e2e8f0}@media (max-width: 768px){.dashboard-container{padding:16px}.header-row{flex-direction:column;gap:16px;text-align:center;padding:16px}.filters-row{flex-direction:column}.filter-select{width:100%}.refresh-btn{margin-left:0;width:100%;justify-content:center}.summary-stats{grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px}.stat-value{font-size:24px}.table-container{border-radius:12px}.record-table{font-size:13px}.record-table th,.record-table td{padding:12px}.name-cell{gap:10px}.avatar{width:36px;height:36px;font-size:14px}.status{padding:6px 10px;min-width:70px;font-size:11px}.percentage-cell{min-width:120px}.percentage-value{font-size:12px}.pagination{flex-direction:column;gap:12px}.page-btn{width:100%}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:10px}::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#64748b}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.record-table tbody tr{animation:fadeIn .3s ease-out}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:6px 12px;background:#1e293b;color:#fff;font-size:12px;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none;z-index:10}[data-tooltip]:hover:before{opacity:1;visibility:visible;bottom:calc(100% + 5px)}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.action-btn{padding:8px 16px;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:90px}.action-btn i{font-size:.9rem}.action-btn span{font-size:.85rem}.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.action-btn.present-btn{background:#10b9811a;color:#059669;border:1px solid rgba(16,185,129,.2)}.action-btn.present-btn:hover:not(:disabled){background:#10b981;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.action-btn.present-btn.active{background:#10b981;color:#fff;border-color:#10b981}.action-btn.absent-btn{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.action-btn.absent-btn:hover:not(:disabled){background:#ef4444;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.action-btn.absent-btn.active{background:#ef4444;color:#fff;border-color:#ef4444}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:capitalize}.status-badge i{font-size:.8rem}.status-badge.present{background:#10b9811a;color:#059669;border:1px solid rgba(16,185,129,.2)}.status-badge.absent{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-card);transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-card.present{border-left:4px solid #10b981}.stat-card.absent{border-left:4px solid #ef4444}.stat-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:8px}.stat-value{font-size:2rem;font-weight:700;color:var(--text-h)}@media (max-width: 768px){.action-buttons{flex-direction:column}.action-btn{width:100%;min-width:auto}.summary-stats{grid-template-columns:repeat(2,1fr)}}.pending-row{background-color:#ffc1070d!important}.pending-row:hover{background-color:#ffc1071a!important}.pending-indicator{margin-left:4px;color:#f59e0b;font-weight:700}.stat-card.pending{border-left:4px solid #f59e0b}.stat-card.pending .stat-value{color:#f59e0b}.submit-section{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--surface-2);border-top:2px solid var(--border);border-radius:0 0 var(--radius-xl) var(--radius-xl);flex-wrap:wrap;gap:16px}.pending-info{display:flex;align-items:center;gap:12px}.pending-count{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.95rem;color:var(--text-h)}.pending-count i{color:#f59e0b}.submit-actions{display:flex;gap:12px}.submit-btn{padding:12px 32px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:10px;box-shadow:0 4px 12px #10b9814d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #10b98166}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.reset-btn{padding:12px 24px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.reset-btn:hover:not(:disabled){border-color:#f59e0b;color:#f59e0b;background:#f59e0b0d}.reset-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn{padding:6px 12px;min-width:45px}.action-btn span{font-size:.85rem;font-weight:700}.action-btn i{font-size:.85rem}@media (max-width: 768px){.submit-section{flex-direction:column;align-items:stretch}.pending-info{justify-content:center}.submit-actions{flex-direction:column}.submit-btn,.reset-btn{width:100%;justify-content:center}}.marked-by-info{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.current-user-badge{font-size:.7rem;color:#10b981;font-weight:600;background:#10b9811a;padding:2px 6px;border-radius:4px}.user-id-badge.warning{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.user-id-badge.warning i{color:#dc2626}.date-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-b);font-family:JetBrains Mono,monospace;white-space:nowrap}.date-badge i{color:var(--accent-purple);font-size:.75rem}.record-table th{white-space:nowrap;padding:12px 10px}.record-table td{padding:12px 10px}@media (max-width: 1400px){.record-table{min-width:1800px}}@media (max-width: 768px){.date-badge{font-size:.75rem;padding:2px 6px}.date-badge i{display:none}}.tsl-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.tsl-stat-card{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.tsl-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.tsl-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#3498db}.tsl-stat-card.present:before{background:#27ae60}.tsl-stat-card.absent:before{background:#e74c3c}.tsl-stat-card.pending:before{background:#f39c12}.tsl-stat-label{font-size:14px;color:#7f8c8d;font-weight:500;display:flex;align-items:center;gap:8px}.tsl-stat-label svg{color:#3498db;font-size:16px}.tsl-stat-card.present .tsl-stat-label svg{color:#27ae60}.tsl-stat-card.absent .tsl-stat-label svg{color:#e74c3c}.tsl-stat-card.pending .tsl-stat-label svg{color:#f39c12}.tsl-stat-value{font-size:32px;font-weight:700;color:#2c3e50}.tsl-stat-sub{font-size:12px;color:#95a5a6;margin-top:4px}.tsl-stat-card.present{background:linear-gradient(135deg,#fff,#f0fdf4)}.tsl-stat-card.present .tsl-stat-value{color:#27ae60}.tsl-stat-card.absent{background:linear-gradient(135deg,#fff,#fef2f2)}.tsl-stat-card.absent .tsl-stat-value{color:#e74c3c}.tsl-stat-card.pending{background:linear-gradient(135deg,#fff,#fffbeb)}.tsl-stat-card.pending .tsl-stat-value{color:#f39c12}.tsl-stat-card svg{transition:transform .2s}.tsl-stat-card:hover svg{transform:scale(1.1)}@media (max-width: 768px){.tsl-summary-stats{grid-template-columns:repeat(2,1fr);gap:15px}.tsl-stat-value{font-size:24px}.tsl-stat-label{font-size:12px}}@media (max-width: 480px){.tsl-summary-stats{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){.tsl-stat-card{background:#2c3e50}.tsl-stat-label{color:#bdc3c7}.tsl-stat-value{color:#ecf0f1}.tsl-stat-card.present{background:linear-gradient(135deg,#2c3e50,#1e3a2f)}.tsl-stat-card.absent{background:linear-gradient(135deg,#2c3e50,#3a1e1e)}.tsl-stat-card.pending{background:linear-gradient(135deg,#2c3e50,#3a2e1e)}}.tsl-container{padding:24px;max-width:1400px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f7fa;min-height:100vh}.tsl-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px;background:#fff;padding:20px 24px;border-radius:12px;box-shadow:0 2px 8px #00000014}.tsl-header h1{margin:0;font-size:28px;color:#2c3e50;font-weight:600}.tsl-header h1 svg{margin-right:12px;color:#3498db}.tsl-subtitle{margin:8px 0 0;color:#7f8c8d;font-size:14px}.tsl-month-selector{display:flex;gap:12px;align-items:center}.tsl-month-selector svg{color:#3498db;font-size:18px}.tsl-select{padding:10px 16px;font-size:14px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .3s}.tsl-select:hover{border-color:#3498db}.tsl-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.tsl-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.tsl-summary-card{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 8px #00000014;transition:transform .2s,box-shadow .2s}.tsl-summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.tsl-summary-label{font-size:14px;color:#7f8c8d;margin-bottom:8px;font-weight:500}.tsl-summary-label svg{margin-right:6px}.tsl-summary-value{font-size:32px;font-weight:700;color:#2c3e50;margin-bottom:8px}.tsl-summary-amount{font-size:18px;font-weight:600;color:#27ae60;margin-top:8px}.tsl-summary-sub{font-size:12px;color:#95a5a6;margin-top:5px}.tsl-summary-card.paid{background:linear-gradient(135deg,#27ae60,#229954);color:#fff}.tsl-summary-card.paid .tsl-summary-label,.tsl-summary-card.paid .tsl-summary-value,.tsl-summary-card.paid .tsl-summary-amount{color:#fff}.tsl-summary-card.pending{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.tsl-summary-card.pending .tsl-summary-label,.tsl-summary-card.pending .tsl-summary-value,.tsl-summary-card.pending .tsl-summary-amount{color:#fff}.tsl-summary-card.not-processed{background:linear-gradient(135deg,#95a5a6,#7f8c8d);color:#fff}.tsl-summary-card.not-processed .tsl-summary-label,.tsl-summary-card.not-processed .tsl-summary-value,.tsl-summary-card.not-processed .tsl-summary-amount{color:#fff}.tsl-summary-card.total{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.tsl-summary-card.total .tsl-summary-label,.tsl-summary-card.total .tsl-summary-value,.tsl-summary-card.total .tsl-summary-amount{color:#fff}.tsl-info-box{background-color:#e3f2fd;border-left:4px solid #2196f3;padding:16px 20px;margin:20px 0;border-radius:8px;display:flex;gap:12px;align-items:flex-start}.tsl-info-icon{font-size:20px;flex-shrink:0;color:#2196f3}.tsl-info-content{flex:1;color:#0d47a1;line-height:1.5;font-size:14px}.tsl-warning-box{background-color:#fff3e0;border-left-color:#ff9800;margin-bottom:20px}.tsl-warning-box .tsl-info-icon{color:#ff9800}.tsl-warning-box .tsl-info-content{color:#e65100}.tsl-search{position:relative;margin-bottom:24px;display:flex;gap:12px;align-items:center}.tsl-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#95a5a6;pointer-events:none}.tsl-search-input{flex:1;padding:12px 16px 12px 40px;font-size:14px;border:1px solid #ddd;border-radius:8px;transition:all .3s}.tsl-search-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.tsl-clear-btn{padding:12px 24px;background:#e74c3c;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s;display:flex;align-items:center;gap:8px}.tsl-clear-btn:hover{background:#c0392b}.tsl-clear-btn svg{font-size:14px}.tsl-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow-x:auto;overflow-y:auto;max-height:600px}.tsl-table{width:100%;border-collapse:collapse;min-width:1000px}.tsl-table thead{background:#f8f9fa;position:sticky;top:0;z-index:10}.tsl-table th{padding:16px 12px;text-align:left;font-weight:600;color:#2c3e50;font-size:14px;border-bottom:2px solid #e9ecef}.tsl-table th svg{margin-right:6px;color:#3498db;font-size:14px}.tsl-table td{padding:14px 12px;border-bottom:1px solid #e9ecef;font-size:14px;color:#555}.tsl-table tbody tr:hover{background:#f8f9fa}.tsl-photo{width:40px;height:40px;border-radius:50%;object-fit:cover}.tsl-photo-placeholder{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}.tsl-teacher-name{font-weight:500;color:#2c3e50}.tsl-amount{text-align:right;font-family:Courier New,monospace;font-weight:500}.tsl-net-salary{font-weight:700;color:#27ae60}.tsl-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;text-align:center;white-space:nowrap}.tsl-status-badge svg{font-size:12px}.tsl-status-badge.paid{background-color:#d4edda;color:#155724}.tsl-status-badge.pending{background-color:#fff3cd;color:#856404}.tsl-status-badge.not-processed{background-color:#e2e3e5;color:#383d41}.tsl-status-badge.partial{background-color:#ffe5b4;color:#856404}.tsl-status-badge.cancelled{background-color:#f8d7da;color:#721c24}.tsl-actions{display:flex;gap:8px;flex-wrap:wrap}.tsl-action-btn{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .3s;display:inline-flex;align-items:center;gap:6px}.tsl-action-btn svg{font-size:12px}.tsl-action-btn.edit{background-color:#3498db;color:#fff}.tsl-action-btn.edit:hover{background-color:#2980b9;transform:translateY(-1px)}.tsl-action-btn.payment{background-color:#27ae60;color:#fff}.tsl-action-btn.payment:hover{background-color:#229954;transform:translateY(-1px)}.tsl-action-btn.process{background-color:#f39c12;color:#fff}.tsl-action-btn.process:hover{background-color:#e67e22;transform:translateY(-1px)}.tsl-paid-badge{display:inline-flex;align-items:center;gap:6px;background-color:#27ae60;color:#fff;font-size:11px;padding:4px 10px;border-radius:20px;font-weight:500}.tsl-paid-badge svg{font-size:11px}.tsl-not-processed-badge{display:inline-flex;align-items:center;gap:4px;background-color:#95a5a6;color:#fff;font-size:10px;padding:2px 8px;border-radius:12px;margin-left:8px;font-weight:400}.tsl-not-processed-badge svg{font-size:10px}.tsl-pending-badge{display:inline-flex;align-items:center;gap:4px;background-color:#f39c12;color:#fff;font-size:10px;padding:2px 8px;border-radius:12px;margin-left:8px;font-weight:400}.tsl-pending-badge svg{font-size:10px}.tsl-not-processed-row{background-color:#fffef7}.tsl-loading{text-align:center;padding:60px;color:#7f8c8d;font-size:16px}.tsl-empty-state{text-align:center;padding:60px;color:#95a5a6;font-size:16px}.tsl-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.tsl-modal{background:#fff;border-radius:16px;width:90%;max-width:550px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.tsl-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef}.tsl-modal-header h2{margin:0;font-size:20px;color:#2c3e50;display:flex;align-items:center;gap:8px}.tsl-modal-header h2 svg{color:#3498db}.tsl-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#95a5a6;transition:color .3s;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.tsl-modal-close:hover{color:#e74c3c;background-color:#f8f9fa}.tsl-modal-form{padding:24px}.tsl-form-group{margin-bottom:20px}.tsl-form-group label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;color:#2c3e50;font-size:14px}.tsl-form-group label svg{color:#3498db}.tsl-form-group input,.tsl-form-group select,.tsl-form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;transition:all .3s}.tsl-form-group input:focus,.tsl-form-group select:focus,.tsl-form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.tsl-form-group small{display:block;margin-top:5px;color:#95a5a6;font-size:12px}.tsl-net-salary-display{background-color:#f8f9fa;padding:15px;border-radius:8px;margin-top:20px}.tsl-net-input{background-color:#e9ecef;font-weight:700;color:#27ae60}.tsl-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.tsl-save-btn{padding:10px 24px;background:#27ae60;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s;display:inline-flex;align-items:center;gap:8px}.tsl-save-btn:hover{background:#229954}.tsl-cancel-btn{padding:10px 24px;background:#95a5a6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .3s;display:inline-flex;align-items:center;gap:8px}.tsl-cancel-btn:hover{background:#7f8c8d}.tsl-payment-info{background-color:#f8f9fa;padding:16px;border-radius:8px;margin-bottom:24px}.tsl-payment-info p{margin:8px 0;font-size:14px;color:#2c3e50;display:flex;align-items:center;gap:8px}.tsl-payment-info p svg{color:#3498db}.tsl-payment-info p strong{color:#2c3e50}.tsl-table-container::-webkit-scrollbar{width:8px;height:8px}.tsl-table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.tsl-table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px}.tsl-table-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (max-width: 768px){.tsl-container{padding:16px}.tsl-header{flex-direction:column;align-items:flex-start}.tsl-month-selector{width:100%}.tsl-select{flex:1}.tsl-summary{grid-template-columns:repeat(2,1fr)}.tsl-actions{flex-direction:column}.tsl-action-btn{width:100%;justify-content:center}.tsl-modal{width:95%;margin:20px}.tsl-table th,.tsl-table td{padding:10px 8px;font-size:12px}.tsl-table th svg,.tsl-table td svg{font-size:12px}}@media (max-width: 480px){.tsl-summary{grid-template-columns:1fr}.tsl-summary-value{font-size:24px}.tsl-header h1{font-size:22px}.tsl-modal-header h2{font-size:18px}.tsl-form-group label{font-size:13px}}@media print{.tsl-container{background:#fff;padding:0}.tsl-header,.tsl-month-selector,.tsl-search,.tsl-info-box,.tsl-actions,.tsl-modal-overlay{display:none}.tsl-table-container{overflow:visible;max-height:none}.tsl-table{border:1px solid #ddd}.tsl-status-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.dashboard{padding:40px;background:#f4f7fb;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}h2{color:#1e293b;margin-bottom:30px;font-size:28px;font-weight:600}.card-container{display:flex;gap:20px;margin-bottom:30px}.card{flex:1;padding:24px 20px;border-radius:16px;background:#fff;cursor:pointer;font-weight:600;font-size:18px;text-align:center;box-shadow:0 5px 15px #0000000d;transition:all .3s ease;border:1px solid #e2e8f0;color:#334155}.card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #4f46e51a;border-color:#4f46e5}.card.active{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border-color:transparent;box-shadow:0 10px 25px #4f46e54d}.form-container{display:flex;gap:15px;margin-bottom:30px;background:#fff;padding:25px;border-radius:16px;box-shadow:0 5px 15px #0000000d;border:1px solid #e2e8f0;flex-wrap:wrap}.form-container input{padding:12px 16px;border-radius:10px;border:1.5px solid #e2e8f0;flex:1;font-size:14px;transition:all .2s;outline:none;background:#f8fafc}.form-container input:focus{border-color:#4f46e5;background:#fff;box-shadow:0 0 0 3px #4f46e51a}.form-container input::placeholder{color:#94a3b8}.form-container button{padding:12px 28px;border:none;border-radius:10px;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;box-shadow:0 4px 10px #4f46e533;min-width:140px}.form-container button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #4f46e54d}.form-container button:disabled{opacity:.6;cursor:not-allowed;background:#94a3b8;box-shadow:none}.data-table{width:100%;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 5px 15px #0000000d;border:1px solid #e2e8f0;border-collapse:separate;border-spacing:0}.data-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.data-table th{padding:16px 12px;text-align:left;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#475569;border-bottom:2px solid #e2e8f0}.data-table td{padding:16px 12px;border-bottom:1px solid #e2e8f0;color:#334155;font-size:14px}.data-table tbody tr{transition:background .2s}.data-table tbody tr:hover{background:#f8fafc}.data-table tbody tr:last-child td{border-bottom:none}.data-table td:last-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.data-table button:first-child{padding:8px 16px;border:none;border-radius:8px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px #f59e0b33}.data-table button:first-child:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d;background:linear-gradient(135deg,#f59e0b,#e67e22)}.data-table button:first-child:active{transform:translateY(0)}.data-table button:last-child{padding:8px 16px;border:none;border-radius:8px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 8px #ef444433}.data-table button:last-child:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d;background:linear-gradient(135deg,#ef4444,#f87171)}.data-table button:last-child:active{transform:translateY(0)}@media (max-width: 768px){.dashboard{padding:20px}.card-container{flex-direction:column}.card{width:100%}.form-container{flex-direction:column}.form-container input,.form-container button{width:100%}.data-table{overflow-x:auto;display:block}.data-table td:last-child{flex-direction:column;gap:5px}.data-table button{width:100%;justify-content:center}}.data-table tbody tr td[colspan]{text-align:center;padding:40px;color:#64748b;font-style:italic}.form-container button.loading{position:relative;color:transparent}.form-container button.loading:after{content:"";position:absolute;width:20px;height:20px;top:50%;left:50%;transform:translate(-50%,-50%);border:2px solid white;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}button:focus-visible,input:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:4px 8px;background:#1e293b;color:#fff;font-size:12px;border-radius:4px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s;pointer-events:none;margin-bottom:5px}[data-tooltip]:hover:before{opacity:1;visibility:visible}.fee-structure-container{min-height:100vh;background:#f5f7fb;padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}.toast{position:fixed;top:20px;right:20px;background:#fff;border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 12px #00000026;transform:translate(400px);transition:transform .3s ease;z-index:2000;min-width:300px}.toast.show{transform:translate(0)}.toast-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center}.toast-icon.success{background:#10b981;color:#fff}.toast-icon.error{background:#ef4444;color:#fff}.toast-title{font-weight:600;margin-bottom:4px;color:#1f2937}.toast-msg{font-size:13px;color:#6b7280}.fee-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:28px 32px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:24px}.fee-header-left{display:flex;align-items:center;gap:16px}.fee-icon-circle{width:56px;height:56px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.fee-icon-circle:hover{transform:scale(1.05)}.fee-header h1{margin:0;font-size:28px;font-weight:700}.fee-header p{margin-top:4px;opacity:.9;font-size:14px}.fee-header-actions{display:flex;gap:12px}.fee-add-btn,.fee-export-btn,.fee-print-btn{padding:10px 20px;border-radius:12px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .3s ease;font-weight:500;border:none}.fee-add-btn{background:#fff;color:#667eea}.fee-export-btn{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.fee-print-btn{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3)}.fee-add-btn:hover,.fee-export-btn:hover,.fee-print-btn:hover{transform:translateY(-2px);filter:brightness(.95)}.fee-search-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.fee-search-input{flex:1;display:flex;align-items:center;background:#fff;border:1px solid #d6deee;border-radius:12px;padding:12px 16px;gap:12px;transition:all .3s ease}.fee-search-input:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fee-search-input input{flex:1;border:none;outline:none;font-size:14px;background:transparent}.fee-extra-fee-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:12px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.fee-extra-fee-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.fee-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:24px}.fee-stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000001a;transition:all .3s ease}.fee-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.fee-stat-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center}.fee-stat-icon.blue{background:#e8f2ff;color:#0b3c7a}.fee-stat-icon.green{background:#e8fce8;color:#0f6b1f}.fee-stat-icon.orange{background:#fff3e3;color:#8a4b00}.fee-stat-info h3{margin:0 0 8px;font-size:14px;font-weight:500;color:#6b7280}.fee-stat-value{margin:0;font-size:28px;font-weight:700;color:#1f2937}.fee-form-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.fee-form-container{background:#fff;border-radius:20px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.extra-fee-modal{max-width:600px}.simplified-form{max-width:550px}.fee-form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px 20px 0 0}.fee-form-header h2{margin:0;font-size:22px}.fee-close-btn{background:#fff3;border:none;color:#fff;cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;transition:all .2s ease}.fee-close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.fee-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;padding:24px}.simplified-grid{grid-template-columns:1fr;gap:20px;padding:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#374151;font-size:14px}.form-group label.required:after{content:" *";color:#ef4444}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;transition:all .2s ease;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#9ca3af}.form-group textarea{resize:vertical;min-height:80px}.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.readonly-field{background:#f3f4f6;cursor:not-allowed}.input-hint{font-size:12px;color:#6b7280;margin-top:4px;display:block}.form-section-title{font-size:18px;font-weight:600;color:#374151;margin:0 24px 16px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.fee-form-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 20px 20px}.cancel-btn,.submit-btn{padding:10px 20px;border-radius:10px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;font-size:14px}.cancel-btn{background:#f3f4f6;color:#6b7280}.cancel-btn:hover{background:#e5e7eb;transform:translateY(-1px)}.submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;gap:8px}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.fee-table-container{background:#fff;border-radius:16px;overflow-x:auto;box-shadow:0 1px 3px #0000001a}.fee-table{width:100%;border-collapse:collapse;min-width:800px}.fee-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.fee-table th{padding:16px;text-align:left;font-weight:600;color:#374151;font-size:14px}.fee-table td{padding:16px;border-bottom:1px solid #e5e7eb;color:#6b7280}.fee-row{transition:background .2s ease}.fee-row:hover{background:#f9fafb}.fee-type-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500;background:#e8f2ff;color:#0b3c7a}.times-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500;background:#e8fce8;color:#0f6b1f}.amount-cell{font-weight:600;color:#667eea;font-size:15px}.total-amount{font-weight:700;color:#10b981;font-size:16px}.action-buttons{display:flex;gap:8px}.view-btn,.edit-btn,.delete-btn{padding:6px;border:none;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;transition:all .2s ease}.view-btn{background:#e0e7ff;color:#4338ca}.edit-btn{background:#dbeafe;color:#1e40af}.delete-btn{background:#fee2e2;color:#dc2626}.view-btn:hover,.edit-btn:hover,.delete-btn:hover{transform:scale(1.05)}.fee-details-row{background:#f9fafb}.fee-details{padding:20px}.fee-details h4{margin:0 0 16px;color:#374151;font-size:16px;font-weight:600}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.detail-item{padding:10px;background:#fff;border-radius:8px;border:1px solid #e5e7eb;font-size:14px}.detail-item strong{color:#374151;margin-right:8px}.detail-item.full-width{grid-column:1 / -1}.loading-state{text-align:center;padding:60px;background:#fff;border-radius:16px}.spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.loading-state p{color:#6b7280;font-size:14px}.empty-state{text-align:center;padding:60px 20px}.empty-icon{margin-bottom:16px;opacity:.5;display:flex;justify-content:center}.empty-text{font-size:16px;color:#6b7280;margin-bottom:20px}.add-first-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.add-first-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}@media (min-width: 769px) and (max-width: 1024px){.fee-structure-container{padding:20px}.fee-header{padding:24px}.fee-header h1{font-size:24px}.fee-stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.fee-stat-value{font-size:24px}}@media (max-width: 768px){.fee-structure-container{padding:16px}.fee-header{flex-direction:column;text-align:center;gap:16px;padding:20px}.fee-header-left{flex-direction:column}.fee-header-actions{width:100%;justify-content:center}.fee-add-btn,.fee-export-btn,.fee-print-btn{padding:8px 16px;font-size:13px}.fee-search-bar{flex-direction:column}.fee-search-input{width:100%}.fee-extra-fee-btn{width:100%;justify-content:center}.fee-stats-grid{grid-template-columns:1fr;gap:12px}.fee-form-grid{grid-template-columns:1fr;padding:16px;gap:16px}.simplified-grid{padding:16px}.fee-table th,.fee-table td{padding:12px 8px;font-size:12px}.details-grid{grid-template-columns:1fr}.toast{left:16px;right:16px;min-width:auto}.fee-form-container{width:95%;max-height:85vh}.fee-form-header h2{font-size:18px}.action-buttons{gap:4px}.view-btn,.edit-btn,.delete-btn{padding:4px}}@media (max-width: 480px){.fee-structure-container{padding:12px}.fee-header{padding:16px}.fee-header h1{font-size:20px}.fee-header p{font-size:12px}.fee-icon-circle{width:48px;height:48px}.fee-stat-card{padding:16px}.fee-stat-icon{width:48px;height:48px}.fee-stat-value{font-size:22px}.fee-table th,.fee-table td{padding:8px 6px;font-size:11px}.fee-type-badge,.times-badge{padding:2px 8px;font-size:11px}}.fee-form-container::-webkit-scrollbar{width:8px}.fee-form-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.fee-form-container::-webkit-scrollbar-thumb{background:#667eea;border-radius:10px}.fee-form-container::-webkit-scrollbar-thumb:hover{background:#5a67d8}.fee-structure-container::-webkit-scrollbar{width:10px}.fee-structure-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.fee-structure-container::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px}@media print{.fee-header-actions,.fee-search-bar,.action-buttons,.fee-extra-fee-btn,.fee-stats-grid,.fee-form-modal,.toast{display:none}.fee-structure-container{padding:0;background:#fff}.fee-table-container{box-shadow:none}.fee-table{border:1px solid #ddd}.fee-table th{background:#f0f0f0}.fee-table th,.fee-table td{border:1px solid #ddd}.fee-header{background:#667eea;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-bottom:20px}}.fee-add-btn:focus-visible,.fee-extra-fee-btn:focus-visible,.submit-btn:focus-visible,.cancel-btn:focus-visible,.view-btn:focus-visible,.edit-btn:focus-visible,.delete-btn:focus-visible,.fee-close-btn:focus-visible,.fee-search-input input:focus-visible{outline:2px solid #667eea;outline-offset:2px}@media (prefers-color-scheme: dark){.fee-structure-container{background:#1a1a2e}.fee-stat-card,.fee-table-container,.loading-state,.empty-state{background:#16213e}.fee-stat-info h3,.fee-table th,.fee-details h4,.detail-item strong,.empty-text{color:#e5e7eb}.fee-stat-value,.fee-table td{color:#9ca3af}.fee-row:hover,.fee-details-row{background:#1f2937}.detail-item,.fee-search-input{background:#16213e;border-color:#374151}.fee-search-input input{color:#e5e7eb}.form-group input,.form-group select,.form-group textarea{background:#16213e;border-color:#374151;color:#e5e7eb}.form-group label{color:#e5e7eb}.input-hint{color:#9ca3af}.cancel-btn{background:#374151;color:#e5e7eb}.cancel-btn:hover{background:#4b5563}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-state{animation:pulse 2s ease-in-out infinite}.text-center{text-align:center}.mt-2{margin-top:8px}.mb-2{margin-bottom:8px}.hidden{display:none}.fee-table-wrapper{overflow-x:auto;border-radius:16px}.custom-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#667eea}[data-tooltip]{position:relative;cursor:help}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:4px 8px;background:#1f2937;color:#fff;font-size:12px;border-radius:4px;white-space:nowrap;display:none;z-index:10}[data-tooltip]:hover:before{display:block}.tv-container{padding:24px;background:#f4f6f9;min-height:100vh;font-family:Inter,sans-serif}.tv-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.tv-back-btn{width:40px;height:40px;border-radius:50%;border:none;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.tv-back-btn:hover{transform:translate(-3px);box-shadow:0 4px 12px #00000026}.tv-header h1{font-size:24px;color:#2c3e50;margin:0}.tv-content{max-width:1200px;margin:0 auto}.tv-profile-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:30px;margin-bottom:24px;color:#fff;display:flex;align-items:center;gap:24px;position:relative;box-shadow:0 10px 30px #667eea4d}.tv-profile-image-container{width:100px;height:100px;border-radius:50%;overflow:hidden;border:4px solid rgba(255,255,255,.3);background:#fff;flex-shrink:0}.tv-profile-image{width:100%;height:100%;object-fit:cover}.tv-profile-placeholder{width:100%;height:100%;background:#fff;color:#667eea;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:600}.tv-profile-info{flex:1}.tv-profile-info h2{margin:0 0 8px;font-size:28px}.tv-subject-badge{display:inline-block;background:#fff3;padding:6px 16px;border-radius:20px;font-size:14px;margin:0 0 8px}.tv-employee-id{margin:0;font-size:14px;opacity:.9}.tv-status-badge{position:absolute;top:20px;right:20px;background:#fff3;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:500;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tv-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.tv-stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 12px #0000000a;transition:all .3s ease}.tv-stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.tv-stat-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center}.tv-stat-icon.blue{background:#e3f2fd;color:#1976d2}.tv-stat-icon.green{background:#e8f5e9;color:#388e3c}.tv-stat-icon.orange{background:#fff3e0;color:#f57c00}.tv-stat-icon.purple{background:#f3e5f5;color:#7b1fa2}.tv-stat-info h3{margin:0;font-size:24px;font-weight:600;color:#2c3e50}.tv-stat-info p{margin:4px 0 0;font-size:13px;color:#6c757d}.tv-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}.tv-detail-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 12px #0000000a;transition:all .3s ease}.tv-detail-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.tv-detail-card h3{display:flex;align-items:center;gap:8px;color:#2c3e50;font-size:16px;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #edf0f3}.tv-detail-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed #edf0f3}.tv-detail-row:last-child{border-bottom:none}.tv-label{color:#6c757d;font-size:13px;font-weight:500}.tv-value{color:#2c3e50;font-size:14px;font-weight:500;text-align:right;max-width:60%;word-break:break-word}.tv-status{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.tv-status.active{background:#d4edda;color:#155724}.tv-status.inactive{background:#f8d7da;color:#721c24}.tv-section-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 2px 12px #0000000a}.tv-section-card h3{display:flex;align-items:center;gap:8px;color:#2c3e50;font-size:18px;margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid #f0f2f5}.tv-section-card h4{color:#2c3e50;font-size:16px;margin:20px 0 15px}.tv-attendance-summary{padding:10px 0}.tv-attendance-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:25px}.tv-attendance-stat{text-align:center;padding:15px;background:#f8f9fa;border-radius:12px}.tv-attendance-label{display:block;font-size:13px;color:#6c757d;margin-bottom:8px}.tv-attendance-value{font-size:24px;font-weight:600}.tv-attendance-value.present{color:#28a745}.tv-attendance-value.absent{color:#dc3545}.tv-attendance-value.late{color:#ffc107}.tv-attendance-value.total{color:#17a2b8}.tv-progress-bar-container{margin:20px 0}.tv-progress-label{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;color:#6c757d}.tv-progress-bar{height:10px;background:#e9ecef;border-radius:5px;overflow:hidden}.tv-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:5px;transition:width .3s ease}.tv-monthly-attendance{margin-top:30px}.tv-monthly-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px;margin-top:15px}.tv-month-item{text-align:center}.tv-month-name{font-size:13px;color:#6c757d;margin-bottom:10px}.tv-month-bars{display:flex;justify-content:center;gap:4px;height:80px;align-items:flex-end;margin-bottom:8px}.tv-month-bar{width:12px;border-radius:4px 4px 0 0;transition:height .3s ease}.tv-month-bar.present{background:#28a745}.tv-month-bar.absent{background:#dc3545}.tv-month-bar.late{background:#ffc107}.tv-month-total{font-size:12px;color:#2c3e50;font-weight:500}.tv-class-list{overflow-x:auto}.tv-class-table{width:100%;border-collapse:collapse}.tv-class-table th{text-align:left;padding:12px;background:#f8f9fa;font-weight:600;font-size:13px;color:#495057;border-bottom:2px solid #dee2e6}.tv-class-table td{padding:12px;border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:14px}.tv-class-btn{padding:6px 12px;background:#e3f2fd;color:#1976d2;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .3s ease}.tv-class-btn:hover{background:#bbdefb}.tv-day-selector{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.tv-day-btn{padding:8px 16px;border:1px solid #dee2e6;background:#fff;border-radius:20px;font-size:13px;cursor:pointer;transition:all .3s ease}.tv-day-btn.active{background:#667eea;color:#fff;border-color:#667eea}.tv-day-btn:hover{background:#f8f9fa}.tv-timetable{overflow-x:auto}.tv-timetable-table{width:100%;border-collapse:collapse}.tv-timetable-table th{text-align:left;padding:12px;background:#f8f9fa;font-weight:600;font-size:13px;color:#495057;border-bottom:2px solid #dee2e6}.tv-timetable-table td{padding:12px;border-bottom:1px solid #e9ecef;color:#2c3e50;font-size:14px}.tv-break-row{background:#f8f9fa}.tv-subject-tag{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.tv-subject-tag.math{background:#e3f2fd;color:#1976d2}.tv-subject-tag.science{background:#e8f5e9;color:#388e3c}.tv-subject-tag.physics{background:#fff3e0;color:#f57c00}.tv-subject-tag.other{background:#f3e5f5;color:#7b1fa2}.tv-actions{display:flex;gap:16px;justify-content:center;margin-top:20px}.tv-edit-btn,.tv-back-bottom-btn{padding:12px 30px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.tv-edit-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.tv-edit-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.tv-back-bottom-btn{background:#fff;color:#6c757d;border:1px solid #dee2e6}.tv-back-bottom-btn:hover{background:#f8f9fa;transform:translateY(-2px)}.tv-loading-container,.tv-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:24px}.tv-loader{width:50px;height:50px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tv-error{color:#dc3545;margin-bottom:16px}.tv-error-container button,.tv-loading-container button{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:all .3s ease}@media (max-width: 768px){.tv-profile-card{flex-direction:column;text-align:center;padding:40px 20px}.tv-status-badge{position:static;margin-top:16px}.tv-stats-grid{grid-template-columns:repeat(2,1fr)}.tv-details-grid{grid-template-columns:1fr}.tv-attendance-stats{grid-template-columns:repeat(2,1fr)}.tv-monthly-grid{grid-template-columns:repeat(3,1fr)}.tv-actions{flex-direction:column}.tv-edit-btn,.tv-back-bottom-btn{width:100%}}.tv-profile-info h2{color:#fff;margin:0 0 5px}
