@media (width<=768px){.blob,.ring,.wave,.particle,.grid-pattern{will-change:auto!important;animation:none!important}.gradient-overlay.animated{animation:30s infinite gradientFlow}.particle-canvas,.particles-container{display:none!important}.blob{opacity:.2;filter:blur(60px)}.card:hover,.mobile-card:active,.btn:hover,.btn-icon:hover{transform:none!important}}.login-card.enhanced,.header,.card{backface-visibility:hidden;-webkit-font-smoothing:antialiased;transform:translateZ(0)}.login-card.modern{border-radius:20px;max-width:420px;padding:0;overflow:hidden;box-shadow:0 20px 60px #00000026}.login-logo{text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:40px 0 30px}.logo-icon{font-size:72px}@media (width>=769px){.logo-icon{animation:3s ease-in-out infinite float}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header{text-align:center;padding:30px 40px 20px}.login-header h1{color:#1e293b;margin:0 0 8px;font-size:28px;font-weight:700}.login-header p{color:#64748b;margin:0;font-size:14px}.login-form{padding:0 40px 40px}.form-group label{color:#334155;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.label-icon{font-size:16px}.input.modern{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;width:100%;padding:14px 16px;font-size:15px;transition:all .3s}.input.modern:focus{background:#fff;border-color:#667eea;outline:none;box-shadow:0 0 0 4px #667eea1a}.error-message.modern{color:#dc2626;background:#fee2e2;border:1px solid #fecaca;border-radius:12px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:14px;display:flex}@media (width>=769px){.error-message.modern{animation:.4s shake}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-icon{font-size:18px}.btn.modern{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-size:16px;font-weight:600;transition:all .3s;display:flex}@media (width>=769px){.btn.modern:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea4d}}.btn.modern:active:not(:disabled){transform:translateY(0)}.btn.modern:disabled{opacity:.7;cursor:not-allowed}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.header-content{justify-content:space-between;align-items:center;gap:20px;display:flex}.header-left h1{margin:0;font-size:24px}.header-center{flex:1;justify-content:center;display:flex}.welcome-message{flex-direction:column;align-items:center;gap:2px;display:flex}.welcome-text{color:#fffc;font-size:13px;font-weight:500}.staff-name{color:#fff;text-shadow:0 2px 4px #0000001a;font-size:18px;font-weight:700}.timetable-header-info{text-align:center;background:linear-gradient(135deg,#667eea20 0%,#764ba220 100%);border-radius:12px;margin-bottom:20px;padding:20px}.timetable-header-info h3{color:#1e293b;margin:0 0 5px;font-size:20px}.timetable-header-info p{color:#64748b;margin:0;font-size:14px}.login-container{place-items:center;height:100vh;padding:12px;display:grid}.login-box{backdrop-filter:blur(20px);background:#fffffffa;border-radius:24px;width:100%;max-width:450px;padding:50px 40px;box-shadow:0 20px 60px #0000004d}.login-title{text-align:center;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2) text;margin-bottom:8px;font-size:2.2em;font-weight:800}.login-subtitle{text-align:center;color:#64748b;margin-bottom:35px;font-size:15px;font-weight:600}.input-wrapper{margin-bottom:20px;position:relative}.input-icon{z-index:1;font-size:20px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.input-wrapper input{padding-left:50px}.staff-name-display{backdrop-filter:blur(10px);background:#fff3;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:10px 30px;display:flex}.staff-label{color:#ffffffe6;text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:500}.staff-name-text{color:#fff;text-shadow:0 2px 4px #0003;font-size:20px;font-weight:700}.timetable-info-header{text-align:center;background:linear-gradient(135deg,#667eea20 0%,#764ba220 100%);border-radius:12px;margin-bottom:20px;padding:20px}.timetable-info-header h3{color:#1e293b;margin:0 0 8px;font-size:20px;font-weight:600}.timetable-info-header p{color:#64748b;margin:0;font-size:14px}.timetable-container{margin:20px 0;overflow-x:auto}.timetable{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden;box-shadow:0 2px 8px #0000001a}.day-header,.period-header{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:15px;font-size:14px;font-weight:600}.day-cell{text-align:center;color:#334155;background:#f8fafc;border-right:2px solid #e2e8f0;padding:15px;font-weight:600}.period-cell{text-align:center;border:1px solid #e2e8f0;min-width:120px;padding:12px}.period-cell.class-period{background:linear-gradient(135deg,#e0e7ff 0%,#ddd6fe 100%)}.period-cell.free-period{background:#f1f5f9}.period-content{flex-direction:column;align-items:center;gap:4px;display:flex}.subject-name{color:#1e293b;font-size:13px;font-weight:600}.class-name{color:#64748b;font-size:11px;font-weight:500}.period-content.free .subject-name{color:#94a3b8;font-weight:500}*{box-sizing:border-box;margin:0;padding:0}body{background:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}.animated-bg.enhanced{z-index:-1;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.particle-canvas{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.gradient-overlay.animated{z-index:0;background:linear-gradient(45deg,#667eea66 0%,#764ba266 25%,#f093fb66 50%,#667eea66 75%,#764ba266 100%) 0 0/400% 400%;width:100%;height:100%;animation:15s infinite gradientFlow;position:absolute}@keyframes gradientFlow{0%,to{background-position:0%}50%{background-position:100%}}.blob{filter:blur(40px);opacity:.3;z-index:2;border-radius:40% 60% 70% 30%/40% 50% 60%;position:absolute}@media (width>=769px){.blob{animation-timing-function:ease-in-out;animation-iteration-count:infinite}.blob-1{animation:20s ease-in-out infinite morphBlob1}.blob-2{animation:25s ease-in-out infinite morphBlob2}.blob-3{animation:30s ease-in-out infinite morphBlob3}.blob-4{animation:22s ease-in-out infinite morphBlob4}.blob-5{animation:28s ease-in-out infinite morphBlob5}}.blob-1{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);width:400px;height:400px;top:10%;left:5%}.blob-2{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);width:350px;height:350px;bottom:10%;right:10%}.blob-3{background:linear-gradient(135deg,#43e97b 0%,#38f9d7 100%);width:300px;height:300px;top:50%;left:50%;transform:translate(-50%,-50%)}.blob-4{background:linear-gradient(135deg,#fa709a 0%,#fee140 100%);width:320px;height:320px;top:20%;right:20%}.blob-5{background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%);width:280px;height:280px;bottom:20%;left:15%}@keyframes morphBlob1{0%,to{border-radius:40% 60% 70% 30%/40% 50% 60%;transform:translate(0)rotate(0)scale(1)}33%{border-radius:70% 30% 50% 50%/60% 40%;transform:translate(50px,-30px)rotate(120deg)scale(1.1)}66%{border-radius:50% 50% 30% 70%/50% 60% 40%;transform:translate(-30px,50px)rotate(240deg)scale(.9)}}@keyframes morphBlob2{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:translate(0)rotate(0)scale(1)}33%{border-radius:30% 70% 70% 30%/40% 60%;transform:translate(-40px,40px)rotate(-120deg)scale(1.15)}66%{border-radius:70% 30% 40% 60%/30% 70% 60% 40%;transform:translate(40px,-40px)rotate(-240deg)scale(.85)}}@keyframes morphBlob3{0%,to{border-radius:50%;transform:translate(-50%,-50%)rotate(0)scale(1)}50%{border-radius:70% 30% 30% 70%/70% 70% 30% 30%;transform:translate(calc(40px - 50%),calc(-50% - 40px))rotate(180deg)scale(1.2)}}@keyframes morphBlob4{0%,to{border-radius:45% 55% 60% 40%/50% 40% 60% 50%;transform:translate(0)rotate(0)}50%{border-radius:60% 40% 50% 50%/40% 60%;transform:translate(-35px,35px)rotate(180deg)}}@keyframes morphBlob5{0%,to{border-radius:40% 60% 60% 40%/60% 30% 70% 40%;transform:translate(0)scale(1)}50%{border-radius:60% 40% 40% 60%/40% 60%;transform:translate(40px,-30px)scale(1.1)}}.ring{z-index:3;border:2px solid #ffffff1a;border-radius:50%;position:absolute}@media (width>=769px){.ring-1{animation:30s linear infinite rotateRing}.ring-2{animation:40s linear infinite reverse rotateRing}.ring-3{animation:50s linear infinite rotateRing}}.ring-1{width:500px;height:500px;top:30%;left:20%}.ring-2{width:400px;height:400px;bottom:20%;right:25%}.ring-3{width:600px;height:600px;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes rotateRing{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.waves{z-index:4;width:100%;height:200px;position:absolute;bottom:0;overflow:hidden}.wave{background:#ffffff0d;border-radius:1000px 1000px 0 0;width:200%;height:100%;position:absolute;bottom:0;left:0}@media (width>=769px){.wave-1{animation:15s linear infinite waveMove}.wave-2{animation:20s linear -5s infinite reverse waveMove}.wave-3{animation:25s linear -10s infinite waveMove}}.wave-1{opacity:.3}.wave-2{opacity:.2}.wave-3{opacity:.1}@keyframes waveMove{0%{transform:translate(0)scaleY(1)}50%{transform:translate(-25%)scaleY(.8)}to{transform:translate(-50%)scaleY(1)}}.particles-container{z-index:5;width:100%;height:100%;position:absolute;overflow:hidden}.particle{pointer-events:none;background:#ffffff26;border-radius:50%;position:absolute;box-shadow:0 0 20px #ffffff4d}@media (width>=769px){.particle{animation:linear infinite particleFloat}}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh)rotate(0)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px)rotate(360deg)}}.grid-pattern{opacity:.5;z-index:6;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:50px 50px;width:100%;height:100%;position:absolute}@media (width>=769px){.grid-pattern{animation:20s linear infinite gridMove}}@keyframes gridMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.login-card.enhanced{backdrop-filter:blur(25px);opacity:0;background:#fffffffa;border-radius:24px;width:100%;max-width:480px;transition:all .8s cubic-bezier(.34,1.56,.64,1);overflow:hidden;transform:translateY(30px)scale(.95);box-shadow:0 25px 60px #0000004d,inset 0 0 0 1px #ffffff4d}.login-card.enhanced.mounted{opacity:1;transform:translateY(0)scale(1)}.login-logo-section{text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:24px 32px 18px;position:relative;overflow:hidden}@media (width>=769px){.login-logo-section:before{content:"";background:radial-gradient(circle,#ffffff26 0%,#0000 70%);width:200%;height:200%;animation:10s ease-in-out infinite logoShine;position:absolute;top:-50%;left:-50%}}@keyframes logoShine{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(20%,20%)rotate(180deg)}}.logo-circle{backdrop-filter:blur(10px);z-index:1;background:#ffffff40;border:3px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;margin:0 auto 20px;display:flex;position:relative;box-shadow:0 10px 30px #0003,inset 0 0 20px #ffffff1a}@media (width>=769px){.logo-circle{animation:4s ease-in-out infinite logoFloat}}@keyframes logoFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-12px)rotate(5deg)}}.logo-icon{filter:drop-shadow(0 4px 12px #0000004d);font-size:48px}.logo-img{filter:drop-shadow(0 4px 12px #0000004d);object-fit:contain;width:56px;height:56px}.login-main-title{color:#fff;text-shadow:0 2px 15px #0003;z-index:1;letter-spacing:-.5px;margin:0 0 8px;font-size:30px;font-weight:800;position:relative}.login-tagline{color:#fffffff2;z-index:1;letter-spacing:.3px;margin:0;font-size:15px;font-weight:500;position:relative}.login-form-enhanced{padding:30px 45px 35px}.form-header{text-align:center;margin-bottom:28px}.form-title{color:#1e293b;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2) text;margin:0 0 8px;font-size:26px;font-weight:700}.form-subtitle{color:#64748b;margin:0;font-size:14px;font-weight:500}.input-group.enhanced{margin-bottom:24px;position:relative}.input-icon-wrapper{z-index:2;pointer-events:none;font-size:20px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:18px;transform:translateY(-50%)}@media (width>=769px){.input-group.enhanced:focus-within .input-icon-wrapper{filter:brightness(1.2);transform:translateY(-50%)scale(1.1)}}.input-field{width:100%;font-family:inherit;font-weight:500;position:relative;color:#1e293b!important;background:#f8fafc!important;border:2px solid #e2e8f0!important;border-radius:14px!important;padding:16px 52px!important;font-size:15px!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.input-field:focus{background:#fff!important;border-color:#667eea!important;outline:none!important;box-shadow:0 0 0 4px #667eea1f,0 4px 15px #667eea26!important}@media (width>=769px){.input-field:focus{transform:translateY(-1px)}}.input-field:disabled{opacity:.6;cursor:not-allowed;background:#f1f5f9!important}.floating-label{color:#94a3b8;pointer-events:none;background:0 0;padding:0 8px;font-size:15px;font-weight:500;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:absolute;top:50%;left:52px;transform:translateY(-50%)}.input-field:focus+.floating-label,.floating-label.active{color:#667eea;background:#fff;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;top:-2px;left:48px;box-shadow:0 2px 8px #00000014}.input-underline{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;width:0;height:3px;transition:width .5s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:0;box-shadow:0 2px 10px #667eea80}.input-group.enhanced:focus-within .input-underline{width:100%}.password-toggle{cursor:pointer;z-index:2;background:0 0;border:none;border-radius:8px;padding:6px;font-size:20px;transition:all .2s;position:absolute;top:50%;right:18px;transform:translateY(-50%)}@media (width>=769px){.password-toggle:hover{background:#f1f5f9;transform:translateY(-50%)scale(1.15)}}.password-toggle:active{transform:translateY(-50%)scale(1.05)}.password-toggle:disabled{opacity:.4;cursor:not-allowed}.form-options{justify-content:space-between;align-items:center;margin-bottom:24px;font-size:13px;display:flex}.remember-checkbox{cursor:pointer;user-select:none;align-items:center;gap:8px;display:flex;position:relative}.remember-checkbox input[type=checkbox]{opacity:0;cursor:pointer;position:absolute}.checkbox-custom{background:#fff;border:2px solid #cbd5e1;border-radius:7px;flex-shrink:0;width:20px;height:20px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.remember-checkbox input[type=checkbox]:checked+.checkbox-custom{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}@media (width>=769px){.remember-checkbox input[type=checkbox]:checked+.checkbox-custom{transform:scale(1.05)}}.remember-checkbox input[type=checkbox]:checked+.checkbox-custom:after{content:"✓";color:#fff;font-size:14px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.checkbox-label{color:#475569;font-weight:500}.forgot-link{color:#667eea;font-weight:600;text-decoration:none;transition:all .2s;position:relative}.forgot-link:after{content:"";background:#667eea;width:0;height:2px;transition:width .3s;position:absolute;bottom:-2px;left:0}.forgot-link:hover:after{width:100%}.btn-login.enhanced{color:#fff;cursor:pointer;letter-spacing:.5px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;margin-bottom:0;padding:16px;font-size:16px;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 6px 20px #667eea66}@media (width>=769px){.btn-login.enhanced:before{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:100%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.btn-login.enhanced:hover:before{left:100%}.btn-login.enhanced:hover{transform:translateY(-3px);box-shadow:0 10px 35px #667eea80,0 0 0 4px #667eea26}}.btn-login.enhanced:active{transform:translateY(-1px)}.btn-login.enhanced:disabled{opacity:.8;cursor:not-allowed;transform:none!important}.btn-arrow{font-size:20px;transition:transform .3s cubic-bezier(.4,0,.2,1)}@media (width>=769px){.btn-login.enhanced:hover .btn-arrow{transform:translate(6px)}}.spinner-circle{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spinRotate}@keyframes spinRotate{to{transform:rotate(360deg)}}.role-info,.login-footer{display:none!important}.staff-name-box{backdrop-filter:blur(10px);background:#fff3;border-radius:10px;flex-direction:column;align-items:center;padding:8px 24px;display:flex}.welcome-box{backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:10px;flex-direction:column;align-items:flex-end;padding:8px 16px;display:flex}.user-name-text{color:#fff;text-shadow:0 2px 4px #0003;font-size:16px;font-weight:700}.theme-toggle{backdrop-filter:blur(10px);cursor:pointer;background:#ffffff26;border:1px solid #fff3;border-radius:10px;width:40px;height:40px;font-size:20px;transition:all .3s}@media (width>=769px){.theme-toggle:hover{background:#ffffff40;transform:scale(1.05)}}.timetable-info{text-align:center;background:linear-gradient(135deg,#667eea20 0%,#764ba220 100%);border-radius:12px;margin-bottom:20px;padding:20px}.timetable-info h3{color:#1e293b;margin:0 0 8px;font-size:20px}.timetable-info p{color:#64748b;margin:0;font-size:14px}.header{backdrop-filter:blur(20px);z-index:1000;background:#fffffff2;border-bottom:1px solid #e2e8f0;padding:20px 30px;position:sticky;top:0;box-shadow:0 2px 10px #0000000d}.header-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;max-width:1400px;margin:0 auto;display:flex}.header h1{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2) text;font-size:1.6em;font-weight:800}.header-actions{align-items:center;gap:12px;display:flex}.header-right{align-items:center;gap:15px;display:flex}.content{max-width:1400px;margin:0 auto;padding:30px 20px}.section{margin-bottom:40px;animation:.3s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.section-header{border-bottom:3px solid #667eea;align-items:center;gap:15px;margin-bottom:25px;padding-bottom:15px;display:flex}.section-icon{font-size:32px}.section-title{color:#1e293b;font-size:1.6em;font-weight:700}.card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;margin-bottom:20px;padding:30px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px #00000014}@media (width>=769px){.card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}}.card h3{color:#1e293b;margin-bottom:20px;font-size:1.3em;font-weight:700}.form-group{margin-bottom:20px}label{color:#475569;margin-bottom:8px;font-size:14px;font-weight:600;display:block}input,select{color:#1e293b;background:#fff;border:2px solid #e2e8f0;border-radius:12px;width:100%;padding:14px;font-size:15px;transition:border-color .2s,box-shadow .2s}input::placeholder{color:#94a3b8}input:focus,select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.grid-2{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;display:grid}.checkbox-group{background:#f8fafc;border-radius:10px;align-items:center;gap:10px;margin:15px 0;padding:12px;display:flex}.checkbox-group input[type=checkbox]{cursor:pointer;width:18px;height:18px}.btn{cursor:pointer;border:none;border-radius:12px;padding:14px 28px;font-size:16px;font-weight:600;transition:all .15s;display:inline-block;position:relative;overflow:hidden}@media (width>=769px){.btn:before{content:"";background:#fff3;border-radius:50%;width:0;height:0;transition:width .2s,height .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn:active:before{width:200px;height:200px}}.btn-primary{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea4d}@media (width>=769px){.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:#fff;background:#64748b}@media (width>=769px){.btn-secondary:hover{background:#475569;transform:translateY(-2px)}}.btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}@media (width>=769px){.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}}.btn-success{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}@media (width>=769px){.btn-success:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}}.btn-sm{padding:10px 20px;font-size:14px}.btn-lg{width:100%;padding:18px 40px;font-size:18px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.button-group{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.action-buttons{justify-content:center;align-items:center;gap:8px;display:flex}.btn-icon{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;transition:all .15s;display:flex}.btn-icon-primary{color:#1e40af;background:#dbeafe}@media (width>=769px){.btn-icon-primary:hover{color:#fff;background:#3b82f6;transform:scale(1.08)}}.btn-icon-danger{color:#991b1b;background:#fee2e2}@media (width>=769px){.btn-icon-danger:hover{color:#fff;background:#ef4444;transform:scale(1.08)}}.badge{border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.badge-success{color:#fff;background:#10b981}.badge-danger{color:#fff;background:#ef4444}.staff-badge{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}.desktop-table{display:block}table{border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;overflow:hidden}th,td{text-align:left;color:#1e293b;padding:14px}th{color:#fff;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#667eea,#764ba2);font-size:13px;font-weight:600}tr{background:#fff;transition:background .15s}@media (width>=769px){tr:hover{background:#f8fafc}}td{border-bottom:1px solid #f1f5f9}.mobile-cards{display:none}.mobile-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:15px;padding:20px;transition:transform .2s;box-shadow:0 2px 10px #0000000d}.mobile-card:active{transform:scale(.99)}.mobile-card-header{border-bottom:2px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:12px;display:flex}.mobile-card-title{color:#1e293b;font-size:1.1em;font-weight:700}.mobile-card-badge{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:4px 12px;font-size:12px;font-weight:700}.mobile-card-body{flex-direction:column;gap:8px;display:flex}.mobile-card-row{justify-content:space-between;padding:6px 0;display:flex}.mobile-card-label{color:#64748b;font-size:13px;font-weight:600}.mobile-card-value{color:#1e293b;font-size:14px;font-weight:700}.mobile-card-actions{gap:8px;margin-top:12px;display:flex}.hours-tracker{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;margin-bottom:20px;padding:25px;box-shadow:0 4px 20px #667eea4d}.hours-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px;display:grid}.hours-item{text-align:center}.hours-label{opacity:.9;margin-bottom:8px;font-size:13px}.hours-value{font-size:2.2em;font-weight:800}.progress-bar{background:#ffffff4d;border-radius:10px;width:100%;height:10px;overflow:hidden}.progress-fill{background:#fff;border-radius:10px;height:100%;transition:width .4s}.info-box{color:#475569;background:#f8fafc;border-radius:12px;margin-bottom:25px;padding:20px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px;display:grid}.stat-card{color:#fff;text-align:center;border-radius:12px;padding:20px;transition:transform .2s}@media (width>=769px){.stat-card:hover{transform:translateY(-3px)}}.stat-primary{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-success{background:linear-gradient(135deg,#10b981,#059669)}.stat-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-label{opacity:.9;margin-bottom:8px;font-size:13px}.stat-value{font-size:2.5em;font-weight:800}.timetable-container{background:#f8fafc;border-radius:16px;margin-bottom:40px;padding:20px}.timetable-title{color:#1e293b;margin-bottom:15px;font-size:1.2em;font-weight:700}.timetable-scroll{-webkit-overflow-scrolling:touch;margin-bottom:15px;overflow-x:auto}.timetable-scroll::-webkit-scrollbar{height:8px}.timetable-scroll::-webkit-scrollbar-track{background:#e2e8f0;border-radius:4px}.timetable-scroll::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.timetable-scroll::-webkit-scrollbar-thumb:hover{background:#5568d3}.timetable-actions{flex-wrap:wrap;gap:10px;display:flex}.timetable-grid{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:120px repeat(6,1fr);gap:0;min-width:800px;display:grid;overflow:hidden}.timetable-header{color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid #ffffff1a;padding:14px;font-size:13px;font-weight:700}.timetable-day{color:#1e293b;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;justify-content:center;align-items:center;padding:14px;font-weight:700;display:flex}.timetable-cell{text-align:center;background:0 0;border:1px solid #e2e8f0;flex-direction:column;justify-content:center;align-items:center;min-height:70px;padding:12px;transition:all .2s;display:flex}@media (width>=769px){.timetable-cell:hover{z-index:10;transform:scale(1.02);box-shadow:0 4px 12px #00000014}}.subject-name{color:#1e293b;margin-bottom:4px;font-size:14px;font-weight:700}.teacher-name{color:#64748b;font-size:12px;font-weight:600}.subject-core{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-left:4px solid #3b82f6}.subject-elective{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b}.subject-lab{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-left:4px solid #10b981}.subject-free{color:#94a3b8;background:#f8fafc}.toast-container{z-index:10000;width:500px;max-width:90%;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.toast{backdrop-filter:blur(20px);border-radius:12px;align-items:center;gap:12px;margin-top:12px;padding:18px 24px;animation:.2s slideUp;display:flex;box-shadow:0 8px 32px #0003}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.toast-success{color:#fff;background:linear-gradient(135deg,#10b981f2,#059669f2)}.toast-error{color:#fff;background:linear-gradient(135deg,#ef4444f2,#dc2626f2)}.toast-icon{font-size:24px}.toast-text{flex:1;font-weight:600}.dept-group{background:#ffffffb3;border:1px solid #94a3b859;border-radius:14px;margin:20px 0;padding:16px;box-shadow:0 8px 24px #00000014}.dept-chip{color:#0f172a;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:9999px;margin-bottom:12px;padding:6px 10px;font-size:14px;font-weight:700;display:inline-block}.class-box{background:#fff;border:1px solid #94a3b859;border-radius:12px;margin-bottom:12px;padding:14px;box-shadow:0 4px 12px #0000000f}.export-fixed.timetable-grid{grid-template-columns:140px repeat(6,160px);min-width:auto}.export-fixed table.timetable{width:1400px}.export-fixed .period-cell{min-width:160px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.login-card.enhanced,.header,.card,.btn{backface-visibility:hidden;-webkit-font-smoothing:antialiased;transform:translateZ(0)}@media print{.no-print,.header-actions,.btn,.action-buttons{display:none!important}.animated-bg{display:none}body{background:#fff}.card{box-shadow:none;page-break-inside:avoid;border:1px solid #ddd}.header{color:#000!important;background:#fff!important}}:focus-visible{outline-offset:2px;outline:2px solid #667eea}html,*{scroll-behavior:smooth}@media (width<=768px){.animated-bg.enhanced{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.blob-4,.blob-5,.ring,.wave,.particles-container,.particle-canvas,.grid-pattern{display:none!important}.blob-1,.blob-2,.blob-3{opacity:.15;filter:blur(80px);will-change:auto;animation:none!important}.login-box{padding:35px 25px}.login-title{font-size:1.8em}.header{padding:15px 20px}.header h1{font-size:1.2em}.content{padding:20px 15px}.section{margin-bottom:30px}.card{padding:20px}.grid-2{grid-template-columns:1fr}.desktop-table{display:none}.mobile-cards{display:block}.hours-grid{grid-template-columns:1fr;gap:10px}.stats-grid{grid-template-columns:1fr}.button-group{flex-direction:column}.button-group .btn{width:100%}.timetable-scroll{border:2px solid #667eea;border-radius:12px;padding:10px}.timetable-grid{grid-template-columns:80px repeat(6,minmax(100px,1fr));font-size:12px}.timetable-header,.timetable-day{padding:10px;font-size:11px}.timetable-cell{min-height:60px;padding:8px}.subject-name{font-size:12px}.teacher-name{font-size:10px}.toast-container{width:calc(100% - 30px)}}@media (width<=480px){.animated-bg.enhanced{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.blob,.ring,.wave,.particles-container,.particle-canvas,.grid-pattern,.gradient-overlay{display:none!important}.header{padding:12px 14px}.header h1{font-size:1em}.content{padding:14px 12px}.card{border-radius:12px;padding:16px}.section{margin-bottom:24px}.section-title{font-size:1.1em}.btn{border-radius:10px;padding:12px 16px;font-size:15px}.btn-sm{width:100%}.button-group{flex-direction:column;gap:8px}.action-buttons{gap:6px}.btn-icon{width:36px;height:36px;font-size:14px}.dept-group{border-radius:12px;padding:12px}.dept-chip{padding:5px 8px;font-size:12px}.class-box{box-shadow:none;border-radius:10px;padding:10px}.timetable-title{margin-bottom:10px;font-size:1.05em}.timetable-grid{grid-template-columns:70px repeat(6,minmax(90px,1fr))}.timetable-header,.timetable-day{padding:8px;font-size:10px}.timetable-cell{min-height:54px;padding:6px}.subject-name{font-size:11px}.teacher-name{font-size:9px}.login-card.enhanced{border-radius:16px;margin:10px}.login-form-enhanced{padding:20px 25px 25px}.logo-circle{width:70px;height:70px;margin-bottom:15px}.logo-icon{font-size:36px}.login-main-title{font-size:24px}.login-tagline{font-size:13px}.form-title{font-size:22px}.input-field{padding:14px 48px!important;font-size:14px!important}.input-icon-wrapper{font-size:18px;left:16px}.password-toggle{font-size:18px;right:16px}}@media (width<=768px){html{text-size-adjust:100%}button,.btn,.btn-icon,input[type=checkbox],input[type=radio],a{min-width:44px;min-height:44px}.action-buttons .btn-icon{min-width:40px;min-height:40px}.timetable-scroll,.content,.card{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}@media (width<=768px) and (resolution<=1x){.card,.timetable-cell,.mobile-card{box-shadow:none;border:1px solid #e2e8f0}.btn-primary,.btn-success,.btn-danger{box-shadow:none}.login-card.enhanced{box-shadow:0 10px 30px #0003}}@media (width<=768px){.login-container{height:auto;min-height:-webkit-fill-available}input,select,textarea{font-size:16px!important}*{-webkit-tap-highlight-color:#667eea33;tap-highlight-color:#667eea33}}.segmented-nav{backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff26;border-radius:9999px;gap:2px;width:fit-content;margin:18px auto 6px;padding:8px;display:flex}.segmented-item{appearance:none;color:#ffffffd9;cursor:pointer;background:0 0;border:none;border-radius:9999px;outline:none;padding:10px 16px;font-size:14px;font-weight:700;transition:all .2s}.segmented-item:hover{color:#fff;background:#ffffff1a}.segmented-item.active{color:#fff;background:linear-gradient(135deg,#a855f7,#6366f1);box-shadow:0 8px 20px #6366f159}@media (width<=768px){.segmented-nav{backdrop-filter:none;box-shadow:none;background:#ffffff1f;border:1px solid #ffffff1a;margin:12px auto 0;padding:6px}.segmented-item{padding:8px 12px;font-size:13px;transition:none}}@media (prefers-reduced-motion:reduce){.segmented-item,.btn,.card,.header,.timetable-cell{transition:none!important;animation:none!important}}
/*# sourceMappingURL=public.454ef14a.css.map */
