/* Fichier généré par bin/build-bo-css.php : ne pas modifier, modifier les sources puis relancer le script. */

/* ===== bo-jetons.css ===== */
/*
 * Jetons du back-office : planche de styles validée par Julien le 28/10/2026 (lot 0 du style unifié).
 *
 * Une seule source pour toutes les valeurs visuelles du BO. Les feuilles, les gabarits et Tailwind lisent ces
 * variables ; aucune couleur, taille, rayon, ombre ou marge ne s'écrit plus en dur ailleurs. Le test
 * tests/Design/JetonsBoTest.php refuse toute valeur hors de cette liste (strict depuis le lot 7, 29/10/2026 ; les
 * anciens noms --mq-*, --sobre-*, --color-*, --bo-texte-doux… sont supprimés).
 *
 * Choix validés : A départ du dégradé #1f6f8b ; B texte secondaire #4d6571 ; C contour des champs #8b8798 ;
 * D police DM Sans servie jusqu'à la graisse 700 (/fonts/fonts-bo.css) ; E en-têtes de tableau en 12 px graisse 600,
 * sans capitales ; F rayons 10, 14 et pilule ; G Tailwind pour la mise en page, composants (bo-composants.css) pour le décor.
 *
 * Contrastes (WCAG 2.2, recalculés par le test) : texte 4,5:1 minimum, contours de contrôle 3:1.
 * Cette feuille n'est chargée que dans le BO (paquet bo-tete.css) : l'espace client ne la voit pas.
 */
:root {
  /* ===================== Couleurs de base ===================== */
  --bo-bleu: #16424f;           /* texte courant, titres, liens. 10,9:1 sur blanc. */
  --bo-texte: var(--bo-bleu);
  --bo-bleu-survol: #0f3340;    /* survol d'un lien ou d'un contour actif. */
  --bo-petrole: #1f6f8b;        /* départ du dégradé, information. 5,7:1 sur blanc. */
  --bo-violet: #a83aa2;         /* accent : focus clavier, onglet actif. 5,5:1 sur blanc. */
  --bo-violet-fonce: #6d3f86;   /* intitulés de rubrique en capitales, pastille violette. 7,8:1 sur blanc. */
  --bo-texte-2: #4d6571;        /* aides, légendes, en-têtes de tableau. 6,2:1 sur blanc. Jamais sous 12 px. */
  --bo-fond: #f6f4f7;           /* fond de page */
  --bo-surface: #ffffff;        /* cartes, champs, boutons secondaires, fenêtres */
  --bo-surface-2: #faf9fc;      /* ligne paire de tableau, champ désactivé, encadré neutre */
  --bo-trait: #e4dde9;          /* filet décoratif des cartes et tableaux (jamais seul porteur d'information) */
  --bo-trait-champ: #8b8798;    /* contour des champs et boutons secondaires. 3,5:1 sur blanc (critère 1.4.11). */
  --bo-violet-fond: #f3e8f6;    /* élément sélectionné, pastille violette */

  /* ===================== États : texte et fond ===================== */
  --bo-ok: #0f6e56;             /* fait, à jour */
  --bo-ok-fond: #e3f4ec;
  --bo-attention: #8a5200;      /* à faire, à vérifier */
  --bo-attention-fond: #fdf0dc;
  --bo-bloquant: #8c2a1c;       /* bloquant, erreur, suppression */
  --bo-bloquant-fond: #fbe9e7;
  --bo-info: var(--bo-petrole);
  --bo-info-fond: #e6f1f5;
  --bo-neutre: var(--bo-texte-2); /* facultatif, sans objet, brouillon */
  --bo-neutre-fond: #eef0f2;

  /* ===================== Graphiques (décision de Julien, 29/10/2026) =====================
     Teintes douces tirées du bleu et du violet, pour les barres et anneaux de répartition. Chacune tient 3:1 sur blanc
     (critère 1.4.11 des éléments graphiques) ; deux voisines se distinguent nettement (écart CIEDE2000 de 16 à 27).
     Ordre d'emploi : 1, 2, 3… (barre de répartition de la proposition : assurance vie, capitalisation, PER, SCPI, autres). */
  --bo-graph-1: #4f88a5;        /* bleu pétrole doux. 3,9:1 sur blanc. */
  --bo-graph-2: #4f5f89;        /* bleu ardoise. 6,3:1. */
  --bo-graph-3: #9672b0;        /* violet doux. 3,9:1. */
  --bo-graph-4: #834f72;        /* prune. 6,3:1. */
  --bo-graph-5: #8487a2;        /* gris lavande. 3,5:1. */
  --bo-graph-6: #2d5362;        /* bleu nuit. 8,3:1. */

  /* ===================== Dégradés ===================== */
  --bo-degrade: linear-gradient(135deg, var(--bo-petrole) 0%, var(--bo-violet) 100%); /* bouton principal, un par écran */
  --bo-degrade-survol: linear-gradient(135deg, #185a73 0%, #8e2f8a 100%);
  --bo-degrade-menu: linear-gradient(180deg, #1b5f78 0%, #2b4f87 55%, #6b3a8f 100%);

  /* ===================== Typographie ===================== */
  --bo-police: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --bo-police-marque: 'Playfair Display', Georgia, serif; /* nom du cabinet dans le menu seulement */
  --bo-taille-legende: 12px;    /* pastilles, compteurs, en-têtes de tableau */
  --bo-taille-aide: 13px;       /* aides, cellules denses, étiquettes */
  --bo-taille-texte: 14px;      /* texte courant, boutons, champs */
  --bo-taille-sous-titre: 16px;
  --bo-taille-titre: 18px;      /* titre de carte */
  --bo-taille-chiffre: 24px;    /* chiffre clé, titre d'écran sur téléphone */
  --bo-taille-ecran: 30px;      /* titre d'écran */
  --bo-graisse-texte: 400;
  --bo-graisse-forte: 600;      /* boutons, étiquettes, pastilles */
  --bo-graisse-titre: 700;      /* titres d'écran et de carte, chiffres clés */
  --bo-interligne: 1.5;
  --bo-interligne-serre: 1.25;
  --bo-espacement-rubrique: .08em;

  /* ===================== Espacements ===================== */
  --bo-esp-1: 4px;
  --bo-esp-2: 8px;
  --bo-esp-3: 12px;
  --bo-esp-4: 16px;
  --bo-esp-5: 24px;
  --bo-esp-6: 32px;
  --bo-esp-7: 48px;
  /* Mise en page (lot 7, 29/10/2026) : valeurs déjà en usage, nommées une fois. */
  --bo-esp-ecran: var(--bo-esp-7);   /* marge latérale des écrans : en-tête, corps, panneaux des éditeurs React */
  --bo-esp-ecran-etroit: 20px;       /* la même sous 900 px de large */
  --bo-esp-connexion: 8vh;           /* marge haute et basse de la carte des pages de connexion (suit la hauteur de la fenêtre) */

  /* ===================== Rayons et ombres ===================== */
  --bo-rayon-controle: 10px;    /* bouton, champ, alerte */
  --bo-rayon-carte: 14px;       /* carte, panneau, fenêtre */
  --bo-rayon-pilule: 999px;     /* pastille, compteur, jauge */
  --bo-ombre-survol: 0 2px 8px rgba(22, 66, 79, .08);     /* carte cliquable au survol (les cartes n'ont pas d'ombre au repos) */
  --bo-ombre-flottant: 0 8px 24px rgba(22, 66, 79, .14);  /* menu déroulant, suggestions, barre collante */
  --bo-ombre-modale: 0 20px 48px rgba(14, 12, 24, .24);   /* fenêtre modale */
  --bo-ombre-repere: inset 3px 0 0 var(--bo-violet);      /* repère à gauche d'une ligne de liste survolée (lot 7 : valeur déjà en usage, nommée) */

  /* ===================== Focus et contrôles ===================== */
  --bo-focus-contour: 2px solid var(--bo-violet);
  --bo-focus-decalage: 2px;
  --bo-halo-champ: 0 0 0 3px rgba(31, 111, 139, .18);
  --bo-hauteur-controle: 40px;
  --bo-hauteur-compacte: 32px;
  --bo-hauteur-tactile: 44px;   /* toute cible sous 900 px de large */
}

/* ===== bo-dossier.css ===== */
/*
 * Dossier client du back-office (04/10/2026) : composants communs aux écrans
 * Connaissance client, Profil investisseur, Vigilance, Opération, Souscription,
 * Lettre de mission et rapport d'adéquation, Modèles de documents.
 *
 * Un seul endroit pour ces styles, pour que tous ces écrans se ressemblent :
 *  - titre de panneau : comme les blocs de la fiche client (13 px, medium) ;
 *  - surtitre de groupe : capitales violettes, comme les filtres des listes ;
 *  - en-têtes de tableau : petites capitales grises sur fond pâle.
 * S'applique sous la classe « dos » posée sur la racine de l'écran.
 * Couleurs : jetons du BO (assets/admin/admin.css).
 */
.dos { --dos-bloquant: var(--bo-bloquant); --dos-bloquant-fond: var(--bo-bloquant-fond); --dos-attention: var(--bo-attention); --dos-attention-fond: var(--bo-attention-fond); --dos-ok: var(--bo-ok); --dos-ok-fond: var(--bo-ok-fond); --dos-info-fond: var(--bo-info-fond); --dos-pale: var(--bo-surface-2); --dos-filet: var(--bo-trait); }

/* Panneaux et titres */
.dos .sec { padding: var(--bo-esp-4) var(--bo-esp-5); scroll-margin-top: 12px; }
.dos .sec > h2, .dos .sec-titre { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); letter-spacing: 0; text-transform: none; color: var(--bo-texte); }
.dos .sec > h2 small, .dos .sec-titre small { margin-left: var(--bo-esp-2); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dos .kicker, .dos .grp { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .14em; text-transform: uppercase; color: var(--bo-violet); }
.dos .sugg { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); line-height: 1.5; color: var(--bo-texte-2); }
.dos .apercu { padding: var(--bo-esp-5) var(--bo-esp-5); }

/* Formulaires */
.dos .f1 { display: grid; grid-template-columns: minmax(0, 34%) minmax(0, 1fr); gap: var(--bo-esp-2) var(--bo-esp-3); align-items: center; font-size: var(--bo-taille-aide); }
.dos .f1 > label { color: var(--bo-texte-2); }
.dos .f1 .adm-champ, .dos .champ .adm-champ { padding: var(--bo-esp-2) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
@media (max-width: 700px) { .dos .f1 { grid-template-columns: minmax(0, 1fr); } }
.dos .champ { display: grid; gap: var(--bo-esp-1); margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); }
.dos .champ > label { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-aide); }
.dos .champ .req { color: var(--bo-violet); }
.dos .champ textarea.adm-champ { min-height: 90px; }
.dos .champ small { color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }

/* Choix en pastilles */
.dos .choix { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
.dos .choix label { display: inline-flex; gap: var(--bo-esp-1); align-items: center; padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-texte); color: var(--bo-texte); background: var(--bo-surface); cursor: pointer; }
.dos .choix label:has(input:checked) { border-color: var(--bo-bleu); background: var(--bo-info-fond); }
.dos .choix input:checked + span { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.dos .choix input:disabled + span { color: var(--bo-texte-2); }
.dos .choix--col { flex-direction: column; align-items: flex-start; }

/* Badges (niveaux, résultats, statuts) */
.dos .badge { display: inline-block; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); white-space: nowrap; background: var(--bo-neutre-fond); color: var(--bo-bleu); }
.dos .b-possible, .dos .b-renforcee, .dos .b-interdiction, .dos .b-bloquant, .dos .b-annule, .dos .b-rejetee { background: var(--dos-bloquant-fond); color: var(--dos-bloquant); }
.dos .b-aucune, .dos .b-standard, .dos .b-allegee, .dos .b-dispense, .dos .b-ok, .dos .b-signe, .dos .b-acceptee { background: var(--dos-ok-fond); color: var(--dos-ok); }
.dos .b-erreur, .dos .b-complementaire, .dos .b-attention, .dos .b-finalise { background: var(--dos-attention-fond); color: var(--dos-attention); }

/* Tableaux */
.dos .tl { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
.dos .tl th { text-align: left; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); background: var(--dos-pale); padding: var(--bo-esp-2) var(--bo-esp-2); }
.dos .tl td { padding: var(--bo-esp-2) var(--bo-esp-2); border-bottom: 1px solid var(--dos-filet); vertical-align: top; }

/* Listes de points (alertes, contrôle, bandeau) */
.dos .alertes, .dos .pts { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
.dos .alertes li, .dos .pts li { display: flex; justify-content: space-between; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--dos-pale); }
.dos .alertes .g-bloquant, .dos .pts .g-bloquant { background: var(--dos-bloquant-fond); color: var(--dos-bloquant); }
.dos .alertes .g-attention, .dos .pts .g-attention { background: var(--dos-attention-fond); color: var(--dos-attention); }
.dos .alertes .g-info, .dos .pts .g-info { background: var(--dos-info-fond); color: var(--bo-bleu); }
.dos .pts a { color: inherit; font-weight: var(--bo-graisse-forte); white-space: nowrap; }
.dos .ok, .dos .rien { margin: 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--dos-ok-fond); color: var(--dos-ok); font-size: var(--bo-taille-aide); }
.dos .ko { margin: 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--dos-bloquant-fond); color: var(--dos-bloquant); font-size: var(--bo-taille-aide); }
.dos .err { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--dos-bloquant-fond); color: var(--dos-bloquant); font-size: var(--bo-taille-aide); }

/* Journal */
.dos .journal { list-style: none; margin: 0; padding: 0; font-size: var(--bo-taille-aide); display: grid; gap: var(--bo-esp-2); }
.dos .journal li { padding-left: var(--bo-esp-3); border-left: 2px solid var(--bo-trait); }
.dos .journal b { color: var(--bo-bleu); }
.dos .journal small { display: block; color: var(--bo-texte-2); }

/* Barre d'actions collée en bas */
.dos .barre { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--bo-esp-2) var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
.dos .barre .sugg { margin: 0 auto 0 0; }

/* Navigation latérale des écrans longs */
.dos .nav-lat { position: sticky; top: 12px; display: grid; gap: 2px; font-size: var(--bo-taille-aide); }
.dos .nav-lat a { display: flex; justify-content: space-between; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); color: var(--bo-bleu); text-decoration: none; }
.dos .nav-lat a:hover { background: var(--bo-surface); }
.dos .nav-lat small { color: var(--bo-texte-2); } /* 17/10/2026 (audit D-UX-09) : texte, contraste 5,8:1 (le jeton clair ne donnait que 2,86:1) */

/* Poste de travail : carte du dossier à gauche (identité, rubriques et leur état, prochaine étape), travail à droite.
   28/10/2026 (style unifié, lot 2 : carte dossier de gauche ; lot 3 : chiffres de la fiche client) : une seule définition par
   élément, valeurs des jetons. Les surcharges de charte-sobre.css (bleu calme) et bo-maquette.css (palette vivante) sont reprises
   ici. Plus de bandeau dégradé derrière le titre : l'en-tête est à plat sur le fond de page (bo-composants.css, « Coque »). */
.dos:has(> .dcarte) { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 0 var(--bo-esp-5); align-items: start; }
.dos:has(> .dcarte) > :not(.dcarte):not(style):not(script) { grid-column: 2; min-width: 0; }
.dos:has(> .dcarte) > .dcarte { grid-column: 1; grid-row: 1 / span 40; position: sticky; top: 12px; }
@media (max-width: 1100px) { .dos:has(> .dcarte) { grid-template-columns: minmax(0, 1fr); } .dos:has(> .dcarte) > :not(.dcarte):not(style):not(script) { grid-column: 1; } .dos:has(> .dcarte) > .dcarte { grid-row: auto; position: static; margin-bottom: var(--bo-esp-4); } }

.dcarte { overflow: hidden; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); scrollbar-gutter: auto; }
@media (min-width: 1101px) { .dcarte { scrollbar-gutter: stable both-edges; } }
.dcarte__id { display: flex; gap: var(--bo-esp-3); align-items: center; padding: var(--bo-esp-4) var(--bo-esp-4) var(--bo-esp-2); }
.dcarte__avatar { flex: 0 0 48px; height: 48px; display: grid; place-items: center; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); }
.dcarte__nom { min-width: 0; }
.dcarte__nom b { display: block; font-size: var(--bo-taille-sous-titre); line-height: var(--bo-interligne-serre); color: var(--bo-bleu); }
.dcarte__nom span { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dcarte__completer { font-size: var(--bo-taille-legende); color: var(--bo-violet); }
.dcarte__coord { display: grid; gap: 2px; margin: 0; padding: 0 var(--bo-esp-4) var(--bo-esp-2); list-style: none; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.dcarte__coord li { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcarte__coord a { color: var(--bo-bleu); text-decoration: none; }
/* Conseiller référent dans la carte (06/10/2026) ; bouton « Enregistrer » (17/10/2026, audit D-UX-17). */
.dcarte__coord .dos-cons form { display: flex; align-items: center; gap: var(--bo-esp-2); margin: var(--bo-esp-1) 0 0; }
.dcarte__coord .dos-cons label { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); white-space: nowrap; }
.dcarte__coord .dos-cons select { flex: 1; min-width: 0; padding: 0 var(--bo-esp-2); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font: inherit; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
.dcarte__coord .dos-cons__ok { min-height: var(--bo-hauteur-compacte); padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font: inherit; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
.dcarte__coord .dos-cons__ok:hover { border-color: var(--bo-bleu); background: var(--bo-surface-2); }
/* Jauge du KYC */
.dcarte__jauge { margin: 0 var(--bo-esp-4) var(--bo-esp-3); }
.dcarte__jauge p { display: flex; justify-content: space-between; margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dcarte__jauge > div { height: 6px; overflow: hidden; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); }
.dcarte__jauge > div > span { display: block; width: var(--p, 0); height: 100%; background: var(--bo-bleu); }
/* Rubriques du dossier */
.dcarte__nav { display: grid; gap: 2px; padding: var(--bo-esp-2); border-top: 1px solid var(--bo-trait); }
.dcarte__tete { margin: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-legende); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-violet-fonce); }
.dcarte__nav > .dcarte__tete { display: flex; align-items: center; gap: var(--bo-esp-1); margin: var(--bo-esp-3) var(--bo-esp-2) var(--bo-esp-1); }
.dcarte__nav > .dcarte__tete:first-child { margin-top: 2px; }
.dcarte__nav a { display: flex; align-items: center; gap: var(--bo-esp-2); padding: var(--bo-esp-2); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-texte); color: var(--bo-texte); text-decoration: none; }
.dcarte__nav a:hover { background: var(--bo-surface-2); }
.dcarte__nav .ic { flex: 0 0 18px; color: var(--bo-bleu); }
.dcarte__nav .lib { flex: 1; min-width: 0; }
.dcarte__nav > a, .dcarte__grp > summary { position: relative; display: flex; align-items: center; gap: var(--bo-esp-2); padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-texte); color: var(--bo-bleu); }
.dcarte__nav > a .ic, .dcarte__grp > summary .ic { box-sizing: content-box; padding: var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); color: var(--bo-bleu); }
.dcarte__nav > a.dcarte__rb { padding: 3px var(--bo-esp-2); }
.dcarte__nav > a.dcarte__rb .ic { width: 16px; height: 16px; padding: var(--bo-esp-1); }
.dcarte__nav > a:hover, .dcarte__grp > summary:hover { background: var(--bo-surface-2); }
/* Rubrique ouverte : fond violet pâle, filet à gauche, pictogramme sur fond bleu pâle (planche : élément sélectionné). */
.dcarte__nav > a.is-actif, .dcarte__grp > summary.is-actif { background: var(--bo-violet-fond); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.dcarte__nav > a.is-actif::before, .dcarte__grp > summary.is-actif::before { content: ''; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: var(--bo-rayon-pilule); background: var(--bo-bleu); }
.dcarte__nav > a.is-actif .ic, .dcarte__grp > summary.is-actif .ic { background: var(--bo-info-fond); color: var(--bo-bleu); }
/* Groupes à sous-menus (05/10/2026, d'après Wizio) */
.dcarte__grp > summary { cursor: pointer; list-style: none; transition: background .15s ease; }
.dcarte__grp > summary::-webkit-details-marker { display: none; }
.dcarte__grp > summary:focus-visible { outline: var(--bo-focus-contour); outline-offset: -2px; }
.dcarte__chev { flex: none; width: 7px; height: 7px; margin: 0 2px; border-right: 1.5px solid var(--bo-trait-champ); border-bottom: 1.5px solid var(--bo-trait-champ); transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.dcarte__grp[open] > summary .dcarte__chev { transform: translateY(1px) rotate(-135deg); }
.dcarte__grp[open] > .dcarte__sous { animation: dcarte-ouvre .18s ease-out; }
@keyframes dcarte-ouvre { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .dcarte__grp[open] > .dcarte__sous { animation: none; } }
.dcarte__sous { display: grid; gap: 1px; margin: 2px 0 var(--bo-esp-1) var(--bo-esp-5); padding-left: var(--bo-esp-2); border-left: 2px solid var(--bo-trait); }
.dcarte__sous a { display: flex; align-items: center; justify-content: space-between; gap: var(--bo-esp-2); padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.dcarte__sous a:hover { background: var(--bo-surface-2); color: var(--bo-bleu); }
.dcarte__sous a.is-sous { background: var(--bo-violet-fond); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.dcarte__sous-titre { margin: var(--bo-esp-1) var(--bo-esp-2) 2px; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-violet-fonce); }
.dcarte__sous a.dcarte__ancre { padding-left: var(--bo-esp-5); font-size: var(--bo-taille-legende); }
/* Sous-menus de conformité repliés, en retrait sous le tableau de conformité (06/10/2026). */
.dcarte__grp--cf { margin-left: var(--bo-esp-5); }
.dcarte__grp--cf > summary { padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.dcarte__grp--cf > summary .lib { flex: 1; }
.dcarte__grp--cf > .dcarte__sous { margin-left: var(--bo-esp-2); }
/* État des rubriques : pourcentage et pastilles qui disent ce qu'elles comptent (« 2 bloquants », « 1 à traiter »). */
.dcarte__pct { padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-neutre); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); white-space: nowrap; }
.dcarte__pct.moitie { background: var(--bo-attention-fond); color: var(--bo-attention); }
.dcarte__pct.plein { background: var(--bo-ok-fond); color: var(--bo-ok); }
.dcarte__pct.info { background: var(--bo-info-fond); color: var(--bo-bleu); }
.dcarte__pct.alerte { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
.dcarte__bloq { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 var(--bo-esp-1); border-radius: var(--bo-rayon-pilule); background: var(--bo-bloquant); color: var(--bo-surface); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); }
.dcarte__bloq--texte { width: auto; height: auto; min-height: 20px; padding: 1px var(--bo-esp-2); font-weight: var(--bo-graisse-forte); white-space: nowrap; text-decoration: none; }
a.dcarte__bloq--texte { color: var(--bo-surface); letter-spacing: 0; text-transform: none; }
a.dcarte__bloq--texte:hover { background: var(--bo-bleu-survol); }
/* Prochaine étape : le dégradé du bouton principal ; vert pâle quand tout est prêt. */
.dcarte__suite { box-sizing: border-box; display: block; max-width: calc(100% - 20px); margin: var(--bo-esp-1) var(--bo-esp-2) var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-degrade); color: var(--bo-surface); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); text-align: center; text-decoration: none; }
.dcarte__suite:hover { background: var(--bo-degrade-survol); color: var(--bo-surface); }
.dcarte__suite small { display: block; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-texte); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; opacity: .85; }
.dcarte__suite--ok, .dcarte__suite--ok:hover { background: var(--bo-ok-fond); color: var(--bo-ok); }
/* La colonne du dossier défile seule quand elle dépasse la hauteur de l'écran. */
@media (min-width: 1101px) { .dos:has(> .dcarte) > .dcarte { max-height: calc(100dvh - 92px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: auto; scrollbar-gutter: stable; } }

/* 05/10/2026 (Julien) : chiffres de la synthèse du client, au dessin de la Base CRM. La première carte (KYC) est pleine (dégradé). */
.fiche-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--bo-esp-3); margin-bottom: var(--bo-esp-4); }
@media (max-width: 1300px) { .fiche-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fiche-kpis { grid-template-columns: minmax(0, 1fr); } }
.fiche-kpis .crm-kpi { position: relative; display: grid; gap: 2px; overflow: hidden; padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); color: inherit; text-decoration: none; }
.fiche-kpis .crm-kpi__ic { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--bo-rayon-controle); background: var(--bo-info-fond); color: var(--bo-petrole); }
.fiche-kpis .crm-kpi__ic--violet { background: var(--bo-violet-fond); color: var(--bo-violet); }
.fiche-kpis .crm-kpi__ic--vert { background: var(--bo-ok-fond); color: var(--bo-ok); }
.fiche-kpis .crm-kpi__lib { box-sizing: border-box; min-height: 40px; padding-right: var(--bo-esp-7); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.fiche-kpis .crm-kpi b { margin-top: var(--bo-esp-1); overflow-wrap: anywhere; white-space: nowrap; font-family: var(--bo-police); font-size: var(--bo-taille-chiffre); font-weight: var(--bo-graisse-titre); line-height: var(--bo-interligne-serre); color: var(--bo-bleu); }
.fiche-kpis .crm-kpi small { margin-top: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.fiche-kpis .crm-kpi--plein { border: 0; color: var(--bo-surface); }
.fiche-kpis .crm-kpi--plein :is(.crm-kpi__lib, small, .fiche-kpis__lien) { color: color-mix(in srgb, var(--bo-surface) 85%, transparent); }
.fiche-kpis .crm-kpi--plein b { color: var(--bo-surface); }
.fiche-kpis .crm-kpi--plein .crm-kpi__ic { background: color-mix(in srgb, var(--bo-surface) 22%, transparent); color: var(--bo-surface); }
.fiche-kpis .crm-jauge { display: block; height: 6px; margin: var(--bo-esp-2) 0 2px; overflow: hidden; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); }
.fiche-kpis .crm-jauge i { display: block; width: var(--p, 0); height: 100%; border-radius: var(--bo-rayon-pilule); } /* couleur : dégradé des jauges (bo-composants.css) */
.fiche-kpis .crm-kpi--plein .crm-jauge { background: color-mix(in srgb, var(--bo-surface) 30%, transparent); }
.fiche-kpis .crm-kpi--plein .crm-jauge i { background: var(--bo-surface) !important; }
.fiche-kpis .fiche-kpis__lien { color: inherit; font-weight: var(--bo-graisse-forte); text-decoration: underline; text-underline-offset: 2px; }
.fiche-statut { margin: 0 0 var(--bo-esp-4); }

/* 23/10/2026 : la barre « Clients » (_crm-nav) est retirée, ses entrées sont dans le menu de gauche. Sa mise en page des écrans Clients reste ici. */
.crm { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bo-esp-4); max-width: 1560px; }
.crm-main { display: grid; gap: var(--bo-esp-5); min-width: 0; }
.crm-main > * { min-width: 0; }

/* 28/10/2026 (Julien, iPhone et tablette) : menu du dossier replié derrière un bouton sous 1100 px ; au-delà, le bouton disparaît. */
.dcarte__bascule { display: none; }
@media (max-width: 1100px) {
  .dcarte__bascule { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; width: calc(100% - 20px); min-height: 44px; margin: 0 var(--bo-esp-2) var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-texte); font: inherit; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); text-align: left; cursor: pointer; }
  .dcarte__bascule::after { content: "▾"; margin-left: var(--bo-esp-2); }
  .dcarte__bascule[aria-expanded="true"]::after { content: "▴"; }
  .dcarte__nav:not(.is-ouvert) { display: none; }
  /* La carte prend la largeur ; identité et coordonnées sur deux colonnes quand la place le permet. */
  .dcarte .dcarte__suite { margin: 0 var(--bo-esp-2) var(--bo-esp-2); }
  .dcarte__coord li { white-space: normal; }

  /* Fiche client : l'essentiel d'abord (identité, prochaine étape, points bloquants, suivi, fil), les chiffres et la saisie ensuite. */
  .dos:has(> .dcarte):has(.fiche) { display: flex; flex-direction: column; align-items: stretch; gap: var(--bo-esp-4); }
  .dos:has(> .dcarte):has(.fiche) > *, .dos:has(> .dcarte) > .fiche > *, .dos:has(> .dcarte) > .fiche > .fiche__colonne > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
  .dos:has(> .dcarte) > .dcarte { margin-bottom: 0; }
  .dos:has(> .dcarte) > .fiche, .dos:has(> .dcarte) > .fiche > .fiche__colonne { display: contents; }
  .dos:has(> .dcarte) > .fiche-statut { order: 1; margin: 0; }
  .dos:has(> .dcarte) > .fiche > .fiche__colonne > .guide { order: 0; }
  .dos:has(> .dcarte) > .fiche > .fiche__colonne > #suivi-commercial { order: 2; }
  .dos:has(> .dcarte) > .fiche > .fiche__colonne > #fil { order: 3; }
  .dos:has(> .dcarte) > .fiche-kpis { order: 4; margin: 0; }
  .dos:has(> .dcarte) > .fiche > .ident { order: 5; }
  .dos:has(> .dcarte) > .fiche > .fiche__colonne > * { order: 6; }
  .dos:has(> .dcarte) > .fiche > .fiche__colonne > :is(.guide, #suivi-commercial, #fil) { min-width: 0; }
}
@media (max-width: 700px) {
  /* Chiffres clés en grille 2 × 2 compacte. */
  .dos .fiche-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bo-esp-2); }
  .dos .fiche-kpis .crm-kpi { padding: var(--bo-esp-3); }
  .dos .fiche-kpis .crm-kpi__ic { display: none; }
  .dos .fiche-kpis .crm-kpi__lib { min-height: 0; padding-right: 0; }
  .dos .fiche-kpis .crm-kpi b { font-size: var(--bo-taille-titre); }
  .dos .fiche-kpis .crm-kpi small { font-size: var(--bo-taille-legende); }
}

/* 28/10/2026 (Julien, iPhone) : actions de la fiche. Décision de Julien du 28/10/2026 (audit UX F1, option B) : sous 1200 px,
   « ← Clients », « Proposition » et « Autres actions » sur une ligne, les autres actions dépliées à la demande ; au-delà, toutes
   les actions restent visibles et le bouton disparaît. Sous 700 px, les boutons prennent toute la largeur. */
.fiche-plus { display: contents; }
.fiche-plus__bouton { display: none !important; }
@media (max-width: 1199px) {
  .bo-entete__actions:has(.fiche-plus) { display: flex !important; flex-wrap: wrap; gap: var(--bo-esp-2); }
  .fiche-plus__bouton { display: inline-flex !important; }
  .fiche-plus__bouton::after { content: " ▾"; white-space: pre; }
  .fiche-plus__bouton[aria-expanded="true"]::after { content: " ▴"; }
  .fiche-plus { display: none; }
  .fiche-plus.is-ouvert { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--bo-esp-2); flex-basis: 100%; order: 99; }
}
@media (max-width: 700px) {
  .bo-entete__actions:has(.fiche-plus) > .adm-btn, .bo-entete__actions:has(.fiche-plus) > .fiche-plus__bouton { width: auto !important; flex: 1 1 auto; justify-content: center; min-height: 44px; }
  .fiche-plus.is-ouvert { display: grid; grid-template-columns: minmax(0, 1fr); }
  .fiche-plus.is-ouvert > *, .fiche-plus.is-ouvert form .adm-btn { width: 100% !important; min-height: 44px; }
}

/* 28/10/2026 (Julien, maquette « vigilance allégée ») : page Vigilance du client. Quatre blocs numérotés, panneau
   « À faire sur cette page » à droite (au-dessus des blocs quand la place manque), blocs secondaires repliés en bas,
   un seul bouton « Enregistrer ». Styles repris de l'ancien écran (niveaux, risques, questionnaire) sous .vg. */
.dos .vgx-etapes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); }
.dos .vgx-etape { display: flex; flex-wrap: wrap; align-items: center; gap: 2px var(--bo-esp-2); min-height: 44px; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-texte); font-size: var(--bo-taille-aide); text-decoration: none; }
.dos .vgx-etape small { flex-basis: 100%; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); line-height: 1; }
.dos .vgx-etape:hover { border-color: var(--bo-trait); }
.dos .vgx-etape.is-ici { position: relative; border-color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
/* Lot 7 : repère de l'étape en cours = la barre des onglets (bo-composants.css), en bleu ; plus d'ombre intérieure hors jetons. */
.dos .vgx-etape.is-ici::after { content: ''; position: absolute; left: var(--bo-esp-2); right: var(--bo-esp-2); bottom: -1px; height: 3px; border-radius: var(--bo-rayon-pilule); background: var(--bo-bleu); }
@media (max-width: 700px) { .dos .vgx-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.dos .vgx { container-type: inline-size; }
.dos .vgx-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bo-esp-3); align-items: start; }
.dos .vgx-corps, .dos .vgx-corps > form { display: grid; gap: var(--bo-esp-3); min-width: 0; }
@container (min-width: 760px) {
  .dos .vgx-grille { grid-template-columns: minmax(0, 1fr) 250px; }
  .dos .vgx-reste { grid-column: 2; grid-row: 1; position: sticky; top: 12px; }
  .dos .vgx-corps { grid-column: 1; grid-row: 1; }
}

/* Panneau « À faire sur cette page » et « Ailleurs dans le dossier ». */
.dos .vgx-reste { padding: var(--bo-esp-4) var(--bo-esp-4); }
.dos .vgx-reste h2 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.dos .vgx-reste .vgx-reste__h { margin-top: var(--bo-esp-4); }
.dos .vgx-reste__note { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dos .vgx-liste { list-style: none; margin: 0; padding: 0; font-size: var(--bo-taille-aide); }
.dos .vgx-liste > li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2px var(--bo-esp-2); padding: var(--bo-esp-2) 0; border-top: 1px solid var(--bo-trait); }
.dos .vgx-liste > li > a { color: var(--bo-texte); text-decoration: none; }
.dos .vgx-liste > li > a:hover { color: var(--bo-violet); text-decoration: underline; }
.dos .vgx-liste > li > small { flex-basis: 100%; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); line-height: 1.4; }
.dos .vgx-faits > summary { padding: var(--bo-esp-2) 0; border-top: 1px solid var(--bo-trait); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); cursor: pointer; }
.dos .vgx-faits > summary::marker { color: var(--bo-violet); }
.dos .vgx-ailleurs { width: 100%; }
.dos .vgx-ailleurs > summary { display: flex; justify-content: space-between; align-items: center; gap: var(--bo-esp-2); list-style: none; cursor: pointer; }
.dos .vgx-ailleurs > summary::-webkit-details-marker { display: none; }
.dos .vgx-ailleurs > summary > span:first-child::before { content: "▸ "; color: var(--bo-violet); }
.dos .vgx-ailleurs[open] > summary > span:first-child::before { content: "▾ "; }
.dos .vgx-ailleurs ul { margin: var(--bo-esp-1) 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); display: grid; gap: var(--bo-esp-1); }
.dos .vgx-ailleurs a { display: inline-block; margin: 2px 0 var(--bo-esp-1); color: var(--bo-violet); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); }

/* Pastilles d'état (communes aux blocs, au panneau et aux étapes). */
.dos .vg .vg-etat, .dos .vgx-etapes .vg-etat { flex: none; display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); line-height: 1.5; white-space: nowrap; background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
.dos .vg-etat.ok { background: var(--dos-ok-fond); color: var(--dos-ok); }
.dos .vg-etat.ko { background: var(--dos-attention-fond); color: var(--dos-attention); }
.dos .vg-etat.rouge { background: var(--dos-bloquant-fond); color: var(--dos-bloquant); }

/* Blocs numérotés. */
.dos .vgx-bloc { padding: var(--bo-esp-4) var(--bo-esp-5); scroll-margin-top: 12px; }
.dos .vgx-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--bo-esp-1) var(--bo-esp-3); margin: 0 0 var(--bo-esp-2); }
.dos .vgx-tete h2 { display: flex; align-items: center; margin: 0; font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.dos .vgx-num { display: inline-grid; place-items: center; flex: none; width: 24px; height: 24px; margin-right: var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: var(--bo-bleu); color: var(--bo-surface); font-size: var(--bo-taille-legende); }
.dos .vgx-aide { margin: var(--bo-esp-1) 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); line-height: 1.5; color: var(--bo-texte-2); }
.dos .vgx-lien { color: var(--bo-violet); font-size: var(--bo-taille-aide); text-decoration: underline; cursor: pointer; }
.dos .vgx-ligne { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--bo-esp-2); margin-top: var(--bo-esp-2); }
.dos .vgx-ligne > div { min-width: 0; }
.dos .vgx-ligne .vgx-large { grid-column: span 2; }
@container (max-width: 520px) { .dos .vgx-ligne .vgx-large { grid-column: 1 / -1; } }
.dos .vgx-ligne .adm-champ, .dos .vgx-si .adm-champ { width: 100%; }
.dos .vgx-ligne .adm-label, .dos .vgx-si .adm-label { display: block; margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); }
.dos .vgx-date { max-width: 200px; }
.dos .vgx-choix { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); }
.dos .vgx-choix label { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font-size: var(--bo-taille-texte); color: var(--bo-texte); cursor: pointer; }
.dos .vgx-choix input { position: absolute; opacity: 0; }
.dos .vgx-choix label:has(input:checked) { border-color: var(--bo-bleu); background: var(--bo-info-fond); font-weight: var(--bo-graisse-forte); }
.dos .vgx-choix label:has(input:focus-visible) { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.dos .vgx-case { display: flex; gap: var(--bo-esp-2); align-items: flex-start; margin: var(--bo-esp-2) 0; font-size: var(--bo-taille-aide); line-height: 1.5; color: var(--bo-texte); }
.dos .vgx-case input { margin-top: 3px; flex: none; }
.dos .vgx-alerte { margin: var(--bo-esp-2) 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--dos-bloquant-fond); color: var(--dos-bloquant); font-size: var(--bo-taille-aide); }
.dos .vgx-petit { display: inline-block; margin-top: var(--bo-esp-2); padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
.dos .vgx-defile { overflow-x: auto; }

/* Replis dans un bloc (mesures à distance, déclaration et contrôle PPE, relance). */
.dos .vgx-mesures, .dos .vgx-sous { margin: var(--bo-esp-2) 0 0; }
.dos .vgx-mesures > summary, .dos .vgx-sous > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--bo-esp-1) var(--bo-esp-3); list-style: none; cursor: pointer; font-size: var(--bo-taille-aide); }
.dos .vgx-mesures > summary::-webkit-details-marker, .dos .vgx-sous > summary::-webkit-details-marker { display: none; }
.dos .vgx-mesures > summary .vgx-aide { margin: 0; }
.dos .vgx-mesures[open] > summary .vgx-lien { display: none; }
.dos .vgx-sous { padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); }
.dos .vgx-sous > summary b { color: var(--bo-texte); }
.dos .vgx-sous > summary::before { content: "▸"; color: var(--bo-violet); }
.dos .vgx-sous[open] > summary::before { content: "▾"; }
.dos .vgx-sous[open] > summary .vgx-lien { display: none; }
.dos .vgx-resume { color: var(--bo-texte-2); }
.dos .vgx-cases { display: grid; gap: var(--bo-esp-1); margin: var(--bo-esp-2) 0 0; }
.dos .vgx-cases label { display: flex; gap: var(--bo-esp-2); align-items: flex-start; font-size: var(--bo-taille-aide); line-height: 1.45; color: var(--bo-texte); cursor: pointer; }
.dos .vgx-cases input { margin-top: 3px; flex: none; }
.dos .vgx-histo { margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
.dos .vgx-histo > summary { color: var(--bo-violet); font-weight: var(--bo-graisse-forte); cursor: pointer; }
.dos .vgx-histo ul { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); color: var(--bo-texte-2); display: grid; gap: 3px; }
.dos .vg .compteur { display: inline-block; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); }
.dos .vg .compteur.ok { background: var(--dos-ok-fond); color: var(--dos-ok); }
.dos .vg .compteur.ko { background: var(--dos-bloquant-fond); color: var(--dos-bloquant); }

/* Bloc complet replié en une ligne de résumé (retouche du 28/10/2026). */
.dos .vgx-plie > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--bo-esp-1) var(--bo-esp-3); list-style: none; cursor: pointer; font-size: var(--bo-taille-texte); }
.dos .vgx-plie > summary::-webkit-details-marker { display: none; }
.dos .vgx-plie > summary .vgx-resume { color: var(--bo-texte); }
.dos .vgx-plie[open] > summary { margin-bottom: var(--bo-esp-2); }
.dos .vgx-plie[open] > summary .vgx-lien { display: none; }
.dos .vgx-plie[open] > summary .vgx-resume { color: var(--bo-texte-2); }

/* Bloc 3 : cartographie compacte, une ligne par axe. */
.dos .vgx-carto { border-top: 1px solid var(--bo-trait); }
.dos .vgx-axe { --vgx-nom: 96px; display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1) var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-1); border-bottom: 1px solid var(--bo-trait); }
.dos .vgx-axe__nom { flex: 0 0 var(--vgx-nom); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.dos .vgx-axe__motif { flex: 1 1 160px; min-width: 0; font-size: var(--bo-taille-aide); line-height: 1.4; color: var(--bo-texte-2); }
.dos .vgx-crit { flex: none; margin-left: auto; font-size: var(--bo-taille-aide); }
.dos .vgx-crit > summary { color: var(--bo-violet); text-decoration: underline; list-style: none; cursor: pointer; }
.dos .vgx-crit > summary::-webkit-details-marker { display: none; }
.dos .vgx-crit[open] { flex-basis: 100%; margin-left: 0; }
/* Lot 7 : « Critères » ouvert reste aligné sur la colonne du motif (largeur du nom + écart de la ligne), au lieu de 110 px écrits en dur. */
.dos .vgx-crit[open] > summary { display: inline-block; position: relative; left: calc(var(--vgx-nom) + var(--bo-esp-4)); }
.dos .vg .risq { display: inline-flex; flex: none; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); overflow: hidden; }
.dos .vg .risq label { position: relative; cursor: pointer; }
.dos .vg .risq input { position: absolute; opacity: 0; }
.dos .vg .risq span { display: block; padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.dos .vg .risq input:checked + span { color: var(--bo-surface); font-weight: var(--bo-graisse-forte); }
.dos .vg .risq .r-faible input:checked + span { background: var(--bo-ok); }
.dos .vg .risq .r-moyen input:checked + span { background: var(--bo-attention); }
.dos .vg .risq .r-fort input:checked + span { background: var(--bo-bloquant); }
.dos .vg .risq input:focus-visible + span { outline: 2px solid var(--bo-violet); outline-offset: -2px; }
.dos .vg .crit { margin: var(--bo-esp-1) 0 0; padding: 0; list-style: none; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); display: grid; gap: 2px; }
.dos .vg .crit li b { font-weight: var(--bo-graisse-forte); }
.dos .vgx-prop { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--bo-esp-3) var(--bo-esp-4); margin-top: var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--dos-pale); }
.dos .vgx-prop__txt p { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-texte); }
.dos .vgx-prop__txt .vgx-aide { margin: 0; }
.dos .vgx-propose { font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-forte); }
.dos .vgx-prop__actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--bo-esp-2); }
.dos .vgx-niveaux > summary { list-style: none; cursor: pointer; }
.dos .vgx-niveaux > summary::-webkit-details-marker { display: none; }
.dos .vgx-niveaux[open] { flex-basis: 100%; }
.dos .vgx-niveaux[open] > summary { margin-bottom: var(--bo-esp-2); }
.dos .vgx-si { margin-top: var(--bo-esp-3); }
.dos .vgx-si .vgx-case { margin: 0; }
.dos .vg .niv { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--bo-esp-1); }
@container (max-width: 640px) { .dos .vg .niv { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dos .vg .niv label { position: relative; display: block; cursor: pointer; }
.dos .vg .niv input { position: absolute; opacity: 0; }
.dos .vg .niv span { display: block; min-height: 40px; padding: var(--bo-esp-2) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); text-align: center; font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.dos .vg .niv input:checked + span { border-color: transparent; color: var(--bo-surface); font-weight: var(--bo-graisse-forte); }
.dos .vg .niv input:focus-visible + span { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.dos .vg .n-non_definie input:checked + span { background: var(--bo-texte-2); }
.dos .vg .n-allegee input:checked + span { background: var(--bo-ok); }
.dos .vg .n-standard input:checked + span { background: var(--bo-petrole); }
.dos .vg .n-renforcee input:checked + span { background: var(--bo-attention); }
.dos .vg .n-examen_renforce input:checked + span { background: var(--bo-bloquant); }
.dos .vg .n-interdiction input:checked + span { background: var(--bo-bloquant); }

/* Bloc 4 : qualité des informations. */
.dos .vgx-qualite { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); }
.dos .vgx-qualite fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.dos .vgx-qualite legend { margin: 0 0 var(--bo-esp-1); padding: 0; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); }

/* Blocs repliés en bas, statut sur une ligne ; « Soupçon et Tracfin » bordé de rouge. */
.dos .vgx-replis { padding: var(--bo-esp-1) var(--bo-esp-5); }
.dos .vgx-replis > .vg-pli { padding: var(--bo-esp-1) 0; border-top: 1px solid var(--bo-trait); }
.dos .vgx-replis > .vg-pli:first-child { border-top: 0; }
.dos .vg-pli > summary { display: flex; align-items: center; gap: var(--bo-esp-2); flex-wrap: wrap; min-height: 44px; list-style: none; cursor: pointer; }
.dos .vg-pli > summary::-webkit-details-marker { display: none; }
.dos .vg-pli > summary::before { content: "▸"; color: var(--bo-violet); font-size: var(--bo-taille-texte); }
.dos .vg-pli[open] > summary::before { content: "▾"; }
.dos .vg-pli > summary h2 { flex: 1 1 0; min-width: 0; margin: 0 !important; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.dos .vg-pli > summary h2 small { margin-left: var(--bo-esp-2); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dos .vgx-replis > .vg-pli[open] { padding-bottom: var(--bo-esp-3); }
.dos .vgx-replis > .vgx-tracfin { margin: 0 calc(-1 * var(--bo-esp-5)); padding-left: var(--bo-esp-5); padding-right: var(--bo-esp-5); border-left: 3px solid var(--dos-bloquant); }
.dos .vgx-signe { margin: 0; padding-left: var(--bo-esp-5); display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
.dos .vg .texte-oblig p { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); line-height: 1.55; color: var(--bo-texte); }
.dos .vg .be td { padding: var(--bo-esp-1); }
.dos .vg .be input, .dos .vg .be select { width: 100%; padding: var(--bo-esp-1) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-aide); }
.dos .vg .be-manque { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-legende); }
.dos .vg .be-alerte { margin: var(--bo-esp-2) 0 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-aide); }
.dos .vgx-decision-envoi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-3); margin-top: var(--bo-esp-2); }

/* Questionnaire LCB-FT client (étape 1, même page). */
.dos .vg .q { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--bo-esp-2); align-items: center; padding: var(--bo-esp-2) 0; border-bottom: 1px solid var(--dos-filet); font-size: var(--bo-taille-aide); }
.dos .vg .q.risque { background: linear-gradient(90deg, var(--bo-attention-fond), transparent); }
.dos .vg .q .on { display: inline-flex; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); overflow: hidden; }
.dos .vg .q .on label { position: relative; cursor: pointer; }
.dos .vg .q .on input { position: absolute; opacity: 0; }
.dos .vg .q .on span { display: block; padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
.dos .vg .q .on input:checked + span { background: var(--bo-petrole); color: var(--bo-surface); }
.dos .vg .q .on input:focus-visible + span { outline: 2px solid var(--bo-violet); }
.dos .vg .q-tout { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.dos .vg .q-repris { display: block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-attention); }
.dos .vg .q-appliquer { margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border: 1px solid var(--bo-attention); border-radius: var(--bo-rayon-pilule); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-legende); cursor: pointer; }
.dos .vg .tag { display: inline-block; margin-left: var(--bo-esp-2); padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); letter-spacing: .05em; text-transform: uppercase; }
.dos .vg .tag-renforce { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
.dos .vg .tag-complementaire { background: var(--bo-attention-fond); color: var(--bo-attention); }

/* Ce que chaque vue montre : niveau (vigilance), questionnaire (lcbft), gel. */
.dos .vg[data-vue="vigilance"] #questionnaire { display: none; }
.dos .vg[data-vue="lcbft"] :is(.vgx-reste, .vgx-bloc, #revue, #beneficiaires, #decision, #soupcon, #historique, #obligations) { display: none; }
.dos .vg[data-vue="gel"] :is(.vgx-reste, form#vg-formulaire) { display: none; }
.dos .vg:not([data-vue="vigilance"]) .vgx-grille { grid-template-columns: minmax(0, 1fr); }
.dos .vg:not([data-vue="vigilance"]) .vgx-corps { grid-column: 1; }
.dos .vg-suite { display: flex; justify-content: space-between; align-items: center; gap: var(--bo-esp-2); flex-wrap: wrap; margin: var(--bo-esp-1) 0 0; padding: var(--bo-esp-3) 0 0; border-top: 1px solid var(--bo-trait); }

/* Barre « Enregistrer », collante en bas de l'écran. */
.dos .vg-barre { position: sticky; bottom: 0; z-index: 6; display: flex; justify-content: flex-end; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-3); flex-wrap: wrap; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
.dos .vg-barre .sugg { flex: 1 1 260px; margin: 0; }
@media (max-width: 700px) {
  .dos .vg-barre { padding: var(--bo-esp-2) var(--bo-esp-3); gap: var(--bo-esp-2); }
  .dos .vg-barre .sugg { flex-basis: 100%; font-size: var(--bo-taille-legende); line-height: 1.35; }
  .dos .vg-barre .adm-btn { flex: 1 1 auto; width: auto !important; min-height: 44px; justify-content: center; }
  .dos .vgx-bloc { padding: var(--bo-esp-4); }
  .dos .vgx-replis { padding: var(--bo-esp-1) var(--bo-esp-4); }
  .dos .vgx-replis > .vgx-tracfin { margin: 0 calc(-1 * var(--bo-esp-4)); padding-left: var(--bo-esp-4); padding-right: var(--bo-esp-4); }
  .dos .vgx-axe__nom { flex-basis: 100%; }
  .dos .vgx-crit[open] > summary { left: 0; }
  .dos .vgx-prop__actions, .dos .vgx-prop__actions > * { width: 100%; }
  .dos .vgx-prop__actions .adm-btn { width: 100%; min-height: 44px; justify-content: center; }
}

/* Lot 4 du style unifié (28/10/2026) : variantes des composants du dossier, à la place des attributs style="" des écrans
   (vigilance, opération, documents du client, souscription…). Spécificité supérieure à la règle de base (.dos .sugg). */
.dos .sugg.sugg--m0 { margin: 0; }
.dos .sugg.sugg--mt0 { margin-top: 0; }
.dos .sugg.sugg--bas { margin: 0 0 var(--bo-esp-2); }
.dos .sugg.sugg--bloquant { color: var(--bo-bloquant); }
.dos .sugg.sugg--attention { color: var(--bo-attention); }
.dos .sugg.sugg--fort { font-weight: var(--bo-graisse-forte); }
.dos .f1 .f1__plein { grid-column: 1 / -1; }
.dos .vg .vg-sous-titre { margin: var(--bo-esp-3) 0 var(--bo-esp-1); }
.dos .vg .vg-alerte-txt { color: var(--bo-bloquant); }
.dos .vg .vg-attestation { font-size: var(--bo-taille-legende); }
.dos .champ.champ--m0 { margin: 0; }
.dos .ok.ok--haut { margin-top: var(--bo-esp-2); }
.dos .ok.ok--bas, .dos .ko.ko--bas { margin: 0 0 var(--bo-esp-2); }

/* ===== bo-frais.css ===== */
/* Grille des frais (rapport d'adéquation, fiche produit). 04/10/2026. */
.gf{ margin-top: var(--bo-esp-4); max-width: 1320px; }
.gf__cadre{ overflow-x: auto; border-radius: var(--bo-rayon-carte); border: 1px solid var(--bo-trait); }
.gf__t{ width: 100%; min-width: 700px; border-collapse: collapse; font-size: var(--bo-taille-aide); }
.gf__t thead th{ background: var(--bo-bleu); color: var(--bo-surface); font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-legende); padding: var(--bo-esp-2) var(--bo-esp-1); text-align: left; }
.gf__t thead th.gf__cie{ background: var(--bo-texte-2); }
.gf__t thead .gf__groupe{ text-align: center; font-size: var(--bo-taille-aide); padding-bottom: 2px; }
.gf__t tbody tr:nth-child(odd){ background: var(--bo-surface-2); }
.gf__t td{ padding: var(--bo-esp-1) var(--bo-esp-1); vertical-align: middle; }
.gf__t td.gf__cie{ background: color-mix(in srgb, var(--bo-texte-2) 10%, transparent); }
.gf__c{ text-align: center; }
.gf__in{ width: 100%; padding: var(--bo-esp-1) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-aide); background: var(--bo-surface); }
.gf__lib{ min-width: 130px; }.gf__t select.gf__in{ width: auto; min-width: 72px; }
.gf__unite{ display: flex; }.gf__unite .gf__num{ border-radius: var(--bo-rayon-controle) 0 0 var(--bo-rayon-controle); text-align: right; width: 56px; min-width: 0; }.gf__unite i{ display: grid; place-items: center; padding: 0 var(--bo-esp-1); border: 1px solid var(--bo-trait); border-left: 0; border-radius: 0 var(--bo-rayon-controle) var(--bo-rayon-controle) 0; background: var(--bo-surface-2); font-style: normal; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
.gf__suppr{ display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bloquant); cursor: pointer; }
.gf__ajout{ width: 100%; padding: var(--bo-esp-2); border: 1.5px solid var(--bo-bleu); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); font: inherit; font-weight: var(--bo-graisse-forte); cursor: pointer; }
.gf__ajout:hover{ border-color: var(--bo-violet); color: var(--bo-violet); }
.gf__synth td{ background: var(--bo-bleu); color: var(--bo-surface); font-weight: var(--bo-graisse-titre); padding: var(--bo-esp-2) var(--bo-esp-2); }
.gf__synth td.gf__cie{ background: var(--bo-texte-2); }
.gf__synth small{ font-weight: var(--bo-graisse-forte); opacity: .85; }
.gf__fiches{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin: 0 0 var(--bo-esp-2); }
.gf__fiche{ display: inline-flex; align-items: center; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); text-decoration: none; }
.gf__fiche.ok{ background: var(--bo-ok-fond); color: var(--bo-ok); }
.gf__fiche.manque{ background: var(--bo-attention-fond); color: var(--bo-attention); }
.gf__ecart{ margin: 0 0 var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-aide); }
.gf--produit{ margin-top: 0; max-width: none; }
.gf--produit .gf__t{ min-width: 620px; }
small.repris{ color: var(--bo-ok); }
/* 28/10/2026 (style unifié, lot 5) : anciens style="" de _grille-frais.html.twig. */
.gf .sugg.gf__intro { margin: 0 0 var(--bo-esp-3); }
.gf .barre.gf__barre { margin-top: var(--bo-esp-3); justify-content: flex-start; }

/* Fiches produits (04/10/2026). */
.fp-liste{ max-width: 1180px; }
.fp-intro{ margin: 0 0 var(--bo-esp-4); color: var(--bo-texte-2); font-size: var(--bo-taille-texte); max-width: 820px; line-height: 1.55; }
.fp-kpis{ display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--bo-esp-3); margin: 0 0 var(--bo-esp-4); max-width: 640px; }
.fp-kpis div{ background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); padding: var(--bo-esp-3) var(--bo-esp-4); }
.fp-kpis b{ display: block; font-size: var(--bo-taille-titre); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.fp-kpis span{ font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.fp-kpis .alerte b{ color: var(--bo-attention); }
.fp-filtre input{ width: 100%; max-width: 420px; padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-texte); background: var(--bo-surface); }
.fp-titre{ margin: var(--bo-esp-5) 0 var(--bo-esp-2); font-size: var(--bo-taille-legende); letter-spacing: .12em; text-transform: uppercase; color: var(--bo-violet); font-weight: var(--bo-graisse-forte); }
.fp-titre small{ color: var(--bo-texte-2); letter-spacing: 0; font-size: var(--bo-taille-legende); margin-left: var(--bo-esp-1); }
.fp-cartes{ display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: var(--bo-esp-3); }
.fp-carte{ display: grid; gap: var(--bo-esp-1); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); border: 1px solid var(--bo-trait); text-decoration: none; color: inherit; transition: box-shadow .15s,transform .15s; }
.fp-carte:hover{ box-shadow: var(--bo-ombre-survol); transform: translateY(-1px); }
.fp-carte[hidden]{ display: none; }
.fp-carte__nom{ font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); font-size: var(--bo-taille-sous-titre); }
.fp-carte__prod{ font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.fp-carte__etat{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
.fp-carte__etat em,.fp-nav em{ font-style: normal; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
.fp-carte__etat em.ok,.fp-nav em.ok{ background: var(--bo-ok-fond); color: var(--bo-ok); }
.fp-carte__etat em.manque{ background: var(--bo-attention-fond); color: var(--bo-attention); }
.fp-jauge{ display: block; height: 6px; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); overflow: hidden; }
.fp-jauge i{ display: block; height: 100%; width: var(--p); background: linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce)); }
.fp-jauge.grande{ height: 8px; margin-top: var(--bo-esp-3); }
.fp{ display: grid; grid-template-columns: 280px minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; max-width: 1320px; }
.fp-carte-id{ position: sticky; top: 12px; padding: var(--bo-esp-4) var(--bo-esp-5); }
.fp-type{ display: inline-block; font-size: var(--bo-taille-legende); letter-spacing: .1em; text-transform: uppercase; font-weight: var(--bo-graisse-forte); color: var(--bo-surface); background: linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce)); border-radius: var(--bo-rayon-pilule); padding: 3px var(--bo-esp-3); }
.fp-carte-id h2{ margin: var(--bo-esp-2) 0 2px; font-family: var(--bo-police); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-titre); color: var(--bo-bleu); line-height: 1.2; }
.fp-prod{ margin: 0; color: var(--bo-texte-2); font-size: var(--bo-taille-texte); }
.fp-pct{ margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.fp-alerte{ margin: var(--bo-esp-3) 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-aide); line-height: 1.45; }
.fp-alerte--grille{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; justify-content: space-between; margin-top: var(--bo-esp-4); }
.fp-nav{ display: grid; gap: 2px; margin: var(--bo-esp-4) 0 0; padding-top: var(--bo-esp-3); border-top: 1px solid var(--bo-neutre-fond); }
.fp-nav a{ display: flex; justify-content: space-between; gap: var(--bo-esp-2); align-items: center; padding: var(--bo-esp-2) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); text-decoration: none; color: var(--bo-texte); font-size: var(--bo-taille-texte); }
.fp-nav a:hover{ background: var(--bo-surface-2); }
.fp-site{ margin-top: var(--bo-esp-3); padding-top: var(--bo-esp-3); border-top: 1px solid var(--bo-neutre-fond); }
.fp-site p{ margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); letter-spacing: .1em; text-transform: uppercase; color: var(--bo-texte-2); font-weight: var(--bo-graisse-forte); }
.fp-site dl{ display: grid; grid-template-columns: auto 1fr; gap: var(--bo-esp-1) var(--bo-esp-3); margin: 0; font-size: var(--bo-taille-aide); }
.fp-site dt{ color: var(--bo-texte-2); }.fp-site dd{ margin: 0; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); text-align: right; }
.fp-form{ display: grid; gap: var(--bo-esp-4); min-width: 0; }
.fp-rub{ padding: var(--bo-esp-4) var(--bo-esp-5); scroll-margin-top: 14px; }
.fp-rub h3{ margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.fp-rub .ec-champ.large{ grid-column: 1/-1; }
.fp-req{ color: var(--bo-violet); }
.fp-aide{ font-size: var(--bo-taille-legende); color: var(--bo-texte-2); line-height: 1.4; }
.fp-pills{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
.fp-pills label{ position: relative; cursor: pointer; }
.fp-pills input{ position: absolute; opacity: 0; pointer-events: none; }
.fp-pills span{ display: inline-block; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); border: 1px solid var(--bo-trait); background: var(--bo-surface); font-size: var(--bo-taille-texte); color: var(--bo-texte); transition: background .12s,border-color .12s; }
.fp-pills label:hover span{ border-color: var(--bo-violet-fonce); }
.fp-pills input:checked+span{ background: var(--bo-bleu); border-color: var(--bo-bleu); color: var(--bo-surface); }
.fp-pills input:focus-visible+span{ outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.fp-pills__vide span{ color: var(--bo-trait-champ); }
.fp-pills__vide input:checked+span{ background: var(--bo-neutre-fond); border-color: var(--bo-trait); color: var(--bo-texte-2); }
.fp-pills--sri span{ min-width: 40px; text-align: center; }
.fp-pills--sri label:nth-child(-n+2) input:checked+span{ background: var(--bo-ok); border-color: var(--bo-ok); }
.fp-pills--sri label:nth-child(n+3):nth-child(-n+4) input:checked+span{ background: var(--bo-bleu); border-color: var(--bo-bleu); }
.fp-pills--sri label:nth-child(n+5) input:checked+span{ background: var(--bo-violet-fonce); border-color: var(--bo-violet-fonce); }
@media (max-width:1100px){.fp{ grid-template-columns: minmax(0,1fr); }.fp-carte-id{ position: static; }}
@media (max-width:640px){.fp-kpis{ grid-template-columns: 1fr 1fr 1fr; gap: var(--bo-esp-2); }.fp-kpis b{ font-size: var(--bo-taille-titre); }.fp-rub{ padding: var(--bo-esp-3) var(--bo-esp-4); }.fp .ec-champs{ grid-template-columns: minmax(0,1fr); }}
.fp .ec-champ{ align-content: start; }
.fp-nav em{ white-space: nowrap; }

/* Veille réglementaire (04/10/2026). */
.vr{ display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: var(--bo-esp-4); align-items: start; max-width: 1320px; }
.vr-main{ display: grid; gap: var(--bo-esp-3); min-width: 0; }
.vr-onglets{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin-bottom: var(--bo-esp-1); }
.vr-onglets a{ padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); border: 1px solid var(--bo-trait); color: var(--bo-texte); text-decoration: none; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); }
.vr-onglets a b{ margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.vr-onglets a.actif{ background: linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce)); border-color: transparent; color: var(--bo-surface); }
.vr-onglets a.actif b{ background: color-mix(in srgb, var(--bo-surface) 20%, transparent); color: var(--bo-surface); }
.vr-carte{ background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); padding: var(--bo-esp-4) var(--bo-esp-4); display: grid; gap: var(--bo-esp-2); }
.vr-carte header{ display: flex; gap: var(--bo-esp-2); align-items: flex-start; }
.vr-carte h3{ margin: 0; flex: 1; font-size: var(--bo-taille-sous-titre); line-height: 1.35; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.vr-mod{ font-size: var(--bo-taille-aide); color: var(--bo-violet-fonce); }
.vr-aut{ flex: 0 0 auto; display: inline-block; min-width: 44px; text-align: center; padding: 3px var(--bo-esp-2); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: .04em; color: var(--bo-surface); background: var(--bo-texte-2); }
.vr-aut--amf{ background: var(--bo-bleu); }.vr-aut--acpr{ background: var(--bo-bleu); }.vr-aut--dda{ background: var(--bo-violet-fonce); }.vr-aut--mif2{ background: var(--bo-petrole); }
.vr-aut--lcbft{ background: var(--bo-bloquant); }.vr-aut--sfdr{ background: var(--bo-ok); }.vr-aut--esma{ background: var(--bo-texte-2); }.vr-aut--loi{ background: var(--bo-attention); }.vr-aut--anacofi{ background: var(--bo-violet); }
.vr-dates{ margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.vr-note{ margin: 0; font-size: var(--bo-taille-texte); color: var(--bo-texte); line-height: 1.5; }
.vr-reste{ list-style: none; margin: var(--bo-esp-1) 0 0; padding: 0; display: grid; gap: var(--bo-esp-1); }
.vr-reste li{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-3); align-items: center; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); }
.vr-reste__doc{ font-weight: var(--bo-graisse-forte); color: var(--bo-texte); font-size: var(--bo-taille-texte); }
.vr-reste__det{ flex: 1; font-size: var(--bo-taille-aide); color: var(--bo-attention); }
.vr-reste form{ margin: 0; }
.vr-reste .adm-btn{ padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
.vr-ok{ margin: 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-ok-fond); color: var(--bo-ok); font-size: var(--bo-taille-aide); }
.vr-carte footer form{ display: flex; gap: var(--bo-esp-3); align-items: center; margin: var(--bo-esp-1) 0 0; }
.vr-lien{ border: 0; background: none; padding: 0; color: var(--bo-texte-2); font: inherit; font-size: var(--bo-taille-aide); text-decoration: underline; cursor: pointer; }
.vr-lien--danger{ color: var(--bo-bloquant); margin-top: var(--bo-esp-2); }
.vr-intro{ margin: 0; color: var(--bo-texte-2); font-size: var(--bo-taille-texte); }
.vr-vide{ padding: var(--bo-esp-4) var(--bo-esp-5); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); border: 1px dashed var(--bo-trait); color: var(--bo-texte-2); font-size: var(--bo-taille-texte); }
.vr-qualif{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: var(--bo-esp-1) 0 0; }
.vr-sans{ margin: 0; }
.vr-effet{ font-size: var(--bo-taille-aide); color: var(--bo-texte-2); display: flex; gap: var(--bo-esp-1); align-items: center; }
.vr-effet input{ padding: var(--bo-esp-1) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-aide); }
.vr-pills{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
.vr-pills label{ position: relative; cursor: pointer; }
.vr-pills input{ position: absolute; opacity: 0; pointer-events: none; }
.vr-pills span{ display: inline-block; padding: var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); border: 1px solid var(--bo-trait); background: var(--bo-surface); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.vr-pills input:checked+span{ background: var(--bo-bleu); border-color: var(--bo-bleu); color: var(--bo-surface); }
.vr-pills input:focus-visible+span{ outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.vr-table{ width: 100%; border-collapse: collapse; background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); overflow: hidden; font-size: var(--bo-taille-texte); }
.vr-table th,.vr-table td{ padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }
.vr-table th{ font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); background: var(--bo-surface-2); }
.vr-table small{ display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
.vr-table form{ margin: 0; }
.vr-table .nowrap{ white-space: nowrap; }
.vr-cote{ display: grid; gap: var(--bo-esp-3); position: sticky; top: 12px; }
.vr-panneau{ background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); padding: var(--bo-esp-4) var(--bo-esp-4); scroll-margin-top: 12px; }
.vr-panneau h2{ margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.vr-form{ display: grid; gap: var(--bo-esp-2); }
.vr-form label{ display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.vr-form input,.vr-form select,.vr-form textarea{ width: 100%; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-texte); color: var(--bo-texte); background: var(--bo-surface); }
.vr-form fieldset{ border: 0; padding: 0; margin: 0; }
.vr-form legend{ font-size: var(--bo-taille-aide); color: var(--bo-texte-2); margin-bottom: var(--bo-esp-1); }
.vr-2{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-2); }
.vr-barre{ display: flex; gap: var(--bo-esp-3); align-items: center; }
.vr-etapes{ margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); color: var(--bo-texte); line-height: 1.5; display: grid; gap: var(--bo-esp-1); }
.vr-petit{ margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.vr-reglages{ margin-top: var(--bo-esp-3); }
.vr-reglages summary{ cursor: pointer; font-size: var(--bo-taille-aide); color: var(--bo-violet-fonce); font-weight: var(--bo-graisse-forte); margin-bottom: var(--bo-esp-2); }
@media (max-width:1180px){.vr{ grid-template-columns: minmax(0,1fr); }.vr-cote{ position: static; }}
@media (max-width:560px){.vr-2{ grid-template-columns: 1fr; }.vr-table th:nth-child(3),.vr-table td:nth-child(3){ display: none; }}
.vr-bandeau{ margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-attention-fond); border: 1px solid var(--bo-attention-fond); font-size: var(--bo-taille-texte); color: var(--bo-attention); max-width: 1320px; }
.vr-bandeau ul{ list-style: none; margin: var(--bo-esp-2) 0; padding: 0; display: grid; gap: var(--bo-esp-1); }
.vr-bandeau li small{ display: block; color: var(--bo-attention); margin-top: 2px; }
.vr-bandeau p{ margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-attention); }
.vr-bandeau .vr-aut{ margin-right: var(--bo-esp-2); }
.fp-form--fiche{ display: grid; gap: var(--bo-esp-4); min-width: 0; }
.fp-dics{ list-style: none; margin: 0 0 var(--bo-esp-3); padding: 0; display: grid; gap: var(--bo-esp-1); }
.fp-dics li{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-3); align-items: center; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
.fp-dics li.actuel{ background: var(--bo-ok-fond); }
.fp-dics a{ font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.fp-dics small{ flex: 1; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
.fp-dics em{ font-style: normal; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); }
.fp-dics li.actuel em{ color: var(--bo-ok); }
.fp-depot{ display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
.fp-fichier{ position: relative; cursor: pointer; }
.fp-fichier input{ position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.fp-fichier span{ display: inline-block; padding: var(--bo-esp-2) var(--bo-esp-4); border: 1.5px dashed var(--bo-trait); border-radius: var(--bo-rayon-controle); color: var(--bo-bleu); font-size: var(--bo-taille-texte); background: var(--bo-surface); max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.fp-fichier.choisi span{ border-style: solid; border-color: var(--bo-ok); color: var(--bo-ok); }
.fp-fichier input:focus-visible+span{ outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.fp-version{ display: flex; gap: var(--bo-esp-1); align-items: center; font-size: var(--bo-taille-texte); color: var(--bo-texte-2); }
.fp-version input{ padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-texte); }
.dossier-sig ol{ margin: 0 0 var(--bo-esp-3); padding-left: var(--bo-esp-5); display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-texte); }
.dossier-sig a{ font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.dossier-sig small{ color: var(--bo-texte-2); }
.aide-sig{ margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); line-height: 1.45; }
.rg-retard{ color: var(--bo-bloquant); }
.rg-annees{ display: inline-flex; gap: var(--bo-esp-1); margin-left: auto; }
.rg-annees a{ padding: var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); text-decoration: none; }
.rg-annees a.actif{ background: var(--bo-neutre-fond); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
.vr-onglets .rg-annees a.actif{ background: var(--bo-bleu); color: var(--bo-surface); }/* 06/10/2026 : année active lisible */

/* ===== bo-base.css ===== */
/*
 * Base du back-office (style unifié, lot 7, 29/10/2026) : ce qui restait des deux feuilles historiques de tête,
 * bo-moderne.css (habillage clair du lot Z23, 02/10/2026) et bo-charte.css (charte commune du 04/10/2026), fusionnées.
 * Les règles écrasées partout (mesure dans le navigateur, 205 écrans x 3 largeurs) et le code mort (ancien menu latéral,
 * cartes de chiffres) sont retirés ; toutes les valeurs lisent les jetons de bo-jetons.css.
 *
 * Place dans le paquet bo-tete.css : celle de bo-charte.css (après bo-dossier.css et bo-frais.css). L'ancienne place de
 * bo-moderne.css était plus haut ; le déplacement est vérifié écran par écran (styles calculés identiques).
 */

/* ======================================================================
   Habillage (ex bo-moderne.css)
   ====================================================================== */
body { background: var(--bo-fond); }

/* --- Cartes et panneaux (la carte des pages de connexion prend le filet des jetons, sans ombre : lot 7) --- */
.bo-panel, .adm-carte, .bo-data-card { border-color: var(--bo-trait); box-shadow: none; }
.bo-liste__item { transition: background .2s ease, box-shadow .2s ease, padding-left .2s ease; }
.bo-liste__item:hover { padding-left: var(--bo-esp-6); }

/* --- Tableaux : une ligne sur deux à peine teintée ------------------------------ */
.bo-corps table tbody tr:nth-child(even) > * { background-color: var(--bo-surface-2); }
.bo-corps table tbody tr { transition: background .15s ease; }
.bo-corps table tbody tr:hover > * { background-color: var(--bo-fond); }

/* --- Formulaires ----------------------------------------------------------------- */
.adm-champ { transition: border-color .15s ease, box-shadow .15s ease; }
.adm-champ:focus { outline: none; border-color: var(--bo-violet); box-shadow: var(--bo-halo-champ); }

/* --- Boutons ----------------------------------------------------------------------- */
.adm-btn-principal { background-size: 160% 100% !important; background-position: 0 0; transition: background-position .4s ease, box-shadow .2s ease, transform .2s ease; }
.adm-btn-principal:hover:not(:disabled) { background-position: 100% 0 !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
/* ======================================================================
   Listes, Score patrimonial, barre d'actions, écrans étroits (ex bo-charte.css)
   ====================================================================== */
/* Menus déroulants des boutons d'en-tête (« + Nouveau ▾ ») : ouverts vers la gauche, jamais hors de l'écran. */
.bo-entete__actions .adm-menu > div { left: auto; right: 0; max-width: calc(100vw - 32px); }

/* Téléphone (04/10/2026, audit à 390 px) : rien ne doit déborder de l'écran. */
@media (max-width: 760px) {
  .bo-corps table:not(.pr-table):not(.gf__t):not(.bo-conv table):not(.gf__cadre table) { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .bo-corps .adm-btn { white-space: normal; text-align: center; }
  .bo-corps code { word-break: break-all; }
  .pr-barre { flex-wrap: wrap; }
  .pr-barre__etat { flex-basis: 100%; justify-content: flex-start; }
  .pr-bandeau__controles > ul { position: fixed !important; left: 16px !important; right: 16px !important; width: auto !important; max-height: 60vh; overflow: auto; }
}
/* Les colonnes de l'écran ne s'élargissent jamais à la taille d'un tableau : c'est le tableau qui défile. */
.flex.h-full.flex-col, main.min-h-0.flex-1, .bo-corps { min-width: 0; max-width: 100%; }
@media (max-width: 760px) { .bo-corps .adm-btn { max-width: 100%; } }
/* Les libellés réservés aux lecteurs d'écran (sr-only, positionnés en absolu) restent dans leur tableau : sinon ils élargissent la page. */
.bo-conv, .bo-panel { position: relative; }
/* Écrans React à menu latéral (Score, Simulateurs…) : sur téléphone, le menu passe en haut, en onglets. */
@media (max-width: 760px) {
  .flex.min-h-0.flex-1:has(> nav.w-60) { flex-direction: column; }
  .flex.min-h-0.flex-1 > nav.w-60 { width: auto; display: flex; gap: var(--bo-esp-1); overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--bo-trait); padding: var(--bo-esp-2); }
  .flex.min-h-0.flex-1 > nav.w-60 > * { flex: 0 0 auto; }
  .flex.min-h-0.flex-1 > nav.w-60 button { white-space: nowrap; margin: 0; }
  .flex.min-h-0.flex-1 > nav.w-60 p { display: none; }
  .bo-corps .grid.grid-cols-2.gap-x-4, .grid.grid-cols-2.gap-x-4:has(input), .bo-corps .grid.grid-cols-3.gap-x-4, .grid.grid-cols-3.gap-x-4:has(input), [class*='grid-cols-[160px_1fr]'], [class*='grid-cols-[220px_1fr]'] { grid-template-columns: minmax(0, 1fr); }
}
.dos [id], .vg [id] { scroll-margin-top: 16px; }

/* 05/10/2026 : listes du BO au même gabarit que Clients (lignes en cartes, avatar, actions en icônes).
   En-têtes de colonne : bo-composants.css (12 px, graisse 600, sans capitales) ; ligne paire et survol aussi. */
.cl { width: 100%; border-collapse: separate; border-spacing: 0 6px; font-size: var(--bo-taille-texte); }
.cl th { padding: var(--bo-esp-1) var(--bo-esp-3); text-align: left; }
.cl td { padding: var(--bo-esp-2) var(--bo-esp-3); background: var(--bo-surface); border-top: 1px solid var(--bo-trait); border-bottom: 1px solid var(--bo-trait); vertical-align: middle; }
.cl td:first-child { border-left: 1px solid var(--bo-trait); }
.cl td:last-child { border-right: 1px solid var(--bo-trait); text-align: right; white-space: nowrap; }
.cl tbody tr { cursor: pointer; transition: transform .12s; }
.cl-qui { display: flex; align-items: center; gap: var(--bo-esp-3); min-width: 0; }
/* Avatar : fond neutre, initiales en bleu (le même pour un client, un prospect, une société, un lead). */
.cl-av { flex: 0 0 38px; height: 38px; display: grid; place-items: center; border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); }
.cl-id { display: grid; min-width: 0; }
.cl-id a { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl-id small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
/* Remplissage du KYC : bleu, ocre sous 100 %, rouge sous 50 %. */
.cl-kyc { display: flex; align-items: center; gap: var(--bo-esp-2); min-width: 110px; }
.cl-kyc i { flex: 1; max-width: 90px; height: 6px; overflow: hidden; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); }
.cl-kyc i b { display: block; width: var(--p, 0); height: 100%; background: var(--bo-bleu); }
.cl-kyc--moyen i b { background: var(--bo-attention); }
.cl-kyc--bas i b { background: var(--bo-bloquant); }
.cl-kyc span { min-width: 34px; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.cl-kyc--bas span { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }
/* Actions de ligne : bouton secondaire d'icône (le libellé apparaît sur grand écran, bo-mobile.css). */
.cl-act { display: inline-grid; place-items: center; width: 34px; height: 34px; margin-left: var(--bo-esp-1); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); text-decoration: none; }
.cl-act:hover { border-color: var(--bo-bleu); background: var(--bo-surface-2); color: var(--bo-bleu-survol); }
.cl-act svg { width: 16px; height: 16px; }
.cl-act--vide { opacity: .35; cursor: not-allowed; }
.cl td.cl-doux { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.cl .cl-date { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
@media (max-width: 900px) {
  .cl thead { display: none; }
  .cl, .cl tbody, .cl tr, .cl td { display: block; }
  .cl tr { margin-bottom: var(--bo-esp-2); overflow: hidden; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
  .cl td, .cl td:first-child, .cl td:last-child { border: 0; border-radius: 0; padding: var(--bo-esp-1) var(--bo-esp-3); }
  .cl td:first-child { padding-top: var(--bo-esp-3); }
  .cl td:last-child { text-align: left; padding-bottom: var(--bo-esp-3); }
}

/* 06/10/2026 : Score patrimonial d'un lead, lisible (fiche client, leads). */
.sco { display: grid; gap: var(--bo-esp-3); }
.sco__tete { display: flex; align-items: center; gap: var(--bo-esp-3); }
.sco__tete small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.sco__tete b { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.sco__note { display: inline-flex; align-items: baseline; gap: 2px; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
.sco__note b { font-size: var(--bo-taille-chiffre); font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); }
.sco__axes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bo-esp-1); }
.sco__axes li { display: grid; grid-template-columns: 110px 1fr 32px; align-items: center; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.sco__axes b { font-weight: var(--bo-graisse-forte); text-align: right; color: var(--bo-bleu); }
.sco__barre { height: 6px; overflow: hidden; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); }
.sco__barre i { display: block; width: var(--p, 0); height: 100%; border-radius: var(--bo-rayon-pilule); background: var(--bo-bleu); }
.sco__t { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-legende); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-texte-2); }
.sco__liste { display: grid; gap: var(--bo-esp-1); margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.sco__liste b { font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.sco__rep summary { cursor: pointer; font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
.sco__rep dl { display: grid; gap: 2px; margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-aide); }
.sco__rep dt { margin-top: var(--bo-esp-1); color: var(--bo-texte-2); }
.sco__rep dd { margin: 0; color: var(--bo-texte); }

/* Vue de conformité (.cv) : bandeau de chiffres d'un seul bloc, filets entre les cases. */
.cv-num, .cv-pill, .cv-detail > summary { font-weight: var(--bo-graisse-forte) !important; }

.dcarte__sous a.dcarte__retour { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
/* Lot 2b : plancher de lecture de 12 px pour les textes courants (aides, pourcentages, pastilles d'état). */
.bo-corps small, .adm-champ + small, label small, td small, li small { font-size: var(--bo-taille-legende); }
.dcarte__pct { font-size: var(--bo-taille-legende); }
/* Lot 2b : les deux boutons de « Fiches produits » ont le même style (le lien apparaissait en violet, le bouton en blanc). */
.fp-dicligne .adm-btn, .fp-dicligne a.adm-btn { background: var(--bo-surface); color: var(--bo-texte); border-color: var(--bo-trait); }
.fp-dicligne .adm-btn:hover:not(:disabled) { background: var(--bo-surface-2); }

/* Étape 8 (R-A-052, 057) : barre d'actions commune, boutons alignés à gauche sur une même ligne, retour à la ligne propre sur téléphone. */
.adm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-3); margin: var(--bo-esp-3) 0; }
.adm-actions > .adm-btn, .adm-actions > button, .adm-actions > a { margin: 0; }
/* Textes : pas de ligne orpheline ni de veuve, titres équilibrés. */
.bo-corps p, .bo-corps li, .bo-corps dd { text-wrap: pretty; orphans: 2; widows: 2; }
.bo-corps h1, .bo-corps h2, .bo-corps h3 { text-wrap: balance; }

/* ===== bo-accueil.css ===== */
/* 15/10/2026 : accueil « Aujourd'hui » (étape 2 de la refonte). Quatre cartes, des alertes triées par urgence, le reste replié.
   28/10/2026 (style unifié, lot 3) : une seule définition par élément, valeurs des jetons (bo-jetons.css). Les règles de l'accueil
   éparpillées dans bo-charte.css, bo-maquette.css et charte-sobre.css sont réunies ici. Le décor des cartes (.acc-panneau, .acc-kpi),
   des pastilles (.acc-pastille--*) et du compteur (.acc-nb) est dans bo-composants.css. */
.acc { display: grid; gap: var(--bo-esp-4); max-width: 1320px; }

/* Recherche */
.acc-recherche { display: flex; align-items: center; gap: var(--bo-esp-2); height: 52px; padding: 0 var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); color: var(--bo-texte-2); }
.acc-recherche:focus-within { border-color: var(--bo-bleu); box-shadow: var(--bo-halo-champ); }
.acc-recherche input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: none; font: inherit; font-size: var(--bo-taille-sous-titre); color: var(--bo-texte); }
.acc-recherche kbd { padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-fond); color: var(--bo-texte-2); font-family: var(--bo-police); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); line-height: 1; }

/* Blocs titrés (« À faire maintenant », « Alertes ») */
.acc-bloc { display: grid; gap: var(--bo-esp-3); }
.acc-titre { display: flex; align-items: center; gap: var(--bo-esp-2); margin: 0; font-family: var(--bo-police); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-titre); line-height: var(--bo-interligne-serre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-violet-fonce); }
.acc-nb { padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: 0; text-transform: none; color: var(--bo-surface); }

/* Les quatre compteurs */
.acc-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--bo-esp-4); }
.acc-carte { display: flex; flex-direction: column; gap: var(--bo-esp-2); padding: var(--bo-esp-5); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); color: var(--bo-texte); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.acc-carte:hover { border-color: var(--bo-bleu); box-shadow: var(--bo-ombre-survol); }
.acc-carte:focus-visible { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }
.acc-carte__nb { font-size: var(--bo-taille-chiffre); font-weight: var(--bo-graisse-titre); line-height: 1; color: var(--bo-texte-2); }
.acc-carte.is-actif .acc-carte__nb { color: var(--bo-bleu); }
.acc-carte__lib { font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); }
.acc-carte__chemin { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }

/* Alertes (_alerte.html.twig) */
.acc-alertes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bo-esp-2); }
.acc-alerte { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
.acc-alerte__lien { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); color: var(--bo-texte); text-decoration: none; }
.acc-alerte__lien:hover .acc-alerte__txt b { color: var(--bo-bleu); text-decoration: underline; }
.acc-alerte__txt { display: grid; gap: 2px; flex: 1 1 280px; min-width: 0; }
.acc-alerte__txt b { font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); }
.acc-alerte__txt small { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.acc-alerte__sous { list-style: none; margin: 0; padding: 0 var(--bo-esp-4) var(--bo-esp-3); display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
.acc-alerte__sous a { display: inline-block; padding: var(--bo-esp-1) 0; color: var(--bo-bleu); text-decoration: underline; }
.acc-pastille { flex: none; }
.acc-reste > summary { padding: var(--bo-esp-2) 2px; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
.acc-reste[open] > summary { margin-bottom: var(--bo-esp-2); }

/* « Chiffres clés et activité récente », replié */
.acc-plus { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
.acc-plus > summary { padding: var(--bo-esp-3) var(--bo-esp-4); font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
.acc-plus__corps { display: grid; gap: var(--bo-esp-4); padding: var(--bo-esp-1) var(--bo-esp-4) var(--bo-esp-4); }

/* Panneaux (« Ma journée », « Prochains rendez-vous », « Activité récente ») : cadre de bo-composants.css (carte). */
.acc-panneau { padding: var(--bo-esp-3) var(--bo-esp-4) var(--bo-esp-2); background: var(--bo-surface); }
.acc-panneau > header { display: flex; align-items: center; gap: var(--bo-esp-2); margin-bottom: var(--bo-esp-1); }
.acc-panneau h2, .acc .bo-panel__titre { margin: 0; font-family: var(--bo-police); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-titre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-violet-fonce); }
.acc .bo-panel__titre .bo-data-card__compte { font-family: inherit; font-weight: var(--bo-graisse-texte); letter-spacing: 0; text-transform: none; color: var(--bo-texte-2); }
.acc-haut { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--bo-esp-4); align-items: start; }
.acc-haut .acc-panneau { margin: 0; }
.acc-grille { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--bo-esp-4); align-items: start; }
.acc-plus .acc-grille { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1100px) { .acc-haut, .acc-grille { grid-template-columns: minmax(0, 1fr); } }

/* « Ma journée » : quatre listes en colonnes (anciens style="" de accueil.html.twig). 28/10/2026 (Julien, iPhone) : les lignes ont l'air de liens. */
.acc-journee { display: grid; gap: var(--bo-esp-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.acc-journee h3 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); }
.acc-journee ul { margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-texte); }
.acc-journee__suite { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); }
#ma-journee li a { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); text-decoration: underline; text-underline-offset: 2px; }
#ma-journee li a::after { content: " ›"; text-decoration: none; }

/* Prochains rendez-vous */
.acc-rdv { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.acc-rdv li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: var(--bo-esp-3); align-items: start; padding: var(--bo-esp-3) 0; }
.acc-rdv li + li { border-top: 1px solid var(--bo-trait); }
.acc-rdv__date { display: grid; text-align: center; padding: var(--bo-esp-1) 0; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
.acc-rdv__date b { font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
.acc-rdv__date small { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-violet); }
.acc-rdv__qui a, .acc-rdv__qui b { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; }
.acc-rdv__qui small { display: block; margin-top: 2px; font-size: var(--bo-taille-legende); color: var(--bo-attention); }
.acc-rdv__qui small.ok { color: var(--bo-ok); }

/* États vides : « Rien en attente » en vert ; un état vide neutre n'est pas un succès (lot 2b, 11/10/2026). */
.acc-vide { margin: 0; padding: var(--bo-esp-2) 0 var(--bo-esp-3); font-size: var(--bo-taille-texte); color: var(--bo-ok); }
.acc-vide.acc-vide--neutre { color: var(--bo-texte-2); }

/* Activité récente */
.acc-activite > ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.acc-evt { display: flex; gap: var(--bo-esp-2); align-items: flex-start; padding: var(--bo-esp-2) 0; }
.acc-evt + .acc-evt { border-top: 1px solid var(--bo-trait); }
.acc-evt__point { flex: 0 0 9px; height: 9px; margin-top: var(--bo-esp-1); border-radius: var(--bo-rayon-pilule); background: var(--bo-trait-champ); }
.acc-evt--lead .acc-evt__point { background: var(--bo-violet); }
.acc-evt--proposition .acc-evt__point { background: var(--bo-bleu); }
.acc-evt--document .acc-evt__point { background: var(--bo-ok); }
.acc-evt--fiche .acc-evt__point { background: var(--bo-attention); }
.acc-evt a { display: grid; gap: 1px; min-width: 0; color: inherit; text-decoration: none; }
.acc-evt b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.acc-evt small { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.acc-evt a:hover b { color: var(--bo-violet-fonce); }

/* Anniversaires du jour (06/10/2026) */
.acc-anniv { display: flex; gap: var(--bo-esp-4); align-items: flex-start; padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-attention-fond); }
.acc-anniv__ic { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--bo-rayon-carte); background: var(--bo-surface); color: var(--bo-attention); }
.acc-anniv__t { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-attention); }
.acc-anniv ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-texte); }
.acc-anniv a { color: var(--bo-bleu); }
.acc-anniv b { font-weight: var(--bo-graisse-forte); }

/* Cartes chiffrées en tête d'écran (_cartes.html.twig, et les tableaux de bord Conformité et Réglages) : des cartes séparées. */
.acc-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--bo-esp-3); }
.bo-kpis { margin-bottom: var(--bo-esp-4); }
.acc-kpi { display: grid; gap: 2px; padding: var(--bo-esp-3) var(--bo-esp-4); background: var(--bo-surface); color: inherit; text-decoration: none; transition: box-shadow .15s, border-color .15s; }
.acc-kpi:hover { background: var(--bo-surface-2); }
div.acc-kpi:hover { background: var(--bo-surface); }
.acc-kpi__lib { display: flex; align-items: center; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.acc-kpi__lib i { display: inline-flex; color: var(--bo-violet); opacity: .85; }
.acc-kpi b { font-size: var(--bo-taille-chiffre); font-weight: var(--bo-graisse-titre); line-height: var(--bo-interligne-serre); color: var(--bo-bleu); }
.acc-kpi small { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.acc-kpi--alerte b { color: var(--bo-attention); }
.acc-kpi__pastille { flex: none; width: 8px; height: 8px; border-radius: var(--bo-rayon-pilule); }
.etat .acc-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.etat__tete { margin: var(--bo-esp-1) 0 var(--bo-esp-2); }
@media (max-width: 900px) { .etat .acc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (max-width: 700px) {
  .acc { display: flex; flex-direction: column; gap: var(--bo-esp-4); }
  .acc > .acc-recherche { order: 0; }
  .acc > .acc-anniv { order: 1; }
  .acc > .acc-haut { order: 2; }
  .acc > .acc-bloc:has(.acc-cartes) { order: 3; }
  .acc > * { order: 4; }
  #ma-journee li { padding: var(--bo-esp-1) 0; }
  /* Les quatre compteurs en grille 2 × 2 compacte. */
  .acc-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bo-esp-2); }
  .acc-carte { padding: var(--bo-esp-3); gap: 2px; }
  .acc-carte__lib { font-size: var(--bo-taille-texte); }
  .acc-carte__chemin { font-size: var(--bo-taille-legende); }
}
@media (max-width: 560px) {
  .acc-kpis { grid-template-columns: 1fr 1fr; }
  .acc-kpi b { font-size: var(--bo-taille-titre); }
  .acc-recherche kbd { display: none; }
  .acc-recherche input { font-size: var(--bo-taille-texte); text-overflow: ellipsis; }
}

/* ===== bo-rail.css ===== */
/* 14/10/2026 : refonte de la navigation. Menu à gauche (quatre blocs depuis le 23/10/2026), barre fine en haut, onglets sous la barre.
   Remplace le menu horizontal (bo-menu-haut.css).
   28/10/2026 (style unifié, lot 2 : coque commune) : toutes les valeurs viennent de bo-jetons.css (planche validée par Julien).
   Les voiles blancs du menu sont des mélanges du blanc des jetons (color-mix), pas de nouvelles couleurs. Le dessin des onglets
   (couleur, graisse, filet actif) est dans bo-composants.css ; les boutons d'en-tête aussi (section « Coque »). */
.bo-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.bo-cadre { display: grid; grid-template-columns: 264px minmax(0, 1fr); height: 100vh; height: 100dvh; overflow: hidden; }
.bo-cadre.is-pret { transition: grid-template-columns .2s ease; }
.bo-cadre.is-rail-replie { grid-template-columns: 64px minmax(0, 1fr); }

/* ---- Menu à gauche ---- */
.bo-rail { display: flex; flex-direction: column; min-height: 0; min-width: 0; padding: var(--bo-esp-4) var(--bo-esp-2) var(--bo-esp-3); overflow-y: auto; overflow-x: hidden; color: var(--bo-surface); background: var(--bo-degrade-menu); }
.bo-rail__logo { display: flex; flex-direction: column; flex: none; padding: var(--bo-esp-1) var(--bo-esp-3) var(--bo-esp-3); line-height: var(--bo-interligne-serre); text-decoration: none; color: var(--bo-surface); }
.bo-rail__logo-nom { font-family: var(--bo-police-marque); font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-forte); letter-spacing: .01em; }
.bo-rail__logo-baseline { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: color-mix(in srgb, var(--bo-surface) 85%, transparent); }
/* 23/10/2026 (Julien, quatre visions) : des blocs toujours ouverts (Clients, Réglementaire, Site internet), titres en capitales,
   puis en bas la Corbeille et l'Administration technique, titres de la même couleur. Plus de rubriques repliables. */
.bo-rail__nav { display: flex; flex-direction: column; gap: var(--bo-esp-4); flex: 1 0 auto; }
.bo-rail__bloc { position: relative; display: flex; flex-direction: column; gap: 1px; }
.bo-rail__bas { display: flex; flex-direction: column; gap: var(--bo-esp-1); margin-top: auto; padding-top: var(--bo-esp-2); }
.bo-rail__titre { display: flex; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-1); padding: 0 var(--bo-esp-3); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: color-mix(in srgb, var(--bo-surface) 85%, transparent); }
.bo-rail__titre--lien { min-height: 34px; margin: 0; border-radius: var(--bo-rayon-controle); text-decoration: none; transition: background .15s ease; }
.bo-rail__titre--lien:hover { background: color-mix(in srgb, var(--bo-surface) 8%, transparent); }
.bo-rail__titre--lien.is-actif { background: color-mix(in srgb, var(--bo-surface) 16%, transparent); }
.bo-rail__ic { display: inline-flex; flex: none; opacity: .9; }
/* Menu ouvert, le titre « Corbeille » ressemble aux autres titres de blocs : pas d'icône. Elle revient menu replié. */
.bo-rail__titre--lien .bo-rail__ic { display: none; }
.bo-rail__titre-nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-rail__pastille { display: none; }
.bo-rail__entrees { display: flex; flex-direction: column; gap: 1px; }
.bo-rail__entree { display: flex; align-items: center; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-texte); line-height: var(--bo-interligne-serre); color: var(--bo-surface); text-decoration: none; transition: background .15s ease, color .15s ease; }
.bo-rail__entree:hover { color: var(--bo-surface); background: color-mix(in srgb, var(--bo-surface) 8%, transparent); }
.bo-rail__entree.is-actif { color: var(--bo-surface); font-weight: var(--bo-graisse-forte); background: color-mix(in srgb, var(--bo-surface) 16%, transparent); }
.bo-rail__entree-nom { flex: 1; min-width: 0; }
/* Pastille : ce qui attend (leads à traiter, relances à valider, mails à ranger). Même dessin que le compteur (bo-compteur). */
.bo-rail__badge { flex: none; min-width: 20px; padding: 0 var(--bo-esp-1); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); color: var(--bo-bleu); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); text-align: center; line-height: 20px; }
.bo-rail a:focus-visible { outline: 2px solid var(--bo-surface); outline-offset: -2px; }

/* Menu replié : une icône par bloc ; les entrées s'affichent en volet au survol ou au clavier. Réservé aux grands écrans : sous 900 px le menu est un tiroir complet. */
@media (min-width: 900px) {
.bo-cadre.is-rail-replie .bo-rail { padding-left: var(--bo-esp-2); padding-right: var(--bo-esp-2); overflow: visible; }
.bo-cadre.is-rail-replie .bo-rail__logo { padding-left: var(--bo-esp-1); padding-right: var(--bo-esp-1); align-items: center; }
.bo-cadre.is-rail-replie .bo-rail__logo-nom { font-size: 0; }
.bo-cadre.is-rail-replie .bo-rail__logo-nom::first-letter { font-size: var(--bo-taille-titre); }
.bo-cadre.is-rail-replie .bo-rail__logo-baseline { display: none; }
.bo-cadre.is-rail-replie .bo-rail__nav { gap: var(--bo-esp-1); }
/* Le titre du bloc reste lu par les lecteurs d'écran ; à l'écran, une pastille-icône le remplace. */
.bo-cadre.is-rail-replie .bo-rail__titre:not(.bo-rail__titre--lien) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; padding: 0; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien { justify-content: center; padding: var(--bo-esp-3) 0; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien .bo-rail__ic { display: inline-flex; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien .bo-rail__titre-nom { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bo-cadre.is-rail-replie .bo-rail__pastille { display: flex; justify-content: center; padding: var(--bo-esp-3) 0; border-radius: var(--bo-rayon-controle); color: var(--bo-surface); text-decoration: none; }
.bo-cadre.is-rail-replie .bo-rail__pastille:hover, .bo-cadre.is-rail-replie .bo-rail__bloc.is-actif > .bo-rail__pastille { background: color-mix(in srgb, var(--bo-surface) 16%, transparent); }
.bo-cadre.is-rail-replie .bo-rail__entrees { display: none; }
.bo-cadre.is-rail-replie .bo-rail__bloc:hover > .bo-rail__entrees,
.bo-cadre.is-rail-replie .bo-rail__bloc:focus-within > .bo-rail__entrees { display: flex; position: absolute; z-index: 80; left: 100%; top: 0; width: 250px; padding: var(--bo-esp-2); border-radius: var(--bo-rayon-carte); background: var(--bo-bleu); box-shadow: var(--bo-ombre-flottant); }
}

/* ---- Colonne principale ---- */
.bo-principal { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.bo-zone { flex: 1 1 auto; min-height: 0; overflow: hidden; }

/* ---- Barre du haut : fil d'Ariane, recherche, compte ---- */
.bo-barre { position: relative; z-index: 60; display: flex; align-items: center; gap: var(--bo-esp-3); flex: none; min-height: 52px; padding: 0 var(--bo-esp-5); background: var(--bo-surface); border-bottom: 1px solid var(--bo-trait); }
.bo-barre__fil { flex: 1; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.bo-barre__fil strong { color: var(--bo-texte); font-weight: var(--bo-graisse-forte); }
.bo-barre__droite { display: flex; align-items: center; gap: var(--bo-esp-3); margin-left: auto; }
/* Boutons de la barre (replier, rechercher) : bouton secondaire compact (bo-composants.css). */
.bo-barre__bouton { box-sizing: border-box; display: inline-flex; align-items: center; gap: var(--bo-esp-2); min-height: var(--bo-hauteur-compacte); padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-aide); color: var(--bo-texte); background: var(--bo-surface); text-decoration: none; cursor: pointer; }
.bo-barre__bouton:hover { border-color: var(--bo-bleu); background: var(--bo-surface-2); color: var(--bo-bleu-survol); }
.bo-barre__bouton svg { width: 16px; height: 16px; flex: none; }
.bo-barre__bouton:focus-visible, .bo-barre__compte summary:focus-visible, .bo-barre__entree:focus-visible, .bo-onglets__lien:focus-visible, .bo-sous-onglets__lien:focus-visible { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }
.bo-barre__burger { display: none; }
.bo-barre__replier-ic { display: inline-block; width: 14px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
.bo-barre__replier-ic::after { content: ''; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid currentColor; }
.bo-barre__site { font-size: var(--bo-taille-aide); color: var(--bo-bleu); text-decoration: none; white-space: nowrap; }
.bo-barre__site:hover { text-decoration: underline; }

.bo-barre__compte { position: relative; }
.bo-barre__compte summary { display: flex; align-items: center; gap: var(--bo-esp-2); padding: 3px var(--bo-esp-2) 3px 3px; border-radius: var(--bo-rayon-pilule); list-style: none; cursor: pointer; }
.bo-barre__compte summary::-webkit-details-marker { display: none; }
.bo-barre__compte summary:hover, .bo-barre__compte[open] summary { background: var(--bo-fond); }
.bo-barre__avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); color: var(--bo-surface); background: var(--bo-degrade); }
.bo-barre__nom { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
.bo-barre__panneau { position: absolute; top: calc(100% + 6px); right: 0; min-width: 200px; padding: var(--bo-esp-2); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); border: 1px solid var(--bo-trait); box-shadow: var(--bo-ombre-flottant); }
.bo-barre__entree { display: block; width: 100%; padding: var(--bo-esp-2) var(--bo-esp-3); border: 0; border-radius: var(--bo-rayon-controle); font: inherit; font-size: var(--bo-taille-texte); text-align: left; color: var(--bo-texte); background: none; text-decoration: none; cursor: pointer; }
.bo-barre__entree:hover { color: var(--bo-bleu); background: var(--bo-fond); }
.bo-barre__entree--deco { color: var(--bo-bloquant); }
.bo-barre__entree--deco:hover { color: var(--bo-bloquant); background: var(--bo-bloquant-fond); }
.bo-barre__version { margin: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.bo-barre__panneau form { margin: var(--bo-esp-1) 0 0; padding-top: var(--bo-esp-1); border-top: 1px solid var(--bo-trait); }

/* ---- Onglets de l'entrée ouverte (dessin : bo-composants.css, « Onglets ») ---- */
.bo-onglets { display: flex; flex: none; flex-wrap: wrap; gap: var(--bo-esp-1); padding: 0 var(--bo-esp-5); background: var(--bo-surface); border-bottom: 1px solid var(--bo-trait); }
.bo-onglets__lien { position: relative; padding: var(--bo-esp-3) var(--bo-esp-4); text-decoration: none; }
/* Menu v2 (23/10/2026) : sous-onglets en pastilles sous les onglets. */
.bo-sous-onglets { display: flex; flex: none; flex-wrap: wrap; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-5); background: var(--bo-surface-2); border-bottom: 1px solid var(--bo-trait); }
.bo-sous-onglets__lien { box-sizing: border-box; display: inline-flex; align-items: center; min-height: var(--bo-hauteur-compacte); padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; }
.bo-sous-onglets__lien:hover { background: var(--bo-fond); }
.bo-sous-onglets__lien.is-actif { background: var(--bo-bleu); border-color: var(--bo-bleu); color: var(--bo-surface); }

.bo-voile { position: fixed; inset: 0; z-index: 90; background: color-mix(in srgb, var(--bo-bleu) 45%, transparent); }
.bo-voile[hidden] { display: none; }

/* ---- Tablette et téléphone : le menu devient un tiroir ---- */
@media (max-width: 899px) {
  .bo-cadre, .bo-cadre.is-rail-replie { grid-template-columns: minmax(0, 1fr); }
  .bo-rail { position: fixed; z-index: 100; top: 0; bottom: 0; left: 0; width: 280px; max-width: 86vw; transform: translateX(-102%); visibility: hidden; transition: transform .2s ease, visibility .2s; box-shadow: var(--bo-ombre-modale); }
  .bo-cadre.is-rail-ouvert .bo-rail { transform: none; visibility: visible; }
  .bo-barre__burger { display: inline-flex; }
  .bo-barre__replier, .bo-barre__nom, .bo-barre__recherche span { display: none; }
  .bo-barre { padding: 0 var(--bo-esp-3); }
  .bo-onglets { flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--bo-esp-2); }
  .bo-onglets__lien { flex: none; white-space: nowrap; }
  .bo-sous-onglets { padding: var(--bo-esp-2) var(--bo-esp-3); }
}
@media (prefers-reduced-motion: reduce) { .bo-cadre, .bo-rail { transition: none; } }

.bo-evitement { position: absolute; left: 8px; top: -60px; z-index: 200; padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-texte); color: var(--bo-surface); background: var(--bo-bleu); text-decoration: none; }
.bo-evitement:focus { top: 8px; }

/* Bandeau d'environnement (base.html.twig) : ocre foncé, texte blanc, hors production (impossible à manquer) ; bleu pâle en production. */
.bo-bandeau-env { padding: var(--bo-esp-2) var(--bo-esp-3); background: var(--bo-attention); color: var(--bo-surface); font-family: var(--bo-police); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); line-height: 1.3; text-align: center; }
.bo-bandeau-env--production { background: var(--bo-info-fond); color: var(--bo-bleu); }

/* ---- Aide « Comment ça marche » (_comment.html.twig), en tête de nombreux écrans ---- */
.bo-comment { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: var(--bo-esp-3); margin: 0 0 var(--bo-esp-5); padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: linear-gradient(180deg, var(--bo-surface), var(--bo-surface-2)); }
.bo-comment__titre { grid-column: 1 / -1; margin: 0 0 2px; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-violet); }
.bo-comment__etape { display: flex; gap: var(--bo-esp-3); align-items: flex-start; }
.bo-comment__num { flex: 0 0 26px; height: 26px; display: flex; align-items: center; justify-content: center; border-radius: var(--bo-rayon-pilule); background: var(--bo-degrade); color: var(--bo-surface); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); }
.bo-comment__etape b { display: block; margin-bottom: 2px; font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
.bo-comment__etape p { margin: 0; font-size: var(--bo-taille-aide); line-height: 1.45; color: var(--bo-texte-2); }
.bo-comment__intro { grid-column: 1 / -1; margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); line-height: var(--bo-interligne); color: var(--bo-texte); }
.bo-comment-replie { margin: 0 0 var(--bo-esp-3); }
.bo-comment-replie summary { display: flex; gap: var(--bo-esp-2); align-items: baseline; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px dashed var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: transparent; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); list-style: none; cursor: pointer; }
.bo-comment-replie summary::-webkit-details-marker { display: none; }
.bo-comment-replie summary b { flex: none; color: var(--bo-violet); font-weight: var(--bo-graisse-forte); }
.bo-comment-replie summary::after { content: '›'; margin-left: auto; color: var(--bo-trait-champ); }
.bo-comment-replie[open] summary::after { transform: rotate(90deg); }
/* Audit UX C6 (28/10/2026) : la phrase d'aide se lit en entier (deux lignes au plus) sans ouvrir le bloc. */
.bo-comment-replie summary span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.bo-comment-replie[open] summary { border-bottom: 0; border-radius: var(--bo-rayon-controle) var(--bo-rayon-controle) 0 0; }
.bo-comment-replie .bo-comment { margin: 0; border-radius: 0 0 var(--bo-rayon-carte) var(--bo-rayon-carte); }
@media (max-width: 900px) { .bo-comment { grid-template-columns: minmax(0, 1fr); } }

/* ---- Messages d'une action (_messages.html.twig) : bandeau d'alerte de bo-composants.css ---- */
.bo-message { margin: 0 0 var(--bo-esp-4); font-size: var(--bo-taille-aide); }
.bo-message-liens { margin: 0 0 var(--bo-esp-4); font-size: var(--bo-taille-aide); }

/* ---- Recherche globale (recherche.html.twig) ---- */
.rch-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr)); gap: var(--bo-esp-4); max-width: none; }
.rch-n { display: inline-block; margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); vertical-align: 2px; }

/* ===== bo-parcours.css ===== */
/*
 * Parcours du premier rendez-vous : Leads, Mes leads à confirmer, Clients, fiche client, rendez-vous (lot 3 du style unifié,
 * 28/10/2026). Règles reprises des blocs <style> et des attributs style="" de ces gabarits, valeurs ramenées aux jetons
 * (bo-jetons.css). Placée en fin de paquet bo-tete.css : même ordre de passage que les anciens blocs <style> des écrans
 * (après les feuilles de tête, avant bo-fin.css). Les règles propres à la fiche client sont limitées à son écran par
 * :where(.ecran-fiche) (classe posée sur la zone de l'écran par contact-fiche.html.twig), sans changer leur priorité.
 */

/* ======================================================================
   Listes de leads et de clients (leads.html.twig, rdv-leads.html.twig, contacts.html.twig)
   ====================================================================== */
.lf-nom { padding: 0; border: 0; background: none; font: inherit; font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); text-align: left; cursor: pointer; }
.lf-nom:hover { text-decoration: underline; }
.cl-id small a { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
.cl-vide { padding: var(--bo-esp-6) !important; text-align: center !important; }
.crm-retenus { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); }
.crm-retenus a { color: var(--bo-attention); font-weight: var(--bo-graisse-forte); text-decoration: none; }
.leads-retenus-aide { margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3); border: 1px solid var(--bo-attention); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); }
.leads-total { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.leads-reponses summary { cursor: pointer; font-size: var(--bo-taille-aide); }
.leads-reponses details dl { max-height: 320px; overflow: auto; }
.leads-reponses__dl { margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
.leads-pages { display: flex; align-items: center; justify-content: center; gap: var(--bo-esp-3); margin-top: var(--bo-esp-4); font-size: var(--bo-taille-aide); }
/* Attribution d'office des nouveaux leads, et « Confier à » par lot (leads et fiches). */
.ld-defaut { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.ld-defaut summary { cursor: pointer; color: var(--bo-bleu); }
.ld-defaut-alerte { margin: 0 0 var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-aide); }
.cl-confier[hidden] { display: none !important; }
.cl-confier { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-3); margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte); }
.cl-confier--defaut { margin-top: var(--bo-esp-2); }
.cl-confier .adm-champ { width: auto; min-width: 220px; }
.cl-confier__aide { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.cl-coche { width: 28px; }
.cl-coche input { width: 16px; height: 16px; }
/* Actions d'une ligne de lead : une action principale, les autres en icônes. */
.la { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; justify-content: flex-end; max-width: 320px; margin-left: auto; }
.leads-cl td:last-child { white-space: normal; }
.la__principal { justify-content: center; }
.la__sans-fiche { max-width: 150px; font-size: var(--bo-taille-legende); line-height: 1.3; color: var(--bo-texte-2); }
.la__icones { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1); justify-content: flex-end; }
.la__icones form { margin: 0; }
.la__ico { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); cursor: pointer; }
button.la__ico { font: inherit; padding: 0; }
.la__ico:hover { border-color: var(--bo-bleu); background: var(--bo-surface-2); color: var(--bo-bleu-survol); }
.la__ico--jeter:hover { border-color: var(--bo-bloquant); color: var(--bo-bloquant); }
.la__ico svg { width: 16px; height: 16px; }
.la__jeter { margin-left: var(--bo-esp-1); padding-left: var(--bo-esp-1); border-left: 1px solid var(--bo-trait); }
.la__attribuer { flex-basis: 100%; display: flex; gap: var(--bo-esp-2); align-items: center; justify-content: flex-end; margin: 0; text-align: right; }
.la__attribuer select { width: auto; max-width: 220px; padding: 0 var(--bo-esp-2); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font-size: var(--bo-taille-legende); color: var(--bo-bleu); }
.la__noter { flex-basis: 100%; text-align: right; font-size: var(--bo-taille-legende); color: var(--bo-violet-fonce); text-decoration: underline; }
.la__noter:hover { color: var(--bo-bleu); }
.la__classer { flex-basis: 100%; margin: 0; text-align: right; }
.la__classer button { padding: 0 0 0 var(--bo-esp-2); border: 0; background: none; font: inherit; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); text-decoration: underline; cursor: pointer; }
.la__classer button:hover { color: var(--bo-violet-fonce); }
.la__histo { flex-basis: 100%; font-size: var(--bo-taille-legende); text-align: right; }
.la__histo ul { margin: var(--bo-esp-1) 0 0; padding: 0; list-style: none; }
/* Suivi d'un lead : pastille de l'état (nouveau, à suivre, RDV, fiche prospect, client, classé). */
.lead-suivi { display: inline-block; margin: 0 0 var(--bo-esp-1); padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); }
.lead-suivi--nouvelle { background: var(--bo-attention-fond); color: var(--bo-attention); }
.lead-suivi--prospect { background: var(--bo-info-fond); color: var(--bo-bleu); }
.lead-suivi--rdv { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
.lead-suivi--client { background: var(--bo-ok-fond); color: var(--bo-ok); }
.lead-suivi--sans_suite, .lead-suivi--hors_cible { background: var(--bo-neutre-fond); color: var(--bo-neutre); }
/* Mes leads à confirmer : ancienneté d'une demande sans rendez-vous, en ocre au-delà de 7 jours. */
.cl-date--ancien { color: var(--bo-attention); font-weight: var(--bo-graisse-forte); }
/* Clients : liste vide, montant à droite, conseiller sous le statut, ville en bleu, pages. */
.cl-aucune { padding: var(--bo-esp-6); text-align: center; color: var(--bo-texte-2); }
.cl th.cl-montant, .cl td.cl-montant { text-align: right; white-space: nowrap; }
.cl-suivi-par { display: block; margin-top: 3px; }
.liste-doux.cl-ville { color: var(--bo-bleu); }
.cl-act[type="submit"] { cursor: pointer; }
.cl-pages { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; justify-content: flex-end; margin-top: var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.cl-pages span { margin-right: auto; }

/* ======================================================================
   Fiche d'un rendez-vous (crm-rdv-fiche.html.twig)
   ====================================================================== */
.rdv-encart--fiche { border-color: color-mix(in srgb, var(--bo-violet) 35%, transparent); background: var(--bo-violet-fond); }
.rdv-encart--afaire { border-color: var(--bo-attention); background: var(--bo-attention-fond); }
.rdv-texte { max-height: 34rem; overflow: auto; white-space: pre-wrap; user-select: text; }
.rdv-kyc-aide { min-height: 1.2em; }

/* ======================================================================
   Fiche client (contact-fiche.html.twig et ses partiels)
   ====================================================================== */
/* Blocs de la colonne de droite (anciens style="padding:20px") */
.bo-panel.fiche-bloc { padding: var(--bo-esp-5); }
/* Suivi commercial (_crm-fiche.html.twig) */
.crm-fiche-actions { margin: 0 0 var(--bo-esp-3); }
.crm-fiche-titre { margin-top: var(--bo-esp-3); }

/* ======================================================================
   Dossier : « dossier prêt à souscrire » (_dossier-statut.html.twig) et dossier de pièces (_dossier-pieces.html.twig)
   ====================================================================== */
.dossier { padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
.dossier--ok { background: var(--bo-ok-fond); }
.dossier--ko { background: var(--bo-bloquant-fond); }
.dossier--attention { background: var(--bo-attention-fond); }
.dossier__tete { display: flex; gap: var(--bo-esp-3); align-items: center; }
.dossier__tete strong { display: block; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
.dossier__tete small { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
.dossier__pastille { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: var(--bo-rayon-pilule); background: var(--bo-ok); color: var(--bo-surface); font-weight: var(--bo-graisse-titre); }
.dossier--ko .dossier__pastille { background: var(--bo-bloquant); }
.dossier--attention .dossier__pastille { background: var(--bo-attention); }
.dossier__liste-titre { margin: var(--bo-esp-3) 0 0; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.dossier__points { display: grid; gap: var(--bo-esp-1); margin: var(--bo-esp-1) 0 0; padding: 0; list-style: none; font-size: var(--bo-taille-aide); }
.dossier__points li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--bo-esp-1) var(--bo-esp-3); padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
.dossier__points li span { flex: 1 1 220px; }
.dossier__points li.g-bloquant { border-left: 3px solid var(--bo-bloquant); }
.dossier__points li.g-attention { border-left: 3px solid var(--bo-attention); }
.dossier__points a { flex: none; margin-left: auto; color: var(--bo-violet); font-weight: var(--bo-graisse-forte); text-decoration: none; }
.dossier__detail summary { margin: var(--bo-esp-2) 0 0 var(--bo-esp-7); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-violet); cursor: pointer; }
.dp { width: 100%; }
.dp__reu summary, .dp summary { list-style: none; cursor: pointer; }
.dp__reu form, .dp__depot { display: grid; gap: var(--bo-esp-2); max-width: 420px; margin-top: var(--bo-esp-2); padding: var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
.dp__reu label, .dp__depot label { display: grid; gap: 2px; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.cl td.dp__reutil { padding-top: 0; }
.dp__vide { margin: var(--bo-esp-2) 0 0; }
.dp__verser { margin-top: var(--bo-esp-3); }
/* Mise en page : identité à gauche, colonne de travail à droite (une colonne sous 1100 px). */
:where(.ecran-fiche) .fiche { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: var(--bo-esp-5); align-items: start; }
@media (max-width: 1100px) { :where(.ecran-fiche) .fiche { grid-template-columns: minmax(0, 1fr); } }
/* 06/10/2026 : à la création, le formulaire prend la largeur (rien à droite), sur trois colonnes, sans « Replier ». */
:where(.ecran-fiche) .fiche--nouvelle { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
:where(.ecran-fiche) .fiche--nouvelle .fiche__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:where(.ecran-fiche) .fiche--nouvelle .fiche__grille .pleine { grid-column: 1 / -1; }
:where(.ecran-fiche) .fiche--nouvelle .ident > summary::after { content: none !important; }
@media (max-width: 800px) { :where(.ecran-fiche) .fiche--nouvelle .fiche__grille { grid-template-columns: minmax(0, 1fr); } }
/* Avec la carte du dossier à gauche : deux colonnes égales sur grand écran ; en dessous, le dossier d'abord, la saisie ensuite. */
:where(.ecran-fiche) .dos .fiche { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
@media (max-width: 1560px) { :where(.ecran-fiche) .dos .fiche { grid-template-columns: minmax(0, 1fr); } }
:where(.ecran-fiche) .fiche__colonne { display: grid; gap: var(--bo-esp-5); min-width: 0; }
:where(.ecran-fiche) .fiche__grille { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-2) var(--bo-esp-3); }
:where(.ecran-fiche) .fiche__grille .pleine { grid-column: 1 / -1; }
:where(.ecran-fiche) .fiche__meta { margin-top: var(--bo-esp-3); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-fiche) .fiche h2.adm-label { display: flex; align-items: baseline; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-1); }
:where(.ecran-fiche) .fiche h2.adm-label small { font-weight: var(--bo-graisse-texte); letter-spacing: 0; text-transform: none; color: var(--bo-texte-2); }
/* « Fiche CRM et suivi » : carte repliable, « Modifier » ou « Replier » à droite du titre. */
:where(.ecran-fiche) .bo-panel.ident { padding: var(--bo-esp-5); }
:where(.ecran-fiche) .ident > summary { display: flex; align-items: center; gap: var(--bo-esp-2); list-style: none; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-fiche) .ident > summary::-webkit-details-marker { display: none; }
:where(.ecran-fiche) .ident > summary::after { content: "Modifier"; margin-left: auto; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-violet); }
:where(.ecran-fiche) .ident[open] > summary { margin-bottom: var(--bo-esp-3); }
:where(.ecran-fiche) .ident[open] > summary::after { content: "Replier"; }
:where(.ecran-fiche) .ident__resume { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.ecran-fiche) .crm-fiche { margin: var(--bo-esp-3) 0 var(--bo-esp-4); padding: 0 0 var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); }
:where(.ecran-fiche) .crm-fiche__tete { display: flex; justify-content: flex-end; margin: 0; }
:where(.ecran-fiche) .crm-fiche__tete a { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; }
:where(.ecran-fiche) .crm-fiche__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bo-esp-2) var(--bo-esp-4); margin: var(--bo-esp-2) 0 0; }
:where(.ecran-fiche) .crm-fiche__grille .large { grid-column: 1 / -1; }
:where(.ecran-fiche) .crm-fiche__grille dt { font-size: var(--bo-taille-legende); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; color: var(--bo-texte-2); }
:where(.ecran-fiche) .crm-fiche__grille dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:where(.ecran-fiche) .crm-fiche__grille a { color: var(--bo-bleu); }
@media (max-width: 700px) { :where(.ecran-fiche) .crm-fiche__grille { grid-template-columns: minmax(0, 1fr); } }
/* Nature de la fiche : personne ou société (04/10/2026). */
:where(.ecran-fiche) .nature__choix { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); }
:where(.ecran-fiche) .nature__choix label { position: relative; cursor: pointer; }
:where(.ecran-fiche) .nature__choix input { position: absolute; opacity: 0; pointer-events: none; }
:where(.ecran-fiche) .nature__choix span { display: grid; padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); line-height: var(--bo-interligne-serre); color: var(--bo-bleu); }
:where(.ecran-fiche) .nature__choix small { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.ecran-fiche) .nature__choix input:checked + span { border-color: var(--bo-bleu); outline: 1px solid var(--bo-bleu); outline-offset: -2px; background: var(--bo-info-fond); }
:where(.ecran-fiche) .nature__choix input:focus-visible + span { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }
:where(.ecran-fiche) [data-nature="pp"] .pm-seul, :where(.ecran-fiche) [data-nature="pm"] .pp-seul { display: none !important; }
/* Formulaire de la fiche : aides, case « autre personne », barre d'enregistrement. */
:where(.ecran-fiche) .fiche-aide-bloc { display: block; margin-top: var(--bo-esp-1); }
:where(.ecran-fiche) .fiche-doublon { margin-top: var(--bo-esp-3); }
:where(.ecran-fiche) .fiche-enregistrer { display: flex; gap: var(--bo-esp-2); align-items: center; margin-top: var(--bo-esp-4); }
:where(.ecran-fiche) .fiche-rubrique { margin: var(--bo-esp-4) 0 var(--bo-esp-2); }
:where(.ecran-fiche) .fiche-rubrique small { display: inline; }
:where(.ecran-fiche) .fiche-suivi-bas { margin-top: var(--bo-esp-3); }
/* Adresse : suggestions de la Base Adresse Nationale (ban-adresse.js). */
:where(.ecran-fiche) .ban { position: relative; }
:where(.ecran-fiche) .ban__liste { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; max-height: 240px; overflow: auto; margin: 2px 0 0; padding: var(--bo-esp-1) 0; list-style: none; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
:where(.ecran-fiche) .ban__liste li { padding: var(--bo-esp-2) var(--bo-esp-3); font-size: var(--bo-taille-texte); cursor: pointer; }
:where(.ecran-fiche) .ban__liste li:hover, :where(.ecran-fiche) .ban__liste li[aria-selected=true] { background: var(--bo-fond); }
:where(.ecran-fiche) .ban__liste small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
/* Accords de communication : interrupteurs (06/10/2026, lot z11). */
:where(.ecran-fiche) .accords { display: grid; gap: var(--bo-esp-2); }
:where(.ecran-fiche) .accords__l { display: flex; gap: var(--bo-esp-2); align-items: flex-start; font-size: var(--bo-taille-texte); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-fiche) .accords__l small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-fiche) .accords__l input[type=checkbox] { position: absolute; width: 1px; height: 1px; opacity: 0; }
:where(.ecran-fiche) .accords__sw { flex: none; position: relative; width: 36px; height: 20px; margin-top: 2px; border-radius: var(--bo-rayon-pilule); background: var(--bo-trait-champ); transition: background .2s; }
:where(.ecran-fiche) .accords__sw::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); transition: transform .2s; }
:where(.ecran-fiche) .accords__l input:checked + .accords__sw { background: var(--bo-petrole); }
:where(.ecran-fiche) .accords__l input:checked + .accords__sw::after { transform: translateX(16px); }
:where(.ecran-fiche) .accords__l input:focus-visible + .accords__sw { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }
/* Historique des modifications et actions avancées, repliés en bas de la carte. */
:where(.ecran-fiche) .avance { margin-top: var(--bo-esp-5); padding-top: var(--bo-esp-3); border-top: 1px solid var(--bo-trait); }
:where(.ecran-fiche) .avance summary { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); cursor: pointer; }
:where(.ecran-fiche) .avance__defile { overflow-x: auto; }
:where(.ecran-fiche) .avance__defile .cl { margin-top: var(--bo-esp-2); }
:where(.ecran-fiche) .cl-doux.avance__quand { white-space: nowrap; }
:where(.ecran-fiche) .avance__aide { margin: var(--bo-esp-2) 0; }
:where(.ecran-fiche) .avance__corbeille { margin-top: var(--bo-esp-2); }
:where(.ecran-fiche) .avance__essai { margin-top: var(--bo-esp-3); }
:where(.ecran-fiche) .avance__essai > summary { cursor: pointer; }
:where(.ecran-fiche) .avance__essai form { max-width: 420px; }
/* Création guidée en trois étapes (05/10/2026). */
:where(.ecran-fiche) .guide { padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-violet-fond); }
:where(.ecran-fiche) .guide p { margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:where(.ecran-fiche) .guide__pas { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin: 0; padding: 0; list-style: none; counter-reset: pas; }
:where(.ecran-fiche) .guide__pas li { counter-increment: pas; padding: var(--bo-esp-1) var(--bo-esp-2) var(--bo-esp-1) var(--bo-esp-1); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-fiche) .guide__pas li::before { content: counter(pas); display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: var(--bo-esp-1); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); }
:where(.ecran-fiche) .guide__pas .fait::before { content: "✓"; background: var(--bo-ok); color: var(--bo-surface); }
:where(.ecran-fiche) .guide__pas .actif { border-color: var(--bo-violet); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-fiche) .guide__pas .actif::before { background: var(--bo-violet); color: var(--bo-surface); }
:where(.ecran-fiche) .guide__actions { display: flex; flex-wrap: wrap; gap: var(--bo-esp-3); align-items: center; }
:where(.ecran-fiche) .guide__passer { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
/* Recueil et espace client */
:where(.ecran-fiche) .kyc__tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--bo-esp-2); }
:where(.ecran-fiche) .kyc__meta { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-fiche) .kyc-recu { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-3); align-items: center; margin: var(--bo-esp-2) 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-ok-fond); font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .kyc-recu span { flex: 1 1 240px; }
:where(.ecran-fiche) .kyc-recu form { margin: 0; }
:where(.ecran-fiche) .kyc__plus { margin-top: var(--bo-esp-3); padding-top: var(--bo-esp-3); border-top: 1px solid var(--bo-trait); }
:where(.ecran-fiche) .kyc__depot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); margin: var(--bo-esp-3) 0 var(--bo-esp-1); padding: var(--bo-esp-3); border: 1px dashed var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
:where(.ecran-fiche) .kyc__depot input[type=file] { max-width: 100%; font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .kyc__depot .adm-label { margin: 0; }
:where(.ecran-fiche) .kyc__depot .adm-aide { flex-basis: 100%; margin: 0; }
:where(.ecran-fiche) .kyc__recueils { margin: var(--bo-esp-1) 0 0; padding: 0; list-style: none; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-fiche) .kyc__recueils li { margin: 2px 0; }
:where(.ecran-fiche) .kyc__recueils--reprendre { margin-top: var(--bo-esp-2); }
:where(.ecran-fiche) .kyc__recueils--reprendre li { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-fiche) .kyc__recueils--reprendre form { margin: 0; }
/* Foyer et sociétés */
:where(.ecran-fiche) .foyer-rappel { margin: 0 0 var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-left: 3px solid var(--bo-violet); background: var(--bo-violet-fond); }
:where(.ecran-fiche) .foyer-liste { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.ecran-fiche) .foyer-liste li { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-fiche) .foyer-lien { display: inline-block; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-legende); }
:where(.ecran-fiche) .foyer-date { color: var(--bo-texte-2); }
:where(.ecran-fiche) .foyer-retirer { margin-left: auto; }
:where(.ecran-fiche) .foyer-porteur { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-fiche) .foyer-vide { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-fiche) .foyer-relier > summary { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-fiche) .foyer-relier form { margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .foyer-ou { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
/* Fil des échanges */
:where(.ecran-fiche) .fil-note { display: grid; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-4); }
:where(.ecran-fiche) .fil-note textarea { min-height: 64px; }
:where(.ecran-fiche) .fil-note__bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bo-esp-2); }
:where(.ecran-fiche) .fil-note__bas small { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-fiche) .ra-auto { display: flex; align-items: center; gap: var(--bo-esp-3); margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); }
:where(.ecran-fiche) .ra-auto.is-on { border-color: var(--bo-ok-fond); background: var(--bo-ok-fond); }
:where(.ecran-fiche) .ra-auto__t { flex: 1; min-width: 0; }
:where(.ecran-fiche) .ra-auto__t b { display: block; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:where(.ecran-fiche) .ra-auto__t small { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-fiche) .ra-auto__sw { flex: none; position: relative; width: 46px; height: 26px; border: 0; border-radius: var(--bo-rayon-pilule); background: var(--bo-trait-champ); cursor: pointer; transition: background .2s ease; }
:where(.ecran-fiche) .ra-auto__sw span { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); box-shadow: var(--bo-ombre-survol); transition: transform .2s ease; }
:where(.ecran-fiche) .ra-auto.is-on .ra-auto__sw { background: var(--bo-ok); }
:where(.ecran-fiche) .ra-auto.is-on .ra-auto__sw span { transform: translateX(20px); }
:where(.ecran-fiche) .ra-auto__sw:focus-visible { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }
:where(.ecran-fiche) .fil { position: relative; margin: var(--bo-esp-3) 0 0; padding: 0; list-style: none; }
:where(.ecran-fiche) .fil::before { content: ""; position: absolute; left: 15px; top: 8px; bottom: 8px; width: 2px; background: var(--bo-trait); }
:where(.ecran-fiche) .fil li { position: relative; padding: 0 0 var(--bo-esp-4) var(--bo-esp-7); }
:where(.ecran-fiche) .fil__pastille { position: absolute; left: 6px; top: 2px; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: var(--bo-rayon-pilule); background: var(--bo-texte-2); color: var(--bo-surface); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); }
/* Couleur par genre d'échange : quatre familles (entrant, sortant et proposition, suivi, document). */
:where(.ecran-fiche) .fil__pastille--mail.entrant, :where(.ecran-fiche) .fil__pastille--recueil, :where(.ecran-fiche) .fil__pastille--document, :where(.ecran-fiche) .fil__pastille--signature { background: var(--bo-petrole); }
:where(.ecran-fiche) .fil__pastille--mail.sortant, :where(.ecran-fiche) .fil__pastille--proposition, :where(.ecran-fiche) .fil__pastille--envoi, :where(.ecran-fiche) .fil__pastille--profil { background: var(--bo-violet-fonce); }
:where(.ecran-fiche) .fil__pastille--lead, :where(.ecran-fiche) .fil__pastille--sms, :where(.ecran-fiche) .fil__pastille--appel { background: var(--bo-ok); }
:where(.ecran-fiche) .fil__pastille--rdv, :where(.ecran-fiche) .fil__pastille--tache, :where(.ecran-fiche) .fil__pastille--opportunite { background: var(--bo-attention); }
:where(.ecran-fiche) .fil__pastille--note { background: var(--bo-bleu); }
:where(.ecran-fiche) .fil__date { font-size: var(--bo-taille-legende); letter-spacing: .04em; color: var(--bo-texte-2); }
:where(.ecran-fiche) .fil__titre { display: block; font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; }
:where(.ecran-fiche) .fil__titre:hover { text-decoration: underline; }
:where(.ecran-fiche) .fil__lire { margin-top: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .fil__lire summary { color: var(--bo-violet); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.ecran-fiche) .fil__texte { max-height: none; margin-top: var(--bo-esp-2); padding: var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); white-space: pre-wrap; font-size: var(--bo-taille-texte); line-height: 1.6; color: var(--bo-bleu); }
:where(.ecran-fiche) .fil__detail { margin: 2px 0 0; white-space: pre-line; font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.ecran-fiche) .fil__pieces { margin-top: 2px; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-fiche) .fil__detacher { margin: var(--bo-esp-1) 0 0; }
:where(.ecran-fiche) .fil__detacher button { padding: 0; border: 0; background: none; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); text-decoration: underline dotted; cursor: pointer; }
:where(.ecran-fiche) .fil__detacher button:hover { color: var(--bo-violet-fonce); }
:where(.ecran-fiche) .fil__mails--mails { margin-top: var(--bo-esp-3); }
:where(.ecran-fiche) .fil__mails-liste { margin: var(--bo-esp-2) 0 0; padding: 0; list-style: none; }
:where(.ecran-fiche) .fil__mails-liste > li { padding: var(--bo-esp-1) 0; border-top: 1px solid var(--bo-trait); }
/* Espace client en ligne (_espace-client.html.twig) */
:where(.ecran-fiche) .espace { margin-top: var(--bo-esp-3); padding-top: var(--bo-esp-3); border-top: 1px solid var(--bo-trait); }
:where(.ecran-fiche) .espace__tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-fiche) .espace__lien { margin-top: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-violet-fond); font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .espace__copier { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-1); }
:where(.ecran-fiche) .espace__copier .adm-champ { flex: 1; }
:where(.ecran-fiche) .espace__ouvrir { margin-top: var(--bo-esp-2); }
:where(.ecran-fiche) .espace__ouvrir > summary { font-size: var(--bo-taille-aide); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-fiche) .espace__form { display: grid; gap: var(--bo-esp-2); margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-fiche) .espace__ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-fiche) .espace__coche { display: flex; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-fiche) .espace__duree { color: var(--bo-texte-2); }
:where(.ecran-fiche) .espace__ligne select.adm-champ { width: auto; }
:where(.ecran-fiche) .espace__aide { display: block; margin: var(--bo-esp-1) 0 0; }
:where(.ecran-fiche) .espace .kyc__recueils { margin-top: var(--bo-esp-2); }

/* Adresse e-mail à valider (_email-a-valider.html.twig : fiche, conformité du client, écrire, rendez-vous du lead) */
.eav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-4); margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-attention-fond); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-texte); }
.eav p { flex: 1 1 320px; margin: 0; }
.eav b { font-weight: var(--bo-graisse-forte); }
.eav form { margin: 0; }
:where(.ecran-fiche) .fiche-inline { display: inline; }
:where(.ecran-fiche) .espace__fermer { padding: 0; border: 0; background: none; font: inherit; color: var(--bo-bloquant); text-decoration: underline; cursor: pointer; }
:where(.ecran-fiche) .espace .badge { font-size: var(--bo-taille-legende); }

/* ===== bo-dossier-ecrans.css ===== */
/*
 * Écrans du dossier de conformité du client (lot 4 du style unifié, 28/10/2026) : opération, connaissance client, documents
 * du client (rédaction et aperçu à l'écran), DER du cabinet, souscription, profil investisseur, pièces et justificatifs,
 * recueil (édition et aperçu de reprise). Règles reprises des blocs <style> et des attributs style="" de ces gabarits,
 * valeurs ramenées aux jetons (bo-jetons.css).
 *
 * Placée en fin de paquet bo-tete.css : même ordre de passage que les anciens blocs <style> des écrans (après les feuilles
 * de tête, avant bo-fin.css). Chaque écran pose sur sa zone une classe « ecran-… » (bloc largeur de _ecran.html.twig) ;
 * :where(.ecran-…) borne les règles à cet écran sans changer leur priorité. Le rendu imprimé (gabarits *-imprimer, PDF)
 * n'est pas concerné.
 */

/* ======================================================================
   Opération (operation.html.twig)
   ====================================================================== */
:where(.ecran-operation) .op { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: var(--bo-esp-4); align-items: start; max-width: 1180px; }
@media (max-width:1500px) {
  :where(.ecran-operation) .op { grid-template-columns: minmax(0,1fr); }
  :where(.ecran-operation) .op .eval { position: static; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); align-items: start; }
}
/* 04/10/2026 : questionnaire compact, question à gauche, réponses en pastilles à droite, progression. */
:where(.ecran-operation) .qo { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--bo-esp-2) var(--bo-esp-4); align-items: start; padding: var(--bo-esp-3) 0 var(--bo-esp-3) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); border-left: 3px solid transparent; }
:where(.ecran-operation) .qo.vide { border-left-color: var(--bo-attention); }
:where(.ecran-operation) .qo > p { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); line-height: 1.4; }
:where(.ecran-operation) .qo .choix label:has(input:checked) { background: var(--bo-petrole); border-color: var(--bo-bleu); }
:where(.ecran-operation) .qo .choix input:checked + span { color: var(--bo-surface); }
:where(.ecran-operation) .qo .choix input { position: absolute; opacity: 0; pointer-events: none; }
:where(.ecran-operation) .qo .choix label { position: relative; }
:where(.ecran-operation) .qo .choix label:has(input:focus-visible) { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
:where(.ecran-operation) .qo-prog { display: inline-block; margin-left: var(--bo-esp-2); padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-texte-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); vertical-align: middle; }
:where(.ecran-operation) .qo-prog.fini { background: var(--bo-ok-fond); color: var(--bo-ok); }
@media (max-width:900px) {
  :where(.ecran-operation) .qo { grid-template-columns: minmax(0,1fr); }
}
:where(.ecran-operation) .choix label.r1 { border-color: color-mix(in srgb, var(--bo-attention) 35%, transparent); }
:where(.ecran-operation) .choix label.r2 { border-color: color-mix(in srgb, var(--bo-attention) 60%, transparent); }
:where(.ecran-operation) .choix label.r3 { border-color: color-mix(in srgb, var(--bo-bloquant) 45%, transparent); }
:where(.ecran-operation) .eval { position: sticky; top: 12px; display: grid; gap: var(--bo-esp-3); }
:where(.ecran-operation) .score { font-size: var(--bo-taille-ecran); font-family: var(--bo-police); color: var(--bo-bleu); }
:where(.ecran-operation) .liste { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); }
:where(.ecran-operation) .op-produits { display: grid; gap: var(--bo-esp-1); }
:where(.ecran-operation) .op-produit { display: flex; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-operation) .op-produit input { flex: 1; }
:where(.ecran-operation) .op-produits .adm-btn { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.ecran-operation) .op-corriger { display: grid; gap: var(--bo-esp-2); }
:where(.ecran-operation) .op-corriger form { margin: 0; }
:where(.ecran-operation) .qo-tout { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-1); }
/* Anciens style="" de l'écran. */
:where(.ecran-operation) .op-form { display: grid; gap: var(--bo-esp-4); }
:where(.ecran-operation) .adm-champ.op-court { max-width: 220px; }
:where(.ecran-operation) .adm-champ.op-moyen { max-width: 260px; }
:where(.ecran-operation) .score small { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-operation) .op-suggere { margin: var(--bo-esp-1) 0 0; }
:where(.ecran-operation) .dos .ok.op-ok { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-operation) .op-juge { display: grid; gap: var(--bo-esp-1); }
:where(.ecran-operation) .op-juge label { font-size: var(--bo-taille-aide); }
:where(.ecran-operation) .op-etat { margin: 0; font-size: var(--bo-taille-aide); }
:where(.ecran-operation) .op-lien { margin: var(--bo-esp-2) 0 0; }
:where(.ecran-operation) .op-souscrire { display: grid; gap: var(--bo-esp-2); }

/* ======================================================================
   Informations obligatoires manquantes (_obligatoires-manquants.html.twig : connaissance client, revue de l'espace client)
   ====================================================================== */
.om { max-width: 1320px; margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-texte); }
.om ul { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); }
.om a { color: inherit; }

/* ======================================================================
   Documents du client : rédaction et aperçu à l'écran (document-client.html.twig : lettre de mission, convention RTO,
   rapport d'adéquation, bordereau d'arbitrage, mandats, évaluation annuelle). Le rendu imprimé n'est pas concerné.
   ====================================================================== */
:where(.ecran-document) .dc-page { min-width: 0; display: grid; gap: var(--bo-esp-4); }
:where(.ecran-document) .apercu { overflow-x: auto; }
:where(.ecran-document) .apercu .doc-texte { max-width: 78ch; }
/* Document figé : statut et journal côte à côte, puis le texte en pleine largeur. */
:where(.ecran-document) .dc--fige { grid-template-columns: minmax(0,1fr) !important; }
:where(.ecran-document) .dc--fige > div:first-child { grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); align-items: start; }
:where(.ecran-document) .dc { display: grid; grid-template-columns: minmax(0,420px) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; max-width: 1320px; }
/* Brouillon : une seule colonne, le formulaire en pleine largeur d'abord, puis le contrôle, puis la prévisualisation repliée. */
:where(.ecran-document) .dc--brouillon { grid-template-columns: minmax(0,1fr); max-width: 1000px; }
:where(.ecran-document) .dc--brouillon > div { display: contents; }
:where(.ecran-document) .dc--brouillon > div > * { order: 5; }
:where(.ecran-document) .dc--brouillon > div > #champs { order: 1; padding: var(--bo-esp-5); }
:where(.ecran-document) .dc--brouillon > div > #controle { order: 2; }
:where(.ecran-document) .dc--brouillon > div > .apercu { order: 3; }
:where(.ecran-document) .dc--brouillon #champs .champ { margin-bottom: var(--bo-esp-4); }
:where(.ecran-document) .dc--brouillon #champs textarea.adm-champ { min-height: 120px; font-size: var(--bo-taille-texte); line-height: 1.5; }
:where(.ecran-document) .apercu--repliable > summary { cursor: pointer; font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); font-size: var(--bo-taille-texte); }
:where(.ecran-document) .apercu--repliable > summary small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.ecran-document) .apercu--repliable[open] > summary { margin-bottom: var(--bo-esp-3); }
@media (max-width:1150px) {
  :where(.ecran-document) .dc { grid-template-columns: minmax(0,1fr); }
}
:where(.ecran-document) .doc-profil { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-info-fond); color: var(--bo-bleu); font-size: var(--bo-taille-aide); }
:where(.ecran-document) .doc-profil--manque { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-document) .doc-profil a { color: inherit; font-weight: var(--bo-graisse-forte); }
:where(.ecran-document) .ra-etape { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-3) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); }
:where(.ecran-document) .ra-etape h3 { display: flex; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.ecran-document) .ra-etape h3 span { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: var(--bo-rayon-pilule); background: var(--bo-degrade); color: var(--bo-surface); font-size: var(--bo-taille-legende); }
:where(.ecran-document) .ra-produit { display: grid; grid-template-columns: minmax(0,1fr) 150px 30px; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-2); align-items: center; }
@media (max-width:560px) {
  :where(.ecran-document) .ra-produit { grid-template-columns: minmax(0,1fr) 30px; }
  :where(.ecran-document) .ra-montant { grid-column: 1; }
}
:where(.ecran-document) .ra-dic { grid-column: 1/-1; font-size: var(--bo-taille-legende); color: var(--bo-ok); }
:where(.ecran-document) .ra-dic--manque { color: var(--bo-attention); }
:where(.ecran-document) .ra-montant { position: relative; }
:where(.ecran-document) .ra-montant input { width: 100%; padding-right: var(--bo-esp-5); }
:where(.ecran-document) .ra-montant span { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); color: var(--bo-texte-2); font-size: var(--bo-taille-aide); }
:where(.ecran-document) .ra-produit__opts { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; font-size: var(--bo-taille-aide); color: var(--bo-violet-fonce); padding: 0 0 var(--bo-esp-1); }
:where(.ecran-document) .ra-produit__opts label { display: flex; align-items: center; gap: var(--bo-esp-1); }
:where(.ecran-document) .ra-produit__opts input.adm-champ { width: 90px; padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-document) .ra-sugg { font-style: normal; font-size: var(--bo-taille-legende); color: var(--bo-violet-fonce); background: var(--bo-violet-fond); border-radius: var(--bo-rayon-pilule); padding: 1px var(--bo-esp-2); margin-left: var(--bo-esp-1); }
:where(.ecran-document) .ra-retirer { border: 0; background: var(--bo-violet-fond); border-radius: var(--bo-rayon-pilule); width: 28px; height: 28px; cursor: pointer; color: var(--bo-violet-fonce); }
:where(.ecran-document) .ra-ajouter { border: 1px dashed var(--bo-trait-champ); background: var(--bo-surface-2); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) var(--bo-esp-3); color: var(--bo-violet-fonce); font-size: var(--bo-taille-aide); cursor: pointer; margin: 0 0 var(--bo-esp-1); }
:where(.ecran-document) .ra-objectifs { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: var(--bo-esp-1) var(--bo-esp-4); font-size: var(--bo-taille-texte); }
:where(.ecran-document) .ra-objectifs label { display: flex; gap: var(--bo-esp-2); align-items: flex-start; }
:where(.ecran-document) .ra-criteres { list-style: none; margin: 0 0 var(--bo-esp-3); padding: 0; display: grid; gap: var(--bo-esp-1); }
:where(.ecran-document) .ra-c { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: var(--bo-esp-2); align-items: start; font-size: var(--bo-taille-aide); line-height: 1.45; }
:where(.ecran-document) .ra-c b { font-size: var(--bo-taille-legende); text-align: center; padding: 3px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); letter-spacing: .02em; }
:where(.ecran-document) .ra-c--ok b { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.ecran-document) .ra-c--info b { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.ecran-document) .ra-c--justifier b { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-document) .ra-c--bloquant b { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.ecran-document) .ra-autres { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); }
:where(.ecran-document) .ra-autres summary { cursor: pointer; font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-document) .ra-autres summary small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); margin-left: var(--bo-esp-2); }
:where(.ecran-document) .ra-autres[open] summary { margin-bottom: var(--bo-esp-2); }
/* Anciens style="" de l'écran. */
:where(.ecran-document) .rl-modele { margin: 0; font-size: var(--bo-taille-aide); }
:where(.ecran-document) .rl-modele--a-relire { padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-attention); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); }
:where(.ecran-document) .rl-modele--relu { color: var(--bo-texte-2); }
:where(.ecran-document) .dc-colonne { display: grid; gap: var(--bo-esp-4); }
:where(.ecran-document) .doc-profil--eval { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
:where(.ecran-document) .dc-gestes { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); }
:where(.ecran-document) .dc-form { display: grid; gap: var(--bo-esp-2); }
:where(.ecran-document) .sugg.dc-etapes-signature { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); line-height: 1.6; }
:where(.ecran-document) .dc-fin { font-weight: var(--bo-graisse-texte); }
:where(.ecran-document) .adm-champ.dc-motif { flex: 1; min-width: 180px; padding: 0 var(--bo-esp-3); }
:where(.ecran-document) .dc-manque { color: var(--bo-attention); font-size: var(--bo-taille-aide); }
:where(.ecran-document) .dc-dic { display: grid; gap: var(--bo-esp-3); margin: 0; padding: 0; list-style: none; }
:where(.ecran-document) .dc-alerte-txt { color: var(--bo-bloquant); }
:where(.ecran-document) .dc-fichier { max-width: 230px; }
:where(.ecran-document) .dc-petit { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-document) .adm-champ.dc-date { width: auto; padding: 0 var(--bo-esp-2); }
:where(.ecran-document) .adm-champ.dc-lien { flex: 1; min-width: 220px; padding: 0 var(--bo-esp-2); }
:where(.ecran-document) .dc-aide-txt { color: var(--bo-texte-2); }

/* ======================================================================
   DER du cabinet (der.html.twig) : données à saisir, groupes repliables, échéances. Le DER imprimé n'est pas concerné.
   ====================================================================== */
:where(.ecran-der) .der-gen { margin: 0 0 var(--bo-esp-4); max-width: none; }
:where(.ecran-der) .der-gen__tete { display: flex; justify-content: space-between; gap: var(--bo-esp-4); align-items: flex-start; flex-wrap: wrap; margin-bottom: var(--bo-esp-3); }
:where(.ecran-der) .der-gen__tete > div { flex: 1 1 380px; }
:where(.ecran-der) .der-groupe { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); margin: 0 0 var(--bo-esp-2); padding: 0 var(--bo-esp-4); background: var(--bo-surface); }
:where(.ecran-der) .der-groupe > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--bo-esp-3); padding: var(--bo-esp-3) 0; font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); min-height: 44px; }
:where(.ecran-der) .der-groupe > summary::-webkit-details-marker { display: none; }
:where(.ecran-der) .der-groupe > summary em { font-style: normal; font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-der) .der-groupe[open] > summary { border-bottom: 1px solid var(--bo-trait); margin-bottom: var(--bo-esp-3); }
:where(.ecran-der) .der-groupe > .der-champs, :where(.ecran-der) .der-groupe > .der-part { padding-bottom: var(--bo-esp-4); }
:where(.ecran-der) .der-champs { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); }
:where(.ecran-der) .der-champs label { display: block; min-width: 0; }
:where(.ecran-der) .der-champs .der-large { grid-column: 1/-1; }
:where(.ecran-der) .der-copie { margin-top: var(--bo-esp-1); border: 0; background: none; padding: 0; color: var(--bo-violet-fonce); font-size: var(--bo-taille-legende); text-decoration: underline; cursor: pointer; }
:where(.ecran-der) .der-champs textarea { min-height: 0; }
:where(.ecran-der) .der-part { display: grid; gap: var(--bo-esp-1); }
:where(.ecran-der) .der-part__l { display: grid; grid-template-columns: .8fr 1.3fr 1.3fr 1.4fr 1.6fr; gap: var(--bo-esp-1); }
:where(.ecran-der) .der-part__l > * { min-width: 0; }
:where(.ecran-der) .der-part__th { font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.ecran-der) .der-alerte { max-width: none; margin: var(--bo-esp-4) 0 0; padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-texte); }
:where(.ecran-der) .der-alerte--depasse { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
@media (max-width:820px) {
  :where(.ecran-der) .der-part__th { display: none; }
  :where(.ecran-der) .der-part__l { grid-template-columns: 1fr 1fr; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); }
  :where(.ecran-der) .der-part__l > input[name$="[nom]"] { grid-column: 2; }
}

/* ======================================================================
   Souscription (souscription.html.twig) : avancement, dossier figé, partenaire, journal.
   ====================================================================== */
:where(.ecran-souscription) .so { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: var(--bo-esp-4); align-items: start; max-width: 1180px; }
@media (max-width:1100px) {
  :where(.ecran-souscription) .so { grid-template-columns: minmax(0,1fr); }
}
:where(.ecran-souscription) .etapes { display: flex; gap: 0; margin: 0 0 var(--bo-esp-1); padding: 0; list-style: none; counter-reset: e; }
/* Contre-audit 21/10/2026 (D-UX-09) : couleur de texte à 4,5:1 au moins sur son fond. */
:where(.ecran-souscription) .etapes li { flex: 1; position: relative; text-align: center; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); padding-top: var(--bo-esp-5); }
:where(.ecran-souscription) .etapes li::before { content: ''; position: absolute; top: 8px; left: calc(50% - 7px); width: 14px; height: 14px; border-radius: var(--bo-rayon-pilule); background: var(--bo-trait); z-index: 1; }
:where(.ecran-souscription) .etapes li::after { content: ''; position: absolute; top: 14px; left: -50%; width: 100%; height: 2px; background: var(--bo-trait); }
:where(.ecran-souscription) .etapes li:first-child::after { display: none; }
:where(.ecran-souscription) .etapes li.fait { color: var(--bo-bleu); }
:where(.ecran-souscription) .etapes li.fait::before, :where(.ecran-souscription) .etapes li.fait::after { background: var(--bo-petrole); }
:where(.ecran-souscription) .etapes li.saute::after { background: var(--bo-petrole); }
:where(.ecran-souscription) .etapes li.saute::before { background: var(--bo-surface); border: 2px solid var(--bo-trait-champ); box-sizing: border-box; }
:where(.ecran-souscription) .etapes li.actuel { color: var(--bo-violet); font-weight: var(--bo-graisse-forte); }
:where(.ecran-souscription) .etapes li.actuel::before { background: var(--bo-violet); box-shadow: var(--bo-halo-champ); }
:where(.ecran-souscription) .inst { display: grid; grid-template-columns: minmax(0,36%) minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-3); margin: 0; font-size: var(--bo-taille-aide); }
:where(.ecran-souscription) .inst dt { color: var(--bo-texte-2); }
:where(.ecran-souscription) .inst dd { margin: 0; overflow-wrap: anywhere; }
:where(.ecran-souscription) .inst--imbr { grid-template-columns: minmax(0,40%) minmax(0,1fr); font-size: var(--bo-taille-aide); padding: var(--bo-esp-1) 0; }
/* Contre-audit 21/10/2026 (D-UX-09) : couleur de texte à 4,5:1 au moins sur son fond. */
:where(.ecran-souscription) .inst .vide { color: var(--bo-texte-2); }
:where(.ecran-souscription) .bloc { padding: var(--bo-esp-3) 0; border-top: 1px solid var(--bo-trait); }
:where(.ecran-souscription) .bloc:first-of-type { border-top: 0; }
:where(.ecran-souscription) .bloc h3 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-violet-fonce); }
/* Anciens style="" de l'écran. */
:where(.ecran-souscription) .so-colonne { display: grid; gap: var(--bo-esp-4); }
:where(.ecran-souscription) .so-cote { position: sticky; top: 12px; display: grid; gap: var(--bo-esp-4); }
:where(.ecran-souscription) .so-partenaire { margin: 0; font-size: var(--bo-taille-aide); }

/* ======================================================================
   Profil investisseur (profil-resultat.html.twig : résultat et validation ; profil-questionnaire.html.twig : saisie).
   ====================================================================== */
:where(.ecran-profil) .pr { display: grid; gap: var(--bo-esp-4); max-width: 1080px; }
:where(.ecran-profil) .pr__axes { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: var(--bo-esp-2); }
@media (max-width:1200px) {
  :where(.ecran-profil) .pr__axes { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
:where(.ecran-profil) .pr__axe { background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.ecran-profil) .pr__axe span { display: block; font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.ecran-profil) .pr__axe b { display: block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.ecran-profil) .pr__retenu { display: flex; flex-wrap: wrap; gap: var(--bo-esp-5); align-items: center; padding: var(--bo-esp-4) var(--bo-esp-5); border-radius: var(--bo-rayon-carte); color: var(--bo-surface); background: var(--bo-degrade-menu); }
:where(.ecran-profil) .pr__retenu .grand { font-family: var(--bo-police); font-size: var(--bo-taille-ecran); line-height: 1.1; }
:where(.ecran-profil) .pr__retenu small { display: block; font-size: var(--bo-taille-legende); letter-spacing: .1em; text-transform: uppercase; color: var(--bo-violet-fond); }
:where(.ecran-profil) .pr__sri { display: flex; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); }
:where(.ecran-profil) .pr__sri i { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: var(--bo-rayon-controle); font-style: normal; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: color-mix(in srgb, var(--bo-surface) 15%, transparent); color: var(--bo-surface); }
:where(.ecran-profil) .pr__sri i.oui { background: var(--bo-surface); color: var(--bo-bleu); }
:where(.ecran-profil) .pr__plafonds { margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.ecran-profil) .pr table { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); table-layout: fixed; }
:where(.ecran-profil) .pr td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); vertical-align: top; overflow-wrap: anywhere; }
:where(.ecran-profil) .pr td:first-child { width: 52%; color: var(--bo-texte-2); }
:where(.ecran-profil) .pr h2 { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-profil) .pr__form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); }
:where(.ecran-profil) .pr__form .pleine { grid-column: 1/-1; }
:where(.ecran-profil) .pr__suite { display: flex; justify-content: space-between; gap: var(--bo-esp-2); flex-wrap: wrap; padding-top: var(--bo-esp-1); }
/* Anciens style="" de l'écran. */
:where(.ecran-profil) .pr-alerte { margin: 0; }
:where(.ecran-profil) .pr-alerte--bas { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-profil) .pr__note { display: block; font-size: var(--bo-taille-legende); color: var(--bo-violet-fond); }
:where(.ecran-profil) .pr__note--haut { margin-top: var(--bo-esp-1); }
:where(.ecran-profil) .pr__revoir { font-size: var(--bo-taille-sous-titre); }
:where(.ecran-profil) .pr__quiz { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-profil) .pr__panneau { padding: var(--bo-esp-4) var(--bo-esp-5); }
:where(.ecran-profil) .pr__texte { margin: 0; font-size: var(--bo-taille-texte); }
:where(.ecran-profil) .pr__texte--bas { margin: 0 0 var(--bo-esp-1); }
:where(.ecran-profil) .pr__texte--plafond { margin: var(--bo-esp-1) 0; }
:where(.ecran-profil) .pr__texte--haut { margin: var(--bo-esp-2) 0 0; }
:where(.ecran-profil) .pr__vignette { max-width: 340px; }
:where(.ecran-profil) .pr__valider { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-profil) .adm-aide.pr__aide { margin: 0; }
:where(.ecran-profil) .pr__supprimer { margin-top: var(--bo-esp-3); }
:where(.ecran-profil) .pr__rubrique { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-violet-fonce); }
:where(.ecran-profil) .pr__juste { color: var(--bo-ok); }
:where(.ecran-profil) .pr__inexact { color: var(--bo-bloquant); }
:where(.ecran-profil) .pq-suite { display: flex; justify-content: space-between; gap: var(--bo-esp-2); max-width: 980px; margin: var(--bo-esp-3) 0 0; }

/* ======================================================================
   Pièces et justificatifs : décision sur une pièce (_piece-actions.html.twig, liste des pièces reçues et documents du client),
   filtres de la liste des pièces reçues (pieces-recues.html.twig).
   ====================================================================== */
.pc-valider summary { list-style: none; cursor: pointer; }
.pc-valider__form { display: grid; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); padding: var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
.pc-valider__form label { display: grid; gap: 2px; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
.pc-actions { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; }
.pc-actions form { margin: 0; }
.pc-actions--col { display: grid; grid-template-columns: 1fr; gap: var(--bo-esp-1); width: max-content; max-width: 100%; margin-left: auto; }
.pc-actions--col .adm-btn { width: 100%; justify-content: center; text-align: center; }
:where(.ecran-pieces) .pq-filtres { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); }
:where(.ecran-pieces) .pq-filtres .is-actif { background: var(--bo-petrole); color: var(--bo-surface); border-color: var(--bo-bleu); }
:where(.ecran-pieces) .adm-aide.pq-vide { margin: var(--bo-esp-3) 0; }

/* ======================================================================
   Documents et opérations du client (contact-dossier-bloc.html.twig, _bloc-documents.html.twig, _bloc-operations.html.twig) :
   relation et documents, pièces à signer et signées, justificatifs reçus, vigilance et opérations.
   ====================================================================== */
:where(.ecran-dossier-bloc) .kyc__tete { display: flex; align-items: baseline; justify-content: space-between; gap: var(--bo-esp-2); flex-wrap: wrap; }
:where(.ecran-dossier-bloc) .kyc__meta { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .kyc__recueils { margin: var(--bo-esp-1) 0 0; padding: 0; list-style: none; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .kyc__recueils li { margin: 2px 0; }
:where(.ecran-dossier-bloc) .kyc__synthese { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
/* Contre-audit 21/10/2026 (D-UX-09) : couleur de texte à 4,5:1 au moins sur son fond. */
:where(.ecran-dossier-bloc) .kyc__synthese div { border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); padding: var(--bo-esp-2) var(--bo-esp-3); min-width: 0; }
:where(.ecran-dossier-bloc) .kyc__synthese span { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .kyc__synthese b { display: block; font-size: var(--bo-taille-texte); color: var(--bo-bleu); overflow-wrap: anywhere; }
:where(.ecran-dossier-bloc) .kyc__synthese b.vide { color: var(--bo-texte-2); font-weight: var(--bo-graisse-texte); }
:where(.ecran-dossier-bloc) .jus { list-style: none; margin: var(--bo-esp-2) 0 0; padding: 0; display: grid; gap: var(--bo-esp-2); }
:where(.ecran-dossier-bloc) .jus li { display: flex; justify-content: space-between; align-items: center; gap: var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); }
:where(.ecran-dossier-bloc) .jus a { text-decoration: none; min-width: 0; }
:where(.ecran-dossier-bloc) .jus b { display: block; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-dossier-bloc) .jus small { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .jus form { margin: 0; }
:where(.ecran-dossier-bloc) .jus__corps { min-width: 0; display: grid; gap: var(--bo-esp-1); }
:where(.ecran-dossier-bloc) .jus__actions { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; justify-content: flex-end; }
:where(.ecran-dossier-bloc) .jus__histo { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .jus__histo ul { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); display: block; list-style: disc; }
:where(.ecran-dossier-bloc) .jus__histo li { display: list-item; border: 0; padding: 0; }
:where(.ecran-dossier-bloc) .dos h2.adm-label { display: flex; align-items: baseline; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-1); }
/* Anciens style="" des blocs. */
:where(.ecran-dossier-bloc) .db-colonne { display: grid; gap: var(--bo-esp-4); min-width: 0; max-width: 1100px; }
:where(.ecran-dossier-bloc) .db-preparer { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-dossier-bloc) .db-fin { font-weight: var(--bo-graisse-texte); }
:where(.ecran-dossier-bloc) .db-doux { color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .db-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-dossier-bloc) .db-der { margin-top: var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.ecran-dossier-bloc) .adm-champ.db-court { width: auto; padding: 0 var(--bo-esp-2); }
:where(.ecran-dossier-bloc) .adm-champ.db-motif { width: 260px; padding: 0 var(--bo-esp-2); }
:where(.ecran-dossier-bloc) .kyc__recueils.db-mt { margin-top: var(--bo-esp-3); }
:where(.ecran-dossier-bloc) .kyc__recueils.db-m0 { margin: 0; }
:where(.ecran-dossier-bloc) .db-groupe { margin-top: var(--bo-esp-4); }
:where(.ecran-dossier-bloc) .db-titre { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.ecran-dossier-bloc) .db-piece { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--bo-esp-1) var(--bo-esp-3); padding: var(--bo-esp-1) 0; border-bottom: 1px solid var(--bo-trait); }
:where(.ecran-dossier-bloc) .db-piece__nom { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-dossier-bloc) .db-ok { color: var(--bo-ok); }
:where(.ecran-dossier-bloc) .db-attention { color: var(--bo-attention); }
:where(.ecran-dossier-bloc) .kyc__synthese b.db-bloquant { color: var(--bo-bloquant); }
:where(.ecran-dossier-bloc) .db-vide { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .db-archives { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .db-aide-txt { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-dossier-bloc) .kyc__meta.db-meta { margin: var(--bo-esp-3) 0 0; }
:where(.ecran-dossier-bloc) .adm-aide.db-aide { margin: var(--bo-esp-2) 0 0; }

/* ======================================================================
   Recueil saisi au BO (recueil-edition.html.twig). La saisie reprend les marques de l'espace client (espace-saisie.css,
   chargée après ce paquet) : une règle qui croise une classe ec-… y gagne par sa spécificité.
   ====================================================================== */
:where(.ecran-recueil) .rc { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: var(--bo-esp-5); align-items: start; }
:where(.ecran-recueil) .rc-sommaire { position: sticky; top: 0; display: flex; flex-direction: column; gap: 2px; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
:where(.ecran-recueil) .rc-sommaire a { display: flex; align-items: center; justify-content: space-between; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); color: var(--bo-texte); text-decoration: none; }
:where(.ecran-recueil) .rc-sommaire a:hover { background: var(--bo-surface-2); }
:where(.ecran-recueil) .rc-sommaire a.is-actif { background: var(--bo-violet-fond); font-weight: var(--bo-graisse-titre); }
:where(.ecran-recueil) .rc-cache { display: none; }
:where(.ecran-recueil) .rc-suite { margin: var(--bo-esp-4) 0 var(--bo-esp-1); }
:where(.ecran-recueil) .rc-suite a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--bo-esp-4); border-radius: var(--bo-rayon-controle); border: 1px solid var(--bo-trait); background: var(--bo-surface); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); text-decoration: none; }
:where(.ecran-recueil) .rc-sommaire b { flex: none; font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-legende); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-trait); color: var(--bo-texte-2); }
:where(.ecran-recueil) .rc-sommaire b.ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.ecran-recueil) .rc-section { scroll-margin-top: 12px; margin-bottom: var(--bo-esp-5); }
:where(.ecran-recueil) .rc-sur { font-size: var(--bo-taille-legende); letter-spacing: .14em; text-transform: uppercase; color: var(--bo-bleu); margin: var(--bo-esp-5) 0 2px; }
:where(.ecran-recueil) .rc-titre { font-family: var(--bo-police); font-size: var(--bo-taille-chiffre); color: var(--bo-bleu); margin: 0 0 var(--bo-esp-1); }
:where(.ecran-recueil) .rc-aide { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); margin: 0 0 var(--bo-esp-3); white-space: pre-line; }
:where(.ecran-recueil) .rc-carte { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); padding: var(--bo-esp-4) var(--bo-esp-4); margin-top: var(--bo-esp-3); }
:where(.ecran-recueil) .rc-carte h3 { display: flex; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-recueil) .rc-carte h3 small { font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-legende); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface-2); color: var(--bo-texte-2); }
:where(.ecran-recueil) .rc-ligne { display: grid; grid-template-columns: repeat(var(--n),minmax(0,1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); margin-bottom: var(--bo-esp-2); }
:where(.ecran-recueil) .rc-label { display: block; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); margin-bottom: var(--bo-esp-1); }
:where(.ecran-recueil) .rc-champ { width: 100%; }
:where(.ecran-recueil) .rc-coche { display: flex; gap: var(--bo-esp-2); align-items: center; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-texte); cursor: pointer; }
:where(.ecran-recueil) .rc-coche input { accent-color: var(--bo-violet); width: 16px; height: 16px; }
:where(.ecran-recueil) .rc-tab { position: relative; left: -8px; width: calc(100% + 16px); border-collapse: separate; border-spacing: 8px 6px; }
:where(.ecran-recueil) .rc-tab th { font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); font-weight: var(--bo-graisse-forte); text-align: left; }
:where(.ecran-recueil) .rc-ajout { margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-recueil) .rc-barre { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; padding: var(--bo-esp-3) var(--bo-esp-4); margin-top: var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
:where(.ecran-recueil) [data-masque] { display: none; }
:where(.ecran-recueil) .ec-legende.rc-legende { margin: var(--bo-esp-2) 0 0; }
:where(.ecran-recueil) .rc-carte h3 .ec-requis { position: relative; left: -4px; }
:where(.ecran-recueil) .rc-carte h3 small.ec-requis__si { position: relative; left: -4px; padding: 0; background: none; color: var(--bo-violet-fonce); font-weight: var(--bo-graisse-texte); }
@media (max-width:900px) {
  :where(.ecran-recueil) .rc { grid-template-columns: minmax(0,1fr); }
  :where(.ecran-recueil) .rc-sommaire { position: static; }
  :where(.ecran-recueil) .rc-ligne { grid-template-columns: minmax(0,1fr); }
}
/* Anciens style="" de l'écran. */
:where(.ecran-recueil) .rc-fige { margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); color: var(--bo-bleu); }
:where(.ecran-recueil) .rc-bandeau { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-recueil) .rc-bandeau__texte { flex: 1 1 320px; }
:where(.ecran-recueil) .rc-bandeau__form { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin: 0; }
:where(.ecran-recueil) .adm-champ.rc-bandeau__fiche { min-width: 240px; margin: 0; }
:where(.ecran-recueil) .rc-carte.rc-carte--premiere { margin-top: 0; }
:where(.ecran-recueil) .rc-carte.rc-profil { display: flex; align-items: center; gap: var(--bo-esp-4); background: var(--bo-surface-2); }
:where(.ecran-recueil) .rc-profil__valeur { font-size: var(--bo-taille-chiffre); color: var(--bo-violet); }
:where(.ecran-recueil) .rc-aide.rc-aide--m0 { margin: 0; }
:where(.ecran-recueil) .rc-aide.rc-aide--carte { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-recueil) .rc-titre.rc-titre--partie { margin: var(--bo-esp-5) 0 0; font-size: var(--bo-taille-titre); }

/* ======================================================================
   Aperçu de la reprise d'un recueil dans la fiche (contact-recueil-apercu.html.twig).
   ====================================================================== */
:where(.ecran-recueil-apercu) .rec { display: grid; gap: var(--bo-esp-4); max-width: 1100px; }
:where(.ecran-recueil-apercu) .rec table { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); table-layout: fixed; }
:where(.ecran-recueil-apercu) .rec th, :where(.ecran-recueil-apercu) .rec td { text-align: left; padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); vertical-align: top; overflow-wrap: anywhere; white-space: pre-line; }
:where(.ecran-recueil-apercu) .rec thead th { font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); background: var(--bo-surface-2); white-space: nowrap; }
:where(.ecran-recueil-apercu) .rec h2 { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-recueil-apercu) .rec .etat { display: inline-block; border-radius: var(--bo-rayon-pilule); padding: 2px var(--bo-esp-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); white-space: nowrap; }
:where(.ecran-recueil-apercu) .rec .etat--remplir { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.ecran-recueil-apercu) .rec .etat--garder { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-recueil-apercu) .rec .etat--identique { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
/* Contre-audit 21/10/2026 (D-UX-09) : couleur de texte à 4,5:1 au moins sur son fond. */
:where(.ecran-recueil-apercu) .rec .doux { color: var(--bo-texte-2); }
:where(.ecran-recueil-apercu) .rec__choix { display: inline-flex; gap: var(--bo-esp-1); align-items: center; border-radius: var(--bo-rayon-pilule); padding: 2px var(--bo-esp-3); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); cursor: pointer; }
/* 27/10/2026 : détail des tableaux et du questionnaire de profil lus. */
:where(.ecran-recueil-apercu) .rec__detail { margin-top: var(--bo-esp-3); border-top: 1px solid var(--bo-trait); padding-top: var(--bo-esp-2); }
:where(.ecran-recueil-apercu) .rec__detail summary { cursor: pointer; font-size: var(--bo-taille-texte); line-height: 1.5; }
:where(.ecran-recueil-apercu) .rec__defile { overflow-x: auto; margin-top: var(--bo-esp-2); }
:where(.ecran-recueil-apercu) .rec .rec__lignes { table-layout: auto; min-width: 560px; }
:where(.ecran-recueil-apercu) .rec .rec__lignes td { white-space: normal; overflow-wrap: normal; }
:where(.ecran-recueil-apercu) .rec .rec__partie td { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); background: var(--bo-surface-2); }
/* 28/10/2026 (audit P19) : bouton grisé tant que la confirmation d'identité n'est pas cochée. */
:where(.ecran-recueil-apercu) .rec__barre:has(input[name=confirme_identite]:not(:checked)) .adm-btn-principal { opacity: .45; cursor: not-allowed; }
:where(.ecran-recueil-apercu) .rec__barre { position: sticky; bottom: 0; display: flex; gap: var(--bo-esp-3); align-items: center; flex-wrap: wrap; padding: var(--bo-esp-3) var(--bo-esp-4); background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); box-shadow: var(--bo-ombre-flottant); }
/* Anciens style="" de l'écran. */
:where(.ecran-recueil-apercu) .rec__panneau { padding: var(--bo-esp-4); }
:where(.ecran-recueil-apercu) .rec__panneau--serre { padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.ecran-recueil-apercu) .rec h2.rec__sous-titre { margin: var(--bo-esp-3) 0 var(--bo-esp-1); }
:where(.ecran-recueil-apercu) .rec__liste { margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); }
:where(.ecran-recueil-apercu) .rec__col-18 { width: 18%; }
:where(.ecran-recueil-apercu) .rec__col-22 { width: 22%; }
:where(.ecran-recueil-apercu) .rec__col-30 { width: 30%; }
:where(.ecran-recueil-apercu) .rec__col-45 { width: 45%; }
:where(.ecran-recueil-apercu) .rec__col-55 { width: 55%; }
:where(.ecran-recueil-apercu) .rec__cocher { display: flex; gap: var(--bo-esp-2); margin: var(--bo-esp-2) 0 0; }
:where(.ecran-recueil-apercu) .rec__detail.rec__detail--premier { margin-top: 0; padding-top: 0; border-top: 0; }
:where(.ecran-recueil-apercu) .rec__choix.rec__choix--alerte { padding: var(--bo-esp-1) var(--bo-esp-3); background: var(--bo-bloquant-fond); color: var(--bo-bloquant); font-size: var(--bo-taille-aide); }
/* Supports d'un bordereau d'arbitrage (_arbitrage-supports.html.twig). */
:where(.ecran-document) .sup__tete { display: none; }
:where(.ecran-document) .sup__ligne { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) 36px; gap: var(--bo-esp-1); align-items: center; margin-bottom: var(--bo-esp-3); padding-bottom: var(--bo-esp-2); border-bottom: 1px solid var(--bo-trait); }
:where(.ecran-document) .sup__ligne input:first-child { grid-column: 1 / -1; }
:where(.ecran-document) .sup__ajouter { margin-top: var(--bo-esp-1); }

/* Lien vers la version à signer (_vignette-pdf.html.twig, opération et profil) : ancien bloc <style> du partiel (lot 7). */
.vg-pdf { margin: 0; }

/* ======================================================================
   Fiche KYC (connaissance.html.twig) : ex bo-kyc-liste.css (lot 4), fusionnée au lot 7. Bornée à la page par
   :where(.bo-page-connaissance) (classe posée sur <body>, spécificité inchangée). Elle passait après espace-saisie.css :
   le passage en tête de page est vérifié écran par écran (styles calculés identiques). « au total » sous le montant de
   l'anneau : taille des légendes au lieu de 9 unités (moins de 10 px à l'écran).
   ====================================================================== */
:where(.bo-page-connaissance) .kl-resume { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: var(--bo-esp-3); align-items: center; width: 100%; padding: var(--bo-esp-3) var(--bo-esp-4); border: 0; background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; }
:where(.bo-page-connaissance) .kl-resume:hover { background: var(--bo-surface-2); }
:where(.bo-page-connaissance) .kl-resume__ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--bo-rayon-controle); color: var(--bo-surface); }
:where(.bo-page-connaissance) .kl-resume__t { min-width: 0; }
:where(.bo-page-connaissance) .kl-resume__t b { display: block; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.bo-page-connaissance) .kl-resume__t small { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.bo-page-connaissance) .kl-resume__m { text-align: right; }
:where(.bo-page-connaissance) .kl-resume__m b { display: block; font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); white-space: nowrap; }
:where(.bo-page-connaissance) .kl-resume__m small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); white-space: nowrap; }
:where(.bo-page-connaissance) .kl-resume__m .kl-vide { color: var(--bo-trait-champ); }

:where(.bo-page-connaissance) .kl-dlg { position: fixed; inset: 0; margin: auto; height: fit-content; width: min(860px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: var(--bo-rayon-carte); box-shadow: var(--bo-ombre-modale); overflow: hidden; }
:where(.bo-page-connaissance) .kl-dlg::backdrop { background: color-mix(in srgb, var(--bo-bleu-survol) 55%, transparent); backdrop-filter: blur(2px); }
:where(.bo-page-connaissance) .kl-dlg[open] { display: grid; grid-template-columns: 220px minmax(0, 1fr); }
:where(.bo-page-connaissance) .kl-dlg__cote { display: flex; flex-direction: column; align-items: center; gap: var(--bo-esp-3); padding: var(--bo-esp-6) var(--bo-esp-4) var(--bo-esp-5); color: var(--bo-surface); text-align: center; }
:where(.bo-page-connaissance) .kl-dlg--biens .kl-dlg__cote { background: linear-gradient(160deg, var(--bo-bleu), var(--bo-petrole)); }
:where(.bo-page-connaissance) .kl-dlg--placements .kl-dlg__cote { background: linear-gradient(160deg, var(--bo-violet-fonce), var(--bo-violet)); }
:where(.bo-page-connaissance) .kl-dlg--credits .kl-dlg__cote { background: var(--bo-ok); }
:where(.bo-page-connaissance) .kl-dlg__ic { display: grid; place-items: center; width: 78px; height: 78px; border-radius: var(--bo-rayon-pilule); background: color-mix(in srgb, var(--bo-surface) 16%, transparent); }
:where(.bo-page-connaissance) .kl-dlg__nom { font-size: var(--bo-taille-sous-titre); line-height: 1.3; }
:where(.bo-page-connaissance) .kl-suppr { margin-top: auto; padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid color-mix(in srgb, var(--bo-surface) 70%, transparent); border-radius: var(--bo-rayon-controle); background: transparent; color: var(--bo-surface); font: inherit; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.bo-page-connaissance) .kl-suppr:hover { background: color-mix(in srgb, var(--bo-surface) 12%, transparent); }
:where(.bo-page-connaissance) .kl-dlg__corps { display: flex; flex-direction: column; min-width: 0; max-height: calc(100vh - 48px); }
:where(.bo-page-connaissance) .kl-dlg__corps header { display: flex; justify-content: space-between; align-items: center; padding: var(--bo-esp-4) var(--bo-esp-5); border-bottom: 1px solid var(--bo-trait); }
:where(.bo-page-connaissance) .kl-dlg__corps h3 { margin: 0; font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-connaissance) .kl-dlg__corps header .kl-fermer { border: 0; background: none; font-size: var(--bo-taille-chiffre); line-height: 1; color: var(--bo-texte-2); cursor: pointer; }
:where(.bo-page-connaissance) .kl-dlg__champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); padding: var(--bo-esp-4) var(--bo-esp-5); overflow: auto; }
:where(.bo-page-connaissance) .kl-dlg__champs .ec-champ { margin: 0; }
:where(.bo-page-connaissance) .kl-dlg__corps footer { display: flex; justify-content: space-between; align-items: center; padding: var(--bo-esp-3) var(--bo-esp-5); border-top: 1px solid var(--bo-trait); background: var(--bo-surface-2); }
@media (max-width: 700px) { :where(.bo-page-connaissance) .kl-dlg[open] { grid-template-columns: minmax(0, 1fr); } :where(.bo-page-connaissance) .kl-dlg__cote { flex-direction: row; padding: var(--bo-esp-3) var(--bo-esp-4); } :where(.bo-page-connaissance) .kl-dlg__ic { width: 44px; height: 44px; } :where(.bo-page-connaissance) .kl-suppr { margin: 0 0 0 auto; } :where(.bo-page-connaissance) .kl-dlg__champs { grid-template-columns: minmax(0, 1fr); } }

:where(.bo-page-connaissance) .kl-rep { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); }
:where(.bo-page-connaissance) .kl-rep__titre { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-connaissance) .kl-rep__corps { display: grid; grid-template-columns: 1fr; justify-items: center; gap: var(--bo-esp-3); }
:where(.bo-page-connaissance) .kl-rep__corps svg { width: 130px; height: 130px; }
:where(.bo-page-connaissance) .kl-rep__corps ul { width: 100%; }
:where(.bo-page-connaissance) .kl-rep__total { font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-titre); fill: var(--bo-bleu); }
:where(.bo-page-connaissance) .kl-rep__sous { font-size: var(--bo-taille-legende); fill: var(--bo-texte-2); }
:where(.bo-page-connaissance) .kl-rep ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.bo-page-connaissance) .kl-rep li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: var(--bo-esp-2); align-items: center; }
:where(.bo-page-connaissance) .kl-rep li i { width: 10px; height: 10px; border-radius: var(--bo-rayon-controle); }
:where(.bo-page-connaissance) .kl-rep li span { overflow-wrap: anywhere; color: var(--bo-bleu); }
:where(.bo-page-connaissance) .kl-rep li b { color: var(--bo-bleu); }
:where(.bo-page-connaissance) .kl-rep__vide { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-connaissance) .kl-dlg__champs .ec-compl { grid-column: 1 / -1; margin: var(--bo-esp-1) 0 0; }
:where(.bo-page-connaissance) .kl-dlg__champs .ec-compl__corps { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 2px var(--bo-esp-4) var(--bo-esp-1); }
@media (max-width: 700px) { :where(.bo-page-connaissance) .kl-dlg__champs .ec-compl__corps { grid-template-columns: minmax(0, 1fr); } }

/* ======================================================================
   Connaissance client (connaissance.html.twig) : anciens blocs <style> et attributs style="" de l'écran, valeurs ramenées
   aux jetons (lot 4 du style unifié, 28/10/2026). Cette feuille n'est chargée que par cet écran, après espace-saisie.css :
   même ordre de passage que les anciens blocs.
   ====================================================================== */
/* Même saisie que l'espace client (04/10/2026). 16/10/2026 (Julien) : la synthèse ne se met plus à droite, elle comprimait les champs : une seule colonne, synthèse sous la rubrique. */
:where(.bo-page-connaissance) .cc { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; }
/* 27/10/2026 (Julien, recette) : sous 1024 px, l'en-tête et ses quatre boutons ne restent plus fixés en haut (ils
           prenaient près de la moitié d'une fenêtre étroite) : tout l'écran défile, boutons compacts. Au-delà, rien ne change. */
@media (max-width:1023.98px) {
  :where(.bo-page-connaissance) .bo-zone > .flex.h-full.flex-col:has(.cc.ec-zone) { overflow-y: auto; overflow-x: hidden; }
  :where(.bo-page-connaissance) .bo-zone > .flex.h-full.flex-col:has(.cc.ec-zone) > main { flex: none; overflow: visible; min-height: 0; }
  :where(.bo-page-connaissance) .bo-zone > .flex.h-full.flex-col:has(.cc.ec-zone) > .bo-entete { padding-top: var(--bo-esp-3); padding-bottom: var(--bo-esp-2); row-gap: var(--bo-esp-2); }
  :where(.bo-page-connaissance) .bo-zone > .flex.h-full.flex-col:has(.cc.ec-zone) .bo-entete__actions { gap: var(--bo-esp-1); max-width: 100%; }
  :where(.bo-page-connaissance) .bo-zone > .flex.h-full.flex-col:has(.cc.ec-zone) .bo-entete__actions .adm-btn { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
  :where(.bo-page-connaissance) .cc .frise, :where(.bo-page-connaissance) .cc .pq-frise { position: static; }
}
/* Boutons « Continuer » : bouton principal de la maquette (dégradé), plus de bleu nuit quasi noir. */
:where(.bo-page-connaissance) .bo-cadre .cc .ec-btn.principal { border: 0 !important; background: var(--bo-degrade) !important; color: var(--bo-surface) !important; box-shadow: none !important; filter: none !important; }
:where(.bo-page-connaissance) .bo-cadre .cc .ec-btn.principal:hover { background: var(--bo-degrade-survol) !important; }
:where(.bo-page-connaissance) .cc .ec-main h1 { font-size: var(--bo-taille-titre); }
:where(.bo-page-connaissance) .cc .ec-cabinet { display: inline-block; margin-left: var(--bo-esp-2); vertical-align: middle; font-family: var(--bo-police); font-size: var(--bo-taille-legende); letter-spacing: .1em; text-transform: uppercase; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
:where(.bo-page-connaissance) .cc .ec-tuiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--bo-esp-3); }
@media (max-width:700px) {
  :where(.bo-page-connaissance) .cc .ec-tuiles { grid-template-columns: minmax(0,1fr); }
}
:where(.bo-page-connaissance) .cc .ec-tuile { display: flex; justify-content: space-between; gap: var(--bo-esp-2); align-items: center; padding: var(--bo-esp-3) var(--bo-esp-4); text-decoration: none; }
:where(.bo-page-connaissance) .cc .ec-tuile b { color: var(--bo-bleu); }
:where(.bo-page-connaissance) .cc .ec-alerte { margin: var(--bo-esp-3) 0 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); }
:where(.bo-page-connaissance) .cc .ec-pas { display: flex; justify-content: space-between; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.bo-page-connaissance) .cc .ec-pas a { color: var(--bo-bleu); text-decoration: none; }
/* 16/10/2026 (Julien, « gros pavé, peu visible ») : la synthèse en cartes lisibles, les deux totaux en tête. */
:where(.bo-page-connaissance) .cc .ec-synth { padding: var(--bo-esp-4) var(--bo-esp-5); }
:where(.bo-page-connaissance) .cc .ec-synth h2 { font-size: var(--bo-taille-titre); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-connaissance) .cc .ec-kpi { grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: var(--bo-esp-3); }
:where(.bo-page-connaissance) .cc .ec-kpi div { background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); padding: var(--bo-esp-3) var(--bo-esp-4); box-shadow: none; }
:where(.bo-page-connaissance) .cc .ec-kpi span { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); margin-bottom: 2px; }
:where(.bo-page-connaissance) .cc .ec-kpi b { font-size: var(--bo-taille-titre); line-height: 1.2; letter-spacing: -.01em; }
:where(.bo-page-connaissance) .cc .ec-kpi div:nth-child(-n+2) { background: var(--bo-degrade); border: 0; }
:where(.bo-page-connaissance) .cc .ec-kpi div:nth-child(-n+2) span { color: color-mix(in srgb, var(--bo-surface) 85%, transparent); }
:where(.bo-page-connaissance) .cc .ec-kpi div:nth-child(-n+2) b { color: var(--bo-surface); font-size: var(--bo-taille-chiffre); }
/* Avis d'imposition : dernière lecture enregistrée. */
:where(.bo-page-connaissance) .avis__memo { margin: var(--bo-esp-2) 0 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-ok-fond); color: var(--bo-ok); font-size: var(--bo-taille-aide); }
/* Suggestions d'adresse (ban-adresse.js). */
:where(.bo-page-connaissance) .ban-liste { position: absolute; z-index: 30; left: 0; right: 0; top: 100%; margin: var(--bo-esp-1) 0 0; padding: var(--bo-esp-1); list-style: none; background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); box-shadow: var(--bo-ombre-flottant); max-height: 240px; overflow: auto; }
:where(.bo-page-connaissance) .ban-liste li { padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); cursor: pointer; }
:where(.bo-page-connaissance) .ban-liste li:hover, :where(.bo-page-connaissance) .ban-liste li[aria-selected=true] { background: var(--bo-violet-fond); }
/* Valeur des biens (DVF, bo-dvf.js). */
:where(.bo-page-connaissance) .dvf-zone { grid-column: 1/-1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1) var(--bo-esp-3); margin-top: 2px; padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px dashed var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
:where(.bo-page-connaissance) .dvf-aide { flex: 1 1 320px; margin: 0; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-connaissance) .dvf-btn { flex: none; padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px solid var(--bo-bleu); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.bo-page-connaissance) .dvf-btn:hover:not(:disabled) { background: var(--bo-petrole); color: var(--bo-surface); }
:where(.bo-page-connaissance) .dvf-btn:disabled { opacity: .6; }
:where(.bo-page-connaissance) .dvf-zone .dvf-msg { flex: 1 1 100%; }
:where(.bo-page-connaissance) .dvf-msg { grid-column: 1/-1; margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); }
:where(.bo-page-connaissance) .dvf-msg.ok { color: var(--bo-ok); }
:where(.bo-page-connaissance) .dvf-msg.ko { color: var(--bo-bloquant); }
/* Bandeaux en tête de l'écran (mises à jour envoyées par le client, incohérences) et notes de la saisie. */
:where(.bo-page-connaissance) .kc-alerte { margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-connaissance) .kc-alerte__liste { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); }
:where(.bo-page-connaissance) .cc .ec-note.kc-foyer { margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-connaissance) .cc .ec-note.kc-m0 { margin: 0; }
:where(.bo-page-connaissance) .cc .ec-alerte.ec-alerte--bloquant { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-connaissance) .cc .ec-alerte.ec-alerte--ok { background: var(--bo-ok-fond); color: var(--bo-ok); }

/* ===== bo-proposition.css ===== */
/*
 * Proposition chiffrée et présentation des produits (lot 5 du style unifié, 28/10/2026) : écran d'édition
 * (presentation-edition.html.twig), liste des propositions et écran d'envoi. Règles reprises des blocs <style> et des
 * attributs style="" de ces gabarits, valeurs ramenées aux jetons (bo-jetons.css).
 *
 * Placée en fin de paquet bo-tete.css, comme bo-dossier-ecrans.css : même ordre de passage que les anciens blocs
 * <style> (après les feuilles de tête, avant bo-fin.css). Chaque écran pose sur sa zone une classe « ecran-… » (bloc
 * largeur de _ecran.html.twig) ; :where(.ecran-…) borne les règles à cet écran sans changer leur priorité.
 * Le PDF de la proposition (presentation-pdf.html.twig) a ses propres styles, en pt et mm : il n'est pas concerné.
 */

/* ======================================================================
   Édition de la proposition (presentation-edition.html.twig)
   ====================================================================== */
:where(.ecran-proposition) .pr-grille { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--bo-esp-3); }
:where(.ecran-proposition) .pr-grille label { display: block; }
:where(.ecran-proposition) .pr-table { width: 100%; border-collapse: separate; border-spacing: 0 6px; }
:where(.ecran-proposition) .pr-table th { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); text-align: left; padding: 0 var(--bo-esp-2); }
:where(.ecran-proposition) .pr-table td { padding: 0 var(--bo-esp-2); vertical-align: top; }
:where(.ecran-proposition) .pr-table td:nth-of-type(4), :where(.ecran-proposition) .pr-table td:nth-of-type(5) { width: 120px; }
:where(.ecran-proposition) .pr-table td:nth-of-type(5) { width: 90px; }
:where(.ecran-proposition) .pr-table td:last-child { width: 44px; }
:where(.ecran-proposition) .pr-table .adm-champ { width: 100%; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2) .adm-champ + .adm-champ { margin-top: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-table [hidden] { display: none !important; }
:where(.ecran-proposition) .pr-gestion { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); margin-top: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-fonds { width: 100%; margin: 2px 0 0; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1.5px dashed var(--bo-violet); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-violet); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.ecran-proposition) .pr-fonds:hover { background: var(--bo-violet-fond); }
:where(.ecran-proposition) [data-pr-objectif-autre][hidden] { display: none; }
:where(.ecran-proposition) .pr-scpi { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-entete { display: flex; flex-wrap: wrap; gap: var(--bo-esp-3) var(--bo-esp-4); align-items: flex-end; margin-bottom: var(--bo-esp-2); }
:where(.ecran-proposition) .pa-entete label.adm-label { display: flex; flex-direction: column; gap: var(--bo-esp-1); max-width: 240px; }
:where(.ecran-proposition) .pa-reinv-tout { display: flex; gap: var(--bo-esp-1); align-items: center; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); padding-bottom: var(--bo-esp-2); }
:where(.ecran-proposition) .pa-reinv-tout input, :where(.ecran-proposition) [data-pa-reinv] { accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pr-options { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-violet-fond); border: 1px solid var(--bo-trait); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-options[hidden] { display: none; }
:where(.ecran-proposition) .pr-options__titre { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-violet); }
:where(.ecran-proposition) .pr-options__vp { display: flex; align-items: center; gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-options__vp .adm-champ { width: 110px; text-align: right; padding: var(--bo-esp-1) var(--bo-esp-2); margin: 0; }
:where(.ecran-proposition) .pr-options__vp small { color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-options .pr-case { display: flex; gap: var(--bo-esp-1); align-items: center; font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-options .pr-case[hidden] { display: none; }
:where(.ecran-proposition) .pr-ajouts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-ajouts .pr-fonds { width: auto; margin: 0; }
:where(.ecran-proposition) .pr-scpi .pr-case { grid-column: 1/-1; display: flex; gap: var(--bo-esp-1); align-items: center; }
:where(.ecran-proposition) .pr-scpi .adm-champ { margin-top: 2px; }
/* Octobre 2026 (lot P) : sections numérotées et récapitulatif collant. */
:where(.ecran-proposition) .pr-mise { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: var(--bo-esp-4); align-items: start; }
:where(.ecran-proposition) .pr-colonne { display: flex; flex-direction: column; gap: var(--bo-esp-4); min-width: 0; }
:where(.ecran-proposition) .pr-section { padding: var(--bo-esp-5) var(--bo-esp-5); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); box-shadow: none; }
:where(.ecran-proposition) .pr-section__tete { display: flex; gap: var(--bo-esp-3); align-items: flex-start; margin: 0 0 var(--bo-esp-4); padding: 0 0 var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); }
:where(.ecran-proposition) .pr-section__num { flex: 0 0 30px; height: 30px; border-radius: var(--bo-rayon-pilule); display: flex; align-items: center; justify-content: center; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-surface); background: var(--bo-degrade); }
:where(.ecran-proposition) .pr-section__titre { margin: 0; font-family: var(--bo-police); font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-texte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-section__aide { margin: 2px 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-viager { grid-column: span 1; align-self: center; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-repere { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; margin: var(--bo-esp-1) 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-repere .adm-btn { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
/* Lot S : plusieurs fonds dans un contrat = une carte par contrat. La
           première ligne porte le contrat, les suivantes s'y rattachent. */
:where(.ecran-proposition) .pr-table tbody tr.pr-ligne--tete-groupe { margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom-style: dashed; }
:where(.ecran-proposition) .pr-table tbody tr.pr-ligne--suite { margin-top: 0; border-top: 0; border-radius: 0; }
:where(.ecran-proposition) .pr-table tbody tr.pr-ligne--suite.pr-ligne--fin { border-radius: 0 0 var(--bo-rayon-carte) var(--bo-rayon-carte); }
:where(.ecran-proposition) .pr-table tbody tr.pr-ligne--suite:not(.pr-ligne--fin) { margin-bottom: 0; border-bottom-style: dashed; }
:where(.ecran-proposition) .pr-meme { display: none; padding: var(--bo-esp-2) 0 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-meme::before { content: "\21B3  "; }
:where(.ecran-proposition) .pr-ligne--suite .pr-produit select { display: none; }
:where(.ecran-proposition) .pr-ligne--suite .pr-meme { display: block; }
:where(.ecran-proposition) .pr-support { display: flex; flex-direction: column; gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-recherche { position: relative; }
:where(.ecran-proposition) .pr-resultats { position: absolute; z-index: 20; left: 0; right: -160px; top: calc(100% + 4px); max-height: 300px; overflow-y: auto; margin: 0; padding: var(--bo-esp-1) var(--bo-esp-2); list-style: none; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
:where(.ecran-proposition) .pr-resultats li { padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); cursor: pointer; font-size: var(--bo-taille-aide); line-height: 1.35; }
:where(.ecran-proposition) .pr-resultats li:hover, :where(.ecran-proposition) .pr-resultats li.is-actif { background: var(--bo-violet-fond); }
:where(.ecran-proposition) .pr-resultats small { display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.ecran-proposition) .pr-resultats .vide { cursor: default; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-fonds-info { font-size: var(--bo-taille-legende); line-height: 1.35; color: var(--bo-violet); }
:where(.ecran-proposition) .pr-table td.pr-pied { order: 7; grid-column: 1/-1; }
:where(.ecran-proposition) .pr-table td.pr-pied[hidden] { display: none; }
:where(.ecran-proposition) .pr-groupe { grid-column: 1/-1; order: 0; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-violet); }
:where(.ecran-proposition) .pr-mode { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-mode summary { cursor: pointer; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-sous-titre { margin: var(--bo-esp-4) 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-recap { position: sticky; top: 12px; display: flex; flex-direction: column; gap: var(--bo-esp-3); }
:where(.ecran-proposition) .pr-recap__carte { padding: var(--bo-esp-4) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
:where(.ecran-proposition) .pr-recap__carte:first-child { background: var(--bo-degrade-menu); border-color: transparent; color: var(--bo-surface); }
:where(.ecran-proposition) .pr-recap__sur { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .14em; text-transform: uppercase; color: var(--bo-violet); }
:where(.ecran-proposition) .pr-recap__carte:first-child .pr-recap__sur { color: var(--bo-violet-fond); }
:where(.ecran-proposition) .pr-recap__total { margin: 0 0 var(--bo-esp-1); font-family: var(--bo-police); font-size: var(--bo-taille-ecran); line-height: 1.1; }
:where(.ecran-proposition) .pr-recap__total small { display: block; font-family: var(--bo-police); font-size: var(--bo-taille-legende); color: color-mix(in srgb, var(--bo-surface) 70%, transparent); }
:where(.ecran-proposition) .pr-recap__ligne { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: color-mix(in srgb, var(--bo-surface) 80%, transparent); }
/* 29/10/2026 (Julien) : teintes des graphiques (--bo-graph-*) posées sur un rail blanc, pour tenir 3:1 contre leur fond ; 2 px de blanc séparent deux enveloppes voisines. */
:where(.ecran-proposition) .pr-recap__barre { display: flex; gap: 2px; height: 14px; margin: var(--bo-esp-3) 0 var(--bo-esp-2); padding: 2px; border-radius: var(--bo-rayon-pilule); overflow: hidden; background: var(--bo-surface); }
:where(.ecran-proposition) .pr-recap__barre i { display: block; height: 100%; }
:where(.ecran-proposition) .pr-recap__env { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-recap__env li { display: flex; justify-content: space-between; gap: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-recap__env b { font-weight: var(--bo-graisse-forte); }
/* Pastille de légende : carré plein de la teinte de son segment (--c, lue dans --bo-graph-n), liseré blanc fin dehors : jamais une case vide. */
:where(.ecran-proposition) .pr-recap__env span::before { content: ""; display: inline-block; width: 16px; height: 8px; margin-right: var(--bo-esp-2); border: 0; border-radius: var(--bo-rayon-pilule); background: var(--c); outline: 2px solid var(--bo-surface); outline-offset: 0; vertical-align: 1px; }
:where(.ecran-proposition) .pr-alertes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-alertes li { position: relative; padding: var(--bo-esp-2) var(--bo-esp-3) var(--bo-esp-2) var(--bo-esp-6); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); line-height: 1.4; }
:where(.ecran-proposition) .pr-alertes li::before { position: absolute; left: 10px; top: 8px; font-weight: var(--bo-graisse-titre); }
:where(.ecran-proposition) .pr-alertes .ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.ecran-proposition) .pr-alertes .ok::before { content: "✓"; }
:where(.ecran-proposition) .pr-alertes .att { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-proposition) .pr-alertes .att::before { content: "!"; }
:where(.ecran-proposition) .pr-alertes .info { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-alertes .info::before { content: "i"; font-style: italic; }
:where(.ecran-proposition) .pr-envois { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-envois a { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-envois span { display: block; color: var(--bo-texte-2); overflow-wrap: anywhere; }
:where(.ecran-proposition) .pr-recap__actions { display: flex; flex-direction: column; gap: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-mise { grid-template-columns: minmax(0,1fr) 330px; }
:where(.ecran-proposition) .pr-recap { position: sticky; top: 96px; align-self: start; max-height: calc(100vh - 108px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 2px; }
:where(.ecran-proposition) .pr-vignette { padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.ecran-proposition) .pr-vignette__cadre { position: relative; height: 250px; overflow: hidden; border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); }
:where(.ecran-proposition) .pr-vignette__cadre iframe { position: absolute; left: 0; top: 0; width: 840px; height: 1260px; border: 0; transform: scale(.35); transform-origin: 0 0; }
:where(.ecran-proposition) .pr-vignette__aide { margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-legende); line-height: 1.45; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-vignette__aide a { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-recap__actions .adm-btn { justify-content: center; text-align: center; }
@media (max-width:1180px) {
  :where(.ecran-proposition) .pr-mise { grid-template-columns: minmax(0,1fr); }
  :where(.ecran-proposition) .pr-recap { position: static; }
}
/* Lignes d'allocation en cartes : produit, support, montant et frais sur la
           première ligne, options du contrat ou de la SCPI en dessous. */
:where(.ecran-proposition) .pr-table { border-spacing: 0; }
:where(.ecran-proposition) .pr-table thead tr, :where(.ecran-proposition) .pr-table tbody tr { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1.2fr) 120px 84px 40px; gap: var(--bo-esp-2); align-items: start; }
:where(.ecran-proposition) .pr-table thead th { padding: 0 2px; }
:where(.ecran-proposition) .pr-table thead th:nth-child(1) { order: 1; }
:where(.ecran-proposition) .pr-table thead th:nth-child(3) { order: 2; }
:where(.ecran-proposition) .pr-table thead th:nth-child(4) { order: 3; }
:where(.ecran-proposition) .pr-table thead th:nth-child(5) { order: 4; }
:where(.ecran-proposition) .pr-table thead th:nth-child(6) { order: 5; }
:where(.ecran-proposition) .pr-table thead th:nth-child(2) { display: none; }
:where(.ecran-proposition) .pr-table tbody tr { margin: 0 0 var(--bo-esp-2); padding: var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); }
:where(.ecran-proposition) .pr-table td { padding: 0 !important; width: auto !important; }
:where(.ecran-proposition) .pr-table td:nth-of-type(1) { order: 1; }
:where(.ecran-proposition) .pr-table td:nth-of-type(3) { order: 2; }
:where(.ecran-proposition) .pr-table td:nth-of-type(4) { order: 3; }
:where(.ecran-proposition) .pr-table td:nth-of-type(5) { order: 4; }
:where(.ecran-proposition) .pr-table td:nth-of-type(6) { order: 5; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2) { order: 6; grid-column: 1/-1; display: grid; grid-template-columns: minmax(140px,190px) minmax(0,1fr); gap: var(--bo-esp-2); align-items: end; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2) > * { margin: 0 !important; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2) .pr-scpi { grid-column: auto; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2):has(> [data-pr-gestion][hidden]) > * { grid-column: 1/-1; }
:where(.ecran-proposition) .pr-table td:nth-of-type(2):not(:has(> :not([hidden]))) { display: none; }
:where(.ecran-proposition) .pr-table thead th:nth-child(4), :where(.ecran-proposition) .pr-table thead th:nth-child(5) { text-align: right; }
@media (max-width:900px) {
  :where(.ecran-proposition) .pr-grille { grid-template-columns: 1fr; }
  :where(.ecran-proposition) .pr-table thead { display: none; }
  :where(.ecran-proposition) .pr-table tbody tr { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  :where(.ecran-proposition) .pr-table td:nth-of-type(1), :where(.ecran-proposition) .pr-table td:nth-of-type(3) { grid-column: 1/-1; }
}
/* Parcours guidé (lot X) : cinq étapes, état calculé en direct. */
:where(.ecran-proposition) .pr-parcours { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-2) 0; list-style: none; position: sticky; top: 0; z-index: 30; background: var(--bo-fond); box-shadow: none; }
:where(.ecran-proposition) .pr-parcours a { padding: var(--bo-esp-2) var(--bo-esp-3); }
:where(.ecran-proposition) .pr-section { scroll-margin-top: 100px; }
:where(.ecran-proposition) .pr-parcours a { display: flex; gap: var(--bo-esp-2); align-items: flex-start; height: 100%; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); text-decoration: none; color: var(--bo-texte); }
:where(.ecran-proposition) .pr-parcours a:hover { border-color: var(--bo-violet); }
:where(.ecran-proposition) .pr-parcours__num { position: relative; flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: var(--bo-rayon-pilule); background: var(--bo-degrade); color: var(--bo-surface); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-titre); }
:where(.ecran-proposition) .pr-parcours__num::after { position: absolute; right: -4px; bottom: -3px; width: 13px; height: 13px; border-radius: var(--bo-rayon-pilule); border: 2px solid var(--bo-surface); font-size: var(--bo-taille-legende); line-height: 9px; text-align: center; font-weight: var(--bo-graisse-titre); }
:where(.ecran-proposition) .pr-parcours b { display: block; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-parcours small { display: block; margin-top: 2px; font-size: var(--bo-taille-legende); line-height: 1.35; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-parcours [data-etat="ok"] .pr-parcours__num::after { content: "✓"; background: var(--bo-ok); color: var(--bo-surface); }
:where(.ecran-proposition) .pr-parcours [data-etat="att"] .pr-parcours__num::after { content: "!"; background: var(--bo-attention); color: var(--bo-surface); }
:where(.ecran-proposition) .pr-parcours [data-etat="ok"] small { color: var(--bo-ok); }
:where(.ecran-proposition) .pr-section__client { margin: var(--bo-esp-1) 0 0; padding: var(--bo-esp-1) var(--bo-esp-3); border-left: 3px solid var(--bo-violet); background: var(--bo-violet-fond); border-radius: 0 var(--bo-rayon-controle) var(--bo-rayon-controle) 0; font-size: var(--bo-taille-legende); line-height: 1.45; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-section__client b { color: var(--bo-texte); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-section { scroll-margin-top: 100px; }
/* Lot Y : type de document, produits présentés, pages et textes. */
:where(.ecran-proposition) .pr-type { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-2); margin: 0; padding: 0; border: 0; }
:where(.ecran-proposition) .pr-type legend { margin-bottom: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-type label { display: flex; gap: var(--bo-esp-2); align-items: flex-start; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); cursor: pointer; }
:where(.ecran-proposition) .pr-type label:has(input:checked) { border-color: var(--bo-violet); box-shadow: var(--bo-halo-champ); }
:where(.ecran-proposition) .pr-type b { display: block; font-size: var(--bo-taille-texte); color: var(--bo-texte); }
:where(.ecran-proposition) .pr-type small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); margin-top: 2px; }
:where(.ecran-proposition) .pr-type input { margin-top: 3px; accent-color: var(--bo-violet); }
:where(.ecran-proposition) [data-type="produits"] .pr-alloc { display: none !important; }
:where(.ecran-proposition) [data-type="allocation"] .pr-prod { display: none !important; }
:where(.ecran-proposition) .pr-produits { display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: var(--bo-esp-3) var(--bo-esp-5); }
:where(.ecran-proposition) .pr-produits__groupe { display: flex; flex-direction: column; gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-produit { display: flex; gap: var(--bo-esp-2); align-items: flex-start; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); cursor: pointer; background: var(--bo-surface-2); }
:where(.ecran-proposition) .pr-produit:has(input:checked) { border-color: var(--bo-violet); background: var(--bo-violet-fond); }
:where(.ecran-proposition) .pr-produit input { margin-top: 3px; accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pr-produit b { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-produit small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-produit--off { opacity: .65; }
:where(.ecran-proposition) .pr-pages { display: grid; grid-template-columns: repeat(auto-fill,minmax(230px,1fr)); gap: var(--bo-esp-1) var(--bo-esp-4); margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-pages label { display: flex; gap: var(--bo-esp-2); align-items: center; cursor: pointer; }
:where(.ecran-proposition) .pr-pages input { accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pr-retouches { display: flex; flex-direction: column; gap: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-retouche { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) var(--bo-esp-3); background: var(--bo-surface-2); }
:where(.ecran-proposition) .pr-retouche summary { cursor: pointer; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-retouche summary em { font-weight: var(--bo-graisse-texte); color: var(--bo-violet); }
:where(.ecran-proposition) .pr-retouche textarea { margin: var(--bo-esp-2) 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); line-height: 1.5; }
:where(.ecran-proposition) .pr-ucs { display: none; margin: -2px 0 var(--bo-esp-1) var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border-left: 2px solid var(--bo-violet); background: var(--bo-surface); border-radius: 0 var(--bo-rayon-controle) var(--bo-rayon-controle) 0; }
:where(.ecran-proposition) .pr-produit:has(input:checked) + .pr-ucs { display: block; }
:where(.ecran-proposition) .pr-alloc-ind { margin: var(--bo-esp-2) 0; padding: var(--bo-esp-2); border: 1px dashed var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
:where(.ecran-proposition) .pr-alloc-ind__grille { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-alloc-ind__grille label { display: flex; flex-direction: column; gap: 2px; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-alloc-ind__grille .adm-champ { padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); margin: 0; }
:where(.ecran-proposition) .pr-alloc-ind__st { grid-column: 1/-1; }
:where(.ecran-proposition) .pr-ucs__titre { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-ucs__titre small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); margin-left: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-uc { display: flex; flex-direction: column; gap: var(--bo-esp-1); padding: var(--bo-esp-2); margin-bottom: var(--bo-esp-1); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
:where(.ecran-proposition) .pr-uc .adm-champ { font-size: var(--bo-taille-aide); padding: var(--bo-esp-1) var(--bo-esp-2); }
:where(.ecran-proposition) .pr-uc__l1 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) 26px; gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-uc__l1 > input:first-child { grid-column: 1/3; }
:where(.ecran-proposition) .pr-uc__l1 > .pr-uc__suppr { grid-column: 3; grid-row: 1; }
:where(.ecran-proposition) .pr-uc__l2 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-uc__l2 > input:first-child { grid-column: 1/-1; }
:where(.ecran-proposition) .pr-uc__suppr { border: 0; background: none; font-size: var(--bo-taille-titre); color: var(--bo-bloquant); cursor: pointer; }
:where(.ecran-proposition) .pr-ucs__outils { display: flex; flex-direction: column; gap: var(--bo-esp-1); }
:where(.ecran-proposition) .pr-ucs__recherche { position: relative; }
:where(.ecran-proposition) .pr-ucs__res { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin: 2px 0 0; padding: var(--bo-esp-1); list-style: none; background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); box-shadow: var(--bo-ombre-flottant); max-height: 260px; overflow: auto; }
:where(.ecran-proposition) .pr-ucs__res li { padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); cursor: pointer; font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-ucs__res li:hover { background: var(--bo-violet-fond); }
:where(.ecran-proposition) .pr-ucs__res b { display: block; font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pr-ucs__res small { color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-ucs__res li.vide { cursor: default; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-produits { grid-template-columns: repeat(auto-fill,minmax(380px,1fr)) !important; }
/* Lot Z3 : écran allégé. L'aide se déplie à la demande. */
:where(.ecran-proposition) .pr-section { padding: var(--bo-esp-4) var(--bo-esp-5); border-radius: var(--bo-rayon-carte) !important; }
:where(.ecran-proposition) .pr-section__titre { font-size: var(--bo-taille-titre) !important; }
:where(.ecran-proposition) .pr-colonne { gap: var(--bo-esp-3); }
:where(.ecran-proposition) .pr-grille { gap: var(--bo-esp-2) var(--bo-esp-3); }
:where(.ecran-proposition) .pr-section .adm-label { font-size: var(--bo-taille-legende); }
:where(.ecran-proposition) [data-aide="off"] .pr-section__client, :where(.ecran-proposition) [data-aide="off"] .pr-aide, :where(.ecran-proposition) [data-aide="off"] .pr-mode, :where(.ecran-proposition) [data-aide="off"] .pr-section__aide, :where(.ecran-proposition) [data-aide="off"] .pr-section > p.adm-aide, :where(.ecran-proposition) [data-aide="off"] .pr-section > div > p.adm-aide { display: none !important; }
:where(.ecran-proposition) .pr-type { position: relative; }
:where(.ecran-proposition) .pr-non-enregistre { margin: 2px 0 0; padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-legende); line-height: 1.4; }
:where(.ecran-proposition) .pr-non-enregistre[hidden] { display: none; }
:where(.ecran-proposition) .pr-lien { border: 0; background: none; padding: 0; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); cursor: pointer; font-size: inherit; }
:where(.ecran-proposition) .pr-aide-btn { position: absolute; right: 0; top: -26px; border: 0; background: none; color: var(--bo-violet); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); cursor: pointer; padding: 2px var(--bo-esp-1); }
:where(.ecran-proposition) .pr-details { margin-top: var(--bo-esp-2); border-top: 1px solid var(--bo-trait); padding-top: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-details summary { cursor: pointer; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pr-details summary small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); margin-left: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-details .pr-grille { margin-top: var(--bo-esp-2); }
@media (max-width:900px) {
  :where(.ecran-proposition) .pr-parcours { grid-template-columns: 1fr 1fr; }
  :where(.ecran-proposition) .pr-type { grid-template-columns: 1fr; }
}
/* Lot Z13 : une seule colonne, bandeau récapitulatif, barre d'actions en bas. */
:where(.ecran-proposition) .pr-mise { display: block; }
:where(.ecran-proposition) .pr-colonne { max-width: 1180px; }
:where(.ecran-proposition) .pr-bandeau { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-5); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-degrade-menu); color: var(--bo-surface); }
:where(.ecran-proposition) .pr-bandeau__chiffres { display: flex; flex-direction: column; min-width: 150px; }
:where(.ecran-proposition) .pr-bandeau__sur { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .14em; text-transform: uppercase; color: var(--bo-violet-fond); }
:where(.ecran-proposition) .pr-bandeau__chiffres b { font-family: var(--bo-police); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-chiffre); line-height: 1.15; }
:where(.ecran-proposition) .pr-bandeau__chiffres small { font-size: var(--bo-taille-legende); color: color-mix(in srgb, var(--bo-surface) 75%, transparent); }
:where(.ecran-proposition) .pr-bandeau__repart { flex: 1 1 320px; min-width: 0; }
:where(.ecran-proposition) .pr-bandeau__repart .pr-recap__barre { margin: 0 0 var(--bo-esp-1); }
:where(.ecran-proposition) .pr-bandeau__repart .pr-recap__env { flex-direction: row; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-4); }
:where(.ecran-proposition) .pr-bandeau__repart small { display: block; margin-top: 3px; font-size: var(--bo-taille-legende); color: color-mix(in srgb, var(--bo-surface) 70%, transparent); }
:where(.ecran-proposition) .pr-bandeau__controles, :where(.ecran-proposition) .pr-bandeau__envois { position: relative; font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-bandeau__controles summary, :where(.ecran-proposition) .pr-bandeau__envois summary { cursor: pointer; list-style: none; padding: var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: color-mix(in srgb, var(--bo-surface) 14%, transparent); font-weight: var(--bo-graisse-forte); white-space: nowrap; }
:where(.ecran-proposition) .pr-bandeau__controles[data-etat="att"] summary { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-proposition) .pr-bandeau__controles summary::-webkit-details-marker, :where(.ecran-proposition) .pr-bandeau__envois summary::-webkit-details-marker { display: none; }
:where(.ecran-proposition) .pr-bandeau__controles > ul, :where(.ecran-proposition) .pr-bandeau__envois > ul { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: 380px; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
:where(.ecran-proposition) .pr-bandeau[aria-label] { scroll-margin-top: 100px; }
:where(.ecran-proposition) .pr-barre { position: sticky; bottom: 0; z-index: 35; display: flex; align-items: center; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte) var(--bo-rayon-carte) 0 0; background: var(--bo-surface); box-shadow: var(--bo-ombre-flottant); }
:where(.ecran-proposition) .pr-barre__envoi { order: 1; }
:where(.ecran-proposition) .pr-barre__apercu:hover { background: var(--bo-fond); }
:where(.ecran-proposition) .pr-barre__etat { order: 2; flex: 1; display: flex; justify-content: flex-end; align-items: center; gap: var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-barre__etat .pr-non-enregistre { margin: 0; }
:where(.ecran-proposition) .pr-barre__apercu { order: 3; background: var(--bo-surface); border: 1px solid var(--bo-bleu) !important; color: var(--bo-bleu) !important; }
:where(.ecran-proposition) .pr-barre__enr { order: 4; min-width: 130px; justify-content: center; }
:where(.ecran-proposition) .pr-barre .adm-btn { padding: var(--bo-esp-2) var(--bo-esp-4); font-size: var(--bo-taille-texte); }
/* Choix des solutions retenues. */
:where(.ecran-proposition) .pa-choix { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); }
:where(.ecran-proposition) .pa-choix__lib { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); margin-right: var(--bo-esp-1); }
:where(.ecran-proposition) .pa-choix button { display: flex; align-items: center; gap: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-proposition) .pa-choix button::before { content: ""; width: 14px; height: 14px; border-radius: var(--bo-rayon-controle); border: 1.5px solid var(--bo-trait-champ); background: var(--bo-surface); }
:where(.ecran-proposition) .pa-choix button[aria-pressed="true"] { border-color: var(--bo-violet); background: var(--bo-violet-fond); }
:where(.ecran-proposition) .pa-choix button[aria-pressed="true"]::before { border-color: var(--bo-violet); background: var(--bo-violet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
:where(.ecran-proposition) .pa-choix__autre { font-weight: var(--bo-graisse-forte) !important; color: var(--bo-texte-2) !important; }
:where(.ecran-proposition) .pa-vide { margin: var(--bo-esp-1) 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-vide[hidden] { display: none; }
:where(.ecran-proposition) .pa-blocs { display: flex; flex-direction: column; gap: var(--bo-esp-3); }
:where(.ecran-proposition) .pa-bloc { padding: var(--bo-esp-3) var(--bo-esp-4) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-left: 3px solid var(--bo-violet); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
:where(.ecran-proposition) .pa-bloc__tete { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2) var(--bo-esp-4); margin: 0 0 var(--bo-esp-2); }
:where(.ecran-proposition) .pa-bloc__tete h3 { margin: 0; font-family: var(--bo-police); font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-texte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pa-bloc__contrat { display: flex; align-items: center; gap: var(--bo-esp-2); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-bloc__contrat .adm-champ { margin: 0; padding: var(--bo-esp-1) var(--bo-esp-3); min-width: 240px; }
:where(.ecran-proposition) .pa-bloc__nom { font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
:where(.ecran-proposition) .pa-bloc__total { margin-left: auto; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pa-grille { display: grid; grid-template-columns: 96px minmax(0,1fr) 112px 52px 78px 118px 92px 26px; gap: var(--bo-esp-1) var(--bo-esp-2); align-items: center; }
:where(.ecran-proposition) .pa-grille--scpi { grid-template-columns: 22px minmax(0,1fr) 112px 52px 78px 118px 70px; }
:where(.ecran-proposition) .pa-grille--libre { grid-template-columns: minmax(0,1fr) minmax(0,.7fr) 112px 52px 78px 26px; }
:where(.ecran-proposition) .pa-grille--parts { grid-template-columns: 96px minmax(0,1fr) 96px 86px 104px 26px; }
:where(.ecran-proposition) .pa-grille--entete { padding: 0 var(--bo-esp-2) var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-ligne { padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); border: 1px solid var(--bo-trait); margin-bottom: var(--bo-esp-1); }
:where(.ecran-proposition) .pa-ligne .adm-champ { margin: 0; padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); width: 100%; }
:where(.ecran-proposition) .pa-montant { text-align: right; }
:where(.ecran-proposition) .pa-part { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); text-align: right; }
/* Contre-audit 21/10/2026 (D-UX-09) : couleur de texte à 4,5:1 au moins sur son fond. */
:where(.ecran-proposition) .pa-sans { text-align: center; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-suffixe { position: relative; display: block; }
:where(.ecran-proposition) .pa-suffixe .adm-champ { padding-right: var(--bo-esp-6); text-align: right; }
:where(.ecran-proposition) .pa-suffixe i { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); pointer-events: none; }
:where(.ecran-proposition) .pa-suffixe input[name$="[vp]"] { padding-right: var(--bo-esp-7) !important; }
:where(.ecran-proposition) .pa-suffixe input[data-pa-gestion], :where(.ecran-proposition) .pr-uc .pa-suffixe input { padding-right: var(--bo-esp-6) !important; }
:where(.ecran-proposition) .pa-type { justify-self: start; padding: 3px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); white-space: nowrap; }
:where(.ecran-proposition) .pa-type--fe { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.ecran-proposition) .pa-type--uc { background: var(--bo-violet-fond); color: var(--bo-violet); }
:where(.ecran-proposition) .pa-type--st { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-proposition) .pa-nom { min-width: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte); }
:where(.ecran-proposition) .pa-nom b { display: block; font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition) .pa-nom small, :where(.ecran-proposition) .pa-info { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-info { color: var(--bo-violet); margin-top: 2px; }
:where(.ecran-proposition) .pa-info[hidden] { display: none; }
:where(.ecran-proposition) .pa-recherche { position: relative; }
:where(.ecran-proposition) .pa-recherche .pr-resultats { right: -200px; }
:where(.ecran-proposition) .pa-suppr { border: 0; background: none; font-size: var(--bo-taille-titre); line-height: 1; color: var(--bo-bloquant); cursor: pointer; padding: 2px; }
:where(.ecran-proposition) .pa-ajouts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-ajouts button { padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px dashed var(--bo-violet); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-violet); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.ecran-proposition) .pa-ajouts button:hover { background: var(--bo-violet-fond); }
:where(.ecran-proposition) .pa-scpi.is-off { background: transparent; border-color: transparent; }
:where(.ecran-proposition) .pa-scpi.is-off .adm-champ, :where(.ecran-proposition) .pa-scpi.is-off .pa-part, :where(.ecran-proposition) .pa-scpi.is-off .pa-reinv, :where(.ecran-proposition) .pa-scpi.is-off .pa-suffixe i { visibility: hidden; }
:where(.ecran-proposition) .pa-scpi.is-off .pa-nom { color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-scpi[hidden] { display: none; }
:where(.ecran-proposition) .pa-scpi input[type=checkbox], :where(.ecran-proposition) .pa-reinv input, :where(.ecran-proposition) .pa-tout input { accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pa-reinv { display: flex; align-items: center; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pa-repartir { display: flex; align-items: center; gap: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-repartir .adm-champ { width: 120px; margin: 0; padding: var(--bo-esp-1) var(--bo-esp-2); text-align: right; }
:where(.ecran-proposition) .pa-option { display: flex; align-items: center; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); cursor: pointer; }
:where(.ecran-proposition) .pa-option input { accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pa-option:has(input:checked) { border-color: var(--bo-violet); background: var(--bo-violet-fond); }
/* Lot Z25 (Julien, 02/10/2026) : l'en-tête des colonnes SCPI reste visible
           quand on descend la liste ; la liste des SCPI a la même forme dans les
           deux types de proposition. */
:where(.ecran-proposition) .pa-bloc--scpi > .pa-grille--entete, :where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] > .pp-entete { position: sticky; top: calc(var(--pr-colle,0px) - 4px); z-index: 6; margin: 0; padding: var(--bo-esp-2) var(--bo-esp-2) var(--bo-esp-1); background: var(--bo-surface-2); border-bottom: 1px solid var(--bo-trait); }
:where(.ecran-proposition) .pp-entete { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit b { display: block; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit small { display: block; margin: 0; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit:has(input:checked) { border-color: var(--bo-trait); background: var(--bo-surface); }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit:not(:has(input:checked)) { background: transparent; border-color: transparent; }
:where(.ecran-proposition) .pp-bloc[data-pbloc="scpi"] .pr-produit:not(:has(input:checked)) b { color: var(--bo-texte-2); }
:where(.ecran-proposition) .pa-bloc--scpi .pa-scpi.is-off .pa-nom b { color: var(--bo-texte-2); }
:where(.ecran-proposition) .pr-bandeau__controles { margin-left: auto; }
:where(.ecran-proposition) .pr-recap__noms li { display: inline-flex; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: color-mix(in srgb, var(--bo-surface) 14%, transparent); font-size: var(--bo-taille-legende); }
:where(.ecran-proposition) .pp-bloc .pr-produit { display: flex; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-1); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); cursor: pointer; }
:where(.ecran-proposition) .pp-bloc .pr-produit:has(input:checked) { border-color: var(--bo-violet); background: var(--bo-surface); }
:where(.ecran-proposition) .pp-bloc .pr-produit input { margin: 0; accent-color: var(--bo-violet); }
:where(.ecran-proposition) .pp-bloc .pr-produit b { display: inline; font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pp-bloc .pr-produit small { display: inline; margin-left: var(--bo-esp-2); }
:where(.ecran-proposition) .pp-bloc .pr-produit[hidden] { display: none; }
:where(.ecran-proposition) .pp-bloc .pr-ucs { margin: -2px 0 var(--bo-esp-2) var(--bo-esp-4); padding: var(--bo-esp-2) var(--bo-esp-3); border-left: 2px solid var(--bo-violet); background: var(--bo-surface-2); border-radius: 0 var(--bo-rayon-controle) var(--bo-rayon-controle) 0; }
:where(.ecran-proposition) .pr-uc__grille { display: grid; grid-template-columns: 150px minmax(0,1.4fr) 128px minmax(0,1fr) 62px 92px 26px; gap: var(--bo-esp-1) var(--bo-esp-2); align-items: center; }
:where(.ecran-proposition) .pr-uc.pa-ligne { display: flex; flex-direction: column; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-2); }
:where(.ecran-proposition) .pr-uc .adm-champ { margin: 0; padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); width: 100%; }
:where(.ecran-proposition) .pr-uc__desc { font-size: var(--bo-taille-legende) !important; min-height: 0; resize: vertical; }
:where(.ecran-proposition) .pr-ucs__outils { flex-direction: row !important; align-items: center; gap: var(--bo-esp-2) !important; margin: var(--bo-esp-1) 0 var(--bo-esp-2); }
:where(.ecran-proposition) .pr-ucs__recherche { flex: 1; }
:where(.ecran-proposition) .pa-ajouts__btn { flex: none; padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px dashed var(--bo-violet); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-violet); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:where(.ecran-proposition) .pr-alloc-ind__grille .pa-suffixe .adm-champ { text-align: right; }
@media (max-width:1100px) {
  :where(.ecran-proposition) .pr-uc__grille { grid-template-columns: 120px minmax(0,1fr) 110px minmax(0,1fr) 54px 84px 24px; }
}
@media (max-width:900px) {
  :where(.ecran-proposition) .pr-uc__grille { grid-template-columns: 1fr 1fr; }
}
:where(.ecran-proposition) .pa-tout { display: flex; align-items: center; gap: var(--bo-esp-1); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.ecran-proposition) .pa-lien { border: 0; background: none; padding: 0; color: var(--bo-violet); font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-legende); cursor: pointer; }
:where(.ecran-proposition) .pa-voir { margin-top: var(--bo-esp-1); }
:where(.ecran-proposition) .pa-voir[hidden] { display: none; }
:where(.ecran-proposition) .pa-alerte { color: var(--bo-attention); background: var(--bo-attention-fond); padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); }
@media (max-width:1100px) {
  :where(.ecran-proposition) .pa-grille { grid-template-columns: 90px minmax(0,1fr) 100px 46px 72px 108px 84px 24px; }
  :where(.ecran-proposition) .pa-grille--scpi { grid-template-columns: 22px minmax(0,1fr) 100px 46px 72px 108px 62px; }
}
@media (max-width:1100px) {
  :where(.ecran-proposition) .pa-grille.pa-grille--parts { grid-template-columns: 90px minmax(0,1fr) 90px 80px 98px 24px; }
}
@media (max-width:900px) {
  :where(.ecran-proposition) .pa-grille--entete { display: none; }
  :where(.ecran-proposition) .pa-grille, :where(.ecran-proposition) .pa-grille--scpi, :where(.ecran-proposition) .pa-grille--libre { grid-template-columns: 1fr 1fr; }
  :where(.ecran-proposition) .pa-nom { grid-column: 1/-1; }
  :where(.ecran-proposition) .pr-bandeau__controles > ul { left: 0; right: auto; width: min(380px,80vw); }
}

/* Barre de répartition du récapitulatif : largeur et couleur posées par le script (style="--p: …; --c: …"). */
:where(.ecran-proposition) .pr-recap__barre i { width: var(--p); background: var(--c); border-radius: var(--bo-rayon-pilule); }
/* Anciens style="" de l'écran. */
.ecran-proposition .adm-aide.pr-ecart { display: block; color: var(--bo-attention); }
.ecran-proposition .bo-panel.pr-score { padding: var(--bo-esp-3) var(--bo-esp-5); margin-bottom: var(--bo-esp-3); }
:where(.ecran-proposition) .pr-score > summary { cursor: pointer; font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.ecran-proposition .adm-aide.pr-score__aide { margin: var(--bo-esp-2) 0; }
:where(.ecran-proposition) .pr-score__liste { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-5); margin: 0; font-size: var(--bo-taille-aide); }
:where(.ecran-proposition) .pr-score__liste dt { color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.ecran-proposition) .pr-score__liste dd { margin: 0; color: var(--bo-texte); }
.ecran-proposition .bo-panel.pr-rattacher { padding: var(--bo-esp-3) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); }
.ecran-proposition .bo-panel.pr-rattacher--ambigu { background: var(--bo-attention-fond); }
:where(.ecran-proposition) .pr-rattacher__texte { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); }
.ecran-proposition .adm-champ.pr-rattacher__choix { flex: 1; min-width: 240px; margin: 0; }
:where(.ecran-proposition) .pr-grille > .pr-large { grid-column: 1/-1; }
.ecran-proposition .adm-champ[data-pr-objectif-autre] { margin-top: var(--bo-esp-2); }
.ecran-proposition .bo-alerte.pr-alerte { margin: var(--bo-esp-2) 0 0; }
.ecran-proposition .pr-bloc-suite { margin: var(--bo-esp-2) 0 0; }
:where(.ecran-proposition) .pr-profil-fiche { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); margin: var(--bo-esp-2) 0 0; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-info-fond); font-size: var(--bo-taille-aide); }
.ecran-proposition .adm-aide.pr-sans-profil { margin: var(--bo-esp-2) 0 0; }
:where(.ecran-proposition) .pr-hypothese { display: block; margin-top: var(--bo-esp-3); max-width: 520px; }
:where(.ecran-proposition) .pr-texte-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-proposition) .pr-textes-types { font-size: var(--bo-taille-aide); }
.ecran-proposition .adm-aide.pr-texte-aide { margin: var(--bo-esp-1) 0 var(--bo-esp-2); }

/* ======================================================================
   Envoi de la proposition (presentation-envoi.html.twig)
   ====================================================================== */
:where(.ecran-proposition-envoi) .env-grille { display: grid; grid-template-columns: minmax(0,400px) minmax(0,1fr); gap: var(--bo-esp-5); align-items: start; }
:where(.ecran-proposition-envoi) .env-apercu { position: sticky; top: 12px; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-neutre-fond); overflow: hidden; }
:where(.ecran-proposition-envoi) .env-apercu iframe { display: block; width: 100%; height: 1050px; border: 0; }
:where(.ecran-proposition-envoi) .env-apercu__entete { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); background: var(--bo-surface); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-proposition-envoi) .env-apercu__entete b { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-proposition-envoi) .env-pj { margin-left: auto; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: var(--bo-violet-fond); color: var(--bo-violet); font-weight: var(--bo-graisse-forte); }
@media (max-width:980px) {
  :where(.ecran-proposition-envoi) .env-grille { grid-template-columns: minmax(0,1fr); }
  :where(.ecran-proposition-envoi) .env-apercu { position: static; }
}


/* ======================================================================
   Liste des propositions (presentations.html.twig)
   ====================================================================== */
/* Anciens style="" de l'écran. Le bloc <style> de la liste visait des cellules .pres-actions qui n'existaient plus : retiré sans effet. */
:where(.ecran-propositions) .cl-act { cursor: pointer; }
:where(.ecran-propositions) .pres-montant { color: var(--bo-bleu); }
.ecran-propositions .adm-aide.pres-vide { margin: 0 0 var(--bo-esp-3); }
.ecran-propositions .cl td.pres-vide-ligne { text-align: center; padding: var(--bo-esp-5) var(--bo-esp-6); }

/* ===== bo-cabinet-ecrans.css ===== */
/*
 * Écrans du cabinet (lot 5 du style unifié, 28/10/2026) : produits (catalogue, fiche contrat et SCPI, catalogue UC, mise à
 * jour des fiches), frais annuels et évaluation annuelle de l'adéquation (activité CIF), investissement d'un client,
 * conformité du cabinet (synthèse, classement de la vigilance en lot, constat PPE, recueils, modèle du recueil, barème du
 * profil investisseur). Règles reprises des blocs <style> et des attributs style="" de ces gabarits, valeurs ramenées aux
 * jetons (bo-jetons.css).
 *
 * Placée en fin de paquet bo-tete.css, comme bo-dossier-ecrans.css. Chaque écran pose sur sa zone une classe « ecran-… »
 * (bloc largeur de _ecran.html.twig) ; :where(.ecran-…) borne les règles à cet écran sans changer leur priorité. Quand
 * l'ancien style="" passait devant une règle de composant (bo-fin.css), la règle garde la classe de l'écran sans :where().
 * Les documents imprimés (évaluation annuelle, récapitulatif des frais, recueil imprimé) ne sont pas concernés.
 */

/* ======================================================================
   Fiche produit, contrat ou SCPI (produit.html.twig)
   La fiche charge espace-saisie.css dans le corps (après ce paquet) : les règles qui remplacent un ancien style="" posé
   sur une classe de cette feuille (.ec-note, .ec-btn) gardent la classe de l'écran et deux classes, pour passer devant.
   ====================================================================== */
/* Résultat de la lecture du DIC (bo-dic-lecture.js). */
:where(.ecran-produit) .fp-lecture { margin-top: var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-aide); }
:where(.ecran-produit) .fp-lecture p { margin: 0 0 var(--bo-esp-1); }
:where(.ecran-produit) .fp-lecture.ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.ecran-produit) .fp-lecture.ko { background: var(--bo-attention-fond); color: var(--bo-attention); }
/* Anciens style="" de l'écran. */
.ecran-produit .fp-aide.fp-aide--tete { margin: -3px 0 var(--bo-esp-3); }
.ecran-produit .fp-lire { margin: var(--bo-esp-2) 0 0; }
.ecran-produit .fp-alerte.fp-alerte--suite { margin: var(--bo-esp-2) 0 0; }
.ecran-produit .fp-alerte.fp-alerte--haut { margin-top: 0; }
.ecran-produit .fp-depot.fp-date-dic { margin-top: var(--bo-esp-2); }
.ecran-produit .fp-aide.fp-aide--bloc { display: block; margin-top: var(--bo-esp-1); }
.ecran-produit .fp-aide.fp-aide--erreur { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }
.ecran-produit .fp-sans-dic { margin-top: var(--bo-esp-3); }
.ecran-produit .ec-btn.fp-sans-dic__btn { margin-left: var(--bo-esp-2); }
.ecran-produit .ec-note.fp-note-barre { margin: 0 auto 0 0; align-self: center; }
.ecran-produit .fp-suivi { margin-top: var(--bo-esp-3); }
:where(.ecran-produit) .fp-suivi summary { cursor: pointer; font-weight: var(--bo-graisse-forte); }
.ecran-produit .ec-note.fp-note-statut { margin: 0 0 var(--bo-esp-2); }
.ecran-produit .ec-note.fp-note-liste { margin: var(--bo-esp-2) 0; padding-left: var(--bo-esp-4); }
.ecran-produit .ec-note.fp-note-texte { margin: var(--bo-esp-2) 0; }
.ecran-produit .fp-historique { margin-top: var(--bo-esp-2); }
.ecran-produit .fp-date-form { display: flex; gap: var(--bo-esp-2); align-items: end; margin-bottom: var(--bo-esp-2); }
.ecran-produit .ec-note.fp-note-etat { margin-bottom: var(--bo-esp-2); }
.ecran-produit table.adm-table.fp-table { width: 100%; font-size: var(--bo-taille-aide); }
.ecran-produit table.adm-table.fp-table--etat { margin-top: var(--bo-esp-1); }
:where(.ecran-produit) .fp-col-cle { width: 30%; }
:where(.ecran-produit) .fp-casse { overflow-wrap: anywhere; }

/* ======================================================================
   Fiches réglementaires : liste (produits.html.twig)
   ====================================================================== */
:where(.ecran-produits) .fp-dicligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-3); align-items: center; margin: 0 0 var(--bo-esp-3); }
:where(.ecran-produits) .fp-dicligne small { flex: 1 1 320px; color: var(--bo-texte-2); font-size: var(--bo-taille-aide); }

/* ======================================================================
   Catalogue UC (catalogue-uc.html.twig) : anciens style="" de l'écran
   ====================================================================== */
.ecran-catalogue-uc .bo-panel.uc-apercu { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); }
.ecran-catalogue-uc .adm-label.uc-titre { margin: 0 0 var(--bo-esp-1); }
.ecran-catalogue-uc .adm-aide.uc-bilan { margin: var(--bo-esp-1) 0 var(--bo-esp-3); padding-left: var(--bo-esp-4); }
.ecran-catalogue-uc .adm-table.uc-changements { margin-bottom: var(--bo-esp-3); }
:where(.ecran-catalogue-uc) .uc-boutons { display: flex; gap: var(--bo-esp-2); }
.ecran-catalogue-uc .adm-carte.uc-depot { max-width: 640px; margin-bottom: var(--bo-esp-4); }
.ecran-catalogue-uc .bo-panel.uc-hypotheses { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-4); }
.ecran-catalogue-uc .adm-aide.uc-intro { margin: 0 0 var(--bo-esp-3); }
:where(.ecran-catalogue-uc) .uc-col-valeur { width: 120px; }

/* ======================================================================
   Mise à jour des fiches depuis un fichier (produits-maj.html.twig)
   ====================================================================== */
:where(.ecran-produits-maj) .pm-depot { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.ecran-produits-maj) .pm-depot input { flex: 1 1 280px; }
:where(.ecran-produits-maj) .pm-table th, :where(.ecran-produits-maj) .pm-table td { text-align: left; padding: var(--bo-esp-2) var(--bo-esp-3); vertical-align: top; font-size: var(--bo-taille-aide); }
:where(.ecran-produits-maj) .pm-table td small { display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.ecran-produits-maj) .pm-table { width: 100%; table-layout: auto; }
:where(.ecran-produits-maj) .pm-table td { white-space: normal; }
:where(.ecran-produits-maj) .pm-table td div+div { margin-top: var(--bo-esp-1); }
:where(.ecran-produits-maj) .pm-table td:nth-child(4), :where(.ecran-produits-maj) .pm-table td:nth-child(5) { min-width: 220px; max-width: 420px; overflow-wrap: anywhere; }
:where(.ecran-produits-maj) .pm-table tr.pm-remplir td:first-child { background-image: linear-gradient(var(--bo-ok), var(--bo-ok)); background-size: 3px 100%; background-repeat: no-repeat; }
:where(.ecran-produits-maj) .pm-table tr.pm-modifier td:first-child { background-image: linear-gradient(var(--bo-attention), var(--bo-attention)); background-size: 3px 100%; background-repeat: no-repeat; }
/* Anciens style="" de l'écran. Le filet de gauche des lignes (vert : à remplir, orange : à modifier) est dessiné en fond. */
.ecran-produits-maj .bo-panel.pm { padding: var(--bo-esp-5); }
.ecran-produits-maj .adm-aide.pm-derniere { margin: 0 0 var(--bo-esp-3); }
.ecran-produits-maj .fp-alerte.pm-haut, .ecran-produits-maj .adm-aide.pm-haut { margin-top: 0; }
:where(.ecran-produits-maj) .pm-rien { margin: 0; }
.ecran-produits-maj .barre.pm-barre { margin-top: var(--bo-esp-3); }

/* ======================================================================
   Adéquation annuelle : frais et commissions de l'année (frais-annuels.html.twig)
   ====================================================================== */
:where(.ecran-frais, .ecran-frais-client) .fa .bo-panel { padding: var(--bo-esp-4) var(--bo-esp-5); background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); }
:where(.ecran-frais, .ecran-frais-client) .fa .adm-table th { text-align: left; padding: var(--bo-esp-1) var(--bo-esp-2); font-weight: var(--bo-graisse-forte); }
:where(.ecran-frais, .ecran-frais-client) .fa .adm-table td { padding: var(--bo-esp-2); border-top: 1px solid var(--bo-trait); vertical-align: top; }
:where(.ecran-frais, .ecran-frais-client) .fa .adm-label { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); }
:where(.ecran-frais, .ecran-frais-client) .fa .adm-aide { margin: 0 0 var(--bo-esp-2); }
/* Anciens style="" de l'écran. Le choix de l'exercice est dans l'en-tête (hors de la zone de l'écran). */
.fa-exercice { display: flex; gap: var(--bo-esp-2); align-items: center; margin: 0; }
.bo-entete .fa-exercice label { margin: 0; color: var(--bo-bleu); }
.bo-entete .fa-exercice select { padding: var(--bo-esp-1) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); }
:where(.ecran-frais) .fa { display: grid; gap: var(--bo-esp-4); max-width: 1100px; }
:where(.ecran-frais) .fa-import { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-frais) .fa-imports { margin-top: var(--bo-esp-2); }
:where(.ecran-frais) .fa-imports > summary { cursor: pointer; }
.fa table.adm-table.fa-table { width: 100%; font-size: var(--bo-taille-aide); }
.fa table.adm-table.fa-table--suite { margin-top: var(--bo-esp-1); }
.fa table.adm-table.fa-table--apres { margin-top: var(--bo-esp-2); }
.fa .adm-table .fa-droite { text-align: right; }
:where(.ecran-frais) .fa-rapprocher { display: flex; gap: var(--bo-esp-2); margin: 0; }
:where(.ecran-frais) .fa-rapprocher select { max-width: 340px; }
:where(.ecran-frais) .fa-rapprocher--creer { margin-top: var(--bo-esp-1); }
.ecran-frais .adm-champ.fa-courriel { max-width: 220px; width: auto; }
:where(.ecran-frais) .fa-absentes { margin: 0 0 var(--bo-esp-2) var(--bo-esp-4); font-size: var(--bo-taille-aide); }
.fa .fa-sans-marge { margin: 0; }
.ecran-frais .adm-btn.fa-btn-suite { margin-top: var(--bo-esp-2); }
:where(.ecran-frais) .fa-ajout-produit { display: flex; flex-wrap: wrap; align-items: end; gap: var(--bo-esp-2); margin: var(--bo-esp-3) 0 0; }
:where(.ecran-frais) .fa-ajout-produit input { min-width: 260px; }
.ecran-frais .adm-aide.fa-aide-suite { margin-top: var(--bo-esp-2); }
.ecran-frais .adm-aide.fa-aide-proche { margin-top: var(--bo-esp-1); }
.ecran-frais .adm-btn.fa-retirer { padding: 2px var(--bo-esp-2); }
.ecran-frais b.fa-attention { color: var(--bo-attention); }
:where(.ecran-frais) .fa-option { display: block; margin-top: var(--bo-esp-2); }
:where(.ecran-frais) .fa-preparer { margin: 0 0 var(--bo-esp-3); }
:where(.ecran-frais) .fa-cocher { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-2); }
.ecran-frais .pastille.fa-a-maj { color: var(--bo-attention); }
:where(.ecran-frais) .fa-archive { margin: var(--bo-esp-3) 0 0; }
/* Déclaration d'adéquation CIF d'un client (frais-annuels-client.html.twig) : mêmes règles .fa que la liste, ci-dessus. */
:where(.ecran-frais-client) .fa { display: grid; gap: var(--bo-esp-4); max-width: 1000px; }
:where(.ecran-frais-client) .fa-produit { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); }
:where(.ecran-frais-client) .fa-saisie { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: var(--bo-esp-2); align-items: end; }
:where(.ecran-frais-client) .fa-saisie input, :where(.ecran-frais-client) .fa-saisie select { width: 100%; }
.ecran-frais-client .adm-label.fa-envois-titre { margin-top: var(--bo-esp-3); font-size: var(--bo-taille-texte); }
:where(.ecran-frais-client) .fa-lignes > summary { cursor: pointer; }

/* ======================================================================
   Investissement d'un client (contact-investissement.html.twig)
   ====================================================================== */
:where(.ecran-investissement) .inv-form { max-width: 720px; }
:where(.ecran-investissement) .inv-grille { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-2) var(--bo-esp-4); }
:where(.ecran-investissement) .inv-grille .pleine { grid-column: 1/-1; }
:where(.ecran-investissement) .inv-grille h2 { grid-column: 1/-1; margin: var(--bo-esp-2) 0 0; }
/* Anciens style="" de l'écran. */
.ecran-investissement .bo-panel.inv-form { padding: var(--bo-esp-4) var(--bo-esp-5); }
.ecran-investissement table.adm-table.inv-table { width: 100%; font-size: var(--bo-taille-aide); }
.ecran-investissement .adm-aide.inv-origine { margin: 0; }
:where(.ecran-investissement) .inv-boutons { display: flex; gap: var(--bo-esp-2); align-items: center; margin-top: var(--bo-esp-4); }
.ecran-investissement .adm-aide.inv-conservation { margin-top: var(--bo-esp-4); }

/* ======================================================================
   Investissements depuis le fichier de commissions (frais-investissements.html.twig)
   ====================================================================== */
.ecran-frais-investissements .bo-panel.fi-panneau { padding: var(--bo-esp-4) var(--bo-esp-5); }
.ecran-frais-investissements .adm-aide.fi-intro { margin-top: 0; }
:where(.ecran-frais-investissements) .fi-creer { margin: var(--bo-esp-3) 0 0; }

/* ======================================================================
   Conformité du cabinet : synthèse et listes par action (conformite.html.twig)
   bo-conformite.css est liée dans le corps de ces écrans, après ce paquet : les règles qui remplacent un ancien
   style="" gardent la classe de l'écran pour passer devant.
   ====================================================================== */
:where(.ecran-conformite) .cf-revue { margin: var(--bo-esp-4) 0 0; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); font-size: var(--bo-taille-texte); }
:where(.ecran-conformite) .cf-revue summary { cursor: pointer; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-conformite) .cf-revue__champs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--bo-esp-2); margin: var(--bo-esp-2) 0; }
@media (max-width:800px) {
  :where(.ecran-conformite) .cf-revue__champs { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
/* Lien « Classer la vigilance en lot » sous la ligne Vigilance : aligné sur le texte de la ligne (icône de 28 px, écart). */
.ecran-conformite .cfo-syn__bloc a.cfo-syn__lot { grid-template-columns: 28px minmax(0,1fr); padding: 0 var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-bleu); text-decoration: underline; }
.ecran-conformite .cfo-syn__bloc a.cfo-syn__lot::before { content: ""; }

/* ======================================================================
   Classer la vigilance en lot (conformite-vigilance-lot.html.twig) et constat PPE du cabinet (conformite-constat-ppe.html.twig)
   ====================================================================== */
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl { max-width: 1180px; padding: var(--bo-esp-4) var(--bo-esp-5) var(--bo-esp-6); }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__avis { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-texte); line-height: 1.5; }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__avis p { margin: 0; }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__avis p+p { margin-top: var(--bo-esp-1); }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__filtres { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; margin: 0 0 var(--bo-esp-3); }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__filtres .cfo-filtre { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl table { width: 100%; }
:where(.ecran-vigilance-lot) .vl td, :where(.ecran-vigilance-lot) .vl th { vertical-align: top; }
:where(.ecran-vigilance-lot) .vl__raison { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.ecran-vigilance-lot) .vl__niv { display: inline-block; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-ok-fond); color: var(--bo-ok); white-space: nowrap; }
:where(.ecran-vigilance-lot) .vl__niv--renforcee { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.ecran-vigilance-lot, .ecran-constat-ppe) .vl__pied { display: flex; flex-wrap: wrap; gap: var(--bo-esp-3); align-items: center; margin: var(--bo-esp-3) 0 0; }
:where(.ecran-vigilance-lot) .vl h2 { margin: var(--bo-esp-5) 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
.ecran-vigilance-lot .adm-aide.vl-intro { margin-top: 0; }

/* ======================================================================
   Recueils (recueils.html.twig) : anciens style="" de l'écran
   ====================================================================== */
.ecran-recueils .bo-conv__table th.rc-col-client { text-align: left; font-weight: var(--bo-graisse-forte); }
.ecran-recueils .bo-conv__table th.rc-client { text-align: left; }
.ecran-recueils .rc-sans-fiche { color: var(--bo-attention); }
:where(.ecran-recueils) .rc-avancement { display: inline-flex; align-items: center; gap: var(--bo-esp-2); }
.ecran-recueils .bo-jauge.rc-jauge { display: inline-block; width: 90px; }
.ecran-recueils .adm-aide.rc-repris { margin: 0; }
.ecran-recueils .bo-conv__table td.rc-vide { text-align: center; }
.ecran-recueils .bo-conv__table td.rc-actions { white-space: nowrap; }

/* ======================================================================
   Modèle du recueil (recueil-modele.html.twig) : anciens style="" de l'écran
   ====================================================================== */
.ecran-recueil-modele .bo-panel.rm-apercu { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); }
.ecran-recueil-modele .adm-label.rm-titre { margin: 0 0 var(--bo-esp-1); }
.ecran-recueil-modele .adm-aide.rm-bilan { margin: var(--bo-esp-1) 0 var(--bo-esp-3); padding-left: var(--bo-esp-4); }
:where(.ecran-recueil-modele) .rm-boutons { display: flex; gap: var(--bo-esp-2); }
.ecran-recueil-modele .adm-carte.rm-depot { max-width: 640px; margin-bottom: var(--bo-esp-4); }
.ecran-recueil-modele .adm-btn.rm-btn-suite { margin-top: var(--bo-esp-2); }
:where(.ecran-recueil-modele) .rm-revenir { margin-top: var(--bo-esp-3); }
.ecran-recueil-modele .bo-panel.rm-service { padding: var(--bo-esp-4) var(--bo-esp-5); }
.ecran-recueil-modele .adm-aide.rm-date { font-weight: var(--bo-graisse-texte); }
.ecran-recueil-modele .adm-aide.rm-sections { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); }

/* ======================================================================
   Profil investisseur et ESG : barème (profil-bareme.html.twig)
   ====================================================================== */
:where(.ecran-profil-bareme) .pb { display: grid; gap: var(--bo-esp-4); max-width: 1080px; }
:where(.ecran-profil-bareme) .pb table { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.ecran-profil-bareme) .pb th, :where(.ecran-profil-bareme) .pb td { text-align: left; padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); vertical-align: top; }
:where(.ecran-profil-bareme) .pb thead th { font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); background: var(--bo-surface-2); }
:where(.ecran-profil-bareme) .pb .pts { white-space: nowrap; text-align: right; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.ecran-profil-bareme) .pb h2 { margin: 0 0 var(--bo-esp-2); }
:where(.ecran-profil-bareme) .pb .q { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); font-size: var(--bo-taille-texte); }
:where(.ecran-profil-bareme) .pb .q small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.ecran-profil-bareme) .pb .note { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); margin: var(--bo-esp-1) 0 0; }
/* Anciens style="" de l'écran. Le lien du fichier technique est dans l'en-tête (hors de la zone de l'écran). */
.bo-entete a.pb-technique { font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
.ecran-profil-bareme .bo-panel.pb-panneau { padding: var(--bo-esp-4) var(--bo-esp-5); }
.ecran-profil-bareme .bo-panel.pb-panneau--apercu { border-left: 4px solid var(--bo-violet); }
:where(.ecran-profil-bareme) .pb-texte { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); }
:where(.ecran-profil-bareme) .pb-texte--version { margin-bottom: var(--bo-esp-1); }
:where(.ecran-profil-bareme) .pb-ligne { margin: 0; font-size: var(--bo-taille-aide); }
:where(.ecran-profil-bareme) .pb-boutons { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
.ecran-profil-bareme .pb .q.pb-q-espace { margin-top: var(--bo-esp-4); }
:where(.ecran-profil-bareme) .pb-doux { color: var(--bo-texte-2); }
:where(.ecran-profil-bareme) .pb-limite { color: var(--bo-attention); }
:where(.ecran-profil-bareme) .pb-depot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-2); }
:where(.ecran-profil-bareme) .pb-revenir { margin-top: var(--bo-esp-2); }

/* ===== bo-gestion.css ===== */
/*
 * Écrans de gestion (lot 6 du style unifié, 29/10/2026) : messagerie, réglages, comptes, corbeille, documents types,
 * investissements, registres, technique, administration et écrans Twig du site internet. Règles reprises des blocs
 * <style> de ces gabarits, valeurs ramenées aux jetons (bo-jetons.css).
 *
 * Placée en fin de paquet bo-tete.css, là où se trouvaient les blocs (après les feuilles de tête, avant bo-fin.css) :
 * l'ordre de la cascade ne change pas. Chaque gabarit pose sur <body> la classe de sa page (bloc « page » de
 * base.html.twig, par exemple bo-page-reglages) ; :where(.bo-page-…) borne les règles à cette page sans changer leur
 * priorité. Les gabarits partiels (_liste-styles, _sante, _conversion, _mails-volets) ont leur propre classe, posée par
 * chaque écran qui les inclut.
 */

/* ===== _conversion.html.twig ===== */
:where(.bo-page-conversion) .cv-synth { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: var(--bo-esp-2); padding: var(--bo-esp-3) var(--bo-esp-5) var(--bo-esp-1); }
:where(.bo-page-conversion) .cv-synth div { background: var(--bo-surface-2); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) var(--bo-esp-3); }
:where(.bo-page-conversion) .cv-synth span { display: block; font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-conversion) .cv-synth b { display: block; font-family: var(--bo-police); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-titre); color: var(--bo-bleu); line-height: 1.2; margin-top: 2px; }
:where(.bo-page-conversion) .cv-synth .cv-taux b { color: var(--bo-violet); }
:where(.bo-page-conversion) .cv-synth small { display: none; }
:where(.bo-page-conversion) .cv-synth .cv-sur { border: 1px solid var(--bo-trait); background: var(--bo-surface-2); }
:where(.bo-page-conversion) .cv-table { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-texte); }
:where(.bo-page-conversion) .cv-table th, :where(.bo-page-conversion) .cv-table td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-neutre-fond); text-align: right; white-space: nowrap; }
:where(.bo-page-conversion) .cv-table thead th { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-conversion) .cv-table th[scope=row], :where(.bo-page-conversion) .cv-table thead th:first-child { text-align: left; }
:where(.bo-page-conversion) .cv-table tbody tr.cv-actif th[scope=row] { background-image: linear-gradient(var(--bo-violet), var(--bo-violet)); background-size: 3px 100%; background-repeat: no-repeat; }
:where(.bo-page-conversion) .cv-page { font-family: ui-monospace,Menlo,monospace; font-size: var(--bo-taille-aide); color: var(--bo-bleu); display: block; max-width: 340px; overflow: hidden; text-overflow: ellipsis; }
:where(.bo-page-conversion) .cv-vues { display: flex; align-items: center; justify-content: flex-end; gap: var(--bo-esp-2); }
:where(.bo-page-conversion) .cv-barre { width: 90px; height: 6px; border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); overflow: hidden; }
:where(.bo-page-conversion) .cv-barre i { display: block; height: 100%; background: var(--bo-degrade); }
:where(.bo-page-conversion) .cv-zero { color: var(--bo-texte-2); }
:where(.bo-page-conversion) .cv-num { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-conversion) .cv-pill { display: inline-block; min-width: 52px; text-align: center; border-radius: var(--bo-rayon-pilule); padding: 2px var(--bo-esp-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-conversion) .cv-pill--fort { background: var(--bo-violet-fond); color: var(--bo-violet); }
:where(.bo-page-conversion) .cv-pill--moyen { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.bo-page-conversion) .cv-pill--nul { color: var(--bo-texte-2); }
:where(.bo-page-conversion) .cv-table tfoot th, :where(.bo-page-conversion) .cv-table tfoot td { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); border-bottom: 0; background: var(--bo-surface-2); }
:where(.bo-page-conversion) .cv-detail { border-top: 1px solid var(--bo-neutre-fond); margin-top: var(--bo-esp-3); }
:where(.bo-page-conversion) .cv-detail > summary { cursor: pointer; padding: var(--bo-esp-3) var(--bo-esp-5); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-conversion) .cv-detail > summary small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); margin-left: var(--bo-esp-2); }
@media (max-width:900px) { :where(.bo-page-conversion) .cv-synth { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { :where(.bo-page-conversion) .cv-barre { display: none; } }

/* ===== _liste-styles.html.twig ===== */
:where(.bo-page-liste-styles) .leads-table { table-layout: fixed; width: 100%; border-collapse: collapse; }
:where(.bo-page-liste-styles) .leads-table thead { background: var(--bo-fond); }
:where(.bo-page-liste-styles) .leads-table th { padding: var(--bo-esp-2) var(--bo-esp-4); text-align: left; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-liste-styles) .leads-table td { padding: var(--bo-esp-2) var(--bo-esp-4); vertical-align: top; overflow-wrap: anywhere; border-top: 1px solid var(--bo-trait); }
:where(.bo-page-liste-styles) .liste-nom { display: block; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); text-decoration: none; }
:where(.bo-page-liste-styles) a.liste-nom:hover { color: var(--bo-violet); }
:where(.bo-page-liste-styles) .liste-doux { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); text-decoration: none; }
:where(.bo-page-liste-styles) a.liste-doux:hover { color: var(--bo-violet); }
:where(.bo-page-liste-styles) .liste-lien { display: block; font-size: var(--bo-taille-aide); color: var(--bo-bleu); text-decoration: none; }
:where(.bo-page-liste-styles) a.liste-lien:hover { color: var(--bo-violet); }
:where(.bo-page-liste-styles) .pastille { display: inline-block; margin: 0 var(--bo-esp-1) var(--bo-esp-1) 0; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); white-space: nowrap; }
:where(.bo-page-liste-styles) .pastille--vert { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-liste-styles) .pastille--violet { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
:where(.bo-page-liste-styles) .pastille--gris { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-liste-styles) .pastille--bleu { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.bo-page-liste-styles) .pastille--ambre { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-liste-styles) .pastille--rouge { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-liste-styles) .leads-actions__grille { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-1); }
:where(.bo-page-liste-styles) .leads-actions__grille .adm-btn { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-legende); text-align: center; line-height: 1.25; }
:where(.bo-page-liste-styles) .leads-actions__grille .pleine { grid-column: 1/-1; }
:where(.bo-page-liste-styles) .leads-actions__grille form { margin: 0; }
:where(.bo-page-liste-styles) .leads-actions__grille .leads-jeter { color: var(--bo-texte-2); background: transparent; }
@media (max-width:900px) { :where(.bo-page-liste-styles) .leads-table thead { display: none; } }
@media (max-width:900px) { :where(.bo-page-liste-styles) .leads-table, :where(.bo-page-liste-styles) .leads-table tbody, :where(.bo-page-liste-styles) .leads-table tr, :where(.bo-page-liste-styles) .leads-table td { display: block; width: 100%; } }
@media (max-width:900px) { :where(.bo-page-liste-styles) .leads-table tr { padding: var(--bo-esp-2) 0; } }
@media (max-width:900px) { :where(.bo-page-liste-styles) .leads-actions__grille { max-width: 320px; } }

/* ===== _mails-volets.html.twig ===== */
:where(.bo-page-mails-volets) .mv { display: grid; grid-template-columns: minmax(260px,380px) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; }
@media (max-width:1000px) { :where(.bo-page-mails-volets) .mv { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-mails-volets) .mv__liste { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); overflow: hidden; }
:where(.bo-page-mails-volets) .mv__liste ul { list-style: none; margin: 0; padding: 0; max-height: 72vh; overflow-y: auto; }
:where(.bo-page-mails-volets) .mv__compte { margin: 0; padding: var(--bo-esp-2) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__ligne { display: flex; flex-direction: column; gap: 2px; padding: var(--bo-esp-2) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); color: var(--bo-bleu); text-decoration: none; min-height: 44px; }
:where(.bo-page-mails-volets) .mv__ligne:hover { background: var(--bo-surface-2); }
:where(.bo-page-mails-volets) .mv__ligne.is-ouvert { background: linear-gradient(var(--bo-violet), var(--bo-violet)) left / 3px 100% no-repeat, var(--bo-violet-fond); }
:where(.bo-page-mails-volets) .mv__haut { display: flex; justify-content: space-between; gap: var(--bo-esp-2); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__de { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.bo-page-mails-volets) .mv__date { white-space: nowrap; }
:where(.bo-page-mails-volets) .mv__sujet { font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
:where(.bo-page-mails-volets) .mv__pj { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__sugg { font-size: var(--bo-taille-legende); color: var(--bo-ok); }
:where(.bo-page-mails-volets) .mv__mail { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-2); min-width: 0; }
:where(.bo-page-mails-volets) .mv__meta { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); overflow-wrap: anywhere; }
:where(.bo-page-mails-volets) .mv__titre { margin: 0; font-size: var(--bo-taille-titre); color: var(--bo-bleu); overflow-wrap: anywhere; }
:where(.bo-page-mails-volets) .mv__pieces { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__texte { white-space: pre-line; font-size: var(--bo-taille-texte); line-height: 1.55; color: var(--bo-texte); max-height: 46vh; overflow-y: auto; padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); overflow-wrap: anywhere; }
:where(.bo-page-mails-volets) .mv__suite { margin: var(--bo-esp-2) 0 0; color: var(--bo-texte-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-mails-volets) .mv__ranger { display: grid; gap: var(--bo-esp-2); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-fond); }
:where(.bo-page-mails-volets) .mv__ranger h3 { margin: 0; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:where(.bo-page-mails-volets) .mv__boutons { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); }
:where(.bo-page-mails-volets) .mv__boutons form { margin: 0; }
:where(.bo-page-mails-volets) .mv__boutons .adm-btn { min-height: 44px; }
:where(.bo-page-mails-volets) .mv__autre { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; font-size: var(--bo-taille-aide); }
:where(.bo-page-mails-volets) .mv__autre input { flex: 1 1 200px; min-width: 0; min-height: 44px; }
:where(.bo-page-mails-volets) .mv__autre .adm-btn { min-height: 44px; }
:where(.bo-page-mails-volets) .mv__danger { color: var(--bo-bloquant); }
:where(.bo-page-mails-volets) .mv__motif summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; min-height: 44px; }
:where(.bo-page-mails-volets) .mv__motif summary::-webkit-details-marker { display: none; }
:where(.bo-page-mails-volets) .mv__motif[open] { flex-basis: 100%; display: grid; gap: var(--bo-esp-1); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font-size: var(--bo-taille-aide); }
:where(.bo-page-mails-volets) .mv__motif-titre { margin: 2px 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.bo-page-mails-volets) .mv__motifs { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
:where(.bo-page-mails-volets) .mv__motifs .adm-btn { min-height: 40px; font-size: var(--bo-taille-aide); padding: var(--bo-esp-1) var(--bo-esp-3); }
:where(.bo-page-mails-volets) .mv__motif-autre { margin-top: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__motif-ligne { display: flex; gap: var(--bo-esp-1); }
:where(.bo-page-mails-volets) .mv__motif-ligne .adm-champ { flex: 1; min-width: 0; }
:where(.bo-page-mails-volets) .mv__aide { margin: 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-mails-volets) .mv__plus summary { cursor: pointer; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); min-height: 32px; }
:where(.bo-page-mails-volets) .mv__plus .mv__boutons { margin-top: var(--bo-esp-2); }

/* ===== _sante.html.twig ===== */
:where(.bo-page-sante) .etat { margin: 0 0 var(--bo-esp-4); }
:where(.bo-page-sante) .etat .acc-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
:where(.bo-page-sante) .etat .acc-kpi b { font-size: var(--bo-taille-titre); }
@media (max-width:900px) { :where(.bo-page-sante) .etat .acc-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); } }
:where(.bo-page-sante) .etat__tete { display: flex; align-items: center; justify-content: flex-start; gap: var(--bo-esp-3); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-sante) .etat__tete b { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-violet-fonce); }
:where(.bo-page-sante) .etat__bilan { font-size: var(--bo-taille-aide); padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: var(--bo-ok-fond); color: var(--bo-ok); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-sante) .etat__bilan--alerte { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-sante) .etat__tete form { margin: 0; }
:where(.bo-page-sante) .etat__tete button { border: 0; background: none; padding: 0; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-violet); cursor: pointer; }
:where(.bo-page-sante) .etat__grille { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--bo-esp-2); }
@media (max-width:600px) { :where(.bo-page-sante) .etat__grille { grid-template-columns: repeat(2,minmax(0,1fr)); } }
:where(.bo-page-sante) .etat__t { position: relative; display: block; padding: var(--bo-esp-2) var(--bo-esp-2) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); text-align: center; color: inherit; text-decoration: none; border-top: 3px solid var(--c); }
:where(.bo-page-sante) a.etat__t:hover { background: var(--bo-neutre-fond); }
:where(.bo-page-sante) .etat__t span { display: block; font-size: var(--bo-taille-legende); letter-spacing: .05em; text-transform: uppercase; color: var(--bo-texte-2); line-height: 1.3; }
:where(.bo-page-sante) .etat__t strong { display: block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); line-height: 1.2; }
:where(.bo-page-sante) .etat__t em { display: block; margin-top: 2px; font-style: normal; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-sante) .etat__t--alerte { background: var(--bo-attention-fond); }
:where(.bo-page-sante) .etat__t--alerte strong { color: var(--bo-attention); }
:where(.bo-page-sante) .etat details { margin-top: var(--bo-esp-2); font-size: var(--bo-taille-aide); text-align: left; }
:where(.bo-page-sante) .etat summary { cursor: pointer; color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-sante) .etat details ul { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); line-height: 1.6; }

/* ===== comptes.html.twig ===== */
:where(.bo-page-comptes) .cpt-2fa { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; justify-content: space-between; margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); font-size: var(--bo-taille-texte); color: var(--bo-texte-2); }
:where(.bo-page-comptes) .cpt-2fa b { color: var(--bo-bleu); }

/* ===== contact-ecrire.html.twig ===== */
:where(.bo-page-contact-ecrire) .ecr-modeles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--bo-esp-2); margin-bottom: var(--bo-esp-4); }
:where(.bo-page-contact-ecrire) .ecr-modeles a { display: grid; gap: 2px; padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); border: 1px solid var(--bo-trait); background: var(--bo-surface); text-decoration: none; color: var(--bo-bleu); }
:where(.bo-page-contact-ecrire) .ecr-modeles a small { color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-ecrire) .ecr-modeles a.actif { border-color: var(--bo-violet); outline: 1px solid var(--bo-violet); outline-offset: -2px; background: var(--bo-surface-2); }
:where(.bo-page-contact-ecrire) .ecr { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: var(--bo-esp-4); align-items: start; max-width: 1100px; }
:where(.bo-page-contact-ecrire) .ecr-form, :where(.bo-page-contact-ecrire) .ecr-cote { padding: var(--bo-esp-4) var(--bo-esp-5); }
:where(.bo-page-contact-ecrire) .ecr-form label.adm-label { display: grid; gap: var(--bo-esp-1); }
:where(.bo-page-contact-ecrire) .ecr-envoyer { justify-self: center; min-width: 260px; }
:where(.bo-page-contact-ecrire) .ecr-pieces { border: 0; padding: 0; margin: 0; display: grid; gap: var(--bo-esp-1); }
:where(.bo-page-contact-ecrire) .ecr-pieces legend { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); font-size: var(--bo-taille-texte); margin-bottom: var(--bo-esp-1); }
:where(.bo-page-contact-ecrire) .ecr-pieces legend small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:where(.bo-page-contact-ecrire) .ecr-pieces label { display: flex; gap: var(--bo-esp-2); align-items: flex-start; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-texte); cursor: pointer; }
:where(.bo-page-contact-ecrire) .ecr-envoi { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-ecrire) .ecr-envoi small { display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-ecrire) .ecr-erreur { padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-contact-ecrire) .ecr-vignette { position: relative; height: 420px; overflow: hidden; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); margin-top: var(--bo-esp-2); }
:where(.bo-page-contact-ecrire) .ecr-vignette iframe { position: absolute; top: 0; left: 0; width: 200%; height: 200%; border: 0; transform: scale(.5); transform-origin: 0 0; background: var(--bo-surface); pointer-events: none; }
:where(.bo-page-contact-ecrire) .ecr-vignette.grand { position: fixed; inset: 40px; height: auto; z-index: 60; box-shadow: var(--bo-ombre-modale); }
:where(.bo-page-contact-ecrire) .ecr-vignette.grand iframe { width: 100%; height: 100%; transform: none; pointer-events: auto; }
:where(.bo-page-contact-ecrire) .ecr-agrandir { margin-top: var(--bo-esp-2); border: 0; background: none; color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-aide); cursor: pointer; padding: 0; }
:where(.bo-page-contact-ecrire) .ecr-vignette.grand + .ecr-agrandir { position: fixed; top: 8px; right: 48px; z-index: 61; background: var(--bo-surface); padding: var(--bo-esp-1) var(--bo-esp-4); border-radius: var(--bo-rayon-pilule); box-shadow: none; }
:where(.bo-page-contact-ecrire) .ecr { grid-template-columns: minmax(0,1fr) 340px; }
@media (max-width:900px) { :where(.bo-page-contact-ecrire) .ecr, :where(.bo-page-contact-ecrire) .ecr-modeles { grid-template-columns: minmax(0,1fr); } }

/* ===== contact-message.html.twig ===== */
:where(.bo-page-contact-message) .mliees { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mliees__titre { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); margin-right: var(--bo-esp-1); }
:where(.bo-page-contact-message) .mliees__fiche { display: inline-flex; align-items: center; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-1) var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); border: 1px solid var(--bo-trait); }
:where(.bo-page-contact-message) .mliees__fiche a { font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); text-decoration: none; }
:where(.bo-page-contact-message) .mliees__fiche small { color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-message) .mliees__fiche form { margin: 0; }
:where(.bo-page-contact-message) .mliees__fiche button { width: 22px; height: 22px; border-radius: var(--bo-rayon-pilule); border: 0; background: var(--bo-neutre-fond); color: var(--bo-violet-fonce); font-size: var(--bo-taille-sous-titre); line-height: 1; cursor: pointer; }
:where(.bo-page-contact-message) .mliees__fiche button:hover { background: var(--bo-violet-fonce); color: var(--bo-surface); }
:where(.bo-page-contact-message) .mliees__ajout { display: flex; gap: var(--bo-esp-1); margin: 0 0 0 auto; flex: 1 1 300px; justify-content: flex-end; }
:where(.bo-page-contact-message) .mliees__ajout .adm-champ { flex: 1; max-width: 300px; padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mliees__ajout .adm-btn { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-message) .mliees__autre { margin-left: auto; }
:where(.bo-page-contact-message) .mliees__autre summary { cursor: pointer; color: var(--bo-violet-fonce); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mliees__autre .mliees__ajout { margin-top: var(--bo-esp-1); }
:where(.bo-page-contact-message) .mbadge { display: inline-block; margin-right: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .03em; background: var(--bo-violet-fond); color: var(--bo-texte-2); white-space: nowrap; }
:where(.bo-page-contact-message) .mbadge--client { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-contact-message) .mbadge--ambigu { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-contact-message) .mbadge--a_classer { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-contact-message) .mbadge--partenaire { background: var(--bo-info-fond); color: var(--bo-petrole); }
:where(.bo-page-contact-message) .mbadge--corbeille { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-contact-message) .mstatut { display: grid; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mstatut__etat { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); align-items: center; margin: 0; }
:where(.bo-page-contact-message) .mstatut__note { margin: 0; }
:where(.bo-page-contact-message) .mprop { display: grid; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px dashed var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mprop__ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.bo-page-contact-message) .mprop__ligne form { display: flex; gap: var(--bo-esp-1); margin: 0 0 0 auto; }
:where(.bo-page-contact-message) .mhist { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-message) .mhist th, :where(.bo-page-contact-message) .mhist td { text-align: left; padding: var(--bo-esp-1) var(--bo-esp-2); border-top: 1px solid var(--bo-trait); vertical-align: top; }
:where(.bo-page-contact-message) .mhist th { font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); }
:where(.bo-page-contact-message) .mdecide__titre { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); }
:where(.bo-page-contact-message) .mdecide__g { margin-top: var(--bo-esp-4); padding-top: var(--bo-esp-4); border-top: 1px solid var(--bo-trait); }
:where(.bo-page-contact-message) .mdecide__g:first-of-type { border-top: 0; padding-top: 0; }
:where(.bo-page-contact-message) .mdecide__g h3 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-titre); color: var(--bo-bleu); }
:where(.bo-page-contact-message) .mdecide__adresse, :where(.bo-page-contact-message) .mdecide__form { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-2); }
:where(.bo-page-contact-message) .mdecide__adresse form { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin: 0; }
:where(.bo-page-contact-message) .mdecide__g .adm-aide { margin: var(--bo-esp-1) 0 0; }
:where(.bo-page-contact-message) .mdecide__g .adm-champ { min-width: 240px; }
:where(.bo-page-contact-message) .mdecide__form { align-items: flex-start; }
:where(.bo-page-contact-message) .mliees__lib { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); align-self: center; }
@media (max-width:480px) { :where(.bo-page-contact-message) .mliees__ajout { flex: 1 1 100%; flex-wrap: wrap; margin-left: 0; justify-content: flex-start; } }
@media (max-width:480px) { :where(.bo-page-contact-message) .mliees__ajout .adm-champ { max-width: none; flex: 1 1 100%; } }
@media (max-width:480px) { :where(.bo-page-contact-message) .mdecide__g .adm-champ { min-width: 0; width: 100%; } }

/* ===== contact-messages.html.twig ===== */
:where(.bo-page-contact-messages) .mtabs { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin: var(--bo-esp-1) 0 var(--bo-esp-3); padding: var(--bo-esp-1); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); width: fit-content; max-width: 100%; }
:where(.bo-page-contact-messages) .mtabs a { padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); text-decoration: none; }
:where(.bo-page-contact-messages) .mtabs a:hover { color: var(--bo-bleu); background: var(--bo-surface); }
:where(.bo-page-contact-messages) .mtabs a.is-actif { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); background: var(--bo-surface); box-shadow: none; }
:where(.bo-page-contact-messages) .mtabs a span { display: inline-block; margin-left: var(--bo-esp-1); padding: 0 var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); background: var(--bo-violet-fond); }
:where(.bo-page-contact-messages) .mguide { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); font-size: var(--bo-taille-texte); }
:where(.bo-page-contact-messages) .mguide summary { cursor: pointer; font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-contact-messages) .mguide ol { margin: var(--bo-esp-2) 0 2px; padding-left: var(--bo-esp-5); display: grid; gap: var(--bo-esp-1); color: var(--bo-texte); }
:where(.bo-page-contact-messages) .mpart { margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
:where(.bo-page-contact-messages) details.mpart>summary { cursor: pointer; }
:where(.bo-page-contact-messages) .mpart__liste { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin: var(--bo-esp-2) 0 var(--bo-esp-3); }
:where(.bo-page-contact-messages) .mpart__liste form { display: inline-flex; align-items: center; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-2) var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); background: var(--bo-violet-fond); font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.bo-page-contact-messages) .mpart__liste button { width: 22px; height: 22px; border: 0; border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); color: var(--bo-bloquant); cursor: pointer; }
:where(.bo-page-contact-messages) .mpart__ajout { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); }
:where(.bo-page-contact-messages) .mpart__ajout input { flex: 1 1 260px; min-width: 0; }
:where(.bo-page-contact-messages) .mail-geste { border: 1px solid var(--bo-trait); background: var(--bo-surface); border-radius: var(--bo-rayon-pilule); padding: 1px var(--bo-esp-2); margin: 2px var(--bo-esp-1) 0 0; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); cursor: pointer; }
:where(.bo-page-contact-messages) .mail-geste:hover { border-color: var(--bo-violet); color: var(--bo-violet); }
:where(.bo-page-contact-messages) .mail-autres { margin-top: var(--bo-esp-1); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-messages) .mail-autres summary { cursor: pointer; color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mail-autres form { margin: var(--bo-esp-1) 0 0; }
:where(.bo-page-contact-messages) .tag-recueil { display: inline-block; margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-ok-fond); color: var(--bo-ok); text-decoration: none; }
:where(.bo-page-contact-messages) .tag-part { display: inline-block; margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .04em; text-transform: uppercase; background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-contact-messages) .mtabs a span { font-variant-numeric: tabular-nums; }
:where(.bo-page-contact-messages) .bo-filtres__plus summary { cursor: pointer; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-contact-messages) .bo-filtres__plus .bo-filtres__blocs { margin-top: var(--bo-esp-2); }
:where(.bo-page-contact-messages) .mbadge { display: inline-block; margin-left: var(--bo-esp-1); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .03em; background: var(--bo-violet-fond); color: var(--bo-texte-2); white-space: nowrap; }
:where(.bo-page-contact-messages) .mbadge--client { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-contact-messages) .mbadge--ambigu { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-contact-messages) .mbadge--a_classer { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-contact-messages) .mbadge--partenaire { background: var(--bo-info-fond); color: var(--bo-petrole); }
:where(.bo-page-contact-messages) .mbadge--corbeille { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mpag { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); align-items: center; margin: var(--bo-esp-3) 0; font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-messages) .mpag a, :where(.bo-page-contact-messages) .mpag span.mpag__cur { padding: var(--bo-esp-1) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); border: 1px solid var(--bo-trait); background: var(--bo-surface); text-decoration: none; color: var(--bo-bleu); }
:where(.bo-page-contact-messages) .mpag span.mpag__cur { background: var(--bo-petrole); color: var(--bo-surface); border-color: var(--bo-bleu); }
:where(.bo-page-contact-messages) .mlot { display: grid; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); font-size: var(--bo-taille-aide); }
:where(.bo-page-contact-messages) .mlot__ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; }
:where(.bo-page-contact-messages) .mlot fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-4); }
:where(.bo-page-contact-messages) .mails-table { table-layout: fixed; }
:where(.bo-page-contact-messages) .mails-table th, :where(.bo-page-contact-messages) .mails-table td { text-align: left; padding: var(--bo-esp-2) var(--bo-esp-3); vertical-align: top; }
:where(.bo-page-contact-messages) .mails-table th:first-child, :where(.bo-page-contact-messages) .mails-table td:first-child { padding-left: var(--bo-esp-5); }
:where(.bo-page-contact-messages) .mails-table .mails-sujet { overflow: hidden; text-overflow: ellipsis; }
:where(.bo-page-contact-messages) .mails-table .mails-corr { white-space: normal; overflow-wrap: anywhere; }
:where(.bo-page-contact-messages) .mails-table .mails-corr small { display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-messages) .mails-table .mails-corr form { margin-left: 0 !important; }
:where(.bo-page-contact-messages) .mails-attacher { display: flex; gap: var(--bo-esp-1); flex-wrap: wrap; margin-top: var(--bo-esp-1); }
:where(.bo-page-contact-messages) .mails-attacher input { flex: 1 1 140px; min-width: 0; padding: var(--bo-esp-1) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); font-size: var(--bo-taille-legende); }
:where(.bo-page-contact-messages) .mails-attacher button { padding: var(--bo-esp-1) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); font-size: var(--bo-taille-legende); cursor: pointer; }
:where(.bo-page-contact-messages) .mails-attacher button:hover { border-color: var(--bo-violet); color: var(--bo-violet); }
:where(.bo-page-contact-messages) .mails-table tr.mail--hors td { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mails-table tr.mail--hors a { color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mails-table tr.mail--libre td { background: var(--bo-attention-fond); }
:where(.bo-page-contact-messages) .mails-table tr.mail--ambigu td { background: var(--bo-bloquant-fond); }
:where(.bo-page-contact-messages) .tag-hors { display: block; margin-top: 2px; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .04em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mails-legende { display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-contact-messages) .mails-legende i { display: inline-block; width: 12px; height: 12px; border-radius: var(--bo-rayon-controle); margin-right: var(--bo-esp-1); vertical-align: -2px; border: 1px solid var(--bo-trait); }

/* ===== contenus-controle.html.twig ===== */
:where(.bo-page-contenus-controle) .cc-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-contenus-controle) .cc-t { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-contenus-controle) .cc-t th, :where(.bo-page-contenus-controle) .cc-t td { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }
:where(.bo-page-contenus-controle) .cc-w { overflow-x: auto; }
:where(.bo-page-contenus-controle) .cc-f { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-2); }
:where(.bo-page-contenus-controle) .cc-s { display: inline-block; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-contenus-controle) .cc-s--ko { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-contenus-controle) .cc-n { display: grid; gap: var(--bo-esp-1); min-width: 260px; }

/* ===== corrections.html.twig ===== */
:where(.bo-page-corrections) .corr-grille { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; }
@media (max-width:1000px) { :where(.bo-page-corrections) .corr-grille { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-corrections) .corr-hist { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-corrections) .corr-hist th, :where(.bo-page-corrections) .corr-hist td { padding: var(--bo-esp-2) var(--bo-esp-2); border-bottom: 1px solid var(--bo-trait); text-align: left; }
:where(.bo-page-corrections) .corr-hist th { font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }

/* ===== crm-opportunite-souscription.html.twig ===== */
:where(.bo-page-crm-opportunite-souscription) .sa-form { max-width: 720px; }
:where(.bo-page-crm-opportunite-souscription) .sa-grille { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bo-esp-2) var(--bo-esp-4); }
:where(.bo-page-crm-opportunite-souscription) .sa-grille .pleine { grid-column: 1/-1; }
:where(.bo-page-crm-opportunite-souscription) .sa-grille h2 { grid-column: 1/-1; margin: var(--bo-esp-2) 0 0; }
@media (max-width:640px) { :where(.bo-page-crm-opportunite-souscription) .sa-grille { grid-template-columns: 1fr; } }

/* ===== dashboard-conseiller.html.twig ===== */
:where(.bo-page-dashboard-conseiller) .bo-topbar .bo-btn-primaire { padding: var(--bo-esp-2) var(--bo-esp-4); font-size: var(--bo-taille-aide); gap: var(--bo-esp-1); }
:where(.bo-page-dashboard-conseiller) .bo-topbar .bo-btn-primaire svg { width: 14px; height: 14px; }

/* ===== dashboard.html.twig ===== */
:where(.bo-page-dashboard) .bo-topbar .bo-btn-primaire { padding: var(--bo-esp-2) var(--bo-esp-4); font-size: var(--bo-taille-aide); gap: var(--bo-esp-1); }
:where(.bo-page-dashboard) .bo-topbar .bo-btn-primaire svg { width: 14px; height: 14px; }
:where(.bo-page-dashboard) .bo-stats--accueil { gap: var(--bo-esp-3); margin-bottom: var(--bo-esp-5); }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card { display: grid; grid-template-columns: 32px auto minmax(0,1fr); column-gap: var(--bo-esp-3); align-items: baseline; padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__icone { grid-row: 1/3; align-self: center; width: 32px; height: 32px; margin: 0; border-radius: var(--bo-rayon-controle); }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__valeur { grid-column: 2/4; margin: 0 0 3px; font-size: var(--bo-taille-chiffre); }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__label { grid-column: 2; font-size: var(--bo-taille-aide); white-space: nowrap; }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__sous-label, :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__trend { grid-column: 3; margin: 0 0 0 -3px; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-texte); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__sous-label::before, :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__trend::before { content: '· '; }
@media (max-width:900px) { :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card { grid-template-columns: minmax(0,1fr); } }
@media (max-width:900px) { :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__icone, :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__sous-label, :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__trend { display: none; } }
@media (max-width:900px) { :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__valeur, :where(.bo-page-dashboard) .bo-stats--accueil .bo-stat-card__label { grid-column: 1; } }

/* ===== documents-cabinet.html.twig ===== */
:where(.bo-page-documents-cabinet) .dcab { max-width: 1100px; display: grid; gap: var(--bo-esp-4); }
:where(.bo-page-documents-cabinet) .dcab-champs { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-documents-cabinet) .dcab-champs label { display: grid; gap: var(--bo-esp-1); grid-template-rows: auto auto 1fr; align-content: start; }
:where(.bo-page-documents-cabinet) .dcab-large { grid-column: 1/-1; }
:where(.bo-page-documents-cabinet) .dcab-regles { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-documents-cabinet) .dcab-regles th, :where(.bo-page-documents-cabinet) .dcab-regles td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); text-align: left; vertical-align: top; }
:where(.bo-page-documents-cabinet) .dcab-regles th { font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-documents-cabinet) .dcab-b { display: inline-block; font-size: var(--bo-taille-legende); padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); white-space: nowrap; }
:where(.bo-page-documents-cabinet) .dcab-b--bloquant { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-documents-cabinet) .dcab-b--justifier { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-documents-cabinet) .dcab-b--info { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.bo-page-documents-cabinet) .dcab-retablir { border: 0; background: none; padding: 0; color: var(--bo-violet-fonce); font: inherit; font-size: var(--bo-taille-legende); text-decoration: underline; cursor: pointer; }
:where(.bo-page-documents-cabinet) .dcab-obj { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin: var(--bo-esp-1) 0 0; }
:where(.bo-page-documents-cabinet) .dcab-obj span { font-size: var(--bo-taille-legende); padding: 3px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }

/* ===== double-auth-config.html.twig ===== */
:where(.bo-page-double-auth-config) .da-codes { margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); }
:where(.bo-page-double-auth-config) .da-codes pre { margin: var(--bo-esp-2) 0; padding: var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); border: 1px solid var(--bo-trait); font-size: var(--bo-taille-sous-titre); letter-spacing: .12em; line-height: 1.8; columns: 2; }

/* ===== envois.html.twig ===== */
:where(.bo-page-envois) .ev-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-envois) .ev-t { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-envois) .ev-t th, :where(.bo-page-envois) .ev-t td { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }
:where(.bo-page-envois) .ev-w { overflow-x: auto; }

/* ===== espace-revue.html.twig ===== */
:where(.bo-page-espace-revue) .rv { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: var(--bo-esp-4); align-items: start; max-width: 1320px; }
@media (max-width:1100px) { :where(.bo-page-espace-revue) .rv { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-espace-revue) .rv table { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); table-layout: fixed; }
:where(.bo-page-espace-revue) .rv th { font-size: var(--bo-taille-legende); letter-spacing: .06em; text-transform: uppercase; color: var(--bo-texte-2); text-align: left; padding: var(--bo-esp-1) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); }
:where(.bo-page-espace-revue) .rv td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); vertical-align: top; overflow-wrap: anywhere; }
:where(.bo-page-espace-revue) .rv td.lib { color: var(--bo-bleu); width: 28%; }
:where(.bo-page-espace-revue) .rv td.av { color: var(--bo-texte-2); }
:where(.bo-page-espace-revue) .rv td.ap { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-espace-revue) .rv td.rep { width: 84px; text-align: center; }
:where(.bo-page-espace-revue) .rv ul { margin: 0; padding-left: var(--bo-esp-4); }
:where(.bo-page-espace-revue) .rv .tag { display: inline-block; margin: var(--bo-esp-1) var(--bo-esp-1) 0 0; font-size: var(--bo-taille-legende); padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); }
:where(.bo-page-espace-revue) .rv .t-sens { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-espace-revue) .rv .t-conf { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-espace-revue) .rv .t-deja { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-espace-revue) .rv tr.ecarte td { opacity: .55; }

/* ===== investissements-import.html.twig ===== */
:where(.bo-page-investissements-import) .imp-ligne { font-size: var(--bo-taille-aide); }
:where(.bo-page-investissements-import) .imp-ligne td, :where(.bo-page-investissements-import) .imp-ligne th { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-trait); text-align: left; vertical-align: top; }
:where(.bo-page-investissements-import) .imp-act { display: inline-block; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-investissements-import) .imp-act--nouveau { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-investissements-import) .imp-act--maj { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-investissements-import) .imp-act--inchange { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-investissements-import) .imp-act--ignore { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-investissements-import) .imp-diff { margin: 2px 0; font-size: var(--bo-taille-aide); }
:where(.bo-page-investissements-import) .imp-diff--conflit { color: var(--bo-attention); }
:where(.bo-page-investissements-import) .imp-diff--refuse { color: var(--bo-bloquant); }
:where(.bo-page-investissements-import) .imp-diff--remplit, :where(.bo-page-investissements-import) .imp-diff--maj { color: var(--bo-ok); }
:where(.bo-page-investissements-import) .imp-cols code { display: inline-block; margin: 2px var(--bo-esp-1) 2px 0; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-neutre-fond); font-size: var(--bo-taille-legende); }

/* ===== investissements.html.twig ===== */
:where(.bo-page-investissements) .inv-afaire { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-attention-fond); color: var(--bo-attention); font-size: var(--bo-taille-texte); }
:where(.bo-page-investissements) .inv-afaire a { color: var(--bo-attention); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-investissements) .leads-barre { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--bo-esp-4) var(--bo-esp-6); margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-4) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); box-shadow: none; }
:where(.bo-page-investissements) .leads-barre__groupe { display: flex; flex-direction: column; gap: var(--bo-esp-2); min-width: 0; }
:where(.bo-page-investissements) .leads-barre__groupe:first-child { padding-bottom: var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); }
:where(.bo-page-investissements) .leads-barre__titre { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .14em; text-transform: uppercase; color: var(--bo-violet); }
:where(.bo-page-investissements) .leads-barre form { display: flex; gap: var(--bo-esp-2); }
:where(.bo-page-investissements) .leads-barre form .adm-champ { flex: 1; min-width: 0; max-width: 640px; }
:where(.bo-page-investissements) .leads-barre nav { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.bo-page-investissements) .inv-env { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-4); }
:where(.bo-page-investissements) .inv-env a { display: block; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); text-decoration: none; color: inherit; }
:where(.bo-page-investissements) .inv-env a:hover { border-color: var(--bo-bleu); }
:where(.bo-page-investissements) .inv-env b { display: block; font-size: var(--bo-taille-titre); color: var(--bo-bleu); }
:where(.bo-page-investissements) .inv-env span { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-investissements) .inv { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-texte); }
:where(.bo-page-investissements) .inv th, :where(.bo-page-investissements) .inv td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); text-align: left; vertical-align: top; }
:where(.bo-page-investissements) .inv th { font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-investissements) .inv td.num, :where(.bo-page-investissements) .inv th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
:where(.bo-page-investissements) .inv tr.client th { background: var(--bo-surface-2); color: var(--bo-bleu); font-size: var(--bo-taille-texte); text-transform: none; letter-spacing: 0; }
:where(.bo-page-investissements) .inv tr.client td { background: var(--bo-surface-2); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-investissements) .inv tr.clos td { color: var(--bo-texte-2); }
:where(.bo-page-investissements) .inv .pv-plus { color: var(--bo-ok); }
:where(.bo-page-investissements) .inv .pv-moins { color: var(--bo-bloquant); }
:where(.bo-page-investissements) .inv .ancien { color: var(--bo-attention); font-size: var(--bo-taille-legende); }
:where(.bo-page-investissements) .inv .meta { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }

/* ===== lead-rdv.html.twig ===== */
:where(.bo-page-lead-rdv) .rdv-grille { display: grid; grid-template-columns: minmax(0,400px) minmax(0,1fr); gap: var(--bo-esp-5); align-items: start; }
:where(.bo-page-lead-rdv) .rdv-modes { display: grid; gap: var(--bo-esp-2); }
:where(.bo-page-lead-rdv) .rdv-mode { display: flex; gap: var(--bo-esp-2); align-items: flex-start; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); cursor: pointer; }
:where(.bo-page-lead-rdv) .rdv-mode:has(input:checked) { border-color: var(--bo-bleu); background: var(--bo-surface-2); }
:where(.bo-page-lead-rdv) .rdv-mode input { margin-top: 3px; accent-color: var(--bo-bleu); }
:where(.bo-page-lead-rdv) .rdv-mode b { display: block; font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-lead-rdv) .rdv-mode small { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-lead-rdv) .rdv-apercu { position: sticky; top: 12px; padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-neutre-fond); }
:where(.bo-page-lead-rdv) .rdv-apercu__entete { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-lead-rdv) .rdv-apercu__entete b { color: var(--bo-texte); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-lead-rdv) .rdv-pj { display: inline-flex; align-items: center; gap: var(--bo-esp-1); padding: var(--bo-esp-1) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-legende); color: var(--bo-bleu); }
:where(.bo-page-lead-rdv) .rdv-duo { display: grid; grid-template-columns: 1fr 150px; gap: var(--bo-esp-2); }
:where(.bo-page-lead-rdv) .rdv-pick { position: relative; }
:where(.bo-page-lead-rdv) .rdv-pick .adm-champ { padding-right: var(--bo-esp-7); width: 100%; }
:where(.bo-page-lead-rdv) .rdv-pick input::-webkit-calendar-picker-indicator { opacity: 0; position: absolute; right: 0; width: 42px; height: 100%; cursor: pointer; }
:where(.bo-page-lead-rdv) .rdv-pick__btn { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: var(--bo-rayon-controle); background: var(--bo-violet-fond); color: var(--bo-violet); cursor: pointer; pointer-events: none; }
:where(.bo-page-lead-rdv) .rdv-pick__btn svg { width: 17px; height: 17px; }
:where(.bo-page-lead-rdv) .rdv-pick__btn--actif { pointer-events: auto; }
:where(.bo-page-lead-rdv) .rdv-pick__btn--actif:hover, :where(.bo-page-lead-rdv) .rdv-pick__btn--actif[aria-expanded="true"] { background: var(--bo-violet); color: var(--bo-surface); }
:where(.bo-page-lead-rdv) .rdv-pick input[type=time]::-webkit-calendar-picker-indicator { display: none; }
:where(.bo-page-lead-rdv) .rdv-heures { position: absolute; z-index: 30; right: 0; top: calc(100% + 6px); width: min(330px,86vw); max-height: 260px; overflow: auto; display: grid; grid-template-columns: repeat(4,1fr); gap: var(--bo-esp-1); padding: var(--bo-esp-2) var(--bo-esp-3); background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); box-shadow: var(--bo-ombre-flottant); }
:where(.bo-page-lead-rdv) .rdv-heures[hidden] { display: none; }
:where(.bo-page-lead-rdv) .rdv-heures button { border: 1px solid var(--bo-trait); background: var(--bo-surface); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) 0; font: inherit; font-size: var(--bo-taille-aide); color: var(--bo-bleu); cursor: pointer; }
:where(.bo-page-lead-rdv) .rdv-heures button:hover, :where(.bo-page-lead-rdv) .rdv-heures button[aria-selected="true"] { background: var(--bo-petrole); border-color: var(--bo-bleu); color: var(--bo-surface); }
:where(.bo-page-lead-rdv) .rdv-agenda { justify-content: center; text-align: center; }
@media (max-width:980px) { :where(.bo-page-lead-rdv) .rdv-grille { grid-template-columns: minmax(0,1fr); } }
@media (max-width:980px) { :where(.bo-page-lead-rdv) .rdv-apercu { position: static; } }
:where(.bo-page-lead-rdv) .rdv-agenda { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bo-esp-1) var(--bo-esp-3); margin-top: var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px dashed var(--bo-trait); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); }
:where(.bo-page-lead-rdv) .rdv-agenda .adm-aide { margin: 0; }

/* ===== mails-rapprocher.html.twig ===== */
:where(.bo-page-mails-rapprocher) .rap { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-texte); background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); overflow: hidden; }
:where(.bo-page-mails-rapprocher) .rap th, :where(.bo-page-mails-rapprocher) .rap td { padding: var(--bo-esp-2) var(--bo-esp-3); border-bottom: 1px solid var(--bo-trait); text-align: left; vertical-align: top; }
:where(.bo-page-mails-rapprocher) .rap th { font-size: var(--bo-taille-legende); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); font-weight: var(--bo-graisse-forte); background: var(--bo-surface-2); }
:where(.bo-page-mails-rapprocher) .rap__qui b { display: block; color: var(--bo-bleu); }
:where(.bo-page-mails-rapprocher) .rap__qui span { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-mails-rapprocher) .rap__sujet { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.bo-page-mails-rapprocher) .rap__gestes { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); align-items: center; }
:where(.bo-page-mails-rapprocher) .rap__gestes form { display: flex; gap: var(--bo-esp-1); margin: 0; }
:where(.bo-page-mails-rapprocher) .rap__gestes .adm-btn { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
:where(.bo-page-mails-rapprocher) .rap__gestes input.adm-champ { width: 220px; padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-mails-rapprocher) .rap__sugg { margin: 0; }
:where(.bo-page-mails-rapprocher) .rap__menu { position: relative; }
:where(.bo-page-mails-rapprocher) .rap__menu summary { list-style: none; padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); cursor: pointer; }
:where(.bo-page-mails-rapprocher) .rap__menu summary::-webkit-details-marker { display: none; }
:where(.bo-page-mails-rapprocher) .rap__menu summary::after { content: ' ▾'; }
:where(.bo-page-mails-rapprocher) .rap__menu[open] form { position: absolute; z-index: 20; right: 0; top: calc(100% + 4px); display: grid !important; gap: 2px; min-width: 230px; padding: var(--bo-esp-1) var(--bo-esp-2); background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); box-shadow: var(--bo-ombre-flottant); }
:where(.bo-page-mails-rapprocher) .rap__ignorer { border: 0; background: none; color: var(--bo-bleu); font-size: var(--bo-taille-aide); cursor: pointer; text-align: left; padding: var(--bo-esp-2) var(--bo-esp-2); border-radius: var(--bo-rayon-controle); }
:where(.bo-page-mails-rapprocher) .rap__ignorer:hover { background: var(--bo-surface-2); }

/* ===== mises-a-jour.html.twig ===== */
:where(.bo-page-mises-a-jour) .mj-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-mises-a-jour) .mj-f { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-mises-a-jour) .mj-f .adm-champ { width: auto; min-width: 200px; }
:where(.bo-page-mises-a-jour) .mj-e { border-top: 1px solid var(--bo-neutre-fond); padding: var(--bo-esp-3) 0; }
:where(.bo-page-mises-a-jour) .mj-e:first-child { border-top: 0; }
:where(.bo-page-mises-a-jour) .mj-e h3 { margin: 0; font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-mises-a-jour) .mj-m { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); margin: 2px 0 var(--bo-esp-1); }
:where(.bo-page-mises-a-jour) .mj-s { display: inline-block; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-mises-a-jour) .mj-s--a_valider { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-mises-a-jour) .mj-s--livre { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-mises-a-jour) .mj-d { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); margin: var(--bo-esp-1) 0; }
:where(.bo-page-mises-a-jour) .mj-d dt { color: var(--bo-texte-2); }
:where(.bo-page-mises-a-jour) .mj-d dd { margin: 0; }
:where(.bo-page-mises-a-jour) .mj-g { display: grid; gap: var(--bo-esp-2); grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); }
:where(.bo-page-mises-a-jour) .mj-g label { display: grid; gap: 3px; font-size: var(--bo-taille-aide); }
:where(.bo-page-mises-a-jour) .mj-err { color: var(--bo-bloquant); font-size: var(--bo-taille-aide); }
:where(.bo-page-mises-a-jour) .mj-g .is-invalid { border-color: var(--bo-bloquant); }
@media (max-width:700px) { :where(.bo-page-mises-a-jour) .mj-d { grid-template-columns: 1fr; } }

/* ===== modele-document.html.twig ===== */
:where(.bo-page-modele-document) .me { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; max-width: 1500px; }
@media (max-width:1250px) { :where(.bo-page-modele-document) .me { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-modele-document) .adm-champ { padding: var(--bo-esp-1) var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-modele-document) .chp { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--bo-esp-1) var(--bo-esp-2); padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-modele-document) .chp label { display: grid; gap: 3px; }
:where(.bo-page-modele-document) .chp .l2 { grid-column: span 2; }
:where(.bo-page-modele-document) .chp .case { display: flex; align-items: center; gap: var(--bo-esp-1); font-size: var(--bo-taille-legende); color: var(--bo-bleu); }
:where(.bo-page-modele-document) .chp .adm-champ { width: 100%; }
:where(.bo-page-modele-document) .section { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); padding: var(--bo-esp-2) var(--bo-esp-3); margin: 0 0 var(--bo-esp-2); }
:where(.bo-page-modele-document) .section textarea { width: 100%; min-height: 150px; font-family: ui-monospace,Menlo,monospace; font-size: var(--bo-taille-legende); line-height: 1.5; }
:where(.bo-page-modele-document) .aide { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); line-height: 1.5; }
:where(.bo-page-modele-document) .aide code { background: var(--bo-neutre-fond); padding: 0 var(--bo-esp-1); border-radius: var(--bo-rayon-controle); color: var(--bo-bleu); cursor: copy; }
:where(.bo-page-modele-document) .vars { columns: 2; font-size: var(--bo-taille-legende); margin: var(--bo-esp-1) 0 0; }
:where(.bo-page-modele-document) .vars div { break-inside: avoid; margin: 0 0 var(--bo-esp-1); }
:where(.bo-page-modele-document) .vars b { display: block; color: var(--bo-violet); font-size: var(--bo-taille-legende); text-transform: uppercase; letter-spacing: .06em; }
:where(.bo-page-modele-document) .tl td, :where(.bo-page-modele-document) .tl th { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-trait); text-align: left; }

/* ===== modeles-documents.html.twig ===== */
:where(.bo-page-modeles-documents) .mdl { display: grid; gap: var(--bo-esp-5); }
:where(.bo-page-modeles-documents) .mdl__note { margin: 0; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); font-size: var(--bo-taille-aide); line-height: 1.55; color: var(--bo-texte); }
:where(.bo-page-modeles-documents) .mdl__note small { display: block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-modeles-documents) .mdl__fam h2 { margin: 0; font-family: var(--bo-police); font-size: var(--bo-taille-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-modeles-documents) .mdl__fam > p { margin: 2px 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-modeles-documents) .mdl__grille { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--bo-esp-3); }
@media (max-width:1300px) { :where(.bo-page-modeles-documents) .mdl__grille { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { :where(.bo-page-modeles-documents) .mdl__grille { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-modeles-documents) .mdl__carte { display: flex; align-items: center; gap: var(--bo-esp-3); padding: var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); text-decoration: none; color: inherit; box-shadow: none; transition: border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
:where(.bo-page-modeles-documents) .mdl__carte:hover { border-color: var(--bo-trait-champ); box-shadow: var(--bo-ombre-survol); transform: translateY(-1px); }
:where(.bo-page-modeles-documents) .mdl__carte:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
:where(.bo-page-modeles-documents) .mdl__ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--bo-rayon-carte); color: var(--bo-surface); background: var(--bo-degrade); }
:where(.bo-page-modeles-documents) .mdl__t { flex: 1; min-width: 0; }
:where(.bo-page-modeles-documents) .mdl__t b { display: block; font-size: var(--bo-taille-texte); color: var(--bo-bleu); line-height: 1.3; }
:where(.bo-page-modeles-documents) .mdl__t small { display: block; margin-top: 3px; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-modeles-documents) .mdl__tags { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); }
:where(.bo-page-modeles-documents) .mdl__tag { padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-modeles-documents) .mdl__tag--v { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-modeles-documents) .mdl__tag--b { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-modeles-documents) .mdl__tag--r { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
:where(.bo-page-modeles-documents) .mdl__fl { flex: none; width: 8px; height: 8px; border-right: 1.6px solid var(--bo-trait-champ); border-bottom: 1.6px solid var(--bo-trait-champ); transform: rotate(-45deg); }

/* ===== procedures.html.twig ===== */
:where(.bo-page-procedures) .pq-filtres .is-actif { background: var(--bo-petrole); color: var(--bo-surface); border-color: var(--bo-bleu); }
:where(.bo-page-procedures) .pc-retard { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-procedures) .pc-actions-l { margin: 0; padding: 0; list-style: none; display: grid; gap: 3px; font-size: var(--bo-taille-aide); }
:where(.bo-page-procedures) .pc-st { white-space: nowrap; padding: 3px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-procedures) .pc-st--retard { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-procedures) .pc-st--a_signer { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-procedures) .pc-st--a_envoyer { background: var(--bo-info-fond); color: var(--bo-bleu); }
:where(.bo-page-procedures) .pc-st--terminee { background: var(--bo-ok-fond); color: var(--bo-ok); }

/* ===== produits-structures.html.twig ===== */
:where(.bo-page-produits-structures) .ps-grille { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--bo-esp-3); margin-top: var(--bo-esp-3); }
:where(.bo-page-produits-structures) .ps-depot { display: block; }
:where(.bo-page-produits-structures) .ps-contrats { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); margin: var(--bo-esp-3) 0 0; padding: 0; border: 0; font-size: var(--bo-taille-aide); }
:where(.bo-page-produits-structures) .ps-contrats legend { margin-bottom: var(--bo-esp-1); }
:where(.bo-page-produits-structures) .ps-contrats input { accent-color: var(--bo-violet); }
:where(.bo-page-produits-structures) .ps-liste { list-style: none; margin: var(--bo-esp-2) 0 0; padding: 0; }
:where(.bo-page-produits-structures) .ps-liste li { display: flex; justify-content: space-between; gap: var(--bo-esp-3); align-items: center; padding: var(--bo-esp-2) 0; border-bottom: 1px solid var(--bo-trait); }
:where(.bo-page-produits-structures) .ps-liste b { display: block; font-size: var(--bo-taille-texte); color: var(--bo-texte); }
:where(.bo-page-produits-structures) .ps-liste small { display: block; font-size: var(--bo-taille-legende); color: var(--bo-texte-2); margin-top: 2px; }
:where(.bo-page-produits-structures) .ps-actions { display: flex; gap: var(--bo-esp-1); flex-wrap: wrap; justify-content: flex-end; }
:where(.bo-page-produits-structures) .ps-actions form { margin: 0; }
:where(.bo-page-produits-structures) .ps-badge { display: inline-block; margin: 2px var(--bo-esp-1) 0 0; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); color: var(--bo-bleu); font-size: var(--bo-taille-legende); }
:where(.bo-page-produits-structures) .ps-badge--alerte { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-produits-structures) .ps-clos { background: var(--bo-surface-2); }
@media (max-width:800px) { :where(.bo-page-produits-structures) .ps-grille { grid-template-columns: 1fr; } }
@media (max-width:800px) { :where(.bo-page-produits-structures) .ps-liste li { flex-direction: column; align-items: flex-start; } }

/* ===== profil.html.twig ===== */
:where(.bo-page-profil) .prof-grille { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; max-width: 1100px; }
@media (max-width:900px) { :where(.bo-page-profil) .prof-grille { grid-template-columns: minmax(0,1fr); } }
:where(.bo-page-profil) .prof-cnx { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.bo-page-profil) .prof-cnx li { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-3); align-items: baseline; padding: var(--bo-esp-1) 0; border-bottom: 1px solid var(--bo-trait); }
:where(.bo-page-profil) .prof-cnx b { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-profil) .prof-cnx span { color: var(--bo-texte-2); }
:where(.bo-page-profil) .prof-cnx em { font-style: normal; font-size: var(--bo-taille-legende); color: var(--bo-ok); }

/* ===== reglages-cabinet.html.twig ===== */
:where(.bo-page-reglages-cabinet) .fc-tot { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-4); }
:where(.bo-page-reglages-cabinet) .fc-tot span { padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); border: 1px solid var(--bo-trait); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-tot b { font-size: var(--bo-taille-titre); color: var(--bo-bleu); margin-right: var(--bo-esp-1); }
:where(.bo-page-reglages-cabinet) .fc-g { padding: var(--bo-esp-3) var(--bo-esp-4) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-4); }
:where(.bo-page-reglages-cabinet) .fc-g h2 { margin: 0; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-violet-fonce); }
:where(.bo-page-reglages-cabinet) .fc-g > p { margin: 2px 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-l { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr) 150px; gap: var(--bo-esp-3); align-items: start; padding: var(--bo-esp-2) var(--bo-esp-1); border-top: 1px solid var(--bo-trait); font-size: var(--bo-taille-texte); }
:where(.bo-page-reglages-cabinet) .fc-l dt { color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-l dd { margin: 0; color: var(--bo-bleu); overflow-wrap: anywhere; }
:where(.bo-page-reglages-cabinet) .fc-s { display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-reglages-cabinet) .fc-s--bientot { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-reglages-cabinet) .fc-s--depasse, :where(.bo-page-reglages-cabinet) .fc-s--manquant { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-reglages-cabinet) .fc-src { font-size: var(--bo-taille-legende); color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-form { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: var(--bo-esp-3) var(--bo-esp-4); margin: var(--bo-esp-2) 0 var(--bo-esp-3); }
:where(.bo-page-reglages-cabinet) .fc-champ { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-champ input { display: block; width: 100%; margin-top: var(--bo-esp-1); }
:where(.bo-page-reglages-cabinet) .fc-champ small { display: block; margin-top: 2px; font-size: var(--bo-taille-legende); }
:where(.bo-page-reglages-cabinet) .fc-champ--err input { border-color: var(--bo-bloquant); }
:where(.bo-page-reglages-cabinet) .fc-err { margin: var(--bo-esp-2) 0; padding: var(--bo-esp-2) var(--bo-esp-4); border-radius: var(--bo-rayon-controle); background: var(--bo-bloquant-fond); color: var(--bo-bloquant); font-size: var(--bo-taille-aide); }
:where(.bo-page-reglages-cabinet) .fc-err ul { margin: var(--bo-esp-1) 0 0 var(--bo-esp-4); padding: 0; }
:where(.bo-page-reglages-cabinet) .fc-actions { grid-column: 1/-1; display: flex; gap: var(--bo-esp-3); align-items: center; }
:where(.bo-page-reglages-cabinet) .fc-journal { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-reglages-cabinet) .fc-journal ul { margin: var(--bo-esp-2) 0 0 var(--bo-esp-4); padding: 0; }
@media (max-width:800px) { :where(.bo-page-reglages-cabinet) .fc-l { grid-template-columns: 1fr; } }

/* ===== reglages.html.twig ===== */
:where(.bo-page-reglages) .rg-outils { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; margin: 0 0 var(--bo-esp-4); }
:where(.bo-page-reglages) .rg-recherche { flex: 1 1 320px; display: flex; align-items: center; gap: var(--bo-esp-2); padding: 0 var(--bo-esp-4); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); }
:where(.bo-page-reglages) .rg-recherche input { flex: 1; min-width: 0; padding: var(--bo-esp-3) 0; border: 0; outline: 0; background: transparent; font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-reglages) .rg-recherche:focus-within { border-color: var(--bo-bleu); box-shadow: var(--bo-halo-champ); }
:where(.bo-page-reglages) .rg-filtres { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
:where(.bo-page-reglages) .rg-filtres button { padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); cursor: pointer; }
:where(.bo-page-reglages) .rg-filtres button[aria-pressed="true"] { border-color: var(--bo-bleu); background: var(--bo-petrole); color: var(--bo-surface); }
:where(.bo-page-reglages) .rg-filtres button span { margin-left: var(--bo-esp-1); font-variant-numeric: tabular-nums; opacity: .85; }
:where(.bo-page-reglages) .rg-g { margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4) var(--bo-esp-2); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
:where(.bo-page-reglages) .rg-g h2 { margin: 0; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-titre); letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-g > p { margin: 2px 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-l { display: grid; grid-template-columns: minmax(0,1.2fr) 118px minmax(0,1.6fr) auto; gap: var(--bo-esp-1) var(--bo-esp-4); align-items: center; padding: var(--bo-esp-3) var(--bo-esp-1); border-top: 1px solid var(--bo-trait); }
:where(.bo-page-reglages) .rg-l__titre { font-size: var(--bo-taille-sous-titre); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:where(.bo-page-reglages) .rg-l__titre small { margin-left: var(--bo-esp-2); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-l__detail { font-size: var(--bo-taille-texte); color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-s { display: inline-block; padding: 3px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); background: var(--bo-neutre-fond); color: var(--bo-texte-2); text-align: center; }
:where(.bo-page-reglages) .rg-s--configure, :where(.bo-page-reglages) .rg-s--calcule { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-reglages) .rg-s--manquant, :where(.bo-page-reglages) .rg-s--invalide { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-reglages) .rg-s--incomplet, :where(.bo-page-reglages) .rg-s--a_verifier { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-reglages) .rg-l .adm-btn { white-space: nowrap; }
:where(.bo-page-reglages) .rg-fac { margin: var(--bo-esp-1) 0; }
:where(.bo-page-reglages) .rg-fac>summary { cursor: pointer; padding: var(--bo-esp-1) 0; color: var(--bo-texte-2); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-reglages) .rg-g > details > summary { cursor: pointer; padding: 2px 0 var(--bo-esp-2); }
:where(.bo-page-reglages) .rg-plus { grid-column: 1/-1; }
:where(.bo-page-reglages) .rg-plus summary { cursor: pointer; font-size: var(--bo-taille-aide); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-reglages) .rg-d { margin: var(--bo-esp-2) 0 2px; padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); background: var(--bo-surface-2); display: grid; grid-template-columns: 160px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:where(.bo-page-reglages) .rg-d dt { color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-d dd { margin: 0; }
:where(.bo-page-reglages) .rg-ecrans { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: var(--bo-esp-2); margin: var(--bo-esp-1) 0 var(--bo-esp-2); padding: 0; list-style: none; }
:where(.bo-page-reglages) .rg-ecrans a { display: block; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-controle); text-decoration: none; color: var(--bo-bleu); }
:where(.bo-page-reglages) .rg-ecrans a:hover { border-color: var(--bo-bleu); }
:where(.bo-page-reglages) .rg-ecrans a:focus-visible { outline: 2px solid var(--bo-bleu); outline-offset: 2px; }
:where(.bo-page-reglages) .rg-ecrans b { display: block; font-size: var(--bo-taille-texte); }
:where(.bo-page-reglages) .rg-ecrans small { display: block; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:where(.bo-page-reglages) .rg-vide { padding: var(--bo-esp-4); border: 1px dashed var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); color: var(--bo-texte-2); text-align: center; }
:where(.bo-page-reglages) [hidden] { display: none !important; }
@media (max-width:800px) { :where(.bo-page-reglages) .rg-l { grid-template-columns: 1fr; } }
@media (max-width:800px) { :where(.bo-page-reglages) .rg-d { grid-template-columns: 1fr; } }

/* ===== regles.html.twig ===== */
:where(.bo-page-regles) .rg-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-regles) .rg-c h3 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-regles) .rg-d { margin: var(--bo-esp-2) 0; display: grid; grid-template-columns: 150px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.bo-page-regles) .rg-d dt { color: var(--bo-texte-2); }
:where(.bo-page-regles) .rg-d dd { margin: 0; }
:where(.bo-page-regles) .rg-s { display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-regles) .rg-s--oui { background: var(--bo-ok-fond); color: var(--bo-ok); }
@media (max-width:800px) { :where(.bo-page-regles) .rg-d { grid-template-columns: 1fr; } }

/* ===== relances-regles.html.twig ===== */
:where(.bo-page-relances-regles) .rg { max-width: 900px; padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-3); }
:where(.bo-page-relances-regles) .rg__dl { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: var(--bo-esp-2) var(--bo-esp-4); margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-texte); }
:where(.bo-page-relances-regles) .rg__dl dt { color: var(--bo-texte-2); }
:where(.bo-page-relances-regles) .rg__dl dd { margin: 0; color: var(--bo-bleu); }
@media (max-width:700px) { :where(.bo-page-relances-regles) .rg__dl { grid-template-columns: minmax(0,1fr); } }

/* ===== relances.html.twig ===== */
:where(.bo-page-relances) .rl { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: var(--bo-esp-4); align-items: start; max-width: 1200px; }
:where(.bo-page-relances) .rl-main { display: grid; gap: var(--bo-esp-2); }
:where(.bo-page-relances) .rl-carte { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: var(--bo-esp-3); align-items: start; padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); cursor: pointer; }
:where(.bo-page-relances) .rl-carte b { color: var(--bo-bleu); }
:where(.bo-page-relances) .rl-carte small { display: block; color: var(--bo-texte-2); font-size: var(--bo-taille-legende); margin-top: 2px; }
:where(.bo-page-relances) .rl-carte details { margin-top: var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:where(.bo-page-relances) .rl-carte summary { color: var(--bo-violet-fonce); cursor: pointer; }
:where(.bo-page-relances) .rl-carte--reprise { grid-template-columns: minmax(0,1fr) auto auto; cursor: default; border-color: var(--bo-attention-fond); background: var(--bo-surface-2); }
:where(.bo-page-relances) .rl-reprise { max-width: 1200px; margin-bottom: var(--bo-esp-4); padding: var(--bo-esp-4); display: grid; gap: var(--bo-esp-2); }
:where(.bo-page-relances) .rl-fiche { font-size: var(--bo-taille-aide); }
:where(.bo-page-relances) .rl-cote { padding: var(--bo-esp-4); }
:where(.bo-page-relances) .rl-vide { display: grid; gap: var(--bo-esp-1); padding: var(--bo-esp-4); border: 1px dashed var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); color: var(--bo-texte-2); font-size: var(--bo-taille-aide); }
:where(.bo-page-relances) .rl-vide b { color: var(--bo-bleu); }
:where(.bo-page-relances) .rl-toutes { margin-top: var(--bo-esp-2); }
:where(.bo-page-relances) .rl-hist { max-width: 1200px; margin-top: var(--bo-esp-4); padding: var(--bo-esp-4); }
@media (max-width:900px) { :where(.bo-page-relances) .rl { grid-template-columns: minmax(0,1fr); } }

/* ===== secrets.html.twig ===== */
:where(.bo-page-secrets) .sc-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-secrets) .sc-c h3 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-secrets) .sc-f > summary { cursor: pointer; list-style: none; min-height: 44px; display: flex; align-items: center; }
:where(.bo-page-secrets) .sc-f > summary::-webkit-details-marker { display: none; }
:where(.bo-page-secrets) .sc-f > summary h3 { margin: 0; }
:where(.bo-page-secrets) .sc-f > summary::after { content: 'Voir'; margin-left: auto; font-size: var(--bo-taille-aide); color: var(--bo-violet-fonce); font-weight: var(--bo-graisse-forte); }
:where(.bo-page-secrets) .sc-f[open] > summary::after { content: 'Replier'; }
:where(.bo-page-secrets) .sc-f[open] > summary { margin-bottom: var(--bo-esp-2); }
:where(.bo-page-secrets) .sc-s { display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-secrets) .sc-s--ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-secrets) .sc-s--ko { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-secrets) .sc-g { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: var(--bo-esp-2) var(--bo-esp-4); margin: var(--bo-esp-2) 0; }
:where(.bo-page-secrets) .sc-t { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-secrets) .sc-t th, :where(.bo-page-secrets) .sc-t td { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }

/* ===== taches.html.twig ===== */
:where(.bo-page-taches) .tp-t { width: 100%; border-collapse: collapse; background: var(--bo-surface); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); overflow: hidden; font-size: var(--bo-taille-aide); }
:where(.bo-page-taches) .tp-t th { background: var(--bo-surface-2); text-align: left; padding: var(--bo-esp-2) var(--bo-esp-3); font-weight: var(--bo-graisse-forte); color: var(--bo-texte-2); font-size: var(--bo-taille-legende); }
:where(.bo-page-taches) .tp-t td { padding: var(--bo-esp-2) var(--bo-esp-3); border-top: 1px solid var(--bo-trait); vertical-align: top; }
:where(.bo-page-taches) .tp-s { display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-taches) .tp-s--a_jour, :where(.bo-page-taches) .tp-s--ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-taches) .tp-s--en_retard, :where(.bo-page-taches) .tp-s--en_echec, :where(.bo-page-taches) .tp-s--erreur, :where(.bo-page-taches) .tp-s--interrompue { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-taches) .tp-s--jamais, :where(.bo-page-taches) .tp-s--a_examiner, :where(.bo-page-taches) .tp-s--partielle, :where(.bo-page-taches) .tp-s--non_configuree { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-taches) .tp-d { margin: var(--bo-esp-3) 0; padding: var(--bo-esp-3) var(--bo-esp-4); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); display: grid; grid-template-columns: 170px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:where(.bo-page-taches) .tp-d dt { color: var(--bo-texte-2); }
:where(.bo-page-taches) .tp-d dd { margin: 0; }
:where(.bo-page-taches) .tp-w { overflow-x: auto; }
@media (max-width:800px) { :where(.bo-page-taches) .tp-d { grid-template-columns: 1fr; } }

/* ===== technique-sauvegarde.html.twig ===== */
:where(.bo-page-technique-sauvegarde) .sr-g { display: grid; gap: var(--bo-esp-3); grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-technique-sauvegarde) .sr-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); padding: var(--bo-esp-3) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-technique-sauvegarde) .sr-g .sr-c { margin: 0; }
:where(.bo-page-technique-sauvegarde) .sr-c h2 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-technique-sauvegarde) .sr-c p, :where(.bo-page-technique-sauvegarde) .sr-c li { font-size: var(--bo-taille-aide); margin: var(--bo-esp-1) 0; color: var(--bo-bleu); }
:where(.bo-page-technique-sauvegarde) .sr-t { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-technique-sauvegarde) .sr-t th, :where(.bo-page-technique-sauvegarde) .sr-t td { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }
:where(.bo-page-technique-sauvegarde) .sr-w { overflow-x: auto; }
:where(.bo-page-technique-sauvegarde) .sr-s { display: inline-block; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-technique-sauvegarde) .sr-s--ok { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-technique-sauvegarde) .sr-s--ko { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-technique-sauvegarde) .sr-s--att { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-technique-sauvegarde) .sr-f { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: flex-end; margin: var(--bo-esp-2) 0; }
:where(.bo-page-technique-sauvegarde) .sr-f label { display: block; font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
:where(.bo-page-technique-sauvegarde) .sr-aide { color: var(--bo-texte-2); }

/* ===== technique.html.twig ===== */
:where(.bo-page-technique) .tq-g { display: grid; gap: var(--bo-esp-3); grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-technique) .tq-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); padding: var(--bo-esp-3) var(--bo-esp-4); margin: 0 0 var(--bo-esp-3); }
:where(.bo-page-technique) .tq-g .tq-c { margin: 0; }
:where(.bo-page-technique) .tq-c h2 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-technique) .tq-c p { font-size: var(--bo-taille-aide); margin: var(--bo-esp-1) 0; color: var(--bo-bleu); }
:where(.bo-page-technique) .tq-t { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:where(.bo-page-technique) .tq-t th, :where(.bo-page-technique) .tq-t td { padding: var(--bo-esp-1) var(--bo-esp-2); border-bottom: 1px solid var(--bo-neutre-fond); text-align: left; vertical-align: top; }
:where(.bo-page-technique) .tq-w { overflow-x: auto; }
:where(.bo-page-technique) .tq-s { display: inline-block; padding: 1px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
:where(.bo-page-technique) .tq-s--configure { background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-technique) .tq-s--manquant { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:where(.bo-page-technique) .tq-s--incomplet, :where(.bo-page-technique) .tq-s--a_verifier, :where(.bo-page-technique) .tq-s--invalide { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-technique) .tq-l { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin-top: var(--bo-esp-2); }
:where(.bo-page-technique) .tq-etat { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); margin-left: var(--bo-esp-2); }

/* ===== veille-centre.html.twig ===== */
:where(.bo-page-veille-centre) .vc-g { display: grid; gap: var(--bo-esp-3); grid-template-columns: repeat(auto-fit,minmax(340px,1fr)); }
:where(.bo-page-veille-centre) .vc-c { border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); padding: var(--bo-esp-3) var(--bo-esp-4); }
:where(.bo-page-veille-centre) .vc-c h2 { margin: 0; font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:where(.bo-page-veille-centre) .vc-c p { font-size: var(--bo-taille-aide); color: var(--bo-bleu); margin: var(--bo-esp-1) 0; }
:where(.bo-page-veille-centre) .vc-n { display: inline-block; padding: 2px var(--bo-esp-3); border-radius: var(--bo-rayon-pilule); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); background: var(--bo-ok-fond); color: var(--bo-ok); }
:where(.bo-page-veille-centre) .vc-n--a { background: var(--bo-attention-fond); color: var(--bo-attention); }
:where(.bo-page-veille-centre) .vc-l { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); margin-top: var(--bo-esp-2); }

/* ===== veille-scpi.html.twig ===== */
:where(.bo-page-veille-scpi) .vs-recu { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-3); align-items: center; margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-ok-fond); border-radius: var(--bo-rayon-carte); background: var(--bo-ok-fond); font-size: var(--bo-taille-texte); }
:where(.bo-page-veille-scpi) .vs-recu span { flex: 1 1 300px; }
:where(.bo-page-veille-scpi) .vs-recu form { margin: 0; }
:where(.bo-page-veille-scpi) .vs-table th, :where(.bo-page-veille-scpi) .vs-table td { white-space: normal; }
:where(.bo-page-veille-scpi) .vs-table td:nth-child(n+2):nth-child(-n+4) { white-space: nowrap; }
:where(.bo-page-veille-scpi) .vs-actions { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); }
:where(.bo-page-veille-scpi) .vs-actions form { margin: 0; }
