:root{--fond:#fff8ee;--carte:#fff;--encre:#2b2433;--doux:#6b6275;--accent:#c2410c;--accent-fonce:#9a3412;--trait:#e7dccb;--erreur:#b42318;--rayon:12px}
@media (prefers-color-scheme:dark){:root{--fond:#1d1824;--carte:#272031;--encre:#f4eee6;--doux:#b4aabf;--accent:#fb923c;--accent-fonce:#fdba74;--trait:#3b3347;--erreur:#fda29b}}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--encre);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.contenu{max-width:760px;margin:0 auto;padding:0 16px}
.entete{background:var(--accent);color:#fff;padding:24px 0}
.entete h1{margin:0;font-size:1.7rem}.entete p{margin:.25rem 0 0}
fieldset{border:1px solid var(--trait);border-radius:var(--rayon);background:var(--carte);margin:20px 0;padding:16px 16px 12px}
legend{font-weight:700;padding:0 8px;font-size:1.05rem}
label{display:block;margin:0 0 12px;font-size:.95rem}
input:not([type=checkbox]):not([type=radio]),select{display:block;width:100%;margin-top:4px;padding:10px 12px;font:inherit;color:inherit;background:var(--fond);border:1px solid var(--trait);border-radius:8px}
input:focus-visible,select:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0 12px}
.choix{display:grid;gap:10px}
.carte-choix{display:flex;gap:12px;align-items:flex-start;padding:12px;border:2px solid var(--trait);border-radius:var(--rayon);cursor:pointer;margin:0}
.carte-choix:has(input:checked){border-color:var(--accent)}
.case{display:flex;gap:10px;align-items:flex-start}.case input{margin-top:.3rem;flex:none}
.sous{margin-left:28px}
.aide{color:var(--doux);font-size:.88rem;margin:.25rem 0 12px}
.ligne-invite{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:end;padding:10px 0;border-top:1px solid var(--trait)}
.ligne-invite:first-child{border-top:0}
.ligne-invite .ligne-bas{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.ligne-invite label{margin:0}
.ligne-invite select{width:auto;min-width:170px;display:inline-block}
button{font:inherit;cursor:pointer;border:0;border-radius:999px;padding:12px 22px;background:var(--accent);color:#fff;font-weight:700}
button:hover{background:var(--accent-fonce)}
button:disabled{opacity:.6;cursor:wait}
button.secondaire{background:transparent;color:var(--accent);border:2px solid var(--accent);padding:8px 16px}
.retirer{background:transparent;color:var(--doux);padding:4px 10px;font-weight:400;text-decoration:underline}
.recap{font-size:1.05rem}
.erreurs{color:var(--erreur);padding-left:20px}
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:var(--rayon);padding:20px;margin:24px 0}
[hidden]{display:none!important}
@media (prefers-color-scheme:dark){button{color:#1d1824}button.secondaire{color:var(--accent)}.entete{color:#1d1824}}
a{color:var(--accent-fonce)}
.entete a{color:inherit;text-decoration:none}
.bandeau{background:#fde68a;color:#3b2a00;padding:8px 16px;text-align:center;font-size:.9rem}
.heros{padding:28px 0 8px}.heros h2{font-size:1.8rem;line-height:1.2;margin:0 0 .5rem}
.bouton{display:inline-block;border-radius:999px;padding:12px 22px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;margin:4px 8px 4px 0}
.bouton:hover{background:var(--accent-fonce)}
.bouton.secondaire{background:transparent;color:var(--accent-fonce);border:2px solid var(--accent);padding:10px 18px}
.etapes{padding-left:1.2rem}.etapes li{margin:.4rem 0}
.liste{padding-left:1.2rem}.liste li{margin:.5rem 0}
.grille2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.grille2 .carte{margin:0}.grille2 h3{margin-top:0}
.prix{font-size:2rem;font-weight:800;margin:.3rem 0}
.centre{text-align:center;margin:28px 0}
details{background:var(--carte);border:1px solid var(--trait);border-radius:8px;padding:10px 14px;margin:8px 0}
summary{cursor:pointer;font-weight:600}
.pied{border-top:1px solid var(--trait);margin-top:36px;padding:18px 0 28px;color:var(--doux);font-size:.88rem}
.pied a{margin-right:14px}
.prose h2{margin-top:1.6rem}.prose{padding-bottom:12px}
.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{border:1px solid var(--trait);padding:6px 10px;text-align:left;vertical-align:top}
.ok{color:#1a7f37;font-weight:600}
.prix .aide{font-weight:400;font-size:.88rem}
