.login-page{padding:var(--space-lg);flex:1;justify-content:center;align-items:center;min-height:100dvh;display:flex}.login-card{align-items:center;gap:var(--space-xs);flex-direction:column;width:100%;max-width:400px;display:flex}.login-card__title{font-family:var(--font-body);color:var(--color-text);margin-top:var(--space-lg);letter-spacing:-.5px;font-size:28px;font-weight:700}.login-card__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-lg);font-size:15px}.login-form{flex-direction:column;width:100%;display:flex}.login-form__label{color:var(--color-text);margin-bottom:6px;margin-top:var(--space-md);font-size:14px;font-weight:500}.login-form__label:first-child{margin-top:0}.login-form__input{width:100%;font-family:var(--font-body);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:#fff;outline:none;padding:12px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.login-form__input::placeholder{color:#aaa}.login-form__input:focus{border-color:var(--color-text);box-shadow:0 0 0 3px #0000000d}.login-form__error{margin-top:var(--space-md);color:#b91c1c;border-radius:var(--radius-sm);background-color:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:14px}.login-form__submit{margin-top:var(--space-lg);width:100%;font-family:var(--font-body);color:var(--color-cta-text);background-color:var(--color-cta-bg);border-radius:var(--radius-pill);padding:14px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s;box-shadow:0 4px 14px #0000001a}.login-form__submit:hover:not(:disabled){background-color:var(--color-cta-hover);transform:translateY(-1px);box-shadow:0 6px 20px #00000026}.login-form__submit:disabled{opacity:.6;cursor:not-allowed}.login-form__forgot{margin-top:var(--space-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-end;padding:0;font-size:13px;font-weight:500;transition:color .2s}.login-form__forgot:hover{color:var(--color-text)}.login-form__success{align-items:center;gap:var(--space-sm);text-align:center;flex-direction:column;width:100%;display:flex}.login-form__success-icon{color:#0284c7;background-color:#f0f9ff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;animation:.4s cubic-bezier(.34,1.56,.64,1) success-pop;display:flex}@keyframes success-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.login-form__success-text{color:var(--color-text-secondary);max-width:340px;font-size:14px;line-height:1.6}.login-form__resend{margin-top:var(--space-xs);font-family:var(--font-body);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;background-color:#fff;padding:10px 20px;font-size:14px;font-weight:500;transition:background-color .2s,border-color .2s}.login-form__resend:hover:not(:disabled){border-color:var(--color-text);background-color:#f5f5f5}.login-form__resend:disabled{opacity:.5;cursor:not-allowed}.login-form__back-to-login{margin-top:var(--space-md);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;transition:color .2s}.login-form__back-to-login:hover{color:var(--color-text)}.login-card__footer{margin-top:var(--space-xl);align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.login-card__signup-link{color:var(--color-text);font-size:14px;font-weight:500;transition:opacity .2s}.login-card__signup-link:hover{opacity:.7}.login-card__back{color:var(--color-text-secondary);font-size:14px;transition:color .2s}.login-card__back:hover{color:var(--color-text)}.route-loading{flex:1;justify-content:center;align-items:center;min-height:100dvh;display:flex}.route-loading__spinner{border:3px solid var(--color-border);border-top-color:var(--color-text);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.signup-page{padding:var(--space-lg);flex:1;justify-content:center;align-items:center;min-height:100dvh;display:flex}.signup-card{align-items:center;gap:var(--space-xs);flex-direction:column;width:100%;max-width:400px;display:flex}.signup-card__title{font-family:var(--font-body);color:var(--color-text);margin-top:var(--space-lg);letter-spacing:-.5px;font-size:28px;font-weight:700}.signup-card__subtitle{color:var(--color-text-secondary);margin-bottom:var(--space-lg);text-align:center;font-size:15px;line-height:1.5}.signup-form{flex-direction:column;width:100%;display:flex}.signup-form__label{color:var(--color-text);margin-bottom:6px;margin-top:var(--space-md);font-size:14px;font-weight:500}.signup-form__label:first-child{margin-top:0}.signup-form__input{width:100%;font-family:var(--font-body);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:#fff;outline:none;padding:12px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.signup-form__input::placeholder{color:#aaa}.signup-form__input:focus{border-color:var(--color-text);box-shadow:0 0 0 3px #0000000d}.signup-form__input--otp{font-family:var(--font-mono);text-align:center;letter-spacing:8px;padding:16px 14px;font-size:24px}.signup-form__error{margin-top:var(--space-md);color:#b91c1c;border-radius:var(--radius-sm);background-color:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:14px}.signup-form__submit{margin-top:var(--space-lg);width:100%;font-family:var(--font-body);color:var(--color-cta-text);background-color:var(--color-cta-bg);border-radius:var(--radius-pill);padding:14px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s,background-color .2s;box-shadow:0 4px 14px #0000001a}.signup-form__submit:hover:not(:disabled){background-color:var(--color-cta-hover);transform:translateY(-1px);box-shadow:0 6px 20px #00000026}.signup-form__submit:disabled{opacity:.6;cursor:not-allowed}.signup-card__footer{margin-top:var(--space-xl);align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.signup-card__link{color:var(--color-text);font-size:14px;font-weight:500;transition:opacity .2s}.signup-card__link:hover{opacity:.7}.signup-card__back{color:var(--color-text-secondary);font-size:14px;transition:color .2s}.signup-card__back:hover{color:var(--color-text)}
