/* ═══════════════════════════════════════════════════════════════════════
   fiche-leadpros.css — UNIQUEMENT les classes que J'AI introduites.

   Tout ce qui vient du gabarit de Margot (`.sc*`, `.ev`, `.ei`, `.eb`,
   `.eh`, `.tm`, `.kpi`, `.abtn`, `.schip`, `.dsec`, `.drow`…) est deja
   style par `aqfic-core.css` et n'a RIEN a faire ici : le redeclarer
   creerait un second jeu de regles qui divergerait a sa prochaine
   livraison. Verifie classe par classe avant d'ecrire ce fichier — trois
   d'entre elles (`.ei`, `.eb`, `.eh`) ne sont d'ailleurs stylees qu'en
   DESCENDANTS de `.ev`, ce qui a coute une imbrication inversee.

   Il ne reste donc que les menus et la navigation, qui n'existent nulle
   part dans son kit.

   TOUT EST SCOPE SOUS `.aqfic`. `.fpv3-nav` ou `.flv3-mi` ne collisionnent
   avec rien aujourd'hui, mais le prefixe seul ne protege pas — b2428 l'a
   montre avec `aqt-`, ou deux kits partageaient le meme prefixe pour des
   choses differentes. Un scope protege toujours.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Le menu « ⋯ » des deux fiches ───────────────────────────────────── */
.aqfic .flv3-menu,
.aqfic .fpv3-menu{ position:relative; display:inline-flex; }

.aqfic .flv3-mm,
.aqfic .fpv3-mm{
  position:absolute; top:calc(100% + 6px); right:0; z-index:var(--aqfic-z-menu, 40);
  min-width:232px; padding:5px;
  background:var(--surface); border:1px solid var(--border);
  border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.13), 0 2px 6px rgba(0,0,0,.07);
  display:flex; flex-direction:column;
}
.aqfic .flv3-mm[hidden],
.aqfic .fpv3-mm[hidden]{ display:none; }

/* DANS UN MENU, CE SONT DES LIGNES ET NON DES BOUTONS ENCADRES : un bouton
   dans un deroulant fait croire a un second niveau d'action (b2463). */
.aqfic .flv3-mi,
.aqfic .fpv3-mi{
  display:flex; align-items:center; gap:9px;
  padding:8px 10px; border:0; border-radius:7px;
  background:transparent; color:var(--text);
  font-family:inherit; font-size:13px; text-align:left;
  cursor:pointer; white-space:nowrap;
}
.aqfic .flv3-mi:hover,
.aqfic .fpv3-mi:hover{ background:var(--s2); }
.aqfic .flv3-mi svg,
.aqfic .fpv3-mi svg{ width:15px; height:15px; flex:none; opacity:.75; }

/* L'action destructrice est separee et rouge : elle ne doit jamais
   ressembler a ses voisines (lecon b2355). */
.aqfic .fpv3-danger{ color:var(--danger, #d64560); margin-top:3px; }
.aqfic .fpv3-danger:hover{ background:color-mix(in srgb, var(--danger, #d64560) 10%, transparent); }
.aqfic .fpv3-mm .fpv3-danger{ border-top:1px solid var(--border); border-radius:0 0 7px 7px; padding-top:9px; }

/* ── Navigation precedent / suivant du prospect ──────────────────────── */
/* [b2485] LES DEUX FICHES PARTAGENT LEUR NAVIGATION. Les fleches etaient
   propres au prospect ; le lead les recoit, et les deux passent par la MEME
   regle — deux ecrans du meme produit avec des fleches de tailles
   differentes, c'est ce qu'on evite depuis b2463. */
.aqfic .fpv3-nav,
.aqfic .flv3-nav{ display:inline-flex; gap:4px; }
.aqfic .fpv3-nav .abtn,
.aqfic .flv3-nav .abtn{ padding-left:7px; padding-right:7px; }

/* ── Deux appoints sur des elements du kit ───────────────────────────── */
/* [b2469] `.pan-m` RETIRE : je l'avais invente pour le sous-titre de
   l'en-tete de panneau, alors que sa maquette utilise `.bv-note`, qui
   existe deja dans sa feuille. Une classe inventee la ou une classe reelle
   fait le travail, c'est la faute §4.2 — et elle est doublement inutile
   ici puisqu'elle produisait un dessin LEGEREMENT different du sien. */
/* la valeur d'un indicateur qui porte le score prend la couleur de la
   temperature \u2014 c'est le seul chiffre de la bande qu'on lit en couleur. */
.aqfic .kpi .v.sc-hot{ color:var(--chaud); }


/* ═══ [b2471] LE MONOSPACE SUR DE LA PROSE ═══════════════════════════
   Anthony : « j'ai un doute sur la typo que tu utilises ». Verifie plutot
   que repondu de memoire, et sa reponse est en deux temps.

   LA FAMILLE EST LA BONNE. Le kit passe par `var(--mono)`, qui vaut
   JetBrains Mono — exactement la mono du produit (tc.css:19) — et Inter
   pour le reste. Aucune police etrangere n'entre par la.

   L'USAGE, LUI, NE L'EST PAS. Sa feuille pose du mono a 33 endroits, et
   parmi eux des elements qui portent des PHRASES : « courrier cible sur les
   signaux detectes », le detail d'un signal, la ligne de sous-titre d'un
   document. C'est exactement ce que b2118 avait corrige sur les libelles de
   date de la colonne Echeance — le mono se lit mal en francais accentue,
   et il signale « code » a l'oeil alors qu'on lit du texte.

   ON NE TOUCHE PAS AUX AUTRES. Le mono sur les petits libelles en capitales
   (`.kpi .k`, `.bv-sl`, `.sc-lb`), sur les compteurs (`.tab .n`,
   `.pan-t .c`) et sur les chiffres (`.sc-sv`, `.bvr-p`, `.fi-rv.mn`) est un
   PARTI PRIS de son systeme, coherent d'un ecran a l'autre, et il aligne
   les chiffres entre eux — c'est meme sa raison d'etre. On corrige l'usage
   sur la prose, on ne desosse pas sa grammaire.

   Regle : du mono sur ce qui se COMPARE (chiffres, codes, etiquettes),
   de l'Inter sur ce qui se LIT.                                        ═══ */
.aqfic .sc-cs,          /* « courrier cible sur les signaux detectes » */
.aqfic .sc-sd,          /* le detail d'un signal, dans la legende du rail */
.aqfic .arpe-sd,
.aqfic .dr-m{           /* poids et date sous un nom de document */
  font-family:inherit;
  letter-spacing:normal;
}


/* ═══ [b2471] LES DEUX GRAPHES DES LEADS SANS COPROPRIETE ════════════
   Ils vivent dans son `.sg-card`, donc ils heritent de son cadre et de son
   rayon : c'est de la data viz, elle a besoin d'un fond, et sa feuille l'a
   deja decide. Seul l'interieur est a nous.                          ═══ */

/* L'echelle DPE. Les sept couleurs sont celles de l'etiquette
   REGLEMENTAIRE — elles ne sont pas decoratives, un agent et un vendeur les
   reconnaissent avant de lire la lettre. */
.aqfic .flp-dpe{ display:flex; gap:3px; padding:11px 13px 13px; }
.aqfic .flp-dpe-c{
  flex:1; text-align:center; padding:6px 0; border-radius:5px;
  font-family:var(--mono); font-size:11px; font-weight:600;
  color:#fff; opacity:.32; transition:opacity .15s, transform .15s;
}
.aqfic .flp-dpe-c.on{ opacity:1; transform:scale(1.14); box-shadow:0 2px 7px rgba(0,0,0,.18); }
.aqfic .dpe-A{ background:#319a5b; } .aqfic .dpe-B{ background:#4fb06a; }
.aqfic .dpe-C{ background:#a5c93b; } .aqfic .dpe-D{ background:#f2d500; color:#3a3200; }
.aqfic .dpe-E{ background:#f0a02a; } .aqfic .dpe-F{ background:#e2662a; }
.aqfic .dpe-G{ background:#d4262a; }

/* La fourchette. La bande EST l'ecart ; le repere central est la mediane et
   rien d'autre — on n'y pose aucun trait qui suggererait un prix de marche,
   la donnee n'en porte pas. */
.aqfic .flp-range{ padding:13px 13px 11px; }
.aqfic .flp-range-b{
  position:relative; display:block; height:8px; border-radius:99px;
  background:var(--s2); overflow:visible;
}
.aqfic .flp-range-b i{
  position:absolute; inset:0; border-radius:99px;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--accent) 45%, transparent), var(--accent));
}
.aqfic .flp-range-b em{
  position:absolute; top:50%; width:3px; height:16px; margin-left:-1.5px;
  transform:translateY(-50%); border-radius:2px;
  background:var(--text); box-shadow:0 0 0 2px var(--surface);
}
.aqfic .flp-range-x{
  display:flex; justify-content:space-between; margin-top:8px;
  font-family:var(--mono); font-size:11px; color:var(--text-dim);
}


/* ═══ [b2473] LES LIBELLES LONGS SE COUPAIENT ═══════════════════════════
   Anthony, en comparant les deux modeles : « sur Strate 1 je veux que ce
   soit exactement pareil » que Sismo 1.3.

   La difference n'etait pas dans mon rendu — c'est le MEME code — mais dans
   la LONGUEUR des libelles. Sismo nomme court (« Densite de biens murs
   19% ») ; Strate ecrit une phrase entiere (« Aucune vente depuis 5 ans et
   + · proprietaire stable »). Sa feuille tronque `.bvr-n` a une ligne, donc
   Sismo tenait et Strate sortait en « ...st… ». Deux ecrans du meme produit
   qui ne se ressemblent pas parce que la donnee est plus longue.

   ON LAISSE LE LIBELLE PASSER A LA LIGNE plutot que de raccourcir le texte :
   ce qui est coupe ici, c'est l'ARGUMENT que l'agent utilisera au telephone.
   Le poids garde sa colonne (`flex:none`), donc c'est bien le libelle qui
   prend la place restante — jamais le chiffre qu'on lit en diagonale.
   Meme arbitrage qu'en b2343 sur la palette de recherche.              ═══ */
.aqfic .bvl .bvr-n,
.aqfic .sc-lg .sc-sn{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.35;
}
.aqfic .bvl .bvr-b{ min-width:0; flex:1 1 auto; }
.aqfic .bvl .bvr-p{ flex:none; white-space:nowrap; }


/* ═══ [b2478] LA VUE CADASTRALE ══════════════════════════════════════
   Le noeud que `_hydrateMiniMaps` cherche (`.has-map[data-lat]`) n'a besoin
   que d'une BOITE : c'est lui qui y monte la carte. Sans hauteur explicite
   MapLibre sort a zero et le cadre reste blanc — un cadre vide se lit comme
   une panne (b2397), donc la hauteur n'est pas decorative.
   `overflow:hidden` pour que la carte epouse le rayon de `.sg-card`.    ═══ */
.aqfic .flp-cad{
  height:220px;
  border-radius:10px;
  overflow:hidden;
  margin:11px 13px 0;
  background:var(--s2);
}
.aqfic .flp-cad canvas{ border-radius:10px; }


/* ═══ [b2482] LA PAGE PROSPECTS EN MODE FICHE ════════════════════════
   Une fiche n'a ni filtres ni bascule de vue : ce sont les controles de la
   LISTE. Ils vivent dans le slot de chrome du shell, donc hors de la page —
   remplacer le contenu de `#page-prospects` ne les enlevait pas.

   MASQUES, PAS RETIRES, et pour la meme raison qu'en b2472 sur les
   controles de la carte : ce sont les noeuds que `prospects.js` construit
   et cable. Une regle CSS s'annule au retour a la liste ; un slot vide
   demanderait une reconstruction, donc un chemin de plus a maintenir.

   Le selecteur porte l'ID du slot : c'est le seul endroit ou cette barre
   existe, et le viser par sa classe risquerait d'atteindre celle d'une
   autre page.                                                        ═══ */
body.prp-fiche #dchrome-slot-prospects{ display:none; }
body.prp-fiche #page-prospects .prp-toolbar{ display:none; }

/* [b2482] ET LA BANDE DE PAGE AVEC. Anthony : « y'a un second header qui se
   cree avec breadcrumb alors que ca devrait etre dans celui d'en haut comme
   sur leads ». Sur la fiche lead, `prospection.js` pose `pp-subview` et le
   chrome du shell DISPARAIT : notre fil d'ariane est alors le seul en-tete,
   et il porte le bouton Arpe. Ici les deux coexistaient, d'ou trois
   rangees empilees avant meme la fiche.
   On applique la meme regle : un seul en-tete, celui de la fiche. */
body.prp-fiche .donna-chrome[data-pg-hero="prospects"]{ display:none; }


/* ═══ [b2486] LES EN-TETES DE FICHE NE DEFILENT PLUS ═════════════════
   Anthony : « sur toutes les fiches, les headers doivent etre fixes ».

   ON CHAINE LES HAUTEURS PLUTOT QUE DE DEVINER QUI DEFILE. C'est la lecon
   de b2363, ecrite apres quatre corrections ratees sur la meme bande : des
   qu'on suppose la taille d'un maillon, l'ecart reapparait au premier
   changement de chrome. Ici la chaine est `.aqfic > .rec > .rbody > .rmain`,
   et chaque maillon doit pouvoir se contraindre — `min-height:0`, sans quoi
   un enfant flex refuse par construction de passer sous la hauteur de son
   contenu et c'est TOUTE la fiche qui pousse la page.
   Une fois la chaine saine, seul `.rmain` defile : l'en-tete, les pastilles
   et les onglets sont hors du flux de defilement, donc fixes par
   construction — pas par une regle qui les y maintient.

   LE `sticky` EST UNE CEINTURE, PAS LA SOLUTION. Si un hote inattendu
   deplace le defilement d'un cran (une page qui scrolle elle-meme), la
   barre d'onglets reste au moins visible au lieu de disparaitre. Il ne
   coute rien quand la chaine tient, et il ne masque pas le probleme
   puisqu'il n'agit que si un autre element defile.                  ═══ */
.aqfic .rec{ display:flex; flex-direction:column; min-height:0; }
.aqfic .rbody{ flex:1 1 auto; min-height:0; }
.aqfic .rmain{ min-height:0; overflow-y:auto; }

.aqfic .crumb,
.aqfic .rhead,
.aqfic .chips,
.aqfic .tabs{ flex:none; }

.aqfic .tabs{
  position:sticky;
  top:0;
  z-index:3;
  background:var(--surface);
}

/* [b2487] LE MENU « ⋯ » PASSAIT SOUS LA BARRE D'ONGLETS, ET C'EST MA REGLE
   CI-DESSUS QUI L'Y A MIS. `position:sticky` + `z-index` cree un CONTEXTE
   D'EMPILEMENT : les onglets se peignent desormais au-dessus de tout ce qui
   n'en a pas, et l'en-tete n'en avait pas. Le menu etait bien ouvert, bien
   place, avec son propre `z-index:40` — mais ce 40 ne vaut QUE dans le
   contexte de son parent, qui restait sous les onglets. Un z-index eleve ne
   sert a rien quand c'est l'ANCETRE qui perd.
   Meme famille que b2408 sur le bloc prix : on ne compare pas des valeurs,
   on compare des contextes. L'en-tete prend donc le sien, d'un cran
   au-dessus. */
.aqfic .rhead{
  position:relative;
  z-index:4;
}

/* ═══════════════════════════════════════════════════════════════════════
   [b2513] LE DÉTAIL DU SCORE SUR FOND GRIS CLAIR — décision d'Anthony.

   ⚠ CE BLOC N'EST PAS DU KIT. Cette feuille ne porte normalement que les
   classes que NOUS introduisons (b2468) ; ici on ajoute une décision de
   présentation sur des classes de Margot. C'est déclaré pour que sa
   prochaine livraison sache que ces lignes sont les nôtres et volontaires.

   ON N'ÉCRASE AUCUNE DE SES DÉCLARATIONS : sur `.bvl` elle ne pose que
   `display:flex` et `flex-direction:column` — vérifié au parseur, pas au
   grep. On ajoute un fond, un cadre et un retrait, rien d'autre, donc rien
   ne peut diverger à sa prochaine version.

   Le dessin est le SIEN : `.sg-card` (bordure, rayon 11px, retrait
   13px/14px) — le panneau que porte déjà le bloc Demi-vie juste à côté. Seul
   le fond change, `--bg` au lieu de `--surface`, parce que c'est précisément
   ce qu'Anthony demande : une zone grise DERRIÈRE, pour que les groupes se
   détachent du fond de page.

   Portée `.sg-grid .bvl` et pas `.bvl` tout court : `.bvl` sert aussi
   ailleurs (la feuille du Dossier en porte une copie re-scopée), et repeindre
   toutes ses listes pour une demande qui vise le détail du score serait la
   fuite qu'on passe son temps à réparer.
   ═══════════════════════════════════════════════════════════════════════ */
.aqfic .sg-grid .bvl{
  /* [b2515] --s2 (#f1f3f7) etait trop soutenu (Anthony). --bg (#f7f8fa) est
     le gris juste au-dessus dans l'echelle du produit : plus clair, et c'est
     un token EXISTANT — pas une valeur inventee entre deux paliers. */
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:11px;
  padding:4px 14px;
}
/* Les séparateurs de Margot restent — ils sont ce qui sépare les lignes une
   fois qu'elles partagent un fond. La dernière garde son `border-bottom:0`. */
.aqfic .sg-grid .bvl .bvr{padding:11px 0}
/* Sa pastille et ses barres sont en `--s3`, soit le gris juste au-dessus de
   `--s2` : sur le nouveau fond elles se voyaient à peine. On les passe sur
   la surface, qui contraste dans les deux thèmes. */
.aqfic .sg-grid .bvl .bvr-th:not(.sg){background:var(--surface)}
/* Le titre de groupe respire un cran de plus, sinon il colle au panneau. */
.aqfic .sg-grid .sect-h{margin-bottom:9px}

/* ═══════════════════════════════════════════════════════════════════════
   [b2523] B1 — UN SEUL EN-TETE SUR LES FICHES CLIENT ET DOSSIER.

   Anthony veut le sous-header des fiches Lead et Prospect partout. Ce qui
   fait que le leur ne fait pas doublon n'est pas son dessin : c'est que
   `prospection.js` pose `body.pp-subview` et que le chrome du shell
   disparait (donna-chrome.css:248). La fiche prospect a paye la meme lecon
   en b2482 — les deux coexistaient, d'ou trois rangees avant la fiche.

   On reproduit donc LA CONDITION. `aqfic-fiche` est posee au MONTAGE des
   fiches client et dossier (jamais dans un `render()` qu'un clic pourrait
   contourner, b2485) et retiree au demontage.

   MASQUEES ET NON VIDEES, comme en b2482 : une classe s'annule au retour a
   la liste, un slot vide demanderait une reconstruction — donc un chemin de
   plus a maintenir.

   Le selecteur vise la bande de la page CLIENTS par son `data-pg-hero` : la
   viser par sa classe atteindrait celle de n'importe quelle autre page.
   ═══════════════════════════════════════════════════════════════════════ */
/* ⚠ [b2523b] LE NOM DE LA BANDE N'EST PAS CELUI DE LA PAGE. `fiche-header.js`
   REUTILISE la bande du shell puis REECRIT son attribut :
   `h.dataset.pgHero = cfg.hero || ('fiche-' + cfg.page)` (l.52). Sur une
   fiche client elle vaut donc « fiche-clients », pas « clients » — mon
   selecteur de b2523 ne matchait RIEN, et les deux en-tetes restaient
   empiles. Le renommage est deliberе de leur cote : sans lui le shell
   prendrait cette bande pour celle de la liste et refuserait de la
   reconstruire au retour (b2114). On vise donc LES DEUX noms.

   Verifie sur la source, pas suppose : c'est la meme faute que le selecteur
   devine de b2403 — on ecrit une regle pour un attribut qu'on n'a pas lu. */
/* Les valeurs sont RELEVEES, pas devinees : `fiche-client-v3.js:257` passe
   explicitement `hero:'fiche-client'` (au SINGULIER), le defaut de
   fiche-header donne « fiche-clients », et le shell seul donne « clients ».
   La fiche BIEN passe `hero:'bien'` (fiche-bien-v3.js:725) et n'est donc pas
   atteinte — c'est voulu, elle a son propre mecanisme et son propre build. */
body.aqfic-fiche .donna-chrome[data-pg-hero="clients"],
body.aqfic-fiche .donna-chrome[data-pg-hero="fiche-client"],
body.aqfic-fiche .donna-chrome[data-pg-hero="fiche-clients"],
body.aqfic-fiche .donna-chrome[data-pg-hero="vendeurs"],
body.aqfic-fiche .donna-chrome[data-pg-hero="fiche-vendeurs"]{ display:none; }
body.aqfic-fiche #dchrome-slot-clients{ display:none; }

/* ═══════════════════════════════════════════════════════════════════════
   [b2527] LE SOUS-HEADER PARTAGE PREND LE DESSIN DE PROSPECTION.

   Anthony le veut sur les fiches client, bien et dossier. La fiche dossier
   a le sien (le `.crumb` du gabarit) ; les fiches client et bien passent
   toutes deux par `donnaFicheHeader`, le composant PARTAGE de b2433. C'est
   donc LUI qu'on aligne — une seule fois, et les deux suivent.

   b2526 a coute un ecran sans en-tete pour avoir pris l'autre chemin :
   ajouter une seconde bande a un ecran qui en avait deja une.

   LES VALEURS SONT CELLES DE `.aqfic .crumb` (aqfic-core.css), relevees et
   non approchees a l'oeil : padding 12/20, 13px, libelle en --muted,
   maillon courant en --text 600, filet en bas. Un troisieme dessin de fil
   d'ariane est exactement ce qu'on evite depuis b2454.

   Ces classes sont LES NOTRES — `fb-crumb*` n'est pose que par le helper,
   donc uniquement sur des fiches (b2433). On ne redeclare rien du kit.
   ═══════════════════════════════════════════════════════════════════════ */
.donna-chrome .fb-crumb{
  font-size:13px; font-weight:500; color:var(--muted);
  background:transparent; border:0; padding:0; cursor:pointer;
}

/* ═══════════════════════════════════════════════════════════════════════
   [b2530] LE SURVOL DIT QUE C'EST CLIQUABLE — SUR LES QUATRE FICHES.

   Seule la bande partagee (client, bien) portait une pastille au survol ;
   Dossier, Lead et Prospect n'avaient rien, alors que leur premier maillon
   est CABLE dans les trois cas — `data-act="goto-leads"` sur le lead,
   l'equivalent sur le prospect, le retour vers Clients sur le dossier.
   Un controle qui agit sans le montrer vaut un controle absent (b2324),
   et ici la verification comptait : poser un survol sur un maillon MORT
   aurait ete pire — il aurait promis un clic qui ne fait rien.

   LA ZONE EST PLUS LARGE QUE LE TEXTE (Anthony) : 11px de chaque cote au
   lieu de coller aux lettres. Le retrait negatif de meme valeur garde
   l'alignement du fil d'ariane sur le bord — sans lui, tout le contenu se
   decalerait de 11px et le maillon ne tomberait plus sur la meme verticale
   que le titre de la fiche dessous.
   ═══════════════════════════════════════════════════════════════════════ */
/* [b2531] Le maillon contient desormais l'icone ET le libelle : il doit se
   comporter comme une rangee, sinon les deux se collent. Meme gap que le
   `.c1` des fiches aqfic (7px), pour que les deux familles restent
   indiscernables. */
.donna-chrome.fb-chrome .fb-crumb{ display:inline-flex; align-items:center; gap:7px; }
.donna-chrome.fb-chrome .fb-crumb .dchrome-icon{ pointer-events:none; }
.donna-chrome.fb-chrome .fb-crumb,
.aqfic .crumb .c1{
  padding:5px 11px; margin-left:-11px; border-radius:7px;
  cursor:pointer; transition:background .12s ease, color .12s ease;
}
.donna-chrome.fb-chrome .fb-crumb:hover,
.aqfic .crumb .c1:hover{ background:var(--s2); color:var(--text); }
/* Le trait de separation ne doit pas se coller a la pastille elargie. */
.aqfic .crumb .c1 + span{ margin-left:2px; }
.donna-chrome .fb-crumb-sep{
  font-size:13px; color:var(--muted); opacity:.6; margin:0 2px;
}
.donna-chrome .fb-crumb-cur{
  font-size:13px; font-weight:600; color:var(--text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ═══════════════════════════════════════════════════════════════════════
   [b2528] LA BANDE DE FICHE PREND LA GEOMETRIE DU CRUMB DE PROSPECTION.

   b2527 avait aligne le TEXTE ; restaient la boite et l'icone. Ecarts
   releves a la cascade, `.dchrome-head` contre `.aqfic .crumb`, pas
   approches a l'oeil :

       hauteur   48px fixe        ->  padding 12px 20px
       gap       12px             ->  8px
       icone     18px             ->  15px
       icone     var(--text-dim)  ->  var(--muted)

   Cible par `.fb-chrome`, une classe que `fiche-header.js` pose lui-meme :
   viser `data-pg-hero` m'a deja coute b2524, sa valeur varie selon
   l'appelant. Une classe posee par le fichier qui construit la bande ne
   peut pas diverger de lui.

   Le filet du bas est celui de `.dchrome-head` : on ne le redeclare pas, on
   le laisse — c'est le meme `1px solid var(--border)` des deux cotes, et
   c'est la HAUTEUR qui le faisait paraitre plus lourd.
   ═══════════════════════════════════════════════════════════════════════ */
.donna-chrome.fb-chrome .dchrome-head{
  height:auto; min-height:0;
  padding-top:12px; padding-bottom:12px;
  gap:8px;
}
.donna-chrome.fb-chrome .dchrome-hl{ gap:8px; }
.donna-chrome.fb-chrome .dchrome-icon{ color:var(--muted); }
.donna-chrome.fb-chrome .dchrome-icon svg{ width:15px; height:15px; }

/* ─── [b2533] Les dossiers liés, en tête de l'Aperçu ──────────────────
   NOS classes uniquement (prefixe fcp-) : `.bvr` est a Margot, on ne
   redeclare aucune de ses valeurs — on ajoute le curseur et le survol qui
   disent que la ligne mene quelque part. Sans eux, un controle qui agit
   sans le montrer vaut un controle absent (b2324). */
.aqfic .bvr.fcp-doss{ cursor:pointer; border-radius:8px; transition:background .12s ease; }
.aqfic .bvr.fcp-doss:hover{ background:var(--s2); }
.aqfic .bvr.fcp-doss:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }

/* ═══════════════════════════════════════════════════════════════════════
   [b2539] LES QUATRE CLASSES DU BLOC « DOSSIERS LIÉS » DE MARGOT.

   Reprises TELLES QUELLES de sa livraison `handoff-client-dossiers`, sans
   une valeur touchée. Sa structure est meilleure que la mienne sur trois
   points et je la prends : l'étape devient un BADGE (`.dtag`) au lieu d'être
   noyée dans le texte de meta, le compteur passe en pastille dans le titre
   de section, et un chevron dit que la ligne mène quelque part.

   ⚠ CE QUE JE NE PRENDS PAS DE SON PACK, ET POURQUOI. Son README annonce
   « 4 classes ajoutées » ; le diff en montre des dizaines, dont une refonte
   de `.rec` en grille avec `.rbody{display:contents}` et
   `.rdet{grid-row:2/-1}` — c'est le RAIL PLEINE HAUTEUR que b2496 a retiré
   sur demande d'Anthony. Prendre sa feuille entière le réintroduirait, et
   toucherait aussi la fiche client. Septième README qui se trompe : on lit
   le code, jamais la doc.
   ═══════════════════════════════════════════════════════════════════════ */
.aqfic .sect-h .n{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--muted);background:var(--s2);border:1px solid var(--border);border-radius:99px;padding:1px 7px;letter-spacing:0;text-transform:none}
.aqfic .bvr-go{flex-shrink:0;color:var(--muted);transition:transform .15s,color .15s}
.aqfic .bvr-go svg{width:15px;height:15px}
.aqfic .bvr:hover .bvr-go{color:var(--text-dim);transform:translateX(2px)}
.aqfic .dtag{flex-shrink:0;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);background:var(--s2);border:1px solid var(--border);border-radius:99px;padding:3px 9px}
.aqfic .dtag.ok{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-color:color-mix(in srgb,var(--green) 28%,transparent)}

/* ─── [b2540] LES LIGNES DE DOSSIER SONT DES CARTES, PAS UNE LISTE ────
   Anthony : « rapproche-toi du design de Margot ». L'ecart n'etait pas dans
   les classes ajoutees mais dans les CONTENEURS : sa version de `.bvl` porte
   un fond gris et un retrait, et son `.bvr` est une carte BLANCHE bordee.
   Celle du produit est restee a la version d'avant — liste nue, lignes
   separees par un filet.

   Valeurs reprises TELLES QUELLES de sa feuille, relevees au parseur.

   ⚠ SCOPE AU BLOC, PAS GLOBAL. `.bvl`/`.bvr` servent aussi aux Signaux, aux
   Biens vus et a la Copropriete : repeindre les siens depuis ici, c'est la
   fuite qu'on passe son temps a reparer. Le jour ou on reprendra sa feuille
   entiere, ces trois regles deviendront redondantes et pourront tomber. */
.aqfic [data-fcp-dossiers] .bvl,
.aqfic [data-fdp-freres].bvl{
  background:var(--s2); border:1px solid var(--border); border-radius:11px; padding:5px;
}
.aqfic [data-fcp-dossiers] .bvr,
.aqfic [data-fdp-freres].bvl .bvr{
  padding:10px 11px; background:var(--surface); border:1px solid var(--border);
  border-radius:8px; margin-bottom:4px; transition:border-color .15s;
}
.aqfic [data-fcp-dossiers] .bvr:last-child,
.aqfic [data-fdp-freres].bvl .bvr:last-child{ margin-bottom:0; border-bottom:1px solid var(--border); }
.aqfic [data-fcp-dossiers] .bvr:hover,
.aqfic [data-fdp-freres].bvl .bvr:hover{ border-color:var(--border-hi); background:var(--surface); }

/* ─── [b2548] « Voir l'analyse de marché DVF » ────────────────────────
   NOS classes (prefixe flp-), scopees a `.aqfic`. Le dessin reprend celui
   de ses lignes `.bvr` — meme rayon, meme bordure, meme survol — pour que
   le bouton se lise comme la suite de la liste et non comme une piece
   rapportee. Pleine largeur : c'est une SORTIE de section, pas une action
   parmi d'autres. */
.aqfic .flp-go-estim{
  display:flex; align-items:center; gap:10px; width:100%;
  margin-top:10px; padding:11px 13px;
  background:var(--surface); border:1px solid var(--border); border-radius:9px;
  font:inherit; font-size:13px; font-weight:500; color:var(--text);
  cursor:pointer; text-align:left; transition:border-color .15s, background .15s;
}
.aqfic .flp-go-estim:hover{ border-color:var(--border-hi,var(--border)); background:var(--s2); }
.aqfic .flp-go-estim svg{ width:15px; height:15px; flex-shrink:0; color:var(--muted); }
.aqfic .flp-go-estim > span:first-of-type{ flex:1; min-width:0; }
.aqfic .flp-go-chev{ display:inline-flex; color:var(--muted); transition:transform .15s; }
/* [b2564] Anthony : « il faut rajouter du padding entre le bouton DVF et la
   stat d'en dessous ». Le bouton porte `margin-top:10px` mais RIEN en bas :
   le titre de la section suivante (« VOLUME SUCCESSIONS ») venait s'y
   coller. On ecarte par le BAS du bouton plutot que par le haut du titre —
   ce titre est un `.sect-h` partage par toute la colonne, l'ecarter ici
   deplacerait tous les autres. */
.aqfic .flp-go-estim{ margin-bottom:20px; }
.aqfic .flp-go-estim:hover .flp-go-chev{ transform:translateX(2px); }

/* ─── [b2549] Les malus du score, en second rang ──────────────────────
   NOS classes. Le rang negatif est plus fin que le positif — il retranche,
   il ne pese pas autant a l'oeil — et prend `--chaud`, la couleur des
   alertes du produit. */
.aqfic .sc-stack-neg{ margin-top:3px; height:4px; }
.aqfic .sc-stack-neg .sc-seg.neg{ background:var(--chaud,#d64560); }

/* ─── [b2549] Typologie cliquable des signaux (Sismo) ─────────────── */
.aqfic .bvr.sg-typo{ cursor:pointer; border-radius:8px; transition:background .12s; }
.aqfic .bvr.sg-typo:hover{ background:var(--s2); }
.aqfic .bvr.sg-typo[data-sg-on]{ background:var(--s2); }
.aqfic .bvr.sg-typo[data-sg-on] .bvr-n{ color:var(--text); font-weight:600; }

/* ─── [b2551] Le résumé d'Arpe : une accroche, puis le détail ─────────
   NOS classes. La première phrase porte le poids, le reste s'efface d'un
   cran — c'est la hiérarchie qui manquait, pas la longueur. Le texte lui
   même n'est pas touché : c'est l'analyse d'Arpe. */
.aqfic .fcp-ins{ margin:0; }
.aqfic .fcp-ins-lead{
  margin:0; font-size:13px; line-height:1.45; font-weight:500; color:var(--text);
}
.aqfic .fcp-ins-rest{
  margin:7px 0 0; font-size:12px; line-height:1.55; color:var(--text-dim);
}

/* ═══════════════════════════════════════════════════════════════════════
   [b2555] LE FILET SOUS LE HEADER — LES DEUX PORTEURS, PAS UN SEUL.

   En b2554 je n'ai vise que `.dchrome-head`, la bande partagee des fiches
   bien et client. Anthony inspecte `.crumb` : le fil d'ariane des fiches
   Dossier, Lead et Prospect, qui porte SON PROPRE filet
   (`aqfic-core.css` : `border-bottom:1px solid var(--border)`). Deux
   porteurs pour le meme trait a l'ecran ; j'en ai corrige un et conclu que
   c'etait fait. Troisieme fois de la session que je style l'element d'a
   cote — la parade est la meme a chaque fois : INSPECTER LE NOEUD, pas
   supposer lequel porte la propriete.

   1px est le minimum en CSS, et sur un ecran retina il fait deux pixels
   physiques : c'est la COULEUR qui doit porter la finesse, pas l'epaisseur.
   `--border` attenue a 40 % donne un trait qui separe sans souligner. On
   passe par color-mix pour rester sur la couleur du theme : le mode noir
   suit sans regle supplementaire.
   ═══════════════════════════════════════════════════════════════════════ */
.donna-chrome.fb-chrome .dchrome-head,
.aqfic .crumb{
  border-bottom-color:color-mix(in srgb, var(--border) 40%, transparent);
}
