/* =============================================================================
   Aanmeldpagina's beheer (index.php, verificatie.php, tweestaps-instellen.php)
   Overgenomen uit www-v2 (public-app/css/app.css) zodat de login er hetzelfde uitziet.
   Huisstijl Hermans Veren: navy (#2A3885) met lichtblauwe tinten, lettertype Poppins.
   ============================================================================= */

@font-face { font-family: "Poppins"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/poppins-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 500; font-style: normal; font-display: swap; src: url("fonts/poppins-latin-500.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 600; font-style: normal; font-display: swap; src: url("fonts/poppins-latin-600.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 700; font-style: normal; font-display: swap; src: url("fonts/poppins-latin-700.woff2") format("woff2"); }

:root {
    --hv-primary: #2A3885;
    --hv-primary-rgb: 42, 56, 133;
    --hv-navy: var(--hv-primary);
    --hv-navy-diep: #1a2257;
    --hv-navy-nacht: #121842;
    --hv-accent: #9aa9ff;
    --hv-accent-zacht: #eceffc;

    --hv-bg: #f5f6f9;
    --hv-wit: #fff;
    --hv-paneel-2: #fafbfc;
    --hv-tekst: #1b2035;
    --hv-tekst-2: #565d75;
    --hv-tekst-zacht: #8a90a6;
    --hv-lijn: #e4e7ee;
    --hv-lijn-sterk: #cfd4df;

    --hv-radius-klein: 8px;

    --bs-body-font-family: "Poppins", "Segoe UI", Arial, sans-serif;
    --bs-body-font-size: .84rem;
    --bs-body-color: var(--hv-tekst);
    --bs-body-bg: var(--hv-bg);
    --bs-border-color: var(--hv-lijn);
    --bs-border-radius: var(--hv-radius-klein);
    --bs-link-color-rgb: var(--hv-primary-rgb);
    --bs-link-hover-color-rgb: var(--hv-primary-rgb);
    --bs-primary-rgb: var(--hv-primary-rgb);
}

body {
    -webkit-font-smoothing: antialiased;
}

h1 {
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--hv-tekst);
}

a {
    text-decoration: none;
}

::selection {
    background: var(--hv-accent-zacht);
    color: var(--hv-navy-nacht);
}

/* --- Knoppen & formulieren --- */

.btn {
    border-radius: var(--hv-radius-klein);
    font-weight: 500;
    padding: 7px 14px;
    font-size: .8rem;
}

.btn-lg {
    padding: 10px 18px;
    font-size: .88rem;
}

.btn-primary {
    --bs-btn-bg: var(--hv-navy);
    --bs-btn-border-color: var(--hv-navy);
    --bs-btn-hover-bg: var(--hv-navy-diep);
    --bs-btn-hover-border-color: var(--hv-navy-diep);
    --bs-btn-active-bg: var(--hv-navy-nacht);
    --bs-btn-active-border-color: var(--hv-navy-nacht);
    --bs-btn-disabled-bg: var(--hv-navy);
    --bs-btn-disabled-border-color: var(--hv-navy);
}

.form-label {
    font-size: .76rem;
    font-weight: 500;
    color: var(--hv-tekst-2);
    margin-bottom: 5px;
}

.form-control {
    border-radius: var(--hv-radius-klein);
    border: 1px solid var(--hv-lijn-sterk);
    background-color: var(--hv-wit);
    padding: 7px 11px;
    font-size: .84rem;
}

.form-control-lg {
    padding: 9px 12px;
    font-size: .9rem;
    border-radius: var(--hv-radius-klein);
}

.form-control:focus {
    border-color: var(--hv-navy);
    box-shadow: 0 0 0 3px rgba(var(--hv-primary-rgb), .15);
}

.alert {
    border: 1px solid;
    border-radius: var(--hv-radius-klein);
    font-size: .82rem;
    padding: 10px 14px;
}

.alert-success { background: #e9f8ef; color: #14532d; border-color: #c7ebd4; }
.alert-danger  { background: #fdecec; color: #7f1d1d; border-color: #f6caca; }
.alert-warning { background: #fff6e0; color: #713f00; border-color: #f4dfab; }

/* --- Links de verenfoto, rechts het formulier --- */

.login-body {
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    background: var(--hv-wit);
}

.login-beeld {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 40px;
    color: #fff;
    background:
        linear-gradient(160deg, rgba(26, 34, 87, .93) 0%, rgba(26, 34, 87, .6) 55%, rgba(18, 24, 66, .88) 100%),
        url("../img/veren.jpg") center / cover no-repeat;
}

.login-beeld img {
    width: 180px;
}

/* Breed scherm: foto altijd over de volle schermhoogte, ook als het formulier langer is (blijft dan staan bij scrollen) */
@media (min-width: 992px) {
    .login-beeld {
        position: sticky;
        top: 0;
        height: 100vh;
        height: 100dvh;
    }
}

.login-slogan {
    max-width: 420px;
}

.login-slogan .streep {
    display: block;
    width: 40px;
    height: 3px;
    background: var(--hv-accent);
    margin-bottom: 16px;
}

.login-slogan h2 {
    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 8px;
}

.login-slogan p {
    color: rgba(255, 255, 255, .75);
    margin: 0;
}

.login-paneel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 40px clamp(24px, 6vw, 88px);
}

.login-box {
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
}

.login-box h1 {
    font-size: 1.4rem;
    margin-bottom: 4px;
}

.login-voet {
    text-align: center;
    color: var(--hv-tekst-zacht);
    font-size: .72rem;
    margin-top: 32px;
}

@media (max-width: 991.98px) {
    /* Banner enkel zo hoog als nodig, het formulier vult de rest van het scherm */
    .login-body {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
    }

    /* Op gsm/tablet: verenfoto als banner bovenaan */
    .login-beeld {
        padding: 24px;
        background-image:
            linear-gradient(160deg, rgba(26, 34, 87, .93), rgba(26, 34, 87, .75)),
            url("../img/veren-klein.jpg");
    }

    .login-beeld img {
        width: 150px;
    }

    .login-slogan {
        display: none;
    }

    .login-paneel {
        padding-top: 32px;
    }
}

/* --- Tweestapsverificatie --- */

.code-invoer {
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: .5em;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.qr-code {
    display: inline-block;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--hv-lijn);
    border-radius: var(--hv-radius-klein);
}

.geheim-sleutel {
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .1em;
    word-break: break-all;
    background: var(--hv-paneel-2);
    border: 1px solid var(--hv-lijn);
    border-radius: var(--hv-radius-klein);
    padding: 8px 10px;
}

.stappen {
    list-style: none;
    counter-reset: stap;
    padding: 0;
    font-size: .82rem;
}

.stappen[start="3"] {
    counter-reset: stap 2;
}

.stappen li {
    counter-increment: stap;
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.stappen li::before {
    content: counter(stap);
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--hv-navy);
    color: #fff;
    font-weight: 600;
    font-size: .72rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
