/* pages/login.css — spécifique aux pages Auth (login/register/forgotten) */
@layer pages {

    /* Conteneur & carte */
    .auth-wrap {
        max-width: 560px;
        margin: var(--space-6) auto;
        padding: 0 var(--space-3);
    }

    .auth-card.card {
        --card-bg: var(--surface);
        --card-fg: var(--text);
        --card-fg-muted: var(--muted);
        --card-border: var(--border);
        --card-shadow: var(--shadow-sm);
        padding: var(--space-6);
    }

    /* Titre de page */
    .page-title {
        margin: 0 0 var(--space-4);
        font-size: 24px;
        line-height: 1.2;
        font-weight: 700;
        color: var(--text);
        text-align: left;
    }

    /* Formulaire (structure fournie par components/form.css) */
    .login__form {
        gap: 16px;
    }

    /* espacement vertical entre .form-field */

    /* Lien "Mot de passe oublié ?" — aligné à droite, proche du champ */
    .form-meta {
        display: flex;
        justify-content: flex-end;
        margin-top: 2px;
        /* rapproche du champ Mot de passe */
        margin-bottom: 0;
    }

    .form-link {
        font-size: 14px;
        color: var(--link);
        text-decoration: none;
        padding: 2px 4px;
        border-radius: 6px;
        font-weight: 600;
    }

    .form-link:hover {
        text-decoration: underline;
    }

    /* Captcha */
    .captcha {
        display: grid;
        gap: 8px;
    }

    /* plus compact */
    .captcha__title {
        font-size: var(--font-m);
        margin: 2px 0 0px;
    }

    /* proche de l’image */
    .captcha__imgwrap {
        background: #fff;
        border: 1px solid color-mix(in oklab, var(--border) 70%, #000 0%);
        border-radius: 12px;
        padding: 0;
        /* image collée à la bordure */
        overflow: hidden;
        /* coins arrondis conservés */
    }

    .captcha__img {
        display: block;
        width: 100%;
        height: auto;
        /* si tu veux limiter la largeur :
       max-width: 280px; margin: 0 auto; */
    }

    /* CTA principal */
    .auth-card .btn-primary {
        width: 100%;
        height: 52px;
        border-radius: 14px;
        font-weight: 700;
        letter-spacing: .01em;
    }

    /* Liens & pied */
    .cta {
        margin-top: var(--space-4);
        text-align: center;
    }

    .cta__action {
        /* display: inline-flex; */
        align-items: center;
        justify-content: center;
        min-height: 44px;
        /* padding: 8px 12px; */
        /* border-radius: 10px; */
        font-weight: 600;
        color: var(--link);
    }

    .cta__hint {
        margin-top: var(--space-2);
        color: var(--muted);
        font-size: var(--font-m);
    }

    /* Bouton “Découvre la #TTFL…” */
    .cta__toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-top: var(--space-2);
        padding: 10px 12px;
        min-height: 44px;
        border: 0;
        background: transparent;
        color: var(--text);
        font: inherit;
        cursor: pointer;
        border-radius: 10px;
    }

    .cta__toggle:hover {
        background: #F8FAFC;
    }

    .cta__toggle:focus-visible {
        outline: 2px solid var(--brand);
        outline-offset: 2px;
    }

    /* Chevron (Font Awesome) */
    .cta__chevron {
        font-size: 16px;
        transition: transform .18s ease;
    }

    .cta__toggle[aria-expanded="true"] .cta__chevron {
        transform: rotate(180deg);
    }

    /* Panneau repliable */
    .cta__panel {
        margin-top: var(--space-3);
        text-align: left;
        background: var(--surface);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        box-shadow: var(--shadow);
        padding: var(--space-4);
    }

    .cta__panel-text {
        margin: 0 0 var(--space-3) 0;
        color: var(--muted);
        line-height: 1.45;
    }

    /* =========================================
   FOOTER compact
========================================= */
    .footer {
        margin-top: var(--space-6);
        border-top: 1px solid var(--border);
    }

    .footer__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--space-2);
        padding: var(--space-4) var(--space-4);
    }

    .footer__nav {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
    }

    .footer__link {
        padding: 6px 8px;
        border-radius: 8px;
    }

    .footer__link:focus-visible {
        outline: 2px solid var(--brand);
        outline-offset: 2px;
    }

    .footer__sep {
        color: #94a3b8;
        user-select: none;
    }

    .footer__copy {
        margin: 0;
        color: var(--muted);
        font-size: var(--font-s);
    }

    /* =========================================
   RESPONSIVE
========================================= */
    @media (min-width:768px) {
        .container {
            max-width: 560px;
        }
    }

    @media (min-width:1024px) {
        .footer__inner {
            flex-direction: row;
            justify-content: space-between;
        }

        .container {
            padding-top: var(--space-6);
        }

        /* un peu plus d'air sur desktop */
    }

    /* États démo */
    .btn-primary .btn__label--loading {
        display: none;
    }

    body.state-loading .btn-primary .btn__label--idle {
        display: none;
    }

    body.state-loading .btn-primary .btn__label--loading {
        display: inline;
    }

    /* Bouton primaire full-width ≤ 480px */
    @media (max-width: 480px) {
        .actions {
            width: 100%;
            display: block;
        }

        .actions .btn {
            width: 100%;
        }
    }

    /* ===== Register — Consents inline ===== */
    .consents {
        padding-top: var(--space-2);
    }

    .consent {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        line-height: 1.35;
        padding: 6px 0;
    }

    .consent input[type="checkbox"] {
        margin-top: 3px;
    }
}