/* Lisa dans le tableau de bord.
 *
 * Tout est prefixe « lisa- » et rien n'est pose sur une classe existante :
 * ce fichier doit pouvoir etre retire sans laisser de trace dans le reste
 * de l'ecran, et l'ecran doit pouvoir changer sans le casser.
 */

#lisa-appel {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 900;
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid #d4d8e0;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .12);
  font: 500 14px/1 system-ui, sans-serif;
  color: #344054;
  cursor: pointer;
}

#lisa-appel[data-visible="oui"] { display: inline-flex; }
#lisa-appel:hover { background: #f7f8fa; }

/* La pastille dit l'etat d'eveil avant meme qu'on ouvre la boite. */
#lisa-appel .lisa-pastille {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #98a2b3;
}

#lisa-appel[data-eveil="session"] .lisa-pastille { background: #12b76a; }
#lisa-appel[data-eveil="ecoute"]  .lisa-pastille { background: #f79009; }
#lisa-appel[data-eveil="absent"]  .lisa-pastille { background: #d92d20; }

/* L'avis qui prend la place du bouton quand la session du tableau de bord
 * n'est jamais arrivee. Meme coin que le bouton, parce que c'est la qu'on
 * cherche Lisa et donc la qu'il faut repondre.
 *
 * Il est en rouge sobre et non en gris : c'est un echec, il ne doit pas se
 * confondre avec un etat normal. L'autre sortie du montage — le droit qui
 * n'est pas accorde — n'affiche RIEN et n'a donc aucun style ici, ce qui
 * est la forme visible de la distinction entre les deux. */
#lisa-absente {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 900;
  max-width: min(300px, calc(100vw - 44px));
  padding: 12px 14px;
  border: 1px solid #fda29b;
  border-radius: 12px;
  background: #fffbfa;
  box-shadow: 0 2px 10px rgba(16, 24, 40, .12);
  font: 13px/1.5 system-ui, sans-serif;
  color: #912018;
}

#lisa-absente p { margin: 0 0 8px; }

#lisa-absente button {
  padding: 6px 12px;
  border: 1px solid #d4d8e0;
  border-radius: 8px;
  background: #fff;
  font: 500 13px system-ui, sans-serif;
  color: #344054;
  cursor: pointer;
}

#lisa-absente button:hover { background: #f7f8fa; }

/* Le code d'acces n'est plus exige : Cloudflare Access identifie deja celui
 * qui ouvre cette page, et c'est cette identite — pas le code — qui ouvre
 * les dossiers. Le champ reste pour le seul chemin ou aucun jeton ne passe :
 * l'acces direct au poste, tunnel coupe. L'etiquette doit donc cesser de se
 * presenter comme une obligation. */
.lisa-facultatif { font-weight: 400; color: #667085; }

.lisa-param-aide {
  margin: 6px 0 0;
  font-size: 12px;
  line-height: 1.5;
  color: #667085;
}

#lisa-boite {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 901;
  display: none;
  flex-direction: column;
  width: min(380px, calc(100vw - 32px));
  height: min(560px, calc(100vh - 44px));
  border: 1px solid #d4d8e0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 34px rgba(16, 24, 40, .18);
  font: 14px/1.5 system-ui, sans-serif;
  color: #1d2939;
  overflow: hidden;
}

#lisa-boite[data-ouverte="oui"] { display: flex; }

.lisa-entete {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid #eaecf0;
}

.lisa-entete h3 { margin: 0; font-size: 15px; font-weight: 600; }
.lisa-entete .lisa-vide { flex: 1; }

.lisa-fermer {
  border: 0;
  background: none;
  font-size: 20px;
  line-height: 1;
  color: #667085;
  cursor: pointer;
}

#lisa-etat {
  padding: 8px 14px;
  background: #f9fafb;
  border-bottom: 1px solid #eaecf0;
  font-size: 12.5px;
  color: #475467;
}

#lisa-fil { flex: 1; overflow-y: auto; padding: 12px 14px; }

.lisa-tour { margin: 0 0 10px; max-width: 86%; padding: 8px 11px; border-radius: 11px; }
.lisa-tour.vous { margin-left: auto; background: #eef2ff; }
.lisa-tour.elle { background: #f2f4f7; }
.lisa-note { margin: 6px 0; font-size: 12px; font-style: italic; color: #667085; }
.lisa-alerte { margin: 6px 0; padding: 8px 10px; border-radius: 8px;
               background: #fef3f2; color: #b42318; font-size: 12.5px; }
.lisa-alerte code { font-size: 12px; word-break: break-all; }

.lisa-pied { border-top: 1px solid #eaecf0; padding: 10px 12px; }
.lisa-saisie { display: flex; gap: 8px; }

.lisa-saisie input {
  flex: 1;
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--color-border-champ, #7c90a9);
  border-radius: 9px;
  font: inherit;
}

.lisa-saisie button,
#lisa-micro {
  padding: 9px 13px;
  border: 1px solid #d0d5dd;
  border-radius: 9px;
  background: #fff;
  font: inherit;
  cursor: pointer;
}

#lisa-micro { width: 100%; margin-top: 8px; }
#lisa-micro[data-actif="oui"] { background: #fef3f2; border-color: #fda29b; color: #b42318; }
#lisa-micro:disabled { color: #98a2b3; cursor: not-allowed; }

/* On coupe la parole vite, et souvent agace. Le bouton fait donc toute la
   largeur, il est haut, il est le premier du pied, et il ne bouge jamais de
   place : viser serait deja de trop. Il reste visible quand Lisa se tait,
   pour que la main sache d'avance ou aller. */
#lisa-taire {
  width: 100%;
  margin-bottom: 8px;
  padding: 12px 13px;
  border: 1px solid #eaecf0;
  border-radius: 9px;
  background: #f9fafb;
  color: #98a2b3;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
#lisa-taire[data-parle="oui"] {
  background: #fffaeb;
  border-color: #fec84b;
  color: #b54708;
}

/* Les choix proposes par Lisa. Ils s'empilent en colonne : une option se
   lit d'un coup d'oeil et se clique sans viser, y compris sur tablette. */
.lisa-choix { display: flex; flex-direction: column; gap: 6px; margin: 8px 0 10px; }

.lisa-option {
  padding: 9px 11px;
  border: 1px solid #b2ccff;
  border-radius: 9px;
  background: #eef2ff;
  color: #1d4ed8;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.lisa-option:hover { background: #e0e7ff; }

.lisa-retour {
  align-self: flex-start;
  margin-top: 2px;
  padding: 5px 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #667085;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.lisa-retour:hover { color: #1d4ed8; }

/* --------------------------------------------------------- parametres */

/* Le panneau couvre la conversation au lieu de la pousser : la boite fait
 * 380 pixels sur 560, et un panneau qui s'insererait ferait sauter le fil
 * sous les yeux de qui le lit. Il s'arrete au-dessus du pied, pour que
 * « Stop » reste atteignable pendant qu'on regle. */
.lisa-engrenage {
  border: 0;
  background: none;
  font-size: 17px;
  line-height: 1;
  color: #667085;
  cursor: pointer;
  padding: 0;
}
.lisa-engrenage:hover { color: #1d2939; }

#lisa-parametres {
  position: absolute;
  left: 0;
  right: 0;
  top: 48px;
  bottom: 0;
  z-index: 2;
  display: none;
  flex-direction: column;
  gap: 14px;
  padding: 14px;
  overflow-y: auto;
  background: #fff;
  border-top: 1px solid #eaecf0;
}

#lisa-parametres[data-ouvert="oui"] { display: flex; }

.lisa-param-entete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
}

.lisa-param-fermer {
  border: 0;
  background: none;
  font-size: 20px;
  line-height: 1;
  color: #667085;
  cursor: pointer;
}

/* L'incident se lit en rouge et reste affiche : c'est lui qui dit que la
 * voix demandee n'a pas pris et que Lisa continue avec la precedente. */
#lisa-param-incident {
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #fecdca;
  border-radius: 8px;
  background: #fffbfa;
  color: #b42318;
  font-size: 12.5px;
}

.lisa-param-bloc h4 {
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #667085;
}

.lisa-crans { display: flex; flex-wrap: wrap; gap: 6px; }

.lisa-cran {
  padding: 6px 11px;
  border: 1px solid #d0d5dd;
  border-radius: 999px;
  background: #fff;
  font: inherit;
  font-size: 12.5px;
  color: #344054;
  cursor: pointer;
}
.lisa-cran:hover:not(:disabled) { border-color: #98a2b3; background: #f9fafb; }
.lisa-cran:disabled { opacity: .5; cursor: default; }

/* Le cran en service est plein : on doit voir d'un coup d'oeil ce que
 * Lisa utilise vraiment, et non ce qu'on vient de cliquer. */
.lisa-cran[data-courant="oui"] {
  border-color: #1570ef;
  background: #eff8ff;
  color: #175cd3;
  font-weight: 600;
}

.lisa-cran[data-attente="oui"] { border-style: dashed; }

.lisa-cran-absent { font-size: 12px; color: #667085; }

.lisa-param-bloc label { display: block; margin-top: 6px; font-size: 12px; color: #667085; }
.lisa-param-bloc input { width: 100%; padding: 6px 8px;
  border: 1px solid var(--color-border-champ, #7c90a9);
  border-radius: 8px; font: inherit; margin-top: 3px; color: #1d2939; }
.lisa-param-bloc #lisa-enregistrer { margin-top: 8px; }

/* `.lisa-reglages` a disparu : le depliant « Passerelle » du pied est
 * passe dans le panneau des parametres, ou il rejoint la voix. Un seul
 * endroit pour les reglages, et plus deux. */

/* ── La visionneuse de documents ───────────────────────────────────────────
 *
 * Ajoute en fin de fichier, et rien n'est modifie au-dessus : ce fichier
 * doit pouvoir etre retire sans laisser de trace, et l'ecran doit pouvoir
 * changer sans le casser.
 *
 * Une procedure se lit sur une page entiere, pas dans une boite de 380
 * pixels : la visionneuse est donc un panneau a part, pose par-dessus
 * l'ecran de travail. Elle s'arrete avant la boite de dialogue, qui reste
 * ouverte a cote — voir la regle de `#lisa-vitre` plus bas. */

#lisa-documents {
  width: 100%;
  margin-bottom: 8px;
  padding: 10px 13px;
  border: 1px solid #b2ccff;
  border-radius: 9px;
  background: #eef2ff;
  color: #1d4ed8;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
#lisa-documents:hover { background: #e0e7ff; }
#lisa-documents:disabled {
  border-color: #eaecf0;
  background: #f9fafb;
  color: #98a2b3;
  cursor: not-allowed;
}

/* Le catalogue, dans le fil de la conversation. Une ligne par document,
   avec sa revision : choisir entre deux etats du meme document sans la voir
   serait exactement l'erreur que tout ceci cherche a empecher. */
.lisa-catalogue { display: flex; flex-direction: column; gap: 5px; margin: 8px 0 10px; }

.lisa-doc {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border: 1px solid #d0d5dd;
  border-radius: 8px;
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.lisa-doc:hover { background: #f7f8fa; border-color: #b2ccff; }
.lisa-doc-titre { font-size: 13px; color: #1d2939; }
.lisa-doc-marque { font-size: 11.5px; color: #667085; }

/* Un document qui ne s'affiche pas se telecharge : la nuance se voit avant
   le clic, pour que personne n'attende un affichage qui ne viendra pas. */
.lisa-doc[data-affichable="non"] { background: #fcfcfd; border-style: dashed; }
.lisa-doc[data-affichable="non"] .lisa-doc-marque { color: #b54708; }

/* La visionneuse laisse la place a la boite de dialogue.
 *
 * La boite est fixee en bas a droite, 380 px de large, 22 px de marge. La
 * visionneuse s'arrete avant : on consulte le document EN CONTINUANT a
 * parler a Lisa — c'est tout l'interet qu'elle l'affiche plutot qu'on
 * l'ouvre soi-meme ailleurs. Une visionneuse plein ecran aurait recouvert
 * la conversation, et il aurait fallu la fermer pour poser la question
 * suivante.
 *
 * Sous 900 px, il n'y a plus de place pour les deux : la visionneuse prend
 * l'ecran. Mieux vaut un document lisible qu'un document et une
 * conversation tous deux a l'etroit. */
#lisa-vitre {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 424px;
  z-index: 950;
  display: none;
  flex-direction: column;
  background: #475467;
}
#lisa-vitre[data-ouverte="oui"] { display: flex; }

@media (max-width: 900px) {
  #lisa-vitre { right: 0; }
}

.lisa-vitre-entete {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 16px;
  background: #fff;
  border-bottom: 1px solid #d4d8e0;
  font: 14px/1.4 system-ui, sans-serif;
}

.lisa-vitre-titre { flex: 1; min-width: 0; }
.lisa-vitre-titre strong { display: block; font-size: 14.5px; color: #1d2939; }
.lisa-vitre-titre span {
  display: block;
  font-size: 12px;
  color: #667085;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* La revision, en evidence et jamais ailleurs qu'ici. Consulter la revision
   14 en croyant lire la 16 est le genre d'erreur qui se retrouve ensuite
   dans un rapport d'essai : elle est donc lisible sans etre cherchee. */
.lisa-revision {
  flex: none;
  padding: 5px 11px;
  border: 1px solid #a6f4c5;
  border-radius: 20px;
  background: #ecfdf3;
  color: #027a48;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
.lisa-revision[data-declaree="non"] {
  border-color: #fda29b;
  background: #fef3f2;
  color: #b42318;
}

.lisa-vitre-fermer {
  flex: none;
  border: 0;
  background: none;
  font-size: 26px;
  line-height: 1;
  color: #667085;
  cursor: pointer;
}

#lisa-vitre-corps { flex: 1; min-height: 0; }
.lisa-vitre-pdf { width: 100%; height: 100%; border: 0; background: #fff; }

.lisa-vitre-avis {
  max-width: 540px;
  margin: 48px auto;
  padding: 20px 22px;
  border-radius: 12px;
  background: #fff;
  font: 14px/1.6 system-ui, sans-serif;
  color: #344054;
}
.lisa-vitre-avis p { margin: 0 0 14px; }

.lisa-vitre-telecharger {
  display: inline-block;
  padding: 9px 15px;
  border-radius: 9px;
  background: #1d4ed8;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}
.lisa-vitre-telecharger:hover { background: #1a44bd; }

/* Sur ecran etroit, le cartouche passe en deux lignes plutot que de
   comprimer la revision jusqu'a l'illisible. */
@media (max-width: 620px) {
  .lisa-vitre-entete { flex-wrap: wrap; gap: 8px; }
  .lisa-vitre-titre { flex-basis: 100%; order: 1; }
  .lisa-revision { order: 2; }
  .lisa-vitre-fermer { order: 3; margin-left: auto; }
}
/* Une citation cliquable. Elle garde l'allure discrete d'une note — c'est
   une source, pas une reponse — mais elle porte sa porte d'entree. */
.lisa-citation {
  display: flex;
  align-items: baseline;
  gap: 8px;
  justify-content: space-between;
}

.lisa-citation-ouvrir {
  flex: none;
  padding: 3px 9px;
  border: 1px solid #b2ccff;
  border-radius: 20px;
  background: #eef2ff;
  color: #1d4ed8;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
}
.lisa-citation-ouvrir:hover { background: #e0e7ff; }

/* Les choix d'ouverture, avant la premiere phrase. Meme habillage que les
   choix proposes en cours de conversation : ce sont les memes boutons, et
   leur donner une autre allure ferait croire a une autre mecanique. */
.lisa-ouverture { margin-top: 4px; }

/* Le catalogue en trois etages : les pieces citees, la recherche, puis le
   fonds range par processus, replie. */
.lisa-cat-titre { margin: 2px 0 0; font-size: 11.5px; font-weight: 600; color: #344054; }
.lisa-cat-recherche {
  width: 100%;
  box-sizing: border-box;
  padding: 7px 10px;
  border: 1px solid var(--color-border-champ, #7c90a9);
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
}
.lisa-cat-trouves, .lisa-cat-groupes { display: flex; flex-direction: column; gap: 5px; }
.lisa-cat-groupe > summary {
  padding: 6px 2px;
  font-size: 12.5px;
  font-weight: 600;
  color: #344054;
  cursor: pointer;
}
.lisa-cat-groupe[open] { display: flex; flex-direction: column; gap: 5px; }
.lisa-cat-vide { margin: 2px 0; font-size: 12px; color: #667085; }

/* ══════════════════════════════════════════════════════════════════════════
   L'explorateur du fonds qualité — processus / nature / année / pièce

   La forme est celle de la gestion documentaire, délibérément : même
   chevron, même compte aligné à droite, même filet pointillé sous les
   branches, mêmes deux colonnes dont la gauche ne bouge pas. Il s'en sert
   tous les jours ; un second vocabulaire visuel pour le même geste se
   paierait à chaque hésitation entre les deux écrans.

   Les règles sont recopiées ici et non empruntées à `main.css` : celles de
   la GED sont posées dans la page qui la porte, et deux écrans qui
   partageraient les mêmes sélecteurs finiraient par se gêner le jour où
   l'un des deux bougerait. La GED est un modèle, pas une dépendance.

   Le panneau se place SOUS la visionneuse (z-index 940 contre 950) et
   s'arrête, comme elle, avant la boîte de dialogue : on parcourt, on clique
   « Afficher », la pièce vient par-dessus, on la referme et l'on est revenu
   dans le même répertoire — sans avoir perdu la conversation de vue.
   ══════════════════════════════════════════════════════════════════════════ */

#lisa-parcourir {
  width: 100%;
  margin-bottom: 8px;
  padding: 10px 13px;
  border: 1px solid #b2ccff;
  border-radius: 9px;
  background: #eef2ff;
  color: #1d4ed8;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
#lisa-parcourir:hover { background: #e0e7ff; }
#lisa-parcourir:disabled {
  border-color: #eaecf0;
  background: #f9fafb;
  color: #98a2b3;
  cursor: not-allowed;
}

#lisa-arbo {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 424px;
  z-index: 940;
  display: none;
  flex-direction: column;
  background: #f2f4f7;
}
#lisa-arbo[data-ouverte="oui"] { display: flex; }

/* Sous 900 px il n'y a plus de place pour les deux : l'explorateur prend
   l'écran, et ses deux colonnes se mettent l'une sous l'autre. */
@media (max-width: 900px) {
  #lisa-arbo { right: 0; }
}

.lisa-arbo-entete {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #475467;
  color: #fff;
}
.lisa-arbo-entete strong { font-size: 14.5px; white-space: nowrap; }
#lisa-arbo-recherche {
  flex: 1;
  min-width: 0;
  max-width: 420px;
  padding: 7px 10px;
  border: 1px solid #667085;
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 13px;
}
.lisa-arbo-fermer {
  margin-left: auto;
  border: 0;
  background: none;
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

/* Deux colonnes, et la gauche ne bouge pas : une arborescence qui change de
   largeur à chaque nœud ouvert oblige à rechercher des yeux où l'on en
   était. C'est la règle de la GED, et pour la même raison. */
.lisa-arbo-explorateur {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 14px;
  padding: 14px 16px;
  box-sizing: border-box;
}
@media (max-width: 900px) {
  .lisa-arbo-explorateur { grid-template-columns: 1fr; grid-template-rows: 240px 1fr; }
}

.lisa-arbo-arbre {
  background: #fff;
  border: 1px solid #d8e0e8;
  border-radius: 6px;
  padding: 8px 4px 10px;
  overflow: auto;
}
.lisa-arbo-titre {
  padding: 2px 10px 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid #d8e0e8;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #64748b;
}

.lisa-arbo-noeud { display: block; }
.lisa-arbo-noeud-ligne {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 4px 10px;
  border: 0;
  border-radius: 4px;
  background: none;
  font: inherit;
  font-size: 13px;
  color: #1a2733;
  text-align: left;
  cursor: pointer;
}
.lisa-arbo-noeud-ligne:hover { background: #eef2f7; }
.lisa-arbo-noeud-ligne.actif { background: #e0f2fe; font-weight: 600; color: #075985; }
/* Le chevron est à 12 px et non à 10 comme dans la GED : c'est la leçon que
   `main.css` a déjà tirée sur le bouton de dépliement des séries — « à 10 px
   il était illisible, et l'opérateur ne voyait pas qu'une série pouvait se
   déplier ». Un nœud dont on ne voit pas qu'il s'ouvre est un nœud qu'on
   n'ouvre pas. */
.lisa-arbo-noeud-ligne .chevron {
  width: 12px;
  flex: 0 0 12px;
  color: #64748b;
  font-size: 12px;
}
/* Le compte à droite, en chiffres de même largeur : c'est lui qui dit s'il
   vaut la peine d'ouvrir, et il doit se comparer d'un nœud à l'autre d'un
   seul coup d'œil. */
.lisa-arbo-noeud-ligne .compte {
  margin-left: auto;
  font-size: 11px;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}
.lisa-arbo-enfants { margin-left: 14px; border-left: 1px dotted #cbd5e1; }

.lisa-arbo-contenu {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #fff;
  border: 1px solid #d8e0e8;
  border-radius: 6px;
}
.lisa-arbo-fil {
  padding: 10px 16px;
  border-bottom: 1px solid #d8e0e8;
  font-size: 13px;
  font-weight: 600;
  color: #344054;
}
#lisa-arbo-corps {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 10px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lisa-arbo-piece {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid #d0d5dd;
  border-radius: 8px;
  background: #fff;
}
.lisa-arbo-piece-corps { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
/* Une pièce qui ne s'affiche pas se télécharge : la nuance se voit AVANT le
   clic, pour que personne n'attende un affichage qui ne viendra pas. */
.lisa-arbo-piece[data-affichable="non"] { background: #fcfcfd; border-style: dashed; }
.lisa-arbo-piece[data-affichable="non"] .lisa-doc-marque { color: #b54708; }

/* La coupure de liste se dit en jaune et en clair : une liste tronquée en
   silence se lit comme la liste complète. */
.lisa-arbo-bilan {
  margin: 0 0 4px;
  padding: 8px 10px;
  border: 1px solid #fec84b;
  border-radius: 8px;
  background: #fffaeb;
  font-size: 12.5px;
  color: #b54708;
}
.lisa-arbo-vide { margin: 2px 0; font-size: 12.5px; color: #667085; }