
:root{
  --papier:#eef1f4;--blanc:#fff;--encre:#16202b;--encre-2:#4d5c6b;--trait:#9aa7b4;--trait-fin:#d7dee4;
  --braise:#c25a1e;--foret:#2e5b4a;--sable:#8a7a4e;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--papier);color:var(--encre);font-family:var(--sans);font-size:17px;line-height:1.55}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
.etroit{max-width:720px}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--braise);outline-offset:2px}

header{position:sticky;top:0;z-index:40;background:rgba(238,241,244,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--trait-fin)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px;height:60px}
.marque{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.02em;font-size:17px}
.marque svg{width:22px;height:22px;flex:none}
.marque .prov{font-family:var(--mono);font-size:10px;font-weight:400;color:var(--encre-2);border:1px solid var(--trait);padding:1px 5px}
.nav nav{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.nav nav a{font-size:13.5px;color:var(--encre-2);padding:3px 0;border-bottom:2px solid transparent}
.nav nav a:hover,.nav nav a.on{color:var(--encre);border-bottom-color:var(--braise)}
@media(max-width:820px){.nav{height:auto;padding:10px 0;flex-direction:column;align-items:flex-start}.nav nav{justify-content:flex-start}}

.vue{display:none}.vue.on{display:block}
section{padding:46px 0;border-top:1px solid var(--trait-fin)}
section.premiere{border-top:0}
h1{font-size:clamp(27px,5.4vw,40px);line-height:1.1;letter-spacing:-.035em;font-weight:700}
h2{font-size:clamp(21px,3.6vw,28px);letter-spacing:-.025em;line-height:1.18;font-weight:700}
h3{font-size:17.5px;letter-spacing:-.01em;font-weight:700}
.oeil{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--braise);margin-bottom:11px}
.p{margin-top:12px;color:var(--encre-2);max-width:64ch}
.fil{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-bottom:16px}
.fil a{cursor:pointer}.fil a:hover{color:var(--braise)}

.carte{background:var(--blanc);border:1px solid var(--trait-fin);padding:22px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}
.carte p{color:var(--encre-2);font-size:15.5px;margin-top:7px}
.liste{list-style:none;margin-top:14px}
.liste li{padding:9px 0 9px 18px;border-top:1px solid var(--trait-fin);font-size:15.5px;position:relative;color:#3c4753}
.liste li:first-child{border-top:0}
.liste li::before{content:"";position:absolute;left:0;top:17px;width:6px;height:6px;background:var(--braise)}

.reg{background:var(--blanc);border-left:3px solid var(--encre);padding:15px 17px;margin-top:16px}
.reg .txt{font-family:var(--mono);font-size:13.5px;line-height:1.6}
.reg .src{display:block;margin-top:9px;font-family:var(--mono);font-size:11px;color:var(--encre-2)}

.bouton{display:inline-block;background:var(--encre);color:#fff;font-size:15.5px;font-weight:600;font-family:var(--sans);padding:13px 22px;border:1.5px solid var(--encre);cursor:pointer;margin-top:20px}
.bouton:hover{background:#0b141d}
.bouton.creux{background:none;color:var(--encre)}
.bouton.creux:hover{background:#e2e8ed}
.mini{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-top:10px}

.porte{background:var(--blanc);border:1px solid var(--trait-fin);border-top:3px solid var(--trait);padding:20px;cursor:pointer;transition:border-color .2s,transform .2s}
.porte:hover{border-top-color:var(--braise);transform:translateY(-2px)}
.porte .q{font-family:var(--mono);font-size:11.5px;color:var(--braise);text-transform:uppercase;letter-spacing:.1em}
.porte h3{margin-top:8px}
.porte p{color:var(--encre-2);font-size:15px;margin-top:6px}
.porte .go{display:block;margin-top:14px;font-family:var(--mono);font-size:11.5px;border-bottom:1px solid var(--braise);width:fit-content;padding-bottom:2px}

.champ{position:relative;max-width:600px;margin:24px auto 0}
.champ input{width:100%;font-family:var(--sans);font-size:18px;background:var(--blanc);border:1.5px solid var(--encre);padding:16px 15px;color:var(--encre)}
.champ input:focus{outline:none;border-color:var(--braise);box-shadow:0 0 0 3px rgba(194,90,30,.15)}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--blanc);border:1px solid var(--trait);z-index:20;box-shadow:0 12px 28px rgba(22,32,43,.14)}
.sugg[hidden]{display:none}
.sugg button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--trait-fin);padding:11px 14px;font-family:var(--sans);font-size:15.5px;cursor:pointer;color:var(--encre)}
.sugg button:first-child{border-top:0}
.sugg button:hover{background:#f3f6f8}
.sugg button span{display:block;font-family:var(--mono);font-size:11px;color:var(--encre-2);margin-top:2px}
.etat{max-width:600px;margin:8px auto 0;text-align:center;font-family:var(--mono);font-size:11.5px;color:var(--encre-2);min-height:16px}
.preuves{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;margin-top:20px}
.preuves li{list-style:none;font-family:var(--mono);font-size:11.5px;color:var(--encre-2)}

.verdict{background:var(--blanc);border:1px solid var(--trait-fin);border-top:5px solid var(--braise);padding:24px}
.verdict.vert{border-top-color:var(--foret)}
.verdict.sable{border-top-color:var(--sable);background-image:repeating-linear-gradient(135deg,rgba(138,122,78,.07) 0 6px,transparent 6px 12px)}
.verdict .adr{font-family:var(--mono);font-size:12.5px;color:var(--encre-2)}
.verdict .dit{font-size:clamp(22px,4.4vw,30px);letter-spacing:-.03em;line-height:1.14;font-weight:700;margin-top:9px}
.verdict .dit em{font-style:normal;color:var(--braise)}
.verdict.vert .dit em{color:var(--foret)}
.verdict.sable .dit em{color:var(--sable)}
.selecteur{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.selecteur button{font-family:var(--mono);font-size:11.5px;background:var(--blanc);border:1px solid var(--trait);color:var(--encre-2);padding:6px 10px;cursor:pointer}
.selecteur button.on{background:var(--encre);border-color:var(--encre);color:#fff}
.regles{list-style:none;margin-top:18px;border-top:1px solid var(--trait-fin)}
.regles li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--trait-fin);font-size:15.5px}
.regles .val{font-family:var(--mono);font-weight:600;white-space:nowrap}

.bati{background:var(--blanc);border:1px solid var(--trait-fin);padding:18px;margin-top:14px}
.bati .tete{display:flex;justify-content:space-between;align-items:center;gap:10px}
.bati .tete strong{font-size:16px}
.bati .sup{background:none;border:0;font-family:var(--mono);font-size:11.5px;color:var(--braise);cursor:pointer;text-decoration:underline}
.q{margin-top:14px}
.q .lbl{font-size:15px;display:block;margin-bottom:7px}
.q .opts{display:flex;gap:7px;flex-wrap:wrap}
.q .opts button{font-family:var(--sans);font-size:14.5px;background:var(--papier);border:1px solid var(--trait);padding:8px 14px;cursor:pointer;color:var(--encre)}
.q .opts button.on{background:var(--encre);border-color:var(--encre);color:#fff}
.res-bati{margin-top:14px;padding:12px 14px;border-left:3px solid var(--trait);font-family:var(--mono);font-size:13px;background:var(--papier)}
.res-bati.oui{border-left-color:var(--braise)}
.res-bati.non{border-left-color:var(--foret)}

.tarif{background:var(--blanc);border:1px solid var(--trait-fin);padding:22px;text-align:center}
.tarif .n{font-size:16.5px;font-weight:700}
.tarif .pr{font-family:var(--mono);font-size:30px;font-weight:700;margin-top:8px;letter-spacing:-.02em}
.tarif .d{color:var(--encre-2);font-size:14.5px;margin-top:9px}
.tarif .pm{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-top:12px;border-top:1px solid var(--trait-fin);padding-top:10px}

.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--trait-fin);border:1px solid var(--trait-fin);margin-top:22px}
.chiffres div{background:var(--blanc);padding:15px 13px}
.chiffres .v{font-family:var(--mono);font-size:19px;font-weight:700}
.chiffres .l{font-size:12.5px;color:var(--encre-2);margin-top:3px;line-height:1.35}
@media(max-width:820px){.chiffres{grid-template-columns:1fr 1fr}}

.index{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:22px}
@media(max-width:820px){.index{grid-template-columns:1fr 1fr}}
.index a{background:var(--blanc);border:1px solid var(--trait-fin);padding:11px 13px;font-size:15px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}
.index a:hover{border-color:var(--braise)}
.index a span{font-family:var(--mono);font-size:11px;color:var(--encre-2)}
.index a.pret span{color:var(--foret)}

.pb{background:var(--blanc);border:1px solid var(--trait-fin);padding:18px;cursor:pointer}
.pb:hover{border-color:var(--braise)}
.pb h3{font-size:16.5px}
.pb p{color:var(--encre-2);font-size:14.5px;margin-top:6px}

.bande{background:var(--encre);color:#dbe3ea;padding:40px 0}
.bande h2{color:#fff}
.bande p{color:#a8b6c2;margin-top:12px;max-width:62ch}
.bande .bouton{background:#fff;color:var(--encre);border-color:#fff}
.bande .bouton:hover{background:#e2e8ed}

.doc h3{margin-top:26px;color:var(--braise);font-size:16px}
.doc p{color:#3c4753;margin-top:8px;font-size:15.5px}
.todo{font-family:var(--mono);font-size:12px;color:var(--braise)}

footer{background:var(--encre);color:#a8b6c2;padding:38px 0 26px;margin-top:50px;font-size:14.5px}
.indep{border:1px solid rgba(255,255,255,.18);padding:17px 19px;max-width:620px}
.indep p{font-family:var(--mono);font-size:12.5px;line-height:1.75;color:#dde5eb}
.fnav{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px;font-size:14px}
.fnav a{cursor:pointer;color:#a8b6c2}.fnav a:hover{color:#fff}
.fbas{border-top:1px solid rgba(255,255,255,.1);margin-top:20px;padding-top:16px;font-family:var(--mono);font-size:11.5px;color:#7f8f9d}
/* 06/08/2026 — la cellule qui dit un SILENCE du texte, et non une valeur.
   165 cellules des pages départementales affichaient « muet » en gras, à la
   place d'une prescription : le lecteur ne pouvait pas distinguer notre
   étiquette d'une valeur relevée. */
.muet{font-weight:400;font-style:italic;color:var(--encre-2)}

/* ——— extension v4 : pages de contenu générées depuis les fiches markdown ——— */
.contenu{font-size:17px}
.contenu h2{margin:34px 0 10px;padding-top:22px;border-top:1px solid var(--trait-fin)}
.contenu h3{margin:24px 0 6px}
/* h4 : niveau apparu le 01/08/2026, quand la hiérarchie des pages a été
   décalée d'un cran pour ne laisser qu'un seul <h1> par page.
   Sans cette règle, le navigateur le rendrait plus petit que le texte. */
.contenu h4{margin:20px 0 6px;font-size:16.5px;font-weight:700;letter-spacing:-.005em;color:var(--encre)}
/* Un titre placé DANS un encadré ne doit pas tirer le filet de séparation
   des sections : il coupait l'encadré en deux. Relevé au contrôle visuel
   du 01/08/2026 sur « À quelle distance ». */
.contenu blockquote h2,.contenu blockquote h3,.contenu blockquote h4{border-top:0;padding-top:0;margin-top:10px}
.contenu p{margin-top:12px;color:var(--encre-2);max-width:66ch}
.contenu strong{color:var(--encre)}
.contenu ul,.contenu ol{margin:12px 0 12px 22px;color:var(--encre-2);max-width:66ch}
.contenu li{margin:5px 0}
.contenu blockquote{background:var(--blanc);border-left:3px solid var(--braise);padding:14px 18px;margin:20px 0;font-size:16px}
.contenu blockquote p{margin-top:0;color:var(--encre)}
.contenu blockquote p+p{margin-top:10px}
.contenu table{width:100%;border-collapse:collapse;background:var(--blanc);border:1px solid var(--trait-fin);margin:20px 0;font-size:14.5px}
/* Un tableau de dénombrement à cinq colonnes ne tient pas sur 390 px. Il
   défile DANS SON CADRE, et ne pousse pas la page : sans cela, neuf pages
   débordaient horizontalement en vue mobile, jusqu'à 202 px (relevé du
   1er août 2026 au contrôle en navigateur). */
/* Les deux sorties du bloc de fin. ⚠️ Un bouton doit se voir SANS couleur :
   l'orange braise est à 3,88:1 sur le fond, sous le seuil d'accessibilité de
   4,5, et le public de ce site est âgé en moyenne. Le bouton principal est
   donc un aplat sombre, pas un aplat orange. */
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 10px}
.bouton{display:inline-block;background:var(--encre);color:#fff;text-decoration:none;
  font-family:inherit;cursor:pointer;
  padding:12px 18px;border-radius:8px;font-weight:600;font-size:16px;line-height:1.25;
  border:1px solid var(--encre)}
.bouton:hover{background:#0d1720}
.bouton-2{background:var(--blanc);color:var(--encre);border:1px solid var(--encre)}
.bouton-2:hover{background:var(--papier)}
.appel .note{font-size:14px;color:var(--encre-2);margin-top:6px}
/* Lisibilité — voir le commentaire du générateur. Liens visibles, orange
   remonté au-dessus du seuil d'accessibilité, filets et encadrés détachés. */
:root{--braise:#a54614;--trait-fin:#c3ccd4}
.contenu a{color:var(--braise);text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px;text-decoration-color:rgba(165,70,20,.45)}
.contenu a:hover{text-decoration-color:var(--braise)}
.contenu a code{color:inherit}
.carte,.presta,.appel,.tuile,.chiffre{box-shadow:0 1px 2px rgba(22,32,43,.05),0 1px 8px rgba(22,32,43,.04)}
.presta{border:1px solid var(--trait-fin);border-radius:10px;padding:18px 20px;margin:22px 0;background:var(--blanc)}
.presta h2{margin-top:0}
.presta .ref{font-size:13px;color:var(--encre-2);font-weight:400;letter-spacing:.04em}
.presta .prix{font-size:20px;color:var(--braise);margin:.2em 0 1em}
.presta .prix b{font-size:26px}
.tableau{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0}
.tableau table{margin:0;min-width:100%}
.tableau::-webkit-scrollbar{height:7px}
.tableau::-webkit-scrollbar-thumb{background:var(--trait-fin);border-radius:4px}
@media(max-width:820px){.contenu table{font-size:13.5px}
 .contenu th,.contenu td{padding:7px 9px}
 .contenu pre,.contenu code{white-space:pre-wrap;word-break:break-word}}
.contenu th{text-align:left;background:#e4e9ee;padding:9px 11px;font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--encre-2);border-bottom:1px solid var(--trait-fin)}
/* 06/08/2026 — L'EN-TÊTE DE LIGNE. 9 155 pages portaient des tableaux à deux
   colonnes — libellé, valeur — dont la colonne des libellés était en <td>.
   Pour un lecteur d'écran, ces tableaux n'avaient aucun en-tête : chaque
   valeur y était annoncée sans son libellé. Une faute de gabarit se publie
   autant de fois que le gabarit. Le <th scope="row"> le corrige ; cette règle
   lui rend l'apparence exacte qu'avait le <td>, pour que la correction ne se
   voie pas à l'écran et s'entende au lecteur d'écran. */
th[scope=row]{background:transparent;font-family:inherit;font-size:inherit;letter-spacing:normal;text-transform:none;font-weight:400;text-align:left;color:var(--encre-2);vertical-align:top}
.contenu td{padding:9px 11px;border-bottom:1px solid var(--trait-fin);vertical-align:top}
.contenu code{font-family:var(--mono);font-size:13px;background:#e4e9ee;padding:1px 5px}
.contenu hr{border:0;border-top:1px solid var(--trait-fin);margin:30px 0}
.fig{margin:34px 0;background:var(--blanc);border:1px solid var(--trait-fin);padding:16px}
.fig img{width:100%;height:auto;display:block}
.fig figcaption{margin-top:12px;font-size:13px;color:var(--encre-2);border-left:2px solid var(--braise);padding-left:10px;max-width:70ch}
.resume{font-size:19px;color:var(--encre-2);max-width:62ch;margin-top:14px}
.tampon{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);border-left:2px solid var(--trait);padding-left:10px;margin:18px 0 30px}
.appel{background:var(--foret);color:#dfeae5;padding:24px;margin:34px 0}
.appel h3{color:#fff}.appel p{color:#c3d8d0;margin-top:8px;max-width:60ch}
.grilleDep{columns:4;column-gap:22px;font-size:14.5px;margin-top:16px}
.grilleDep a{display:block;padding:2px 0;color:var(--encre-2)}
.grilleDep a:hover{color:var(--braise)}
.grilleDep b{font-family:var(--mono);font-size:12px;color:var(--trait)}
@media(max-width:820px){.grilleDep{columns:2}}
.tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px;margin-top:20px}
.tuile{background:var(--blanc);border:1px solid var(--trait-fin);padding:19px;display:block}
.tuile:hover{border-color:var(--braise)}
.tuile b{display:block;font-size:17px;letter-spacing:-.01em}
.tuile span{display:block;margin-top:6px;color:var(--encre-2);font-size:14.5px}
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:22px}
.chiffre{background:var(--blanc);border:1px solid var(--trait-fin);padding:14px 16px}
.chiffre b{display:block;font-size:27px;letter-spacing:-.03em}
.chiffre span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-2)}
/* ——— moteur d'adresse ——— */
.moteur{background:var(--blanc);border:1px solid var(--trait-fin);border-top:3px solid var(--braise);padding:26px 26px 30px;margin:26px 0 0}
.moteur h2{font-size:23px;letter-spacing:-.02em;margin:6px 0 4px}
.moteur .sous{color:var(--encre-2);max-width:62ch;font-size:15.5px;margin-bottom:16px}
.mo-champ{position:relative;max-width:640px}
.mo-champ input{width:100%;font:inherit;font-size:18px;padding:15px 17px;border:1px solid var(--trait);background:var(--papier);color:var(--encre)}
.mo-champ input:focus{outline:2px solid var(--braise);outline-offset:-1px;background:#fff}
.mo-champ input::placeholder{color:var(--trait)}
#mo-sug{display:none;position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;border:1px solid var(--trait);border-top:0;list-style:none;margin:0;padding:0;max-height:320px;overflow:auto;box-shadow:0 12px 28px rgba(22,32,43,.13)}
#mo-sug li{padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--trait-fin);font-size:15px}
#mo-sug li:last-child{border-bottom:0}
#mo-sug li:hover,#mo-sug li.on{background:var(--papier)}
#mo-sug li b{font-weight:600;display:block}
#mo-sug li span{color:var(--encre-2);font-size:13.5px}
#mo-sug li.err{cursor:default;color:var(--braise)}
#mo-sug li.err a{color:var(--braise);text-decoration:underline}
.moteur .aide{margin-top:12px;font-family:var(--mono);font-size:11.5px;color:var(--encre-2);letter-spacing:.02em}

#mo-res{display:none;margin-top:26px}
.mo-tete{border-left:4px solid var(--foret);padding:2px 0 2px 18px;margin-bottom:20px}
.mo-tete h3{font-size:25px;letter-spacing:-.025em;margin:6px 0 8px;line-height:1.2}
.mo-lead{color:var(--encre-2);max-width:66ch;font-size:16.5px}
.mo-lead b{color:var(--encre)}
.mo-bloc{background:var(--papier);border:1px solid var(--trait-fin);padding:18px 20px;margin-bottom:14px}
.mo-bloc p{color:var(--encre-2);max-width:70ch;margin-top:8px;font-size:15px}
.mo-bloc p b{color:var(--encre)}
.mo-bloc a{color:var(--braise);text-decoration:underline;text-underline-offset:2px}
.mo-alerte{border-left:3px solid var(--braise)}
.mo-tab{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--trait-fin);margin-top:12px;font-size:14.5px}
.mo-tab td{padding:9px 12px;border-bottom:1px solid var(--trait-fin);vertical-align:top}
.mo-tab td:first-child{width:44%;color:var(--encre-2)}
.mo-tab tr:last-child td{border-bottom:0}
.mo-cond{list-style:none;margin:12px 0 0;padding:0;counter-reset:c}
.mo-cond li{position:relative;padding:9px 0 9px 40px;border-bottom:1px solid var(--trait-fin);font-size:15px;color:var(--encre-2)}
.mo-cond li:last-child{border-bottom:0}
.mo-cond li b{color:var(--encre)}
.mo-cond li:before{counter-increment:c;content:counter(c);position:absolute;left:0;top:9px;width:24px;height:24px;line-height:24px;text-align:center;font-family:var(--mono);font-size:12px;border:1px solid var(--trait)}
.mo-cond li.ok:before{content:'✓';background:var(--foret);color:#fff;border-color:var(--foret)}
.mo-cond li.peut:before{color:var(--braise);border-color:var(--braise)}
.mo-fin{font-size:14px;margin-top:12px}
.mo-fin2 p{font-size:13.5px}
.mo-schema{margin:0 0 14px;background:#fff;border:1px solid var(--trait-fin);padding:14px}
.mo-schema svg{width:100%;height:auto;display:block}
.mo-schema figcaption{margin-top:10px;font-size:13px;color:var(--encre-2);border-left:2px solid var(--braise);padding-left:10px;max-width:74ch}
.mono{font-family:var(--mono);font-size:11.5px;color:var(--encre-2)}
@media(max-width:620px){.moteur{padding:20px 16px 24px}.mo-tete h3{font-size:21px}.mo-tab td:first-child{width:50%}}
:root{
  --papier:#eef1f4;--blanc:#fff;--encre:#16202b;--encre-2:#4d5c6b;--trait:#9aa7b4;--trait-fin:#d7dee4;
  --braise:#c25a1e;--foret:#2e5b4a;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--papier);color:var(--encre);font-family:var(--sans);font-size:16px;line-height:1.5}
.bandeau{background:var(--encre);color:#c9d4de;font-family:var(--mono);font-size:11px;padding:6px 14px;text-align:center}
.bandeau b{color:#fff}
.wrap{max-width:1000px;margin:0 auto;padding:18px 14px 40px}
h1{font-size:clamp(21px,4.4vw,28px);letter-spacing:-.03em;line-height:1.15}
.sous{color:var(--encre-2);margin-top:8px;font-size:15.5px;max-width:62ch}

.barre{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.barre .champ{position:relative;flex:1 1 260px}
.barre input{width:100%;font-family:var(--sans);font-size:16px;background:var(--blanc);border:1.5px solid var(--encre);padding:12px 13px;color:var(--encre)}
.barre input:focus{outline:none;border-color:var(--braise);box-shadow:0 0 0 3px rgba(194,90,30,.15)}
.btn{font-family:var(--sans);font-size:14.5px;font-weight:600;background:var(--encre);color:#fff;border:1.5px solid var(--encre);padding:12px 15px;cursor:pointer;white-space:nowrap}
.btn:hover{background:#0b141d}
.btn.creux{background:var(--blanc);color:var(--encre)}
.btn.creux:hover{background:#e3e8ed}
.btn.creux.on{background:var(--encre);color:#fff}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 3px);background:var(--blanc);border:1px solid var(--trait);z-index:1200;box-shadow:0 10px 26px rgba(22,32,43,.16)}
.sugg[hidden]{display:none}
.sugg button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--trait-fin);padding:10px 12px;font-family:var(--sans);font-size:15px;cursor:pointer;color:var(--encre)}
.sugg button:first-child{border-top:0}
.sugg button:hover{background:#f3f6f8}
.etat{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-top:7px;min-height:15px}

#carte{height:min(62vh,540px);margin-top:14px;border:1px solid var(--trait);background:#dfe5ea;z-index:1}
.outils{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}
.aide{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-top:8px}

.panneau{background:var(--blanc);border:1px solid var(--trait-fin);border-top:4px solid var(--trait);padding:20px;margin-top:16px}
.panneau.actif{border-top-color:var(--braise)}
.panneau h2{font-size:19px;letter-spacing:-.02em}
.panneau .rien{color:var(--encre-2);font-size:15px;margin-top:8px}
.mesures{list-style:none;margin-top:14px;border-top:1px solid var(--trait-fin)}
.mesures li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--trait-fin);font-size:15.5px}
.mesures .v{font-family:var(--mono);font-weight:600;white-space:nowrap}
.alerte{margin-top:14px;border-left:3px solid var(--braise);background:#faf1eb;padding:12px 14px;font-size:15px}
.ok{margin-top:14px;border-left:3px solid var(--foret);background:#eef4f1;padding:12px 14px;font-size:15px}
.note{font-family:var(--mono);font-size:11.5px;color:var(--encre-2);margin-top:14px;border-top:1px solid var(--trait-fin);padding-top:12px}
.legende{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-family:var(--mono);font-size:11.5px;color:var(--encre-2)}
.legende span{display:flex;align-items:center;gap:6px}
.legende i{width:14px;height:10px;display:inline-block;border:1px solid}
.pastille-bati{background:#16202b;border-color:#16202b}
.pastille-emprise{background:rgba(216,30,5,.22);border-color:#d81e05}
.pastille-parcelle{background:rgba(31,111,235,.14);border-color:#1f6feb}
/* ── L'ENTRÉE PAR RÉFÉRENCE CADASTRALE ──────────────────────────────────────
   ⭐ 04/08/2026. Repliée par défaut : la grande majorité des visiteurs ont une
   adresse. Ceux qui n'en ont pas — les héritiers d'une parcelle non bâtie —
   ont besoin qu'elle soit visible sans chercher, mais elle ne doit pas
   encombrer le chemin des autres. */
.sans-adresse{margin:10px 0 0;border:1px solid #e0d8ce;border-radius:8px;
  background:#fbf8f4;padding:0 14px}
.sans-adresse[open]{padding-bottom:12px}
.sans-adresse>summary{cursor:pointer;padding:11px 0;font-weight:600;
  font-size:15px;color:var(--encre-2);list-style:none}
.sans-adresse>summary::-webkit-details-marker{display:none}
.sans-adresse>summary::before{content:"+ ";color:#c25a1e;font-weight:700}
.sans-adresse[open]>summary::before{content:"– "}
.sans-adresse .barre{margin-top:4px;flex-wrap:wrap}
.sans-adresse .aide{margin:0 0 8px}


/* ── L'IMPRESSION ────────────────────────────────────────────────────────────
   ⚠️ La page propose « Imprimer ce plan ». Sans ces règles, l'impression
   sortait le menu, le pied de page, les six boutons d'outils et le champ
   d'adresse — et coupait la carte entre deux feuilles. Le seul objet à
   imprimer est la carte et son calcul.
   ⭐ Le fond de carte doit être forcé : les navigateurs suppriment les images
   de fond à l'impression, ce qui sortirait une carte blanche. */
@media print{
  header,footer,.barre,.outils,.etat,.legende,.sugg,#capture,.appel{display:none !important}
  body{background:#fff}
  .premiere{padding-top:0}
  #carte{height:120mm !important;page-break-inside:avoid;break-inside:avoid;
         border:1px solid #999}
  .leaflet-control-container,.leaflet-control-zoom{display:none !important}
  .panneau{page-break-inside:avoid;break-inside:avoid;border:1px solid #999;
           background:#fff;margin-top:8mm}
  .aide{font-size:9pt;color:#333}
  a[href]:after{content:""}
  * {-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* Les liens de valeur — 45 par page de relevé. ⚠️ Ils doivent rester LISIBLES
   en vue mobile : une grille qui se réduit à une colonne, et la valeur alignée
   à droite pour qu'on puisse balayer la colonne des chiffres du regard. */
.lienvals{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));
  gap:1px;background:var(--trait-fin);border:1px solid var(--trait-fin);margin:18px 0}
.lienvals a{display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  background:var(--blanc);padding:9px 12px;font-size:14.5px;text-decoration:none;color:var(--encre)}
.lienvals a:hover{background:#f7f9fb}
.lienvals a b{font-weight:600}
.lienvals a span{color:var(--braise);font-weight:600;white-space:nowrap;font-size:14px}
@media (max-width:520px){.lienvals{grid-template-columns:1fr}}
