/* 认证页面样式 */
.auth-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 24px; background: linear-gradient(135deg, #F5F3FF 0%, #FDF2F8 50%, #EFF6FF 100%); }
.auth-box { background: #fff; border-radius: 20px; box-shadow: 0 20px 60px rgba(124,58,237,0.08), 0 1px 3px rgba(0,0,0,0.06); padding: 40px; width: 100%; max-width: 420px; }
.auth-box-wide { max-width: 520px; }
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo { display: inline-flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 700; margin-bottom: 20px; }
.auth-logo .logo-icon { font-size: 28px; }
.auth-logo .logo-text { background: linear-gradient(135deg, var(--color-primary), var(--color-accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.auth-title { font-size: 22px; font-weight: 700; margin-bottom: 6px; }
.auth-subtitle { font-size: 14px; color: var(--color-text-secondary); }
.auth-alert { padding: 12px 16px; border-radius: var(--radius-md); font-size: 14px; margin-bottom: 20px; line-height: 1.5; }
.auth-alert-error { background: #FEF2F2; color: #DC2626; border: 1px solid #FECACA; }
.auth-alert-success { background: #F0FDF4; color: #16A34A; border: 1px solid #BBF7D0; }
.auth-tabs { display: flex; margin-bottom: 24px; background: var(--color-bg-muted); border-radius: var(--radius-md); padding: 3px; }
.auth-tab { flex: 1; padding: 8px 16px; font-size: 14px; font-weight: 500; color: var(--color-text-secondary); border-radius: 6px; transition: all 0.2s; text-align: center; cursor: pointer; }
.auth-tab.active { background: #fff; color: var(--color-text); box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.auth-tab:hover:not(.active) { color: var(--color-text); }
.auth-form .form-group { margin-bottom: 16px; }
.auth-form .form-label { display: flex; justify-content: space-between; align-items: center; }
.auth-link-right { font-size: 13px; font-weight: 400; color: var(--color-primary); }
.auth-submit { width: 100%; margin-top: 8px; }
.send-code-btn { white-space: nowrap; min-width: 110px; font-size: 13px; }
.send-code-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.radio-group { display: flex; gap: 16px; padding-top: 8px; }
.radio-item { display: flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.radio-item input[type="radio"] { accent-color: var(--color-primary); width: 16px; height: 16px; }
.auth-divider { display: flex; align-items: center; margin: 24px 0; gap: 16px; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--color-border-light); }
.auth-divider span { font-size: 13px; color: var(--color-text-muted); }
.oauth-buttons { display: flex; gap: 10px; }
.oauth-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 12px; font-size: 13px; }
.auth-footer { text-align: center; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--color-border-light); font-size: 14px; color: var(--color-text-secondary); }
.auth-footer a { font-weight: 600; color: var(--color-primary); }
@media (max-width: 480px) {
    .auth-page { padding: 16px; }
    .auth-box { padding: 28px 20px; }
    .auth-box-wide { max-width: 100%; }
    .form-row-2 { grid-template-columns: 1fr; }
    .oauth-buttons { flex-direction: column; }
}
