:root {

  --origine-vert-cadre: #00ae00;
  --origine-vert-dossier: #33cc66;
  --origine-bleu-dossier: #0099ff;
  --origine-lavande: #e6e6ff;
  --origine-bleu-clair: #99ccff;
  --origine-orange: #ffcc99;
  --origine-jaune: #ffff99;
  --origine-vert-produit: #94bd5e;
  --origine-vert-etiquette: #008000;
  --origine-gris-99: #999999;
  --origine-gris-33: #333333;
  --origine-lavande-cadre: #ccccff;
  --origine-lavande-ombre: #b3b3e6;
  --origine-jaune-etiquette: #e6e64c;
  --texte-accepte: #4d7a1f;
  --texte-non-conforme: #b84747;
  --texte-client: #007a00;
  --chiffre-jaune: #ffff00;
  --origine-rouge-cadre: #ff0000;
  --origine-gris-case: #e6e6e6;
  --origine-gris-instruction: #666666;
  --origine-gris-trait: #4c4c4c;
  --origine-gris-document: #b3b3b3;
  --origine-gris-rangement: #cccccc;
  --origine-service-qualite: #0047ff;
  --origine-service-production: #00ae00;
  --origine-service-comptabilite: #eb613d;

  --texte: #1a1a1a;
  --texte-secondaire: #4c4c4c;
  --texte-inverse: #ffffff;
  --fond: #ffffff;
  --fond-parcours: #fbfaf7;
  --lien-archives: #17611f;
  --lien-parcours: #1d4f91;
  --bordure-legere: #b3b3b3;
  --bandeau-parcours: #e3ebf5;
  --trait-service-production: #009c00;
  --trait-information: #d66b00;
  --page-visee: #fff3c4;

  --flux-gris: #a6a6a6;
  --flux-rose: #d6336c;
  --flux-rouge: #b8434f;
  --flux-orange: #d9733f;
  --flux-beige: #ebcfae;
  --flux-jaune: #dedb2c;
  --flux-olive: #9b9530;
  --flux-vert: #1fa33a;
  --flux-vert-clair: #3cbf7a;
  --flux-bleu: #94b8e0;
  --flux-cone-vert: #2dbb3c;
  --flux-cone-rouge: #e85a5a;

  --phase-bleu: #d6e8fb;
  --phase-bleu-bord: #3d78b8;
  --phase-orange: #ffe1c4;
  --phase-orange-bord: #c26a1d;
  --phase-vert: #d9ebc6;
  --phase-vert-bord: #5a8a2a;
  --phase-jaune: #fff6b0;
  --phase-jaune-bord: #8a7a00;
  --phase-chemin: #767676;

  --attenue-texte: #8c8c8c;
  --attenue-trait: #c4c4c4;
  --attenue-bleu: #dcecfc;
  --attenue-gris: #f3f3f3;
  --attenue-vert: #e2ecd5;
  --attenue-orange: #fdeee0;
  --attenue-jaune: #fffde0;
  --attenue-information: #f2c9a6;

  --accent-texte: var(--lien-parcours);
  --accent-cadre: var(--lien-parcours);
  --accent-bandeau: var(--bandeau-parcours);

  --espace-1: 0.25rem;
  --espace-2: 0.5rem;
  --espace-3: 1rem;
  --espace-4: 1.5rem;
  --espace-5: 2.5rem;
  --largeur-texte: 42rem;
  --largeur-page: 64rem;
  --rayon: 0.25rem;
  --police: system-ui, "Segoe UI", Roboto, Arial, sans-serif;
}

body.archives {
  --accent-texte: var(--lien-archives);
  --accent-cadre: var(--origine-vert-cadre);
  --accent-bandeau: var(--origine-lavande);
}

body.archives.ensemble-bleu {
  --accent-cadre: var(--origine-bleu-dossier);
}

body.parcours {
  --accent-texte: var(--lien-parcours);
  --accent-cadre: var(--lien-parcours);
  --accent-bandeau: var(--bandeau-parcours);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--police);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--texte);
  background: var(--fond);
  overflow-wrap: break-word;
}

body.parcours {
  background: var(--fond-parcours);
}

h1,
h2,
h3 {
  line-height: 1.25;
}

h1 {
  font-size: 1.6rem;
  margin: 0 0 var(--espace-3);
}

h2 {
  font-size: 1.3rem;
  margin: var(--espace-5) 0 var(--espace-3);
}

h3 {
  font-size: 1.1rem;
  margin: var(--espace-4) 0 var(--espace-2);
}

p,
ul,
ol,
dl,
table {
  margin: 0 0 var(--espace-3);
}

a {
  color: var(--accent-texte);
  text-underline-offset: 0.15em;
}

a:hover {
  text-decoration-thickness: 2px;
}

a:focus-visible,
summary:focus-visible,
.tableau-defilant:focus-visible,
.sequence-dessin:focus-visible,
.organigramme-dessin:focus-visible,
.fiche-schema:focus-visible {
  outline: 3px solid var(--texte);
  outline-offset: 2px;
}

img {
  max-width: 100%;
  height: auto;
}

main {
  display: block;
  max-width: var(--largeur-page);
  margin: 0 auto;
  padding: var(--espace-3);
}

body.parcours main > * {
  max-width: var(--largeur-texte);
}

.evitement {
  position: absolute;
  left: var(--espace-2);
  top: -3rem;
  padding: var(--espace-2) var(--espace-3);
  background: var(--texte);
  color: var(--texte-inverse);
  z-index: 10;
}

.evitement:focus {
  top: var(--espace-2);
}

.entete-site {
  position: relative;
  border-bottom: 4px solid var(--accent-cadre);
  background: var(--fond);
  padding: var(--espace-2) var(--espace-3);
}

.site-nom {
  margin: 0 0 var(--espace-1);
  font-weight: 700;
  font-size: 1.15rem;
}

.site-nom a {
  color: var(--texte);
  text-decoration: none;
}

.menu-liste {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espace-1) var(--espace-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu-liste > li > a,
.menu-liste > li > .lien-a-venir,
.menu-groupe > summary {
  display: inline-block;
  padding: var(--espace-1) 0;
  color: var(--accent-texte);
  font-weight: 600;

  text-decoration: none;
  border-bottom: 3px solid transparent;
}

.menu-liste > li > a:hover,
.menu-liste > li > a:focus-visible,
.menu-groupe > summary:hover,
.menu-groupe > summary:focus-visible {
  text-decoration: underline;
}

.menu-groupe > summary {
  cursor: pointer;
}

.menu-liste > li > .lien-a-venir {
  color: var(--texte-secondaire);
  font-weight: 400;
}

.menu a[aria-current="page"] {
  color: var(--texte);
  text-decoration: none;
  border-bottom: 3px solid var(--accent-cadre);
}

.menu-groupe[open] > summary {
  color: var(--texte);
}

.menu-chapitres,
.menu-archives {
  margin: var(--espace-2) 0;
  padding: var(--espace-2) var(--espace-3);
  background: var(--fond);
  border: 1px solid var(--bordure-legere);
  border-radius: var(--rayon);
}

.menu-chapitres {
  list-style: none;
}

.menu-chapitres li,
.menu-archives li {
  padding: var(--espace-1) 0;
}

.menu-archives ul {
  list-style: none;
  margin: 0 0 var(--espace-2);
  padding: 0;
}

.menu-ensemble {
  margin: var(--espace-2) 0 0;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--texte-secondaire);
}

.entete-accueil {
  padding: var(--espace-3) 0;
}

.entete-accueil p {
  font-size: 1.05rem;
}

.bouton {
  display: inline-block;
  padding: var(--espace-2) var(--espace-4);
  border-radius: var(--rayon);
  background: var(--lien-parcours);
  color: var(--texte-inverse);
  font-weight: 700;
  text-decoration: none;
}

.bouton:hover {
  text-decoration: underline;
}

.liste-chapitres {
  list-style: none;
  padding: 0;
}

.liste-chapitres li {
  padding: var(--espace-1) 0;
}

.chapitre-numero {
  display: inline-block;
  min-width: 1.5rem;
  font-weight: 700;
}

.liste-dossiers {
  padding-left: var(--espace-4);
}

.liste-dossiers li {
  padding: var(--espace-1) 0;
}

.liens-sortants {
  padding-left: var(--espace-4);
}

.entete-dossier {
  border: 2px solid var(--accent-cadre);
  padding: var(--espace-3);
  margin-bottom: var(--espace-4);
}

.dossier-numero {
  margin: 0 0 var(--espace-2);
  font-weight: 700;
  color: var(--texte-secondaire);
}

.entete-dossier h1 {
  background: var(--accent-bandeau);
  border: 1px solid var(--texte);
  padding: var(--espace-3);
  text-align: center;
}

.dossier-meta {
  display: grid;
  gap: var(--espace-1) var(--espace-3);
}

.dossier-meta div {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--espace-2);
}

.dossier-meta dt {
  font-weight: 700;
}

.dossier-meta dt::after {
  content: " :";
}

.dossier-meta dd {
  margin: 0;
}

.sommaire-dossier ol {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 1;
}

.sommaire-dossier li {
  padding: var(--espace-1) 0;
  break-inside: avoid;
}

.page-numero {
  display: inline-block;
  min-width: 2.6rem;
  font-weight: 700;
  color: var(--texte-secondaire);
}

.page-origine {
  margin: var(--espace-5) 0;
  padding: 0 0 var(--espace-3) var(--espace-3);
  border-left: 4px solid var(--accent-cadre);
}

.page-origine > h2 {
  margin-top: 0;
  padding: var(--espace-2) var(--espace-3);
  background: var(--accent-bandeau);
}

.page-origine > h2 .page-numero {
  color: var(--texte);
}

.provenance {
  font-size: 0.875rem;
  color: var(--texte-secondaire);
  border-top: 1px solid var(--bordure-legere);
  padding-top: var(--espace-2);
}

.capitales {
  text-transform: uppercase;
}

.souligne {
  text-decoration: underline;
}

.page-origine h3 {
  font-size: 1.05rem;
}

.page-origine h4 {
  font-size: 1rem;
  margin: var(--espace-3) 0 var(--espace-2);
}

.encadre {
  border: 1px solid var(--origine-gris-trait);
  padding: var(--espace-3);
  margin: 0 0 var(--espace-3);
}

.encadre > :last-child {
  margin-bottom: 0;
}

.texte-gras {
  font-weight: 700;
}

.objectif em {
  font-weight: 700;
}

.elements-processus div {
  border: 1px solid var(--origine-gris-trait);
  margin: 0 0 var(--espace-3);
}

.elements-processus dt {
  display: inline-block;
  margin: 0 var(--espace-3);
  padding: var(--espace-1) var(--espace-3);
  background: var(--origine-gris-case);
  font-weight: 700;
  font-size: 0.875rem;
}

.elements-processus dd {
  margin: 0;
  padding: var(--espace-2) var(--espace-3) var(--espace-3);
  font-weight: 700;
}

.service {
  border: 2px solid var(--origine-gris-trait);
  padding: 0 var(--espace-3) var(--espace-2);
  margin: 0 0 var(--espace-3);
}

.service-qualite {
  border-color: var(--origine-service-qualite);
}

.service-production {
  border-color: var(--origine-service-production);
}

.service-comptabilite {
  border-color: var(--origine-service-comptabilite);
}

.service > h3 {
  margin-top: var(--espace-3);
}

.liste-processus > li {
  margin-bottom: var(--espace-2);
  font-weight: 700;
}

.liste-processus ul {
  font-weight: 400;
}

.production-processus {
  border: 2px solid var(--origine-vert-cadre);
  padding: 0 var(--espace-3);
  margin: 0;
}

.production-stockage {
  margin: var(--espace-2) auto;
  width: max-content;
  max-width: 100%;
  padding: var(--espace-1) var(--espace-3);
  background: var(--origine-jaune);
  border: 1px solid var(--origine-gris-trait);
  font-weight: 700;
}

.production-stockage::after {
  content: " ↓" / "";
}

.libelles-schema {
  margin: 0 0 var(--espace-3);
  padding-left: var(--espace-4);
}

.libelles-schema ul {
  padding-left: var(--espace-4);
}

.description-schema {
  margin: 0 0 var(--espace-3);
  padding: var(--espace-2) var(--espace-3);
  border: 1px solid var(--bordure-legere);
  background: var(--fond-parcours);
}

.description-schema > summary {
  cursor: pointer;
  color: var(--accent-texte);
  font-weight: 600;
}

.description-schema ul {
  padding-left: var(--espace-4);
}

.tableau-procedure {
  margin: 0 0 var(--espace-4);
}

.tableau-procedure caption {
  caption-side: top;
  text-align: left;
  padding: var(--espace-2) var(--espace-3);
  background: var(--origine-lavande);
  font-weight: 700;
}

.tableau-procedure .legende-etiquettes {
  display: block;
  font-weight: 400;
  font-size: 0.875rem;
}

.tableau-procedure th {
  width: 45%;
  background: var(--fond);
  font-size: 0.875rem;
}

.tableau-procedure td {
  background: var(--origine-gris-case);
}

.tableau-procedure td.case-instruction {
  background: var(--origine-gris-instruction);
  color: var(--texte-inverse);
  font-weight: 700;
}

.tableau-procedure td.case-document {
  background: var(--origine-gris-document);
}

.tableau-procedure td.case-rangement {
  background: var(--origine-gris-rangement);
}

.tableau-procedure td.case-gestion-taches {
  background: var(--origine-orange);
  font-weight: 700;
}

.tableau-procedure td.case-produit-sortant {
  background: var(--origine-jaune);
  font-weight: 700;
}

.tableau-procedure td.case-produit-entrant {
  background: var(--origine-vert-produit);
  font-weight: 700;
}

.etiquette {
  font-weight: 400;
  white-space: nowrap;
}

.fiche-procedure > * {
  margin: 0 0 var(--espace-3);
}

.fiche-application,
.fiche-utilisateur,
.fiche-methode {
  padding: var(--espace-2) var(--espace-3);
  background: var(--origine-gris-case);
  border: 1px solid var(--origine-gris-trait);
  text-align: center;
}

.fiche-application,
.fiche-utilisateur {
  margin-bottom: 0;
  border-bottom: 0;
}

.fiche-utilisateur + .fiche-methode {
  margin-top: 0;
}

.fiche-methode dt {
  font-weight: 700;
  text-decoration: underline;
}

.fiche-methode dd {
  margin: 0 0 var(--espace-3);
}

.fiche-methode dd p {
  margin: 0 0 var(--espace-2);
}

.fiche-bloc {
  border: 1px solid var(--origine-gris-trait);
}

.fiche-bloc > h3 {
  margin: 0;
  padding: var(--espace-2) var(--espace-3);
  background: var(--fond);
  border-bottom: 1px solid var(--origine-gris-trait);
  font-size: 0.875rem;
  text-align: center;
}

.fiche-bloc > :not(h3) {
  margin: 0;
  padding: var(--espace-2) var(--espace-3);
  text-align: center;
}

.fiche-document > :not(h3) {
  background: var(--origine-orange);
}

.fiche-instruction > ol {
  background: var(--origine-gris-instruction);
  color: var(--texte-inverse);
  font-weight: 700;
  list-style-position: inside;
  padding: var(--espace-3);
}

.fiche-instruction li {
  padding: var(--espace-1) 0;
}

.fiche-instruction a {
  color: var(--texte-inverse);
}

.fiche-a-completer > :not(h3) {
  background: var(--origine-gris-case);
}

.fiche-rangement {
  font-weight: 700;
}

.ensemble-dossiers {
  border: 2px solid var(--origine-vert-dossier);
  padding: 0 var(--espace-3) var(--espace-2);
  margin: 0 0 var(--espace-3);
}

.ensemble-dossiers.ensemble-bleu {
  border-color: var(--origine-bleu-dossier);
}

.ensemble-dossiers > h3 {
  margin-top: var(--espace-3);
}

.ensemble-dossiers a {
  font-weight: 700;
}

.gabarit-indication {
  display: inline-block;
  padding: var(--espace-1) var(--espace-3);
  border: 1px dashed var(--origine-gris-trait);
  font-size: 0.875rem;
  font-weight: 600;
}

.tableau-gabarit th {
  width: 40%;
  background: var(--fond);
  font-size: 0.875rem;
}

.tableau-gabarit td {
  height: 2rem;
}

.tableau-gabarit tbody + tbody th,
.tableau-gabarit tbody + tbody td {
  border-top: 3px solid var(--origine-gris-trait);
}

.tableau-responsables th {
  background: var(--origine-bleu-clair);
  text-align: center;
}

.tableau-responsables td {
  text-align: center;
}

.tableau-services th[scope="row"] {
  width: 55%;
  background: var(--fond);
  font-size: 0.875rem;
}

.tableau-services ul {
  margin: 0;
  padding-left: var(--espace-4);
}

.liste-par-service .service > h4 {
  margin-top: var(--espace-3);
}

.texte-centre {
  text-align: center;
}

.fiche-description > div,
.liste-phases > div {
  display: grid;
  grid-template-columns: minmax(7rem, 1fr) 3fr;
  gap: var(--espace-3);
  margin: 0 0 var(--espace-2);
}

.fiche-description dd,
.liste-phases dd {
  margin: 0;
}

.tableau-phases td {
  width: 3rem;
  text-align: center;
  font-weight: 700;
}

.encadres-objectifs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espace-3);
  margin: 0 0 var(--espace-3);
}

.encadres-objectifs .encadre-rouge {
  flex: 1 1 14rem;
  margin: 0;
  border: 2px solid var(--origine-rouge-cadre);
  text-align: center;
}

.exemple-lot {
  font-size: 1.25rem;
}

.encadre-tirets {
  border-style: dashed;
}

.tableau-lot caption,
.tableau-reception caption {
  caption-side: top;
  text-align: left;
  padding: var(--espace-2) var(--espace-3);
  background: var(--origine-gris-case);
  font-weight: 700;
}

.tableau-lot th,
.tableau-reception th,
.tableau-suivi th {
  background: var(--origine-gris-case);
  font-size: 0.875rem;
}

.tableau-reception th[scope="row"] {
  width: 35%;
}

.issue-reception {
  margin: 0 0 var(--espace-3);
  padding: 0 var(--espace-3);
  border-left: 4px solid var(--origine-gris-trait);
}

.issue-acceptee {
  border: 3px solid var(--origine-vert-produit);
}

.tableau-outils thead th {
  text-align: center;
  background: var(--origine-gris-case);
}

.tableau-outils .outil-nom {
  display: inline-block;
  padding: 0 var(--espace-2);
  background: var(--origine-jaune);
}

.tableau-outils tbody th {
  background: var(--fond);
}

.tableau-outils td.case-produit {
  background: var(--origine-gris-case);
}

.tableau-outils td.case-donnees {
  background: var(--origine-gris-document);
}

.tableau-outils td p {
  margin: 0 0 var(--espace-2);
}

.tableau-outils td p:last-child {
  margin-bottom: 0;
}

.points-enregistrement > li {
  margin-bottom: var(--espace-2);
}

.etape-maitrise,
.provenance-donnees {
  margin: 0 0 var(--espace-3);
  padding: 0 var(--espace-3) var(--espace-2);
  border: 1px solid var(--origine-gris-trait);
  background: var(--origine-gris-case);
}

.etape-maitrise dt {
  font-weight: 700;
}

.etape-maitrise dd {
  margin: 0 0 var(--espace-2);
}

.extrait-libelle {
  display: inline-block;
  padding: var(--espace-1) var(--espace-3);
  background: var(--origine-jaune);
  font-weight: 700;
}

.provenance-donnees > .encadre {
  background: var(--fond);
}

.provenance-donnees h4 {
  margin-top: 0;
}

.suivi-outil > h4 {
  margin: var(--espace-3) 0 var(--espace-2);
}

.tableau-suivi th[scope="row"] {
  width: 40%;
}

.formulaire-entete {
  margin: 0 0 var(--espace-3);
}

.formulaire-entete th,
.formulaire-entete .formulaire-titre {
  background: var(--origine-gris-rangement);
  white-space: nowrap;
}

.formulaire-entete th {
  width: 1%;
}

.formulaire-entete .formulaire-titre {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
}

.formulaire-entete .case-a-remplir {
  min-width: 6rem;
}

.formulaire-bandeau {
  margin: 0 0 var(--espace-3);
  padding: var(--espace-2);
  border: 1px solid var(--origine-gris-trait);
  background: var(--origine-gris-case);
  text-align: center;
  font-weight: 700;
}

.tableau-formulaire th {
  width: auto;
  background: var(--origine-gris-case);
  text-align: center;
  vertical-align: middle;
  font-size: 0.8125rem;
}

.tableau-formulaire td {
  height: 2rem;
  min-width: 3rem;
}

.formulaire-groupe td {
  background: var(--origine-gris-rangement);
  white-space: nowrap;
}

.tableau-formulaire tbody + tbody td {
  border-top: 1px solid var(--bordure-legere);
}

.tableau-formulaire tbody + tbody .formulaire-groupe td {
  border-top: 3px solid var(--origine-gris-trait);
}

.formulaire-entete th,
.formulaire-entete td {
  vertical-align: middle;
}

.tableau-formulaire td:last-child:not(:first-child) {
  text-align: center;
}

.formulaire-cadencier .formulaire-groupe td:last-child {
  text-align: left;
}

.formulaire-retour {
  margin-top: var(--espace-4);
}

.zone-a-remplir {
  position: relative;
  min-height: 18rem;
  margin: 0 0 var(--espace-3);
  border: 1px solid var(--origine-gris-trait);
}

.zone-a-remplir-titre {
  margin: 0;
  padding: var(--espace-2);
  border-bottom: 1px solid var(--origine-gris-trait);
  background: var(--origine-bleu-clair);
  text-align: center;
  font-weight: 700;
}

.zone-a-remplir-legende {
  position: absolute;
  right: var(--espace-3);
  bottom: var(--espace-3);
  margin: 0;
  padding: var(--espace-4) var(--espace-4);
  border: 1px solid var(--origine-gris-trait);
  background: var(--origine-bleu-clair);
  font-weight: 700;
  font-size: 0.875rem;
}

.formulaire-diagramme th[scope="row"] {
  width: 22%;
  text-align: left;
  background: var(--fond);
}

@media (min-width: 60rem) {
  .formulaire-demi {
    max-width: 50%;
  }

  .formulaire-demi-droite {
    margin-left: auto;
  }

  .formulaire-courbe {
    grid-template-columns: 2fr 3fr;
  }
}

@media (min-width: 60rem) {
  .formulaire-paire {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--espace-3);
  }
}

.note-editoriale {
  margin: var(--espace-3) 0;
  padding: var(--espace-2) var(--espace-3);
  border-left: 4px solid var(--lien-parcours);
  background: var(--bandeau-parcours);
  font-size: 0.95rem;
}

.note-editoriale > :last-child {
  margin-bottom: 0;
}

.lien-a-venir {
  color: var(--texte-secondaire);
}

.trois-etapes {
  margin: 0 0 var(--espace-4);
  max-width: var(--largeur-texte);
}

.trois-etapes > figcaption {
  font-weight: 700;
  margin-bottom: var(--espace-2);
}

.marches {
  display: flex;
  align-items: flex-end;
  gap: var(--espace-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.marche {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--espace-1);
  padding: var(--espace-2);
  border: 2px solid var(--origine-bleu-clair);
  border-bottom-width: 6px;
  background: var(--fond);
  font-weight: 700;
}

@media (max-width: 22.5rem) {
  .marches { gap: var(--espace-1); }
  .marche { padding: var(--espace-1); }
}

.marche-1 { min-height: 4rem; }
.marche-2 { min-height: 6rem; }
.marche-3 { min-height: 8rem; }

.marche-numero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--origine-bleu-clair);
}

.marches-sommet {
  margin: var(--espace-2) 0 0;
  padding: var(--espace-2) var(--espace-3);
  background: var(--origine-jaune);
  text-align: right;
  font-weight: 700;
}

.encadre-instruction {
  max-width: var(--largeur-texte);
  margin: var(--espace-4) 0;
  padding: var(--espace-3);
  border-left: 4px solid var(--origine-gris-instruction);
  background: var(--fond);
}

.encadre-instruction > h3 {
  margin-top: 0;
}

.encadre-instruction > :last-child {
  margin-bottom: 0;
}

.encadre-calcul {
  max-width: var(--largeur-texte);
  margin: var(--espace-4) 0;
  padding: var(--espace-2) var(--espace-3);
  border-left: 4px solid var(--lien-parcours);
  background: var(--fond);
}

.encadre-calcul > summary {
  font-weight: 700;
  cursor: pointer;
}

.encadre-calcul[open] > summary {
  margin-bottom: var(--espace-2);
}

.encadre-calcul .formule {
  margin: var(--espace-3) 0;
  font-size: 1.15rem;
  font-weight: 700;
  text-align: center;
}

.vers-parcours {
  font-size: 0.875rem;
  font-weight: 600;
}

.entete-chapitre {
  padding: var(--espace-3) 0;
  border-bottom: 4px solid var(--lien-parcours);
  margin-bottom: var(--espace-4);
}

.chapitre-numero {
  margin: 0 0 var(--espace-2);
  font-weight: 700;
  color: var(--texte-secondaire);
}

.chapitre-intro {
  font-size: 1.05rem;
}

.objectifs {
  padding: var(--espace-3);
  background: var(--bandeau-parcours);
  border-radius: var(--rayon);
  margin-bottom: var(--espace-3);
}

.objectifs h2 {
  margin-top: 0;
  font-size: 1.1rem;
}

.objectifs ul {
  margin-bottom: 0;
}

.sommaire-chapitre ol {
  margin: 0;
  padding-left: var(--espace-4);
}

.sommaire-chapitre li {
  padding: var(--espace-1) 0;
}

.section-chapitre {
  margin: var(--espace-5) 0;
}

.chapitre-source,
.sequence-source {
  font-size: 0.875rem;
  color: var(--texte-secondaire);
}

.encadre-familles {
  padding: var(--espace-3);
  border-left: 4px solid var(--lien-parcours);
  background: var(--fond);
  margin: 0 0 var(--espace-3);
}

.encadre-familles > :last-child {
  margin-bottom: 0;
}

caption {
  caption-side: top;
  text-align: left;
  font-weight: 700;
  padding: 0 0 var(--espace-2);
}

.liens-fiches a {
  font-weight: 700;
}

.encadre-titre {
  font-weight: 700;
  margin: 0 0 var(--espace-2);
}

.organigramme {
  margin: 0 0 var(--espace-4);
  max-width: var(--largeur-texte);
}

.organigramme > figcaption {
  font-weight: 700;
  margin-bottom: var(--espace-2);
}

.organigramme-dessin {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--bordure-legere);
  background: var(--fond);
}

.schema-organigramme {
  display: block;
  width: 100%;
  min-width: 36rem;
  height: auto;
  font-family: var(--police);
  font-size: 3.8px;
}

.schema-organigramme text {
  text-anchor: middle;
  dominant-baseline: middle;
  fill: var(--texte);
}

.schema-organigramme .org-case {
  fill: var(--origine-bleu-clair);
  stroke: var(--origine-gris-trait);
  stroke-width: 0.25;
}

.schema-organigramme .org-cellule {
  fill: var(--fond);
  stroke: var(--origine-gris-trait);
  stroke-width: 0.25;
}

.schema-organigramme .org-chiffre {
  fill: var(--origine-gris-case);
  stroke: none;
}

.schema-organigramme .org-chiffre + text {
  font-weight: 700;
}

.schema-organigramme .org-groupe {
  fill: none;
  stroke: var(--texte);
  stroke-width: 0.25;
  stroke-dasharray: 0.8 0.8;
}

.schema-organigramme .org-trait {
  fill: none;
  stroke: var(--texte);
  stroke-width: 0.25;
}

.arbre-services {
  margin: 0 0 var(--espace-4);
  max-width: var(--largeur-texte);
}

.arbre-services > figcaption {
  font-weight: 700;
  margin-bottom: var(--espace-2);
}

.arbre,
.arbre ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.arbre-gerance {
  display: inline-block;
  padding: var(--espace-1) var(--espace-3);
  border: 2px solid var(--origine-gris-trait);
  font-weight: 700;
}

.arbre > li > ul {
  margin-top: var(--espace-2);
  padding-left: var(--espace-4);
  border-left: 2px solid var(--origine-gris-trait);
}

.arbre-service {
  margin: 0 0 var(--espace-2);
  padding: var(--espace-1) var(--espace-3);
  border: 2px solid var(--origine-gris-trait);
  border-left-width: 6px;
}

.arbre-service.service-comptabilite {
  border-color: var(--origine-service-comptabilite);
}

.arbre-service.service-production {
  border-color: var(--trait-service-production);
}

.arbre-service.service-qualite {
  border-color: var(--origine-service-qualite);
}

.arbre-service summary {
  cursor: pointer;
  font-weight: 700;
}

.arbre-service details > ul {
  margin: var(--espace-2) 0 var(--espace-1);
}

.arbre-service details > ul > li {
  margin-bottom: var(--espace-1);
}

.arbre-service details > ul ul {
  list-style: disc;
  padding-left: var(--espace-4);
  font-size: 0.95rem;
}

.numero-lot {
  margin: 0 0 var(--espace-4);
  max-width: var(--largeur-texte);
  break-inside: avoid;
}

.numero-lot > figcaption {
  font-weight: 700;
  margin-bottom: var(--espace-2);
}

.lot-grille {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0 var(--espace-1);
  padding: var(--espace-3);
  border: 1px solid var(--bordure-legere);
  background: var(--fond);
}

.lot-colonne {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lot-chiffres,
.lot-point {
  font-size: 2.25rem;
  line-height: 1.2;
}

.lot-libelle {
  margin-top: var(--espace-1);
}

.lot-libelle::before {
  content: "↑" / "";
  display: block;
  text-align: center;
  font-size: 1.25rem;
  line-height: 1;
}

.lot-colonne-interne {
  align-items: flex-start;
}

.lot-encadre {
  max-width: 17rem;
  padding: var(--espace-2) var(--espace-3);
  border: 1px dashed var(--origine-gris-trait);
  text-align: center;
}

.lot-encadre::before {
  margin-bottom: var(--espace-1);
  text-align: left;
}

.lot-encadre p {
  margin: 0;
}

.arbre-source {
  font-size: 0.875rem;
  margin: var(--espace-2) 0 0;
}

body.parcours main > .section-chapitre {
  max-width: none;
}

body.parcours .section-chapitre > p,
body.parcours .section-chapitre > ul,
body.parcours .section-chapitre > ol,
body.parcours .section-chapitre > h2,
body.parcours .section-chapitre > .encadre-familles {
  max-width: var(--largeur-texte);
}

.chapitres-voisins {
  max-width: var(--largeur-page);
  margin: 0 auto;
  padding: 0 var(--espace-3);
}

.chapitres-voisins ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--espace-3);
  list-style: none;
  margin: 0;
  padding: var(--espace-3) 0;
  border-top: 1px solid var(--bordure-legere);
}

.sequence,
.schema-complet {
  margin: var(--espace-4) 0;
  max-width: 56rem;
}

.sequence > figcaption,
.schema-complet > figcaption {
  font-weight: 700;
  margin-bottom: var(--espace-2);
}

.sequence-dessin {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--bordure-legere);
  background: var(--fond);
}

.schema-processus {
  display: block;
  width: 100%;
  min-width: 40rem;
  height: auto;
  font-family: var(--police);
  font-size: 3.4px;
}

.schema-processus text {
  text-anchor: middle;
  dominant-baseline: middle;
  fill: var(--texte);
}

.schema-processus .titre-schema {
  font-size: 4.2px;
}

.schema-processus .texte-gras {
  font-weight: 700;
}

.schema-processus .texte-italique {
  font-style: italic;
}

.schema-processus .souligne {
  text-decoration: underline;
}

.schema-processus .case-bleue {
  fill: var(--origine-bleu-clair);
  stroke: var(--origine-gris-trait);
  stroke-width: 0.25;
}

.schema-processus .case-pointilles {
  stroke-dasharray: 0.8 0.6;
}

.schema-processus .case-grise {
  fill: var(--origine-gris-case);
  stroke: var(--origine-gris-trait);
  stroke-width: 0.25;
}

.schema-processus .legende-bleue {
  fill: var(--origine-bleu-clair);
}

.schema-processus .capitales {
  text-transform: uppercase;
}

.schema-processus .case-verte {
  fill: var(--origine-vert-produit);
}

.schema-processus .case-orange {
  fill: var(--origine-orange);
}

.schema-processus .case-jaune {
  fill: var(--origine-jaune);
}

.schema-processus .encadre-pointilles {
  fill: none;
  stroke: var(--texte);
  stroke-width: 0.25;
  stroke-dasharray: 0.8 0.8;
}

.schema-processus .trait-fin {
  stroke: var(--texte);
  stroke-width: 0.25;
}

.schema-processus .trait-produit {
  fill: none;
  stroke: var(--texte);
  stroke-width: 1.4;
  stroke-dasharray: 0.35 0.35;
}

.schema-processus .trait-information {
  fill: none;
  stroke: var(--trait-information);
  stroke-width: 0.9;
}

.schema-processus .trait-pointe-noire {
  fill: var(--texte);
  fill: context-stroke;
}

.schema-processus .trait-pointe-orange {
  fill: var(--trait-information);
  fill: context-stroke;
}

.schema-production {
  min-width: 40rem;
  max-width: 40rem;
}

.schema-processus .cadre-processus {
  fill: var(--fond);
  stroke: var(--origine-vert-cadre);
  stroke-width: 0.35;
}

.schema-processus .etiquette-processus {
  fill: var(--fond);
  stroke: var(--origine-vert-etiquette);
  stroke-width: 1;
}

.schema-processus .fleche-stockage {
  fill: var(--origine-jaune);
  stroke: var(--origine-gris-trait);
  stroke-width: 0.25;
  stroke-dasharray: 0.8 0.6;
}

.schema-processus .etiquette-texte {
  font-size: 4.2px;
}

.schema-processus .objectif-texte {
  font-size: 6.2px;
}

.schema-processus .methodes-titre {
  font-size: 4.8px;
}

.schema-processus .methodes-texte {
  font-size: 5.4px;
}

.schema-processus .stockage-texte {
  font-size: 5.2px;
}

.schema-processus .texte-reduit {
  font-size: 3px;
}

.schema-phases .s7-petit { font-size: 2.6px; }
.schema-phases .s7-numero { font-size: 5px; font-weight: 700; }
.schema-phases circle { stroke-width: 0.25; }
.schema-phases .s7-phase-1 { fill: var(--phase-bleu); stroke: var(--phase-bleu-bord); }
.schema-phases .s7-phase-2 { fill: var(--phase-orange); stroke: var(--phase-orange-bord); }
.schema-phases .s7-phase-3 { fill: var(--phase-vert); stroke: var(--phase-vert-bord); }
.schema-phases .s7-phase-4 { fill: var(--phase-jaune); stroke: var(--phase-jaune-bord); }
.schema-phases .s7-epais { stroke-width: 2.5; }
.schema-phases .s7-epais-petit { stroke-width: 1; }
.schema-phases .s7-chemin { fill: none; stroke: var(--phase-chemin); stroke-width: 0.35; }
.schema-phases .s7-pastille { fill: var(--origine-gris-rangement); stroke: none; }
.schema-phases .calque-courant .s7-pastille { fill: var(--origine-gris-99); }

.schema-flux {
  min-width: 48rem;
  font-size: 3.6px;
}

.schema-flux .s5-forme { stroke: none; }
.schema-flux .s5-gris { fill: var(--flux-gris); }
.schema-flux .s5-rose { fill: var(--flux-rose); }
.schema-flux .s5-rouge { fill: var(--flux-rouge); }
.schema-flux .s5-orange { fill: var(--flux-orange); }
.schema-flux .s5-beige { fill: var(--flux-beige); }
.schema-flux .s5-jaune { fill: var(--flux-jaune); }
.schema-flux .s5-olive { fill: var(--flux-olive); }
.schema-flux .s5-vert { fill: var(--flux-vert); }
.schema-flux .s5-vert-clair { fill: var(--flux-vert-clair); }
.schema-flux .s5-bleu { fill: var(--flux-bleu); }
.schema-flux path.s5-vert { fill: var(--flux-cone-vert); }
.schema-flux path.s5-rouge { fill: var(--flux-cone-rouge); }
.schema-flux .s5-vert-fond { fill: var(--origine-vert-produit); }
.schema-flux .s5-vert-fonce { fill: #7da647; }
.schema-flux .s5-sol { fill: var(--origine-gris-case); stroke-width: 0.3; }
.schema-flux .s5-cerclee { stroke: var(--texte); stroke-width: 0.9; }
.schema-flux .s5-gris-66 { fill: var(--origine-gris-instruction); }
.schema-flux .s5-gris-99 { fill: var(--origine-gris-99); }
.schema-flux .s5-gris-b3 { fill: var(--origine-gris-document); }
.schema-flux .s5-gris-cc { fill: var(--origine-gris-rangement); }
.schema-flux .s5-gris-e6 { fill: var(--origine-gris-case); }

.schema-flux .s5-cadre {
  fill: none;
  stroke: var(--origine-gris-99);
  stroke-width: 0.25;
}

.schema-flux .s5-fond { fill: var(--fond); }

.schema-flux .s5-zone-titre {
  font-size: 5px;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: underline;
  fill: var(--texte-secondaire);
}

.schema-flux .s5-zone-sous-titre { font-size: 3.4px; }
.schema-flux .s5-numero { font-size: 5px; font-weight: 700; }
.schema-flux .s5-inverse { fill: var(--texte-inverse); }
.schema-flux .s5-gris-texte { fill: var(--texte-secondaire); }
.schema-flux .s5-gras,
.schema-flux .s5-etiquette { font-weight: 700; }
.schema-flux .s5-etiquette { font-size: 3.4px; }

.schema-flux .s5-encadre {
  fill: var(--fond);
  stroke-width: 0.35;
}

.schema-flux .s5-encadre + text { font-weight: 700; }
.schema-flux .s5-encadre-titre { text-decoration: underline; }
.schema-flux .s5-carte { fill: var(--origine-lavande); stroke-width: 1.1; }
.schema-flux .s5-bord-vert { stroke: var(--trait-service-production); }
.schema-flux .s5-bord-jaune { stroke: var(--origine-jaune-etiquette); }
.schema-flux .s5-bord-rouge { stroke: var(--texte-non-conforme); }

.schema-flux .s5-trait {
  fill: none;
  stroke: var(--texte);
  stroke-width: 0.3;
}

.schema-flux .s5-axe { stroke: var(--origine-gris-99); stroke-width: 0.25; }
.schema-flux .s5-limite-haute { stroke: var(--texte-non-conforme); stroke-width: 0.2; }
.schema-flux .s5-limite-basse { stroke: var(--origine-jaune-etiquette); stroke-width: 0.2; }
.schema-flux .s5-courbe { stroke: var(--bordure-legere); stroke-width: 0.5; }
.schema-flux .s5-fleche-rouge { stroke: var(--flux-cone-rouge); stroke-width: 0.6; }
.schema-flux .s5-pointe { fill: var(--texte); }
.schema-flux .s5-pointe-grise { fill: var(--origine-gris-99); }
.schema-flux .s5-pointe-rouge { fill: var(--flux-cone-rouge); }

.schema-flux .s5-point-rouge { fill: var(--flux-cone-rouge); }

.schema-flux .s5-periode {
  fill: var(--fond);
  stroke: var(--texte);
  stroke-width: 0.25;
  stroke-dasharray: 0.8 0.6;
}

.schema-tracabilite {
  min-width: 48rem;
}

.schema-processus .forme {
  stroke: var(--texte);
  stroke-width: 0.25;
}

.schema-processus .blanc { fill: var(--fond); }
.schema-processus .gris-e6 { fill: var(--origine-gris-case); }
.schema-processus .gris-cc { fill: var(--origine-gris-rangement); }
.schema-processus .gris-b3 { fill: var(--origine-gris-document); }
.schema-processus .gris-99 { fill: var(--origine-gris-99); }
.schema-processus .gris-66 { fill: var(--origine-gris-instruction); }
.schema-processus .gris-4c { fill: var(--origine-gris-trait); }
.schema-processus .gris-33 { fill: var(--origine-gris-33); }
.schema-processus .lavande { fill: var(--origine-lavande); }
.schema-processus .lavande-ombre { fill: var(--origine-lavande-ombre); }
.schema-processus .lavande-cadre { fill: var(--origine-lavande-cadre); stroke: var(--origine-lavande-cadre); }
.schema-processus .jaune-etiquette { fill: var(--origine-jaune-etiquette); stroke: none; }
.schema-processus .pointe-creuse { fill: var(--fond); }

.schema-processus .onglet-tirets {
  stroke-dasharray: 0.8 0.6;
}

.schema-processus .cadre-accepte {
  fill: none;
  stroke: var(--origine-vert-produit);
  stroke-width: 1;
}

.schema-processus .cadre-lavande {
  fill: none;
  stroke: var(--origine-lavande-cadre);
  stroke-width: 1;
}

.schema-processus .cadre-papiers {
  stroke-width: 1.5;
}

.schema-processus .cadre-informatique {
  stroke-width: 2;
}

.schema-processus .cadre-fin {
  fill: none;
  stroke: var(--texte);
  stroke-width: 0.25;
}

.schema-processus .trait-double-fleche {
  stroke: var(--origine-gris-trait);
  stroke-width: 0.3;
}

.schema-processus .trait-epais {
  stroke: var(--texte);
  stroke-width: 1.1;
}

.schema-processus .trait-gris {
  stroke-width: 0.3;
}

.schema-processus .trait-66 { stroke: var(--origine-gris-instruction); }
.schema-processus .trait-4c { stroke: var(--origine-gris-trait); }
.schema-processus .trait-33 { stroke: var(--origine-gris-33); }

.schema-processus .trait-fournisseur {
  stroke: var(--texte-non-conforme);
  stroke-width: 1;
}

.schema-processus .trait-client {
  stroke: var(--trait-service-production);
  stroke-width: 1;
}

.schema-processus .texte-clair { fill: var(--texte-inverse); }
.schema-processus .texte-accepte { fill: var(--texte-accepte); }
.schema-processus .texte-non-conforme { fill: var(--texte-non-conforme); }
.schema-processus .texte-client { fill: var(--texte-client); }
.schema-processus .chiffre-jaune { fill: var(--chiffre-jaune); }

.schema-processus .s4-texte { font-size: 3.1px; }
.schema-processus .s4-entete { font-size: 3.4px; }
.schema-processus .s4-boite { font-size: 4px; }
.schema-processus .s4-titre { font-size: 4.2px; }
.schema-processus .s4b-panneau { font-size: 2.9px; }
.schema-processus .s4b-onglet { font-size: 3.6px; }
.schema-processus .s4b-etat { font-size: 4.6px; }
.schema-processus .s4b-etiquette { font-size: 4.5px; }
.schema-processus .s4c-texte { font-size: 3px; }
.schema-processus .s4c-lieu { font-size: 3.8px; fill: var(--texte-secondaire); }
.schema-processus .s4c-chiffre { font-size: 6px; }
.schema-processus .s4c-onglet { font-size: 3.2px; }
.schema-processus .s4c-extremite { font-size: 4.6px; }
.schema-processus .s4c-classeur { font-size: 3.8px; }
.schema-processus .s4c-ellipse { font-size: 3.5px; }
.schema-processus .s4c-client { font-size: 4.6px; }
.schema-processus .s4c-info { font-size: 2.8px; }
.schema-processus .s4c-enregistrement { font-size: 3.2px; }
.schema-processus .s4c-donnees { font-size: 2.85px; }

@media screen {
  .schema-processus .calque-cache {
    visibility: hidden;
  }

  .schema-processus .calque-attenue text {
    fill: var(--attenue-texte);
  }

  .schema-processus .calque-attenue .case-bleue,
  .schema-processus .calque-attenue .legende-bleue {
    fill: var(--attenue-bleu);
    stroke: var(--attenue-trait);
  }

  .schema-processus .calque-attenue .case-grise {
    fill: var(--attenue-gris);
    stroke: var(--attenue-trait);
  }

  .schema-processus .calque-attenue .case-verte {
    fill: var(--attenue-vert);
  }

  .schema-processus .calque-attenue .case-orange {
    fill: var(--attenue-orange);
  }

  .schema-processus .calque-attenue .case-jaune {
    fill: var(--attenue-jaune);
  }

  .schema-processus .calque-attenue .encadre-pointilles,
  .schema-processus .calque-attenue .trait-fin,
  .schema-processus .calque-attenue .trait-produit {
    stroke: var(--attenue-trait);
  }

  .schema-processus .calque-attenue .trait-information {
    stroke: var(--attenue-information);
  }

  .schema-processus .calque-attenue .cadre-processus,
  .schema-processus .calque-attenue .etiquette-processus,
  .schema-processus .calque-attenue .fleche-stockage {
    stroke: var(--attenue-trait);
  }

  .schema-processus .calque-attenue .fleche-stockage {
    fill: var(--attenue-jaune);
  }

  .schema-processus .calque-attenue .forme,
  .schema-processus .calque-attenue .cadre-fin,
  .schema-processus .calque-attenue .trait-gris,
  .schema-processus .calque-attenue .trait-epais,
  .schema-processus .calque-attenue .trait-double-fleche {
    stroke: var(--attenue-trait);
  }

  .schema-processus .calque-attenue .forme:not(.blanc):not(.pointe-creuse) {
    fill: var(--attenue-gris);
  }

  .schema-processus .calque-attenue .lavande,
  .schema-processus .calque-attenue .lavande-ombre,
  .schema-processus .calque-attenue .lavande-cadre {
    fill: var(--attenue-bleu);
  }

  .schema-processus .calque-attenue .jaune-etiquette {
    fill: var(--attenue-jaune);
  }

  .schema-processus .calque-attenue .cadre-accepte {
    stroke: var(--attenue-vert);
  }

  .schema-processus .calque-attenue .cadre-lavande,
  .schema-processus .calque-attenue .lavande-cadre {
    stroke: var(--attenue-bleu);
  }

  .schema-processus .calque-attenue .trait-fournisseur,
  .schema-processus .calque-attenue .trait-client {
    stroke: var(--attenue-trait);
  }

  .schema-flux .calque-attenue .s5-forme,
  .schema-flux .calque-attenue .s5-carte {
    fill: var(--attenue-gris);
  }

  .schema-flux .calque-attenue .s5-sol,
  .schema-flux .calque-attenue .s5-cerclee,
  .schema-flux .calque-attenue .s5-cadre,
  .schema-flux .calque-attenue .s5-encadre,
  .schema-flux .calque-attenue .s5-carte,
  .schema-flux .calque-attenue .s5-trait,
  .schema-flux .calque-attenue .s5-periode {
    stroke: var(--attenue-trait);
  }

  .schema-flux .calque-attenue .s5-encadre,
  .schema-flux .calque-attenue .s5-periode {
    fill: var(--fond);
  }

  .schema-phases .calque-attenue text {
    fill: var(--texte);
  }
}

.sequence-etapes {
  list-style: none;
  padding: 0;
  max-width: var(--largeur-texte);
}

.sequence-etapes > li {
  margin: var(--espace-4) 0;
  padding: 0 0 0 var(--espace-3);
  border-left: 3px solid var(--bandeau-parcours);
}

.sequence-etapes > li > h3 {
  margin-top: 0;
}

.sequence-active .sequence-etapes > li {
  border-left-color: var(--lien-parcours);
}

.etape-cachee {
  display: none;
}

.sequence-question {
  padding: var(--espace-2) var(--espace-3);
  background: var(--bandeau-parcours);
}

.sequence-commandes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--espace-2) var(--espace-3);
  margin: var(--espace-3) 0;
}

.sequence-commandes button {
  font: inherit;
  font-weight: 700;
  padding: var(--espace-2) var(--espace-3);
  border: 2px solid var(--lien-parcours);
  border-radius: var(--rayon);
  background: var(--lien-parcours);
  color: var(--texte-inverse);
  cursor: pointer;
}

.sequence-commandes button:disabled {
  background: var(--fond);
  color: var(--texte-secondaire);
  border-color: var(--bordure-legere);
  cursor: default;
}

.sequence-commandes button:focus-visible {
  outline: 3px solid var(--texte);
  outline-offset: 2px;
}

.sequence-position {
  font-weight: 700;
}

.entete-page {
  padding: var(--espace-3) 0 0;
}

.section-page,
.glossaire {
  max-width: var(--largeur-texte);
}

.glossaire {
  margin: var(--espace-3) 0 var(--espace-5);
}

.glossaire-entree {
  padding: var(--espace-2) 0;
  border-bottom: 1px solid var(--bordure-legere);
}

.glossaire-entree dt {
  font-weight: 700;
}

.glossaire-entree dfn {
  font-style: normal;
}

.glossaire-entree dd {
  margin: var(--espace-1) 0 0;
}

.glossaire-entree dd p {
  margin: 0;
}

.glossaire-renvoi {
  font-size: 0.875rem;
  color: var(--texte-secondaire);
}

.glossaire-entree:target {
  background: var(--page-visee);
}

.lien-glossaire {
  text-decoration-style: dotted;
}

.fiche-mode-emploi {
  max-width: var(--largeur-texte);
}

.fiche-feuille {
  margin: var(--espace-4) 0;
  padding: var(--espace-3);
  border: 1px solid var(--bordure-legere);
  background: var(--fond);
}

.fiche-titre-imprime {
  margin: 0 0 var(--espace-2);
  font-size: 1.2rem;
  font-weight: 700;
}

.fiche-entete {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espace-2) var(--espace-4);
}

.fiche-entete div {
  display: flex;
  flex: 1 1 12rem;
  gap: var(--espace-2);
}

.fiche-entete dt {
  font-weight: 700;
}

.fiche-entete dd {
  flex: 1;
  margin: 0;
  border-bottom: 1px solid var(--texte);
  min-height: 1.4em;
}

.fiche-schema {
  max-width: 100%;
  overflow-x: auto;
}

.schema-processus .fiche-libelle {
  font-size: 2.4px;
}

.fiche-questions {
  font-size: 0.875rem;
  padding-left: var(--espace-4);
}

.fiche-questions li {
  margin-bottom: var(--espace-2);
}

.fiche-etape {
  display: block;
  font-weight: 700;
}

.tableau-tri th,
.tableau-tri td {
  font-size: 0.8rem;
}

.tableau-tri td {
  height: 2.2rem;
}

.tableau-tri .case-cocher {
  width: 2rem;
}

.tableau-tri thead tr:first-child th:first-child {
  width: 30%;
}

.tableau-tri thead tr:first-child th:nth-last-child(2) {
  width: 22%;
}

.tableau-tri thead tr:first-child th:last-child {
  width: 28%;
}

.tableau-tri .en-tete-vertical {
  width: 2rem;
  vertical-align: bottom;
  text-align: left;
}

.tableau-tri .en-tete-vertical span {
  display: inline-block;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  max-height: 8rem;
  line-height: 1.15;
}

.fiche .fiche-pied {
  font-size: 0.875rem;
}

.fiche-rubriques {
  margin-top: var(--espace-3);
}

.fiche-rubrique {
  border: 1px solid var(--origine-gris-trait);
  border-top: 0;
  padding: var(--espace-1) var(--espace-2);
}

.fiche-rubrique:first-child {
  border-top: 1px solid var(--origine-gris-trait);
}

.fiche-rubrique-nom {
  margin: 0;
  font-weight: 700;
}

.fiche-ligne {
  margin: 0;
  min-height: 1.6rem;
  border-bottom: 1px dotted var(--texte-secondaire);
}

.fiche-sous-rubriques {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espace-2) var(--espace-4);
  margin: var(--espace-1) 0;
}

.fiche-sous-rubriques div {
  display: flex;
  flex: 1 1 12rem;
  gap: var(--espace-2);
}

.fiche-sous-rubriques dd {
  flex: 1;
  margin: 0;
  border-bottom: 1px dotted var(--texte-secondaire);
  min-height: 1.6rem;
}

.fiche-instruction-etapes {
  margin: var(--espace-1) 0;
  padding-left: var(--espace-4);
}

.fiche-instruction-etapes li {
  min-height: 1.6rem;
  border-bottom: 1px dotted var(--texte-secondaire);
}

.fiche-identite .fiche-rubrique-nom {
  font-size: 1rem;
}

.fiche-lignes {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 0 var(--espace-2);
  margin: var(--espace-1) 0;
}

.fiche-lignes div {
  display: contents;
}

.fiche-lignes dt {
  align-self: end;
}

.fiche-lignes dd {
  margin: 0;
  min-height: 1.8rem;
  border-bottom: 1px dotted var(--texte-secondaire);
}

.tableau-suivi {
  table-layout: fixed;
  min-width: 40rem;
}

.tableau-suivi th,
.tableau-suivi td {
  font-size: 0.8rem;
}

.tableau-suivi td {
  height: 2.2rem;
}

.tableau-suivi .fiche-groupe td {
  height: auto;
  background: var(--bandeau-parcours);
}

.fiche-sous-titre {
  margin: var(--espace-2) 0 0;
  font-weight: 700;
}

.fiche-consigne {
  margin: var(--espace-2) 0;
  font-size: 0.875rem;
}

.sommaire-dossier a[aria-current="location"],
.sommaire-chapitre a[aria-current="location"] {
  color: var(--texte);
  font-weight: 700;
  text-decoration: none;
  border-left: 4px solid var(--accent-cadre);
  padding-left: var(--espace-1);
}

.page-origine.page-visee {
  background: var(--page-visee);
  transition: background-color 0.6s ease-out;
}

.page-origine {
  transition: background-color 1.2s ease-in;
}

.bouton-tout {
  font: inherit;
  font-weight: 700;
  padding: var(--espace-2) var(--espace-3);
  margin: 0 0 var(--espace-3);
  border: 2px solid var(--accent-texte);
  border-radius: var(--rayon);
  background: var(--fond);
  color: var(--accent-texte);
  cursor: pointer;
}

.bouton-tout:focus-visible,
.agrandissement button:focus-visible,
.agrandissement-cadre:focus-visible {
  outline: 3px solid var(--texte);
  outline-offset: 2px;
}

.agrandissement {
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--fond);
  color: var(--texte);
}

.agrandissement[open] {
  display: flex;
  flex-direction: column;
}

.agrandissement::backdrop {
  background: rgb(0 0 0 / 60%);
}

.agrandissement-barre {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--espace-2);
  padding: var(--espace-2) var(--espace-3);
  border-bottom: 1px solid var(--bordure-legere);
}

.agrandissement-titre {
  margin: 0;
  font-weight: 700;
}

.agrandissement-boutons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espace-2);
}

.agrandissement button {
  font: inherit;
  font-weight: 600;
  padding: var(--espace-1) var(--espace-3);
  border: 2px solid var(--accent-texte);
  border-radius: var(--rayon);
  background: var(--fond);
  color: var(--accent-texte);
  cursor: pointer;
}

.agrandissement-cadre {
  flex: 1;
  overflow: auto;
  background: var(--origine-gris-case);
}

.agrandissement-cadre img {
  display: block;
  max-width: none;
  margin: 0 auto;
  background: var(--fond);
}

.agrandissement-cadre svg {
  display: block;
  min-width: 0;
  max-width: none;
  margin: 0 auto;
  background: var(--fond);
}

.schema-agrandir {
  grid-column: 1 / -1;
  margin: var(--espace-2) 0;
}

.schema-agrandir button {
  font: inherit;
  font-weight: 600;
  padding: var(--espace-1) var(--espace-3);
  border: 2px solid var(--lien-parcours);
  border-radius: var(--rayon);
  background: var(--fond);
  color: var(--lien-parcours);
  cursor: pointer;
}

.schema-agrandir button:hover {
  text-decoration: underline;
}

.schema-agrandir button:focus-visible {
  outline: 3px solid var(--texte);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .page-origine,
  .page-origine.page-visee {
    transition: none;
  }
}

.facsimile {
  margin: 0 0 var(--espace-3);
}

.facsimile > summary {
  cursor: pointer;
  padding: var(--espace-2) 0;
  color: var(--accent-texte);
  font-weight: 600;
}

.facsimile-lien {
  display: block;
  max-width: 40rem;
}

.facsimile-lien img {
  display: block;
  width: 100%;
  border: 1px solid var(--bordure-legere);
  background: var(--fond);
}

.tableau-defilant {
  max-width: 100%;
  overflow-x: auto;
  margin: 0 0 var(--espace-3);
}

table {
  border-collapse: collapse;
  width: 100%;
}

th,
td {
  text-align: left;
  vertical-align: top;
  padding: var(--espace-2);
  border: 1px solid var(--bordure-legere);
}

thead th {
  background: var(--accent-bandeau);
}

.dossiers-voisins {
  max-width: var(--largeur-page);
  margin: 0 auto;
  padding: 0 var(--espace-3);
}

.dossiers-voisins ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--espace-3);
  list-style: none;
  margin: 0;
  padding: var(--espace-3) 0;
  border-top: 1px solid var(--bordure-legere);
}

.voisin-sens {
  display: block;
  font-size: 0.875rem;
  color: var(--texte-secondaire);
}

.voisin-suivant {
  margin-left: auto;
  text-align: right;
}

.pied-site {
  margin-top: var(--espace-5);
  padding: var(--espace-3);
  border-top: 4px solid var(--accent-cadre);
  font-size: 0.875rem;
  color: var(--texte-secondaire);
  text-align: center;
}

@media (min-width: 48rem) {
  h1 {
    font-size: 2rem;
  }

  main {
    padding: var(--espace-4) var(--espace-5);
  }

  .entete-site {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--espace-4);
    padding: var(--espace-3) var(--espace-5);
  }

  .site-nom {
    margin: 0;
  }

  .menu-groupe {
    position: relative;
  }

  .menu-chapitres,
  .menu-archives {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    width: max-content;
    max-width: 26rem;
    box-shadow: 0 0.25rem 0.75rem rgb(0 0 0 / 15%);
  }

  .menu-archives {
    width: 24rem;
  }

  .dossier-meta {
    grid-template-columns: repeat(3, auto);
    justify-content: start;
  }

  .sommaire-dossier ol {
    columns: 2;
  }

  .dossiers-voisins,
  .chapitres-voisins {
    padding: 0 var(--espace-5);
  }

}

.visuellement-cache {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
