:root{--bg-dark: #f8fafc;--bg-surface: #ffffff;--primary: #2563eb;--primary-glow: rgba(37, 99, 235, .15);--accent: #7c3aed;--success: #059669;--success-glow: rgba(5, 150, 105, .1);--error: #dc2626;--error-glow: rgba(220, 38, 38, .1);--text-main: #0f172a;--text-muted: #64748b;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(0, 0, 0, .05);--glass-shadow: 0 12px 30px -4px rgba(0, 0, 0, .08);--transition-smooth: .4s cubic-bezier(.23, 1, .32, 1)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{width:100%;height:100%;overflow:hidden;background-color:var(--bg-dark);color:var(--text-main);font-family:Outfit,Inter,system-ui,sans-serif;letter-spacing:-.01em}.page-container{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(16px,4vh,40px);background:var(--bg-dark)}.glass-card{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:32px;box-shadow:var(--glass-shadow);display:flex;flex-direction:column;animation:cardAppear .6s var(--transition-smooth)}@keyframes cardAppear{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}button{cursor:pointer;border:none;border-radius:16px;font-family:inherit;transition:var(--transition-smooth)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;padding:16px 32px;font-weight:700;box-shadow:0 10px 15px -3px var(--primary-glow)}.btn-primary:active{transform:scale(.96)}.btn-outline{background:#fff;border:1px solid var(--glass-border);color:var(--text-muted);padding:14px 28px;font-weight:600}.camera-page{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.camera-feed{width:100%;height:100%;object-fit:cover}.face-bounding-box{position:absolute;border:2px solid rgba(255,255,255,.4);border-radius:12px;z-index:10;transition:border-color .3s ease;pointer-events:none}.face-bounding-box.matching{border-color:#10b981;box-shadow:0 0 20px #10b9814d}.corner{position:absolute;width:20px;height:20px;border-color:#fff;border-style:solid;transition:border-color .3s ease}.face-bounding-box.matching .corner{border-color:#10b981}.corner.tl{top:-2px;left:-2px;border-width:4px 0 0 4px;border-top-left-radius:12px}.corner.tr{top:-2px;right:-2px;border-width:4px 4px 0 0;border-top-right-radius:12px}.corner.bl{bottom:-2px;left:-2px;border-width:0 0 4px 4px;border-bottom-left-radius:12px}.corner.br{bottom:-2px;right:-2px;border-width:0 4px 4px 0;border-bottom-right-radius:12px}.verifying-label{position:absolute;top:-35px;left:50%;transform:translate(-50%);background:#10b981;color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700;white-space:nowrap;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.8}50%{opacity:1}to{opacity:.8}}.live-guidance{position:absolute;top:max(40px,5vh);left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:100}.score-meter{background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px 20px;border-radius:60px;display:flex;align-items:center;gap:16px;border:1px solid rgba(255,255,255,.2);box-shadow:0 12px 32px #0000004d;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.score-meter.matching{border-color:#10b981;background:#064e3b66;box-shadow:0 12px 32px #10b98133}.score-meter.close{border-color:#f59e0b}.score-meter.far,.score-meter.off-center,.score-meter.too-far,.score-meter.too-close,.score-meter.not-frontal{border-color:#ef4444;background:#7f1d1d66}.meter-ring{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.meter-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#ffffff1a;stroke-width:3}.ring-fill{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .3s ease,stroke .3s ease}.far .ring-fill{stroke:#ef4444}.close .ring-fill{stroke:#f59e0b}.matching .ring-fill{stroke:#10b981}.score-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:#fff}.guidance-text{color:#fff;font-size:.9rem;font-weight:600;margin:0!important;text-shadow:0 2px 4px rgba(0,0,0,.5)}.pin-btn-container{position:absolute;bottom:max(40px,6vh);left:0;right:0;display:flex;justify-content:center;z-index:100}.pin-btn{display:flex;align-items:center;gap:8px;padding:16px 32px;background:#ffffff26;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);border-radius:50px;color:#fff;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #0003}.pin-btn:active{transform:scale(.95);background:#ffffff40}.pin-btn .material-icons{font-size:22px}.verifying-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:200;color:#fff;gap:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loader-ring{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.camera-error-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;padding:32px;border-radius:24px;text-align:center;width:90%;max-width:400px;z-index:300;box-shadow:0 20px 50px #00000080;display:flex;flex-direction:column;align-items:center;gap:16px}.error-icon{width:64px;height:64px;background:#fef2f2;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#ef4444}.error-icon .material-icons{font-size:36px}.camera-error-popup p.error-message{color:#1e293b;margin:0;font-weight:600;line-height:1.6;font-size:1.05rem}.error-actions{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:8px}.error-actions button{width:100%;padding:14px;border-radius:14px;font-weight:700;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.reg-btn{background:#2563eb;color:#fff}.reg-btn:active{background:#1d4ed8;transform:scale(.98)}.error-actions button:not(.reg-btn):not(.secondary-btn){background:#f1f5f9;color:#1e293b}.secondary-btn{background:transparent;color:#94a3b8}.secondary-btn:hover{color:#64748b}.location-check-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:20px}.location-card{background:#fff;width:100%;max-width:400px;padding:30px;border-radius:24px;text-align:center;box-shadow:0 20px 40px #0000004d;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.radar-container{position:relative;width:100px;height:100px;margin:0 auto 20px;display:flex;justify-content:center;align-items:center}.radar-pulse{position:absolute;width:100%;height:100%;border-radius:50%;background:#3b82f633;animation:pulse-ring 2s infinite}.radar-pulse.delay-1{animation-delay:.5s}.radar-pulse.delay-2{animation-delay:1s}.location-icon-box{width:60px;height:60px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;z-index:2;box-shadow:0 8px 16px #3b82f666}.location-icon-box span{font-size:32px}.status-header h3{margin:0 0 5px;color:#1f2937;font-size:20px;font-weight:700}.branch-name-tag{display:inline-block;padding:2px 10px;background:#e0e7ff;color:#4338ca;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:10px}.status-message{color:#4b5563;font-size:15px;margin-bottom:20px}.status-red .location-icon-box{background:#ef4444;box-shadow:0 8px 16px #ef444466}.status-red .radar-pulse{background:#ef444433}.status-yellow .location-icon-box{background:#f59e0b;box-shadow:0 8px 16px #f59e0b66}.status-yellow .radar-pulse{background:#f59e0b33}.status-green .location-icon-box{background:#10b981;box-shadow:0 8px 16px #10b98166}.status-green .radar-pulse{background:#10b98133}.distance-bar-container{width:100%;height:8px;background:#e5e7eb;border-radius:4px;margin-bottom:20px;overflow:hidden}.distance-bar-fill{height:100%;background:#3b82f6;border-radius:4px;transition:width .5s ease}.status-yellow .distance-bar-fill{background:#f59e0b}.status-green .distance-bar-fill{background:#10b981}.accuracy-indicator{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f9fafb;border-radius:12px;margin-bottom:15px}.acc-label{font-size:13px;color:#6b7280;font-weight:500}.acc-tag{font-size:11px;font-weight:700;color:#fff;padding:2px 8px;border-radius:6px;text-transform:uppercase}.hint-text{font-size:13px;color:#9ca3af;margin:0}.retry-btn{margin-top:20px;padding:12px 30px;background:#3b82f6;color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s}.retry-btn:hover{background:#2563eb;transform:translateY(-2px)}@keyframes pulse-ring{0%{transform:scale(.8);opacity:.8}to{transform:scale(1.8);opacity:0}}.location-card.error{border-top:5px solid #ef4444}.info-icon{font-size:48px;color:#ef4444;margin-bottom:15px}.scan-page{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0f172a;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-family:Inter,sans-serif;overflow:hidden}.scan-container{width:100%;max-width:480px;padding:24px;display:flex;flex-direction:column;align-items:center;animation:fadeIn .5s ease-out;box-sizing:border-box}.scan-header{text-align:center;margin-bottom:30px;animation:slideDown .6s ease-out;z-index:10}.scan-header h3{font-size:1.5rem;font-weight:700;margin:0 0 8px;background:linear-gradient(135deg,#60a5fa,#3b82f6);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.scan-header p{color:#94a3b8;font-size:.95rem;margin:0}.scanner-frame{width:100%;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 25px 50px -12px #00000080;background:#000;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center}#reader{width:100%!important;height:100%!important;border:none!important}#reader video{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:24px}.scan-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}.scan-region-highlight{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76%;height:76%;box-shadow:0 0 0 4000px #00000080}.scan-laser{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent 0%,#60a5fa 50%,transparent 100%);box-shadow:0 0 20px #3b82f6cc;animation:scanLaser 2s infinite ease-in-out;opacity:.8}@keyframes scanLaser{0%{top:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.corner{position:absolute;width:24px;height:24px;border-color:#60a5fa;border-style:solid;border-width:0;filter:drop-shadow(0 0 4px rgba(59,130,246,.5))}.tl{top:-2px;left:-2px;border-top-width:4px;border-left-width:4px;border-radius:6px 0 0}.tr{top:-2px;right:-2px;border-top-width:4px;border-right-width:4px;border-radius:0 6px 0 0}.bl{bottom:-2px;left:-2px;border-bottom-width:4px;border-left-width:4px;border-radius:0 0 0 6px}.br{bottom:-2px;right:-2px;border-bottom-width:4px;border-right-width:4px;border-radius:0 0 6px}.error-message{margin-top:20px;padding:16px 20px;background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#f87171;border-radius:12px;text-align:center;font-size:.9rem;animation:shake .5s cubic-bezier(.36,.07,.19,.97) both}.scanner-footer{margin-top:24px;color:#64748b;font-size:.85rem;text-align:center;font-weight:500;opacity:.8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.verifying-overlay-compact{position:absolute;top:0;left:0;width:100%;height:100%;background:#0f172acc;display:flex;align-items:center;justify-content:center;z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loader-ring-small{width:40px;height:40px;border:4px solid rgba(59,130,246,.2);border-top:4px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message-toast{margin-top:15px;padding:10px 15px;background-color:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171;border-radius:8px;font-size:.85rem;text-align:center;animation:fadeIn .3s ease-out}.scan-error-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0f172ae6;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:40;padding:20px;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scan-error-overlay .material-icons{font-size:3rem;color:#f87171;margin-bottom:15px}.scan-error-overlay p{color:#f87171;font-size:1rem;margin:0 0 20px;font-weight:500}.scan-error-overlay button{padding:10px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #3b82f64d}.scan-error-overlay button:hover{background-color:#2563eb;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.face-registration-page{position:fixed;inset:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(20px,4vh,40px) 20px;overflow:hidden}.registration-header{text-align:center;flex-shrink:0}.registration-header h1{font-size:clamp(1.4rem,4vh,2rem);font-weight:800;color:#0f172a;letter-spacing:-1px}.registration-header p{font-size:.9rem;color:#64748b;margin-top:4px}.camera-container{position:relative;width:100%;max-width:440px;flex-grow:1;margin:16px 0;border-radius:32px;overflow:hidden;border:1px solid #e2e8f0;background:#f8fafc;box-shadow:0 20px 50px #0000000d;display:flex;align-items:center;justify-content:center}.registration-camera{width:100%;height:100%;object-fit:cover}.face-guide-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.face-circle{position:relative;width:min(180px,45vh,55vw);height:min(240px,55vh,65vw);border:4px solid rgba(0,0,0,.05);border-radius:50%;box-shadow:0 0 0 1000px #ffffffb3;transition:all .4s ease}.hold-progress-ring{position:absolute;inset:-6px;border-radius:50%;border:6px solid #2563eb;mask:conic-gradient(from 0deg,#000 var(--progress),transparent var(--progress));-webkit-mask:conic-gradient(from 0deg,#000 var(--progress),transparent var(--progress));transition:none}.face-guide-overlay.success .face-circle{border-color:#059669;box-shadow:0 0 0 1000px #0596691a}.camera-warming{position:absolute;inset:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.camera-warming p{font-weight:700;color:#1e293b}.notification{position:absolute;bottom:24px;left:24px;right:24px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 10px 30px #0000001a;color:#1e293b;font-weight:700;text-align:center;font-size:.9rem}.steps-progress{display:flex;gap:12px;flex-shrink:0;margin-bottom:8px}.step-item{position:relative;width:48px;height:48px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:16px;display:flex;align-items:center;justify-content:center}.step-item.active{background:#2563eb;color:#fff;border-color:transparent;scale:1.1}.step-item.completed{background:#059669;color:#fff;border-color:transparent}.step-number{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#2563eb;color:#fff;border-radius:50%;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid white}.step-item.completed .step-number{background:#059669}.current-instruction{width:min(360px,100%);background:#f8fafc;border:1px solid #e2e8f0;border-radius:24px;padding:20px;text-align:center;flex-shrink:0}.current-instruction strong{display:block;font-size:.75rem;letter-spacing:1.5px;margin-bottom:4px;color:#2563eb;text-transform:uppercase}.current-instruction p{font-size:1rem;font-weight:600;color:#334155}.cancel-btn{margin-top:12px;width:auto;min-width:160px;padding:12px;color:#94a3b8;font-weight:700;flex-shrink:0;background:none;border:none;cursor:pointer}.registration-pin-container{width:100%;height:100%;padding:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.pin-display-small{display:flex;gap:12px;margin-bottom:8px}.pin-display-small .pin-dot{width:12px;height:12px;border-radius:50%;background:#e2e8f0;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.pin-display-small .pin-dot.active{background:#2563eb;transform:scale(1.3)}.registration-pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:280px}.registration-pin-pad button{height:52px;border-radius:14px;background:#fff;border:1px solid #e2e8f0;font-size:1.15rem;font-weight:700;color:#1e293b;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.registration-pin-pad button:active{background:#f1f5f9;transform:scale(.95)}.registration-pin-pad .pin-del{background:transparent;color:#64748b;border:none}.registration-pin-pad .spacer{pointer-events:none}.pin-page{position:fixed;inset:0;background:#f8fafc;display:flex;align-items:center;justify-content:center}.pin-page.loading{flex-direction:column;gap:16px;color:#64748b;font-weight:600}.pin-container{width:90%;max-width:400px;background:#fff;padding:40px 32px;border-radius:32px;box-shadow:0 20px 50px #00000014;display:flex;flex-direction:column;align-items:center}.pin-header{text-align:center;margin-bottom:32px}.pin-header h1{font-size:1.75rem;font-weight:800;color:#1e293b;margin-bottom:8px}.pin-header p{color:#64748b;font-weight:600;margin:0}.pin-header .pin-detail{font-size:.85rem;margin-top:4px}.pin-display{display:flex;gap:12px;margin-bottom:32px}.pin-dot{width:16px;height:16px;border-radius:50%;background:#e2e8f0;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.pin-dot.active{background:#3b82f6;transform:scale(1.2);box-shadow:0 0 10px #3b82f64d}.pin-error{color:#ef4444;font-size:.85rem;font-weight:600;margin-bottom:24px;text-align:center;background:#fef2f2;padding:12px 16px;border-radius:12px;width:100%}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}.pin-keypad button{height:72px;border-radius:20px;background:#f1f5f9;border:none;font-size:1.5rem;font-weight:700;color:#1e293b;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.pin-keypad button:active{background:#e2e8f0;transform:scale(.95)}.pin-keypad .pin-key-del,.pin-keypad .pin-key-back{background:transparent;color:#64748b}.pin-keypad .material-icons{font-size:28px}@media(max-width:380px){.pin-container{padding:32px 24px}.pin-keypad button{height:64px}}.login-page{position:fixed;inset:0;background:linear-gradient(135deg,#f0f9ff,#fff);display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(24px,5vh,40px);width:min(400px,100%);max-height:95vh;padding:clamp(40px,6vh,64px) 24px;background:#ffffffd9;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.4);border-radius:40px;box-shadow:0 20px 50px -10px #00000014;text-align:center;animation:cardAppear .7s var(--transition-smooth)}.logo-icon{width:clamp(72px,12vh,96px);height:clamp(72px,12vh,96px);background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 24px -6px var(--primary-glow);flex-shrink:0}.logo-icon .material-icons{font-size:48px;color:#fff}.login-header h1{font-size:clamp(1.8rem,5vh,2.4rem);font-weight:900;margin-bottom:8px;color:#0f172a;letter-spacing:-1px}.login-header p{font-size:1rem;color:var(--text-muted);font-weight:500}.oauth-container{width:100%;flex-shrink:0;display:flex;justify-content:center}.oauth-container iframe{max-width:100%!important;border-radius:12px!important;box-shadow:0 4px 12px #0000000d!important}.login-footer{margin-top:8px;font-size:.8rem;color:var(--text-muted);font-weight:600;letter-spacing:.5px}@media(max-height:600px){.login-container{gap:20px;padding:30px 20px}.logo-icon{width:60px;height:60px}}.auth-callback-page{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#0f0f23,#1a1a3e,#0d1b2a);display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.auth-callback-container{display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}.auth-loader{width:60px;height:60px}.spinner{width:100%;height:100%;border:4px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-success-icon .material-icons{font-size:80px;color:#10b981;animation:scaleIn .5s ease}.auth-error-icon .material-icons{font-size:80px;color:#ef4444;animation:shake .5s ease}@keyframes scaleIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.auth-message{font-size:1.2rem;color:#fff;margin:0}.retry-login-btn{margin-top:20px;padding:14px 36px;font-size:1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:30px;cursor:pointer;transition:all .3s ease;box-shadow:0 10px 30px #3b82f64d}.retry-login-btn:hover{transform:translateY(-2px);box-shadow:0 15px 40px #3b82f666}.notification-overlay{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;width:90%;max-width:450px;pointer-events:none;animation:slideDown .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-100%)}to{opacity:1;transform:translate(-50%)}}.notification-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 15px 35px #00000026;overflow:hidden;pointer-events:auto;border:1px solid rgba(255,255,255,.2)}.notification-content{display:flex;align-items:center;padding:20px;gap:15px;position:relative}.notification-icon-box{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.notification-card.error .notification-icon-box{background:#fef2f2;color:#ef4444}.notification-card.warning .notification-icon-box{background:#fffbeb;color:#f59e0b}.notification-card.success .notification-icon-box{background:#ecfdf5;color:#10b981}.notification-card.info .notification-icon-box{background:#eff6ff;color:#3b82f6}.notification-text{flex:1}.notification-text h3{margin:0;font-size:1.1rem;color:#111827;font-weight:700}.notification-text p{margin:4px 0 0;font-size:.95rem;color:#4b5563;line-height:1.4}.notification-close-btn{background:transparent;border:none;color:#9ca3af;cursor:pointer;padding:5px;border-radius:50%;transition:all .2s;display:flex}.notification-close-btn:hover{background:#f3f4f6;color:#4b5563}.notification-progress-container{height:4px;background:#f3f4f6;width:100%}.notification-progress-bar{height:100%;transition:width .05s linear}.notification-card.error .notification-progress-bar{background:#ef4444}.notification-card.warning .notification-progress-bar{background:#f59e0b}.notification-card.success .notification-progress-bar{background:#10b981}.notification-card.info .notification-progress-bar{background:#3b82f6}@media(max-width:480px){.notification-overlay{top:10px}.notification-icon-box{width:40px;height:40px}.notification-text h3{font-size:1rem}.notification-text p{font-size:.85rem}}.wifi-check-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#1e3a8a,#1e1b4b);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.wifi-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;width:100%;max-width:400px;padding:40px 30px;text-align:center;box-shadow:0 25px 50px -12px #00000080;animation:zoomIn .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes zoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.wifi-animation-container{height:120px;display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:25px}.wifi-icon-box{width:64px;height:64px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}.wifi-icon-box span{font-size:2.5rem}.wifi-wave{position:absolute;width:64px;height:64px;border:2px solid #3b82f6;border-radius:50%;opacity:0;animation:waveEffect 3s infinite linear}.wave-1{animation-delay:0s}.wave-2{animation-delay:1s}.wave-3{animation-delay:2s}@keyframes waveEffect{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}.wifi-info h2{margin:0;font-size:1.5rem;color:#111827}.branch-highlight{color:#2563eb;font-weight:700;font-size:1.1rem;margin:5px 0 15px}.status-text{color:#4b5563;font-size:.95rem;margin-bottom:20px}.scanning-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;margin:0 auto 30px;width:80%}.scanning-progress{height:100%;background:#3b82f6;width:30%;border-radius:2px;animation:scanning 1.5s infinite ease-in-out}@keyframes scanning{0%{transform:translate(-100%)}to{transform:translate(330%)}}.wifi-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:25px}.primary-btn,.secondary-btn{padding:14px;border-radius:12px;font-weight:600;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.primary-btn{background:#111827;color:#fff}.primary-btn:active{transform:scale(.98)}.secondary-btn{background:transparent;border:1.5px solid #d1d5db;color:#4b5563}.secondary-btn:hover{background:#f9fafb;border-color:#9ca3af}.instruction-text{font-size:.8rem;color:#9ca3af;line-height:1.4;padding:0 10px}.app{width:100%;height:100%}.success-page{position:fixed;inset:0;background:var(--bg-dark);display:flex;align-items:center;justify-content:center;padding:24px}.success-content{display:flex;flex-direction:column;align-items:center;gap:clamp(24px,5vh,40px);text-align:center;max-width:400px;width:100%}.success-animation{width:clamp(100px,20vh,140px);height:clamp(100px,20vh,140px);background:#10b98133;border-radius:50%;border:4px solid var(--success);display:flex;align-items:center;justify-content:center;box-shadow:0 0 50px var(--success-glow);animation:pop .6s cubic-bezier(.175,.885,.32,1.275);position:relative}.success-ring{position:absolute;inset:-10px;border:2px solid var(--success);border-radius:50%;opacity:.3;animation:success-ping 2s infinite}@keyframes success-ping{0%{transform:scale(1);opacity:.3}to{transform:scale(1.5);opacity:0}}.success-animation .material-icons{font-size:84px;color:var(--success)}@keyframes pop{0%{scale:0;opacity:0}to{scale:1;opacity:1}}.success-content h1{font-size:clamp(2rem,6vh,2.8rem);font-weight:900;margin:0}.attendance-info{display:flex;flex-direction:column;gap:4px}.attendance-date{font-size:1rem!important;color:var(--text-muted)!important;margin:0!important}.attendance-time{font-size:2.5rem!important;font-weight:800;color:var(--text-muted)!important;margin:0!important}.employee-details{background:#ffffff0d;padding:24px;border-radius:24px;width:100%;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:4px}.emp-name{font-size:1.25rem!important;font-weight:800;color:var(--text-muted)!important;margin:0!important}.emp-email{font-size:.9rem!important;color:var(--text-muted)!important;margin:0!important}.countdown-container{background:var(--primary-glow);padding:12px 24px;border-radius:20px;border:1px solid var(--primary);margin:10px 0}.countdown-container p{color:var(--primary);font-weight:600;font-size:.95rem;margin:0}.countdown-container strong{font-size:1.2rem;margin:0 4px}.done-btn{width:100%;padding:18px;background:#fff;color:#000;border-radius:20px;font-weight:800;font-size:1.1rem;border:none;cursor:pointer;transition:all .2s ease}.done-btn:active{transform:scale(.98);background:#eee}.loading-screen-premium{position:fixed;inset:0;background:var(--bg-dark);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-card{background:#ffffff08;padding:40px;border-radius:32px;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;animation:cardIn .5s ease-out}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logo-section{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.logo-blob{position:absolute;inset:0;background:var(--primary);opacity:.2;filter:blur(20px);border-radius:50%;animation:pulse 2s infinite}.logo-section .main-icon{font-size:48px;color:var(--primary);background:linear-gradient(135deg,var(--primary),#818cf8);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.loading-card h2{font-size:1.25rem;font-weight:800;color:#fff;margin:0}.loading-card p{color:var(--text-muted);font-size:.9rem;text-align:center;margin:0;line-height:1.5}.loading-bar-container{width:100%;height:4px;background:#ffffff1a;border-radius:99px;overflow:hidden;margin-top:16px}.loading-bar-fill{width:40%;height:100%;background:var(--primary);border-radius:99px;animation:loadingBar 1.5s ease-in-out infinite;box-shadow:0 0 10px var(--primary)}@keyframes loadingBar{0%{transform:translate(-100%);width:20%}50%{width:60%}to{transform:translate(200%);width:20%}}
