*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family-base);background:var(--bg-body);color:var(--color-text-primary);line-height:1.5;min-height:100vh;position:relative}.logo{position:absolute;top:32px;left:32px;text-decoration:none;z-index:10;display:block}.logo img{height:40px;width:auto;display:block}@media (max-width: 640px){.logo{top:24px;left:24px}.logo img{height:32px}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:100px 20px 40px}.form-wrapper{max-width:440px;width:100%;background:var(--color-surface);padding:var(--space-2xl);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-light);box-shadow:var(--shadow-lg)}h1{font-size:28px;font-weight:600;color:var(--color-text-primary);text-align:center;margin-bottom:12px;position:relative}.subtitle{text-align:center;font-size:15px;color:var(--color-text-secondary);margin-bottom:36px;font-weight:400}.title-underline{width:60px;height:3px;background:linear-gradient(to right,var(--primary),#ff1a75);margin:12px auto 8px;border-radius:3px}.social-section-title{text-align:center;font-size:14px;font-weight:600;color:var(--color-text-secondary);margin-bottom:16px}.social-buttons{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}@media (max-width: 640px){.social-buttons{flex-direction:column}}.social-btn{flex:1;padding:13px 20px;font-size:14px;font-weight:600;font-family:var(--font-family-base);color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:var(--shadow-sm);min-height:44px}.social-btn:hover{background:var(--color-background);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.social-btn:active{transform:translateY(0)}.social-btn svg{width:20px;height:20px;flex-shrink:0}.social-btn span{white-space:nowrap}.divider{display:flex;align-items:center;text-align:center;margin:24px 0;color:var(--color-text-secondary);font-size:13px}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--color-border)}.divider span{padding:0 16px}.auth-form{display:flex;flex-direction:column}.form-group{margin-bottom:20px}label{display:block;font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}input[type=email],input[type=password],input[type=text]{width:100%;padding:12px 16px;font-size:14px;font-family:var(--font-family-base);color:var(--color-text-primary);background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;outline:none;transition:all .2s;min-height:44px}input[type=email]:focus,input[type=password]:focus,input[type=text]:focus{background:var(--color-surface);border-color:var(--color-primary);box-shadow:var(--focus-ring)}input::-moz-placeholder{color:var(--color-text-secondary)}input::placeholder{color:var(--color-text-secondary)}.btn-primary{width:100%;padding:14px 24px;font-size:15px;font-weight:600;font-family:var(--font-family-base);color:#fff;background:var(--primary);border:none;border-radius:8px;cursor:pointer;transition:all .2s;margin-top:8px;min-height:48px}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 2px 4px #e6005c33}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:var(--color-border);cursor:not-allowed}.form-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:14px;flex-wrap:wrap;gap:12px}.form-footer a{color:var(--color-text-primary);text-decoration:underline;transition:color .2s}.form-footer a:hover{color:var(--primary)}.success-banner{display:flex;align-items:flex-start;gap:1rem;background:var(--color-success-light);border:1px solid var(--color-success);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.success-icon{font-size:1.25rem;flex-shrink:0}.success-content h4{color:var(--color-success-dark);font-size:.875rem;font-weight:600;margin-bottom:.25rem}.success-content p{color:var(--color-text-secondary);font-size:.75rem;margin:0}.form-error{font-size:.75rem;color:var(--color-error);min-height:1rem;margin-top:4px}.form-error.general-error{margin-top:0;margin-bottom:1rem;padding:.75rem 1rem;background:var(--color-error-light);border:1px solid var(--color-error);border-radius:8px;font-size:.875rem;color:var(--color-error);font-weight:500}input.error{border-color:var(--color-error);background:var(--color-error-light)}.loading-overlay{position:fixed;inset:0;background:#000000bf;display:none;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(4px)}.loading-overlay.active{display:flex}.loading-content{text-align:center;background:var(--color-surface, #fff);padding:2.5rem 3rem;border-radius:16px;box-shadow:0 10px 40px #0000004d;min-width:220px}.loading-spinner{width:56px;height:56px;border:5px solid var(--color-border, #e5e7eb);border-top:5px solid var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1.25rem}.loading-text{color:var(--color-text-primary);font-weight:600;font-size:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.auth-container{padding:80px 16px 40px}.form-wrapper{padding:var(--space-xl)}h1{font-size:24px}.subtitle{font-size:14px;margin-bottom:24px}.form-footer{flex-direction:column;text-align:center}}@media (max-width: 480px){.auth-container{padding:70px 12px 30px}.form-wrapper{padding:var(--space-lg);border-radius:var(--border-radius)}h1{font-size:22px}.subtitle{font-size:13px}.social-btn{padding:12px 16px;font-size:13px}input[type=email],input[type=password],input[type=text]{padding:10px 14px;font-size:14px}.btn-primary{padding:12px 20px;font-size:14px}}[data-theme=dark] .form-wrapper,[data-theme=dark] .social-btn{background:var(--bg-surface);border-color:var(--color-border)}[data-theme=dark] .social-btn:hover{background:var(--color-background)}[data-theme=dark] input[type=email],[data-theme=dark] input[type=password],[data-theme=dark] input[type=text]{background:var(--color-background);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] input[type=email]:focus,[data-theme=dark] input[type=password]:focus,[data-theme=dark] input[type=text]:focus{background:var(--bg-surface)}.two-factor-form{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.two-factor-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.two-factor-header h2{font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0}.back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s}.back-btn:hover{background:var(--color-surface);border-color:var(--color-border-hover);color:var(--color-text-primary)}.two-factor-description{font-size:14px;color:var(--color-text-secondary);margin-bottom:24px;line-height:1.5}.verification-code-input{font-size:24px!important;text-align:center;letter-spacing:8px;font-family:Monaco,Consolas,monospace;font-weight:600}.verification-code-input::-moz-placeholder{font-size:14px;letter-spacing:normal}.verification-code-input::placeholder{font-size:14px;letter-spacing:normal}.two-factor-help{font-size:13px;color:var(--color-text-secondary);text-align:center;margin-top:20px}.resend-verification-section{background:var(--color-warning-light, #fef3cd);border:1px solid var(--color-warning, #ffc107);border-radius:8px;padding:1rem;margin-bottom:1.5rem;text-align:center}.resend-text{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.75rem}.resend-btn{width:auto;padding:8px 16px;font-size:14px;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .2s}.resend-btn:hover:not(:disabled){background:var(--color-background);border-color:var(--color-border-hover)}.resend-btn:disabled{opacity:.6;cursor:not-allowed}.resend-message{font-size:13px;margin-top:.75rem}.resend-message.success{color:var(--color-success)}.resend-message.error{color:var(--color-error)}
