body.auth-page {
    min-height: 100svh;
    margin: 0;
    background: var(--page-auth-background);
}

body.auth-page.auth-page--pending .auth-shell {
    visibility: hidden;
}

.auth-pending-shell {
    position: fixed;
    inset: 0;
    z-index: 20;
    display: grid;
    place-items: center;
    padding: 1.2rem;
    background: var(--page-auth-background);
}

.auth-pending-card {
    display: grid;
    justify-items: center;
    gap: 0.5rem;
    min-width: min(100%, 18rem);
    padding: 1.35rem 1.25rem;
    border-radius: 1.4rem;
    border: 1px solid var(--button-secondary-border);
    background: var(--surface-section-sky);
    box-shadow: var(--shadow-editorial-card);
    text-align: center;
}

.auth-pending-card strong {
    color: var(--edu-ink);
    font-size: 1rem;
}

.auth-pending-card span:last-child {
    color: var(--edu-ink-soft);
    font-size: 0.9rem;
    line-height: 1.45;
}

.auth-pending-spinner {
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    border: 2px solid color-mix(in srgb, var(--edu-ink-soft) 22%, transparent);
    border-top-color: var(--button-primary-ink);
    animation: auth-spinner-rotate 900ms linear infinite;
}

.auth-shell {
    max-width: none;
    min-height: 100svh;
    display: grid;
    place-items: center;
    padding: 4.8rem 1.2rem 1.2rem;
}

.auth-site-header {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    justify-content: center;
    padding: 0.85rem 1rem 0;
}

.auth-site-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: var(--edu-ink);
    text-decoration: none;
}

.auth-site-brand:hover,
.auth-site-brand:focus-visible {
    color: var(--edu-ink);
    text-decoration: none;
}

.auth-site-brand-name {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -0.04em;
}

.auth-scene {
    width: min(100%, 28rem);
    margin: 0 auto;
}

.auth-overlay-card--minimal {
    padding: 1.3rem 1.3rem 1.4rem;
    border-radius: 1.5rem;
    border: 1px solid var(--button-secondary-border);
    background:
        radial-gradient(circle at top right, var(--glow-quaternary), transparent 28%),
        var(--surface-section-rose);
    backdrop-filter: blur(18px);
    box-shadow: var(--shadow-editorial-card);
    animation: auth-card-enter 260ms ease-out both;
}

.auth-brand-lockup {
    display: grid;
    gap: 0.1rem;
}

.auth-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 0.95rem;
    background: var(--icon-surface);
    color: var(--edu-ink);
}

.auth-brand-emoji {
    font-size: 1.5rem;
    line-height: 1;
    transform: translateY(0.02rem);
}

.auth-brand-copy {
    display: grid;
    gap: 0.05rem;
}

.auth-brand-copy strong {
    color: var(--edu-ink);
    font-size: 1rem;
    line-height: 1.25;
}

.auth-brand-copy span {
    color: var(--edu-ink-soft);
    font-size: 0.86rem;
    line-height: 1.45;
}

.auth-copy {
    margin-top: 1.35rem;
}

.auth-copy h1 {
    margin: 0;
    color: var(--edu-ink);
    font-family: var(--font-sans);
    font-size: clamp(1.9rem, 6vw, 2.35rem);
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: -0.03em;
}

.auth-copy p {
    margin: 0.55rem 0 0;
    color: var(--edu-ink-soft);
    font-size: 0.96rem;
    line-height: 1.55;
}

.auth-google-form {
    margin-top: 1.35rem;
}

.google-signin-container {
    display: flex;
    justify-content: center;
    min-height: 3rem;
}

.auth-card-status {
    margin-top: 1rem;
    padding: 0.82rem 0.95rem;
    border-radius: 1rem;
    background: var(--surface-state-info);
    color: var(--button-secondary-ink);
    font-size: 0.92rem;
}

.auth-card-status[data-tone="error"] {
    background: var(--surface-state-danger);
    color: var(--color-danger);
}

.auth-support-copy {
    margin: 1rem 0 0;
    color: var(--edu-ink-soft);
    font-size: 0.82rem;
    line-height: 1.45;
    text-align: center;
}

.dev-login-panel {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid var(--button-secondary-border);
}

.dev-login-form {
    display: grid;
    gap: 0.75rem;
}

@keyframes auth-card-enter {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes auth-spinner-rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 720px) {
    .auth-shell {
        padding: 4.2rem 0.8rem 0.8rem;
    }

    .auth-overlay-card--minimal {
        padding: 1.05rem 1rem 1.15rem;
        border-radius: 1.25rem;
    }

    .auth-copy {
        margin-top: 1.1rem;
    }
}
