/* La République 2.0 — feuille commune.
   Externalisée (comme le JavaScript) pour que la politique de sécurité du
   contenu puisse interdire tout code en ligne : c'est ce qui rend une faille
   d'injection inexploitable. */
:root{--bleu:#0b2e4f;--bleu2:#155a8a;--rouge:#b31d33;--fond:#f7f8fa;--carte:#fff;
      --bord:#e3e6ea;--txt:#1c2430;--gris:#5c6672;--vert:#1e7a4b;--ambre:#7a5c00;}
*{box-sizing:border-box;}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;
     background:var(--fond);color:var(--txt);line-height:1.65;}
header{background:linear-gradient(160deg,var(--bleu) 0%,var(--bleu2) 100%);color:#fff;
       padding:44px 24px 52px;text-align:center;position:relative;overflow:hidden;}
header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;
  background:linear-gradient(90deg,#1c3f7a 0 33%,#e8e8e8 33% 67%,var(--rouge) 67% 100%);}
header h1{margin:0 0 10px;font-size:2em;letter-spacing:-.01em;}
header .tag{font-size:1.06em;opacity:.94;max-width:600px;margin:0 auto;}
main{max-width:660px;margin:0 auto;padding:34px 20px 70px;}
.carte{background:var(--carte);border:1px solid var(--bord);border-radius:14px;
       padding:24px 26px;margin:0 0 18px;}
.carte h2{color:var(--bleu);margin:0 0 10px;font-size:1.18em;}
.carte.erreur{background:#fdf3f3;border-color:#e6bcbc;}
.carte.erreur h2{color:#7a1f1f;}
.carte.avis{background:#fdf9ea;border-color:#e0d090;}
.carte.avis h2{color:var(--ambre);}
label{display:block;font-weight:600;color:var(--bleu);margin-bottom:8px;}
input[type=email],input[type=text]{width:100%;padding:13px 15px;font-size:1.05em;
  font-family:inherit;border:1px solid var(--bord);border-radius:10px;
  background:#fcfdfe;color:var(--txt);margin-bottom:10px;}
input:focus{outline:none;border-color:var(--bleu2);box-shadow:0 0 0 3px rgba(21,90,138,.13);}
button,.bouton{display:inline-block;padding:13px 22px;font-size:1.02em;font-weight:600;
  font-family:inherit;border:0;border-radius:10px;background:var(--bleu2);color:#fff;
  cursor:pointer;text-decoration:none;text-align:center;}
button:hover,.bouton:hover{background:var(--bleu);}
button[disabled]{background:#9fb3c4;cursor:default;}
.bouton.pale,button.pale{background:#eef1f4;color:var(--bleu);}
.bouton.pale:hover,button.pale:hover{background:#e0e6ec;}
.bouton.rouge,button.rouge{background:var(--rouge);}
.bouton.rouge:hover,button.rouge:hover{background:#8e1728;}
#f button,#ff button,#cf button{width:100%;margin-top:6px;}
button.mini{padding:6px 12px;font-size:.85em;background:#eef1f4;color:var(--bleu);
  border:1px solid var(--bord);white-space:nowrap;}
button.mini:hover{background:#e0e6ec;}
.note{font-size:.92em;color:var(--gris);margin-top:14px;}
.avertit{background:#fdf9ea;border:1px solid #e0d090;border-radius:10px;
  padding:12px 15px;color:#5f4600;font-size:.96em;}
.reponse{display:none;margin-top:18px;padding:16px 18px;border-radius:12px;
  background:#f0f8f3;border:1px solid #b8dfc9;color:#14532d;}
.reponse.erreur{background:#fdf3f3;border-color:#e6bcbc;color:#7a1f1f;}
.reponse b{display:block;margin-bottom:4px;}
.attente{text-align:center;color:var(--gris);padding:20px 0;}
.vide{color:var(--gris);font-style:italic;margin:0;}
ul.liste,ul.camps{list-style:none;padding:0;margin:0;}
ul.liste li,ul.camps li{padding:11px 0;border-bottom:1px solid var(--bord);
  display:flex;justify-content:space-between;gap:14px;align-items:center;}
ul.liste li:last-child,ul.camps li:last-child{border-bottom:0;}
ul.menue li{font-size:.92em;}
.gris,.role{color:var(--gris);font-weight:400;font-size:.9em;}
.etiq{display:inline-block;background:#fdf6da;border:1px solid #e0d090;color:var(--ambre);
  border-radius:8px;padding:1px 8px;font-size:.78em;font-weight:600;}
.qr{text-align:center;margin:16px 0;}
.qr svg{max-width:220px;height:auto;}
.cle{text-align:center;}
.cle code{background:#f2f4f7;padding:8px 14px;border-radius:8px;
  font-size:1.05em;letter-spacing:.06em;display:inline-block;}
.codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:16px 0;}
.codes code{background:#f2f4f7;border:1px solid var(--bord);border-radius:8px;
  padding:10px;text-align:center;font-size:1.02em;letter-spacing:.04em;}
.pied{font-size:.9em;color:var(--gris);text-align:center;margin-top:24px;}
a{color:var(--bleu2);}
code{background:#f2f4f7;padding:1px 6px;border-radius:5px;font-size:.92em;}
@media print{header,.bouton,button,.note{display:none!important;}
  .carte{border:0;} body{background:#fff;}}

.planche{display:block;width:100%;height:auto;border-radius:12px;}
