@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";.photo-section{display:flex;flex-direction:column;align-items:center}.photo-container{position:relative;cursor:pointer;transition:transform .3s ease}.photo-container:hover{transform:scale(1.05)}.photo-circle{width:120px;height:120px;border-radius:50%;border:4px solid #1a237e;background:#f8f9ff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 8px 20px #1a237e33;transition:all .3s ease}.photo-circle.error{border-color:#f44336;box-shadow:0 0 0 3px #f4433633}.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#1a237e;text-align:center}.photo-placeholder span{font-size:12px;font-weight:500;margin-top:4px}.required-asterisk{color:#f44336;font-size:16px;font-weight:700;margin-left:4px}.photo-preview{width:100%;height:100%;object-fit:cover;border-radius:50%}.photo-hint{margin-top:12px;font-size:12px;color:#666;text-align:center;font-style:italic}.error-message{color:#f44336;font-size:12px;margin-top:4px;font-weight:500;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.form-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,#8798e4c4,#d1bbe799)}.form-card{background:#fff;border-radius:15px;padding:40px;box-shadow:0 15px 35px #0000001a;width:100%;max-width:500px;animation:slideUp .5s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.form-title{text-align:center;color:#1a237e;font-size:28px;font-weight:700;margin-bottom:30px;position:relative}.form-title:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(90deg,#1a237e,#3949ab);border-radius:2px}.registration-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#1a237e;font-size:14px;margin-bottom:5px}.form-group input,.form-group select{padding:14px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;font-family:inherit;transition:all .3s ease;background:#fff;width:100%;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1a237e;box-shadow:0 0 0 3px #1a237e1a;background:#f8f9ff}.form-group input::placeholder{color:#999;font-style:italic}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a237e' 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;background-size:16px;padding-right:40px}.form-group select:hover{border-color:#3949ab}.form-group input[type=file]{padding:12px;border:2px dashed #1a237e;background:#f8f9ff;cursor:pointer}.form-group input[type=file]:hover{background:#f0f2ff;border-color:#3949ab}.file-hint{font-size:12px;color:#666;margin-top:4px;font-style:italic}.submit-btn{padding:16px 24px;background:linear-gradient(135deg,#1a237e,#3949ab);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px;text-transform:uppercase;letter-spacing:.5px}.submit-btn:hover{background:linear-gradient(135deg,#3949ab,#1a237e);transform:translateY(-2px);box-shadow:0 8px 20px #1a237e4d}.submit-btn:active{transform:translateY(0)}@media(max-width:768px){.form-container{padding:10px}.form-card{padding:30px 20px;margin:20px 0}.form-title{font-size:24px}.form-group input,.form-group select{padding:12px 14px;font-size:15px}.submit-btn{padding:14px 20px;font-size:15px}}@media(max-width:480px){.form-card{padding:25px 15px}.form-title{font-size:20px}.registration-form{gap:15px}.form-group input,.form-group select{padding:10px 12px;font-size:14px}}.submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.form-group.error input,.form-group.error select{border-color:#f44336;box-shadow:0 0 0 3px #f443361a}.form-group.success input,.form-group.success select{border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.error-message{color:#f44336;font-size:12px;margin-top:4px}.radio-group label{font-weight:500;color:#1a237e;font-size:16px}.radio-group input[type=radio]{accent-color:#1a237e;transform:scale(1.2)}.file-upload-box{border:2px dashed #1a237e;background:#f8f9ff;border-radius:8px;padding:15px;text-align:center;cursor:pointer;transition:all .3s ease;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#1a237e;font-weight:500}.file-upload-box:hover{background:#f0f2ff;border-color:#3949ab}.file-preview-small{max-width:100%;max-height:120px;border-radius:4px;object-fit:contain}.scanner-wrapper{background:linear-gradient(145deg,#fff,#f0f4f8);padding:40px;border-radius:24px;text-align:center;box-shadow:0 20px 50px #00000014,inset 0 0 0 1px #ffffff80;width:100%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scanner-title{color:#1a237e;margin-bottom:25px;font-size:26px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(90deg,#1a237e,#4a148c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.video-container{position:relative;width:100%;max-width:66.67vh;height:50vh;background:#111;border-radius:20px;overflow:hidden;margin:0 auto;box-shadow:0 15px 35px #0003;border:4px solid #fff}.live-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);opacity:.9}.scan-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,transparent 40%,rgba(0,0,0,.6) 100%)}.progress-circle-container{position:relative;width:220px;height:220px;display:flex;align-items:center;justify-content:center}.progress-svg{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.progress-track{fill:none;stroke:#ffffff26;stroke-width:6}.progress-fill{fill:none;stroke:#00e676;stroke-width:6;stroke-linecap:round;stroke-dasharray:283;transition:stroke-dashoffset .5s ease-out;filter:drop-shadow(0 0 8px rgba(0,230,118,.7))}.progress-fill.completed{animation:pulseFill 1.5s ease-out infinite}@keyframes pulseFill{0%{filter:drop-shadow(0 0 8px rgba(0,230,118,.7));transform:scale(1)}50%{filter:drop-shadow(0 0 20px rgba(0,230,118,1));transform:scale(1.02)}to{filter:drop-shadow(0 0 8px rgba(0,230,118,.7));transform:scale(1)}}.progress-value{font-size:3rem;color:#fff;font-weight:900;text-shadow:0 4px 15px rgba(0,0,0,.8);position:absolute;z-index:2}.warning-banner{position:absolute;top:25px;background:#ff3d00f2;color:#fff;padding:12px 25px;border-radius:30px;font-weight:700;font-size:15px;z-index:10;box-shadow:0 10px 25px #ff3d0066;animation:popInWarning .4s cubic-bezier(.175,.885,.32,1.275);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}@keyframes popInWarning{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.button-group{margin-top:35px;display:flex;justify-content:center;gap:20px}.btn-start{background:linear-gradient(135deg,#ffb75e,#ed8f03);color:#fff;border:none;padding:15px 40px;border-radius:50px;font-size:16px;font-weight:800;cursor:pointer;transition:all .3s cubic-bezier(.25,.8,.25,1);box-shadow:0 8px 20px #ed8f0366;text-transform:uppercase;letter-spacing:1px}.btn-start:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 12px 25px #ed8f0399}.btn-start:disabled{background:#e0e0e0;box-shadow:none;color:#9e9e9e;cursor:not-allowed;transform:none}.btn-cancel{background:#fff;color:#d32f2f;border:2px solid #ffcdd2;padding:15px 40px;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s}.btn-cancel:hover{background:#fff5f5;border-color:#d32f2f;box-shadow:0 8px 20px #d32f2f26}@media(max-width:768px){.scanner-wrapper{padding:20px}.scanner-title{font-size:18px;margin-bottom:15px}.video-container{height:40vh;max-width:53.33vh;border-radius:12px}.progress-circle-container{width:180px;height:180px}.progress-value{font-size:2.5rem}.button-group{flex-direction:column;gap:10px}.btn-start,.btn-cancel{padding:10px 20px;font-size:14px;width:100%}}@media(max-width:480px){.scanner-wrapper{padding:15px;border-radius:15px}.scanner-title{font-size:16px;margin-bottom:12px}.video-container{height:35vh;max-width:46.67vh;border-radius:10px}.progress-circle-container{width:140px;height:140px}.progress-value{font-size:2rem}.button-group{margin-top:15px}.btn-start,.btn-cancel{padding:8px 16px;font-size:12px}}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .3s ease-out}.popup-card{background:#fff;padding:40px;border-radius:24px;text-align:center;box-shadow:0 25px 50px -12px #00000080;max-width:450px;width:90%;animation:popIn .5s cubic-bezier(.175,.885,.32,1.275);border:1px solid rgba(255,255,255,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.8) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.success-icon{width:80px;height:80px;background:linear-gradient(135deg,#00b09b,#96c93d);color:#fff;font-size:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 25px;box-shadow:0 10px 20px #00b09b4d;animation:pulseIcon 2s infinite}@keyframes pulseIcon{0%{box-shadow:0 0 #00b09b66}70%{box-shadow:0 0 0 20px #00b09b00}to{box-shadow:0 0 #00b09b00}}.popup-card h3{color:#1e293b;font-size:24px;font-weight:800;margin-bottom:15px}.popup-card p{color:#475569}.btn-continue{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;padding:16px 30px;border:none;border-radius:50px;cursor:pointer;margin-top:30px;font-weight:800;font-size:16px;width:100%;transition:all .3s ease;box-shadow:0 10px 20px #4f46e54d}.btn-continue:hover{transform:translateY(-2px);box-shadow:0 15px 25px #4f46e566}.btn-success{background:linear-gradient(135deg,#00b09b,#96c93d)!important;color:#fff!important;box-shadow:0 8px 20px #00b09b66!important}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999}.sms-alert-box{background:#fff;width:360px;padding:30px;border-radius:20px;text-align:center;border-top:10px solid #1a237e;box-shadow:0 15px 35px #0000004d;animation:slideUp .4s ease-out}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.alert-header{font-size:.85rem;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:20px}.success-txt{color:#2e7d32;font-size:1.2rem;font-weight:700;margin-bottom:10px}.error-txt{color:#d32f2f;font-size:1.2rem;font-weight:700}.sms-footer{margin-top:20px;text-align:left;background:#f8f9fa;padding:15px;border-radius:12px}.sms-footer p{margin:5px 0;font-size:.9rem;color:#444}.wait-time{color:#1a237e;font-weight:700}.teacher-note{color:#d32f2f;font-weight:700;font-size:.85rem!important}.confirm-btn{margin-top:25px;width:100%;padding:14px;background:#1a237e;color:#fff;border:none;border-radius:10px;font-weight:700;cursor:pointer;transition:.3s}.confirm-btn:hover{background:#283593;transform:translateY(-2px)}.search-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#0f172a,#1a237e);color:#fff;padding:40px 20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.attendance-popup-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#020617b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1200}.attendance-popup-modal{width:min(92vw,440px);background:linear-gradient(180deg,#fff,#eef4ff);color:#0f172a;border-radius:24px;padding:28px 24px 22px;text-align:center;box-shadow:0 24px 60px #0f172a59;border:1px solid rgba(148,163,184,.25);animation:popupFadeIn .25s ease-out}.attendance-popup-icon{width:68px;height:68px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;background:linear-gradient(135deg,#f59e0b,#f97316);box-shadow:0 12px 24px #f9731647}.attendance-popup-modal h2{margin:0 0 10px;font-size:1.35rem;font-weight:800;color:#0f172a}.attendance-popup-modal p{margin:0;color:#334155;font-size:.98rem;line-height:1.65}.attendance-popup-time{margin:18px auto 0;padding:12px 16px;width:fit-content;max-width:100%;border-radius:999px;background:#2563eb1a;color:#1d4ed8;font-weight:700;font-size:.95rem}.attendance-popup-time span{color:#0f172a}.attendance-popup-btn{margin-top:22px;min-width:120px;border:none;border-radius:999px;padding:12px 22px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 12px 24px #2563eb3d}.attendance-popup-btn:hover{transform:translateY(-1px);box-shadow:0 16px 28px #2563eb47}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.search-title{font-size:26px;font-weight:800;margin-bottom:5px;text-shadow:0 4px 10px rgba(0,0,0,.5)}.search-status{font-size:13px;color:#94a3b8;margin-bottom:25px;height:18px}.search-video-container{position:relative;width:100%;max-width:600px;height:450px;background:#000;border-radius:20px;box-shadow:0 20px 50px #00000080;border:3px solid rgba(255,255,255,.1);overflow:hidden;margin-bottom:40px;display:flex;justify-content:center;align-items:center}.search-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.search-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,transparent 40%,rgba(0,0,0,.4) 100%)}.search-ring{width:250px;height:250px;border:2px dashed rgba(255,255,255,.3);border-radius:50%}.glowing-pulse{animation:glowPulse 2s infinite ease-in-out}@keyframes glowPulse{0%{box-shadow:0 0 10px #38bdf866;border-color:#38bdf84d}50%{box-shadow:0 0 30px #38bdf8cc,inset 0 0 15px #38bdf880;border-color:#38bdf8}to{box-shadow:0 0 10px #38bdf866;border-color:#38bdf84d}}.search-popup{position:absolute;bottom:25px;padding:12px 25px;border-radius:50px;font-size:15px;font-weight:800;letter-spacing:.5px;box-shadow:0 10px 30px #0009;animation:slideUp .4s cubic-bezier(.175,.885,.32,1.275);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.search-popup.recognized{background:#10b981e6;border:2px solid #059669;color:#fff}.search-popup.unknown{background:#ef4444e6;border:2px solid #b91c1c;color:#fff}.btn-back{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 25px;border-radius:50px;font-size:13px;cursor:pointer;transition:all .3s}.btn-back:hover{background:#fff3;border-color:#fff}.pin-form-container{background:#ffffff0d;padding:30px;border-radius:20px;border:1px solid rgba(255,255,255,.1);width:100%;max-width:400px;box-shadow:0 10px 40px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:30px}.pin-form-container .form-group{margin-bottom:25px}.pin-form-container label{display:block;margin-bottom:8px;font-size:12px;font-weight:600;color:#e2e8f0}.pin-input{width:100%;padding:12px 15px;font-size:19px;font-weight:700;letter-spacing:5px;text-align:center;background:#ffffffe6;border:2px solid rgba(255,255,255,.2);border-radius:12px;color:#000;outline:none;transition:all .3s ease}.pin-input:focus{border-color:#38bdf8;box-shadow:0 0 15px #38bdf84d}.topic-input{width:100%;padding:12px 15px;font-size:13px;font-weight:400;text-align:left;background:#ffffffe6;border:2px solid rgba(255,255,255,.2);border-radius:12px;color:#000;outline:none;transition:all .3s ease;font-family:inherit}.topic-input:focus{border-color:#38bdf8;box-shadow:0 0 15px #38bdf84d}.radio-group{display:flex;justify-content:space-center;gap:20px;margin-bottom:30px}.radio-label{flex:1;display:flex;align-items:center;justify-content:center;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:10px;cursor:pointer;transition:all .2s ease}.radio-label:hover{background:#ffffff1a}.radio-label input[type=radio]{margin-right:10px;accent-color:#38bdf8;width:18px;height:18px}.radio-text{font-weight:700;font-size:13px;letter-spacing:1px}.pin-submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0ea5e966}.pin-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0ea5e999}.pin-submit-btn:disabled{background:#475569;cursor:not-allowed;box-shadow:none;opacity:.7}@media(max-width:600px){.search-wrapper{padding:15px 10px}.attendance-popup-modal{padding:24px 18px 20px;border-radius:20px}.attendance-popup-modal h2{font-size:1.15rem}.attendance-popup-modal p{font-size:.92rem}.attendance-popup-time{width:100%;border-radius:16px;font-size:.9rem}.search-title{font-size:19px;text-align:center;margin-bottom:5px}.search-status{font-size:11px;margin-bottom:15px;text-align:center}.pin-form-container{padding:20px 15px;margin-bottom:15px}.pin-input{padding:10px;font-size:14px;letter-spacing:3px}.topic-input{padding:8px 12px;font-size:11px;min-height:50px}.radio-group{flex-direction:row;gap:10px;margin-bottom:15px}.radio-label{padding:8px}.radio-text{font-size:11px}.pin-submit-btn{padding:10px;font-size:13px}.search-video-container{height:250px;margin-bottom:15px}.search-ring{width:150px;height:150px}}.navbar{display:flex;justify-content:space-between;align-items:center;background-color:#1a237e;padding:1rem 3rem;color:#fff;box-shadow:0 4px 6px #0000001a}.nav-logo{display:flex;align-items:center;gap:10px;font-size:1.4rem;font-weight:700}.nav-links{display:flex;list-style:none;gap:20px;margin:0}.nav-links a{color:#fff;text-decoration:none;display:flex;align-items:center;gap:5px;transition:.3s}.nav-links a:hover{color:#ffca28}.nav-logout a{background:#f44336;padding:5px 12px;border-radius:4px}.auth-link{color:#1a237e!important;font-weight:600;border:1px solid #1a237e;border-radius:999px;padding:8px 18px!important;transition:all .25s ease}.auth-link:hover,.register-link{background-color:#1a237e;color:#fff!important}.register-link:hover{background-color:#0f1557;border-color:#0f1557}@media(max-width:991px){.navbar-collapse{background-color:#1e293b;padding:15px;border-radius:8px;margin-top:10px;box-shadow:0 10px 15px -3px #0000004d}.navbar-collapse .nav-link{color:#f1f5f9!important;padding:10px 15px;border-radius:6px}.navbar-collapse .nav-link:hover{background-color:#334155;color:#ffca28}.auth-link{display:inline-flex;justify-content:center;width:100%;margin-top:8px;border-color:#cbd5e1;color:#f8fafc!important}.auth-link:hover{color:#ffca28!important;border-color:#ffca28}.register-link{background-color:#334155}}.class-info{padding:80px 0;background-color:#fff}.info-wrapper{display:flex;align-items:center;gap:50px;max-width:1100px;margin:0 auto;text-align:left}.info-text h3{font-size:1.8rem;color:#1a237e;margin-bottom:20px}.info-text p{font-size:1.1rem;line-height:1.6;color:#555}.class-highlights{list-style:none;padding:0;margin-top:20px}.class-highlights li{margin-bottom:10px;font-weight:500;color:#2e7d32}.image-placeholder{width:450px;height:300px;background:#e0e0e0;display:flex;align-items:center;justify-content:center;border-radius:15px;font-weight:700;color:#888}@media(max-width:768px){.info-wrapper{flex-direction:column;text-align:center}.image-placeholder{width:100%}}.courses-section{padding:60px 0;background-color:#f8f9fa;text-align:center}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px;max-width:1100px;margin:0 auto;padding:20px}.course-card{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 15px #0000000d;transition:transform .3s ease}.course-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001a}.course-icon{font-size:3rem;margin-bottom:15px}.course-card h3{color:#1a237e;margin-bottom:10px}.course-card p{color:#666;font-size:.95rem}.dropdown-menu{border-radius:12px;border:none;padding:8px;margin-top:10px!important}.dropdown-item{border-radius:8px;padding:10px 20px;font-weight:500;color:#334155;transition:all .2s ease}.dropdown-item:hover{background-color:#f1f5f9;color:#1a237e;transform:translate(5px)}.dropdown-toggle:after{vertical-align:middle;margin-left:8px}@media(max-width:991px){.dropdown-menu{background-color:#334155;border:1px solid #475569;margin-top:5px!important}.dropdown-item{color:#f8fafc}.dropdown-item:hover{background-color:#475569;color:#ffca28}}.admin-layout{display:flex;flex-direction:column;height:100vh;width:100%}.admin-layout>*{flex-shrink:0}.admin-main-content{margin-left:0;margin-top:70px;background-color:#f5f5f5;min-height:calc(100vh - 70px);padding:30px;flex-grow:1;overflow-y:auto;display:flex;flex-direction:column}.admin-main-content h1{color:#1a237e;font-size:2rem;margin-top:0;margin-bottom:1rem}.admin-main-content p{color:#555;font-size:1rem;line-height:1.6}.admin-header{background:linear-gradient(135deg,#1a237e,#283593);color:#fff;height:70px;position:fixed;top:0;left:0;right:0;z-index:1100;box-shadow:0 2px 8px #0003}.admin-header-container{max-width:100%;height:100%;display:flex;justify-content:space-between;align-items:center;padding:0 2rem;gap:1rem}.admin-header-logo{font-size:1.3rem;font-weight:700;color:#fff;text-align:center;order:0}.admin-header-logo h2{margin:0;font-size:1.3rem}.sidebar-toggle-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .3s ease;margin-right:1rem}.sidebar-toggle-btn:hover{background-color:#ffffff26}.admin-nav-menu{list-style:none;display:flex;gap:2rem;margin:0;padding:0;align-items:center}.admin-header-actions{display:flex;align-items:center;gap:12px}.admin-notification-wrap{position:relative}.admin-notification-btn{position:relative;width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.admin-notification-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px}.admin-notification-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:min(360px,88vw);max-height:420px;overflow-y:auto;background:#fff;color:#1e293b;border-radius:14px;box-shadow:0 20px 40px #0f172a47;border:1px solid #e2e8f0;z-index:1300}.admin-notification-title{padding:14px 16px 10px;font-weight:700;font-size:1rem}.admin-notification-empty{padding:0 16px 16px;color:#64748b}.admin-notification-item{padding:12px 16px;border-top:1px solid #eef2f7}.admin-notification-item.unread{background:#eef4ff}.admin-notification-item-head{font-weight:700;margin-bottom:4px}.admin-notification-item-message{font-size:.9rem;color:#334155;line-height:1.45}.admin-notification-item-time{margin-top:8px;font-size:.78rem;color:#64748b}.admin-nav-menu a{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;font-weight:500}.admin-nav-menu a:hover,.admin-nav-menu li.header-active a{background-color:#ffffff26;color:#ffca28}.admin-logout a{background-color:#ff6f00;padding:.5rem 1rem;border-radius:6px;margin-left:1rem}.admin-logout a:hover{background-color:#ff8500;color:#fff}.admin-menu-toggle{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .3s ease}.admin-menu-toggle:hover{background-color:#ffffff26}.admin-sidebar{width:200px;height:calc(100vh - 70px);background-color:#121212;color:#fff;position:fixed;top:70px;left:0;display:flex;flex-direction:column;box-shadow:2px 0 10px #0000004d;z-index:1000}.navbar{height:70px;width:100%;position:fixed;top:0;left:0;background-color:#fff!important;border-bottom:3px solid #1a237e!important;z-index:1100}.main-content{margin-left:260px;margin-top:70px;background-color:#e0e0e0;min-height:calc(100vh - 70px);padding:30px}.sidebar-header{height:70px;background-color:#1a237e;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;letter-spacing:1px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-menu{list-style:none;padding:20px 0;margin:0;flex-grow:1;display:flex;flex-direction:column}.sidebar-item{padding:12px 25px;display:flex;align-items:center;color:#b0bec5;text-decoration:none;transition:all .3s ease;cursor:pointer;font-size:.95rem}.sidebar-item:hover{background-color:#6a1b9a;color:#fff;padding-left:20px}.sidebar-item.active{background-color:#6a1b9a;color:#fff;border-left:5px solid #ffffff}.submenu-collapse{max-height:0;overflow:hidden;transition:max-height .3s ease-out;background-color:#1a1a1a}.submenu-collapse.open{max-height:200px}.sidebar-item.sub-item{color:#90a4ae;border-left:3px solid transparent}.sidebar-item.sub-item:hover{background-color:#4a148c;color:#fff;border-left:3px solid #ffca28}.sidebar-item-header{display:flex;justify-content:space-between;align-items:center;width:70%}.sidebar-submenu{list-style:none;padding:10px 0 0 45px;margin:0;width:100%;background-color:#1a1a1a}.submenu-item{padding:8px 0;font-size:.85rem;color:#90a4ae;cursor:pointer;transition:all .2s}.submenu-item:hover,.submenu-item.active{color:#fff;padding-left:5px}.sidebar-item.open{flex-direction:column;align-items:flex-start}.sidebar-icon{margin-right:15px;width:15px;text-align:center;font-size:.9rem}.sidebar-footer{padding:20px;border-top:1px solid rgba(255,255,255,.1);margin-top:auto}.logout-link{color:#ff5252;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:10px;transition:all .3s ease}.logout-link:hover{color:#ff1744}@media(min-width:769px){.admin-header-container{padding:0 2rem}.sidebar-toggle-btn,.admin-menu-toggle{display:none}.admin-nav-menu{display:flex!important;position:static;background:none;max-height:none;overflow:visible;flex-direction:row;gap:2rem}.admin-nav-menu.active{max-height:none}.admin-nav-menu a{padding:.5rem 1rem;border-radius:4px;width:auto}.admin-sidebar{width:200px;position:fixed;left:0;top:70px;height:calc(100vh - 70px);transform:translate(0)!important;display:flex}.admin-main-content{margin-left:200px;margin-top:70px}.sidebar-overlay{display:none!important}}@media(max-width:768px){.admin-header-container{padding:0 1rem;justify-content:space-between}.sidebar-toggle-btn{display:block;order:-1}.admin-menu-toggle{display:block;order:3}.admin-nav-menu{position:absolute;top:100%;left:0;right:0;background:linear-gradient(135deg,#1a237e,#283593);flex-direction:column;gap:0;max-height:0;overflow:hidden;transition:max-height .3s ease;align-items:stretch}.admin-nav-menu.active{max-height:400px}.admin-nav-menu a{padding:1rem 1.5rem;border-radius:0;width:100%}.admin-logout a{margin:.5rem 1.5rem}.admin-sidebar{width:220px;transition:transform .3s ease;transform:translate(-100%)}.admin-sidebar.active{transform:translate(0)}.admin-main-content{margin-left:0;margin-top:70px;padding:20px;min-height:calc(100vh - 70px)}.admin-main-content h1{font-size:1.5rem}.sidebar-overlay{position:fixed;inset:70px 0 0;background-color:#00000080;z-index:1049;display:block}}@media(max-width:576px){.admin-header-container{padding:0 .8rem;justify-content:flex-start}.sidebar-toggle-btn{display:block;order:-1}.admin-header-logo{flex-grow:1;text-align:center}.admin-header-logo h2{font-size:1rem}.admin-menu-toggle{display:block;order:3}.admin-nav-menu a{padding:.8rem 1.2rem;font-size:.95rem}.admin-nav-menu a svg{display:none}.admin-sidebar{width:100%;height:calc(100vh - 70px);z-index:1050}.admin-sidebar:after{content:"";position:absolute;inset:0;background-color:#00000080;z-index:-1}.admin-main-content{padding:1rem;margin-left:0;min-height:calc(100vh - 70px)}.admin-main-content h1{font-size:1.3rem}.admin-main-content p{font-size:.9rem}}.admin-login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#1e3c72,#2a5298);font-family:Inter,Roboto,sans-serif;padding:20px}.admin-login-card{background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:40px 35px;border-radius:20px;box-shadow:0 8px 32px #0000004d;color:#fff;width:100%;max-width:400px;text-align:center;border:1px solid rgba(255,255,255,.2)}.admin-login-icon{font-size:40px;margin-bottom:10px}.admin-login-title{margin-bottom:25px;font-weight:700;letter-spacing:1px}.admin-login-form{display:flex;flex-direction:column;gap:15px}.admin-login-input{padding:14px;border-radius:10px;border:none;outline:none;font-size:15px;background:#ffffffe6;box-shadow:inset 0 2px 4px #0000001a;color:#333}.admin-login-button{margin-top:15px;padding:14px;border-radius:10px;border:none;background:#ff7eb3;background-image:linear-gradient(to right,#ff7eb3,#ff758c);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #ff758c66}.admin-login-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff758c99}.admin-login-footer{margin-top:20px;font-size:13px;opacity:.7}.form-group{display:flex;flex-direction:column;gap:5px;text-align:left}.error-text{color:#f44;font-size:13px;font-weight:500;margin-top:3px;margin-left:5px}.input-error{border:2px solid #ff4444!important;background:#ff44441a!important}.admin-login-error-message{background-color:#f443;color:#f44;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;font-weight:500;border:1px solid #ff4444;text-align:center;display:flex;justify-content:space-between;align-items:center;gap:10px}.error-close-btn{background:none;border:none;color:#f44;font-size:18px;cursor:pointer;padding:0;flex-shrink:0;transition:color .2s}.error-close-btn:hover{color:#c00}@media(max-width:480px){.admin-login-card{padding:30px 20px}}.sidebar-item-flex{display:flex!important;justify-content:space-between!important;align-items:center!important}.sub-item-padding{padding-left:40px!important;font-size:.9em!important}.verification-container{padding:20px}.verification-title{margin-bottom:30px;color:#333;font-size:1.8rem;border-bottom:2px solid #e2e8f0;padding-bottom:10px}.verification-cards-wrapper{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.v-card{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000000d;border:1px solid #edf2f7;padding:20px;display:flex;flex-direction:column;gap:20px;transition:transform .2s ease,box-shadow .2s ease}.v-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001a}.v-card-top{display:flex;gap:20px;align-items:flex-start}.v-card-img-box{flex-shrink:0}.v-card-img{width:120px;height:120px;object-fit:cover;border-radius:8px;border:2px solid #e2e8f0}.v-card-info{flex-grow:1}.v-card-info h3{margin:0 0 10px;font-size:1rem;color:#212c88;font-weight:700}.v-card-info p{margin:4px 0;font-size:.8rem;color:#4a5568}.v-card-info strong{color:#2d3748}.pin-highlight{background-color:#ebf8ff;color:#3182ce;padding:2px 8px;border-radius:4px;font-weight:700;letter-spacing:1px}.v-card-actions{display:flex;gap:15px;border-top:1px solid #edf2f7;padding-top:15px}.v-btn{flex:1;padding:5px 0;border:none;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.v-btn-approve{background-color:#48bb78;color:#fff}.v-btn-approve:hover{background-color:#38a169}.v-btn-reject{background-color:#fff;color:#e53e3e;border:1px solid #e53e3e}.v-btn-reject:hover{background-color:#fff5f5}@media(max-width:1024px){.verification-cards-wrapper{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.verification-cards-wrapper{grid-template-columns:1fr}.v-card-top{flex-direction:column;align-items:center;text-align:center}.v-card-img{width:150px;height:150px}}.backup-page-wrapper{padding:24px;max-width:860px;margin:0 auto;font-family:Inter,Roboto,sans-serif}.backup-header{margin-bottom:28px}.backup-title{font-size:1.7rem;font-weight:700;color:#1a237e;margin:0 0 6px}.backup-subtitle{font-size:.9rem;color:#606880;margin:0}.backup-loading{display:flex;align-items:center;gap:10px;color:#4a5568;font-size:.95rem;padding:20px 0}.backup-error{background:#fff5f5;border:1px solid #feb2b2;color:#c53030;border-radius:8px;padding:14px 18px;font-size:.9rem}.backup-empty{text-align:center;color:#718096;padding:50px 20px}.backup-empty p{font-size:1rem;margin:10px 0 4px;font-weight:500;color:#4a5568}.backup-empty small{font-size:.82rem;color:#a0aec0}.backup-years-list{display:flex;flex-direction:column;gap:14px}.backup-year-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000d;transition:box-shadow .2s ease}.backup-year-card:hover{box-shadow:0 4px 14px #00000017}.backup-year-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#1a237e,#283593);color:#fff;border:none;cursor:pointer;font-size:1.1rem;font-weight:600;letter-spacing:.5px;transition:background .2s ease;text-align:left}.backup-year-btn:hover{background:linear-gradient(135deg,#283593,#3949ab)}.backup-year-btn.open{background:linear-gradient(135deg,#4527a0,#6a1b9a)}.backup-year-icon{margin-right:10px;font-size:1.2rem}.backup-year-label{flex-grow:1}.backup-year-chevron{font-size:.75rem;opacity:.8}.backup-files-list{border-top:1px solid #e2e8f0;padding:10px 0;background:#fafbff}.backup-files-loading{display:flex;align-items:center;gap:10px;padding:14px 20px;color:#718096;font-size:.88rem}.backup-files-empty{padding:16px 20px;color:#a0aec0;font-size:.88rem;font-style:italic}.backup-file-row{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid #f0f4f8;transition:background .15s ease;gap:12px}.backup-file-row:last-child{border-bottom:none}.backup-file-row:hover{background:#eef2ff}.backup-file-info{display:flex;align-items:center;gap:12px;overflow:hidden}.backup-file-icon{font-size:1.4rem;flex-shrink:0}.backup-file-name{display:block;font-size:.95rem;font-weight:600;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backup-file-meta{display:block;font-size:.76rem;color:#a0aec0;margin-top:2px}.backup-download-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .2s ease,transform .15s ease}.backup-download-btn:hover:not(:disabled){background:#4338ca;transform:translateY(-1px)}.backup-download-btn.downloading{background:#7c3aed;cursor:not-allowed;opacity:.85}@keyframes backup-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.backup-spinner{display:inline-block;width:16px;height:16px;border:2px solid #cbd5e0;border-top-color:#4f46e5;border-radius:50%;animation:backup-spin .7s linear infinite;flex-shrink:0}.backup-spinner.small{width:12px;height:12px}.backup-spinner.white{border-color:#ffffff4d;border-top-color:#fff}@media(max-width:576px){.backup-page-wrapper{padding:16px}.backup-title{font-size:1.35rem}.backup-file-name{font-size:.85rem}.backup-download-btn{padding:7px 11px;font-size:.8rem}}.dashboard-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:20px}.stat-card{background:#fff;border-radius:12px;padding:20px;display:flex;align-items:center;box-shadow:0 4px 6px #0000000d;border:1px solid #f1f5f9;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 15px #0000001a}.stat-card.clickable-card{cursor:pointer}.stat-card.clickable-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #0000001f;border-color:#cbd5e1}.stat-card-icon{width:60px;height:60px;border-radius:12px;display:flex;justify-content:center;align-items:center;font-size:28px;margin-right:15px;flex-shrink:0}.stat-card-info{display:flex;flex-direction:column}.stat-card-info h3{margin:0;font-size:1.8rem;font-weight:700;color:#1e293b;line-height:1.2}.stat-card-info p{margin:5px 0 0;font-size:.95rem;color:#64748b;font-weight:500}.student-list-container{padding:20px;background-color:#f8fafc;min-height:100%}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;flex-wrap:wrap;gap:15px}.list-header h2{color:#1a237e;margin:0;font-size:1.8rem}.filters-section{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.search-box{position:relative;max-width:300px;width:100%}.search-input{width:100%;padding:10px 15px 10px 40px;border:1px solid #e2e8f0;border-radius:8px;outline:none;font-size:.95rem;transition:border-color .3s}.search-input:focus{border-color:#1a237e;box-shadow:0 0 0 3px #1a237e1a}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8}.filter-select{padding:10px 15px;border:1px solid #e2e8f0;border-radius:8px;background-color:#fff;outline:none;font-size:.95rem;cursor:pointer;min-width:150px}.table-wrapper{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000000d;overflow:hidden;overflow-x:auto}.student-table{width:100%;border-collapse:collapse;text-align:left;min-width:800px}.student-table th{background-color:#f1f5f9;padding:15px 20px;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0}.student-table td{padding:15px 20px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:.95rem}.student-row{cursor:pointer;transition:background-color .2s}.student-row:hover{background-color:#f8fafc}.status-badge{padding:4px 10px;border-radius:20px;font-size:.85rem;font-weight:500;text-transform:capitalize}.status-active{background:#dcfce7;color:#166534}.status-pending{background:#fef9c3;color:#854d0e}.status-completed-auth{background:#e0f2fe;color:#0369a1}.status-completed{background:#e8f5e9;color:#2e7d32}.delete-btn{background-color:#fef2f2;color:#dc2626;border:1px solid #fee2e2;padding:6px;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.delete-btn:hover{background-color:#fee2e2;color:#b91c1c}.student-info-container{padding:30px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014}.info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;border-bottom:2px solid #f1f5f9;padding-bottom:15px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:25px}.info-group{display:flex;flex-direction:column;gap:8px}.info-group label{font-size:.85rem;color:#64748b;font-weight:600;text-transform:uppercase}.info-group input,.info-group select,.info-group textarea{padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;outline:none}.info-group input:focus{border-color:#1a237e}.btn-save{background-color:#1a237e;color:#fff;padding:10px 25px;border:none;border-radius:8px;font-weight:600;cursor:pointer}.btn-edit{background-color:#f1f5f9;color:#1a237e;padding:10px 25px;border:1px solid #e2e8f0;border-radius:8px;font-weight:600;cursor:pointer}@media(max-width:1024px){.info-header{flex-direction:column;align-items:flex-start;gap:15px}.info-header>div{width:100%;display:flex;flex-wrap:wrap;gap:15px}.student-info-container>div:first-child{flex-wrap:wrap;gap:20px}.student-info-container>div:first-child>div{min-width:280px}.student-table th,.student-table td{padding:12px}}@media(max-width:768px){.student-info-container{padding:20px}.student-info-container>div:first-child{flex-direction:column;align-items:center;text-align:center;gap:20px}.student-info-container>div:first-child>div:last-child{width:100%}.student-info-container>div:first-child .v-card-img-box{width:100%;max-width:240px;margin:0 auto}.student-info-container>div:first-child .v-card-img{width:100%;height:auto}.info-grid{grid-template-columns:1fr}.info-group input,.info-group select,.info-group textarea{width:100%}.info-header{align-items:center}.info-header .btn-save,.info-header .btn-edit{width:100%;justify-content:center}.contact-details{flex-direction:column!important;align-items:flex-start!important}.table-wrapper{margin-bottom:20px}.student-table{min-width:640px}}.attendance-container{padding:20px}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;flex-wrap:wrap;gap:15px}.attendance-header h2{margin:0;color:#333;display:flex;align-items:center;gap:10px}.month-section{margin-bottom:40px;background:#fff;padding:20px;border-radius:12px;box-shadow:0 4px 15px #0000000d}.month-title{font-size:1.2rem;font-weight:600;color:#2c3e50;margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.table-responsive{overflow-x:auto;border-radius:8px;border:1px solid #1a237e}.attendance-table{width:100%;border-collapse:collapse;font-size:12px}.attendance-table th,.attendance-table td{border:1px solid #1a237e;padding:6px 4px;text-align:center;min-width:150px}.attendance-table th{background-color:#f8f9fa;color:#555;font-weight:600;position:sticky;top:0;z-index:10;box-shadow:0 1px #eee}.name-col{text-align:left!important;padding-left:10px!important;min-width:180px!important;background:#fdfdfd;position:sticky;left:0;z-index:5;border-right:2px solid #1a237e!important}.course-col{min-width:120px;color:#666}.present-cell{color:#2e7d32}.full-cell{background-color:#e8f5e9!important;color:#2e7d32}.partial-cell{background-color:#fef9c3!important;color:#854d0e}.absent-cell{background-color:#fee2e2!important;color:#991b1b}.attendance-details{display:flex;flex-direction:column;gap:4px;text-align:left;padding:2px}.time-row{display:flex;justify-content:space-between;gap:5px;font-size:11px;border-bottom:1px solid rgba(0,0,0,.05);padding-bottom:2px}.topic-row{font-style:italic;color:#555;word-break:break-word;font-size:10px}.day-header{min-width:150px}.download-btn{background:#27ae60;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:.9rem;transition:all .2s}.download-btn:hover{background:#219150;transform:translateY(-2px)}@media(max-width:768px){.attendance-header{flex-direction:column;align-items:flex-start}.name-col{position:static!important;min-width:150px!important}.attendance-table th:nth-child(1),.attendance-table td:nth-child(1){position:sticky!important;left:0;z-index:10;background:#fff;border-right:1px solid #eee}.attendance-table th:nth-child(1){background:#f8f9fa;z-index:20}}.change-pass-container{padding:40px 20px;display:flex;justify-content:center;align-items:flex-start;min-height:calc(100vh - 100px);background:#f8fafc}.change-pass-card{background:#fff;width:100%;max-width:500px;padding:40px;border-radius:16px;box-shadow:0 10px 25px #0000000d}.change-pass-header{text-align:center;margin-bottom:35px}.change-pass-header .header-icon{color:#4f46e5;background:#eef2ff;padding:12px;border-radius:12px;margin-bottom:15px}.change-pass-header h2{font-size:24px;color:#1e293b;margin-bottom:10px}.change-pass-header p{color:#64748b;font-size:14px;line-height:1.5}.change-pass-form .form-group{margin-bottom:20px}.change-pass-form label{display:block;font-size:14px;font-weight:600;color:#475569;margin-bottom:8px}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon .field-icon{position:absolute;left:14px;color:#94a3b8;pointer-events:none}.input-with-icon input{width:100%;padding:12px 45px 12px 42px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:15px;transition:all .2s}.toggle-eye{position:absolute;right:12px;background:none;border:none;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;border-radius:50%;transition:all .2s}.toggle-eye:hover{color:#4f46e5;background:#f1f5f9}.input-with-icon input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e51a}.message-box{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:10px;font-size:14px;margin-bottom:20px;animation:fadeIn .3s ease-out}.error-message{background:#fef2f2;color:#b91c1c;border:1px solid #fee2e2}.success-message{background:#f0fdf4;color:#15803d;border:1px solid #dcfce7}.submit-btn{width:100%;background:#4f46e5;color:#fff;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:10px}.submit-btn:hover{background:#4338ca}.submit-btn:disabled{background:#94a3b8;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.change-pass-card{padding:25px}}.settings-page{padding:20px;background:#f8fafc;min-height:calc(100vh - 80px)}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.settings-header h2{font-size:24px;color:#1e293b;font-weight:700}.add-new-btn{display:flex;align-items:center;gap:8px;background:#4f46e5;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.add-new-btn:hover{background:#4338ca;box-shadow:0 4px 12px #4f46e533}.table-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden}.settings-table{width:100%;border-collapse:collapse;text-align:left}.settings-table th{background:#f1f5f9;padding:15px;font-size:14px;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.settings-table td{padding:15px;font-size:14px;color:#1e293b;border-bottom:1px solid #f1f5f9}.settings-table tr:hover{background:#f8fafc}.reorder-btns,.action-btns{display:flex;gap:8px}.move-btn,.edit-btn,.delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .2s;color:#64748b}.move-btn:hover:not(:disabled){color:#4f46e5;background:#eef2ff;border-color:#4f46e5}.move-btn:disabled{opacity:.3;cursor:not-allowed}.edit-btn:hover{color:#0d9488;background:#f0fdfa;border-color:#0d9488}.delete-btn:hover{color:#e11d48;background:#fff1f2;border-color:#e11d48}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;width:90%;max-width:500px;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:18px;font-weight:600;color:#1e293b}.modal-header button{background:none;border:none;color:#94a3b8;cursor:pointer}.modal-body{padding:20px}.modal-body .form-group{margin-bottom:15px}.modal-body label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#475569}.modal-body input{width:100%;padding:10px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px}.modal-body input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.modal-footer{padding:20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:12px}.cancel-btn{padding:10px 20px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-weight:500;cursor:pointer}.save-btn{padding:10px 20px;background:#4f46e5;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px}.scanner-container{padding:30px;min-height:calc(100vh - 100px);display:flex;justify-content:center;align-items:center;background-color:#f5f7fb}.scanner-layout-wrapper{display:flex;gap:40px;max-width:1000px;width:100%;align-items:flex-start;justify-content:center}.scanner-left-side{flex:1;display:flex;justify-content:flex-end}.scanner-right-side{flex:1;display:flex;justify-content:flex-start}.scanner-card{background:#fff;border-radius:20px;padding:35px;box-shadow:0 10px 40px #00000014;width:100%;max-width:400px;text-align:center;border:1px solid #eef2f6;transition:transform .3s ease}.scanner-card:hover{transform:translateY(-5px)}.scanner-header{margin-bottom:25px}.qr-icon{color:#4f46e5;margin-bottom:15px}.scanner-header h2{color:#1a237e;margin:0 0 10px;font-size:1.6rem;font-weight:700}.scanner-header p{color:#64748b;font-size:.9rem;line-height:1.5}.qr-display-box{position:relative;padding:20px;background:#f8fafc;border-radius:16px;display:inline-block;margin-bottom:25px;border:2px dashed #cbd5e1}.qr-image{width:220px;height:220px;display:block;mix-blend-mode:multiply}.qr-overlay{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);background:#4f46e5;color:#fff;padding:4px 18px;border-radius:20px;font-size:.75rem;font-weight:700;box-shadow:0 4px 12px #4f46e566;letter-spacing:.5px}.qr-download-btn{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;border:none;padding:14px 25px;border-radius:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font-size:.95rem;transition:all .3s ease;box-shadow:0 4px 15px #3b82f633}.qr-download-btn:hover{box-shadow:0 6px 20px #3b82f64d;filter:brightness(1.1)}.scanner-notes{background:#fff;border-radius:20px;padding:35px;box-shadow:0 10px 40px #0000000d;width:100%;max-width:480px;border-left:5px solid #4f46e5}.notes-header h3{margin:0 0 20px;font-size:1.3rem;color:#1e293b;display:flex;align-items:center;gap:10px}.notes-list{margin:0 0 25px;padding:0;list-style:none}.notes-list li{margin-bottom:15px;color:#475569;font-size:.95rem;line-height:1.6;display:flex;align-items:flex-start;gap:10px}.notes-list li:before{content:"•";color:#4f46e5;font-weight:700;font-size:1.2rem}.notes-list li strong{color:#1e293b;display:block}.url-preview{margin-top:20px;padding-top:20px;border-top:1px solid #f1f5f9}.url-preview label{display:block;font-size:.8rem;color:#94a3b8;margin-bottom:8px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.url-box{background:#f8fafc;padding:10px 15px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem;color:#4f46e5;border:1px solid #e2e8f0}.url-box a{color:#94a3b8;transition:color .2s}.url-box a:hover{color:#4f46e5}@media(max-width:900px){.scanner-layout-wrapper{flex-direction:column;align-items:center}.scanner-left-side,.scanner-right-side{justify-content:center}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.location-settings-container{padding:24px;max-width:900px;color:#e2e8f0}.settings-header{margin-bottom:30px}.settings-header h2{font-size:1.8rem;color:#141d26;margin-bottom:8px;display:flex;align-items:center}.settings-header p{color:#1a2432;line-height:1.5}.settings-card{background-color:#1e293b;border:1px solid #334155;border-radius:12px;padding:30px;margin-bottom:30px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.lab-label{display:block;font-weight:500;color:#fff!important;margin-bottom:8px;font-size:1.05rem}.location-input{width:100%;max-width:400px;padding:12px 16px;background-color:#fff;border:1px solid #475569;border-radius:8px;color:#000;font-size:1rem;transition:border-color .2s;font-family:monospace}.location-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.input-hint{display:block;color:#64748b;font-size:.85rem;margin-top:8px}.current-location-info{display:flex;flex-wrap:wrap;align-items:center;gap:15px;background-color:#0f172a;padding:16px;border-radius:8px;border-left:4px solid #3b82f6;margin-bottom:30px;margin-top:20px}.btn-primary{display:flex;align-items:center;justify-content:center;background-color:#10b981;color:#fff;padding:12px 24px;border:none;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:#059669}.btn-secondary{background-color:#334155;color:#f8fafc;border:1px solid #475569;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-secondary:hover{background-color:#475569}.status-alert{margin-top:20px;padding:12px 16px;border-radius:8px;font-weight:500}.alert-success{background-color:#10b9811a;color:#34d399;border:1px solid rgba(16,185,129,.2)}.alert-error{background-color:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.2)}.alert-info{background-color:#3b82f61a;color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.info-card{background-color:#0f172a;border-radius:12px;padding:24px}.info-card h3{color:#38bdf8;margin-top:0;margin-bottom:16px;font-size:1.2rem}.info-card ul{margin:0;padding-left:20px;color:#cbd5e1}.info-card li{margin-bottom:10px;line-height:1.5}@media(max-width:768px){.location-settings-container{padding:16px}.settings-header h2{font-size:1.4rem;align-items:flex-start}.settings-card{padding:20px}.location-input{max-width:100%}.current-location-info{flex-direction:column;align-items:flex-start;gap:10px}.btn-primary{width:100%;padding:14px}}.email-settings-container{padding:24px;max-width:900px;color:#e2e8f0}.email-label{display:block;font-weight:500;color:#fff;margin-bottom:8px;font-size:1.05rem}.email-input{width:100%;max-width:450px;padding:12px 16px;background-color:#0f172a;border:1px solid #475569;border-radius:8px;color:#0a0b0b;font-size:1rem;transition:border-color .2s}.password-input-wrapper{position:relative;max-width:450px}.password-field{padding-right:45px}.toggle-password-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:color .2s}.toggle-password-btn:hover{color:#f1f5f9}.email-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.info-card ol{margin:0;padding-left:20px;color:#cbd5e1}.info-card li{margin-bottom:12px;line-height:1.5}.info-card strong{color:#e2e8f0}:root{--student-primary: #6366f1;--student-secondary: #4f46e5;--student-bg: #0f172a;--student-card: #1e293b;--student-text: #f8fafc;--student-muted: #94a3b8;--student-success: #10b981}.student-portal-body{font-family:Outfit,sans-serif;background:var(--student-bg);color:var(--student-text);min-height:100vh}.student-shell{min-height:100vh;background:linear-gradient(180deg,#0f172a,#111c34);color:var(--student-text)}.student-shell-header{position:sticky;top:0;z-index:1200;height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#0f172ae6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(148,163,184,.18)}.student-header-actions{display:flex;align-items:center;gap:12px}.student-notification-wrap{position:relative}.student-notification-btn{position:relative;width:46px;height:46px;border-radius:14px;border:1px solid rgba(148,163,184,.18);background:#1e293be6;color:var(--student-text);cursor:pointer;display:flex;align-items:center;justify-content:center}.student-notification-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.student-notification-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:min(380px,86vw);max-height:420px;overflow-y:auto;background:#fff;color:#0f172a;border-radius:18px;box-shadow:0 24px 48px -20px #0f172a8c;border:1px solid #e2e8f0;z-index:1400}.student-notification-dropdown-title{font-weight:700;font-size:1rem;padding:16px 18px 10px}.student-notification-empty{padding:0 18px 18px;color:#64748b}.student-notification-item{padding:14px 18px;border-top:1px solid #eef2f7}.student-notification-item.unread{background:#eff6ff}.student-notification-item-title{font-weight:700;margin-bottom:4px}.student-notification-item-message{font-size:.92rem;color:#334155;line-height:1.5}.student-notification-item-time{margin-top:8px;font-size:.78rem;color:#64748b}.student-shell-header-left{display:flex;align-items:center;gap:16px}.student-shell-menu-btn{display:none;width:44px;height:44px;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:#1e293be6;color:var(--student-text);cursor:pointer;align-items:center;justify-content:center}.student-shell-brand-kicker{display:block;font-size:.78rem;color:var(--student-muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:2px}.student-shell-brand h1{margin:0;font-size:1.75rem;font-weight:700}.student-shell-body{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100vh - 84px)}.student-shell-sidebar{position:sticky;top:84px;height:calc(100vh - 84px);background:#0f172afa;border-right:1px solid rgba(148,163,184,.16);padding:24px 18px;display:flex;flex-direction:column;justify-content:space-between;z-index:1100}.student-shell-sidebar-title{font-size:.78rem;color:var(--student-muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:18px;padding:0 12px}.student-shell-nav{display:flex;flex-direction:column;gap:8px}.student-shell-nav-item,.student-shell-logout{border:none;width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:transparent;color:var(--student-text);text-decoration:none;font-size:.98rem;font-weight:500;cursor:pointer;transition:background .2s ease,transform .2s ease,color .2s ease}.student-shell-nav-item:hover,.student-shell-logout:hover{background:#6366f11f;transform:translate(2px)}.student-shell-nav-item.active{background:linear-gradient(135deg,#6366f147,#4f46e533);box-shadow:inset 0 0 0 1px #818cf833}.student-shell-logout{background:#ef444414;color:#fecaca}.student-shell-content{min-width:0;padding:24px}.student-shell-overlay{display:none}.student-login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:radial-gradient(circle at top right,#1e1b4b,#0f172a)}.student-login-card{background:var(--student-card);padding:40px;border-radius:24px;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #00000080;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:2rem;font-weight:700;margin-bottom:8px;background:linear-gradient(to right,#818cf8,#c084fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login-header p{color:var(--student-muted)}.student-form-group{margin-bottom:20px}.student-form-group label{display:block;margin-bottom:8px;font-size:.9rem;color:var(--student-muted)}.student-input{width:100%;padding:12px 16px;background:#0f172a80;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:1rem;transition:all .3s ease}.student-input:focus{outline:none;border-color:var(--student-primary);box-shadow:0 0 0 4px #6366f133}.student-btn{width:100%;padding:14px;background:var(--student-primary);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.student-btn:hover{background:var(--student-secondary);transform:translateY(-2px)}.profile-container{max-width:1000px;margin:0 auto;padding:40px 20px}.profile-card{background:var(--student-card);border-radius:20px;padding:30px;display:flex;gap:30px;margin-bottom:30px;border:1px solid rgba(255,255,255,.1)}.request-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.request-action-btn{border:none;border-radius:14px;padding:16px 18px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.request-action-btn:hover{transform:translateY(-2px);opacity:.95}.half-day-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 14px 24px -18px #2563ebd9}.leave-btn{background:linear-gradient(135deg,#0f766e,#0d9488);box-shadow:0 14px 24px -18px #0d9488d9}.leave-page-card{background:var(--student-card);border-radius:20px;padding:30px;border:1px solid rgba(255,255,255,.1)}.leave-history-card{margin-top:22px;background:var(--student-card);border-radius:20px;padding:30px;border:1px solid rgba(255,255,255,.1)}.student-empty-state{padding:18px 0;color:var(--student-muted)}.student-leave-history-table{width:100%;border-collapse:collapse;background:var(--student-card);border-radius:14px;overflow:hidden}.student-leave-history-table th,.student-leave-history-table td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}.student-leave-history-table th{background:#334155;color:var(--student-muted);font-size:.9rem}.student-leave-message-cell{min-width:320px;line-height:1.55}.student-leave-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700}.student-leave-status.pending{background:#fef3c7;color:#92400e}.student-leave-status.approved{background:#dcfce7;color:#166534}.student-leave-status.rejected{background:#fee2e2;color:#b91c1c}.student-leave-card{border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.08)}.student-leave-card.pending{background:#fef3c72e}.student-leave-card.approved{background:#dcfce726}.student-leave-card.rejected{background:#fee2e224}.student-leave-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-leave-card-actions{display:flex;align-items:center;gap:10px}.student-leave-card-type{font-size:1rem;font-weight:700}.student-leave-card-date{margin-top:10px;color:var(--student-muted);font-size:.82rem}.student-leave-card-message{margin-top:12px;line-height:1.6;color:var(--student-text)}.student-leave-delete-btn{width:34px;height:34px;border-radius:10px;border:1px solid rgba(248,113,113,.28);background:#ef44441f;color:#fecaca;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.student-leave-delete-btn:hover{transform:translateY(-1px);background:#ef444433;border-color:#f8717166}.student-leave-action-placeholder{font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#94a3b8}.leave-page-header{margin-bottom:22px}.leave-page-header h2{margin:0 0 8px;font-size:1.7rem;font-weight:700}.leave-page-header p{margin:0;color:var(--student-muted)}.student-popup-overlay{position:fixed;inset:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;padding:20px;z-index:2000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.student-popup-card{width:100%;max-width:520px;background:#fff;color:#0f172a;border-radius:24px;padding:28px;box-shadow:0 30px 60px -20px #0f172a8c}.student-popup-icon{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8;margin-bottom:18px}.student-popup-card h3{margin:0 0 6px;font-size:1.35rem}.student-popup-subtitle{margin:0 0 16px;color:#64748b;font-size:.92rem}.student-popup-message{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px;line-height:1.65;font-size:.96rem;color:#0f172a}.student-popup-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:12px}.student-popup-btn{border:none;border-radius:12px;padding:11px 18px;font-weight:600;cursor:pointer}.student-popup-btn.primary{background:#2563eb;color:#fff}.student-popup-btn.secondary{background:#e2e8f0;color:#0f172a}.profile-img-section{width:140px;height:140px;border-radius:20px;overflow:hidden;flex-shrink:0;border:3px solid var(--student-primary)}.profile-img-section img{width:100%;height:100%;object-fit:cover}.profile-info{flex:1}.profile-info h2{font-size:1.75rem;margin-bottom:20px;font-weight:700}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.info-item{font-size:.95rem}.info-item span{color:var(--student-muted);display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.portal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.portal-header h1{display:flex;align-items:center;gap:10px;margin:0;font-size:1.8rem}.student-portal-subtitle{margin:8px 0 0;color:var(--student-muted);font-size:.95rem}.logout-btn{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:500}.placeholder-img{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#334155;color:#94a3b8}.desktop-attendance{display:block}.mobile-attendance{display:none}.one-student-attendance-table{width:100%;border-collapse:collapse;background:var(--student-card);border-radius:12px;overflow:hidden}.one-student-attendance-table th{background:#334155;color:var(--student-muted);text-align:left;padding:12px 16px;font-size:.9rem}.one-student-attendance-table td{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05)}.date-cell{font-weight:600;color:#000}.topic-cell{color:#000;font-size:.85rem}.full-attendance{background-color:#e8f5e9!important;color:#166534!important}.partial-attendance{background-color:#fef9c3!important;color:#854d0e!important}.absent-attendance{background-color:#fee2e2!important;color:#991b1b!important}@media(max-width:768px){.student-shell-header{height:76px;padding:0 16px}.student-shell-menu-btn{display:inline-flex}.student-shell-brand h1{font-size:1.35rem}.student-notification-dropdown{right:-6px;width:min(340px,92vw)}.student-shell-body{grid-template-columns:1fr;min-height:calc(100vh - 76px)}.student-shell-sidebar{position:fixed;top:76px;left:0;transform:translate(-100%);transition:transform .25s ease;width:min(280px,82vw);height:calc(100vh - 76px);box-shadow:12px 0 28px #02061773}.student-shell-sidebar.open{transform:translate(0)}.student-shell-content{padding:12px}.student-shell-overlay{display:block;position:fixed;inset:76px 0 0;background:#0f172a8c;z-index:1050}.profile-container{padding:12px 0 20px}.profile-card{flex-direction:column;align-items:center;text-align:center;padding:24px 20px;gap:20px;border-radius:24px}.profile-img-section{width:120px;height:120px;border-radius:24px}.profile-info h2{font-size:1.5rem;margin-bottom:24px}.info-grid{grid-template-columns:1fr;width:100%;text-align:left;gap:16px}.portal-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:22px}.portal-header h1{font-size:1.45rem}.info-item{background:#0f172a4d;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.05)}.request-actions-grid{grid-template-columns:1fr}.leave-page-card,.leave-history-card{padding:22px 18px}.student-popup-card{padding:22px 18px;border-radius:20px}.desktop-attendance{display:none}.mobile-attendance{display:flex;flex-direction:column;gap:12px}.attendance-card{background:#1e293b;border-radius:12px;padding:16px;border-left:4px solid var(--student-primary);box-shadow:0 4px 6px -1px #0000001a;width:100%}.card-row{display:flex;justify-content:space-between;margin-bottom:8px}.card-row-end{display:flex;justify-content:flex-end;margin-top:4px}.card-date{font-weight:700;font-size:1.1rem;color:#fff}.card-day{color:var(--student-muted);font-size:.9rem}.card-in,.card-out,.card-hrs{font-weight:600;font-family:monospace;font-size:1rem}.card-in{color:#10b981}.card-out{color:#f87171}.card-hrs{color:#60a5fa}.card-topic{margin-top:10px;font-size:.85rem;color:var(--student-muted);border-top:1px solid rgba(255,255,255,.05);padding-top:8px}.attendance-card.full-attendance .card-date,.attendance-card.partial-attendance .card-date,.attendance-card.absent-attendance .card-date,.attendance-card.full-attendance .card-topic,.attendance-card.partial-attendance .card-topic,.attendance-card.absent-attendance .card-topic{color:#000}.attendance-card.full-attendance{border-left-color:#10b981;background:#e8f5e9;color:#166534}.attendance-card.partial-attendance{border-left-color:#facc15;background:#fef9c3;color:#854d0e}.attendance-card.absent-attendance{border-left-color:#f87171;background:#fee2e2;color:#991b1b}.attendance-card{transition:background-color .2s ease}}:root{--staff-bg: #0f172a;--staff-surface: #1e293b;--staff-surface-soft: #273449;--staff-border: rgba(148, 163, 184, .16);--staff-text: #e2e8f0;--staff-muted: #94a3b8;--staff-accent: #0ea5e9;--staff-accent-strong: #0284c7}.staff-shell{min-height:100vh;background:linear-gradient(180deg,#081120,#0f172a);color:var(--staff-text)}.staff-shell-header{position:sticky;top:0;z-index:50;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#0f172aeb;border-bottom:1px solid rgba(148,163,184,.12);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.staff-shell-header-left,.staff-header-actions,.staff-shell-brand{display:flex;align-items:center}.staff-shell-header-left{gap:16px}.staff-shell-menu-btn,.staff-notification-btn{width:44px;height:44px;border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#ffffff0a;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.staff-shell-brand{flex-direction:column;align-items:flex-start;gap:2px}.staff-shell-brand-kicker{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#67e8f9}.staff-shell-brand h1{margin:0;font-size:1.45rem}.staff-shell-body{display:flex;min-height:calc(100vh - 76px)}.staff-shell-sidebar{width:260px;background:#0f172ae6;border-right:1px solid rgba(148,163,184,.1);padding:24px 18px;display:flex;flex-direction:column;justify-content:space-between;position:sticky;top:76px;height:calc(100vh - 76px)}.staff-shell-sidebar-top{display:flex;flex-direction:column;gap:18px}.staff-shell-sidebar-title{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--staff-muted)}.staff-shell-nav{display:flex;flex-direction:column;gap:10px}.staff-shell-nav-item,.staff-shell-logout{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 14px;border-radius:14px;color:var(--staff-text);text-decoration:none;border:1px solid transparent;background:transparent;font:inherit;cursor:pointer}.staff-shell-nav-item.active,.staff-shell-nav-item:hover{background:#0ea5e924;border-color:#0ea5e947}.staff-shell-logout{justify-content:center;background:#ef44441a;border-color:#f871712e}.staff-shell-content{flex:1;padding:28px}.staff-shell-overlay{display:none}.staff-notification-wrap{position:relative}.staff-notification-badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.staff-notification-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:min(360px,88vw);max-height:420px;overflow-y:auto;background:#fff;color:#1e293b;border-radius:14px;box-shadow:0 20px 40px #0f172a47;border:1px solid #e2e8f0;z-index:1300}.staff-notification-dropdown-title,.staff-notification-empty,.staff-notification-item{padding:14px 16px}.staff-notification-item{border-top:1px solid #eef2f7}.staff-notification-item.unread{background:#eef9ff}.staff-notification-item-title{font-weight:700;margin-bottom:4px}.staff-notification-item-message{color:#334155;line-height:1.45;font-size:.92rem}.staff-notification-item-time{margin-top:8px;color:#64748b;font-size:.78rem}.staff-portal-body,.staff-login-page{min-height:100%}.staff-page-container{max-width:980px;margin:0 auto}.staff-login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#081120,#0f172a)}.staff-login-card,.staff-profile-card,.staff-attendance-section,.staff-leave-page-card,.staff-leave-history-card{background:var(--staff-surface);border:1px solid var(--staff-border);border-radius:24px;box-shadow:0 18px 42px #0208173d}.staff-login-card{width:min(460px,100%);padding:32px}.staff-login-card h1{margin:0 0 8px;color:#7dd3fc}.staff-login-card p{margin:0 0 24px;color:var(--staff-muted)}.staff-form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.staff-form-group label{font-size:.92rem;color:#cbd5e1}.staff-input,.staff-popup-message{width:100%;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:var(--staff-surface-soft);color:var(--staff-text)}.staff-input{min-height:50px;padding:0 14px}.staff-btn,.staff-popup-btn,.staff-request-action-btn{border:none;cursor:pointer;font:inherit}.staff-btn{width:100%;min-height:50px;border-radius:14px;background:linear-gradient(135deg,var(--staff-accent),var(--staff-accent-strong));color:#fff;font-weight:700}.staff-profile-card{display:grid;grid-template-columns:160px 1fr;gap:28px;padding:28px;margin-bottom:24px}.staff-profile-img{width:140px;height:140px;border-radius:28px;overflow:hidden;border:3px solid rgba(125,211,252,.32);background:#0ea5e914;display:flex;align-items:center;justify-content:center}.staff-profile-img img{width:100%;height:100%;object-fit:cover}.staff-profile-info h2,.staff-attendance-section h3,.staff-leave-page-header h2{margin:0 0 10px}.staff-profile-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 26px}.staff-meta-item span{display:block;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--staff-muted);margin-bottom:6px}.staff-attendance-section{padding:24px}.staff-attendance-table,.staff-leave-history-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:18px}.staff-attendance-table th,.staff-attendance-table td,.staff-leave-history-table th,.staff-leave-history-table td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(148,163,184,.1)}.staff-attendance-table th,.staff-leave-history-table th{background:#1e293be0;color:#cbd5e1}.staff-leave-page-card,.staff-leave-history-card{padding:24px;margin-bottom:24px}.staff-leave-page-header p{margin:0;color:var(--staff-muted)}.staff-request-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.staff-request-action-btn{min-height:52px;border-radius:14px;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}.staff-request-action-btn.half-day-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.staff-request-action-btn.leave-btn{background:linear-gradient(135deg,#059669,#047857)}.staff-leave-status{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:.82rem;font-weight:700}.staff-leave-status.pending{background:#fef3c7;color:#92400e}.staff-leave-status.approved{background:#dcfce7;color:#166534}.staff-leave-status.rejected{background:#fee2e2;color:#b91c1c}.staff-leave-delete-btn{width:34px;height:34px;border-radius:10px;border:1px solid rgba(248,113,113,.28);background:#ef44441f;color:#fecaca;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.staff-leave-action-placeholder{font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#94a3b8}.staff-mobile-cards{display:none}.staff-leave-card{border-radius:18px;border:1px solid rgba(148,163,184,.16);padding:16px;margin-bottom:12px}.staff-leave-card-top,.staff-leave-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.staff-leave-card-type{font-weight:700}.staff-leave-card-date{margin-top:10px;color:var(--staff-muted);font-size:.84rem}.staff-leave-card-message,.staff-leave-message-cell{line-height:1.6}.staff-empty-state{padding:28px;text-align:center;color:var(--staff-muted)}.staff-popup-overlay{position:fixed;inset:0;background:#020817c7;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.staff-popup-card{width:min(560px,100%);background:var(--staff-surface);border:1px solid var(--staff-border);border-radius:22px;padding:28px}.staff-popup-icon{width:56px;height:56px;border-radius:18px;background:#0ea5e924;display:flex;align-items:center;justify-content:center;color:#67e8f9}.staff-popup-card h3{margin:18px 0 8px}.staff-popup-subtitle{margin:0 0 16px;color:var(--staff-muted)}.staff-popup-message{padding:16px;line-height:1.7;margin-bottom:18px}.staff-popup-actions{display:flex;justify-content:flex-end;gap:10px}.staff-popup-btn{min-width:124px;min-height:44px;border-radius:12px;color:#fff}.staff-popup-btn.secondary{background:#334155}.staff-popup-btn.primary{background:linear-gradient(135deg,var(--staff-accent),var(--staff-accent-strong))}@media(max-width:960px){.staff-shell-sidebar{position:fixed;left:-280px;top:76px;transition:left .25s ease;z-index:70}.staff-shell-sidebar.open{left:0}.staff-shell-overlay{display:block;position:fixed;inset:76px 0 0;background:#02081780;z-index:60}.staff-profile-card,.staff-profile-meta{grid-template-columns:1fr}}@media(max-width:720px){.staff-shell-header{padding:0 16px}.staff-shell-content{padding:18px}.staff-request-actions-grid{grid-template-columns:1fr}.staff-desktop-table{display:none}.staff-mobile-cards{display:block}}
