:root { color-scheme: dark; --fond:#14110f; --texte:#f3ece4; --cuivre:#f0913e; --patine:#47c9b0; }
* { box-sizing: border-box; }
body { margin:0; background:var(--fond); color:var(--texte); min-height:100vh;
       font:16px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif; }
header { border-bottom:1px solid #3a322b; background:#1a1613; }
nav { max-width:46rem; margin:0 auto; padding:.9rem 1.25rem; display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; align-items:center; }
nav .marque { font-weight:700; margin-right:auto; color:var(--texte); text-decoration:none; }
nav a { color:#c9b8a6; text-decoration:none; }
nav a:hover { color:var(--cuivre); }
nav form { margin:0; }
nav button { margin:0; width:auto; padding:0; background:none; border:0; color:#c9b8a6; font:inherit; cursor:pointer; }
nav button:hover { color:var(--cuivre); }
main { max-width:46rem; margin:0 auto; padding:2rem 1.25rem 3rem; }
h1 { margin:0 0 .5rem; font-size:1.5rem; }
p { margin:.6rem 0; }
.sous { color:#a89887; }
.carte { background:#1e1a17; border:1px solid #3a322b; border-radius:14px; padding:1.5rem; margin-top:1.25rem; max-width:30rem; }
label { display:block; font-size:.9rem; margin:1rem 0 .4rem; color:#c9b8a6; }
label.case { display:flex; gap:.6rem; align-items:center; margin:1rem 0 0; }
input[type=text], input[type=password], textarea { width:100%; padding:.7rem .85rem; font-size:1rem; font-family:inherit;
        border-radius:8px; border:1px solid #4a4038; background:#12100e; color:var(--texte); }
textarea { min-height:9rem; font-family:ui-monospace, monospace; font-size:.9rem; resize:vertical; }
input:focus, textarea:focus { outline:2px solid var(--cuivre); outline-offset:1px; }
input:disabled { cursor:not-allowed; opacity:.55; }
button { margin-top:1.25rem; padding:.7rem 1.4rem; font-size:1rem; font-weight:600; border:0; border-radius:8px;
         background:var(--cuivre); color:#1a1410; cursor:pointer; }
button:hover { filter:brightness(1.1); }
button:focus-visible, a:focus-visible { outline:2px solid var(--texte); outline-offset:2px; }
.msg { margin:1.25rem 0 0; padding:.8rem 1rem; border-radius:8px; border:1px solid #4a4038; max-width:30rem; }
.msg.ok { border-color:var(--patine); color:var(--patine); }
.msg.non { border-color:#e4735f; color:#e4735f; }
code { background:#12100e; padding:.15rem .4rem; border-radius:5px; font-family:ui-monospace, monospace; word-break:break-all; }
dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:.3rem 1rem; }
dt { color:#a89887; }
dd { margin:0; }
.petit { color:#8c7d6e; font-size:.85rem; }
