/* ══════════════════════════════════════════════════════════════════════════════════════════════════
   ESPACE CABINET — système visuel autonome.

   ⛔ Cette feuille n'importe RIEN de `manager.css`, et ce n'est pas une coquetterie. Le monde manager
      y garde des classes qui portent sa sémantique — disponibilité, complétude, cote, badges de
      membre — et les importer mettrait à portée d'un copier-coller exactement ce que le contrat
      d'étanchéité interdit d'afficher à un cabinet. Le précédent du monde entreprise charge les
      94 ko de `manager.css` pour dix variables : on ne rejoue pas ça.

   ⭐ CLAIR ET SOMBRE À ÉGALITÉ (décision du 24/08/2026). Trois états, pas deux : un choix explicite
      estampille `data-theme` sur la racine, et le réglage « système » n'estampille RIEN — seule
      `prefers-color-scheme` sépare alors le clair du sombre. Donc : la palette claire complète sur
      `:root` nu, les jetons redéfinis sous la requête de média GARDÉE par `:not([data-theme="light"])`
      pour qu'un choix clair batte un système sombre, et redéfinis une troisième fois sous
      `[data-theme="dark"]` pour que la bascule gagne dans les deux sens.
      ⛔ Aucune couleur ne doit avoir sa SEULE définition dans un bloc de média ou de thème : elle ne
      s'appliquerait pas dans l'état non estampillé, et la page rendrait le texte d'un thème sur le
      fond de l'autre.

   ⭐ La différence avec le monde manager ne peut plus reposer sur le fond, puisque les deux thèmes
      existent ici aussi. Elle tient donc à trois choses : l'ACCENT vert-ardoise là où les managers ont
      un bleu-violet, une COLONNE de 960 px là où ils en ont 1200, et l'ABSENCE TOTALE de leur chrome —
      ni cloche, ni avatar, ni messagerie, ni barre de navigation reconnaissable.
   ══════════════════════════════════════════════════════════════════════════════════════════════════ */

:root{
  /* ⭐ CHARTE UNIFIÉE (demande PA) : l'espace cabinet adopte la charte COULEUR de l'espace manager —
     accent indigo/périwinkle, fonds bleutés, or réservé au « vérifié »/logo. Une seule marque, un seul
     code couleur pour tout le monde. Les composants ne changent pas : ils lisent ces jetons. */
  --cb-bg:#eceef6; --cb-surface:#ffffff; --cb-surface-2:#f3f5fb;
  --cb-line:rgba(26,28,40,.12); --cb-line-strong:rgba(26,28,40,.22);
  --cb-ink:#1a1c24; --cb-ink-2:#5c5f74; --cb-ink-3:#686b80;
  --cb-accent:#5b6fd0; --cb-accent-ink:#ffffff;
  --cb-accent-soft:rgba(91,111,208,.12); --cb-accent-line:rgba(91,111,208,.34);
  --cb-ok:#1f8a5f; --cb-attente:#b06a12; --cb-attente-soft:rgba(176,106,18,.12); --cb-attente-line:rgba(176,106,18,.34); --cb-refus:#9a2f2f;
  /* L'or ne sert QU'au point du logotype. Jamais un bouton, jamais un lien : sur fond clair son
     contraste tombe à ~1,7:1, et `manager.css` corrige ce défaut par quarante sélecteurs en
     `!important`. On ne reproduit pas cette dette. */
  --cb-or:#7d5f10;
  /* Numéro d'appel du pied : l'encre sur fond CLAIR (l'or y est illisible), l'or sur fond sombre. */
  --cb-tel:var(--cb-ink);
  --cb-pop:0 8px 24px rgba(23,26,38,.10);
  --cb-col:960px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --cb-bg:#0f0f14; --cb-surface:#1b1b25; --cb-surface-2:#20202b;
    --cb-line:rgba(255,255,255,.13); --cb-line-strong:rgba(255,255,255,.24);
    --cb-ink:#ffffff; --cb-ink-2:#c3c6d6; --cb-ink-3:#9698ad;
    --cb-accent:#a2b7f2; --cb-accent-ink:#161616;
    --cb-accent-soft:rgba(162,183,242,.14); --cb-accent-line:rgba(162,183,242,.40);
    --cb-ok:#5fbf94; --cb-attente:#e0a24a; --cb-attente-soft:rgba(224,162,74,.15); --cb-attente-line:rgba(224,162,74,.40); --cb-refus:#e6928a;
    --cb-or:#e8c87a;
    --cb-tel:var(--cb-or);
    --cb-pop:0 8px 24px rgba(0,0,0,.45);
  }
}
:root[data-theme="dark"]{
  --cb-bg:#0f0f14; --cb-surface:#1b1b25; --cb-surface-2:#20202b;
  --cb-line:rgba(255,255,255,.13); --cb-line-strong:rgba(255,255,255,.24);
  --cb-ink:#ffffff; --cb-ink-2:#c3c6d6; --cb-ink-3:#9698ad;
  --cb-accent:#a2b7f2; --cb-accent-ink:#161616;
  --cb-accent-soft:rgba(162,183,242,.14); --cb-accent-line:rgba(162,183,242,.40);
  --cb-ok:#5fbf94; --cb-attente:#e0a24a; --cb-attente-soft:rgba(224,162,74,.15); --cb-attente-line:rgba(224,162,74,.40); --cb-refus:#e6928a;
  --cb-or:#e8c87a;
  --cb-tel:var(--cb-or);
  --cb-pop:0 8px 24px rgba(0,0,0,.45);
}

*{box-sizing:border-box}
/* ⛔ Le fond du corps est explicite : la page composite sur un fond peint par le navigateur, et un
   corps transparent emprunterait le thème de l'hôte. */
body{margin:0;background:var(--cb-bg);color:var(--cb-ink-2);
     font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
     font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--cb-accent)}
/* Échelle FERMÉE à six crans. `manager.css` compte dix-huit tailles distinctes, dont quarante-quatre
   déclarations en 12,5 px : ce n'est pas une échelle, c'est une accumulation. */
h1{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:24px;line-height:1.18;
   color:var(--cb-ink);margin:0 0 12px;text-wrap:balance}
h2{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:21px;line-height:1.22;
   color:var(--cb-ink);margin:0 0 8px;text-wrap:balance}
p{margin:0 0 12px}
strong{color:var(--cb-ink);font-weight:600}

/* ── La coque ─────────────────────────────────────────────────────────────────────────────────── */
.cb-bar{display:flex;align-items:center;gap:14px;padding:11px 22px;background:var(--cb-surface);
        border-bottom:1px solid var(--cb-line);flex-wrap:wrap}
/* ⛔ Sur desktop, le bandeau NE PASSE JAMAIS À LA LIGNE : logo + lune + avatar y tiennent toujours.
   Quand `flex-wrap` le faisait passer sur deux lignes (avatar en ligne 2), le logo restait calé en HAUT
   de la ligne 1 et paraissait « pas centré » (mesuré sur Avis, 28/09). Le repli mobile (<900px, avec le
   bouton Menu) garde le retour à la ligne. */
@media (min-width:901px){ .cb-bar{flex-wrap:nowrap} }
.cb-wm{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14.5px;
       color:var(--cb-ink);letter-spacing:-.01em;text-decoration:none}
.cb-wm .cb-dot{width:7px;height:7px;border-radius:999px;background:var(--cb-or);flex:none}
.cb-wm span{font-weight:500;color:var(--cb-ink-3)}
.cb-bar-r{margin-left:auto;display:flex;align-items:center;gap:12px;
          font-size:13px;color:var(--cb-ink-3)}
/* ── Barre haute alignée sur le portail manager : icône thème + pastille avatar avec menu (13/09/2026). */
.cb-ic{width:36px;height:36px;flex:none;display:inline-grid;place-items:center;border-radius:999px;
  border:1px solid var(--cb-line-strong);background:transparent;color:var(--cb-ink-2);cursor:pointer;padding:0}
.cb-ic:hover{border-color:var(--cb-accent);color:var(--cb-ink)}
.cb-ic:focus-visible{outline:2px solid var(--cb-accent);outline-offset:2px}
.cb-ic svg{width:18px;height:18px}
.cb-ava-wrap{position:relative}
/* ⛔ Classe DISTINCTE de `.cb-ava` (88px, vignette « Mes informations ») : réutiliser le même nom faisait
   gagner le rendu 88px sur la pastille de la barre. Ici 36px, comme l'avatar du portail manager. */
.cb-navava{width:36px;height:36px;flex:none;border-radius:999px;display:grid;place-items:center;padding:0;
  font-weight:600;font-size:12.5px;letter-spacing:.02em;color:var(--cb-accent);background:var(--cb-accent-soft);
  border:1px solid var(--cb-accent-line);cursor:pointer}
.cb-navava.has-photo{overflow:hidden;background:none;border-color:var(--cb-line)}
.cb-navava.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.cb-navava:hover{border-color:var(--cb-accent)}
.cb-navava:focus-visible{outline:2px solid var(--cb-accent);outline-offset:2px}
.cb-ava-menu{position:absolute;right:0;top:44px;z-index:60;min-width:232px;background:var(--cb-surface);
  border:1px solid var(--cb-line-strong);border-radius:12px;padding:8px;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.cb-ava-menu[hidden]{display:none}
.cb-ava-id{padding:8px 10px 10px;border-bottom:1px solid var(--cb-line);margin-bottom:6px}
.cb-ava-id b{display:block;color:var(--cb-ink);font-size:13.5px}
.cb-ava-id span{font-size:12px;color:var(--cb-ink-3);word-break:break-all}
.cb-ava-logout,.cb-ava-lien{width:100%;text-align:left;background:transparent;border:none;color:var(--cb-ink-2);
  font:inherit;font-size:13.5px;font-weight:500;padding:9px 10px;border-radius:8px;cursor:pointer;
  text-decoration:none;box-sizing:border-box;display:flex;align-items:center;gap:9px}
.cb-ava-logout:hover,.cb-ava-lien:hover{background:var(--cb-surface-2);color:var(--cb-ink)}
.cb-ava-logout svg,.cb-ava-lien svg{width:16px;height:16px;flex:none}
/* ── Annonces : tableau de bord (§18). Filtres, cartes compactes, interrupteur point vert/rouge (sans
   entourage), actions en petites icônes. */
.cb-annonces-head{display:flex;justify-content:space-between;align-items:center;gap:12px 16px;flex-wrap:wrap;margin-bottom:16px}
.cb-annonces-head .cb-fbar{margin-bottom:0}
.cb-fbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.cb-fchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:6px 13px;
  border-radius:999px;border:1px solid var(--cb-line);background:var(--cb-surface);color:var(--cb-ink-3);text-decoration:none}
.cb-fchip:hover{color:var(--cb-ink)}
.cb-fchip.on{background:var(--cb-accent);color:var(--cb-accent-ink);border-color:var(--cb-accent)}
.cb-fchip .n{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;opacity:.85;font-variant-numeric:tabular-nums}
/* « Générer par IA » : l'assistant de dépôt, panneau discret posé au-dessus du formulaire. */
.cb-ia{background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line);border-radius:12px;padding:16px;margin-bottom:16px}
.cb-ia-t{margin:0 0 10px;font-size:13.5px;line-height:1.5;color:var(--cb-ink)}
.cb-ia textarea.cb-in{min-height:74px;line-height:1.5;resize:vertical;background:var(--cb-surface)}
.cb-ia-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}
.cb-ia-file{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--cb-accent);padding:7px 12px;border:1px dashed var(--cb-accent-line);border-radius:8px}
.cb-ia-file:hover{background:var(--cb-accent-soft)}
.cb-ia-bilan{margin-top:12px;padding:11px 13px;border-radius:9px;background:var(--cb-surface);border:1px solid var(--cb-line);box-shadow:inset 3px 0 0 var(--cb-accent)}
.cb-ia-bilan p{margin:0 0 5px;font-size:12.5px;line-height:1.5}
.cb-ia-bilan p:last-child{margin-bottom:0}
.cb-ann{background:var(--cb-surface);border:1px solid var(--cb-line);border-radius:11px;padding:13px 10px 13px 16px;margin-bottom:8px}
.cb-ann-top{display:flex;align-items:center;gap:8px}
.cb-ann-top form{margin:0;display:inline-flex}
.cb-ann-t{font-weight:600;font-size:15px;color:var(--cb-ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cb-etat{padding:7px;border:none;background:none;cursor:pointer;display:inline-flex;align-items:center;line-height:0;flex:none}
.cb-etat .pt{width:9px;height:9px;border-radius:999px;display:block;transition:transform .12s}
.cb-etat.on .pt{background:var(--cb-ok)}
.cb-etat.off .pt{background:var(--cb-refus)}
.cb-etat:hover .pt{transform:scale(1.18)}
.cb-pill{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;flex:none;white-space:nowrap}
.cb-pill.gold{color:var(--cb-or);background:var(--cb-attente-soft)}
.cb-pill.done{color:var(--cb-ink-3);border:1px solid var(--cb-line)}
.cb-tools{display:flex;align-items:center;gap:2px;flex:none}
.cb-act{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--cb-ink-3);
  cursor:pointer;display:inline-grid;place-items:center;padding:0}
.cb-act svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.cb-act:hover{background:var(--cb-surface-2);color:var(--cb-ink);border-color:var(--cb-line)}
.cb-act.ok:hover{color:var(--cb-ok);border-color:rgba(99,189,147,.4)}
.cb-act.go:hover{color:var(--cb-accent);border-color:var(--cb-accent-line)}
.cb-act.danger:hover{color:var(--cb-refus);border-color:rgba(230,146,138,.4)}
.cb-ann-meta{display:flex;flex-wrap:wrap;gap:4px 15px;font-size:12px;color:var(--cb-ink-3);margin-top:7px}
.cb-ann-meta .cli{color:var(--cb-ink-2)}
.cb-page{max-width:var(--cb-col);margin:0 auto;padding:30px 22px 72px}
.cb-centre{min-height:64vh;display:flex;align-items:center;justify-content:center;padding:26px 22px 72px}

/* ── Les composants ───────────────────────────────────────────────────────────────────────────── */
.cb-card{background:var(--cb-surface);border:1px solid var(--cb-line);border-radius:12px;
         padding:20px 24px;display:flex;flex-direction:column;gap:12px}
/* Referencer : formulaire plus large que la carte d'authentification (beaucoup de champs a remplir).
   60% de la largeur, plafonne a la colonne du portail ; pleine largeur sur mobile. */
.cb-card.cb-wide{width:60%;max-width:var(--cb-col)}
@media (max-width:600px){.cb-card.cb-wide{width:100%}}
.cb-eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.15em;
            text-transform:uppercase;color:var(--cb-accent);margin:0}
.cb-note{font-size:13px;color:var(--cb-ink-3);margin:0}
.cb-verifie{font-size:11.5px;font-weight:600;color:var(--cb-ok);background:rgba(99,189,147,.14);
  border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:1px;letter-spacing:.01em}
/* ⛔ LA PROXIMITÉ ÉTAIT INVERSÉE : un libellé se trouvait à 5 px de son propre champ et à 0 px
   du champ précédent, donc rattaché à l'œil au mauvais champ. Les libellés et les champs sont
   enfants directs du formulaire, hors du `gap` de la carte : il faut les espacer ici.
   Mesuré au navigateur le 26/08/2026 sur les deux écrans qui portent la conversion. */
.cb-in + .cb-lbl, .cb-note + .cb-lbl{margin-top:16px}
/* Le `gap` de la carte suffit : les marges propres des enfants s'y AJOUTAIENT, donnant un
   rythme vertical à deux valeurs alternées (12 px puis 24 px selon le type d'élément). */
.cb-card > *{margin-bottom:0}
.cb-lbl{display:block;font-size:11.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
        color:var(--cb-ink-3);margin:0 0 5px}
.cb-in{width:100%;background:var(--cb-surface);border:1px solid var(--cb-line-strong);border-radius:8px;
       color:var(--cb-ink);font-family:inherit;font-size:16px;padding:10px 12px}
.cb-in:focus{outline:2px solid var(--cb-accent);outline-offset:1px;border-color:var(--cb-accent)}
.cb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;
        padding:0 18px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;
        border:1px solid var(--cb-accent);background:var(--cb-accent);color:var(--cb-accent-ink);
        cursor:pointer;text-decoration:none;white-space:nowrap}
.cb-btn.ghost{background:transparent;color:var(--cb-accent)}
.cb-btn.wide{width:100%}
/* ⛔ Aucun mouvement au survol. `manager.css` déplace ses cartes de 3 px : sur un outil de travail,
   un élément qui bouge sous le curseur est une gêne, pas une attention. */
.cb-btn:hover{border-color:var(--cb-ink);}
.cb-btn.ghost:hover{background:var(--cb-accent-soft)}
.cb-btn.danger{background:var(--cb-refus);border-color:var(--cb-refus);color:#fff}
.cb-btn.danger:hover{filter:brightness(1.08)}
/* ── « Ma présentation » : la VOIX du collaborateur (texte libre, opt-in §2.2). Chaque bloc est
   facultatif ; ce qui reste vide n'apparaît pas sur la fiche. Rien de bloquant, rien d'obligatoire. */
/* « Comment on vous joint » suit la carte « Ma présentation » : les deux cartes sont soeurs dans le
   panneau (pas de gap de conteneur), il faut donc espacer la seconde de la première. */
.cb-pres{margin-top:18px}
.cb-pres textarea.cb-in{min-height:60px;line-height:1.5;resize:vertical}
.cb-pres .cb-champ .cb-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 5px}
.cb-pres .cb-champ .cb-top .cb-lbl{margin:0}
.cb-pres .cnt{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;color:var(--cb-ink-3);flex:none;font-variant-numeric:tabular-nums}
.cb-pres .cnt.max{color:var(--cb-attente)}
.cb-ex{background:var(--cb-surface-2);border:1px dashed var(--cb-line-strong);border-radius:8px;
  padding:10px 12px;font-size:13px;color:var(--cb-ink-2);margin:6px 0 0}
.cb-ex b{color:var(--cb-accent);font-weight:600}
/* ── « Mes informations » : bandeau d'identité (photo en tête, toujours visible) + onglets. La photo
   monte en tête (c'est l'ancre de la fiche) ; Coordonnées et Ma présentation se rangent en deux onglets. */
.cb-idcard{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.cb-ava{width:88px;height:88px;flex:none;border-radius:999px;display:grid;place-items:center;overflow:hidden;
  font-family:"Playfair Display",Georgia,serif;font-size:30px;font-weight:700;color:var(--cb-accent);
  background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line)}
img.cb-ava{object-fit:cover}
.cb-idmeta{min-width:0}
.cb-idmeta h2{margin:0}
.cb-idmeta .fn{color:var(--cb-ink-3);margin:3px 0 0;font-size:14px}
.cb-photo-cta{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:7px 13px;background:transparent;
  border:1px solid var(--cb-line-strong);border-radius:999px;color:var(--cb-ink-2);font:inherit;font-size:12.5px;
  font-weight:600;cursor:pointer}
.cb-photo-cta:hover{border-color:var(--cb-accent);color:var(--cb-ink)}
.cb-photo-box{margin-bottom:16px}
.cb-photo-box[hidden]{display:none}
.cb-seg{display:inline-flex;gap:4px;background:var(--cb-surface);border:1px solid var(--cb-line);border-radius:999px;
  padding:4px;margin-bottom:16px;flex-wrap:wrap}
.cb-seg-b{display:inline-flex;align-items:center;gap:9px;border:none;background:transparent;cursor:pointer;
  font:inherit;font-size:14px;font-weight:600;color:var(--cb-ink-3);padding:9px 18px;border-radius:999px}
.cb-seg-b.is-on{background:var(--cb-accent);color:var(--cb-accent-ink)}
.cb-seg-b:focus-visible{outline:2px solid var(--cb-accent);outline-offset:2px}
.cb-todo{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;
  color:var(--cb-attente);background:var(--cb-attente-soft);border-radius:999px;padding:2px 8px}
.cb-seg-b.is-on .cb-todo{color:var(--cb-accent-ink);background:rgba(15,21,25,.18)}
[data-panel][hidden]{display:none}
/* ── « Ce que je place » (pastilles déclarées, saisie libre + suggestions) & « Comment on vous joint ». */
.cb-sep{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cb-ink-3);border-top:1px solid var(--cb-line);margin:18px 0 12px;padding-top:14px}
.cb-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--cb-surface);
  border:1px solid var(--cb-line-strong);border-radius:8px;padding:7px 8px}
.cb-tags:focus-within{outline:2px solid var(--cb-accent);outline-offset:1px;border-color:var(--cb-accent)}
.cb-tags-in{flex:1;min-width:12ch;border:none;background:transparent;color:var(--cb-ink);font:inherit;font-size:15px;padding:3px 4px}
.cb-tags-in:focus{outline:none}
.cb-tag{display:inline-flex;align-items:center;gap:5px;font-size:13px;padding:4px 6px 4px 11px;border-radius:999px;
  background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line);color:var(--cb-ink)}
.cb-tag-x{border:none;background:transparent;color:var(--cb-ink-3);font-size:15px;line-height:1;cursor:pointer;padding:0 2px}
.cb-tag-x:hover{color:var(--cb-ink)}
.cb-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--cb-ink-2);cursor:pointer;margin-bottom:6px}
.cb-check input{margin-top:2px;flex:none;width:17px;height:17px;accent-color:var(--cb-accent)}
/* Modale de confirmation (gestes irréversibles). ⛔ Le garde [hidden] est explicite : sans lui,
   `display:grid` battrait l'attribut `hidden` et la modale resterait ouverte en permanence. */
.cb-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;
  background:rgba(8,11,16,.62)}
.cb-modal[hidden]{display:none}
.cb-modal-box{background:var(--cb-surface);border:1px solid var(--cb-line-strong);border-radius:16px;
  box-shadow:var(--cb-pop);max-width:min(100%,440px);padding:22px 24px}
.cb-modal-msg{margin:0 0 12px;color:var(--cb-ink);font-size:15.5px;line-height:1.5}
.cb-modal-sous{margin:0 0 18px;color:var(--cb-ink-3);font-size:13.5px;line-height:1.55}
.cb-modal-sous[hidden]{display:none}
.cb-modal-alt{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}
.cb-modal-alt[hidden]{display:none}
.cb-modal-alt .cb-btn{width:100%;justify-content:center}
.cb-modal-act{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.cb-sep{height:1px;background:var(--cb-line);border:0;margin:4px 0}

/* « Référencer mon cabinet » : accroche d'appartenance + déroulé en 3 temps + bloc téléphone (vérification). */
.cb-lede{font-size:16px;line-height:1.6;color:var(--cb-ink-2);margin:0 0 24px}
.cb-lede strong{color:var(--cb-ink);font-weight:600}
.cb-flow{border:1px solid var(--cb-line);border-radius:14px;overflow:hidden;background:var(--cb-surface);margin:0 0 26px}
.cb-step{display:flex;gap:14px;padding:15px 17px;align-items:flex-start}
.cb-step + .cb-step{border-top:1px solid var(--cb-line)}
.cb-step-no{flex:none;width:26px;height:26px;border-radius:50%;background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line);color:var(--cb-accent);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;display:grid;place-items:center;margin-top:1px}
.cb-step-t{font-family:"Playfair Display",Georgia,serif;font-size:16px;font-weight:600;color:var(--cb-ink);margin:0 0 3px}
.cb-step p:not(.cb-step-t){margin:0;font-size:13.5px;color:var(--cb-ink-3);line-height:1.5}
.cb-step.key{background:var(--cb-accent-soft)}
.cb-step.key p:not(.cb-step-t){color:var(--cb-ink-2)}
.cb-tel-bloc{margin-top:16px;padding:15px 16px;border:1px solid var(--cb-accent-line);border-radius:12px;background:var(--cb-accent-soft)}
.cb-tel-bloc .cb-lbl{margin-top:0}
.cb-tel-bloc .cb-note{color:var(--cb-ink-2)}
.cb-tel-bloc .cb-note strong{color:var(--cb-ink)}

/* « Candidatures » : les managers qui se positionnent sur les annonces du cabinet, groupés par annonce. */
.cb-cand-grp{background:var(--cb-surface);border:1px solid var(--cb-line);border-radius:14px;overflow:hidden;margin-bottom:14px}
.cb-cand-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 17px;border-bottom:1px solid var(--cb-line)}
.cb-cand-hd .t{font-family:"Playfair Display",Georgia,serif;font-size:15.5px;color:var(--cb-ink);font-weight:600}
.cb-cand-hd .c{font-size:12.5px;color:var(--cb-ink-3);white-space:nowrap}
.cb-cand{display:flex;gap:14px;padding:15px 17px;align-items:flex-start}
.cb-cand + .cb-cand{border-top:1px solid var(--cb-line)}
.cb-cand-av{flex:none;width:42px;height:42px;border-radius:50%;background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line);color:var(--cb-accent);display:grid;place-items:center;font-weight:600;font-size:15px}
.cb-cand-body{flex:1;min-width:0}
.cb-cand-nm{font-weight:600;color:var(--cb-ink);font-size:15px}
.cb-cand-meta{font-size:12.5px;color:var(--cb-ink-3);margin-top:2px}
.cb-cand-msg{font-size:13.5px;color:var(--cb-ink-2);margin:8px 0 0;line-height:1.5;font-style:italic}
.cb-cand-ct{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-top:9px;font-size:13px;color:var(--cb-ink-2)}
.cb-cand-coord{display:inline-flex;align-items:center;gap:6px}
.cb-cand-ct svg{width:15px;height:15px;fill:none;stroke:var(--cb-ink-3);stroke-width:1.8;flex:none}
.cb-cand-ct a{color:var(--cb-accent);text-decoration:none}
.cb-cand-fiche{font-size:12.5px;font-weight:600;padding:5px 11px;border:1px solid var(--cb-accent-line);border-radius:999px;background:var(--cb-accent-soft)}
.cb-cand-fiche:hover{filter:brightness(1.12)}
.cb-cand-fiche.cv{border-color:var(--cb-line-strong);background:transparent;color:var(--cb-ink-2)}
.cb-cand-motif{margin-top:8px;font-size:12.5px;color:var(--cb-ink-3)}
.cb-cand-side{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex:none}
.cb-cand-stat{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--cb-accent-soft);color:var(--cb-accent)}
.cb-cand-stat.s-retenue{background:rgba(99,189,147,.16);color:var(--cb-ok)}
.cb-cand-stat.s-ecartee{background:rgba(230,146,138,.14);color:var(--cb-refus)}
.cb-cand-stat.s-discussion{background:var(--cb-attente-soft);color:var(--cb-attente)}
.cb-cand-g{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cb-g{font-size:12px;padding:6px 11px;border-radius:8px;border:1px solid var(--cb-line);background:transparent;color:var(--cb-ink-2);cursor:pointer;white-space:nowrap;font-family:inherit}
.cb-g:hover{border-color:var(--cb-line-strong)}
.cb-g.ok{border-color:var(--cb-accent-line);color:var(--cb-accent)}
.cb-g.danger{color:var(--cb-refus)}
.cb-alerte{border:1px solid;border-left-width:3px;border-radius:0 8px 8px 0;padding:12px 15px;
           display:flex;flex-direction:column;gap:6px;font-size:14px}
.cb-alerte.att{background:var(--cb-attente-soft);border-color:var(--cb-attente);color:var(--cb-ink)}
.cb-alerte.acc{background:var(--cb-accent-soft);border-color:var(--cb-accent-line);
               border-left-color:var(--cb-accent);color:var(--cb-ink)}
.cb-num{font-variant-numeric:tabular-nums}
/* Bandeau « Quoi de neuf » (effet wahou à chaque mise en production) — accent or, discret et premium. */
.cb-maj{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;padding:11px 15px;
        border:1px solid var(--cb-or-line);border-radius:12px;
        background:color-mix(in srgb,var(--cb-or) 9%,transparent)}
.cb-maj-t{font-size:14px;color:var(--cb-ink)}
.cb-maj-t b{font-family:"IBM Plex Mono",monospace;color:var(--cb-or)}
.cb-maj-go{margin-left:auto;font-size:13px;font-weight:600;text-decoration:none;color:#17120a;
           background:var(--cb-or);border-radius:999px;padding:6px 14px}
.cb-maj-x{border:0;background:none;color:var(--cb-ink-3);font-size:13px;cursor:pointer;padding:4px 6px}
.cb-maj-x:hover{color:var(--cb-ink)}

:focus-visible{outline:2px solid var(--cb-accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Le repli s'écrit à la spécificité de la règle qu'il corrige — la leçon du 23/08, où un repli en
   (0,2,0) perdait contre une règle desktop en (0,3,0) et ne s'appliquait donc jamais. */
@media (max-width:600px){
  .cb-page{padding:22px 16px 64px}
  .cb-centre{padding:18px 16px 64px}
  .cb-card{padding:18px 16px;border-radius:10px}
  h1{font-size:24px}
}

/* ═══════════════════════════════════════════════════════════════════════════════════════════════════
   LA COQUE DE TRAVAIL — rail permanent, repli en feuille (§15.1, §15.7)

   ⭐ Rail et non barre supérieure, et l'argument est MESURÉ : des libellés français dans une colonne de
      960 px reproduisent exactement le défaut relevé en recette mobile — 567 px demandés pour 343
      disponibles. L'espace vertical est gratuit, l'horizontal est le budget rare.
   ═══════════════════════════════════════════════════════════════════════════════════════════════════ */
/* ⭐ RAIL DE GAUCHE TOUJOURS AU MÊME ENDROIT (demande PA 28/09/2026). Le gabarit était CENTRÉ
   (`margin:0 auto`), donc le rail se déplaçait selon la largeur d'écran ; il est désormais ALIGNÉ À
   GAUCHE (plus de `auto`) → le rail est au même endroit sur toutes les pages.
   ⛔ On GARDE une largeur max de CONTENU : la pleine largeur intégrale étirait les lignes de texte à
      l'illisible et débordait à droite (mesuré sur Avis et Rechercher, 28/09). La messagerie, elle,
      lève ce plafond pour occuper toute la largeur (cf. cabinet/messages.html). */
.cb-travail{max-width:1320px;padding:22px 28px 72px;
  display:grid;grid-template-columns:196px minmax(0,1fr);gap:26px;align-items:start}
.cb-rail{position:sticky;top:18px}
.cb-vue{min-width:0}                       /* sans ça, un tableau large pousse la grille et le rail */

.cb-nav{display:flex;flex-direction:column;gap:2px}
.cb-nav-l{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;
  color:var(--cb-ink-2);text-decoration:none;font-size:14px;font-weight:550;line-height:1.25}
.cb-nav-l span:first-child{flex:1;min-width:0}
.cb-nav-l.petit{font-size:13px;font-weight:500;color:var(--cb-ink-3)}
.cb-nav-l:hover{background:var(--cb-surface-2);color:var(--cb-ink)}
.cb-nav-l.on{background:var(--cb-accent-soft);color:var(--cb-accent);font-weight:650;
  box-shadow:inset 2px 0 0 var(--cb-accent)}
.cb-nav-l:focus-visible{outline:2px solid var(--cb-accent);outline-offset:1px}

/* Le compteur n'est PAS un point rouge : c'est un nombre (§15.4). Un point ne dirait pas qu'il en
   reste trois, ni qu'il en reste deux jours. */
.cb-cpt{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  padding:0 6px;border-radius:999px;background:var(--cb-attente-soft);color:var(--cb-attente);
  border:1px solid var(--cb-attente);font-size:11.5px;font-weight:700;flex:none}
/* Repère « aperçu » : un onglet en développement (vague en cours), visible du seul canal aperçu. */
.cb-ap{font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--cb-or);background:color-mix(in srgb,var(--cb-or) 12%,transparent);
  border:1px solid var(--cb-or-line);border-radius:999px;padding:1px 6px;vertical-align:middle;margin-left:2px}
/* Bandeau « prise de main sur une EMT » (incarnation) — permanent, en tête de toute l'application. */
.cb-inc{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:13px;flex-wrap:wrap;
  padding:10px 20px;background:#e0a44a;color:#17120a;border-bottom:2px solid #a9741f}
.cb-inc-ic{width:24px;height:24px;border-radius:999px;background:#17120a;color:#e0a44a;display:inline-flex;
  align-items:center;justify-content:center;font-weight:800;flex:none}
.cb-inc-t{font-size:13.5px}
.cb-inc-quit{font:inherit;font-size:13px;font-weight:700;border-radius:999px;padding:6px 15px;
  border:1px solid #17120a;background:#17120a;color:#e0a44a;cursor:pointer}

.cb-menu{display:none}                      /* n'existe qu'au repli */
.cb-qui{font-size:12.5px;color:var(--cb-ink-2);max-width:38ch;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.cb-feuille{display:none}

/* Les deux notions jumelles, deux pastilles de MÊME largeur (§15.3). */
.cb-past{display:inline-block;min-width:15ch;text-align:center;margin-bottom:6px;padding:2px 9px;
  border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em;border:1px solid}
.cb-past.cabinet{background:var(--cb-accent-soft);border-color:var(--cb-accent-line);
  color:var(--cb-accent)}
.cb-past.communaute{background:var(--cb-surface-2);border-color:var(--cb-line-strong);
  color:var(--cb-ink-3)}

.cb-champ{display:flex;flex-direction:column;gap:3px}
.cb-champ + .cb-champ{margin-top:16px;padding-top:16px;border-top:1px solid var(--cb-line)}
.cb-lecture{margin:0;font-size:15px;color:var(--cb-ink)}
.cb-err{margin:0;font-size:12.5px;color:var(--cb-refus)}
/* La ligne INERTE qui remplace un bouton absent : elle nomme qui peut agir et offre une issue. Griser
   un bouton révèle par la négative ; l'absence pure laisse la personne sans explication. */
.cb-inerte{margin:0;padding:11px 14px;border:1px dashed var(--cb-line-strong);border-radius:8px;
  font-size:13.5px;color:var(--cb-ink-3)}
.cb-alerte.err{background:rgba(154,47,47,.09);border-color:var(--cb-refus);color:var(--cb-ink)}

.cb-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;
  margin-top:18px}
.cb-tuile{display:flex;flex-direction:column;gap:4px;padding:15px 16px;border-radius:12px;
  background:var(--cb-surface);border:1px solid var(--cb-line);text-decoration:none;color:inherit}
.cb-tuile:hover{border-color:var(--cb-accent-line)}
.cb-tuile-t{font-weight:650;font-size:14.5px;color:var(--cb-ink)}

/* ── Le repli. ⛔ JAMAIS de navigation supprimée : le rail devient un bandeau à bouton « Menu » qui
   ouvre une feuille pleine hauteur, avec les mêmes entrées issues du même gabarit.
   Le point de bascule est 900 px et non 375 : à 880 px la colonne de contenu tombe déjà sous 660 px,
   et c'est là que le rail commence à coûter plus qu'il ne rend. */
@media (max-width:900px){
  .cb-travail{grid-template-columns:minmax(0,1fr);padding:18px 16px 72px}
  .cb-rail{display:none}
  .cb-menu{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;
    border-radius:8px;border:1px solid var(--cb-line-strong);background:transparent;
    color:var(--cb-ink);font-size:12.5px;font-weight:600;cursor:pointer}
  .cb-feuille{display:block;position:fixed;inset:0;z-index:40;overflow:auto;
    padding:16px 14px calc(24px + env(safe-area-inset-bottom));background:var(--cb-bg)}
  .cb-feuille[hidden]{display:none}
  .cb-feuille .cb-nav-l{min-height:46px;font-size:15.5px}   /* cible tactile, jamais sous 44 px */
  .cb-qui{max-width:16ch}
}

/* ── La file « À décider ». L'échéance ordonne, la nouveauté décore (§15.4). */
.cb-card.urgent{border-color:var(--cb-attente);box-shadow:inset 3px 0 0 var(--cb-attente)}
.cb-ligne-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.cb-delai{margin-left:auto;font-size:12.5px;color:var(--cb-ink-3);white-space:nowrap}
.cb-delai.urgent{color:var(--cb-attente);font-weight:650}
.cb-avant-apres{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px 22px}
.cb-avant-apres .cb-lecture{word-break:break-word}
.cb-avant-apres .cb-lecture.propose{font-weight:600}
.cb-decider{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0}
.cb-refus{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.cb-refus .cb-lbl{margin:0 0 3px}
.cb-refus .cb-in{width:auto;min-width:17ch}
@media (max-width:600px){
  /* ⛔ Deux boutons PLEINE LARGEUR de 48 px, empilés (§15.7) : sur un écran étroit, deux boutons
     côte à côte à 44 px produisent des touchers ambigus sur une décision irréversible. */
  .cb-decider,.cb-refus{flex-direction:column;align-items:stretch;margin-left:0}
  .cb-decider .cb-btn{width:100%;min-height:48px}
  .cb-refus .cb-in{width:100%}
  .cb-delai{margin-left:0}
}

/* ── Onglets (annonces ouvertes / terminées). Un onglet porte son compte : « Terminées 0 » évite
   d'aller voir pour rien. */
.cb-onglets{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--cb-line)}
.cb-onglet{padding:9px 14px;border-radius:8px 8px 0 0;text-decoration:none;font-size:14px;
  font-weight:550;color:var(--cb-ink-3);border:1px solid transparent;border-bottom:0;
  margin-bottom:-1px}
.cb-onglet.on{color:var(--cb-ink);background:var(--cb-surface);border-color:var(--cb-line)}
.cb-onglet .cb-num{color:var(--cb-ink-3);font-weight:600}

/* La réponse du cabinet sous un avis : rattachée visuellement, jamais confondue avec l'avis lui-même. */
.cb-reponse{margin-top:10px;padding:11px 14px;border-left:3px solid var(--cb-accent-line);
  background:var(--cb-surface-2);border-radius:0 8px 8px 0}

/* Un bureau fermé reste visible, mais en retrait : il documente le passé, il ne propose plus rien. */
.cb-card.ferme{opacity:.7;border-style:dashed}

/* Le monogramme d'initiales, à défaut de photo (§6). ⛔ Jamais une silhouette générique : elle signale
   un dossier incomplet là où il n'y a qu'une absence de choix. */
.cb-mono{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;
  border-radius:999px;background:var(--cb-accent-soft);border:1px solid var(--cb-accent-line);
  color:var(--cb-accent);font-weight:700;font-size:21px;letter-spacing:.02em;flex:none}

/* ═══════════════════════════════════════════════════════════════════════════════════════════════════
   L'ÉQUIPE — refonte premium (identité Le Quorum). Portée LOCALE sous .eqx : n'altère aucune autre page
   de l'espace cabinet. Accent périwinkle et OR en hairline, Playfair sur les noms, des interrupteurs et
   beaucoup d'air. Surfaces, encre et lignes réutilisent les jetons --cb-* (déjà thématisés à trois états).
   ═══════════════════════════════════════════════════════════════════════════════════════════════════ */
.eqx{--eq-accent:#5b6fd0;--eq-accent-soft:rgba(91,111,208,.10);--eq-accent-ink:#ffffff;
     --eq-gold:#9a7b28;--eq-gold-soft:rgba(154,123,40,.12)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .eqx{
  --eq-accent:#a2b7f2;--eq-accent-soft:rgba(162,183,242,.13);--eq-accent-ink:#0f1519;
  --eq-gold:#e8c87a;--eq-gold-soft:rgba(232,200,122,.12)}}
:root[data-theme="dark"] .eqx{
  --eq-accent:#a2b7f2;--eq-accent-soft:rgba(162,183,242,.13);--eq-accent-ink:#0f1519;
  --eq-gold:#e8c87a;--eq-gold-soft:rgba(232,200,122,.12)}

.eqx h1{margin-bottom:6px}
.eqx .eq-lede{font-size:15px;color:var(--cb-ink-2);margin:0 0 30px;max-width:54ch}
.eqx .cb-eyebrow{margin-bottom:10px}

/* Sous-onglets Membres | Rôles */
.eqx .eq-subnav{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--cb-line);margin:16px 0 22px}
/* Le « + » repliant la barre d'invitation, aligné à droite de la barre d'onglets. */
.eqx .eq-add{margin-left:auto;margin-bottom:6px;font-family:inherit;font-size:13px;font-weight:600;
  color:var(--eq-accent);background:var(--eq-accent-soft);border:1px solid transparent;
  border-radius:999px;padding:6px 14px;cursor:pointer;white-space:nowrap}
.eqx .eq-add:hover{border-color:var(--eq-accent)}
.eqx .eq-invite[hidden]{display:none}
.eqx .eq-subnav a{padding:11px 16px;font-size:14px;font-weight:600;color:var(--cb-ink-3);
  border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}
.eqx .eq-subnav a:hover{color:var(--cb-ink)}
.eqx .eq-subnav a.on{color:var(--cb-ink);border-bottom-color:var(--eq-accent)}

/* ROSTER — la liste des membres, lignes cliquables vers la fiche */
.eqx .eq-roster{border:1px solid var(--cb-line);border-radius:18px;background:var(--cb-surface);
  box-shadow:var(--cb-pop);overflow:hidden}
.eqx .eq-grp-t{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cb-ink-3);padding:16px 22px 6px}
.eqx .eq-rrow{display:flex;align-items:center;gap:15px;padding:14px 22px;border-top:1px solid var(--cb-line);
  text-decoration:none;color:inherit;transition:background .12s}
.eqx .eq-rrow:hover{background:var(--cb-surface-2)}
.eqx .eq-grp-t + .eq-rrow{border-top:0}
.eqx .eq-rrow .eq-av{width:44px;height:44px;font-size:16px}
.eqx .eq-rrow .eq-nom{font-size:16.5px}
.eqx .eq-rrow .eq-st{min-width:104px;justify-content:flex-end}
.eqx .eq-chip{font-size:11.5px;font-weight:600;padding:4px 11px;border-radius:999px;
  background:var(--eq-accent-soft);color:var(--eq-accent);white-space:nowrap}
.eqx .eq-chip.ref{background:var(--eq-gold-soft);color:var(--eq-gold);border:1px solid var(--eq-gold)}
.eqx .eq-chip.none{background:transparent;color:var(--cb-ink-3);border:1px dashed var(--cb-line-strong)}
.eqx .eq-chev{color:var(--cb-ink-3);font-size:20px;flex:none;line-height:1}

/* FICHE d'une personne — le retour, la carte, ses sections */
.eqx .eq-back{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--eq-accent);
  text-decoration:none;margin-bottom:18px}
.eqx .eq-back:hover{text-decoration:underline}
.eqx .eq-card{border:1px solid var(--cb-line);border-radius:20px;background:var(--cb-surface);
  box-shadow:var(--cb-pop);padding:26px 28px}
.eqx .eq-phead{display:flex;align-items:center;gap:16px}
.eqx .eq-phead .eq-av{width:56px;height:56px;font-size:20px}
.eqx .eq-phead .eq-nom{font-size:22px}
.eqx .eq-sect{margin-top:24px;padding-top:20px;border-top:1px solid var(--cb-line)}
.eqx .eq-sect .eq-droits{margin-top:18px;border-top:0;padding-top:0}
.eqx .eq-issues{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.eqx .eq-issues .eq-lbl{font-size:12px;color:var(--cb-ink-3)}
/* Éditer les coordonnées — deux colonnes de champs empilés (nom au-dessus du champ). */
.eqx .eq-coord{margin:0}
.eqx .eq-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:6px 0 12px}
.eqx .eq-fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.eqx .eq-fld > span{font-size:12px;font-weight:600;color:var(--cb-ink-2)}
.eqx .eq-fld .eq-in{width:100%;min-width:0}

/* Inviter — une barre compacte : le champ occupe toute la largeur disponible, le reste reste discret.
   Secondaire par rapport à la liste, qui est la vraie matière de l'écran. */
.eqx .eq-invite{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 22px;
  padding:11px 15px;border:1px solid var(--cb-line);border-radius:12px;background:var(--cb-surface-2)}
.eqx .eq-invite-lbl{font-size:13px;font-weight:600;color:var(--cb-ink);white-space:nowrap}
.eqx .eq-invite-in{flex:1 1 240px;min-width:0}
.eqx .eq-field{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0}
.eqx .eq-hd{font-size:13px;color:var(--cb-ink-3);display:inline-flex;align-items:center;gap:7px}
.eqx .eq-in{background:var(--cb-surface-2);border:1px solid var(--cb-line-strong);border-radius:10px;
  color:var(--cb-ink);font-family:inherit;font-size:15px;padding:11px 14px;min-width:min(100%,24ch)}
.eqx .eq-in:focus{outline:none;border-color:var(--eq-accent)}
.eqx .eq-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;
  padding:0 20px;border-radius:10px;font-size:14px;font-weight:600;border:1px solid var(--eq-accent);
  background:var(--eq-accent);color:var(--eq-accent-ink);cursor:pointer;white-space:nowrap;font-family:inherit}
.eqx .eq-btn.ghost{background:transparent;color:var(--eq-accent)}
.eqx .eq-btn.ghost:hover{background:var(--eq-accent-soft)}

/* Membre — carte aérée */
.eqx .eq-m{border:1px solid var(--cb-line);border-radius:18px;background:var(--cb-surface);
  box-shadow:var(--cb-pop);padding:24px 26px;margin-bottom:16px}
.eqx .eq-m.partie{background:transparent;box-shadow:none;border-style:dashed;opacity:.72}
.eqx .eq-head{display:flex;align-items:center;gap:16px}
.eqx .eq-av{width:52px;height:52px;border-radius:999px;display:grid;place-items:center;flex:none;
  font-family:"Playfair Display",Georgia,serif;font-size:19px;color:var(--eq-gold);
  background:radial-gradient(circle at 50% 35%,var(--eq-gold-soft),transparent 70%);border:1px solid var(--eq-gold)}
.eqx .eq-av.muted{color:var(--cb-ink-3);border-color:var(--cb-line-strong);background:var(--cb-surface-2)}
.eqx .eq-id{flex:1;min-width:0;display:flex;flex-direction:column}
.eqx .eq-nom{font-family:"Playfair Display",Georgia,serif;font-size:20px;font-weight:600;
  color:var(--cb-ink);line-height:1.15}
.eqx .eq-meta{font-size:13.5px;color:var(--cb-ink-3);margin-top:2px}
.eqx .eq-st{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--cb-ink-2);white-space:nowrap}
.eqx .eq-st .d{width:7px;height:7px;border-radius:999px;flex:none}
.eqx .eq-st .d.ok{background:var(--cb-ok)}.eqx .eq-st .d.wait{background:var(--cb-attente)}
.eqx .eq-st .d.off{background:var(--cb-ink-3)}
.eqx .eq-sub{margin-top:12px}

/* Autorisations en interrupteurs */
.eqx .eq-droits{margin:22px 0 0;padding-top:20px;border-top:1px solid var(--cb-line)}
.eqx .eq-cap{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cb-ink-3);margin:0 0 16px}
.eqx .eq-grp{margin-bottom:18px}
.eqx .eq-gt{font-size:12px;font-weight:600;color:var(--cb-ink-2);margin:0 0 6px}
.eqx .eq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 30px}
.eqx .eq-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;
  border-bottom:1px solid var(--cb-line);cursor:pointer;margin:0}
.eqx .eq-row > span:first-child{font-size:14px;color:var(--cb-ink)}
.eqx .eq-row input{position:absolute;opacity:0;width:0;height:0}
.eqx .eq-sw{position:relative;width:40px;height:23px;border-radius:999px;background:var(--cb-line-strong);flex:none}
.eqx .eq-sw::after{content:"";position:absolute;top:2.5px;left:2.5px;width:17px;height:17px;border-radius:999px;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.eqx .eq-row input:checked + .eq-sw{background:var(--eq-accent)}
.eqx .eq-row input:checked + .eq-sw::after{left:20.5px}
.eqx .eq-row input:focus-visible + .eq-sw{outline:2px solid var(--eq-accent);outline-offset:2px}
.eqx .eq-save{margin-top:16px}

/* Relance d'une invitation muette */
.eqx .eq-relance{border:1px solid var(--cb-attente);border-left-width:3px;border-radius:0 12px 12px 0;
  background:var(--cb-attente-soft);color:var(--cb-ink);padding:14px 16px;margin-top:18px;font-size:14px}

/* Les trois issues, discrètes — jamais de gros boutons pour un geste rare */
.eqx .eq-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px;padding-top:16px;
  border-top:1px solid var(--cb-line)}
.eqx .eq-act .eq-lbl{font-size:12px;color:var(--cb-ink-3)}
.eqx .eq-inline{display:inline-flex;align-items:center;gap:8px;margin:0}
.eqx .eq-date{background:transparent;border:1px solid var(--cb-line);border-radius:8px;color:var(--cb-ink-3);
  font-family:inherit;font-size:12.5px;padding:5px 8px}
.eqx .eq-lk{background:none;border:0;padding:0;font:inherit;font-size:13.5px;color:var(--cb-ink-2);
  cursor:pointer;border-bottom:1px solid transparent}
.eqx .eq-lk:hover{color:var(--cb-ink);border-bottom-color:var(--cb-line-strong)}
.eqx .eq-lk.danger{color:var(--cb-refus)}
.eqx .eq-lk.danger:hover{color:var(--cb-refus);border-bottom-color:var(--cb-refus)}

/* Les rôles du cabinet — gabarits d'autorisations réutilisables (§2). ─────────────────────────────── */
.eqx .eq-roles{margin:0 0 34px;padding:22px 24px;border:1px solid var(--cb-line);border-radius:18px;
  background:var(--cb-surface)}
.eqx .eq-roles-note{margin:0 0 18px;max-width:70ch}
.eqx .eq-roles-grid{display:flex;flex-direction:column;gap:10px}
.eqx .eq-role{border:1px solid var(--cb-line);border-radius:14px;background:var(--cb-surface-2);
  overflow:hidden}
.eqx .eq-role[open]{border-color:var(--eq-accent)}
.eqx .eq-role-s{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;
  padding:15px 18px;user-select:none}
.eqx .eq-role-s::-webkit-details-marker{display:none}
.eqx .eq-role-nom{font-family:"Playfair Display",Georgia,serif;font-size:17px;font-weight:600;
  color:var(--cb-ink)}
.eqx .eq-role-sum{font-size:13px;color:var(--cb-ink-3)}
.eqx .eq-role-more{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--eq-accent)}
.eqx .eq-role[open] .eq-role-more{opacity:.5}
.eqx .eq-role-new .eq-role-nom{color:var(--eq-accent)}
.eqx .eq-role-body{padding:4px 18px 18px}
.eqx .eq-role-nom-in{display:block;width:100%;max-width:340px;margin:0 0 18px;font-size:15px;font-weight:600}
.eqx .eq-role-del{padding:0 18px 16px;margin-top:-6px;gap:12px}
.eqx .eq-role-del .cb-note{margin:0}

/* Le sélecteur de rôle sur une personne — des pastilles, une par rôle. ───────────────────────────── */
.eqx .eq-pick-wrap{margin:22px 0 0;padding-top:20px;border-top:1px solid var(--cb-line)}
.eqx .eq-picks{display:flex;flex-wrap:wrap;gap:8px}
.eqx .eq-pick{padding:8px 15px;border-radius:999px;border:1px solid var(--cb-line-strong);
  background:var(--cb-surface-2);color:var(--cb-ink-2);font-size:13px;font-weight:600;cursor:pointer;
  font-family:inherit}
.eqx .eq-pick:hover{border-color:var(--eq-accent);color:var(--cb-ink)}
.eqx .eq-pick.on{background:var(--eq-accent-soft);border-color:var(--eq-accent);color:var(--eq-accent)}
.eqx .eq-ecart{margin:10px 0 0}
.eqx .eq-ref{margin:0;padding:12px 15px;border:1px solid var(--eq-gold);border-radius:12px;
  background:var(--eq-gold-soft);color:var(--cb-ink-2)}
.eqx .eq-ref strong{color:var(--cb-ink)}
.eqx .eq-dev{margin:14px 0 0;padding:11px 14px;border:1px dashed var(--cb-line-strong);border-radius:10px;
  font-size:12.5px;color:var(--cb-ink-2);word-break:break-all}
.eqx .eq-dev strong{color:var(--cb-ink);font-weight:600;letter-spacing:.02em}
.eqx .eq-dev a{color:var(--eq-accent)}

/* L'ajustement fin des droits, replié quand un rôle est déjà posé. ────────────────────────────────── */
.eqx .eq-droits{margin:16px 0 0}
.eqx .eq-fine{border-top:1px solid var(--cb-line);padding-top:16px}
.eqx .eq-fine-s{list-style:none;cursor:pointer;user-select:none;
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cb-ink-3);
  margin-bottom:2px;display:inline-flex;align-items:center;gap:8px}
.eqx .eq-fine-s::-webkit-details-marker{display:none}
.eqx .eq-fine-s::after{content:"▾";font-size:10px;letter-spacing:0}
.eqx .eq-fine[open] > .eq-fine-s{margin-bottom:16px}
.eqx .eq-fine[open] > .eq-fine-s::after{content:"▴"}

@media (max-width:600px){
  .eqx .eq-grid{grid-template-columns:1fr}
  .eqx .eq-2col{grid-template-columns:1fr}
  .eqx .eq-issues,.eqx .eq-field{gap:10px}
  .eqx .eq-role-s{flex-wrap:wrap;gap:6px 14px}
  .eqx .eq-role-more{margin-left:0}
  /* Sur mobile, la ligne d'un membre se replie : l'état et le rôle passent sous le nom, le chevron
     disparaît (toute la ligne reste cliquable). */
  .eqx .eq-rrow{flex-wrap:wrap;gap:6px 12px;padding:14px 16px}
  .eqx .eq-rrow .eq-id{flex-basis:calc(100% - 60px)}
  .eqx .eq-rrow .eq-st{min-width:0;justify-content:flex-start;margin-left:60px}
  .eqx .eq-chev{display:none}
  .eqx .eq-card{padding:22px 18px}
  .eqx .eq-phead{flex-wrap:wrap}
}

/* ═══════════════════════════════════════════════════════════════════════════════════════════════════
   LE JOURNAL D'ADMINISTRATION — l'onglet « Journal » de « Le cabinet ». Un fil nominatif, groupé par
   jour, une icône teintée par famille. Jetons --cb-* + deux teintes de catégorie (péri, or).
   ═══════════════════════════════════════════════════════════════════════════════════════════════════ */
:root{--cbj-peri:#4a63b8; --cbj-peri-soft:rgba(74,99,184,.12);
  --cbj-gold:#9a7b28; --cbj-gold-soft:rgba(154,123,40,.13)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --cbj-peri:#a2b7f2; --cbj-peri-soft:rgba(162,183,242,.15); --cbj-gold:#e8c87a; --cbj-gold-soft:rgba(232,200,122,.14)}}
:root[data-theme="dark"]{--cbj-peri:#a2b7f2; --cbj-peri-soft:rgba(162,183,242,.15);
  --cbj-gold:#e8c87a; --cbj-gold-soft:rgba(232,200,122,.14)}

.cbj-filtres{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 8px}
.cbj-fchip{font-size:12.5px;font-weight:600;padding:6px 13px;border-radius:999px;
  border:1px solid var(--cb-line-strong);color:var(--cb-ink-2);text-decoration:none}
.cbj-fchip:hover{color:var(--cb-ink);border-color:var(--cb-accent-line)}
.cbj-fchip.on{background:var(--cb-accent-soft);border-color:var(--cb-accent-line);color:var(--cb-accent)}

.cbj-jour{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cb-ink-3);margin:24px 0 8px;padding-bottom:8px;
  border-bottom:1px solid var(--cb-line)}
.cbj-ev{display:flex;gap:14px;align-items:flex-start;padding:11px 2px}
.cbj-ev + .cbj-ev{border-top:1px solid var(--cb-line)}
.cbj-ic{width:34px;height:34px;border-radius:999px;flex:none;display:grid;place-items:center;margin-top:1px}
.cbj-ic-s{width:17px;height:17px}
.cbj-ic.fiche{background:var(--cb-accent-soft);color:var(--cb-accent)}
.cbj-ic.equipe,.cbj-ic.acces{background:var(--cbj-peri-soft);color:var(--cbj-peri)}
.cbj-ic.role,.cbj-ic.annonce{background:var(--cbj-gold-soft);color:var(--cbj-gold)}
.cbj-ic.avis{background:var(--cb-surface-2);color:var(--cb-ink-2)}
.cbj-ic.externe{background:var(--cb-attente-soft);color:var(--cb-attente)}
.cbj-ic.danger{background:rgba(230,146,138,.14);color:var(--cb-refus)}
.cbj-ic.photo{background:var(--cbj-gold-soft);color:var(--cbj-gold)}
.cbj-body{flex:1;min-width:0}
.cbj-cat{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cb-ink-3);margin-bottom:2px}
.cbj-line{color:var(--cb-ink-2);font-size:14.5px;line-height:1.5}
.cbj-line b{color:var(--cb-ink);font-weight:600}
.cbj-val{color:var(--cb-ink);font-weight:500}
.cbj-anon{color:var(--cb-ink-3);font-style:italic}
.cbj-time{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--cb-ink-3);
  white-space:nowrap;margin-top:3px;flex:none}
.cbj-tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;
  margin-left:6px;white-space:nowrap;vertical-align:1px}
.cbj-tag.ok{background:rgba(99,189,147,.14);color:var(--cb-ok)}
.cbj-tag.wait{background:var(--cb-attente-soft);color:var(--cb-attente)}
.cbj-tag.refus{background:rgba(230,146,138,.14);color:var(--cb-refus)}
@media (max-width:600px){.cbj-time{display:none}}

/* ── Le PIED du Cercle : le numéro d'appel Le Quorum, cliquable (cabinet/base.html). ──
   ⛔ Le numéro vit dans l'identité de marque (settings.BRAND), jamais en dur : le site est multimarque.
   ⛔ Sa couleur passe par le JETON --cb-tel (or sur fond sombre, encre sur fond clair) — une couleur
      littérale serait juste dans un thème et fausse dans l'autre. */
.cb-pied{max-width:1180px;margin:44px auto 0;padding:18px 22px 32px;
  border-top:1px solid var(--cb-line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12.5px;color:var(--cb-ink-3)}
.cb-pied-tel-w{margin-left:auto}
.cb-pied-tel{color:var(--cb-tel);font-weight:600;text-decoration:none;white-space:nowrap}
.cb-pied-tel:hover{text-decoration:underline}
@media (max-width:600px){.cb-pied{margin-top:28px}.cb-pied-tel-w{margin-left:0}}

/* ── Proposer une évolution : bouton VERT plein (en tête de la page « Évolutions », PA 2026-09-17) ── */
.cb-evol-cta{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--cb-accent);
  background:var(--cb-accent);border-radius:999px;padding:11px 22px;text-decoration:none;
  color:var(--cb-accent-ink);font-size:13.5px;font-weight:600;letter-spacing:.01em;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;transition:filter .15s ease}
.cb-evol-cta:hover{filter:brightness(1.08)}
.cb-evol-cta:focus-visible{outline:2px solid var(--cb-accent);outline-offset:2px}
.cb-evol-cta svg{width:18px;height:18px;flex:none;color:var(--cb-accent-ink)}
.cb-evol{display:flex;flex-direction:column;gap:5px;max-width:640px;margin-top:18px}
.cb-evol .cb-lbl{margin-top:12px}
.cb-evol-de{background:var(--cb-surface);border:1px solid var(--cb-line);border-radius:10px;
  padding:9px 12px;font-size:12.5px;color:var(--cb-ink-2);margin-bottom:4px}
.cb-evol-imp{display:flex;gap:18px;flex-wrap:wrap;margin-top:2px}
.cb-evol-imp-o{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--cb-ink-2);cursor:pointer}

/* ── Fil guide UNIFIÉ du parcours mission (partial cabinet/_fil_mission.html) — 5 moments ───────────── */
.fm-fil{display:flex;gap:6px;margin:1rem 0 1.3rem;flex-wrap:wrap}
.fm-step{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:var(--cb-ink-3);padding:6px 13px;border:1px solid var(--cb-line);border-radius:999px;text-decoration:none;white-space:nowrap}
.fm-step .n{width:19px;height:19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;background:var(--cb-surface-2);color:var(--cb-ink-3)}
a.fm-step:hover{border-color:var(--cb-accent-line)}
.fm-step.done{color:var(--cb-ink-2);border-color:var(--cb-accent-line)}
.fm-step.done .n{background:var(--cb-accent);color:#fff}
.fm-step.on{color:var(--cb-ink);border-color:var(--cb-or);background:color-mix(in srgb,var(--cb-or) 10%,transparent)}
.fm-step.on .n{background:var(--cb-or);color:#17120a}
.fm-opt{font-size:.54rem;font-family:"IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--cb-ink-3);margin-left:4px}
