/* La surcouche du prototype. mizan.css vient de Lexia, inchangée. */
html, body { background: var(--mz-fond); }
body { margin: 0; }

.ruban { position: fixed; right: 16px; bottom: 14px; z-index: 40; background: var(--mz-encre);
  color: #fff; font-size: 12px; line-height: 1.45; padding: 7px 12px; border-radius: 999px;
  box-shadow: 0 8px 20px -10px rgba(0,0,0,.5); display: flex; gap: 8px; align-items: center; opacity: .85; }
.ruban span { opacity: .7; }

.avis { background: var(--mz-vert-clair); border: 1px solid var(--mz-vert-trait); color: var(--mz-vert);
  padding: 10px 14px; border-radius: 6px; font-size: 14px; margin: 0; }
.avis.error { background: var(--mz-rouge-clair); border-color: #f3c9c6; color: var(--mz-rouge); }
.avis.warning { background: var(--mz-ambre-clair); border-color: #e6c99a; color: var(--mz-ambre-fonce); }

.puce-m { font-family: var(--sans); font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums;
  color: var(--mz-encre-douce); background: var(--mz-champ); border-radius: 999px; padding: 4px 10px;
  display: inline-block; white-space: nowrap; }
.puce-m.vert { color: var(--mz-vert); background: var(--mz-vert-clair); }
.puce-m.ambre { color: var(--mz-ambre-fonce); background: var(--mz-ambre-clair); }
.puce-m.rouge { color: var(--mz-rouge); background: var(--mz-rouge-clair); }
.puce-m.encre { color: #fff; background: var(--mz-encre); }

/* Les matrices du tableau de bord, sur la grille de Lexia */
.page.tdb .cadre-tdb { flex: 0 0 auto; }
.page.tdb .cadre-matrice { max-height: none; }
main.page .matrice.avec-cases.actes .rang, main.page .matrice.avec-cases.actes .rang.entete,
main.page.js .matrice.avec-cases.actes .rang, main.page.tdb .matrice.avec-cases.actes .rang,
main.page.tdb.js .matrice.avec-cases.actes .rang.rang {
  grid-template-columns: 0 minmax(190px, 1.3fr) minmax(240px, 2.2fr) repeat(5, minmax(70px, .6fr)) 130px; gap: 0 4px; }
.matrice.actes { min-width: 900px; }
/* V2-27 · les deux parties du tableau de bord, chacune sous son titre */
.tdb-titre h2.etiquette { margin: 0; }
.tdb-compte-partie { font-family: var(--mono); font-size: 12px; color: var(--mz-encre-tenue); background: var(--mz-fond); border-radius: 10px; padding: 1px 8px; margin-left: 8px; }
main.vue-tableau .tdb-actes { margin-top: 18px; }
main.vue-colonnes .tdb-actes { display: none !important; }
.page.tdb .matrice.actes .rang, .page.tdb .matrice.appro .rang { height: auto; min-height: 52px; padding: 8px 20px; }
.acte-quoi a, .acte-quoi .sous { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.matrice .rang.client, .matrice .rang.mission { animation: none; }
.matrice.appro .rang, .matrice.appro .rang.entete {
  grid-template-columns: 0 minmax(190px, 1.5fr) repeat(10, 54px) 104px; }
.matrice.appro { min-width: 960px; }
.matrice .entete .case { font-size: 11px; letter-spacing: .03em; }
.acte-quoi { display: flex; flex-direction: column; gap: 2px; font-size: 14px; }
.acte-quoi .sous { font-size: 12px; color: var(--mz-encre-tenue); }
.retard { color: var(--mz-rouge); font-weight: 600; font-size: 12px; line-height: 1.3; }

/* La fiche : l'onglet des actes */
.liste-actes { display: flex; flex-direction: column; }
.acte-ligne { display: flex; gap: 14px; align-items: center; padding: 13px 4px; border-bottom: 1px solid var(--mz-trait); }
.acte-ligne:last-child { border-bottom: 0; }
.acte-ligne .t { font-size: 15px; font-weight: 500; }
.acte-ligne .d { font-size: 13px; color: var(--mz-encre-tenue); }
.acte-ligne .droite { margin-left: auto; display: flex; gap: 10px; align-items: center; flex: none; }
.ronds-acte { display: inline-flex; gap: 6px; align-items: center; }
.ronds-acte .rond { width: 10px; height: 10px; }

.choix-acte { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.carte-choix { border: 1px solid var(--mz-trait); border-radius: 8px; padding: 16px 18px; background: var(--mz-surface);
  display: flex; flex-direction: column; gap: 8px; text-align: left; font: inherit; color: inherit; text-decoration: none; }
.carte-choix:hover { border-color: var(--mz-vert); background: var(--mz-vert-clair); text-decoration: none; }
.carte-choix .t { font-size: 15px; font-weight: 600; }
.carte-choix .d { font-size: 13px; color: var(--mz-encre-douce); line-height: 1.5; }
.carte-choix .b { display: flex; gap: 6px; flex-wrap: wrap; }
.carte-choix.large { grid-column: 1 / -1; }

.bloc-carte { background: var(--mz-surface); border: 1px solid var(--mz-trait); border-radius: 8px;
  padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
.bloc-carte > h2 { margin: 0; font-size: 18px; }
.bloc-carte > h3 { margin: 0; }
.rangee { display: flex; gap: 14px; flex-wrap: wrap; width: 100%; }
.rangee > div { flex: 1 1 210px; }
.sourdine { color: var(--mz-encre-tenue); }
.note-bas { font-size: 13px; color: var(--mz-encre-tenue); margin: 0; }
.coche-ligne { display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--mz-survol-doux); }
.coche-ligne:last-child { border-bottom: 0; }
.coche-ligne input { margin-top: 3px; width: 16px; height: 16px; flex: none; }
.coche-ligne label { font-weight: 500; cursor: pointer; margin: 0; }
.coche-ligne small { display: block; font-weight: 400; color: var(--mz-encre-tenue); font-size: 13px; margin-top: 2px; }
form.plein { width: 100%; }
form.ligne { flex-direction: row; align-items: center; gap: 10px; flex-wrap: wrap; }
.deux-blocs { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: start; }
.deux-blocs.egal { grid-template-columns: 1fr 1fr; }
@media (max-width: 1080px) { .deux-blocs, .deux-blocs.egal { grid-template-columns: 1fr; } }

/* L'écran d'une opération : ce qui s'ajoute sous la question */
.tiroirs { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; padding: 0 26px 26px; }
.tiroir-op { background: var(--mz-surface); border: 1px solid var(--mz-trait); border-radius: 8px; padding: 14px 16px;
  display: flex; flex-direction: column; gap: 10px; }
.tiroir-op h4 { margin: 0; font-size: 12px; color: var(--mz-encre-tenue); font-weight: 600; }
.tiroir-op ul { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.6; }
.tiroir-op .doc { display: flex; gap: 8px; align-items: center; font-size: 14px; padding: 6px 0; border-bottom: 1px solid var(--mz-survol-doux); }
.tiroir-op .doc:last-child { border-bottom: 0; }
.tiroir-op .doc .droite { margin-left: auto; display: flex; gap: 6px; }
.depot { border: 1px dashed var(--mz-trait-fort); border-radius: 8px; padding: 12px 14px; background: var(--mz-tete);
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 14px; }
.depot input[type=file] { font-size: 13px; max-width: 220px; }
.proposition { background: var(--mz-vert-clair); border: 1px solid var(--mz-vert-trait); border-radius: 8px; padding: 10px 14px;
  display: flex; flex-direction: column; gap: 4px; }
.proposition .q { font-size: 13px; color: var(--mz-encre-douce); }
.proposition .v { font-size: 15px; font-weight: 600; }
.proposition .s { font-size: 12px; color: var(--mz-vert); }
.proposition form { flex-direction: row; gap: 8px; align-items: center; margin-top: 6px; }
.proposition input[type=text] { max-width: 220px; padding: 4px 8px; font-size: 13px; }
.ecran-mission .fil-des-reponses .prise .par { font-size: 12px; color: var(--mz-encre-tenue); }
.ecran-mission .fil-des-reponses .prise.du-dossier { opacity: .8; }
.ecran-mission.v2 .rail .rdv.franchi .puce { background: var(--mz-vert); border-color: var(--mz-vert); }
.saisie-q { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.saisie-q input[type=text], .saisie-q input[type=date] { max-width: 320px; }
.compteur-q { font-family: var(--mono); font-size: 12px; color: var(--mz-encre-tenue); }

/* L'analyse d'un modèle déposé et l'éditeur */
.acte-papier { background: var(--mz-surface); border: 1px solid var(--mz-trait); border-radius: 8px;
  padding: 30px 34px; font-size: 14px; line-height: 1.9; max-height: 680px; overflow: auto; }
.acte-papier p { margin: 0 0 10px; }
.acte-papier .centre { text-align: center; }
.acte-papier .titre { text-align: center; font-weight: 600; margin: 16px 0 12px; }
.acte-papier table { width: 100%; border-collapse: collapse; margin: 6px 0 12px; font-size: 13px; }
.acte-papier td, .acte-papier th { border: 1px solid var(--mz-trait-fort); padding: 5px 8px; text-align: left; }
.acte-papier .tableau-repete { outline: 2px solid var(--mz-ambre); outline-offset: 2px; border-radius: 4px; }
.acte-papier .marque-repete { font-family: var(--mono); font-size: 11px; color: var(--mz-ambre-fonce); background: var(--mz-ambre-clair);
  border-radius: 4px; padding: 2px 6px; margin-right: 6px; }
.acte-papier .marque-si { font-family: var(--mono); font-size: 11px; color: var(--mz-encre); background: var(--mz-champ);
  border-radius: 4px; padding: 2px 6px; margin-right: 6px; }
mark, .jeton { background: var(--mz-vert-clair); color: var(--mz-vert); border-radius: 4px; padding: 1px 5px;
  font-weight: 500; border: 1px solid var(--mz-vert-trait); font-size: 13px; white-space: nowrap; }
mark.doute, .jeton.doute { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); border-color: #e6c99a; }
mark.mien, .jeton.mien, .jeton.demande { background: var(--mz-champ); color: var(--mz-encre); border-color: var(--mz-trait-fort); }
.jeton.demande { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); border-color: #e6c99a; }
.jeton.repete { background: var(--mz-survol); color: var(--mz-encre-douce); border-color: var(--mz-eteint); }
mark { cursor: pointer; }
mark.choisi { outline: 2px solid var(--mz-vert); }
.repere { display: flex; gap: 11px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--mz-trait); }
.repere:last-child { border-bottom: 0; }
.repere .pt { width: 9px; height: 9px; border-radius: 50%; background: var(--mz-vert); margin-top: 6px; flex: none; }
.repere.doute .pt { background: var(--mz-ambre); }
.repere.mien .pt { background: #3b6fd4; }
.repere .t { font-size: 14px; font-weight: 500; }
.repere .s { font-size: 13px; color: var(--mz-encre-tenue); }
.repere .droite { margin-left: auto; flex: none; }
.repere details { width: 100%; }
.repere details summary { cursor: pointer; font-size: 13px; color: var(--mz-vert); list-style: none; }
.repere details form { margin-top: 8px; flex-direction: row; gap: 8px; flex-wrap: wrap; align-items: center; }
.repere details select { max-width: 260px; }
.legende-marques { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; color: var(--mz-encre-douce); }
.legende-marques i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; margin-right: 6px; vertical-align: -1px;
  border: 1px solid transparent; }

.donnees { border: 1px solid var(--mz-trait); border-radius: 6px; background: var(--mz-surface); max-height: 480px; overflow: auto; }
.donnees h4 { margin: 0; padding: 7px 12px; background: var(--mz-tete); font-size: 12px;
  color: var(--mz-encre-tenue); position: sticky; top: 0;
  border-bottom: 1px solid var(--mz-trait); font-weight: 500; }
.donnees button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 8px 12px; font: inherit;
  font-size: 14px; cursor: pointer; border-bottom: 1px solid var(--mz-survol-doux); color: var(--mz-encre); }
.donnees button:hover { background: var(--mz-vert-clair); color: var(--mz-vert); }
.donnees button small { display: block; font-size: 12px; color: var(--mz-encre-tenue); }
.donnees .filtre { padding: 8px 12px; border-bottom: 1px solid var(--mz-trait); }
.donnees .filtre input { width: 100%; padding: 6px 9px; font-size: 13px; }

.corps-modele { width: 100%; min-height: 380px; max-height: 560px; overflow: auto; background: var(--mz-surface);
  border: 1px solid var(--mz-trait); border-radius: 7px; padding: 18px 22px; font-size: 14px; line-height: 2; }
.corps-modele:focus { outline: 2px solid var(--mz-vert); outline-offset: 1px; }
.corps-modele p { margin: 0 0 8px; padding-left: 8px; border-left: 3px solid transparent; }
.corps-modele p[data-style=centre] { text-align: center; }
.corps-modele p[data-style=titre] { text-align: center; font-weight: 600; margin-top: 12px; }
.corps-modele p[data-repete]:not([data-repete=""]) { border-left-color: var(--mz-encre-douce); background: var(--mz-survol-doux); }
.corps-modele p[data-si]:not([data-si=""]) { border-left-color: var(--mz-trait-fort); background: var(--mz-tete); }
.corps-modele p.courant { border-left-color: var(--mz-vert); }
.corps-modele table { width: 100%; border-collapse: collapse; margin: 6px 0 12px; font-size: 13px; }
.corps-modele td, .corps-modele th { border: 1px solid var(--mz-trait-fort); padding: 5px 8px; }
.barre-para { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13px; color: var(--mz-encre-douce);
  padding: 8px 10px; background: var(--mz-tete); border: 1px solid var(--mz-trait); border-radius: 6px; }
.barre-para select { padding: 4px 8px; font-size: 13px; max-width: 240px; }
.barre-para .l { font-size: 12px; }
.apercu-acte { background: var(--mz-surface); border: 1px solid var(--mz-trait); border-radius: 8px; padding: 26px 30px;
  font-size: 14px; line-height: 1.8; max-height: 560px; overflow: auto; }
.apercu-acte p { margin: 0 0 10px; }
.apercu-acte .centre, .apercu-acte .titre { text-align: center; }
.apercu-acte .titre { font-weight: 600; margin-top: 14px; }
.apercu-acte .manque { color: var(--mz-ambre-fonce); background: var(--mz-ambre-clair); border-radius: 3px; padding: 0 4px; }
.fiche-champ { background: var(--mz-tete); border: 1px solid var(--mz-trait-fort); border-radius: 8px; padding: 12px 14px; display: none; flex-direction: column; gap: 8px; }
.fiche-champ.ouverte { display: flex; }
.fiche-champ input[type=text], .fiche-champ select { padding: 6px 9px; font-size: 13px; }
.versions { font-size: 13px; color: var(--mz-encre-douce); }
.versions li { margin: 3px 0; }

/* La fiche : le registre des statuts, la chronologie */
.articles { display: flex; flex-direction: column; gap: 10px; }
.article { border-left: 3px solid var(--mz-trait-fort); padding: 4px 12px; }
.article b { display: block; font-size: 14px; }
.article p { margin: 3px 0 0; font-size: 14px; color: var(--mz-encre-douce); line-height: 1.55; }
.chrono { display: flex; flex-direction: column; }
.chrono .ev { display: grid; grid-template-columns: 110px 1fr auto; gap: 14px; padding: 10px 4px; border-bottom: 1px solid var(--mz-trait); font-size: 14px; align-items: baseline; }
.chrono .ev:last-child { border-bottom: 0; }
.chrono .ev .d { font-family: var(--mono); font-size: 12px; color: var(--mz-encre-tenue); }
.chrono .ev .s { display: block; font-size: 13px; color: var(--mz-encre-tenue); }
.chrono .ev .q { font-size: 12px; color: var(--mz-encre-tenue); white-space: nowrap; }

/* L'administration */
.onglets-admin { display: flex; gap: 6px; flex-wrap: wrap; }
.onglets-admin a { font-size: 13px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--mz-trait-fort);
  background: var(--mz-surface); color: var(--mz-encre-douce); text-decoration: none; }
.onglets-admin a.ici { background: var(--mz-encre); color: #fff; border-color: var(--mz-encre); }
.onglets-admin a:hover { text-decoration: none; border-color: var(--mz-vert); color: var(--mz-vert); }

/* Audit du 2026-09-26 · les réponses proposées depuis la fiche, les contrôles, les familles de modèles */
.choix-dossier { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; width: 100%; }
.choix-dossier .l { font-size: 12px; color: var(--mz-encre-douce); margin-right: 4px; }
.saisie-q .ou { width: 100%; font-size: 13px; color: var(--mz-encre-douce); margin-top: 4px; }
.bandeau-controle.alerte { background: var(--mz-ambre-clair); border-color: #e6c99a; }
.bandeau-controle .chip.alerte { background: #b26a00; color: #fff; }
fieldset.famille { border: 1px solid var(--mz-trait); border-radius: 8px; padding: 6px 12px 8px; margin: 0 0 10px; }
fieldset.famille legend { font-size: 13px; font-weight: 600; padding: 0 6px; }
.du-dossier-plie { margin-top: 10px; border-top: 1px dashed var(--mz-trait); }
.du-dossier-plie summary { cursor: pointer; padding: 10px 12px; font-size: 13px; color: var(--mz-encre-douce); list-style: none; }
.du-dossier-plie summary::before { content: "▸ "; }
.du-dossier-plie[open] summary::before { content: "▾ "; }
.confirme-manques { display: flex; gap: 8px; align-items: center; font-size: 13px; color: #8a5300; font-weight: 400; }
.retirer-operation { display: flex; gap: 12px; align-items: center; padding: 6px 2px; }
.retirer-operation .mention { font-size: 12px; color: var(--mz-encre-douce); }
.liste-simple { margin: 0 0 8px; padding-left: 18px; font-size: 14px; line-height: 1.7; }
.donnees details.groupe-champs summary { cursor: pointer; list-style: none; }
.donnees details.groupe-champs summary h4 { display: inline-block; margin: 8px 0 4px; }
.donnees details.groupe-champs summary::before { content: "▸ "; font-size: 11px; color: var(--mz-encre-douce); }
.donnees details.groupe-champs[open] summary::before { content: "▾ "; }
.propositions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.tiroir-op form.ligne { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.tiroir-op form.depot label { display: flex; gap: 6px; align-items: center; font-size: 13px; font-weight: 400; }
/* La carte de la question ne se coupe pas : elle prend sa hauteur, les tiroirs suivent. */
.ecran-mission.v2 .carte-seance { overflow: visible; height: auto; max-height: none; }
.ecran-mission.v2 .seance-corps { overflow: visible; }
.ecran-mission.v2 .carte-q .pied-q { margin-top: 12px; }
.tiroir-op .doc .sourdine { white-space: nowrap; }
.retirer-operation { grid-column: 1 / -1; justify-content: flex-start; }
/* La colonne principale défile, ses cartes gardent leur hauteur : rien ne se coupe ni ne se chevauche. */
.ecran-mission.v2 main.etape-en-cours { overflow-y: auto; overflow-x: hidden; }
.ecran-mission.v2 .carte-seance, .ecran-mission.v2 .seance-corps, .ecran-mission.v2 .carte-q,
.ecran-mission.v2 .tiroirs, .ecran-mission.v2 .retirer-operation, .ecran-mission.v2 .bandeau-controle { flex: 0 0 auto; }

/* ==========================================================================
   L'éditeur de modèles d'actes, sur la maquette validée le 2026-09-26 :
   le texte à gauche, la plus grande place ; les champs à droite, dans un
   panneau qu'on élargit ; en haut, une ligne pour l'acte et la forme.
   Les cinq familles de champs sont des familles, pas des accents.
   ========================================================================== */
.page.editeur-modele { max-width: none; padding: 0 20px; gap: 0; }
.ed-barre { position: sticky; top: 0; z-index: 20; background: var(--mz-surface); border-bottom: 1px solid var(--mz-trait);
  display: flex; align-items: center; gap: 10px 18px; flex-wrap: wrap; padding: 10px 20px; margin: 0 -20px; min-height: 58px; }
.ed-retour { font-size: 13px; color: var(--mz-encre-douce); text-decoration: none; }
.ed-retour:hover { color: var(--mz-encre); }
.ed-acte { font-size: 16px; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.ed-version { font-size: 12px; color: var(--mz-encre-tenue); }
.ed-reglage { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--mz-encre-tenue); }
.ed-reglage select, .ed-reglage input[type=text] { border: 1px solid var(--mz-trait-fort); border-radius: 6px; background: var(--mz-surface);
  padding: 5px 8px; font-size: 13px; color: var(--mz-encre); max-width: 240px; }
.ed-onglets { display: inline-flex; background: var(--mz-champ); border-radius: 8px; padding: 3px; gap: 2px; }
.ed-onglets a, .ed-onglets button, .ed-onglets span { border: 0; background: transparent; border-radius: 6px; padding: 5px 11px; font-size: 13px;
  font-weight: 500; color: var(--mz-encre-douce); text-decoration: none; cursor: pointer; }
.ed-onglets [aria-current="true"], .ed-onglets [aria-pressed="true"] { background: var(--mz-surface); color: var(--mz-encre); box-shadow: 0 1px 2px rgba(28, 26, 22,.12); }
.ed-onglets .eteint { opacity: .45; cursor: not-allowed; }
.ed-espace { flex: 1 1 0; }
.ed-plan { --pc-largeur: 400px; display: grid; grid-template-columns: minmax(0, 1fr) 10px var(--pc-largeur); gap: 0 12px; align-items: start; }
.ed-zone { padding: 22px 0 80px; min-width: 0; }
.ed-note { max-width: 880px; margin: 0 auto 10px; font-size: 13px; color: var(--mz-encre-tenue); }
.ed-feuille { background: var(--mz-surface); border: 1px solid var(--mz-trait); border-radius: 4px; max-width: 880px; margin: 0 auto;
  padding: 48px 60px 64px; box-shadow: 0 12px 32px -20px rgba(28, 26, 22,.2);
  font: 15px/1.7 "Source Serif 4", "Times New Roman", Times, serif; color: #1d1f22; }
.ed-feuille .ligne-du-modele, .ed-feuille p { margin: 0 0 8px; padding: 2px 8px; border-radius: 4px; border: 1px solid transparent; }
.ed-feuille .ligne-du-modele:hover { background: #FBFBF9; }
.ed-feuille .ligne-du-modele:focus { outline: none; border-color: var(--mz-vert-trait); background: #F7FBF9; }
.ed-feuille .barre-condition { font: 500 12px/1.4 Geist, sans-serif; color: var(--mz-encre-douce); background: var(--mz-champ);
  border-radius: 4px; padding: 3px 8px; margin: 10px 0 6px; display: inline-block; }
.ed-feuille .barre-condition[data-genre=repete] { background: #F1ECFA; color: #4E3291; }
.ed-poignee { position: sticky; top: 80px; height: calc(100vh - 104px); margin-top: 22px; cursor: col-resize; display: grid; place-items: center; touch-action: none; }
.ed-poignee::before { content: ""; width: 3px; height: 44px; border-radius: 2px; background: var(--mz-trait-fort); }
.ed-poignee:hover::before, .ed-poignee.tire::before, .ed-poignee:focus-visible::before { background: var(--mz-vert); }
.ed-panneau { position: sticky; top: 80px; height: calc(100vh - 104px); margin-top: 22px; background: var(--mz-surface); border: 1px solid var(--mz-trait);
  border-radius: 10px; display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.ed-para { padding: 12px 14px; border-bottom: 1px solid var(--mz-trait); background: var(--mz-tete); display: grid; gap: 8px; }
.ed-para-tete { display: flex; gap: 8px; align-items: center; font-size: 12px; color: var(--mz-encre-tenue); }
.ed-para-tete strong { color: var(--mz-encre); font-size: 13px; }
.ed-para-reglages { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ed-para-reglages select { width: 100%; border: 1px solid var(--mz-trait-fort); border-radius: 6px; padding: 5px 8px; font-size: 13px; background: var(--mz-surface); }
.ed-para-reglages .large { grid-column: 1 / -1; }
.ed-pied { border-top: 1px solid var(--mz-trait); padding: 10px 14px; background: var(--mz-tete); font-size: 13px; color: var(--mz-encre-douce); display: grid; gap: 8px; }
.ed-message { position: fixed; right: 16px; bottom: 16px; z-index: 50; background: var(--mz-encre); color: #fff; border-radius: 8px; padding: 9px 13px;
  font-size: 13px; max-width: 360px; box-shadow: 0 8px 24px -8px rgba(0,0,0,.4); }
@media (max-width: 960px) {
  .ed-plan { grid-template-columns: minmax(0, 1fr); }
  .ed-poignee { display: none; }
  .ed-panneau { position: relative; top: 0; height: 70vh; }
  .ed-feuille { padding: 24px 16px; }
}

/* Les champs dans le texte : cinq familles, les mêmes que dans le panneau. */
.pc-f-fiche, .ed-feuille .jeton.pc-f-fiche { background: #E3F1EC; color: #0B5849; border-color: #B9DCCF; }
.pc-f-formulaire { background: #FBEEDD; color: #7A3A08; border-color: #EACB9E; }
.pc-f-calcul { background: #EEEEEA; color: #4A4F57; border-color: #D2D2CB; }
.pc-f-repete { background: #F1ECFA; color: #4E3291; border-color: #D6C8EF; }
.pc-f-cabinet { background: #E8EEFB; color: #1C4B9C; border-color: #BFD0EE; }
.pc-f-inconnu { background: #fff; color: var(--mz-encre-douce); border-color: var(--mz-trait-fort); border-style: dashed; }
.ed-feuille .pastille-champ, .ed-feuille .jeton { display: inline; border-radius: 4px; padding: 0 4px; margin: 0 1px; border: 1px solid;
  font: 500 13px/1.6 Geist, sans-serif; white-space: nowrap; cursor: pointer; }
.ed-feuille .pastille-champ.choisi, .ed-feuille .jeton.choisi { outline: 2px solid var(--mz-encre); outline-offset: 1px; }
.ed-feuille .jeton-bloc { font: 500 11px/1.4 Geist, sans-serif; background: var(--mz-champ); color: var(--mz-encre-douce); border-radius: 4px; padding: 1px 6px; }

/* Le panneau des champs */
.pc-tete { padding: 12px 14px 8px; display: grid; gap: 8px; border-bottom: 1px solid var(--mz-trait); }
.pc-recherche input { width: 100%; border: 1px solid var(--mz-trait-fort); border-radius: 8px; padding: 8px 10px; font-size: 14px; background: var(--mz-surface); }
.pc-ligne { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.pc-ligne select { border: 1px solid var(--mz-trait-fort); border-radius: 6px; padding: 5px 8px; font-size: 13px; background: var(--mz-surface); max-width: 220px; }
.pc-compte { font-size: 12px; color: var(--mz-encre-tenue); font-variant-numeric: tabular-nums; }
.pc-origine { border: 1px solid var(--mz-trait); background: var(--mz-surface); border-radius: 999px; padding: 3px 9px 3px 7px; font-size: 12px;
  color: var(--mz-encre-douce); display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.pc-origine i { width: 9px; height: 9px; border-radius: 3px; border: 1px solid; display: inline-block; }
.pc-origine[aria-pressed="true"] { border-color: var(--mz-encre); color: var(--mz-encre); font-weight: 600; }
.pc-liste { overflow: auto; flex: 1 1 auto; padding-bottom: 20px; }
.pc-groupe > summary { list-style: none; position: sticky; top: 0; z-index: 1; background: var(--mz-surface); padding: 9px 14px 6px; cursor: pointer;
  font-size: 12px; color: var(--mz-encre-tenue); font-weight: 600; display: flex; gap: 6px;
  align-items: center; border-bottom: 1px solid var(--mz-trait); }
.pc-groupe > summary::-webkit-details-marker { display: none; }
.pc-groupe > summary::before { content: "▸"; font-size: 11px; transition: transform .15s; }
.pc-groupe[open] > summary::before { transform: rotate(90deg); }
.pc-n { margin-left: auto; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.pc-item { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 0 9px; padding: 0 10px 0 14px; border-bottom: 1px solid #F3F3EF; }
.pc-item:hover { background: #FAFAF7; }
.pc-pt { width: 8px; height: 8px; border-radius: 2px; border: 1px solid; }
.pc-ins-zone { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pc-ins { border: 0; background: none; text-align: left; padding: 7px 0; min-width: 0; font-size: 14px; line-height: 1.35; color: var(--mz-encre); cursor: pointer; }
.pc-ins:hover { color: var(--mz-vert); }
.pc-ex { display: block; font-size: 12px; color: var(--mz-encre-tenue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.pc-ecriture { display: inline-flex; flex: none; border: 1px solid var(--mz-trait); border-radius: 5px; overflow: hidden; }
.pc-ecriture button { border: 0; background: var(--mz-surface); padding: 1px 6px; font-size: 11px; color: var(--mz-encre-douce); cursor: pointer; }
.pc-ecriture button + button { border-left: 1px solid var(--mz-trait); }
.pc-ecriture button:hover { background: var(--mz-encre); color: #fff; }
.pc-aide { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--mz-trait-fort); background: var(--mz-surface); font-size: 12px;
  font-weight: 600; color: var(--mz-encre-tenue); display: grid; place-items: center; padding: 0; cursor: pointer; opacity: .75; }
.pc-item:hover .pc-aide, .pc-aide[aria-expanded="true"] { opacity: 1; color: var(--mz-encre); }
.pc-aide[aria-expanded="true"] { background: var(--mz-encre); border-color: var(--mz-encre); color: #fff; }
.pc-explication { grid-column: 2 / -1; margin: 0 0 9px; padding: 8px 10px; background: var(--mz-tete); border: 1px solid var(--mz-trait);
  border-radius: 7px; font-size: 13px; line-height: 1.45; color: var(--mz-encre-douce); display: grid; gap: 2px; }
.pc-explication b { color: var(--mz-encre); }
.pc-explication.pc-large { grid-column: 1 / -1; margin-left: 15px; }
.pc-q { color: var(--mz-encre); font-style: italic; }
.pc-carte { padding: 8px 10px 10px 14px; border-bottom: 1px solid #F3F3EF; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 9px; }
.pc-titre-l { font-size: 14px; line-height: 1.35; display: flex; gap: 7px; align-items: baseline; flex-wrap: wrap; }
.pc-titre-l::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; border: 1px solid #D6C8EF; background: #F1ECFA; }
.pc-tableau { margin-left: auto; border: 1px solid #D6C8EF; background: var(--mz-surface); color: #4E3291; border-radius: 5px; padding: 1px 7px; font-size: 12px; cursor: pointer; }
.pc-colonnes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 5px; padding-left: 15px; }
.pc-colonnes button { border: 1px solid #D6C8EF; background: #F1ECFA; color: #4E3291; border-radius: 4px; padding: 2px 7px; font-size: 12px; font-weight: 500; cursor: pointer; }
.pc-colonnes button:hover { background: #E6DDF7; }
.pc-vide { padding: 28px 16px; color: var(--mz-encre-tenue); font-size: 13px; text-align: center; }
.pc-bulle { position: absolute; z-index: 60; width: 360px; max-width: calc(100vw - 32px); background: var(--mz-surface); border: 1px solid var(--mz-trait-fort);
  border-radius: 10px; box-shadow: 0 12px 32px -12px rgba(28, 26, 22,.3); padding: 12px 14px; font-size: 13px; color: var(--mz-encre-douce); display: grid; gap: 8px; }
.pc-bulle .pc-explication { margin: 0; }
.pc-bulle-t { font-size: 14px; font-weight: 600; color: var(--mz-encre); display: flex; gap: 7px; align-items: center; }
.pc-bulle-t i { width: 9px; height: 9px; border-radius: 2px; border: 1px solid; flex: none; }
.pc-bulle-gestes { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pc-bulle-gestes button { border: 1px solid var(--mz-trait-fort); background: var(--mz-surface); border-radius: 6px; padding: 4px 9px; font-size: 12px; cursor: pointer; }
.pc-bulle-gestes button[aria-pressed="true"] { background: var(--mz-encre); border-color: var(--mz-encre); color: #fff; }
/* Le texte ne défile pas dans une boîte : c'est la page qui défile. L'ancienne
   règle de `.texte-du-modele` le bornait à une hauteur fixe. */
.ed-feuille.texte-du-modele { max-height: none; height: auto; overflow: visible; }
.pc-ins { display: block; }
.ed-reglage input[type=text] { width: 170px; }
.ed-barre .btn { padding: 6px 12px; }
.ed-type { background: var(--mz-champ); color: var(--mz-encre); border-radius: 6px; padding: 4px 9px; font-size: 13px; }
.ed-feuille table.tableau-modele { width: 100%; border-collapse: collapse; margin: 6px 0 14px; font: 14px/1.5 "Source Serif 4", "Times New Roman", serif; }
.ed-feuille table.tableau-modele td { border: 1px solid #cfcfc8; padding: 5px 8px; vertical-align: top; }
.ed-feuille table.tableau-modele tr:first-child td { font-weight: 600; background: var(--mz-tete); }
.ed-feuille table.tableau-modele tr.repetee td { background: #FAF8FE; }
.ed-feuille p.courant { border-color: var(--mz-vert-trait); background: #F7FBF9; }
.ed-feuille p[data-repete]:not([data-repete=""]) { background: #FAF8FE; border-left: 3px solid #D6C8EF; }
.ed-feuille p[data-repete]:not([data-repete=""])::before { content: "une ligne par élément"; display: block; font: 500 11px/1.4 Geist, sans-serif; color: #4E3291; }
.ed-feuille p[data-si]:not([data-si=""]) { border-left: 3px dotted var(--mz-trait-fort); }
.ed-feuille p[data-style=centre] { text-align: center; }
.ed-feuille p[data-style=titre] { text-align: center; font-weight: 600; }
.ed-feuille:focus { outline: none; }
.ed-pied .fiche-champ { display: none; gap: 8px; }
.ed-pied .fiche-champ.ouverte { display: grid; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ed-reglage[hidden], .ed-barre [hidden] { display: none; }
.ed-para-reglages select { min-width: 0; }
.pc-ligne select { min-width: 0; }
.ed-feuille.corps-modele { max-height: none; min-height: 480px; height: auto; overflow: visible; width: auto; }
.ed-feuille.corps-modele p { max-width: none; }
.ed-feuille .jeton.doute { border-style: dashed; border-color: #B4530A; }
.ed-bilan { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); border-radius: 8px; padding: 8px 12px; }
.pc-titre-section { padding: 12px 14px 4px; font-size: 12px; font-weight: 600; color: var(--mz-encre); border-top: 1px solid var(--mz-trait); }
.pc-section > summary { color: var(--mz-vert-fonce); background: var(--mz-vert-clair); }
.pc-note { margin: 6px 14px 8px; font-size: 12px; color: var(--mz-encre-tenue); }
.pc-autre .pc-ins::after, .pc-autre.pc-carte .pc-titre-l::after { content: "autre acte"; margin-left: 6px; font-size: 11px; color: var(--mz-encre-tenue);
  border: 1px solid var(--mz-trait-fort); border-radius: 4px; padding: 0 5px; }
.pc-ressemble { display: grid; gap: 4px; font-size: 12px; }
.pc-ressemble button { text-align: left; border: 1px solid var(--mz-trait); background: var(--mz-surface); border-radius: 6px; padding: 4px 8px; cursor: pointer; }
.pc-ressemble button:hover { border-color: var(--mz-vert); }
/* Les boutons de la bulle héritaient d'une couleur blanche : texte blanc sur
   fond blanc sous Safari. Leur couleur est posée, pas héritée. 2026-09-26. */
.pc-bulle { color: var(--mz-encre-douce); }
.pc-bulle-gestes button { color: var(--mz-encre); background: var(--mz-surface); font: 500 12px/1.3 Geist, sans-serif; }
.pc-bulle-gestes button:hover { background: var(--mz-survol); }
.pc-bulle-gestes button[aria-pressed="true"] { color: #fff; background: var(--mz-encre); }
.pc-bulle-gestes span { color: var(--mz-encre-douce); }
.ed-semblables { display: grid; gap: 6px; font-size: 13px; color: var(--mz-ambre-fonce); background: var(--mz-ambre-clair); border-radius: 7px; padding: 8px 10px; }
.ed-semblables[hidden] { display: none; }
.ed-semblables .btn { justify-self: start; }

/* Othmane, le 2026-09-26 : « quand ma souris passe sur une case, c'est vert
   foncé, on ne voit plus rien ». La règle générale `button:hover` de Lexia
   peint tout bouton en vert foncé ; dans l'éditeur, le survol est vert clair.
   Le bouton d'action principal garde son vert, son texte blanc se lit. */
.ed-panneau button:hover, .ed-onglets button:hover, .pc-bulle button:hover,
.ed-zone button:hover, .ed-para button:hover, .ed-semblables button:hover {
  background: var(--mz-vert-clair); border-color: var(--mz-vert-trait); color: var(--mz-vert-fonce); }
.pc-ins:hover { background: transparent; border-color: transparent; }
.pc-item:hover { background: #F3F9F6; }
.pc-bulle-gestes button[aria-pressed="true"]:hover, .ed-onglets [aria-pressed="true"]:hover { background: var(--mz-encre); color: #fff; }
.ed-barre .btn-plein:hover { background: var(--mz-vert-fonce); color: #fff; }
/* La bulle se cache vraiment : son `display: grid` passait devant `hidden`,
   et elle restait figée à l'écran. */
.pc-bulle[hidden] { display: none; }
.ed-repeter { display: grid; gap: 6px; font-size: 13px; color: #4E3291; background: #F6F2FC; border-radius: 7px; padding: 8px 10px; }
.ed-repeter[hidden] { display: none; }
.ed-repeter .choix { display: flex; flex-wrap: wrap; gap: 5px; }
.ed-repeter button { border: 1px solid #D6C8EF; background: var(--mz-surface); color: #4E3291; border-radius: 6px; padding: 3px 8px; font-size: 12px; cursor: pointer; text-align: left; }
/* Un onglet de forme pris se voit : vert clair, coché. Pris, il ressemblait à
   un onglet vide, et Othmane croyait qu'aucune forme n'était choisie. */
.ed-onglets [aria-pressed="true"], .ed-onglets [aria-current="true"] { background: var(--mz-vert-clair); color: var(--mz-vert-fonce); box-shadow: inset 0 0 0 1px var(--mz-vert-trait); }
.ed-onglets [aria-pressed="true"]::before, .ed-onglets [aria-current="true"]::before { content: "✓ "; font-weight: 600; }
.ed-onglets [aria-pressed="false"] { color: var(--mz-encre-tenue); }
.ed-onglets [aria-pressed="true"]:hover { background: var(--mz-vert-clair); color: var(--mz-vert-fonce); }
.ed-probable { display: grid; gap: 8px; }
.ed-probable .btn { justify-self: start; }
.choix-approbation { display: grid; gap: 8px; margin-bottom: 10px; }
.choix-approbation .coche-ligne { display: flex; gap: 8px; align-items: flex-start; }
.documents-a-la-carte { border: 1px solid var(--mz-trait); border-radius: 8px; padding: 10px 12px; display: grid; gap: 4px; margin: 0 0 10px; }
.documents-a-la-carte[disabled] { opacity: .5; }
.documents-a-la-carte .coche-ligne { display: flex; gap: 8px; align-items: center; font-weight: 400; }

/* ==========================================================================
   Lexia V2 · lot 1, le tableau de bord en trois colonnes.
   Maquette https://claude.ai/artifact/XwJV2TgDXHHqbiCKjEc5uL
   ========================================================================== */
main.vue-colonnes .tdb-filtres,
main.vue-colonnes .cadre-tdb,
main.vue-tableau .tdb-v2-outils,
main.vue-tableau .tdb-colonnes { display: none !important; }
.vue-bascule { margin-left: auto; display: inline-flex; padding: 3px; gap: 2px; border-radius: 10px; background: var(--mz-champ); }
.vue-bascule button { height: 30px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; font: inherit; font-size: 13px; font-weight: 500; color: var(--mz-encre-douce); cursor: pointer; transition: background .15s, color .15s, box-shadow .15s; }
.vue-bascule button:hover { color: var(--mz-encre); }
main.vue-colonnes .vue-bascule [data-vue="colonnes"],
main.vue-tableau .vue-bascule [data-vue="etapes"] { background: #fff; color: var(--mz-encre); box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 0 0 1px var(--mz-trait); }

.tdb-v2-outils { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.tdb-v2-pastilles { display: flex; gap: 6px; flex-wrap: wrap; }
.filtre-v2 { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--mz-trait-fort); background: #fff; color: var(--mz-encre-douce); font-size: 13px; font-weight: 500; text-decoration: none; transition: all .15s; }
.filtre-v2:hover { border-color: #9A9A94; color: var(--mz-encre); text-decoration: none; }
.filtre-v2 b { font-weight: 600; color: var(--mz-encre); }
.filtre-v2.alerte b { color: var(--mz-rouge); }
.filtre-v2.pris { background: var(--mz-encre); border-color: var(--mz-encre); color: #fff; }
.filtre-v2.pris b { color: #fff; }
.tdb-v2-droite { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.campagne-v2 { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--mz-encre-douce); text-decoration: none; padding: 6px 10px; border-radius: 10px; }
.campagne-v2:hover { background: var(--mz-champ); text-decoration: none; }
.campagne-v2 .jauge { width: 90px; height: 6px; border-radius: 999px; background: var(--mz-champ); overflow: hidden; display: inline-block; }
.campagne-v2 .jauge i { display: block; height: 100%; background: var(--mz-vert); border-radius: inherit; }
.campagne-v2 b { color: var(--mz-encre); }
.filtrer-v2 { position: relative; }
.filtrer-v2 > summary { list-style: none; cursor: pointer; }
.filtrer-v2 > summary::-webkit-details-marker { display: none; }
.filtrer-v2 > summary::after { content: " ▾"; font-size: 11px; }
.filtrer-v2[data-actif] > summary { border-color: var(--mz-vert); color: var(--mz-vert); }
.filtrer-v2-fenetre { position: absolute; right: 0; top: calc(100% + 6px); width: 290px; z-index: 30; display: flex; flex-direction: column; gap: 10px; padding: 14px; background: #fff; border: 1px solid var(--mz-trait); border-radius: 12px; box-shadow: 0 18px 44px rgba(28, 26, 22,.14); animation: v2-ouvre .18s ease both; }
.filtrer-v2 label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 500; color: var(--mz-encre-douce); }
.filtrer-v2 select, .filtrer-v2 input { height: 34px; border: 1px solid var(--mz-trait-fort); border-radius: 8px; padding: 0 10px; font: inherit; font-size: 14px; background: #fff; }
.filtrer-v2 .gestes { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.filtrer-v2 .gestes a { font-size: 13px; color: var(--mz-encre-douce); }
@keyframes v2-ouvre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.tdb-colonnes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; margin-top: 4px; }
.col-v2 { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.col-v2-tete { display: flex; align-items: center; gap: 8px; padding: 0 4px 2px; }
.col-v2-tete h2 { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: -.005em; }
.col-v2-tete .compte { font-size: 12px; font-weight: 600; color: var(--mz-encre-douce); background: var(--mz-champ); border-radius: 999px; padding: 1px 8px; }
.col-v2-tete .pt-col { width: 8px; height: 8px; border-radius: 999px; background: var(--mz-encre); }
.col-v2.en_attente .pt-col { background: var(--mz-ambre); }
.col-v2.a_echeance .pt-col { background: var(--mz-rouge); }
.col-v2-tete .relancer-tout { margin-left: auto; }
.col-v2-tete .lien { border: 0; background: none; padding: 0; font: inherit; font-size: 13px; color: var(--mz-vert); cursor: pointer; }
.col-v2-tete .lien:hover { text-decoration: underline; }
.col-v2-vide { padding: 22px 12px; border: 1px dashed var(--mz-trait-fort); border-radius: 12px; text-align: center; font-size: 13px; color: var(--mz-encre-tenue); }
.carte-v2 { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; background: #fff; border: 1px solid var(--mz-trait); border-radius: 12px; transition: box-shadow .2s, border-color .2s, transform .2s; animation: v2-monte .3s ease both; animation-delay: calc(var(--i, 0) * 40ms); }
.carte-v2:hover { border-color: var(--mz-trait-fort); box-shadow: 0 8px 22px rgba(28, 26, 22,.07); transform: translateY(-1px); }
.carte-v2.retard { box-shadow: inset 3px 0 0 var(--mz-rouge); }
.carte-v2 .h { display: flex; align-items: center; gap: 8px; min-width: 0; }
.carte-v2 .nom { font-size: 14px; font-weight: 600; color: var(--mz-encre); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.carte-v2 .nom:hover { color: var(--mz-vert); text-decoration: none; }
.carte-v2 .av { flex: none; width: 22px; height: 22px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.carte-v2 .delai { margin-left: auto; flex: none; font-size: 12px; font-weight: 500; padding: 2px 8px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); white-space: nowrap; }
.carte-v2 .delai.r { background: var(--mz-rouge-clair); color: var(--mz-rouge); }
.carte-v2 .delai.a { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); }
.carte-v2 .delai.v { background: var(--mz-vert-clair); color: var(--mz-vert); }
.carte-v2 .op { font-size: 13px; color: var(--mz-encre-douce); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.carte-v2 .op em { font-style: normal; color: var(--mz-vert); }
.carte-v2 .g { display: flex; gap: 6px; margin-top: 6px; }
.carte-v2 .g .btn { height: 30px; padding: 0 12px; font-size: 13px; display: inline-flex; align-items: center; }
@keyframes v2-monte { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 1000px) { .tdb-colonnes { grid-template-columns: 1fr; } .tdb-v2-droite { margin-left: 0; } }

/* ==========================================================================
   Lexia V2 · lot 2, le portefeuille en frises.
   ========================================================================== */
main.vue-pf-frise .tdb-filtres,
main.vue-pf-frise .portefeuille-forme,
main.vue-pf-frise .cadre-tdb,
main.vue-pf-tableau .pf-v2 { display: none !important; }
main.vue-pf-frise .vue-bascule [data-vue-pf="frise"],
main.vue-pf-tableau .vue-bascule [data-vue-pf="tableau"] { background: #fff; color: var(--mz-encre); box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 0 0 1px var(--mz-trait); }
.pf-v2 { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.pf-v2-outils { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pf-v2-filtres { display: flex; gap: 6px; flex-wrap: wrap; }
.filtre-v2 { cursor: pointer; font-family: inherit; }
.pf-v2-droite { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.pf-v2-cherche { height: 32px; width: 200px; border-radius: 999px; border: 1px solid var(--mz-trait-fort); padding: 0 14px; font: inherit; font-size: 13px; background: #fff; }
.pf-v2-cherche:focus { outline: none; border-color: var(--mz-vert); box-shadow: 0 0 0 3px var(--mz-vert-clair); }
.pf-v2-cadre { background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; overflow: hidden; }
.pf-v2-t, .pf-v2-r { display: grid; grid-template-columns: minmax(180px, 1.3fr) 64px minmax(300px, 2.4fr) minmax(130px, .9fr) 32px; align-items: center; gap: 12px; padding: 0 16px; }
.pf-v2-t { height: 38px; background: var(--mz-tete); border-bottom: 1px solid var(--mz-trait); font-size: 12px; font-weight: 600; color: var(--mz-encre-tenue); }
.pf-v2-soc { border-top: 1px solid #EFEFEA; animation: v2-monte .3s ease both; animation-delay: calc(var(--i, 0) * 20ms); }
.pf-v2-soc:first-of-type { border-top: 0; }
.pf-v2-r { min-height: 58px; transition: background .15s; }
.pf-v2-soc:hover .pf-v2-r { background: var(--mz-survol-doux); }
.pf-v2-r .nomsoc { display: flex; flex-direction: column; min-width: 0; text-decoration: none; color: var(--mz-encre); }
.pf-v2-r .nomsoc b { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-v2-r .nomsoc:hover b { color: var(--mz-vert); }
.pf-v2-r .nomsoc small { font-size: 12px; color: var(--mz-encre-tenue); }
.pf-v2-r .a-confirmer { color: var(--mz-ambre-fonce); }
.pf-v2-r .equipe { display: flex; gap: 4px; }
.pf-v2-r .av, .pf-v2-acte .av { width: 24px; height: 24px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.pf-v2-r .av.manque { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); }
.pf-frise, .pf-frise4 { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); align-items: center; }
.pf-frise4 { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 220px; }
.pf-frise.tete span { text-align: center; font-size: 11px; letter-spacing: .02em; }
.pf-frise .fp, .pf-frise4 .fp { position: relative; display: flex; justify-content: center; align-items: center; height: 28px; }
.pf-frise .fp + .fp::before, .pf-frise4 .fp + .fp::before { content: ""; position: absolute; right: calc(50% + 9px); left: calc(-50% + 9px); top: 50%; height: 2px; background: var(--mz-trait); border-radius: 2px; }
.pf-frise .fp.f + .fp.f::before, .pf-frise .fp.f + .fp.e::before, .pf-frise .fp.f + .fp.v::before { background: var(--mz-vert); }
.pf-v2 .pt { display: inline-block; width: 12px; height: 12px; border-radius: 999px; border: 2px solid #C5C5BF; background: #fff; box-sizing: border-box; transition: transform .18s cubic-bezier(.2,.8,.2,1); }
.pf-v2 .pt.f { background: var(--mz-vert); border-color: var(--mz-vert); }
.pf-v2 .pt.e { border-color: var(--mz-ambre); }
.pf-v2 .pt.r { background: var(--mz-rouge); border-color: var(--mz-rouge); }
.pf-v2 .pt.v { border-color: var(--mz-vert); box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 6px var(--mz-vert-clair); }
.pf-v2 .pt.so { width: 10px; height: 2px; border: 0; border-radius: 2px; background: #C5C5BF; }
.pf-v2 .pt-btn { display: inline-flex; padding: 6px; border-radius: 999px; line-height: 0; }
.pf-v2 .pf-v2 .pt-btn:hover .pt, .pf-v2 .pt-btn:focus-visible .pt { transform: scale(1.55); }
.pf-v2 .pt-btn:focus-visible { outline: 2px solid var(--mz-vert); outline-offset: 1px; }
.pf-ouvrir { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.pf-ouvrir .tirets { flex: 1; border-top: 2px dashed var(--mz-trait-fort); }
.pastille-v2 { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); font-size: 12px; font-weight: 500; white-space: nowrap; }
.pastille-v2.r { background: var(--mz-rouge-clair); color: var(--mz-rouge); }
.pastille-v2.a { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); }
.pastille-v2.v { background: var(--mz-vert-clair); color: var(--mz-vert); }
.pf-ouvrir:hover .pastille-v2 { background: var(--mz-vert-clair); color: var(--mz-vert); }
.pf-v2-r .chev { color: var(--mz-encre-tenue); display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 8px; }
.pf-v2-r .chev:hover { background: var(--mz-champ); color: var(--mz-encre); }
.pf-v2-acte { display: grid; grid-template-columns: 24px minmax(160px, 1.3fr) minmax(140px, 1fr) minmax(130px, .8fr) minmax(120px, .8fr); gap: 12px; align-items: center; padding: 0 16px 8px 16px; font-size: 13px; }
.pf-v2-acte .nomacte { color: var(--mz-encre-douce); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-v2-acte .nomacte::before { content: "↳ "; color: var(--mz-encre-tenue); }
.pf-v2-acte .nomacte:hover { color: var(--mz-vert); }
.pf-v2-acte .ech { font-size: 12px; color: var(--mz-encre-tenue); }
.pf-v2-vide { padding: 36px; text-align: center; color: var(--mz-encre-tenue); margin: 0; }
.pf-v2-legende { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; font-size: 12px; color: var(--mz-encre-douce); }
.pf-v2-legende > span { display: inline-flex; gap: 6px; align-items: center; }
.pf-v2-legende .note { margin-left: auto; color: var(--mz-encre-tenue); }
@media (max-width: 1000px) { .pf-v2-t { display: none; } .pf-v2-r { grid-template-columns: 1fr auto; padding: 10px 16px; } .pf-v2-r .pf-frise, .pf-v2-r .pf-ouvrir { grid-column: 1 / -1; } .pf-v2-acte { grid-template-columns: 1fr auto; } }
.pf-frise.tete span { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 1px; }

/* ==========================================================================
   Lexia V2 · lot 3, la fiche société : les chiffres, quatre onglets.
   ========================================================================== */
.fiche-v2 .chiffres-v2 { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 14px; border-top: 1px solid var(--mz-trait); padding-top: 12px; }
.fiche-v2 .chiffres-v2 > div { display: flex; flex-direction: column; gap: 2px; padding-right: 16px; }
.fiche-v2 .chiffres-v2 > div + div { border-left: 1px solid var(--mz-trait); padding-left: 16px; }
.fiche-v2 .chiffres-v2 .l { font-size: 12px; font-weight: 600; color: var(--mz-encre-tenue); }
.fiche-v2 .chiffres-v2 b { font-size: 15px; font-weight: 600; }
.fiche-v2 .chiffres-v2 .tenue { color: var(--mz-encre-tenue); font-weight: 400; }
.fiche-v2 .onglets-v2 { width: 100%; max-width: 1240px; margin: 0 auto; padding: 18px 28px 0; box-sizing: border-box; display: flex; gap: 4px; border-bottom: 1px solid var(--mz-trait); }
.fiche-v2 .onglets-v2 a { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; font-size: 14px; font-weight: 500; color: var(--mz-encre-douce); text-decoration: none; border-radius: 8px 8px 0 0; transition: color .15s, background .15s; }
.fiche-v2 .onglets-v2 a:hover { color: var(--mz-encre); background: var(--mz-champ); }
.fiche-v2 .onglets-v2 a.ici { color: var(--mz-encre); font-weight: 600; }
.fiche-v2 .onglets-v2 a.ici::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--mz-vert); animation: v2-trait .2s ease both; }
@keyframes v2-trait { from { transform: scaleX(.3); opacity: 0; } to { transform: none; opacity: 1; } }
.fiche-v2 .onglets-v2 .nb { font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); }
.fiche-v2 .onglets-v2 .nb.a { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); }
.fiche-v2 .menu-fiche [data-hors-fiche], .fiche-v2 .menu-fiche .hors-fiche { display: none; }
.fiche-v2 .corps-fiche { grid-template-columns: 220px minmax(0, 1fr); }
.fiche-v2 .corps-fiche.sans-menu { grid-template-columns: minmax(0, 1fr); }
.fiche-v2 .corps-fiche.sans-menu .menu-fiche { display: none; }
/* H1c · la carte de la fiche s'affiche tout de suite, sans fondu d'arrivée */
@media (max-width: 1132px) { .fiche-v2 .corps-fiche { grid-template-columns: 200px minmax(0, 1fr); } .fiche-v2 .menu-fiche { position: sticky; } }
@media (max-width: 860px) { .fiche-v2 .corps-fiche { grid-template-columns: 1fr; } .fiche-v2 .chiffres-v2 { grid-template-columns: 1fr; } .fiche-v2 .chiffres-v2 > div + div { border-left: 0; padding-left: 0; } }
.fiche-v2 .puce-m.encre { background: var(--mz-champ); color: var(--mz-encre); padding: 3px 10px; }

/* ==========================================================================
   Lexia V2 · lot 4, la mission d'approbation, sur la maquette d'Othmane.
   Le seuil de 1 232 px venait du menu large de 232 px ; le menu replié en
   fait 64. Au-dessus de 900 px : l'en-tête sur une ligne, la question et le
   fil côte à côte, la page ne défile pas, chaque colonne défile seule.
   ========================================================================== */
@media (min-width: 900px) and (min-height: 600px) {
  .page.nue.v2 { height: 100dvh; overflow: hidden; }
  .ecran-mission.v2 .chapeau-mission { grid-template-columns: minmax(0, 1fr) auto; }
  .ecran-mission.v2 .deux-colonnes { grid-template-columns: minmax(0, 1fr) 14px var(--fil-large, 340px); grid-template-rows: minmax(0, 1fr); flex: 1 1 0; }
  .ecran-mission.v2 .poignee { display: flex; }
  .ecran-mission.v2 .fil-des-reponses { max-height: none; min-height: 0; overflow-y: auto; }
  .ecran-mission.v2 .etape-en-cours { min-height: 0; overflow-y: auto; }
  .ecran-mission.v2 .rail { flex-wrap: nowrap; }
  .ecran-mission.v2 .rdv { flex-basis: 0; }
}
.ecran-mission.v2 .rdv { padding: 8px 8px 9px; }
.ecran-mission.v2 .rdv .t, .ecran-mission.v2 .rdv .t-entier { font-size: 12px; letter-spacing: -.01em; }
.ecran-mission.v2 .rdv .n { font-size: 11px; }
.ecran-mission.v2 .carte-seance { animation: v2-monte .3s ease both; }
@media (min-width: 900px) and (min-height: 600px) {
  .ecran-mission.v2 .etape-en-cours { display: flex; flex-direction: column; }
  .ecran-mission.v2 .etape-en-cours > .carte-seance { flex: 1 0 auto; }
}

/* ==========================================================================
   Lexia V2 · lot 5, l'écran d'un acte : les questions, la question,
   l'aperçu en direct ; Documents, Pièces et Signature en panneaux.
   ========================================================================== */
.acte-v2 .chapeau-mission { padding-bottom: 4px; grid-template-columns: minmax(0, 1fr); }
.acte-v2 .ligne-v2 { max-width: none; padding: 0 28px 8px; display: flex; align-items: center; gap: 12px; }
.acte-v2 .ligne-v2 .puces-mission { display: flex; gap: 6px; align-items: center; min-width: 0; flex: 1; overflow: hidden; }
.acte-v2 .ligne-v2 .puces-mission > * { flex: none; }
.acte-v2 .outils-v2 { display: flex; gap: 6px; flex: none; }
.acte-v2 .outils-v2 .btn { height: 32px; padding: 0 12px; font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.acte-v2 .outils-v2 .nb { font-size: 11px; font-weight: 600; background: var(--mz-champ); border-radius: 999px; padding: 0 6px; }
@media (max-width: 1100px) { .acte-v2 .ligne-v2 { flex-wrap: wrap; } .acte-v2 .outils-v2 { flex-wrap: wrap; } }

.op-corps-v2 { --ap: 42%; position: relative; display: flex; align-items: stretch; gap: 0; padding: 12px 28px; flex: 1 1 0; min-height: 0; }
.op-corps-v2 .q-gauche { position: relative; flex: none; width: 52px; margin-right: 14px; transition: width .28s cubic-bezier(.2,.8,.2,1); }
.op-corps-v2.epingle .q-gauche { width: 250px; }
.q-liste-v2 { position: absolute; inset: 0 auto 0 0; width: 100%; z-index: 8; display: flex; flex-direction: column; gap: 2px; padding: 10px 7px; overflow: hidden; background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; transition: width .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s; }
.op-corps-v2:not(.epingle) .q-gauche:hover .q-liste-v2, .op-corps-v2:not(.epingle) .q-gauche:focus-within .q-liste-v2 { width: 300px; box-shadow: 0 18px 44px rgba(28, 26, 22,.16); overflow-y: auto; }
.op-corps-v2.epingle .q-liste-v2 { overflow-y: auto; }
.q-liste-v2 .q-tete { display: flex; align-items: center; gap: 6px; padding: 2px 4px 8px; }
.q-liste-v2 .q-lib { font-size: 12px; font-weight: 600; color: var(--mz-encre-tenue); }
.q-fleche { width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--mz-trait); background: #fff; color: var(--mz-encre-douce); font-size: 15px; line-height: 1; flex: none; margin-left: auto; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform .28s cubic-bezier(.2,.8,.2,1), background .15s, color .15s; }
.q-fleche:hover { background: var(--mz-vert-clair); color: var(--mz-vert); border-color: var(--mz-vert-trait); }
.op-corps-v2.epingle .q-fleche { transform: rotate(180deg); }
.op-corps-v2:not(.epingle) .q-gauche:not(:hover):not(:focus-within) .q-tete { justify-content: center; padding: 2px 0 8px; }
.op-corps-v2:not(.epingle) .q-gauche:not(:hover):not(:focus-within) .q-lib { display: none; }
.op-corps-v2:not(.epingle) .q-gauche:not(:hover):not(:focus-within) .q-fleche { margin: 0; }
.op-corps-v2:not(.epingle) .q-gauche:not(:hover):not(:focus-within) .q-txt,
.op-corps-v2:not(.epingle) .q-gauche:not(:hover):not(:focus-within) .q-dossier { opacity: 0; pointer-events: none; }
.q-item { display: flex; gap: 9px; align-items: flex-start; padding: 7px 8px; border-radius: 8px; color: var(--mz-encre-tenue); font-size: 13px; text-decoration: none; white-space: nowrap; }
.q-item:hover { background: var(--mz-champ); color: var(--mz-encre); }
.q-item.fait { color: var(--mz-encre); }
.q-item.cour { background: #fff; color: var(--mz-encre); font-weight: 600; box-shadow: 0 0 0 1px var(--mz-trait-fort); }
.q-item .pt { flex: none; width: 10px; height: 10px; margin-top: 4px; border-radius: 999px; border: 2px solid #C5C5BF; box-sizing: border-box; background: #fff; }
.q-item .pt.f { background: var(--mz-vert); border-color: var(--mz-vert); }
.q-item .pt.e { border-color: var(--mz-vert); box-shadow: 0 0 0 3px var(--mz-vert-clair); }
.q-txt { display: flex; flex-direction: column; min-width: 0; transition: opacity .18s; }
.q-txt > span { overflow: hidden; text-overflow: ellipsis; }
.q-txt small { font-size: 12px; color: var(--mz-vert); font-weight: 500; overflow: hidden; text-overflow: ellipsis; max-width: 220px; }
.q-txt small.orig { color: var(--mz-encre-tenue); font-weight: 400; }
.q-dossier { margin-top: 8px; border-top: 1px solid var(--mz-trait); padding-top: 6px; transition: opacity .18s; }
.q-dossier summary { font-size: 13px; color: var(--mz-encre-douce); padding: 4px 8px; cursor: pointer; white-space: nowrap; }
.op-corps-v2 .q-centre { position: relative; flex: 1 1 0; min-width: 440px; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; gap: 10px; }
.op-corps-v2 .bascule-apercu-v2 { position: absolute; top: 12px; right: 12px; z-index: 3; }
.op-corps-v2 .q-centre > .carte-seance { flex: 1 0 auto; }
.op-corps-v2 .q-centre .carte-q > .l, .op-corps-v2 .q-centre .carte-q h3 { padding-right: 130px; }
.op-corps-v2.sans-apercu .q-centre .carte-seance .seance-corps { max-width: 780px; margin: 0 auto; width: 100%; }
.poignee-v2 { flex: none; width: 14px; border: 0; background: transparent; padding: 0; cursor: col-resize; touch-action: none; display: flex; align-items: center; justify-content: center; }
.poignee-v2::before { content: ""; width: 4px; height: 44px; border-radius: 999px; background: var(--mz-trait-fort); transition: background .15s, height .2s; }
.poignee-v2:hover::before, .op-corps-v2.glisse .poignee-v2::before, .poignee-v2:focus-visible::before { background: var(--mz-vert); height: 72px; }
.op-corps-v2.glisse { cursor: col-resize; user-select: none; }
.apercu-v2 { flex: none; width: var(--ap); min-width: 340px; max-width: calc(100% - 52px - 14px - 454px); display: flex; flex-direction: column; gap: 10px; padding: 12px; background: #EAEAE5; border-radius: 14px; min-height: 0; transition: width .28s cubic-bezier(.2,.8,.2,1); }
.op-corps-v2.epingle .apercu-v2 { max-width: calc(100% - 250px - 14px - 454px); }
.op-corps-v2.glisse .apercu-v2 { transition: none; }
.op-corps-v2.sans-apercu .apercu-v2, .op-corps-v2.sans-apercu .poignee-v2 { display: none; }
.apercu-v2 .ap-tete { display: flex; align-items: center; gap: 8px; }
.apercu-v2 .ap-tete b { flex: 1; font-size: 14px; }
.apercu-v2 .suivre { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--mz-encre-douce); }
.onglets-doc-v2 { display: flex; gap: 4px; overflow-x: auto; padding-bottom: 2px; flex: none; }
.onglets-doc-v2 .og { flex: none; height: 30px; padding: 0 10px; border-radius: 8px; border: 1px solid transparent; background: transparent; font: inherit; font-size: 13px; font-weight: 500; color: var(--mz-encre-douce); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; }
.onglets-doc-v2 .og:hover { background: #F4F4F1; }
.onglets-doc-v2 .og.pris { background: #fff; border-color: var(--mz-trait); color: var(--mz-encre); box-shadow: 0 1px 2px rgba(0,0,0,.05); }
.onglets-doc-v2 .nb-o { font-size: 11px; font-weight: 600; background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); border-radius: 999px; padding: 0 6px; }
.onglets-doc-v2 .ok { color: var(--mz-vert); }
.papier-v2 { flex: 1; min-height: 0; overflow-y: auto; background: #fff; border-radius: 6px; box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 10px 28px rgba(28, 26, 22,.08); padding: 24px 26px; font-family: Georgia, "Times New Roman", serif; font-size: 13px; line-height: 1.65; color: #222; animation: v2-monte .25s ease both; }
.papier-v2 p { margin: 0 0 8px; }
.papier-v2 p.titre { font-weight: bold; margin-top: 10px; }
.papier-v2 .ch { background: var(--mz-vert-clair); border-radius: 3px; padding: 0 3px; color: #0A4F42; }
.papier-v2 .ch.vide { background: var(--mz-ambre-clair); color: #8A4308; }
.papier-v2 .ch.cour { box-shadow: 0 0 0 2px var(--mz-vert); animation: v2-eclat 1.4s ease both; }
@keyframes v2-eclat { 0% { background: #BFE3D6; } 100% { background: var(--mz-vert-clair); } }
.pan-v2 { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, calc(100vw - 88px)); z-index: 60; background: #fff; box-shadow: -20px 0 60px rgba(28, 26, 22,.18); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.pan-v2.ouvert { transform: none; }
.pan-v2 > header { display: flex; align-items: center; gap: 8px; padding: 16px 20px; border-bottom: 1px solid var(--mz-trait); }
.pan-v2 > header h2 { margin: 0; font-size: 16px; font-weight: 600; flex: 1; }
.pan-v2 .fermer { width: 32px; height: 32px; border-radius: 999px; border: 0; background: var(--mz-champ); font-size: 18px; cursor: pointer; }
.pan-v2 .tiroir-op { padding: 16px 20px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; border: 0; box-shadow: none; background: transparent; }
.pan-v2 .tiroir-op > h4:first-child { display: none; }
.voile-v2 { position: fixed; inset: 0; z-index: 55; background: rgba(28, 26, 22,.28); animation: v2-voile .2s ease both; }
@keyframes v2-voile { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 1000px) { .op-corps-v2 { flex-direction: column; } .op-corps-v2 .q-gauche, .op-corps-v2.epingle .q-gauche { width: 100%; margin: 0 0 12px; min-height: 52px; } .q-liste-v2 { position: relative; } .op-corps-v2 .q-centre { min-width: 0; } .apercu-v2 { width: 100%; max-width: none; min-width: 0; margin-top: 12px; } .poignee-v2 { display: none; } }
.pan-v2[hidden], .voile-v2[hidden] { display: none; }
.acte-v2 .ligne-v2 .puces-mission { flex-wrap: nowrap; }
.op-corps-v2 .q-centre > .bandeau-controle { margin-right: 140px; }
.acte-v2 .ligne-v2 .puces-mission { flex-wrap: wrap; overflow: visible; row-gap: 4px; }

/* ---- Lexia V2 · lot 5, « Nouvel acte » ---- */
.nouvel-acte-v2 { display: flex; flex-direction: column; gap: 18px; }
.na-tete h1 { margin: 0; font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.na-tete p { margin: 4px 0 0; }
.na-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; align-items: start; }
.na-carte { background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; animation: v2-monte .3s ease both; animation-delay: calc(var(--i, 0) * 30ms); transition: box-shadow .2s, border-color .2s, transform .2s; }
.na-carte:hover { border-color: var(--mz-trait-fort); box-shadow: 0 10px 26px rgba(28, 26, 22,.08); transform: translateY(-2px); }
.na-carte[open] { grid-column: span 2; border-color: var(--mz-vert); box-shadow: 0 0 0 3px var(--mz-vert-clair); transform: none; }
.na-carte > summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; gap: 6px; padding: 16px; }
.na-carte > summary::-webkit-details-marker { display: none; }
.na-carte > summary b { font-size: 15px; font-weight: 600; }
.na-desc { font-size: 13px; color: var(--mz-encre-douce); line-height: 1.45; }
.na-pied { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.na-clients { display: flex; flex-direction: column; gap: 2px; padding: 0 12px 12px; border-top: 1px solid var(--mz-trait); padding-top: 10px; max-height: 340px; overflow-y: auto; animation: v2-ouvre .2s ease both; }
.na-cherche { height: 34px; border: 1px solid var(--mz-trait-fort); border-radius: 999px; padding: 0 14px; font: inherit; font-size: 14px; margin-bottom: 6px; }
.na-cherche:focus { outline: none; border-color: var(--mz-vert); box-shadow: 0 0 0 3px var(--mz-vert-clair); }
.na-client { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; color: var(--mz-encre); text-decoration: none; }
.na-client:hover { background: var(--mz-vert-clair); color: var(--mz-vert); text-decoration: none; }
.na-client small { color: var(--mz-encre-tenue); font-size: 12px; }
.na-client[hidden] { display: none; }
@media (max-width: 700px) { .na-carte[open] { grid-column: auto; } }
/* ==========================================================================
   Lexia V2 · lot 6, le cabinet et les modèles : retouches. Le fondu
   d'arrivée sur chaque page est retiré (H1c, 2026-10-22) : la page restait
   invisible le temps qu'il joue, une à deux secondes à l'œil d'Othmane.
   ========================================================================== */
@media (prefers-reduced-motion: reduce) { .carte-v2, .pf-v2-soc, .na-carte, .papier-v2 { animation: none !important; } }
.table-admin td:first-child { white-space: nowrap; }

/* ==========================================================================
   Lexia V2 · la page tient dans l'écran, Othmane le 2026-09-26 : « les
   écrans ne doivent pas être scrollables en entier, à l'intérieur ; il faut
   laisser une marge ; chaque colonne scrollable séparément ». La page fait la
   hauteur de la fenêtre ; l'en-tête reste en place ; chaque zone défile seule.
   ========================================================================== */
:root { --v2-marge: clamp(20px, 3vw, 40px); --v2-large: 1320px; }
.v2-defile { scrollbar-width: thin; scrollbar-color: #CFCFC8 transparent; }

/* ---- Le tableau de bord et le portefeuille ---- */
main.page.tenue.tdb { height: 100dvh; overflow: hidden; display: flex; flex-direction: column; }
.page.tdb .tdb-tete { background: transparent; border-bottom: 0; padding: 26px var(--v2-marge) 14px; gap: 14px; }
.page.tdb .tdb-tete > * { max-width: var(--v2-large); }
.page.tdb .tdb-chapeau h1 { font-family: var(--sans); font-size: 26px; letter-spacing: -.02em; }

main.vue-colonnes .tdb-colonnes { flex: 1 1 0; min-height: 0; width: calc(100% - 2 * var(--v2-marge)); max-width: var(--v2-large); margin: 0 auto 22px; align-items: stretch; gap: 14px; }
.col-v2 { min-height: 0; overflow-y: auto; overscroll-behavior: contain; background: #EBEBE6; border-radius: 16px; padding: 0 10px 12px; gap: 8px; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
.col-v2-tete { position: sticky; top: 0; z-index: 2; background: #EBEBE6; padding: 12px 4px 8px; margin: 0 -2px; }
.col-v2-vide { background: transparent; border-color: #D5D5CF; }
.carte-v2 { flex: none; }

main.vue-pf-frise .pf-v2 { flex: 1 1 0; min-height: 0; width: calc(100% - 2 * var(--v2-marge)); max-width: var(--v2-large); margin: 0 auto 22px; }
.pf-v2-cadre { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
.pf-v2-t { position: sticky; top: 0; z-index: 3; }
.pf-v2-legende { flex: none; }
main.vue-tableau .cadre-tdb, main.vue-pf-tableau .cadre-tdb { width: calc(100% - 2 * var(--v2-marge)); max-width: var(--v2-large); }

/* ---- La fiche société : le bandeau et les onglets restent, le contenu défile ---- */
main.page.tenue.fiche-v2:has(> .corps-fiche) { height: 100dvh; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
.fiche-v2 .chapeau-fiche { flex: none; }
.fiche-v2 .onglets-v2 { flex: none; max-width: var(--v2-large); padding-left: var(--v2-marge); padding-right: var(--v2-marge); }
.fiche-v2 .corps-fiche { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; max-width: none; padding: 18px max(var(--v2-marge), calc((100% - var(--v2-large)) / 2)) 28px; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
.fiche-v2 .menu-fiche { top: 0; }

@media (max-height: 560px), (max-width: 760px) {
  main.page.tenue.tdb, main.page.tenue.fiche-v2 { height: auto; overflow: visible; }
  .col-v2, .pf-v2-cadre, .fiche-v2 .corps-fiche { overflow: visible; }
}
.carte-v2 .op { font-weight: 400; }
.pf-v2-outils { flex-wrap: nowrap; align-items: flex-start; }
.pf-v2-filtres { flex: 1 1 auto; min-width: 0; }
.pf-v2-droite { flex: none; }
.pf-v2-cherche { width: 170px; }
/* La tête de la fiche : une carte, comme la maquette, et plus un bandeau. */
.fiche-v2 .chapeau-fiche { padding: 18px var(--v2-marge) 0; }
.fiche-v2 .chapeau-fiche-dedans { max-width: calc(var(--v2-large) - 2 * var(--v2-marge)); margin: 0 auto; background: #fff; border: 1px solid var(--mz-trait); border-radius: 16px; padding: 16px 22px 14px; gap: 10px 24px; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
.fiche-v2 .qui-fiche { gap: 6px; }
.fiche-v2 .qui-fiche h1 { font-family: var(--sans); font-size: 26px; letter-spacing: -.02em; }
.fiche-v2 .puces-fiche { display: flex; flex-wrap: wrap; gap: 6px; }
.fiche-v2 .chiffres-v2 { margin-top: 4px; padding-top: 12px; }
.fiche-v2 .onglets-v2 { max-width: none; width: calc(100% - 2 * var(--v2-marge)); max-width: calc(var(--v2-large) - 2 * var(--v2-marge)); padding: 10px 0 0; margin: 0 auto; }
.fiche-v2 .corps-fiche { padding-top: 16px; }
/* ---- La mission et l'acte : la même tête sur le fond, les mêmes marges,
   et un espace sous les colonnes ---- */
.ecran-mission.v2 .chapeau-mission { background: transparent !important; border-bottom: 0; box-shadow: none !important; max-width: var(--v2-large); padding: 18px var(--v2-marge) 6px; }
.ecran-mission.v2 .chapeau-mission::before, .ecran-mission.v2 .chapeau-mission::after { display: none; }
.ecran-mission.v2 .chapeau-mission h1 { font-family: var(--sans); font-size: 26px; letter-spacing: -.02em; }
.ecran-mission.v2 .rail-rdv, .acte-v2 .ligne-v2 { max-width: var(--v2-large); margin: 0 auto; width: 100%; box-sizing: border-box; padding-left: var(--v2-marge); padding-right: var(--v2-marge); }
.ecran-mission.v2 .deux-colonnes, .op-corps-v2 { max-width: var(--v2-large); width: 100%; margin: 0 auto; box-sizing: border-box; padding: 12px var(--v2-marge) 22px; }

/* ---- Tous les autres écrans : la page ne défile plus, son contenu si ;
   la tête reste collée en haut ---- */
main.page:not(.nue):not(.tenue):not(.etroite) { height: 100dvh; overflow-y: auto; overscroll-behavior: contain; max-width: none; margin: 0; box-sizing: border-box; padding-top: 0; padding-left: max(var(--v2-marge), calc((100% - 1240px) / 2)); padding-right: max(var(--v2-marge), calc((100% - 1240px) / 2)); padding-bottom: 32px; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
main.page:not(.nue):not(.tenue):not(.etroite) > .chapeau:first-child,
main.page:not(.nue):not(.tenue):not(.etroite) > .admin-tete:first-child,
main.page:not(.nue):not(.tenue):not(.etroite) > .tdb-tete:first-child { position: sticky; top: 0; z-index: 6; background: var(--mz-fond); padding-top: 24px; margin-top: 0; box-shadow: 0 10px 12px -12px rgba(28, 26, 22,.12); }
main.page:not(.nue):not(.tenue):not(.etroite) > .ariane:first-child { padding-top: 24px; display: block; }
main.page.tdb:not(.tenue) .tdb-tete { padding-left: 0; padding-right: 0; }

/* « Nouvel acte » : le titre reste, les cartes défilent. */
main.page.tenue:has(.nouvel-acte-v2) { overflow: hidden; }
.nouvel-acte-v2 { flex: 1 1 0; min-height: 0; }
.nouvel-acte-v2 .na-tete { flex: none; }
.nouvel-acte-v2 .na-grille { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 4px 24px; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
@media (max-height: 560px), (max-width: 760px) {
  main.page:not(.nue):not(.tenue):not(.etroite) { height: auto; overflow: visible; }
}
main.page.tenue > .nouvel-acte-v2 { flex: 1 1 0; min-height: 0; }
.ed-portee-acte { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 500; background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); white-space: nowrap; }
.ed-portee-acte.propre { background: var(--mz-vert-clair); color: var(--mz-vert); }
.apercu-v2 .modif-v2 { display: flex; align-items: center; gap: 8px; flex: none; justify-content: flex-end; }
.apercu-v2 .modif-v2[hidden] { display: none; }
.apercu-v2 .modif-v2 .pastille-v2 { margin-right: auto; }
.modif-menu { position: relative; }
.modif-menu > summary { list-style: none; cursor: pointer; background: #fff; }
.modif-menu > summary::-webkit-details-marker { display: none; }
.modif-menu > summary::after { content: " ▾"; font-size: 11px; }
.modif-choix { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 280px; display: flex; flex-direction: column; gap: 4px; padding: 6px; background: #fff; border: 1px solid var(--mz-trait); border-radius: 12px; box-shadow: 0 18px 44px rgba(28, 26, 22,.16); animation: v2-ouvre .16s ease both; }
.modif-choix form { margin: 0; }
.modif-choix button { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.modif-choix button:hover { background: var(--mz-vert-clair); }
.modif-choix b { font-size: 14px; font-weight: 600; color: var(--mz-encre); }
.modif-choix small { font-size: 12px; color: var(--mz-encre-douce); }

/* ==========================================================================
   Lexia V2 · l'onglet Opérations de la fiche, sur la maquette validée.
   ========================================================================== */
.ops-fiche-v2 { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); gap: 16px; align-items: start; animation: v2-monte .25s ease both; }
.ops-fiche-v2[hidden] { display: none; }
.ops-gauche, .ops-droite { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ops-sur { display: flex; align-items: center; justify-content: space-between; font-size: 12px; font-weight: 600; color: var(--mz-encre-tenue); padding: 0 2px; }
.ops-sur .btn { text-transform: none; letter-spacing: 0; }
.ops-sur.deposes { margin-top: 10px; }
.op-carte-v2 { background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; overflow: hidden; transition: box-shadow .2s, border-color .2s; }
.op-carte-v2:hover { border-color: var(--mz-trait-fort); }
.op-carte-v2[open] { border-color: var(--mz-trait-fort); box-shadow: 0 8px 26px rgba(28, 26, 22,.07); }
.op-carte-v2 .op-h { display: flex; align-items: center; gap: 14px; padding: 14px 16px; }
.op-carte-v2 summary.op-h { list-style: none; cursor: pointer; }
.op-carte-v2 summary.op-h::-webkit-details-marker { display: none; }
.op-carte-v2 summary.op-h:hover { background: var(--mz-survol-doux); }
.op-carte-v2 .op-t { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.op-carte-v2 .op-t b { font-size: 15px; font-weight: 600; }
.op-carte-v2 .op-t small { font-size: 13px; color: var(--mz-encre-tenue); }
.op-carte-v2 .chev { color: var(--mz-encre-tenue); transition: transform .25s; }
.op-carte-v2[open] .chev { transform: rotate(180deg); }
.op-carte-v2 .pt { display: inline-block; width: 12px; height: 12px; border-radius: 999px; border: 2px solid #C5C5BF; background: #fff; box-sizing: border-box; transition: transform .18s cubic-bezier(.2,.8,.2,1); }
.op-carte-v2 .pt.f { background: var(--mz-vert); border-color: var(--mz-vert); }
.op-carte-v2 .pt.e { border-color: var(--mz-ambre); }
.op-carte-v2 .pt.r { background: var(--mz-rouge); border-color: var(--mz-rouge); }
.op-carte-v2 .pt.v { border-color: var(--mz-vert); box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 6px var(--mz-vert-clair); }
.op-carte-v2 .pt.so { width: 10px; height: 2px; border: 0; border-radius: 2px; background: #C5C5BF; }
.op-carte-v2 .pt-btn { display: inline-flex; padding: 5px; border-radius: 999px; line-height: 0; }
.op-carte-v2 .pt-btn:hover .pt { transform: scale(1.5); }
.frise-large { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); padding: 2px 12px 14px; }
.frise-large .fl, .op-carte-v2 .f4 .fl { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.frise-large .fl small, .op-carte-v2 .f4 .fl small { font-size: 11px; color: var(--mz-encre-tenue); white-space: nowrap; }
.frise-large .fl + .fl::before, .op-carte-v2 .f4 .fl + .fl::before { content: ""; position: absolute; top: 12px; right: calc(50% + 9px); left: calc(-50% + 9px); height: 2px; border-radius: 2px; background: var(--mz-trait); }
.op-carte-v2 .f4 .fl + .fl::before { top: 5px; }
.frise-large .fl.f + .fl.f::before, .frise-large .fl.f + .fl.e::before, .frise-large .fl.f + .fl.v::before, .frise-large .fl.f + .fl.r::before,
.op-carte-v2 .f4 .fl.f + .fl::before { background: var(--mz-vert); }
.op-carte-v2 .f4 { display: grid; grid-template-columns: repeat(5, 64px); flex: none; }   /* V2-251 · cinq temps */
.op-pied { border-top: 1px solid #EFEFEA; background: var(--mz-tete); }
.op-pied > summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 10px 16px; font-size: 13px; color: var(--mz-encre-douce); cursor: pointer; }
.op-pied > summary::-webkit-details-marker { display: none; }
.op-pied > summary .lien { margin-left: auto; color: var(--mz-vert); font-weight: 500; }
.op-pied .choix-docs { display: flex; flex-direction: column; gap: 6px; padding: 4px 16px 14px; animation: v2-ouvre .2s ease both; }
.op-pied .choix-docs .coche-ligne { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.op-pied .choix-docs .btn { align-self: flex-start; margin-top: 4px; }
.op-carte-v2.vide .op-t small { color: var(--mz-ambre-fonce); }
.op-tiroir { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 14px 16px; border-top: 1px solid #EFEFEA; background: var(--mz-tete); animation: v2-ouvre .22s ease both; }
.op-tiroir .sur { display: block; font-size: 12px; font-weight: 600; color: var(--mz-encre-tenue); margin-bottom: 6px; }
.op-tiroir .it { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; padding: 3px 0; }
.op-tiroir .it > span:last-child { display: flex; flex-direction: column; }
.op-tiroir .it small { font-size: 12px; color: var(--mz-encre-tenue); }
.op-tiroir .ico { flex: none; width: 18px; height: 18px; border-radius: 999px; background: var(--mz-champ); color: var(--mz-encre-douce); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.op-tiroir .ico.ok { background: var(--mz-vert-clair); color: var(--mz-vert); }
.op-tiroir .ico.a { background: var(--mz-ambre-clair); color: var(--mz-ambre-fonce); }
.op-tiroir-g { grid-column: 1 / -1; }
.ops-deposes { background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; }
.ops-deposes > .sourdine { padding: 14px 16px; margin: 0; }
.pli-ligne { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-top: 1px solid #EFEFEA; font-size: 14px; }
.pli-ligne:first-child { border-top: 0; }
.pli-ligne .douce { color: var(--mz-encre-douce); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pli-ligne .lien, .ops-boite .lien { color: var(--mz-vert); font-weight: 500; text-decoration: none; }
.ops-boite { background: #fff; border: 1px solid var(--mz-trait); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.ops-boite-t { display: flex; align-items: center; gap: 8px; }
.ops-boite-t b { font-size: 15px; }
.ops-boite .sourdine { margin: 0; font-size: 13px; }
.manque-l { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid #F0F0EC; }
.manque-l:first-of-type { border-top: 0; }
.manque-l .q { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.manque-l .q b { font-size: 14px; font-weight: 600; }
.manque-l .q small { font-size: 12px; color: var(--mz-encre-tenue); }
.maj-l { display: flex; gap: 12px; padding: 8px 0; border-top: 1px solid #F0F0EC; }
.maj-l .quand { width: 42px; flex: none; font-size: 13px; color: var(--mz-encre-tenue); }
.maj-l b { display: block; font-size: 13px; font-weight: 500; }
.maj-l small { font-size: 12px; color: var(--mz-encre-tenue); }
@media (max-width: 860px) { .ops-fiche-v2 { grid-template-columns: 1fr; } .op-tiroir { grid-template-columns: 1fr; } }
@media (max-width: 1250px) { .op-carte-v2.acte .op-h { flex-wrap: wrap; } }
.frise-large .fl > .pt-btn, .frise-large .fl > .pt { height: 22px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; }
.frise-large .fl > .pt.so { height: 2px; margin: 10px 0; }
.op-carte-v2 .f4 .fl > .pt.so { margin: 5px 0; }
.ops-fiche-v2 { grid-template-columns: minmax(0, 1.6fr) minmax(250px, 1fr); }
/* ---- L'onglet Exercices : une ligne par exercice, comme la maquette ---- */
.fiche-v2 #panneau-exercices .tete-carte .gestes-carte .btn:first-child { background: var(--mz-vert); color: #fff; border-color: var(--mz-vert); }
.fiche-v2 .lignes-exercices { display: flex; flex-direction: column; border: 1px solid var(--mz-trait); border-radius: 12px; overflow: hidden; background: #fff; }
.fiche-v2 .ligne-exercice { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; padding: 14px 16px; background: #fff; border: 0; border-top: 1px solid #EFEFEA; border-radius: 0; margin: 0; }
.fiche-v2 .ligne-exercice:first-child { border-top: 0; }
.fiche-v2 .ligne-exercice:hover { background: var(--mz-survol-doux); }
.fiche-v2 .ligne-exercice .quoi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fiche-v2 .ligne-exercice .quoi .nom { font-size: 15px; font-weight: 600; color: var(--mz-encre); text-decoration: none; }
.fiche-v2 .ligne-exercice .quoi .sous { font-size: 13px; color: var(--mz-encre-tenue); }
.fiche-v2 .ligne-exercice .retirer-exercice { margin: 0; order: 9; }
.fiche-v2 .ligne-exercice .retirer-exercice .btn { border: 0; background: none; color: var(--mz-rouge); padding: 0 6px; }
.fiche-v2 .ligne-exercice .retirer-exercice .btn:hover { text-decoration: underline; }
.fiche-v2 .ligne-exercice .retirer-exercice .btn { border: 0 !important; background: none !important; box-shadow: none !important; color: var(--mz-rouge) !important; }

/* Les autres pages habillées comme la fiche (la vérification des statuts,
   par exemple) n'ont pas son corps à onglets : elles défilent à l'intérieur,
   avec leurs marges, la tête collée en haut. Trouvé le 2026-09-26 : la page
   des statuts à vérifier était coupée et ne défilait plus. */
main.page.tenue.fiche-v2:not(:has(> .corps-fiche)) { height: 100dvh; overflow-y: auto; overflow-x: hidden; display: block; box-sizing: border-box; padding: 0 var(--v2-marge) 32px; scrollbar-width: thin; scrollbar-color: #C9C9C2 transparent; }
main.page.tenue.fiche-v2:not(:has(> .corps-fiche)) > .chapeau:first-of-type { position: sticky; top: 0; z-index: 6; background: var(--mz-fond); padding-top: 22px; padding-bottom: 8px; }
main.page.tenue.fiche-v2:not(:has(> .corps-fiche)) > * + * { margin-top: 12px; }
/* Un passage surligné dans le texte des statuts passe à la ligne avec la
   phrase : en pastille d'une seule ligne, il sortait de l'écran. */
.texte-article mark.pastille { display: inline; white-space: normal; line-height: 1.9; font-size: inherit; padding: 1px 4px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
/* ---- La lecture des statuts en arrière-plan ---- */
.lecture-fond { display: flex; gap: 14px; align-items: center; padding: 14px 16px; margin: 0 0 12px; border-radius: 12px; background: var(--mz-vert-clair); border: 1px solid var(--mz-vert-trait); animation: v2-monte .25s ease both; }
.lecture-fond > div { display: flex; flex-direction: column; gap: 2px; }
.lecture-fond b { font-size: 14px; color: var(--mz-vert-fonce); }
.lecture-fond .etape { font-size: 14px; color: var(--mz-encre); }
.lecture-fond small { font-size: 12px; color: var(--mz-encre-douce); }
.lecture-fond .tourne { flex: none; width: 22px; height: 22px; border-radius: 999px; border: 3px solid var(--mz-vert-trait); border-top-color: var(--mz-vert); animation: v2-tourne .9s linear infinite; }
@keyframes v2-tourne { to { transform: rotate(360deg); } }

/* V2-27b · le bandeau de la casquette, en tête du tableau de bord */
.tdb-bandeau { display: grid; gap: 10px; margin: 4px 0 14px; }
.tdb-phrase { margin: 0; font-size: 15px; color: var(--mz-encre); text-wrap: balance; }
.tdb-casquette { display: inline-block; font-size: 12px; color: var(--mz-vert-fonce); background: var(--mz-vert-clair); border-radius: 10px; padding: 2px 9px; margin-right: 8px; vertical-align: 2px; }
.tdb-tuiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tdb-bandeau.avec-equipe .tdb-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(260px, 1.4fr); }
.tdb-tuile { display: grid; align-content: start; gap: 2px; padding: 12px 16px; background: var(--mz-surface, #fff); border: 1px solid var(--mz-trait); border-radius: 12px; text-decoration: none; color: var(--mz-encre); transition: border-color .15s; }
.tdb-tuile:hover { border-color: var(--mz-trait-fort); }
.tdb-tuile b { font-size: 26px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; color: var(--mz-encre-tenue); }
.tdb-tuile.rouge b { color: var(--mz-rouge); } .tdb-tuile.ambre b { color: var(--mz-ambre-fonce); }
.tdb-tuile.vert b { color: var(--mz-vert); } .tdb-tuile.encre b { color: var(--mz-encre); }
.tdb-tuile .l { font-size: 13.5px; font-weight: 500; }
.tdb-tuile .d { font-size: 12px; color: var(--mz-encre-tenue); }
.tdb-equipe-carte { background: var(--mz-surface, #fff); border: 1px solid var(--mz-trait); border-radius: 12px; padding: 8px 12px; min-width: 0; }
.tdb-equipe-carte .tete, .tdb-equipe-carte .rang-eq { display: grid; grid-template-columns: minmax(0, 1fr) 58px 48px 42px; align-items: center; gap: 6px; }
.tdb-equipe-carte .tete h2 { margin: 0; font-size: 13.5px; font-weight: 600; }
.tdb-equipe-carte .tete span { font-size: 12px; color: var(--mz-encre-tenue); text-align: right; }
.tdb-equipe-carte .corps { max-height: 92px; overflow-y: auto; }
.tdb-equipe-carte .rang-eq { grid-template-columns: 24px minmax(0, 1fr) 58px 48px 42px; padding: 4px 0; text-decoration: none; color: var(--mz-encre); font-size: 13px; border-top: 1px solid var(--mz-trait); }
.tdb-equipe-carte .tete { grid-template-columns: minmax(0, 1fr) 58px 48px 42px; }
.tdb-equipe-carte .rang-eq > span:nth-child(n+3) { text-align: right; font-variant-numeric: tabular-nums; }
.tdb-equipe-carte .rang-eq .nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tdb-equipe-carte .av { width: 22px; height: 22px; border-radius: 6px; background: var(--mz-vert-clair); color: var(--mz-vert-fonce); font-size: 10px; font-weight: 600; display: grid; place-items: center; }
.tdb-equipe-carte .rouge { color: var(--mz-rouge); font-weight: 600; } .tdb-equipe-carte .sourd { color: var(--mz-encre-tenue); }
@media (max-width: 1040px) { .tdb-bandeau.avec-equipe .tdb-tuiles, .tdb-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tdb-equipe-carte { grid-column: 1 / -1; } }
@media (max-width: 640px) { .tdb-tuiles { gap: 8px; } .tdb-tuile { padding: 10px 10px; } .tdb-tuile b { font-size: 22px; } .tdb-tuile .l { font-size: 12.5px; } .tdb-tuile .d { display: none; } }
/* V2-27 · sur téléphone aussi, « Étapes » ne montre pas les colonnes */
main.page.tdb.vue-tableau .tdb-colonnes { display: none !important; }
#approbation-des-comptes, #actes-ponctuels { scroll-margin-top: 16px; }
@media (max-width: 640px) {
  main.page.tdb.vue-tableau .cadre-tdb { margin-left: 0; margin-right: 0; width: auto; }
  main.page.tdb .tdb-titre { flex-wrap: wrap; row-gap: 4px; }
  main.page.tdb .tdb-titre .legende { display: none; }
}

/* ---------------------------------------------------------------------------
   V2-105 · le tableau de bord de la maquette, la grille. Page « Tableau de
   bord Lexia », validée par Othmane le 2026-09-30 : une phrase, cinq filtres,
   deux parties qui défilent chacune. Pas de ligne « reste par étape ». */
main.page.tenue > .grille { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; gap: 12px;
  padding: 18px var(--v2-marge, 24px) 14px; box-sizing: border-box; color: #1B1A17; }
.grille .puce-g { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px;
  font-size: 12px; font-weight: 500; white-space: nowrap; }
.grille .puce-g.rouge { background: #FCEBE9; color: #9A1D13; }
.grille .puce-g.ambre { background: #FBEEDD; color: #7A3A08; }
.grille .puce-g.vert { background: #E3F1EC; color: #0B5849; }
.grille .puce-g.gris { background: #F0F0EC; color: #5F5E59; }
.grille-tete { display: flex; align-items: center; gap: 10px; flex: none; flex-wrap: wrap; }
.grille-tete h1 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -.01em; }
.grille-phrase { font-size: 14px; color: #3E434A; margin-left: 8px; }
.grille-phrase b { color: #1B1A17; font-weight: 600; }
.grille-phrase b.rouge { color: #B42318; }
.grille-vide { flex-grow: 1; }
.grille .grille-cherche { display: flex; flex-direction: row; margin: 0; align-items: center; gap: 6px; height: 32px; padding: 0 10px; width: 220px;
  box-sizing: border-box; border: 1px solid #D5D5CF; border-radius: 8px; background: #fff; color: #5F5E59; }
main.page .grille .grille-cherche input[type="search"]:not(.pc-ins):not([hidden]):not(.cocher) { border: 0; outline: none; font: inherit; font-size: 13px; width: 100%;
  background: transparent; color: #1B1A17; padding: 0; height: 24px; min-height: 0; box-shadow: none; min-width: 0; }
.grille .grille-cherche svg { flex: none; }
.grille-jour { font-size: 12.5px; color: #5F5E59; }
.grille-filtres { display: flex; gap: 6px; flex: none; align-items: center; flex-wrap: wrap; }
.grille .pill { height: 30px; padding: 0 12px; border-radius: 15px; border: 1px solid #D5D5CF; background: #fff;
  font-size: 12.5px; font-weight: 500; color: #3E434A; display: inline-flex; gap: 6px; align-items: center;
  text-decoration: none; box-sizing: border-box; }
.grille .pill:hover { border-color: #9AA0A6; }
.grille .pill.on { background: #1B1A17; border-color: #1B1A17; color: #fff; }
.grille .pill b { font-weight: 600; }
.grille-equipe { margin-left: 6px; }
/* V2-106 · la grille à gauche, le côté droit à 320 px */
.grille-plan { flex: 1 1 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; }
.grille-parties { min-height: 0; display: flex; flex-direction: column; gap: 12px; }
.grille-cote { display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.grille-bloc { background: #fff; border: 1px solid #E6E6E1; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.grille-bloc.attendent { flex: 1 1 0; min-height: 0; }
.grille-bloc.attendez { flex: none; }
/* V2-111 · les alertes, en tête du côté droit */
.grille-bloc.alertes { flex: none; }
.grille-bloc.alertes .grille-corps { max-height: 320px; overflow-y: auto; }
.grille .alertes-tout { display: block; padding: 9px 16px; font-size: 12px; font-weight: 500; color: var(--mz-vert); text-decoration: none; }
.grille .alertes-tout:hover { text-decoration: underline; }
.grille-bloc-tete { display: flex; align-items: center; gap: 8px; padding: 12px 16px 8px; border-bottom: 1px solid #E6E6E1; flex: none; }
.grille-bloc.attendent .grille-corps { flex: 1 1 0; }
.grille .tache { display: flex; flex-direction: column; gap: 3px; padding: 9px 16px; border-bottom: 1px solid #EFEFEA;
  text-decoration: none; color: #1B1A17; }
.grille .tache:hover { background: #F9F9F6; }
.grille .tache .l1 { display: flex; align-items: center; gap: 8px; }
.grille .tache .soc-t { font-size: 13px; font-weight: 600; flex-grow: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grille .tache .l2 { font-size: 11.5px; color: #5F5E59; font-weight: 500; }
.grille .tache .l2.acte { color: #0E6B5A; }
.grille .tache .l3 { font-size: 12.5px; color: #3E434A; line-height: 1.35; }
.grille .attente { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; align-items: center;
  padding: 8px 16px; border-bottom: 1px solid #EFEFEA; }
.grille .attente .ini { width: 30px; height: 30px; border-radius: 50%; background: #F0F0EC; color: #3E434A; font-size: 11px;
  font-weight: 600; display: flex; align-items: center; justify-content: center; }
.grille .attente .qq { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.grille .attente .qui { font-size: 12.5px; font-weight: 600; }
.grille .attente .quoi { font-size: 11.5px; color: #5F5E59; }
.grille .attente a { font-size: 12px; font-weight: 500; color: #0E6B5A; text-decoration: none; }
.grille .attente a:hover { color: #0B5849; text-decoration: underline; }
.grille-partie { flex: 0 1 auto; min-height: 120px; display: flex; flex-direction: column; background: #fff;
  border: 1px solid #E6E6E1; border-radius: 14px; overflow: hidden; }
.grille-partie:has(.grille-rien) { flex: none; min-height: 0; }
.grille-partie:has(.grille-rien) .grille-corps { flex: none; }
.grille-partie.appros .grille-entete, .grille-partie.appros .row {
  grid-template-columns: 190px repeat(9, minmax(0, 1fr)) 132px 84px; }
.grille-partie.actes .grille-entete, .grille-partie.actes .row {
  grid-template-columns: 190px repeat(5, minmax(0, 1fr)) 52px 132px 84px; }
.grille-entete { display: grid; gap: 0 6px; align-items: end; padding: 10px 16px 8px; flex: none;
  font-size: 11.5px; font-weight: 600; color: #5F5E59; border-bottom: 1px solid #E6E6E1; }
.grille-partie.actes .grille-entete { color: #0B5849; }
.grille-entete .c { text-align: center; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grille-entete .c.votre { color: #0B5849; }
.grille-entete .sourd { color: #5F5E59; }
.grille-entete .d, .grille .ech { text-align: right; }
.grille .lab { font-size: 12px; font-weight: 600; color: #5F5E59; }
.grille-corps { overflow-y: auto; min-height: 0; flex: 0 1 auto; }
.grille .row { display: grid; gap: 0 6px; align-items: center; padding: 7px 16px; border-bottom: 1px solid #EFEFEA; }
.grille .row:hover { background: #F9F9F6; }
.grille .soc { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.grille .soc a { font-size: 13px; font-weight: 600; color: #1B1A17; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grille .soc a:hover { color: #0E6B5A; }
.grille .soc .sous { font-size: 11.5px; color: #5F5E59; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grille .soc .sous.acte { color: #0E6B5A; font-weight: 500; }
.grille .row .c { display: flex; justify-content: center; }
.grille .row .signes { font-size: 12.5px; color: #3E434A; font-variant-numeric: tabular-nums; }
.grille .attend { justify-self: start; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.grille .ech { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.grille .ech b { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.grille .ech span { font-size: 11.5px; color: #5F5E59; }
.grille .ech.retard b, .grille .ech.retard span { color: #B42318; }
.grille-rien { margin: 0; padding: 16px; font-size: 13px; color: #5F5E59; }
.grille-note { margin: 0; flex: none; padding: 10px 16px; background: #fff; border: 1px solid #E6E6E1;
  border-radius: 12px; font-size: 13px; color: #5F5E59; }
.grille-legende { display: flex; gap: 14px; font-size: 12px; color: #5F5E59; align-items: center; flex: none; flex-wrap: wrap; }
.grille-legende span { display: inline-flex; gap: 6px; align-items: center; }
.grille-legende .rond, .grille-legende .tiret { margin: 0; }
.grille-hors { margin-left: auto; position: relative; }
.grille-hors p { position: absolute; right: 0; bottom: 22px; width: 420px; margin: 0; padding: 10px 12px; background: #fff;
  border: 1px solid #E6E6E1; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.08); font-size: 12.5px; line-height: 1.5; }
@media (max-width: 900px) {
  main.page.tenue > .grille, .grille-plan, .grille-parties, .grille-partie, .grille-corps, .grille-bloc.attendent,
  .grille-bloc.attendent .grille-corps { flex: none; }
  .grille-plan { grid-template-columns: minmax(0, 1fr); }
  .grille-partie { overflow-x: auto; }
  .grille-partie .grille-entete, .grille-partie .row { min-width: 820px; }
}
/* V2-106 · la fenêtre de relance, posée dans la grille : son message prend toute la largeur */
.grille .modale label, .grille .modale textarea { width: 100%; align-self: stretch; }

/* V2-107 · le responsable de pôle : la colonne Qui, l'équipe, chez qui ça attend */
.grille-phrase b.vert { color: #0E6B5A; }
.grille-partie.appros.avec-qui .grille-entete, .grille-partie.appros.avec-qui .row {
  grid-template-columns: 180px 30px repeat(9, minmax(0, 1fr)) 124px 84px; }
.grille-partie.actes.avec-qui .grille-entete, .grille-partie.actes.avec-qui .row {
  grid-template-columns: 180px 30px repeat(5, minmax(0, 1fr)) 52px 124px 84px; }
.grille .qui-ini { width: 26px; height: 26px; border-radius: 50%; background: #F0F0EC; font-size: 10.5px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; color: #3E434A; }
.grille .puce-g.chez { text-decoration: none; margin-left: 4px; }
.grille-bloc.valider, .grille-bloc.equipe { flex: none; }
.grille-bloc.chez-qui { flex: 1 1 0; min-height: 0; }
.grille-bloc.chez-qui .grille-corps { flex: 1 1 0; }
.grille .attente.sans-ini { grid-template-columns: minmax(0, 1fr) auto; }
.grille .btn-g { height: 28px; padding: 0 10px; border-radius: 8px; background: #0E6B5A; color: #fff !important;
  font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; text-decoration: none !important; }
.grille .membre, .grille .bloque { display: grid; gap: 10px; padding: 9px 16px; border-bottom: 1px solid #EFEFEA;
  text-decoration: none; color: #1B1A17; }
.grille .membre { grid-template-columns: 30px minmax(0, 1fr) auto; align-items: start; }
.grille .bloque { grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; padding: 8px 16px; }
.grille .membre:hover, .grille .bloque:hover { background: #F9F9F6; }
.grille .membre.ici, .grille .bloque.ici { background: #FBEEDD; }
.grille .membre .ini { width: 30px; height: 30px; border-radius: 50%; background: #F0F0EC; font-size: 11px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; }
.grille .membre .qq, .grille .bloque .qq { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.grille .membre .l1 { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.grille .membre .qui, .grille .bloque .qui { font-size: 13px; font-weight: 600; }
.grille .membre .quoi, .grille .bloque .quoi { font-size: 11.5px; color: #5F5E59; }
.grille .membre .puce-g { height: 20px; font-size: 11px; }
.grille .pts { display: flex; flex-wrap: wrap; gap: 3px; align-items: center; }
.grille .pts .actes-mot { font-size: 11px; color: #0E6B5A; font-weight: 600; margin-right: 3px; }
.grille .md { width: 9px; height: 9px; border-radius: 50%; box-sizing: border-box; display: block; flex: none; }
.grille .md.fait { background: #0E6B5A; }
.grille .md.valider { border: 2px solid #0E6B5A; }
.grille .md.cours { border: 2px solid #B4530A; }
.grille .md.retard { background: #B42318; }
.grille .md.avenir { border: 1.5px solid #B9BDC3; }
.grille .membre .etat { font-size: 12px; font-weight: 600; color: #0E6B5A; white-space: nowrap; }
.grille .membre .etat.rouge, .grille .bloque .n.rouge { color: #B42318; }
.grille .bloque .n { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
.grille .bloque .voir { font-size: 12px; color: #0E6B5A; font-weight: 500; }
