:root { --bg:#020617; --surface:#0e1223; --line:#1e293b; --ink:#f8fafc; --muted:#cbd5e1; --faint:#94a3b8; --brand:#22c55e; --brand-btn:#22c55e; --warn:#fcd34d; --warn-soft:rgba(245,158,11,.15); }
:root[data-theme="light"] { --bg:#fbfbfd; --surface:#fff; --line:rgba(15,15,40,.08); --ink:#0f1020; --muted:#565b6b; --faint:#7a7f90; --brand:#111111; --warn:#9a6b00; --warn-soft:#fff4d6; }
[data-lang="en"] .fr, [data-lang="fr"] .en { display:none !important; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; line-height:1.7; -webkit-font-smoothing:antialiased; }
a { color:var(--brand); }
:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.top { border-bottom:1px solid var(--line); }
.top .in { max-width:860px; margin:0 auto; padding:0 20px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.logo { display:inline-flex; align-items:center; gap:10px; font-family:Inter, system-ui, sans-serif; font-weight:700; font-size:19px; letter-spacing:-.02em; color:var(--ink); text-decoration:none; }
.btn { height:36px; min-width:36px; padding:0 12px; border-radius:10px; border:1px solid var(--line); background:transparent; color:var(--muted); font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
main { max-width:860px; margin:0 auto; padding:48px 20px 80px; }
h1 { font-family:Inter, system-ui, sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(30px,5vw,44px); line-height:1.1; margin:0 0 8px; }
h2 { font-family:Inter, system-ui, sans-serif; letter-spacing:-.02em; font-size:22px; margin:40px 0 8px; }
p, li { color:var(--muted); }
strong { color:var(--ink); }
.meta { color:var(--faint); font-size:14px; margin-bottom:28px; }
.todo { background:var(--warn-soft); color:var(--warn); border-radius:6px; padding:1px 6px; font-weight:600; }
.note { border:1px solid var(--line); background:var(--surface); border-radius:14px; padding:16px 18px; margin:20px 0; }
footer { border-top:1px solid var(--line); color:var(--faint); font-size:13px; }
footer .in { max-width:860px; margin:0 auto; padding:28px 20px 48px; display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; }
footer a { color:var(--muted); }
