.login{justify-content:center;align-items:center;gap:var(--spacing-4xl);min-height:80vh;padding:var(--spacing-2xl);flex-direction:column;display:flex}.loginCard{width:100%;max-width:380px;padding:var(--spacing-2xl);background:var(--color-surface);border:1px solid var(--border-color);border-radius:var(--radius-md)}.loginTitle{margin:0 0 var(--spacing-xs);color:var(--color-text-primary);text-align:center;font-size:1.5rem;font-weight:600}.loginSubtitle{margin:0 0 var(--spacing-2xl);color:var(--color-text-secondary);text-align:center;font-size:.9375rem}.authForm{gap:var(--spacing-lg);flex-direction:column;display:flex}.formGroup{gap:var(--spacing-xs);flex-direction:column;display:flex}.formGroup label{color:var(--color-text-primary);justify-content:space-between;align-items:center;font-size:.875rem;font-weight:500;display:flex}.formGroup input{padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--color-background);color:var(--color-text-primary);transition:border-color var(--transition-base), box-shadow var(--transition-base);font-size:.9375rem}:is(.formGroup input)::-moz-placeholder{color:var(--color-text-tertiary)}:is(.formGroup input)::placeholder{color:var(--color-text-tertiary)}:is(.formGroup input):focus{border-color:var(--color-primary-base);box-shadow:0 0 0 3px var(--color-primary-light-3);outline:none}.formError{padding:var(--spacing-md);color:var(--color-error);background:color-mix(in srgb, var(--color-error) 10%, transparent);border-radius:var(--radius-sm);text-align:center;font-size:.875rem}.authSubmit{width:100%;max-width:20rem;margin:var(--spacing-sm) auto;padding:var(--spacing-md) var(--spacing-lg);font-size:1rem}.authSubmit:disabled{opacity:.7;cursor:not-allowed}.authDivider{align-items:center;gap:var(--spacing-lg);margin:var(--spacing-xl) 0;display:flex}.authDivider:before,.authDivider:after{content:"";background:linear-gradient(to var(--divider-dir,right), transparent, var(--border-color) 20%, var(--border-color));flex:1;height:1px}.authDivider:before{--divider-dir:right}.authDivider:after{--divider-dir:left}.authDivider span{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:500}.oauthProviders{justify-content:center;align-items:center;min-height:3rem;display:flex;position:relative}.oauthProviders:not(.ready):before{content:"";border:2px solid var(--color-primary-light-3);border-top-color:var(--color-primary-base);border-radius:50%;width:20px;height:20px;animation:1s linear infinite spin;position:absolute}.oauthProviders.ready{opacity:1}@keyframes spin{to{transform:rotate(360deg)}}.authSwitch{margin:var(--spacing-xl) 0 0;color:var(--color-text-secondary);text-align:center;font-size:.875rem}.authSwitch a{color:var(--color-primary-base);font-weight:500;text-decoration:none}:is(.authSwitch a):hover{text-decoration:underline}.authSwitchDot{margin:0 var(--spacing-sm);color:var(--color-text-tertiary)}.loginLegal{color:var(--color-text-tertiary);text-align:center;max-width:380px;margin:0;font-size:.8125rem;line-height:1.6}.loginLegal a{color:var(--color-text-secondary);transition:color var(--transition-base);text-decoration:none}:is(.loginLegal a):focus-visible{outline:2px solid var(--border-color-focus);outline-offset:2px}:is(.loginLegal a):hover{color:var(--color-primary-base);text-decoration:underline}:is(.loginLegal a):focus-visible{border-radius:2px}.loginFallback{align-items:center;gap:var(--spacing-md);text-align:center;padding:var(--spacing-lg);flex-direction:column;display:flex}.loginFallback p{color:var(--color-error);margin:0;font-size:.875rem;font-weight:500}.loginFallback .subtext{color:var(--color-text-secondary);font-size:.8125rem;font-weight:400}.authSuccess{padding:var(--spacing-lg);color:var(--color-success);background:color-mix(in srgb, var(--color-success) 10%, transparent);border-radius:var(--radius-sm);text-align:center;font-size:.9375rem}.codeInput{letter-spacing:.5em;text-align:center;font-family:monospace;font-size:1.5rem;font-weight:600}.linkButton{font:inherit;color:var(--color-primary-base);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500;text-decoration:none}.linkButton:hover{text-decoration:underline}.linkButton:disabled{opacity:.7;cursor:not-allowed}
