
:root { color-scheme: light dark; --bg:#f5f4ef; --fg:#1a1f1c; --dim:#5c655f; --card:#ffffff; --line:#e3e1d8; --cta:#1d5c3f; --ctafg:#ffffff; --err-bg:#fbe9e7; --err-fg:#8a2a1c; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#0f1214; --fg:#eef1ef; --dim:#a4aca7; --card:#171c1f; --line:#2a3135; --cta:#8b7bff; --ctafg:#0f1214; --err-bg:#3a1d1a; --err-fg:#ffb4a6; }
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--bg); color: var(--fg); font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; display: flex; align-items: center; justify-content: center; padding: 24px; min-height: 100vh; }
.carte { width: 100%; max-width: 440px; background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 32px 28px; text-align: center; box-shadow: 0 12px 40px rgba(0,0,0,.08); }
.logo { display: block; margin: 0 auto 12px; width: 72px; height: 72px; }
h1 { font-size: 22px; margin: 0 0 6px; letter-spacing: -.01em; }
.sous { margin: 0 0 20px; color: var(--dim); }
.cta { display: block; padding: 14px 18px; border-radius: 12px; background: var(--cta); color: var(--ctafg); font-weight: 600; text-decoration: none; }
.cta:focus-visible { outline: 3px solid var(--cta); outline-offset: 3px; }
.note { margin: 18px 0 0; font-size: 13px; color: var(--dim); }
.erreur { margin: 0 0 18px; padding: 12px 14px; border-radius: 10px; background: var(--err-bg); color: var(--err-fg); font-size: 14px; text-align: left; }
.erreur code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
.lang { margin: 22px 0 0; font-size: 13px; }
.lang a { color: var(--dim); }
