
/* gx-ui: maintained layer after gx17.css (brief 2026-09-06) */
:root{
  --gx-ui-space-1:4px;--gx-ui-space-2:8px;--gx-ui-space-3:12px;
  --gx-ui-space-4:16px;--gx-ui-space-5:24px;--gx-ui-space-6:32px;
  --gx-ui-space-7:48px;--gx-ui-space-8:64px;
  --gx-ui-text:16px;--gx-ui-text-sm:14px;--gx-ui-text-xs:12px;
  /* `--gx-ui-text-md` était consommé par .gx-takeaway-b sans avoir jamais été
     déclaré: la ligne retombait donc sur la taille héritée, au hasard du
     parent. Le corps de lecture est la bonne valeur. */
  --gx-ui-text-md:16px;
  --gx-ui-focus:#60A5FA;
  /* Les couleurs de palier vivent dans gx_tokens (générées, chaque ratio
     mesuré). Cette feuille est chargée APRÈS: si elle redéclarait ses propres
     teintes, elle écraserait la rampe verte et un palier changerait de couleur
     selon la page qui le dessine. Elle s'y branche donc au lieu de la doubler. */
  --gx-tier-mun:var(--gx-tier-municipal);
  --gx-tier-prov:var(--gx-tier-intermediate);
  --gx-tier-fed:var(--gx-tier-national);
  --gx-tier-s13:var(--gx-tier-social);
  --gx-tier-eu:var(--gx-tier-supra);
  --gx-sem-ok:var(--gx-ink-primary);--gx-sem-bad:#F87171;--gx-sem-warn:#F59E0B;
  --gx-sem-miss:#8B95A1;
}
body.light-theme{
  --gx-ui-focus:#2563EB;
  /* #147c3b a été écarté par research/tokens.css (4,37:1 sur le fond le plus
     haut, sous le seuil de 4,5). Le jeton mesuré le remplace. */
  --gx-sem-ok:var(--gx-ink-primary);--gx-sem-bad:#da0b0b;--gx-sem-warn:#ad4f09;
  --gx-sem-miss:#606672;
}

/* Reading size floor */
.gx-chapter,.gx-page-header,.gx-scope-band,.gx-local-nav,.gx-evidence{
  font-size:var(--gx-ui-text);
  line-height:1.55;
}
.gx-scope-k,.gx-page-eyebrow,.gx-chapter-num,.gx-table-hint{
  font-size:var(--gx-ui-text-xs);
}
.gx-local-nav-a,.gx-evidence>summary,.gx-scope-v{
  font-size:var(--gx-ui-text-sm);
}

.gx-page-header{margin:0 0 var(--gx-ui-space-5);padding-bottom:var(--gx-ui-space-4);
  border-bottom:1px solid #333333}
body.light-theme .gx-page-header{border-bottom-color:#E5E7EB}
.gx-page-eyebrow{margin:0 0 6px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:#8B95A1}
.gx-page-header h1{margin:0;font-size:clamp(1.35rem,2.4vw,1.85rem);font-weight:800;
  line-height:1.25;color:#E6EDF3}
body.light-theme .gx-page-header h1{color:#111827}
.gx-page-lead{margin:var(--gx-ui-space-3) 0 0;color:#CBD5E1;max-width:62ch}
body.light-theme .gx-page-lead{color:#374151}
.gx-page-meta{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px 14px;color:#8B95A1}
.gx-page-status,.gx-page-period{font-weight:600}

.gx-local-nav{position:sticky;top:52px;z-index:4;margin:0 0 var(--gx-ui-space-5);
  padding:10px 0;background:rgba(18,18,18,.92);backdrop-filter:blur(6px);
  border-bottom:1px solid #333333}
body.light-theme .gx-local-nav{background:rgba(255,255,255,.94);border-bottom-color:#E5E7EB}
.gx-local-nav-list{display:flex;flex-wrap:wrap;gap:6px 4px;overflow-x:auto;
  -webkit-overflow-scrolling:touch;padding-bottom:2px}
.gx-local-nav-a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;
  border-radius:8px;text-decoration:none;color:#CBD5E1;border:1px solid transparent;
  white-space:nowrap}
.gx-local-nav-a:hover,.gx-local-nav-a:focus-visible{border-color:#4ade80;color:#E6EDF3;
  outline:2px solid var(--gx-ui-focus);outline-offset:2px}
body.light-theme .gx-local-nav-a{color:#374151}
body.light-theme .gx-local-nav-a:hover,body.light-theme .gx-local-nav-a:focus-visible{
  color:#111827}

.gx-chapter{position:relative;margin:var(--gx-ui-space-7) 0 var(--gx-ui-space-6);
  padding:var(--gx-ui-space-5) var(--gx-ui-space-4);
  border:1px solid #2C2C2C;border-radius:var(--gx-radius-chapter);background:#17181C;
  overflow:hidden;isolation:isolate}
body.light-theme .gx-chapter{background:#fff;border-color:#E5E7EB}
.gx-chapter-flag{position:absolute;inset:0 0 auto 0;height:min(220px,38%);
  background-size:cover;background-position:center;opacity:.055;pointer-events:none;
  z-index:0}
body.light-theme .gx-chapter-flag{opacity:.045}
.gx-chapter-flag-veil{position:absolute;inset:0 0 auto 0;height:min(220px,38%);
  background:linear-gradient(180deg,rgba(23,24,28,.55),rgba(23,24,28,.95) 70%,
    rgba(23,24,28,1));pointer-events:none;z-index:0}
body.light-theme .gx-chapter-flag-veil{
  background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.92) 70%,#fff)}
@media (forced-colors:active),(prefers-contrast:more){
  .gx-chapter-flag,.gx-chapter-flag-veil{display:none!important}
}
@media print{
  .gx-chapter-flag,.gx-chapter-flag-veil,.gx-local-nav{display:none!important}
}
.gx-chapter-head,.gx-chapter-body{position:relative;z-index:1}
.gx-chapter-head{margin-bottom:var(--gx-ui-space-4);
  padding-bottom:var(--gx-ui-space-3);border-bottom:1px solid #2C2C2C}
body.light-theme .gx-chapter-head{border-bottom-color:#E5E7EB}
.gx-chapter-num{display:inline-block;font-weight:800;letter-spacing:.06em;
  color:#4ade80;margin-bottom:4px}
.gx-chapter h2{margin:0;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:800;
  color:#E6EDF3;line-height:1.3}
body.light-theme .gx-chapter h2{color:#111827}
.gx-chapter-purpose{margin:8px 0 0;color:#CBD5E1;max-width:65ch}
body.light-theme .gx-chapter-purpose{color:#374151}
.gx-chapter-tier-mun{border-left:3px solid var(--gx-tier-mun)}
.gx-chapter-tier-prov{border-left:3px solid var(--gx-tier-prov)}
.gx-chapter-tier-fed,.gx-chapter-tier-nat{border-left:3px solid var(--gx-tier-fed)}
.gx-chapter-tier-s13{border-left:3px solid var(--gx-tier-s13)}

.gx-scope-band{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;
  padding:10px 12px;border-radius:var(--gx-radius-md);background:#1A1A1A;border:1px solid #2C2C2C}
body.light-theme .gx-scope-band{background:#f8f9fa;border-color:#E5E7EB}
.gx-scope-k{color:#8B95A1;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.gx-scope-v{color:#E6EDF3;font-weight:600}
body.light-theme .gx-scope-v{color:#111827}
/* Périmètre, catégories, fiscalité, matrice d'inclusion, parcours et actions.
   Toutes les couleurs viennent de gx_tokens: chaque jeton porte son ratio
   mesuré ET sa contrepartie claire. Aucune règle `body.light-theme` écrite à
   la main ici: c'est exactement ce qui produit un élément à moitié basculé. */
.gx-scope-switch{display:flex;flex-wrap:wrap;gap:var(--gx-ui-space-3);margin:12px 0}
.gx-scope-switch a{min-height:44px;display:inline-flex;align-items:center;
  padding:8px 14px;border:1px solid var(--gx-line);border-radius:var(--gx-radius-sm);
  font-weight:700;text-decoration:none;color:var(--gx-text)}
.gx-scope-panel{margin:12px 0 20px;scroll-margin-top:88px}
.gx-scope-construct,.gx-scope-cover{max-width:70ch;color:var(--gx-text-secondary)}
.gx-scope-kpis{margin:8px 0 0;padding-left:1.2em;color:var(--gx-text)}
.gx-fin-follow-top,.gx-fin-follow{margin:12px 0;font-weight:700}
.gx-fin-cats{margin:24px 0}
.gx-tax-claims,.gx-tax-national{margin:16px 0 24px;padding:14px 16px;
  border:1px solid var(--gx-line);border-radius:var(--gx-radius-md);
  background:var(--gx-surface);color:var(--gx-text)}
.gx-tax-national{margin:20px 0 28px}
.gx-cov-matrix{margin:16px 0 24px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.gx-cov-matrix table{width:100%;border-collapse:collapse}
.gx-cov-matrix th,.gx-cov-matrix td{padding:10px;text-align:left;
  border-bottom:1px solid var(--gx-line);color:var(--gx-text)}
.gx-cov-matrix thead th{color:var(--gx-text-muted);font-size:var(--gx-ui-text-xs);
  text-transform:uppercase;letter-spacing:.04em}

/* Parcours ville. L'état courant porte aria-current + un poids et un filet
   plus forts: la couleur n'est jamais seule à dire « vous êtes ici ». */
.gx-journey-nav{display:flex;flex-wrap:wrap;gap:var(--gx-ui-space-2);margin:0 0 18px}
.gx-jnav-a,.gx-jnav-on{min-height:44px;display:inline-flex;align-items:center;
  padding:8px 14px;border-radius:var(--gx-radius-sm);font-size:var(--gx-ui-text-sm);
  text-decoration:none}
.gx-jnav-a{border:1px solid var(--gx-line);color:var(--gx-text);font-weight:600}
.gx-jnav-a:hover{border-color:var(--gx-ink-primary);color:var(--gx-ink-primary)}
.gx-jnav-on{border:2px solid var(--gx-ink-primary);background:var(--gx-primary-soft);
  color:var(--gx-ink-primary);font-weight:800}

/* Actions principales. Fond doux + encre de marque: les deux jetons ont leur
   valeur claire mesurée, donc pas de texte blanc posé sur un vert clair. */
.gx-primary-actions{display:flex;flex-wrap:wrap;gap:var(--gx-ui-space-3);margin:16px 0 8px}
.gx-act{min-height:48px;flex:1 1 220px;display:inline-flex;align-items:center;
  justify-content:center;padding:12px 18px;border-radius:var(--gx-radius-sm);
  font-weight:800;font-size:15px;text-decoration:none;text-align:center}
.gx-act-spend{background:var(--gx-primary-soft);color:var(--gx-ink-primary);
  border:2px solid var(--gx-ink-primary)}
.gx-act-flow{background:var(--gx-surface);color:var(--gx-text);
  border:2px solid var(--gx-line2)}
.gx-act-flow:hover{border-color:var(--gx-ink-primary);color:var(--gx-ink-primary)}
.gx-act:focus-visible,.gx-jnav-a:focus-visible,.gx-scope-switch a:focus-visible{
  outline:3px solid var(--gx-focus);outline-offset:2px}

/* ── Le chemin chiffre → ventilation → inclusion → source ──────────────────
   Ces primitives étaient rendues sans aucune feuille: texte nu, pas de
   surface, pas de hiérarchie. Elles prennent ici la même grammaire que le
   reste du site: une surface, un filet, une mesure de lecture de 72
   caractères, des chiffres en chasse tabulaire, et des couleurs qui viennent
   toutes de gx_tokens (donc mesurées et basculées en thème clair). */
.gx-scope-drive{margin:16px 0 24px}
.gx-hub-ad-note,.gx-note{margin:8px 0 0;font-size:var(--gx-ui-text-sm);
  line-height:1.55;max-width:72ch;color:var(--gx-text-muted)}

.gx-cat-detail{margin:0 0 12px;padding:14px 16px;border:1px solid var(--gx-line);
  border-radius:var(--gx-radius-md);background:var(--gx-surface);
  scroll-margin-top:88px}
.gx-cat-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;
  margin:0 0 6px}
.gx-cat-head h3{margin:0;font-size:16px;font-weight:800;color:var(--gx-text)}
.gx-cat-map{font-size:var(--gx-ui-text-xs);font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--gx-text-muted)}
/* Le montant reste dans l'encre du texte: la couleur de la fonction est
   portée par la pastille À CÔTÉ du libellé, jamais par le chiffre lui-même.
   Un nombre repeint dans une teinte catégorielle n'a pas de ratio garanti. */
.gx-cat-amt{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;
  color:var(--gx-text);margin:0 0 8px}
.gx-cat-sw{display:inline-block;width:12px;height:12px;border-radius:var(--gx-radius-xs);
  margin-right:8px;vertical-align:baseline;
  box-shadow:inset 0 0 0 1px rgba(128,128,128,.35)}
.gx-cat-def{margin:0 0 10px;font-size:var(--gx-ui-text-sm);line-height:1.6;
  max-width:72ch;color:var(--gx-text-secondary)}
.gx-cat-link{margin:10px 0 0;font-size:var(--gx-ui-text-sm)}
.gx-cat-link a{color:var(--gx-ink-info);text-decoration:underline}

/* Une ligne de source est une SURFACE, pas un segment de barre empilée: elle
   garde donc ses quatre coins arrondis (doctrine des rayons du 2026-09-08).
   Le filet de gauche marque la provenance sans carrer le bord. */
.gx-source-line{margin:0 0 6px;padding:8px 10px;border-left:3px solid var(--gx-line2);
  background:var(--gx-surface-subtle);border-radius:var(--gx-radius-sm);
  font-size:13px;line-height:1.55}
.gx-src-main{color:var(--gx-text-secondary)}
.gx-src-formula{display:block;margin-top:2px;font-variant-numeric:tabular-nums;
  font-weight:700;color:var(--gx-text)}
.gx-src-a{margin-left:6px;color:var(--gx-ink-info);min-height:44px;
  display:inline-flex;align-items:center}

.gx-incl{margin:12px 0 0;padding:12px 14px;border:1px solid var(--gx-line);
  border-radius:var(--gx-radius-sm);background:var(--gx-surface-subtle)}
.gx-incl h3{margin:0 0 8px;font-size:14px;font-weight:800;color:var(--gx-text)}
.gx-incl h4{margin:10px 0 4px;font-size:var(--gx-ui-text-xs);font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;color:var(--gx-text-muted)}
.gx-incl ul{margin:0;padding-left:1.2em;line-height:1.6;color:var(--gx-text-secondary)}
.gx-incl li b{font-variant-numeric:tabular-nums;color:var(--gx-text)}
.gx-incl-note{margin:6px 0 0;font-size:12.5px;line-height:1.5;max-width:72ch;
  color:var(--gx-ink-warning)}

.gx-gfsm-bridge{margin:16px 0 0;padding:14px 16px;border:1px solid var(--gx-line);
  border-radius:var(--gx-radius-md);background:var(--gx-surface)}
.gx-gfsm-bridge h3{margin:0 0 6px;font-size:15px;font-weight:800;color:var(--gx-text)}
.gx-gfsm-bridge p{margin:0 0 8px;font-size:13px;line-height:1.6;max-width:72ch;
  color:var(--gx-text-secondary)}
.gx-gfsm-bridge ul{margin:0;padding-left:1.2em;line-height:1.7;color:var(--gx-text)}
.gx-gfsm-bridge li b{font-variant-numeric:tabular-nums}

.gx-fact-receipt{margin:16px 0 0;padding:14px 16px;border:1px solid var(--gx-line);
  border-radius:var(--gx-radius-md);background:var(--gx-surface-sunken)}
.gx-fact-receipt h3{margin:0 0 6px;font-size:15px;font-weight:800;color:var(--gx-text)}
.gx-fact-receipt p{margin:0 0 6px;font-size:13px;line-height:1.6;max-width:72ch;
  color:var(--gx-text-secondary)}
.gx-fact-receipt ul{margin:6px 0 0;padding-left:1.2em;line-height:1.65;
  font-size:13px;color:var(--gx-text)}
.gx-fact-claim b{color:var(--gx-ink-primary)}

.gx-chart-frame{margin:16px 0;padding:0}
.gx-chart-frame h3{margin:0 0 4px;font-size:15px;font-weight:800;color:var(--gx-text)}
.gx-chart-meta{margin:0 0 8px;font-size:var(--gx-ui-text-xs);color:var(--gx-text-muted)}
.gx-chart-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
.gx-chart-cap{margin:8px 0 0;font-size:13px;line-height:1.55;max-width:72ch;
  color:var(--gx-text-secondary)}

.gx-ranked{margin:12px 0}
.gx-ranked h3{margin:0 0 4px;font-size:15px;font-weight:800;color:var(--gx-text)}
.gx-ranked-note{margin:0 0 8px;font-size:var(--gx-ui-text-xs);color:var(--gx-text-muted)}
.gx-ranked-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,2fr) auto;
  gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--gx-line)}
.gx-ranked-l{font-size:13px;color:var(--gx-text)}
.gx-ranked-track{display:block;height:10px;border-radius:var(--gx-radius-pill);
  background:var(--gx-surface-sunken);overflow:hidden}
.gx-ranked-track i{display:block;height:100%}
.gx-ranked-v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;
  white-space:nowrap;color:var(--gx-text)}
@media (max-width:600px){
  .gx-ranked-row{grid-template-columns:minmax(0,1fr) auto}
  .gx-ranked-track{grid-column:1 / -1}
}

.gx-evidence{margin:var(--gx-ui-space-4) 0;border:1px solid #333333;border-radius:var(--gx-radius-md);
  background:#1E1E1E;padding:0}
body.light-theme .gx-evidence{background:#f8f9fa;border-color:#E5E7EB}
.gx-evidence>summary{cursor:pointer;list-style:none;min-height:44px;display:flex;
  align-items:center;padding:10px 14px;font-weight:700;color:#E6EDF3}
.gx-evidence>summary::-webkit-details-marker{display:none}
.gx-evidence>summary::before{content:"+ ";color:#4ade80;font-weight:800}
.gx-evidence[open]>summary::before{content:"− "}
body.light-theme .gx-evidence>summary{color:#111827}
.gx-evidence-body{padding:0 14px 14px;border-top:1px solid #333333;color:#CBD5E1}
body.light-theme .gx-evidence-body{border-top-color:#E5E7EB;color:#374151}

.gx-metric-group{margin:var(--gx-ui-space-4) 0}
.gx-metric-group>h3{margin:0 0 10px;font-size:var(--gx-ui-text-sm);font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;color:#8B95A1}
.gx-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));
  gap:12px;margin:var(--gx-ui-space-3) 0}
.gx-metric{padding:4px 0 8px;border-bottom:1px solid #2C2C2C}
body.light-theme .gx-metric{border-bottom-color:#E5E7EB}
.gx-metric-l{font-size:var(--gx-ui-text-xs);font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:#8B95A1}
.gx-metric-v{font-size:clamp(1.25rem,2.4vw,1.65rem);font-weight:800;margin:4px 0;
  color:#E6EDF3;font-variant-numeric:tabular-nums;line-height:1.15}
body.light-theme .gx-metric-v{color:#111827}
.gx-metric-v small{font-size:var(--gx-ui-text-sm);font-weight:600;color:#8B95A1}
.gx-metric-def{margin:0;font-size:var(--gx-ui-text-sm);color:#8B95A1;line-height:1.45;
  max-width:36ch}
body.light-theme .gx-metric-def{color:#4B5563}
.gx-takeaway{margin:0 0 var(--gx-ui-space-4);padding:14px 16px;border-radius:10px;
  border:1px solid #2C2C2C;background:#12161C}
body.light-theme .gx-takeaway{background:#F8FAFC;border-color:#E5E7EB}
.gx-takeaway-k{margin:0 0 6px;font-size:var(--gx-ui-text-xs);font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;color:#8B95A1}
.gx-takeaway-b{margin:0;color:#E6EDF3;font-size:var(--gx-ui-text-md);line-height:1.5;
  max-width:68ch}
body.light-theme .gx-takeaway-b{color:#111827}
.gx-takeaway-b p{margin:0 0 8px}
.gx-takeaway-b p:last-child{margin-bottom:0}
.gx-cmp-modes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--gx-ui-space-4)}
.gx-cmp-mode{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;
  border-radius:var(--gx-radius-ctl);border:1px solid #333333;background:#1E1E1E;
  color:#E6EDF3;text-decoration:none;font-weight:700;font-size:var(--gx-ui-text-sm)}
body.light-theme .gx-cmp-mode{background:#fff;border-color:#E5E7EB;color:#111827}
.gx-cmp-mode.is-current{border-color:#4ade80;color:#4ade80}
body.light-theme .gx-cmp-mode.is-current{border-color:#147c3b;color:#147c3b}
.gx-cmp-popular{margin:0 0 var(--gx-ui-space-4);padding:12px 14px;border-radius:10px;
  border:1px solid #2C2C2C;background:#12161C}
body.light-theme .gx-cmp-popular{background:#F8FAFC;border-color:#E5E7EB}
.gx-cmp-popular-k{margin:0 0 8px;font-size:var(--gx-ui-text-xs);font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;color:#8B95A1}
.gx-cmp-popular-list{display:flex;flex-wrap:wrap;gap:8px}
.gx-cmp-popular-list a{min-height:44px;display:inline-flex;align-items:center;
  padding:8px 12px;border-radius:8px;border:1px solid #333;color:#E6EDF3;
  text-decoration:none;font-weight:600;font-size:var(--gx-ui-text-sm)}
body.light-theme .gx-cmp-popular-list a{border-color:#E5E7EB;color:#111827;background:#fff}
.gx-cmp-empty{margin:12px 0 20px;padding:14px 16px;border-radius:10px;border:1px dashed #334155;
  color:#CBD5E1;max-width:62ch;line-height:1.5}
body.light-theme .gx-cmp-empty{color:#374151;border-color:#CBD5E1}

.gx-table-region{margin:var(--gx-ui-space-3) 0;overflow-x:auto;
  -webkit-overflow-scrolling:touch;border:1px solid #2C2C2C;border-radius:8px}
body.light-theme .gx-table-region{border-color:#E5E7EB}
.gx-table-region:focus-visible{outline:2px solid var(--gx-ui-focus);outline-offset:2px}
.gx-table-hint{margin:0;padding:8px 10px;font-size:var(--gx-ui-text-xs);color:#8B95A1;
  border-bottom:1px solid #2C2C2C}
body.light-theme .gx-table-hint{border-bottom-color:#E5E7EB}
@media (min-width:768px){.gx-table-hint{display:none}}
.gx-table-region table{margin:0;min-width:100%}
.gx-table-region caption{caption-side:top;text-align:left;padding:10px 12px;
  font-weight:700;color:#E6EDF3;font-size:var(--gx-ui-text-sm)}
body.light-theme .gx-table-region caption{color:#111827}

a.gx-skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* Jetons: le fond et l'encre basculent ensemble, donc plus de règle claire
   écrite à la main (c'est elle qui produisait la bascule à moitié faite). */
a.gx-skip:focus{left:12px;top:12px;width:auto;height:auto;z-index:10000;
  padding:10px 14px;background:var(--gx-ink-primary);color:var(--gx-page);
  font-weight:800;border-radius:var(--gx-radius-sm)}

/* Geometry / rhythm (micro-UX spec §2) */
:root{
  --gx-gutter:16px;--gx-workspace:1240px;--gx-sticky-offset:68px;
  /* Les trois rayons de cette feuille (6/10/14) précédaient le contrat du
     2026-09-08, qui demande des surfaces visiblement arrondies. Ils se
     branchent maintenant sur l'échelle unique plutôt que d'en tenir une
     seconde, plus plate, qui gagnait la cascade. */
  --gx-radius-ctl:var(--gx-radius-sm);
  --gx-radius-card:var(--gx-radius-lg);
  --gx-radius-chapter:var(--gx-radius-xl);
  --gx-z-header:40;--gx-z-localnav:30;--gx-z-drawer:50;--gx-z-toast:60;
}
@media (min-width:480px){:root{--gx-gutter:20px}}
@media (min-width:768px){:root{--gx-gutter:24px}}
@media (min-width:1200px){:root{--gx-gutter:32px}}
main#main-content,main#contenu{padding-inline:var(--gx-gutter)!important;
  max-width:var(--gx-workspace);margin-inline:auto}
.gx-chapter,.gx-page-header,[id^="gx-ch-"]{scroll-margin-top:calc(var(--gx-sticky-offset) + 16px)}
.gx-chapter{border-radius:var(--gx-radius-chapter);margin:var(--gx-ui-space-7) 0}
@media (max-width:640px){.gx-chapter{margin:36px 0}}
button.gx-tb-btn,#omnibar-trigger{min-height:44px;min-width:44px;border-radius:var(--gx-radius-ctl)}
#omnibar-trigger{font:inherit;color:inherit;appearance:none;-webkit-appearance:none}
.gx-toast{position:fixed;right:16px;bottom:16px;z-index:var(--gx-z-toast);
  max-width:min(360px,calc(100vw - 32px));padding:12px 14px;border-radius:10px;
  background:#18212C;color:#F8FAFC;border:1px solid #334155;font-size:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.35)}
body.light-theme .gx-toast{background:#fff;color:#111827;border-color:#E5E7EB}
.gx-toast[hidden]{display:none}
@media (prefers-reduced-motion:reduce){
  .gx-chapter-flag,.gx-local-nav{transition:none!important}
}

.gx-fresh{display:flex;flex-wrap:wrap;gap:8px 14px;margin:12px 0 20px;
  padding:10px 12px;border:1px solid #2C2C2C;border-radius:10px;background:#12161C;
  font-size:var(--gx-ui-text-sm)}
body.light-theme .gx-fresh{background:#f8fafc;border-color:#E5E7EB}
.gx-fresh-k{color:#8B95A1;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:var(--gx-ui-text-xs)}
.gx-fresh-v{color:#E6EDF3;font-weight:600}
body.light-theme .gx-fresh-v{color:#111827}
.gx-fresh-warn{flex:1 1 100%;color:var(--gx-sem-warn);font-weight:600}

.gx-qchip{display:inline-flex;flex-direction:column;gap:2px;align-items:flex-start;
  max-width:28ch;padding:4px 8px;border-radius:6px;border:1px solid #333;
  background:#1a1f27;vertical-align:middle}
body.light-theme .gx-qchip{background:#f1f5f9;border-color:#E5E7EB}
.gx-qchip-lab{font-size:12px;font-weight:800;letter-spacing:.03em;color:#E6EDF3}
body.light-theme .gx-qchip-lab{color:#111827}
.gx-qchip-why{font-size:12px;line-height:1.35;color:#94A3B8}
body.light-theme .gx-qchip-why{color:#475569}
details.gx-status{display:inline-block;vertical-align:middle;max-width:min(42ch,100%)}
details.gx-status>summary::-webkit-details-marker{display:none}
details.gx-status>summary{list-style:none}
.gx-status-why{display:block;margin-top:4px;font-size:12px;line-height:1.4;
  color:#94A3B8;font-weight:500;letter-spacing:0;text-transform:none}
body.light-theme .gx-status-why{color:#475569}

.gx-next{margin:var(--gx-ui-space-6) 0;padding:var(--gx-ui-space-4);
  border-top:1px solid #2C2C2C}
body.light-theme .gx-next{border-top-color:#E5E7EB}
.gx-next h3{margin:0 0 10px;font-size:var(--gx-ui-text-sm);text-transform:uppercase;
  letter-spacing:.04em;color:#8B95A1}
.gx-next ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.gx-next-item a{font-weight:700;color:#4ade80;text-decoration:underline;
  text-underline-offset:3px;font-size:var(--gx-ui-text)}
.gx-next-why{display:block;margin-top:2px;color:#94A3B8;font-size:var(--gx-ui-text-sm)}
body.light-theme .gx-next-why{color:#475569}
.gx-report{margin:12px 0 0}
.gx-report-a{font-size:var(--gx-ui-text-sm);color:#94A3B8;text-decoration:underline;
  text-underline-offset:2px}
.gx-report-a:hover,.gx-report-a:focus-visible{color:#E6EDF3}
body.light-theme .gx-report-a{color:#475569}
body.light-theme .gx-report-a:hover,body.light-theme .gx-report-a:focus-visible{color:#111827}
.gx-trust{margin:8px 0 0;font-size:var(--gx-ui-text-sm);color:#94A3B8;line-height:1.45}
.gx-trust-line{margin:0}
.gx-trust-drawer>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;
  list-style:none;text-decoration:underline;text-underline-offset:2px;color:#94A3B8}
.gx-trust-drawer>summary::-webkit-details-marker{display:none}
.gx-trust-drawer-body{margin-top:8px;padding:10px 12px;border:1px solid #333;background:#121212}
body.light-theme .gx-trust-drawer-body{border-color:#E5E7EB;background:#f8fafc}
.gx-trust-table{width:100%;border-collapse:collapse;font-size:12px}
.gx-trust-table th{text-align:left;padding:4px 8px 4px 0;color:#8B95A1;font-weight:700;
  vertical-align:top;white-space:nowrap}
.gx-trust-table td{padding:4px 0;color:#E6EDF3}
body.light-theme .gx-trust-table td{color:#111827}
.gx-tabsback{min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;
  border:1px solid #333;border-radius:8px;text-decoration:none;font-weight:700;
  color:#4ade80}
body.light-theme .gx-tabsback{border-color:#E5E7EB}
.gx-qlegend{margin:12px 0;padding:10px 12px;border:1px solid #2C2C2C;border-radius:10px;
  font-size:var(--gx-ui-text-sm);color:#CBD5E1}
body.light-theme .gx-qlegend{border-color:#E5E7EB;color:#374151}
.gx-qlegend ul{margin:8px 0 0;padding-left:1.1em}
.gx-qlegend li{margin:4px 0}
.gx-fresh-cell{display:inline-flex;flex-direction:column;gap:2px;min-width:10ch}

/* Flag chips (§4): override legacy table stretch/cover/double-border */
img.gx-flag,img.gx-flag-s,img.gx-flag-v,
main table img.gx-flag,main table img.gx-flag-s,main table img.gx-flag-v{
  width:22px!important;height:15px!important;max-width:34px!important;
  object-fit:contain!important;object-position:center!important;
  border:0!important;border-radius:2px!important;
  box-shadow:inset 0 0 0 1px rgba(128,128,128,.28)!important;
  background:rgba(128,128,128,.12)!important;vertical-align:middle;
  margin-right:7px;flex-shrink:0}
img.gx-flag{width:28px!important;height:19px!important}
body.light-theme .gx-flag,body.light-theme .gx-flag-s,body.light-theme .gx-flag-v,
body.light-theme main table img.gx-flag,body.light-theme main table img.gx-flag-s,
body.light-theme main table img.gx-flag-v{
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.16)!important;
  background:rgba(0,0,0,.06)!important}

/* Boomerproof editorial folds (Méthode / Couverture / À propos). */
.gx-takeaways{margin:0 0 22px;padding:16px 18px;border-radius:14px;
border:1px solid var(--gx-line,#2a2f36);background:var(--gx-panel,#17181C)}
.gx-takeaways h2{margin:0 0 10px;font-size:15px;font-weight:800;
color:var(--gx-text,#E6EDF3);border:0;padding:0}
.gx-takeaways ol{margin:0;padding-left:1.25em}
.gx-takeaways li{margin:0 0 8px;font-size:15px;line-height:1.45;
color:var(--gx-text,#E6EDF3);font-weight:600}
.gx-takeaways li:last-child{margin-bottom:0}
.gx-fold{margin:0 0 10px;border:1px solid var(--gx-line,#2a2f36);
border-radius:12px;background:var(--gx-panel,#17181C);overflow:hidden}
.gx-fold>summary{cursor:pointer;list-style:none;display:grid;gap:4px;
padding:14px 16px;color:var(--gx-text,#E6EDF3)}
.gx-fold>summary::-webkit-details-marker{display:none}
.gx-fold>summary::after{content:"Ouvrir";justify-self:start;margin-top:4px;
font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
color:#60A5FA}
.gx-fold[open]>summary::after{content:"Fermer"}
.gx-fold-title{font-size:15px;font-weight:800;line-height:1.3}
.gx-fold-blurb{font-size:13.5px;font-weight:500;line-height:1.45;
color:var(--gx-muted,#9DA7B3)}
.gx-fold-body{padding:0 16px 16px;border-top:1px solid var(--gx-line,#2a2f36)}
.gx-fold-body>h2:first-child,
.gx-fold-body>h3:first-child{margin-top:14px}
body.light-theme .gx-takeaways,
body.light-theme .gx-fold{background:#F8F9FA;border-color:#E5E7EB}
body.light-theme .gx-takeaways h2,
body.light-theme .gx-takeaways li,
body.light-theme .gx-fold-title{color:#111827}
body.light-theme .gx-fold-blurb{color:#4b5563}
body.light-theme .gx-fold>summary::after{color:#147c3b}
