/* Charte reprise de la page vitrine Novere (design-system/tokens.css).
   --accent / --accent-ink : couleur du commerce scanné (couleur_fond /
   couleur_texte de `merchants`), posée en JS une fois la fiche chargée.
   Tant qu'elle ne l'est pas — ou sur une page sans commerce, comme
   desinscription.html — la valeur par défaut est le bleu Novere
   (--nv-blue-500 de design-system/tokens.css), jamais de violet. */
:root{
  --nv-ink-900:#0F1420; --nv-ink-600:#5A6478; --nv-mist-200:#F6F7FB;
  --nv-line:#E3E7F0; --accent:#1B4FA0; --accent-ink:#FFFFFF;
  --nv-ok:#0E9F6E; --nv-warn:#B45309; --nv-err:#B91C1C;
  --radius:14px; --radius-lg:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  background:var(--nv-mist-200);color:var(--nv-ink-900);line-height:1.55;
  -webkit-font-smoothing:antialiased;min-height:100vh;
  display:flex;align-items:flex-start;justify-content:center;padding:20px 16px 48px;
}
.carte{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:460px;
  box-shadow:0 20px 50px -24px rgba(15,20,32,.28),0 0 0 1px var(--nv-line);
  overflow:hidden}
.carte__corps{padding:22px 24px 28px}
.marque{display:flex;align-items:center;gap:10px;padding:18px 24px;
  background:var(--accent);color:var(--accent-ink)}
.marque__logo{width:40px;height:40px;border-radius:11px;flex:none;object-fit:cover;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.marque__pastille{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.18);
  color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:16px;flex:none}
.marque__nom{font-weight:700;letter-spacing:-.01em;font-size:15px;color:var(--accent-ink)}
.marque__via{font-size:11px;color:var(--accent-ink);opacity:.75;font-weight:500}
h1{font-size:clamp(21px,5vw,27px);line-height:1.22;letter-spacing:-.015em;margin-bottom:8px}
.sous{color:var(--nv-ink-600);font-size:15px;margin-bottom:18px}
label{display:block;font-size:13px;font-weight:600;color:var(--nv-ink-600);
  margin:16px 0 6px;letter-spacing:.01em}
input[type=text],input[type=tel],input[type=email],input[type=password],textarea,select{
  width:100%;padding:13px 14px;border:1px solid var(--nv-line);border-radius:var(--radius);
  font:inherit;font-size:16px;background:#fff;color:var(--nv-ink-900);min-height:44px}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.consent{display:flex;gap:11px;align-items:flex-start;margin:20px 0 6px;
  background:var(--nv-mist-200);padding:14px;border-radius:var(--radius)}
.consent input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--accent)}
.consent span{font-size:13px;color:var(--nv-ink-600);line-height:1.5}
button{width:100%;padding:14px 18px;border:0;border-radius:999px;font:inherit;
  font-weight:700;font-size:16px;background:var(--accent);color:var(--accent-ink);
  cursor:pointer;margin-top:18px;min-height:48px}
button:disabled{opacity:.5;cursor:not-allowed}
button.secondaire{background:#fff;color:var(--nv-ink-900);box-shadow:inset 0 0 0 1px var(--nv-line)}
.msg{margin-top:16px;padding:12px 14px;border-radius:var(--radius);font-size:14px;display:none}
.msg--err{background:#FEF2F2;color:var(--nv-err);display:block}
.msg--ok{background:#ECFDF5;color:var(--nv-ok);display:block}
.fine{font-size:12px;color:var(--nv-ink-600);margin-top:20px;line-height:1.5}
.fine a{color:var(--accent)}
[hidden]{display:none!important}
