*{margin:0;padding:0;box-sizing:border-box}.login-page-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;min-height:100vh;min-height:100dvh;overflow:hidden;background:linear-gradient(135deg,#f0f9ff,#e0f2fe,#f0f9ff);display:flex;justify-content:center;align-items:center}.bg-animation{position:fixed;width:100%;height:100%;top:0;left:0;z-index:0}.umbrella-animation{position:absolute;width:100%;height:100%}.umbrella{position:absolute;width:200px;height:200px;opacity:.1;animation:floatUmbrella 20s infinite ease-in-out}.umbrella1{top:10%;left:10%;animation-delay:0s}.umbrella2{top:60%;right:15%;animation-delay:5s}.umbrella3{bottom:20%;left:20%;animation-delay:10s}@keyframes floatUmbrella{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(50px,-30px) rotate(5deg)}66%{transform:translate(-30px,50px) rotate(-5deg)}}.documents{position:absolute;width:100%;height:100%}.document{position:absolute;width:40px;height:50px;background:linear-gradient(135deg,#0ea5e926,#3b82f626);border-radius:4px;animation:fallDocument 15s infinite linear;box-shadow:0 2px 4px #0000001a}.document:before{content:"";position:absolute;top:8px;left:6px;right:6px;height:2px;background:#0ea5e94d;border-radius:1px}.document:after{content:"";position:absolute;top:16px;left:6px;right:12px;height:2px;background:#0ea5e933;border-radius:1px}@keyframes fallDocument{0%{top:-60px;transform:translate(0) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{top:110%;transform:translate(100px) rotate(180deg);opacity:0}}.shields{position:absolute;width:100%;height:100%}.shield{position:absolute;width:80px;height:90px;opacity:.08;animation:pulse 4s infinite ease-in-out}.shield svg{width:100%;height:100%;fill:url(#shieldGradient)}@keyframes pulse{0%,to{transform:scale(1);opacity:.08}50%{transform:scale(1.1);opacity:.15}}.coverage-waves{position:absolute;width:100%;height:100%}.wave{position:absolute;width:300px;height:300px;border:2px solid rgba(14,165,233,.1);border-radius:50%;animation:expandWave 8s infinite ease-out}@keyframes expandWave{0%{transform:scale(0);opacity:1}to{transform:scale(2);opacity:0}}.login-container{position:relative;z-index:1;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:50px 45px;border-radius:28px;box-shadow:0 20px 60px #0ea5e926,0 0 1px #0000001a;width:450px;animation:slideIn .8s cubic-bezier(.16,1,.3,1);border:2px solid rgba(14,165,233,.1)}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.logo-area{text-align:center;margin-bottom:35px}.logo{width:220px;height:220px;margin:0 auto 12px;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center;box-shadow:none}@keyframes logoFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.03)}}.logo-img{width:auto;height:auto;display:block;animation:logoFloat 3.1s ease-in-out infinite}.login-header{text-align:center;margin-bottom:35px}.login-header h1{font-size:28px;color:#0f172a;margin-bottom:8px;font-weight:700}.login-header p{color:#64748b;font-size:14px}.input-group{margin-bottom:22px;position:relative}.input-group label{display:block;margin-bottom:10px;color:#334155;font-weight:600;font-size:14px}.input-icon{position:absolute;left:16px;top:46px;color:#94a3b8;font-size:18px}.input-group input{width:100%;padding:15px 18px 15px 45px;border:2px solid #e2e8f0;border-radius:14px;font-size:15px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#f8fafc;color:#0f172a}.input-group input:focus{outline:none;border-color:#0ea5e9;background:#fff;box-shadow:0 0 0 4px #0ea5e91a}.input-group.input-error input{border-color:#f87171;background:#fef2f2}.input-group.input-error input:focus{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441a}.input-group input::placeholder{color:#94a3b8}.password-toggle{position:absolute;right:14px;top:46px;background:transparent;border:none;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;color:#94a3b8;transition:color .2s ease}.password-toggle:hover:not(:disabled){color:#0ea5e9}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.toggle-icon{width:20px;height:20px}.remember-forgot{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;font-size:14px}.remember{display:flex;align-items:center;gap:8px;color:#475569}.remember input[type=checkbox]{width:18px;height:18px;cursor:pointer}.forgot-password a{color:#0ea5e9;text-decoration:none;font-weight:600;transition:all .3s}.forgot-password a:hover{color:#0284c7}.login-btn{width:100%;padding:16px;background:linear-gradient(135deg,#0ea5e9,#3b82f6);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0ea5e94d;position:relative;overflow:hidden}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #0ea5e966}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.login-btn .spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.login-btn:before{content:"🛡️";position:absolute;right:20px;font-size:20px;animation:shieldBounce 2s infinite}.login-btn:disabled:before{display:none}@keyframes shieldBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.auth-error{color:#dc2626;font-size:14px;text-align:center;margin-top:12px;padding:12px 16px;background:#fef2f2;border-radius:12px;border:1px solid #fecaca;font-weight:500;animation:errorSlideIn .3s ease-out}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.divider{text-align:center;margin:30px 0;position:relative}.divider:before{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:linear-gradient(90deg,transparent,#e2e8f0,transparent)}.divider span{background:#fffffff2;padding:0 16px;position:relative;color:#94a3b8;font-size:13px;font-weight:500}.help-section{text-align:center;padding:20px;background:#f1f5f9;border-radius:12px;margin-top:25px}.help-section p{color:#475569;font-size:13px;margin-bottom:10px}.help-section a{color:#0ea5e9;text-decoration:none;font-weight:600;font-size:14px}.help-section a:hover{text-decoration:underline}.qr-login-btn{width:100%;margin-top:14px;padding:14px;border:2px dashed #0ea5e9;border-radius:14px;background:#0ea5e90f;color:#0ea5e9;font-weight:600;cursor:pointer;transition:all .2s ease}.qr-login-btn:hover:not(:disabled){background:#0ea5e91f;border-color:#0284c7}.qr-login-btn:disabled{opacity:.6;cursor:not-allowed}.qr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:40;padding:16px}.qr-modal{background:#fff;border-radius:20px;padding:24px;max-width:420px;width:100%;box-shadow:0 20px 50px #0f172a40;text-align:center;position:relative}.qr-modal h3{margin-bottom:6px;font-size:20px;color:#0f172a}.qr-subtitle{margin-bottom:16px;color:#475569;font-size:14px}.qr-image{width:220px;height:220px;margin:0 auto 12px;border-radius:12px;border:1px solid #e2e8f0;padding:8px;background:#f8fafc}.qr-placeholder{width:220px;height:220px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;border:1px dashed #cbd5e1;border-radius:12px;color:#94a3b8;background:#f8fafc}.qr-link{word-break:break-all;font-size:12px;color:#94a3b8;margin-bottom:10px}.qr-meta{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#475569;margin-bottom:12px;gap:12px}.qr-refresh{padding:8px 12px;border-radius:10px;background:#e0f2fe;color:#0369a1;border:none;cursor:pointer;font-weight:600}.qr-status{padding:10px;border-radius:12px;font-size:14px;margin-bottom:12px}.qr-status.success{background:#16a34a1a;color:#166534}.qr-status.warning{background:#eab3081a;color:#92400e}.qr-close{width:100%;padding:12px;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer}.qr-confirm-panel{padding:16px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;margin-top:16px;text-align:center}.qr-confirm-text{color:#0f172a;margin-bottom:12px}.features{display:flex;justify-content:space-around;margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.feature-item{text-align:center;font-size:12px;color:#64748b}.feature-item svg{width:24px;height:24px;margin-bottom:5px;fill:#0ea5e9}
