:root{--bleu:#2868B0;--bleu2:#4080C0;--clair:#90B0D8;--tclair:#C3D6EE;--cyan:#45C0D6;--creme:#F9F7F5;--texte:#1f2d3d;--gris:#5b6b7c;--ok:#1f7a4d;--rad:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--creme);color:var(--texte);font-size:17px;line-height:1.5}
.entete{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:3px solid var(--bleu)}
.logo{width:64px;height:auto}
.cabinet{font-weight:700;color:var(--bleu);line-height:1.2}
.ville{color:var(--gris);font-size:.9rem}
main{max-width:640px;margin:0 auto;padding:16px}
h1{font-size:1.5rem;color:var(--bleu);line-height:1.25;margin:.4em 0}
h2{font-size:1.3rem;color:var(--bleu);display:flex;gap:10px;align-items:center;line-height:1.25}
.num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--bleu);color:#fff;font-size:1.05rem}
.chapo{font-size:1.08rem}
.liste-etapes{padding-left:1.2em}
.liste-etapes li{margin:.3em 0}
.aide{color:var(--gris);font-size:.95rem}
.astuce,.avert{background:#fff;border-left:5px solid var(--cyan);border-radius:var(--rad);padding:12px 14px;margin:14px 0}
.avert{border-left-color:var(--bleu);font-weight:600}
.btn{display:block;width:100%;text-align:center;border:0;border-radius:var(--rad);padding:15px 18px;font-size:1.05rem;font-weight:600;cursor:pointer;margin:12px 0;text-decoration:none}
.btn.principal{background:var(--bleu);color:#fff}
.btn.principal:disabled{background:var(--clair);cursor:not-allowed}
.btn.secondaire{background:#fff;color:var(--bleu);border:2px solid var(--bleu)}
.btn.retour{background:transparent;color:var(--gris);font-weight:500;padding:8px}
.btn:focus-visible,.carte-choix:focus-visible,.liste button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.choix{display:grid;gap:10px;margin:12px 0}
.carte-choix{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;border:2px solid var(--tclair);border-radius:var(--rad);padding:14px 16px;font-size:1rem;cursor:pointer;color:var(--texte);width:100%}
.carte-choix .titre{font-weight:700;color:var(--bleu)}
.carte-choix .sous{color:var(--gris);font-size:.92rem}
.carte-choix .prix{font-weight:700;margin-top:2px}
.carte-choix.actif{border-color:var(--bleu);background:#eef4fb;box-shadow:0 0 0 2px var(--bleu) inset}
.label{display:block;font-weight:600;margin:14px 0 6px}
input[type=search],input[type=number]{width:100%;font-size:1.1rem;padding:13px 14px;border:2px solid var(--clair);border-radius:var(--rad);background:#fff}
input[type=search]:focus,input[type=number]:focus{border-color:var(--bleu);outline:none}
.compteur{display:flex;gap:8px;align-items:center}
.compteur input{text-align:center;max-width:110px}
.btn-cpt{width:52px;height:52px;border-radius:50%;border:2px solid var(--bleu);background:#fff;color:var(--bleu);font-size:1.5rem;cursor:pointer}
.extras{border:1px solid var(--tclair);border-radius:var(--rad);padding:10px 14px;margin:16px 0;background:#fff}
.extras legend{font-weight:600;padding:0 6px}
.extras label{display:flex;gap:10px;align-items:center;padding:6px 0}
.extras input{width:22px;height:22px}
.liste{list-style:none;padding:0;margin:10px 0}
.liste li{margin:8px 0}
.liste button{width:100%;text-align:left;background:#fff;border:2px solid var(--tclair);border-radius:var(--rad);padding:12px 14px;font-size:1rem;cursor:pointer;color:var(--texte)}
.liste button strong{color:var(--bleu)}
.liste .meta{display:block;color:var(--gris);font-size:.88rem}
.liste .vide{color:var(--gris);padding:8px}
.liste .autre button{border-style:dashed}
.progression{background:#fff;border-bottom:1px solid var(--tclair);overflow-x:auto}
.progression ol{display:flex;list-style:none;margin:0 auto;padding:8px 10px;gap:4px;max-width:640px;justify-content:space-between}
.progression li{display:flex;flex-direction:column;align-items:center;font-size:.72rem;color:var(--gris);min-width:48px}
.progression li span{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tclair);color:var(--bleu);font-weight:700;margin-bottom:2px}
.progression li.fait span{background:var(--clair);color:#fff}
.progression li.courant span{background:var(--bleu);color:#fff}
.progression li.courant{color:var(--bleu);font-weight:700}
.recap{background:#fff;border-radius:var(--rad);padding:12px 14px;font-size:.95rem;border:1px solid var(--tclair)}
.recap div{margin:2px 0}
.chiffres{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0}
.chiffre{background:#fff;border-radius:var(--rad);padding:12px 14px;display:flex;justify-content:space-between;align-items:baseline;border:1px solid var(--tclair)}
.chiffre .v{font-size:1.25rem;font-weight:800;white-space:nowrap}
.chiffre.prix .v{color:var(--texte)}
.chiffre.secu .v{color:var(--bleu2)}
.chiffre.mut .v{color:var(--cyan);filter:brightness(.8)}
.chiffre.rac{background:var(--bleu);color:#fff;border:0}
.chiffre.rac .v{color:#fff;font-size:1.45rem}
.barre{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--tclair);margin:6px 0 2px}
.barre i{display:block;height:100%}
.barre .b-secu{background:var(--bleu2)}.barre .b-mut{background:var(--cyan)}.barre .b-rac{background:#dfe6ee}
.legende{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--gris)}
.legende i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px}
.detail{background:#fff;border-radius:var(--rad);padding:12px 14px;border:1px solid var(--tclair);margin:12px 0}
.detail h3{margin:.2em 0 .5em;font-size:1.05rem;color:var(--bleu)}
.detail ol,.detail ul{padding-left:1.2em;margin:.3em 0}
.detail li{margin:.35em 0}
.source{font-size:.88rem;color:var(--gris)}
.source a{color:var(--bleu)}
.alerte{background:#fff6e5;border-left:5px solid #e0a020;border-radius:var(--rad);padding:10px 14px;margin:10px 0;font-size:.95rem}
.glossaire,.astuce-det{background:#fff;border-radius:var(--rad);padding:10px 14px;margin:14px 0;border:1px solid var(--tclair)}
.glossaire summary,.astuce-det summary{font-weight:600;color:var(--bleu);cursor:pointer}
dt{font-weight:700;margin-top:10px;color:var(--bleu)}
dd{margin:2px 0 0 0}
.pied{max-width:640px;margin:20px auto 30px;padding:0 16px;color:var(--gris);font-size:.85rem}
@media (min-width:700px){h1{font-size:1.9rem}.chiffres{grid-template-columns:1fr 1fr}.chiffre.rac{grid-column:span 2}}
h1:focus,h2:focus{outline:none}
