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

/* ===== bo-composants.css ===== */
/*
 * Composants du back-office : lot 1 du style unifié (planche validée par Julien le 28/10/2026, choix G).
 *
 * Les composants portent le décor (couleur, bordure, rayon, taille et graisse du texte) ; Tailwind garde la mise en
 * page (marges, grilles, flex). Toutes les valeurs viennent de bo-jetons.css (test strict JetonsBoTest). Valeurs brutes
 * admises : 0, 1 à 3 px.
 *
 * Les anciennes classes du BO sont des alias des nouvelles (même règle, deux noms) : le rendu change partout sans
 * retoucher les gabarits. Lot 7 : les alias de classes de couleur (text-doux, bg-rouge-fond…) sont supprimés ; les
 * anciens noms de composants ci-dessous (adm-btn, adm-champ, pastille--…) restent des alias, encore très utilisés.
 *   bouton    : .bo-bouton (+ --principal, --secondaire, --discret, --danger, --compact)
 *               alias .adm-btn (secondaire), .adm-btn-sec, .adm-btn-principal, .adm-btn-danger, .mail-geste (compact)
 *   champ     : .bo-champ, .bo-etiquette, .bo-aide ; alias .adm-champ, .bo-search__input, .adm-label, .adm-aide
 *   pastille  : .bo-pastille (+ --bloquant, --afaire, --fait, --info, --neutre) ; alias .pastille--*, .acc-pastille--*, .rg-s--*, .mbadge--*
 *   carte     : .bo-carte, .bo-carte--lien ; alias .adm-carte, .bo-panel, .bo-data-card, .bo-stat-card, .acc-panneau, .acc-kpi
 *   alerte    : .bo-alerte (+ --info, --fait, --afaire, --bloquant) ; les bandeaux Tailwind (bg-bloquant-fond…) prennent son rayon
 *   tableau   : .bo-tableau ; alias : tout tableau des écrans du BO (en-têtes en 12 px, graisse 600, sans capitales : choix E)
 *   onglets   : .bo-onglets, .bo-onglets__lien (actif : aria-current="page" ou .is-actif)
 *   étapes    : .bo-etapes ; alias des numéros d'étape existants (.pr-section__num, .pr-parcours__num, .ra-etape h3 span…)
 *   jauge     : .bo-jauge ; alias .crm-jauge i, .acc-jauge i, .kyc__jauge span, .cv-barre i
 *
 * Place : paquet bo-fin.css, en tête (elle passe après les styles propres aux écrans). Lot 7 : les !important dont le
 * navigateur a montré qu'ils ne servaient plus (mesure sur 205 écrans) sont retirés ; ceux qui restent passent devant
 * des règles d'écran plus précises ou n'ont pas pu être mesurés (états ou écrans hors échantillon).
 *
 * Lot 7 (29/10/2026) : la feuille reprend, à leur place dans la cascade, ce qui restait des feuilles historiques du paquet
 * de fin : en tête, la partie BO de charte-sobre.css puis bo-maquette.css ; en fin, bo-mobile.css. Les règles qui visent
 * des classes de l'espace client (.ec-…) ne servent qu'aux écrans du BO qui reprennent sa saisie (fiche KYC, produit) :
 * l'espace client ne charge pas cette feuille.
 */

/* ======================================================================
   Charte sobre, partie BO (ex charte-sobre.css, 06/10/2026) : boutons, champs, choix, pastilles, dépôts de fichier.
   L'espace client garde sa propre copie (charte-sobre.css).
   ====================================================================== */

/* ---------- Bandeau d'en-tête de l'espace client : bleu calme, une seule nuance ----------
   28/10/2026 (style unifié, lot 2) : l'en-tête des écrans du BO n'est plus réglé ici (bo-composants.css, « Coque »). */

/* ---------- Boutons : le bleu à plat, sans dégradé ni ombre forte ---------- */
.adm-btn-principal,
.cf .cf-b.adm-btn-principal,
.ec-btn.principal {
  background: var(--bo-bleu);
  border-color: var(--bo-bleu);
  color: var(--bo-surface) !important;
  box-shadow: none !important;
  filter: none !important;
}
.adm-btn-principal:hover:not(:disabled),
.ec-btn.principal:hover { background: var(--bo-bleu-survol) !important; border-color: var(--bo-bleu-survol) !important; }
/* Boutons secondaires : contour gris-bleu, texte bleu ; jamais rose. */
.cf-b--envoyer, .cf__envoi[open] > summary { color: var(--bo-bleu) !important; border-color: var(--bo-trait-champ) !important; }
.cf-b--envoyer:hover:not(:disabled) { border-color: var(--bo-bleu) !important; }
.cf__etapes a { color: var(--bo-bleu); }

/* ---------- Pictogrammes et avatars : fond clair, trait bleu ---------- */
.cf__ic,
.crm-nav__item.is-actif .crm-nav__ic,
.kl-resume__ic { color: var(--bo-bleu) !important; background: var(--bo-neutre-fond) !important; }
.cfo-av { color: var(--bo-bleu); background: var(--bo-neutre-fond); }
.kl-dlg__cote,
.kl-dlg--biens .kl-dlg__cote,
.kl-dlg--placements .kl-dlg__cote,
.kl-dlg--credits .kl-dlg__cote { background: var(--bo-bleu) !important; }

/* ---------- Jauges : pleines, bleu sobre ---------- */
.cf__pct > span,
.fp-jauge i { background: var(--bo-bleu); }

/* ---------- Repères d'onglet actif : un filet discret ---------- */
.crm-nav__item.is-actif::after { background: var(--bo-bleu); }

/* 28/10/2026 (style unifié, lots 2 et 3) : tuiles chiffrées de la fiche, compteurs et « Prochaine étape » du dossier ne sont plus
   réglés ici (bo-dossier.css, bo-accueil.css, bo-composants.css). */

/* ---------- Titres de groupe : gris-bleu, plus de violet ---------- */
.cfo-nav2__lib,
.cfo-syn__bloc h2,
.ec-grp,
.dos .kicker,
.dos .grp,
.avis__t { color: var(--bo-texte-2) !important; }

/* ---------- Focus et cible : l'accent de la marque, discret ---------- */
.cf__carte:target { border-color: var(--bo-trait-champ) !important; box-shadow: var(--bo-halo-champ) !important; }
:focus-visible { outline-color: var(--bo-violet); }

/* ---------- Blocs dépliables : la même apparence partout ---------- */
details.ec-compl > summary,
details.mguide > summary,
details.dcarte__grp > summary,
.bo-panel details > summary,
details.sco__rep > summary { color: var(--bo-bleu); }

/* ---------- Espace client : rubrique active et liens en bleu ---------- */

/* ---------- Cases de saisie : une seule apparence (Julien, 06/10/2026) ----------
 * Même trait, même arrondi, même hauteur et même anneau de focus au cabinet,
 * chez le consultant et dans l'espace client. Les réglages compacts plus
 * précis (tableaux, filtres) gardent leur taille. */
.adm-champ,
.ec-in,
.ec-champ select, .ec-champ textarea,
.ec-deux select, .ec-ligne select, .ec-ligne textarea,
.bo-search__input {
  border: 1px solid var(--bo-trait-champ) !important;
  border-radius: var(--bo-rayon-controle) !important;
  background-color: var(--bo-surface);
  color: var(--bo-texte);
  font: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.adm-champ, .ec-in, .ec-champ select, .ec-deux select { padding: var(--bo-esp-2) var(--bo-esp-3); min-height: 40px; font-size: var(--bo-taille-texte); }
textarea.adm-champ, .ec-champ textarea, .ec-ligne textarea { min-height: 84px; line-height: 1.5; }
.adm-champ:hover:not(:focus):not(:disabled),
.ec-in:hover:not(:focus):not(:disabled),
.ec-champ select:hover:not(:focus), .ec-deux select:hover:not(:focus), .ec-ligne select:hover:not(:focus) { border-color: var(--bo-bleu) !important; }
.adm-champ:focus, .ec-in:focus,
.ec-champ select:focus, .ec-champ textarea:focus,
.ec-deux select:focus, .ec-ligne select:focus, .ec-ligne textarea:focus,
.bo-search__input:focus {
  outline: none !important;
  border-color: var(--bo-bleu) !important;
  box-shadow: var(--bo-halo-champ) !important;
}
.adm-champ:disabled, .ec-in:disabled, .adm-champ[readonly] { background-color: var(--bo-surface-2); color: var(--bo-texte-2); }
/* Contre-audit 21/10/2026 (D-UX-09) : texte indicatif à 5,8:1 (#9a96ad donnait 2,86:1). */
.adm-champ::placeholder, .ec-in::placeholder { color: var(--bo-texte-2); }
/* Champ montant : le suffixe € épouse la case. */
.ec-montant .ec-in { border-radius: var(--bo-rayon-controle) 0 0 var(--bo-rayon-controle) !important; }

/* Repli des précisions facultatives : une ligne d'explication. */
.ec-compl__aide { grid-column: 1 / -1; margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }

/* ---------- Choix à cocher (Julien, 06/10/2026) : même taille que les cases de saisie ----------
 * Les réponses proposées (vigilance, LCB-FT opération, questionnaires) ont la hauteur, le trait et
 * l'arrondi des autres champs ; la réponse retenue est en bleu clair, trait bleu. */
.dos .choix { gap: var(--bo-esp-2); }
.dos .choix label {
  min-height: 40px;
  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);
}
.dos .choix label:has(input:checked) { border-color: var(--bo-bleu) !important; background: var(--bo-neutre-fond); }
.dos .choix label:has(input:focus-visible) { box-shadow: var(--bo-halo-champ); }
.qo .choix label:has(input:checked) { background: var(--bo-neutre-fond) !important; border-color: var(--bo-bleu) !important; }
.qo .choix input:checked + span { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); }

/* ---------- Hauteur unique des champs (Julien, 06/10/2026 : « listes déroulantes de la même taille ») ----------
 * Cases de saisie et listes déroulantes : 42 px partout (fiche, connaissance, conformité, listes, espace client). */
input.adm-champ:not([type=checkbox]):not([type=radio]):not([type=file]),
select.adm-champ,
.ec-in,
.ec-champ select,
.ec-deux select,
.dos-cons select,
.la__attribuer select,
.bo-filtres select,
.cl-confier select,
.ec-ligne select {
  box-sizing: border-box !important;
  height: 42px !important;
  min-height: 42px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 40px;
  font-size: var(--bo-taille-texte) !important;
}
.dos-cons select { width: 100%; border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); padding: 0 var(--bo-esp-3); background: var(--bo-surface); }
.la__attribuer select { padding: 0 var(--bo-esp-3); border-radius: var(--bo-rayon-controle) !important; }
input[type=date].adm-champ, input[type=date].ec-in { line-height: normal; }

/* ---------- Réglages, modèles de documents : même tuile que le tableau de conformité (Julien, 06/10/2026) ---------- */
.mdl__carte { border: 1px solid var(--bo-trait) !important; border-radius: var(--bo-rayon-carte) !important; box-shadow: none !important; padding: var(--bo-esp-3) var(--bo-esp-4) !important; }
.mdl__carte:hover { border-color: var(--bo-bleu) !important; box-shadow: var(--bo-ombre-survol) !important; transform: none !important; }
.mdl__ic { width: 40px; height: 40px; border-radius: var(--bo-rayon-controle); color: var(--bo-bleu); background: var(--bo-neutre-fond); }
.mdl__t b { font-weight: var(--bo-graisse-forte); font-size: var(--bo-taille-texte) !important; }
.mdl__fam h2 { font-size: var(--bo-taille-titre) !important; font-weight: var(--bo-graisse-texte) !important; }
.mdl__note { border-radius: var(--bo-rayon-carte) !important; border-color: var(--bo-trait) !important; }
.mdl__tag--r { background: var(--bo-attention-fond) !important; color: var(--bo-attention) !important; }

/* 06/10/2026 (Julien, « la police des champs n'est pas celle du site ») : un champ de formulaire n'hérite pas
   de la police de la page par défaut (le navigateur prend la sienne). Champs, listes, zones de texte et boutons
   prennent la police du site, au cabinet comme dans l'espace client. */
input, select, textarea, button, optgroup { font-family: var(--bo-police); }
input::placeholder, textarea::placeholder { font-family: inherit; }

/* 06/10/2026 (lot z9) : boutons d'en-tête à droite : bo-composants.css (« Coque »). */

/* ---------- 06/10/2026 (z15) : connaissance client peu remplie, action indisponible ---------- */
/* KYC peu rempli, action indisponible, compteurs : bo-charte.css et bo-accueil.css (lot 3). */
/* 06/10/2026 (z15) : chiffres alignés (Playfair a des chiffres elzéviriens). */
.crm-kpi b, .acc-kpi b, .fiche-kpis .crm-kpi b, .crm-nav__txt em, .bo-cartes b { font-variant-numeric: lining-nums tabular-nums; }
/* 06/10/2026 (z15) : zone de dépôt de fichier commune aux écrans d'import. */
.imp-depot { display: block; width: 100%; padding: var(--bo-esp-5) var(--bo-esp-4); border: 1.5px dashed var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); cursor: pointer; }
.imp-depot:hover,.imp-depot:focus { border-color: var(--bo-violet); }
.imp-depot::file-selector-button { margin-right: var(--bo-esp-3); padding: var(--bo-esp-2) var(--bo-esp-4); border: 1px solid var(--bo-bleu); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); color: var(--bo-bleu); font: inherit; cursor: pointer; }
/* 06/10/2026 (z15) : badges communs à tous les écrans (jusqu'ici définis dans les listes seulement). */
.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; vertical-align: 1px; }
.pastille--vert { background: var(--bo-ok-fond); color: var(--bo-ok); }.pastille--violet { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }.pastille--gris { background: var(--bo-neutre-fond); color: var(--bo-texte-2); }
.pastille--bleu { background: var(--bo-info-fond); color: var(--bo-bleu); }.pastille--ambre { background: var(--bo-attention-fond); color: var(--bo-attention); }.pastille--rouge { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
/* 06/10/2026 (z15) : un seul contour de focus sur la recherche (celui du cadre). */
.bo-search__input:focus { box-shadow: none !important; border-color: transparent !important; }
.bo-search:focus-within { border-color: var(--bo-bleu) !important; box-shadow: var(--bo-halo-champ) !important; }

/* ---------- Passe d'alignement du 16/10/2026 (audit visuel : champs, rangées, pastilles, cibles tactiles) ---------- */
/* Champs en rangée : largeur souple, au lieu des 100 % de .adm-champ qui empilaient les formulaires. */
/* 17/10/2026 : pas dans une colonne (flex-col) : la base de 200 px y devenait une hauteur (champs géants sur la connexion et le mot de passe). */
form.flex:not(.flex-col) > label .adm-champ, form.flex:not(.flex-col) > .adm-champ, .flex:not(.flex-col) > .adm-champ, .flex:not(.flex-col) > label > .adm-champ { width: auto; flex: 1 1 200px; }
/* Pastilles de filtre : un espace entre le texte et le compteur (le flex avalait l'espace). */
a.rounded-full.border { gap: var(--bo-esp-1); }
/* Dépôt de fichier : même hauteur et même style que les boutons. */
.adm-fichier, .kyc__depot input[type=file] { font-size: var(--bo-taille-aide); min-height: 40px; display: flex; align-items: center; }
.kyc__depot { align-items: center; }
.adm-fichier::file-selector-button, .kyc__depot input[type=file]::file-selector-button { min-height: 32px; margin-right: var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); padding: 0 var(--bo-esp-3); cursor: pointer; }
/* Cases à cocher de taille unique, alignées sur la première ligne. */
.ecr-pieces input[type=checkbox] { flex: none; width: 18px; height: 18px; margin: 1px 0 0; }
/* Rubrique Échéances et Liens du DER : champs alignés en bas quand un libellé passe sur deux lignes. */
.der-champs { align-items: end; }
.der-champs label { display: flex; flex-direction: column; justify-content: space-between; }
.der-champs label > :is(input, select) { margin-top: auto; }
/* Nouvelle proposition : la colonne suit la largeur du parcours. */
.pr-colonne { max-width: none; }
/* Select « Suivi par » : plus de texte coupé. */
.dcarte__coord .dos-cons form { flex-wrap: wrap; }
.dcarte__coord .dos-cons label { flex-basis: 100%; }
/* Bouton « Fait » d'une tâche : à la hauteur de la ligne. */
li > form > button.adm-btn, li > form > .adm-btn { min-height: 28px; padding: 2px var(--bo-esp-3); margin-left: var(--bo-esp-2); vertical-align: middle; }
/* Comptes : en-têtes alignés sur leurs valeurs, lignes en haut de cellule. */
.bo-conv__table td { vertical-align: top; }
/* Flèche de « Prochaine étape » : jamais seule sur sa ligne. */
.tc-suite span[aria-hidden] { white-space: nowrap; }
@media (max-width: 700px) {
  .bo-corps :is(.la__ico, .cl-act, .ra-auto__sw, .ecr-agrandir, .pr-aide-btn, .der-copie, .mtabs a, .rc-sommaire a, .rg-annees a, .crm-carte header a, .dcarte__grp--cf .dcarte__sous a) { min-height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; }
  .bo-corps input[type=checkbox] { width: 22px; height: 22px; }
}
/* 16/10/2026 : comptes, rubriques en pastilles sans coupure ; recherche de l'accueil lisible en mobile. */
.bo-conv__table .rubrique, .bo-conv__table td span.rounded-full { display: inline-block; margin: 2px 2px 2px 0; }

/* Contre-audit 21/10/2026 (D-UX-16) : focus clavier bien visible dans l'espace client, comme dans le BO (bo-mobile.css,
   qui n'y est pas chargé) : contour de 2 px, #1b4962 (9,65:1 sur blanc). Placé en dernier pour passer après les
   « outline: none » des champs. */

/* ======================================================================
   Unité graphique de la maquette (ex bo-maquette.css, 15/10/2026) : fond, intitulés de rubrique, police unique,
   cartes repliables, cibles tactiles.
   ====================================================================== */
.bo-cadre, .bo-auth {
  font-family: var(--bo-police);
  color: var(--bo-texte);
}
.bo-cadre { background: var(--bo-fond); }
.bo-auth { background: var(--bo-surface); }
body:has(.bo-cadre), body:has(.bo-auth) { background: var(--bo-fond); }

/* ---------- Intitulés de section : capitales violettes (maquette) ---------- */
:is(.bo-cadre, .bo-auth) .cfo-nav2__lib,
:is(.bo-cadre, .bo-auth) .cfo-syn__bloc h2,
:is(.bo-cadre, .bo-auth) .bo-filtres__titre,
:is(.bo-cadre, .bo-auth) .dos .kicker,
:is(.bo-cadre, .bo-auth) .dos .grp,
:is(.bo-cadre, .bo-auth) .avis__t { color: var(--bo-violet-fonce) !important; }

/* Avatars des listes : fond neutre, initiales en bleu. */

/* ---------- Une seule police : DM Sans partout dans les écrans (plus de Playfair sur les chiffres et titres de cartes) ---------- */
:is(.bo-cadre, .bo-auth) :is(h1, h2, h3, .cf__groupe, .cfo-liste__tete h2, .crm-carte h2, .crm-kpi b, .cv-synth b, .d-tot, .fp-carte-id h2, .kpi b, .mdl__fam h2, .pa-bloc__tete h3, .pr-bandeau__chiffres b, .pr-recap__total, .pr-section__titre, .pr__retenu .grand, .questions b, .rc-titre, .sel__liste em, .sit__cartes b, .sit__mots, .acc-kpi b, .bo-stat-card b, .bo-panel__titre) { font-family: var(--bo-police); }

/* Titres de carte : DM Sans gras, taille de lecture (le corps de la carte garde la vedette). */
:is(.bo-cadre, .bo-auth) :is(.crm-carte h2, .cfo-liste__tete h2, .pa-bloc__tete h3, .fp-carte-id h2, .mdl__fam h2) { font-size: var(--bo-taille-titre) !important; font-weight: var(--bo-graisse-titre) !important; color: var(--bo-texte); }

/* Téléphone : cibles tactiles de 44 px (barre du haut, tiroir, onglets ; boutons et champs : bo-composants.css). */
@media (max-width: 899px) {
  :is(.bo-cadre, .bo-auth) .bo-barre__bouton:not(.bo-barre__replier), :is(.bo-cadre, .bo-auth) .bo-barre__entree, :is(.bo-cadre, .bo-auth) .bo-barre__compte summary,
  :is(.bo-cadre, .bo-auth) .bo-rail__titre--lien, :is(.bo-cadre, .bo-auth) .bo-rail__entree, :is(.bo-cadre, .bo-auth) .bo-onglets__lien, :is(.bo-cadre, .bo-auth) .bo-sous-onglets__lien { min-height: 44px; display: flex; align-items: center; }
  :is(.bo-cadre, .bo-auth) .crm-nav__item, :is(.bo-cadre, .bo-auth) .liste-lien { min-height: 44px; display: flex; align-items: center; box-sizing: border-box; }
  :is(.bo-cadre, .bo-auth) .liste-lien { display: inline-flex; }
  :is(.bo-cadre, .bo-auth) input[type=checkbox], :is(.bo-cadre, .bo-auth) input[type=radio] { width: 20px; height: 20px; }
}

/* Titres de section des listes produits : violet de contraste suffisant sur le fond de page. */
:is(.bo-cadre, .bo-auth) .fp-titre { color: var(--bo-violet-fonce); }

/* Pastilles actives des filtres (classes utilitaires du BO) : même dégradé que les boutons principaux. */
:is(.bo-cadre, .bo-auth) .bg-bleu { background: var(--bo-degrade); color: var(--bo-surface) !important; }
:is(.bo-cadre, .bo-auth) .text-bleu { color: var(--bo-petrole); }

/* Titres de bloc en DM Sans (RB-21). */
.bo-cadre h2:not([class*="text-"]):not(.fp-titre),
.bo-cadre .adm-carte > h2,
.bo-cadre .carte > h2 { font-family: var(--bo-police); }

/* RB-23 : cartes repliables (attribut data-plie, voir base.html.twig) */
.bo-cadre .plie > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--bo-esp-3); min-height: 44px; }
.bo-cadre .plie > summary::-webkit-details-marker { display: none; }
.bo-cadre .plie > summary > :is(h2, h3) { margin: 0; }
.bo-cadre .plie > summary::after { content: "Voir"; flex: none; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-violet-fonce); }
.bo-cadre .plie[open] > summary::after { content: "Replier"; }
.bo-cadre .plie[open] > summary { margin-bottom: var(--bo-esp-2); }
.bo-cadre [data-plie-gap] > .plie > :not(summary) ~ :not(summary) { margin-top: var(--bo-esp-3); }
@media (max-width: 700px) {
  .bo-cadre .bo-filtres__plus > summary,
  .bo-cadre .mguide > summary,
  .bo-cadre details.ld-defaut > summary,
  .bo-cadre .plie > summary { display: flex; align-items: center; min-height: 44px; }
  .bo-cadre input[list] { min-height: 44px; }
  .bo-cadre .lf-nom { min-height: 44px; display: inline-flex; align-items: center; }
}

/* RB-24 : liens de tableau soulignés (lisibles sans la couleur) ; cibles tactiles de 44 px sur mobile */
.bo-cadre a.text-bleu.no-underline { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
  .bo-cadre .bo-zone details:not(.plie) > summary { padding-block: var(--bo-esp-3); }
  .bo-cadre .bo-barre__site { display: inline-flex; align-items: center; min-height: 44px; }
  .bo-cadre .dcarte__rb { min-height: 44px; }
  .bo-cadre .bo-zone :is(input[type=text], input[type=date], input[type=email], input[type=number], input[type=search], input[type=tel], input[type=password], select, textarea) { min-height: 44px; }
}

/* 15/10/2026 : gestes rapides sur « Mails à ranger » (Hors archive, Partenaire, Corbeille). Le bouton : .mail-geste, compact (bo-composants.css). */
.bo-cadre .mail-gestes { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); }
.bo-cadre .mail-gestes form { display: inline-flex; gap: var(--bo-esp-1); margin: 0; }

/* 16/10/2026 (Julien) : « Prochaine étape » du dossier et de la conformité suit le bouton principal de la maquette : dégradé bleu-violet, texte blanc, plus de bleu nuit quasi noir ni de bleu uni. */
:is(.bo-cadre, .bo-auth) .tc-suite:not(.tc-suite--ok) {
  border-color: transparent;
  background: var(--bo-degrade) !important;
  color: var(--bo-surface) !important;
  box-shadow: none !important;
  filter: none !important;
}
:is(.bo-cadre, .bo-auth) .tc-suite:not(.tc-suite--ok):hover {
  background: var(--bo-degrade-survol) !important;
  color: var(--bo-surface) !important;
}

/* ======================================================================
   Boutons : 4 rôles x 2 tailles
   ====================================================================== */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton, .adm-btn),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions .adm-menu > div .adm-btn {
  box-sizing: border-box;
  min-height: var(--bo-hauteur-controle);
  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);
  color: var(--bo-bleu);
  font-size: var(--bo-taille-texte);
  font-weight: var(--bo-graisse-forte);
  line-height: var(--bo-interligne-serre);
  box-shadow: none;
  transform: none;
  opacity: 1;
}
:is(.bo-cadre, .bo-auth) .bo-bouton { display: inline-flex; align-items: center; justify-content: center; gap: var(--bo-esp-2); font-family: inherit; text-decoration: none; white-space: nowrap; cursor: pointer; }
:is(.bo-cadre, .bo-auth) .bo-bouton svg { width: 16px; height: 16px; flex: none; }

/* Secondaire (par défaut) : blanc, contour visible ; au survol, contour bleu et fond en retrait. */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn):hover:not(:disabled),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton, .adm-btn):not(.adm-btn-danger):hover:not(:disabled) {
  border-color: var(--bo-bleu);
  background: var(--bo-surface-2);
  color: var(--bo-bleu-survol);
  box-shadow: none;
  transform: none;
}

/* Principal : dégradé, un seul par écran. */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton--principal, .adm-btn.adm-btn-principal),
:is(.bo-cadre, .bo-auth) .cf .cf-b.adm-btn-principal,
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton--principal, .adm-btn.adm-btn-principal) {
  border-color: transparent !important;
  background: var(--bo-degrade) !important;
  color: var(--bo-surface) !important;
  box-shadow: none !important;
  filter: none !important;
}
:is(.bo-cadre, .bo-auth) :is(.bo-bouton--principal, .adm-btn.adm-btn-principal):hover:not(:disabled),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton--principal, .adm-btn.adm-btn-principal):hover:not(:disabled) {
  border-color: transparent !important;
  background: var(--bo-degrade-survol) !important;
  color: var(--bo-surface) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Discret : texte seul, souligné au survol (« Annuler », « Voir tout », « Modifier »). */
:is(.bo-cadre, .bo-auth) .bo-bouton--discret { border-color: transparent; background: transparent; padding-left: var(--bo-esp-2); padding-right: var(--bo-esp-2); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) .bo-bouton--discret:hover:not(:disabled) { border-color: transparent; background: var(--bo-violet-fond); color: var(--bo-violet-fonce); text-decoration: underline; }

/* Danger : rouge sur blanc, confirmation obligatoire. */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton--danger, .adm-btn.adm-btn-danger),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton--danger, .adm-btn-danger) {
  border-color: var(--bo-bloquant);
  background: var(--bo-surface);
  color: var(--bo-bloquant);
}
:is(.bo-cadre, .bo-auth) :is(.bo-bouton--danger, .adm-btn.adm-btn-danger):hover:not(:disabled),
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__actions :is(.bo-bouton--danger, .adm-btn-danger):hover:not(:disabled) {
  border-color: var(--bo-bloquant);
  background: var(--bo-bloquant-fond);
  color: var(--bo-bloquant);
}

/* Compact : dans un tableau ou une liste dense (bouton « Fait » d'une tâche, gestes rapides des mails). */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton--compact, .mail-geste),
:is(.bo-cadre, .bo-auth) li > form > :is(button.adm-btn, .adm-btn) {
  min-height: var(--bo-hauteur-compacte);
  padding: var(--bo-esp-1) var(--bo-esp-3);
  font-size: var(--bo-taille-aide);
}
:is(.bo-cadre, .bo-auth) .bo-bouton--compact { gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) .bo-bouton--compact svg { width: 14px; height: 14px; }
:is(.bo-cadre, .bo-auth) .mail-geste { box-sizing: border-box; border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); cursor: pointer; }
:is(.bo-cadre, .bo-auth) .mail-geste:hover { border-color: var(--bo-bleu); background: var(--bo-surface-2); }

/* Désactivé : plus de voile à 45 % (texte illisible) ; fond en retrait, texte secondaire, raison écrite à côté (.bo-raison). */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn):is(:disabled, [aria-disabled="true"]),
:is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn).adm-btn-principal:is(:disabled, [aria-disabled="true"]) {
  border-color: var(--bo-trait) !important;
  background: var(--bo-surface-2) !important;
  color: var(--bo-texte-2) !important;
  opacity: 1;
  cursor: not-allowed;
  text-decoration: none;
}
:is(.bo-cadre, .bo-auth) .bo-bouton--discret:disabled { background: transparent !important; border-color: transparent !important; }
:is(.bo-cadre, .bo-auth) .bo-raison { display: flex; align-items: center; gap: var(--bo-esp-1); margin-top: var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) .bo-raison svg { width: 14px; height: 14px; flex: none; }
/* Bouton d'icône seule : la cible reste, l'habillage disparaît ; même rayon que les autres contrôles. */
:is(.bo-cadre, .bo-auth) .adm-btn-icone { border-radius: var(--bo-rayon-controle); }

/* Focus clavier : un seul style (contour violet, voir aussi bo-mobile.css pour le reste des éléments actifs). */
:is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn):focus-visible { outline: var(--bo-focus-contour); outline-offset: var(--bo-focus-decalage); }

/* ======================================================================
   Champs
   ====================================================================== */
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ),
:is(.bo-cadre, .bo-auth) .bo-search__input {
  border-color: var(--bo-trait-champ) !important;
  border-radius: var(--bo-rayon-controle) !important;
  background-color: var(--bo-surface);
  color: var(--bo-texte);
}
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ) { font-size: var(--bo-taille-texte) !important; }
:is(.bo-cadre, .bo-auth) .bo-champ { box-sizing: border-box; width: 100%; min-height: var(--bo-hauteur-controle); padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); font-family: inherit; }
/* Hauteur unique des champs d'une ligne : celle des boutons (40 px ; 44 px sous 900 px de large). */
:is(.bo-cadre, .bo-auth) input:is(.bo-champ, .adm-champ):not([type=checkbox]):not([type=radio]):not([type=file]),
:is(.bo-cadre, .bo-auth) select:is(.bo-champ, .adm-champ) {
  height: var(--bo-hauteur-controle) !important;
  min-height: var(--bo-hauteur-controle) !important;
  line-height: var(--bo-interligne-serre);
}
:is(.bo-cadre, .bo-auth) textarea.bo-champ { min-height: 96px; padding: var(--bo-esp-2) var(--bo-esp-3); resize: vertical; }
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ)::placeholder { color: var(--bo-texte-2); opacity: 1; }
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ):hover:not(:focus):not(:disabled) { border-color: var(--bo-bleu) !important; }
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ):focus,
:is(.bo-cadre, .bo-auth) .bo-search__input:focus {
  outline: none;
  border-color: var(--bo-bleu) !important;
  box-shadow: var(--bo-halo-champ) !important;
}
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ):is(:disabled, [readonly]) { background-color: var(--bo-surface-2); border-color: var(--bo-trait) !important; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ):disabled { cursor: not-allowed; }
:is(.bo-cadre, .bo-auth) :is(.bo-champ, .adm-champ)[aria-invalid="true"] { border-color: var(--bo-bloquant) !important; }
:is(.bo-cadre, .bo-auth) .bo-champ-bloc { display: flex; flex-direction: column; gap: var(--bo-esp-1); min-width: 0; }
:is(.bo-cadre, .bo-auth) :is(.bo-etiquette, .adm-label) { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) .bo-etiquette .bo-facultatif { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) :is(.bo-aide, .adm-aide) { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) .bo-aide { margin: var(--bo-esp-1) 0 0; }
:is(.bo-cadre, .bo-auth) .bo-erreur { 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-bloquant); }
:is(.bo-cadre, .bo-auth) .bo-erreur svg { width: 14px; height: 14px; flex: none; }
:is(.bo-cadre, .bo-auth) .bo-coche { display: inline-flex; align-items: center; gap: var(--bo-esp-2); min-height: var(--bo-hauteur-compacte); cursor: pointer; }
:is(.bo-cadre, .bo-auth) .bo-coche input { width: 18px; height: 18px; margin: 0; accent-color: var(--bo-bleu); }

@media (max-width: 899px) {
  :is(.bo-cadre, .bo-auth) :is(.bo-bouton, .adm-btn) { min-height: var(--bo-hauteur-tactile) !important; }
  :is(.bo-cadre, .bo-auth) input:is(.bo-champ, .adm-champ):not([type=checkbox]):not([type=radio]):not([type=file]),
  :is(.bo-cadre, .bo-auth) select:is(.bo-champ, .adm-champ) { height: var(--bo-hauteur-tactile) !important; min-height: var(--bo-hauteur-tactile) !important; }
  :is(.bo-cadre, .bo-auth) .bo-coche { min-height: var(--bo-hauteur-tactile); }
  :is(.bo-cadre, .bo-auth) .bo-coche input { width: 20px; height: 20px; }
}

/* ======================================================================
   Pastilles de statut : couleur, mot (et pictogramme quand il y en a un)
   ====================================================================== */
:is(.bo-cadre, .bo-auth) :is(.bo-pastille, .pastille, .acc-pastille, .rg-s) {
  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;
}
:is(.bo-cadre, .bo-auth) .bo-pastille { display: inline-flex; align-items: center; gap: var(--bo-esp-1); line-height: var(--bo-interligne); }
:is(.bo-cadre, .bo-auth) .bo-pastille svg { width: 12px; height: 12px; flex: none; }
:is(.bo-cadre, .bo-auth) :is(.bo-pastille--bloquant, .pastille--rouge, .acc-pastille--urgent, .rg-s--manquant, .rg-s--invalide, .mbadge--ambigu) { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) :is(.bo-pastille--afaire, .pastille--ambre, .acc-pastille--attention, .rg-s--incomplet, .rg-s--a_verifier, .mbadge--a_classer) { background: var(--bo-attention-fond); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) :is(.bo-pastille--fait, .pastille--vert, .acc-pastille--ok, .rg-s--configure, .rg-s--oui, .mbadge--client) { background: var(--bo-ok-fond); color: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) .bo-pastille--info { background: var(--bo-info-fond); color: var(--bo-info); }
/* « bleu » reste neutre (décision de la maquette du 15/10/2026) ; « info » de l'accueil = pour information. */
:is(.bo-cadre, .bo-auth) :is(.bo-pastille--neutre, .pastille--gris, .pastille--bleu, .acc-pastille--info) { background: var(--bo-neutre-fond); color: var(--bo-neutre); }
:is(.bo-cadre, .bo-auth) .pastille--violet { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
/* Compteur : un seul format. */
:is(.bo-cadre, .bo-auth) .bo-compteur { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; padding: 0 var(--bo-esp-1); border-radius: var(--bo-rayon-pilule); background: var(--bo-violet-fond); color: var(--bo-violet-fonce); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); line-height: 20px; }

/* ======================================================================
   Cartes : blanc, filet, rayon 14, sans ombre au repos
   ====================================================================== */
:is(.bo-cadre, .bo-auth) :is(.bo-carte, .bo-panel, .adm-carte, .bo-data-card, .bo-stat-card, .acc-panneau, .acc-kpi, .mdl__carte, .mdl__note) {
  border: 1px solid var(--bo-trait);
  border-radius: var(--bo-rayon-carte);
  box-shadow: none;
}
:is(.bo-cadre, .bo-auth) .bo-carte { box-sizing: border-box; min-width: 0; padding: var(--bo-esp-5); background: var(--bo-surface); }
:is(.bo-cadre, .bo-auth) .bo-carte__tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bo-esp-2) var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) .bo-stat-card::before { display: none; }
:is(.bo-cadre, .bo-auth) .bo-carte--lien { display: block; color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
:is(.bo-cadre, .bo-auth) :is(.bo-carte--lien, a.bo-stat-card, .acc-kpi, .mdl__carte):hover { transform: none; border-color: var(--bo-bleu); box-shadow: var(--bo-ombre-survol); }
:is(.bo-cadre, .bo-auth) div.acc-kpi:hover { border-color: var(--bo-trait); box-shadow: none; }
@media (max-width: 599px) { :is(.bo-cadre, .bo-auth) .bo-carte { padding: var(--bo-esp-4); } }

/* ======================================================================
   Bandeaux d'alerte : fond d'état, filet gauche, pictogramme, titre
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-alerte { display: flex; gap: var(--bo-esp-3); align-items: flex-start; padding: var(--bo-esp-3) var(--bo-esp-4); border-left: 3px solid currentColor; border-radius: var(--bo-rayon-controle); }
:is(.bo-cadre, .bo-auth) .bo-alerte > svg { width: 18px; height: 18px; flex: none; margin-top: 2px; }
:is(.bo-cadre, .bo-auth) .bo-alerte__corps { flex: 1; min-width: 0; color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) .bo-alerte__titre { display: block; margin-bottom: 2px; font-weight: var(--bo-graisse-forte); }
:is(.bo-cadre, .bo-auth) .bo-alerte__action { flex: none; align-self: center; }
:is(.bo-cadre, .bo-auth) .bo-alerte--info { background: var(--bo-info-fond); color: var(--bo-info); }
:is(.bo-cadre, .bo-auth) .bo-alerte--fait { background: var(--bo-ok-fond); color: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) .bo-alerte--afaire { background: var(--bo-attention-fond); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) .bo-alerte--bloquant { background: var(--bo-bloquant-fond); color: var(--bo-bloquant); }
@media (max-width: 599px) { :is(.bo-cadre, .bo-auth) .bo-alerte { flex-wrap: wrap; } :is(.bo-cadre, .bo-auth) .bo-alerte__action { width: 100%; } }
/* Bandeaux écrits en classes Tailwind (bg-bloquant-fond, bg-attention-fond, bg-ok-fond) : rayon des contrôles. */
.bo-cadre :is([class*="bg-bloquant-fond"], [class*="bg-attention-fond"], [class*="bg-ok-fond"]) { border-radius: var(--bo-rayon-controle); }

/* ======================================================================
   Tableaux (choix E : en-têtes en 12 px, graisse 600, sans capitales)
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-tableau-cadre { overflow-x: auto; border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
:is(.bo-cadre, .bo-auth) .bo-tableau { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) .bo-tableau th { padding: var(--bo-esp-2) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); background: var(--bo-surface-2); text-align: left; white-space: nowrap; }
:is(.bo-cadre, .bo-auth) .bo-tableau td { padding: var(--bo-esp-3) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); vertical-align: middle; }
:is(.bo-cadre, .bo-auth) .bo-tableau tbody tr:last-child td { border-bottom: 0; }
:is(.bo-cadre, .bo-auth) .bo-tableau .nombre { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(.bo-cadre, .bo-auth) .bo-tableau .actions { text-align: right; white-space: nowrap; }
/* En-têtes : tous les tableaux du BO (remplace la règle RB-21 de bo-maquette.css : 11,5 px, capitales, graisse 700). */
.bo-cadre :is(.bo-tableau th, table thead th, table > tr:first-child > th, .cl th) {
  font-family: var(--bo-police);
  font-size: var(--bo-taille-legende);
  font-weight: var(--bo-graisse-forte);
  letter-spacing: 0;
  text-transform: none;
  color: var(--bo-texte-2) !important;
}
/* Grille des frais : en-têtes blancs sur fond bleu et violet. */
.bo-cadre .gf__t thead th { color: var(--bo-surface) !important; }
/* Lignes : une sur deux à peine teintée, survol sur le fond de page. */
:is(.bo-cadre, .bo-auth) :is(.bo-corps, .bo-main) table tbody tr:nth-child(even) > * { background-color: var(--bo-surface-2); }
:is(.bo-cadre, .bo-auth) :is(.bo-corps, .bo-main) table tbody tr:hover > *,
:is(.bo-cadre, .bo-auth) .bo-tableau tbody tr:hover td { background-color: var(--bo-fond); }
:is(.bo-cadre, .bo-auth) .cl td { border-color: var(--bo-trait); }
:is(.bo-cadre, .bo-auth) .cl td:first-child { border-radius: var(--bo-rayon-carte) 0 0 var(--bo-rayon-carte); }
:is(.bo-cadre, .bo-auth) .cl td:last-child { border-radius: 0 var(--bo-rayon-carte) var(--bo-rayon-carte) 0; }
/* Téléphone : chaque ligne d'un .bo-tableau devient une fiche, l'en-tête passe dans data-titre. */
@media (max-width: 699px) {
  :is(.bo-cadre, .bo-auth) .bo-tableau-cadre { border: 0; background: none; overflow: visible; }
  :is(.bo-cadre, .bo-auth) .bo-tableau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  :is(.bo-cadre, .bo-auth) :is(.bo-tableau, .bo-tableau tbody, .bo-tableau tr, .bo-tableau td) { display: block; }
  :is(.bo-cadre, .bo-auth) .bo-tableau tr { margin-bottom: 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); }
  :is(.bo-cadre, .bo-auth) .bo-tableau td { display: flex; justify-content: space-between; gap: var(--bo-esp-4); padding: var(--bo-esp-1) 0; border: 0; text-align: right; }
  :is(.bo-cadre, .bo-auth) .bo-tableau td::before { content: attr(data-titre); flex: none; color: var(--bo-texte-2); font-size: var(--bo-taille-aide); text-align: left; }
  :is(.bo-cadre, .bo-auth) .bo-tableau td.titre-ligne { display: block; padding-bottom: var(--bo-esp-2); text-align: left; font-weight: var(--bo-graisse-forte); }
  :is(.bo-cadre, .bo-auth) .bo-tableau td:is(.titre-ligne, .actions)::before { content: none; }
  :is(.bo-cadre, .bo-auth) .bo-tableau td.actions { justify-content: flex-end; padding-top: var(--bo-esp-2); }
  :is(.bo-cadre, .bo-auth) .bo-tableau tbody tr:hover td { background: none; }
}

/* ======================================================================
   Onglets (barre d'onglets sous la barre du haut et onglets d'écran)
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-onglets__lien { color: var(--bo-texte-2); font-size: var(--bo-taille-texte); font-weight: var(--bo-graisse-forte); }
:is(.bo-cadre, .bo-auth) .bo-onglets__lien:hover { color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) .bo-onglets__lien:is([aria-current="page"], .is-actif) { color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) .bo-onglets__lien:is([aria-current="page"], .is-actif)::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-degrade); }

/* ======================================================================
   Étapes d'un parcours (recueil, DER, LM, RA, signature)
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-etapes { display: flex; gap: var(--bo-esp-2); margin: 0; padding: 0; list-style: none; }
:is(.bo-cadre, .bo-auth) .bo-etapes li { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) .bo-etapes li:not(:last-child)::after { content: ''; flex: 1; min-width: var(--bo-esp-3); height: 2px; border-radius: var(--bo-rayon-pilule); background: var(--bo-trait); }
:is(.bo-cadre, .bo-auth) .bo-etapes__num { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-pilule); background: var(--bo-surface); font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) .bo-etapes__num svg { width: 14px; height: 14px; }
:is(.bo-cadre, .bo-auth) .bo-etapes__lib { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) .bo-etapes .fait .bo-etapes__num { border-color: transparent; background: var(--bo-ok-fond); color: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) .bo-etapes .fait:not(:last-child)::after { background: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) .bo-etapes [aria-current="step"] { color: var(--bo-texte); font-weight: var(--bo-graisse-forte); }
@media (max-width: 699px) {
  :is(.bo-cadre, .bo-auth) .bo-etapes { flex-direction: column; }
  :is(.bo-cadre, .bo-auth) .bo-etapes li:not(:last-child)::after { display: none; }
}
/* Étape en cours et repères pleins des écrans existants : le dégradé du bouton principal. */
:is(.bo-cadre, .bo-auth) :is(.bo-etapes [aria-current="step"] .bo-etapes__num, .bo-comment__num, .pr-section__num, .pr-parcours__num, .ra-etape h3 span, .crm-kpi--plein, .pr-recap__carte:first-child, .pr-bandeau, .acc-nb, .fp-type, .vr-onglets a.actif, .bo-barre__avatar) {
  border-color: transparent;
  background: var(--bo-degrade);
  color: var(--bo-surface) !important;
}

/* ======================================================================
   Jauge de remplissage
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-jauge { height: 6px; border-radius: var(--bo-rayon-pilule); background: var(--bo-neutre-fond); overflow: hidden; }
:is(.bo-cadre, .bo-auth) :is(.bo-jauge > i, .crm-jauge i, .acc-jauge i, .cv-barre i, .kyc__jauge span) { background: var(--bo-degrade); }
:is(.bo-cadre, .bo-auth) .bo-jauge > i { display: block; width: var(--p, 0); height: 100%; border-radius: var(--bo-rayon-pilule); }

/* ======================================================================
   Coque des écrans (lot 2, 28/10/2026) : en-tête d'écran, barre de recherche et de filtres, titres de rubrique.
   Remplace les définitions successives de bo-charte.css (bandeau dégradé), charte-sobre.css (bandeau bleu calme),
   bo-rail.css (boutons d'en-tête en pilules) et bo-maquette.css (en-tête à plat). Le menu, la barre du haut, le fil
   d'Ariane et les onglets sont dans bo-rail.css.
   Une seule action principale par en-tête, désignée dans le gabarit (.adm-btn-principal ou .bo-bouton--principal) :
   la règle qui peignait d'office le dernier bouton en dégradé est supprimée. Les autres boutons sont secondaires.
   ====================================================================== */
:is(.bo-cadre, .bo-auth) .bo-entete { padding-top: var(--bo-esp-5); padding-bottom: var(--bo-esp-3); align-items: center; flex-wrap: wrap; background: none; }
:is(.bo-cadre, .bo-auth) .bo-entete--etroit { max-width: none; }
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__titre { padding-bottom: 0; font-family: var(--bo-police); font-size: var(--bo-taille-ecran); font-weight: var(--bo-graisse-titre); line-height: var(--bo-interligne-serre); letter-spacing: 0; color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__titre::after { display: none; }
:is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__contexte { font-size: var(--bo-taille-texte); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) .bo-entete a:not(.adm-btn):not(.bo-bouton) { color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) .bo-entete :is(input, select) { color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) .bo-entete__actions { gap: var(--bo-esp-2); margin-left: auto; justify-content: flex-end; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) .bo-entete__actions .adm-btn { gap: var(--bo-esp-2); text-decoration: none; }
:is(.bo-cadre, .bo-auth) .bo-entete__actions .adm-btn svg { width: 14px; height: 14px; }
:is(.bo-cadre, .bo-auth) .bo-corps { padding-top: var(--bo-esp-2); }
@media (max-width: 900px) {
  :is(.bo-cadre, .bo-auth) .bo-entete { padding-top: var(--bo-esp-4); }
  :is(.bo-cadre, .bo-auth) .bo-entete .bo-entete__titre { font-size: var(--bo-taille-chiffre); }
}
/* Téléphone : chaque bouton d'en-tête sur sa ligne. Sélecteur léger exprès : la fiche client (bo-dossier.css, « Autres actions ») garde deux boutons par ligne. */
@media (max-width: 700px) {
  .bo-entete__actions .adm-btn { flex: 1 1 100%; }
}

/* Barre de recherche et de filtres des listes (_filtres.html.twig et contact-messages) */
:is(.bo-cadre, .bo-auth) .bo-filtres { display: flex; flex-direction: column; gap: var(--bo-esp-3); 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); }
:is(.bo-cadre, .bo-auth) .bo-filtres__recherche { display: flex; gap: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) .bo-filtres__recherche .adm-champ { flex: 1; min-width: 0; }
:is(.bo-cadre, .bo-auth) .bo-filtres__aide { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) .bo-filtres__blocs { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--bo-esp-3) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) .bo-filtres__plus > .bo-filtres__blocs { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) .bo-filtres__bloc { display: flex; flex-direction: column; gap: var(--bo-esp-2); min-width: 0; }
:is(.bo-cadre, .bo-auth) .bo-filtres__titre { font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-titre); letter-spacing: var(--bo-espacement-rubrique); text-transform: uppercase; }
:is(.bo-cadre, .bo-auth) .bo-filtres__pastilles { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) .bo-filtres select.adm-champ { width: 220px; max-width: 100%; }
:is(.bo-cadre, .bo-auth) .bo-filtres select.bo-filtres__actif { border-color: var(--bo-bleu) !important; background-color: var(--bo-info-fond); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) .bo-filtres__effacer { margin-left: auto; align-self: center; font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) .bo-filtres__plus > summary { cursor: pointer; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-bleu); }
@media (max-width: 700px) {
  :is(.bo-cadre, .bo-auth) .bo-filtres select.adm-champ { width: 100%; }
  :is(.bo-cadre, .bo-auth) .bo-filtres__bloc { width: 100%; }
  :is(.bo-cadre, .bo-auth) .bo-filtres__recherche { flex-wrap: wrap; }
}

/* ======================================================================
   Adaptations mobiles et focus clavier (ex bo-mobile.css, 11/10/2026 à 28/10/2026)
   ====================================================================== */
@media (max-width: 700px) {
  /* M1 : le sous-titre de l'écran passe à la ligne au lieu d'être coupé par « … ». */
  .bo-entete__contexte,
  .bo-entete .bo-entete__contexte {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 1.35;
  }
  /* La phrase « À quoi sert cette page ? » se lit en entier. */
  .bo-comment-replie summary {
    white-space: normal;
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 2px;
  }
  .bo-comment-replie summary span {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    flex: 1 1 100%;
  }

  /* M2 : la pastille de version ne recouvre plus le contenu : bandeau fin en bas, hauteur réservée. */
  .h-screen.overflow-hidden { height: calc(100vh - 18px); height: calc(100dvh - 18px); }

  /* M3 : un tableau qui défile le montre (ombre sur le bord) et garde son premier champ visible. */
  .bo-conv,
  .bo-corps table:not(.pr-table):not(.gf__t) {
    background: linear-gradient(to right, var(--bo-surface) 30%, color-mix(in srgb, var(--bo-surface) 0%, transparent)) left center / 28px 100% no-repeat local,
      linear-gradient(to left, var(--bo-surface) 30%, color-mix(in srgb, var(--bo-surface) 0%, transparent)) right center / 28px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--bo-bleu) 22%, transparent), color-mix(in srgb, var(--bo-bleu) 0%, transparent)) left center / 12px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--bo-bleu) 22%, transparent), color-mix(in srgb, var(--bo-bleu) 0%, transparent)) right center / 12px 100% no-repeat scroll;
  }
  .bo-conv__table tbody th[scope="row"] {
    position: sticky;
    left: 0;
    z-index: 1;
    /* Filet à droite de la colonne figée, dessiné dans la cellule (lot 7 : plus d'ombre hors jetons). */
    background: linear-gradient(to left, var(--bo-trait) 1px, var(--bo-surface) 1px);
  }

  /* M4 : cibles tactiles d'au moins 40 px (WCAG 2.2, critère 2.5.8 : 24 px minimum ; 40 px pour le pouce). */
  button.adm-btn,
  a.adm-btn,
  .dcab-retablir { min-height: 40px; }
  .bo-corps a[href]:not(.adm-btn):not([class*="rounded"]):not(.no-underline) { padding-block: var(--bo-esp-1); }
  a.rounded-full.border { min-height: 40px; display: inline-flex; align-items: center; }
}

/*
 * 18/10/2026 (lot 3, audit D-UX) : contour de focus clavier visible partout dans le BO. L'anneau des champs
 * (bleu à 12 % d'opacité) et le contour violet clair n'atteignaient pas le contraste de 3:1 demandé pour un
 * indicateur de focus. Contour plein, seulement au clavier (:focus-visible) : un clic à la souris ne l'affiche pas.
 * 28/10/2026 (style unifié, lot 0) : un seul style de focus, le jeton --bo-focus-contour (violet #a83aa2, 5,5:1 sur
 * blanc, 5,1:1 sur le fond de page).
 */
:where(a, button, summary, select, textarea, input, [tabindex], [role="button"]):focus-visible {
  outline: var(--bo-focus-contour) !important;
  outline-offset: var(--bo-focus-decalage) !important;
}
.adm-champ:focus-visible, .ec-in:focus-visible,
.ec-champ select:focus-visible, .ec-champ textarea:focus-visible,
.ec-deux select:focus-visible, .ec-ligne select:focus-visible, .ec-ligne textarea:focus-visible {
  outline: var(--bo-focus-contour) !important;
  outline-offset: 1px !important;
  box-shadow: none !important;
}
/* Sur fond sombre (bandeaux, rail replié), le contour passe en blanc. */
.bo-rail :where(a, button, summary):focus-visible, .pr-bandeau :where(a, button):focus-visible { outline-color: var(--bo-surface) !important; }

/* 21/10/2026 : la recherche a déjà son cadre (anneau du conteneur) ; le contour de focus global ne s'y ajoute pas. */
.acc-recherche input:focus-visible, input#bo-recherche:focus-visible, .bo-search input:focus-visible, .bo-search__input:focus-visible { outline: none !important; }

/* 28/10/2026 (Julien, tablette 1024 px) : les tableaux du BO ne poussent plus leurs actions hors de l'écran. Sous 1600 px,
   le texte des cellules passe à la ligne (les montants gardent .nowrap) et les marges internes se resserrent (jusqu'à 1600 px, menu déplié compris). */
@media (max-width: 1600px) {
  .bo-conv__table th, .bo-conv__table td { padding-left: var(--bo-esp-3); padding-right: var(--bo-esp-3); }
  .bo-conv__table td:not(.nowrap), .bo-conv__table tbody th { white-space: normal; }
}
@media (min-width: 901px) and (max-width: 1280px) {
  /* Listes (.cl : leads, clients) : marges resserrées, la colonne d'actions passe à la ligne au lieu de sortir de l'écran. */
  .cl th, .cl td { padding-left: var(--bo-esp-2); padding-right: var(--bo-esp-2); }
  .cl td:last-child { white-space: normal; }
  .cl td:last-child > :is(div, form, span) { flex-wrap: wrap; }
  .cl td:last-child select { max-width: 100%; }
  .la__attribuer { flex-wrap: wrap; justify-content: flex-end; }
}

/* 28/10/2026 (Julien, iPhone) : sur téléphone, le titre et les boutons de l'écran défilent avec le contenu au lieu de rester
   fixés en haut (ils prenaient près de la moitié de l'écran). Même règle que la fiche KYC sous 1024 px. */
@media (max-width: 700px) {
  .bo-zone > .flex.h-full.flex-col { overflow-y: auto; overflow-x: hidden; }
  .bo-zone > .flex.h-full.flex-col > main { flex: none; overflow: visible; min-height: 0; }
}

/* 28/10/2026 (Julien, iPhone) : agenda des rendez-vous. Les lignes ont l'air de liens ; sur téléphone, une carte par rendez-vous. */
.crm-agenda td a { color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 700px) {
  .bo-entete__actions { width: 100%; margin-left: 0 !important; padding-left: 0 !important; }
  .crm-agenda table, .crm-agenda tbody { display: block; width: 100%; }
  .crm-agenda thead { display: none; }
  .crm-agenda tbody { display: grid; gap: var(--bo-esp-2); }
  .crm-agenda tr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; padding: var(--bo-esp-2) var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); background: var(--bo-surface); }
  .crm-agenda td { display: block; padding: 0; white-space: normal; }
  .crm-agenda td:first-child { font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-titre); color: var(--bo-violet-fonce); }
  .crm-agenda td a { display: inline-block; min-height: 32px; padding: var(--bo-esp-1) 0; }
}

/* Audit UX du 28/10/2026 (constats gênants). */
/* CL2, PR1, P3 : action de ligne avec son libellé visible sur grand écran ; en dessous de 1200 px, l'icône seule (le libellé reste lu par les lecteurs d'écran). */
.cl-act.cl-act--txt, .la__ico.cl-act--txt { width: auto; display: inline-flex; align-items: center; gap: var(--bo-esp-1); padding: 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); white-space: nowrap; cursor: pointer; }
@media (max-width: 1199px) {
  .cl-act.cl-act--txt, .la__ico.cl-act--txt { width: 34px; padding: 0; justify-content: center; }
  .cl-act--txt .cl-act__txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
/* K5 : la case à cocher d'une ligne se coche en touchant toute sa cellule. */
.cl-coche__zone { display: flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; margin: calc(-1 * var(--bo-esp-2)); cursor: pointer; }
/* P3 : « Classer » en menu déroulant (Sans suite, Injoignable, Hors cible). */
.la__classer-menu { flex-basis: 100%; text-align: right; font-size: var(--bo-taille-aide); }
.la__classer-menu > summary { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); color: var(--bo-bleu); font-weight: var(--bo-graisse-forte); cursor: pointer; list-style: none; }
.la__classer-menu > summary::-webkit-details-marker { display: none; }
.la__classer-menu .la__classer { display: flex; flex-direction: column; align-items: flex-end; gap: var(--bo-esp-1); margin-top: var(--bo-esp-2); }
.la__classer-menu .la__classer button { min-height: 36px; padding: 0 var(--bo-esp-3); border: 1px solid var(--bo-trait-champ); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); text-decoration: none; font-size: var(--bo-taille-aide); color: var(--bo-bleu); }
.la__classer-menu .la__classer button small { font-weight: var(--bo-graisse-texte); color: var(--bo-texte-2); }
/* I5 : sur iPhone, les encadrés du rendez-vous gardent la même marge à gauche et à droite. */
.crm-main .grid:not([class*="grid-cols"]) { grid-template-columns: minmax(0, 1fr); }
.crm-main input[type=file] { max-width: 100%; }
/* I3 : sur iPhone, la liste des obligatoires manquants se replie sous son titre (le formulaire vient tout de suite). */
.om__titre { cursor: pointer; list-style: none; }
.om__titre::-webkit-details-marker { display: none; }
.om__titre::after { content: " ▾"; }
details[open] > .om__titre::after { content: " ▴"; }
/* S2 : « Tout est enregistré » de l'éditeur du site, lisible (pas de voile pâle) ; ce n'est pas une action. */
.adm-btn.adm-btn--fait:disabled { opacity: 1; color: var(--bo-texte-2); background: var(--bo-fond); cursor: default; }

/* ===== bo-gestion-fin.css ===== */
/*
 * Écrans de gestion (lot 6 du style unifié, 29/10/2026) : anciens attributs style="" des mêmes gabarits que bo-gestion.css.
 *
 * Une classe par contenu distinct de style="" dans un gabarit, nommée « x<abrégé du gabarit>-<rôle> » (xcm-ligne :
 * contact-messages, ligne flex). Valeurs ramenées aux jetons. Placée en fin de paquet bo-fin.css et écrite
 * « :is(.bo-cadre, .bo-auth) balise.classe » : comme l'ancien style="", la règle passe devant les feuilles du BO.
 * Une valeur calculée par Twig reste dans style="" sous forme de propriété personnalisée (style="--xinv-width: 40%"),
 * lue ici par var().
 */

/* ===== _conversion.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xconv-retrait { padding: var(--bo-esp-4) var(--bo-esp-5) 0; }
:is(.bo-cadre, .bo-auth) i.xconv-taille { width: var(--xconv-width); }

/* ===== _mails-volets.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xmv-marge { margin: var(--bo-esp-1) 0 0; }

/* ===== _sante.html.twig ===== */
:is(.bo-cadre, .bo-auth) i.xsan-cadre { background: var(--xsan-background); }

/* ===== _sms-tableau.html.twig ===== */
:is(.bo-cadre, .bo-auth) td.xst-insecable { white-space: pre-wrap; }

/* ===== business-review.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xbr-bloc { max-width: 900px; padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) section.xbr-bloc-2 { max-width: 900px; padding: var(--bo-esp-4); }

/* ===== comptes.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xcom-bloc { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) p.xcom-marge { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) th.xcom-gauche { text-align: left; }
:is(.bo-cadre, .bo-auth) th.xcom-gauche-2 { text-align: left; white-space: normal; }
:is(.bo-cadre, .bo-auth) td.xcom-gauche-3 { white-space: normal; text-align: left; }
:is(.bo-cadre, .bo-auth) td.xcom-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) tr.xcom-inactif { opacity: .55; }

/* ===== confirmation-sensible.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xcs-bloc { flex: none; font-size: var(--bo-taille-chiffre); letter-spacing: .3em; text-align: center; }

/* ===== conformite-reglages.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcr-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xcr-grille { padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-5); max-width: 900px; }
:is(.bo-cadre, .bo-auth) section.xcr-cadre { border: 0; padding: 0; margin: 0; }
:is(.bo-cadre, .bo-auth) h3.xcr-bloc { font-size: var(--bo-taille-aide); margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) label.xcr-grille-2 { display: grid; gap: var(--bo-esp-1); max-width: 520px; }
:is(.bo-cadre, .bo-auth) input.xcr-taille-2 { max-width: 200px; }
:is(.bo-cadre, .bo-auth) :is(input, select, textarea).xcr-taille-3 { max-width: 360px; }
:is(.bo-cadre, .bo-auth) span.xcr-texte { color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) p.xcr-marge { margin: 2px 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) section.xcr-grille-3 { padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-2); max-width: 900px; margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) h2.xcr-bloc-2 { font-size: var(--bo-taille-aide); margin: 0; }
:is(.bo-cadre, .bo-auth) p.xcr-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xcr-cadre-2 { margin: 0; color: var(--bo-attention); background: var(--bo-attention-fond); padding: var(--bo-esp-2) var(--bo-esp-3); border-radius: var(--bo-rayon-controle); }
:is(.bo-cadre, .bo-auth) form.xcr-ligne { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: end; }
:is(.bo-cadre, .bo-auth) label.xcr-grille-4 { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) form.xcr-grille-5 { display: grid; gap: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) input.xcr-taille-4 { max-width: 640px; }
:is(.bo-cadre, .bo-auth) label.xcr-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: flex-start; max-width: 640px; }
:is(.bo-cadre, .bo-auth) div.xcr-ligne-3 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: center; }

/* ===== conservation.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcons-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) section.xcons-bloc { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); max-width: 1100px; }
:is(.bo-cadre, .bo-auth) small.xcons-bloc-2 { display: block; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) h3.xcons-marge { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) label.xcons-ligne { display: flex; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) section.xcons-bloc-3 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-4); }

/* ===== consultations.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcnsl-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xcnsl-ligne { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); display: flex; flex-wrap: wrap; gap: var(--bo-esp-3); align-items: end; }
:is(.bo-cadre, .bo-auth) label.xcnsl-grille { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) input.xcnsl-taille-2 { width: 220px; }
:is(.bo-cadre, .bo-auth) section.xcnsl-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) div.xcnsl-defile { overflow-x: auto; }
:is(.bo-cadre, .bo-auth) td.xcnsl-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) p.xcnsl-ligne-2 { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) span.xcnsl-bloc { align-self: center; }
:is(.bo-cadre, .bo-auth) td.xcnsl-refus { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }

/* ===== contact-appel.html.twig ===== */
:is(.bo-cadre, .bo-auth) ul.xca-bloc { list-style: none; }
:is(.bo-cadre, .bo-auth) span.xca-insecable { white-space: pre-wrap; }

/* ===== contact-ecrire.html.twig ===== */
:is(.bo-cadre, .bo-auth) form.xcecr-grille { display: grid; gap: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) small.xcecr-bloc { display: inline; }
:is(.bo-cadre, .bo-auth) p.xcecr-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) h2.xcecr-marge-2 { margin-top: var(--bo-esp-4); }

/* ===== contact-export-journal.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcej-bloc { margin: 0 0 var(--bo-esp-3); max-width: 75ch; }
:is(.bo-cadre, .bo-auth) section.xcej-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) div.xcej-defile { overflow: auto; }
:is(.bo-cadre, .bo-auth) :is(td, th).xcej-gauche { text-align: left; }
:is(.bo-cadre, .bo-auth) p.xcej-marge { margin: 0; }

/* ===== contact-export.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcexp-bloc { margin: 0 0 var(--bo-esp-3); max-width: 70ch; }
:is(.bo-cadre, .bo-auth) p.xcexp-cadre { padding: var(--bo-esp-3) var(--bo-esp-4); border-left: 4px solid var(--bo-bloquant); margin: 0 0 var(--bo-esp-3); color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) section.xcexp-bloc-2 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) h2.xcexp-marge { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) div.xcexp-grille { display: grid; gap: var(--bo-esp-1); margin-bottom: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) label.xcexp-ligne { display: flex; gap: var(--bo-esp-2); align-items: center; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) div.xcexp-grille-2 { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) div.xcexp-grille-3 { display: grid; gap: var(--bo-esp-2); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) p.xcexp-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) label.xcexp-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: flex-start; }
:is(.bo-cadre, .bo-auth) select.xcexp-taille { max-width: 320px; }
:is(.bo-cadre, .bo-auth) section.xcexp-cadre-2 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); border-left: 4px solid var(--bo-violet); }
:is(.bo-cadre, .bo-auth) h2.xcexp-marge-3 { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xcexp-cadre-3 { 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-texte); }
:is(.bo-cadre, .bo-auth) p.xcexp-cadre-4 { 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-bloquant-fond); color: var(--bo-bloquant); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) h3.xcexp-bloc-3 { margin: var(--bo-esp-3) 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) table.xcexp-taille-2 { max-width: 640px; }
:is(.bo-cadre, .bo-auth) td.xcexp-gauche { text-align: left; width: 55%; }
:is(.bo-cadre, .bo-auth) :is(td, th).xcexp-gauche-2 { text-align: left; }
:is(.bo-cadre, .bo-auth) p.xcexp-marge-4 { margin: var(--bo-esp-2) 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) div.xcexp-defile { overflow: auto; }
:is(.bo-cadre, .bo-auth) h3.xcexp-bloc-4 { margin: var(--bo-esp-4) 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) label.xcexp-ligne-3 { display: flex; gap: var(--bo-esp-2); align-items: flex-start; margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) ul.xcexp-bloc-5 { margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) div.xcexp-ligne-4 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) section.xcexp-bloc-6 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-4); }

/* ===== contact-message.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xmsg-retrait { padding: var(--bo-esp-5) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) dl.xmsg-grille { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: var(--bo-esp-1) var(--bo-esp-4); margin: 0 0 var(--bo-esp-4); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) :is(dd, form, p).xmsg-marge-3 { margin: 0; }
:is(.bo-cadre, .bo-auth) button.xmsg-bloc-2 { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }
:is(.bo-cadre, .bo-auth) p.xmsg-marge-4 { margin-top: 0; }
:is(.bo-cadre, .bo-auth) div.xmsg-cadre-2 { white-space: pre-wrap; font-size: var(--bo-taille-texte); line-height: 1.6; color: var(--bo-bleu); border-top: 1px solid var(--bo-trait); padding-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) section.xmsg-bloc-3 { padding: var(--bo-esp-5) var(--bo-esp-5); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) div.xmsg-cadre-3 { margin: -3px 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-ok-fond); border-radius: var(--bo-rayon-controle); background: var(--bo-ok-fond); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) div.xmsg-ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2); align-items: center; {{ not loop.first ? 'margin-top: 8px' }}; }
:is(.bo-cadre, .bo-auth) strong.xmsg-texte-2 { color: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) p.xmsg-marge-5 { margin: var(--bo-esp-2) 0 0; }
:is(.bo-cadre, .bo-auth) p.xmsg-marge-6 { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) section.xmsg-bloc-4 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) h2.xmsg-marge-7 { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) form.xmsg-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: center; margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) button.xmsg-bloc-5 { padding: 3px var(--bo-esp-2); font-size: var(--bo-taille-legende); }
:is(.bo-cadre, .bo-auth) p.xmsg-bloc-6 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) form.xmsg-ligne-3 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) p.xmsg-bloc-7 { margin: 0; font-size: var(--bo-taille-aide); }

/* ===== contact-messages.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xmsgs-bloc { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xmsgs-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xmsgs-texte { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xmsgs-marge-2 { margin: var(--bo-esp-2) 0 0; }
:is(.bo-cadre, .bo-auth) i.xmsgs-cadre { background: var(--bo-attention-fond); }
:is(.bo-cadre, .bo-auth) i.xmsgs-cadre-4 { background: var(--bo-bloquant-fond); }
:is(.bo-cadre, .bo-auth) i.xmsgs-cadre-5 { background: var(--bo-neutre-fond); }
:is(.bo-cadre, .bo-auth) input.xmsgs-taille { min-width: 240px; }
:is(.bo-cadre, .bo-auth) col.xmsgs-taille-2 { width: 40px; }
:is(.bo-cadre, .bo-auth) col.xmsgs-taille-3 { width: 128px; }
:is(.bo-cadre, .bo-auth) col.xmsgs-taille-4 { width: 76px; }
:is(.bo-cadre, .bo-auth) col.xmsgs-taille-5 { width: 40%; }
:is(.bo-cadre, .bo-auth) col.xmsgs-taille-6 { width: 96px; }

/* ===== contacts-corbeille.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xccor-marge { margin: var(--bo-esp-3) 0; }
:is(.bo-cadre, .bo-auth) small.xccor-bloc { display: block; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) td.xccor-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) form.xccor-bloc-2 { display: inline; }

/* ===== contacts-import.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xci-cadre { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); border-left: 4px solid var(--bo-violet); }
:is(.bo-cadre, .bo-auth) h2.xci-marge { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xci-bloc { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) p.xci-marge-2 { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) p.xci-cadre-2 { 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-texte); }
:is(.bo-cadre, .bo-auth) form.xci-ligne { display: flex; gap: var(--bo-esp-2); margin-bottom: var(--bo-esp-4); flex-wrap: wrap; align-items: center; }
:is(.bo-cadre, .bo-auth) label.xci-ligne-2 { display: inline-flex; gap: var(--bo-esp-1); align-items: center; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) div.xci-defile { max-height: 520px; overflow: auto; }
:is(.bo-cadre, .bo-auth) :is(td, th).xci-gauche { text-align: left; }
:is(.bo-cadre, .bo-auth) span.xci-cadre-3 { background: var(--bo-attention-fond); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) label.xci-ligne-3 { display: inline-flex; gap: var(--bo-esp-1); align-items: center; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-attention); white-space: nowrap; }
:is(.bo-cadre, .bo-auth) span.xci-cadre-4 { background: var(--bo-violet-fond); color: var(--bo-violet-fonce); }
:is(.bo-cadre, .bo-auth) ul.xci-bloc-2 { margin: 0; padding: 0; list-style: none; }
:is(.bo-cadre, .bo-auth) li.xci-marge-3 { margin: 2px 0; }
:is(.bo-cadre, .bo-auth) label.xci-ligne-4 { display: inline-flex; gap: var(--bo-esp-1); align-items: center; font-size: var(--bo-taille-aide); font-weight: var(--bo-graisse-forte); color: var(--bo-attention); white-space: nowrap; margin-right: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) span.xci-texte { color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) select.xci-bloc-3 { margin-top: var(--bo-esp-1); max-width: 420px; }
:is(.bo-cadre, .bo-auth) div.xci-bloc-4 { margin-top: 3px; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) div.xci-grille { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--bo-esp-4); align-items: start; }
:is(.bo-cadre, .bo-auth) section.xci-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) section.xci-bloc-5 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) div.xci-defile-2 { overflow: auto; }
:is(.bo-cadre, .bo-auth) p.xci-marge-4 { margin: 0; }

/* ===== contenus-controle.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcctl-taille { max-width: 920px; }
:is(.bo-cadre, .bo-auth) p.xcctl-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xcctl-bloc { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) :is(small, td).xcctl-texte { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xcctl-marge-2 { margin: var(--bo-esp-2) 0; }

/* ===== corbeille.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xcorb-marge { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) p.xcorb-ligne { margin: 0 0 var(--bo-esp-3); display: flex; gap: var(--bo-esp-1); flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) p.xcorb-marge-2 { margin: var(--bo-esp-3) 0; }
:is(.bo-cadre, .bo-auth) small.xcorb-bloc { display: block; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) td.xcorb-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) form.xcorb-bloc-2 { display: inline; }
:is(.bo-cadre, .bo-auth) small.xcorb-bloc-3 { display: block; color: var(--bo-texte-2); white-space: normal; max-width: 260px; }

/* ===== corrections.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xcorr-cadre { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); border: 1px solid var(--bo-trait); }
:is(.bo-cadre, .bo-auth) h2.xcorr-marge { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xcorr-bloc { margin: 0 0 var(--bo-esp-2); white-space: pre-line; }
:is(.bo-cadre, .bo-auth) p.xcorr-marge-2 { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) b.xcorr-texte { color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) th.xcorr-taille { width: 34%; }
:is(.bo-cadre, .bo-auth) div.xcorr-ligne { display: flex; gap: var(--bo-esp-2); align-items: flex-start; margin: 3px 0; }
:is(.bo-cadre, .bo-auth) span.xcorr-cadre-2 { flex: none; font-size: var(--bo-taille-legende); font-weight: var(--bo-graisse-forte); letter-spacing: .04em; text-transform: uppercase; padding: 2px var(--bo-esp-2); border-radius: var(--bo-rayon-pilule); background: var(--xcorr-background); color: var(--xcorr-color); }
:is(.bo-cadre, .bo-auth) span.xcorr-bloc-2 { font-size: var(--bo-taille-aide); line-height: 1.45; word-break: break-word; }
:is(.bo-cadre, .bo-auth) form.xcorr-ligne-2 { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }

/* ===== crm-opportunite-souscription.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xcos-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) p.xcos-insecable { white-space: pre-line; }
:is(.bo-cadre, .bo-auth) p.xcos-marge { margin-top: 0; }
:is(.bo-cadre, .bo-auth) p.xcos-marge-2 { margin: var(--bo-esp-1) 0 0; }

/* ===== crm-taches.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xct-taille { min-width: 18rem; }
:is(.bo-cadre, .bo-auth) small.xct-insecable { white-space: pre-wrap; }
:is(.bo-cadre, .bo-auth) form.xct-marge { margin-top: var(--bo-esp-1); }

/* ===== documents-cabinet.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xdc-marge { margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) small.xdc-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) div.xdc-defile { overflow-x: auto; }
:is(.bo-cadre, .bo-auth) p.xdc-marge-3 { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) td.xdc-droite { text-align: right; }
:is(.bo-cadre, .bo-auth) a.xdc-bloc { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-aide); }

/* ===== double-auth-config.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xdac-retrait { padding: var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) form.xdac-ligne { display: flex; gap: var(--bo-esp-2); align-items: flex-end; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) input.xdac-bloc { width: 160px; letter-spacing: .2em; }
:is(.bo-cadre, .bo-auth) p.xdac-marge { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) ol.xdac-bloc-2 { margin: 0 0 var(--bo-esp-4); padding-left: var(--bo-esp-5); line-height: 1.7; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) div.xdac-ligne-2 { display: flex; gap: var(--bo-esp-5); align-items: center; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) div.xdac-cadre { background: var(--bo-surface); padding: var(--bo-esp-3); border: 1px solid var(--bo-trait); border-radius: var(--bo-rayon-carte); line-height: 0; }
:is(.bo-cadre, .bo-auth) div.xdac-bloc-3 { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); max-width: 320px; }
:is(.bo-cadre, .bo-auth) code.xdac-bloc-4 { display: inline-block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-bleu); word-break: break-all; letter-spacing: .06em; }
:is(.bo-cadre, .bo-auth) form.xdac-ligne-3 { display: flex; gap: var(--bo-esp-2); align-items: flex-end; flex-wrap: wrap; margin-top: var(--bo-esp-5); }

/* ===== double-auth.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xda-bloc { flex: none; font-size: var(--bo-taille-chiffre); letter-spacing: .3em; text-align: center; }

/* ===== envois.html.twig ===== */
:is(.bo-cadre, .bo-auth) :is(p, span).xenv-texte { color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) p.xenv-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) h2.xenv-bloc { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xenv-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xenv-marge-2 { margin: var(--bo-esp-1) 0 0; }
:is(.bo-cadre, .bo-auth) p.xenv-bloc-2 { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xenv-bloc-3 { margin: 0; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) td.xenv-texte-2 { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) form.xenv-taille-2 { max-width: 760px; }
:is(.bo-cadre, .bo-auth) label.xenv-grille { display: grid; gap: var(--bo-esp-1); margin: var(--bo-esp-2) 0; }
:is(.bo-cadre, .bo-auth) input.xenv-taille-3 { max-width: 200px; }

/* ===== erreurs.html.twig ===== */
:is(.bo-cadre, .bo-auth) span.xerr-defile { overflow-wrap: anywhere; }

/* ===== espace-revue.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xer-ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-2) var(--bo-esp-4); align-items: center; justify-content: space-between; }
:is(.bo-cadre, .bo-auth) p.xer-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xer-bloc { white-space: pre-line; margin-top: 0; }
:is(.bo-cadre, .bo-auth) p.xer-marge-2 { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) th.xer-centre { text-align: center; }
:is(.bo-cadre, .bo-auth) div.xer-marge-3 { margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) div.xer-ligne-2 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) input.xer-bloc-2 { flex: 1; min-width: 200px; padding: var(--bo-esp-2) var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) div.xer-grille { display: grid; gap: var(--bo-esp-4); }

/* ===== evolution.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xevol-bloc { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); max-width: 980px; }
:is(.bo-cadre, .bo-auth) dl.xevol-grille { display: grid; grid-template-columns: 200px 1fr; gap: var(--bo-esp-1) var(--bo-esp-4); margin: 0; }
:is(.bo-cadre, .bo-auth) dd.xevol-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xevol-marge-2 { margin: var(--bo-esp-3) 0 0; }
:is(.bo-cadre, .bo-auth) div.xevol-ligne { display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; align-items: end; margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) form.xevol-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: end; }
:is(.bo-cadre, .bo-auth) :is(form, p, table).xevol-marge-3 { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) th.xevol-taille { width: 45%; }
:is(.bo-cadre, .bo-auth) ul.xevol-bloc-2 { margin: var(--bo-esp-1) 0; padding-left: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) form.xevol-ligne-3 { display: flex; gap: var(--bo-esp-2); align-items: end; margin-top: var(--bo-esp-2); }

/* ===== evolutions.html.twig ===== */
:is(.bo-cadre, .bo-auth) form.xevols-bloc { display: inline; }
:is(.bo-cadre, .bo-auth) p.xevols-bloc-2 { margin: 0 0 var(--bo-esp-3); max-width: 820px; }
:is(.bo-cadre, .bo-auth) details.xevols-bloc-3 { padding: var(--bo-esp-3) var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) form.xevols-ligne { display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; align-items: end; margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) :is(details, section).xevols-bloc-4 { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xevols-marge { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) div.xevols-ligne-2 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: end; margin: var(--bo-esp-2) 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) input.xevols-taille { min-width: 320px; }
:is(.bo-cadre, .bo-auth) div.xevols-ligne-3 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: center; margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) span.xevols-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) th.xevols-taille-2 { width: 30px; }
:is(.bo-cadre, .bo-auth) th.xevols-taille-3 { width: 40%; }

/* ===== investissements-import.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xii-bloc { padding: var(--bo-esp-4) var(--bo-esp-5); max-width: 760px; }
:is(.bo-cadre, .bo-auth) div.xii-marge { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) h2.xii-marge-2 { margin: var(--bo-esp-5) 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xii-marge-3 { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) ul.xii-bloc-2 { padding-left: var(--bo-esp-4); margin: 0; }
:is(.bo-cadre, .bo-auth) p.xii-marge-4 { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) table.xii-cadre { width: 100%; border-collapse: collapse; }
:is(.bo-cadre, .bo-auth) :is(td, th).xii-droite { text-align: right; }
:is(.bo-cadre, .bo-auth) div.xii-ligne { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-4); flex-wrap: wrap; align-items: center; }
:is(.bo-cadre, .bo-auth) section.xii-bloc-3 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) h2.xii-marge-5 { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xii-marge-6 { margin: 0; }

/* ===== investissements.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xinv-bloc { padding: var(--bo-esp-5) var(--bo-esp-6); text-align: center; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) td.xinv-texte { font-weight: var(--bo-graisse-forte); }

/* ===== lead-rdv.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xlr-cadre { border-left: 4px solid var(--bo-attention); margin: 0 0 var(--bo-esp-4); padding: var(--bo-esp-3) var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) p.xlr-marge { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) ul.xlr-bloc { margin: 0; padding-left: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) label.xlr-ligne { display: flex; gap: var(--bo-esp-2); align-items: center; margin: var(--bo-esp-3) 0 0; }

/* ===== login.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xlog-bloc { flex: none; }

/* ===== messagerie-reglages.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xmr-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xmr-grille { padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-5); max-width: 900px; }
:is(.bo-cadre, .bo-auth) fieldset.xmr-grille-2 { border: 0; padding: 0; margin: 0; display: grid; gap: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) legend.xmr-bloc { font-size: var(--bo-taille-aide); margin-bottom: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) label.xmr-grille-3 { display: grid; gap: var(--bo-esp-1); max-width: 520px; }
:is(.bo-cadre, .bo-auth) select.xmr-taille-2 { max-width: 360px; }
:is(.bo-cadre, .bo-auth) input.xmr-taille-3 { max-width: 200px; }
:is(.bo-cadre, .bo-auth) span.xmr-texte { color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) section.xmr-bloc-2 { padding: var(--bo-esp-4) var(--bo-esp-5); max-width: 900px; margin-top: var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) h2.xmr-bloc-3 { font-size: var(--bo-taille-aide); margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xmr-marge { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) p.xmr-marge-2 { margin: 0; }

/* ===== messages-echecs.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xme-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) td.xme-defile { white-space: normal; overflow-wrap: anywhere; }
:is(.bo-cadre, .bo-auth) form.xme-ligne { display: flex; gap: var(--bo-esp-1); margin: 0; }
:is(.bo-cadre, .bo-auth) button.xme-bloc { padding: var(--bo-esp-1) var(--bo-esp-3); font-size: var(--bo-taille-legende); }

/* ===== messages-lot.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xml-grille { padding: var(--bo-esp-5) var(--bo-esp-5); display: grid; gap: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) p.xml-bloc { margin: 0; font-size: var(--bo-taille-sous-titre); }
:is(.bo-cadre, .bo-auth) p.xml-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xml-bloc-2 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) ul.xml-bloc-3 { margin: 0; padding-left: var(--bo-esp-4); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) p.xml-bloc-4 { margin: 0; font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) form.xml-ligne { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; }

/* ===== mises-a-jour.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xmaj-taille { max-width: 920px; }
:is(.bo-cadre, .bo-auth) input.xmaj-taille-2 { min-width: 260px; }
:is(.bo-cadre, .bo-auth) h2.xmaj-bloc { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); }
:is(.bo-cadre, .bo-auth) div.xmaj-marge { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) p.xmaj-marge-2 { margin: var(--bo-esp-3) 0 0; }

/* ===== modele-document.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xmd-cadre { margin: 0 0 var(--bo-esp-3); padding: var(--bo-esp-3) var(--bo-esp-4); border: 1px solid var(--bo-attention-fond); background: var(--bo-attention-fond); border-radius: var(--bo-rayon-carte); font-size: var(--bo-taille-aide); line-height: 1.55; color: var(--bo-texte); }
:is(.bo-cadre, .bo-auth) b.xmd-texte { color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) p.xmd-marge { margin: var(--bo-esp-1) 0 0; }
:is(.bo-cadre, .bo-auth) ul.xmd-bloc { margin: var(--bo-esp-1) 0 0; padding-left: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) details.xmd-marge-2 { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) summary.xmd-bloc-2 { cursor: pointer; }
:is(.bo-cadre, .bo-auth) p.xmd-marge-3 { margin: var(--bo-esp-2) 0 2px; }
:is(.bo-cadre, .bo-auth) pre.xmd-cadre-2 { white-space: pre-wrap; margin: 0; padding: var(--bo-esp-2); border-radius: var(--bo-rayon-controle); background: var(--bo-surface); font-size: var(--bo-taille-legende); }
:is(.bo-cadre, .bo-auth) label.xmd-ligne { display: flex; gap: var(--bo-esp-1); align-items: center; margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) div.xmd-grille { display: grid; gap: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) input.xmd-bloc-3 { width: 100%; margin-bottom: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) input.xmd-taille { width: 100%; }
:is(.bo-cadre, .bo-auth) div.xmd-ligne-2 { display: flex; gap: var(--bo-esp-2); margin: 0 0 var(--bo-esp-1); align-items: center; }
:is(.bo-cadre, .bo-auth) input.xmd-bloc-4 { flex: 1; }
:is(.bo-cadre, .bo-auth) label.xmd-bloc-5 { font-size: var(--bo-taille-legende); color: var(--bo-bloquant); white-space: nowrap; }
:is(.bo-cadre, .bo-auth) div.xmd-grille-2 { display: grid; gap: var(--bo-esp-3); position: sticky; top: 12px; }
:is(.bo-cadre, .bo-auth) p.xmd-marge-4 { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) div.xmd-marge-5 { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) button.xmd-marge-6 { margin-left: auto; }

/* ===== mot-de-passe-oublie.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xmdpo-bloc { flex: none; }

/* ===== procedures.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xproc-ligne { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) form.xproc-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: center; flex-wrap: wrap; margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) p.xproc-marge { margin: var(--bo-esp-3) 0; }
:is(.bo-cadre, .bo-auth) p.xproc-marge-2 { margin: var(--bo-esp-3) 0 0; }
:is(.bo-cadre, .bo-auth) form.xproc-ligne-3 { display: flex; gap: var(--bo-esp-2); align-items: center; margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) input.xproc-taille { width: 80px; }

/* ===== produits-reglages.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xpr-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xpr-grille { padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-5); max-width: 900px; }
:is(.bo-cadre, .bo-auth) fieldset.xpr-grille-2 { border: 0; padding: 0; margin: 0; display: grid; gap: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) legend.xpr-bloc { font-size: var(--bo-taille-aide); margin-bottom: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) label.xpr-grille-3 { display: grid; gap: var(--bo-esp-1); max-width: 520px; }
:is(.bo-cadre, .bo-auth) select.xpr-taille-2 { max-width: 360px; }
:is(.bo-cadre, .bo-auth) input.xpr-taille-3 { max-width: 200px; }
:is(.bo-cadre, .bo-auth) span.xpr-texte { color: var(--bo-bloquant); }

/* ===== produits-structures.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xps-bloc { max-width: 860px; margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) label.xps-bloc-2 { grid-column: 1/-1; }
:is(.bo-cadre, .bo-auth) input.xps-taille { max-width: 160px; }
:is(.bo-cadre, .bo-auth) div.xps-ligne { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) section.xps-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) details.xps-marge { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) summary.xps-bloc-3 { cursor: pointer; }

/* ===== profil.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xprof-grille { display: grid; gap: var(--bo-esp-4); align-content: start; }

/* ===== referentiel-cle.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xrcle-bloc { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) p.xrcle-bloc-2 { font-size: var(--bo-taille-chiffre); margin: var(--bo-esp-1) 0 0; }
:is(.bo-cadre, .bo-auth) form.xrcle-ligne { margin-top: var(--bo-esp-3); display: flex; gap: var(--bo-esp-2); align-items: end; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) label.xrcle-grille { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) b.xrcle-marge { margin-left: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) form.xrcle-grille-2 { display: grid; gap: var(--bo-esp-2); max-width: 640px; margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) p.xrcle-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) section.xrcle-retrait { padding: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xrcle-marge-3 { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) td.xrcle-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) form.xrcle-bloc-3 { display: inline; }
:is(.bo-cadre, .bo-auth) p.xrcle-marge-4 { margin: var(--bo-esp-2) 0 0; }

/* ===== referentiels-bareme.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrbar-marge { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) section.xrbar-bloc { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xrbar-taille { width: 100%; }
:is(.bo-cadre, .bo-auth) p.xrbar-marge-2 { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) form.xrbar-grille { display: grid; gap: var(--bo-esp-2); max-width: 760px; }
:is(.bo-cadre, .bo-auth) button.xrbar-bloc-2 { justify-self: start; }
:is(.bo-cadre, .bo-auth) td.xrbar-taille-2 { width: 60%; }
:is(.bo-cadre, .bo-auth) h3.xrbar-marge-3 { margin-top: var(--bo-esp-3); }

/* ===== referentiels-baremes.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrbars-bloc { margin: 0 0 var(--bo-esp-3); max-width: 760px; }
:is(.bo-cadre, .bo-auth) section.xrbars-bloc-2 { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) form.xrbars-ligne { display: flex; gap: var(--bo-esp-2); align-items: center; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) input.xrbars-taille { width: auto; }
:is(.bo-cadre, .bo-auth) :is(p, table).xrbars-marge { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) section.xrbars-retrait { padding: var(--bo-esp-4); }

/* ===== referentiels-figees.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xrf-retrait { padding: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) section.xrf-bloc { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xrf-taille { width: 100%; }
:is(.bo-cadre, .bo-auth) summary.xrf-bloc-2 { cursor: pointer; }
:is(.bo-cadre, .bo-auth) table.xrf-bloc-3 { width: 100%; margin-top: var(--bo-esp-2); }

/* ===== referentiels.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xref-bloc { margin: 0 0 var(--bo-esp-3); max-width: 760px; }
:is(.bo-cadre, .bo-auth) div.xref-cadre { margin: 0 0 var(--bo-esp-3); max-width: 760px; 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); }
:is(.bo-cadre, .bo-auth) span.xref-bloc-2 { display: block; }
:is(.bo-cadre, .bo-auth) section.xref-bloc-3 { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xref-marge { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) th.xref-taille { width: 55%; }

/* ===== registre-soupcons.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrs-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) section.xrs-bloc { max-width: 900px; padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-3); }

/* ===== registres.html.twig ===== */
:is(.bo-cadre, .bo-auth) form.xregi-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) caption.xregi-gauche { text-align: left; }
:is(.bo-cadre, .bo-auth) details.xregi-marge-2 { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) form.xregi-marge-3 { margin: var(--bo-esp-1) 0; }

/* ===== reglages-cabinet.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrcab-bloc { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) div.xrcab-ligne { display: flex; gap: var(--bo-esp-4); align-items: center; flex-wrap: wrap; margin: var(--bo-esp-2) 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) img.xrcab-cadre { max-height: 72px; max-width: 240px; background: var(--bo-trait); padding: var(--bo-esp-2); border-radius: var(--bo-rayon-controle); }
:is(.bo-cadre, .bo-auth) form.xrcab-ligne-2 { display: flex; gap: var(--bo-esp-3); align-items: center; flex-wrap: wrap; margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) form.xrcab-marge { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) dl.xrcab-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xrcab-texte { font-size: var(--bo-taille-aide); color: var(--bo-bleu); }

/* ===== reglages-historique.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrh-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xrh-ligne { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); display: flex; flex-wrap: wrap; gap: var(--bo-esp-3); align-items: end; }
:is(.bo-cadre, .bo-auth) label.xrh-grille { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) section.xrh-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) div.xrh-defile { overflow-x: auto; }
:is(.bo-cadre, .bo-auth) td.xrh-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) td.xrh-defile-2 { max-width: 320px; overflow-wrap: anywhere; }
:is(.bo-cadre, .bo-auth) p.xrh-ligne-2 { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) span.xrh-bloc { align-self: center; }

/* ===== reglages.html.twig ===== */
:is(.bo-cadre, .bo-auth) h2.xregl-bloc { display: inline; }

/* ===== regles-apercu.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xra-bloc { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) p.xra-bloc-2 { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xra-bloc-3 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) div.xra-defile { overflow-x: auto; }
:is(.bo-cadre, .bo-auth) table.xra-cadre { width: 100%; border-collapse: collapse; font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) th.xra-gauche { text-align: left; padding: var(--bo-esp-1) var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) tr.xra-cadre-2 { border-top: 1px solid var(--bo-trait); }
:is(.bo-cadre, .bo-auth) td.xra-retrait { padding: var(--bo-esp-1) var(--bo-esp-2); }

/* ===== regles.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xregs-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xregs-taille-2 { max-width: 980px; }
:is(.bo-cadre, .bo-auth) h2.xregs-bloc { margin: var(--bo-esp-4) 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) small.xregs-texte { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) label.xregs-grille { display: grid; gap: var(--bo-esp-1); max-width: 560px; margin: var(--bo-esp-2) 0; }
:is(.bo-cadre, .bo-auth) select.xregs-taille-3 { max-width: 360px; }
:is(.bo-cadre, .bo-auth) input.xregs-taille-4 { max-width: 200px; }
:is(.bo-cadre, .bo-auth) span.xregs-texte-2 { color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) p.xregs-marge { margin: var(--bo-esp-2) 0 0; }
:is(.bo-cadre, .bo-auth) p.xregs-bloc-2 { margin: var(--bo-esp-1) 0 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) section.xregs-marge-2 { margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) label.xregs-grille-2 { display: grid; gap: var(--bo-esp-1); max-width: 560px; }
:is(.bo-cadre, .bo-auth) div.xregs-marge-3 { margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) h2.xregs-bloc-3 { margin: var(--bo-esp-5) 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xregs-bloc-4 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xregs-marge-4 { margin: 0; }

/* ===== reinitialiser.html.twig ===== */
:is(.bo-cadre, .bo-auth) input.xrei-bloc { flex: none; }

/* ===== relances-regles.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xrr-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) span.xrr-insecable { white-space: pre-line; }

/* ===== relances.html.twig ===== */
:is(.bo-cadre, .bo-auth) form.xrel-marge { margin: 0; }
:is(.bo-cadre, .bo-auth) p.xrel-insecable { white-space: pre-line; }
:is(.bo-cadre, .bo-auth) form.xrel-grille { display: grid; gap: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) label.xrel-ligne { display: flex; gap: var(--bo-esp-2); font-size: var(--bo-taille-aide); }
:is(.bo-cadre, .bo-auth) button.xrel-bloc { justify-self: start; }
:is(.bo-cadre, .bo-auth) h2.xrel-marge-2 { margin-top: var(--bo-esp-4); }

/* ===== report-operations.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xro-bloc { margin: 0 0 var(--bo-esp-3); max-width: 860px; }
:is(.bo-cadre, .bo-auth) div.xro-bloc-2 { padding: var(--bo-esp-5) var(--bo-esp-6); text-align: center; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) section.xro-bloc-3 { padding: var(--bo-esp-4); margin-bottom: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) :is(h2, p).xro-marge { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) form.xro-ligne { display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; align-items: end; margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) input.xro-taille { width: 130px; }
:is(.bo-cadre, .bo-auth) form.xro-ligne-2 { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) section.xro-bloc-4 { padding: var(--bo-esp-4); margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) table.xro-marge-2 { margin-top: var(--bo-esp-2); }

/* ===== secrets.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xsec-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) h2.xsec-bloc { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) ol.xsec-bloc-2 { margin: 0 0 var(--bo-esp-2) var(--bo-esp-4); padding: 0; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) h2.xsec-bloc-3 { margin: var(--bo-esp-4) 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xsec-marge { margin: var(--bo-esp-1) 0; }
:is(.bo-cadre, .bo-auth) p.xsec-bloc-4 { margin: 2px 0; font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) label.xsec-grille { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xsec-bloc-5 { margin: 0 0 var(--bo-esp-2); max-width: 820px; }
:is(.bo-cadre, .bo-auth) form.xsec-ligne { display: flex; gap: var(--bo-esp-2); align-items: center; flex-wrap: wrap; }
:is(.bo-cadre, .bo-auth) select.xsec-taille-2 { max-width: 260px; }
:is(.bo-cadre, .bo-auth) h3.xsec-bloc-6 { margin: var(--bo-esp-4) 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xsec-bloc-7 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) small.xsec-texte { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) p.xsec-bloc-8 { margin: 0; color: var(--bo-texte-2); }

/* ===== securite-journal.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xsj-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xsj-ligne { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); display: flex; flex-wrap: wrap; gap: var(--bo-esp-3); align-items: end; }
:is(.bo-cadre, .bo-auth) label.xsj-grille { display: grid; gap: var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) section.xsj-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) div.xsj-defile { overflow-x: auto; }
:is(.bo-cadre, .bo-auth) td.xsj-insecable { white-space: nowrap; }
:is(.bo-cadre, .bo-auth) p.xsj-ligne-2 { display: flex; gap: var(--bo-esp-2); margin-top: var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) span.xsj-bloc { align-self: center; }
:is(.bo-cadre, .bo-auth) td.xsj-refus { color: var(--bo-bloquant); font-weight: var(--bo-graisse-forte); }

/* ===== securite-reglages.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xsr-taille { max-width: 900px; }
:is(.bo-cadre, .bo-auth) form.xsr-grille { padding: var(--bo-esp-4) var(--bo-esp-5); display: grid; gap: var(--bo-esp-5); max-width: 900px; }
:is(.bo-cadre, .bo-auth) section.xsr-cadre { border: 0; padding: 0; margin: 0; }
:is(.bo-cadre, .bo-auth) h3.xsr-bloc { font-size: var(--bo-taille-aide); margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xsr-marge { margin: 2px 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xsr-bloc-2 { color: var(--bo-bloquant); margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) div.xsr-ligne { display: flex; flex-wrap: wrap; gap: var(--bo-esp-1) var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) label.xsr-ligne-2 { display: flex; gap: var(--bo-esp-1); align-items: center; }
:is(.bo-cadre, .bo-auth) label.xsr-grille-2 { display: grid; gap: var(--bo-esp-1); max-width: 420px; }
:is(.bo-cadre, .bo-auth) input.xsr-taille-2 { max-width: 200px; }
:is(.bo-cadre, .bo-auth) span.xsr-texte { color: var(--bo-bloquant); }

/* ===== simulateurs.html.twig ===== */
:is(.bo-cadre, .bo-auth) div.xsim-cadre { margin: var(--bo-esp-3) var(--bo-esp-7) 0; 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); }
:is(.bo-cadre, .bo-auth) span.xsim-bloc { display: block; }
:is(.bo-cadre, .bo-auth) span.xsim-bloc-2 { display: block; margin-top: var(--bo-esp-1); font-size: var(--bo-taille-aide); }

/* ===== synthese-investissements.html.twig ===== */
:is(.bo-cadre, .bo-auth) form.xsi-ligne { padding: var(--bo-esp-3) var(--bo-esp-4); margin-bottom: var(--bo-esp-4); display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; align-items: end; }
:is(.bo-cadre, .bo-auth) div.xsi-grille { display: grid; grid-template-columns: repeat(auto-fit,minmax(340px,1fr)); gap: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) section.xsi-retrait { padding: var(--bo-esp-4); }

/* ===== taches.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xtac-bloc { margin: 0 0 var(--bo-esp-3); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) code.xtac-texte { font-size: var(--bo-taille-legende); }
:is(.bo-cadre, .bo-auth) h2.xtac-bloc-2 { margin: var(--bo-esp-5) 0 0; font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) form.xtac-ligne { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: center; }
:is(.bo-cadre, .bo-auth) input.xtac-taille { max-width: 280px; }
:is(.bo-cadre, .bo-auth) form.xtac-marge { margin-top: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) small.xtac-texte-2 { color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) h3.xtac-texte-3 { font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xtac-texte-4 { font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) h2.xtac-bloc-3 { margin: var(--bo-esp-5) 0 var(--bo-esp-2); font-size: var(--bo-taille-sous-titre); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xtac-bloc-4 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }

/* ===== technique-sauvegarde.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xts-taille { max-width: 920px; }
:is(.bo-cadre, .bo-auth) input.xts-taille-2 { width: 110px; }

/* ===== technique.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xtec-taille { max-width: 920px; }
:is(.bo-cadre, .bo-auth) input.xtec-taille-2 { width: 90px; }
:is(.bo-cadre, .bo-auth) p.xtec-texte { color: var(--bo-texte-2); }

/* ===== valorisations.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xval-bloc { margin: 0 0 var(--bo-esp-3); max-width: 860px; }
:is(.bo-cadre, .bo-auth) section.xval-marge { margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) form.xval-ligne { padding: var(--bo-esp-3) var(--bo-esp-4); margin-bottom: var(--bo-esp-4); display: flex; gap: var(--bo-esp-3); flex-wrap: wrap; align-items: end; }
:is(.bo-cadre, .bo-auth) input.xval-taille { width: 110px; }
:is(.bo-cadre, .bo-auth) span.xval-taille-2 { max-width: 520px; }
:is(.bo-cadre, .bo-auth) div.xval-bloc-2 { padding: var(--bo-esp-5) var(--bo-esp-6); text-align: center; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) form.xval-marge-2 { margin-bottom: var(--bo-esp-1); }

/* ===== veille-articles.html.twig ===== */
:is(.bo-cadre, .bo-auth) span.xva-texte { font-weight: var(--bo-graisse-texte); }
:is(.bo-cadre, .bo-auth) p.xva-retrait { padding: 0 var(--bo-esp-5) var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) p.xva-marge { margin: -3px 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) th.xva-gauche { text-align: left; }
:is(.bo-cadre, .bo-auth) th.xva-gauche-2 { white-space: normal; text-align: left; }
:is(.bo-cadre, .bo-auth) div.xva-ligne { display: flex; gap: var(--bo-esp-3); align-items: center; flex-wrap: wrap; padding: var(--bo-esp-3) var(--bo-esp-4); border-bottom: 1px solid var(--bo-trait); }
:is(.bo-cadre, .bo-auth) label.xva-ligne-2 { display: flex; gap: var(--bo-esp-2); align-items: center; cursor: pointer; }
:is(.bo-cadre, .bo-auth) span.xva-marge-2 { margin: 0; }
:is(.bo-cadre, .bo-auth) td.xva-taille { width: 28px; }
:is(.bo-cadre, .bo-auth) th.xva-bloc { white-space: normal; min-width: 320px; text-align: left; }
:is(.bo-cadre, .bo-auth) span.xva-bloc-2 { display: block; margin-top: var(--bo-esp-1); font-weight: var(--bo-graisse-texte); font-size: var(--bo-taille-legende); line-height: 1.45; color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) b.xva-texte-2 { color: var(--bo-violet); font-weight: var(--bo-graisse-forte); }

/* ===== veille-centre.html.twig ===== */
:is(.bo-cadre, .bo-auth) p.xvc-taille { max-width: 920px; }

/* ===== veille-scpi.html.twig ===== */
:is(.bo-cadre, .bo-auth) section.xvs-cadre { padding: var(--bo-esp-4) var(--bo-esp-5); margin-bottom: var(--bo-esp-4); border: 1px solid var(--bo-trait); }
:is(.bo-cadre, .bo-auth) h2.xvs-marge { margin: 0 0 var(--bo-esp-1); }
:is(.bo-cadre, .bo-auth) p.xvs-marge-2 { margin: 0 0 var(--bo-esp-3); }
:is(.bo-cadre, .bo-auth) form.xvs-ligne { margin-top: var(--bo-esp-3); display: flex; gap: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) section.xvs-bloc { max-width: 640px; margin-bottom: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) p.xvs-marge-3 { margin: var(--bo-esp-3) var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) section.xvs-bloc-2 { padding: var(--bo-esp-4) var(--bo-esp-5); margin-top: var(--bo-esp-4); }
:is(.bo-cadre, .bo-auth) th.xvs-taille { width: 120px; }
:is(.bo-cadre, .bo-auth) td.xvs-droite { text-align: right; }

/* ===== recueil-pdf (lot 7 : écran « Formulaire KYC », modèle du recueil PDF ; oublié au lot 6, son nom le classait parmi les impressions) ===== */
:is(.bo-cadre, .bo-auth) div.xrp-grille { display: grid; gap: var(--bo-esp-4); max-width: 900px; }
:is(.bo-cadre, .bo-auth) section.xrp-retrait { padding: var(--bo-esp-4) var(--bo-esp-5); }
:is(.bo-cadre, .bo-auth) h2.xrp-marge { margin: 0 0 var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc { margin: 0; font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-2 { margin: 0; font-size: var(--bo-taille-texte); color: var(--bo-bloquant); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-3 { margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-texte); color: var(--bo-bleu); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-4 { margin: var(--bo-esp-2) 0 0; font-size: var(--bo-taille-texte); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) p.xrp-marge-2 { margin: var(--bo-esp-2) 0 0; }
:is(.bo-cadre, .bo-auth) section.xrp-cadre { padding: var(--bo-esp-4) var(--bo-esp-5); border-left: 4px solid var(--bo-violet); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-5 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-6 { margin: 0 0 var(--bo-esp-1); font-size: var(--bo-taille-texte); color: var(--bo-attention); }
:is(.bo-cadre, .bo-auth) p.xrp-defile { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); overflow-wrap: anywhere; }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-7 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-texte); color: var(--bo-ok); }
:is(.bo-cadre, .bo-auth) p.xrp-bloc-8 { margin: 0 0 var(--bo-esp-2); font-size: var(--bo-taille-aide); color: var(--bo-texte-2); }
:is(.bo-cadre, .bo-auth) form.xrp-ligne { display: flex; gap: var(--bo-esp-2); }
:is(.bo-cadre, .bo-auth) ol.xrp-bloc-9 { margin: 0 0 var(--bo-esp-3); padding-left: var(--bo-esp-4); font-size: var(--bo-taille-texte); line-height: 1.6; }
:is(.bo-cadre, .bo-auth) form.xrp-ligne-2 { display: flex; gap: var(--bo-esp-2); flex-wrap: wrap; align-items: center; }
:is(.bo-cadre, .bo-auth) input.xrp-bloc-10 { flex: 1 1 320px; }
:is(.bo-cadre, .bo-auth) form.xrp-marge-3 { margin-top: var(--bo-esp-2); }
