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

/* ===== bo-jetons.css ===== */
/* Jetons de design du back-office (étape 5, 12/10/2026).
   Une seule source pour la palette : les feuilles du BO lisent ces variables au lieu de recopier les valeurs.
   Pour changer une couleur du BO, c'est ici, une fois. Ne pas ajouter de nouvelle valeur en dur dans une feuille du BO :
   reprendre un jeton, ou en créer un ici avec son rôle. */
:root {
  /* Marque */
  --bo-bleu: #16424f;          /* titres, liens, fonds sombres */
  --bo-bleu-doux: #2f4a72;
  --bo-violet: #a83aa2;        /* accent, état actif */
  --bo-violet-fonce: #6d3f86;
  /* Texte */
  --bo-encre: #16424f;         /* texte courant */
  --bo-texte-moyen: #5d5a72;
  --bo-texte-doux: #66627f;    /* aides, légendes */
  --bo-texte-discret: #6b6783;
  --bo-texte-clair: #9a96ad;  /* décoratif seulement (icônes, chevrons) : 2,86:1 sur blanc, trop pâle pour du texte (audit D-UX-09, 17/10/2026) */
  /* Surfaces et filets */
  --bo-blanc: #ffffff;
  --bo-trait: #e8e5f0;
  --bo-trait-fort: #dcd8e6;
  --bo-trait-clair: #ece9f3;
  /* États */
  --bo-vert: #0f6e56;
  /* Polices : déclarées dans /fonts/fonts.css */
  --bo-police: 'DM Sans', system-ui, sans-serif;
  --bo-police-titre: 'Playfair Display', Georgia, serif;
}

/* ===== bo-moderne.css ===== */
/*
 * Back-office, habillage clair et vivant (lot Z23, Julien, 02/10/2026).
 *
 * Version allégée du lot Z22 : fonds clairs, ombres légères, couleur réservée
 * aux accents (filets, chiffres, rubrique active). Les animations restent
 * discrètes et s'arrêtent pour qui a demandé « réduire les animations ».
 * Une seule feuille, chargée après celle du BO : la retirer rend l'apparence
 * d'origine.
 */

body { background: #f6f5fa; }

/* --- Menu latéral : bleu nuit uni, rubrique active en pastille ------------ */
.bo-sidebar { background: linear-gradient(180deg, var(--bo-bleu) 0%, #142f44 100%); }
.bo-sidebar__logo-baseline { color: rgba(240, 184, 236, .85); }
.bo-nav__item { position: relative; border-radius: 10px; transition: background .2s ease, color .2s ease, padding-left .2s ease; }
.bo-nav__item:hover { background: rgba(255, 255, 255, .07); }
.bo-nav__groupe .bo-nav__item:hover { padding-left: 37px !important; }
.bo-nav__item.is-active { background: rgba(255, 255, 255, .1); box-shadow: none; color: var(--bo-blanc); }
.bo-nav__item.is-active::before { content: ""; position: absolute; right: 14px; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: var(--bo-violet); box-shadow: 0 0 0 4px rgba(188, 70, 182, .25); }

/* Espace technique replié dans un menu déroulant. */
details.bo-nav__groupe > summary { list-style: none; cursor: pointer; border-radius: 8px; transition: background .2s ease; }
details.bo-nav__groupe > summary::-webkit-details-marker { display: none; }
details.bo-nav__groupe > summary:hover { background: rgba(255, 255, 255, .06); }
details.bo-nav__groupe > summary .bo-nav__chevron { margin-left: auto; transition: transform .25s ease; opacity: .7; }
details.bo-nav__groupe[open] > summary .bo-nav__chevron { transform: rotate(90deg); }
details.bo-nav__groupe[open] > .bo-nav__item { animation: bo-glisse .25s ease both; }

/* --- En-tête d'écran : petit filet violet sous le titre ----------------------- */
.bo-entete__titre { position: relative; padding-bottom: 6px; }
.bo-entete__titre::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; border-radius: 2px; background: var(--bo-violet); animation: bo-filet .6s .15s ease both; }

/* --- Chiffres clés : cartes blanches, chiffre en couleur ----------------------- */
.bo-stat-card { border: 1px solid var(--bo-trait); box-shadow: 0 1px 2px rgba(14, 12, 24, .04); transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s ease, border-color .25s ease; }
.bo-stat-card::before { opacity: 1; height: 2px; }
.bo-stat-card:is(a):hover { transform: translateY(-3px); border-color: rgba(188, 70, 182, .35); box-shadow: 0 12px 28px -14px rgba(27, 73, 98, .35); }

/* --- Cartes et panneaux ------------------------------------------------------- */
.bo-panel, .adm-carte, .bo-data-card { border-color: #ebe8f2; box-shadow: 0 1px 2px rgba(14, 12, 24, .03); }
.bo-liste__item { transition: background .2s ease, box-shadow .2s ease, padding-left .2s ease; }
.bo-liste__item:hover { padding-left: 28px; }

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

/* --- Formulaires ----------------------------------------------------------------- */
.adm-champ { transition: border-color .15s ease, box-shadow .15s ease; }
.adm-champ:focus { outline: none; border-color: var(--bo-violet); box-shadow: 0 0 0 3px rgba(188, 70, 182, .12); }

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


/* Point « en ligne » qui respire, dans le menu et la santé du site. */
.bo-sidebar__user-point, .sante__p::before { animation: bo-respire 2.6s ease-in-out infinite; }

@keyframes bo-glisse { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@keyframes bo-filet { from { width: 0; } to { width: 34px; } }
@keyframes bo-respire { 0%, 100% { box-shadow: 0 0 0 0 rgba(188, 70, 182, 0); } 50% { box-shadow: 0 0 0 4px rgba(188, 70, 182, .14); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

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

/* Panneaux et titres */
.dos .sec { padding: 18px 20px; scroll-margin-top: 12px; }
.dos .sec > h2, .dos .sec-titre { margin: 0 0 12px; font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--color-texte, var(--bo-encre)); }
.dos .sec > h2 small, .dos .sec-titre small { margin-left: 6px; font-weight: 400; font-size: 12px; color: var(--color-doux, var(--bo-texte-doux)); }
.dos .kicker, .dos .grp { margin: 14px 0 6px; font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--color-violet, var(--bo-violet)); }
.dos .sugg { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--color-doux, var(--bo-texte-doux)); }
.dos .apercu { padding: 22px 26px; }

/* Formulaires */
.dos .f1 { display: grid; grid-template-columns: minmax(0, 34%) minmax(0, 1fr); gap: 8px 12px; align-items: center; font-size: 13px; }
.dos .f1 > label { color: var(--color-doux, var(--bo-texte-doux)); }
.dos .f1 .adm-champ, .dos .champ .adm-champ { padding: 7px 10px; font-size: 13px; }
@media (max-width: 700px) { .dos .f1 { grid-template-columns: minmax(0, 1fr); } }
.dos .champ { display: grid; gap: 5px; margin: 0 0 12px; font-size: 13px; }
.dos .champ > label { color: var(--color-bleu, var(--bo-bleu)); font-weight: 600; font-size: 12.5px; }
.dos .champ .req { color: var(--color-violet, var(--bo-violet)); }
.dos .champ textarea.adm-champ { min-height: 90px; }
.dos .champ small { color: var(--color-doux, var(--bo-texte-doux)); font-size: 11.5px; }

/* Choix en pastilles */
.dos .choix { display: flex; flex-wrap: wrap; gap: 6px; }
.dos .choix label { display: inline-flex; gap: 6px; align-items: center; padding: 6px 10px; border: 1px solid var(--color-bord, var(--bo-trait)); border-radius: 99px; font-size: 12.5px; font-weight: 400; color: var(--color-texte, var(--bo-encre)); background: var(--bo-blanc); cursor: pointer; }
.dos .choix label:has(input:checked) { border-color: var(--color-bleu, var(--bo-bleu)); background: #f1f5f8; }
.dos .choix input:checked + span { font-weight: 600; color: var(--color-bleu, var(--bo-bleu)); }
.dos .choix input:disabled + span { color: var(--color-doux, var(--bo-texte-doux)); }
.dos .choix--col { flex-direction: column; align-items: flex-start; }

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

/* Tableaux */
.dos .tl { width: 100%; border-collapse: collapse; font-size: 12.8px; }
.dos .tl th { text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--color-doux, var(--bo-texte-doux)); background: var(--dos-pale); padding: 7px 9px; }
.dos .tl td { padding: 7px 9px; border-bottom: 1px solid var(--dos-filet); vertical-align: top; }

/* Listes de points (alertes, contrôle, bandeau) */
.dos .alertes, .dos .pts { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.dos .alertes li, .dos .pts li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 9px; background: var(--dos-pale); }
.dos .alertes .g-bloquant, .dos .pts .g-bloquant { background: var(--dos-bloquant-fond); color: var(--dos-bloquant); }
.dos .alertes .g-attention, .dos .pts .g-attention { background: var(--dos-attention-fond); color: var(--dos-attention); }
.dos .alertes .g-info, .dos .pts .g-info { background: var(--dos-info-fond); color: var(--color-bleu, var(--bo-bleu)); }
.dos .pts a { color: inherit; font-weight: 600; white-space: nowrap; }
.dos .ok, .dos .rien { margin: 0; padding: 10px 12px; border-radius: 9px; background: var(--dos-ok-fond); color: var(--dos-ok); font-size: 13px; }
.dos .ko { margin: 0; padding: 10px 12px; border-radius: 9px; background: var(--dos-bloquant-fond); color: var(--dos-bloquant); font-size: 13px; }
.dos .err { margin: 0 0 12px; padding: 10px 12px; border-radius: 9px; background: var(--dos-bloquant-fond); color: var(--dos-bloquant); font-size: 13px; }

/* Journal */
.dos .journal { list-style: none; margin: 0; padding: 0; font-size: 12.5px; display: grid; gap: 7px; }
.dos .journal li { padding-left: 10px; border-left: 2px solid var(--color-bord, var(--bo-trait)); }
.dos .journal b { color: var(--color-bleu, var(--bo-bleu)); }
.dos .journal small { display: block; color: var(--color-doux, var(--bo-texte-doux)); }

/* Barre d'actions collée en bas */
.dos .barre { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 10px; padding: 10px 16px; border-radius: 12px; background: rgba(255, 255, 255, .97); box-shadow: 0 -4px 18px rgba(27, 73, 98, .08); }
.dos .barre .sugg { margin: 0 auto 0 0; }

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

/* Poste de travail : onglets du dossier et prochaine étape */
/* Charte de l'espace client sur le dossier du BO (Julien, 04/10/2026) :
   bandeau dégradé derrière le titre, carte d'identité et rubriques à gauche
   avec leur état, travail à droite. */
.flex:has(.dcarte) > main { background: linear-gradient(90deg, var(--bo-bleu) 0%, var(--bo-bleu-doux) 50%, var(--bo-violet-fonce) 100%) top / 100% 64px no-repeat; }

.dos:has(> .dcarte) { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 0 20px; align-items: start; }
.dos:has(> .dcarte) > :not(.dcarte):not(style):not(script) { grid-column: 2; min-width: 0; }
.dos:has(> .dcarte) > .dcarte { grid-column: 1; grid-row: 1 / span 40; position: sticky; top: 12px; }
@media (max-width: 1100px) { .dos:has(> .dcarte) { grid-template-columns: minmax(0, 1fr); } .dos:has(> .dcarte) > :not(.dcarte):not(style):not(script) { grid-column: 1; } .dos:has(> .dcarte) > .dcarte { grid-row: auto; position: static; margin-bottom: 16px; } }

.dcarte { background: var(--bo-blanc); border: 1px solid var(--color-bord, var(--bo-trait)); border-radius: 16px; box-shadow: 0 10px 30px rgba(27, 73, 98, .08); overflow: hidden; }
.dcarte__id { display: flex; gap: 12px; align-items: center; padding: 16px 16px 10px; }
.dcarte__avatar { flex: 0 0 48px; height: 48px; border-radius: 14px; background: linear-gradient(135deg, var(--bo-bleu), var(--bo-violet)); color: var(--bo-blanc); display: grid; place-items: center; font-weight: 600; font-size: 17px; }
.dcarte__nom { min-width: 0; }
.dcarte__nom b { display: block; color: var(--color-bleu, var(--bo-bleu)); font-size: 15px; line-height: 1.25; }
.dcarte__nom span { display: block; font-size: 12px; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__coord { list-style: none; margin: 0; padding: 0 16px 10px; display: grid; gap: 2px; font-size: 12.5px; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__coord li { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcarte__coord a { color: var(--color-violet, var(--bo-violet)); text-decoration: none; }
.dcarte__jauge { margin: 0 16px 12px; }
.dcarte__jauge p { display: flex; justify-content: space-between; margin: 0 0 4px; font-size: 11.5px; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__jauge > div { height: 6px; border-radius: 99px; background: #efedf5; overflow: hidden; }
.dcarte__jauge > div > span { display: block; height: 100%; background: linear-gradient(90deg, var(--bo-bleu), var(--bo-violet)); }
.dcarte__nav { border-top: 1px solid var(--color-bord, var(--bo-trait)); padding: 8px; display: grid; gap: 1px; }
.dcarte__tete { margin: 2px 10px 4px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__nav a { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 10px; font-size: 13.5px; color: var(--color-texte, var(--bo-encre)); text-decoration: none; }
.dcarte__nav a:hover { background: #f7f6fb; }
.dcarte__nav a.is-actif { background: #f4f1fa; color: var(--color-violet, var(--bo-violet)); font-weight: 600; }
.dcarte__nav .ic { flex: 0 0 18px; color: var(--bo-texte-clair); }
.dcarte__nav a.is-actif .ic { color: var(--color-violet, var(--bo-violet)); }
.dcarte__nav .lib { flex: 1; min-width: 0; }
.dcarte__sous { display: grid; gap: 1px; margin: 0 0 4px 22px; padding-left: 8px; border-left: 2px solid #efe6f4; }
.dcarte__sous a { padding: 5px 8px; font-size: 12.5px; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__sous a:hover { color: var(--color-bleu, var(--bo-bleu)); }
.dcarte__sous a.is-sous { color: var(--color-violet, var(--bo-violet)); font-weight: 600; background: #fbf7fd; }
.dcarte__pct { white-space: nowrap; font-size: 11px; font-weight: 600; border-radius: 99px; padding: 2px 8px; background: #f2f0f7; color: var(--color-doux, var(--bo-texte-doux)); }
.dcarte__pct.moitie { background: #fff4e0; color: #9a5b00; }
.dcarte__pct.plein { background: #e7f5ef; color: #0f7a5c; }
.dcarte__pct.info { background: #e8f1f7; color: var(--bo-bleu); }
.dcarte__pct.alerte { background: #fbe9f8; color: #a3329d; }
.dcarte__bloq { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; font-size: 11px; font-weight: 700; color: var(--bo-blanc); background: var(--dos-bloquant); }
.dcarte__suite { display: block; margin: 4px 8px 10px; padding: 10px 14px; border-radius: 12px; font-size: 13.5px; font-weight: 600; color: var(--bo-blanc); text-decoration: none; text-align: center; background: linear-gradient(90deg, var(--bo-bleu), var(--bo-violet)); }
.dcarte__suite small { display: block; font-size: 10.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.dcarte__suite:hover { filter: brightness(1.08); }
.dcarte__suite--ok { background: linear-gradient(90deg, var(--bo-vert), #2f9b7a); }

/* 05/10/2026 (Julien) : carte du dossier au dessin de la Base CRM (icônes en pastille, entrée active soulignée à gauche). */
.dcarte { border-radius: 20px; box-shadow: 0 4px 18px rgba(27, 73, 98, .05); border-color: #ebe8f1; }
.dcarte__avatar { border-radius: 50%; }
.dcarte__nav { padding: 10px; gap: 2px; }
.dcarte__nav > a { position: relative; padding: 7px 10px; border-radius: 13px; color: var(--bo-bleu); font-weight: 500; }
.dcarte__nav > a .ic { box-sizing: content-box; padding: 7px; border-radius: 10px; background: #f6f5f9; color: var(--bo-bleu); }
.dcarte__nav > a:hover { background: #f7f6fa; }
.dcarte__nav > a.is-actif { background: #f4f6f9; color: var(--bo-bleu); font-weight: 600; }
.dcarte__nav > a.is-actif::before { content: ''; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--bo-bleu), var(--bo-violet)); }
.dcarte__nav > a.is-actif .ic { color: var(--bo-blanc); background: linear-gradient(135deg, var(--bo-bleu) 0%, var(--bo-violet) 100%); }
.dcarte__sous { margin: 2px 0 6px 26px; border-left-color: #ece8f2; }
.dcarte__sous a { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-radius: 9px; }
.dcarte__sous a:hover { background: #f7f6fa; }

/* 05/10/2026 (Julien, d'après Wizio) : groupes du dossier avec sous-menus qui s'ouvrent. */
.dcarte__grp > summary { position: relative; display: flex; align-items: center; gap: 9px; padding: 7px 10px; border-radius: 13px; font-size: 13.5px; font-weight: 500; color: var(--bo-bleu); cursor: pointer; list-style: none; transition: background .15s ease; }
.dcarte__grp > summary::-webkit-details-marker { display: none; }
.dcarte__grp > summary .ic { box-sizing: content-box; padding: 7px; border-radius: 10px; background: #f6f5f9; color: var(--bo-bleu); }
.dcarte__grp > summary:hover { background: #f7f6fa; }
.dcarte__grp > summary.is-actif { background: #f4f6f9; font-weight: 600; }
.dcarte__grp > summary.is-actif::before { content: ''; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--bo-bleu), var(--bo-violet)); }
.dcarte__grp > summary.is-actif .ic { color: var(--bo-blanc); background: linear-gradient(135deg, var(--bo-bleu) 0%, var(--bo-violet) 100%); }
.dcarte__grp > summary:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: -2px; }
.dcarte__chev { flex: none; width: 7px; height: 7px; margin: 0 2px 0 2px; border-right: 1.5px solid var(--bo-texte-clair); border-bottom: 1.5px solid var(--bo-texte-clair); transform: translateY(-2px) rotate(45deg); transition: transform .2s ease; }
.dcarte__grp[open] > summary .dcarte__chev { transform: translateY(1px) rotate(-135deg); }
.dcarte__grp[open] > .dcarte__sous { animation: dcarte-ouvre .18s ease-out; }
@keyframes dcarte-ouvre { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .dcarte__grp[open] > .dcarte__sous { animation: none; } }
.dcarte__sous a.is-sous { color: var(--color-violet, var(--bo-violet)); font-weight: 600; background: #faf5fb; }
.dcarte__sous-titre { margin: 6px 8px 2px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bo-texte-doux); } /* 17/10/2026 (audit D-UX-09) : texte de 10,5 px, contraste 5,8:1 */
.dcarte__sous a.dcarte__ancre { padding-left: 20px; font-size: 12px; }
/* 05/10/2026 (Julien) : colonne en quatre parties (synthèse, recueil, conformité, suivi). */
.dcarte__nav > .dcarte__tete { margin: 12px 10px 4px; display: flex; align-items: center; gap: 6px; }
.dcarte__nav > .dcarte__tete:first-child { margin-top: 2px; }
.dcarte__nav > a.dcarte__rb { padding: 3px 10px; font-size: 13.5px; }
.dcarte__nav > a.dcarte__rb .ic { padding: 5px; width: 16px; height: 16px; }
/* La colonne du dossier défile seule quand elle dépasse la hauteur de l'écran. */
@media (min-width: 1101px) { .dos:has(> .dcarte) > .dcarte { max-height: calc(100dvh - 92px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; } }
/* 05/10/2026 (Julien) : chiffres de la synthèse du client, au dessin de la Base CRM. */
.fiche-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
@media (max-width: 1300px) { .fiche-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fiche-kpis { grid-template-columns: minmax(0, 1fr); } }
.fiche-kpis .crm-kpi { position: relative; display: grid; gap: 2px; padding: 18px 18px 16px; border-radius: 18px; background: var(--bo-blanc); border: 1px solid var(--bo-trait); text-decoration: none; color: inherit; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.fiche-kpis .crm-kpi:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(27, 73, 98, .12); }
.fiche-kpis .crm-kpi__ic { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #e9f0f5; color: var(--bo-bleu); }
.fiche-kpis .crm-kpi__ic--violet { background: #f3e8f6; color: #8e2f8a; }
.fiche-kpis .crm-kpi__ic--vert { background: #e4f3ec; color: var(--bo-vert); }
.fiche-kpis .crm-kpi__lib { font-size: 13px; color: var(--bo-texte-doux); }
.fiche-kpis .crm-kpi b { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; font-size: 30px; line-height: 1.1; color: var(--bo-bleu); margin-top: 4px; overflow-wrap: anywhere; }
.fiche-kpis .crm-kpi small { font-size: 12.5px; color: var(--bo-texte-discret); margin-top: 4px; }
.fiche-kpis .crm-kpi--plein { border: 0; color: var(--bo-blanc); background: linear-gradient(135deg, var(--bo-bleu) 0%, #4b3d7a 55%, var(--bo-violet) 100%); }
.fiche-kpis .crm-kpi--plein .crm-kpi__lib, .fiche-kpis .crm-kpi--plein small { color: rgba(255, 255, 255, .8); }
.fiche-kpis .crm-kpi--plein b { color: var(--bo-blanc); }
.fiche-kpis .crm-kpi--plein .crm-kpi__ic { background: rgba(255, 255, 255, .16); color: var(--bo-blanc); }
.fiche-kpis .crm-jauge { display: block; height: 6px; margin: 8px 0 2px; border-radius: 99px; background: #eef0f5; overflow: hidden; }
.fiche-kpis .crm-jauge i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--bo-bleu), var(--bo-violet)); }
.fiche-kpis .crm-jauge--clair { background: rgba(255, 255, 255, .25); }
.fiche-kpis .crm-jauge--clair i { background: var(--bo-blanc); }
/* 06/10/2026 : conseiller référent dans la carte du dossier. */
.dcarte__coord .dos-cons form{display:flex;align-items:center;gap:8px;margin:4px 0 0}
.dcarte__coord .dos-cons label{font-size:12px;color:var(--bo-texte-doux);white-space:nowrap}
.dcarte__coord .dos-cons select{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--bo-trait-fort);border-radius:8px;font:inherit;font-size:12.5px;background:var(--bo-blanc);color:var(--bo-bleu)}
/* 17/10/2026 (audit D-UX-17) : bouton « Enregistrer » du conseiller référent (plus d'enregistrement au changement de la liste). */
.dcarte__coord .dos-cons__ok{padding:5px 12px;border:1px solid var(--bo-bleu);border-radius:8px;font:inherit;font-size:12.5px;font-weight:600;background:var(--bo-blanc);color:var(--bo-bleu);cursor:pointer}
.dcarte__coord .dos-cons__ok:hover{background:var(--bo-bleu);color:var(--bo-blanc)}
/* 06/10/2026 : sous-menus de conformité repliés, en retrait sous le tableau de conformité. */
.dcarte__grp--cf { margin-left: 26px; }
.dcarte__grp--cf > summary { padding: 5px 8px; font-size: 12.5px; color: #4a4763; }
.dcarte__grp--cf > summary .lib { flex: 1; }
.dcarte__grp--cf > .dcarte__sous { margin-left: 8px; }

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

/* ===== bo-frais.css ===== */
/* Grille des frais (rapport d'adéquation, fiche produit). 04/10/2026. */
.gf{margin-top:20px;max-width:1320px}
.gf__cadre{overflow-x:auto;border-radius:14px;border:1px solid #e6e2ef}
.gf__t{width:100%;min-width:700px;border-collapse:collapse;font-size:12.5px}
.gf__t thead th{background:var(--bo-bleu);color:var(--bo-blanc);font-weight:600;font-size:11.5px;padding:7px 5px;text-align:left}
.gf__t thead th.gf__cie{background:#5f5a8c}
.gf__t thead .gf__groupe{text-align:center;font-size:12.5px;padding-bottom:2px}
.gf__t tbody tr:nth-child(odd){background:#f7f6fb}
.gf__t td{padding:5px 4px;vertical-align:middle}
.gf__t td.gf__cie{background:rgba(95,90,140,.10)}
.gf__c{text-align:center}
.gf__in{width:100%;padding:6px 6px;border:1px solid var(--bo-trait-fort);border-radius:8px;font:inherit;font-size:13px;background:var(--bo-blanc)}
.gf__lib{min-width:130px}.gf__t select.gf__in{width:auto;min-width:72px}
.gf__unite{display:flex}.gf__unite .gf__num{border-radius:8px 0 0 8px;text-align:right;width:56px;min-width:0}.gf__unite i{display:grid;place-items:center;padding:0 5px;border:1px solid var(--bo-trait-fort);border-left:0;border-radius:0 8px 8px 0;background:#f7f6fb;font-style:normal;color:var(--bo-texte-doux);font-size:12px}
.gf__suppr{display:grid;place-items:center;width:28px;height:28px;border:1px solid #e3b3d6;border-radius:8px;background:var(--bo-blanc);color:#c2185b;cursor:pointer}
.gf__ajout{width:100%;padding:9px;border:1.5px solid var(--bo-bleu);border-radius:10px;background:var(--bo-blanc);color:var(--bo-bleu);font:inherit;font-weight:600;cursor:pointer}
.gf__ajout:hover{border-color:var(--bo-violet);color:var(--bo-violet)}
.gf__synth td{background:var(--bo-bleu);color:var(--bo-blanc);font-weight:700;padding:10px 8px}
.gf__synth td.gf__cie{background:#5f5a8c}
.gf__synth small{font-weight:500;opacity:.85}
.gf__fiches{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.gf__fiche{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;text-decoration:none}
.gf__fiche.ok{background:#e8f5ef;color:var(--bo-vert)}
.gf__fiche.manque{background:#fff4e0;color:#8a5a00}
.gf__ecart{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#fff4e0;color:#6b4600;font-size:12.5px}
.gf--produit{margin-top:0;max-width:none}
.gf--produit .gf__t{min-width:620px}
small.repris{color:var(--bo-vert)}

/* Fiches produits (04/10/2026). */
.fp-liste{max-width:1180px}
.fp-intro{margin:0 0 16px;color:var(--bo-texte-moyen);font-size:14px;max-width:820px;line-height:1.55}
.fp-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px;max-width:640px}
.fp-kpis div{background:var(--bo-blanc);border:1px solid var(--bo-trait);border-radius:14px;padding:12px 14px}
.fp-kpis b{display:block;font-size:22px;color:var(--bo-bleu);font-weight:600}
.fp-kpis span{font-size:12.5px;color:var(--bo-texte-doux)}
.fp-kpis .alerte b{color:#b5521b}
.fp-filtre input{width:100%;max-width:420px;padding:10px 14px;border:1px solid var(--bo-trait-fort);border-radius:12px;font:inherit;font-size:14px;background:var(--bo-blanc)}
.fp-titre{margin:24px 0 10px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--bo-violet);font-weight:600}
.fp-titre small{color:var(--bo-texte-doux);letter-spacing:0;font-size:12px;margin-left:4px}
.fp-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.fp-carte{display:grid;gap:6px;padding:14px 16px;border-radius:16px;background:var(--bo-blanc);border:1px solid var(--bo-trait);text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s}
.fp-carte:hover{box-shadow:0 10px 28px rgba(27,73,98,.10);transform:translateY(-1px)}
.fp-carte[hidden]{display:none}
.fp-carte__nom{font-weight:600;color:var(--bo-bleu);font-size:15px}
.fp-carte__prod{font-size:12.5px;color:var(--bo-texte-doux)}
.fp-carte__etat{display:flex;flex-wrap:wrap;gap:6px}
.fp-carte__etat em,.fp-nav em{font-style:normal;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:99px;background:#f2f0f7;color:var(--bo-texte-moyen)}
.fp-carte__etat em.ok,.fp-nav em.ok{background:#e8f5ef;color:var(--bo-vert)}
.fp-carte__etat em.manque{background:#fff4e0;color:#8a5a00}
.fp-jauge{display:block;height:6px;border-radius:99px;background:#efecf6;overflow:hidden}
.fp-jauge i{display:block;height:100%;width:var(--p);background:linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce))}
.fp-jauge.grande{height:8px;margin-top:14px}
.fp{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start;max-width:1320px}
.fp-carte-id{position:sticky;top:12px;padding:20px}
.fp-type{display:inline-block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--bo-blanc);background:linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce));border-radius:99px;padding:3px 10px}
.fp-carte-id h2{margin:10px 0 2px;font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:22px;color:var(--bo-bleu);line-height:1.2}
.fp-prod{margin:0;color:var(--bo-texte-doux);font-size:13.5px}
.fp-pct{margin:6px 0 0;font-size:12.5px;color:var(--bo-texte-moyen)}
.fp-alerte{margin:12px 0;padding:10px 12px;border-radius:12px;background:#fff4e0;color:#6b4600;font-size:13px;line-height:1.45}
.fp-alerte--grille{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:18px}
.fp-nav{display:grid;gap:2px;margin:16px 0 0;padding-top:12px;border-top:1px solid #efecf6}
.fp-nav a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 8px;border-radius:10px;text-decoration:none;color:var(--bo-encre);font-size:13.5px}
.fp-nav a:hover{background:#f6f4fb}
.fp-site{margin-top:14px;padding-top:12px;border-top:1px solid #efecf6}
.fp-site p{margin:0 0 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bo-texte-doux);font-weight:600}
.fp-site dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0;font-size:12.5px}
.fp-site dt{color:var(--bo-texte-doux)}.fp-site dd{margin:0;color:var(--bo-bleu);font-weight:500;text-align:right}
.fp-form{display:grid;gap:16px;min-width:0}
.fp-rub{padding:18px 20px;scroll-margin-top:14px}
.fp-rub h3{margin:0 0 12px;font-size:16px;color:var(--bo-bleu);font-weight:600}
.fp-rub .ec-champ.large{grid-column:1/-1}
.fp-req{color:var(--bo-violet)}
.fp-aide{font-size:12px;color:var(--bo-texte-discret);line-height:1.4}
.fp-pills{display:flex;flex-wrap:wrap;gap:6px}
.fp-pills label{position:relative;cursor:pointer}
.fp-pills input{position:absolute;opacity:0;pointer-events:none}
.fp-pills span{display:inline-block;padding:7px 13px;border-radius:99px;border:1px solid var(--bo-trait-fort);background:var(--bo-blanc);font-size:13.5px;color:var(--bo-encre);transition:background .12s,border-color .12s}
.fp-pills label:hover span{border-color:var(--bo-violet-fonce)}
.fp-pills input:checked+span{background:var(--bo-bleu);border-color:var(--bo-bleu);color:var(--bo-blanc)}
.fp-pills input:focus-visible+span{outline:2px solid var(--bo-violet);outline-offset:2px}
.fp-pills__vide span{color:var(--bo-texte-clair)}
.fp-pills__vide input:checked+span{background:#f2f0f7;border-color:var(--bo-trait-fort);color:var(--bo-texte-doux)}
.fp-pills--sri span{min-width:40px;text-align:center}
.fp-pills--sri label:nth-child(-n+2) input:checked+span{background:#2f7d5b;border-color:#2f7d5b}
.fp-pills--sri label:nth-child(n+3):nth-child(-n+4) input:checked+span{background:var(--bo-bleu-doux);border-color:var(--bo-bleu-doux)}
.fp-pills--sri label:nth-child(n+5) input:checked+span{background:#8a3b6b;border-color:#8a3b6b}
@media (max-width:1100px){.fp{grid-template-columns:minmax(0,1fr)}.fp-carte-id{position:static}}
@media (max-width:640px){.fp-kpis{grid-template-columns:1fr 1fr 1fr;gap:8px}.fp-kpis b{font-size:18px}.fp-rub{padding:14px}.fp .ec-champs{grid-template-columns:minmax(0,1fr)}}
.fp .ec-champ{align-content:start}
.fp-nav em{white-space:nowrap}

/* Veille réglementaire (04/10/2026). */
.vr{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;max-width:1320px}
.vr-main{display:grid;gap:12px;min-width:0}
.vr-onglets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.vr-onglets a{padding:8px 14px;border-radius:99px;background:var(--bo-blanc);border:1px solid #e3def0;color:var(--bo-encre);text-decoration:none;font-size:13.5px;font-weight:500}
.vr-onglets a b{margin-left:4px;padding:1px 7px;border-radius:99px;background:#f2f0f7;font-size:12px;color:var(--bo-texte-moyen)}
.vr-onglets a.actif{background:linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce));border-color:transparent;color:var(--bo-blanc)}
.vr-onglets a.actif b{background:rgba(255,255,255,.2);color:var(--bo-blanc)}
.vr-carte{background:var(--bo-blanc);border:1px solid var(--bo-trait);border-radius:16px;padding:16px 18px;display:grid;gap:8px}
.vr-carte header{display:flex;gap:10px;align-items:flex-start}
.vr-carte h3{margin:0;flex:1;font-size:15px;line-height:1.35;color:var(--bo-bleu);font-weight:600}
.vr-mod{font-size:12.5px;color:var(--bo-violet-fonce)}
.vr-aut{flex:0 0 auto;display:inline-block;min-width:44px;text-align:center;padding:3px 8px;border-radius:8px;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--bo-blanc);background:var(--bo-texte-moyen)}
.vr-aut--amf{background:var(--bo-bleu)}.vr-aut--acpr{background:var(--bo-bleu-doux)}.vr-aut--dda{background:var(--bo-violet-fonce)}.vr-aut--mif2{background:#3c5d8f}
.vr-aut--lcbft{background:#8a3b3b}.vr-aut--sfdr{background:#2f7d5b}.vr-aut--esma{background:#4a5a8a}.vr-aut--loi{background:#7a5a1e}.vr-aut--anacofi{background:var(--bo-violet)}
.vr-dates{margin:0;font-size:12.5px;color:var(--bo-texte-doux)}
.vr-note{margin:0;font-size:13.5px;color:#3d3a52;line-height:1.5}
.vr-reste{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:6px}
.vr-reste li{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:8px 10px;border-radius:12px;background:#fbf7ee}
.vr-reste__doc{font-weight:600;color:var(--bo-encre);font-size:13.5px}
.vr-reste__det{flex:1;font-size:12.5px;color:#7a6a3a}
.vr-reste form{margin:0}
.vr-reste .adm-btn{padding:5px 12px;font-size:12px}
.vr-ok{margin:0;padding:8px 10px;border-radius:12px;background:#e8f5ef;color:var(--bo-vert);font-size:13px}
.vr-carte footer form{display:flex;gap:12px;align-items:center;margin:4px 0 0}
.vr-lien{border:0;background:none;padding:0;color:var(--bo-texte-doux);font:inherit;font-size:12.5px;text-decoration:underline;cursor:pointer}
.vr-lien--danger{color:#a8322a;margin-top:10px}
.vr-intro{margin:0;color:var(--bo-texte-moyen);font-size:13.5px}
.vr-vide{padding:20px;border-radius:14px;background:var(--bo-blanc);border:1px dashed var(--bo-trait-fort);color:var(--bo-texte-doux);font-size:14px}
.vr-qualif{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 0}
.vr-sans{margin:0}
.vr-effet{font-size:12.5px;color:var(--bo-texte-moyen);display:flex;gap:6px;align-items:center}
.vr-effet input{padding:5px 8px;border:1px solid var(--bo-trait-fort);border-radius:8px;font:inherit;font-size:12.5px}
.vr-pills{display:flex;flex-wrap:wrap;gap:6px}
.vr-pills label{position:relative;cursor:pointer}
.vr-pills input{position:absolute;opacity:0;pointer-events:none}
.vr-pills span{display:inline-block;padding:5px 11px;border-radius:99px;border:1px solid var(--bo-trait-fort);background:var(--bo-blanc);font-size:12.5px;color:var(--bo-encre)}
.vr-pills input:checked+span{background:var(--bo-bleu);border-color:var(--bo-bleu);color:var(--bo-blanc)}
.vr-pills input:focus-visible+span{outline:2px solid var(--bo-violet);outline-offset:2px}
.vr-table{width:100%;border-collapse:collapse;background:var(--bo-blanc);border:1px solid var(--bo-trait);border-radius:14px;overflow:hidden;font-size:13.5px}
.vr-table th,.vr-table td{padding:10px 12px;border-bottom:1px solid #efecf6;text-align:left;vertical-align:top}
.vr-table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--bo-texte-doux);background:#fbfaff}
.vr-table small{display:block;color:var(--bo-texte-discret);font-size:12px}
.vr-table form{margin:0}
.vr-table .nowrap{white-space:nowrap}
.vr-cote{display:grid;gap:12px;position:sticky;top:12px}
.vr-panneau{background:var(--bo-blanc);border:1px solid var(--bo-trait);border-radius:16px;padding:16px 18px;scroll-margin-top:12px}
.vr-panneau h2{margin:0 0 10px;font-size:15px;color:var(--bo-bleu);font-weight:600}
.vr-form{display:grid;gap:10px}
.vr-form label{display:grid;gap:4px;font-size:12.5px;color:var(--bo-texte-moyen)}
.vr-form input,.vr-form select,.vr-form textarea{width:100%;padding:8px 10px;border:1px solid var(--bo-trait-fort);border-radius:10px;font:inherit;font-size:13.5px;color:var(--bo-encre);background:var(--bo-blanc)}
.vr-form fieldset{border:0;padding:0;margin:0}
.vr-form legend{font-size:12.5px;color:var(--bo-texte-moyen);margin-bottom:6px}
.vr-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vr-barre{display:flex;gap:12px;align-items:center}
.vr-etapes{margin:0;padding-left:18px;font-size:13px;color:#3d3a52;line-height:1.5;display:grid;gap:6px}
.vr-petit{margin:0 0 8px;font-size:12.5px;color:var(--bo-texte-doux)}
.vr-reglages{margin-top:12px}
.vr-reglages summary{cursor:pointer;font-size:13px;color:var(--bo-violet-fonce);font-weight:600;margin-bottom:8px}
@media (max-width:1180px){.vr{grid-template-columns:minmax(0,1fr)}.vr-cote{position:static}}
@media (max-width:560px){.vr-2{grid-template-columns:1fr}.vr-table th:nth-child(3),.vr-table td:nth-child(3){display:none}}
.vr-bandeau{margin:0 0 16px;padding:14px 16px;border-radius:14px;background:#fff8ec;border:1px solid #f1dcb0;font-size:13.5px;color:#4a3a12;max-width:1320px}
.vr-bandeau ul{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}
.vr-bandeau li small{display:block;color:#7a6a3a;margin-top:2px}
.vr-bandeau p{margin:0;font-size:12.5px;color:#7a6a3a}
.vr-bandeau .vr-aut{margin-right:6px}
.fp-form--fiche{display:grid;gap:16px;min-width:0}
.fp-dics{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.fp-dics li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;padding:9px 12px;border-radius:12px;background:#f7f6fb}
.fp-dics li.actuel{background:#e8f5ef}
.fp-dics a{font-weight:600;color:var(--bo-bleu)}
.fp-dics small{flex:1;color:var(--bo-texte-doux);font-size:12px}
.fp-dics em{font-style:normal;font-size:11.5px;font-weight:600;color:var(--bo-texte-moyen)}
.fp-dics li.actuel em{color:var(--bo-vert)}
.fp-depot{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fp-fichier{position:relative;cursor:pointer}
.fp-fichier input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fp-fichier span{display:inline-block;padding:10px 16px;border:1.5px dashed #b9cbe0;border-radius:12px;color:var(--bo-bleu);font-size:14px;background:var(--bo-blanc);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.fp-fichier.choisi span{border-style:solid;border-color:#2f7d5b;color:var(--bo-vert)}
.fp-fichier input:focus-visible+span{outline:2px solid var(--bo-violet);outline-offset:2px}
.fp-version{display:flex;gap:6px;align-items:center;font-size:13.5px;color:var(--bo-texte-moyen)}
.fp-version input{padding:9px 10px;border:1px solid var(--bo-trait-fort);border-radius:10px;font:inherit;font-size:14px}
.dossier-sig ol{margin:0 0 12px;padding-left:20px;display:grid;gap:6px;font-size:13.5px}
.dossier-sig a{font-weight:600;color:var(--bo-bleu)}
.dossier-sig small{color:var(--bo-texte-doux)}
.aide-sig{margin:10px 0 0;font-size:12.5px;color:var(--bo-texte-doux);line-height:1.45}
.rg-retard{color:#b3261e}
.rg-annees{display:inline-flex;gap:4px;margin-left:auto}
.rg-annees a{padding:6px 10px;border-radius:99px;font-size:12.5px;color:var(--bo-texte-moyen);text-decoration:none}
.rg-annees a.actif{background:#f2f0f7;color:var(--bo-bleu);font-weight:600}
.vr-onglets .rg-annees a.actif{background:var(--bo-bleu);color:var(--bo-blanc)}/* 06/10/2026 : année active lisible */

/* ===== bo-charte.css ===== */
/*
 * Charte commune du BO (Julien, 04/10/2026) : « sur l'ensemble du BO et de
 * l'espace consultant, la même charte que celle inspirée de Wizio ».
 * Bandeau dégradé sous chaque titre d'écran (Twig et React partagent
 * .bo-entete), boutons d'en-tête clairs sur le bandeau. La bande qui passe
 * sous les cartes (dossier client) reste dans bo-dossier.css.
 */
.bo-entete { background: linear-gradient(90deg, var(--bo-bleu) 0%, var(--bo-bleu-doux) 50%, var(--bo-violet-fonce) 100%); padding-bottom: 18px; }
.bo-entete--etroit { max-width: none; }
.bo-entete .bo-entete__titre { color: var(--bo-blanc); }
.bo-entete .bo-entete__titre::after { background: #e8a8e4; }
.bo-entete .bo-entete__contexte { color: rgba(255, 255, 255, .8); }
.bo-entete .bo-entete__actions .adm-btn:not(.adm-btn-danger):not(.adm-btn-principal) { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .32); color: var(--bo-blanc); }
.bo-entete .bo-entete__actions .adm-btn:not(.adm-btn-danger):not(.adm-btn-principal):hover:not(:disabled) { background: rgba(255, 255, 255, .22); border-color: rgba(255, 255, 255, .55); color: var(--bo-blanc); }
.bo-entete .bo-entete__actions .adm-btn.adm-btn-principal,
.bo-entete .bo-entete__actions:not(:has(.adm-btn-principal)) .adm-btn:not(.adm-btn-danger):last-child,
.bo-entete .bo-entete__actions:not(:has(.adm-btn-principal)) > .adm-menu:last-child > .adm-btn { background: var(--bo-blanc) !important; border-color: var(--bo-blanc) !important; color: var(--bo-bleu) !important; }
.bo-entete .bo-entete__actions .adm-btn-danger { background: rgba(255, 255, 255, .95); }
.bo-entete .bo-entete__actions .adm-menu > div .adm-btn { background: var(--bo-blanc) !important; color: var(--bo-bleu) !important; border-color: #d9d4e6 !important; }
.bo-entete a:not(.adm-btn) { color: var(--bo-blanc); }
/* Les champs de recherche ou de filtre posés dans l'en-tête restent lisibles. */
.bo-entete input, .bo-entete select { color: var(--bo-encre); }
/* Espace entre le bandeau et le contenu. */
.bo-corps { padding-top: 22px; }
.flex:has(.dcarte) .bo-corps { padding-top: 10px; }
/* Écrans étroits. */
@media (max-width: 900px) { .bo-entete { padding-bottom: 14px; } }

/* Tableau de bord (04/10/2026). */
.acc { display: grid; gap: 18px; max-width: 1320px; }
.acc-recherche { display: flex; align-items: center; gap: 10px; padding: 0 16px; height: 52px; border-radius: 16px; background: var(--bo-blanc); border: 1px solid #e3def0; box-shadow: 0 6px 20px rgba(27, 73, 98, .06); color: var(--bo-texte-doux); }
.acc-recherche:focus-within { border-color: var(--bo-violet-fonce); box-shadow: 0 0 0 3px rgba(188, 70, 182, .15); }
.acc-recherche input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: none; font: inherit; font-size: 15px; color: var(--bo-encre); }
.acc-recherche kbd { font: 600 11.5px/1 'DM Sans', system-ui, sans-serif; padding: 4px 7px; border-radius: 6px; background: #f2f0f7; color: var(--bo-texte-doux); }
.acc-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.acc-kpi { display: grid; gap: 2px; padding: 14px 16px; border-radius: 16px; background: var(--bo-blanc); border: 1px solid var(--bo-trait); text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
.acc-kpi:hover { box-shadow: 0 10px 26px rgba(27, 73, 98, .10); transform: translateY(-1px); }
.acc-kpi__lib { font-size: 12.5px; color: var(--bo-texte-doux); }
.acc-kpi b { font-size: 24px; font-weight: 600; color: var(--bo-bleu); line-height: 1.2; }
.acc-kpi small { font-size: 12px; color: var(--bo-texte-discret); }
.acc-grille { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.acc-panneau { background: var(--bo-blanc); border: 1px solid var(--bo-trait); border-radius: 18px; padding: 18px 20px; }
.acc-panneau > header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.acc-panneau h2 { margin: 0; font-family: 'Playfair Display', Georgia, serif; font-weight: 400; font-size: 21px; color: var(--bo-bleu); }
.acc-nb { padding: 2px 9px; border-radius: 99px; background: linear-gradient(90deg, var(--bo-bleu), var(--bo-violet-fonce)); color: var(--bo-blanc); font-size: 12px; font-weight: 600; }
.acc-afaire > ul, .acc-activite > ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.acc-tache { border-radius: 14px; background: #f8f7fb; border-left: 4px solid #b8b3c9; }
.acc-tache--urgent { border-left-color: #c0392b; background: #fdf3f2; }
.acc-tache--attention { border-left-color: #e6a23c; background: #fdf8ef; }
.acc-tache--info { border-left-color: #6d8fb0; }
.acc-tache__lien { display: flex; align-items: center; gap: 12px; padding: 11px 14px; text-decoration: none; color: inherit; }
.acc-tache__ico { flex: 0 0 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--bo-blanc); color: var(--bo-bleu); }
.acc-tache--urgent .acc-tache__ico { color: #c0392b; }
.acc-tache--attention .acc-tache__ico { color: #b5701b; }
.acc-tache__txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.acc-tache__txt b { font-size: 14px; font-weight: 600; color: var(--bo-encre); line-height: 1.35; }
.acc-tache__txt small { font-size: 12.5px; color: var(--bo-texte-doux); line-height: 1.4; }
.acc-tache__go { color: var(--bo-texte-clair); transition: transform .15s, color .15s; }
.acc-tache__lien:hover .acc-tache__go { color: var(--bo-violet-fonce); transform: translateX(3px); }
.acc-tache__sous { list-style: none; margin: -4px 0 0; padding: 0 14px 10px 60px; display: flex; flex-wrap: wrap; gap: 6px; }
.acc-tache__sous a { display: inline-block; padding: 3px 10px; border-radius: 99px; background: var(--bo-blanc); border: 1px solid #e3def0; font-size: 12px; color: var(--bo-bleu-doux); text-decoration: none; }
.acc-tache__sous a:hover { border-color: var(--bo-violet-fonce); color: var(--bo-violet-fonce); }
.acc-evt { display: flex; gap: 10px; align-items: flex-start; }
.acc-evt__point { flex: 0 0 9px; height: 9px; margin-top: 6px; border-radius: 50%; background: #b8b3c9; }
.acc-evt--lead .acc-evt__point { background: var(--bo-violet); }
.acc-evt--proposition .acc-evt__point { background: var(--bo-bleu-doux); }
.acc-evt--document .acc-evt__point { background: #2f7d5b; }
.acc-evt--fiche .acc-evt__point { background: #e6a23c; }
.acc-evt a { display: grid; gap: 1px; text-decoration: none; color: inherit; min-width: 0; }
.acc-evt b { font-size: 13.5px; font-weight: 600; color: var(--bo-encre); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-evt small { font-size: 12px; color: var(--bo-texte-discret); }
.acc-evt a:hover b { color: var(--bo-violet-fonce); }
.acc-vide { margin: 0; padding: 18px; border-radius: 14px; background: #f1f9f5; color: #0f5c47; font-size: 14px; }
.acc-site { background: var(--bo-blanc); border: 1px solid var(--bo-trait); border-radius: 18px; }
.acc-site > summary { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 14px 20px; cursor: pointer; list-style: none; }
.acc-site > summary::-webkit-details-marker { display: none; }
.acc-site > summary::before { content: "›"; font-size: 18px; color: var(--bo-violet-fonce); transition: transform .2s; }
.acc-site[open] > summary::before { transform: rotate(90deg); }
.acc-site > summary span { font-weight: 600; color: var(--bo-bleu); }
.acc-site > summary small { color: var(--bo-texte-doux); font-size: 12.5px; }
.acc-site__corps { padding: 0 20px 18px; }
.acc-site__liens { margin: 10px 0 0; font-size: 13px; }
@media (max-width: 1100px) { .acc-grille { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { .acc-kpis { grid-template-columns: 1fr 1fr; } .acc-kpi b { font-size: 20px; } .acc-tache__sous { padding-left: 14px; } .acc-recherche kbd { display: none; } }

/* Menus déroulants des boutons d'en-tête (« + Nouveau ▾ ») : ouverts vers la gauche, jamais hors de l'écran. */
.bo-entete__actions .adm-menu > div { left: auto !important; right: 0; max-width: calc(100vw - 32px); }

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

/* 05/10/2026 : listes du BO au même gabarit que Clients (lignes en cartes, avatar, actions en icônes). */
.cl{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:13.5px}
.cl th{padding:4px 12px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--bo-texte-discret)}
.cl td{padding:10px 12px;background:var(--bo-blanc);border-top:1px solid var(--bo-trait-clair);border-bottom:1px solid var(--bo-trait-clair);vertical-align:middle}
.cl td:first-child{border-left:1px solid var(--bo-trait-clair);border-radius:14px 0 0 14px}
.cl td:last-child{border-right:1px solid var(--bo-trait-clair);border-radius:0 14px 14px 0;text-align:right;white-space:nowrap}
.cl tbody tr{cursor:pointer;transition:transform .12s}
.cl tbody tr:hover td{background:#faf9fd;border-color:#ddd7ea}
.cl-qui{display:flex;align-items:center;gap:12px;min-width:0}
.cl-av{flex:0 0 38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:600;font-size:13.5px;color:var(--bo-blanc);background:linear-gradient(135deg,var(--bo-bleu),var(--bo-violet-fonce))}
.cl-av--pm{background:linear-gradient(135deg,#2f7d5b,var(--bo-bleu))}
.cl-av--prospect{background:linear-gradient(135deg,var(--bo-violet-fonce),var(--bo-violet))}
.cl-av--ancien{background:#b8b3c9}
.cl-id{display:grid;min-width:0}
.cl-id a{font-weight:600;color:var(--bo-bleu);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-id small{color:var(--bo-texte-discret);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-kyc{display:flex;align-items:center;gap:8px;min-width:110px}
.cl-kyc i{flex:1;height:6px;border-radius:99px;background:#efecf6;overflow:hidden;max-width:90px}
.cl-kyc i b{display:block;height:100%;background:linear-gradient(90deg,var(--bo-bleu),var(--bo-violet-fonce))}
.cl-kyc span{font-size:12px;color:var(--bo-texte-moyen);min-width:34px}
.cl-act{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid #e3def0;background:var(--bo-blanc);color:var(--bo-bleu-doux);text-decoration:none;margin-left:4px}
.cl-act:hover{border-color:var(--bo-violet-fonce);color:var(--bo-violet-fonce)}
.cl-act svg{width:16px;height:16px}
@media (max-width:900px){.cl thead{display:none}.cl,.cl tbody,.cl tr,.cl td{display:block}.cl tr{margin-bottom:8px;border:1px solid var(--bo-trait-clair);border-radius:14px;background:var(--bo-blanc);overflow:hidden}.cl td,.cl td:first-child,.cl td:last-child{border:0;border-radius:0;padding:6px 14px}.cl td:first-child{padding-top:12px}.cl td:last-child{text-align:left;padding-bottom:12px}}
.cl td.cl-doux{color:var(--bo-texte-moyen);font-size:12.5px}.cl .cl-date{display:block;font-size:12px;color:var(--bo-texte-discret)}
.cl-av--lead{background:linear-gradient(135deg,var(--bo-violet),#e38bd9)}

/* 05/10/2026 (Julien) : cartes chiffrées de tous les écrans au dessin du tableau de bord. */
.acc-kpi__lib { display: flex; align-items: center; gap: 6px; }
.acc-kpi__lib i { display: inline-flex; color: var(--bo-violet); opacity: .85; }
.acc-kpi--alerte { background: #fffaf2; border-color: #f3dfbf; }
.acc-kpi--alerte b { color: #9a5b00; }
div.acc-kpi:hover { box-shadow: none; transform: none; }
.acc-kpi__pastille { width: 8px; height: 8px; border-radius: 50%; flex: none; }

/* 05/10/2026 (Julien) : tableaux de bord du cabinet et du site au style léger validé
   (Conformité, Réglages) : un bandeau de chiffres, des listes à filets, peu de gras. */
.acc-kpis { gap: 1px; background: #f0edf5; border: 1px solid var(--bo-trait-clair); border-radius: 18px; overflow: hidden; }
.acc-kpi { border: 0; border-radius: 0; background: var(--bo-blanc); padding: 14px 18px; }
.acc-kpi:hover { box-shadow: none; transform: none; background: #faf9fc; }
.acc-kpi b { font-size: 22px; font-weight: 500; }
.acc-kpi--alerte { background: var(--bo-blanc); }
.acc-kpi--alerte b { color: #8a5a00; }
.etat .acc-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .etat .acc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.acc-panneau { padding: 14px 16px 8px; }
.acc-panneau > header { margin-bottom: 4px; }
.acc-panneau h2 { font-family: inherit; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #8a5a9e; }
.acc-nb { padding: 1px 8px; background: #f4f2f8; color: var(--bo-bleu); font-weight: 500; }
.acc-afaire > ul, .acc-activite > ol { gap: 0; }
.acc-tache, .acc-tache--urgent, .acc-tache--attention, .acc-tache--info { border-left: 0; border-radius: 0; background: none; }
.acc-tache + .acc-tache { border-top: 1px solid #f2f0f6; }
.acc-tache__lien { padding: 10px 4px; border-radius: 10px; }
.acc-tache__lien:hover { background: #f8f7fb; }
.acc-tache__ico { flex-basis: 28px; height: 28px; border-radius: 8px; background: #f4f2f8; }
.acc-tache--urgent .acc-tache__ico { background: #fdecea; }
.acc-tache--attention .acc-tache__ico { background: #fdf3e1; }
.acc-tache__txt b { font-weight: 500; color: var(--bo-bleu); }
.acc-tache__sous { margin: -2px 0 0; padding: 0 4px 10px 44px; }
.acc-evt { padding: 8px 0; }
.acc-evt + .acc-evt { border-top: 1px solid #f2f0f6; }
.acc-evt b { font-weight: 500; color: var(--bo-bleu); }
.acc-vide { padding: 8px 0 10px; background: none; color: var(--bo-vert); }
.acc-rdv { gap: 0 !important; }
.acc-rdv li { padding: 10px 0 !important; border-radius: 0 !important; background: none !important; }
.acc-rdv li + li { border-top: 1px solid #f2f0f6; }
.acc-rdv__qui a, .acc-rdv__qui b { font-weight: 500 !important; }
.etat__tete { margin: 6px 0 8px; }
.cv-synth { gap: 1px !important; padding: 0 !important; margin: 0 22px 4px; background: #f0edf5; border: 1px solid var(--bo-trait-clair); border-radius: 14px; overflow: hidden; }
.cv-synth div { background: var(--bo-blanc) !important; border: 0 !important; border-radius: 0 !important; }
.cv-synth b { font-family: inherit !important; font-size: 20px !important; font-weight: 500 !important; }
.cv-num, .cv-pill, .cv-detail > summary { font-weight: 500 !important; }
.acc .acc-kpis .acc-kpi--alerte { background: var(--bo-blanc); }
.acc .acc-kpis .acc-kpi--alerte:hover { background: #faf9fc; }
.acc .bo-panel__titre { font-family: inherit; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #8a5a9e; }
.acc .bo-panel__titre .bo-data-card__compte { font-family: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--bo-texte-doux); }
/* Filets par cellule plutôt que par l'écart de grille : une rangée incomplète reste blanche. */
.acc-kpis { gap: 0; background: var(--bo-blanc); }
.acc-kpis > .acc-kpi { box-shadow: inset -1px 0 #f0edf5, inset 0 -1px #f0edf5; }
/* 06/10/2026 : Score patrimonial d'un lead, lisible (fiche client, leads). */
.sco{display:grid;gap:12px}
.sco__tete{display:flex;align-items:center;gap:14px}
.sco__tete small{display:block;font-size:12px;color:var(--bo-texte-doux)}
.sco__tete b{font-weight:500;color:var(--bo-bleu)}
.sco__note{display:inline-flex;align-items:baseline;gap:2px;padding:8px 12px;border-radius:12px;background:#f4f6f9;color:var(--bo-texte-doux);font-size:12px}
.sco__note b{font-size:22px;font-weight:500;color:var(--bo-bleu)}
.sco__axes{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sco__axes li{display:grid;grid-template-columns:110px 1fr 32px;align-items:center;gap:10px;font-size:13px;color:#4a4763}
.sco__axes b{font-weight:500;text-align:right;color:var(--bo-bleu)}
.sco__barre{height:6px;border-radius:6px;background:#eeecf3;overflow:hidden}.sco__barre i{display:block;height:100%;background:var(--bo-bleu);border-radius:6px}
.sco__t{margin:4px 0 0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8a87a0}
.sco__liste{margin:0;padding-left:18px;font-size:13px;color:#4a4763;display:grid;gap:4px}.sco__liste b{font-weight:500;color:var(--bo-encre)}
.sco__rep summary{cursor:pointer;font-size:13px;color:var(--bo-bleu)}
.sco__rep dl{margin:8px 0 0;display:grid;gap:2px;font-size:13px}.sco__rep dt{margin-top:6px;color:var(--bo-texte-doux)}.sco__rep dd{margin:0;color:var(--bo-encre)}
/* 06/10/2026 (Julien) : anniversaires du jour sur le tableau de bord. */
.acc-anniv{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border:1px solid #f1dfb8;border-radius:16px;background:linear-gradient(120deg,#fffaf0,var(--bo-blanc))}
.acc-anniv__ic{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#fdf1d8;color:#8a5a00}
.acc-anniv__t{margin:0 0 4px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00}
.acc-anniv ul{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px;color:#4a4763}
.acc-anniv a{color:var(--bo-bleu)}.acc-anniv b{font-weight:500}
.dcarte__sous a.dcarte__retour{font-size:12px;color:var(--bo-bleu);font-weight:600}
/* Lot 2b (11/10/2026) : un état vide neutre n'est pas un succès : gris, pas vert. « Rien en attente » reste vert. */
.acc-vide.acc-vide--neutre { background: none; color: #5b5775; }
/* Lot 2b : plancher de lecture de 12 px pour les textes courants (aides, pourcentages, pastilles d'état). Les intitulés en capitales (colonnes, titres de bloc) gardent 11 px. */
.bo-corps small, .adm-champ + small, label small, td small, li small { font-size: 12px; }
.dcarte__pct { font-size: 12px; }
/* Lot 2b : les deux boutons de « Fiches produits » ont le même style (le lien apparaissait en violet, le bouton en blanc). */
.fp-dicligne .adm-btn, .fp-dicligne a.adm-btn { background: var(--bo-blanc); color: var(--bo-encre); border-color: var(--bo-trait); }
.fp-dicligne .adm-btn:hover:not(:disabled) { background: #f7f6fb; }

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

/* ===== bo-accueil.css ===== */
/* 15/10/2026 : accueil « Aujourd'hui » (étape 2 de la refonte). Quatre cartes, des alertes triées par urgence, le reste replié.
   Couleurs et polices : jetons de bo-jetons.css. */
.acc-bloc { display: grid; gap: 12px; }
.acc-titre { margin: 0; font: 700 13px/1.2 var(--bo-police); letter-spacing: .12em; text-transform: uppercase; color: var(--bo-violet-fonce); display: flex; align-items: center; gap: 10px; }

.acc-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.acc-carte { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--bo-trait); border-radius: 14px; background: var(--bo-blanc); color: var(--bo-encre); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.acc-carte:hover { border-color: var(--bo-violet); box-shadow: 0 8px 22px rgba(27, 73, 98, .08); }
.acc-carte:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.acc-carte__nb { font-size: 36px; font-weight: 700; line-height: 1; color: var(--bo-texte-moyen); }
.acc-carte.is-actif .acc-carte__nb { color: var(--bo-bleu); }
.acc-carte__lib { font-size: 16px; font-weight: 600; }
.acc-carte__chemin { font-size: 13px; color: var(--bo-texte-doux); }

.acc-alertes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.acc-alerte { border: 1px solid var(--bo-trait); border-radius: 12px; background: var(--bo-blanc); }
.acc-alerte__lien { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 13px 18px; color: var(--bo-encre); text-decoration: none; }
.acc-alerte__lien:hover .acc-alerte__txt b { color: var(--bo-bleu); text-decoration: underline; }
.acc-alerte__txt { display: grid; gap: 2px; flex: 1 1 280px; min-width: 0; }
.acc-alerte__txt b { font-size: 15px; font-weight: 600; }
.acc-alerte__txt small { font-size: 13px; color: var(--bo-texte-doux); }
.acc-alerte__sous { list-style: none; margin: 0; padding: 0 18px 12px 18px; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; }
.acc-alerte__sous a { color: var(--bo-bleu); text-decoration: underline; display: inline-block; padding: 6px 0; }
.acc-pastille { flex: none; padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.acc-pastille--urgent { color: #8c2a1c; background: #fbe9e7; }
.acc-pastille--attention { color: #8a5200; background: #fdf0dc; }
.acc-pastille--info { color: var(--bo-texte-moyen); background: #efecf5; }
.acc-pastille--ok { color: #0b6b49; background: #e3f4ec; }
.acc-reste > summary { padding: 8px 2px; font-size: 14px; font-weight: 600; color: var(--bo-bleu); cursor: pointer; }
.acc-reste[open] > summary { margin-bottom: 8px; }
.acc-bloc .acc-nb { padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 700; color: var(--bo-blanc); background: var(--bo-violet-fonce); letter-spacing: 0; }

.acc-pilotage { justify-self: start; padding: 12px 20px; border-radius: 10px; font-size: 15px; font-weight: 600; color: var(--bo-blanc); background: linear-gradient(135deg, #1f6f8b, #a83aa2); text-decoration: none; }
.acc-pilotage:hover { background: var(--bo-bleu); }
.acc-pilotage:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: 2px; }

.acc-plus { border: 1px solid var(--bo-trait); border-radius: 14px; background: var(--bo-blanc); }
.acc-plus > summary { padding: 14px 18px; font-size: 15px; font-weight: 600; color: var(--bo-bleu); cursor: pointer; }
.acc-plus__corps { display: grid; gap: 18px; padding: 4px 18px 18px; }
.acc-plus .acc-grille { grid-template-columns: minmax(0, 1fr); }

.acc-rdv { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.acc-rdv li { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; align-items: start; padding: 10px 12px; border-radius: 12px; background: #f8f7fb; }
.acc-rdv__date { display: grid; text-align: center; padding: 4px 0; border-radius: 10px; background: var(--bo-blanc); border: 1px solid var(--bo-trait-clair); }
.acc-rdv__date b { color: var(--bo-bleu); font-size: 14px; }
.acc-rdv__date small { color: var(--bo-violet); font-weight: 600; font-size: 12px; }
.acc-rdv__qui a, .acc-rdv__qui b { font-weight: 600; color: var(--bo-bleu); text-decoration: none; }
.acc-rdv__qui small { display: block; font-size: 12px; color: #7a5208; margin-top: 2px; }
.acc-rdv__qui small.ok { color: var(--bo-vert); }
.acc-tout { margin: 10px 0 0; font-size: 13px; text-align: right; }
.acc-tout a { color: var(--bo-bleu); font-weight: 600; text-decoration: none; }

/* 16/10/2026 : la journée et les prochains rendez-vous restent visibles, côte à côte (une colonne sur petit écran). */
.acc-haut { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.acc-haut .acc-panneau { margin: 0; }
@media (max-width: 1100px) { .acc-haut { grid-template-columns: minmax(0, 1fr); } }

/* ===== bo-rail.css ===== */
/* 14/10/2026 : refonte de la navigation. Menu à gauche (quatre blocs depuis le 23/10/2026), barre fine en haut, onglets sous la barre.
   Remplace le menu horizontal (bo-menu-haut.css). Couleurs et polices : jetons de bo-jetons.css. */
.bo-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

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

/* ---- Menu à gauche ---- */
.bo-rail { display: flex; flex-direction: column; min-height: 0; min-width: 0; padding: 16px 10px 14px; overflow-y: auto; overflow-x: hidden; color: #e8eef1; background: #14323f; }
.bo-rail__logo { display: flex; flex-direction: column; flex: none; padding: 4px 12px 12px; line-height: 1.15; text-decoration: none; color: var(--bo-blanc); }
.bo-rail__logo-nom { font-family: var(--bo-police-titre); font-size: 18px; font-weight: 600; letter-spacing: .01em; }
.bo-rail__logo-baseline { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #c9a8d9; }
/* 23/10/2026 (Julien, quatre visions) : des blocs toujours ouverts (Clients, Réglementaire, Site internet), titres en capitales,
   puis en bas la Corbeille et l'Administration technique, titres de la même couleur. Plus de rubriques repliables. */
.bo-rail__nav { display: flex; flex-direction: column; gap: 18px; flex: 1 0 auto; }
.bo-rail__bloc { position: relative; display: flex; flex-direction: column; gap: 1px; }
.bo-rail__bas { display: flex; flex-direction: column; gap: 4px; margin-top: auto; padding-top: 8px; }
.bo-rail__titre { display: flex; align-items: center; gap: 9px; margin: 0 0 4px; padding: 0 12px; font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #f3e6f8; }
.bo-rail__titre--lien { min-height: 34px; margin: 0; border-radius: 9px; text-decoration: none; transition: background .15s ease; }
.bo-rail__titre--lien:hover { background: rgba(255, 255, 255, .08); }
.bo-rail__titre--lien.is-actif { background: rgba(201, 168, 217, .28); }
.bo-rail__ic { display: inline-flex; flex: none; opacity: .9; }
/* Menu ouvert, le titre « Corbeille » ressemble aux autres titres de blocs : pas d'icône. Elle revient menu replié. */
.bo-rail__titre--lien .bo-rail__ic { display: none; }
.bo-rail__titre-nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-rail__pastille { display: none; }
.bo-rail__entrees { display: flex; flex-direction: column; gap: 1px; }
.bo-rail__entree { display: flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 8px; font-size: 14.5px; line-height: 1.35; color: #e3eaee; text-decoration: none; transition: background .15s ease, color .15s ease; }
.bo-rail__entree:hover { color: #ffffff; background: rgba(255, 255, 255, .08); }
.bo-rail__entree.is-actif { color: #ffffff; font-weight: 600; background: rgba(201, 168, 217, .28); }
.bo-rail__entree-nom { flex: 1; min-width: 0; }
/* Pastille : ce qui attend (leads à traiter, relances à valider, mails à ranger). */
.bo-rail__badge { flex: none; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: #ffffff; color: #6b3a8f; font-size: 12px; font-weight: 700; text-align: center; line-height: 1.5; }
.bo-rail a:focus-visible { outline: 2px solid #f2c9ef; outline-offset: -2px; }

/* Menu replié : une icône par bloc ; les entrées s'affichent en volet au survol ou au clavier. Réservé aux grands écrans : sous 900 px le menu est un tiroir complet. */
@media (min-width: 900px) {
.bo-cadre.is-rail-replie .bo-rail { padding-left: 8px; padding-right: 8px; overflow: visible; }
.bo-cadre.is-rail-replie .bo-rail__logo { padding-left: 4px; padding-right: 4px; align-items: center; }
.bo-cadre.is-rail-replie .bo-rail__logo-nom { font-size: 0; }
.bo-cadre.is-rail-replie .bo-rail__logo-nom::first-letter { font-size: 18px; }
.bo-cadre.is-rail-replie .bo-rail__logo-baseline { display: none; }
.bo-cadre.is-rail-replie .bo-rail__nav { gap: 4px; }
/* Le titre du bloc reste lu par les lecteurs d'écran ; à l'écran, une pastille-icône le remplace. */
.bo-cadre.is-rail-replie .bo-rail__titre:not(.bo-rail__titre--lien) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; padding: 0; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien { justify-content: center; padding: 11px 0; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien .bo-rail__ic { display: inline-flex; }
.bo-cadre.is-rail-replie .bo-rail__titre--lien .bo-rail__titre-nom { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bo-cadre.is-rail-replie .bo-rail__pastille { display: flex; justify-content: center; padding: 11px 0; border-radius: 9px; color: #ffffff; text-decoration: none; }
.bo-cadre.is-rail-replie .bo-rail__pastille:hover, .bo-cadre.is-rail-replie .bo-rail__bloc.is-actif > .bo-rail__pastille { background: rgba(255, 255, 255, .12); }
.bo-cadre.is-rail-replie .bo-rail__entrees { display: none; }
.bo-cadre.is-rail-replie .bo-rail__bloc:hover > .bo-rail__entrees,
.bo-cadre.is-rail-replie .bo-rail__bloc:focus-within > .bo-rail__entrees { display: flex; position: absolute; z-index: 80; left: 100%; top: 0; width: 250px; padding: 8px; border-radius: 12px; background: #14323f; box-shadow: 0 14px 36px rgba(10, 20, 40, .35); }
}

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

.bo-barre { position: relative; z-index: 60; display: flex; align-items: center; gap: 12px; flex: none; min-height: 52px; padding: 0 20px; background: var(--bo-blanc); border-bottom: 1px solid var(--bo-trait); }
.bo-barre__fil { flex: 1; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; color: var(--bo-texte-doux); }
.bo-barre__fil strong { color: var(--bo-encre); font-weight: 600; }
.bo-barre__droite { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.bo-barre__bouton { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid var(--bo-trait-fort); border-radius: 9px; font: inherit; font-size: 13px; color: var(--bo-encre); background: var(--bo-blanc); text-decoration: none; cursor: pointer; }
.bo-barre__bouton:hover { border-color: var(--bo-violet); color: var(--bo-bleu); }
.bo-barre__bouton svg { width: 16px; height: 16px; flex: none; }
.bo-barre__bouton:focus-visible, .bo-barre__compte summary:focus-visible, .bo-barre__entree:focus-visible, .bo-onglets__lien:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: 2px; }
.bo-barre__burger { display: none; }
.bo-barre__replier-ic { display: inline-block; width: 14px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
.bo-barre__replier-ic::after { content: ''; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid currentColor; }
.bo-barre__site { font-size: 13px; color: var(--bo-bleu); text-decoration: none; white-space: nowrap; }
.bo-barre__site:hover { text-decoration: underline; }

.bo-barre__compte { position: relative; }
.bo-barre__compte summary { display: flex; align-items: center; gap: 8px; padding: 3px 8px 3px 3px; border-radius: 999px; list-style: none; cursor: pointer; }
.bo-barre__compte summary::-webkit-details-marker { display: none; }
.bo-barre__compte summary:hover, .bo-barre__compte[open] summary { background: #f4f1f9; }
.bo-barre__avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; font-size: 12px; font-weight: 700; color: var(--bo-blanc); background: linear-gradient(135deg, var(--bo-violet), #6e4fa8); }
.bo-barre__nom { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--bo-encre); }
.bo-barre__panneau { position: absolute; top: calc(100% + 6px); right: 0; min-width: 200px; padding: 6px; border-radius: 12px; background: var(--bo-blanc); border: 1px solid var(--bo-trait); box-shadow: 0 18px 44px rgba(27, 73, 98, .18); }
.bo-barre__entree { display: block; width: 100%; padding: 9px 12px; border: 0; border-radius: 8px; font: inherit; font-size: 13.5px; text-align: left; color: var(--bo-encre); background: none; text-decoration: none; cursor: pointer; }
.bo-barre__entree:hover { color: var(--bo-bleu); background: #f4f1f9; }
.bo-barre__entree--deco { color: #a3324a; }
.bo-barre__entree--deco:hover { color: #a3324a; background: #fbeef1; }
.bo-barre__version { margin: 4px 12px; font-size: 11.5px; color: var(--bo-texte-discret); }
.bo-barre__panneau form { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid var(--bo-trait-clair); }

/* ---- Onglets de l'entrée ouverte ---- */
.bo-onglets { display: flex; flex: none; flex-wrap: wrap; gap: 4px; padding: 0 20px; background: var(--bo-blanc); border-bottom: 1px solid var(--bo-trait); }
.bo-onglets__lien { position: relative; padding: 11px 14px; font-size: 14px; color: var(--bo-texte-moyen); text-decoration: none; }
.bo-onglets__lien:hover { color: var(--bo-bleu); }
.bo-onglets__lien.is-actif { color: var(--bo-bleu); font-weight: 600; }
.bo-onglets__lien.is-actif::after { content: ''; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--bo-violet); }
/* Menu v2 (23/10/2026) : sous-onglets en pastilles sous les onglets. */
.bo-sous-onglets { display: flex; flex: none; flex-wrap: wrap; gap: 6px; padding: 10px 24px; background: #faf9fc; border-bottom: 1px solid var(--bo-trait); }
.bo-sous-onglets__lien { padding: 6px 13px; border: 1px solid var(--bo-trait); border-radius: 99px; background: var(--bo-blanc); font-size: 13px; font-weight: 600; color: var(--bo-bleu); text-decoration: none; }
.bo-sous-onglets__lien:hover { background: #f4f2f8; }
.bo-sous-onglets__lien.is-actif { background: var(--bo-bleu); border-color: var(--bo-bleu); color: var(--bo-blanc); }
.bo-sous-onglets__lien:focus-visible { outline: 2px solid var(--bo-violet); outline-offset: 2px; }

.bo-voile { position: fixed; inset: 0; z-index: 90; background: rgba(20, 30, 50, .45); }
.bo-voile[hidden] { display: none; }

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

.bo-evitement { position: absolute; left: 8px; top: -60px; z-index: 200; padding: 9px 14px; border-radius: 8px; font-size: 13.5px; color: var(--bo-blanc); background: var(--bo-bleu); text-decoration: none; }
.bo-evitement:focus { top: 8px; }

/* Boutons d'en-tête (repris de l'ancien bloc de la barre latérale). */
/* 04/10/2026 (Julien) : boutons d'en-tête uniformes et plus petits sur tous les écrans. Le bouton principal (adm-btn-principal, sinon le dernier du groupe) garde le dégradé ; les autres sont blancs, cerclés. Supprimer reste rouge. */.bo-entete__actions{gap:8px}.bo-entete__actions .adm-btn{padding:8px 15px;font-size:13px;font-weight:600;gap:6px;border-radius:999px;text-decoration:none}.bo-entete__actions .adm-btn svg{width:14px;height:14px}.bo-entete__actions .adm-btn:not(.adm-btn-danger){color:var(--bo-bleu);background:var(--bo-blanc);border:1px solid #d9d4e6;box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease}.bo-entete__actions .adm-btn:not(.adm-btn-danger):hover:not(:disabled){color:var(--bo-bleu);background:var(--bo-blanc);border-color:var(--bo-bleu);transform:none}.bo-entete__actions .adm-btn.adm-btn-principal,.bo-entete__actions:not(:has(.adm-btn-principal)) .adm-btn:not(.adm-btn-danger):last-child,.bo-entete__actions:not(:has(.adm-btn-principal)) > .adm-menu:last-child > .adm-btn{color:var(--bo-blanc);border-color:transparent;background:linear-gradient(120deg,var(--color-bleu) 0%,var(--color-violet) 100%)}.bo-entete__actions .adm-btn.adm-btn-principal:hover:not(:disabled),.bo-entete__actions:not(:has(.adm-btn-principal)) .adm-btn:not(.adm-btn-danger):last-child:hover:not(:disabled),.bo-entete__actions:not(:has(.adm-btn-principal)) > .adm-menu:last-child > .adm-btn:hover:not(:disabled){color:var(--bo-blanc);border-color:transparent;background:linear-gradient(120deg,var(--color-bleu) 0%,var(--color-violet) 100%);box-shadow:0 6px 18px rgba(188,70,182,.25)}.bo-entete__actions .adm-menu > div .adm-btn{padding:7px 14px;font-size:13px;color:var(--bo-bleu);background:var(--bo-blanc);border:1px solid #d9d4e6}
