.login-page{flex:1;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem 2rem}.login-card{max-width:400px;width:100%;text-align:center}.login-logo{margin-bottom:2rem}.login-logo svg{filter:drop-shadow(0 0 30px rgba(96, 165, 250, .3))}.login-card h1{font-size:clamp(1.5rem, 4vw, 1.875rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem;background:linear-gradient(135deg,var(--color-text) 0,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-subtitle{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:2rem;line-height:1.6}.passkey-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;color:var(--color-bg);background:linear-gradient(135deg,var(--color-accent-blue),var(--color-accent-purple));border:none;border-radius:12px;cursor:pointer;transition:all .3s var(--ease-out);box-shadow:0 0 24px rgba(96,165,250,.2),0 4px 16px rgba(0,0,0,.3)}.passkey-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 0 40px rgba(96,165,250,.35),0 12px 32px rgba(0,0,0,.4)}.passkey-btn:active{transform:translateY(0) scale(1)}.passkey-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.passkey-btn svg{flex-shrink:0}.login-status{margin-top:1rem;font-size:.875rem;min-height:1.5em;color:var(--color-text-muted);transition:opacity .3s ease}.login-status.error{color:#f87171}.login-status.info{color:var(--color-accent-blue)}.login-divider{margin:2rem 0;border:none;border-top:1px solid var(--color-border)}.login-beta{font-size:.875rem;color:var(--color-text-muted);line-height:1.65}.login-beta strong{color:var(--color-text-secondary)}.login-beta a{color:var(--color-accent-blue);text-decoration:none;transition:color .2s ease}.login-beta a:hover{color:var(--color-text)}.login-back{display:inline-block;margin-top:1.5rem;font-size:.8125rem;color:var(--color-text-muted);text-decoration:none;transition:color .2s ease;text-align:center;width:100%}.login-back:hover{color:var(--color-accent-blue)}.login-recover{margin-top:1.25rem;text-align:center}.login-recover a{font-size:.8125rem;color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.login-recover a:hover{color:var(--color-accent-blue)}.no-webauthn{padding:1rem 1.25rem;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.15);border-radius:12px;font-size:.875rem;color:var(--color-text-muted);line-height:1.6}@media (max-width:480px){.login-page,.register-page{padding:5rem 1.25rem 3rem}}.oauth-page{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.oauth-card{max-width:400px;width:100%;text-align:center}.oauth-card h1{font-size:clamp(1.25rem, 3.5vw, 1.5rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem;background:linear-gradient(135deg,var(--color-text) 0,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.oauth-subtitle{font-size:.9375rem;color:var(--color-text-muted);line-height:1.6}.oauth-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--color-accent-blue);border-radius:50%;animation:oauth-spin .8s linear infinite;margin:0 auto 1.5rem}@keyframes oauth-spin{to{transform:rotate(360deg)}}.oauth-status{margin-top:1rem;font-size:.875rem;color:var(--color-text-muted)}.oauth-status.error{color:#f87171}.oauth-status.success{color:var(--color-success)}.recover-page{flex:1;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem 4rem}.recover-card{max-width:440px;width:100%}.recover-card h1{font-size:clamp(1.5rem, 4vw, 1.875rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem;text-align:center;background:linear-gradient(135deg,var(--color-text) 0,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.recover-subtitle{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:2rem;line-height:1.6;text-align:center}.steps{display:flex;gap:.5rem;margin-bottom:2rem;justify-content:center}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:all .3s var(--ease-out)}.step-dot.active{background:var(--color-accent-blue);box-shadow:0 0 12px rgba(96,165,250,.4)}.step-dot.completed{background:var(--color-success)}.step-panel{display:none}.step-panel.active{display:block}.form-group{margin-bottom:1.25rem}.form-group label{font-weight:600;margin-bottom:.5rem}.form-input{padding:.75rem 1rem;font-size:1rem;border-radius:10px}.totp-input{text-align:center;font-size:1.5rem;letter-spacing:.3em;font-weight:600}.backup-input{text-align:center;font-size:1.125rem;font-family:monospace;letter-spacing:.1em}.btn-primary{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;color:var(--color-bg);background:linear-gradient(135deg,var(--color-accent-blue),var(--color-accent-purple));border:none;border-radius:12px;cursor:pointer;transition:all .3s var(--ease-out);box-shadow:0 0 24px rgba(96,165,250,.2),0 4px 16px rgba(0,0,0,.3)}.btn-primary:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 0 40px rgba(96,165,250,.35),0 12px 32px rgba(0,0,0,.4)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{display:block;width:100%;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;font-family:inherit;color:var(--color-text-secondary);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;margin-top:.75rem}.btn-secondary:hover{border-color:var(--color-border-hover)}.btn-resend-code{margin-top:.5rem}.recover-status{margin-top:1rem;font-size:.875rem;min-height:1.5em;color:var(--color-text-muted);text-align:center}.recover-status.error{color:#f87171}.recover-status.info{color:var(--color-accent-blue)}.recover-status.success{color:var(--color-success)}.recover-links{margin-top:1.5rem;text-align:center;font-size:.8125rem}.recover-links a{color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.recover-links a:hover{color:var(--color-accent-blue)}.codes-warning{margin-top:1rem;padding:.75rem 1rem;font-size:.8125rem;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.12);border-radius:8px;color:#f59e0b;line-height:1.6;text-align:center}.step-description{font-size:.875rem;color:var(--color-text-muted);line-height:1.6;margin-bottom:1.5rem}@media (max-width:480px){.recover-page{padding:5rem 1.25rem 3rem}}.sms-input{text-align:center;font-size:1.5rem;letter-spacing:.3em;font-weight:600}.totp-display{text-align:center;padding:1.5rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;margin-bottom:1.25rem}.qr-container{display:flex;justify-content:center;margin:0 auto 1rem;background:#fff;border-radius:8px;padding:.75rem;width:fit-content}.qr-container svg{display:block;width:180px;height:180px}.totp-secret{font-family:monospace;font-size:.8125rem;color:var(--color-text-muted);word-break:break-all;user-select:all}.totp-secret-label{font-size:.75rem;color:var(--color-text-muted);margin-top:.5rem}.backup-codes{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:1.25rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;margin-bottom:1.25rem}.backup-code{font-family:monospace;font-size:.9375rem;color:var(--color-text);text-align:center;padding:.375rem;background:var(--color-surface-3);border-radius:6px;user-select:all}.backup-warning{font-size:.8125rem;color:#f59e0b;line-height:1.6;margin-bottom:1rem;padding:.75rem 1rem;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.12);border-radius:8px}.waiting-display{text-align:center;padding:2rem 1.5rem;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;margin-bottom:1.25rem}.waiting-icon{font-size:2.5rem;margin-bottom:1rem}.waiting-timer{font-size:1.5rem;font-weight:700;font-family:monospace;color:var(--color-accent-blue);margin-bottom:.5rem}.waiting-label{font-size:.8125rem;color:var(--color-text-muted);line-height:1.6}.phone-mask{font-family:monospace;font-size:1.125rem;font-weight:600;color:var(--color-text);text-align:center;margin-bottom:1rem}@keyframes pulse-dot{0%,100%{opacity:.3}50%{opacity:1}}.waiting-dots{margin-top:1rem}.waiting-dots span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-accent-blue);margin:0 3px;animation:pulse-dot 1.4s infinite ease-in-out}.waiting-dots span:nth-child(2){animation-delay:.2s}.waiting-dots span:nth-child(3){animation-delay:.4s}.invalid-link{text-align:center}.invalid-link-message{color:#f87171;margin-bottom:1rem}.invalid-link a{color:var(--color-accent-blue);text-decoration:none}.recover-card--email{text-align:center}.recover-card--email .form-group{text-align:left}.warning-box{padding:1rem 1.25rem;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.12);border-radius:12px;font-size:.8125rem;color:#f59e0b;line-height:1.6;margin-bottom:1.5rem;text-align:left}.sent-icon{font-size:3rem;margin-bottom:1rem}.sent-message-note{font-size:.8125rem;color:var(--color-text-muted);line-height:1.6}.register-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:6rem 1.5rem 4rem}.register-card{max-width:440px;width:100%}.register-logo{text-align:center;margin-bottom:2rem}.register-logo svg{filter:drop-shadow(0 0 30px rgba(96, 165, 250, .3))}.register-card h1{font-size:clamp(1.5rem, 4vw, 1.875rem);font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem;text-align:center;background:linear-gradient(135deg,var(--color-text) 0,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.register-subtitle{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:2rem;line-height:1.6;text-align:center}.register-status{margin-top:1rem;font-size:.875rem;min-height:1.5em;color:var(--color-text-muted);text-align:center}.register-status.error{color:#f87171}.register-status.info{color:var(--color-accent-blue)}.register-status.success{color:var(--color-success)}.totp-code-input{text-align:center;font-size:1.5rem;letter-spacing:.3em;font-weight:600}.backup-confirm{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.backup-confirm input[type=checkbox]{margin-top:.25rem;accent-color:var(--color-accent-blue);width:16px;height:16px}.backup-confirm label{font-size:.875rem;color:var(--color-text-secondary);line-height:1.5;cursor:pointer}.email-readonly{opacity:.85;cursor:default}.signup-container{max-width:380px}.signup-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.signup-form .form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:0;text-align:left}.signup-form .form-group label{font-size:.875rem;font-weight:500;letter-spacing:normal}.signup-form .form-group input{padding:.875rem 1rem;font-size:1rem;font-family:inherit;color:var(--color-text);background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:8px;outline:0;transition:border-color .2s;-webkit-appearance:none}.signup-form .form-group input::placeholder{color:var(--color-text-muted)}.signup-form .form-group input:focus{border-color:var(--color-accent-blue)}.signup-form .form-group input:disabled{opacity:.6;cursor:not-allowed}.signup-form .form-group input.readonly{background:var(--color-bg);color:var(--color-text-muted)}.signup-form button{padding:.875rem 1.5rem;font-size:1rem;font-weight:500;font-family:inherit;color:var(--color-bg);background:linear-gradient(135deg,var(--color-accent-blue),var(--color-accent-purple));border:none;border-radius:8px;cursor:pointer;transition:opacity .2s,transform .2s;min-height:48px;-webkit-tap-highlight-color:transparent;margin-top:.5rem}.signup-form button:hover{opacity:.9;transform:translateY(-1px)}.signup-form button:disabled{opacity:.7;cursor:not-allowed;transform:none}.error-message{color:#f87171;font-size:.875rem;text-align:center;padding:.75rem;background:rgba(248,113,113,.1);border-radius:8px}.loading{text-align:center;padding:3rem}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent-blue);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.signup-hint{font-size:.8125rem}.contact-gap{margin-top:1.5rem}.success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:linear-gradient(135deg,var(--color-accent-blue),var(--color-accent-purple));border-radius:50%;display:flex;align-items:center;justify-content:center;animation:scaleIn .5s ease-out}.success-icon svg{width:40px;height:40px}@keyframes scaleIn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.next-steps{background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;margin:2rem 0;text-align:left}.next-steps h2{font-size:1rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:1rem}.next-steps ol{list-style:none;counter-reset:steps;padding:0;margin:0}.next-steps li{counter-increment:steps;padding:.75rem 0;border-bottom:1px solid var(--color-border);display:flex;align-items:flex-start;gap:.75rem}.next-steps li:last-child{border-bottom:none;padding-bottom:0}.next-steps li::before{content:counter(steps);background:var(--color-surface-3);color:var(--color-text-secondary);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:500;flex-shrink:0}.next-steps li span{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.5}.phone-number{font-family:monospace;background:var(--color-bg);padding:.25rem .5rem;border-radius:4px;font-size:.875rem}.cta-button{display:inline-block;padding:.875rem 2rem;font-size:1rem;font-weight:500;color:var(--color-bg);background:linear-gradient(135deg,var(--color-accent-blue),var(--color-accent-purple));border:none;border-radius:8px;text-decoration:none;transition:opacity .2s,transform .2s}.cta-button:hover{opacity:.9;transform:translateY(-1px)}.success-download-hint{font-size:.8125rem;margin-bottom:1.5rem}