/* ==================================================================
AANMELDEN — views/auth/login.php: witte kaart in het midden van het verloop (zoals vroeger), in de huisstijl.
Prefix lgn-, enkel tokens (lt-tokens.css) + lt-field / lt-input / lt-btn uit lt.css. docs/ui/
Deze file laadt vóór lt.css en lijstjestijd.css: regels die daar iets overschrijven beginnen met .lgn.
================================================================== */
.lgn {
    width: 100%;
    max-width: 520px;
    margin: 24px auto 64px;
    padding: 40px 44px 32px;
    border-radius: var(--lt-radius-lg);
    background: var(--lt-white);
    box-shadow: 0 2px 6px rgba(12, 35, 62, .05), 0 24px 56px rgba(12, 35, 62, .12);
    color: var(--lt-navy);
}
.lgn .lgn__title { margin: 0 0 10px; font-size: 2.5rem; font-weight: 700; line-height: 1.1; }
.lgn__intro { margin: 0 0 24px; font-size: 1.0625rem; line-height: 1.55; color: #33475B; }
.lgn__form { display: flex; flex-direction: column; gap: 18px; }
.lgn__form .lt-field { margin: 0; }
.lgn__labelrow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.lgn__labelrow .lt-field__label { margin-bottom: 0; }
.lgn .lgn__forgot { font-size: .875rem; font-weight: 600; color: var(--lt-blue); text-decoration: none; }
.lgn .lgn__forgot:hover { text-decoration: underline; }
.lgn__labelrow + .lgn__password { margin-top: 6px; }
.lgn__password { position: relative; }
.lgn__password .lt-input { padding-right: 52px; }
/* vast gegeven (bv. het e-mailadres van een goedgekeurde L-club-aanvraag) */
.lgn .lt-input[readonly] { background: var(--lt-surface); color: var(--lt-muted); cursor: default; }
.lgn .lt-input[readonly]:focus { border-color: var(--lt-border); box-shadow: none; }
.lgn__show {
    position: absolute;
    top: 50%;
    right: 6px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lt-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    cursor: pointer;
}
.lgn__show:hover { background: var(--lt-subtle); color: var(--lt-navy); }
.lgn__show:focus-visible { outline: 2px solid var(--lt-blue); outline-offset: 1px; }
.lgn .lgn__submit { width: 100%; height: 54px; margin-top: 4px; justify-content: center; font-size: 1.0625rem; }
.lgn__error { display: flex; gap: 10px; padding: 12px 14px; border-radius: var(--lt-radius); background: var(--lt-coral-soft); font-size: .875rem; line-height: 1.5; }
.lgn__error > i { margin-top: 3px; color: var(--lt-danger); }
.lgn__error br:last-of-type { display: none; }

.lgn__or { display: flex; align-items: center; gap: 14px; margin: 24px 0; font-size: .875rem; color: var(--lt-muted); }
.lgn__or::before, .lgn__or::after { content: ''; flex: 1; height: 1px; background: var(--lt-line); }
.lgn__fb {
    width: 100%;
    height: 54px;
    border: 2px solid var(--lt-border);
    border-radius: var(--lt-radius-pill);
    background: var(--lt-white);
    color: var(--lt-navy);
    font-size: 1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.lgn__fb > i { font-size: 1.375rem; color: #1877F2; }
.lgn__fb:hover { border-color: var(--lt-faint); background: var(--lt-surface); }
.lgn__fb:focus-visible { outline: 2px solid var(--lt-blue); outline-offset: 2px; }
.lgn__register { margin: 28px 0 0; padding-top: 22px; border-top: 1px solid var(--lt-line); text-align: center; font-size: .9375rem; color: #33475B; }
.lgn .lgn__register a { font-weight: 700; color: var(--lt-blue); text-decoration: none; }
.lgn .lgn__register a:hover { text-decoration: underline; }

@media (max-width: 575.98px) {
    .lgn { margin: 8px auto 40px; padding: 28px 20px 24px; }
    .lgn .lgn__title { font-size: 2rem; }
}

/* wachtwoord vergeten (auth/retrieve + retrieve-complete): bevestiging na versturen / instellen */
.lgn__success { display: flex; gap: 12px; margin: 8px 0 20px; padding: 14px 16px; border-radius: var(--lt-radius); background: var(--lt-mint); font-size: .9375rem; line-height: 1.5; }
.lgn__success > i { margin-top: 3px; font-size: 1.125rem; color: var(--lt-green-ink); }
/* account verwijderen (account/removal.php): wat er verdwijnt, boven het formulier */
.lgn__warn { display: flex; gap: 12px; margin: 0 0 22px; padding: 14px 16px; border-radius: var(--lt-radius); background: var(--lt-coral-soft); font-size: .9375rem; line-height: 1.5; }
.lgn__warn > i { margin-top: 3px; color: var(--lt-danger); }
.lgn > .lgn__error { margin: 8px 0 20px; }
a.lgn__submit { text-decoration: none; }

/* aanmelden in een zijpaneel (#offcanvaslogin, views/tools/login.php): dezelfde kaart zonder kaartrand, verticaal gecentreerd */
.offcanvas.lgn-sheet {
    --bs-offcanvas-width: 480px;
    display: flex;
    flex-direction: column;
    border-left: 0;
    background: var(--lt-white);
    box-shadow: var(--lt-shadow-lg);
    overflow-y: auto;
}
.lgn-sheet__head { display: flex; justify-content: flex-end; padding: 16px 16px 0; }
.lgn.lgn--sheet { max-width: none; margin: auto 0; padding: 0 48px 40px; border-radius: 0; background: transparent; box-shadow: none; }
.lgn--sheet .lgn__title { font-size: 2.25rem; }
@media (max-width: 575.98px) {
    .offcanvas.lgn-sheet { --bs-offcanvas-width: 100%; }
    .lgn.lgn--sheet { padding: 0 20px 32px; }
}

/* account maken (user/register): nieuwsbrief + voorwaarden als lt-check met tekst ernaast */
.lgn__checks { display: flex; flex-direction: column; gap: 12px; margin-top: 2px; }
.lgn__check { display: flex; align-items: flex-start; gap: 12px; font-size: .9375rem; line-height: 1.45; color: #33475B; cursor: pointer; }
.lgn__check .lt-check { flex: none; margin-top: 1px; }
.lgn .lgn__check a { font-weight: 600; color: var(--lt-blue); text-decoration: none; }
.lgn .lgn__check a:hover { text-decoration: underline; }
