/* Entrée de l'équipe Kanso. Système Kanso (Kanso Direction, 2026-11-08) : gris monochrome, Geist, panneau blanc à grands
   rayons, bouton noir en pastille. Aucune requête externe : la police vient du module. */

@font-face {
    font-family: "KansoGeist";
    src: url("/kanso_accueil/static/src/fonts/geist-latin-wght-normal.woff2") format("woff2");
    font-weight: 100 900;
    font-display: swap;
}

:root {
    --kl-ink: #0A0A0A;
    --kl-ink2: #4D4D4D;
    --kl-mute: #6B6B6B;
    --kl-line: #E6E6E6;
    --kl-tile: #F3F3F3;
    --kl-ground: #E9E9EB;
    --kl-bad: #B42318;
}

* { box-sizing: border-box; }

.kl-body {
    margin: 0;
    min-height: 100vh;
    font-family: "KansoGeist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    letter-spacing: -0.005em;
    color: var(--kl-ink);
    background:
        radial-gradient(520px 360px at 8% 12%, rgba(45, 85, 200, 0.16), transparent 70%),
        radial-gradient(460px 340px at 88% 6%, rgba(214, 103, 51, 0.14), transparent 70%),
        radial-gradient(520px 380px at 70% 96%, rgba(30, 104, 29, 0.11), transparent 70%),
        var(--kl-ground);
    background-attachment: fixed;
}

.kl-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 24px 16px;
}

.kl-card {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 24px;
    padding: 36px 32px 32px;
    box-shadow: 0 24px 60px -34px rgba(0, 0, 0, 0.35);
}

.kl-mark {
    margin: 0 0 22px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.34em;
    color: var(--kl-ink);
}

.kl-title {
    margin: 0 0 6px;
    font-size: 30px;
    font-weight: 300;
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.kl-lead {
    margin: 0 0 24px;
    color: var(--kl-ink2);
}

.kl-error {
    margin: 0 0 16px;
    padding: 10px 14px;
    border-radius: 12px;
    background: var(--kl-tile);
    color: var(--kl-bad);
    font-weight: 500;
}

.kl-form { display: flex; flex-direction: column; }

.kl-label {
    margin: 0 0 6px;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kl-mute);
}

.kl-input {
    width: 100%;
    margin: 0 0 16px;
    padding: 12px 14px;
    font: inherit;
    color: var(--kl-ink);
    background: var(--kl-tile);
    border: 1px solid transparent;
    border-radius: 12px;
    outline: none;
}
.kl-input:focus { background: #fff; border-color: var(--kl-ink); }

.kl-button {
    margin-top: 6px;
    padding: 13px 18px;
    font: inherit;
    font-weight: 500;
    color: #fff;
    background: var(--kl-ink);
    border: 0;
    border-radius: 99px;
    cursor: pointer;
}
.kl-button:hover, .kl-button:focus-visible { background: #2E2E2E; }
.kl-button:focus-visible { outline: 2px solid var(--kl-ink); outline-offset: 3px; }

.kl-check { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; color: var(--kl-ink2); font-size: 14px; }
.kl-cancel { margin-top: 10px; align-items: center; }
.kl-link { padding: 6px 10px; font: inherit; font-size: 14px; color: var(--kl-ink2); background: none; border: 0; cursor: pointer; }
.kl-link:hover, .kl-link:focus-visible { color: var(--kl-ink); text-decoration: underline; }

.kl-foot {
    margin: 0;
    font-size: 12px;
    letter-spacing: 0.06em;
    color: var(--kl-mute);
}

@media (max-width: 420px) {
    .kl-card { padding: 28px 22px 24px; border-radius: 20px; }
    .kl-title { font-size: 26px; }
}
