@charset "UTF-8";html,body,#root{min-height:100vh;margin:0;background:#0f172a;width:100%;overflow-x:hidden;position:relative;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}html{scroll-behavior:smooth}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}img,svg,video{max-width:100%;height:auto;display:block}button{background:none;border:none;cursor:pointer;font-family:inherit}.login-page-container{display:flex;flex-direction:row;min-height:100vh;width:100%;overflow:hidden}.login-form-section{flex:0 0 500px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff,#f8faff);padding:2rem;position:relative}.login-card{width:100%;max-width:440px;background:#fff;border-radius:24px;padding:3rem 2.5rem;box-shadow:0 20px 40px #0000000d,0 1px 3px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.login-card:hover{transform:translateY(-5px);box-shadow:0 25px 50px #0000001a}.logo{max-width:220px;width:100%;height:auto;margin:0 auto 2.5rem;display:block;object-fit:contain;border-radius:20px;padding:12px;background:linear-gradient(145deg,#fff,#f8faff);box-shadow:0 15px 35px #3b82f626,0 5px 15px #0000000d,inset 0 2px #fff;transition:all .5s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(226,232,240,.8)}.logo:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 25px 45px #3b82f640,0 10px 20px #00000014,inset 0 2px #fff;border-color:#bfdbfecc}.login-card h2{text-align:center;color:#1a2c3e;font-size:2rem;font-weight:700;margin-bottom:2rem;letter-spacing:-.5px}.input-field{margin-bottom:1.25rem}.input-field input{width:100%;padding:14px 18px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s ease;background:#fefefe;font-family:inherit;outline:none}.input-field.password-field input{padding-right:40px}.input-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;background:#fff}.input-field input::placeholder{color:#94a3b8;font-weight:400}.password-field{position:relative}.toggle-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;font-size:18px;-webkit-user-select:none;user-select:none}.login-btn{width:100%;padding:14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin:.5rem 0 1rem;font-family:inherit;box-shadow:0 4px 12px #2563eb33}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #2563eb4d;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.login-btn:active{transform:translateY(0)}.error-message{background:#fee2e2;color:#dc2626;padding:10px;border-radius:10px;font-size:.875rem;margin-bottom:1rem;text-align:center;border:1px solid #fecaca}.privacy-link{text-align:center;margin:1.5rem 0 1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.privacy-link a{color:#64748b;text-decoration:none;font-size:.875rem;transition:color .3s ease}.privacy-link a:hover{color:#3b82f6;text-decoration:underline}.links-container{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}.register-link{color:#3b82f6;text-decoration:none;font-size:.875rem;font-weight:500;padding:8px 12px;border-radius:8px;transition:all .3s ease;background:#eff6ff}.register-link:hover{background:#dbeafe;color:#1e40af;transform:translateY(-1px)}.forgot-link{color:#f97316;text-decoration:none;font-size:.875rem;font-weight:500;padding:8px 12px;border-radius:8px;transition:all .3s ease;background:#fff7ed}.forgot-link:hover{background:#ffedd5;color:#ea580c;transform:translateY(-1px)}.login-hero-section{flex:1;position:relative;background-image:url(/assets/Login%20Page%20Image-BEWwD9rv.png);background-size:cover;background-position:center;background-repeat:no-repeat;min-height:100vh;display:flex;align-items:center;justify-content:center}.hero-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center}.hero-content{text-align:center;max-width:550px;padding:2rem;border-radius:24px;margin:2rem;animation:fadeInUp .8s ease-out;position:relative;z-index:1}.hero-content h1{font-size:3.5rem;font-weight:800;color:#fff;margin-bottom:1.5rem;line-height:1.2;letter-spacing:-.5px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.quote{font-size:1.25rem;color:#fff;font-style:italic;line-height:1.6;font-weight:500;background:#0006;padding:1rem 1.5rem;border-radius:12px;display:inline-block;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.2)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.login-card{animation:fadeInUp .6s ease-out}.input-field input{animation:fadeIn .5s ease-out}@media(max-width:968px){.login-page-container{flex-direction:column}.login-form-section{flex:0 0 auto;min-height:auto;padding:2rem 1.5rem}.login-card{padding:2rem 1.5rem}.login-hero-section{min-height:450px;background-position:center bottom}.hero-content{margin:1.5rem;padding:1.5rem}.hero-content h1{font-size:2rem}.quote{font-size:1rem}}@media(max-width:640px){.logo{width:140px}.login-card h2{font-size:1.75rem}.links-container{flex-direction:column;gap:.75rem;align-items:stretch}.register-link,.forgot-link{text-align:center;padding:10px}.login-hero-section{min-height:400px}.hero-content{margin:1rem;padding:1.25rem}.hero-content h1{font-size:1.5rem}.quote{font-size:.9rem}}@media(max-width:480px){.login-card{padding:1.5rem}.hero-content h1{font-size:1.25rem}}.hamburger-btn{position:fixed;top:20px;left:20px;width:45px;height:45px;background:#fff;border:none;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer;z-index:1000;box-shadow:0 4px 15px #0000001a;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.hamburger-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #00000026;background:#fff}.hamburger-line{width:24px;height:2.5px;background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:2px;transition:all .3s ease}.hamburger-btn:hover .hamburger-line{width:26px}.drawer-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1001;opacity:0;visibility:hidden;transition:all .3s ease}.drawer-overlay.open{opacity:1;visibility:visible}.drawer{position:fixed;top:0;left:-100%;width:100%;max-width:400px;height:100%;background:linear-gradient(135deg,#fff,#f8faff);box-shadow:4px 0 30px #0003;z-index:1002;transition:left .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden}.drawer.open{left:0}.drawer-header{position:sticky;top:0;background:linear-gradient(135deg,#3b82f6,#1e3a8a);padding:20px;display:flex;justify-content:space-between;align-items:center;z-index:10;box-shadow:0 2px 10px #0000001a}.drawer-logo{display:flex;align-items:center;gap:12px;flex:1}.drawer-logo-img{width:50px;height:50px;border-radius:12px;object-fit:cover;border:2px solid rgba(255,255,255,.3)}.drawer-logo h2{font-size:1rem;font-weight:700;margin:0;color:#fff;line-height:1.3}.drawer-logo p{font-size:.7rem;margin:0;color:#ffffffe6}.drawer-close-btn{width:35px;height:35px;background:#fff3;border:none;border-radius:50%;font-size:28px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.drawer-close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.drawer-content{padding:20px 0 40px}.drawer-section{padding:22px 24px;background:#fff;margin:12px 20px;border-radius:18px;box-shadow:0 4px 12px #00000008;border:1px solid rgba(226,232,240,.5);transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.drawer-section:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 10px 30px #3b82f61a;border-color:#dbeafe}.drawer-section h3{margin:0 0 12px;font-size:1.15rem;font-weight:800;color:#0f172a;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}.drawer-section p{font-size:.95rem;color:#475569;line-height:1.65;font-weight:500;margin:8px 0;letter-spacing:.2px}.drawer-section ul{padding-left:0;margin:10px 0;list-style-type:none}.drawer-section li{font-size:.95rem;color:#475569;line-height:1.7;font-weight:500;margin:6px 0;display:flex;align-items:flex-start;gap:8px}.drawer-section strong{color:#1e293b;font-weight:700}.drawer-section.highlight{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;margin:0}.drawer-section.highlight h3{color:#92400e}.drawer-section.highlight li{color:#78350f}.drawer-section.contact{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-left:4px solid #10b981}.drawer-section.contact h3{color:#065f46}.drawer-section.contact p{color:#064e3b}.drawer::-webkit-scrollbar{width:4px}.drawer::-webkit-scrollbar-track{background:#f1f1f1}.drawer::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#3b82f6,#1e3a8a);border-radius:4px}@media(max-width:768px){.hamburger-btn{top:15px;left:15px;width:40px;height:40px}.hamburger-line{width:20px}.drawer{max-width:85%}.drawer-logo-img{width:40px;height:40px}.drawer-logo h2{font-size:.85rem}.drawer-section{padding:15px}}@media(max-width:480px){.drawer{max-width:100%}.drawer-header{padding:15px}.drawer-section h3{font-size:.9rem}.drawer-section p,.drawer-section li{font-size:.8rem}}.spinner{animation:spin 1s linear infinite;margin-right:8px;font-size:16px}.login-btn{position:relative;transition:all .3s ease}.login-btn.loading{background:linear-gradient(135deg,#667eea,#764ba2);opacity:.8;cursor:not-allowed;pointer-events:none}.login-btn:disabled{opacity:.7;cursor:not-allowed}.input-field input:disabled{background-color:#f5f5f5;opacity:.7;cursor:not-allowed}.disabled-link{opacity:.5;pointer-events:none;cursor:not-allowed}.login-btn:not(.loading):hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.login-btn,.input-field input,.toggle-password,.links-container a{transition:all .3s ease}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.login-btn.loading{animation:pulse 1.5s ease-in-out infinite}.privacy-policy-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-out;padding:1rem}.privacy-policy-overlay.closing{animation:fadeOut .3s ease-out forwards}.privacy-policy-container{background:linear-gradient(135deg,#fff,#fefefe);border-radius:2rem;max-width:780px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;animation:slideUp .3s ease-out;position:relative;overflow:hidden}.privacy-policy-overlay.closing .privacy-policy-container{animation:slideDown .3s ease-out forwards}.close-button{position:absolute;top:1.25rem;right:1.25rem;width:36px;height:36px;border-radius:50%;background:#f1f5f9;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;color:#475569}.close-button:hover{background:#fee2e2;color:#ef4444;transform:rotate(90deg)}.privacy-policy-header{padding:1.75rem 2rem 1rem;text-align:center;border-bottom:1px solid #eef2ff;background:linear-gradient(180deg,#fafcff,#fff)}.logo-full-circle-privacy{position:relative;width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0f1acc,#06090fe6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;overflow:hidden;box-shadow:0 8px 32px #0000004d;margin:0 auto 1rem}.logo-inner-border-privacy{width:calc(100% - 4px);height:calc(100% - 4px);border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,rgba(245,200,66,.05) 0%,transparent 70%);border:2px solid rgba(245,200,66,.3)}.center-logo-full-privacy{width:100%;height:100%;object-fit:cover;border-radius:50%}.privacy-policy-header h2{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#1e293b,#2d3a5e);background-clip:text;-webkit-background-clip:text;color:transparent;margin-bottom:.25rem}.last-updated{font-size:.75rem;color:#94a3b8;margin-top:.25rem}.privacy-policy-content{flex:1;overflow-y:auto;padding:1.5rem 2rem;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9}.privacy-policy-content::-webkit-scrollbar{width:6px}.privacy-policy-content::-webkit-scrollbar-track{background:#f1f5f9;border-radius:10px}.privacy-policy-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.privacy-policy-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.intro-text{font-size:.95rem;line-height:1.6;color:#334155;background:#f8fafc;padding:1rem 1.25rem;border-radius:1rem;margin-bottom:1.5rem;border-left:4px solid #2563eb}.policy-section{margin-bottom:1.75rem}.policy-section.highlight{background:linear-gradient(135deg,#fef9e3,#fffaf0);padding:1rem 1.25rem;border-radius:1rem;border-left:4px solid #f59e0b}.policy-section h4{font-size:1.1rem;font-weight:700;color:#0f172a;margin-bottom:.75rem;display:inline-block;border-bottom:2px solid #3b82f6;padding-bottom:.25rem}.policy-section p{font-size:.9rem;line-height:1.6;color:#334155;margin-bottom:.75rem}.policy-section ul{margin:.75rem 0 0 1.25rem;padding-left:0;list-style:none}.policy-section ul li{font-size:.9rem;line-height:1.55;color:#334155;margin-bottom:.6rem;position:relative;padding-left:1.25rem}.policy-section ul li:before{content:"•";color:#3b82f6;font-weight:700;font-size:1.1rem;position:absolute;left:0;top:-1px}.policy-section ul li strong{color:#0f172a;font-weight:600}.rights-list li{display:flex;align-items:flex-start;gap:.75rem;padding-left:0!important}.rights-list li:before{display:none}.right-icon{font-size:1.1rem;min-width:28px}.grievance-section{background:linear-gradient(135deg,#eef2ff,#f8fafc);padding:1rem 1.25rem;border-radius:1rem;margin-bottom:0}.contact-card{background:#fff;border-radius:.875rem;padding:1rem;margin-top:.75rem;border:1px solid #e2e8f0}.contact-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.75rem}.contact-item:last-child{margin-bottom:0}.contact-label{font-weight:700;color:#1e293b;min-width:45px;font-size:.85rem}.contact-value{color:#334155;font-size:.9rem}.email-list{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.contact-email{color:#2563eb;text-decoration:none;font-size:.85rem;font-weight:500;transition:color .2s}.contact-email:hover{color:#1e40af;text-decoration:underline}.email-separator{color:#94a3b8;font-size:.8rem}.privacy-policy-footer{padding:1rem 2rem 1.5rem;border-top:1px solid #eef2ff;background:#fff}.accept-button{width:100%;padding:.875rem;background:linear-gradient(95deg,#2563eb,#1e40af);color:#fff;border:none;border-radius:2rem;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #2563eb40}.accept-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #2563eb59;background:linear-gradient(95deg,#3b82f6,#2563eb)}.accept-button:active{transform:translateY(0)}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(30px) scale(.98)}}@media(max-width:640px){.privacy-policy-container{max-height:90vh;border-radius:1.5rem}.privacy-policy-header{padding:1.25rem 1.25rem .75rem}.privacy-policy-header h2{font-size:1.4rem}.privacy-policy-content{padding:1rem 1.25rem}.privacy-policy-footer{padding:1rem 1.25rem 1.25rem}.policy-section h4{font-size:1rem}.contact-item{flex-direction:column;gap:.25rem}.email-list{flex-direction:column;align-items:flex-start;gap:.25rem}.email-separator{display:none}}:root{--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--card-shadow: 0 10px 25px -5px rgba(0, 0, 0, .05), 0 8px 10px -6px rgba(0, 0, 0, .02);--card-hover-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .05);--border-radius-lg: 24px;--border-radius-md: 16px;--border-radius-sm: 12px;--transition-fast: all .2s ease;--transition-normal: all .3s ease}.admin-dashboard{padding:2rem;background:#f8fafc;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.dashboard-header-modern{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem;flex-wrap:wrap;gap:1rem}.header-left{flex:1}.greeting-badge{display:inline-flex;align-items:center;gap:.5rem;background:#667eea1a;padding:.4rem 1rem;border-radius:40px;font-size:.85rem;font-weight:500;color:#667eea;margin-bottom:1rem}.wave-emoji{font-size:1.1rem}.dashboard-header-modern h1{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#1e293b,#334155);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;letter-spacing:-.02em}.dashboard-header-modern p{color:#64748b;font-size:.95rem}.header-right .date-badge{background:#fff;padding:.6rem 1.2rem;border-radius:40px;font-size:.85rem;font-weight:500;color:#475569;box-shadow:var(--card-shadow);border:1px solid #e2e8f0}.stats-grid-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:var(--border-radius-md);padding:1.25rem;position:relative;overflow:hidden;transition:var(--transition-normal);box-shadow:var(--card-shadow);border:1px solid #eef2f6;display:flex;align-items:center;gap:1rem;cursor:pointer}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--card-hover-shadow);border-color:transparent}.stat-card-glow{position:absolute;top:0;left:0;right:0;height:4px;opacity:.8}.stat-icon-wrapper{width:52px;height:52px;border-radius:18px;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);flex-shrink:0}.stat-label{font-size:.85rem;font-weight:500;color:#64748b;letter-spacing:.3px;text-transform:uppercase;display:block;margin-bottom:.35rem}.stat-value-wrapper{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.stat-value{font-size:1.5rem;font-weight:800;color:#0f172a;line-height:1}.stat-trend{font-size:.7rem;font-weight:500;background:#f1f5f9;padding:.2rem .5rem;border-radius:20px;color:#475569;display:inline-flex;align-items:center;gap:.2rem}.stat-card-hover{position:absolute;bottom:0;left:0;width:0%;height:3px;transition:width .3s ease}.stat-card:hover .stat-card-hover{width:100%}.dashboard-welcome-modern{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:var(--border-radius-lg);padding:.1rem;margin-top:1rem;box-shadow:var(--card-shadow)}.welcome-content{background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--border-radius-lg);padding:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}.welcome-icon{font-size:3rem;background:#ffffff1a;width:60px;height:60px;border-radius:60px;display:flex;align-items:center;justify-content:center}.welcome-text h3{color:#fff;font-size:1.35rem;font-weight:600;margin-bottom:.5rem}.welcome-text p{color:#cbd5e1;font-size:.9rem;margin:0;max-width:500px}.action-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.7rem 1.2rem;border-radius:40px;color:#fff;font-weight:500;font-size:.85rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:var(--transition-fast)}.action-btn:hover{background:#fff3;transform:translateY(-2px)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999}.admin-modal-container{background:#fff;border-radius:20px;width:95%;max-width:1100px;min-width:1000px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.admin-modal-lg{max-width:1200px}.admin-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid #eee}.admin-modal-header h3{font-size:20px;font-weight:600}.admin-modal-close-btn{background:#f1f5f9;border:none;border-radius:50%;width:34px;height:34px;cursor:pointer}.admin-modal-body{padding:20px 24px;overflow-y:auto;flex:1}.admin-modal-body .data-table-wrapper{overflow-x:auto;border-radius:var(--border-radius-sm)}.admin-modal-body .data-table{width:100%;border-collapse:collapse;font-size:.85rem;table-layout:auto}.admin-modal-body .data-table th{text-align:left;padding:12px 16px;vertical-align:middle;white-space:nowrap}.admin-modal-body .data-table td{text-align:left;padding:12px 16px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.admin-modal-body .data-table tr{height:60px}.admin-modal-body .serial-no{width:60px;text-align:center;font-weight:500;color:#64748b}.admin-modal-body .name-cell{display:flex;align-items:center;gap:12px;white-space:nowrap}.admin-modal-body .avatar-placeholder{width:36px;height:36px;border-radius:36px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;flex-shrink:0;background:#e8f0fe;color:#1e40af}.admin-modal-body .name-text{font-weight:500;color:#1e293b;white-space:nowrap}.admin-modal-body .email-cell{font-family:monospace;font-size:.8rem;color:#475569;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-modal-body .class-badge,.admin-modal-body .subject-badge,.admin-modal-body .wallet-badge,.admin-modal-body .wallet-badge-low{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:500;white-space:nowrap}.admin-modal-body .class-badge{background:#e8f0fe;color:#1e40af}.admin-modal-body .subject-badge{background:#f0e8fe;color:#7c3aed}.admin-modal-body .wallet-badge{background:#e0f2fe;color:#0c4a6e}.admin-modal-body .wallet-badge-low{background:#ffe4e6;color:#be123c}.admin-modal-body .search-input-wrapper{position:relative;margin-bottom:20px}.admin-modal-body .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8}.admin-modal-body .search-input{width:100%;padding:10px 16px 10px 40px;border:1px solid #e2e8f0;border-radius:40px;font-size:.9rem;background:#f8fafc;transition:var(--transition-fast)}.admin-modal-body .search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;background:#fff}.admin-modal-body .classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem;margin-top:.5rem}.admin-modal-body .class-card-modern{background:#fefefe;border:1px solid #eef2f6;border-radius:var(--border-radius-sm);overflow:hidden;transition:var(--transition-fast)}@media(max-width:768px){.admin-dashboard{padding:1rem}.admin-modal-container{min-width:auto;width:95%}.admin-modal-body .data-table th,.admin-modal-body .data-table td{padding:8px 12px}.admin-modal-body .email-cell{max-width:150px}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;color:#94a3b8}.empty-icon{font-size:3rem;margin-bottom:.75rem;opacity:.6}.student-dashboard{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef);padding:20px;box-sizing:border-box;position:relative}.mobile-global-menu{display:none;position:fixed;top:16px;right:16px;z-index:100}.welcome-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px;padding:32px;margin-bottom:28px;box-shadow:0 10px 40px #667eea40;position:relative}.welcome-section:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:#ffffff0d;border-radius:50%}.welcome-section:after{content:"";position:absolute;bottom:-30%;left:-5%;width:200px;height:200px;background:#ffffff08;border-radius:50%}.welcome-content{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}.welcome-text{flex:1}.greeting-badge{display:inline-block;background:#fff3;padding:6px 16px;border-radius:30px;font-size:14px;font-weight:500;color:#fff;margin-bottom:16px;border:1px solid rgba(255,255,255,.2)}.student-name{font-size:36px;font-weight:700;color:#fff;margin:0 0 12px;line-height:1.2}.student-name .highlight{color:#fbbf24}.student-class-badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff26;padding:8px 16px;border-radius:30px;font-size:15px;font-weight:500;color:#fff;margin-bottom:16px;border:1px solid rgba(255,255,255,.2)}.class-icon{font-size:18px}.welcome-subtitle{font-size:16px;color:#fffffff2;margin:0;max-width:500px;line-height:1.6}.welcome-actions,.student-dashboard .menu-container{position:relative}.student-dashboard .menu-btn{background:#fff;border:2px solid #e2e8f0;color:#667eea;width:48px;height:48px;border-radius:14px;font-size:28px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;padding:0;line-height:1;box-shadow:0 4px 12px #00000026}.student-dashboard .menu-btn:hover{background:#f7fafc;border-color:#667eea;transform:rotate(90deg);box-shadow:0 6px 16px #0003}.student-dashboard .dropdown-menu{position:absolute;top:56px;right:0;background:#fff;border-radius:16px;padding:8px 0;min-width:200px;box-shadow:0 10px 40px #00000026;z-index:1000;animation:slideDown .3s ease;border:1px solid #e2e8f0}.student-dashboard .dropdown-menu p{padding:12px 20px;margin:0;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:15px;color:#2d3748;transition:all .2s ease}.student-dashboard .dropdown-menu p:hover{background:#f7fafc}.student-dashboard .dropdown-menu p.logout-item{color:#e53e3e;border-top:1px solid #e2e8f0;margin-top:8px;padding-top:12px}.student-dashboard .dropdown-menu p.logout-item:hover{background:#fff5f5}.stats-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:32px}.stat-card{background:#fff;border-radius:20px;padding:24px;display:flex;align-items:flex-start;gap:16px;box-shadow:0 4px 20px #00000014;transition:all .3s ease;border:1px solid rgba(0,0,0,.05)}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000001f}.stat-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.balance-stat .stat-icon{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.classes-stat .stat-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.rate-stat .stat-icon{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.stat-info{flex:1}.stat-label{font-size:14px;color:#718096;margin:0 0 8px;font-weight:500}.stat-value{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 4px;line-height:1.2}.stat-warning{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.stat-warning.negative{background:#fed7d7;color:#c53030}.stat-warning.low{background:#fef3c7;color:#92400e}.stat-warning.none{background:#e2e8f0;color:#4a5568}.stat-skeleton{height:28px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:6px;color:transparent}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:32px}.dashboard-card{background:#fff;border-radius:20px;padding:28px 24px;cursor:pointer;transition:all .3s ease;border:1px solid rgba(0,0,0,.05);box-shadow:0 4px 20px #00000014;position:relative;overflow:hidden}.dashboard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-color);opacity:0;transition:opacity .3s ease}.dashboard-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px #00000026}.dashboard-card:hover:before{opacity:1}.card-icon-wrapper{margin-bottom:20px}.card-icon{width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--card-color);color:#fff;transition:all .3s ease}.dashboard-card:hover .card-icon{transform:scale(1.05)}.card-title{font-size:20px;font-weight:700;color:#1a202c;margin:0 0 8px}.card-description{font-size:14px;color:#718096;margin:0 0 20px;line-height:1.5}.card-arrow{position:absolute;bottom:24px;right:24px;font-size:24px;color:var(--card-color);opacity:0;transform:translate(-10px);transition:all .3s ease}.dashboard-card:hover .card-arrow{opacity:1;transform:translate(0)}.warning-banner{background:#fff;border-radius:16px;padding:20px 24px;display:flex;align-items:center;gap:16px;margin-bottom:20px;box-shadow:0 4px 20px #00000014;border-left:5px solid}.warning-banner.urgent{border-left-color:#e53e3e;background:#fff5f5}.warning-banner.warning{border-left-color:#f59e0b;background:#fffbeb}.warning-icon{font-size:28px;flex-shrink:0}.warning-content{flex:1}.warning-content strong{display:block;font-size:16px;color:#1a202c;margin-bottom:4px}.warning-content p{margin:0;color:#4a5568;font-size:14px;line-height:1.5}.quick-tip{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-radius:16px;padding:16px 20px;display:flex;align-items:center;gap:12px;border-left:5px solid #0284c7}.tip-icon{font-size:24px;flex-shrink:0}.tip-content{flex:1;font-size:14px;color:#0c4a6e;line-height:1.5}.tip-content strong{color:#0369a1}.profile-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;z-index:2000;animation:fadeIn .3s ease}.profile-modal{background:#fff;border-radius:24px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.modal-header{padding:24px 28px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#667eea,#764ba2);margin-bottom:10px!important}.modal-header h2{margin:0;font-size:22px;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px}.modal-header button{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-header button:hover{background:#ffffff4d;transform:rotate(90deg)}.profile-content{padding:28px;max-height:calc(90vh - 100px)}.profile-avatar{display:flex;justify-content:center;margin-bottom:24px}.avatar-circle{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:600;color:#fff;box-shadow:0 8px 20px #667eea4d}.profile-info{display:flex;flex-direction:column;gap:16px}.info-row{display:flex;align-items:flex-start;gap:16px;padding:12px;background:#f7fafc;border-radius:12px;transition:all .2s ease}.info-row:hover{background:#edf2f7}.info-icon{width:40px;height:40px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 8px #0000000d;flex-shrink:0}.info-details{flex:1}.info-details strong{display:block;font-size:13px;color:#718096;margin-bottom:4px;font-weight:500}.info-details p{margin:0;font-size:16px;color:#1a202c;font-weight:500;word-break:break-word}.profile-loading{text-align:center;padding:40px 20px}.profile-loading .spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.profile-loading p{color:#718096;margin:0}@media(max-width:768px){.student-dashboard{padding:16px 12px}.mobile-global-menu{display:block}.mobile-global-menu .menu-btn{background:#fff;border:2px solid #667eea;color:#667eea;box-shadow:0 4px 12px #00000026}.welcome-section{padding:24px 20px;margin-bottom:20px}.welcome-content{flex-direction:column;gap:20px}.welcome-actions{display:none}.greeting-badge{font-size:12px;padding:5px 14px}.student-name{font-size:28px}.student-class-badge{font-size:13px;padding:6px 14px}.welcome-subtitle{font-size:14px}.stats-overview{grid-template-columns:1fr;gap:16px}.stat-card{padding:20px}.stat-icon{width:48px;height:48px;font-size:24px}.stat-value{font-size:24px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.dashboard-card{padding:22px 20px}.card-icon{width:52px;height:52px;font-size:28px}.card-title{font-size:18px}.warning-banner{padding:16px;flex-direction:column;align-items:flex-start}.quick-tip{padding:14px 16px;flex-direction:column;align-items:flex-start}.profile-modal{max-width:100%;margin:16px}.modal-header{padding:20px}.modal-header h2{font-size:20px}.profile-content{padding:20px}.avatar-circle{width:80px;height:80px;font-size:36px}.info-row{padding:10px;gap:12px}.info-icon{width:36px;height:36px;font-size:18px}.info-details p{font-size:14px}.dropdown-menu{position:fixed;top:72px;right:16px;min-width:180px;background:#fff;border:1px solid #e2e8f0}}@media(max-width:480px){.student-dashboard{padding:12px 8px}.welcome-section{padding:20px 16px}.student-name{font-size:24px}.stat-card{padding:16px}.stat-value{font-size:22px}.dashboard-card{padding:18px 16px}.card-arrow{bottom:18px;right:18px}}@media(min-width:769px)and (max-width:1024px){.student-dashboard{padding:20px 16px}.stats-overview{gap:16px}.dashboard-grid{gap:20px}.stat-card{padding:20px}.dashboard-card{padding:24px 20px}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:9999;padding:20px;box-sizing:border-box;animation:fadeInOverlay .3s ease}@keyframes fadeInOverlay{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}.modal-card{background:#fff;border-radius:24px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d;animation:slideUpModal .3s ease;overflow:hidden;box-sizing:border-box}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-card h4{background:linear-gradient(135deg,#667eea,#764ba2);padding:28px 24px 20px;margin:0;font-size:22px;font-weight:700;color:#fff;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px;border-bottom:none}.modal-card p{margin:0;padding:16px 24px;font-size:15px;color:#2d3748;border-bottom:1px solid #e2e8f0;display:flex;align-items:flex-start;gap:12px;line-height:1.5;transition:all .2s ease}.modal-card p:last-of-type{border-bottom:none}.modal-card p:hover{background:#f7fafc}.modal-card p b{min-width:80px;font-weight:600;color:#4a5568;display:flex;align-items:center;gap:6px}.modal-card p b:before{font-size:18px}.modal-card p:nth-child(2) b:before{content:"📱"}.modal-card p:nth-child(3) b:before{content:"✉️"}.modal-card p:nth-child(4) b:before{content:"📍"}.modal-card p:nth-child(5) b:before{content:"🕐"}.modal-card p a{color:#667eea;text-decoration:none;font-weight:500;transition:all .2s ease;word-break:break-word}.modal-card p a:hover{color:#5a67d8;text-decoration:underline}.modal-card p:only-of-type{justify-content:center;padding:40px 24px;color:#718096;font-style:italic;border-bottom:none}.modal-card p:only-of-type:before{content:"⏳";font-size:24px;animation:pulse 1.5s ease infinite;font-style:normal}.modal-card button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;gap:8px}.modal-card button:hover{background:linear-gradient(135deg,#5a67d8,#6b46a1);letter-spacing:1px}.modal-card button:active{transform:scale(.98)}.modal-card button:focus-visible{outline:2px solid #667eea;outline-offset:-4px}.modal-card button:before{content:"✕";font-size:18px;font-weight:400}@media(max-width:768px){.modal-overlay{padding:12px;align-items:flex-end}.modal-card{max-width:100%;border-bottom-left-radius:28px;border-bottom-right-radius:28px;animation:slideUpMobile .3s ease}@keyframes slideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-card h4{padding:24px 20px 18px;font-size:20px}.modal-card p{padding:14px 20px;font-size:14px}.modal-card p b{min-width:70px}.modal-card button{padding:15px;font-size:15px}}@media(max-width:480px){.modal-overlay{padding:8px}.modal-card h4{padding:20px 16px 16px;font-size:18px}.modal-card p{padding:12px 16px;font-size:13px;flex-wrap:wrap;gap:8px}.modal-card p b{min-width:100%;margin-bottom:4px}.modal-card button{padding:14px;font-size:14px}}@media(max-width:768px)and (orientation:landscape){.modal-overlay{align-items:center}.modal-card{max-height:85vh;overflow-y:auto;border-radius:20px}.modal-card p{padding:12px 20px}}@media(min-width:769px)and (max-width:1024px){.modal-card{max-width:450px}}@media(min-width:1200px){.modal-card{max-width:450px}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-card,.modal-card button{animation:none;transition:none}}@media(forced-colors:active){.modal-card{border:2px solid CanvasText}.modal-card button{border:2px solid ButtonText}}@media print{.modal-overlay{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}.modal-card{box-shadow:none;border:1px solid #ccc;max-width:100%}.modal-card button{display:none}.modal-card p{break-inside:avoid}}.modal-card::-webkit-scrollbar{width:6px}.modal-card::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.modal-card::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.modal-card::-webkit-scrollbar-thumb:hover{background:#94a3b8}.modal-card p span:not(b){flex:1;word-break:break-word}.modal-card .empty-state{text-align:center;padding:40px 24px;color:#718096}.modal-card p[data-copyable]{cursor:pointer;position:relative}.modal-card p[data-copyable]:hover:after{content:"Click to copy";position:absolute;right:24px;top:50%;transform:translateY(-50%);background:#1a202c;color:#fff;padding:4px 10px;border-radius:20px;font-size:11px;opacity:.9}.app-loader{position:fixed;top:0;left:0;width:100%;height:100vh;display:flex;justify-content:center;align-items:center;background:#0f172a;z-index:9999}.spinner{width:42px;height:42px;border:3px solid rgba(255,255,255,.2);border-top:3px solid #6366f1;border-radius:50%;animation:spin .7s linear infinite}.teacher-dashboard.light{--primary: #4f46e5;--primary-light: #e0e7ff;--primary-dark: #4338ca;--secondary: #f3f4f6;--success: #10b981;--success-light: #d1fae5;--danger: #ef4444;--danger-light: #fee2e2;--warning: #f59e0b;--warning-light: #fef3c7;--text-main: #1f2937;--text-muted: #6b7280;--border-light: #e5e7eb;--card-bg: #ffffff;--body-bg: #f9fafb;--header-bg: #ffffff;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--transition: all .2s ease}.teacher-dashboard{min-height:100vh;background:var(--body-bg);color:var(--text-main);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;padding-bottom:2rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--header-bg);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10;flex-wrap:wrap;gap:1rem}.header-left .logo-area{display:flex;align-items:center;gap:.75rem}.logo-icon{width:50px;height:50px;border-radius:50%;object-fit:cover;object-position:center;display:block;border:2px solid #e0e7ff;box-shadow:0 2px 6px #0000000d}.logo-text h1{font-size:1.25rem;font-weight:700;margin:0;color:var(--primary-dark);letter-spacing:-.025em}.logo-text p{font-size:.75rem;color:var(--text-muted);margin:0}.header-right{display:flex;align-items:center;gap:1.25rem}.teacher-badge{display:flex;align-items:center;gap:.75rem;background:var(--secondary);padding:.4rem 1rem .4rem .6rem;border-radius:40px;box-shadow:var(--shadow-sm)}.teacher-avatar{width:38px;height:38px;background:var(--primary);color:#fff;font-weight:600;font-size:1.1rem;display:flex;align-items:center;justify-content:center;border-radius:50%}.teacher-details{display:flex;flex-direction:column}.teacher-name{font-weight:600;font-size:.9rem}.teacher-role{font-size:.7rem;color:var(--text-muted)}.menu-container{position:relative}.menu-btn{background:transparent;border:none;font-size:1.8rem;line-height:1;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);color:var(--text-main);transition:var(--transition)}.menu-btn:hover{background:var(--secondary)}.dropdown-menu{position:absolute;top:45px;right:0;background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;overflow:hidden;z-index:100;border:1px solid var(--border-light)}.dropdown-menu p{padding:.75rem 1rem;margin:0;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.9rem;transition:var(--transition)}.dropdown-menu p:hover{background:var(--secondary)}.dropdown-menu .logout-item{color:var(--danger);border-top:1px solid var(--border-light)}.tab-navigation{position:sticky;top:0;z-index:9;background:var(--card-bg);margin:0;padding:.75rem 1rem;border-bottom:1px solid var(--border-light);box-shadow:0 2px 4px #00000005;display:flex;flex-wrap:nowrap;gap:.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-navigation::-webkit-scrollbar{display:none}.tab-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;background:transparent;border:none;border-radius:40px;font-weight:500;font-size:.9rem;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:var(--transition)}.tab-btn:hover{background:var(--secondary);color:var(--text-main)}.tab-btn.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.all-classes-section,.attendance-mark-section,.attendance-view-section,.timetable-section,.profile-section{padding:1.5rem 1.25rem;max-width:1400px;margin:0 auto}.section-header h3{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.section-header p{color:var(--text-muted);margin-top:0}.classes-category{margin-top:1rem}.category-title{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.category-title h3{font-size:1.25rem;font-weight:600;margin:0}.badge{background:var(--primary-light);color:var(--primary-dark);padding:.2rem .7rem;border-radius:40px;font-size:.8rem;font-weight:600}.classes-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media(min-width:640px){.classes-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.classes-grid{grid-template-columns:repeat(3,1fr)}}.class-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-md);border:1px solid var(--border-light);transition:var(--transition);display:flex;flex-direction:column}.class-card:hover{box-shadow:var(--shadow-lg)}.class-header{margin-bottom:1rem}.class-title{display:flex;justify-content:space-between;align-items:flex-start}.class-title h4{font-size:1.1rem;font-weight:700;margin:0}.status-chip{font-size:.7rem;padding:.2rem .6rem;border-radius:40px;font-weight:500;text-transform:capitalize;background:var(--secondary);color:var(--text-muted)}.status-chip.completed{background:var(--success-light);color:var(--success)}.status-chip.cancelled{background:var(--danger-light);color:var(--danger)}.class-body{flex:1}.class-info-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text-main);margin-bottom:.5rem}.class-info-row svg{color:var(--primary);flex-shrink:0}.class-info-row.students .student-names{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meeting-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--primary-light);color:var(--primary-dark);border:none;padding:.5rem 1rem;border-radius:40px;font-weight:500;font-size:.85rem;margin-top:.75rem;cursor:pointer;transition:var(--transition)}.meeting-btn:hover{background:var(--primary);color:#fff}.class-footer{margin-top:1.25rem;border-top:1px dashed var(--border-light);padding-top:1rem}.reschedule-btn{width:100%;background:transparent;border:1px solid var(--border-light);padding:.6rem;border-radius:var(--radius-md);font-weight:500;color:var(--text-muted);cursor:pointer;transition:var(--transition)}.reschedule-btn:hover{background:var(--secondary);border-color:var(--primary);color:var(--primary)}.empty-state{text-align:center;padding:3rem 1rem;background:var(--card-bg);border-radius:var(--radius-lg);border:1px dashed var(--border-light)}.empty-state-small{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem}.filters-panel{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;background:var(--card-bg);padding:1.25rem;border-radius:var(--radius-lg);margin:1.5rem 0;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.filter-group{flex:1 1 180px;min-width:160px}.filter-group label{display:block;font-size:.8rem;font-weight:500;margin-bottom:.3rem;color:var(--text-muted)}.filter-group select,.filter-group input{width:100%;padding:.6rem .75rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.9rem;background:#fff;transition:var(--transition)}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.filter-actions{display:flex;gap:.5rem}.clear-btn{display:flex;align-items:center;gap:.4rem;background:var(--secondary);border:none;padding:.6rem 1rem;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:500;cursor:pointer;transition:var(--transition)}.clear-btn:hover{background:var(--danger-light);color:var(--danger)}.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.search-wrapper{display:flex;align-items:center;background:var(--card-bg);border:1px solid var(--border-light);border-radius:40px;padding:.4rem .8rem;width:100%;max-width:280px}.search-wrapper svg{color:var(--text-muted);margin-right:.5rem}.search-wrapper input{border:none;background:transparent;width:100%;font-size:.9rem}.search-wrapper input:focus{outline:none}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--card-bg);box-shadow:var(--shadow-sm)}.attendance-table{width:100%;border-collapse:collapse;min-width:800px;font-size:.9rem}.attendance-table th{text-align:left;padding:1rem;background:var(--secondary);font-weight:600;color:var(--text-main);border-bottom:1px solid var(--border-light);white-space:nowrap}.attendance-table td{padding:1rem;border-bottom:1px solid var(--border-light);vertical-align:middle}.attendance-table tr:last-child td{border-bottom:none}.attendance-table tbody tr:hover{background:var(--secondary)}.student-name{font-weight:500}.student-email{color:var(--text-muted);font-size:.85rem}.status-col{min-width:220px}.status-toggle{display:flex;gap:.3rem;flex-wrap:wrap}.status-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:40px;border:1px solid var(--border-light);background:#fff;font-size:.75rem;font-weight:500;cursor:pointer;transition:var(--transition)}.status-btn.present.active{background:var(--success);border-color:var(--success);color:#fff}.status-btn.absent.active{background:var(--danger);border-color:var(--danger);color:#fff}.status-btn.leave.active{background:var(--warning);border-color:var(--warning);color:#fff}.remarks-col input{width:100%;padding:.4rem .5rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.85rem;background:#fff}.attendance-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.summary-stats{display:flex;flex-wrap:wrap;gap:1rem}.stat{display:flex;align-items:center;gap:.3rem;padding:.4rem 1rem;background:var(--secondary);border-radius:40px;font-size:.85rem}.stat.present-badge svg{color:var(--success)}.stat.absent-badge svg{color:var(--danger)}.stat.leave-badge svg{color:var(--warning)}.save-btn{background:var(--primary);color:#fff;border:none;padding:.75rem 2rem;border-radius:40px;font-weight:600;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.save-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.save-btn:disabled{opacity:.6;cursor:not-allowed}.attendance-summary-card{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,var(--primary-light),#e0e7ff);padding:1.25rem 1.5rem;border-radius:var(--radius-lg);margin-bottom:1.5rem}.summary-icon{background:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--primary)}.summary-info{display:flex;flex-direction:column}.summary-label{font-size:.85rem;color:var(--text-muted)}.summary-value{font-size:2rem;font-weight:700;color:var(--primary-dark);line-height:1.2}.summary-period{font-size:.75rem;color:var(--text-muted)}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:40px;font-size:.8rem;font-weight:500;background:var(--secondary)}.status-badge.present{background:var(--success-light);color:var(--success)}.status-badge.absent{background:var(--danger-light);color:var(--danger)}.status-badge.leave{background:var(--warning-light);color:var(--warning)}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:2rem}.pagination button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--card-bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.pagination button svg{min-width:18px;flex-shrink:0}.pagination button:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.page-info{padding:0 1rem;font-size:.9rem;color:var(--text-muted)}.profile-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.profile-avatar-large{width:90px;height:90px;background:var(--primary);color:#fff;font-size:2.5rem;font-weight:600;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:var(--shadow-md)}.profile-title h2{font-size:1.8rem;margin:0}.profile-title p{color:var(--text-muted);margin:.2rem 0 0}.profile-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin-bottom:2rem}.profile-detail-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.detail-icon{width:42px;height:42px;background:var(--primary-light);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--primary)}.detail-content{display:flex;flex-direction:column}.detail-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.detail-value{font-weight:600}.profile-status-cards{display:flex;flex-wrap:wrap;gap:1rem}.status-card{flex:1;min-width:200px;background:var(--card-bg);border-radius:var(--radius-lg);padding:1.25rem;display:flex;align-items:center;gap:1rem;border:1px solid var(--border-light)}.status-icon{font-size:1.8rem}.status-info{display:flex;flex-direction:column}.status-label{font-size:.8rem;color:var(--text-muted)}.status-value.approved,.status-value.accepted{color:var(--success);font-weight:600}.status-value.pending{color:var(--warning)}.profile-modal-overlay,.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.profile-modal,.modal-container{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-light)}.modal-header h2,.modal-header h3{margin:0;font-weight:600}.modal-header button{background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);transition:var(--transition)}.modal-header button:hover{color:var(--danger)}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:1rem}.profile-content{padding:0 1.5rem 1.5rem}.profile-avatar{display:flex;justify-content:center;margin:-40px 0 1rem}.avatar-circle{width:80px;height:80px;background:var(--primary);color:#fff;font-size:2rem;font-weight:600;display:flex;align-items:center;justify-content:center;border-radius:50%;border:4px solid white;box-shadow:var(--shadow-md)}.profile-info .info-row{display:flex;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border-light)}.info-icon{font-size:1.2rem;width:28px}.info-details strong{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:.2rem}.info-details p{margin:0;font-weight:500}.current-class-info{background:var(--secondary);padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.current-class-info h4{margin:0 0 .75rem;font-size:1rem}.info-row{display:flex;margin-bottom:.4rem;font-size:.9rem}.info-label{width:100px;font-weight:500;color:var(--text-muted)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.3rem;font-weight:500;font-size:.9rem}.form-group input,.form-group textarea{width:100%;padding:.7rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.95rem}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.cancel-btn{background:var(--secondary);border:none;padding:.6rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer}.submit-btn{background:var(--primary);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:var(--transition)}.submit-btn:hover:not(:disabled){background:var(--primary-dark)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}.spinner{width:40px;height:40px;border:4px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@media(max-width:640px){.dashboard-header{flex-direction:column;align-items:stretch;padding:.75rem 1rem;gap:.75rem}.header-left{width:100%}.logo-icon{width:42px;height:42px}.logo-text h1{font-size:1.1rem;white-space:nowrap}.logo-text p{font-size:.7rem;white-space:nowrap}.header-right{width:100%;display:flex;justify-content:space-between;align-items:center}.teacher-badge{flex:1;max-width:calc(100% - 50px);padding:.3rem .6rem .3rem .3rem}.teacher-avatar{width:36px;height:36px;font-size:1rem}.teacher-name{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.teacher-role{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-btn{font-size:2rem;padding:.25rem .5rem;line-height:1}.tab-navigation{padding:.5rem .75rem;gap:.2rem}.tab-btn{padding:.5rem .9rem;font-size:.8rem}.filter-group{min-width:100%}.profile-header{flex-direction:column;text-align:center}.attendance-footer{flex-direction:column;align-items:stretch}.save-btn{width:100%}}@media(max-width:380px){.logo-text p{display:none}.teacher-name{max-width:90px}.teacher-badge{padding:.2rem .5rem .2rem .2rem}}.teacher-timetable{max-width:1200px;margin:0 auto;padding:20px;border-radius:12px;transition:all .3s ease}.teacher-timetable.light{background:#fff;color:#1f2937;box-shadow:0 1px 3px #0000001a}.teacher-timetable.dark{background:#1f2937;color:#f3f4f6;box-shadow:0 1px 3px #0000004d}.timetable-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.dark .timetable-header{border-bottom-color:#374151}.header-left{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.header-left h3{margin:0;font-size:1.5rem;font-weight:600}.today-btn{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.today-btn:hover{background:#2563eb;transform:translateY(-1px)}.month-navigation{display:flex;align-items:center;gap:12px}.month-navigation h4{margin:0;font-size:1.125rem;font-weight:600;min-width:140px;text-align:center}.nav-btn{padding:6px 12px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .2s}.dark .nav-btn{background:#374151;border-color:#4b5563;color:#f3f4f6}.nav-btn:hover{background:#e5e7eb;transform:scale(1.05)}.dark .nav-btn:hover{background:#4b5563}.error-message{background:#fee2e2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.dark .error-message{background:#7f1a1a;color:#fecaca}.error-message button{padding:6px 12px;background:#dc2626;color:#fff;border:none;border-radius:6px;cursor:pointer}.calendar-wrapper{overflow-x:auto;margin-bottom:24px;border-radius:8px;background:inherit}.weekdays-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border-radius:8px 8px 0 0;overflow:hidden}.dark .weekdays-grid{background:#374151}.weekday-cell{padding:12px 8px;text-align:center;font-weight:600;font-size:.875rem;background:#f9fafb;color:#6b7280}.dark .weekday-cell{background:#1f2937;color:#9ca3af}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e5e7eb;border-radius:0 0 8px 8px;overflow:hidden}.dark .calendar-grid{background:#374151}.calendar-day{min-height:100px;padding:8px;background:#fff;cursor:pointer;transition:all .2s;position:relative;display:flex;flex-direction:column;align-items:center}.dark .calendar-day{background:#1f2937}.calendar-day:hover{transform:scale(1.02);box-shadow:0 2px 8px #0000001a;z-index:1}.day-number{font-size:.875rem;font-weight:500;color:#374151;display:inline-block;width:28px;height:28px;line-height:28px;text-align:center;border-radius:50%;margin-bottom:4px}.dark .day-number{color:#e5e7eb}.calendar-day.today .day-number{background:#3b82f6;color:#fff;font-weight:700}.calendar-day.selected{background:#eff6ff;border:2px solid #3b82f6}.dark .calendar-day.selected{background:#1e3a8a;border-color:#60a5fa}.class-badge{font-size:.7rem;padding:2px 6px;background:#ef4444;color:#fff;border-radius:12px;margin-top:4px;display:inline-block;white-space:nowrap}.class-badge-mobile{font-size:.7rem;padding:2px 5px;background:#ef4444;color:#fff;border-radius:50%;min-width:20px;text-align:center;margin-top:4px;display:inline-block}.calendar-day.has-class{background:#fef3c7}.dark .calendar-day.has-class{background:#78350f}.calendar-day.multiple-classes{background:#fed7aa}.dark .calendar-day.multiple-classes{background:#92400e}.calendar-day.heavy-schedule{background:#fecaca}.dark .calendar-day.heavy-schedule{background:#991b1b}.calendar-day.urgent-class{background:#fee2e2;animation:pulse 2s infinite}.dark .calendar-day.urgent-class{background:#7f1a1a}.calendar-day.completed-class{background:#d1fae5}.dark .calendar-day.completed-class{background:#065f46}.calendar-day.no-class{background:#f3f4f6}.dark .calendar-day.no-class{background:#111827}.calendar-day.empty{background:#f9fafb;opacity:.5;cursor:default}.dark .calendar-day.empty{background:#111827}.day-details{margin-top:24px;padding:20px;border-radius:12px;background:#f9fafb;animation:slideUp .3s ease}.dark .day-details{background:#111827}.day-details.empty{text-align:center}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.details-header h4{margin:0;font-size:1.125rem;font-weight:600}.close-details{background:none;border:none;font-size:24px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s}.dark .close-details{color:#f3f4f6}.close-details:hover{background:#e5e7eb}.dark .close-details:hover{background:#374151}.classes-list{display:flex;flex-direction:column;gap:16px}.class-detail-card{display:flex;gap:16px;padding:16px;background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000001a;transition:all .2s}.dark .class-detail-card{background:#1f2937;box-shadow:0 1px 3px #0000004d}.class-detail-card:hover{transform:translate(4px);box-shadow:0 4px 6px #0000001a}.class-time-badge{min-width:100px;padding:8px 12px;background:#eff6ff;border-radius:8px;text-align:center;font-weight:500;font-size:.875rem}.dark .class-time-badge{background:#1e3a8a}.class-info{flex:1}.class-info h5{margin:0 0 8px;font-size:1rem;font-weight:600}.class-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.meta-tag{font-size:.75rem;padding:4px 8px;background:#f3f4f6;border-radius:6px;color:#6b7280}.dark .meta-tag{background:#374151;color:#9ca3af}.meeting-link{display:inline-block;margin-top:8px;padding:6px 12px;background:#3b82f6;color:#fff;text-decoration:none;border-radius:6px;font-size:.75rem;transition:all .2s}.meeting-link:hover{background:#2563eb;transform:translateY(-1px)}.class-status{margin-top:8px}.status-badge{display:inline-block;padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-badge.scheduled{background:#fef3c7;color:#d97706}.dark .status-badge.scheduled{background:#78350f;color:#fbbf24}.status-badge.completed{background:#d1fae5;color:#059669}.dark .status-badge.completed{background:#065f46;color:#34d399}.status-badge.cancelled{background:#fee2e2;color:#dc2626}.dark .status-badge.cancelled{background:#7f1a1a;color:#fecaca}.no-classes-message{padding:40px 20px;text-align:center}.no-classes-message p{font-size:1.125rem;margin-bottom:8px}.no-classes-message small{color:#6b7280}.dark .no-classes-message small{color:#9ca3af}.timetable-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media(max-width:768px){.teacher-timetable{padding:12px}.timetable-header{flex-direction:column;align-items:stretch}.header-left{justify-content:space-between}.header-left h3{font-size:1.25rem}.month-navigation{justify-content:center}.month-navigation h4{min-width:120px;font-size:1rem}.weekday-cell{padding:8px 4px;font-size:.75rem}.calendar-day{min-height:70px;padding:6px 4px}.day-number{width:24px;height:24px;line-height:24px;font-size:.75rem}.class-detail-card{flex-direction:column;gap:12px}.class-time-badge{align-self:flex-start;min-width:auto}.class-meta{flex-direction:column;gap:6px}.meta-tag{width:fit-content}.details-header h4{font-size:1rem}.day-details{padding:16px}}@media(max-width:480px){.calendar-day{min-height:60px}.day-number{width:20px;height:20px;line-height:20px;font-size:.7rem}.class-badge-mobile{font-size:.6rem;padding:2px 4px;min-width:18px}.today-btn{padding:4px 10px;font-size:.75rem}.nav-btn{padding:4px 10px;font-size:.875rem}.class-info h5{font-size:.875rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.modal-content.dark{background:#2c3e50;color:#ecf0f1}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;font-size:1.2rem}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d}.alert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}.alert-modal-container{background:#fff;border-radius:16px;width:90%;max-width:420px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out;overflow:hidden}.alert-modal-header{padding:24px 24px 8px;text-align:center}.alert-icon-wrapper{display:flex;justify-content:center;margin-bottom:12px}.alert-icon{width:56px;height:56px;animation:iconPop .4s cubic-bezier(.68,-.55,.265,1.55)}@keyframes iconPop{0%{transform:scale(0)}80%{transform:scale(1.1)}to{transform:scale(1)}}.alert-icon.success{color:#10b981;filter:drop-shadow(0 4px 8px rgba(16,185,129,.3))}.alert-icon.error{color:#ef4444;filter:drop-shadow(0 4px 8px rgba(239,68,68,.3))}.alert-icon.warning{color:#f59e0b;filter:drop-shadow(0 4px 8px rgba(245,158,11,.3))}.alert-title{margin:0;font-size:20px;font-weight:600;color:#1f2937}.alert-modal-container.success .alert-title{color:#059669}.alert-modal-container.error .alert-title{color:#dc2626}.alert-modal-container.warning .alert-title{color:#d97706}.alert-modal-body{padding:16px 24px}.alert-message{margin:0;color:#4b5563;font-size:15px;line-height:1.6;text-align:center}.alert-modal-footer{padding:16px 24px 24px;background:#f9fafb;border-top:1px solid #e5e7eb}.alert-actions{display:flex;gap:12px;justify-content:center}.alert-btn{flex:1;padding:12px 20px;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;max-width:140px;position:relative;overflow:hidden}.alert-btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.alert-btn:active:before{width:300px;height:300px}.alert-close-btn,.alert-cancel-btn{background:#f3f4f6;color:#4b5563}.alert-close-btn:hover,.alert-cancel-btn:hover{background:#e5e7eb;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.alert-confirm-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #2563eb4d}.alert-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #2563eb66}.alert-modal-container.success .alert-confirm-btn{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.alert-modal-container.success .alert-confirm-btn:hover{box-shadow:0 6px 16px #10b98166}.alert-modal-container.error .alert-confirm-btn{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #ef44444d}.alert-modal-container.error .alert-confirm-btn:hover{box-shadow:0 6px 16px #ef444466}.alert-modal-container.warning .alert-confirm-btn{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b4d}.alert-modal-container.warning .alert-confirm-btn:hover{box-shadow:0 6px 16px #f59e0b66}.alert-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(max-width:480px){.alert-modal-container{width:95%;margin:16px}.alert-modal-header{padding:20px 20px 8px}.alert-modal-body{padding:12px 20px}.alert-modal-footer{padding:12px 20px 20px}.alert-btn{padding:10px 16px;font-size:14px}}.sidebar{position:fixed;left:0;top:0;height:100vh;width:280px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;display:flex;flex-direction:column;box-shadow:4px 0 24px #0000001f;transition:width .3s cubic-bezier(.4,0,.2,1);z-index:100;overflow:hidden}.sidebar.collapsed{width:80px}.sidebar-toggle{position:absolute;right:-12px;top:32px;width:24px;height:24px;background:#fff;border:2px solid #e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .2s ease;z-index:101;padding:0;box-shadow:0 2px 8px #0000001a}.sidebar-toggle:hover{background:#667eea;color:#fff;border-color:#667eea;transform:scale(1.1)}.sidebar-header{padding:32px 20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-profile{display:flex;align-items:center;gap:16px}.admin-avatar{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px #667eea4d;transition:all .3s ease;flex-shrink:0}.sidebar.collapsed .admin-avatar{width:40px;height:40px;border-radius:12px}.admin-avatar span{font-size:22px;font-weight:700;color:#fff}.admin-info{flex:1;min-width:0}.admin-info h2{margin:0 0 4px;font-size:18px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-role{font-size:12px;color:#94a3b8;display:block;text-transform:uppercase;letter-spacing:.5px}.sidebar-nav{flex:1;overflow-y:auto;padding:20px 12px;scrollbar-width:thin;scrollbar-color:#475569 #1e293b}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#1e293b;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#64748b}.sidebar-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.sidebar-link{display:flex;align-items:center;gap:14px;padding:12px 16px;color:#cbd5e1;text-decoration:none;border-radius:12px;transition:all .2s ease;position:relative;white-space:nowrap;font-size:14px;font-weight:500}.sidebar.collapsed .sidebar-link{justify-content:center;padding:12px}.menu-icon{flex-shrink:0;transition:all .2s ease}.sidebar-link:hover{background:#ffffff14;color:#fff}.sidebar-link:hover .menu-icon{transform:translate(2px)}.sidebar-link.active{background:linear-gradient(90deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea66}.active-indicator{position:absolute;right:12px;width:4px;height:4px;background:#fff;border-radius:50%;box-shadow:0 0 8px #ffffff80}.menu-label{flex:1;transition:opacity .2s ease}.sidebar-footer{padding:20px 12px;border-top:1px solid rgba(255,255,255,.1)}.system-status{display:flex;align-items:center;gap:10px;padding:8px 16px;margin-bottom:12px;color:#94a3b8;font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b98199;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:12px;color:#fca5a5;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.sidebar.collapsed .logout-btn{padding:12px;justify-content:center}.logout-btn:hover{background:#ef4444;color:#fff;border-color:#ef4444;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.logout-btn:active{transform:translateY(0)}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.sidebar-link{animation:slideIn .3s ease-out forwards;opacity:0}.sidebar-menu li:nth-child(1) .sidebar-link{animation-delay:.05s}.sidebar-menu li:nth-child(2) .sidebar-link{animation-delay:.1s}.sidebar-menu li:nth-child(3) .sidebar-link{animation-delay:.15s}.sidebar-menu li:nth-child(4) .sidebar-link{animation-delay:.2s}.sidebar-menu li:nth-child(5) .sidebar-link{animation-delay:.25s}.sidebar-menu li:nth-child(6) .sidebar-link{animation-delay:.3s}.sidebar-menu li:nth-child(7) .sidebar-link{animation-delay:.35s}.sidebar-menu li:nth-child(8) .sidebar-link{animation-delay:.4s}.sidebar-menu li:nth-child(9) .sidebar-link{animation-delay:.45s}.sidebar-menu li:nth-child(10) .sidebar-link{animation-delay:.5s}.sidebar-menu li:nth-child(11) .sidebar-link{animation-delay:.55s}.sidebar-menu li:nth-child(12) .sidebar-link{animation-delay:.6s}.sidebar-menu li:nth-child(13) .sidebar-link{animation-delay:.65s}@media(max-width:768px){.sidebar{width:80px}.sidebar:not(.collapsed){width:280px}.sidebar-toggle,.admin-info{display:none}.sidebar:not(.collapsed) .admin-info{display:block}.menu-label{display:none}.sidebar:not(.collapsed) .menu-label{display:inline}.system-status{display:none}.sidebar:not(.collapsed) .system-status{display:flex}}.sidebar.collapsed .sidebar-link:hover:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#1e293b;color:#fff;padding:6px 12px;border-radius:8px;font-size:13px;white-space:nowrap;margin-left:10px;box-shadow:0 4px 12px #0003;z-index:1000;animation:fadeIn .2s ease-out;border:1px solid rgba(255,255,255,.1)}.sidebar.collapsed .sidebar-link:hover:before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#1e293b;margin-left:-2px;z-index:1000}@keyframes fadeIn{0%{opacity:0;transform:translateY(-50%) translate(-10px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.sidebar-menu li{position:relative}.sidebar-link:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:0;height:70%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:0 4px 4px 0;transition:width .2s ease}.sidebar-link:hover:before{width:3px}.sidebar-link.active:before{width:3px}.sidebar *{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.footer{background:#f0f2f5;padding:15px 30px;text-align:center;grid-area:footer;color:#888;font-size:14px}.admin-layout{display:flex;min-height:100vh;background:#f8fafc;position:relative}.content-wrapper{flex:1;margin-left:280px;display:flex;flex-direction:column;min-height:100vh;width:calc(100% - 280px);transition:margin-left .3s cubic-bezier(.4,0,.2,1),width .3s;position:relative;background:inherit}.sidebar.collapsed+.content-wrapper{margin-left:80px;width:calc(100% - 80px)}.top-navbar{position:sticky;top:0;z-index:50;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(226,232,240,.6);transition:all .3s ease,transform .4s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #00000005;flex-shrink:0;gap:20px;transform:translateY(0)}.top-navbar.navbar-hidden{transform:translateY(-100%)}.top-navbar.scrolled{box-shadow:0 4px 12px #0000000a;padding:12px 32px;background:#fffffffa}.navbar-left{display:flex;align-items:center;gap:20px;flex:1;min-width:0}.mobile-menu-btn{display:none;width:40px;height:40px;border-radius:10px;border:none;background:#f1f5f9;color:#64748b;cursor:pointer;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.mobile-menu-btn:hover{background:#e2e8f0;color:#334155}.page-title-section{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.page-title{font-size:26px;font-weight:700;margin:0;line-height:1.2;background:linear-gradient(135deg,#1e293b,#334155);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb .separator{color:#cbd5e1;flex-shrink:0}.breadcrumb .current{color:#667eea;font-weight:500}.navbar-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.datetime-display{display:flex;flex-direction:column;align-items:flex-end;padding:6px 14px;background:#f1f5f9;border-radius:10px;white-space:nowrap}.datetime-display .date{font-size:12px;color:#64748b;font-weight:500}.datetime-display .time{font-size:15px;font-weight:600;color:#1e293b}.search-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;color:#94a3b8;pointer-events:none;z-index:1}.search-input{width:260px;padding:10px 16px 10px 44px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;background:#fff;transition:all .3s ease}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;width:320px}.search-input::placeholder{color:#cbd5e1}.notification-btn{position:relative;width:42px;height:42px;border-radius:12px;border:none;background:#f1f5f9;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.notification-btn:hover{background:#e2e8f0;color:#334155;transform:translateY(-1px)}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;border-radius:9px;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:0 2px 4px #ef44444d}.user-profile{display:flex;align-items:center;gap:12px;padding:6px 12px 6px 8px;background:#f1f5f9;border-radius:40px;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.user-profile:hover{background:#e2e8f0;transform:translateY(-1px)}.user-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 8px #667eea4d;flex-shrink:0}.user-info{display:flex;flex-direction:column}.user-name{font-size:13px;font-weight:600;color:#1e293b;line-height:1.3}.user-role{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.dropdown-icon{color:#94a3b8;transition:transform .2s ease;flex-shrink:0}.user-profile:hover .dropdown-icon{transform:translateY(2px);color:#64748b}.main-content{flex:1 0 auto;padding:24px 32px 0;width:100%;overflow-x:auto;overflow-y:visible;position:relative;z-index:1;background:inherit;transition:margin-top .4s cubic-bezier(.4,0,.2,1)}.content-container{max-width:1600px;margin:0 auto;width:100%;height:100%;min-height:200px;position:relative;z-index:2}.admin-layout .footer{margin-top:auto;flex-shrink:0}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;animation:fadeIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content-container>*{animation:fadeInUp .5s ease-out}@media(max-width:1400px){.datetime-display .date{display:none}.datetime-display{padding:4px 10px}}@media(max-width:1200px){.datetime-display{display:none}.search-input{width:200px}.search-input:focus{width:260px}}@media(max-width:1024px){.top-navbar{padding:16px 20px}.main-content{padding:20px}.user-info{display:none}.user-profile{padding:6px}.dropdown-icon{display:none}.page-title{font-size:22px}}@media(max-width:768px){.content-wrapper{margin-left:0!important;width:100%!important}.mobile-menu-btn{display:flex}.top-navbar{padding:12px 16px;flex-wrap:wrap;gap:12px}.top-navbar.scrolled{padding:10px 16px}.navbar-left{flex:1;min-width:200px}.navbar-right{width:100%;justify-content:space-between}.page-title{font-size:20px}.search-wrapper{flex:1;max-width:300px}.search-input{width:100%}.search-input:focus{width:100%}.datetime-display{display:none}.notification-btn{width:38px;height:38px}.main-content{padding:16px}.sidebar-overlay{display:block}.breadcrumb{display:none}.page-title-section{gap:0}}@media(max-width:480px){.top-navbar{padding:10px 12px}.page-title{font-size:18px}.user-avatar{width:34px;height:34px}.main-content{padding:12px}.search-wrapper{max-width:none}}@media print{.top-navbar,.sidebar,.footer,.sidebar-overlay{display:none!important}.content-wrapper{margin-left:0!important;width:100%!important}.main-content{padding:0}}.content-wrapper{scroll-behavior:smooth}*:focus-visible{outline:2px solid #667eea;outline-offset:2px}.content-wrapper::-webkit-scrollbar{width:8px}.content-wrapper::-webkit-scrollbar-track{background:#f1f5f9}.content-wrapper::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.content-wrapper::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media(prefers-color-scheme:dark){.admin-layout{background:#0f172a}.top-navbar{background:#0f172af2;border-bottom-color:#33415599}.top-navbar.scrolled{background:#0f172afa}.page-title{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.search-input{background:#1e293b;border-color:#334155;color:#e2e8f0}.search-input::placeholder{color:#64748b}.datetime-display,.notification-btn,.user-profile{background:#1e293b;color:#cbd5e1}.datetime-display .time,.user-name{color:#e2e8f0}}.content-container{padding-bottom:20px}.top-navbar>*{flex-shrink:0}.navbar-left{flex-shrink:1}@supports (-webkit-touch-callout: none){.top-navbar{display:-webkit-flex;-webkit-justify-content:space-between;justify-content:space-between}}.admin-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef);padding:24px;box-sizing:border-box}.main-content{max-width:1400px;margin:0 auto}.content-header{margin-bottom:32px}.content-header h1{font-size:32px;font-weight:700;color:#1a202c;margin:0 0 8px;display:flex;align-items:center;gap:12px}.subtitle{font-size:16px;color:#718096;margin:0}.create-class-card{background:#fff;border-radius:24px;padding:28px;margin-bottom:32px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05)}.create-class-card h2{font-size:22px;font-weight:700;color:#1a202c;margin:0 0 24px;display:flex;align-items:center;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.form-group{display:flex;flex-direction:column}.form-group label{font-size:14px;font-weight:600;color:#4a5568;margin-bottom:8px}.form-input,.form-select{padding:12px 14px;font-size:14px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;transition:all .2s ease;box-sizing:border-box;font-family:inherit}.form-input[readonly]{background:#f7fafc;cursor:default}.student-selection-section{margin-bottom:24px;padding:20px;background:#f7fafc;border-radius:16px}.section-label{display:block;font-size:14px;font-weight:600;color:#4a5568;margin-bottom:12px}.basic-multi-select{margin-bottom:16px}.selected-students-display{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.selected-count{display:inline-block;font-size:14px;font-weight:600;color:#10b981;background:#d1fae5;padding:4px 12px;border-radius:20px;margin-bottom:12px}.selected-names{display:flex;flex-wrap:wrap;gap:8px}.student-tag{display:inline-block;padding:6px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:20px;font-size:13px;color:#2d3748;transition:all .2s ease}.student-tag:hover{background:#667eea;color:#fff;border-color:#667eea}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid #e2e8f0}.google-meet-group{flex:1;display:flex;align-items:center;gap:12px;padding:8px 16px;background:#f7fafc;border-radius:12px}.meet-icon{font-size:20px}.meet-link-input{flex:1;padding:10px 0;border:none;background:transparent;font-size:14px;color:#2d3748}.meet-link-input:focus{outline:none}.meet-link-input::placeholder{color:#a0aec0}.action-buttons{display:flex;gap:12px}.btn-cancel{padding:12px 24px;background:#fff;color:#4a5568;border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-create{padding:12px 28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #667eea4d}.btn-create:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-create:disabled{opacity:.6;cursor:not-allowed}.upcoming-classes{background:#fff;border-radius:24px;padding:28px;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.05)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section-header h2{font-size:22px;font-weight:700;color:#1a202c;margin:0;display:flex;align-items:center;gap:8px}.class-count{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:600}.filter-controls{display:flex;gap:16px;margin-bottom:24px}.filter-controls .form-select{min-width:180px}.class-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.class-card{background:#f7fafc;border-radius:16px;padding:20px;transition:all .3s ease;border:1px solid #e2e8f0}.class-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#cbd5e1}.class-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.class-card-subject{font-size:18px;font-weight:700;color:#1a202c}.class-card-level{padding:4px 12px;background:#fff;border-radius:20px;font-size:12px;font-weight:600;color:#4a5568}.class-card-body{margin-bottom:20px}.class-card-body p{margin:8px 0;font-size:14px;color:#4a5568;display:flex;align-items:center;gap:8px}.class-card-body strong{color:#2d3748;min-width:80px}.class-card-footer{display:flex;gap:12px;padding-top:16px;border-top:1px solid #e2e8f0}.btn-join-class{flex:1;padding:10px 16px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;text-decoration:none;text-align:center;border-radius:8px;font-size:14px;font-weight:600;transition:all .2s ease}.btn-join-class:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.btn-edit{flex:1;padding:10px 16px;background:#fff;color:#4a5568;border:1.5px solid #e2e8f0;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-edit:hover{background:#f7fafc;border-color:#667eea;color:#667eea}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:20px;font-weight:600;color:#2d3748;margin:0 0 8px}.empty-state p{font-size:14px;color:#718096;margin:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;animation:fadeIn .3s ease}.success-modal,.reschedule-modal{background:#fff;border-radius:24px;padding:32px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.success-icon{width:64px;height:64px;background:#10b981;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;margin:0 auto 20px}.success-modal h2{font-size:24px;font-weight:700;color:#1a202c;margin:0 0 12px;text-align:center}.success-modal p{font-size:15px;color:#4a5568;margin:0 0 24px;text-align:center;line-height:1.6}.reschedule-modal h2{font-size:22px;font-weight:700;color:#1a202c;margin:0 0 24px}.reschedule-modal .form-group{margin-bottom:20px}.reschedule-modal .action-buttons{padding-top:0;border-top:none}.btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}@media(max-width:1024px){.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.admin-container{padding:16px 12px}.content-header h1{font-size:26px}.subtitle{font-size:14px}.create-class-card{padding:20px 16px}.create-class-card h2{font-size:20px;margin-bottom:20px}.form-grid{grid-template-columns:1fr;gap:16px}.student-selection-section{padding:16px}.form-actions{flex-direction:column;align-items:stretch}.google-meet-group{width:100%}.action-buttons{flex-direction:column}.btn-cancel,.btn-create{width:100%}.upcoming-classes{padding:20px 16px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.filter-controls{flex-direction:column}.filter-controls .form-select{width:100%;min-width:unset}.class-cards-grid{grid-template-columns:1fr}.class-card-footer{flex-direction:column}.success-modal,.reschedule-modal{padding:24px 20px;margin:16px}.success-icon{width:56px;height:56px;font-size:28px}.success-modal h2{font-size:20px}}@media(max-width:480px){.admin-container{padding:12px 8px}.content-header h1{font-size:22px}.create-class-card{padding:16px 12px}.class-card-subject{font-size:16px}.selected-names{max-height:150px;overflow-y:auto}.student-tag{font-size:12px;padding:4px 10px}}@media(min-width:769px)and (max-width:1024px){.admin-container{padding:20px 16px}.class-cards-grid{grid-template-columns:repeat(2,1fr)}}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.375em;border-bottom-right-radius:.375em}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper--header-middle[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper--header-bottom[data-placement^=bottom] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker-popper--header-bottom[data-placement^=top] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select,.react-datepicker__header--middle,.react-datepicker__header--bottom){border-top-right-radius:.3rem}.react-datepicker__header--middle{border-top:1px solid #aeaeae;border-radius:0;margin-top:4px}.react-datepicker__header--bottom{border-bottom:none;border-top:1px solid #aeaeae;border-radius:0 0 .3rem .3rem}.react-datepicker__header-wrapper{position:relative}.react-datepicker__header-wrapper .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:2px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__month-select,.react-datepicker__year-select,.react-datepicker__month-year-select{background-color:transparent;border:1px solid #aeaeae;border-radius:.3rem;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;margin-top:5px;padding:2px 5px}.react-datepicker__month-select:focus-visible,.react-datepicker__year-select:focus-visible,.react-datepicker__month-year-select:focus-visible{outline:auto 1px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.5em;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:5em;margin:2px}.react-datepicker__month{margin:.5em;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:5em;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.375em;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 1.0625em);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.625em;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__children-container{width:17.25em;margin:.5em;padding-right:.25em;padding-left:.25em;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.react-datepicker-popper-offset{margin-top:-.7em}.attendance-container{padding:24px 32px;background:#f0f4f8;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.header-title h2{font-size:28px;font-weight:600;color:#0a1e3c;margin:0 0 4px;letter-spacing:-.5px}.header-subtitle{font-size:14px;color:#5b6e8c;margin:0}.export-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;border:1px solid #e1e8f0;border-radius:12px;font-size:14px;font-weight:500;color:#2c3e50;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #00000005}.export-btn:hover{background:#f8fafd;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 4px 8px #0000000d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:28px}.stat-card{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 12px #00000008;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.stat-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-icon.total{background:#e8f0fe;color:#2a5c9a}.stat-icon.present{background:#e3f7e7;color:#0f7b3a}.stat-icon.absent{background:#fee9e7;color:#b34033}.stat-icon.late{background:#fff4e0;color:#b45b0f}.stat-details{display:flex;flex-direction:column}.stat-label{font-size:13px;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.stat-value{font-size:28px;font-weight:600;color:#0a1e3c;line-height:1.2}.filters-card{background:#fff;border-radius:20px;padding:24px;margin-bottom:24px;box-shadow:0 4px 16px #00000008}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.filters-header h3{font-size:18px;font-weight:600;color:#1e2b3c;margin:0}.clear-filters{background:none;border:1px solid #e2e8f0;padding:6px 14px;border-radius:30px;font-size:13px;color:#64748b;cursor:pointer;transition:all .2s ease}.clear-filters:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}.filters-grid{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:16px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:8px;min-width:0}.filter-group label{font-size:13px;font-weight:600;color:#334155;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;position:relative;padding-left:24px}.teacher-label:before,.student-label:before,.date-label:before{content:"";font-size:16px;position:absolute;left:0;top:50%;transform:translateY(-50%)}.teacher-label:before{content:"👤"}.student-label:before{content:"👤"}.date-label:before{content:"📅"}.custom-select{width:100%;padding:12px 40px 12px 16px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px;color:#1e293b;background:#fff;transition:all .2s ease;cursor:pointer;height:46px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.custom-select:hover{border-color:#cbd5e1}.custom-select:focus{outline:none;border-color:#1a2b4c;box-shadow:0 0 0 3px #1a2b4c1a}.date-input{width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px;color:#1e293b;background:#fff;transition:all .2s ease;height:46px;font-family:Inter,sans-serif}.date-input:hover{border-color:#cbd5e1}.date-input:focus{outline:none;border-color:#1a2b4c;box-shadow:0 0 0 3px #1a2b4c1a}.date-input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer;padding:4px}.date-input::-webkit-calendar-picker-indicator:hover{opacity:1}.filter-actions{display:flex;align-items:center}.fetch-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 28px;background:#1a2b4c;border:none;border-radius:12px;font-size:15px;font-weight:500;color:#fff;cursor:pointer;transition:all .2s ease;white-space:nowrap;height:46px;box-shadow:0 4px 12px #1a2b4c33;min-width:140px}.fetch-btn:hover:not(:disabled){background:#0f1e3c;transform:translateY(-1px);box-shadow:0 6px 16px #1a2b4c40}.fetch-btn:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.btn-icon{font-size:16px}.active-filters{margin-top:20px;padding-top:16px;border-top:1px solid #edf2f7;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.active-filter-label{font-size:13px;color:#64748b;font-weight:500}.active-filter-tag{background:#f1f5f9;padding:6px 14px;border-radius:30px;font-size:13px;color:#334155;display:inline-flex;align-items:center;gap:6px}.results-card{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 16px #00000008}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.results-header h3{font-size:18px;font-weight:600;color:#1e2b3c;margin:0}.results-count{font-size:14px;color:#64748b;background:#f8fafc;padding:6px 14px;border-radius:30px}.table-container{overflow-x:auto;border-radius:14px;border:1px solid #edf2f7}.attendance-table{width:100%;border-collapse:collapse;font-size:14px;min-width:1000px}.attendance-table th{text-align:left;padding:16px 20px;background:#f8fafc;color:#334155;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #e2e8f0}.attendance-table td{padding:16px 20px;border-bottom:1px solid #edf2f7;color:#1e293b;vertical-align:middle}.attendance-table tr:hover td{background:#fafcff}.date-cell{display:flex;align-items:center;gap:8px;color:#2c3e50}.date-icon{font-size:14px;opacity:.7}.class-cell{background:#f1f5f9;padding:4px 10px;border-radius:30px;font-size:13px;font-weight:500;color:#334155;display:inline-block}.subject-cell{font-weight:500;color:#1e2b3c}.teacher-cell{color:#2c3e50}.student-cell{display:flex;align-items:center;gap:10px;font-weight:500;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-avatar{width:32px;height:32px;border-radius:32px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;text-transform:uppercase;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.status-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:30px;font-size:13px;font-weight:500;text-transform:capitalize;box-shadow:0 2px 4px #0000000d}.status-badge.present{background:linear-gradient(135deg,#e3f7e7,#c8eed0);color:#0f7b3a;border:1px solid #a8e0b5}.status-badge.absent{background:linear-gradient(135deg,#fee9e7,#fdd8d4);color:#b34033;border:1px solid #fbb5ae}.status-badge.late{background:linear-gradient(135deg,#fff4e0,#ffe9c2);color:#b45b0f;border:1px solid #ffd9a3}.remarks-cell{color:#64748b;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{text-align:center;padding:60px 20px;background:#f8fafc;border-radius:12px}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h4{font-size:18px;color:#1e2b3c;margin:0 0 8px;font-weight:600}.empty-state p{font-size:14px;color:#64748b;max-width:400px;margin:0 auto}.working-hours-card{background:linear-gradient(135deg,#1a2b4c,#2c3e6e);border-radius:16px;padding:20px 24px;margin-bottom:28px;display:flex;align-items:center;gap:20px;box-shadow:0 8px 24px #1a2b4c33;color:#fff}.working-hours-icon{font-size:32px;background:#ffffff26;width:60px;height:60px;border-radius:30px;display:flex;align-items:center;justify-content:center}.working-hours-content{flex:1}.working-hours-label{font-size:14px;opacity:.9;display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.working-hours-value{font-size:32px;font-weight:600;display:block;margin-bottom:4px}.working-hours-note{font-size:12px;opacity:.7;display:block}@media(max-width:1400px){.filters-grid{grid-template-columns:repeat(4,1fr)}.filter-actions{grid-column:span 4;justify-content:flex-end;margin-top:8px}}@media(max-width:1200px){.filters-grid{grid-template-columns:repeat(3,1fr)}.filter-actions{grid-column:span 3}}@media(max-width:900px){.filters-grid{grid-template-columns:repeat(2,1fr)}.filter-actions{grid-column:span 2}}@media(max-width:600px){.attendance-container{padding:16px}.header-section{flex-direction:column;align-items:flex-start;gap:16px}.filters-grid{grid-template-columns:1fr;gap:12px}.filter-actions{grid-column:span 1;margin-top:4px}.fetch-btn{width:100%}.stats-grid{grid-template-columns:1fr 1fr}}.spinner{width:18px;height:18px;border:2px solid #ffffff;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.loading-spinner-small{display:inline-block;width:12px;height:12px;border:2px solid #94a3b8;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-left:6px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:24px}.pagination-btn{width:40px;height:40px;border:2px solid #e2e8f0;background:#fff;border-radius:10px;color:#475569;cursor:pointer;font-size:16px;transition:all .2s;display:flex;align-items:center;justify-content:center}.pagination-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.page-numbers{display:flex;gap:4px;margin:0 12px}.page-number{min-width:40px;height:40px;padding:0 8px;border:2px solid #e2e8f0;background:#fff;border-radius:10px;color:#475569;cursor:pointer;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center}.page-number:hover{background:#f1f5f9;border-color:#cbd5e1}.page-number.active{background:#1a2b4c;border-color:#1a2b4c;color:#fff}.table-footer{text-align:center;color:#64748b;font-size:14px;margin-top:16px}.reports-container{padding:2rem;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.reports-header{margin-bottom:2rem;text-align:center}.reports-title{font-size:2rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}.reports-subtitle{color:#475569;font-size:.95rem}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto}.report-card{background:#fff;border-radius:1rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;overflow:hidden;transition:transform .2s,box-shadow .2s}.report-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.card-header{background:#f1f5f9;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.75rem}.step-number{width:32px;height:32px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;box-shadow:0 2px 4px #3b82f633}.card-title{font-size:1.125rem;font-weight:600;color:#0f172a!important;margin:0}.card-content{padding:1.5rem}.form-input,.form-select{width:100%;padding:.625rem .875rem;border:1px solid #cbd5e1;border-radius:.5rem;font-size:.875rem;transition:all .2s;background:#fff;color:#0f172a}.form-input::placeholder{color:#94a3b8}.form-input:focus,.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input:hover,.form-select:hover{border-color:#94a3b8}.filters-grid{display:flex;flex-direction:column;gap:1.25rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#475569}.react-select-container{width:100%}.react-select__control{border:1px solid #cbd5e1!important;border-radius:.5rem!important;min-height:40px!important;transition:all .2s!important;background-color:#fff!important}.react-select__control:hover{border-color:#94a3b8!important}.react-select__control--is-focused{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61a!important}.react-select__value-container{padding:.25rem .5rem!important}.react-select__input-container,.react-select__single-value{color:#0f172a!important}.react-select__placeholder{color:#94a3b8!important}.react-select__indicator-separator{background-color:#cbd5e1!important}.react-select__dropdown-indicator{color:#64748b!important}.react-select__menu{border-radius:.5rem!important;overflow:hidden!important;box-shadow:0 10px 15px -3px #0000001a!important;background-color:#fff!important}.react-select__menu-list{background-color:#fff!important}.react-select__option{padding:.625rem .875rem!important;color:#0f172a!important}.react-select__option--is-focused{background-color:#eff6ff!important;color:#0f172a!important}.react-select__option--is-selected{background-color:#3b82f6!important;color:#fff!important}.btn-clear{background:#fff;border:1px solid #cbd5e1;border-radius:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.btn-clear:hover{background:#fef2f2;border-color:#fecaca;color:#dc2626}.btn-clear svg{stroke:currentColor}.export-options{display:flex;flex-direction:column;gap:1.5rem}.export-type-group{display:flex;flex-direction:column;gap:.75rem}.format-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.format-btn{padding:.625rem;border:2px solid #cbd5e1;background:#fff;border-radius:.5rem;font-size:.875rem;font-weight:600;color:#475569;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.format-btn svg{stroke:currentColor}.format-btn:hover{border-color:#64748b;color:#0f172a;background:#f8fafc}.format-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 2px 4px #3b82f633}.btn-generate{background:#10b981;color:#fff;border:none;border-radius:.5rem;padding:.875rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%}.btn-generate:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 6px -1px #10b9814d}.btn-generate:active{transform:translateY(0)}@media(max-width:768px){.reports-container{padding:1rem}.reports-title{font-size:1.5rem}.reports-grid{grid-template-columns:1fr;gap:1rem}.card-header,.card-content{padding:1rem}.format-buttons{grid-template-columns:1fr}}.student-registration-wrapper{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:20px}.student-registration-container{max-width:800px;width:100%;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;padding:40px}.registration-header{text-align:center;margin-bottom:30px}.header-icon{width:80px;height:80px;margin:0 auto 20px}.header-icon img{width:100%;height:100%;object-fit:contain;border-radius:50%}.registration-header h2{color:#333;font-size:28px;margin-bottom:8px}.subtitle{color:#666;font-size:16px;margin-bottom:15px}.approval-note{background:#fff3cd;color:#856404;padding:10px 20px;border-radius:20px;display:inline-flex;align-items:center;gap:8px;font-size:14px}.form-section{margin-bottom:30px;padding:20px;background:#f8f9fa;border-radius:12px}.section-title h3{color:#333;font-size:18px;margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#555;font-weight:500;font-size:14px}.required{color:#dc3545;margin-left:4px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.error-input{border-color:#dc3545!important}.error-message{color:#dc3545;font-size:12px;margin-top:5px;display:block}.hint{color:#666;font-size:12px;margin-top:5px;display:block}.privacy-section{margin:20px 0}.privacy-notice{display:flex;align-items:flex-start;gap:10px;padding:15px;background:#e3f2fd;border-radius:8px;margin-bottom:20px}.privacy-icon{font-size:20px}.privacy-notice p{margin:0;color:#1565c0;font-size:14px}.consent-wrapper{margin-top:15px}.checkbox-label{display:flex;align-items:center;cursor:pointer;position:relative;padding-left:35px;-webkit-user-select:none;user-select:none}.checkbox-label input{position:absolute;opacity:0;cursor:pointer}.checkmark{position:absolute;left:0;height:22px;width:22px;background-color:#fff;border:2px solid #667eea;border-radius:4px}.checkbox-label input:checked~.checkmark{background-color:#667eea}.checkmark:after{content:"";position:absolute;display:none;left:7px;top:3px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.consent-text{color:#333;font-size:14px}.firebase-error{background:#f8d7da;color:#721c24;padding:12px;border-radius:8px;margin:20px 0;display:flex;align-items:center;gap:10px}.form-actions{display:flex;gap:15px;margin-top:30px}.btn-submit{flex:1;padding:14px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-submit:hover:not(:disabled){background:#5a67d8}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{padding:14px 30px;background:#6c757d;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}.btn-cancel:hover{background:#5a6268}.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}.login-link{text-align:center;margin-top:20px;color:#666}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.success-modal{background:#fff;border-radius:20px;padding:40px;max-width:500px;width:90%;text-align:center}.success-icon{width:80px;height:80px;margin:0 auto 20px;background:#28a745;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.verification-message{background:#e3f2fd;padding:20px;border-radius:12px;margin:20px 0}.verification-message h3{color:#1565c0;margin-bottom:10px}.spam-note{color:#f57c00;font-size:14px;margin-top:10px}.approval-message{margin:20px 0}.pending-badge{background:#fff3cd;color:#856404;padding:10px;border-radius:20px;font-weight:600;margin-bottom:10px}.small-text{color:#666;font-size:14px}.modal-actions{display:flex;gap:15px;margin-top:30px}.btn-primary,.btn-secondary{flex:1;padding:12px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a67d8}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:999}.loader{width:50px;height:50px;border:5px solid #f3f3f3;border-radius:50%;border-top:5px solid #667eea;animation:spin 1s linear infinite}@media(max-width:768px){.student-registration-container{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.form-actions,.modal-actions{flex-direction:column}.registration-header h2{font-size:24px}}.teacher-registration-wrapper{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.teacher-registration-container{background:#fff;border-radius:20px;padding:32px;width:100%;max-width:800px;box-shadow:0 20px 60px #00000026;box-sizing:border-box}.registration-header{text-align:center;margin-bottom:32px;display:flex;flex-direction:column;align-items:center}.header-icon,.header-icon img{display:none}.registration-header h2{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 8px;width:100%;text-align:center}.subtitle{font-size:16px;color:#718096;margin:0 0 16px;width:100%;text-align:center}.approval-note{background:#fef3c7;border-radius:24px;padding:10px 20px;display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#92400e;margin:0 auto}.form-section{margin-bottom:28px;padding:24px;background:#f7fafc;border-radius:16px}.section-title{display:flex;align-items:center;gap:10px;margin-bottom:20px}.section-icon{font-size:24px}.section-title h3{font-size:18px;font-weight:600;color:#2d3748;margin:0}.form-group{margin-bottom:20px;width:100%}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:14px;font-weight:500;color:#4a5568;margin-bottom:8px}.form-group input,.form-group select{width:100%;padding:12px 16px;font-size:15px;border:1.5px solid #e2e8f0;border-radius:8px;background:#fff;transition:all .2s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:0}.form-row .form-group{margin-bottom:0}.error-input{border-color:#e53e3e!important}.error-message{display:block;font-size:13px;color:#e53e3e;margin-top:6px}.hint{display:block;font-size:13px;color:#718096;margin-top:6px}.privacy-section{margin-bottom:24px}.privacy-notice{background:#ebf8ff;border-radius:10px;padding:16px;display:flex;gap:14px;margin-bottom:20px}.privacy-icon{font-size:24px;flex-shrink:0}.privacy-notice p{font-size:14px;color:#2c5282;margin:0;line-height:1.6}.consent-wrapper{padding:10px 0}.checkbox-label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:15px;color:#4a5568;position:relative;padding-left:32px}.checkbox-label input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;left:0;top:2px;height:20px;width:20px;background-color:#fff;border:2px solid #cbd5e0;border-radius:4px;transition:all .2s ease}.checkbox-label input:checked~.checkmark{background-color:#667eea;border-color:#667eea}.checkmark:after{content:"";position:absolute;display:none;left:6px;top:2px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label input:checked~.checkmark:after{display:block}.consent-text{line-height:1.5}.privacy-link{color:#667eea;text-decoration:underline;cursor:pointer;font-weight:500}.privacy-link:hover{color:#5a67d8}.firebase-error{background:#fed7d7;color:#c53030;padding:14px;border-radius:8px;font-size:14px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.error-icon{font-size:18px}.form-actions{display:flex;gap:16px;margin-bottom:20px}.btn-submit,.btn-cancel{padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-submit{flex:2;background:#667eea;color:#fff}.btn-submit:hover:not(:disabled){background:#5a67d8;transform:translateY(-2px);box-shadow:0 6px 20px #667eea4d}.btn-submit:disabled{opacity:.7;cursor:not-allowed}.btn-cancel{flex:1;background:#fff;color:#4a5568;border:1.5px solid #e2e8f0}.btn-cancel:hover{background:#f7fafc}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite;margin-right:10px}.login-link{text-align:center;font-size:15px;color:#718096}.login-link a{color:#667eea;text-decoration:none;font-weight:600}.login-link a:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.success-modal{background:#fff;border-radius:24px;padding:36px 32px;width:100%;max-width:480px;text-align:center;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-icon{width:80px;height:80px;background:#48bb78;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff}.success-modal h2{font-size:26px;color:#1a202c;margin:0 0 12px}.success-modal>p{color:#718096;margin:0 0 24px;font-size:16px}.verification-message{background:#ebf8ff;border-radius:12px;padding:20px;margin-bottom:20px;text-align:left}.verification-message h3{font-size:18px;color:#2c5282;margin:0 0 16px}.verification-message p{margin:10px 0;color:#2d3748;font-size:15px}.spam-note{color:#e53e3e!important;font-size:14px!important}.approval-message{text-align:center;margin-bottom:24px}.pending-badge{background:#fef3c7;color:#92400e;padding:10px 20px;border-radius:24px;display:inline-block;font-weight:600;font-size:15px;margin-bottom:12px}.small-text{font-size:14px;color:#718096;margin:0}.modal-actions{display:flex;gap:16px}.modal-actions .btn-primary,.modal-actions .btn-secondary{flex:1;padding:14px 20px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all .2s ease}.modal-actions .btn-primary{background:#667eea;color:#fff}.modal-actions .btn-primary:hover{background:#5a67d8}.modal-actions .btn-secondary{background:#fff;color:#4a5568;border:1.5px solid #e2e8f0}.modal-actions .btn-secondary:hover{background:#f7fafc}@media(max-width:640px){.teacher-registration-wrapper{padding:12px;align-items:flex-start}.teacher-registration-container{padding:20px 16px;max-width:100%;margin:0 auto}.registration-header{margin-bottom:24px}.header-icon,.header-icon img{display:none}.registration-header h2{font-size:22px;margin-bottom:6px;text-align:center}.subtitle{font-size:14px;margin-bottom:12px;text-align:center}.approval-note{font-size:13px;padding:8px 16px;margin:0 auto}.form-section{padding:16px;margin-bottom:20px}.section-title{margin-bottom:16px}.section-icon{font-size:20px}.section-title h3{font-size:16px}.form-row{grid-template-columns:1fr;gap:16px}.form-group{margin-bottom:16px}.form-group label{font-size:13px;margin-bottom:6px}.form-group input,.form-group select{padding:11px 14px;font-size:14px}.form-actions{flex-direction:column;gap:12px}.btn-submit,.btn-cancel{width:100%;padding:13px 20px;font-size:15px}.privacy-notice{padding:12px}.privacy-notice p{font-size:13px}.checkbox-label{font-size:14px}.success-modal{padding:24px 20px;margin:16px}.success-icon{width:60px;height:60px;margin-bottom:20px}.success-icon svg{width:32px;height:32px}.success-modal h2{font-size:20px}.verification-message{padding:16px}.verification-message h3{font-size:16px}.modal-actions{flex-direction:column;gap:12px}input,select,button{font-size:16px!important}}@media(min-width:641px)and (max-width:768px){.teacher-registration-container{max-width:700px;padding:28px}.form-row{gap:16px}}@media(max-width:380px){.teacher-registration-container{padding:16px 12px}.registration-header h2{font-size:20px}.subtitle{font-size:13px}.approval-note{font-size:12px;padding:6px 12px}.form-section{padding:14px}}.teacher-management-container{padding:24px;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.dashboard-title{font-size:32px;font-weight:700;color:#1e293b;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-subtitle{color:#64748b;font-size:16px;margin:0}.teacher-count{background:#f1f5f9;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:500;color:#475569}.teacher-table{width:100%;border-collapse:separate;border-spacing:0}.teacher-table thead tr{background:#f8fafc}.teacher-table th{padding:16px;text-align:left;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;border-bottom:2px solid #e2e8f0}.teacher-table td{padding:16px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:14px}.teacher-name-cell{display:flex;align-items:center;gap:12px}.teacher-avatar-small{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;box-shadow:0 4px 8px #667eea33}.teacher-avatar-small.disabled{background:linear-gradient(135deg,#94a3b8,#64748b);box-shadow:0 4px 8px #64748b33}.subject-badge{background:#e0e7ff;color:#4f46e5;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.subject-badge.disabled{background:#f1f5f9;color:#64748b}.status-badge{padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500;display:inline-block}.meet-link{color:#3b82f6;text-decoration:none;font-weight:500;padding:6px 12px;background:#eff6ff;border-radius:8px;transition:all .2s ease}.meet-link:hover{background:#dbeafe;color:#2563eb}.not-set{color:#94a3b8;font-style:italic}.date-cell{display:flex;align-items:center;gap:8px;color:#64748b}.days-badge{padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600}.days-badge.normal{background:#dcfce7;color:#16a34a}.days-badge.warning{background:#fef3c7;color:#d97706}.days-badge.critical{background:#fee2e2;color:#dc2626}.btn-status{background:#f59e0b;color:#fff}.btn-status:hover{background:#d97706;transform:translateY(-1px);box-shadow:0 4px 8px #f59e0b4d}.btn-status.enable{background:#10b981}.btn-status.enable:hover{background:#059669;box-shadow:0 4px 8px #10b9814d}.btn-delete{background:#ef4444;color:#fff}.btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.btn-enable{background:#10b981;color:#fff}.btn-enable:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.modal-body{padding:24px}.teacher-info-card{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:24px}.teacher-avatar{width:60px;height:60px;border-radius:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;box-shadow:0 4px 12px #667eea4d}.teacher-info h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#1e293b}.teacher-subject{color:#64748b;font-size:14px}.meet-link-input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;transition:all .3s ease}.meet-link-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.input-hint{display:block;margin-top:6px;font-size:12px;color:#94a3b8}@media(max-width:768px){.teacher-management-container{padding:16px}.dashboard-title{font-size:24px}.section-card{padding:16px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.action-buttons{flex-direction:column}.action-buttons button{width:100%;justify-content:center}.teacher-table{font-size:13px}.teacher-table th,.teacher-table td{padding:12px 8px}}.student-management-container{padding:24px;max-width:1400px;margin:0 auto;background:#f8fafc;min-height:100vh}.dashboard-header{margin-bottom:32px;animation:fadeInDown .5s ease-out}.dashboard-title{font-size:32px;font-weight:700;color:#1e293b;margin:0 0 8px;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.title-icon{width:36px;height:36px;color:#667eea;-webkit-text-fill-color:#667eea}.dashboard-subtitle{color:#64748b;font-size:16px;margin:0 0 0 48px}.section-card{background:#fff;border-radius:20px;padding:24px;margin-bottom:32px;box-shadow:0 2px 12px #0000000a;animation:fadeInUp .5s ease-out;transition:all .3s ease}.section-card:hover{box-shadow:0 8px 24px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f1f5f9}.section-title-wrapper{display:flex;align-items:center;gap:12px}.section-icon{width:28px;height:28px;color:#667eea}.section-header h2{font-size:20px;font-weight:600;color:#334155;margin:0}.student-count{background:#f1f5f9;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:500;color:#475569}.search-bar-wrapper{position:relative;margin-bottom:24px}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#94a3b8;width:20px;height:20px}.search-input{width:100%;padding:14px 16px 14px 48px;border:2px solid #e2e8f0;border-radius:12px;font-size:15px;transition:all .3s ease;background:#fafbfc}.search-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 3px #667eea1a}.table-wrapper{overflow-x:auto;border-radius:12px;margin-bottom:20px}.student-table{width:100%;border-collapse:separate;border-spacing:0}.student-table thead tr{background:#f8fafc}.student-table th{padding:16px;text-align:left;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;border-bottom:2px solid #e2e8f0}.student-table td{padding:16px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:14px}.table-row{transition:all .2s ease}.table-row:hover{background:#fafbfc}.serial-number{font-weight:600;color:#667eea}.student-name-cell{display:flex;align-items:center;gap:12px}.student-avatar-small{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;box-shadow:0 4px 8px #f59e0b33}.student-avatar-small.approved{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 8px #10b98133}.email-cell,.phone-cell,.year-cell{display:flex;align-items:center;gap:8px;color:#64748b}.email-cell svg,.phone-cell svg,.year-cell svg{flex-shrink:0}.class-badge{display:inline-flex;align-items:center;gap:6px;background:#e0e7ff;color:#4f46e5;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.status-badge.active{background:#dcfce7;color:#16a34a}.status-badge.inactive{background:#fee2e2;color:#dc2626}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.action-buttons button{padding:8px 12px;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease}.btn-approve:hover{background:#059669;transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.btn-reject:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.btn-edit{background:#3b82f6;color:#fff}.btn-edit:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f64d}.btn-disable{background:#f59e0b;color:#fff}.btn-disable:hover{background:#d97706;transform:translateY(-1px);box-shadow:0 4px 8px #f59e0b4d}.pagination-wrapper{display:flex;justify-content:center;gap:8px;margin-top:24px}.pagination-btn{width:40px;height:40px;border:2px solid #e2e8f0;background:#fff;border-radius:10px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s ease}.pagination-btn:hover{border-color:#667eea;color:#667eea}.pagination-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.empty-state{text-align:center;padding:48px 24px;color:#94a3b8}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{font-size:18px;font-weight:500;margin:8px 0;color:#64748b}.empty-state span{font-size:14px}.loading-state{text-align:center;padding:48px 24px}.spinner{width:40px;height:40px;border:4px solid #f1f5f9;border-top-color:#667eea;border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}.loading-state p{color:#64748b;font-size:14px}.student-info-card{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:24px}.student-avatar-large{width:60px;height:60px;border-radius:15px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;box-shadow:0 4px 12px #10b9814d}.student-info h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#1e293b}.student-email{color:#64748b;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#334155;font-size:14px}.form-input,.form-select{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;transition:all .3s ease;background:#fff}.form-input:focus,.form-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.consent-section{margin-top:24px;padding-top:20px;border-top:2px solid #f1f5f9}.consent-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;font-size:14px;font-weight:500;margin-top:8px}.consent-badge.given{background:#dcfce7;color:#16a34a}.consent-badge.not-given{background:#fef3c7;color:#d97706}.btn-primary,.btn-secondary{flex:1;padding:12px 20px;border:none;border-radius:10px;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-secondary:hover{background:#e2e8f0;transform:translateY(-1px)}@media(max-width:768px){.student-management-container{padding:16px}.dashboard-title{font-size:24px}.dashboard-subtitle{margin-left:0;margin-top:8px}.section-card{padding:16px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.action-buttons{flex-direction:column}.action-buttons button{width:100%;justify-content:center}.student-table{font-size:13px}.student-table th,.student-table td{padding:12px 8px}}.reschedule-requests-container{padding:24px;max-width:1600px;margin:0 auto;background:#f8fafc;min-height:100vh}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.loading-spinner{color:#667eea;animation:spin 1s linear infinite}.loading-container p{color:#64748b;font-size:16px}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;animation:fadeInDown .5s ease-out}.header-content{flex:1}.header-title-wrapper{display:flex;align-items:center;gap:12px;margin-bottom:8px}.header-icon{width:32px;height:32px;color:#667eea}.dashboard-header h1{font-size:32px;font-weight:700;margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-subtitle{color:#64748b;font-size:16px;margin:0 0 0 44px}.request-stats{margin-top:8px}.stats-badge{display:inline-flex;align-items:center;gap:8px;background:#fef3c7;color:#d97706;padding:10px 20px;border-radius:30px;font-weight:600;font-size:16px;box-shadow:0 2px 8px #f59e0b26}.empty-state-card{background:#fff;border-radius:20px;padding:64px 32px;box-shadow:0 2px 12px #0000000a;animation:fadeInUp .5s ease-out}.empty-state-content{text-align:center;max-width:400px;margin:0 auto}.empty-icon-wrapper{width:120px;height:120px;margin:0 auto 24px;background:linear-gradient(135deg,#10b98110,#05966910);border-radius:60px;display:flex;align-items:center;justify-content:center}.empty-icon-wrapper svg{color:#10b981}.empty-state-content h3{font-size:24px;font-weight:600;color:#1e293b;margin:0 0 12px}.empty-state-content p{font-size:16px;color:#64748b;margin:0 0 8px}.empty-hint{font-size:14px;color:#94a3b8}.requests-table-wrapper{background:#fff;border-radius:20px;padding:4px;box-shadow:0 2px 12px #0000000a;overflow-x:auto;animation:fadeInUp .5s ease-out}.requests-table{width:100%;border-collapse:separate;border-spacing:0}.requests-table thead tr{background:#f8fafc;border-bottom:2px solid #e2e8f0}.requests-table th{padding:18px 16px;text-align:left;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;white-space:nowrap}.requests-table th svg{margin-right:6px;vertical-align:middle}.requests-table td{padding:20px 16px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:14px}.request-row{transition:all .2s ease}.request-row:hover{background:#fafbfc}.student-info-cell,.teacher-info-cell{display:flex;align-items:center;gap:12px}.student-avatar,.teacher-avatar{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff;box-shadow:0 4px 8px #0000001a}.student-avatar{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 8px #f59e0b33}.teacher-avatar{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 8px #3b82f633}.student-name{font-size:14px;font-weight:400;line-height:normal;color:#1e293b}.class-badge{display:inline-block;background:#e0e7ff;color:#4f46e5;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500}.datetime-cell{display:flex;align-items:center;gap:8px;font-size:13px}.datetime-cell.old{color:#64748b}.datetime-cell.new{color:#10b981;font-weight:500}.arrow-icon{color:#10b981}.reason-cell{display:flex;align-items:flex-start;gap:8px;max-width:250px}.reason-cell svg{flex-shrink:0;margin-top:2px;color:#94a3b8}.reason-cell span{color:#475569;line-height:1.5}.action-buttons{display:flex;gap:8px}.action-buttons button{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;white-space:nowrap}.btn-approve{background:#10b981;color:#fff}.btn-approve:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.btn-approve:disabled{opacity:.6;cursor:not-allowed}.btn-reject{background:#ef4444;color:#fff}.btn-reject:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.btn-reject:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:20px;width:90%;max-width:500px;max-height:90vh;overflow:hidden;animation:slideUp .3s ease-out;box-shadow:0 20px 40px #0003}.modal-header{padding:24px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #f1f5f9}.modal-header-content{display:flex;align-items:center;gap:12px}.modal-icon{width:24px;height:24px;color:#f59e0b}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1e293b}.modal-close{width:32px;height:32px;border-radius:8px;border:none;background:#f1f5f9;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#64748b}.modal-close:hover{background:#e2e8f0;color:#334155}.modal-body{padding:24px;max-height:calc(90vh - 140px);overflow-y:auto}.conflict-warning{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fef3c7;border:1px solid #fbbf24;border-radius:10px;color:#d97706;margin-bottom:24px;font-size:14px}.time-selection-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.form-group{margin-bottom:0}.form-group label{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-weight:500;color:#334155;font-size:14px}.form-input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;transition:all .3s ease;background:#fff}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.time-preview{padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:8px}.preview-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;margin-bottom:8px}.datetime-preview{color:#10b981;font-weight:500;font-size:15px}.preview-placeholder{color:#94a3b8;font-style:italic}.modal-actions{padding:20px 24px 24px;display:flex;gap:12px;background:#f8fafc;border-top:2px solid #f1f5f9}.btn-primary,.btn-secondary{flex:1;padding:12px 20px;border:none;border-radius:10px;font-weight:500;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#f1f5f9;color:#64748b}.btn-secondary:hover:not(:disabled){background:#e2e8f0;transform:translateY(-1px)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.spinner-icon{animation:spin 1s linear infinite}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:1024px){.requests-table-wrapper{overflow-x:auto}.requests-table{min-width:1200px}}@media(max-width:768px){.reschedule-requests-container{padding:16px}.dashboard-header{flex-direction:column;gap:16px}.dashboard-header h1{font-size:24px}.header-subtitle{margin-left:0;margin-top:8px}.time-selection-wrapper{grid-template-columns:1fr}.action-buttons{flex-direction:column}.action-buttons button{width:100%;justify-content:center}}*{box-sizing:border-box;margin:0}body{margin:0;background:#f1f5f9;font-family:Inter,system-ui,-apple-system,sans-serif}:root{--primary: #1e293b;--primary-light: #334155;--accent: #3b82f6;--positive: #10b981;--negative: #ef4444;--bg-light: #f8fafc;--border: #e2e8f0;--shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius: 16px;--radius-sm: 10px}.fees-view-container{max-width:1280px;margin:2rem auto;padding:0 2rem}.fees-view-header{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;background:#fff;padding:1.5rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.fees-view-header h2{margin:0 auto 0 0;color:var(--primary);font-weight:600;font-size:1.6rem;letter-spacing:-.02em;background:linear-gradient(135deg,var(--primary) 0%,#0f172a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fees-view-header input,.fees-view-header select{padding:.7rem 1.2rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;background-color:#fff;transition:all .2s ease;min-width:220px;font-family:inherit}.fees-view-header input:focus,.fees-view-header select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #3b82f626}.fees-view-header button{padding:.7rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:background .2s,transform .1s,box-shadow .2s;font-size:.95rem;font-family:inherit;box-shadow:0 2px 4px #0000000d}.fees-view-header button:hover{background:var(--primary-light);box-shadow:0 4px 6px #0000001a}.fees-view-header button:active{transform:scale(.97)}.fees-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border);margin-bottom:2rem}.fees-table thead tr{background:var(--primary)}.fees-table th{padding:1.2rem 1.8rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#e2e8f0;border-bottom:2px solid rgba(255,255,255,.1)}.fees-table td{padding:1.2rem 1.8rem;border-bottom:1px solid var(--border);color:#1e293b;font-size:1rem;background-color:#fff}.fees-table tbody tr{transition:background-color .2s}.fees-table tbody tr:hover{background-color:#f8fafc}.fees-table tbody tr:last-child td{border-bottom:none}.fees-table td.balance-positive{color:var(--positive)!important;font-weight:700;font-size:1.05rem}.fees-table td.balance-negative{color:var(--negative)!important;font-weight:700;font-size:1.05rem}.fees-table tbody tr:has(td.balance-negative){background-color:#fef2f2}.fees-table tbody tr:has(td.balance-negative):hover{background-color:#fee2e2}.pagination{display:flex;align-items:center;justify-content:center;gap:1.8rem;margin-top:1rem}.pagination button{padding:.6rem 1.5rem;background:#fff;border:1.5px solid var(--border);border-radius:40px;font-weight:600;color:var(--primary);cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #00000005;font-family:inherit;font-size:.95rem}.pagination button:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 6px 10px #0000001a}.pagination button:disabled{opacity:.4;cursor:not-allowed;background:#f1f5f9}.pagination span{font-weight:600;color:var(--primary);background:#fff;padding:.5rem 1.2rem;border-radius:40px;border:1.5px solid var(--border);font-size:.95rem;box-shadow:0 2px 4px #00000005}.fees-view-container>p{text-align:center;padding:4rem;font-size:1.3rem;color:#64748b;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}@media(max-width:768px){.fees-view-container{padding:0 1rem}.fees-view-header{flex-direction:column;align-items:stretch;padding:1.2rem}.fees-view-header h2{margin-bottom:.5rem}.fees-view-header input,.fees-view-header select{width:100%;min-width:unset}.fees-table th,.fees-table td{padding:1rem}.pagination{flex-wrap:wrap;gap:1rem}}.fees-edit-container{padding:2rem;background-color:#f4f6f8;min-height:100vh}.fees-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.fees-edit-header h2{font-size:2rem;font-weight:600;color:#2c3e50;margin:0 0 .5rem}.fees-edit-header p{font-size:1rem;color:#7f8c8d;margin:0}.refresh-btn{padding:.6rem 1.2rem;background-color:#fff;border:1px solid #d0d3d9;border-radius:8px;color:#2c3e50;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.refresh-btn:hover{background-color:#f0f2f5;border-color:#b0b3b9;transform:translateY(-1px)}.alert{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:8px;margin-bottom:1.5rem;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-error{background-color:#fee2e2;border-left:4px solid #dc2626;color:#991b1b}.alert-success{background-color:#d1fae5;border-left:4px solid #10b981;color:#065f46}.alert span{font-size:1.2rem}.alert p{margin:0;font-size:.95rem}.classes-table-container{background-color:#fff;border-radius:12px;overflow-x:auto;box-shadow:0 4px 12px #0000000d}.classes-table{width:100%;border-collapse:collapse;min-width:600px}.classes-table thead{background-color:#f8f9fa;border-bottom:2px solid #e9ecef}.classes-table th{text-align:left;padding:1.2rem 1rem;font-weight:600;color:#495057;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.classes-table td{padding:1rem;border-bottom:1px solid #e9ecef;vertical-align:middle}.class-row:hover{background-color:#fafbfc}.class-name{font-weight:600}.class-badge{display:inline-block;padding:.4rem .8rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px;font-size:.85rem;font-weight:500}.view-mode{display:flex;align-items:center;gap:.75rem}.rate-value,.fee-value{font-size:1rem;font-weight:500;color:#2c3e50;font-family:monospace}.edit-icon-btn{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;opacity:.5;transition:opacity .2s ease}.edit-icon-btn:hover{opacity:1;transform:scale(1.1)}.edit-mode{display:flex;align-items:center;gap:.5rem;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.edit-mode input{padding:.5rem;border:2px solid #e2e8f0;border-radius:6px;font-size:.9rem;width:120px;transition:border-color .2s ease}.edit-mode input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.edit-mode input:disabled{background-color:#f1f5f9;cursor:not-allowed}.edit-actions{display:flex;gap:.5rem}.save-btn,.cancel-btn{padding:.3rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease}.save-btn{background-color:#10b981;color:#fff}.save-btn:hover:not(:disabled){background-color:#059669;transform:translateY(-1px)}.cancel-btn{background-color:#ef4444;color:#fff}.cancel-btn:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px)}.save-btn:disabled,.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.actions-cell{text-align:center}.updating-badge{display:inline-block;padding:.25rem .5rem;background-color:#fef3c7;color:#92400e;border-radius:4px;font-size:.75rem;font-weight:500;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.fees-edit-footer{margin-top:1.5rem;padding:1rem}.info-note{background-color:#e0f2fe;border-radius:8px;padding:.75rem 1rem;font-size:.85rem;color:#0369a1;border-left:4px solid #0284c7}.info-note strong{font-weight:600}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.loading-state p{color:#64748b;font-size:.9rem}.empty-state{text-align:center;padding:3rem;background-color:#fff;border-radius:12px;color:#94a3b8}.empty-state p{margin:0;font-size:1rem}@media(max-width:768px){.fees-edit-container{padding:1rem}.fees-edit-header{flex-direction:column;align-items:flex-start}.fees-edit-header h2{font-size:1.5rem}.classes-table-container{border-radius:8px}.classes-table th,.classes-table td{padding:.75rem}.edit-mode input{width:100px}.edit-actions{flex-direction:column}.save-btn,.cancel-btn{width:100%}}@media(max-width:480px){.classes-table th:nth-child(3),.classes-table td:nth-child(3){display:none}.rate-value,.fee-value{font-size:.9rem}}.transactions-list{width:100%;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.table-wrapper{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin;position:relative}.table-wrapper::-webkit-scrollbar{height:8px;background-color:#f1f1f1}.table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.transactions-table{width:100%;min-width:600px;border-collapse:collapse;background:#fff;font-size:.875rem}.transactions-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.transactions-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.transactions-table td{padding:12px 16px;border-bottom:1px solid #f0f0f0;color:#1f2937}.transactions-table tr:hover{background:#f9fafb;transition:background .2s ease}.credit-row,.debit-row{background:#fff}.type-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:capitalize}.type-badge.credit{background:#d1fae5;color:#065f46}.type-badge.debit{background:#fee2e2;color:#991b1b}.credit-amount{color:#059669;font-weight:600}.debit-amount{color:#dc2626;font-weight:600}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.pending{background:#fef3c7;color:#d97706}.status-badge.failed{background:#fee2e2;color:#dc2626}.status-badge.processing{background:#e0e7ff;color:#4338ca}.pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;flex-wrap:wrap;gap:12px}.pagination-btn{padding:8px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;color:#374151;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db;transform:translateY(-1px)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.page-numbers{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.page-number{min-width:36px;height:36px;padding:0 8px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;color:#374151;transition:all .2s ease}.page-number:hover{background:#f3f4f6;border-color:#d1d5db}.page-number.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.no-transactions{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.no-transactions p{color:#6b7280;font-size:1rem;margin:0}@media(max-width:768px){.transactions-list{border-radius:8px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.transactions-table{min-width:500px}.transactions-table th{padding:10px 12px;font-size:.75rem}.transactions-table td{padding:10px 12px;font-size:.8125rem}.pagination{flex-direction:row;justify-content:center;align-items:center;gap:12px;padding:16px 12px;flex-wrap:nowrap}.pagination-prev,.pagination-next{white-space:nowrap;flex-shrink:0;padding:.6rem 1.2rem;font-size:.8rem}.page-number{font-size:.9rem;font-weight:500;color:#1e293b;background:#f8fafc;padding:.5rem 1rem;border-radius:2rem;min-width:80px;text-align:center}.pagination-btn{padding:6px 12px;font-size:.8125rem}.page-number{min-width:32px;height:32px;font-size:.8125rem}}@media(max-width:480px){.transactions-table{min-width:100%}.transactions-table thead{display:none}.transactions-table tbody tr{display:block;margin-bottom:16px;border:1px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff}.transactions-table tbody tr:hover{background:#fff}.transactions-table td{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #f0f0f0;text-align:right}.transactions-table td:last-child{border-bottom:none}.transactions-table td:before{content:attr(data-label);font-weight:600;color:#6b7280;text-align:left;margin-right:12px;font-size:.75rem;text-transform:uppercase}.type-badge,.status-badge{display:inline-block}.credit-amount,.debit-amount{text-align:right}.pagination{flex-direction:column;align-items:stretch}.page-numbers{order:-1;margin-bottom:8px}.pagination-btn{width:100%;text-align:center}}@media(prefers-color-scheme:dark){.transactions-list,.transactions-table{background:#1f2937}.transactions-table thead{background:#111827;border-bottom-color:#374151}.transactions-table th{color:#e5e7eb}.transactions-table td{border-bottom-color:#e2edff;color:#000}.transactions-table tr:hover{border-bottom-color:#374151;color:#000}.pagination{background:#111827;border-top-color:#374151}.pagination-btn{background:#1f2937;border-color:#374151;color:#e5e7eb}.pagination-btn:hover:not(:disabled){background:#374151;border-color:#4b5563}.page-number{background:#1f2937;border-color:#374151;color:#e5e7eb}.page-number:hover{background:#374151}.page-number.active{background:#3b82f6;color:#fff}.no-transactions{background:#1f2937}.no-transactions p{color:#9ca3af}@media(max-width:480px){.transactions-table tbody tr{border-color:#374151;background:#1f2937}.transactions-table td{border-bottom-color:#374151}.transactions-table td:before{color:#9ca3af}}}.student-fees-view-container{max-width:1280px;margin:0 auto;padding:2rem 1.5rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f9fafc;min-height:100vh;color:#1e293b}.back-to-dashboard-btn{background:none;border:none;color:#4f46e5;font-size:1rem;font-weight:500;cursor:pointer;padding:.5rem 0;margin-bottom:1.5rem;display:inline-flex;align-items:center;gap:.25rem;transition:color .2s ease,transform .2s ease}.back-to-dashboard-btn:hover{color:#3730a3;transform:translate(-3px)}.welcome-section h2{font-size:2rem;font-weight:600;margin-bottom:2rem;color:#0f172a;letter-spacing:-.02em}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:3rem}.dashboard-card{background:#fff;border-radius:20px;padding:1.75rem 1.5rem;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #00000005;cursor:pointer;transition:all .25s ease;border:1px solid rgba(226,232,240,.6);text-align:center}.dashboard-card:hover{transform:translateY(-6px);box-shadow:0 20px 30px -10px #4f46e526;border-color:#cbd5e1}.dashboard-card.active{background:linear-gradient(145deg,#fff,#f5f3ff);border-color:#a5b4fc;box-shadow:0 8px 20px -6px #4f46e533}.card-icon{font-size:2.5rem;margin-bottom:1rem}.dashboard-card h3{font-size:1.3rem;font-weight:600;margin-bottom:.5rem;color:#1e293b}.dashboard-card p{color:#64748b;font-size:.95rem;margin:0;line-height:1.5}.balance-card{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:none;box-shadow:0 15px 30px -8px #4f46e566}.balance-card:hover{transform:translateY(-6px);box-shadow:0 20px 35px -8px #4f46e580}.balance-card .card-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.balance-card h3,.balance-card p{color:#fff}.balance-amount{font-size:1.2rem;font-weight:700;margin:.5rem 0;letter-spacing:-.02em}.remaining-classes{font-size:1rem;opacity:.9;margin-bottom:.75rem}.low-balance-warning{display:inline-block;background-color:#fef3c7;color:#b45309;font-size:.8rem;font-weight:600;padding:.3rem .9rem;border-radius:30px;margin-top:.5rem}.fees-section{background:#fff;border-radius:24px;padding:2rem 1.8rem;box-shadow:0 10px 30px -10px #0000000d;border:1px solid #f1f5f9}.section-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#0f172a;display:flex;align-items:center}.section-title:after{content:"";flex:1;height:2px;background:linear-gradient(to right,#e2e8f0,transparent);margin-left:1rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#64748b}.loading-spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.pagination-btn{background:#fff;border:1px solid #e2e8f0;padding:.7rem 1.6rem;border-radius:40px;font-weight:500;color:#334155;cursor:pointer;transition:all .2s ease;font-size:.95rem;box-shadow:0 2px 5px #00000005}.pagination-btn:hover:not(:disabled){background-color:#4f46e5;border-color:#4f46e5;color:#fff;box-shadow:0 8px 14px -6px #4f46e54d}.pagination-btn:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9}@media(max-width:640px){.student-fees-view-container{padding:1.25rem}.welcome-section h2{font-size:1.6rem}.dashboard-grid{grid-template-columns:1fr;gap:1rem}.fees-section{padding:1.5rem 1rem}.pagination-controls{flex-direction:column;gap:.75rem}.pagination-btn{width:100%}}button,.dashboard-card{transition:all .2s cubic-bezier(.4,0,.2,1)}.schedule-container{max-width:1200px;margin:0 auto;padding:2rem;font-family:Poppins,sans-serif;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.back-button{background:#fff;border:none;padding:.8rem 1.5rem;border-radius:10px;font-size:1rem;font-weight:600;color:#667eea;cursor:pointer;margin-bottom:2rem;box-shadow:0 2px 10px #0000001a;transition:all .3s ease}.back-button:hover{transform:translate(-5px);box-shadow:0 5px 15px #0003}.schedule-header{background:#fff;border-radius:20px;padding:2rem;margin-bottom:2rem;text-align:center;box-shadow:0 10px 30px #0000001a;animation:slideDown .5s ease-out}.schedule-header h1{font-size:2.5rem;font-weight:700;color:#2c3e50;margin:0 0 .5rem}.schedule-header p{font-size:1.1rem;color:#7f8c8d;margin:0}.schedule-tabs{display:flex;justify-content:center;margin-bottom:2rem;background:#fff;padding:.5rem;border-radius:15px;box-shadow:0 4px 15px #00000014}.tab-button{flex:1;padding:1rem;border:none;background:transparent;color:#7f8c8d;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;border-radius:10px}.tab-button.active{background:#667eea;color:#fff;box-shadow:0 4px 10px #667eea66}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.schedule-card{background:#fff;border-radius:15px;padding:1.5rem;box-shadow:0 5px 15px #00000014;transition:all .3s ease;animation:popIn .5s ease-out forwards;border-top:5px solid #667eea;display:flex;flex-direction:column}.schedule-card:hover{transform:translateY(-5px);box-shadow:0 12px 28px #0000001f}.schedule-date{font-size:1rem;font-weight:600;color:#667eea;margin-bottom:1rem}.schedule-details{flex-grow:1;margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f0f0f0}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.9rem;color:#7f8c8d;font-weight:500}.detail-value{font-size:1rem;font-weight:600;color:#2c3e50;text-align:right}.detail-value.subject{color:#34495e;font-weight:700}.detail-value.teacher{color:#8e44ad}.detail-value.time{color:#27ae60}.schedule-footer{margin-top:auto;padding-top:1rem;border-top:1px solid #f0f0f0;display:flex;flex-direction:column;align-items:flex-start}.status-badge{padding:.4rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:capitalize;color:#fff;display:inline-block}.reschedule-info{margin-top:.5rem;font-size:.8rem;color:#7f8c8d}.empty-state,.loading-state{background:#fff;border-radius:20px;padding:4rem 2rem;text-align:center;box-shadow:0 10px 30px #0000001a}.empty-icon,.loading-spinner{margin:0 auto 1rem}.empty-icon{font-size:5rem;opacity:.5}.loading-spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.error-state{background:#fff;border-radius:20px;padding:3rem 2rem;text-align:center;box-shadow:0 10px 30px #0000001a}.error-icon{font-size:3rem;margin-bottom:1rem}.error-state h3{font-size:1.5rem;color:#e74c3c;margin:0 0 .5rem}.error-state p{color:#7f8c8d;margin:0 0 1.5rem}.retry-button{background:#3498db;color:#fff;border:none;padding:.8rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.retry-button:hover{background:#2980b9;transform:translateY(-2px)}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.schedule-container{padding:1rem}.schedule-header h1{font-size:2rem}.schedule-grid{grid-template-columns:1fr}}.view-mode-toggle{display:flex;gap:10px;margin-bottom:20px;justify-content:center}.mode-button{padding:10px 20px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease}.mode-button.active{background:#27ae60;color:#fff;border-color:#27ae60}.mode-button:hover:not(.active){background:#f5f5f5}.timetable-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.timetable-header{margin-bottom:20px}.month-navigation{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.month-navigation h2{margin:0;font-size:20px;color:#333}.nav-button{padding:8px 16px;background:#f0f0f0;border:none;border-radius:6px;cursor:pointer;font-size:18px;transition:background .3s ease}.nav-button:hover{background:#e0e0e0}.today-button{padding:8px 16px;background:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background .3s ease}.today-button:hover{background:#219a52}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:20px}.calendar-weekday{text-align:center;font-weight:700;padding:12px;background:#f8f9fa;border-radius:8px;color:#666}.calendar-day{padding:15px;text-align:center;border-radius:8px;background:#f8f9fa;cursor:pointer;transition:all .3s ease;position:relative}.calendar-day:hover{transform:scale(1.05);box-shadow:0 2px 8px #00000026}.day-status-all-completed{background-color:#2ecc71!important;color:#fff!important;font-weight:700}.day-status-mixed-status{background-color:#f1c40f!important;color:#fff!important;font-weight:700}.day-status-all-pending{background-color:#3498db!important;color:#fff!important;font-weight:700}.calendar-day.today{border:2px solid #27ae60;font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:1200px;max-height:80vh;overflow:auto;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;color:#333}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#999;transition:color .3s ease}.close-button:hover{color:#333}.modal-body{padding:20px}.day-classes-list{display:flex;flex-direction:column;gap:15px}.day-class-card{padding:15px;border:1px solid #e0e0e0;border-radius:8px;background:#fafafa}.class-time{font-size:12px;color:#666;margin-bottom:8px;font-weight:500}.class-subject{font-size:16px;font-weight:700;color:#333;margin-bottom:5px}.class-teacher{font-size:14px;color:#666;margin-bottom:10px}.meeting-link-btn.small{padding:6px 12px;font-size:12px;margin-top:10px;margin-bottom:8px}.status-badge.small{padding:4px 8px;font-size:11px;display:inline-block}@media(max-width:768px){.calendar-grid{gap:5px}.calendar-day{padding:10px;font-size:12px}.calendar-weekday{padding:8px;font-size:12px}.month-navigation{justify-content:center}.month-navigation h2{font-size:16px}.mode-button{padding:8px 16px;font-size:12px}}*{margin:0;padding:0;box-sizing:border-box}.attendance-container{min-height:100vh;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:2rem}.attendance-wrapper{max-width:1280px;margin:0 auto}.back-button{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e2e8f0;padding:.6rem 1.2rem;border-radius:2rem;font-size:.85rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease;margin-bottom:1.5rem}.back-button:hover{background:#f8fafc;border-color:#cbd5e1;transform:translate(-2px)}.welcome-section{border-radius:1.5rem;padding:1.75rem 2rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1.5rem}.welcome-avatar{width:64px;height:64px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:32px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;color:#fff;box-shadow:0 8px 20px -4px #3b82f666}.welcome-text h1{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.25rem}.welcome-text p{font-size:.85rem;color:#475569}.profile-card{background:#fff;border-radius:1.25rem;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d;border:1px solid #eef2ff}.card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:2px solid #eef2ff}.card-icon{font-size:1.25rem}.card-header h3{font-size:1rem;font-weight:600;color:#0f172a;margin:0}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.profile-item{display:flex;flex-direction:column;gap:.25rem}.profile-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.profile-value{font-size:.9rem;font-weight:500;color:#1e293b}.consent-badge{display:inline-block;padding:.25rem .75rem;border-radius:2rem;font-size:.75rem;font-weight:600;width:fit-content}.consent-accepted{background:#dcfce7;color:#166534}.consent-pending{background:#fef9c3;color:#854d0e}.summary-section{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.percentage-card{background:#fff;border-radius:1.25rem;padding:1.5rem;flex:1;min-width:220px;display:flex;justify-content:center;align-items:center;box-shadow:0 1px 3px #0000000d;border:1px solid #eef2ff}.progress-ring{width:140px;height:140px}.ring-chart{width:100%;height:100%}.ring-percentage{font-size:1.2rem;font-weight:700;fill:#0f172a}.ring-label{font-size:.65rem;fill:#64748b}.stats-cards{display:flex;gap:1rem;flex:2;min-width:280px}.stat-card{flex:1;background:#fff;border-radius:1rem;padding:1rem;display:flex;align-items:center;gap:.75rem;box-shadow:0 1px 3px #0000000d;border:1px solid #eef2ff;transition:transform .2s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{width:48px;height:48px;background:#f1f5f9;border-radius:24px;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:1.5rem;font-weight:700;color:#0f172a}.stat-label{font-size:.7rem;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.stat-card.present .stat-number{color:#16a34a}.stat-card.absent .stat-number{color:#dc2626}.filters-card{background:#fff;border-radius:1.25rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d;border:1px solid #eef2ff}.filters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.filters-header h3{font-size:.9rem;font-weight:600;color:#334155;text-transform:uppercase;letter-spacing:.5px}.clear-all-btn{background:none;border:none;color:#f97316;font-size:.75rem;font-weight:500;cursor:pointer;padding:.25rem .5rem;border-radius:.5rem;transition:background .2s}.clear-all-btn:hover{background:#fff7ed}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.filter-field{display:flex;flex-direction:column;gap:.5rem}.filter-field label{font-size:.7rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.select-wrapper{position:relative}.select-wrapper select,.filter-field input{width:100%;padding:.65rem 1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;font-size:.85rem;background:#fff;cursor:pointer;transition:all .2s;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.select-wrapper select{padding-right:2rem}.select-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#94a3b8}.filter-field input:focus,.select-wrapper select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.date-error{margin-top:.75rem;padding:.5rem .75rem;background:#fef2f2;border-radius:.75rem;font-size:.75rem;color:#dc2626;display:flex;align-items:center;gap:.5rem}.table-card{background:#fff;border-radius:1.25rem;overflow:hidden;box-shadow:0 1px 3px #0000000d;border:1px solid #eef2ff}.table-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #eef2ff}.table-header h3{font-size:.9rem;font-weight:600;color:#334155;text-transform:uppercase;letter-spacing:.5px}.record-count{font-size:.7rem;color:#64748b;background:#f1f5f9;padding:.25rem .75rem;border-radius:2rem}.table-responsive{overflow-x:auto}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th{text-align:left;padding:1rem;background:#f8fafc;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#475569;border-bottom:1px solid #e2e8f0}.attendance-table td{padding:1rem;font-size:.85rem;color:#334155;border-bottom:1px solid #f1f5f9}.attendance-table tr{transition:background .2s;animation:fadeInUp .3s ease forwards;opacity:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.attendance-table tr:hover{background:#fafcff}.date-cell{display:flex;flex-direction:column}.date-day{font-size:1rem;font-weight:600;color:#0f172a}.date-full{font-size:.65rem;color:#94a3b8}.subject-badge{background:#eef2ff;padding:.25rem .75rem;border-radius:2rem;font-size:.75rem;font-weight:500;color:#2563eb}.duration-badge{background:#f1f5f9;padding:.25rem .75rem;border-radius:2rem;font-size:.7rem;color:#475569}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .85rem;border-radius:2rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-present{background:#dcfce7;color:#166534}.status-absent{background:#fee2e2;color:#991b1b}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px;padding:12px 0}.pagination-prev,.pagination-next{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:100px;padding:12px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:40px;font-size:15px;font-weight:500;color:#1e293b;box-shadow:0 2px 4px #00000005;transition:all .2s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}.pagination-prev:hover:not(:disabled),.pagination-next:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;box-shadow:0 4px 8px #0000000d;transform:translateY(-1px)}.pagination-prev:disabled,.pagination-next:disabled{opacity:.45;background:#f1f5f9;border-color:#e2e8f0;box-shadow:none;cursor:not-allowed;transform:none}.page-number{font-size:16px;font-weight:600;color:#334155;padding:8px 16px;background:#f8fafc;border-radius:32px;border:1px solid #e2e8f0;box-shadow:inset 0 1px 2px #00000005;min-width:90px;text-align:center}.pagination-prev svg,.pagination-next svg{width:18px;height:18px;flex-shrink:0}@media(max-width:480px){.pagination{gap:12px}.pagination-prev,.pagination-next{min-width:unset;padding:14px 20px;font-size:16px;flex:1;max-width:140px}.page-number{font-size:15px;padding:8px 12px;min-width:70px}@media(max-width:360px){.pagination-prev span,.pagination-next span{display:none}.pagination-prev,.pagination-next{padding:14px;min-width:48px;border-radius:50px}.page-number{min-width:60px}}}.empty-state{text-align:center;padding:3rem 2rem}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state h4{font-size:1rem;color:#334155;margin-bottom:.5rem}.empty-state p{font-size:.8rem;color:#94a3b8;margin-bottom:1rem}.reset-filters-btn{background:#f1f5f9;border:none;padding:.5rem 1.25rem;border-radius:2rem;font-size:.75rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s}.reset-filters-btn:hover{background:#e2e8f0}@media(max-width:768px){.attendance-container{padding:1rem}.welcome-section{flex-direction:column;text-align:center;padding:1.5rem}.summary-section,.stats-cards{flex-direction:column}.filters-grid{grid-template-columns:1fr}.pagination{flex-direction:row;justify-content:center;align-items:center;gap:12px;padding:16px 12px;flex-wrap:nowrap}.pagination-prev,.pagination-next{white-space:nowrap;flex-shrink:0;padding:.6rem 1.2rem;font-size:.8rem}.page-number{font-size:.9rem;font-weight:500;color:#1e293b;background:#f8fafc;padding:.5rem 1rem;border-radius:2rem;min-width:80px;text-align:center}.attendance-table th,.attendance-table td{padding:.75rem}}.table-header h3{display:flex;align-items:center;gap:8px;font-size:1.5rem;margin-bottom:16px;color:#1e293b}.header-icon{font-size:1.8rem}.stylish-date-range{display:flex;align-items:center;gap:10px;padding:12px 18px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border-radius:16px;margin-bottom:24px;font-size:1rem;color:#334155;border:1px solid rgba(99,102,241,.2);box-shadow:0 2px 6px #00000005}.stylish-date-range svg{color:#4f46e5;flex-shrink:0}.stylish-date-range strong{color:#0f172a;font-weight:600;background:#fff;padding:4px 10px;border-radius:30px;margin:0 4px;box-shadow:0 1px 3px #0000000d}.stylish-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.summary-card{display:flex;align-items:center;gap:16px;padding:20px 18px;background:#fff;border-radius:24px;box-shadow:0 8px 20px -6px #0000001a;transition:all .25s ease;border:1px solid rgba(226,232,240,.6)}.summary-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px -8px #4f46e526;border-color:#c7d2fe}.card-icon-wrapper{width:48px;height:48px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#f1f5f9,#fff);box-shadow:inset 0 2px 4px #fffc,0 4px 8px #0000000a}.total-card .card-icon-wrapper{color:#2563eb;background:linear-gradient(145deg,#eff6ff,#fff)}.present-card .card-icon-wrapper{color:#059669;background:linear-gradient(145deg,#ecfdf5,#fff)}.percent-card .card-icon-wrapper{color:#7c3aed;background:linear-gradient(145deg,#f5f3ff,#fff)}.card-content{flex:1}.card-content h4{margin:0 0 4px;font-size:.9rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.card-value{margin:0;font-size:2.2rem;font-weight:700;line-height:1.2;color:#0f172a}.progress-bar{margin-top:8px;height:6px;background:#e2e8f0;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:10px;transition:width .4s ease}@media(max-width:640px){.stylish-summary{grid-template-columns:1fr;gap:14px}.stylish-date-range{flex-wrap:wrap}}.add-payment-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef);padding:24px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center}.add-payment-container h2{font-size:28px;font-weight:700;color:#1a202c;margin:0 0 24px;text-align:center;display:flex;align-items:center;gap:10px}.add-payment-container h2:before{content:"💰";font-size:28px}.error-message{background:#fee2e2;color:#991b1b;padding:14px 18px;border-radius:12px;margin-bottom:20px;font-size:14px;font-weight:500;border-left:4px solid #ef4444;width:100%;max-width:500px;box-sizing:border-box;animation:slideDown .3s ease}.success-message{background:#d1fae5;color:#065f46;padding:14px 18px;border-radius:12px;margin-bottom:20px;font-size:14px;font-weight:500;border-left:4px solid #10b981;width:100%;max-width:500px;box-sizing:border-box;animation:slideDown .3s ease}.payment-form{background:#fff;border-radius:24px;padding:32px;width:100%;max-width:500px;box-shadow:0 10px 40px #0000001a;border:1px solid rgba(0,0,0,.05);box-sizing:border-box}.form-group{margin-bottom:24px}.form-group:last-of-type{margin-bottom:28px}.form-group label{display:block;font-size:14px;font-weight:600;color:#4a5568;margin-bottom:8px}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:12px 14px;font-size:15px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;transition:all .2s ease;box-sizing:border-box;font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[type=number]::-webkit-inner-spin-button,.form-group input[type=number]::-webkit-outer-spin-button{opacity:.5}.form-group input[type=number]:focus::-webkit-inner-spin-button,.form-group input[type=number]:focus::-webkit-outer-spin-button{opacity:1}.react-select__control{border:1.5px solid #e2e8f0!important;border-radius:10px!important;min-height:46px!important;box-shadow:none!important;transition:all .2s ease!important}.react-select__control:hover{border-color:#cbd5e1!important}.react-select__control--is-focused{border-color:#667eea!important;box-shadow:0 0 0 3px #667eea1a!important}.react-select__placeholder{color:#a0aec0!important;font-size:14px!important}.react-select__input-container,.react-select__single-value{color:#2d3748!important;font-size:15px!important}.react-select__menu{border-radius:12px!important;box-shadow:0 10px 30px #00000026!important;border:1px solid #e2e8f0!important;overflow:hidden!important;z-index:1000!important}.react-select__option{padding:12px 16px!important;font-size:14px!important;cursor:pointer!important;transition:all .15s ease!important}.react-select__option--is-focused{background:#f7fafc!important}.react-select__option--is-selected{background:#e0e7ff!important;color:#4338ca!important;font-weight:500!important}.react-select__indicator-separator{background-color:#e2e8f0!important}.react-select__dropdown-indicator{color:#718096!important}.react-select__dropdown-indicator:hover{color:#4a5568!important}.react-select__clear-indicator{color:#a0aec0!important}.react-select__clear-indicator:hover{color:#ef4444!important}.payment-form button[type=submit]{width:100%;padding:14px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #10b9814d;display:flex;align-items:center;justify-content:center;gap:8px}.payment-form button[type=submit]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px #10b98166}.payment-form button[type=submit]:active:not(:disabled){transform:translateY(0)}.payment-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed;background:linear-gradient(135deg,#a0aec0,#718096);box-shadow:none}.payment-form button[type=submit]:disabled:before{content:"";width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite;margin-right:8px}.form-group label[for=standard-select]:before{content:"🏫 ";margin-right:4px}.form-group label[for=academic-year-select]:before{content:"📅 ";margin-right:4px}.form-group label[for=student-select]:before{content:"👤 ";margin-right:4px}.form-group label[for=amount]:before{content:"💵 ";margin-right:4px}.form-group label[for=payment-mode]:before{content:"💳 ";margin-right:4px}@media(max-width:768px){.add-payment-container{padding:16px 12px;justify-content:flex-start}.add-payment-container h2{font-size:24px;margin-bottom:20px}.add-payment-container h2:before{font-size:24px}.payment-form{padding:24px 18px}.form-group{margin-bottom:20px}.form-group label{font-size:13px}.form-group input[type=text],.form-group input[type=number],.form-group select{padding:11px 13px;font-size:14px}.react-select__control{min-height:44px!important}.react-select__placeholder,.react-select__single-value{font-size:14px!important}.payment-form button[type=submit]{padding:13px;font-size:15px}.error-message,.success-message{padding:12px 16px;font-size:13px}}@media(max-width:480px){.add-payment-container{padding:12px 8px}.add-payment-container h2{font-size:22px}.payment-form{padding:20px 14px}.form-group{margin-bottom:18px}.react-select__option{padding:10px 14px!important;font-size:13px!important}.payment-form button[type=submit]{padding:12px;font-size:14px}}@media(min-width:769px)and (max-width:1024px){.add-payment-container{padding:20px 16px}.payment-form{padding:28px}}@media(min-width:1200px){.payment-form{max-width:550px;padding:36px}}.form-group input:focus-visible,.form-group select:focus-visible,.payment-form button:focus-visible{outline:2px solid #667eea;outline-offset:2px}.form-group input::placeholder{color:#a0aec0;font-size:14px}.form-group input:disabled,.form-group select:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.form-group select:hover{border-color:#cbd5e1}.payment-form,.form-group input,.form-group select,.react-select__control,.payment-form button{transition:all .3s ease}.payment-form:hover{box-shadow:0 15px 50px #0000001f}.form-group input[type=number]{font-weight:600;color:#1a202c;font-size:16px}#payment-mode{text-transform:uppercase;font-weight:500}#payment-mode option{text-transform:uppercase}.add-payment-container.loading{pointer-events:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.payment-form{animation:fadeInUp .4s ease}.form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23718096' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%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;background-size:16px;padding-right:40px}.form-group select:hover{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a5568' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}@media print{.add-payment-container{background:#fff;padding:0}.payment-form{box-shadow:none;border:1px solid #e2e8f0}.payment-form button{display:none}}.rcf-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e9ecef);padding:24px;box-sizing:border-box;display:flex;align-items:flex-start;justify-content:center}.rcf-card{background:#fff;border-radius:24px;padding:32px;width:100%;max-width:900px;box-shadow:0 10px 40px #0000001a;border:1px solid rgba(0,0,0,.05);box-sizing:border-box}.rcf-header{margin-bottom:32px;text-align:center}.rcf-header h3{font-size:26px;font-weight:700;color:#1a202c;margin:0 0 8px;display:flex;align-items:center;justify-content:center;gap:8px}.rcf-header p{font-size:15px;color:#718096;margin:0}.rcf-alert{padding:14px 18px;border-radius:12px;margin-bottom:24px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.rcf-alert-success{background:#d1fae5;color:#065f46;border-left:4px solid #10b981}.rcf-alert-error{background:#fee2e2;color:#991b1b;border-left:4px solid #ef4444}.rcf-form-section{margin-bottom:32px;padding:24px;background:#f7fafc;border-radius:16px}.rcf-form-section:last-of-type{margin-bottom:24px}.rcf-form-section h4{font-size:18px;font-weight:700;color:#2d3748;margin:0 0 20px;display:flex;align-items:center;gap:8px}.rcf-form-section h4 i{font-style:normal;font-size:20px}.rcf-form-group{margin-bottom:20px}.rcf-form-group:last-child{margin-bottom:0}.rcf-form-group label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#4a5568;margin-bottom:8px}.rcf-form-group label i{font-style:normal;font-size:16px}.required{color:#e53e3e;margin-left:2px}.rcf-form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:0}.rcf-form-row .rcf-form-group{margin-bottom:0}.rcf-form-input,.rcf-form-select,.rcf-time-input{width:100%;padding:12px 14px;font-size:14px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;transition:all .2s ease;box-sizing:border-box;font-family:inherit}.rcf-form-input:focus,.rcf-form-select:focus,.rcf-time-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.rcf-form-input[readonly]{background:#edf2f7;cursor:default;color:#4a5568}.rcf-teacher-info{background:#fff;border-radius:12px;padding:16px;margin-top:16px;border:1px solid #e2e8f0}.rcf-teacher-info div{padding:6px 0;font-size:14px;color:#4a5568;display:flex;align-items:center;gap:8px;border-bottom:1px solid #e2e8f0}.rcf-teacher-info div:last-child{border-bottom:none}.rcf-helper-text{font-size:12px;color:#718096;margin-top:6px;display:flex;align-items:center;gap:4px}.rcf-custom-multiselect{position:relative;width:100%}.rcf-select-box{width:100%;padding:12px 14px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease;box-sizing:border-box}.rcf-select-box:hover{border-color:#cbd5e1}.rcf-select-box-text{font-size:14px;color:#2d3748}.rcf-dropdown-arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;transition:transform .3s ease}.rcf-dropdown-arrow.down{border-top:5px solid #718096}.rcf-dropdown-arrow.up{border-bottom:5px solid #718096}.rcf-checkboxes{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 30px #00000026;z-index:1000;max-height:350px;overflow:hidden;display:flex;flex-direction:column}.rcf-student-search-input{width:100%;padding:14px 16px;border:none;border-bottom:1.5px solid #e2e8f0;font-size:14px;box-sizing:border-box}.rcf-student-search-input:focus{outline:none;border-bottom-color:#667eea}.rcf-student-list{max-height:280px;overflow-y:auto;padding:8px 0}.rcf-student-list-option{padding:12px 16px;font-size:14px;color:#2d3748;cursor:pointer;transition:all .15s ease;border-bottom:1px solid #f0f0f0}.rcf-student-list-option:last-child{border-bottom:none}.rcf-student-list-option:hover{background:#f7fafc}.rcf-student-selected{background:#e0e7ff;color:#4338ca;font-weight:500}.rcf-student-selected:hover{background:#c7d2fe}.rcf-select-all-option{background:#f7fafc;font-weight:600;color:#667eea;border-bottom:2px solid #e2e8f0}.rcf-select-all-option:hover{background:#edf2f7}.rcf-no-students-message{padding:20px;text-align:center;color:#718096;font-size:14px}.rcf-selected-students-display{margin-top:16px;padding:16px;background:#fff;border-radius:12px;border:1px solid #e2e8f0}.rcf-selected-count{display:inline-block;font-size:13px;font-weight:600;color:#10b981;background:#d1fae5;padding:4px 12px;border-radius:20px;margin-bottom:12px}.rcf-selected-names{display:flex;flex-wrap:wrap;gap:8px;max-height:120px;overflow-y:auto;padding:4px}.rcf-student-tag{display:inline-block;padding:6px 14px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:20px;font-size:13px;color:#2d3748;transition:all .2s ease}.rcf-student-tag:hover{background:#667eea;color:#fff;border-color:#667eea}.rcf-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:8px}.rcf-day-checkbox{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s ease}.rcf-day-checkbox:hover{border-color:#667eea;background:#f7fafc}.rcf-day-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.rcf-day-checkbox span{font-size:12px;font-weight:500;color:#4a5568}.rcf-day-checkbox input[type=checkbox]:checked+span{color:#667eea;font-weight:600}.rcf-submit-button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d;margin-top:8px}.rcf-submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 25px #667eea66}.rcf-submit-button:disabled{opacity:.6;cursor:not-allowed}.rcf-submit-button.rcf-loading{background:linear-gradient(135deg,#a0aec0,#718096)}@media(max-width:768px){.rcf-container{padding:16px 12px}.rcf-card{padding:20px 16px}.rcf-header h3{font-size:22px}.rcf-header p{font-size:14px}.rcf-form-section{padding:18px 14px;margin-bottom:24px}.rcf-form-section h4{font-size:16px;margin-bottom:16px}.rcf-form-row{grid-template-columns:1fr;gap:16px}.rcf-form-group{margin-bottom:16px}.rcf-days-grid{grid-template-columns:repeat(4,1fr)}.rcf-teacher-info div,.rcf-select-box-text{font-size:13px}.rcf-student-list-option{padding:10px 14px;font-size:13px}.rcf-selected-names{max-height:100px}.rcf-student-tag{font-size:12px;padding:5px 12px}.rcf-submit-button{padding:14px;font-size:15px}}@media(max-width:480px){.rcf-container{padding:12px 8px}.rcf-card{padding:16px 12px}.rcf-header h3{font-size:20px}.rcf-form-section{padding:14px 12px}.rcf-days-grid{grid-template-columns:repeat(2,1fr);gap:8px}.rcf-day-checkbox{padding:8px 4px}.rcf-day-checkbox span{font-size:11px}.rcf-checkboxes{max-height:300px}.rcf-student-list{max-height:240px}}@media(min-width:769px)and (max-width:1024px){.rcf-container{padding:20px 16px}.rcf-card{padding:28px}.rcf-days-grid{gap:8px}.rcf-day-checkbox span{font-size:11px}}.rcf-student-list::-webkit-scrollbar,.rcf-selected-names::-webkit-scrollbar{width:6px}.rcf-student-list::-webkit-scrollbar-track,.rcf-selected-names::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.rcf-student-list::-webkit-scrollbar-thumb,.rcf-selected-names::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.rcf-student-list::-webkit-scrollbar-thumb:hover,.rcf-selected-names::-webkit-scrollbar-thumb:hover{background:#94a3b8}.rcf-checkboxes{animation:fadeInDown .25s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.rcf-form-input:focus-visible,.rcf-form-select:focus-visible,.rcf-time-input:focus-visible,.rcf-submit-button:focus-visible{outline:2px solid #667eea;outline-offset:2px}.rcf-form-input::placeholder,.rcf-student-search-input::placeholder{color:#a0aec0;font-size:13px}.rcf-form-input:disabled,.rcf-form-select:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.forgot-password-page-container{display:flex;min-height:100vh;background:#f8fafc}.forgot-password-form-container{flex:0 0 500px;display:flex;align-items:center;justify-content:flex-start;padding:2rem 2rem 2rem 2.5rem}.forgot-password-box{max-width:400px;width:100%;background:#fff;border-radius:1.5rem;padding:2rem 1.75rem;box-shadow:0 20px 40px #0000000d;margin:0}.forgot-password-logo{display:block;width:70px;height:70px;object-fit:cover;border-radius:16px;margin:0 auto 1.25rem;box-shadow:0 8px 16px #00000014}.forgot-password-box h2{font-size:1.6rem;font-weight:700;color:#0f172a;text-align:center;margin-bottom:.25rem}.subtitle{text-align:center;color:#64748b;font-size:.9rem;margin-bottom:1.75rem}.input-group{margin-bottom:1.5rem}.input-group input{width:100%;padding:.8rem 1.2rem;font-size:.95rem;border:1.5px solid #e2e8f0;border-radius:1.5rem;background:#fefefe;transition:all .2s ease;outline:none}.input-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.input-group input:disabled{background:#f1f5f9;cursor:not-allowed}.message{padding:.75rem 1rem;border-radius:1rem;font-size:.9rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.reset-button{width:100%;padding:.9rem;background:linear-gradient(135deg,#2563eb,#1e40af);color:#fff;border:none;border-radius:3rem;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 12px #2563eb40}.reset-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #2563eb59;background:linear-gradient(135deg,#3b82f6,#2563eb)}.reset-button:disabled{opacity:.7;cursor:not-allowed}.spinner{width:1.2rem;height:1.2rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.back-to-login{text-align:center;margin-top:1.5rem}.back-to-login a{color:#2563eb;font-weight:500;text-decoration:none;font-size:.95rem;transition:color .2s}.back-to-login a:hover{color:#1e40af;text-decoration:underline}.forgot-password-image-container{flex:1;background:linear-gradient(#0f172ab3,#0f172ab3),url(../assets/your-background-image.jpg) center center / cover no-repeat;display:flex;align-items:center;justify-content:center;padding:3rem;color:#fff}.inspiration-content{max-width:480px;text-align:center}.caption{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;line-height:1.2}.quote{font-size:1.25rem;font-style:italic;opacity:.9;line-height:1.6}@media(max-width:768px){.forgot-password-page-container{flex-direction:column}.forgot-password-image-container{display:none}.forgot-password-form-container{flex:auto;width:100%;justify-content:center;padding:1.5rem}.forgot-password-box{max-width:400px;width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.success-modal{background:#fff;border-radius:1.5rem;max-width:400px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem;text-align:center;animation:slideUp .3s ease;box-shadow:0 20px 40px #00000026}.success-icon{width:60px;height:60px;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:30px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:#fff}.success-icon svg{width:32px;height:32px}.success-modal h2{font-size:1.4rem;color:#0f172a;margin-bottom:.25rem}.success-modal>p{color:#475569;margin-bottom:1rem;font-size:.9rem}.verification-message{background:#f0f7ff;padding:.75rem;border-radius:.75rem;margin:.75rem 0;border-left:4px solid #2196F3;text-align:left}.verification-message h3{margin:0 0 .25rem;color:#1976d2;font-size:1rem}.verification-message p{margin:.25rem 0;font-size:.85rem;color:#334155}.spam-note{margin-top:.5rem;font-size:.8rem;color:#d32f2f;background:#ffebee;padding:.5rem .75rem;border-radius:.5rem}.approval-message{background:#fff8e1;border-radius:.75rem;padding:.75rem;margin:.75rem 0;text-align:left;border-left:4px solid #ffc107}.small-text{font-size:.8rem;color:#92400e;margin:0}.modal-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-primary,.btn-secondary{flex:1;padding:.7rem;border-radius:2rem;font-weight:600;font-size:.85rem;border:none;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1e40af;transform:translateY(-1px)}.btn-secondary{background:#f1f5f9;color:#334155;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0}@media(max-width:480px){.success-modal{padding:1.25rem;border-radius:1.25rem}.success-icon{width:50px;height:50px}.success-icon svg{width:28px;height:28px}.success-modal h2{font-size:1.25rem}.verification-message,.approval-message{padding:.6rem}.modal-actions{flex-direction:column;gap:.5rem}.btn-primary,.btn-secondary{width:100%}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.aym-container{max-width:1400px;margin:0 auto;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.aym-header{text-align:center;margin-bottom:2rem;padding:2rem;background:#fff;border-radius:15px;box-shadow:0 10px 30px #0000001a}.aym-title{font-size:2.5rem;color:#333;margin-bottom:.5rem;font-weight:700}.aym-subtitle{color:#666;font-size:1rem}.aym-form-card{background:#fff;border-radius:15px;padding:2rem;margin-bottom:2rem;box-shadow:0 5px 20px #0000001a}.aym-section-title{font-size:1.3rem;color:#333;margin-bottom:1.5rem;font-weight:600;border-left:4px solid #667eea;padding-left:1rem}.aym-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;align-items:end}.aym-form-group{display:flex;flex-direction:column}.aym-label{font-size:.9rem;font-weight:600;color:#555;margin-bottom:.5rem}.aym-input{padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;transition:all .3s ease}.aym-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.aym-table-container{background:#fff;border-radius:15px;padding:2rem;box-shadow:0 5px 20px #0000001a}.aym-table-responsive{overflow-x:auto}.aym-table{width:100%;border-collapse:separate;border-spacing:0}.aym-table thead th{background:#f8f9fa;padding:1rem;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.aym-table tbody tr{transition:all .3s ease}.aym-table tbody tr:hover{background:#f8f9fa;transform:scale(1.01)}.aym-table td{padding:1rem;border-bottom:1px solid #e9ecef;vertical-align:middle}.aym-active-row{background:#fff}.aym-inactive-row{background:#fef5e8;opacity:.8}.aym-year-label{font-weight:500}.aym-year-dates{font-size:.8rem;color:#6c757d;margin-top:.25rem}.aym-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-align:center}.aym-badge-active{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.aym-badge-inactive{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.aym-default-star{color:#f59e0b;font-weight:600;display:inline-flex;align-items:center;gap:.25rem}.aym-not-default{color:#adb5bd}.aym-lock-icon{display:inline-flex;align-items:center;gap:.25rem;font-size:.9rem}.aym-locked{color:#dc3545}.aym-unlocked{color:#28a745}.aym-btn{padding:.5rem 1rem;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin:0 .25rem}.aym-btn:disabled{opacity:.5;cursor:not-allowed}.aym-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem 1.5rem;font-size:1rem}.aym-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.aym-btn-default{background:#f59e0b;color:#fff}.aym-btn-default:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.aym-btn-toggle{background:#6c757d;color:#fff}.aym-btn-toggle:hover:not(:disabled){background:#5a6268}.aym-btn-lock{background:#dc3545;color:#fff}.aym-btn-lock:hover:not(:disabled){background:#c82333}.aym-btn-unlock{background:#28a745;color:#fff}.aym-btn-unlock:hover:not(:disabled){background:#218838}.aym-action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.aym-loading{text-align:center;padding:3rem;font-size:1.1rem;color:#6c757d}.aym-empty-state{text-align:center;padding:3rem;color:#6c757d;font-size:1rem}@media(max-width:768px){.aym-container{padding:1rem}.aym-title{font-size:1.8rem}.aym-form-grid{grid-template-columns:1fr}.aym-action-buttons{flex-direction:column}.aym-btn{width:100%;margin:.25rem 0}.aym-table td{padding:.75rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.aym-container>div{animation:fadeIn .5s ease-out}.admin-contact-container{padding:20px}.admin-contact-card{max-width:500px;margin:auto;background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 20px #0000001a}.admin-contact-card h3{margin-bottom:20px}.admin-contact-card input{width:100%;margin-bottom:12px;padding:10px;border-radius:8px;border:1px solid #ccc}.admin-contact-card button{width:100%;padding:10px;border:none;background:#007bff;color:#fff;border-radius:8px}.class-management-container{padding:2rem;background-color:#f9fafb}.dashboard-header-modern{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.header-left h1{font-size:1.25rem;font-weight:700;color:#111827;margin:0}.header-left p{color:#6b7280;font-size:1rem;margin-top:.5rem}.view-mode-toggle{display:flex;background-color:#e5e7eb;border-radius:8px;padding:4px}.toggle-btn{padding:6px 16px;border:none;background:transparent;border-radius:6px;color:#4b5563;font-weight:500;cursor:pointer;transition:all .2s ease-in-out}.toggle-btn.active{background-color:#fff;color:#3b82f6;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.filters-row{display:flex;gap:1rem;align-items:center;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.filters-row>.react-select-container{flex:1;min-width:180px}.filters-row .react-select__placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-filter-input{padding:8px 12px;border-radius:4px;border:1px solid hsl(0,0%,80%);font-size:16px;height:38px;box-sizing:border-box}.clear-filters-btn{padding:10px 20px;border:none;background-color:#ef4444;color:#fff;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s;height:38px;box-sizing:border-box;flex-shrink:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:#6b7280}.loading-spinner{border:4px solid #f3f4f6;border-top:4px solid #3b82f6;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.class-card-modern{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;display:flex;flex-direction:column;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.class-card-modern:hover{transform:translateY(-5px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.class-card-header{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f3f4f6}.class-subject-badge{background-color:#eef2ff;color:#4f46e5;padding:.25rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500}.cancel-class-icon{background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;border-radius:50%}.cancel-class-icon:hover{background:#f3f4f6;color:#ef4444}.class-card-body{padding:1.5rem;flex-grow:1}.class-info-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem;margin-bottom:1rem}.class-info-row:last-child{margin-bottom:0}.info-label{color:#535c6b;font-weight:500}.info-value{color:#111827;font-weight:500;text-align:right}.teacher-name{font-weight:600}.duration-badge{background:#f0fdf4;color:#16a34a;padding:.2rem .6rem;border-radius:6px;font-size:.8rem}.class-card-footer{padding:1rem 1.5rem;background:#f9fafb;border-top:1px solid #f3f4f6;display:flex;justify-content:flex-end}.cancel-class-btn{display:inline-flex;align-items:center;gap:.5rem;padding:8px 16px;border:none;background-color:#fee2e2;color:#ef4444;border-radius:6px;cursor:pointer;font-weight:600;transition:background-color .2s}.cancel-class-btn:hover{background-color:#fecaca}.empty-state{grid-column:1 / -1;text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state p{font-size:1.125rem;color:#6b7280}.status-badge{padding:.2rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:600;text-transform:capitalize}.status-scheduled,.status-rescheduled{background-color:#dbeafe;color:#2563eb}.status-cancelled{background-color:#fee2e2;color:#ef4444}.status-completed{background-color:#dcfce7;color:#16a34a}
