@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}:root{--pp-bg: #f4f6fb;--pp-surface: #ffffff;--pp-text: #1f2733;--pp-muted: #5b6776;--pp-primary: #2563eb;--pp-primary-dark: #1d4ed8;--pp-border: #e3e8f0;--pp-accent-bg: #eef3ff;--pp-radius: 14px;--pp-shadow: 0 6px 24px rgba(20, 35, 70, .08)}.pp-page{font-family:Inter,Segoe UI,system-ui,-apple-system,Arial,sans-serif;color:var(--pp-text);background:var(--pp-bg);line-height:1.65;min-height:100vh}.pp-header{background:linear-gradient(135deg,#1d4ed8,#4f46e5);color:#fff;padding:56px 20px 48px}.pp-header-inner{max-width:1080px;margin:0 auto}.pp-badge{display:inline-block;background:#ffffff2e;border:1px solid rgba(255,255,255,.35);padding:4px 14px;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pp-header h1{margin:16px 0 8px;font-size:2.4rem;font-weight:700}.pp-subtitle{margin:0;font-size:1.05rem;color:#ffffffd9}.pp-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:24px;font-size:.9rem;color:#ffffffe6}.pp-meta a{color:#fff;text-decoration:underline}.pp-main{max-width:1080px;margin:-28px auto 0;padding:0 20px 64px;display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start}.pp-toc{position:sticky;top:24px;background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:var(--pp-radius);box-shadow:var(--pp-shadow);padding:20px}.pp-toc h2{margin:0 0 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--pp-muted)}.pp-toc ol{margin:0;padding:0;list-style:none;counter-reset:none}.pp-toc li{margin:0}.pp-toc a{display:block;padding:6px 10px;border-radius:8px;color:var(--pp-muted);text-decoration:none;font-size:.88rem;transition:background .15s,color .15s}.pp-toc a:hover{background:var(--pp-accent-bg);color:var(--pp-primary-dark)}.pp-content{background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:var(--pp-radius);box-shadow:var(--pp-shadow);padding:40px 44px}.pp-intro{border-bottom:1px solid var(--pp-border);padding-bottom:8px;margin-bottom:8px}.pp-section{scroll-margin-top:24px;padding:22px 0;border-bottom:1px solid var(--pp-border)}.pp-section:last-of-type{border-bottom:none}.pp-content h2{font-size:1.35rem;font-weight:700;margin:0 0 12px;color:var(--pp-text)}.pp-content h3{font-size:1.02rem;font-weight:600;margin:20px 0 8px;color:var(--pp-primary-dark)}.pp-content p{margin:0 0 14px;color:var(--pp-text)}.pp-content ul{margin:0 0 16px;padding-left:0;list-style:none}.pp-content li{position:relative;padding-left:22px;margin-bottom:8px;color:var(--pp-text)}.pp-content li:before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--pp-primary)}.pp-content a{color:var(--pp-primary);text-decoration:none;font-weight:500}.pp-content a:hover{text-decoration:underline}.pp-contact-card{background:var(--pp-accent-bg);border:1px solid var(--pp-border);border-left:4px solid var(--pp-primary);border-radius:10px;padding:16px 20px;margin:12px 0 16px}.pp-contact-card p{margin:0 0 10px}.pp-contact-card p:last-child{margin-bottom:0}.pp-disclaimer{margin-top:28px;padding:16px 18px;background:#fff8ec;border:1px solid #f3e2bd;border-radius:10px;font-size:.9rem;color:#7a5b16}.pp-footer{background:#0f172a;color:#ffffffb3;text-align:center;padding:24px 20px;font-size:.85rem}.pp-footer p{margin:0}@media (max-width: 860px){.pp-main{grid-template-columns:1fr}.pp-toc{position:static}.pp-content{padding:28px 22px}.pp-header h1{font-size:1.9rem}}:root{--tc-bg: #f4f6fb;--tc-surface: #ffffff;--tc-text: #1f2733;--tc-muted: #5b6776;--tc-primary: #2563eb;--tc-primary-dark: #1d4ed8;--tc-border: #e3e8f0;--tc-accent-bg: #eef3ff;--tc-radius: 14px;--tc-shadow: 0 6px 24px rgba(20, 35, 70, .08)}*{box-sizing:border-box}.tc-page{font-family:Inter,Segoe UI,system-ui,-apple-system,Arial,sans-serif;color:var(--tc-text);background:var(--tc-bg);line-height:1.65;min-height:100vh}.tc-header{background:linear-gradient(135deg,#1d4ed8,#4f46e5);color:#fff;padding:56px 20px 48px}.tc-header-inner{max-width:1080px;margin:0 auto}.tc-badge{display:inline-block;background:#ffffff2e;border:1px solid rgba(255,255,255,.35);padding:4px 14px;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tc-header h1{margin:16px 0 8px;font-size:2.4rem;font-weight:700}.tc-subtitle{margin:0;font-size:1.05rem;color:#ffffffd9}.tc-meta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:24px;font-size:.9rem;color:#ffffffe6}.tc-meta a{color:#fff;text-decoration:underline}.tc-main{max-width:1080px;margin:-28px auto 0;padding:0 20px 64px;display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start}.tc-toc{position:sticky;top:24px;background:var(--tc-surface);border:1px solid var(--tc-border);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow);padding:20px;max-height:calc(100vh - 48px);overflow-y:auto}.tc-toc h2{margin:0 0 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--tc-muted)}.tc-toc ol{margin:0;padding:0;list-style:none}.tc-toc li{margin:0}.tc-toc a{display:block;padding:6px 10px;border-radius:8px;color:var(--tc-muted);text-decoration:none;font-size:.86rem;transition:background .15s,color .15s}.tc-toc a:hover{background:var(--tc-accent-bg);color:var(--tc-primary-dark)}.tc-content{background:var(--tc-surface);border:1px solid var(--tc-border);border-radius:var(--tc-radius);box-shadow:var(--tc-shadow);padding:40px 44px}.tc-intro{border-bottom:1px solid var(--tc-border);padding-bottom:8px;margin-bottom:8px}.tc-section{scroll-margin-top:24px;padding:22px 0;border-bottom:1px solid var(--tc-border)}.tc-section:last-of-type{border-bottom:none}.tc-content h2{font-size:1.35rem;font-weight:700;margin:0 0 12px;color:var(--tc-text)}.tc-content p{margin:0 0 14px;color:var(--tc-text)}.tc-content ul{margin:0 0 16px;padding-left:0;list-style:none}.tc-content li{position:relative;padding-left:22px;margin-bottom:8px;color:var(--tc-text)}.tc-content li:before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--tc-primary)}.tc-content a{color:var(--tc-primary);text-decoration:none;font-weight:500}.tc-content a:hover{text-decoration:underline}.tc-contact-card{background:var(--tc-accent-bg);border:1px solid var(--tc-border);border-left:4px solid var(--tc-primary);border-radius:10px;padding:16px 20px;margin:12px 0 16px}.tc-contact-card p{margin:0 0 10px}.tc-contact-card p:last-child{margin-bottom:0}.tc-disclaimer{margin-top:28px;padding:16px 18px;background:#fff8ec;border:1px solid #f3e2bd;border-radius:10px;font-size:.9rem;color:#7a5b16}.tc-footer{background:#0f172a;color:#ffffffb3;text-align:center;padding:24px 20px;font-size:.85rem}.tc-footer p{margin:0}@media (max-width: 860px){.tc-main{grid-template-columns:1fr}.tc-toc{position:static;max-height:none}.tc-content{padding:28px 22px}.tc-header h1{font-size:1.9rem}}.login-wrapper{display:flex;height:100vh;font-family:Segoe UI,sans-serif}.login-slider{flex:2;position:relative;background:linear-gradient(135deg,#0aa8f2,#028fd0);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;z-index:2}.dot{width:10px;height:10px;background:#ffffff80;border-radius:50%;cursor:pointer;transition:all .3s}.dot.active{background:#fff;transform:scale(1.2)}.dot:hover{background:#fff;transform:scale(1.1)}.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;color:#333;font-weight:600}.subtitle{color:#666;margin-bottom:30px;font-size:14px}.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:all .25s;font-size:14px}.role-toggle button.active{background:#0aa8f2;color:#fff;box-shadow:0 3px 8px #00000026}.role-toggle button:hover:not(.active):not(:disabled){background:#d4e6f5;transform:translateY(-1px)}.role-toggle button:disabled{opacity:.6;cursor:not-allowed}.login-form{display:flex;flex-direction:column;gap:18px}.login-form input{padding:14px;font-size:15px;border-radius:6px;border:1px solid #ddd;transition:all .3s;font-family:inherit}.login-form input:focus{outline:none;border-color:#0aa8f2;box-shadow:0 0 0 3px #0aa8f21a}.login-form input:disabled{background-color:#f5f5f5;cursor:not-allowed}.login-form button[type=submit]{padding:14px;background:#0aa8f2;color:#fff;font-size:16px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:all .3s}.login-form button[type=submit]:hover:not(:disabled){background:#028fd0;transform:translateY(-1px);box-shadow:0 2px 8px #0aa8f24d}.login-form button[type=submit]:active:not(:disabled){transform:translateY(0)}.login-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-msg{color:#dc3545;margin-bottom:10px;padding:10px;background-color:#fee;border-radius:6px;font-size:14px;border-left:3px solid #dc3545;animation:shake .5s ease}.loading-msg{color:#0aa8f2;margin-bottom:10px;padding:10px;background-color:#eaf6ff;border-radius:6px;font-size:14px;text-align:center;animation:pulse 1.5s ease infinite}.forgot-password-section{text-align:center;margin-top:20px}.forgot-password-link{display:inline-block;background:none;border:none;color:#0aa8f2;cursor:pointer;font-size:14px;text-decoration:none;padding:8px 16px;transition:all .3s;font-weight:500}.forgot-password-link:hover{color:#028fd0;text-decoration:underline;transform:translate(2px)}.password-input-wrapper{position:relative;width:100%}.password-input-wrapper input{width:100%;padding:14px 45px 14px 14px;font-size:15px;border-radius:6px;border:1px solid #ddd;box-sizing:border-box;transition:all .3s}.password-input-wrapper input:focus{outline:none;border-color:#0aa8f2;box-shadow:0 0 0 3px #0aa8f21a}.password-input-wrapper input:disabled{background-color:#f5f5f5;cursor:not-allowed}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;color:#999;transition:all .3s;z-index:1;border-radius:50%}.password-toggle-btn:hover{color:#0aa8f2;background-color:#0aa8f21a}.password-toggle-btn:active{transform:translateY(-50%) scale(.95)}.password-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.password-toggle-btn svg{display:block;pointer-events:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 900px){.login-wrapper{flex-direction:column}.login-slider{height:300px}.login-form-section{padding:40px 25px}.login-form-section h2{font-size:28px}.role-toggle button{padding:8px 18px;font-size:14px}.login-form input,.login-form button[type=submit]{padding:12px}.password-input-wrapper input{padding:12px 40px 12px 12px}.password-toggle-btn{right:10px;padding:6px}.password-toggle-btn svg{width:18px;height:18px}}@media (max-width: 480px){.login-form-section{padding:30px 20px}.login-form-section h2{font-size:24px}.subtitle{font-size:13px;margin-bottom:20px}.role-toggle button{padding:6px 14px;font-size:12px}.forgot-password-link{font-size:12px;padding:6px 12px}.password-input-wrapper input{padding:10px 35px 10px 10px}.password-toggle-btn{right:8px;padding:5px}.password-toggle-btn svg{width:16px;height:16px}}@media (min-width: 901px) and (max-width: 1200px){.login-form-section{padding:60px 50px}.login-form-section h2{font-size:30px}}@media (max-width: 768px){.login-form input,.password-input-wrapper input{font-size:16px}}.forgot-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.forgot-password-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:450px;padding:40px;animation:slideUp .5s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.forgot-password-header{text-align:center;margin-bottom:30px}.forgot-password-header h2{font-size:28px;color:#333;margin-bottom:10px;font-weight:600}.forgot-password-header p{color:#666;font-size:14px}.role-selector{display:flex;gap:10px;margin-bottom:30px;background:#f5f5f5;padding:5px;border-radius:12px}.role-btn{flex:1;padding:12px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;color:#666}.role-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.role-btn:hover:not(.active):not(:disabled){background:#e0e0e0}.role-btn:disabled{opacity:.6;cursor:not-allowed}.forgot-password-form{margin-top:20px}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:14px}.form-group input{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:10px;font-size:14px;transition:all .3s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f5f5;color:#999;cursor:not-allowed}.disabled-input{background-color:#f5f5f5;color:#666;cursor:not-allowed}.form-hint{font-size:12px;color:#999;margin-top:6px}.error-message{background-color:#fee;color:#dc3545;padding:12px;border-radius:10px;margin-bottom:20px;font-size:14px;border-left:4px solid #dc3545;animation:shake .5s}.success-message{background-color:#e8f5e9;color:#4caf50;padding:12px;border-radius:10px;margin-bottom:20px;font-size:14px;border-left:4px solid #4caf50;animation:fadeIn .5s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.submit-btn,.reset-btn{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:10px}.submit-btn:hover:not(:disabled),.reset-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.submit-btn:active:not(:disabled),.reset-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled,.reset-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.button-group{display:flex;gap:15px;margin-top:10px}.back-btn{flex:1;padding:14px;background:#6c757d;color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.back-btn:hover:not(:disabled){background:#5a6268;transform:translateY(-1px)}.back-btn:disabled{opacity:.6;cursor:not-allowed}.login-link{text-align:center;margin-top:25px;padding-top:20px;border-top:1px solid #e0e0e0}.login-link a{color:#667eea;text-decoration:none;font-size:14px;font-weight:600;transition:all .3s;display:inline-flex;align-items:center;gap:5px}.login-link a:hover{color:#764ba2;transform:translate(-3px)}@media (max-width: 768px){.forgot-password-card{padding:30px 20px}.forgot-password-header h2{font-size:24px}.role-btn{padding:10px;font-size:13px}.button-group{flex-direction:column}}.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}.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}.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-btn1{background:#00f;border:none;border-radius:10px;padding:10px 16px;cursor:pointer;color:#fff}.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;flex-shrink:0}.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:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:white!important;background-clip:unset!important;color:#fff!important;letter-spacing:-.5px}.fee-header-left p{margin:0;color:#fffffff2!important;font-size:15px;font-weight:500}.back-btn{display:inline-flex;align-items:center;gap:8px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:10px 18px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;margin-right:4px;transition:all .3s ease;flex-shrink:0}.back-btn:hover{background:#ffffff40;transform:translate(-3px)}.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}.student-info-card{display:flex;align-items:center;gap:24px;padding:28px 32px;background:#fffffffa;border-radius:20px;box-shadow:0 4px 12px #00000014;margin-bottom:28px;animation:fadeInUp .5s ease-out}.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 8px #00000014;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;margin-bottom:28px;animation:fadeInUp .55s ease-out}.summary-mini-card{background:#fffffffa;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;border:1px solid #e5e7eb;transition:all .3s ease;box-shadow:0 2px 8px #0000000d}.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;flex-shrink:0}.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{background:#fffffffa;border-radius:20px;padding:24px;overflow-x:auto;box-shadow:0 4px 12px #00000014;margin-bottom:28px;animation:fadeInUp .6s ease-out}.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}.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;transition:all .3s ease}.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}.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)}.fee-notes{padding:20px 24px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;border-left:5px solid #f59e0b;margin-bottom:28px;animation:fadeInUp .65s ease-out}.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}.payment-screen-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;animation:fadeInUp .5s ease-out}.payment-student-info{display:flex;align-items:center;gap:16px;padding:24px;background:#fffffffa;border-radius:20px;box-shadow:0 4px 12px #00000014;grid-column:1}.payment-student-avatar{width:72px;height:72px;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 #0000001f}.payment-student-details h4{margin:0 0 6px;font-size:18px;font-weight:700;color:#1f2937}.payment-student-details p{margin:3px 0;font-size:13px;color:#6b7280}.payment-fee-details{background:#fffffffa;padding:24px;border-radius:20px;box-shadow:0 4px 12px #00000014;border-left:5px solid #f59e0b;grid-column:1}.payment-fee-details div{margin:10px 0;font-size:14px;color:#374151;display:flex;gap:8px;align-items:center}.payment-fee-details strong{color:#1f2937;min-width:140px;font-weight:700}.payment-form{grid-column:2;grid-row:1 / 4;background:#fffffffa;border-radius:20px;padding:32px;box-shadow:0 4px 12px #00000014}.payment-form h3{margin:0 0 24px;font-size:18px;font-weight:700;color:#1f2937;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.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:13px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;transition:all .3s ease;font-family:inherit;color:#1f2937;background:#fafafa}.payment-input:focus,.payment-select:focus,.payment-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1f;background:#fff}.payment-textarea{resize:vertical;min-height:90px}.form-group small{display:block;margin-top:6px;font-size:12px;color:#9ca3af}.payment-screen-actions{display:flex;gap:12px;margin-top:8px}.payment-cancel-btn{flex:1;padding:13px;background:#f3f4f6;color:#374151;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease}.payment-cancel-btn:hover{background:#e5e7eb;transform:translateY(-2px)}.payment-submit-btn{flex:2;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:700;font-size:15px;transition:all .3s ease;box-shadow:0 4px 12px #10b9814d}.payment-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #10b98166}.payment-submit-btn:disabled{opacity:.6;cursor:not-allowed}.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}.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}.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;background:#fffffffa;border-radius:20px;box-shadow:0 4px 12px #00000014}.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}.payment-history-section{background:#fffffffa;border-radius:20px;padding:28px;box-shadow:0 4px 12px #00000014;margin-top:28px;animation:fadeInUp .7s ease-out}.payment-history-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.payment-history-header h2{margin:0;font-size:20px;font-weight:800;color:#1f2937}.payment-history-header svg{color:#667eea}.ph-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.ph-summary-card{border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:6px}.ph-summary-card label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.7}.ph-summary-card h4{margin:0;font-size:20px;font-weight:800;display:flex;align-items:center}.ph-summary-card.green{background:#dcfce7;color:#166534}.ph-summary-card.red{background:#fee2e2;color:#991b1b}.ph-summary-card.blue{background:#dbeafe;color:#1e40af}.ph-summary-card.orange{background:#fef3c7;color:#92400e}.ph-progress-wrap{display:flex;align-items:center;gap:14px;margin-bottom:24px}.ph-progress-bar{flex:1;height:10px;background:#f3f4f6;border-radius:99px;overflow:hidden}.ph-progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#10b981);border-radius:99px;transition:width .6s ease}.ph-progress-label{font-size:13px;font-weight:700;color:#374151;white-space:nowrap}.ph-table-wrap{overflow-x:auto;border-radius:14px;border:1px solid #e5e7eb}.ph-table{width:100%;border-collapse:collapse}.ph-table thead th{padding:13px 16px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#6b7280;background:#f9fafb;border-bottom:2px solid #e5e7eb}.ph-table tbody tr{transition:background .2s ease}.ph-table tbody tr:hover{background:#f9fafb}.ph-table tbody tr:not(:last-child) td{border-bottom:1px solid #f3f4f6}.ph-table td{padding:14px 16px;font-size:14px;color:#374151;vertical-align:middle}.ph-idx{font-weight:700;color:#9ca3af;width:36px}.ph-receipt{font-family:monospace;font-size:13px;color:#667eea;font-weight:600}.ph-date{color:#4b5563}.ph-paid{font-weight:700;color:#059669}.ph-pending{font-weight:600;color:#dc2626}.ph-heads{display:flex;flex-wrap:wrap;gap:6px}.ph-head-badge{display:inline-block;padding:3px 10px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border-radius:20px;font-size:11px;font-weight:700}.ph-head-badge.muted{background:#f3f4f6;color:#9ca3af}.no-payment-history{text-align:center;padding:48px;color:#9ca3af}.no-payment-history svg{margin-bottom:12px;opacity:.4}.no-payment-history p{font-size:15px;font-weight:500}@media (max-width: 768px){.ph-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.ph-summary-grid{grid-template-columns:1fr 1fr;gap:10px}.ph-summary-card h4{font-size:16px}.payment-history-section{padding:20px 16px}}.concession-badge{background:linear-gradient(135deg,#fef3c7,#fde68a)!important;color:#92400e!important;border:1px solid #f59e0b}.concession-card{border-color:#f59e0b!important}.concession-icon{background:linear-gradient(135deg,#f59e0b,#d97706)!important}.concession-value{color:#b45309!important}.concession-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.concession-pct-badge{display:inline-block;padding:3px 8px;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border-radius:20px;font-size:11px;font-weight:700;border:1px solid #f59e0b}.concession-amt{font-size:12px;color:#dc2626;font-weight:600}.remove-concession-btn{background:#fee2e2;border:none;color:#dc2626;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s ease;flex-shrink:0}.remove-concession-btn:hover{background:#fca5a5}.no-concession{color:#9ca3af;font-size:13px}.original-amount{text-decoration:line-through;color:#9ca3af;font-size:12px;margin-right:4px}.effective-amount{color:#059669;font-weight:700}.net-amount{color:#059669!important}.action-btn-group{display:flex;gap:6px;flex-wrap:wrap}.concession-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:12px;font-weight:600;transition:all .3s ease;box-shadow:0 2px 6px #f59e0b4d}.concession-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.concession-preview-box{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:20px;margin-bottom:24px}.concession-preview-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:#374151;border-bottom:1px dashed #e5e7eb}.concession-preview-row:last-child{border-bottom:none}.concession-preview-row.discount{color:#dc2626}.concession-preview-row.final{font-size:16px;color:#059669;font-weight:700;padding-top:12px}.pct-input-wrap{position:relative}.pct-symbol{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#6b7280;pointer-events:none}.concession-submit-btn{flex:2;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:700;font-size:15px;transition:all .3s ease;box-shadow:0 4px 12px #f59e0b4d}.concession-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #f59e0b66}.concession-submit-btn:disabled{opacity:.6;cursor:not-allowed}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}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}.payment-screen-body{grid-template-columns:1fr}.payment-form{grid-column:1;grid-row:auto}.payment-student-info,.payment-fee-details{grid-column:1}}@media (max-width: 768px){.fee-management-container{padding:16px}.fee-header{padding:20px}.fee-header-left{flex-wrap:wrap;gap:12px}.fee-header-left h1{font-size:22px}.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}.student-info-card{flex-direction:column;text-align:center;padding:20px}.info-badges{justify-content:center}.payment-student-info{flex-direction:column;text-align:center}.payment-screen-actions{flex-direction:column}.payment-cancel-btn,.payment-submit-btn{width:100%}}@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}.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,.back-btn,.pay-now-btn,.expand-row-btn,.payment-screen-actions{display:none}.fee-header{background:#fff;box-shadow:none;border:1px solid #e5e7eb}.students-table-container,.fee-table-wrapper{box-shadow:none;border:1px solid #e5e7eb}.student-avatar{filter:grayscale(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;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.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}.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}.dashboard-view{animation:fadeIn .5s ease;max-width:1400px;margin:0 auto}.dashboard-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem}.dashboard-card{background:#fff;border-radius:20px;padding:1.5rem;transition:all .3s ease;box-shadow:0 4px 15px #0000001a;cursor:pointer;position:relative;overflow:hidden}.dashboard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#4a90e2,#764ba2)}.dashboard-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.dashboard-card.card-blue:before{background:linear-gradient(90deg,#4a90e2,#5ba3f5)}.dashboard-card.card-green:before{background:linear-gradient(90deg,#27ae60,#2ecc71)}.dashboard-card.card-orange:before{background:linear-gradient(90deg,#e67e22,#f39c12)}.dashboard-card.card-purple:before{background:linear-gradient(90deg,#9b59b6,#bb8fce)}.dashboard-card.card-gold:before{background:linear-gradient(90deg,#f39c12,#f1c40f)}.dashboard-card.card-cyan:before{background:linear-gradient(90deg,#00bcd4,#26c6da)}.dashboard-card:hover .card-footer{opacity:1}.homework-stats{display:flex;gap:1rem;justify-content:space-around;margin:1rem 0}.fee-status-badge{display:inline-block;padding:.5rem 1rem;border-radius:25px;font-size:.9rem;font-weight:600;margin:.5rem 0;text-align:center;width:fit-content}.fee-status-badge.paid{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.fee-status-badge.pending{background:linear-gradient(135deg,#fff3cd,#ffe8a1);color:#856404}.fee-status-badge.overdue{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.achievements-preview{text-align:center;margin:1rem 0}.achievement-icons{font-size:2.5rem;margin-bottom:.5rem;letter-spacing:8px}.quick-btn{background:linear-gradient(135deg,#f5f5f5,#e8e8e8);border:none;border-radius:12px;cursor:pointer;font-size:.9rem;transition:all .3s ease;text-align:left;padding:.75rem .75rem .75rem 1rem;font-weight:500}.recent-activity{background:#fff;border-radius:20px;padding:1.5rem;margin-top:1rem;box-shadow:0 4px 15px #0000001a}.recent-activity h3{margin-bottom:1rem;color:#1a1a2e;font-size:1.2rem;font-weight:600}@media (max-width: 1024px){.dashboard-cards-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@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}.dashboard-view{padding:0}.dashboard-cards-grid{grid-template-columns:1fr}.welcome-section h1{font-size:1.4rem}.welcome-section{padding:1.5rem}}@media (max-width: 480px){.main-content{padding:1rem}.stats-number{font-size:2rem}.card-header h3{font-size:1rem}.card-icon{font-size:1.5rem}}@media (prefers-color-scheme: dark){.dashboard-card{background:#1e1e2e;color:#e0e0e0}.card-header h3,.stats-number{color:#e0e0e0}.stats-detail,.stat-label{color:#a0a0a0}.recent-activity{background:#1e1e2e}.activity-item{background:#2a2a3e}.activity-item p{color:#e0e0e0}.quick-btn{background:#2a2a3e;color:#e0e0e0}.main-content{background-color:#1a1a2e}}.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}}.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)}.sa-wrapper{max-width:1400px;margin:0 auto;padding:24px;min-height:100vh}.sa-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding:24px 32px;border-bottom:2px solid #f1f5f9}.sa-header-content{flex:1}.sa-title{font-size:28px;font-weight:700;margin:0 0 8px;color:#1e293b}.sa-subtitle{font-size:14px;color:#64748b;margin:0}.sa-refresh-btn{background:transparent;border:1px solid #e2e8f0;padding:12px;border-radius:12px;cursor:pointer;transition:all .2s ease;color:#64748b}.sa-refresh-btn:hover{border-color:#cbd5e1;transform:rotate(180deg)}.sa-profile-card{border:1px solid #e2e8f0;border-radius:20px;padding:24px;margin-bottom:24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;transition:all .2s ease}.sa-profile-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0000000d}.sa-profile-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #e2e8f0}.sa-avatar-initials{font-size:36px;font-weight:700;color:#64748b}.sa-profile-details{flex:1}.sa-profile-name{font-size:24px;font-weight:700;margin:0 0 8px;color:#1e293b}.sa-profile-badges{display:flex;gap:12px;flex-wrap:wrap}.sa-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #e2e8f0;border-radius:20px;font-size:13px;color:#475569}.sa-profile-stats{text-align:center;padding:12px 24px;border:1px solid #e2e8f0;border-radius:16px;min-width:160px}.sa-stat-label{font-size:12px;color:#64748b;margin-bottom:4px}.sa-stat-value{font-size:28px;font-weight:700;color:#1e293b}.sa-stat-trend{font-size:12px;font-weight:500;margin-top:4px}.sa-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:24px}.sa-stat-card{border:1px solid #e2e8f0;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.sa-stat-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.sa-stat-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;color:#64748b}.sa-stat-icon.present,.sa-stat-icon.success{border-color:#10b981;color:#10b981}.sa-stat-icon.danger{border-color:#ef4444;color:#ef4444}.sa-stat-icon.streak{border-color:#f59e0b;color:#f59e0b}.sa-stat-info{flex:1}.sa-stat-info h4{font-size:13px;font-weight:500;color:#64748b;margin:0 0 4px}.sa-stat-number{font-size:28px;font-weight:700;color:#1e293b;margin:0}.sa-stat-info small{font-size:12px;color:#94a3b8}.sa-date-range-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.sa-range-selector{display:flex;gap:8px;padding:6px;border:1px solid #e2e8f0;border-radius:12px}.sa-range-btn{padding:8px 20px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease;color:#64748b}.sa-range-btn.active{background:#1e293b;color:#fff}.sa-range-badge{border:1px solid #e2e8f0;padding:8px 16px;border-radius:12px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#475569}.sa-chart-section{border:1px solid #e2e8f0;border-radius:20px;padding:24px;margin-bottom:24px}.sa-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.sa-chart-title{font-size:18px;font-weight:600;margin:0;color:#1e293b}.sa-chart-type-selector{display:flex;gap:8px}.sa-chart-type-btn{padding:8px;border:1px solid #e2e8f0;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px;color:#64748b}.sa-chart-type-btn.active{background:#1e293b;color:#fff;border-color:#1e293b}.sa-chart-container{height:400px;position:relative}.sa-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.sa-summary-card{border:1px solid #e2e8f0;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;transition:all .2s ease}.sa-summary-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.sa-summary-progress{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.sa-progress-inner{width:55px;height:55px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border:1px solid #e2e8f0}.sa-summary-info{flex:1}.sa-summary-info h4{font-size:14px;font-weight:600;margin:0 0 4px;color:#64748b}.sa-summary-count{font-size:20px;font-weight:700;margin:0;color:#1e293b}.sa-recent-section{border:1px solid #e2e8f0;border-radius:20px;padding:24px}.sa-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.sa-section-title{font-size:18px;font-weight:600;margin:0;color:#1e293b}.sa-records-count{font-size:13px;color:#64748b}.sa-timeline-container{max-height:500px;overflow-y:auto}.sa-timeline-list{position:relative}.sa-timeline-item{display:flex;gap:16px;padding:16px 0;position:relative}.sa-timeline-marker{position:relative;display:flex;flex-direction:column;align-items:center;width:30px}.sa-marker-dot{width:12px;height:12px;border-radius:50%;border:2px solid #cbd5e1;z-index:1}.sa-marker-dot.present{border-color:#10b981;background:#10b981}.sa-marker-dot.absent{border-color:#ef4444;background:#ef4444}.sa-marker-line{position:absolute;top:24px;width:2px;height:calc(100% + 16px);background:#e2e8f0}.sa-timeline-content{flex:1;padding-bottom:8px}.sa-timeline-date{font-weight:600;color:#1e293b;margin-bottom:6px;font-size:14px}.sa-timeline-status{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}.sa-status-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.sa-status-badge.sa-badge-present{border:1px solid #10b981;color:#10b981;background:transparent}.sa-status-badge.sa-badge-absent{border:1px solid #ef4444;color:#ef4444;background:transparent}.sa-checkin-time{font-size:12px;color:#64748b}.sa-timeline-remarks{font-size:12px;color:#94a3b8;margin-top:4px}.sa-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center}.sa-loading-spinner{width:50px;height:50px;border:2px solid #e2e8f0;border-top-color:#1e293b;border-radius:50%;animation:sa-spin .8s linear infinite;margin-bottom:16px}@keyframes sa-spin{to{transform:rotate(360deg)}}.sa-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:20px}.sa-error-icon{font-size:64px;margin-bottom:20px}.sa-retry-btn{margin-top:20px;padding:10px 24px;background:transparent;color:#1e293b;border:1px solid #e2e8f0;border-radius:10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease}.sa-retry-btn:hover{border-color:#cbd5e1;background:#f8fafc}.sa-no-data-chart,.sa-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#94a3b8;text-align:center;gap:12px}.sa-timeline-container::-webkit-scrollbar{width:6px}.sa-timeline-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:10px}.sa-timeline-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.sa-timeline-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 768px){.sa-wrapper{padding:16px}.sa-profile-card{flex-direction:column;text-align:center}.sa-profile-badges{justify-content:center}.sa-stats-grid{grid-template-columns:1fr}.sa-range-selector{width:100%;justify-content:center}.sa-date-range-section{flex-direction:column}.sa-summary-cards{grid-template-columns:1fr}.sa-chart-container{height:300px}.sa-header{flex-direction:column;gap:16px;text-align:center}.sa-title{font-size:24px}}@media (max-width: 480px){.sa-stat-card{flex-direction:column;text-align:center}.sa-timeline-item{flex-direction:column;align-items:flex-start}.sa-timeline-marker{display:none}.sa-profile-stats{width:100%}}.results-container{max-width:1400px;margin:0 auto;padding:20px;animation:fadeIn .5s ease}.results-header{text-align:center;margin-bottom:30px;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff}.results-title{font-size:2.5rem;margin:0 0 10px;font-weight:700}.results-subtitle{font-size:1rem;opacity:.9;margin:0}.student-info-card{background:#fff;border-radius:15px;padding:20px;margin-bottom:30px;box-shadow:0 4px 15px #0000001a;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;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:1.1rem;color:#1a1a2e;font-weight:600}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;padding:20px;display:flex;align-items:center;gap:15px;color:#fff;transition:transform .3s ease;box-shadow:0 4px 15px #0000001a}.summary-card:hover{transform:translateY(-5px)}.summary-icon{font-size:2.5rem}.summary-content{flex:1}.summary-content h3{margin:0 0 5px;font-size:.9rem;opacity:.9}.summary-value{margin:0;font-size:1.8rem;font-weight:700}.filters-section{display:flex;gap:20px;margin-bottom:30px;padding:20px;background:#fff;border-radius:15px;box-shadow:0 2px 10px #0000000d;border:1px solid #e0e0e0;flex-wrap:wrap}.filter-group{flex:1;min-width:200px}.filter-group label{display:block;margin-bottom:8px;font-size:.9rem;font-weight:600;color:#333}.filter-select{width:100%;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:all .3s ease;background:#fff;cursor:pointer}.filter-select:hover{border-color:#667eea}.filter-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.exam-card{background:#fff;border-radius:20px;margin-bottom:30px;padding:25px;box-shadow:0 4px 20px #00000014;transition:all .3s ease;border:1px solid #e0e0e0}.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;flex-wrap:wrap;gap:15px}.exam-title-section{flex:1}.exam-name{font-size:1.5rem;color:#1a1a2e;margin:0 0 5px;font-weight:700}.exam-date{font-size:.9rem;color:#666}.exam-result-badge{display:flex;align-items:center}.result-badge{padding:8px 20px;border-radius:25px;font-weight:700;font-size:1rem;text-transform:uppercase;letter-spacing:1px}.result-badge.pass{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.result-badge.fail{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.exam-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:25px;padding:15px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px}.student-stat-label{display:block;font-size:.85rem;color:#666;margin-bottom:5px;font-weight:500}.student-stat-value{display:block;font-size:1.3rem;font-weight:700;color:#1a1a2e}.subjects-table-container{overflow-x:auto;margin-bottom:25px}.subjects-table{width:100%;border-collapse:collapse;font-size:.95rem}.subjects-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.subjects-table th,.subjects-table td{padding:12px;text-align:center;border-bottom:1px solid #e0e0e0}.subjects-table th{font-weight:600;font-size:.9rem}.subjects-table tbody tr:hover{background:#f8f9fa}.subject-name{font-weight:600;color:#1a1a2e;text-align:left}.total-marks{font-weight:700;color:#667eea}.grade-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:600}.grade-aplus{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);color:#d63031}.grade-a{background:linear-gradient(135deg,#d4edda,#c3e6cb);color:#155724}.grade-bplus{background:linear-gradient(135deg,#fff3cd,#ffe8a1);color:#856404}.grade-b{background:linear-gradient(135deg,#d1ecf1,#bee5eb);color:#0c5460}.grade-c{background:linear-gradient(135deg,#f8d7da,#f5c6cb);color:#721c24}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.status-badge.pass{background:#d4edda;color:#155724}.status-badge.fail{background:#f8d7da;color:#721c24}.exam-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:15px;border-top:1px solid #e0e0e0;flex-wrap:wrap;gap:15px}.result-summary{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.result-label{font-size:.9rem;color:#666;font-weight:500}.result-date{font-size:.9rem;color:#1a1a2e;font-weight:600}.exam-content-for-pdf{background:#fff}.pdf-header{text-align:center;margin-bottom:20px;padding-bottom:10px}.school-name{font-size:1.5rem;color:#2c3e50;margin:0;font-weight:700}.school-address{color:#7f8c8d;margin:5px 0;font-size:.9rem}.pdf-divider{border:1px solid #3498db;margin:10px 0}.marksheet-title{color:#e74c3c;letter-spacing:2px;margin:10px 0;font-size:1.3rem}.pdf-student-details{background:#ecf0f1;padding:12px;border-radius:8px;margin:15px 0;font-size:.9rem}.pdf-detail-row{display:flex;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}.pdf-detail-row span{flex:1}.pdf-signature{text-align:right;margin-top:20px}.signature-text{font-size:.8rem;color:#7f8c8d;margin-top:-5px}.button-container{margin-top:20px;text-align:right}.download-btn{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px}.download-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #27ae604d}.download-btn:disabled{opacity:.6;cursor:not-allowed}.download-all-section{text-align:center;margin:20px 0}.download-all-btn{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:12px 30px;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .3s ease;display:inline-flex;align-items:center;gap:10px}.download-all-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3498db4d}.download-all-btn:disabled{opacity:.6;cursor:not-allowed}.download-overlay{position:fixed;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;color:#fff}.download-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.no-results{text-align:center;padding:60px 20px;background:#fff;border-radius:15px;box-shadow:0 2px 10px #0000000d}.no-results p{font-size:1.1rem;color:#666}@media print{.filters-section,.download-btn,.download-all-section,.summary-cards,.button-container,.student-info-card,.results-header{display:none!important}.exam-card{page-break-after:always;box-shadow:none;padding:0;margin:0}.exam-content-for-pdf{margin:0;padding:0}.subjects-table,.subjects-table th,.subjects-table td{border:1px solid #ddd}}@media (max-width: 1024px){.results-container{padding:15px}.summary-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.exam-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 768px){.results-title{font-size:1.8rem}.student-info-grid{grid-template-columns:1fr;gap:15px}.summary-cards{grid-template-columns:1fr}.filters-section{flex-direction:column}.filter-group{min-width:auto}.exam-name{font-size:1.2rem}.exam-header{flex-direction:column;align-items:flex-start}.exam-stats{grid-template-columns:1fr;gap:10px}.subjects-table{font-size:.8rem}.subjects-table th,.subjects-table td{padding:8px}.exam-footer{flex-direction:column;align-items:flex-start}.button-container{width:100%}.download-btn,.download-all-btn{width:100%;justify-content:center}.pdf-detail-row{flex-direction:column;gap:5px}}@media (max-width: 480px){.results-container{padding:10px}.results-title{font-size:1.5rem}.exam-card{padding:15px}.subjects-table th,.subjects-table td{padding:6px;font-size:.75rem}.grade-badge,.status-badge{font-size:.7rem;padding:2px 6px}}@media (prefers-color-scheme: dark){.results-container{background:#1a1a2e}.student-info-card,.filter-group select,.exam-card,.no-results{background:#1e1e2e;border-color:#2a2a3e}.info-label,.student-stat-label,.result-label{color:#a0a0a0}.info-value,.student-stat-value,.exam-name,.subject-name,.result-date{color:#e0e0e0}.exam-stats,.subjects-table tbody tr:hover{background:#2a2a3e}.subjects-table td{border-bottom-color:#2a2a3e;color:silver}.filter-select{background:#2a2a3e;color:#e0e0e0;border-color:#3a3a4e}.exam-footer{border-top-color:#2a2a3e}}.exam-card{animation:slideIn .5s ease}.download-btn,.download-all-btn,.filter-select,.summary-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.download-btn:focus,.download-all-btn:focus,.filter-select:focus{outline:none;ring:2px solid #667eea;ring-offset:2px}.text-center{text-align:center}.mt-2{margin-top:.5rem}.mb-2{margin-bottom:.5rem}.font-bold{font-weight:700}@media (max-width: 640px){.subjects-table{display:block;overflow-x:auto;white-space:nowrap}}.tp-page{display:flex;min-height:100vh;transition:all .3s ease;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.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}.teacher-dashboard-view{animation:fadeIn .5s ease;max-width:1400px;margin:0 auto}.welcome-section{background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem;border-radius:20px;margin-bottom:2rem;color:#fff;box-shadow:0 10px 30px #0000001a}.welcome-section h1{font-size:2rem;margin-bottom:.5rem;font-weight:600}.welcome-section p{font-size:1rem;opacity:.9}.teacher-dashboard-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem}.teacher-dashboard-card{background:#fff;border-radius:20px;padding:1.5rem;transition:all .3s ease;box-shadow:0 4px 15px #0000001a;cursor:pointer;position:relative;overflow:hidden}.teacher-dashboard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#4a90e2,#764ba2)}.teacher-dashboard-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.teacher-dashboard-card.card-blue:before{background:linear-gradient(90deg,#4a90e2,#5ba3f5)}.teacher-dashboard-card.card-green:before{background:linear-gradient(90deg,#27ae60,#2ecc71)}.teacher-dashboard-card.card-orange:before{background:linear-gradient(90deg,#e67e22,#f39c12)}.teacher-dashboard-card.card-purple:before{background:linear-gradient(90deg,#9b59b6,#bb8fce)}.teacher-dashboard-card.card-gold:before{background:linear-gradient(90deg,#f39c12,#f1c40f)}.teacher-dashboard-card.card-cyan:before{background:linear-gradient(90deg,#00bcd4,#26c6da)}.card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #f0f0f0}.card-icon{font-size:2rem}.card-header h3{font-size:1.2rem;color:#1a1a2e;margin:0;font-weight:600}.card-content{margin-top:.5rem}.stats-number{font-size:2.5rem;font-weight:700;color:#1a1a2e;margin:.5rem 0;line-height:1}.stats-detail{color:#666;font-size:.9rem;margin:.5rem 0}.classes-stats{display:flex;align-items:center;justify-content:space-between;margin:1rem 0}.stat-item-large{text-align:center;flex:2}.stat-item-small{text-align:center;flex:1;background:#f0f0f0;padding:10px;border-radius:12px}.stats-number{display:block;font-size:2.5rem;font-weight:700;color:#1a1a2e}.stats-label{font-size:.8rem;color:#666}.stats-number-small{display:block;font-size:1.5rem;font-weight:700;color:#1a1a2e}.stats-label-small{font-size:.7rem;color:#666}.students-stats{display:flex;gap:1rem;justify-content:space-around;margin:1rem 0}.stat-item{text-align:center;flex:1}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1a1a2e}.stat-label{font-size:.8rem;color:#666;margin-top:.25rem}.assignments-stats{display:flex;gap:1rem;justify-content:space-around;margin:1rem 0}.progress-bar{background:#f0f0f0;border-radius:10px;height:8px;overflow:hidden;margin:1rem 0}.progress-fill{background:linear-gradient(90deg,#4a90e2,#764ba2);height:100%;border-radius:10px;transition:width .5s ease}.card-footer{font-size:.85rem;color:#4a90e2;margin-top:.75rem;text-align:right;opacity:0;transition:opacity .3s ease}.teacher-dashboard-card:hover .card-footer{opacity:1}.schedule-preview{margin:1rem 0}.schedule-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:.85rem}.schedule-item:last-child{border-bottom:none}.time{font-weight:600;color:#4a90e2}.subject{color:#666}.quick-actions{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.quick-btn{background:linear-gradient(135deg,#f5f5f5,#e8e8e8);border:none;border-radius:12px;cursor:pointer;font-size:.9rem;transition:all .3s ease;text-align:left;padding:.75rem .75rem .75rem 1rem;font-weight:500;color:#333}.quick-btn:hover{background:linear-gradient(135deg,#4a90e2,#5ba3f5);color:#fff;transform:translate(5px)}.recent-activities{background:#fff;border-radius:20px;padding:1.5rem;margin-top:1rem;box-shadow:0 4px 15px #0000001a}.recent-activities h3{margin-bottom:1rem;color:#1a1a2e;font-size:1.2rem;font-weight:600}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;gap:1rem;padding:.75rem;border-radius:12px;transition:all .3s ease;cursor:pointer;background:#f9f9f9}.activity-item:hover{background:#f0f0f0;transform:translate(5px)}.activity-icon{font-size:1.5rem}.activity-item p{margin:0;font-weight:500;color:#1a1a2e}.activity-item small{color:#999;font-size:.8rem;display:block;margin-top:.25rem}@media (max-width: 1024px){.teacher-dashboard-cards-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@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}.teacher-dashboard-view{padding:0}.teacher-dashboard-cards-grid{grid-template-columns:1fr}.welcome-section h1{font-size:1.4rem}.welcome-section{padding:1.5rem}.students-stats,.assignments-stats{flex-wrap:wrap}}@media (max-width: 480px){.tp-sidebar{width:220px}.tp-sidebar.collapsed{width:70px}.tp-main-content{margin-left:70px;width:calc(100% - 70px);padding:1rem}.tp-main-content.expanded{margin-left:220px;width:calc(100% - 220px)}.tp-name{font-size:1rem}.tp-small,.tp-subject{font-size:.75rem}.stats-number{font-size:2rem}.card-header h3{font-size:1rem}.card-icon{font-size:1.5rem}.schedule-item{flex-direction:column;gap:5px}}@media (prefers-color-scheme: dark){.tp-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}.tp-main-content{background-color:#1a1a2e}.teacher-dashboard-card,.recent-activities{background:#1e1e2e;color:#e0e0e0}.card-header h3,.stats-number,.stat-value,.stats-number-small,.activity-item p{color:#e0e0e0}.stats-detail,.stats-label,.stats-label-small,.subject,.activity-item small{color:#a0a0a0}.activity-item{background:#2a2a3e}.quick-btn{background:#2a2a3e;color:#e0e0e0}.stat-item-small{background:#2a2a3e}.schedule-item,.card-header{border-bottom-color:#2a2a3e}}@keyframes slideIn{0%{transform:translate(-50px);opacity:0}to{transform:translate(0);opacity:1}}.teacher-dashboard-card{animation:slideIn .5s ease}.quick-btn,.tp-nav button{transition:all .3s cubic-bezier(.4,0,.2,1)}.quick-btn:focus,.tp-nav button:focus{outline:none;ring:2px solid #4a90e2}.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}}.ta-attendance-page{padding:20px;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.ta-attendance-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;overflow:hidden;animation:ta-fadeInUp .5s ease-out}@keyframes ta-fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.ta-attendance-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:24px 30px;color:#fff}.ta-header-info h2{margin:0 0 10px;font-size:1.8rem;display:flex;align-items:center;gap:10px}.ta-header-info h2 i{font-size:1.8rem}.ta-tab-navigation{display:flex;gap:10px;margin-top:20px;border-bottom:2px solid rgba(255,255,255,.2);padding-bottom:10px}.ta-tab-btn{padding:10px 24px;background:#ffffff1a;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s}.ta-tab-btn i{font-size:16px}.ta-tab-btn:hover{background:#fff3;transform:translateY(-2px)}.ta-tab-btn.ta-active{background:#fff;color:#667eea}.ta-class-info-badge{display:flex;gap:15px;flex-wrap:wrap;background:#f8f9fa;border-radius:12px;margin:0 20px!important;padding:12px 20px!important}.ta-class-standard,.ta-class-section,.ta-student-count{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:#e9ecef;border-radius:20px;font-size:.9rem;font-weight:500;color:#333}.ta-class-section.ta-sec-a{background:#d4edda;color:#155724}.ta-class-section.ta-sec-b{background:#d1ecf1;color:#0c5460}.ta-class-section.ta-sec-c{background:#fff3cd;color:#856404}.ta-class-section.ta-sec-d{background:#f8d7da;color:#721c24}.ta-student-count i{font-size:1rem}.ta-controls-row{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:20px 20px 0}.ta-search-left{flex:1;position:relative;max-width:400px}.ta-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#999}.ta-search-input{width:100%;padding:10px 15px 10px 40px;border:1px solid #ddd;border-radius:25px;font-size:14px;background:#fff;color:#333;outline:none;transition:all .3s}.ta-search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.ta-analytics-toggle-btn,.ta-bulk-save-btn{padding:10px 20px;border:none;border-radius:25px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s}.ta-analytics-toggle-btn{background:#2196f3;color:#fff}.ta-analytics-toggle-btn:hover{background:#1976d2;transform:translateY(-2px)}.ta-bulk-save-btn{background:#4caf50;color:#fff}.ta-bulk-save-btn:hover:not(:disabled){background:#45a049;transform:translateY(-2px)}.ta-bulk-save-btn:disabled{opacity:.6;cursor:not-allowed}.ta-success-message,.ta-error-message{margin:15px 20px;padding:12px 20px;border-radius:8px;display:flex;align-items:center;gap:10px;animation:ta-slideDown .3s ease-out}@keyframes ta-slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ta-success-message{background:#d4edda;color:#155724;border-left:4px solid #28a745}.ta-error-message{background:#f8d7da;color:#721c24;border-left:4px solid #dc3545}.ta-attendance-body{padding:20px}.ta-table-wrap{overflow-x:auto;border-radius:12px}.ta-modern-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}.ta-modern-table thead{background:#f8f9fa}.ta-modern-table th{padding:15px;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;font-size:.9rem}.ta-modern-table td{padding:12px 15px;border-bottom:1px solid #e9ecef;vertical-align:middle}.ta-modern-table tbody tr:hover{background:#f8f9fa}.ta-modern-table tbody tr.ta-row-saved{background:#e8f5e9}.ta-col-profile{width:70px;text-align:center}.ta-avatar{width:45px;height:45px;border-radius:50%;object-fit:cover;border:2px solid #ddd}.ta-name-cell .ta-name-line{font-weight:600;color:#333;margin-bottom:4px}.ta-name-cell .ta-sub-line{font-size:.8rem;color:#666}.ta-date-input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.ta-date-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.ta-attendance-buttons{display:flex;gap:8px}.ta-att-btn{width:40px;height:40px;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:all .3s;font-size:16px}.ta-att-btn.ta-present{background:#e8f5e9;color:#4caf50}.ta-att-btn.ta-present.ta-active{background:#4caf50;color:#fff}.ta-att-btn.ta-absent{background:#ffebee;color:#f44336}.ta-att-btn.ta-absent.ta-active{background:#f44336;color:#fff}.ta-att-btn:hover{transform:scale(1.05)}.ta-save-btn{padding:8px 16px;border:none;border-radius:6px;background:#667eea;color:#fff;cursor:pointer;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:all .3s}.ta-save-btn:hover:not(:disabled){background:#5a67d8;transform:translateY(-1px)}.ta-save-btn:disabled{opacity:.6;cursor:not-allowed}.ta-saved-note{display:inline-block;margin-left:8px;color:#4caf50;font-size:14px}.ta-loading,.ta-error-state,.ta-empty-state{text-align:center;padding:60px 20px}.ta-loading i,.ta-error-state i,.ta-empty-state i{font-size:48px;margin-bottom:15px}.ta-loading i{color:#667eea}.ta-error-state i{color:#f44336}.ta-empty-state i{color:#ff9800}.ta-loading p,.ta-error-state p,.ta-empty-state p{font-size:18px;color:#666;margin:10px 0}.ta-empty-state small,.ta-error-state small{color:#999;font-size:14px}.ta-no-records{text-align:center;padding:40px;color:#999}.ta-no-records i{font-size:24px;margin-right:10px}.ta-auth-required{text-align:center;padding:60px 20px;background:#fff;border-radius:16px;max-width:500px;margin:50px auto}.ta-auth-required h3{color:#f44336;margin-bottom:15px}.ta-link-btn{display:inline-block;margin-top:20px;padding:10px 30px;background:#667eea;color:#fff;text-decoration:none;border-radius:25px;transition:all .3s;cursor:pointer;border:none}.ta-link-btn:hover{background:#5a67d8;transform:translateY(-2px)}.ta-teacher-self{padding:20px}.ta-teacher-info-card{display:flex;align-items:center;gap:20px;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;border-radius:16px;margin-bottom:25px;color:#fff}.ta-teacher-avatar{width:80px;height:80px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:40px}.ta-teacher-info h3{margin:0 0 8px;font-size:24px}.ta-teacher-info p{margin:5px 0;opacity:.9}.ta-attendance-filters{display:flex;gap:20px;margin-bottom:25px;flex-wrap:wrap}.ta-filter-group{display:flex;align-items:center;gap:10px}.ta-filter-group label{font-weight:600;color:#555}.ta-filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;cursor:pointer;background:#fff}.ta-filter-group select:focus{outline:none;border-color:#667eea}.ta-status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.ta-status-present{background:#d4edda;color:#155724}.ta-status-absent{background:#f8d7da;color:#721c24}.ta-status-leave{background:#fff3cd;color:#856404}.ta-analytics-dashboard{background:#fff;border-radius:12px;padding:20px;margin:20px;box-shadow:0 2px 8px #0000001a;animation:ta-slideDown .3s ease-out}.ta-analytics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.ta-analytics-header h3{font-size:1.5rem;color:#333;margin:0}.ta-analytics-header h3 i{color:#4caf50;margin-right:10px}.ta-analytics-controls{display:flex;gap:12px;flex-wrap:wrap}.ta-analytics-controls select,.ta-analytics-controls input,.ta-apply-btn,.ta-refresh-btn{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;transition:all .3s}.ta-analytics-controls select:hover,.ta-analytics-controls input:hover{border-color:#4caf50}.ta-date-range{display:flex;align-items:center;gap:8px}.ta-apply-btn,.ta-refresh-btn{background:#4caf50;color:#fff;border:none}.ta-apply-btn:hover,.ta-refresh-btn:hover{background:#45a049;transform:translateY(-1px)}.ta-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:30px}.ta-stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px;color:#fff;box-shadow:0 4px 12px #0000001a;transition:transform .3s}.ta-stat-card:hover{transform:translateY(-5px)}.ta-stat-card:nth-child(1){background:linear-gradient(135deg,#667eea,#764ba2)}.ta-stat-card:nth-child(2){background:linear-gradient(135deg,#4caf50,#45a049)}.ta-stat-card:nth-child(3){background:linear-gradient(135deg,#f44336,#d32f2f)}.ta-stat-card:nth-child(4){background:linear-gradient(135deg,#ff9800,#f57c00)}.ta-stat-icon{width:50px;height:50px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px}.ta-stat-info{flex:1}.ta-stat-info h4{margin:0 0 5px;font-size:14px;opacity:.9}.ta-stat-value{font-size:28px;font-weight:700;margin:5px 0}.ta-stat-detail{font-size:12px;opacity:.8}.ta-chart-container{background:#f9f9f9;border-radius:12px;padding:20px;margin-bottom:30px}.ta-chart-header{margin-bottom:20px}.ta-chart-header h4{margin:0;color:#333;font-size:18px}.ta-charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px;margin-top:20px}.ta-pie-chart-container,.ta-performers-container{background:#f9f9f9;border-radius:12px;padding:20px}.ta-pie-chart-container h4,.ta-performers-container h4{margin:0 0 15px;color:#333;font-size:18px;display:flex;align-items:center;gap:8px}.ta-performers-list{max-height:350px;overflow-y:auto}.ta-performer-item{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:10px;background:#fff;border-radius:8px;cursor:pointer;transition:all .3s;border:1px solid #eee}.ta-performer-item:hover{transform:translate(5px);box-shadow:0 2px 8px #0000001a;border-color:#4caf50}.ta-performer-item.ta-struggling:hover{border-color:#f44336}.ta-rank{width:30px;height:30px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.ta-struggling .ta-rank{background:#f44336}.ta-performer-info{flex:1}.ta-performer-name{font-weight:500;margin-bottom:4px}.ta-performer-stats{display:flex;gap:12px;font-size:12px}.ta-percentage{font-weight:700;color:#4caf50}.ta-struggling .ta-percentage{color:#f44336}.ta-details{color:#666}.ta-progress-bar{width:100px;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.ta-progress-fill{height:100%;background:#4caf50;transition:width .3s;border-radius:3px}.ta-progress-fill.ta-warning{background:#f44336}.ta-no-data{text-align:center;padding:40px;color:#999}.ta-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:ta-fadeIn .3s}@keyframes ta-fadeIn{0%{opacity:0}to{opacity:1}}.ta-modal-content{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;animation:ta-slideUp .3s}@keyframes ta-slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.ta-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #eee}.ta-modal-header h3{margin:0;color:#333}.ta-close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:#999;transition:color .3s}.ta-close-btn:hover{color:#333}.ta-modal-body{padding:20px}.ta-student-detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px}.ta-detail-stat{background:#f9f9f9;padding:12px;border-radius:8px}.ta-detail-stat label{display:block;font-size:12px;color:#666;margin-bottom:5px}.ta-detail-stat .ta-value{font-size:24px;font-weight:700;color:#333}.ta-detail-stat .ta-value.ta-present{color:#4caf50}.ta-detail-stat .ta-value.ta-absent{color:#f44336}.ta-detail-stat .ta-value.ta-leave{color:#ff9800}.ta-progress-bar-large{margin-top:20px}.ta-progress-label{margin-bottom:8px;font-weight:500}.ta-progress-track{height:40px;background:#e0e0e0;border-radius:20px;overflow:hidden;position:relative}.ta-progress-fill{height:100%;background:#4caf50;transition:width .3s;display:flex;align-items:center;justify-content:flex-end;padding-right:15px;color:#fff;font-weight:700}.ta-progress-text{font-size:14px}.ta-teacher-stats{margin-bottom:30px}.ta-teacher-stats .ta-stat-card{cursor:default}.ta-teacher-stats .ta-stat-card:hover{transform:none}@media (max-width: 768px){.ta-attendance-page{padding:10px}.ta-attendance-header{padding:20px}.ta-header-info h2{font-size:1.3rem}.ta-controls-row{flex-direction:column;align-items:stretch}.ta-search-left{max-width:none}.ta-tab-navigation{flex-direction:column}.ta-tab-btn{justify-content:center}.ta-teacher-info-card{flex-direction:column;text-align:center}.ta-attendance-filters{flex-direction:column}.ta-filter-group{justify-content:space-between}.ta-analytics-controls,.ta-date-range{flex-direction:column}.ta-stats-grid,.ta-charts-row{grid-template-columns:1fr}.ta-modern-table th,.ta-modern-table td{padding:8px 10px;font-size:12px}.ta-att-btn{width:32px;height:32px;font-size:14px}.ta-save-btn{padding:6px 12px;font-size:11px}.ta-modal-content{width:95%;margin:20px}.ta-student-detail-stats{grid-template-columns:1fr}}@media print{.ta-attendance-page{background:#fff;padding:0}.ta-controls-row,.ta-analytics-toggle-btn,.ta-bulk-save-btn,.ta-save-btn,.ta-attendance-buttons button,.ta-tab-navigation{display:none}.ta-modern-table,.ta-modern-table th,.ta-modern-table td{border:1px solid #ddd}}::-webkit-scrollbar-thumb{background:#888;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#555}.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}.action-buttons{display:flex;gap:8px}.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}.spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}.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}}.frc-container{max-width:960px;margin:0 auto;padding:24px 16px 48px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1e293b}.frc-loading,.frc-error-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;color:#64748b;font-size:15px}.frc-error-wrap,.frc-error-icon{color:#ef4444}.frc-retry-btn{display:flex;align-items:center;gap:6px;padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.frc-retry-btn:hover{background:#2563eb}@keyframes frc-spin{to{transform:rotate(360deg)}}.frc-spin{animation:frc-spin .9s linear infinite}.frc-header{background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:16px;padding:28px 32px;margin-bottom:20px;color:#fff;box-shadow:0 4px 20px #3b82f659}.frc-header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.frc-title{display:flex;align-items:center;gap:16px}.frc-title-icon{width:52px;height:52px;background:#fff3;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.frc-title h1{margin:0 0 4px;font-size:22px;font-weight:700}.frc-title p{margin:0;font-size:13px;opacity:.85}.frc-refresh-btn{display:flex;align-items:center;gap:7px;padding:9px 18px;background:#ffffff2e;color:#fff;border:1.5px solid rgba(255,255,255,.4);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:background .2s;white-space:nowrap}.frc-refresh-btn:hover:not(:disabled){background:#ffffff4d}.frc-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.frc-profile-card,.frc-summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:22px 24px;margin-bottom:20px;box-shadow:0 1px 6px #0000000d}.frc-card-header{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #f1f5f9}.frc-card-header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.frc-card-header svg{color:#3b82f6;flex-shrink:0}.frc-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.frc-profile-field label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;margin-bottom:4px}.frc-profile-field p{margin:0;font-size:14px;font-weight:600;color:#1e293b}.frc-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:18px}.frc-summary-item label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;margin-bottom:6px}.frc-summary-item h4{margin:0;font-size:20px;font-weight:700;color:#1e293b}.frc-summary-item.paid h4{color:#10b981}.frc-summary-item.pending h4{color:#ef4444}.frc-status-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:13px;font-weight:700}.frc-progress-wrap{display:flex;align-items:center;gap:12px;margin-bottom:14px}.frc-progress-track{flex:1;height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}.frc-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:99px;transition:width .5s ease}.frc-progress-label{font-size:13px;font-weight:600;color:#475569;white-space:nowrap}.frc-stat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.frc-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:12px;font-weight:600}.frc-chip.total{background:#f1f5f9;color:#475569}.frc-chip.paid{background:#d1fae5;color:#059669}.frc-chip.partial{background:#fef3c7;color:#d97706}.frc-chip.pending{background:#fee2e2;color:#dc2626}.frc-breakdown-section{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:24px;margin-bottom:20px;box-shadow:0 1px 6px #0000000d}.frc-section-header{display:flex;align-items:center;gap:10px;margin-bottom:22px}.frc-section-header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.frc-section-header svg{color:#3b82f6}.frc-fee-group{margin-bottom:28px}.frc-group-title{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;margin:0 0 14px;padding:8px 14px;border-radius:8px}.frc-group-title.pending-title{background:#fff7ed;color:#ea580c}.frc-group-title.pending-title svg{color:#ea580c}.frc-group-title.paid-title{background:#f0fdf4;color:#16a34a}.frc-group-title.paid-title svg{color:#16a34a}.frc-fee-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.frc-fee-card{border-radius:12px;border:1.5px solid #e2e8f0;overflow:hidden;transition:box-shadow .2s,transform .2s}.frc-fee-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.frc-fee-card.pending{border-color:#fca5a5;background:#fff}.frc-fee-card.partial{border-color:#fcd34d;background:#fff}.frc-fee-card.paid{border-color:#6ee7b7;background:#f0fdf4}.frc-fee-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;cursor:pointer;gap:8px}.frc-fee-card.paid .frc-fee-card-header{background:#ecfdf5;border-bottom-color:#bbf7d0}.frc-fee-card-title{display:flex;align-items:center;gap:8px;overflow:hidden}.frc-fee-card-title svg{flex-shrink:0;color:#64748b}.frc-fee-card.paid .frc-fee-card-title svg{color:#16a34a}.frc-fee-card-title strong{font-size:14px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frc-fee-card-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0}.frc-fee-card-badge.paid-badge{background:#d1fae5;color:#059669}.frc-fee-card-body{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.frc-fee-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:8px}.frc-fee-row span{color:#64748b}.frc-fee-row strong{color:#1e293b;font-weight:600}.frc-paid-val{color:#059669!important}.frc-due-val,.frc-overdue{color:#dc2626!important}.frc-concession-val{color:#7c3aed!important}.concession-row span{display:flex;align-items:center;gap:4px;color:#7c3aed!important}.frc-inst-progress{margin-top:4px}.frc-inst-track{height:5px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-bottom:4px}.frc-inst-fill{height:100%;background:#f59e0b;border-radius:99px;transition:width .4s ease}.frc-inst-fill.paid-fill{background:#10b981}.frc-inst-progress span{font-size:11px;color:#94a3b8}.frc-inline-history{background:#f8fafc;border-radius:8px;padding:10px 12px;margin-top:4px}.frc-inline-history-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;margin:0 0 8px}.frc-inline-history-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:#475569;padding:4px 0;border-bottom:1px dashed #e2e8f0}.frc-inline-history-row:last-child{border-bottom:none}.frc-method-tag{background:#e2e8f0;color:#475569;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.frc-fee-card-actions{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.frc-history-btn,.frc-expand-btn,.frc-invoice-btn,.frc-invoice-dl-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;border:none;transition:background .2s,color .2s}.frc-history-btn{background:#eff6ff;color:#3b82f6}.frc-history-btn:hover{background:#dbeafe;color:#2563eb}.frc-expand-btn{background:#f1f5f9;color:#475569}.frc-expand-btn:hover{background:#e2e8f0}.frc-invoice-btn{background:#f0fdf4;color:#16a34a;border:1.5px solid #bbf7d0;font-weight:600}.frc-invoice-btn:hover{background:#dcfce7;color:#15803d;border-color:#86efac}.frc-invoice-dl-btn{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;padding:5px 10px;font-size:11px;font-weight:600}.frc-invoice-dl-btn:hover{background:#dcfce7}.frc-invoice-mini-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;border-radius:5px;cursor:pointer;flex-shrink:0;transition:background .2s}.frc-invoice-mini-btn:hover{background:#dcfce7}.frc-empty-state{text-align:center;padding:48px 24px;color:#94a3b8}.frc-empty-state svg{color:#cbd5e1;margin-bottom:16px}.frc-empty-state h3{margin:0 0 8px;font-size:18px;color:#475569}.frc-empty-state p{margin:0 0 6px;font-size:14px}.frc-contact-note{color:#3b82f6;font-weight:500}.frc-tx-section{margin-top:32px;padding-top:24px;border-top:1px solid #f1f5f9}.frc-tx-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid #e2e8f0;margin-top:14px}.frc-tx-table{width:100%;border-collapse:collapse;font-size:13px}.frc-tx-table thead{background:#f8fafc}.frc-tx-table th{padding:12px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#64748b;white-space:nowrap}.frc-tx-table td{padding:12px 14px;border-top:1px solid #f1f5f9;color:#334155;vertical-align:middle}.frc-tx-table tbody tr:hover{background:#f8fafc}.frc-tx-idx{font-weight:700;color:#94a3b8;width:36px}.frc-fee-head-tag{background:#eff6ff;color:#3b82f6;padding:3px 9px;border-radius:5px;font-size:12px;font-weight:600}.frc-tx-method{font-size:11px;color:#64748b;font-weight:600}.frc-view-receipt-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;background:#eff6ff;color:#3b82f6;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:background .2s}.frc-view-receipt-btn:hover{background:#dbeafe}.frc-grand-total{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);color:#fff;border-radius:12px;padding:20px 24px;margin-top:28px;flex-wrap:wrap;gap:16px}.frc-grand-total-left{display:flex;align-items:center;gap:14px}.frc-grand-total-left svg{opacity:.8}.frc-grand-total-left h3{margin:0 0 2px;font-size:16px;font-weight:700}.frc-grand-total-left p{margin:0;font-size:12px;opacity:.75}.frc-grand-total-right{text-align:right}.frc-grand-amount{font-size:28px;font-weight:800;margin-bottom:6px}.frc-grand-sub{display:flex;gap:16px;justify-content:flex-end;flex-wrap:wrap}.frc-grand-paid,.frc-grand-due{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;opacity:.9}.frc-grand-paid svg{color:#6ee7b7}.frc-grand-due svg{color:#fca5a5}.frc-footer-note{display:flex;align-items:flex-start;gap:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin-top:20px}.frc-footer-note svg{color:#d97706;flex-shrink:0;margin-top:1px}.frc-footer-note p{margin:0;font-size:13px;color:#92400e;line-height:1.5}.frc-modal-overlay{position:fixed;inset:0;background:#0f172a8c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:frc-fade-in .15s ease}@keyframes frc-fade-in{0%{opacity:0}to{opacity:1}}.frc-modal{background:#fff;border-radius:16px;width:100%;max-width:580px;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;animation:frc-slide-up .2s ease}@keyframes frc-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.frc-receipt-modal{max-width:460px}.frc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e2e8f0;background:#f8fafc;border-radius:16px 16px 0 0}.frc-modal-title{display:flex;align-items:center;gap:10px}.frc-modal-title svg{color:#3b82f6}.frc-modal-title h2{margin:0;font-size:16px;font-weight:700;color:#1e293b}.frc-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#e2e8f0;border:none;border-radius:8px;cursor:pointer;color:#475569;transition:background .2s;flex-shrink:0}.frc-modal-close:hover{background:#cbd5e1}.frc-modal-body{padding:20px 22px;overflow-y:auto;flex:1}.frc-modal-summary{display:flex;gap:24px;background:#f8fafc;border-radius:10px;padding:14px 16px;margin-bottom:18px}.frc-modal-summary div{display:flex;flex-direction:column;gap:3px}.frc-modal-summary label{font-size:11px;font-weight:600;text-transform:uppercase;color:#94a3b8}.frc-modal-summary strong{font-size:16px;color:#1e293b}.frc-modal-table{width:100%;border-collapse:collapse;font-size:13px}.frc-modal-table th{padding:9px 10px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0}.frc-modal-table td{padding:10px;border-bottom:1px solid #f1f5f9;color:#334155}.frc-modal-table tbody tr:last-child td{border-bottom:none}.frc-modal-table tbody tr:hover{background:#f8fafc}.frc-receipt-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:12px;font-weight:500;text-decoration:underline;padding:0}.frc-receipt-link:hover{color:#2563eb}.frc-note-cell{font-size:12px;color:#94a3b8;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frc-no-records{text-align:center;color:#94a3b8;font-size:14px;padding:24px 0}.frc-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid #e2e8f0;background:#f8fafc;border-radius:0 0 16px 16px}.frc-modal-close-btn{padding:9px 20px;background:#e2e8f0;color:#475569;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:background .2s}.frc-modal-close-btn:hover{background:#cbd5e1}.frc-download-btn{display:flex;align-items:center;gap:6px;padding:9px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:background .2s}.frc-download-btn:hover{background:#2563eb}.frc-receipt-body{padding:20px 22px}.frc-receipt-school{display:flex;align-items:center;gap:14px;margin-bottom:16px}.frc-receipt-school svg{color:#3b82f6;flex-shrink:0}.frc-receipt-school h3{margin:0 0 3px;font-size:15px;font-weight:700;color:#1e293b}.frc-receipt-school p{margin:0;font-size:12px;color:#64748b}.frc-receipt-divider{height:1px;background:#e2e8f0;margin:14px 0}.frc-receipt-meta{display:flex;flex-direction:column;gap:8px}.frc-receipt-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:8px}.frc-receipt-row span{color:#64748b}.frc-receipt-row strong{color:#1e293b;font-weight:600;text-align:right}.frc-receipt-items{margin-bottom:12px}.frc-receipt-items h4{margin:0 0 10px;font-size:13px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.4px}.frc-receipt-item{display:flex;justify-content:space-between;font-size:14px;padding:8px 0;border-bottom:1px dashed #e2e8f0;color:#334155}.frc-receipt-total{display:flex;justify-content:space-between;font-size:15px;font-weight:700;padding:12px 14px;background:#f0fdf4;border-radius:8px;color:#1e293b;margin-top:8px}.frc-receipt-footer{margin-top:14px;text-align:center;font-size:13px;color:#64748b}.frc-receipt-footer p{margin:4px 0}.frc-receipt-status-paid{display:inline-flex;align-items:center;gap:6px;background:#d1fae5;color:#059669;font-size:13px;font-weight:800;padding:6px 16px;border-radius:20px;margin-bottom:10px;letter-spacing:.5px}@media print{.frc-container>*:not(.frc-receipt-modal){display:none}.frc-modal-overlay{position:static;background:none}.frc-modal{box-shadow:none;max-height:none}.frc-modal-footer{display:none}}@media (max-width: 640px){.frc-header{padding:20px 18px}.frc-title h1{font-size:18px}.frc-summary-grid,.frc-profile-grid{grid-template-columns:1fr 1fr}.frc-fee-grid{grid-template-columns:1fr}.frc-grand-total{flex-direction:column;align-items:flex-start}.frc-grand-total-right{text-align:left}.frc-grand-sub{justify-content:flex-start}.frc-modal{max-height:92vh;border-radius:12px 12px 0 0;align-self:flex-end;margin:0 -16px;width:calc(100% + 32px);max-width:unset}.frc-tx-table th,.frc-tx-table td{padding:10px}}: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}.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:2rem;max-width:1400px;margin:0 auto;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff;flex-wrap:wrap;gap:1rem}.schedule-header h2{margin:0;font-size:1.8rem;font-weight:600}.teacher-info{display:flex;align-items:center;gap:.8rem;background:#fff3;padding:.5rem 1rem;border-radius:10px}.teacher-label{font-size:.9rem;opacity:.9}.teacher-name{font-size:1.1rem;font-weight:600}.class-selector{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d}.class-selector label{font-weight:600;color:#333;font-size:1rem}.class-select{padding:.6rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;cursor:pointer;transition:all .3s ease;background:#fff}.class-select:hover{border-color:#667eea}.class-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.schedule-table-container{overflow-x:auto;margin-bottom:2rem;border-radius:15px;box-shadow:0 4px 20px #00000014}.schedule-table{width:100%;border-collapse:collapse;background:#fff;border-radius:15px;overflow:hidden}.schedule-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.schedule-table th{padding:1rem;text-align:center;font-weight:600;font-size:1rem;border:1px solid rgba(255,255,255,.2)}.schedule-table td{padding:1rem;text-align:center;border:1px solid #e0e0e0;vertical-align:top;transition:background .3s ease}.schedule-table tbody tr:hover td{background:#f8f9fa}.time-cell{background:linear-gradient(135deg,#f8f9fa,#e9ecef);font-weight:600;color:#333;width:100px}.period-details{display:flex;flex-direction:column;gap:.3rem}.subject-name{font-weight:700;color:#2c3e50;font-size:1rem;margin-bottom:.2rem}.teacher-name{font-size:.85rem;color:#667eea;font-weight:500}.room-number{font-size:.8rem;color:#888;font-weight:400}.break-row{background:linear-gradient(135deg,#fff9e6,#fff3cd)}.break-cell{background:#fff9e680}.break-info{display:flex;flex-direction:column;align-items:center;gap:.3rem}.break-icon{font-size:1.2rem}.break-text{font-weight:600;color:#856404;font-size:.9rem}.no-class{color:#999;font-size:.9rem}.error-message{background:#f8d7da;color:#721c24;padding:1rem;border-radius:8px;margin:1rem 0;text-align:center}.schedule-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.loading-spinner{width:50px;height:50px;border:4px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.schedule-legend{margin-top:2rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d}.schedule-legend h4{margin:0 0 .8rem;color:#333;font-size:1rem}.legend-items{display:flex;flex-wrap:wrap;gap:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#666}.legend-color{width:20px;height:20px;border-radius:4px}.legend-color.subject-badge{background:#2c3e50}.legend-color.teacher-badge{background:#667eea}.legend-color.room-badge{background:#888}.legend-color.break-badge{background:#856404}@media (max-width: 1024px){.view-container{padding:1rem}.schedule-table th,.schedule-table td{padding:.75rem}.subject-name{font-size:.9rem}.teacher-name,.room-number{font-size:.75rem}}@media (max-width: 768px){.schedule-header{flex-direction:column;text-align:center}.schedule-header h2{font-size:1.5rem}.class-selector{flex-direction:column;align-items:flex-start}.class-select{width:100%}.schedule-table th,.schedule-table td{padding:.5rem;font-size:.85rem}.time-cell{width:70px;font-size:.8rem}.subject-name{font-size:.8rem}.period-details{gap:.2rem}.legend-items{gap:1rem}.legend-item{font-size:.8rem}}@media (max-width: 640px){.schedule-table{font-size:.75rem}.schedule-table th,.schedule-table td{padding:.4rem}.subject-name{font-size:.7rem}.teacher-name,.room-number{font-size:.65rem}.time-cell{width:60px;font-size:.7rem}}@media print{.class-selector,.schedule-legend,.error-message{display:none}.view-container{padding:0}.schedule-table,.schedule-table th,.schedule-table td{border:1px solid #ddd}.break-row{background:#f5f5f5}}@media (prefers-color-scheme: dark){.view-container{background:#1a1a2e}.class-selector,.schedule-legend{background:#1e1e2e}.class-selector label{color:#e0e0e0}.class-select{background:#2a2a3e;color:#e0e0e0;border-color:#3a3a4e}.schedule-table{background:#1e1e2e}.schedule-table td{border-color:#2a2a3e;color:silver}.time-cell{background:#2a2a3e;color:#e0e0e0}.subject-name{color:#e0e0e0}.room-number{color:#a0a0a0}.schedule-legend h4{color:#e0e0e0}.legend-item{color:#a0a0a0}.schedule-table tbody tr:hover td{background:#2a2a3e}}.period-details:hover .teacher-name{color:#764ba2}.period-details:hover .room-number{color:#667eea}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.schedule-table tbody tr{animation:slideIn .3s ease}.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(250px,1fr));gap:18px;margin-bottom:25px}.form-field{position:relative;margin-bottom:0}.required-star{position:absolute;top:10px;right:12px;color:#ef4444;font-size:16px;font-weight:700;pointer-events:none;z-index:1}.form-field textarea~.required-star{top:12px;right:12px}.form-field select~.required-star{top:10px;right:12px}.form-field .required-star-left{position:absolute;left:12px;top:10px;color:#ef4444;font-size:16px;font-weight:700;pointer-events:none}.form-field:has(.required-star-left) input,.form-field:has(.required-star-left) select,.form-field:has(.required-star-left) textarea{padding-left:28px}input,select,textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #d1d5db;font-size:14px;transition:all .2s ease;background:#f9fafb;font-family:inherit}.form-field input,.form-field select,.form-field textarea{padding-right:28px}input.error,select.error,textarea.error{border-color:#ef4444;background:#fef2f2}input:focus,select:focus,textarea:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}input.error:focus,select.error:focus,textarea.error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}textarea{min-height:80px;resize:vertical}.error-tooltip{display:none}h4{margin-top:20px;margin-bottom:10px;color:#1e293b;font-size:16px;font-weight:600}.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;color:#334155}.checkbox-grid input{accent-color:#6366f1;width:16px;height:16px;margin:0;cursor:pointer}.review-section{background:#f8fafc;padding:24px;border-radius:12px;line-height:1.6}.review-section p{margin-bottom:8px}.review-section label{display:flex;align-items:center;gap:8px;margin-top:15px}.review-profile-image{display:flex;justify-content:center;margin-bottom:24px}.review-profile-img{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #6366f1;box-shadow:0 4px 10px #0000001a}.review-profile-placeholder{width:120px;height:120px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center}.review-profile-placeholder i{font-size:48px;color:#64748b}.review-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:20px}.review-details h3{grid-column:1 / -1;color:#1e293b;font-size:18px;margin:20px 0 12px;padding-bottom:8px;border-bottom:2px solid #e2e8f0}.review-details h3:first-of-type{margin-top:0}.review-details p{margin:6px 0;color:#475569;font-size:14px}.review-details p b{color:#0f172a;min-width:130px;display:inline-block}.required-review{background:#fff5f5;border-left:3px solid #ef4444;padding-left:10px;margin:8px 0}.required-review b{color:#dc2626}.section-mandatory{font-size:12px;font-weight:400;color:#ef4444;background:#fef2f2;padding:2px 8px;border-radius:12px;margin-left:10px}.mandatory-hint{font-size:12px;color:#ef4444;background:#fef2f2;padding:6px 12px;border-radius:6px;margin-bottom:16px;display:inline-block}.confirmation-checkbox{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;margin-top:20px}.confirmation-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:#6366f1}.confirmation-checkbox{font-size:14px;color:#475569;line-height:1.5;cursor:pointer}.image-upload-section{margin-bottom:30px;display:flex;justify-content:center;flex-direction:column;align-items: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 #6366f1;box-shadow:0 4px 10px #0000001a}.profile-placeholder{width:120px;height:120px;border-radius:50%;background:#f1f5f9;display:flex;align-items:center;justify-content:center;border:2px dashed #cbd5e1}.profile-placeholder i{font-size:40px;color:#94a3b8}.upload-btn{padding:8px 20px;background:#6366f1;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.upload-btn:hover{background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}.upload-btn:active{transform:translateY(0)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}.modal-footer button{padding:10px 24px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.modal-footer button:first-child:not(.primary){background:#f1f5f9;color:#475569}.modal-footer button:first-child:not(.primary):hover{background:#e2e8f0;transform:translateY(-1px)}.primary{background:#6366f1;color:#fff}.primary:hover{background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d}.primary:active{transform:translateY(0)}.primary:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.spinner{width:50px;height:50px;border:4px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.page-container{padding:20px 15px}.page-inner{padding:20px}.form-grid{grid-template-columns:1fr;gap:15px}.stepper{flex-direction:column;gap:10px}.step{display:flex;align-items:center;gap:12px;opacity:1}.step span{margin-bottom:0}.step p{margin:0}.review-details{grid-template-columns:1fr}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}.required-star{top:8px;right:10px}.form-field input,.form-field select,.form-field textarea{padding-right:28px}}button,input,select,textarea{transition:all .2s ease}input[type=checkbox],input[type=radio]{cursor:pointer}input::placeholder,textarea::placeholder{color:#94a3b8;font-size:13px}input.error::placeholder,textarea.error::placeholder,select.error{color:#ef4444}input[type=date]{position:relative}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.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:3000;min-width:300px}.toast.show{transform:translate(0)}.toast.success{border-left:4px solid #10b981}.toast.error{border-left:4px solid #ef4444}.toast-content strong{display:block;font-weight:600;color:#1f2937;margin-bottom:4px}.toast-content p{margin:0;font-size:13px;color:#6b7280}.confirm-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2500;animation:fadeIn .2s ease}.confirm-dialog{background:#fff;border-radius:20px;padding:36px 32px;max-width:420px;width:90%;text-align:center;box-shadow:0 25px 50px #0003;animation:slideUp .3s ease}.confirm-icon{color:#f59e0b;margin-bottom:16px;display:flex;justify-content:center}.confirm-dialog h3{font-size:20px;font-weight:800;margin:0 0 12px;color:#1f2937}.confirm-dialog p{font-size:14px;color:#6b7280;line-height:1.6;margin:0 0 28px}.confirm-actions{display:flex;gap:12px}.confirm-cancel-btn{flex:1;padding:12px;border:2px solid #e5e7eb;background:#f3f4f6;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;color:#374151;transition:all .2s ease}.confirm-cancel-btn:hover{background:#e5e7eb}.confirm-delete-btn{flex:1;padding:12px;border:none;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-radius:12px;cursor:pointer;font-weight:600;font-size:14px;box-shadow:0 4px 12px #ef44444d;transition:all .2s ease}.confirm-delete-btn:hover{box-shadow:0 8px 20px #ef444466;transform:translateY(-1px)}.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;flex-shrink:0}.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;flex-shrink:0}.fee-add-btn,.fee-export-btn,.fee-print-btn{padding:10px 20px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all .3s ease;font-weight:500;border:none;font-size:14px}.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;color:#1f2937}.search-clear-btn{background:none;border:none;cursor:pointer;color:#9ca3af;padding:2px;display:flex;align-items:center;transition:color .2s ease;flex-shrink:0}.search-clear-btn:hover{color:#374151}.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;flex-shrink:0}.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:2000;animation:fadeIn .3s ease}.fee-form-container{background:#fff;border-radius:20px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}.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;position:sticky;top:0;z-index:10}.fee-form-header h2{margin:0;font-size:22px;font-weight:700}.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)}.edit-notice{display:flex;align-items:center;gap:8px;background:#fef3c7;border-left:4px solid #f59e0b;padding:10px 16px;margin:16px 24px 0;border-radius:8px;font-size:13px;color:#92400e}.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 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;color:#1f2937;background:#fff}.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 input:disabled,.form-group select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.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}.input-hint{font-size:12px;color:#6b7280;margin-top:2px;display:block}.amount-preview{color:#059669!important;font-weight:600}.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:600;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:inline-flex;align-items:center;gap:8px}.submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.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;position:sticky;top:0;z-index:1}.fee-table th{padding:16px;text-align:left;font-weight:600;color:#374151;font-size:14px;text-transform:uppercase;letter-spacing:.4px}.fee-table td{padding:16px;border-bottom:1px solid #f3f4f6;color:#6b7280;vertical-align:middle}.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;align-items:center}.view-btn,.edit-btn,.delete-btn{padding:7px;border:none;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content: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.1);filter:brightness(.92)}.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 14px;background:#fff;border-radius:8px;border:1px solid #e5e7eb;font-size:14px;color:#374151}.detail-item strong{color:#6b7280;margin-right:6px;font-weight:600}.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:.4;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}@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::-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}@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;flex-wrap:wrap}.fee-add-btn,.fee-export-btn,.fee-print-btn{padding:8px 14px;font-size:13px}.fee-search-bar{flex-direction:column}.fee-search-input{width:100%}.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:5px}.confirm-dialog{padding:24px 20px}.confirm-actions{flex-direction:column}}@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}}@media print{.fee-header-actions,.fee-search-bar,.action-buttons,.fee-stats-grid,.fee-form-modal,.confirm-overlay,.toast{display:none!important}.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!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-bottom:20px}}.fee-add-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,.confirm-cancel-btn:focus-visible,.confirm-delete-btn: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{background:#16213e}.fee-stat-info h3,.fee-table th{color:#e5e7eb}.fee-stat-value{color:#f3f4f6}.fee-table td{color:#9ca3af;border-color:#374151}.fee-row:hover,.fee-details-row{background:#1f2937}.detail-item{background:#16213e;border-color:#374151;color:#e5e7eb}.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}.confirm-dialog{background:#1f2937}.confirm-dialog h3{color:#f3f4f6}.confirm-dialog p{color:#9ca3af}.confirm-cancel-btn{background:#374151;color:#e5e7eb;border-color:#4b5563}}[data-tooltip]{position:relative;cursor:help}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:110%;left:50%;transform:translate(-50%);padding:4px 10px;background:#1f2937;color:#fff;font-size:12px;border-radius:6px;white-space:nowrap;display:none;z-index:10;pointer-events:none}[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}
