/* Habitat 2075 — feuille partagée du site. Jetons, en-tête, typographie, composants. */
:root{
  color-scheme:light;
  --plan:#f1f0eb; --surface:#fcfcfb; --surface2:#f6f5f1;
  --encre:#0b0b0b; --encre2:#52514e; --terne:#898781; --grille:#e1e0d9; --axe:#c3c2b7;
  --bon:#0ca30c; --bon-texte:#006300; --mal:#d03b3b; --avert:#fab219; --avert-texte:#7a4f00;
  --sa:#2a78d6; --sb:#1baf7a; --sc:#eb6834; --sd:#4a3aa7;
  --c:var(--sb);
  /* types de nœuds — palette catégorielle validée (dataviz), ordre fixe */
  --t-comment:#2a78d6; --t-mecanisme:#e34948; --t-qui:#eb6834; --t-ou:#008300;
  --t-a-quoi:#4a3aa7; --t-pourquoi:#e87ba4; --t-quand:#eda100; --t-notion:#898781;
  --mono:ui-monospace,"Cascadia Mono",Consolas,"SF Mono",Menlo,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--plan);color:var(--encre);font:15px/1.5 var(--sans)}
body{min-height:100dvh;display:flex;flex-direction:column}
a{color:var(--encre)}
button{font:inherit;color:inherit}
code{font-family:var(--mono);font-size:.9em;background:var(--surface2);padding:1px 5px;border-radius:3px}
h1,h2,h3,h4{line-height:1.15;letter-spacing:-.01em;margin:0 0 .4em}
h1{font-size:2.1rem;font-weight:650}
h2{font-size:1.4rem;font-weight:650;margin-top:1.6em}
h3{font-size:1.05rem;font-weight:600}
p{margin:0 0 .9em}
.sr{position:absolute;left:-9999px}
.etq{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--terne)}
[hidden]{display:none!important}
[id]{scroll-margin-top:64px}

/* ---------- en-tête commun ---------- */
.barre{display:flex;align-items:center;gap:14px;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--grille);font-family:var(--mono);font-size:.74rem;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.barre .marque{letter-spacing:.1em;text-transform:uppercase;color:var(--encre2);text-decoration:none;white-space:nowrap}
.barre .marque b{color:var(--encre);font-weight:600}
.menu{display:flex;gap:4px;flex-wrap:wrap}
.menu a,.onglets a{text-decoration:none;color:var(--encre2);padding:5px 10px;border-radius:5px;border:1px solid transparent;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.menu a:hover,.menu a:focus-visible,.onglets a:hover,.onglets a:focus-visible{border-color:var(--grille);background:var(--surface2);outline:none}
.menu a[aria-current="page"],.onglets a[aria-current="page"]{border-color:var(--axe);background:var(--surface2);color:var(--encre)}
.onglets{display:flex;gap:4px}
.onglets .pt{width:9px;height:9px;border-radius:50%;background:var(--pc)}
.barre .lect{margin-left:auto;display:flex;gap:16px;align-items:center;color:var(--encre2)}
.barre .lect[hidden]{display:none}
.barre .lect b{color:var(--encre);font-weight:600}
.barre button{background:var(--surface);border:1px solid var(--grille);border-radius:5px;padding:5px 10px;cursor:pointer;font-family:var(--mono);font-size:.74rem}
.barre button:hover,.barre button:focus-visible{border-color:var(--axe);outline:none;background:var(--surface2)}
.barre button:disabled{opacity:.45;cursor:default}
.barre .sep{width:1px;height:18px;background:var(--grille)}

/* ---------- pied commun ---------- */
.doctrine{font-family:var(--mono);font-size:.66rem;color:var(--terne);padding:8px 16px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;border-top:1px solid var(--grille);margin-top:auto}
.doctrine b{color:var(--avert-texte);font-weight:600}

/* ---------- mise en page des pages de texte ---------- */
.page{padding:28px 16px 48px;max-width:1120px;margin:0 auto;width:100%}
.page.large{max-width:1320px}
.chapeau{font-size:1.12rem;color:var(--encre2);max-width:74ch;margin-bottom:1.2em}
.prose{max-width:74ch}
.prose p,.prose li{color:var(--encre)}
.prose ul,.prose ol{padding-left:22px;margin:0 0 .9em}
.prose li{margin-bottom:.3em}
.prose blockquote{margin:1em 0;padding:10px 16px;border-left:4px solid var(--axe);background:var(--surface);color:var(--encre2);font-style:italic}
.prose blockquote b{font-style:normal;color:var(--encre)}
.sommaire{font-family:var(--mono);font-size:.74rem;display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 20px;padding:10px 14px;background:var(--surface);border:1px solid var(--grille);border-radius:8px}
.sommaire a{color:var(--encre2);text-decoration:none}
.sommaire a:hover{color:var(--encre);text-decoration:underline}

.statut{border-left:4px solid var(--avert);background:var(--surface);padding:10px 14px;margin:14px 0 22px;font-size:.92rem;color:var(--encre2)}
.statut b{color:var(--avert-texte)}
.encadre{background:var(--surface);border:1px solid var(--grille);border-radius:10px;padding:16px 20px;margin:14px 0}
.encadre.interp{border-left:4px solid var(--terne)}
.encadre h3{margin-top:0}
.encadre p:last-child{margin-bottom:0}

.grille{display:grid;gap:14px;margin:8px 0 22px}
.grille.deux{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grille.trois{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grille.quatre{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.carte{background:var(--surface);border:1px solid var(--grille);border-radius:10px;padding:14px 16px}
.carte h3{margin:0 0 6px}
.carte p{margin:0;font-size:.9rem;color:var(--encre2)}
.carte.lien{display:block;text-decoration:none;color:var(--encre);transition:transform .15s,box-shadow .15s;border-top:4px solid var(--pc,var(--axe))}
.carte.lien:hover,.carte.lien:focus-visible{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.12);outline:none}
.carte .suite{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:.72rem;padding:4px 9px;border:1px solid var(--grille);border-radius:5px;background:var(--surface2)}

/* tuiles de chiffres */
.tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--grille);border:1px solid var(--grille);border-radius:10px;overflow:hidden;margin:18px 0 24px}
.tuile{background:var(--surface);padding:12px 14px}
.tuile .v{font-size:2rem;font-weight:650;line-height:1;letter-spacing:-.02em;margin-top:4px}
.tuile .s{font-size:.78rem;color:var(--encre2);margin-top:4px}

/* tableaux */
.tablewrap{overflow-x:auto;border:1px solid var(--grille);border-radius:8px;background:var(--surface);margin:8px 0 22px}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th,td{padding:8px 12px;border-bottom:1px solid var(--grille);text-align:left;vertical-align:top}
tr:last-child td{border-bottom:0}
th{background:var(--surface2);font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--encre2);font-weight:600}
td.id,td code,th .pt{white-space:nowrap}
td.id{font-family:var(--mono);font-size:.76rem;color:var(--encre2)}
th .pt{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:1px}

/* puces et pastilles */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.68rem;padding:2px 9px;border-radius:20px;border:1px solid var(--grille);background:var(--surface2);color:var(--encre2);white-space:nowrap}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--axe);flex:0 0 auto}
.chip.mesure i{background:var(--bon)} .chip.eprouve i{background:var(--sa)} .chip.signal i{background:var(--avert)} .chip.interp i{background:var(--terne)} .chip.temoin i{background:var(--t-pourquoi)}
.glyphe{display:inline-block;width:12px;height:12px;vertical-align:-1px;margin-right:6px;flex:0 0 auto}
.glyphe svg{display:block;width:12px;height:12px;overflow:visible}

/* formulaires de filtre */
.filtres{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:10px 14px;background:var(--surface);border:1px solid var(--grille);border-radius:8px;margin:0 0 16px;font-family:var(--mono);font-size:.74rem}
.filtres label{display:inline-flex;align-items:center;gap:6px;color:var(--encre2)}
.filtres input[type="search"],.filtres select{font:inherit;font-family:var(--mono);padding:5px 8px;border:1px solid var(--grille);border-radius:5px;background:var(--surface);color:var(--encre);min-width:180px}
.filtres input[type="search"]:focus-visible,.filtres select:focus-visible{outline:2px solid var(--sa);outline-offset:1px}
.filtres .groupe{display:flex;flex-wrap:wrap;gap:4px}
.filtres .case{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--grille);border-radius:20px;background:var(--surface2);cursor:pointer;user-select:none}
.filtres .case input{margin:0}
.filtres .case.off{opacity:.5}
.filtres .n{color:var(--terne)}
.filtres button{background:var(--surface);border:1px solid var(--grille);border-radius:5px;padding:4px 9px;cursor:pointer;font-family:var(--mono);font-size:.72rem}

@media (max-width:720px){
  h1{font-size:1.6rem}
  .barre .lect{width:100%;margin-left:0}
  .page{padding:20px 16px 40px}
}
