/* APS — projets/projets.css — 2026-10-01
   L'espace Projets : la liste à gauche, la fiche du projet choisi au centre.
   Couleurs par jetons ; la teinte verte est celle de la carte d'accueil. */

:root{
  --bg:#0f1011; --bg2:#151718; --bg3:#1a1d1f;
  --text:#eef0f1; --text-dim:#a6b0b8; --border:#262a2e;
  --accent:#d6d233; --projet:#27ae60; --err:#e74c3c; --warn:#e67e22;
  color-scheme:dark;
}
/* Une classe qui pose `display` bat l'attribut `hidden` : on le rétablit. */
[hidden]{ display:none !important; }

*{ box-sizing:border-box; }
html, body{ height:100%; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font:13px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;
  display:flex; flex-direction:column;
}
button, input, textarea, select{ font:inherit; color:inherit; }

.aps-header .breadcrumb{ color:#c7ced3; font-size:12.5px; }
.aps-header .breadcrumb a{ color:#c7ced3; text-decoration:none; }
.aps-header .breadcrumb a:hover{ color:var(--text); }

.pj-main{ flex:1; display:flex; min-height:0; }

/* ── Liste ───────────────────────────────────────────────────────── */
.pj-cote{
  width:300px; flex-shrink:0; overflow:auto; padding:16px;
  background:var(--bg2); border-right:1px solid var(--border);
}
.pj-titre{ display:flex; align-items:center; gap:8px; margin:0 0 12px; }
.pj-titre h2{ margin:0; font-size:13px; font-weight:600; flex:1; }
.pj-aide{
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:16px; height:16px; border-radius:50%; border:1px solid var(--border);
  color:var(--text-dim); font-size:10.5px; cursor:default; user-select:none;
}
.pj-aide:hover{ border-color:var(--text-dim); color:var(--text); }

.pj-liste{ list-style:none; margin:0; padding:0; }
.pj-item{
  padding:8px 10px; border-radius:7px; cursor:pointer; border:1px solid transparent;
  display:flex; flex-direction:column; gap:2px;
}
.pj-item:hover{ background:var(--bg3); }
.pj-item[data-choisi="1"]{ border-color:var(--projet); background:var(--bg3); }
.pj-item[data-statut="archived"] .pj-item-nom{ color:var(--text-dim); }
.pj-item-nom{ font-weight:550; }
.pj-item-sous{ color:var(--text-dim); font-size:11.5px; display:flex; gap:6px; flex-wrap:wrap; }
.pj-vide{ color:var(--text-dim); font-size:12px; margin:8px 0; }

/* ── Formulaires ─────────────────────────────────────────────────── */
.pj-form{
  display:flex; flex-direction:column; gap:10px;
  padding:12px 0; margin-bottom:12px; border-bottom:1px solid var(--border);
}
.pj-champ{ display:flex; flex-direction:column; gap:4px; }
.pj-champ > span{ font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; }
.pj-champ input, .pj-champ textarea{
  background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:7px 9px; min-width:0;
}
.pj-champ textarea{ resize:vertical; }
.pj-champ input:focus, .pj-champ textarea:focus, .pj-nom:focus{ outline:none; border-color:var(--projet); }

.pj-actions{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pj-btn{
  background:var(--bg3); border:1px solid var(--border); border-radius:7px;
  padding:6px 12px; cursor:pointer;
}
.pj-btn:hover{ border-color:var(--text-dim); }
.pj-btn:disabled{ opacity:.5; cursor:default; }
.pj-btn-accent{ background:var(--projet); border-color:var(--projet); color:#0f1011; font-weight:600; }
.pj-btn-accent:hover{ border-color:var(--text); }

.pj-msg{ margin:0; font-size:12px; color:var(--text-dim); }
.pj-msg[data-genre="erreur"]{ color:var(--err); }
.pj-msg[data-genre="ok"]{ color:var(--projet); }

/* ── Fiche ───────────────────────────────────────────────────────── */
.pj-fiche{
  flex:1; min-width:0; overflow:auto; padding:24px 28px;
  display:flex; flex-direction:column; gap:16px; max-width:1560px;
}
.pj-fiche-vide{ align-items:flex-start; color:var(--text-dim); }
.pj-fiche-tete{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pj-nom{
  flex:1; min-width:200px; font-size:20px; font-weight:600;
  background:transparent; border:1px solid transparent; border-radius:6px; padding:4px 6px;
}
.pj-nom:hover{ border-color:var(--border); }
.pj-pastille{
  padding:1px 8px; border-radius:999px; border:1px solid var(--border);
  font-size:11px; color:var(--text-dim); white-space:nowrap;
}
.pj-pastille:empty{ display:none; }
.pj-pastille[data-statut="active"]{ border-color:rgba(39,174,96,.45); color:var(--projet); }

/* ── Documents reçus (étape 2) ───────────────────────────────────── */
.pj-bloc{ border-top:1px solid var(--border); padding-top:16px; display:flex; flex-direction:column; gap:12px; }
.pj-bloc-tete{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pj-bloc-tete h2{ margin:0; font-size:14px; font-weight:600; flex:1; min-width:0; }
/* Le bloc Éléments : le résumé prend la place du titre. */
.pj-bloc-tete:has(.pj-el-resume) h2{ flex:0 1 auto; }
.pj-onglets{ display:flex; gap:6px; flex-wrap:wrap; }
.pj-onglet{
  background:var(--bg3); border:1px solid var(--border); border-radius:999px;
  padding:3px 12px; cursor:pointer; font-size:12px;
}
.pj-onglet:hover{ border-color:var(--text-dim); }
.pj-onglet[aria-selected="true"]{ border-color:var(--projet); color:var(--projet); }
.pj-volet{ border:1px solid var(--border); border-radius:8px; padding:8px 12px; }
.pj-volet > summary{ cursor:pointer; color:var(--text-dim); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.pj-volet > summary:hover{ color:var(--text); }
.pj-volet[open] > summary{ margin-bottom:10px; }
.pj-volet[open]{ display:flex; flex-direction:column; gap:10px; }
.pj-h3{ margin:8px 0 0; font-size:12px; font-weight:600; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; }

/* Le champ fichier est caché dans son libellé : le bouton est le libellé. */
.pj-btn-fichier{ position:relative; overflow:hidden; }
.pj-btn-fichier input{ position:absolute; inset:0; opacity:0; cursor:pointer; }
/* Un autre format (2026-10-20) : sa carte, pas un versement. */
.pj-autre-format{ margin:4px 0 0; font-size:12px; text-align:right; }
.pj-lien-fichier{ position:relative; overflow:hidden; color:var(--text-dim); cursor:pointer; text-decoration:underline dotted; }
.pj-lien-fichier:hover{ color:var(--text); }
.pj-lien-fichier input{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }

.pj-versement{
  display:flex; flex-direction:column; gap:12px; padding:14px;
  background:var(--bg2); border:1px solid var(--border); border-radius:8px;
}
.pj-v-fichier{ margin:0; font-weight:600; }
/* Versement par lot (2026-10-30) : les champs propres à UN fichier s'effacent, la liste du lot paraît. */
.pj-versement[data-lot] .pj-seul{ display:none; }
.pj-v-lot{ display:none; list-style:none; margin:0; padding:0; flex-direction:column; gap:4px; max-height:320px; overflow:auto; }
.pj-versement[data-lot] .pj-v-lot{ display:flex; }
.pj-v-lot li{ flex-shrink:0; display:flex; gap:10px; align-items:baseline; padding:4px 8px; border-left:3px solid var(--border); font-size:13px; }
.pj-v-lot-nom{ font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:40%; }
.pj-v-lot-plan{ color:var(--text-dim); flex:1; }
.pj-v-lot-etat{ white-space:nowrap; }
.pj-v-lot li[data-etat="ignore"]{ opacity:.6; }
.pj-v-lot li[data-etat="encours"]{ border-left-color:var(--accent); }
.pj-v-lot li[data-etat="fait"]{ border-left-color:var(--ok); }
.pj-v-lot li[data-etat="erreur"]{ border-left-color:var(--err); }
/* Transcription d'un enregistrement (2026-10-23) : la progression, sur toute la largeur. */
.pj-t-progres{ width:100%; height:8px; accent-color:var(--accent); }
.pj-deja{ display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.pj-grille, .pj-sous-grille{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px 14px; }
.pj-large{ grid-column:1 / -1; }
.pj-champ select{ background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:7px 9px; min-width:0; }
.pj-champ input[type="date"]{ color-scheme:dark; }

.pj-docs, .pj-versions{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.pj-doc-item{
  padding:9px 12px; border-radius:8px; border:1px solid var(--border); background:var(--bg2);
  cursor:pointer; display:flex; flex-direction:column; gap:3px;
}
.pj-doc-item:hover{ border-color:var(--text-dim); }
.pj-doc-item[data-choisi="1"]{ border-color:var(--projet); }
.pj-doc-titre{ font-weight:600; }
.pj-lien{ color:var(--text); text-decoration:none; }
.pj-lien:hover{ color:var(--projet); text-decoration:underline; }
.pj-doc-sous{ color:var(--text-dim); font-size:12px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.pj-pastille[data-emetteur="client"]{ border-color:rgba(52,152,219,.45); color:#5dade2; }
.pj-pastille[data-emetteur="askida"]{ border-color:rgba(214,210,51,.45); color:var(--accent); }
.pj-pastille[data-emetteur="editeur"]{ border-color:rgba(230,126,34,.45); color:#e67e22; }

.pj-version{
  padding:9px 12px; border-radius:8px; border:1px solid var(--border);
  display:flex; flex-direction:column; gap:4px;
}
.pj-version[data-lue="1"]{ border-color:var(--projet); }
.pj-version-tete{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.pj-version-num{ font-weight:600; }
.pj-version-sous{ color:var(--text-dim); font-size:12px; }
.pj-version-actions{ margin-left:auto; display:flex; gap:6px; }
.pj-btn-petit{ padding:3px 9px; font-size:12px; }
.pj-btn-danger:hover{ border-color:var(--err); color:var(--err); }

/* Le lecteur : les parties à gauche, le texte de la partie choisie à droite. */
.pj-lecteur{
  display:flex; min-height:420px; height:75vh;
  border:1px solid var(--border); border-radius:8px; overflow:hidden;
}
.pj-parties{
  list-style:none; margin:0; padding:6px; width:260px; flex-shrink:0;
  overflow:auto; background:var(--bg2); border-right:1px solid var(--border);
}
.pj-partie-item{ padding:5px 8px; border-radius:6px; cursor:pointer; font-size:12.5px; }
.pj-partie-item:hover{ background:var(--bg3); }
.pj-partie-item[data-choisie="1"]{ background:var(--bg3); color:var(--projet); }
.pj-partie-chemin{ display:block; color:var(--text-dim); font-size:11px; }
.pj-partie{ min-width:0; padding:14px 18px; display:flex; flex-direction:column; gap:14px; }
.pj-partie-texte{ white-space:pre-wrap; line-height:1.55; }
/* Un tableau à barres du texte (Word, feuille Excel) : barres et retours restent dans le DOM, cachés. */
.pj-tableau{ overflow-x:auto; margin:4px 0; }
.pj-tableau table{ border-collapse:collapse; font-size:12.5px; line-height:1.4; }
.pj-tableau th, .pj-tableau td{ white-space:normal; border:1px solid var(--border); padding:3px 7px; vertical-align:top; text-align:left; min-width:3em; max-width:28em; }
.pj-tableau th{ background:var(--bg3); font-weight:600; position:sticky; top:0; }
.pj-tableau tr:nth-child(even) td{ background:var(--bg2); }
.pj-tab-sep, .pj-tab-cache{ display:none; }
.pj-partie-item[data-figures="1"]::after{ content:" ▣"; color:var(--text-dim); font-size:11px; }

/* ── Éléments ─────────────────────────────────────────────────────── */
.pj-barre-relever{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pj-element{ padding:9px 12px; border-radius:8px; border:1px solid var(--border); background:var(--bg2); display:flex; flex-direction:column; gap:5px; }
.pj-element-tete{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pj-element-titre{ font-weight:600; flex:1; min-width:160px; }
.pj-element-enonce{ margin:0; color:var(--text); white-space:pre-wrap; max-height:5.6em; overflow:hidden; }
.pj-element-sous{ color:var(--text-dim); font-size:12px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.pj-element-sous[data-genre="alerte"]{ color:#e67e22; }
.pj-element select{ background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:2px 6px; font-size:12px; }
.pj-pastille[data-type="exigence"]{ border-color:rgba(214,210,51,.45); color:var(--accent); }
.pj-pastille[data-type="question"]{ border-color:rgba(52,152,219,.45); color:#5dade2; }
.pj-pastille[data-type="decision"]{ border-color:rgba(39,174,96,.45); color:var(--projet); }
.pj-lien-bouton{ background:none; border:0; padding:0; cursor:pointer; color:var(--projet); font:inherit; font-size:12px; }
.pj-lien-bouton:hover{ text-decoration:underline; }
.pj-figure-relever{ position:relative; }
.pj-figure-relever .pj-btn{ position:absolute; top:8px; right:8px; }

.pj-dialogue{
  width:min(720px, calc(100vw - 32px)); padding:0; border:1px solid var(--border); border-radius:10px;
  background:var(--bg2); color:var(--text);
}
.pj-dialogue::backdrop{ background:rgba(0,0,0,.6); }
.pj-form-dialogue{ display:flex; flex-direction:column; gap:12px; padding:18px; }
.pj-form-dialogue h2{ margin:0; font-size:15px; }
.pj-dlg-source{ font-size:12px; color:var(--text-dim); border-left:2px solid var(--accent); padding-left:8px; max-height:8em; overflow:auto; white-space:pre-wrap; }
.pj-dlg-source img{ display:block; max-width:100%; max-height:200px; background:#fff; border-radius:4px; margin-top:6px; }
/* Déplacer vers une autre organisation (2026-10-23) : « libellé : valeurs », une valeur par ligne. */
.pj-dep-inventaire{ display:grid; grid-template-columns:max-content 1fr; gap:6px 14px; margin:0; font-size:12.5px; max-height:50vh; overflow:auto; }
.pj-dep-inventaire dt{ color:var(--text-dim); }
.pj-dep-inventaire dd{ margin:0; display:flex; flex-direction:column; gap:2px; }
.pj-dep-inventaire [data-genre="attention"]{ color:var(--warn); }
.pj-dep-inventaire [data-genre="refus"]{ color:var(--err); }
.pj-e-questions{ border:1px solid var(--border); border-radius:6px; padding:8px 10px; margin:0; }
.pj-e-questions legend{ font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; padding:0 4px; }
.pj-e-questions label{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; padding:2px 0; }

/* ── Comparaison de deux versions (étape 4) ──────────────────────── */
.pj-barre-lecture{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pj-comparer{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text-dim); }
.pj-comparer select{ background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:4px 8px; }
.pj-comparaison{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding:8px 12px; border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:6px; background:var(--bg2);
}
.pj-comparaison-resume{ margin:0; flex:1; min-width:0; }
.pj-case{ display:flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim); cursor:pointer; }
.pj-badge{ margin-left:6px; font-size:10.5px; padding:0 5px; border-radius:999px; border:1px solid var(--border); white-space:nowrap; }
.pj-badge[data-genre="ajout"]{ color:var(--projet); border-color:rgba(39,174,96,.45); }
.pj-badge[data-genre="retrait"]{ color:var(--err); border-color:rgba(231,76,60,.45); }
.pj-badge[data-genre="figure"]{ color:var(--accent); border-color:rgba(214,210,51,.45); }
.pj-badge[data-genre="nouvelle"]{ color:#5dade2; border-color:rgba(52,152,219,.45); }

.pj-diff{ display:flex; flex-direction:column; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; line-height:1.5; }
.pj-diff-ligne{ padding:1px 8px; border-left:3px solid transparent; white-space:pre-wrap; word-break:break-word; }
.pj-diff-ligne[data-op="="]{ color:var(--text-dim); }
.pj-diff-ligne[data-op="+"]{ background:rgba(39,174,96,.12); border-left-color:var(--projet); }
.pj-diff-ligne[data-op="-"]{ background:rgba(231,76,60,.12); border-left-color:var(--err); text-decoration:line-through; text-decoration-color:rgba(231,76,60,.6); }
.pj-diff-coupure{ color:var(--text-dim); padding:2px 8px; }
.pj-diff-rien{ color:var(--text-dim); font-family:inherit; }

/* Une figure changée : l'ancienne et la nouvelle côte à côte. */
.pj-figures-duo{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.pj-figure-legende{ font-size:11px; color:var(--text-dim); margin:0 0 4px; }

/* Les proxys des figures : en tête de la partie, cliquables (pleine taille). */
.pj-figures{ display:flex; flex-direction:column; gap:10px; }
.pj-figures:empty{ display:none; }
.pj-figure{ display:block; border:1px solid var(--border); border-radius:6px; overflow:hidden; background:#fff; }
.pj-figure img{ display:block; width:100%; height:auto; }
.pj-version-sous[data-genre="incomplet"]{ color:var(--err); }

@media (max-width: 760px){
  .pj-main{ flex-direction:column; }
  .pj-cote{ width:auto; border-right:0; border-bottom:1px solid var(--border); max-height:45vh; }
  .pj-fiche{ padding:16px; }
  .pj-grille, .pj-sous-grille{ grid-template-columns:1fr; }
  .pj-lecteur{ flex-direction:column; height:auto; }
  .pj-parties{ width:auto; max-height:200px; border-right:0; border-bottom:1px solid var(--border); }
  .pj-figures-duo{ grid-template-columns:1fr; }
  .pj-comparer{ margin-left:0; }
}

/* ── Lecture : texte et marge, comme des commentaires Word (2026-10-01) ── */
.pj-lecture{
  flex:1; min-width:0; overflow:auto; position:relative;
  display:grid; grid-template-columns:minmax(0, 1fr) 330px; align-items:start;
}
.pj-lecture[data-sans-marge="1"]{ grid-template-columns:minmax(0, 1fr); }
.pj-lecture[data-sans-marge="1"] .pj-marge{ display:none; }
.pj-marge{ border-left:1px solid var(--border); min-height:100%; background:var(--bg2); }
.pj-marge-tete{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-left:auto; }
.pj-marge-tete[hidden]{ display:none; }
.pj-marge-reglages{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pj-marge-tete[data-repliee="1"] .pj-marge-reglages{ display:none; }
.pj-marge-bascule{
  background:transparent; border:1px solid var(--border); border-radius:999px; padding:2px 10px;
  font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; cursor:pointer;
}
.pj-marge-bascule:hover{ color:var(--text); }
.pj-marge-bascule[aria-pressed="true"]{ color:var(--text); border-color:var(--text-dim); }
.pj-marge-libelle{ font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; }
.pj-segments{ display:flex; border:1px solid var(--border); border-radius:999px; overflow:hidden; }
.pj-segments button{ background:transparent; border:0; padding:3px 12px; font-size:12px; cursor:pointer; color:var(--text-dim); }
.pj-segments button[aria-selected="true"]{ background:var(--bg3); color:var(--projet); }
.pj-marge-filtres{ display:flex; gap:4px; flex-wrap:wrap; }
.pj-marge-filtres button{
  background:transparent; border:1px solid var(--border); border-radius:999px; padding:1px 8px;
  font-size:11px; color:var(--text-dim); cursor:pointer;
}
.pj-marge-filtres button[aria-pressed="true"]{ color:var(--text); border-color:var(--text-dim); }

/* Les bulles : alignées sur leur passage (data-ancree) ou rangées en liste. */
.pj-bulles{ list-style:none; margin:0; padding:8px 10px 16px; position:relative; min-height:var(--hauteur, auto); }
.pj-bulle{
  border:1px solid var(--border); border-left:3px solid var(--border); border-radius:6px; background:var(--bg);
  padding:6px 8px; margin-bottom:8px; display:flex; flex-direction:column; gap:3px; font-size:12px; cursor:pointer;
}
.pj-bulle[data-ancree="1"]{ position:absolute; left:10px; right:10px; top:var(--haut, 0); margin:0; }
.pj-marge-suite{ list-style:none; position:absolute; left:10px; right:10px; top:var(--haut, 0); }
.pj-bulles-suite{ list-style:none; margin:0; padding:0; }
.pj-bulle[data-type="exigence"]{ border-left-color:var(--accent); }
.pj-bulle[data-type="question"]{ border-left-color:#5dade2; }
.pj-bulle[data-type="decision"]{ border-left-color:var(--projet); }
.pj-bulle[data-actif="1"]{ border-color:var(--text-dim); box-shadow:0 0 0 1px var(--text-dim); }
.pj-bulle-tete{ display:flex; align-items:center; gap:6px; }
.pj-bulle-tete .pj-espace{ flex:1; }
.pj-bulle-titre{ font-weight:600; font-size:12.5px; line-height:1.35; }
.pj-bulle-enonce{ margin:0; color:var(--text-dim); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pj-bulle-sous{ color:var(--text-dim); font-size:11px; display:flex; flex-wrap:wrap; gap:6px; }
.pj-bulle-sous[data-genre="alerte"]{ color:#e67e22; }
.pj-bulle select{ background:var(--bg2); border:1px solid var(--border); border-radius:5px; padding:0 4px; font-size:11px; }
.pj-icone{ background:none; border:0; color:var(--text-dim); cursor:pointer; padding:0 3px; font-size:12px; }
.pj-icone:hover{ color:var(--text); }
.pj-icone[data-genre="danger"]:hover{ color:var(--err); }
.pj-marge-groupe{ list-style:none; margin:10px 0 4px; font-size:11px; color:var(--text-dim); text-transform:uppercase; letter-spacing:.04em; }
.pj-marge-vide{ list-style:none; color:var(--text-dim); font-size:12px; }

/* Le passage annoté, dans le texte. */
.pj-ancre{ background:rgba(214,210,51,.16); color:inherit; border-bottom:1px solid rgba(214,210,51,.6); cursor:pointer; border-radius:2px; }
.pj-ancre[data-type="question"]{ background:rgba(52,152,219,.16); border-bottom-color:rgba(52,152,219,.7); }
.pj-ancre[data-type="decision"]{ background:rgba(39,174,96,.16); border-bottom-color:rgba(39,174,96,.7); }
.pj-ancre[data-actif="1"]{ outline:1px solid var(--text-dim); }
.pj-figure-relever[data-annotee="1"] .pj-figure{ box-shadow:0 0 0 2px rgba(214,210,51,.6); }

/* Les PROPOSITIONS du relevé (2026-10-07) : derrière le filtre
   « Propositions » ; en pointillés tant qu'on ne les a pas acceptées. */
.pj-bulle[data-proposition="1"]{ border-style:dashed; border-left-style:solid; background:transparent; }
.pj-bulle-regle{ color:var(--text-dim); font-size:10.5px; font-style:italic; }
.pj-bulle-liste{ margin:0; padding-left:14px; color:var(--text-dim); max-height:9em; overflow:auto; }
.pj-bulle-actions{ display:flex; gap:6px; flex-wrap:wrap; margin-top:2px; }
.pj-ancre[data-proposition="1"]{ background:transparent; border-bottom-style:dashed; }
.pj-marge-ailleurs{ list-style:none; display:flex; flex-wrap:wrap; gap:4px; font-size:11px; color:var(--text-dim); }
.pj-marge-ailleurs button{ background:transparent; border:1px solid var(--border); border-radius:999px; padding:0 7px; font-size:11px; color:var(--text-dim); cursor:pointer; }
.pj-marge-ailleurs button:hover{ color:var(--text); }
.pj-badge[data-genre="proposition"]{ color:var(--text-dim); border-style:dashed; }

/* Rechercher dans le document (2026-10-07) : surlignage par l'API Highlight
   du navigateur — le texte et ses ancres ne sont pas touchés. */
.pj-recherche{ display:flex; align-items:center; gap:4px; }
.pj-recherche[hidden]{ display:none; }
.pj-recherche input{ background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:4px 8px; font-size:12px; color:var(--text); width:220px; max-width:60vw; }
.pj-chercher-compte{ font-size:11px; color:var(--text-dim); white-space:nowrap; }
.pj-partie-titres{ display:block; font-size:11px; color:var(--text-dim); line-height:1.3; margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pj-badge[data-genre="trouve"]{ color:#e67e22; border-color:rgba(230,126,34,.5); }
::highlight(pj-trouve){ background-color:rgba(230,126,34,.30); }
::highlight(pj-trouve-courant){ background-color:rgba(230,126,34,.85); color:#000; }

/* « Relever » apparaît à côté de la sélection, comme « Nouveau commentaire ». */
.pj-relever-flottant{ position:absolute; z-index:3; left:var(--x, 0); top:var(--y, 0); padding:3px 10px; font-size:12px; }

.pj-el-resume{ color:var(--text-dim); font-size:12px; flex:1; margin-left:4px; }

@media (max-width: 1100px){
  .pj-lecture{ grid-template-columns:minmax(0, 1fr); }
  .pj-marge{ border-left:0; border-top:1px solid var(--border); }
  .pj-bulle[data-ancree="1"], .pj-marge-suite{ position:static; margin-bottom:8px; }
}

/* ── Place au document lu (2026-10-09) ───────────────────────────────
   Un document ouvert : la liste des projets se replie (bouton « Projets »),
   la fiche n'a plus de largeur maximale et le lecteur prend la hauteur de
   l'écran. (Kid ouvert : la page se pousse — règle commune dans kid.css.) */
.pj-main[data-cote-replie="1"] .pj-cote{ display:none; }
.pj-main[data-lecture="1"] .pj-fiche{ max-width:none; }
.pj-main[data-lecture="1"] .pj-lecteur{ height:calc(100vh - 200px); }
#pj-cote-bascule[aria-pressed="true"]{ border-color:var(--projet); color:var(--projet); }

/* Le menu des versions, dans la barre du lecteur (2026-10-09). */
.pj-menu{ position:relative; }
.pj-menu > summary{ list-style:none; }
.pj-menu > summary::-webkit-details-marker{ display:none; }
.pj-menu > summary::after{ content:" ▾"; color:var(--text-dim); }
.pj-menu-contenu{
  position:absolute; top:calc(100% + 6px); left:0; z-index:50; width:min(560px, 80vw); max-height:60vh; overflow:auto;
  padding:10px; background:var(--bg2); border:1px solid var(--border); border-radius:8px; box-shadow:0 10px 28px rgba(0,0,0,.45);
}

/* Rattacher des captures à une page (2026-10-27) */
.pj-cap-liste{ display:flex; flex-direction:column; gap:6px; max-height:50vh; overflow:auto; }
.pj-cap-liste:empty::before{ content:'Aucune capture versée à part dans ce projet.'; color:var(--text-dim); font-size:12px; }
.pj-cap-sous{ color:var(--text-dim); font-size:11.5px; }

/* Lecture d'une réunion par Kid (2026-11-04) : où elle en est. */
.pj-reunion { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; padding: 6px 10px;
  border: 1px solid var(--border); border-radius: 6px; font-size: 12.5px; color: var(--text-dim); }
.pj-reunion[data-etat="erreur"] { border-color: var(--err); }
.pj-reunion-barre { flex: 1 1 120px; height: 4px; border-radius: 2px; background: var(--bg3); position: relative; overflow: hidden; }
.pj-reunion-barre::after { content: ""; position: absolute; inset: 0 auto 0 0; width: calc(var(--avance, 0) * 100%); background: var(--accent); }

/* La bulle qui vient de remplacer celle sur laquelle on a cliqué (2026-11-04). */
.pj-bulle.pj-bulle-vient { outline: 2px solid var(--accent); outline-offset: 2px; transition: outline-color 1.2s ease-out; }

/* ── Les AXES du projet (2026-11-04, maquette https://claude.ai/artifact/45Zxb4HxAy4KM5s8TRdbJL) ── */
.pj-vues { display: flex; gap: 2px; margin-left: auto; padding: 2px; border: 1px solid var(--border); border-radius: 8px; }
.pj-vues .pj-btn { border: none; background: transparent; color: var(--text-dim); }
.pj-vues .pj-btn[aria-pressed="true"] { background: var(--bg3); color: var(--text); }
.pj-fiche[data-vue="ensemble"] > :not(.pj-fiche-tete):not(#pj-ens) { display: none !important; }
.pj-fiche:not([data-vue="ensemble"]) #pj-ens { display: none; }
.pj-fiche[data-vue="axes"] > :not(.pj-fiche-tete):not(#pj-axes) { display: none !important; }
.pj-fiche:not([data-vue="axes"]) #pj-axes { display: none; }
.pj-axes { display: flex; flex-direction: column; gap: 14px; }
.pj-ax-sources { display: flex; flex-direction: column; gap: 8px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg2); }
.pj-ax-rang { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; min-height: 26px; overflow: hidden; }
.pj-ax-rang > .pj-ax-lab { flex-shrink: 0; }
.pj-ax-rang > .pj-ax-puce { display: inline-block; min-width: 3em; flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
.pj-ax-rang > .pj-ax-puce:not([data-genre]) { flex-shrink: 4; }
.pj-ax-etat { flex: 1; min-width: 0; display: flex; gap: 6px 16px; overflow: hidden; }
.pj-ax-etat > .pj-ax-a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.pj-ax-rang-etat > button { flex-shrink: 0; margin-left: auto; }
.pj-ax-lab { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--text-dim); }
.pj-ax-espace { flex: 1; }
.pj-ax-puce { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 12px; line-height: 18px; white-space: nowrap; border: 1px solid var(--border); color: var(--text-dim); background: transparent; font-family: inherit; }
.pj-ax-puce[data-genre="ok"] { color: #7fd39b; border-color: #275237; background: #16281d; }
.pj-ax-puce[data-genre="av"] { color: #e8c25a; border-color: #5a4a1f; background: #2c2614; }
.pj-ax-puce[data-genre="vide"] { color: #f0a39a; border-color: #5a2e2a; background: #2a1c1c; }
.pj-ax-puce[data-genre="src"] { color: #9ccfff; border-color: #2c4256; background: #1f2a33; }
button.pj-ax-puce[data-genre="src"] { cursor: pointer; }
button.pj-ax-puce[data-genre="src"]:hover { border-color: #9ccfff; }
.pj-ax-comptes { display: flex; flex-wrap: wrap; gap: 18px; font-size: 13px; color: var(--text-dim); }
.pj-ax-comptes b { color: var(--text); }
.pj-ax-corps { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; }
.pj-ax-liste { flex: 1 1 260px; max-width: 340px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pj-ax-item { font: inherit; text-align: left; cursor: pointer; display: flex; flex-direction: column; gap: 5px; padding: 9px 11px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg2); color: var(--text); }
.pj-ax-item[aria-current="true"] { border-color: var(--accent); }
.pj-ax-item-tete { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; }
.pj-ax-item-comptes { font-size: 12px; color: var(--text-dim); }
.pj-ax-detail { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 14px; padding: 16px 18px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg2); }
.pj-ax-detail-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pj-ax-detail-tete h2 { margin: 0; font-size: 18px; }
.pj-ax-bloc { display: flex; flex-direction: column; gap: 6px; }
.pj-ax-bloc > .pj-btn { align-self: flex-start; }
.pj-ax-bloc[data-genre="acquis"] > .pj-ax-lab { color: #7fd39b; }
.pj-ax-bloc[data-genre="change"] > .pj-ax-lab { color: #e8c25a; }
.pj-ax-bloc[data-genre="ouvert"] > .pj-ax-lab { color: #9ccfff; }
.pj-ax-phrase { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 12px; padding: 7px 10px; border-radius: 6px; background: var(--bg3); }
.pj-ax-bloc[data-genre="ouvert"] .pj-ax-phrase { border: 1px dashed #2c4256; }
.pj-ax-phrase > span:first-child { min-width: 0; flex: 1 1 260px; }
.pj-ax-refs { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.pj-ax-a { font-size: 12px; color: var(--text-dim); }
.pj-ax-phrase input { flex: 1 1 260px; min-width: 0; }
.pj-ax-preuves summary { cursor: pointer; color: var(--text-dim); font-size: 13px; }
.pj-ax-preuves ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.pj-ax-preuves li { display: flex; gap: 8px; align-items: baseline; font-size: 12.5px; color: var(--text-dim); }
.pj-ax-preuves li > span:first-child { min-width: 2.2em; text-align: right; color: var(--text-dim); }
.pj-ax-vide { color: var(--text-dim); font-size: 13px; }
.pj-ax-couvre { margin: -6px 0 0; font-size: 13px; color: var(--text-dim); }
.pj-ax-alimente { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid var(--border); padding-top: 12px; }
.pj-ax-alimente a.pj-ax-puce { text-decoration: none; color: var(--text); }

/* ── Ensemble du projet (2026-11-06) ─────────────────────────────────────── */
.pj-ens { display: flex; flex-direction: column; gap: 14px; }
.pj-ens-bande { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; background: var(--bg2); border: 1px solid var(--border);
  border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.pj-ens-bande[data-etat="en_cours"], .pj-ens-bande[data-etat="prevue"] { border-color: rgba(214,210,51,.4); }
.pj-ens-bande .pj-ens-espace { flex-grow: 1; }
.pj-ens-etapes { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.pj-ens-etape { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px;
  background: var(--bg3); min-width: 140px; flex: 1 1 140px; }
.pj-ens-etape[data-etat="en_cours"] { border-color: rgba(214,210,51,.5); }
.pj-ens-etape[data-etat="termine"] { border-color: rgba(39,174,96,.45); }
.pj-ens-etape[data-etat="erreur"] { border-color: rgba(231,76,60,.5); }
.pj-ens-etape[data-etat="sans_objet"] { opacity: .6; }
.pj-ens-etape span:last-child { font-size: 11.5px; color: var(--text-dim); }
.pj-ens-corps { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.pj-ens-col { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px;
  display: flex; flex-direction: column; gap: 6px; box-sizing: border-box; }
.pj-ens-docs { flex: 0 1 260px; min-width: 200px; }
.pj-ens-signaux { flex: 0 1 300px; min-width: 220px; }
.pj-ens-produit { flex: 999 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.pj-ens-etiq { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-dim); }
.pj-ens-tete { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pj-ens-doc { display: flex; flex-direction: column; gap: 2px; padding: 6px 0; border-bottom: 1px solid var(--bg3); }
.pj-ens-doc { min-width: 0; }
/* Un nom de fichier sans espace (RMCSTORY_1020942735910_…) se coupe où il faut, sans déborder de la carte. */
.pj-ens-doc button { background: none; border: 0; padding: 0; color: var(--text); font: inherit; font-size: 13px; text-align: left; cursor: pointer;
  max-width: 100%; overflow-wrap: anywhere; }
.pj-ens-doc span, .pj-ens-col { overflow-wrap: anywhere; min-width: 0; }
.pj-ens-doc button:hover { color: var(--accent); }
.pj-ens-doc span { font-size: 12px; color: var(--text-dim); }
.pj-ens-seq { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
.pj-ens-wf { display: flex; flex-direction: column; gap: 3px; flex: 1 1 130px; min-width: 0; background: var(--bg3); border: 1px solid #33373c;
  border-radius: 8px; padding: 8px 10px; color: var(--text); text-decoration: none; font-size: 13px; }
.pj-ens-wf:hover { border-color: rgba(214,210,51,.5); }
.pj-ens-wf[data-genre="geste"] { border-style: dashed; border-color: #7a5a2a; }
.pj-ens-wf[data-genre="declencheur"] { flex: 0 1 150px; color: var(--text-dim); }
.pj-ens-wf b { font-weight: 600; overflow-wrap: anywhere; }
.pj-ens-wf span { font-size: 11.5px; color: var(--text-dim); }
.pj-ens-wf .pj-ens-alerte { color: var(--warn); }
.pj-ens-fleche { align-self: center; color: var(--text-dim); }
.pj-ens-ligne { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: var(--text-dim); }
.pj-ens-ligne b { color: var(--text); font-weight: 600; }
.pj-ens-grille { display: flex; flex-wrap: wrap; gap: 14px; }
.pj-ens-grille > .pj-ens-col { flex: 1 1 300px; }
.pj-ens-barre { display: flex; height: 9px; border-radius: 5px; overflow: hidden; background: var(--bg); }
.pj-ens-barre span { display: block; height: 100%; width: var(--part, 0%); }
.pj-ens-barre [data-part="constante"] { background: #6f7880; }
.pj-ens-barre [data-part="remplie"] { background: var(--projet); }
.pj-ens-barre [data-part="aRemplir"] { background: #3a2f22; }
.pj-ens-axes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 24px; }
.pj-ens-axe { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--bg3); font-size: 13px; }
.pj-ens-axe button { background: none; border: 0; padding: 0; color: var(--accent); font: inherit; text-align: left; cursor: pointer; }
.pj-ens-axe span { font-size: 11.5px; color: var(--text-dim); white-space: nowrap; }
.pj-ens-signal { display: flex; flex-direction: column; gap: 3px; padding: 8px 0; border-bottom: 1px solid var(--bg3); font-size: 13px; line-height: 1.35; }
.pj-ens-signal span { font-size: 11.5px; color: var(--text-dim); }
.pj-ens-vide { color: var(--text-dim); font-size: 13px; }
.pj-ens-col a { color: var(--accent); text-decoration: none; font-size: 13px; }
.pj-ens-groupe { border-top: 1px solid var(--bg3); padding-top: 6px; }
.pj-ens-groupe summary { cursor: pointer; font-size: 12px; color: var(--text-dim); padding: 2px 0; }
.pj-ens-groupe[open] summary { margin-bottom: 2px; }
