:root{--bg:#f0f2fa;--card-bg:#ffffffd9;--card-border:#ffffff80;--text-primary:#1e2636;--text-secondary:#5b677b;--text-muted:#6e7b93;--accent:#667eea;--accent-dark:#764ba2;--shadow:0 30px 60px -20px #00142840;--input-bg:#fff9;--input-border:#e1e1e1;--badge-bg:#667eea1a;--status-bg:#ffffff80;--icon-bg:#eef2ff;--divider:#0000000f;--transition:.3s ease;--error-bg:#fee;--error-color:#c33;--success-bg:#e8f5e9;--success-color:#2e7d32;--tab-border:#e1e1e1;--btn-text:white}[data-theme=dark]{--bg:#0b0f1a;--card-bg:#14192deb;--card-border:#ffffff14;--text-primary:#e8edf5;--text-secondary:#9aa8c7;--text-muted:#7a89aa;--accent:#8b9cf7;--accent-dark:#9b6bcb;--shadow:0 30px 60px -20px #0009;--input-bg:#ffffff0f;--input-border:#ffffff1f;--badge-bg:#667eea2e;--status-bg:#ffffff0d;--icon-bg:#667eea26;--divider:#ffffff0f;--tab-border:#ffffff14;--error-bg:#dc354526;--error-color:#f8a5a5;--success-bg:#2ecc7126;--success-color:#6fcf97;--btn-text:#0b0f1a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-height:100vh;transition:background var(--transition);justify-content:center;align-items:center;margin:0;padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex}.auth-container{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow);border:1px solid var(--card-border);width:440px;transition:background var(--transition), border var(--transition), box-shadow var(--transition);border-radius:20px;padding:60px 40px 40px;animation:.5s ease-out slideIn;position:relative}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.theme-toggle-wrapper{z-index:10;position:absolute;top:24px;right:24px}.theme-toggle{background:var(--input-bg);border:1px solid var(--input-border);cursor:pointer;width:44px;height:44px;transition:all var(--transition);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--accent);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:20px;display:flex}.theme-toggle:hover{background:var(--badge-bg);border-color:var(--accent);transform:scale(1.05)}.theme-toggle i{color:var(--accent);transition:color var(--transition), transform .5s ease;font-size:22px}.theme-toggle:active i{transform:rotate(60deg)}.auth-header{text-align:center;margin-bottom:24px;padding:0 60px}.auth-header h2{color:var(--text-primary);transition:color var(--transition);margin-bottom:4px;font-size:28px}.auth-header p{color:var(--text-secondary);transition:color var(--transition);font-size:14px}.tabs{border-bottom:2px solid var(--tab-border);transition:border-color var(--transition);margin-bottom:30px;display:flex}.tab{text-align:center;cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex:1;padding:12px;font-size:16px;font-weight:600;transition:all .3s;position:relative}.tab:hover,.tab.active{color:var(--accent)}.tab.active:after{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-dark));border-radius:3px 3px 0 0;width:100%;height:3px;position:absolute;bottom:-2px;left:0}.error-message{background:var(--error-bg);color:var(--error-color);transition:background var(--transition), color var(--transition);border-radius:8px;margin-bottom:20px;padding:12px;font-size:14px;display:none}.error-message.show{animation:.5s ease-in-out shake;display:block}.success-message{background:var(--success-bg);color:var(--success-color);transition:background var(--transition), color var(--transition);border-radius:8px;margin-bottom:20px;padding:12px;font-size:14px;display:none}.success-message.show{animation:.5s ease-out slideIn;display:block}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);transition:color var(--transition);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.input-wrapper{border:2px solid var(--input-border);background:var(--input-bg);border-radius:10px;align-items:center;width:100%;transition:all .3s;display:flex;position:relative}.input-wrapper:focus-within{border-color:var(--accent);background:var(--card-bg);box-shadow:0 0 0 3px #667eea1a}.input-wrapper .icon-left{color:var(--text-muted);pointer-events:none;z-index:1;transition:color var(--transition);font-size:18px;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.input-wrapper input{width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:10px;outline:none;padding:12px 50px 12px 45px;font-size:16px;transition:all .3s}.input-wrapper input::placeholder{color:var(--text-muted)}.password-toggle{cursor:pointer;color:var(--text-muted);z-index:1;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:8px;font-size:20px;transition:all .3s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text-primary);background:#0000000d}.password-toggle i{pointer-events:none;font-size:20px;line-height:1}.password-toggle i.fa-regular,.password-toggle i.fa-solid{position:static!important;top:auto!important;left:auto!important;transform:none!important}.form-hint{color:var(--text-muted);transition:color var(--transition);margin-top:5px;font-size:12px}.password-strength{border-radius:2px;height:4px;margin-top:8px;transition:all .3s}.options{justify-content:space-between;align-items:center;margin-bottom:25px;font-size:14px;display:flex}.remember-me{color:var(--text-secondary);cursor:pointer;transition:color var(--transition);align-items:center;display:flex}.remember-me input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px;margin-right:8px}.forgot-password{color:var(--accent);font-size:14px;text-decoration:none;transition:color .3s}.forgot-password:hover{color:var(--accent-dark);text-decoration:underline}.login-btn,.register-btn{cursor:pointer;width:100%;color:var(--btn-text);border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:16px;font-weight:600;transition:transform .3s,box-shadow .3s;display:inline-flex}.login-btn{background:linear-gradient(135deg, var(--accent), var(--accent-dark))}.register-btn{background:#28a745}.login-btn:hover,.register-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.register-btn:hover{box-shadow:0 10px 20px #28a74566}.login-btn:active,.register-btn:active{transform:translateY(0)}.login-btn:disabled,.register-btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.biometric-divider{text-align:center;color:var(--text-muted);align-items:center;margin:15px 0;display:flex}.biometric-divider:before,.biometric-divider:after{content:"";border-bottom:1px solid var(--divider);flex:1}.biometric-divider span{color:var(--text-muted);padding:0 15px;font-size:13px}.biometric-btn{border:2px solid var(--accent);background:var(--card-bg);cursor:pointer;width:100%;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;gap:12px;margin-bottom:15px;padding:14px;font-size:16px;font-weight:600;transition:all .3s;display:inline-flex}.biometric-btn:hover{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:var(--btn-text);border-color:#0000;transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.biometric-btn:active{transform:translateY(0)}.biometric-btn i{font-size:24px}.biometric-btn .fa-fingerprint{font-size:28px}.biometric-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.biometric-btn:disabled:hover{background:var(--card-bg);color:var(--accent);border-color:var(--accent);box-shadow:none;transform:none!important}.biometric-btn.success{color:#28a745;border-color:#28a745}.biometric-btn.success:hover{color:#fff;background:#28a745;border-color:#0000}.biometric-btn.error{color:#dc3545;border-color:#dc3545;animation:.5s ease-in-out shake}.biometric-btn.error:hover{color:#fff;background:#dc3545;border-color:#0000}.biometric-btn.scanning i{animation:1s ease-in-out infinite pulse}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.divider{text-align:center;color:var(--text-muted);align-items:center;margin:25px 0;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid var(--divider);flex:1}.divider span{padding:0 15px;font-size:14px}.social-login{gap:15px;margin-bottom:5px;display:flex}.social-btn{border:2px solid var(--input-border);background:var(--card-bg);cursor:pointer;color:var(--text-secondary);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:500;transition:all .3s;display:flex}.social-btn:hover{background:var(--badge-bg);border-color:var(--accent)}.social-btn i{font-size:20px}.social-btn .fa-google{color:#ea4335}.social-btn .fa-facebook{color:#1877f2}.register-link,.login-link{text-align:center;color:var(--text-secondary);transition:color var(--transition);margin-top:20px;font-size:14px}.register-link a,.login-link a{color:var(--accent);cursor:pointer;font-weight:600;text-decoration:none}.register-link a:hover,.login-link a:hover{text-decoration:underline}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.loading-spinner{vertical-align:middle;border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:1s ease-in-out infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.resend-btn{background:linear-gradient(135deg, var(--accent), var(--accent-dark));color:var(--btn-text);cursor:pointer;border:none;border-radius:5px;margin-top:10px;padding:8px 20px;font-size:14px;transition:transform .3s}.resend-btn:hover{transform:scale(1.05)}@media (width<=480px){.auth-container{width:100%;padding:70px 20px 25px}.theme-toggle-wrapper{top:16px;right:16px}.theme-toggle{width:38px;height:38px;font-size:16px}.theme-toggle i{font-size:18px}.auth-header{padding:0 20px}.social-login{flex-direction:column}}.error-message,.success-message{transition:background var(--transition), color var(--transition);border-radius:12px;margin-bottom:20px;padding:14px 18px;font-size:14px;font-weight:500;line-height:1.45;display:none;position:relative;overflow:hidden}.error-message{background:var(--error-bg);color:var(--error-color);border-left:4px solid #dc3545}.success-message{background:var(--success-bg);color:var(--success-color);border-left:4px solid #2ecc71}.error-message.show,.success-message.show{animation:.45s cubic-bezier(.16,1,.3,1) slideDownFade;display:block}.error-message.hide,.success-message.hide{animation:.3s forwards slideUpFade;display:block}@keyframes slideDownFade{0%{opacity:0;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translateY(-14px)}to{opacity:1;max-height:200px;margin-bottom:20px;transform:translateY(0)}}@keyframes slideUpFade{0%{opacity:1;max-height:200px;transform:translateY(0)}to{opacity:0;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translateY(-10px)}}@keyframes pulseError{0%,to{box-shadow:0 0 #dc354500}50%{box-shadow:0 0 0 8px #dc354500}}.success-message.show{animation:.45s cubic-bezier(.16,1,.3,1) slideDownFade,1.2s .45s glowSuccess}@keyframes glowSuccess{0%,to{box-shadow:0 0 #2ecc7100}50%{box-shadow:0 0 0 8px #2ecc7100}}@keyframes shakeHorizontal{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.error-message.show{animation:.45s cubic-bezier(.16,1,.3,1) slideDownFade,.5s .45s shakeHorizontal}.key-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.key-modal-overlay.hidden{display:none}.key-modal{background:var(--card-bg,#1e1e2e);color:var(--text-color,#e6e6e6);border-radius:12px;flex-direction:column;width:100%;max-width:720px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.key-modal-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.key-modal-header h3{margin:0;font-size:1.05rem}.key-modal-close{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:1.1rem}.key-modal-close:hover{background:#ffffff1a}.key-modal-body{flex-direction:column;gap:8px;padding:16px 20px 20px;display:flex;overflow-y:auto}.key-modal-body label{opacity:.8;margin-top:6px;font-size:.85rem;font-weight:600}.key-modal-body textarea{resize:vertical;width:100%;min-height:90px;color:inherit;word-break:break-all;background:#00000040;border:1px solid #ffffff26;border-radius:8px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.4}.key-modal-meta{opacity:.7;margin-top:10px;font-size:.8rem}
