.auth-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 15% 15%, #e0efe6 0, transparent 45%), radial-gradient(ellipse at 90% 85%, #e4eeec 0, transparent 45%), #f4f7f5; }
.auth-container { width: 100%; padding: 48px 24px; }
.auth-card { width: 100%; max-width: 460px; margin: auto; padding: 40px; background: #fff; border: 1px solid var(--color-border); border-radius: 24px; box-shadow: 0 20px 60px rgba(29,60,46,.07); }
.brand { text-align: center; }
.brand-icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 22px; border-radius: 17px; background: var(--color-text); color: #9edcb7; font-size: 18px; font-weight: 750; letter-spacing: 0; }
.brand h1 { margin: 0; font-size: 28px; }
.headline { max-width: 310px; margin: 16px auto 28px; text-align: center; font-size: 14px; line-height: 1.65; color: var(--color-muted); }
.auth-card label { display: block; margin: 18px 0 7px; color: var(--color-text); font-weight: 600; font-size: 13px; }
.auth-card input { width: 100%; font-size: 16px; }
.auth-card .primary-button, .google-button { width: 100%; min-height: 48px; border-radius: 11px; font-size: 14px; font-weight: 600; }
.auth-card .primary-button { margin-top: 26px; }
.google-button { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 12px; border: 1px solid #747775; background: #fff; color: #1f1f1f; cursor: pointer; }
.google-button:not(:disabled):hover { background: #f8fafd; }
.google-button:focus-visible { outline: 3px solid #4285f4; outline-offset: 3px; }
.google-button svg { flex-shrink: 0; }
.google-button:disabled { opacity: .65; cursor: not-allowed; }
.google-g { margin-right: 8px; font-size: 18px; font-weight: 750; }
.divider { display: flex; align-items: center; gap: 16px; margin: 24px 0; color: #87958e; font-size: 12px; }
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: var(--color-border); }
.auth-footer { margin: 26px 0 0; padding-top: 22px; border-top: 1px solid var(--color-border); text-align: center; color: var(--color-muted); font-size: 13px; }
.auth-footer a { color: var(--color-primary); font-weight: 650; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }
.auth-notice { padding: 15px 16px; border: 1px solid #cbe3d4; border-radius: 10px; background: #eef8f2; color: #086443; font-size: 13px; line-height: 1.7; }
.auth-help { color: var(--color-muted); font-size: 12px; line-height: 1.7; margin: 16px 0 0; }
.auth-recovery-link { text-align: right; font-size: 13px; margin: 18px 0 0; }
.auth-block-link { display: block; text-align: center; text-decoration: none; }
.auth-logout { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--color-border); }
.auth-logout .secondary-button { width: 100%; }
.auth-card > .back-link { display: inline-block; margin-bottom: 22px; }
@media (max-width: 520px) {
    .auth-container { padding: 28px 16px; }
    .auth-card { padding: 30px 24px; border-radius: 20px; }
    .brand h1 { font-size: 25px; }
}
