  :root {
        --ivory:        #F9F6F2;
        --cream:        #F0EBE3;
        --sand:         #E3DCD2;
        --warm-100:     #D6CEC3;
        --warm-300:     #9A9184;
        --warm-400:     #7C7368;
        --warm-500:     #5E554C;
        --charcoal:     #1A1714;
        --rose:         #B5715A;
        --rose-light:   #D09680;
        --rose-lighter: #E8C4B4;
        --rose-bg:      #FBF0EB;
        --rose-dark:    #955840;
        --rose-glow:    rgba(181,113,90,0.18);
        --wine:         #6B2B3A;
        --success:      #5A9A6E;
        --error:        #C04E4E;
        --white:        #FFFFFF;
        --font-display: 'Cormorant Garamond', Georgia, serif;
        --font-body:    'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
        --radius:       12px;
        --radius-pill:  100px;
        --shadow-sm:    0 2px 12px rgba(26,23,20,0.04);
        --shadow-md:    0 10px 40px rgba(26,23,20,0.06);
        --shadow-glow:  0 8px 40px rgba(181,113,90,0.15);
        --ease:         cubic-bezier(0.22, 1, 0.36, 1);
    }

    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

    body {
        font-family: var(--font-body);
        background: var(--ivory);
        color: var(--charcoal);
        line-height: 1.65;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
    }

    a { color: var(--rose); text-decoration: none; transition: color .2s var(--ease); }
    a:hover { color: var(--rose-dark); }

    /* ── Minimal header ──────────────────────────────────── */
    .auth-header {
        padding: 20px 40px;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .auth-logo {
        display: flex;
        align-items: center;
        gap: 10px;
        text-decoration: none;
        color: var(--charcoal);
    }
    .auth-logo__icon {
        width: 36px; height: 36px;
        background: var(--charcoal);
        border-radius: 10px;
        display: grid;
        place-items: center;
        color: var(--white);
        font-size: 1rem;
    }
    .auth-logo__text {
        font-family: var(--font-display);
        font-size: 1.35rem;
        font-weight: 500;
        letter-spacing: -.01em;
    }
    .auth-header__link {
        font-size: .85rem;
        font-weight: 500;
        color: var(--warm-400);
        display: flex;
        align-items: center;
        gap: 6px;
        transition: color .2s var(--ease);
    }
    .auth-header__link:hover { color: var(--rose); }

    /* ── Main content area ────────────────────────────────── */
    .auth-body {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
    }

    .auth-container {
        width: 100%;
        max-width: 460px;
    }

    /* ── Card title area ──────────────────────────────────── */
    .auth-title-area {
        text-align: center;
        margin-bottom: 36px;
    }
    .auth-icon {
        width: 56px; height: 56px;
        background: var(--rose-bg);
        border-radius: 16px;
        display: inline-grid;
        place-items: center;
        font-size: 1.4rem;
        color: var(--rose);
        margin-bottom: 20px;
    }
    .auth-title {
        font-family: var(--font-display);
        font-size: 2rem;
        font-weight: 400;
        color: var(--charcoal);
        line-height: 1.2;
        letter-spacing: -.01em;
        margin-bottom: 6px;
    }
    .auth-subtitle {
        font-size: .9rem;
        color: var(--warm-400);
        line-height: 1.6;
    }

    /* ── Card ──────────────────────────────────────────────── */
    .auth-card {
        background: var(--white);
        border: 1px solid var(--sand);
        border-radius: var(--radius);
        padding: 36px 32px;
        box-shadow: var(--shadow-sm);
    }

    /* ── Form elements ────────────────────────────────────── */
    .form-group {
        margin-bottom: 22px;
    }
    .form-label {
        display: block;
        font-size: .8rem;
        font-weight: 600;
        color: var(--warm-500);
        margin-bottom: 7px;
        letter-spacing: .03em;
    }
    .form-input-wrap {
        position: relative;
    }
    .form-input-wrap .fi {
        position: absolute;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
        color: var(--warm-300);
        font-size: 1rem;
        pointer-events: none;
        transition: color .25s var(--ease);
    }
    .form-input {
        width: 100%;
        padding: 12px 14px 12px 42px;
        background: var(--ivory);
        border: 1.5px solid var(--sand);
        border-radius: 10px;
        color: var(--charcoal);
        font-size: .9rem;
        font-family: var(--font-body);
        transition: border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
    }
    .form-input:focus {
        outline: none;
        border-color: var(--rose);
        box-shadow: 0 0 0 3px var(--rose-glow);
        background: var(--white);
    }
    .form-input-wrap:focus-within .fi { color: var(--rose); }
    .form-input::placeholder { color: var(--warm-300); }

    /* No-icon variant */
    .form-input--plain {
        padding-left: 14px;
    }

    /* Password toggle */
    .pw-toggle {
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
        background: none;
        border: none;
        color: var(--warm-300);
        cursor: pointer;
        padding: 4px;
        font-size: 1.05rem;
        display: grid;
        place-items: center;
        transition: color .2s;
    }
    .pw-toggle:hover { color: var(--rose); }

    /* Error text */
    .form-error {
        font-size: .78rem;
        color: var(--error);
        margin-top: 5px;
        font-weight: 500;
    }

    /* Options row */
    .form-options {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 26px;
    }
    .form-check {
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .form-check input[type="checkbox"] {
        width: 16px; height: 16px;
        accent-color: var(--rose);
        cursor: pointer;
        border-radius: 3px;
    }
    .form-check label {
        font-size: .85rem;
        color: var(--warm-400);
        cursor: pointer;
        user-select: none;
    }
    .form-options a {
        font-size: .82rem;
        font-weight: 500;
    }

    /* Session status */
    .auth-status {
        background: rgba(90,154,110,.08);
        border: 1px solid rgba(90,154,110,.2);
        color: var(--success);
        padding: 12px 16px;
        border-radius: 10px;
        font-size: .85rem;
        font-weight: 500;
        margin-bottom: 22px;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    /* Error alert */
    .auth-alert {
        background: rgba(192,78,78,.06);
        border: 1px solid rgba(192,78,78,.15);
        color: var(--error);
        padding: 12px 16px;
        border-radius: 10px;
        font-size: .85rem;
        font-weight: 500;
        margin-bottom: 22px;
        display: flex;
        align-items: flex-start;
        gap: 8px;
    }
    .auth-alert i { margin-top: 2px; flex-shrink: 0; }

    /* Submit button — matches public .btn--dark */
    .auth-btn {
        width: 100%;
        padding: 14px 24px;
        background: var(--charcoal);
        color: var(--white);
        border: none;
        border-radius: var(--radius-pill);
        font-size: .85rem;
        font-weight: 600;
        font-family: var(--font-body);
        letter-spacing: .08em;
        text-transform: uppercase;
        cursor: pointer;
        transition: background .35s var(--ease), box-shadow .35s var(--ease), transform .15s;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }
    .auth-btn:hover {
        background: var(--rose);
        box-shadow: var(--shadow-glow);
    }
    .auth-btn:active {
        transform: scale(.98);
    }

    /* Secondary / ghost button */
    .auth-btn--ghost {
        background: transparent;
        color: var(--charcoal);
        border: 1.5px solid var(--sand);
    }
    .auth-btn--ghost:hover {
        border-color: var(--rose);
        color: var(--rose);
        background: transparent;
        box-shadow: none;
    }

    /* ── Info text (description paragraphs) ───────────────── */
    .auth-info {
        font-size: .88rem;
        color: var(--warm-400);
        line-height: 1.65;
        margin-bottom: 24px;
    }

    /* ── Card footer links ────────────────────────────────── */
    .auth-card-footer {
        text-align: center;
        margin-top: 24px;
        font-size: .85rem;
        color: var(--warm-400);
    }
    .auth-card-footer a {
        font-weight: 600;
        color: var(--rose);
    }
    .auth-card-footer a:hover { color: var(--rose-dark); }

    /* ── Divider ──────────────────────────────────────────── */
    .auth-divider {
        display: flex;
        align-items: center;
        gap: 16px;
        margin: 24px 0;
        font-size: .75rem;
        color: var(--warm-300);
        text-transform: uppercase;
        letter-spacing: .1em;
        font-weight: 500;
    }
    .auth-divider::before,
    .auth-divider::after {
        content: '';
        flex: 1;
        height: 1px;
        background: var(--sand);
    }

    /* ── Page footer ──────────────────────────────────────── */
    .auth-footer {
        text-align: center;
        padding: 20px 40px;
        font-size: .72rem;
        color: var(--warm-300);
    }

    /* ── Loading spinner ──────────────────────────────────── */
    .auth-btn.loading { opacity: .65; pointer-events: none; }
    .auth-btn.loading .btn-label { display: none; }
    .auth-btn.loading .btn-spinner { display: inline-block; }
    .btn-spinner {
        display: none;
        width: 16px; height: 16px;
        border: 2px solid rgba(255,255,255,.3);
        border-top-color: var(--white);
        border-radius: 50%;
        animation: auth-spin .6s linear infinite;
    }
    @keyframes auth-spin { to { transform: rotate(360deg); } }

    /* ── Responsive ───────────────────────────────────────── */
    @media (max-width: 640px) {
        .auth-header { padding: 16px 20px; }
        .auth-card { padding: 28px 22px; }
        .auth-title { font-size: 1.65rem; }
        .auth-footer { padding: 16px 20px; }
    }
    @media (max-width: 400px) {
        .auth-card { padding: 24px 18px; }
        .auth-title { font-size: 1.45rem; }
        .form-options { flex-direction: column; gap: 12px; align-items: flex-start; }
    }