/* ==========================================================================
   PADC — gabarits des pages du portail
   ========================================================================== */
.principal { min-height: 60vh; }
.principal:focus { outline: none; }
.page { padding-block: var(--e-6) var(--e-8); }
.page > .notice:not(:last-child) { margin-bottom: var(--e-5); }
.chargement-initial { color: var(--encre-3); }
.h3 { font-size: var(--taille-l); }
.titre-encadre { font-size: var(--taille-m); margin-bottom: var(--e-3); }
.grille-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-6); }
.grille-2--large-etroit { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; }
.grille-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-4); align-items: start; }
@media (max-width: 56rem) { .grille-2, .grille-2--large-etroit, .grille-3 { grid-template-columns: minmax(0, 1fr); } }
.liste-simple { margin: 0; padding-inline-start: 1.1em; }
.liste-liens { margin: 0 0 var(--e-4); padding: 0; list-style: none; }
.liste-liens li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); padding: var(--e-2) 0; border-bottom: 1px solid var(--trait); margin: 0; }
.liste-liens--compteurs li { justify-content: space-between; }
.section-etroite { max-width: var(--largeur-lecture); margin-top: var(--e-7); }
code { overflow-wrap: anywhere; }
.code-coupe { word-break: break-all; font-size: var(--taille-xs); }

/* --- En-tête de page ------------------------------------------------------- */
.entete-page {
  background: var(--surface);
  border-bottom: 1px solid var(--trait);
  padding-block: var(--e-5) var(--e-6);
}
.entete-page .ariane { margin-bottom: var(--e-4); }
.entete-page h1 { margin-bottom: var(--e-3); max-width: 40ch; }
.entete-page .chapo { margin-bottom: 0; }
.entete-page .chapo + * { margin-top: var(--e-4); }
.entete-page--recherche h1 { font-size: var(--taille-2xl); }
.recherche-page { max-width: 46rem; margin-top: var(--e-4); }
.titre-document { font-family: var(--police-document); font-weight: 600; letter-spacing: 0; }

/* --- Accueil du portail : héros --------------------------------------------- */
.heros {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, var(--surface) 0%, var(--vert-50) 100%);
  border-bottom: 1px solid var(--trait);
  padding-block: var(--e-7) var(--e-7);
}
.heros__motif {
  position: absolute;
  inset-inline-end: -2rem;
  top: 50%;
  width: min(38vw, 30rem);
  transform: translateY(-50%);
  opacity: 0.9;
  pointer-events: none;
}
.heros__interieur { position: relative; }
.heros h1 { max-width: 21ch; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem); }
.heros__chapo { max-width: 38rem; margin-bottom: var(--e-5); }
.heros__recherche { max-width: 44rem; }
.heros__label { display: block; margin-bottom: var(--e-2); font-weight: 650; }
.heros__raccourcis { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2) var(--e-3); margin-top: var(--e-4); max-width: 46rem; }
.heros__raccourcis-titre { margin: 0; font-size: var(--taille-s); font-weight: 650; color: var(--encre-2); }
.hexa--mini { width: 2.5em; height: 2.15em; font-size: 0.6rem; margin-inline-end: 2px; }
@media (max-width: 56rem) { .heros__motif { opacity: 0.25; width: 70vw; inset-inline-end: -20vw; } }

.illustration { width: 100%; height: auto; overflow: visible; }
.ill-reseau path { fill: none; stroke: var(--vert-200); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ill-reseau-noeuds circle { fill: #fff; stroke: var(--vert-300); stroke-width: 2; }
.ill-reseau-noeuds .pivot { fill: var(--vert-300); stroke: #fff; }
.ill-reseau-docs path { fill: #fff; stroke: var(--vert-400); stroke-width: 1.8; stroke-linejoin: round; }

/* --- Sections ------------------------------------------------------------------ */
.section { padding-block: var(--e-7); }
.section--claire { background: var(--surface); border-block: 1px solid var(--trait); }
.section__entete { max-width: 48rem; margin-bottom: var(--e-5); }
.section__entete p { color: var(--encre-2); }
.grille-cartes--juridictions { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.grille-cartes--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.carte-juridiction { display: flex; flex-direction: column; gap: var(--e-2); padding: var(--e-4) var(--e-5); }
.carte-juridiction__haut { display: flex; align-items: center; justify-content: space-between; gap: var(--e-2); }
.carte-juridiction h3 { margin: var(--e-2) 0 0; font-size: var(--taille-l); }
.carte-juridiction__etat { margin: 0; color: var(--encre-2); font-size: var(--taille-s); }
@media (max-width: 40rem) {
  .grille-cartes--juridictions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); }
  .carte-juridiction { padding: var(--e-3); }
  .carte-juridiction__haut { flex-wrap: wrap; }
  .carte-juridiction h3 { font-size: var(--taille-m); margin-top: var(--e-1); }
  .carte-juridiction__etat { font-size: var(--taille-xs); }
}
.grille-lecture { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--e-7); align-items: center; }
.points-lecture { padding-inline-start: 1.4em; margin-bottom: var(--e-5); }
.points-lecture li { padding-inline-start: var(--e-1); }
.points-lecture li::marker { color: var(--vert-600); font-weight: 700; }
.exemple-annote { margin: 0; }
.exemple-annote figcaption { margin-top: var(--e-3); color: var(--encre-3); font-size: var(--taille-s); text-align: center; }
@media (max-width: 60rem) { .grille-lecture { grid-template-columns: minmax(0, 1fr); gap: var(--e-5); } }

.bande-institutionnelle__mention { margin: var(--e-5) auto 0; max-width: 46rem; text-align: center; color: var(--encre-3); font-size: var(--taille-xs); }

/* --- Recherche : filtres + résultats -------------------------------------- */
.grille-recherche { display: grid; grid-template-columns: 17.5rem minmax(0, 1fr); gap: var(--e-6); align-items: start; }
.filtres__bascule { display: none; }
.filtres__panneau {
  position: sticky;
  top: var(--e-4);
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  padding: var(--e-4) var(--e-4) var(--e-2);
  background: var(--surface);
  border: 1px solid var(--trait);
  border-radius: var(--r-3);
}
.filtres__entete { display: flex; align-items: baseline; justify-content: space-between; gap: var(--e-3); margin-bottom: var(--e-3); }
.filtres__entete h2 { margin: 0; font-size: var(--taille-l); }
.filtres__entete a { font-size: var(--taille-s); }
.filtres__groupe { padding-top: var(--e-3); border-top: 1px solid var(--trait); margin-bottom: var(--e-3); }
.filtres__groupe legend { float: inline-start; width: 100%; margin-bottom: var(--e-2); font-size: var(--taille-s); letter-spacing: 0.02em; }
.filtres__groupe legend + * { clear: inline-start; }
.filtres__groupe .choix { font-size: var(--taille-s); padding: 2px 0; }
.filtres__groupe .choix input { width: 1.2rem; height: 1.2rem; }
.filtres__sous-titre { clear: inline-start; margin: var(--e-2) 0 var(--e-1); color: var(--encre-3); font-size: var(--taille-xs); font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.filtres__actions { padding-block: var(--e-2) var(--e-3); }
.js .filtres__actions { display: none; }
@media (max-width: 60rem) {
  .grille-recherche { grid-template-columns: minmax(0, 1fr); gap: var(--e-4); }
  .filtres__bascule { display: flex; }
  .filtres__panneau { display: none; position: static; max-height: none; margin-top: var(--e-3); }
  .filtres.est-ouvert .filtres__panneau { display: block; }
}
.barre-resultats { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-3); margin-bottom: var(--e-4); }
.barre-resultats__titre { margin: 0; font-size: var(--taille-xl); }
.barre-resultats__tri { display: flex; align-items: center; gap: var(--e-2); font-size: var(--taille-s); }
.barre-resultats__tri label { font-weight: 650; white-space: nowrap; }
.selection--compacte { min-height: 40px; width: auto; padding-block: 0.4rem; font-size: var(--taille-s); }
.filtres-actifs { margin-bottom: var(--e-4); }
.info-exclues { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-1) var(--e-2); margin-bottom: var(--e-4); padding: var(--e-2) var(--e-3); border-radius: var(--r-2); background: var(--info-fond); color: var(--encre); font-size: var(--taille-s); }
.info-exclues .icone { color: var(--info); }
.liste-resultats[aria-busy="true"] { min-height: 20rem; }
.carte-regle__avertissement { display: flex; gap: var(--e-2); align-items: flex-start; margin: 0 0 var(--e-3); color: var(--info); font-size: var(--taille-s); font-weight: 600; }
.carte-regle--suspendue .carte-regle__avertissement { color: var(--alerte); }
.carte-regle__lien { display: inline-flex; align-items: center; gap: var(--e-1); font-size: var(--taille-s); font-weight: 650; }

.passages { margin-top: var(--e-7); padding-top: var(--e-5); border-top: 1px solid var(--trait); }
.passages__titre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); font-size: var(--taille-l); }
.passages__titre .icone { color: var(--vert-600); }
.passages__liste { display: grid; gap: var(--e-3); margin: 0; padding: 0; list-style: none; }
.passages__liste li { margin: 0; }
.passage-trouve {
  display: block;
  padding: var(--e-3) var(--e-4);
  border: 1px solid var(--trait);
  border-inline-start: 4px solid var(--vert-400);
  border-radius: 0 var(--r-2) var(--r-2) 0;
  background: var(--papier);
  color: var(--encre);
  text-decoration: none;
}
.passage-trouve:hover { border-color: var(--vert-400); color: var(--encre); }
.passage-trouve__source { display: block; margin-bottom: var(--e-1); color: var(--vert-700); font-size: var(--taille-xs); font-weight: 650; text-decoration: underline; }
.passage-trouve__texte { display: block; font-family: var(--police-document); font-size: 1.05rem; line-height: 1.55; }

/* --- Fiche de règle ------------------------------------------------------------ */
.fiche__badges { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2) var(--e-3); margin-bottom: var(--e-3); }
.fiche__classement { display: flex; align-items: center; gap: var(--e-2); margin: var(--e-3) 0 0; color: var(--encre-3); font-size: var(--taille-s); }
.fiche { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: var(--e-6); align-items: start; }
.fiche__principal > * + * { margin-top: var(--e-6); }
.fiche__aside { display: grid; gap: var(--e-4); position: sticky; top: var(--e-4); }
.fiche__aside .carte { padding: var(--e-4); }
.fiche__actions { display: grid; gap: var(--e-1); justify-items: start; }
@media (max-width: 64rem) { .fiche { grid-template-columns: minmax(0, 1fr); } .fiche__aside { position: static; } }

.reponse {
  padding: var(--e-5);
  border: 1px solid var(--vert-200);
  border-top: 5px solid var(--vert-600);
  border-radius: var(--r-3);
  background: var(--surface);
  box-shadow: var(--ombre-1);
}
.reponse--non-applicable { border-top-color: var(--info); border-color: var(--info-trait); }
.reponse__entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-2); margin-bottom: var(--e-4); }
.reponse__entete h2 { margin: 0; font-size: var(--taille-l); }
.reponse__grille { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: var(--e-4); }
.reponse__bloc { display: flex; flex-direction: column; gap: var(--e-1); padding: var(--e-4); border-radius: var(--r-2); background: var(--surface-2); border: 1px solid var(--trait); }
.reponse__bloc--duree { background: var(--vert-50); border-color: var(--vert-200); }
.reponse__libelle { display: flex; align-items: center; gap: var(--e-2); color: var(--encre-3); font-size: var(--taille-xs); font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.reponse__libelle .icone { color: var(--vert-600); }
.reponse__valeur { font-family: var(--police-titre); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); font-weight: 700; line-height: 1.1; color: var(--vert-800); font-variant-numeric: tabular-nums; }
.reponse__reserve { display: flex; gap: var(--e-1); align-items: flex-start; color: var(--alerte); font-size: var(--taille-s); font-weight: 600; }
.reponse__non-applicable { display: flex; gap: var(--e-1); align-items: flex-start; margin-top: var(--e-1); padding: 2px var(--e-2); border-radius: var(--r-1); background: var(--info-fond); color: var(--info); font-size: var(--taille-xs); font-weight: 650; }
.reponse--non-applicable .reponse__valeur { color: var(--encre-2); }
.reponse__texte { font-size: var(--taille-l); font-weight: 650; line-height: 1.3; }
.reponse__aide { color: var(--encre-2); font-size: var(--taille-s); }
.reponse__portee { display: flex; gap: var(--e-2); align-items: flex-start; margin: var(--e-4) 0 0; padding-top: var(--e-3); border-top: 1px solid var(--trait); color: var(--encre-2); font-size: var(--taille-s); }
.reponse__portee .icone { color: var(--vert-600); margin-top: 2px; }
@media (max-width: 48rem) { .reponse__grille { grid-template-columns: minmax(0, 1fr); } }

.bloc-fiche h2 { font-size: var(--taille-xl); }
.bloc-fiche .chaine-preuve { margin-bottom: var(--e-5); }
.preuve { margin: 0 0 var(--e-4); }
.preuve__legende { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e-2) var(--e-4); margin-top: var(--e-2); font-size: var(--taille-s); color: var(--encre-2); }
.preuve__legende a { display: inline-flex; align-items: center; gap: var(--e-1); font-weight: 650; }
.recap__note { display: block; margin-top: 2px; color: var(--encre-3); font-size: var(--taille-xs); }
.comparaison { margin: var(--e-4) 0 0; padding: 0; list-style: none; }
.comparaison__ligne { display: grid; grid-template-columns: auto 1fr; gap: var(--e-1) var(--e-3); align-items: center; margin: 0; padding: var(--e-3) 0; border-bottom: 1px solid var(--trait); }
.comparaison__ligne a { font-weight: 650; }
.comparaison__faits { grid-column: 2; color: var(--encre-2); font-size: var(--taille-s); }

/* --- Bibliothèque et lecteur ------------------------------------------------- */
.barre-filtres { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--e-3) var(--e-4); padding: var(--e-4); margin-bottom: var(--e-3); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-3); }
.barre-filtres .champ { margin: 0; flex: 1 1 12rem; }
.barre-filtres__action { flex: 0 0 auto !important; }
.barre-filtres__resultat { color: var(--encre-3); font-size: var(--taille-s); margin-bottom: var(--e-4); }
.liste-textes { display: grid; gap: var(--e-4); margin: 0 0 var(--e-6); padding: 0; list-style: none; }
.liste-textes > li { margin: 0; }
.carte-texte__nature { margin: 0 0 var(--e-1); color: var(--vert-700); font-size: var(--taille-xs); font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; }
.carte-texte__titre { margin: 0 0 var(--e-3); font-family: var(--police-document); font-size: 1.3rem; font-weight: 600; letter-spacing: 0; }
.carte-texte__titre a { color: var(--encre); text-decoration: none; }
.carte-texte__titre a:hover { color: var(--vert-800); text-decoration: underline; }
.carte-texte__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--e-2) var(--e-4); margin: 0; }
.carte-texte__meta dt { display: flex; align-items: center; gap: var(--e-1); color: var(--encre-3); font-size: var(--taille-xs); font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; }
.carte-texte__meta dd { margin: 0; font-size: var(--taille-s); }
.carte-texte__pied { margin: var(--e-3) 0 0; padding-top: var(--e-3); border-top: 1px solid var(--trait); color: var(--encre-3); font-size: var(--taille-xs); }

.lecteur__pages { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); margin: var(--e-4) 0; }
.lecteur__position { margin: 0; color: var(--encre-2); }
.lecteur { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--e-5); align-items: start; }
.lecteur__titre-vue { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); font-size: var(--taille-m); margin-bottom: var(--e-3); }
.lecteur__titre-vue .icone { color: var(--vert-600); }
.page-document {
  position: relative;
  padding: clamp(1.5rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3.25rem) var(--e-6);
  border: 1px solid #e6e0d2;
  border-radius: 3px;
  background: var(--papier);
  box-shadow: 0 1px 0 #e6e0d2, 0 14px 30px -18px rgba(60, 45, 10, 0.35);
  font-family: var(--police-document);
  font-size: 1.08rem;
  line-height: 1.65;
  color: #231f1a;
}
.doc__entete { margin: 0 0 var(--e-5); padding-bottom: var(--e-3); border-bottom: 1px solid #d9d0bd; font-family: var(--police-texte); font-size: var(--taille-xs); font-weight: 650; letter-spacing: 0.08em; text-align: center; color: #6b5f48; }
.doc__titre { margin: 0 0 var(--e-5); font-size: 1.2rem; font-weight: 700; text-align: center; line-height: 1.35; }
.doc__para { margin: 0 0 var(--e-4); padding: var(--e-1) var(--e-2); margin-inline: calc(-1 * var(--e-2)); border-radius: 3px; }
.doc__etiquette { font-weight: 700; }
.doc__folio { margin: var(--e-5) 0 0; text-align: center; font-size: var(--taille-s); color: #8a7d62; }
.passage--cible { background: #fff5c2; box-shadow: inset 4px 0 0 #d9a92e; }
.passage--cible mark { background: transparent; box-shadow: none; padding: 0; }
.passage--cible:focus { outline: 3px solid var(--focus); outline-offset: 2px; }
.texte-indexe { margin-top: var(--e-3); padding: var(--e-4); border: 1px solid var(--trait); border-radius: var(--r-2); background: var(--surface); font-size: var(--taille-s); }
.texte-indexe p { margin-bottom: var(--e-3); }
.texte-indexe p.passage--cible { padding: var(--e-1) var(--e-2); margin-inline: calc(-1 * var(--e-2)); border-radius: 3px; }
.lecteur__annexes { margin-top: var(--e-7); }
.lecteur__annexes section + section { margin-top: var(--e-6); }
.lecteur__annexes h2 { font-size: var(--taille-xl); }
@media (max-width: 60rem) { .lecteur { grid-template-columns: minmax(0, 1fr); } }

/* --- Pages pays ---------------------------------------------------------------- */
.entete-pays { display: flex; align-items: center; justify-content: space-between; gap: var(--e-5); }
.hexa--geant { width: 7.5rem; height: 6.5rem; font-size: 2.2rem; flex: none; }
@media (max-width: 40rem) { .hexa--geant { width: 4.6rem; height: 4rem; font-size: 1.35rem; } }
.statistiques { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--e-3); margin-bottom: var(--e-6); }
.statistique { display: flex; flex-direction: column; gap: 2px; padding: var(--e-4); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-3); }
.statistique__valeur { font-family: var(--police-titre); font-size: var(--taille-2xl); font-weight: 700; color: var(--vert-800); line-height: 1.1; }
.statistique__libelle { color: var(--encre-2); font-size: var(--taille-s); }
.liste-coches { margin: 0; padding: 0; list-style: none; }
.liste-coches li { display: flex; gap: var(--e-3); align-items: flex-start; margin: 0; padding: var(--e-2) 0; border-bottom: 1px solid var(--trait); }
.liste-coches li:last-child { border-bottom: 0; }
.liste-coches .icone { color: var(--vert-600); margin-top: 3px; }
.page .grille-2 + .notice, .page .grille-2--large-etroit + .notice { margin-top: var(--e-6); }

/* --- Contribution ------------------------------------------------------------ */
.circuit { counter-reset: circuit; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--e-3); margin: 0; padding: 0; list-style: none; }
.circuit li { position: relative; display: flex; flex-direction: column; gap: var(--e-1); margin: 0; padding: var(--e-4); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-3); font-size: var(--taille-s); color: var(--encre-2); }
.circuit strong { color: var(--encre); font-size: var(--taille-m); }
.circuit__icone { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin-bottom: var(--e-1); border-radius: 50%; background: var(--vert-50); color: var(--vert-700); }
@media (max-width: 60rem) { .circuit { grid-template-columns: minmax(0, 1fr); } }
.section-etroite .circuit { max-width: none; }
.section-etroite:has(.circuit) { max-width: none; }

.assistant > .notice { margin-bottom: var(--e-5); }
.assistant__corps { padding: var(--e-5); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-3); }
.assistant__corps > h2:first-child, .assistant__titre { font-size: var(--taille-xl); }
.assistant__titre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); }
.assistant__actions { margin-top: var(--e-5); padding-top: var(--e-4); border-top: 1px solid var(--trait); }
.assistant__apres { margin: var(--e-4) 0 var(--e-5); color: var(--encre-2); }
.etapes li .etapes__libelle { font-size: var(--taille-s); }

.zone-depot {
  position: relative;
  display: grid;
  justify-items: center;
  gap: var(--e-2);
  padding: var(--e-6) var(--e-4);
  border: 2px dashed var(--vert-400);
  border-radius: var(--r-3);
  background: var(--vert-50);
  text-align: center;
  transition: background-color var(--duree-courte), border-color var(--duree-courte);
}
.zone-depot.est-survolee { background: var(--vert-100); border-color: var(--vert-700); }
.zone-depot__icone { width: 2.5rem; height: 2.5rem; color: var(--vert-700); }
.zone-depot__saisie { max-width: 100%; font-size: var(--taille-s); }
.zone-depot__saisie::file-selector-button {
  margin-inline-end: var(--e-3);
  padding: 0.5rem 1rem;
  border: 2px solid var(--vert-700);
  border-radius: var(--r-2);
  background: var(--surface);
  color: var(--vert-800);
  font-weight: 650;
  cursor: pointer;
}
.zone-depot__texte { margin: 0; color: var(--encre-2); font-size: var(--taille-s); }
.fichier-choisi { display: flex; align-items: center; gap: var(--e-3); margin: var(--e-4) 0 0; padding: var(--e-3) var(--e-4); border: 1px solid var(--vert-200); border-radius: var(--r-2); background: var(--surface); }
.fichier-choisi__icone { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: var(--r-2); background: var(--vert-50); color: var(--vert-700); }
.fichier-choisi__nom { display: block; overflow-wrap: anywhere; }
.fichier-choisi__meta { display: block; color: var(--encre-3); font-size: var(--taille-s); }

.controles { display: grid; gap: var(--e-2); margin: var(--e-4) 0; padding: 0; list-style: none; }
.controle { display: flex; gap: var(--e-3); align-items: flex-start; margin: 0; padding: var(--e-3); border: 1px solid var(--trait); border-radius: var(--r-2); background: var(--surface); }
.controle__icone { flex: none; margin-top: 1px; }
.controle--ok .controle__icone { color: var(--succes); }
.controle--ko { border-color: var(--erreur-trait); background: var(--erreur-fond); }
.controle--ko .controle__icone { color: var(--erreur); }
.controle--simule { border-style: dashed; background: var(--surface-2); }
.controle--simule .controle__icone { color: var(--encre-3); }
.controle--alerte { border-color: var(--alerte-trait); background: var(--alerte-fond); }
.controle--alerte .controle__icone { color: var(--alerte); }
.controle__corps { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.controle__libelle { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); font-weight: 650; }
.controle__detail { color: var(--encre-2); font-size: var(--taille-s); }
.controle__detail--code { font-family: var(--police-code); font-size: var(--taille-xs); word-break: break-all; }
.en-cours { display: flex; align-items: center; gap: var(--e-2); color: var(--encre-2); }

.extraction { margin: var(--e-5) 0; }
.extraction__libelle { display: block; margin-bottom: var(--e-2); font-weight: 650; }
.extraction__etat { margin: var(--e-2) 0 0; color: var(--encre-2); font-size: var(--taille-s); }
.cote-a-cote { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); margin-top: var(--e-4); }
.cote-a-cote__panneau { display: flex; flex-direction: column; margin: 0; border: 1px solid var(--trait); border-radius: var(--r-2); background: var(--surface-2); overflow: hidden; }
.cote-a-cote__panneau figcaption { display: flex; align-items: center; gap: var(--e-2); padding: var(--e-2) var(--e-3); border-bottom: 1px solid var(--trait); background: var(--surface); font-size: var(--taille-s); font-weight: 650; }
.cote-a-cote__panneau figcaption .icone { color: var(--vert-600); }
.apercu-fichier { max-height: 22rem; width: 100%; object-fit: contain; background: #fff; }
.apercu-vide, .texte-reconnu-vide { flex: 1; display: grid; place-content: center; gap: var(--e-2); padding: var(--e-5); text-align: center; color: var(--encre-2); font-size: var(--taille-s); }
.apercu-vide .illustration { width: 8rem; margin-inline: auto; }
.texte-reconnu-vide { background: repeating-linear-gradient(-45deg, #fafbfb 0 10px, #f3f5f4 10px 20px); }
.texte-reconnu-vide p { margin: 0; }
.cote-a-cote--compact .apercu-vide, .cote-a-cote--compact .texte-reconnu-vide { padding: var(--e-4); }
@media (max-width: 40rem) { .cote-a-cote { grid-template-columns: minmax(0, 1fr); } }

.grille-champs { display: flex; flex-wrap: wrap; gap: 0 var(--e-4); }
.grille-champs > .champ { flex: 1 1 14rem; }
.liste-etapes-suivantes { margin-bottom: var(--e-5); }
.fiche-concernee { margin-bottom: var(--e-5); }
.fiche-concernee p { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); }
.groupe-champs--titre { margin-top: var(--e-5); padding-top: var(--e-4); border-top: 1px solid var(--trait); }
.groupe-champs--titre > legend { float: inline-start; width: 100%; font-size: var(--taille-l); margin-bottom: var(--e-4); }
.groupe-champs--titre > legend + * { clear: inline-start; }

/* --- Validation --------------------------------------------------------------- */
.cellule-objet { display: block; font-weight: 600; color: var(--encre); }
.cellule-type { display: block; color: var(--encre-3); font-size: var(--taille-xs); }
.tableau th[scope="row"] { font-weight: 600; white-space: nowrap; }
.tableau th[scope="row"] .etiquette { margin-inline-start: var(--e-1); }
.etapes--dossier li { font-size: var(--taille-s); }
.citation-courte { display: block; padding: var(--e-2) var(--e-3); border-inline-start: 3px solid var(--vert-400); background: var(--papier); font-family: var(--police-document); }
.tableau--comparaison td { width: 40%; }
del { background: var(--erreur-fond); color: var(--erreur); text-decoration-thickness: 1px; }
ins { background: var(--succes-fond); color: var(--succes); text-decoration: none; border-bottom: 2px solid var(--succes-trait); }
.sources-conflit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-4); }
@media (max-width: 48rem) { .sources-conflit { grid-template-columns: minmax(0, 1fr); } }
.liste-verification legend { font-size: var(--taille-m); }
.liste-verification .choix { font-size: var(--taille-s); }
.decision .groupe-champs legend { font-size: var(--taille-m); }
.decision .choix label { font-size: var(--taille-s); font-weight: 600; }
.decision .choix__aide { font-weight: 400; }
.decision .champ { margin-bottom: var(--e-4); }

/* --- À propos ------------------------------------------------------------------ */
.a-propos { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: var(--e-7); align-items: start; }
.sommaire { position: sticky; top: var(--e-4); padding-inline-start: var(--e-3); border-inline-start: 3px solid var(--vert-200); }
.sommaire__titre { font-size: var(--taille-s); color: var(--encre-3); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: var(--e-2); }
.sommaire ul { margin: 0; padding: 0; list-style: none; font-size: var(--taille-s); }
.sommaire li + li { margin-top: var(--e-2); }
.a-propos__corps { max-width: 50rem; }
.a-propos__corps > section + section { margin-top: var(--e-7); }
.a-propos__corps h2 { margin-top: 0; }
@media (max-width: 56rem) { .a-propos { grid-template-columns: minmax(0, 1fr); gap: var(--e-5); } .sommaire { position: static; } }
.organismes { display: grid; gap: var(--e-4); margin-bottom: var(--e-5); }
.organisme { display: grid; grid-template-columns: 17rem minmax(0, 1fr); gap: var(--e-5); align-items: center; padding: var(--e-4); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-3); }
.organisme h3 { margin-bottom: var(--e-2); }
.organisme p:last-child { margin-bottom: 0; }
.organisme__role { margin: 0 0 var(--e-1); color: var(--vert-700); font-size: var(--taille-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.logo-plaque { display: grid; place-items: center; min-height: 8.5rem; padding: var(--e-3); background: #fff; border-radius: var(--r-2); }
.logo-plaque img { display: block; background: #fff; }
.logo-plaque__ali { height: 118px; width: auto; }
.logo-plaque__recadre { height: auto; object-fit: cover; object-position: 50% 50%; }
.logo-plaque__ica { width: 250px; aspect-ratio: 3; }
.logo-plaque__branche { width: 240px; aspect-ratio: 2.8; }
@media (max-width: 40rem) { .organisme { grid-template-columns: minmax(0, 1fr); } }
.principes { display: grid; gap: var(--e-3); margin: 0; padding: 0; list-style: none; }
.principe { display: flex; gap: var(--e-3); align-items: flex-start; margin: 0; padding: var(--e-3) var(--e-4); background: var(--surface); border: 1px solid var(--trait); border-radius: var(--r-2); }
.principe__icone { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--vert-50); color: var(--vert-700); }

/* --- Illustrations (couleurs) ---------------------------------------------- */
.ill-ombre { fill: var(--vert-100); }
.ill-papier { fill: #fff; stroke: var(--vert-700); stroke-width: 2; }
.ill-papier--fond { fill: var(--vert-50); stroke: var(--vert-300); }
.ill-ligne { fill: none; stroke: var(--vert-200); stroke-width: 4; stroke-linecap: round; }
.ill-ligne--fine { stroke-width: 3; }
.ill-loupe { fill: rgba(255, 255, 255, 0.88); stroke: var(--vert-700); stroke-width: 5; }
.ill-manche { stroke: var(--vert-700); stroke-width: 8; stroke-linecap: round; }
.ill-question { fill: none; stroke: var(--vert-600); stroke-width: 3; stroke-linecap: round; }
.ill-fond { fill: var(--vert-50); }
.ill-etagere { stroke: var(--vert-700); stroke-width: 4; stroke-linecap: round; }
.ill-boite { fill: #fff; stroke: var(--vert-600); stroke-width: 2; }
.ill-boite--accent { fill: var(--vert-100); }
.ill-etiquette { fill: var(--vert-200); }
.ill-vide { fill: none; stroke: var(--trait-fort); stroke-width: 2; stroke-dasharray: 5 4; }
.ill-ajout { stroke: var(--vert-600); stroke-width: 3; stroke-linecap: round; }
.ill-lien { fill: none; stroke: var(--vert-400); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 6; }
.ill-rupture { fill: none; stroke: var(--erreur); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ill-alerte { fill: var(--alerte-fond); stroke: var(--alerte); stroke-width: 2.5; stroke-linejoin: round; }
.ill-alerte-trait { stroke: var(--alerte); stroke-width: 3; stroke-linecap: round; }
.ill-rond { fill: #fff; stroke: var(--vert-600); stroke-width: 2.5; }
.ill-sablier { fill: none; stroke: var(--vert-700); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.ill-sable { fill: var(--vert-300); }
.ill-scan { fill: var(--vert-400); opacity: 0.22; }
.ill-scan-ligne { stroke: var(--vert-600); stroke-width: 2.5; }

/* --- Impression --------------------------------------------------------------- */
@media print {
  .entete .nav-principale, .bouton-menu, .evitement, .pied, .fiche__actions, .filtres, .ariane, .toast, .heros__motif { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  .entete-page, .reponse, .carte { box-shadow: none !important; }
  .fiche { grid-template-columns: minmax(0, 1fr); }
  a { color: #000; }
}
