/* ---------------------------------------------------------------
 * charte.css — FICHIER GÉNÉRÉ, NE PAS ÉDITER À LA MAIN.
 * Sources : bookconnect_fr/assets/css/design-system/
 * Reconstruire : php _dev/scripts/build_design_system.php
 * --------------------------------------------------------------- */


/* ===== _ds-charte-jetons.css (22 lignes) ===== */
/* =====================================================================
   _ds-charte-jetons.css — Jetons ÉPINGLÉS par la charte (spec §6.4)
   ---------------------------------------------------------------------
   Dans le périmètre de la charte (marqueur data-ds-charte posé par dsRender()),
   les 9 saveurs n'agissent plus sur le contenu : rayon, hauteur de contrôle,
   ombre, filet et police sont ceux de la charte, quelle que soit la barre choisie.

   ⚠ Ce sélecteur n'utilise PAS :where(). Les saveurs sont déclarées sous
   body:has(#ds-root[data-ds-flavor="N"]), soit la spécificité (1,1,1) ; celui-ci
   a la même et vient APRÈS, donc il gagne. Un :where() (spécificité nulle) perdrait
   contre elles. Preuve rejouable : _dev/tests/http/check_charte_specificite.ps1
   (Chrome, 9 saveurs, 26/09/2026).
   ===================================================================== */
body:has(#ds-root[data-ds-charte]){
  --ds-radius:var(--ds-r-md);
  --ds-radius-control:var(--ds-r-sm);
  --ds-control-h:40px;
  --ds-shadow:none;
  --ds-line:#e7e4ee;
  --ds-font-text:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ds-font-display:var(--ds-font-text);
}


/* ===== _ds-charte-atomes.css (159 lignes) ===== */
/* =====================================================================
   _ds-charte-atomes.css — Charte graphique, palier « atomes »
   ---------------------------------------------------------------------
   Boutons, champs, cases, badges, alertes, anneau de focus. Actif seulement
   quand dsRender() pose data-ds-charte~="atomes" sur #ds-root (fichier de
   vagues config/charte_vagues.json ou ?charte=on).

   Méthode : on RÉÉCRIT les variables --bs-* que le pont d'août
   (_ds-bridge.css) pose déjà sur les composants Bootstrap — aucune classe
   nouvelle, aucun changement de balisage. La garde est en :where()
   (spécificité nulle) : les composants gagnent à égalité contre Bootstrap
   et le pont, chargés avant. Couleurs = jetons uniquement (mesure M1 à zéro).
   Valeurs : spec 2026-09-26, §6.1 et §6.2.
   ===================================================================== */

/* ---- Focus : anneau 2,5 px encre d'accent, décalage 2 px, sur toute la famille ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) :focus-visible{
  outline:var(--ds-focus-width) solid var(--ds-focus-color);
  outline-offset:2px;
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn:focus-visible,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-check:focus-visible + .btn,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control:focus,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select:focus{
  box-shadow:none;
}

/* ---- Boutons : 40 px, rayon 8, 0,875 rem / 600 (déjà portés par le pont et les jetons épinglés) ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-sm{ min-height:var(--ds-control-h-compact); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-lg{ min-height:var(--ds-control-h-lg); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-primary{
  --bs-btn-color:var(--ds-on-accent);
  --bs-btn-hover-color:var(--ds-on-accent);
  --bs-btn-active-color:var(--ds-on-accent);
}
/* Secondaire : papier + filet fonctionnel ; le survol renforce le filet, sans ombre */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-secondary,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-outline-secondary,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-light{
  --bs-btn-color:var(--ds-ink);
  --bs-btn-bg:var(--ds-paper);
  --bs-btn-border-color:var(--ds-line-strong);
  --bs-btn-hover-color:var(--ds-ink);
  --bs-btn-hover-bg:var(--ds-paper);
  --bs-btn-hover-border-color:var(--ds-ink);
  --bs-btn-active-color:var(--ds-ink);
  --bs-btn-active-bg:var(--ds-sunken);
  --bs-btn-active-border-color:var(--ds-ink);
}
/* Danger : en contour ; plein seulement quand la page le décide (btn-danger) */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn-outline-danger{
  --bs-btn-color:var(--ds-danger);
  --bs-btn-border-color:var(--ds-danger);
  --bs-btn-hover-color:var(--ds-danger);
  --bs-btn-hover-bg:var(--ds-danger-bg);
  --bs-btn-hover-border-color:var(--ds-danger);
  --bs-btn-active-color:var(--ds-danger);
  --bs-btn-active-bg:var(--ds-danger-bg);
  --bs-btn-active-border-color:var(--ds-danger);
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn:disabled,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .btn.disabled,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) fieldset:disabled .btn{
  --bs-btn-disabled-color:var(--ds-muted);
  --bs-btn-disabled-bg:var(--ds-sunken);
  --bs-btn-disabled-border-color:var(--ds-line);
  --bs-btn-disabled-opacity:1;
  cursor:not-allowed;
}

/* ---- Champs et listes déroulantes : 40 px, rayon 8, filet fonctionnel (3:1), 1 rem ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select{
  min-height:var(--ds-control-h);
  background-color:var(--ds-paper);
  border:1px solid var(--ds-line-strong);
  border-radius:var(--ds-radius-control);
  font-size:var(--ds-t-base);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control:hover,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select:hover{ border-color:var(--ds-ink); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control:focus,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select:focus{ border-color:var(--ds-accent-ink); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control:disabled,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select:disabled{
  background-color:var(--ds-sunken);
  border-color:var(--ds-line);
  color:var(--ds-muted);
  cursor:not-allowed;
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-control.is-invalid,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-select.is-invalid{ border-color:var(--ds-danger); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .invalid-feedback{
  color:var(--ds-danger);
  font-size:var(--ds-t-sm);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-text{ color:var(--ds-muted); font-size:var(--ds-t-sm); }

/* ---- Cases, radios, interrupteurs : 18 px, coché = encre d'accent ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-check:not(.form-switch) .form-check-input{
  width:18px;
  height:18px;
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-check-input{ border:1px solid var(--ds-line-strong); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-check-input:checked,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .form-check-input[type=checkbox]:indeterminate{
  background-color:var(--ds-accent-ink);
  border-color:var(--ds-accent-ink);
}

/* ---- Badges : rayon 4, 0,75 rem / 600 (les pastilles rounded-pill gardent leur forme) ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .badge{
  --bs-badge-padding-x:8px;
  --bs-badge-padding-y:2px;
  --bs-badge-font-size:var(--ds-t-xs);
  --bs-badge-font-weight:var(--ds-w-semi);
  --bs-badge-border-radius:var(--ds-r-xs);
  line-height:16px;
}

/* ---- Alertes : rayon 8, 12 x 16, fond d'état, filet 1 px d'état, barre gauche 4 px, texte en encre ---- */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert{
  --bs-alert-border-radius:var(--ds-r-sm);
  --bs-alert-padding-y:12px;
  --bs-alert-padding-x:16px;
  --bs-alert-color:var(--ds-ink);
  border-style:solid;
  border-width:1px;
  border-left-width:4px;
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-success{ border-color:var(--ds-success-line); border-left-color:var(--ds-success); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-warning{ border-color:var(--ds-warning-line); border-left-color:var(--ds-warning); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-danger{ border-color:var(--ds-danger-line); border-left-color:var(--ds-danger); }
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-info{ border-color:var(--ds-info-line); border-left-color:var(--ds-info); }
/* L'alerte « rôle » est NEUTRE avec un filet d'accent : le rouge d'Auteur ne doit pas ressembler à une erreur */
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-primary{
  --bs-alert-bg:var(--ds-sunken);
  border-color:var(--ds-line);
  border-left-color:var(--ds-accent-ui);
}
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-secondary,
:where(body:has(#ds-root[data-ds-charte~="atomes"])) .alert-light{
  border-color:var(--ds-line);
  border-left-color:var(--ds-line-strong);
}

/* ---- Couleurs sémantiques des UTILITAIRES Bootstrap (.text-danger, .text-success, .bg-success-subtle, .border-warning…) ----
   Bootstrap les lit dans --bs-*-rgb : le rouge #dc3545 et le vert #198754 de Bootstrap ne sont PAS ceux de la charte (contraste AA
   vérifié pour les jetons --ds-*). On repose les triplets sur <body> (plus proche que :root) : chaque utilitaire, même !important,
   prend alors la couleur de la charte. « primary » (le bleu #0d6efd) devient l'encre : un utilitaire n'a pas à imposer un bleu. */
:where(body:has(#ds-root[data-ds-charte~="atomes"])){
  --bs-success-rgb:15, 122, 79;
  --bs-danger-rgb:179, 35, 56;
  --bs-warning-rgb:138, 90, 0;
  --bs-info-rgb:10, 95, 150;
  --bs-primary-rgb:23, 21, 31;
}


/* ===== _ds-charte-structures.css (75 lignes) ===== */
/* =====================================================================
   _ds-charte-structures.css — Charte graphique, palier « structures »
   ---------------------------------------------------------------------
   Tableaux, modales, pagination, menus déroulants, listes. Actif seulement
   quand dsRender() pose data-ds-charte~="structures" sur #ds-root.
   Même méthode que le palier atomes : variables --bs-* du pont réécrites,
   garde en :where(), jetons uniquement. Valeurs : spec 2026-09-26, §6.2.
   ===================================================================== */

/* ---- Tableaux « booktabs » : filet épais en tête, en-tête sans aplat, lignes à 1 px ---- */
:where(body:has(#ds-root[data-ds-charte~="structures"])) .table{
  --bs-table-hover-bg:var(--ds-canvas);
  --bs-table-striped-bg:var(--ds-canvas);
  border-top:var(--ds-rule);
  font-variant-numeric:tabular-nums;
}
:where(body:has(#ds-root[data-ds-charte~="structures"])) .table > thead th,
:where(body:has(#ds-root[data-ds-charte~="structures"])) .table > thead td{
  background-color:transparent;
  color:var(--ds-ink);
  font-size:var(--ds-t-sm);
  font-weight:var(--ds-w-semi);
  letter-spacing:normal;
  text-transform:none;
  border-bottom:1px solid var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="structures"])) caption{ color:var(--ds-ink-soft); font-size:var(--ds-t-md); }

/* ---- Modales : rayon 12, ombre de fenêtre, titre 1,375 rem / 700, filets 1 px en en-tête et en pied ---- */
:where(body:has(#ds-root[data-ds-charte~="structures"])) .modal{
  --bs-modal-border-radius:var(--ds-r-md);
  --bs-modal-box-shadow:var(--ds-e4);
  --bs-modal-border-color:var(--ds-line);
  --bs-modal-header-padding:20px 24px;
  --bs-modal-padding:20px 24px;
  --bs-modal-header-border-color:var(--ds-line);
  --bs-modal-footer-border-color:var(--ds-line);
  --bs-modal-footer-gap:8px;
}
:where(body:has(#ds-root[data-ds-charte~="structures"])) .modal-title{
  font-size:var(--ds-t-xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:-.01em;
  line-height:var(--ds-lh-tight);
}

/* ---- Pagination : liens 40 x 40, 600 (l'état actif reste celui du pont, verrouillé par ailleurs) ---- */
:where(body:has(#ds-root[data-ds-charte~="structures"])) .page-link{
  min-width:40px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:var(--ds-w-semi);
}

/* ---- Menus déroulants : papier, filet, rayon 8, ombre flottante légère, survol neutre ---- */
:where(body:has(#ds-root[data-ds-charte~="structures"])) .dropdown-menu{
  --bs-dropdown-border-radius:var(--ds-r-sm);
  --bs-dropdown-box-shadow:var(--ds-e2);
  --bs-dropdown-padding-y:4px;
  --bs-dropdown-item-padding-y:8px;
  --bs-dropdown-link-hover-bg:var(--ds-canvas);
  --bs-dropdown-link-hover-color:var(--ds-ink);
  --bs-dropdown-link-active-bg:var(--ds-sunken);
  --bs-dropdown-link-active-color:var(--ds-ink);
}

/* ---- Listes : rayon 8, sélection neutre ---- */
:where(body:has(#ds-root[data-ds-charte~="structures"])) .list-group{
  --bs-list-group-border-radius:var(--ds-r-sm);
  --bs-list-group-active-bg:var(--ds-sunken);
  --bs-list-group-active-color:var(--ds-ink);
  --bs-list-group-active-border-color:var(--ds-line-strong);
}


/* ===== _ds-charte-composition.css (58 lignes) ===== */
/* =====================================================================
   _ds-charte-composition.css — Charte graphique, palier « composition »
   ---------------------------------------------------------------------
   Titres et onglets, portés SANS toucher au balisage : on n'agit que sur
   ce que Bootstrap et le pont exposent déjà (h1 à h4, .nav-tabs). Les
   composants à classes neuves (titre à filet, rail, cartes à bandeau,
   cartes de statistiques) demandent du balisage : ils viendront module
   par module. Actif seulement quand dsRender() pose
   data-ds-charte~="composition" sur #ds-root. Valeurs : spec 2026-09-26.
   ===================================================================== */

/* ---- Titres : gras, serrés, échelle de la charte (le titre de page « atelier » vaut 1,75 rem) ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .h1{
  font-size:var(--ds-t-2xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:var(--ds-tracking-tight);
  line-height:var(--ds-lh-tight);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h2,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .h2{
  font-size:var(--ds-t-xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:-.01em;
  line-height:var(--ds-lh-tight);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h3,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .h3{
  font-size:var(--ds-t-lg);
  font-weight:var(--ds-w-bold);
  line-height:var(--ds-lh-snug);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h4,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .h4{
  font-size:var(--ds-t-base);
  font-weight:var(--ds-w-bold);
  line-height:var(--ds-lh-snug);
}

/* ---- Onglets : texte seul 1,125 rem / 600, hauteur 48, écart 32, actif = encre + soulignement 2 px encre ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-tabs{
  --bs-nav-link-color:var(--ds-ink-soft);
  --bs-nav-link-hover-color:var(--ds-ink);
  --bs-nav-link-font-size:var(--ds-t-lg);
  --bs-nav-link-font-weight:var(--ds-w-semi);
  --bs-nav-link-padding-x:0;
  --bs-nav-tabs-border-color:var(--ds-line);
  --bs-nav-tabs-link-active-color:var(--ds-ink);
  --bs-nav-tabs-link-active-border-color:transparent transparent var(--ds-ink) transparent;
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-tabs .nav-link{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}


/* ===== _ds-charte-titres.css (58 lignes) ===== */
/* =====================================================================
   _ds-charte-titres.css — Charte graphique : le titre de page, IDENTIQUE partout
   ---------------------------------------------------------------------
   Modèle : les pages « Mon réseau », « Forums » et « Recherche globale ».
   Un filet épais en encre sur toute la largeur du bloc, puis l'icône et le
   titre en 1,75 rem gras, puis le sous-titre en encre secondaire ; les
   boutons d'action restent à droite du titre.

   Le titre principal est le <h1> de la page, quelle que soit la classe que la
   page lui donne (`h3 mb-1`, `illu-page-title`…) : c'est ce qui rend la charte
   uniforme sans toucher au balisage. Deux cas pour le filet :
   - <h1> posé directement dans une rangée flex (titre + boutons) : la RANGÉE
     porte le filet, qui couvre alors toute la largeur ;
   - <h1> seul : le titre porte son propre filet.
   Un <h1> dans une modale, une carte, un menu, une barre latérale ou un pied
   de page n'est PAS un titre de page : ni filet, ni marge. Les bannières
   déjà à plat (fichiers pages et pages-auto) portent leur propre filet et
   retirent celui du titre : elles viennent APRÈS ce fichier.
   Le sélecteur `.ds-libre` (jamais posé) n'est là que pour donner au titre la
   spécificité qui l'emporte sur `.h3`, `.h4` et les classes des pages.
   ===================================================================== */

:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre){
  font-size:var(--ds-t-2xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:var(--ds-tracking-tight);
  line-height:var(--ds-lh-tight);
  color:var(--ds-ink);
  margin-bottom:var(--ds-s2);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre):not(:where(.modal h1, .card h1, .offcanvas h1, .navbar h1, .dropdown-menu h1, footer h1, aside h1, .d-flex > h1, .d-flex.justify-content-between > :first-child h1)){
  border-top:var(--ds-rule);
  padding-top:var(--ds-s5);
  margin-top:var(--ds-s6);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .d-flex:has(> h1):not(:where(.modal .d-flex, .card .d-flex, .offcanvas .d-flex, .navbar .d-flex, .dropdown-menu .d-flex, footer .d-flex, aside .d-flex)){
  border-top:var(--ds-rule);
  padding-top:var(--ds-s5);
  margin-top:var(--ds-s6);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .d-flex.justify-content-between:has(> :first-child h1):not(:where(.modal .d-flex, .card .d-flex, .offcanvas .d-flex, .navbar .d-flex, .dropdown-menu .d-flex, footer .d-flex, aside .d-flex)){
  border-top:var(--ds-rule);
  padding-top:var(--ds-s5);
  margin-top:var(--ds-s6);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) > i,
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) > .fas,
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) > .far,
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) > .fab{
  color:var(--ds-ink);
  margin-right:var(--ds-s2);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) + p,
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) + small,
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1:not(.ds-libre) + .text-muted{
  font-size:var(--ds-t-base);
  margin-top:0;
}


/* ===== _ds-charte-couleurs.css (625 lignes) ===== */
/* =====================================================================
   _ds-charte-couleurs.css — GÉNÉRÉ par _dev/scripts/generer_charte_couleurs.php : NE PAS ÉDITER À LA MAIN.
   Couleurs en dur de TOUTES les pages (pages/**.php et assets/css/pages/*.css) ramenées aux jetons de la charte (voir l'en-tête du script pour les règles de décision).
   ===================================================================== */
:where(body:has(#ds-root[data-ds-charte~="composition"])){
--accent-color:var(--ds-accent-ui);
--acteurs-bg:var(--ds-sunken);
--acteurs-border:var(--ds-line);
--acteurs-card:var(--ds-paper);
--acteurs-muted:var(--ds-accent-ui);
--acteurs-text:var(--ds-accent-ink);
--arg-bg:var(--ds-sunken);
--arg-border:var(--ds-line);
--arg-danger:var(--ds-danger);
--arg-danger-light:var(--ds-sunken);
--arg-primary:var(--ds-accent-ink);
--arg-primary-hover:var(--ds-accent-ink);
--arg-primary-light:var(--ds-sunken);
--arg-secondary:var(--ds-accent-ui);
--arg-secondary-light:var(--ds-accent-soft);
--arg-text:var(--ds-ink);
--arg-text-muted:var(--ds-muted);
--arg-warning:var(--ds-warning);
--arg-warning-light:var(--ds-warning-bg);
--auteur-nav-border:var(--ds-line);
--auteur-nav-hover-bg:var(--ds-sunken);
--auteur-nav-primary:var(--ds-accent-ui);
--auteur-nav-text:var(--ds-ink);
--auteur-nav-text-light:var(--ds-ink-soft);
--bg-gray:var(--ds-sunken);
--bg-light:var(--ds-sunken);
--border-color:var(--ds-line);
--coloriste-color:var(--ds-accent-ui);
--coloriste-color-dark:var(--ds-accent-ink);
--coloriste-color-soft:var(--ds-sunken);
--community-accent:var(--ds-accent-ui);
--community-primary:var(--ds-accent-ui);
--community-secondary:var(--ds-accent-ui);
--community-warning:var(--ds-warning);
--corr-color:var(--ds-accent-ui);
--corr-color-dark:var(--ds-accent-ink);
--corr-color-hover:var(--ds-accent-ink);
--corr-color-light:var(--ds-accent-soft);
--cover-ameliorer:var(--ds-accent-ui);
--cover-bon:var(--ds-accent-ink);
--cover-color:var(--ds-accent-ui);
--cover-correct:var(--ds-accent-ui);
--cover-dark:var(--ds-accent-ink);
--cover-light:var(--ds-sunken);
--dark-bg:var(--ds-ink);
--dessinateur-color:var(--ds-accent-ui);
--dessinateur-color-dark:var(--ds-accent-ink);
--dessinateur-color-soft:var(--ds-sunken);
--diag-acceptable:var(--ds-accent-ui);
--diag-critique:var(--ds-accent-ui);
--diag-optimal:var(--ds-accent-ink);
--droits-accent:var(--ds-accent-ui);
--droits-dark:var(--ds-accent-ink);
--droits-light:var(--ds-accent-soft);
--droits-primary:var(--ds-accent-ink);
--droits-secondary:var(--ds-accent-ui);
--editorial-accent:var(--ds-accent-ui);
--editorial-primary:var(--ds-accent-ui);
--editorial-secondary:var(--ds-accent-ui);
--editorial-warning:var(--ds-warning);
--formation-accent:var(--ds-accent-ui);
--formation-dark:var(--ds-accent-ink);
--formation-light:var(--ds-accent-soft);
--formation-primary:var(--ds-accent-ui);
--formation-secondary:var(--ds-accent-ui);
--forum-bg:var(--ds-sunken);
--forum-border:var(--ds-line);
--forum-card-bg:var(--ds-paper);
--forum-primary:var(--ds-accent-ui);
--forum-secondary:var(--ds-accent-ui);
--forum-text:var(--ds-ink);
--forum-text-muted:var(--ds-ink-soft);
--graphiste-color:var(--ds-accent-ui);
--graphiste-color-dark:var(--ds-accent-ink);
--graphiste-color-soft:var(--ds-sunken);
--illustrateur-color:var(--ds-accent-ui);
--illustrateur-color-dark:var(--ds-accent-ink);
--illustrateur-color-soft:var(--ds-sunken);
--info-color:var(--ds-accent-ui);
--infographiste-color:var(--ds-accent-ink);
--infographiste-color-dark:var(--ds-accent-ink);
--infographiste-color-soft:var(--ds-accent-soft);
--lect-badge-bg:var(--ds-sunken);
--lect-badge-fg:var(--ds-ink);
--lect-primary:var(--ds-accent-ink);
--lect-primary-dk:var(--ds-accent-ink);
--lect-star:var(--ds-accent-ui);
--lect-star-empty:var(--ds-muted);
--lib-accent:var(--ds-accent-ui);
--lib-bg:var(--ds-sunken);
--lib-border:var(--ds-line);
--lib-primary:var(--ds-accent-ink);
--lib-primary-dark:var(--ds-accent-ink);
--lib-primary-light:var(--ds-accent-soft);
--lib-surface:var(--ds-paper);
--lib-text:var(--ds-ink);
--lib-text-muted:var(--ds-muted);
--light-bg:var(--ds-sunken);
--mq-accent:var(--ds-accent-ui);
--networking-accent:var(--ds-accent-ui);
--networking-primary:var(--ds-accent-ui);
--networking-secondary:var(--ds-accent-ui);
--networking-success:var(--ds-success);
--networking-warning:var(--ds-warning);
--panorama-accent:var(--ds-accent-ui);
--panorama-bg:var(--ds-sunken);
--panorama-border:var(--ds-line);
--panorama-card:var(--ds-paper);
--panorama-muted:var(--ds-ink-soft);
--panorama-text:var(--ds-accent-ink);
--pe-accent:var(--ds-accent-ink);
--pe-accent-strong:var(--ds-accent-ink);
--pe-bg-soft:var(--ds-sunken);
--pe-border:var(--ds-line);
--pe-border-strong:var(--ds-line);
--pe-link:var(--ds-accent-ink);
--pe-muted:var(--ds-muted);
--pe-text:var(--ds-ink);
--primary-blue:var(--ds-accent-ui);
--primary-color:var(--ds-ink);
--rentabilite-color:var(--ds-accent-ink);
--rentabilite-dark:var(--ds-accent-ink);
--rentabilite-light:var(--ds-accent-soft);
--rep-accent:var(--ds-accent-ink);
--rep-accent-bg:var(--ds-sunken);
--rep-accent-border:var(--ds-accent-line);
--rep-accent-dark:var(--ds-accent-ink);
--secondary-color:var(--ds-accent-ui);
--success-color:var(--ds-success);
--text-color:var(--ds-ink);
--text-light:var(--ds-ink-soft);
--text-primary:var(--ds-ink);
--text-secondary:var(--ds-accent-ink);
--warning-color:var(--ds-warning);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.advanced-editor, .agent-stat, .annuaire-chip, .author-avatar, .avis-carte, .avis-empty, .benefit-item, .biblio-cal-cell, .biblio-card, .biblio-list-card, .biblio-list-item, .book-item, .book-result, .bstats-card, .bstats-kpi, .cal-week-day, .cal-year-month, .calendar-day-detail, .category-chip, .checklist-checkbox, .checklist-detail-item, .checklist-item, .clients-autocomplete-list, .clients-kpi, .club-card-full, .cm-backlog, .cmd-autocomplete-list, .cmd-kpi, .comite-calendar-popover, .comite-calendar-todos, .comite-critere-item, .comite-dossier-section, .comite-email-chips, .comite-empty-state, .comite-eval-item, .comite-member-table-wrap, .comite-mini-stat, .comite-participant-row, .comite-planning-row, .comite-reader-card, .comite-session-card, .comite-summary-panel, .comite-table, .comite-timeline, .comment-item, .composer-more-menu, .corr-kpi-card, .corr-mission-card, .corr-shortcut-card, .corr-tarif-mode-card, .cstats-card, .cstats-kpi, .decision-btn, .distrib-card, .distrib-kpi, .ebib-card, .ebib-kpi, .ef-preset, .ef-simulation, .eh-tuile, .enseigne-tag, .estats-card, .estats-kpi, .etude-result, .etude-version-bar, .evt-calendar, .evt-fiche-bloc, .evt-kpi-card, .fc-tag-panel, .feed-composer, .filter-select, .fournisseur-dropdown-results, .guide-article, .illu-form-section, .illu-ouvrage-row, .ilp-biblio-item, .imp-avis, .imp-card, .imp-chiffre, .imp-demande, .imp-resultat, .imp-tuile, .impact-card, .inline-edit-content, .invite-result, .lect-review-card, .llst-card, .llst-panel, .lstats-card, .lstats-kpi, .mandat-bloc, .mandat-contestation, .mandat-rgpd, .member-menu, .member-tokens, .mkt-section, .mq-shortcut, .mstats-card, .mstats-kpi, .network-search-results, .participant-result-item, .pestel-radar-container, .ph-tuile, .pi-form, .pill, .plan-parcours, .plan-parcours-carte, .pu-section, .pub-tag-panel, .qualif-card, .rcli-card, .rcmd-card, .rcmd-filters, .reco-autocomplete-dropdown, .reco-type-option, .relation-card, .rep-kpi-card, .rfic-card, .rmai-card, .role-badge-soon, .role-section-card, .role-stat-card, .rstats-card, .rstats-kpi, .rvis-card, .service-detail, .sf-file-preview, .sf-quiz-block, .sf-review-form, .sidebar-pro-body, .sl-preview-sticky, .soum-autocomplete-dropdown, .soum-maison-editeur-item, .status-select, .synthesis-item, .transp-branche, .transp-choix, .transp-course, .transp-etape, .transp-kpi, .transp-ligne, .transp-resultat-btn, .transp-tournee, .transports-course, .transports-kpi, .transports-preuve, .transports-resultat, .tstats-card, .user-dropdown),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-carousel-nav button, .annuaire-view-toggle button, .chat-empty-avatar img, .qualif-precision-options label),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.timeline-entry .timeline-content, .vitrine-hero .hero-type),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-carousel-nav button:hover, .sf-user-review .sf-review-actions button),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #gantt-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(svg#affinity-graph, svg#graph){background:var(--ds-paper);border-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.criteria-header, .editor-toolbar, .fc-tag-panel-header, .nvp-preview, .pub-tag-panel-header, .publication-header),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .info-section .section-header{background:var(--ds-sunken);border-bottom-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.analysis-tool, .annuaire-facets, .arc-bar, .arc-bar-container, .arg-circuit, .avatar-placeholder-sm, .avis-barre__piste, .bar-container, .biblio-conseil-cover, .biblio-cover, .biblio-dashboard, .bnf-pub-bar-track, .bnf-trend-bar-track, .book-item-cover, .book-result-cover, .book-search-tabs, .brief-section, .bstats-bar, .c4-genre-bar-wrap, .calendar-sub-tabs, .catalogue-cover, .cert-details, .ck-bar-track, .ck-bench-bar-wrap, .ck-distrib-stat, .collaboration-opportunities, .comite-calendar-todos__card--prod, .comite-calendar-todos__pills, .comite-dossier-section--placeholder, .comite-progress-bar, .comite-session-card__stats, .comite-timeline__progress-bar, .community-events, .compare-bar, .contact-form-section, .critere-bar-track, .criteria-bar, .cstats-bar, .dashboard-last-analysis, .demo-col, .detail-inputs, .diag-cat-bar, .diag-missing-item, .document-card-icon, .editor-dashboard, .engagement-stats, .equipe-section, .estats-bar, .etape-row, .event-participants, .evt-dot, .evt-invite-avatar, .faq-section, .filter-input-group, .filter-section, .filter-tab, .find-partners-page, .formations-list, .forum-editor-toolbar, .genre-bar, .genre-bar-container, .illu-bar, .illu-cmd-col, .illu-cmd-note-systeme, .illu-share-pick, .illu-stacked, .ilp-card-img, .image-preview, .imp-consult--gagne, .imp-consult--perdu, .imp-jalon--confirme, .imp-jalon--declare, .kanban-column, .keyboard-hint, .knowledge-category, .lc-slot--incontent, .lc-slot--rail, .lect-cover-wrap, .lesson, .lstats-bar, .main-tab, .management-tools, .mandat-avatar, .messages-sidebar, .meter-bar, .metric, .mission-section, .mkt-dist-track, .mkt-genre-bar-track, .mq-card-media, .mq-retour-client, .ms-analyse-details, .mstats-bar, .niveau-progress, .notifications-page, .ob-layout-divider, .palmares-card-cover, .parcours-summary, .participant-chip, .pestel-dim-bar-track, .planning-group-header, .pp-bar-track, .pro-avatar, .pro-section-header, .proj-history-item--latest, .pu-badge, .pu-comp-bar, .pu-portfolio-img, .pub-cover, .qualif-precision, .quick-filters, .quiz-correction, .quiz-progress, .rating-row, .rating-slider, .rayon-cover, .reco-modal-steps, .reco-skeleton-avatar, .reco-skeleton-line, .reco-step-separator, .relations-section, .rstats-prog, .service-pricing, .service-types, .sf-progress-bar, .sf-reviews-summary, .share-link-section, .sl-format-preview, .sl-progress-bar, .sl-section-header, .soum-kanban-column, .step-flow, .stepper-line, .stock-cover, .suggestion-cover, .synthesis-recommendations, .thematic-groups, .toggle-btn, .transp-etape-orpheline, .values-section, .vente-part, .view-btn, .voir-ms-cover, .voltr-book-cover, .work-process),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-collection-card__stats div, .comparison-table th, .etude-result code, .libraire-vitrine-public footer),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fichiers-list table th,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-icon.locked-icon, .biblio-list-item:hover, .bnf-mini-card:hover, .c4-activity-item:hover, .ca-item:hover, .cal-day-cell.cal-day-outside, .cal-day-cell.cal-day-today, .cal-nav-btn:hover, .cal-today-btn:hover, .cal-week-event:hover, .checklist-row.is-done, .checklist-row:hover, .comite-timeline__step:focus-visible, .comite-timeline__step:hover, .comparison-table .criteria-cell, .composer-chip:hover, .conversation-item:hover, .ctx-panel-header:hover, .diag-missing-item:hover, .etape-accordion .accordion-button, .evt-calendar-cell.evt-aujourdhui, .evt-calendar-cell.evt-hors-mois, .evt-calendar-event.evt-statut-cancelled, .evt-calendar-event.evt-statut-draft, .evt-calendar-event.evt-statut-ended, .fc-tag-option:hover, .fiche-card-header:hover, .fiche-lecture-criterion:hover, .fichier-card .card-thumb, .filter-tab:hover, .imp-scope .imp-stock--alerte, .kanban-card.kanban-card--ghost, .llst-card.is-active, .main-tab:hover, .manuscript-card:hover, .member-row.is-active, .member-row:hover, .message-input-area .composer-shell, .modal-btn.cancel, .ms-sec-btn-premium:hover, .mv-item:hover, .n2-vbtn:hover, .need-card-header:hover, .note-card.pinned, .notification-dropdown-item:hover, .nws-item:hover, .participant-result-item:hover, .payment-option.disabled, .pe-tool:hover, .pestel-indicator-mini-bar .mini-track, .planning-step-row:hover, .plumes-history-filter:hover, .pp-item-todo:hover, .pro-card:hover, .pro-section-header:hover, .proj-history-item:hover, .provider-skeleton .skel-circle, .provider-skeleton .skel-line, .pub-editor__close:hover, .pub-portee__trigger:hover, .pub-tag-option:hover, .rc-card:hover, .reaction-bar .progress, .reco-autocomplete-item:hover, .recommendation-btn:hover, .recommendation-card:hover, .resource-btn:hover, .rss-feed-item:hover, .saved-search-chip:hover, .search-result-item:hover, .sf-btn-nav:hover, .sf-lesson-link:hover, .sf-resource:hover, .sidebar-podcast-item:hover, .sl-section-header:hover, .sort-tab:hover, .soum-ac-item:hover, .soum-kanban-column-nonsoumis .soum-kanban-header, .soum-maison-editeur-item:hover, .stepper-step .step-connector, .suggested-profile:hover, .suggestion-item.suggestion-disabled, .suggestion-item:hover, .tag-menu-item:hover, .toggle-btn:hover, .top-auteur-item:hover, .user-dropdown-item.active, .user-dropdown-item:hover, .valeur-item:hover, .view-all:hover, .view-btn:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.author-menu-dropdown a:hover, .clients-autocomplete-list button:focus, .clients-autocomplete-list button:hover, .cmd-autocomplete-list button:focus, .cmd-autocomplete-list button:hover, .ebib-liste button:hover, .forum-pagination a:hover, .n2-pager a:hover, .subscription-history .table thead, .table.editeur-erp-table th),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-table tbody tr:hover, .comite-table tbody tr:hover, .history-table tbody tr:hover, .submissions-table tr:hover td),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.compare-table tbody tr:hover td, .etude-result table tr:nth-child(even), table.rcli-tbl tbody tr:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-nav .btn-prev:hover, .biblio-cal-cell:hover:not(.empty), .btn-forum.btn-like.liked, .cert-toolbar-btn.secondary:hover, .certificate-btn.secondary:hover, .checklist-row.is-done:hover, .comite-participants-pick .participant-pick-row:hover, .event-btn.secondary:hover, .formation-btn.secondary:hover, .modal-btn.cancel:hover, .network-tabs .nav-link:hover, .provider-mini-card .btn-profile:hover, .rayon-filters .btn-filter:hover, .reco-modal-footer .btn-back:hover, .service-btn.secondary:hover, .sf-user-review .sf-delete-btn:hover, .sf-user-review .sf-edit-btn:hover, .soum-dropdown-menu .dropdown-item:hover, .step-nav .btn-prev:hover, .toolbar-group .btn:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .compare-toggle button:hover:not(.active),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.compare-table tbody td:first-child:hover, .files-section .table tbody tr:hover, .subscription-history .table tbody tr:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.etape-accordion .accordion-item.is-completed .accordion-button, .etape-accordion .accordion-item.is-current .accordion-button),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #xlsxContent tr:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #xlsxContent tr:nth-child(even),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #auteur_suggestions .list-group-item:hover{background:var(--ds-sunken)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.annuaire-card--connected, .avis-spoiler, .biblio-argument, .compare-best-pick, .etude-config, .formation-cta, .imp-offre--retenue, .office-hours, .pe-voltr-brief, .plumes-explainer, .plumes-indicator, .reco-selected-user, .sf-user-review, .sl-devis-confirm, .sl-prov-boosted, .sl-voltr-confirm, .soum-plumes-info, .topic-private-gate, .transp-choisi, .transp-vide, .transports-suivi, .transports-vide, .upload-dropzone, .vente-drop--actif),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.book-result:hover, .category-chip:hover, .category-select-option.selected, .category-select-option:hover, .checklist-checkbox:hover, .checklist-detail-item.completed, .checklist-item.completed, .club-visibilite:hover, .common-hobbies-card:hover, .drop-zone.dragover, .drop-zone:hover, .editor-content.drag-over, .ef-preset.selected, .ef-preset:hover, .eh-tuile.active, .fc-tag-option.selected, .hobby-item-option.selected, .hobby-item-option:hover, .image-upload-zone.dragover, .image-upload-zone:hover, .invite-result:hover, .mini-card.selected, .ms-depot-dropzone.dragover, .ms-depot-dropzone:hover, .nego-editor-card:hover, .payment-option.selected, .ph-tuile.active, .plan-parcours-carte.is-courant, .plan-parcours.is-a-declarer, .post-item.post-solution, .priority-option.low, .priority-option.normal, .priority-option.urgent, .pub-tag-option.selected, .quiz-ordering-item.dragging, .reason-option.selected, .reason-option:hover, .reco-type-option.selected, .soum-editor-card:hover, .soumission-modal .current-reader, .study-type-card:hover, .transp-etape-terrain.est-echec, .transp-etape-terrain.est-faite, .transp-resultat-btn:focus, .transp-resultat-btn:hover, .upload-section.drag-over, .upload-zone.drag-over, .upload-zone:hover, .vente-drop:focus-visible, .vente-drop:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .qualif-precision-options label:has(input:checked),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .hobby-custom-option .category-select-option.selected{background:var(--ds-sunken);border-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-detail-panel__backdrop, .auth-page, .comment-lightbox, .fichiers-lightbox, .kanban-comite-overlay, .media-controls, .reco-modal-overlay, .report-modal-overlay, .sf-video-wrap, .share-modal-overlay, .video-card-thumbnail, .video-embed-container, .vitrine-carousel),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sp-banner code,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.kanban-column-header .count, .n2-icon.cat-systeme, .n2-icon.cat-taches, .notification-icon.type-system, .share-btn.twitter),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.mxp-choose:hover:not(:disabled), .podcast-card:hover .podcast-card-play-overlay, .roles-band .roles-nav:hover, .video-card:hover .video-card-play-overlay),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #pdfPreviewContainer{background:var(--ds-ink);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.chat-starter, .comite-card-tag, .formation-price, .service-price),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-card-actions button,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.media-controls .btn, .sl-preview-btn.sl-btn-replace){background:var(--ds-paper);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-card__tag, .ad-sidebar-card__sponsor, .ad-sidebar-label, .agenda-mockup, .arg-upload-section, .biblio-voltr-editing, .bookconnect-services, .cal-detail-event, .cal-week-event, .calendar-mockup, .category-detail, .cert-frame, .circle-badge, .ck-bench, .ck-distrib, .ck-fiche, .ck-gauge-inner, .ck-score, .ck-timeline, .comite-calendar-todos__section-count, .community-challenges, .community-status-badge, .dash-panel-mini-bar, .dash-panel-mini-fill, .dash-skeleton, .dashboard-mockup, .detail-image-wrap, .diffusion-dashboard, .diffusion-services, .droits-overview, .droits-types, .earn-list, .ecosystem-section, .error-cta-card, .etude-criteria-chip, .event-date-badge, .event-detail, .events-plumes, .events-types, .evt-card-cat, .evt-card-date, .feature-detail, .feature-item, .featured-editors, .featured-profiles, .fiche, .fiche-card-header, .filter-bar, .formation-overview, .formation-types, .gantt-popup, .group-separator, .histoire-section, .illu-isbn-result, .illu-lightbox-close, .illu-lightbox-nav, .ilp-plumes-badge, .impression-process, .impression-services, .kanban-comite-dialog, .language-group, .lc-promo--adsense, .lc-promo-card-cta, .lc-promo-card-icon, .lc-switch-thumb, .literary-plumes, .literary-types, .locked-badge, .main-search-bar, .marketplace-categories, .media-gallery-nav, .meta-item, .network-content, .networking-events, .numerique-plumes, .numerique-process, .numerique-services, .ob-count-badge, .parcours-badge-formations, .parcours-icon, .partner-category, .pe-voltr-menu, .plumes-benefits, .plumes-hero-stat, .pod-featured-badge, .popular-discussions, .pricing-section, .process-step, .profile-header, .promotion-plumes, .promotion-services, .pub-editor, .pub-editor__foot, .pub-empty, .pub-portee__menu, .pub-toolbar, .publications-features, .publications-plumes, .qa-btn, .quiz-info, .quiz-result, .reco-modal, .rep-btn-outline, .reply-parent-info, .report-modal, .role-section-icon-wrap, .saved-searches, .search-bar, .search-results-dropdown, .service-badge, .service-category, .share-modal, .share-modal-close, .soum-kanban-header, .spend-list, .step-detail, .suggestions-drawer, .tag-menu, .tag-tokens, .team-member, .testimonials, .translation-process, .translation-types, .upload-file-item, .valeurs-section, .workflow-step),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.formula-hint code, .nvp-preview iframe, .post-content blockquote, .tag-token button, .topic-detail-content blockquote),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-carousel-header .ad-label, .bnf-analyse-header .bnf-criteria-chip, .comite-calendar-todos__card--prod:hover, .comite-filter-pill .pill-count, .cs-page .cs-badge, .cta-buttons .btn-primary, .error-support-actions .btn-outline-secondary, .fiche-lecture-left .card, .illu-lightbox-close:hover, .illu-lightbox-nav:hover, .kanban-col__header .kanban-col__count, .n2-card.is-unread, .notification-card.unread, .notification-dropdown-item.unread, .pod-list-item:hover, .sf-completion-banner .sf-cert-link, .share-modal-close:hover, .sidebar-pro-header .badge, .sl-dropzone.sl-dragover, .sl-open .sl-section-header, .step-change-bar .step-number, .subscription-history .table, .topic-item.topic-pinned, .topic-item:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.illu-card-actions button:hover, .tag-token button:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.compare-table thead th:first-child, .mandat-portee tbody td.est-vide),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cal-day-cell.cal-day-has-events:hover, .cta-buttons .btn-outline:hover, .media-controls .btn:hover, .message-input-area .composer-shell:focus-within, .pestel-header .btn-pestel:hover, .sf-completion-banner .sf-cert-link:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .description-section p:last-child:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .icon-band .icon-item .icon-link:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #btnLoadMore:hover{background:var(--ds-paper)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comment-image-remove, .corr-badge-refuse, .sl-color-remove),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.btn-quick.reject, .image-controls .btn-outline-danger, .media-controls .btn-outline-danger, .reco-toast.error, .sl-inspi-item .sl-inspi-remove, .sl-preview-btn.sl-btn-delete){background:var(--ds-danger);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.status-dot--bloque, .status-refuse, .statut-pilon),
:where(body:has(#ds-root[data-ds-charte~="composition"])) li.error,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-toast.illu-toast-error,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.decision-btn.refuse.selected, .image-controls .btn-outline-danger:hover, .media-controls .btn-outline-danger:hover, .rayon-filters .btn-filter-warning:hover){background:var(--ds-danger-bg);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .achievement-badge,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cal-sub-tab.active, .comite-calendar-todos__pill.active, .filter-tab.active, .network-header .btn-primary, .network-header .btn-success, .rss-tab.active, .sl-voltr-btn:hover, .view-btn.active),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.editor-toolbar .btn.active, .network-header .btn-primary:hover, .network-header .btn-success:hover){background:var(--ds-accent-ink);box-shadow:none;color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-list-item-cover, .bnf-search-manual, .cmd-total-box, .comite-invite-alt, .competence-filters, .competence-tag, .corr-ligne-devis, .drop-zone, .editor-preview, .etude-followup, .external-source-section, .fiche-cover, .fiche-lecture-custom-critere, .fournisseur-empty, .hobby-filters, .illu-cmd-terminal, .imp-filtres, .imp-jauge__piste, .imp-sim, .imp-verrou, .inline-edit-toolbar, .kanban-col, .lect-action-panel, .llst-form-box, .manuscript-stats-banner, .manuscrit-selector, .ms-depot-dropzone, .promo-code, .promo-empty, .report-empty, .retour-empty, .review-form, .saved-action, .saved-search-chip, .sf-placeholder, .sl-dropzone, .sl-preview-wrap, .soum-kanban-column-nonsoumis, .soum-maison-editeurs-header, .stats-empty, .stock-empty, .transp-propose, .transp-zones-liste, .upload-zone, .vente-drop, .vente-empty, .vente-exemple),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.feed-composer-pill:hover, .ms-sec-btn:hover, .sl-choice-card:hover, .sl-dropzone:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cmd-workflow li .cmd-workflow-dot{background:var(--ds-sunken);border-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bar-value, .biblio-cal-num, .biblio-card-description, .biblio-list-item-note, .bnf-card-author, .ck-bar-label, .ck-bench-info, .client-role, .comite-calendar-legend, .comite-calendar-popover__meta, .comite-calendar-todos__pill, .comite-session-header__meta, .comite-timeline__step-label, .composer-chip, .currency, .detail-description, .distrib-ean, .ebib-note, .editor-description, .etape-phrase-hors-parcours, .etape-sans-tache, .evt-calendar-daynum, .fiche-resume, .filter-checkbox, .filter-label, .forum-help-text, .gate-summary, .genre-count, .illu-dem-amount-line, .illu-srcrow-label, .ilp-bio, .imp-chiffre__libelle, .imp-compteur, .imp-fac-titre__date, .imp-jalon__etat, .imp-offre__ecart, .imp-offre__mention--perdue, .imp-sim__ligne, .imp-sousnotes, .imp-totaux__ventil-detail, .item-meta, .kanban-card__author, .kanban-comite-dialog__manuscrit, .lesson-meta, .llst-item-note, .mandat-jeton-marque, .member-bio, .member-role, .opportunity-description, .pe-tool, .period, .pestel-confiance, .ph-resume, .pie-legend-item, .plan-parcours-aide, .plan-parcours-carte-desc, .plan-parcours-etat-desc, .plan-suggestions-sous-titre, .plan-volet-service-desc, .price-unit, .profile-role, .rating-score, .rep-kpi-label, .section-subtitle, .service-delivery, .sl-mock-4c-resume, .soum-card-editor, .testimonial-text, .topic-participants, .tstats-lib, .user-date, .voir-ms-auteur-nom, .voir-ms-description, .voir-ms-section-title),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.brief-section li, .brief-section p, .challenge-info p, .comite-calendar-todos__list li, .comite-calendar-todos__list--prod li, .comment-header strong, .competence-filters label, .conseil-card p, .discussion-card p, .discussion-stats span, .editor-preview h4, .editor-stats span, .event-info p, .faq-item p, .features li, .formation-cta p, .gantt-popup p, .group-activity span, .group-info p, .histoire-text p, .hobby-filters label, .kanban-comite-dialog__section label, .mandat-details dt, .mandat-rgpd dd, .manuscrit-selector label, .mission-card p, .network-viz-header h5, .offres-footer p, .profile-stats span, .quick-links a, .report-empty h3, .review p, .service-info p, .sf-placeholder h3, .sf-review-card p, .step-content p, .synthesis-recommendations li, .tool-card li, .valeur-item p),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-tabs .nav-link, .bstats-kpi .sub, .cert-body .cert-text, .ck-univers-card .ck-stat-line, .comite-calendar .fc-col-header-cell-cushion, .comite-calendar .fc-daygrid-day-number, .cs-page .cs-notify-txt, .cstats-kpi .sub, .ebib-kpi .sub, .estats-kpi .sub, .fiche-emplacement .none, .fiche-entete .ville, .fiche-meta .details, .illu-tabs .nav-link, .lstats-kpi .sub, .mstats-kpi .sub, .profile-info .role, .rstats-kpi .sub, .sf-user-review .sf-review-text, .soumission-timeline .timeline-author, .toolbar .count, .vitrine-events .evt-desc),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.data-table td:first-child, .testimonial-service span:first-child),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.checklist-row.is-done .checklist-desc, .notifications-filters .nav-link:hover, .soumission-modal .soumission-tabs .nav-link),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .voltr-consent-panel #voltr-consent-panel-intro{color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.etape-badge, .upload-progress),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-filter-pill:hover, .comite-main-tab:focus, .comite-main-tab:hover, .quiz-nav-btn:hover, .sf-user-review .sf-edit-btn, .sidebar-btn-outline:hover, .sp-filter:hover, .timeline .badge){border-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-alert, .upload-error),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-user-review .sf-delete-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cm-icone-danger:hover:not(:disabled){border-color:var(--ds-accent-ui);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .upload-section{background-image:none;border-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.diag-item-done, .evt-pill, .imp-badge--on, .kpi-card-libraire, .lieu-pill, .topic-locked-banner),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-subject-chip:hover, .checklist-lien:focus-visible, .checklist-lien:hover, .comite-inv-card .nda-banner, .fc .fc-button-primary, .nego-editor-card.selected, .soum-editor-card.selected, .upload-dropzone.dragover, .upload-section:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.error-support-actions .btn-primary:hover, .quiz-option.selected .quiz-checkbox),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active){background:var(--ds-accent-weak);border-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.acteurs, .cert-border, .cm-alerte, .cm-note-encadree, .critic-avatar, .evaluation-form, .fiche-emplacement, .illu-isbn-import, .pe-voltr-brief__input, .scanner-frame, .voltr-consent-panel),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-cal-cell.today, .cal-week-day.cal-day-today, .chap-card.dragging, .comite-email-chips:focus-within, .comite-eval-item:hover, .competence-search-input:focus, .eh-tuile:hover, .feed-label-input:focus, .feed-scope-option:hover, .filter-input-group:focus-within, .filter-input:focus, .filter-select:focus, .hobby-search-input:focus, .inline-edit-content:focus, .notes-input:focus, .pe-voltr-brief__input:focus, .ph-tuile:hover, .plan-parcours-carte:hover, .reco-form-input:focus, .reco-form-textarea:focus, .search-input:focus, .sl-devis-msg:focus, .sl-prov-boosted .sl-prov-avatar, .stats-card.active, .stock-inline-input.is-error, .stock-inline-input.is-saved, .survey-card.has-error, .survey-textarea:focus, .user-search-input:focus),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-field input:focus, .feed-scope-option:has(input:checked), .photo-upload-zone.drag-over img, .photo-upload-zone:hover img, .search-form input:focus, .sf-review-form textarea:focus),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-options.field-missing .assistant-option-card, .diag-prov-card.diag-boosted .diag-prov-avatar, .etape-accordion .accordion-item.is-completed, .etape-accordion .accordion-item.is-current, .mc-option.selected .mc-radio, .member-combo.is-focus .member-tokens, .profile-card-rich:hover .profile-card-photo, .quiz-option.selected .quiz-radio, .search-box .search-input:focus, .sidebar-item.dragging .sidebar-draggable, .timeline .badge:hover, .upload-section .form-control:focus, .user-card:hover .avatar-img),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comment-item img.rounded-circle:hover, .comments-list img.rounded-circle:hover, .comments-section img.rounded-circle:hover, .publication-header img.rounded-circle:hover){border-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .accordion-button:not(.collapsed){background:var(--ds-sunken);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.active-filters-count, .ad-sidebar-header, .agent-header, .analytics-header, .auteur-avatar--initials, .balance-display, .benefit-badge, .biblio-cal-evt, .biblio-header, .bnf-analyse-header, .bnf-trend-bar-fill, .c4-badge-score, .c4-genre-bar, .c4-icon-circle, .cal-month-header, .cal-week-day-header, .carte-line, .cat-diffusion, .cat-formation, .cat-general, .cat-help, .cat-marketing, .cat-publishing, .cat-writing, .category-icon, .cert-divider, .cert-seal, .certificate-icon, .channel-icon, .chap-header, .chap-num, .ck-header, .comite-calendar-todos__counter, .comite-member-ident__avatar, .comite-participant-row__avatar, .comite-progress-bar__fill, .comite-progress-bar__fill--success, .comite-progress-bar__fill--warning, .comite-reader-card__avatar, .comite-timeline__progress-fill, .common-hobbies-count, .connection-line, .contribution-badge, .copy-btn, .corr-badge-accepte, .corr-badge-annulee, .corr-badge-cloturee, .corr-badge-en_cours, .corr-badge-livre, .current-subscription, .discount, .docs-header, .droits-page, .edit-service-header, .editor-plumes, .empty-state-btn, .etude-header, .evt-widget-header, .fiche-header, .fichiers-header, .formation-number, .formation-page, .formations-header, .genre-bar-fill, .hobby-modal-header, .illu-discover-badge, .imp-jauge__part--second, .imp-jauge__pastille--second, .insight-badge, .lc-slot--ph, .lieux-header, .llst-item-cover, .main-search-btn, .marketplace-header, .meter-fill, .mission-icon, .ms-sec-premium, .nego-select-count, .network-header, .network-viz-badge, .node-bibliothecaire, .node-lecteur, .node-traducteur, .nvp-badge, .nvp-choose, .nws-empty-icon, .nws-widget-header, .offer-image, .opportunity-budget, .pack-badge-best, .palmares-rank-1, .palmares-rank-3, .palmares-see-all, .parcours-badge-savings, .pay-btn-primary, .pay-btn-success, .pay-header, .pe-voltr-brief__go, .perso-header, .pestel-dim-bar-fill-neg, .pestel-dim-bar-fill-pos, .pestel-header, .plan-parcours-badge, .plan-volet-compte, .plume-reward, .plumes-counter, .plumes-explainer-icon, .plumes-reward, .plumes-spent, .pod-list-play, .pod-play-btn, .pod-widget-header, .pro-avatar-placeholder, .profile-plumes, .pu-cert-icon, .pub-cover-placeholder, .pub-header, .pub-list-cover-placeholder, .quiz-header, .quiz-order-num, .quiz-progress-fill, .quiz-q-number, .quiz-start-btn, .quiz-submit-btn, .reco-autocomplete-item-avatar, .reco-selected-user-avatar, .recommendation-avatar, .recommendations-header, .rep-header, .resources-header, .role-badge, .rss-widget-header, .score-bon, .score-excellent, .score-faible, .score-moyen, .search-btn, .search-header, .sell-header, .seller-avatar, .separator-line, .services-header, .severity-high, .sf-btn-complete, .sf-btn-quiz, .sf-progress-fill, .sf-review-submit, .sidebar-btn-plumes, .sidebar-btn-primary, .sidebar-podcast-icon, .sidebar-pro-header, .sl-mock-1c, .sl-mock-dos, .social-link, .soum-select-count, .stage-number, .step-change-bar, .step-icon, .submit-btn, .suggestion-badge-complementary, .suggestion-badge-similar, .survey-header, .survey-submit-btn, .tag-admin, .tag-banned, .tag-reports, .tempo-header, .tool-icon, .transp-etape-rang, .transp-rang-terrain, .valeur-icon, .vente-step, .verify-header, .voir-ms-btn-primary),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-form button,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.action-btn.analytics, .action-btn.buy, .action-btn.create, .action-btn.discover, .action-btn.given, .action-btn.my-offers, .action-btn.organize, .action-btn.received, .action-btn.recommend, .action-btn.search, .action-btn.sell, .action-btn.stats, .action-btn.upload, .action-card .card-header, .auth-submit:hover, .badge-icon.bronze, .badge-icon.gold, .badge-icon.special, .badge.urgent, .biblio-modal .modal-header, .bnf-sidebar .sidebar-pro-header, .bnf-subject-chip .chip-count, .btn-enroll.enrolled, .btn-quick.accept, .btn-quick.review, .cal-year-day.today, .cert-toolbar-btn.primary, .certificate-btn.primary, .challenge-badge.upcoming, .coaching .service-icon, .developmental .service-icon, .discussion-badge.hot, .discussion-category.auteurs, .discussion-category.fantasy, .edit-panel .btn, .editor-badge.premium, .formation-btn.primary, .group-icon.auteurs, .group-icon.fantasy, .group-icon.jeunesse, .hobby-tag:hover, .level-card.bronze, .main-tab.active, .message-bell .badge-count, .modal-btn.submit, .n2-markall:hover, .n2-vbtn.is-active, .notification-bell .badge-count, .payment-icon.euros, .payment-icon.plumes, .plumes-history-filter.active, .podcast-modal .modal-header, .pro-section-header .badge, .profile-badge.expert, .profile-badge.verified, .reco-modal-footer .btn-next, .reco-modal-footer .btn-submit, .reco-toast.success, .recommendation-btn.liked, .recommendation-btn.primary, .resource-btn.primary, .service-btn.primary, .sf-user-review .sf-review-badge, .share-btn.livreconnect, .sl-devis-btn:hover, .soumission-modal .score-bon, .soumission-modal .score-excellent, .soumission-modal .score-faible, .soumission-modal .score-moyen, .toggle-btn.active, .toolbar .btn, .user-badge.badge-bronze, .user-badge.badge-gold, .user-badge.badge-special, .user-dropdown-item .user-avatar-sm, .vitrine-promos .promo-pct, .voir-ms-btn-primary:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cal-day-cell.cal-day-today .cal-day-number, .ck-step.active .ck-step-dot, .ck-step.done .ck-step-dot, .mkt-genre-bar-row.highlight .mkt-genre-bar-fill, .n2-tab.is-active .n2-count, .reco-step.active .reco-step-number, .reco-step.completed .reco-step-number, .stepper-step.current .step-connector),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .soumission-modal .soumission-tabs .nav-link.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(#modalAjoutOuvrage .modal-header, #previewModal .modal-header, #subscriptionModal .modal-header){background:var(--ds-accent-ink);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comments-section, .fiche-card-body, .pestel-dim-details, .pub-actions, .reco-modal-footer, .sf-viewer-toolbar),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.fiche-lecture-modal .modal-footer, .video-page-modal .modal-footer),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #previewModal .modal-footer{background:var(--ds-sunken);border-top-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .status-indicator.active{background:var(--ds-success-bg);box-shadow:none;color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.contact-cta, .contact-hero, .dash-panel-header, .editor-cta, .editor-hero, .hero-about, .hero-auteur, .hero-wrap, .partner-hero, .path-header, .pdv-header, .pitch-hero, .rentabilite-hero, .sf-completion-banner){background:var(--ds-accent-weak);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.course-card, .edit-panel, .feature-card, .format-card, .network-card, .notification-card, .opportunity-card, .path-card, .provider-card, .tech-card, .testimonial-card, .translator-card, .value-card, .vision-card){background:var(--ds-paper);border:1px solid var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.libraire-hub-card, .plumes-sparkline-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.acteur-card:hover, .ad-card:hover, .ad-sidebar-card:hover, .annuaire-card:hover, .biblio-card:hover, .biblio-list-card:hover, .bnf-kpi-card:hover, .c4-kpi-card:hover, .carte-card:hover, .catalogue-card:hover, .category-card:hover, .challenge-card:hover, .channel-card:hover, .chap-card:hover, .circuit-card:hover, .comite-diag-card:hover, .competence-card:hover, .compteur-card:hover, .corr-kpi-card:hover, .corr-mission-card:hover, .corr-shortcut-card:hover, .course-card:hover, .cover-cta-card:hover, .critique-card:hover, .cta-card:hover, .dashboard-card:hover, .discussion-card:hover, .document-card:hover, .editeur-erp-card:hover, .editor-card:hover, .error-cta-card:hover, .event-card:focus-visible, .feature-card:hover, .fiche-card:hover, .fichier-card:hover, .format-card:hover, .group-card:hover, .hobby-card:hover, .illu-card:hover, .illu-cmd-card:hover, .illu-discover-card:hover, .ilp-card:hover, .kanban-card:hover, .kpi-card:hover, .lc-promo-card:hover, .lect-book-card:focus-visible, .lect-book-card:hover, .libraire-hub-card:hover, .llst-card:focus-visible, .llst-card:hover, .lot-card:hover, .metric-card:hover, .mission-card:hover, .mkt-kpi-card:hover, .mxp-card:hover, .network-card:hover, .note-card:hover, .nvp-card:hover, .offer-card:hover, .opportunity-card:hover, .other-offer-card:hover, .pack-card:hover, .palmares-card:hover, .parcours-card:hover, .path-card:hover, .perso-card:hover, .pestel-dim-card:hover, .podcast-card:hover, .pricing-card:hover, .profile-card:hover, .pu-portfolio-card:focus-within, .pu-portfolio-card:hover, .pub-card:hover, .reader-card:hover, .relation-card:hover, .resource-card:hover, .role-section-card:hover, .role-stat-card:hover, .sl-section-card:hover, .soum-kanban-card:hover, .soum-stat-card:hover, .soumission-card:hover, .stats-card:hover, .stats-kpi-card:hover, .stats-kpi:hover, .subscription-card:hover, .template-card:hover, .testimonial-card:hover, .timeline-card:hover, .translator-card:hover, .type-card:focus-visible, .video-card:hover, .vitrine-sidebar-card:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.section-card-link:hover .section-card, .vitrine-cdc-grid .card:hover){border:1px solid var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-card__overlay, .ad-sidebar-card__overlay, .arg-skeleton, .biblio-skeleton, .catalogue-cover-placeholder, .category-header, .corr-save-bar, .dash-skeleton-bar, .dash-skeleton-circle, .dash-skeleton-line, .droits-services, .droits-tools, .editor-plumes-system, .event-detail-hero-overlay, .event-header, .feature-header, .feature-icon, .formation-services, .formation-tools, .hero-panorama, .illu-chart-bar, .ilp-hero, .kanban-card__score--bas, .lect-cover-placeholder, .messages-container, .network-icon, .offres-section, .palmares-card-overlay, .palmares-rank-2, .palmares-section, .plumes-system, .pod-empty-icon, .service-header, .skeleton-avatar, .skeleton-line, .sl-mock-barcode, .step-header, .timeline-line, .vision-section, .vitrine-hero-overlay),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-preview-wrap img,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-icon.silver, .corrpro .corr-save-bar, .discussion-category.thriller, .group-icon.thriller, .level-card.silver, .libraire-group-featured .section-card-featured, .network-viz-header:hover, .vitrine-carousel .carousel-caption, .vitrine-cdc-grid .card-img-top),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-hours li.is-today,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mtx.est-actif .mtx-aide__plus,
:where(body:has(#ds-root[data-ds-charte~="composition"])) svg#network-graph{background:var(--ds-paper)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.achievements-section, .agent-detail-panel__content, .content-section, .dashboard-block, .empty-state, .error-hero-card, .error-info-card, .faq-item, .filters-section, .lot-card, .main-tabs, .plumes-section, .pricing-card, .profile-card-rich, .profile-section, .results-section, .stats-section, .step-item, .suggestions-section, .tool-item, .top-genres-section, .verify-container, .vitrine-status, .www-section),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-option-card.selected, .comite-calendar-todos__card:hover, .plumes-section.earn-editor, .plumes-section.spend-editor, .sl-choice-card.sl-selected){background:var(--ds-paper);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auteur-quick-nav-section, .category-banner, .editeur-erp-card, .event-card-list, .forum-sort-tabs, .illu-lightbox-img, .mxp-card, .post-item, .reply-form-section),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.achievement-badge:hover, .benefit-item:hover, .cal-event-pill.registered, .cat-pill.active, .club-card-full:hover, .comite-inv-card.focused, .comment-item:hover, .document-card--coming-soon:hover, .earn-item:hover, .event-btn-icon:focus-visible, .event-btn:focus-visible, .event-card-list:focus-visible, .event-card-list:hover, .event-item:hover, .evt-card--registered .evt-card-body, .evt-card--registered .evt-card-top, .faq-item:hover, .filter-btn.active, .filter-btn:hover, .filter-tab:focus-visible, .forum-view-btn.active, .illu-dem-card.is-devis, .ilp-card.ilp-featured, .kanban-card.kanban-card--chosen, .kpi-card-libraire:hover, .message-input-area .btn-send, .mxp-card.is-current, .offer-card.popular, .package-item:hover, .pod-play-btn:hover, .publication-content-wrapper .btn, .qa-btn:hover, .quick-actions .btn-float, .quiz-start-btn:hover, .quiz-submit-btn:hover, .sf-btn-complete:hover, .sf-btn-quiz:hover, .share-btn:hover, .sidebar-btn-plumes:hover, .sidebar-btn-primary:hover, .sl-section-card.sl-open, .spend-item:hover, .subscribe-btn:hover, .survey-submit-btn:hover, .synthesis-item:hover, .tool-item:hover, .view-btn:focus-visible),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-nav .btn-next:hover, .cert-toolbar-btn.primary:hover, .modal-btn.submit:hover, .publication-content-wrapper .btn:hover, .subscription-card.is-premium:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.libraire-group-featured .section-card-link:hover .section-card-featured, .message-input-area .btn-send:hover:not(:disabled), .reco-modal-footer .btn-submit:hover:not(:disabled)){box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cta-section{background-image:none;color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .auteur-nav-item::after,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-collection-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dashboard-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-section::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .error-hero-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .format-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .libraire-group-featured .section-card-featured::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-section::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .provider-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .soumission-timeline::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tech-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .timeline-container::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .user-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vision-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .workflow-step::before{display:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-card--gradient-1, .ad-card--gradient-2, .ad-card--gradient-3, .ad-card--gradient-4, .ad-card--gradient-5, .ad-carousel-section, .avis-barre__valeur, .bnf-pub-bar-fill, .challenge-countdown, .checklist-notes, .ck-bench-range, .cm-poids-m, .cm-poids-s, .comite-decision-badge--en_negociation, .comite-decision-badge--reportee, .comite-diag-badge--fort, .comite-diag-badge--moyen, .comite-diag-badge--tres-fort, .comite-status-badge--en_cours, .demo-tag-after, .demo-tag-before, .diag-ok, .diag-prov-boost, .drag-indicator, .ef-plumes, .hero-acteurs, .illu-cmd-paiement-acompte, .illu-cmd-paiement-solde, .illu-cmd-pill-platform, .illu-dem-status-en_cours, .illu-lightbox, .ilp-badge-dispo, .kanban-card__score--haut, .kanban-card__score--moyen, .lect-badge-private, .lect-badge-public, .libraire-card-placeholder, .llst-prio-moyenne, .match-score, .mkt-genre-bar-fill, .mq-badge-private, .n2-dot, .niveau-2, .niveau-3, .niveau-4, .niveau-5, .nvp-toast-err, .nvp-toast-ok, .nws-new-dot, .palmares-card-placeholder, .plan-parcours-carte-marque, .plan-volet-mention, .price-savings, .promo-remise, .pu-badge-gold, .pub-editor-overlay, .rss-feed-src-dot, .segment-fan, .segment-nouveau, .severity-medium, .sf-type-document, .sf-type-exercise, .sf-type-video, .sl-mock-tranche, .sp-badge--done, .sp-badge--todo, .status-dot--en_cours, .status-envoye, .statut-en_preparation, .type-derive, .type-numerique, .unread-dot, .vente-part__bar, .vitrine-hero-fallback, .voir-ms-badge-etape, .voir-ms-badge-format),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .demo-col code,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .guarantee-list li code,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-priority.moyenne, .biblio-cal-evt.type-arrivee, .biblio-cal-evt.type-atelier, .biblio-cal-evt.type-club_lecture, .biblio-cal-evt.type-exposition, .biblio-cal-evt.type-lecture, .biblio-cal-evt.type-operation_speciale, .biblio-cal-evt.type-prix_selection, .biblio-cal-evt.type-rencontre_auteur, .biblio-list-badge.public, .cm-form-message.is-ok, .comite-calendar-todos__pill--comite.active, .comite-email-chips__chip-remove:hover, .comment-inline-img-handle:hover, .copy-btn:hover, .ctx-badge.filled, .diag-pill.eleve, .diag-pill.optimal, .diag-pill.sain, .ebib-pill.pub, .ebib-prio.moyenne, .event-type.dedicaces, .event-type.lectures, .event-type.networking, .event-type.rencontres, .event-type.salon, .event-type.webinaire, .evt-calendar-event:hover, .evt-dot.active, .illu-dropzone.dragover, .image-preview-remove:hover, .level-card.gold, .metric-trend.positive, .metric-trend.trend-up, .metric-trend.up, .ms-sec-dot.green, .ms-sec-dot.orange, .ms-sec-dot.red, .n2-icon.cat-connexions, .n2-icon.cat-evenements, .n2-icon.cat-formations, .n2-icon.cat-forum, .n2-icon.cat-manuscrits, .n2-icon.cat-messages, .n2-icon.cat-plumes, .n2-icon.cat-publications, .n2-icon.cat-recompenses, .niveau-progress-bar.niveau-1, .niveau-progress-bar.niveau-2, .niveau-progress-bar.niveau-3, .niveau-progress-bar.niveau-4, .niveau-progress-bar.niveau-5, .notification-icon.type-badge, .notification-icon.type-connection, .notification-icon.type-event, .notification-icon.type-formation, .notification-icon.type-forum, .notification-icon.type-manuscript, .notification-icon.type-message, .notification-icon.type-plumes, .notification-icon.type-publication, .notification-icon.type-review, .nt-card .badge-private, .nt-card .badge-solved, .parcours-level.level-debutant, .parcours-level.level-intermediaire, .pe-tool--voltr:hover, .pe-voltr-brief__go:hover, .pestel-indicator-mini-bar .mini-fill-neg, .pestel-indicator-mini-bar .mini-fill-pos, .pestel-source-badge.doc, .plumes-type-badge.type-achat, .plumes-type-badge.type-bonus, .proj-history-item--latest:hover, .reco-step-separator.completed, .role-badge.mod, .sales-trend.positive, .sf-btn-complete.done, .share-btn.facebook, .share-btn.linkedin, .sl-section-badge.sl-filled, .sl-voltr-confirm-inner .sl-plumes-cost, .submit-btn:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .member-social a:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.certificate-btn.primary:hover, .decision-btn.revision.selected, .formation-btn.primary:hover, .kanban-column.col-blocked .kanban-column-header, .kanban-column.col-done .kanban-column-header, .kanban-column.col-progress .kanban-column-header, .nvp-choose:hover:not(:disabled), .rayon-add-tabs .nav-link.active, .reco-modal-footer .btn-next:hover, .recommendation-btn.liked:hover, .recommendation-btn.primary:hover, .resource-btn.primary:hover, .service-btn.primary:hover, .stepper-step.completed .step-connector),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cmd-workflow li.is-current .cmd-workflow-dot, .cmd-workflow li.is-done .cmd-workflow-dot, .lc-switch input:checked + .lc-switch-track){background:var(--ds-accent-weak);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.knowledge-icon, .search-query, .see-all, .transp-chiffre-valeur, .transp-gain, .transp-kpi-valeur, .transports-kpi-valeur, .tstats-val),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.club-meta i, .club-visibilite-label i, .manual-entry summary, .note strong),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.pedago-header h1 i, .quick-links a i, .section-header-row h2 i, .sidebar-widget h3 i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.pe-tool--hash:hover, .promo-kpi--planifiees .promo-kpi__icon),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.manual-entry summary:hover, .upload-dropzone i.fa-cloud-upload-alt),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .hero-acteurs .hero-content h1 i,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .book-search-tabs .tab-btn:hover{color:var(--ds-info)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.member-tier-bleu, .member-tier-bronze, .member-tier-or, .sl-voltr-btn),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-promos li,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-note-slot.filled, .category-chip.active, .checklist-checkbox.checked, .comite-filter-pill.active, .comite-timeline__step--done .comite-timeline__step-icon, .comment-dislike-btn:hover, .comment-like-btn:hover, .filter-pill.active, .filtre-btn.active, .filtre-btn:hover, .mq-btn-accent:focus, .mq-btn-accent:hover, .n2-mark:hover, .n2-pager .is-active, .priority-option.selected, .progress-step.completed, .rc-connect.connected, .sp-filter.is-active, .suggestion-cat-tab.active, .type-chip.active, .view-toggle.active),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-sidebar-nav button:hover, .annuaire-view-toggle button.is-active, .biblio-acq-check:has(input:checked), .distrib-nav a.actif),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.btn-check:checked + .fiche-lecture-reco--accepter, .btn-check:checked + .fiche-lecture-reco--reserves, .nego-editor-card.selected .nego-editor-check, .partners-pagination .page-link:hover, .rayon-filters .btn-filter.active, .soum-editor-card.selected .soum-editor-check, .stepper-step.completed .step-circle, .stepper-step.current .step-circle){background:var(--ds-accent-ink);border-color:var(--ds-accent-ui);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.acteur-card, .lc-promo-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reader-grid .reader-card{border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.kanban-card, .kpi-card){background:var(--ds-paper);border:1px solid var(--ds-line);border-color:var(--ds-line);border-left-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-detail-panel__close, .annuaire-card__meta, .annuaire-card__stats, .annuaire-empty, .arc-bar-legend-item, .arg-empty, .auth-title, .author-menu-toggle, .author-notes, .avis-barre, .avis-carte__meta, .avis-empty__icon, .avis-kpi__hint, .avis-kpi__icon, .avis-kpi__label, .avis-note-bloc__sur, .avis-rappel-public, .bar-label, .biblio-cal-dow, .biblio-cal-more, .biblio-card-meta, .biblio-empty, .biblio-list-item-meta, .biblio-list-meta, .biblio-review-spoiler, .bnf-card-description, .bnf-card-meta, .bnf-empty, .bnf-fallback-info, .bnf-loading, .bnf-mini-meta, .bnf-pub-rank, .bnf-query-terms, .bstats-vide, .c4-activity-meta, .c4-genre-count, .c4-kpi-label, .ca-role, .ca-time, .ca-title, .cal-detail-close, .cal-detail-event-desc, .cal-detail-event-loc, .cal-detail-event-meta, .cal-sub-tab, .cal-week-empty, .cal-week-event-loc, .cal-year-day, .category-count, .cert-detail-label, .cert-footer-label, .cert-portee, .cert-sub, .cert-verification, .certificate-date, .channel-subtitle, .chap-meta-icons, .chap-mots, .chap-section-label, .chap-title-sub, .char-count, .char-counter, .checklist-desc, .ck-bench-labels, .ck-kpi-sub, .ck-step-label, .clients-empty, .clients-fiche-label, .clients-kpi-label, .cmd-empty, .cmd-kpi-label, .cmd-ligne-sous, .cmd-workflow-label, .comite-breadcrumb, .comite-calendar-popover__close, .comite-calendar-todos__step-date, .comite-empty-state__icon, .comite-empty-state__text, .comite-eval-item__meta, .comite-inv-empty, .comite-phase-label__text, .comite-progress-label, .comite-proj-kpi__label, .comite-reader-card__progress-txt, .comite-session-card__meta, .comite-timeline__progress-txt, .comite-timeline__step-num, .competence-description, .contrat-meta, .contrat-partie-role, .corr-card__sub, .corr-empty, .corr-hint, .corr-tip, .critique-date, .cstats-vide, .ctx-card-title, .ctx-empty-hint, .dash-lazy-error, .dashboard-kpi, .date-completed, .detail-back, .diag-key, .diag-prov-role, .diag-reco-text, .diag-score-sub, .distrib-empty, .distrib-kpi-label, .distrib-mandant, .document-card-desc, .document-card-format, .document-card-meta, .drag-handle, .ebib-vide, .ef-preset-d, .ef-sim-note, .eh-date, .eh-hint, .eh-suppr, .empty-hobbies-icon, .empty-hobbies-text, .empty-msg, .es-icon, .es-message, .estats-vide, .etude-loading, .event-card-meta, .event-card-participants, .event-date-month, .event-description, .event-meta, .event-month, .evt-calendar-plus, .evt-ecart-neutre, .evt-empty, .evt-fiche-label, .faq-answer, .fc-tag-category-label, .feed-loading, .feed-tab, .fiche-lecture-autosave-footer, .fiche-lecture-autosave-indicator, .fiche-lecture-star, .filter-results-count, .formation-arrow, .formation-desc, .formation-description, .formation-meta, .fournisseur-empty__icon, .fournisseur-kpi__icon, .fournisseur-kpi__label, .guide-author, .guide-date, .illu-album-del, .illu-btn-flag, .illu-chart-xlabel, .illu-cmd-card-client, .illu-cmd-card-echeance, .illu-cmd-kpi-label, .illu-cmd-note-auteur, .illu-cmd-note-empty, .illu-cmd-note-loading, .illu-cmd-note-meta, .illu-cmd-presta-empty, .illu-cmd-presta-inactive-tag, .illu-dem-brief, .illu-dem-fact-lbl, .illu-dem-illu, .illu-discover-bio, .illu-discover-meta, .illu-filter-group-label, .illu-kpi-label, .illu-legend-item, .illu-lightbox-caption, .illu-minikpi-label, .illu-ouvrage-sub, .illu-stat-sub, .illu-subtitle, .illu-toplist-ca, .ilp-biblio-meta, .ilp-empty-state, .ilp-no-result, .ilp-own-hint, .ilp-plumes-hint, .imp-chiffre__precision, .imp-fac-bloc__titre, .imp-hint, .imp-note--absente, .imp-resultat__meta, .imp-tuile__desc, .kanban-card__age, .kanban-card__meta, .kanban-comite-dialog__close, .kanban-comite-dialog__info, .kanban-empty, .kpi-label, .kpi-sub, .lect-book-author, .lect-empty, .lect-note-nb, .lect-review-date, .lect-stat-label, .lect-tab-btn, .llst-card-meta, .llst-item-sub, .llst-panel-desc, .llst-vide, .loading-placeholder, .lstats-vide, .mandat-avatar-vide, .mandat-fil, .mandat-liste-meta, .mandat-note, .mandat-surtitre, .mkt-format-legend, .mots-count, .mq-card-media-empty, .mq-card-meta, .mq-kpi-label, .mq-shortcut-desc, .ms-sec-status, .mstats-vide, .n2-body, .n2-empty, .n2-meta, .n2-tab, .need-chevron, .need-desc, .nego-editor-loc, .note-chevron, .note-date, .note-preview, .notification-body, .notification-dropdown-empty, .notification-meta, .notifications-empty, .nt-time, .nvp-pitch, .nvp-sub, .nws-empty-sub, .nws-item-date, .nws-item-meta, .nws-item-num, .nws-item-sep, .offer-description, .offer-seller, .pack-unit, .palmares-card-author, .palmares-card-desc, .palmares-meta-item, .palmares-subtitle, .parcours-desc, .participant-name, .partners-empty-icon, .pay-label, .payment-desc, .pestel-dim-bar-label, .pestel-dim-synthese, .pestel-indicator-detail, .pestel-radar-legend, .pestel-sources-note, .ph-date, .ph-hint, .ph-suppr, .pod-empty-sub, .pod-list-meta, .pod-list-sep, .pod-meta-author, .pod-meta-date, .podcast-card-desc, .podcast-card-meta, .pp-item-arrow, .pp-status, .price-original, .price-period, .privacy-switch-desc, .pro-empty, .pro-genres, .pro-loading, .profile-card-bio, .profile-card-location, .promo-empty__icon, .promo-impact__delta--stable, .promo-impact__legende, .promo-kpi__icon, .promo-kpi__label, .provider-empty, .pu-breadcrumb-sep, .pu-cert-date, .pu-portfolio-meta, .pu-stat-label, .pub-excerpt, .pub-footer, .pub-meta, .pub-tag-category-label, .qualif-card-hint, .qualif-legal-footer, .qualif-role-hint, .qualif-subtitle, .qualif-topbar-back, .quiz-order-grip, .quiz-q-points, .rating-star, .rcli-vide, .rcmd-vide, .reco-autocomplete-empty, .reco-autocomplete-item-detail, .reco-form-hint, .reco-modal-close, .reco-selected-user-remove, .reco-step, .reco-summary-preview-subtitle, .reco-type-option-desc, .recommendation-author, .recommendation-content, .recommendation-meta, .resource-meta, .resource-path, .result-label, .retour-empty__icon, .retour-kpi__hint, .retour-kpi__icon, .retour-kpi__label, .retour-taux--ns, .review-role, .rfic-vide, .rmai-vide, .role-dashboard-subtitle, .role-section-desc, .role-stat-label, .rss-feed-empty, .rss-feed-ext, .rss-feed-src-date, .rss-feed-src-sep, .rstats-vide, .rvis-vide, .search-icon, .search-result-empty, .search-result-role, .seller-label, .service-description, .service-meta, .service-rating-text, .sf-section-title, .share-intro, .sidebar-podcast-meta, .sidebar-unit, .sl-check-item, .sl-choice-desc, .sl-choice-icon, .sl-dropzone-icon, .sl-dropzone-text, .sl-format-dim, .sl-mock-4c-bio, .sl-mock-4c-citation, .sl-preview-info, .sl-preview-title, .sl-prov-bio, .sl-prov-more, .sl-prov-role, .sl-recap-brief, .sl-recap-label, .sl-save-status, .sl-section-chevron, .small-note, .soum-ac-empty, .soum-card-meta, .soum-editor-loc, .soum-separator, .soum-sg-bio, .soum-sg-location, .soum-stat-label, .sp-empty-help, .sp-hint, .stat-card-label, .stat-mini-label, .stats-empty__icon, .stats-kpi__evolution, .stats-kpi__icon, .stats-kpi__label, .stats-kpi__note, .stats-sort__icon, .step-label, .step-name, .stepper-label, .stock-ecart-nul, .stock-empty__icon, .stock-kpi__icon, .stock-kpi__label, .stock-prevision__unite, .synopsis-preview, .synthesis-label, .time-ago, .transp-bloc-titre, .transp-choix-aide, .transp-estime, .transp-etiquette, .transp-kpi-libelle, .transports-etiquette, .transports-kpi-libelle, .tstats-hint, .type-count, .type-description, .urgency-normale, .user-bio, .user-dropdown-empty, .user-meta, .vente-compteur__icon, .vente-compteur__label, .vente-drop__icon, .vente-empty__icon, .vente-kpi__hint, .vente-kpi__icon, .vente-kpi__label, .video-card-desc, .video-card-meta, .voir-ms-cover-placeholder, .voir-ms-date, .voltr-book-cover-ph, .voltr-book-meta, .widget-empty),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-detail-panel__body dt, .agent-tile p, .annuaire-search-wrap i, .bnf-market-stat small, .book-info small, .bstats-vide i, .cal-year-dow span, .club-closed-hint i, .club-footer small, .comite-calendar-popover__meta i, .comite-calendar-todos__list i, .comite-collection-card__stats span, .comite-inv-empty i, .comite-mini-stat span, .comite-section-head p, .comite-session-card__meta i, .comite-summary-panel h4, .compare-drop i, .compare-drop p, .cover-cta-card p, .critique-manuscrit small, .cstats-vide i, .cta-card p, .cta-section p, .distrib-table th, .drop-zone p, .ebib-vide i, .edit-panel label, .empty-state h3, .empty-state i, .empty-state p, .empty-state-card i, .error-url small, .estats-vide i, .event-card-meta i, .evt-card-row i, .evt-tag i, .feed-scope-inline label, .feed-scope-label small, .feed-tab-add a, .filter-input-group i, .fournisseur-fiche dt, .imp-brief dt, .imp-fac-bloc__ligne dt, .imp-fac-ventil caption, .lc-promo i, .lect-coming-soon i, .lect-empty i, .llst-vide i, .locked-badge p, .lstats-vide i, .member-state i, .mstats-vide i, .nvp-preview-classic span, .partners-empty p, .partners-loading p, .ph-score small, .pod-meta-author i, .pod-meta-date i, .pp-item-done span, .promo-fiche dt, .qualif-legal-footer a, .rcli-vide i, .rcmd-empty-row td, .rcmd-vide i, .reco-info small, .reco-star-rating label, .retour-fiche dt, .rfic-vide i, .rmai-vide i, .rstats-vide i, .rvis-vide i, .sf-placeholder i, .sf-placeholder p, .sp-meta i, .star-rating label, .step-preview p, .stock-fiche dt, .timeline-step p, .type-card li, .upload-dropzone p, .upload-zone span, .voir-ms-meta-row i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-table thead th, table.rcmd-lignes th),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-kpi .kpi-label, .agent-stat .stat-label, .analysis-step .step-description, .assistant-option-card .option-desc, .assistant-option-card .option-icon, .assistant-step .step-subtitle, .avis-stars .far, .bnf-kpi-card .kpi-label, .bstats-kpi .evo, .bstats-kpi .lbl, .carte-card .lieu-meta, .chiffre-item .label, .ck-univers-card .ck-names, .comite-collection-card__desc.is-muted, .comite-modal .form-help, .comite-session-card__stat .lbl, .comite-table .manuscript-author, .comite-tabs .nav-link, .compare-bar .compare-count, .compteur-card .compteur-label, .contrat-kpi .kpi-libelle, .corr-kpi-card .corr-kpi-label, .corr-page-head .corr-page-sub, .corrpro .corr-card__sub, .corrpro .corr-hint, .corrpro .corr-tip, .cs-page .cs-lead, .cstats-kpi .evo, .cstats-kpi .lbl, .ctx-card-content .ctx-item-label, .dashboard-last-analysis .mini-stat-label, .data-rights-container .subtitle, .detail-inputs .label, .distrib-head .sous, .drop-zone .formats, .ebib-club .m, .ebib-kpi .lbl, .ebib-liste .m, .estats-kpi .evo, .estats-kpi .lbl, .etude-loading .loading-steps, .etude-version-bar .version-meta, .evt-kpi-card .evt-kpi-label, .fiche-card .fiche-meta, .formation-reviews-mini .count, .forum-pagination .disabled, .fournisseur-stars .far, .imp-chiffre--absent .imp-chiffre__valeur, .imp-scope .imp-mvt__date, .input-metric .metric-unit, .kanban-card .card-step, .kpi-card .kpi-label, .kpi-total .kpi-icon, .lstats-kpi .evo, .lstats-kpi .lbl, .manuscript-tabs .tab-btn, .message-other .message-time, .method-option .method-desc, .mkt-kpi-card .mkt-kpi-label, .mkt-kpi-card .mkt-kpi-unit, .mkt-section-header .mkt-source, .modal .file-info-row, .mq-header .mq-subtitle, .mstats-kpi .evo, .mstats-kpi .lbl, .notification-dropdown-item .dd-time, .notifications-filters .nav-link, .offer-reviews-mini .count, .page-header .manuscript-title, .parcours-price .original-price, .partners-pagination .page-info, .perso-card .perso-chapitres, .perso-card .perso-occupation, .pestel-global-score .score-max, .pestel-indicator-mini-bar .mini-label, .portfolio-stats .stat-label, .private-panel-field .opt, .pro-section-header .chevron, .rating-input .star-btn, .recommendation-rating .star, .rentabilite-scale .scale-title, .rstats-kpi .evo, .rstats-kpi .lbl, .saved-action .sa-meta, .sf-lesson-link .sf-lesson-dur, .sf-review-card .sf-review-date, .sf-review-form .sf-rating-star, .soumission-card .manuscrit-description, .soumission-modal .info-label, .soumission-modal .reader-meta, .soumission-notes-list .note-meta, .soumission-timeline .timeline-empty, .soumission-timeline .timeline-meta, .star-rating .star, .stat-card .stat-label, .stats-card .stats-label, .study-type-card .stc-desc, .table .manuscript-summary, .timeline-card .evt-meta, .timeline-entry .timeline-date, .user-dropdown-item .user-role-sm, .vente-tri .fas, .view-tabs .nav-link, .vitrine-hours .day-closed, .voltr-rgpd-container .subtitle),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-page-header p.lead, .contrat-ligne.est-echu td, .drop-zone i.upload-icon, .empty-state i.empty-icon, .icon-band .icon-item h3, .imp-etoiles i.far, .planning-group .table th, .portfolio-stats .stat-value small, .pu-breadcrumb span:last-child, .pub-list .table th, .stats-card .table th, .toggle-row .toggle-info p),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ctx-card-content .ctx-list li i,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-kpi-card.kpi-trend-stable .kpi-num, .comite-inv-card .inv-meta .inv-sub, .comite-summary-panel .metric .label, .evt-calendar-cell.evt-hors-mois .evt-calendar-daynum, .fiche-emplacement .cell .lbl, .fichier-card .card-body .file-meta, .formation-reviews-mini .stars .empty, .hobby-rating .star.empty, .mv-check:not(:checked) ~ .mv-item-name, .offer-reviews-mini .stars .empty, .rating-star:hover ~ .rating-star, .sf-lesson-link .sf-check.pending),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partners-pagination .page-item.disabled .page-link,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #viewContratBody strong{color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ap-section-accent, .avis-carte--repondue, .avis-carte--signalee, .fournisseur-card, .rcmd-client, .relation-card--connect, .relation-card--follow, .transp-card, .transp-etape-enlevement, .transp-etape-livraison, .transp-tournee-jour, .transports-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .libraire-vitrine-public main h2,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-inv-card.is-accepted, .comite-inv-card.is-pending, .corr-mission-card:has(.corr-badge-accepte), .corr-mission-card:has(.corr-badge-annulee), .corr-mission-card:has(.corr-badge-cloturee), .corr-mission-card:has(.corr-badge-devis_envoye), .corr-mission-card:has(.corr-badge-en_cours), .corr-mission-card:has(.corr-badge-livre), .corr-mission-card:has(.corr-badge-refuse), .lect-toast.lect-toast-error, .quiz-correction.correct, .quiz-correction.wrong, .rtour-etape.is-realisee){border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .competence-card{border:1px solid var(--ds-line);border-left-color:var(--ds-line-strong);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.achievements-title, .annuaire-card__bio, .annuaire-card__name, .author-name, .avis-carte__extrait, .avis-carte__ouvrage, .avis-detail__texte, .avis-kpi__value, .avis-note-bloc__valeur, .biblio-card-title, .biblio-list-item-title, .biblio-list-title, .bnf-card-title, .bnf-categories-label, .bnf-mini-title, .bnf-pub-name, .bnf-trend-bar-label, .c4-activity-title, .c4-genre-label, .c4-kpi-value, .ca-author, .cal-day-number, .cal-detail-event-title, .cal-nav-label, .cal-week-event-title, .cert-detail-value, .cert-footer-value, .cert-main-title, .certificate-title, .channel-title, .chap-section-text, .chap-title, .chart-title, .check, .ck-bar-value, .ck-kpi-value, .comite-calendar-popover__tag, .comite-calendar-popover__title, .comite-calendar-todos__name, .comite-calendar-todos__tag, .comite-calendar-todos__title, .comite-collection-card__desc, .comite-empty-state__title, .comite-eval-item__title, .comite-reader-card__name, .comite-session-card__title, .comite-timeline__title, .comment-content, .critique-content, .ctx-card-content, .detail-title, .document-card-title, .eh-titre, .es-title, .event-card-price, .event-date-day, .event-day, .event-description-content, .event-price-tag, .evt-card-title, .evt-fiche-valeur, .evt-row-titre, .faq-question, .fiche-lecture-synopsis, .filters-title, .fine-print, .formation-title, .fournisseur-kpi__value, .genre-label, .genre-name, .guide-content-body, .illu-album-name, .illu-card-title, .illu-cmd-card-titre, .illu-cmd-detail-client, .illu-cmd-note-texte, .illu-cmd-presta-libelle, .illu-dem-titre, .illu-discover-name, .illu-isbn-found, .illu-ouvrage-titre, .illu-share-pick-title, .illu-srcrow-val, .illu-toplist-name, .illu-voltr-result-text, .ilp-biblio-title, .ilp-card-cap, .image-section-label, .imp-avis__texte, .imp-consult__etat, .imp-etoiles__valeur, .imp-fac-emetteur__ligne, .imp-jauge__legende, .imp-legend, .imp-notation__echo, .imp-offre__montant, .imp-solde, .kanban-card__title, .lect-book-title, .lect-review-author, .lect-review-body, .llst-card-title, .llst-item-title, .llst-panel-title, .mandat-jeton-page, .member-input, .member-name, .metric-value, .mkt-dist-label, .mkt-dist-value, .mkt-genre-bar-label, .mkt-genre-bar-value, .mkt-subsection-title, .ms-sec-label, .n2-title, .note-content, .notification-title, .nvp-name, .nvp-title, .nws-item-title, .offer-title, .other-offer-title, .other-offers-title, .palmares-card-title, .palmares-title, .parcours-title, .pay-value, .pestel-indicator-name, .pestel-source-item, .pie-legend-pct, .plan-parcours-carte-titre, .plan-parcours-titre, .plan-volet-service-label, .plan-volet-titre, .pod-featured-title, .pod-list-title, .podcast-card-title, .pp-item-todo, .privacy-switch-title, .pro-name, .promo-impact__chiffre, .promo-kpi__value, .pu-stat-num, .pub-title, .quiz-q-text, .rc-name, .reco-autocomplete-item-name, .reco-selected-user-name, .reco-summary-preview-title, .reco-type-option-label, .recommendation-title, .report-title, .resource-title, .result-value, .results-count, .retour-kpi__value, .review-author, .review-comment, .role-section-label, .rss-feed-title, .saved-searches-header, .score-value, .section-card-label, .seller-name, .service-title, .sf-lesson-link, .sf-progress-label, .sidebar-podcast-title, .sl-choice-label, .sl-recap-content, .sl-recap-value, .sl-section-title, .soum-ac-name, .soum-card-title, .soum-sg-name, .stat-card-value, .stat-value, .stats-kpi__value, .stats-title, .stock-kpi__value, .suggestions-title, .synthesis-value, .type-label, .user-name, .vente-compteur__value, .vente-kpi__value, .video-card-title, .vitrine-about, .voir-ms-titre, .voltr-book-title, .voltr-rgpd-container),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.analysis-step h3, .analytics-card h3, .arc-bar-container h6, .author-menu-dropdown a, .bnf-card-title a, .bnf-search-manual label, .book-info h4, .book-result-info h4, .brief-section h6, .bstats-vide strong, .c4-card-header h5, .cal-detail-header h3, .challenge-info h3, .checklist-content h4, .ck-bench-info strong, .client-info h4, .club-card h4, .club-card-full h4, .collaboration-opportunities h2, .collapse-section li, .comite-collection-card__stats strong, .comite-dossier-section h5, .comite-mini-stat strong, .comite-page-header h1, .comite-section-head h2, .comite-session-header__title h2, .community-challenges h2, .community-events h2, .critique-header h3, .cstats-vide strong, .ctx-panel-header h5, .dashboard-card-header h4, .dashboard-kpi strong, .discussion-card h3, .documents-page-header h1, .ebib-vide strong, .editor-info h3, .estats-vide strong, .etude-config label, .etude-followup label, .etude-result strong, .event-card-title a, .event-info h3, .faq-item h3, .faq-section h2, .featured-editors h2, .featured-profiles h2, .gantt-popup h5, .group-info h3, .guide-article h1, .guide-card h4, .illu-empty h3, .illu-legend-item strong, .imp-avis__reponse p, .imp-brief dd, .invite-result span, .item-title h3, .kanban-comite-dialog__header h3, .lect-action-panel label, .libraire-group-header h2, .llst-vide strong, .locked-badge h3, .lstats-vide strong, .mandat-rgpd dt, .mkt-section-header h5, .mstats-vide strong, .n2-head h1, .networking-events h2, .notifications-header h1, .opportunity-header h3, .partners-empty h3, .pay-card h2, .pedago-header h1, .pestel-dim-recos li, .pestel-radar-container h5, .pestel-score-panel h5, .pestel-top-list li, .pi-hub-header h1, .plan-header h3, .plan-header h4, .podcasts-page-header h1, .popular-discussions h2, .portfolio-header h1, .pro-section-header h6, .profile-card-name a, .profile-info h3, .quick-filters h2, .rcmd-header h1, .reco-form-group label, .reco-info strong, .reco-modal-header h3, .rentabilite-form-page h2, .request-card h4, .retour-suggestion strong, .rstats-vide strong, .rvis-header h1, .search-bar input, .section-header h2, .section-header h3, .section-header-row h2, .service-info h3, .service-types h2, .share-link-section label, .sidebar-widget h3, .step-content h3, .submission-info h4, .subscription-history h2, .subscription-history h4, .synthesis-header h4, .synthesis-recommendations h5, .template-card h4, .testimonials h2, .thematic-groups h2, .tool-card h3, .upload-file-list li, .upload-zone p, .user-info h5, .videos-page-header h1, .voltr-rgpd-section h3, .work-process h2, .workflow-step h3),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .gantt-popup p strong,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.analysis-step .form-label, .assistant-option-card .option-label, .assistant-step .step-title, .bstats-kpi .val, .cal-year-day.has-events, .ck-distrib-stat .val, .comite-calendar-popover__stats .num, .comite-invite-form .form-label, .comite-modal .form-label, .comite-modal .modal-title, .comite-session-card__stat .num, .comite-table .manuscript-title, .cs-page .cs-title, .cstats-kpi .val, .dashboard-last-analysis .mini-stat-value, .detail-back:hover, .detail-inputs .value, .ebib-club .n, .ebib-kpi .val, .ebib-liste .t, .ef-form .form-label, .estats-kpi .val, .evt-kpi-card .evt-kpi-value, .fiche-meta .auteur, .formation-reviews-mini .avg, .imp-scope .imp-mvt__ref, .kanban-comite-dialog__close:focus-visible, .kanban-comite-dialog__close:hover, .lstats-kpi .val, .member-row .member-name, .method-option .method-title, .mkt-kpi-card .mkt-kpi-value, .mstats-kpi .val, .offer-reviews-mini .avg, .portfolio-stats .stat-value, .provider-mini-card .provider-name, .quiz-timer .qt-time, .rep-shortcut-card:focus, .rep-shortcut-card:hover, .rstats-kpi .val, .sf-review-card .sf-review-title-text, .soum-dropdown-menu .dropdown-item, .soumission-card .manuscrit-titre, .soumission-modal .info-value, .soumission-modal .modal-title, .soumission-modal .reader-name, .soumission-notes-list .note-body, .soumission-timeline .timeline-text, .study-type-card .stc-title, .survey-card .q-label, .timeline-entry .timeline-user, .voltr-card .voltr-body),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-results .results-header h2, .bnf-mini-card a.bnf-mini-title, .ck-fiche td:last-child, .ck-univers-card .ck-stat-line strong, .competence-card h6.competence-name, .ctx-card-content .ctx-list li, .data-table td:last-child, .hobby-card h6.hobby-name, .modal .file-info-row strong, .need-card-header .need-info h4, .stats-card .card-header h5),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-calendar .fc .fc-toolbar-title, .comite-summary-panel .metric .value, .fiche-emplacement .cell .val, .stepper-item.active .stepper-label),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #modalPlanName{color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-debug, .auth-links, .bnf-pub-count, .bnf-trend-bar-value, .cal-detail-time, .cal-event-more, .cal-today-btn, .cal-week-event-time, .cal-year-month-title, .cert-formation, .cert-logo, .certificate-formation, .ck-gauge-label, .ck-kpi-label, .clients-kpi-icon, .club-meta, .cmd-kpi-icon, .comite-calendar-todos__date, .comite-calendar-todos__empty, .comite-calendar-todos__loader, .comite-email-chips__chip-remove, .corr-accent, .critic-bio, .critic-role, .discussion-time, .draft-clear, .ef-preset-t, .ef-sim-badge, .ef-sim-titre, .eh-version, .empty-state-hint, .engagement-desc, .evt-arrow, .evt-card-row, .evt-pager, .formation-author, .genre-percent, .guide-description, .illu-discover-thumb-empty, .item-desc, .kanban-card__btn, .kanban-card__btn--comite, .logo, .member-state, .member-suggest-label, .member-token-remove, .mkt-toggle, .network-viz-cta, .network-viz-info, .niveau-1, .nvp-preview-classic, .nws-empty-text, .nws-item-author, .opportunity-date, .pack-plumes, .pe-voltr-brief__label, .pestel-dim-toggle, .pestel-loading, .ph-score, .ph-version, .pi-nav-tab, .plan-recap-accent, .plan-recap-sep, .plan-suggestions-titre, .plan-volet-plus, .plumes-abo-banner-icon, .plumes-cost, .pod-empty-text, .pod-featured-desc, .pod-header-link, .pod-list-platform, .price-amount, .price-currency, .price-devis, .price-main, .pub-author, .publication-icon, .publication-title, .qualif-card-icon, .rating-big, .rating-value, .recommendation-subtitle, .report-subtitle, .request-meta, .request-type, .retour-avoir, .rss-feed-src-name, .rss-widget-count, .service-provider, .sf-avg-rating, .sf-review-count, .sf-viewer-status, .soum-sg-maison, .source-status, .sp-meta, .stage-label, .stats-sort--actif, .stats-sort__icon--actif, .voir-ms-meta-row, .widget-collapse-toggle),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-field label, .auth-links a, .bnf-card-link a, .bnf-categories-label i, .bnf-section-title i, .bnf-sidebar-footer a, .book-result-info small, .checklist-content p, .club-card-full p, .comite-breadcrumb a, .critique-manuscrit i, .editor-content a, .etude-config h5, .etude-historique h5, .guide-card p, .image-section-label i, .imp-avertissement i, .kanban-comite-dialog__section legend, .legal-note strong, .notification-dropdown-footer a, .nws-empty-icon i, .offer-seller i, .palmares-card-author i, .pe-tool--voltr i, .pe-voltr-brief__label i, .pe-voltr-loading i, .pe-voltr-menu__head strong, .pe-voltr-opt i, .pedago-header p, .pestel-dim-recos h6, .pestel-historique h5, .pestel-source-item a, .pestel-sources h5, .pi-hub-header p, .plan-volet-liste a, .pod-empty-icon i, .podcast-audio-info i, .portfolio-header p, .prefill-notice i, .privacy-switch-title i, .profile-issue-item a, .publication-body a, .read-more a, .review h4, .separator-content i, .sf-lesson-header h1, .sf-quiz-history summary, .sf-quiz-info h3, .sf-review-card h4, .sf-review-form h3, .sf-reviews-section h2, .sf-sidebar-header h2, .sf-user-review h4, .sidebar-pro-genre strong, .sidebar-widget-header i, .submission-info p, .template-card p, .topic-private-gate i, .verify-footer a, .voir-ms-section-title i, .voltr-content strong, .voltr-rgpd-container h1, .voltr-rgpd-section h2, .workflow-step p, a.podcast-card-play-btn),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.dr-section h2 i, .ef-sim-tableau thead th, .kanban-comite-dialog__header h3 i, .n2-head h1 i, .notifications-header h1 i, .pi-hub-header h1 i, .portfolio-header h1 i, .pro-section-header h6 i, .section-header h2 i, .service-section h2 i, .sf-quiz-info h3 i, .sf-quiz-meta span i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-kpi--sentiment .avis-kpi__icon, .avis-kpi--total .avis-kpi__icon, .badge-modal-status.locked, .bnf-isbn-banner .bnf-banner-header, .bnf-kpi-card .kpi-num, .bnf-market-stat .bnf-stat-number, .book-search-tabs .tab-btn, .cal-year-month-title:hover, .cert-body .cert-label, .ck-distrib-stat .lbl, .comite-calendar-popover__stats .lbl, .comite-calendar-todos__section--comite .comite-calendar-todos__section-title, .comite-timeline__step--current .comite-timeline__step-label, .corr-tip:focus, .corr-tip:hover, .draft-clear:hover, .editor-content .hashtag, .etude-loading .spinner-border, .evt-kpi-card .evt-kpi-icon, .feed-loading .spinner-border, .feed-tab.active, .feed-tab:hover, .fournisseur-kpi--lies .fournisseur-kpi__icon, .fournisseur-kpi--total .fournisseur-kpi__icon, .kanban-card__btn--comite:focus-visible, .kanban-card__btn--comite:hover, .kpi-echeance .kpi-icon, .kpi-preparation .kpi-icon, .kpi-revenus .kpi-icon, .kpi-stock .kpi-icon, .mandat-opposition .mandat-h2, .member-row .member-check, .member-row .member-sub, .mkt-kpi-card .mkt-kpi-icon, .n2-tab.is-active, .parcours-price .current-price, .pay-value.plumes, .pay-value.price, .pe-tool--image:hover, .pe-tool--tags:hover, .pi-nav-tab.active, .pi-nav-tab:hover, .pod-header-link:hover, .promo-kpi--ouvrages .promo-kpi__icon, .publication-body .hashtag, .qualif-topbar-back:hover, .quiz-correction .qc-explanation, .quiz-info-item .qi-label, .quiz-info-item .qi-value, .quiz-result .score-detail, .quiz-timer .qt-progress, .reco-step.active, .retour-kpi--avoirs .retour-kpi__icon, .retour-kpi--mois .retour-kpi__icon, .sf-review-form .sf-rating-label, .sf-sidebar-header .sf-author, .soum-stat-total .soum-stat-number, .stat-card .stat-value, .stats-kpi--ca     .stats-kpi__icon, .stats-kpi--titre  .stats-kpi__icon, .stats-sort:hover, .stock-kpi--refs .stock-kpi__icon, .stock-sort--actif .stock-sort__icon, .study-type-card .stc-icon, .vente-kpi--ca .vente-kpi__icon, .vente-kpi--panier .vente-kpi__icon, .vente-tri .fa-sort-down, .vente-tri .fa-sort-up, .vente-tri:focus-visible, .vente-tri:hover, .widget-collapse-toggle:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-card-title a:hover, .ck-fiche td:first-child, .editor-content a:hover, .event-card-title a:hover, .feed-tab-add a:hover, .icon-band .icon-item i, .mkt-tendance-table td:first-child, .network-viz-toggle i.fa-chevron-down, .partner-sidebar-right .sidebar-widget-header i, .profile-card-name a:hover, .publication-body a:hover, .sf-quiz-history summary:hover, a.pod-list-title:hover, a.podcast-card-play-btn:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-header h5 i.fa-project-diagram,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .feed-scope-inline label:has(input:checked) small,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.editor-content .hashtag:hover, .evt-calendar-cell.evt-aujourdhui .evt-calendar-daynum, .formation-item:hover .formation-arrow, .formation-item:hover .formation-title, .hobby-item-option.selected .hobby-item-check, .icon-band .icon-item .subtitle, .member-row.is-selected .member-name, .mkt-genre-bar-row.highlight .mkt-genre-bar-label, .notifications-filters .nav-link.active, .nws-item:hover .nws-item-num, .nws-item:hover .nws-item-title, .progress-step.active + .step-name, .publication-body .hashtag:hover, .rss-feed-item:hover .rss-feed-ext, .rss-feed-item:hover .rss-feed-title, .stepper-step.current .step-label, .value-card:nth-child(1) .value-icon, .value-card:nth-child(2) .value-icon, .value-card:nth-child(3) .value-icon, .view-tabs .nav-link.active, .view-tabs .nav-link:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-mini-card a.bnf-mini-title:hover, .cmd-workflow li.is-current .cmd-workflow-label, .feed-scope-option input:checked + .feed-scope-label, .roles-band .icon-item.active i){color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.competence-stats-card, .hobby-stats-card){background:var(--ds-accent-ink);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:none;color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .stat-box{background:var(--ds-paper);border-color:var(--ds-line);border-radius:var(--ds-radius);border-right-color:var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auteur-photo, .auteur-photo-lg, .author-photo, .avatar-img, .ca-avatar, .cal-month-grid, .carte-dot, .catalogue-thumb, .category-select-option, .chart-container, .clients-ca-card, .compare-drop, .compare-toggle, .competence-chip, .competence-search-input, .corr-card, .decision-label, .diag-prov-avatar, .document-card--coming-soon, .ebib-club, .editor-avatar, .event-detail-info-bar, .events-filter-bar, .feed-scope-option, .formation-item, .hobby-item-option, .hobby-search-input, .ilp-avatar, .image-upload-zone, .imp-fac-bloc, .imp-offre, .imp-round, .kanban-card__author-photo, .kanban-comite-dialog__section, .mc-radio, .method-option, .mq-preview, .n2-viewtoggle, .nego-editor-check, .notes-input, .ob-selected-zone, .participant-avatar, .payment-option, .priority-option, .profile-avatar, .profile-card-photo, .proj-history-list, .promo-ouvrages-liste, .provider-skeleton, .pu-avatar, .publication-separator, .quiz-checkbox, .quiz-radio, .rayon-item, .rc-photo, .reason-option, .reco-form-input, .reco-form-textarea, .search-input, .sl-brief-textarea, .sl-color-swatch, .sl-devis-msg, .sl-inspi-item, .sl-prov-avatar, .soum-editor-check, .subscription-card, .survey-textarea, .timeline-dot, .transp-confreres, .user-search-input),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.annuaire-facets input, .annuaire-facets select, .annuaire-search-wrap input, .comment-inline-img img, .conversation-avatar img, .edit-panel textarea, .edit-placement input, .image-current img, .manuscrit-selector select, .message-avatar img, .photo-upload-zone img, .search-form input, .sf-review-form textarea),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-result table td,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.analysis-step .form-control, .analysis-step .form-select, .assistant-step .form-control, .avis-carte:hover, .conversation-header .ch-status-dot, .corrpro .corr-card, .cta-buttons .btn-outline, .dot.active, .hobby-filters .form-control, .hobby-filters .form-select, .illu-link-input-group .input-group-text, .method-option:hover, .network-search-section .input-group-text, .profile-avatar .avatar-img, .provider-mini-card .provider-avatar, .provider-mini-card:hover, .qualif-card:hover, .report-selector .form-select, .search-box .search-input, .soumission-card .auteur-photo, .soumission-modal .reader-avatar),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.conversation-header .ch-avatar img, .rayon-item .surface-input input),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.mandat-jeton-page .mandat-portee tbody td, .mandat-jeton-page .mandat-portee thead th),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.etape-accordion .accordion-item.is-hors-parcours, .network-search-section .form-control:focus),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #xlsxContent td{border-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-stars, .critique-rating, .ef-sim-alertes, .fournisseur-stars, .highlight-icon, .highlight-text, .highlight-value, .hobby-rating, .imp-concurrence, .imp-definitif, .imp-fac-commission__titre, .imp-fac-emetteur__nom, .imp-fac-titre__mot, .imp-offre__mention--incomplete, .impact-number, .note-pin-icon, .ob-cat-star, .plumes-amount, .pu-stars, .rep-onboarding-banner-text, .retour-taux--moyen, .search-result, .sl-prov-boost, .sl-voltr-confirm-inner, .soum-ac-plumes, .stars, .stats-note, .testimonial-rating, .urgency-urgente),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-kpi i, .agent-stat i, .cover-warning i, .deletion-warning i, .deletion-warning li, .item-guide i, .sf-stars-inline i, .simulated-banner i, .sp-banner--warn i, .sp-conflit i, .star-rating i, .stars i, .stats-card i, .voir-ms-serie-info i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.featured-editors h2 i, .featured-profiles h2 i, .offres-section h2 i, .rcmd-header h1 i, .rvis-header h1 i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-tile .tile-icon, .avis-kpi--note .avis-kpi__icon, .fiche-lecture-star.is-hover, .fiche-lecture-star.is-selected, .fiche-lecture-star:hover, .formation-reviews-mini .stars, .fournisseur-kpi--note .fournisseur-kpi__icon, .kpi-attente .kpi-icon, .member-tier-stars .fa-star, .offer-reviews-mini .stars, .pestel-score-mitige .score-label, .pestel-score-mitige .score-value, .promo-kpi--remise .promo-kpi__icon, .rating-star.active, .rating-star:hover, .rentabilite-scale .scale-med, .retour-kpi--unites .retour-kpi__icon, .sl-voltr-btn .fa-spinner, .soum-stat-pending .soum-stat-number, .stats-kpi--retour .stats-kpi__icon, .status-badge.in-review, .stock-kpi--alerte .stock-kpi__icon, .study-type-card .stc-cout, .vente-kpi--evolution .vente-kpi__icon, .vente-kpi--stock-alerte .vente-kpi__icon, .vitrine-cdc-grid .fa-star, .vitrine-promos .promo-name),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.locked-badge i.fa-lock, .pub-editor__tips-toggle i.pe-bulb, .reco-star-rating label:hover, .star-rating label:hover, .vitrine-hero .hero-location i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.reco-star-rating input:checked ~ label, .reco-star-rating label:hover ~ label, .star-rating input:checked ~ label, .star-rating label:hover ~ label),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.hobby-cat-btn.active .ob-cat-star, .hobby-rating .star.filled, .illu-btn-flag.js-toggle-featured.is-on, .quiz-timer .qt-time.warning, .rating-input .star-btn.active, .rating-input .star-btn:hover, .recommendation-rating .star.filled, .sf-review-form .sf-rating-star.active, .sf-review-form .sf-rating-star:hover, .star-rating .star.filled, .star-rating .star:hover){color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.challenge-reward, .evt-tag--free, .evt-tag--registered, .experience-badge, .points-forts-badge, .type-edition),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-priority.basse, .mandat-bandeau.est-confirme),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .distrib-nav a:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mandat-portee thead th.col-permet{background:var(--ds-sunken);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.es-plumes, .item-guide, .ms-sec-hint-premium, .type-adaptation, .validation-badge){background:var(--ds-sunken);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cm-badge-success, .comite-decision-badge--acceptee, .comite-status-badge--cloturee, .comite-status-badge--invite-confirme, .illu-dem-status-termine, .status-dot--valide, .status-publie, .statut-publie, .voir-ms-badge-statut),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-collection-card__status.is-active, .plumes-type-badge.type-gain, .status-badge.acceptee, .validation-badge.validated, .verify-status.valid),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .decision-btn.accept.selected{background:var(--ds-success-bg);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-conseil-cover-ph, .biblio-cover-ph, .ck-step-dot, .comite-collection-card__status, .comite-critere-item__type, .comite-decision-badge--pending, .comite-diag-badge--inconnu, .cover-placeholder, .cover-placeholder-sm, .mandat-liste-avatar, .nego-editor-avatar, .reading-time, .reco-step-number, .sidebar-btn-disabled, .sl-section-badge, .soum-ac-avatar-icon, .soum-editor-avatar, .soum-sg-avatar-placeholder, .video-tag),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-table th,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.achievement-badge.locked, .biblio-list-badge.private, .ctx-badge.empty, .need-card-header .need-order, .reco-modal-footer .btn-back),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-filter-pill:not(.active) .pill-count{background:var(--ds-sunken);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .hobby-card{border:1px solid var(--ds-line);border-left-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.color-dot, .comite-diag-card, .hobby-category-badge, .imp-jauge__pastille),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-inspi-add:hover{border-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.author-card, .catalogue-card, .circuit-card, .common-hobbies-card, .compare-card, .criteria-card, .event-action-card, .mini-card, .ms-security-panel, .perso-card, .provider-mini-card, .pu-portfolio-card, .soumission-card, .submission-card){border-color:var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-avatar, .ck-bench-prix, .cm-badge-info, .comite-status-badge--invite-invite, .ef-sim-terr, .evt-tag--online, .fournisseur-avatar, .illu-dem-status-devis_recu, .lesson-tag, .member-avatar, .member-count, .nvp-num, .pe-tool--voltr, .pestel-source-badge, .ph-terr, .plan-parcours-carte-icone, .pro-criteria-tag, .promo-chip, .pu-badge-platinum, .retour-ouvrage, .sf-resource, .sf-type-quiz, .sl-tip, .time-estimate, .type-mondial, .type-traduction, .voir-ms-badge-genre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.corr-card__head .corr-ico, .ebib-prio.basse, .ef-sim-tableau .retenu, .eh-chip.terr, .event-type.ateliers, .event-type.conference, .evt-widget-footer:hover, .metric-trend.trend-stable, .n2-tab .n2-count, .nvp-choose:disabled, .parcours-level.level-expert, .pe-voltr-opt:hover, .plumes-type-badge.type-abonnement_mensuel, .plumes-type-badge.type-admin_credit, .plumes-type-badge.type-admin_debit, .plumes-type-badge.type-prorata_upgrade, .pod-widget-footer:hover, .sf-lesson-link.active, .sidebar-widget-footer:hover, .voir-ms-btn-outline:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-dossier-item .accordion-button:not(.collapsed), .etape-accordion .accordion-button:not(.collapsed), .survey-card .q-label .q-badge){background:var(--ds-sunken);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.clients-avatar, .cm-backlog-tag, .cm-badge-secondary, .comite-status-badge--invite-revoque, .comite-status-badge--preparation, .critique-manuscrit, .eh-chip, .evt-tag, .evt-type-chip, .formula-hint, .hobby-tag, .illu-cmd-detail-brief, .illu-dem-status, .imp-offre--non-retenue, .kanban-card__badge-genre, .kanban-card__reader, .llst-src, .more-participants, .mq-badge-soft, .pestel-synthese, .plumes-history-filter, .pu-badge-silver, .sf-btn-nav, .sf-review-cancel, .sp-badge--link, .tag, .tag-removed, .tool),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-quiz-meta span,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ebib-pill.priv, .soumission-modal .badge-genre, .soumission-modal .info-synopsis, .video-tag:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .compare-table tbody td:first-child{background:var(--ds-sunken);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-card-footer, .bnf-sidebar-footer, .cert-footer, .chap-card-body, .club-footer, .comite-invite-form, .critique-footer, .ctx-panel-body, .dashboard-card-footer, .error-url, .etude-frais, .fiche-card-footer, .filters-actions, .formation-footer, .hobby-actions, .illu-dem-devis, .illu-minikpis, .kanban-card__footer, .kanban-comite-dialog__footer, .lot-card-footer, .manual-entry, .note-actions-expanded, .notification-dropdown-footer, .offer-footer, .offres-footer, .palmares-card-meta, .parcours-footer, .pod-list, .publication-footer, .recent-activity, .recommendation-footer, .resource-actions, .service-footer, .sf-actions, .sf-reviews-section, .sl-brief-recap, .sl-preview-checklist, .sl-sidebar-providers, .soum-card-comment, .sp-card-actions, .step-nav, .verify-footer, .voir-ms-footer),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.author-menu-dropdown hr, .etude-result hr),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-info-list li + li,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ca-item + .ca-item, .cs-page .cs-actions, .cs-page .cs-notify, .editor-publications-separator .separator-line, .filter-section .tri-inline, .rc-card + .rc-card, .soum-dropdown-menu .dropdown-divider){border-top-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .corr-mission-card:has(.corr-badge-devis_demande){border-left-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.activity-item, .agent-detail-panel__header, .bnf-categories, .bnf-pub-row, .cal-detail-header, .cert-detail-row, .checklist-row, .chiffre-item, .comite-calendar-todos__filters, .comite-calendar-todos__header, .comite-tabs, .comments-header, .corr-card__head, .dashboard-card-header, .diag-cat-row, .diag-row, .documents-page-header, .ebib-res, .event-card-organizer, .external-source-header, .feed-tabs-nav, .image-section, .imp-fac-totaux__ligne, .imp-palier, .imp-produit, .kanban-comite-dialog__header, .lect-tabs, .llst-item, .mandat-liste-item, .manuscript-tabs, .n2-tabsbar, .network-tabs, .notification-dropdown-header, .notification-dropdown-item, .nws-item, .participant-row, .pay-row, .pe-voltr-menu__head, .pestel-indicator-row, .pi-nav-tabs, .plan-header, .planning-group, .pod-list-item, .podcasts-page-header, .pro-card, .pro-section, .profile-issue-item, .proj-history-item, .promo-ouvrage-item, .reco-item, .reco-modal-header, .relation-row, .results-header, .rss-feed-item, .section-header, .section-title, .sf-sidebar-header, .sidebar-podcast-item, .sl-recap-line, .soum-ac-item, .submission-item, .toggle-row, .transp-confrere, .tstats-statut, .user-dropdown-item, .videos-page-header, .view-tabs),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.category-providers li, .category-services li, .ck-checklist li, .ck-fiche td, .collapse-section h6, .comite-linked-list li, .data-list li, .data-table tr, .ebib-liste li, .ef-sim-tableau td, .ef-sim-tableau th, .event-benefits li, .event-features li, .feature-services li, .feature-tools li, .imp-fac-table td, .imp-fac-table th, .plan-features li, .profile-section h2, .provider-table td, .service-benefits li, .service-tools li, .step-actions li, .step-deliverables li, .vitrine-hours li),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-table tbody td, .comite-table tbody td, table.bstats-tbl td, table.cstats-tbl td, table.ebib-tbl td, table.estats-tbl td, table.mstats-tbl td, table.rcli-tbl td, table.rcmd-tbl td, table.rfic-tbl td, table.rmai-tbl td, table.rstats-tbl td, table.rvis-tbl td),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-modal .modal-header, .comite-participants-pick .participant-pick-row, .corrpro .corr-card__head, .imp-scope .imp-jour, .imp-scope .imp-mvt, .need-card-open .need-card-header, .soumission-modal .info-row, .suggestions-drawer .drawer-header){border-bottom-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-sidebar-widget, .agent-kpi, .agent-tile, .annuaire-card, .assistant-option-card, .bnf-card, .bnf-kpi-card, .carte-card, .chap-card, .club-card, .conseil-card, .contrat-kpi, .cover-cta-card, .critique-card, .cta-card, .ctx-card, .evt-widget, .fichier-card, .guide-card, .illu-cmd-kpi, .illu-dem-card, .illu-discover-card, .illu-filter-card, .illu-kpi-card, .illu-stat-card, .ilp-card, .need-card, .nws-widget, .pestel-dim-card, .pestel-score-panel, .pod-widget, .request-card, .rss-widget, .section-card, .sf-review-card, .sl-choice-card, .sl-section-card, .soum-sg-card, .template-card, .timeline-card, .voltr-book-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.kpi-card-libraire ~ .kpi-card, .pedago-sidebar .sidebar-widget, .section-card .kpi-card){background:var(--ds-paper);border-color:var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-card-header, .earn-item, .pu-breadcrumb, .quick-nav, .quiz-timer, .rss-tabs, .spend-item),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .stats-card .card-header{background:var(--ds-paper);border-bottom-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rss-tab,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .manuscript-tabs .tab-btn.active{background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-cat-chip, .bnf-subject-chip, .checklist-lien, .comite-email-chips__chip, .imp-avertissement, .kanban-card__comite-badge, .member-token, .pay-alert-info, .plumes-balance-info, .rep-badge-diffuseur, .sf-review-av, .sl-devis-btn),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-card-subjects .badge, .mc-option.selected, .quiz-option.selected, .quiz-tf-btn.selected, .review .av, .rss-tab:hover, .sf-load-more-btn:hover, .sf-viewer-btn:hover, .yesno-btn.selected){background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.evt-widget-footer, .pod-widget-footer){background:var(--ds-paper);border-top-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-cal-title, .cal-free-badge, .checklist-meta, .ck-check-ok, .copy-feedback, .demo-arrow, .demo-label, .euros-amount, .evt-ecart-negatif, .fiche-section-titre, .flow-arrow, .imp-offre__mention--moins-disant, .marketplace-icon, .offer-price, .other-offer-price, .pack-bonus, .parcours-free, .plumes-amount-positive, .post-solution-label, .pp-item-done, .price-current, .price-free, .promo-countdown, .promo-impact__delta--hausse, .retour-taux--faible, .sidebar-price, .stock-ecart-positif, .stock-mvt-in, .suggestion-isbn-ok, .trend-up),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.check i, .cm-backlog-livre li, .edit-panel h2, .evt-tag--registered i, .features i, .fiche-lecture-autosave-footer i, .fiche-lecture-autosave-indicator i, .fiche-notice a, .fiche-notice h3, .fiche-notice h4, .office-hours h4, .sf-quiz-passed i, .voltr-rgpd-guarantee h2),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.guarantee-list li strong, .requirements-list li i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-modal-status.unlocked, .biblio-voltr-preview .biblio-md-h, .cal-week-badge.registered, .cal-year-day.has-registered, .comite-timeline__step--done .comite-timeline__step-label, .comparison-table .best, .cs-page .cs-feedback, .event-price-tag.free, .fiche-emplacement .pin, .fiche-entete .structure, .fournisseur-kpi--evalues .fournisseur-kpi__icon, .kpi-actifs .kpi-icon, .kpi-card-libraire .kpi-label, .kpi-card-libraire .kpi-sub, .kpi-card-libraire .kpi-value, .kpi-publie .kpi-icon, .pestel-indicator-detail.pos, .pestel-score-favorable .score-label, .pestel-score-favorable .score-value, .pestel-score-tresfavorable .score-label, .pestel-score-tresfavorable .score-value, .pilotage-card .trend-up, .progress-ring .ring-text, .promo-kpi--actives .promo-kpi__icon, .quiz-result-icon.pass, .radar-rail-access.is-unlocked, .reco-step.completed, .rentabilite-scale .scale-max, .retour-kpi--taux .retour-kpi__icon, .sf-viewer-status.ok, .sl-check-item.sl-check-done, .sl-save-status.sl-saved, .soum-stat-accepted .soum-stat-number, .stats-kpi--marge  .stats-kpi__icon, .stock-kpi--unites .stock-kpi__icon, .vente-kpi--unites .vente-kpi__icon),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.fiche-meta .details i, .upload-zone.drag-over i),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-debug .badge.ok, .biblio-tabs .nav-link.active, .biblio-tabs .nav-link:hover, .bnf-kpi-card.kpi-trend-hausse .kpi-num, .checklist-row.is-done .checklist-title, .ck-step.active .ck-step-label, .ck-step.done .ck-step-label, .mkt-kpi-card.trend-up .mkt-kpi-value, .quiz-result .score-big.pass, .sf-lesson-link .sf-check.done, .stepper-step.completed .step-label, .value-card:nth-child(4) .value-icon),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cmd-workflow li.is-done .cmd-workflow-label,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #voltrSelectionBooks .form-label{color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.sl-save-bar, .stock-inventaire-barre, .transp-sticky-actions),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .podcast-modal .modal-footer{background:var(--ds-paper);border-top-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ms-sec-header, .sidebar-pro-genre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.provider-table th, .sf-quiz-history th),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-member-table thead th, .imp-fac-table thead th){background:var(--ds-sunken);border-bottom-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-banner, .avis-detail__reponse, .bnf-mini-card, .content-preview, .distrib-alerte-mandat, .explain-panel, .path, .reco-summary-preview, .transp-attente, .transp-bandeau-decale, .transp-caduc, .transp-course-perimee, .transp-exclusif, .transp-perimee, .transports-course-decision, .transports-course-perimee, .transports-rappel),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .soumission-notes-list .note-item{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .image-controls{background:var(--ds-ink);border-color:var(--ds-line);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-main-tab, .fc-tag-option, .feed-composer-pill, .filter-input, .hobby-chip, .illu-chip, .imp-fac-doc, .imp-periodes__lien, .imp-tag, .pub-tag-option, .quiz-ordering-item, .rep-shortcut-card, .sf-doc-content, .sidebar-btn-outline, .type-chip),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .share-link-input input,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.image-controls .btn, .step-nav .btn-prev){background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.n2-markall, .voir-ms-btn-outline),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-timeline__step--current .comite-timeline__step-icon,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .image-controls .btn:hover{background:var(--ds-paper);border-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.editor-section, .error-support-card, .illu-voltr-upsell, .voltr-rgpd-guarantee),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .subscription-card.is-current,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quick-nav a:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .roles-band .icon-item.active .icon-link{background:var(--ds-paper);border-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-header{background:var(--ds-accent-ink);border-bottom-color:var(--ds-accent-ui);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-card{background:var(--ds-sunken);border-color:var(--ds-line);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.event-card:hover, .n2-card:hover, .notification-card:hover, .publication-card:hover){background:var(--ds-sunken);border:1px solid var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-acq-check, .chart-placeholder, .comite-timeline__step-icon, .lc-promo, .n2-mark, .role-chip, .role-chip-compact, .separator-content, .step-circle, .stepper-circle),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-nav .btn-prev, .biblio-note-slot.empty, .provider-mini-card .btn-profile){background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.chat-empty-trust, .n2-vbtn),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .compare-toggle button,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-publications-separator .separator-content{background:var(--ds-paper);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .loading-spinner{border-color:var(--ds-line);border-top-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .author-menu-toggle:hover{background:var(--ds-ink);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.author-menu-dropdown, .illu-share-pick-check, .sl-format-book, .soum-dropdown-menu){background:var(--ds-paper);border-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.admin-label, .analytics-icon, .balance-warning, .ck-check-ko, .cmd-retard, .comite-calendar-todos__prod-tag, .comite-eval-item__due--urgent, .erreur-item, .error, .etude-error, .evt-ecart-positif, .feed-error, .hint, .imp-jalon__motif, .imp-req, .metric-number, .palmares-score, .plumes-amount-negative, .promo-impact__delta--baisse, .retour-taux--fort, .rmai-est, .stock-alert, .stock-ecart-negatif, .stock-mvt-out, .suggestion-isbn-missing, .transp-alerte-perimee, .transports-alerte-perimee, .trend-down, .urgency-critique),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.channel-info strong, .cm-champ abbr, .palmares-score i, .palmares-title i, .profile-issue-item i, .sf-quiz-failed i, .sp-banner--error i, .sp-conflit a),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .popular-discussions h2 i,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-kpi--attente .avis-kpi__icon, .cal-detail-close:hover, .cal-week-badge.full, .comite-calendar-todos__section--prod .comite-calendar-todos__section-title, .ef-sim-tableau .negatif, .illu-album-del:hover, .imp-scope .imp-stock__alerte, .member-token-remove:hover, .pestel-indicator-detail.neg, .pestel-score-defavorable .score-label, .pestel-score-defavorable .score-value, .pilotage-card .trend-down, .quiz-result-icon.fail, .reco-selected-user-remove:hover, .recommendation-btn.danger, .rentabilite-scale .scale-min, .saved-search-chip .remove-saved, .sf-viewer-status.err, .soum-stat-refused .soum-stat-number, .stock-kpi--rupture .stock-kpi__icon, .vente-kpi--stock-rupture .vente-kpi__icon, .vitrine-status.is-closed),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-form-group label .required,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.auth-debug .badge.ko, .bnf-kpi-card.kpi-trend-baisse .kpi-num, .cs-page .cs-feedback.is-error, .illu-card-actions .illu-btn-delete:hover, .mkt-kpi-card.trend-down .mkt-kpi-value, .quiz-result .score-big.fail, .quiz-timer .qt-time.danger, .survey-card .q-label .q-required, .upload-file-item .file-remove:hover){color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ad-card, .ad-sidebar-card, .auteur-card, .auteur-detail-panel, .compteur-card, .illu-cmd-detail-paiement-box, .nt-card, .rc-card, .sales-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.assistant-options-list .assistant-option-card, .onboarding-step .card, .vitrine-cdc-grid .card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #previewArea .card{border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.club-visibilite, .hobby-cat-btn, .imp-badge--off, .imp-echeance--echue, .imp-sim--ko, .imp-vide, .retour-suggestion, .summary-badge, .transp-cloison, .transp-lecture-seule, .tstats-empty),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-sidebar-nav button,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .manuscript-tabs .tab-btn:hover{background:var(--ds-sunken);border-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.participants-panel, .plumes-use-card, .private-panel, .study-type-card, .voltr-result-box){background:var(--ds-paper);border-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comment-inline-img-handle, .guarantee-demo, .illu-cmd-ac-list, .ilp-filter, .image-resize-handle, .method-step, .plan-volet, .privacy-switch-row, .publication-type, .transp-vitrine-avatar, .transports-avatar),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ilp-socials a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.decision-btn:hover, .decision-label:hover, .mc-option:hover, .mini-card:hover, .ms-depot-dropzone.has-file, .quiz-option:hover, .quiz-ordering-item:hover, .quiz-tf-btn:hover, .reco-type-option:hover, .transp-terrain .details-corps, .yesno-btn:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .payment-option:hover:not(.disabled){background:var(--ds-paper);border-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cover-warning, .draft-banner, .imp-echeance--urgent, .mandat-avertissement, .pay-alert-warning, .plumes-reward-badge, .pub-editor__tips-body, .retour-explication, .sp-banner--warn, .survey-notice, .voir-ms-serie-info),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ef-msg.warn, .source-status.source-ko){background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-card, .vitrine-sidebar-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .assistant-step .card{border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .libraire-group{--group-accent:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .stat-card{background-image:none;border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.dashboard-card, .tool-card, .type-card){background:var(--ds-paper);border:1px solid var(--ds-line);border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.sidebar-widget-footer, .view-all){border-top-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.analytics-card, .category-card, .chart-card, .ck-univers-card, .filters-panel, .offer-card, .other-offer-card, .palmares-card, .parcours-card, .pay-card, .pub-card, .quiz-card, .report-card, .sell-card, .sidebar-card, .soum-kanban-card, .soum-stat-card, .stats-kpi-card, .voir-ms-card){background:var(--ds-paper);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cm-badge-danger, .cm-poids-l, .comite-decision-badge--refusee, .comite-diag-badge--risque, .comite-status-badge--annulee, .comite-status-badge--invite-decline, .diag-bad, .illu-cmd-paiement-non_paye, .illu-dem-status-clos, .lect-badge-spoiler, .llst-prio-haute, .pay-btn-danger, .response-time, .type-audio),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.badge-priority.haute, .cm-form-message.is-erreur, .diag-item-todo:hover, .diag-pill.critique, .diag-pill.faible, .diag-pill.problematique, .ebib-prio.haute, .eh-suppr:hover, .mandat-bandeau.est-conteste, .metric-trend.down, .metric-trend.trend-down, .parcours-level.level-avance, .ph-suppr:hover, .plumes-type-badge.type-depense, .plumes-type-badge.type-refund, .status-badge.refusee, .verify-status.invalid),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mandat-portee thead th.col-permet-pas,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.recommendation-btn.danger:hover, .resource-btn.danger:hover){background:var(--ds-sunken);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avatar-placeholder, .bar-fill, .step-number),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .toast-notification.error{background-image:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.agent-tile:hover, .author-card:hover, .bnf-card:hover, .certificate-card:hover, .club-card:hover, .comite-session-card:focus-within, .comite-session-card:hover, .formation-card:hover, .guide-card:hover, .service-card:hover, .soum-sg-card:hover, .stat-card:hover, .submission-card:hover, .voltr-book-card:hover){border:1px solid var(--ds-line);border-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-filter-pill, .echeance-input, .filter-btn, .quiz-nav-btn, .quiz-tf-btn, .sf-load-more-btn, .sf-viewer-btn, .sp-filter, .yesno-btn),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .distrib-nav a{background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cm-avertissement, .comite-locked-banner, .diag-item-todo, .imp-fac-defauts, .pay-alert-error, .sf-quiz-failed, .sp-banner--error, .sp-conflit, .survey-error-msg),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.echeance-input.is-late, .ef-msg.error, .rayon-filters .btn-filter-warning, .sf-review-msg.error){background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.annuaire-card__avatar, .cal-nav-btn, .filter-pill, .llst-prio-basse, .pay-btn-secondary, .recommendation-btn, .resource-btn, .segment-silencieux),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cal-sub-tab:hover, .cert-toolbar-btn.secondary, .certificate-btn.secondary, .comite-calendar-popover__close:hover, .comite-calendar-todos__pill:hover, .comite-inv-card .inv-message, .diag-prov-more:hover, .formation-btn.secondary, .n2-tab:hover, .reco-modal-close:hover, .service-btn.secondary, .sl-prov-more:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .kanban-column.col-todo .kanban-column-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-tabs .nav-link:hover:not(.active), .etape-accordion .accordion-item.is-hors-parcours .accordion-button),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etape-accordion .accordion-item.is-hors-parcours .accordion-button:hover{background:var(--ds-sunken);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .timeline-entry .timeline-dot{background:var(--ds-accent-weak);border-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.etape-badge-hors-parcours, .imp-echeance, .imp-fac-commission, .plan-recap, .suggestion-cat-tab),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.rayon-filters .btn-filter, .sl-prov-card:hover),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #xlsxContent th{background:var(--ds-sunken);border-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plan-parcours-avertissement{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plan-suggestions{background:var(--ds-sunken);border-top-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cm-badge-warning, .illu-dem-status-attente_devis, .status-accepte, .status-dot--en_revision, .statut-epuise),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.diag-pill.acceptable, .diag-pill.correct, .diag-pill.surveiller, .status-badge.comite_lecture, .status-badge.en_lecture, .status-badge.en_negociation, .status-badge.envoyee){background:var(--ds-warning-bg);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.action-btn, .illu-card-drag-handle){background:var(--ds-paper);box-shadow:none;color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.action-btn:hover, .podcast-card-play-btn:hover){box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.engagement-card, .formation-card, .mission-card, .rail-card, .survey-card){background:var(--ds-paper);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-session-header, .media-preview, .parcours-featured-section, .stat-item){background:var(--ds-paper);border-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .review-card{background:var(--ds-sunken);border-left-color:var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ai-feature, .arg-header, .conversion-prompt){background:var(--ds-accent-ink);border-left-color:var(--ds-accent-ui);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .member-tier-badge{background:var(--ds-paper);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .member-tier-argent{background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .member-tier-standard{background:var(--ds-paper);border-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.challenge-card, .comite-collection-card, .comite-detail-card, .comite-inv-card, .diag-card, .dr-section, .editor-card, .group-card, .lect-book-card, .lect-stat-card, .mq-card, .mq-kpi-card, .n2-card, .profile-card, .voltr-rgpd-section){background:var(--ds-paper);border-color:var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.group-badge, .group-title){background:var(--ds-paper);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .discussion-card{background:var(--ds-paper);border:1px solid var(--ds-line);border-left-color:var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-card{border-color:var(--ds-line);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.channel-card, .strategy-card, .workflow-card){background:var(--ds-paper);border:1px solid var(--ds-line);border-top-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .live-chat-widget{background:var(--ds-accent-ink);border:1px solid var(--ds-line);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .lc-rails{--lc-green:var(--ds-accent-ink);--lc-green-dark:var(--ds-accent-ink);--lc-ink:var(--ds-ink);--lc-line:var(--ds-line);--lc-muted:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.affinity-tooltip, .biblio-acq-bar, .chart-demo, .illu-toast, .image-preview-remove, .impact-section, .lc-promo-card-sponsor, .lect-spoiler-toggle, .lect-toast, .media-gallery-badge, .media-gallery-count, .palmares-genre-badge, .photo-upload-overlay, .podcast-audio-player, .podcast-card-duration, .podcast-card-platform-badge, .pub-visibility-badge, .synopsis-tooltip, .user-badge-tooltip, .video-card-duration),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.lect-spoiler-toggle:focus-visible, .lect-spoiler-toggle:hover, .video-page-modal .modal-header){background:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.service-features li, .submissions-table th){border-bottom-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.tool-card:hover, .type-card:hover){background:var(--ds-accent-weak);border:1px solid var(--ds-line);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .icon-band{background:var(--ds-ink);border-bottom-color:var(--ds-line-strong);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-demo,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .roles-band .roles-nav{background:var(--ds-ink);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quick-nav a{background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .description-section{background:var(--ds-paper);color:var(--ds-info)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-main-tab.active{background:var(--ds-paper);border-color:var(--ds-accent-ui);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-tabs .nav-link.active{background:var(--ds-sunken);border-bottom-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mkt-tendance-table th,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-table thead th, .compare-table thead th, .history-table thead th, table.rcmd-tbl th, table.rvis-tbl th){background:var(--ds-sunken);border-bottom-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.box, .comite-dossier-fiche){background:var(--ds-paper);border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-dossier-fiche-commentaire,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cmd-journal li, .transp-journal li, .transports-journal li),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-inv-card.is-declined, .n2-vbtn + .n2-vbtn, .rtour-etape.is-annulee){border-left-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.c4-kpi-card, .comite-calendar-panel, .dash-panel, .document-card, .illu-cmd-card, .nvp-card, .podcast-card, .video-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cs-page .cs-card, .portfolio-stats .stat-box){background:var(--ds-paper);border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-calendar{--fc-border-color:var(--ds-line);--fc-button-active-bg-color:var(--ds-accent-soft);--fc-button-active-border-color:var(--ds-accent-line);--fc-button-bg-color:var(--ds-paper);--fc-button-border-color:var(--ds-line);--fc-button-hover-bg-color:var(--ds-sunken);--fc-button-hover-border-color:var(--ds-line);--fc-button-text-color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-calendar-popover__stats, .guide-author-info){border-bottom-color:var(--ds-line);border-top-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-calendar-todos__pill--prod.active{background:var(--ds-accent-weak);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-calendar-todos__card, .pestel-sources){background:var(--ds-sunken);border-color:var(--ds-line);border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.network-viz-legend, .voir-ms-header),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.fiche-lecture-modal .modal-header, .soumission-modal .modal-header, .submission-card .card-header){background:var(--ds-paper);border-bottom-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.btn-check:checked + .fiche-lecture-reco--refuser, .rayon-filters .btn-filter-warning.active){background:var(--ds-danger);border-color:var(--ds-accent-ui);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .kanban-skeleton,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.imp-scope .imp-creneau, .imp-scope .imp-stock){background:var(--ds-paper);border-color:var(--ds-line);border-left-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-list-card.active, .category-card.active, .checklist-item:hover, .compare-card.selected, .formation-item:hover, .nvp-card.is-active, .pack-card.highlighted, .profile-card-rich:hover, .subscription-card.is-premium, .type-card.active){border-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-ordering-item.drag-over,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .subscription-card.is-current .card-body{border-top-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-section-title, .dashboard-block-header),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.mkt-tendance-table td, .sf-quiz-history td, .submissions-table td),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.compare-table tbody td, .history-table tbody td),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partner-sidebar-right .sidebar-widget-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .subscription-history .table thead th{border-bottom-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stats-card, .user-card){border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.suggestion-card:hover, .user-card:hover){background:var(--ds-sunken);border:1px solid var(--ds-line);border-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.eh-vide, .illu-empty, .mq-empty, .sl-color-add, .sl-inspi-add, .stock-cover--placeholder),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #c4-refresh-btn{border-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ms-sec-btn-premium,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #c4-refresh-btn:hover{border-color:var(--ds-accent-ui);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .annuaire-chip.is-active{background:var(--ds-ink);border-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fiche-card{background:var(--ds-paper);border-color:var(--ds-line);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .assistant-page{--assistant-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .assistant-option-card:hover{border:1px solid var(--ds-line);border-color:var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .auth-card{background:var(--ds-ink);border-radius:var(--ds-radius);box-shadow:none;color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .auth-field input{background:var(--ds-accent-ink);border-color:var(--ds-line);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .auth-submit{background:var(--ds-accent-weak);border-color:var(--ds-accent-ui);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.biblio-list-item-cover-ph, .catalogue-thumb-placeholder, .diag-prov-more, .fiche-cover-ph, .lect-coming-soon){background:var(--ds-sunken);border-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-cmd-note{background:var(--ds-paper);border-left-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-card-thumb-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-cmd-ac-item:hover{background-image:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-card{background:var(--ds-sunken);border-color:var(--ds-line);border-radius:var(--ds-radius);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cm-modal, .cm-page){--cm-accent:var(--ds-accent-ui);--cm-accent-ink:var(--ds-accent-ink);--cm-accent-soft:var(--ds-sunken);--cm-bord:var(--ds-sunken);--cm-carte:var(--ds-paper);--cm-fond:var(--ds-sunken);--cm-muet:var(--ds-muted);--cm-texte:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .note-meta,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(table.bstats-tbl th, table.cstats-tbl th, table.ebib-tbl th, table.estats-tbl th, table.mstats-tbl th, table.rcli-tbl th, table.rfic-tbl th, table.rmai-tbl th, table.rstats-tbl th),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #tableContrats th{border-bottom-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.add-author-box, .axe-score-card, .diag-reco-card, .nego-editor-card, .recommendation-card, .resource-card, .sf-progress-box, .skeleton-card, .soum-editor-card, .stat-mini-card){background:var(--ds-sunken);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-kpi, .fournisseur-kpi, .promo-kpi, .retour-kpi, .stats-kpi, .stock-kpi, .vente-kpi){background:var(--ds-paper);border-color:var(--ds-line);border-left-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.avis-kpi:hover, .fournisseur-kpi:hover, .promo-kpi:hover, .retour-kpi:hover, .stock-kpi:hover, .vente-kpi:hover){border:1px solid var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .avis-carte__reponse{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.cal-day-cell, .evt-calendar-cell){background:var(--ds-paper);border-bottom-color:var(--ds-line);border-right-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.evt-calendar-event, .fiche-quatrieme, .legal-note, .voir-ms-synopsis){background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .retour-interpretation{background:var(--ds-sunken);border-left-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vente-compteur{background:var(--ds-paper);border-color:var(--ds-line);border-top-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .error-page{--ep-accent:var(--ds-accent-ui);--ep-accent-soft:var(--ds-sunken);--ep-bg-light:var(--ds-sunken);--ep-border:var(--ds-line);--ep-primary:var(--ds-ink);--ep-text-muted:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-date-box{background-image:none;border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:none;color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pe-voltr-loading{background:var(--ds-paper);border-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-kpi,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.partner-sidebar-left .sidebar-widget, .partner-sidebar-right .sidebar-widget){background:var(--ds-paper);border:1px solid var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sidebar-widget-header{background:var(--ds-paper);border-bottom-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partners-pagination .page-link{border-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .illu-filter-chip{border-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.imp-cout--gain, .pay-alert-success, .sf-quiz-passed),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.ef-msg.ok, .sf-review-msg.success){background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .imp-consult{border-color:var(--ds-line);border-left-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.fiche-entete, .imp-fac-entete){border-bottom-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .imp-fac-totaux__ligne--fort{border-top-color:var(--ds-accent-ui);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.imp-fac-mentions, .pestel-limites){border-top-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .imp-scope{--imp-accent:var(--ds-accent-ink);--imp-accent-border:var(--ds-accent-line);--imp-accent-ink:var(--ds-accent-ink);--imp-accent-soft:var(--ds-accent-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.imp-jalon, .reco-skeleton, .soum-card-nonsoumis){background:var(--ds-sunken);border-left-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.detail-meta, .mandat-jeton-pied, .mandat-plus-tard, .ms-sec-hint, .rentabilite-scale){border-top-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mandat-opposition{background:var(--ds-sunken);border-color:var(--ds-accent-ui);border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .service-card{background-image:none;border-color:var(--ds-line);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .messages-page{--lc-bg-chat:var(--ds-sunken);--lc-green:var(--ds-accent-ink);--lc-green-dark:var(--ds-accent-ink);--lc-ink:var(--ds-ink);--lc-line:var(--ds-line);--lc-muted:var(--ds-muted);--lc-purple:var(--ds-accent-ui);--lc-surface:var(--ds-paper)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .conversation-item.conversation-active{background:var(--ds-paper);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-tabs .nav-link.active{background-image:none;border-bottom-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.actor-publication-card, .dashboard-preview, .pestel-dim-recos, .plumes-abo-banner, .use-case-card),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .user-card.pending{background:var(--ds-paper);border-left-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .diag-card h3{background:var(--ds-sunken);border-bottom-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.mc-option, .ms-sec-btn, .quiz-option),
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.n2-pager a, .n2-pager span){border-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.competence-chip:hover:not(.selected), .hobby-chip:hover:not(.selected)){background:var(--ds-sunken);border-color:var(--ds-line-strong)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.genre-badge, .selected-user-badge, .transp-puce, .transports-puce),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .transp-terrain summary{background:var(--ds-sunken);border-color:var(--ds-accent-ui);color:var(--ds-info)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.book-result-src, .book-source-tag, .genre-badge-sm, .reco-rank),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quick-links a:hover{background:var(--ds-sunken);color:var(--ds-info)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .empty-state-card{background:var(--ds-sunken);border-color:var(--ds-line);border-radius:var(--ds-radius);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .book-search-tabs .tab-btn.active{background:var(--ds-paper);box-shadow:none;color:var(--ds-info)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sidebar-hint,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-result blockquote{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .club-closed-hint,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-result table th{background:var(--ds-sunken);border-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero{background:var(--ds-accent-weak);box-shadow:none;color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .podcast-card-play-btn{background:var(--ds-paper);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tech-card:hover{background:var(--ds-paper);border:1px solid var(--ds-line);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.report-header, .share-modal-header){background:var(--ds-accent-ink);border-bottom-color:var(--ds-line);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .highlight-card{background:var(--ds-accent-weak);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.metric-card, .panel-card){background:var(--ds-paper);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cert-user,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.etude-result h1, .etude-result h2, .etude-result h3),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .report-history-table thead th{border-bottom-color:var(--ds-line);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.bnf-isbn-banner, .simulated-banner){background:var(--ds-accent-weak);border-color:var(--ds-accent-ui);border-left-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .manuscript-card{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.comite-proj-kpi, .ctx-panel, .mkt-kpi-card, .result-card, .suggestion-card){background:var(--ds-sunken);border-color:var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.pu-cert-card, .voltr-card){background:var(--ds-sunken);border-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-mock-4c{background:var(--ds-sunken);border-right-color:var(--ds-line);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-prov-card{border-radius:var(--ds-radius);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-color-add:hover{border-color:var(--ds-line-strong);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .video-card-play-btn{background:var(--ds-paper);box-shadow:none;color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .video-card-play-btn:hover{box-shadow:none;color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .actor-analysis{background:var(--ds-paper);border-top-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .biblio-review-excerpt{border-left-color:var(--ds-line);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .corrpro{--corr-accent:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card{background:var(--ds-accent-ink);border-radius:var(--ds-radius);color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .indicator{border-right-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendation-box{background:var(--ds-paper);border-left-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-card{border-color:var(--ds-accent-ui);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .price-card{background:var(--ds-paper);border-color:var(--ds-line-strong);border-radius:var(--ds-radius);box-shadow:none;color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bar{background-image:none;color:var(--ds-on-accent)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-card{background:var(--ds-paper);border-color:var(--ds-line);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .price-box{background:var(--ds-paper);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-sidebar{background:var(--ds-paper);border-right-color:var(--ds-line)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .arbitrage-banner{background:var(--ds-accent-weak);border-left-color:var(--ds-accent-ui);color:var(--ds-accent-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-section-title{border-bottom-color:var(--ds-accent-ui);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .diag-prov-card{background:var(--ds-paper);border-color:var(--ds-line);border-radius:var(--ds-radius);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .diag-prov-card:hover{border:1px solid var(--ds-line);border-color:var(--ds-line);box-shadow:none;color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .note-card{background:var(--ds-paper);border-color:var(--ds-line);border-left-color:var(--ds-line-strong);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .study-type-card.selected{background:var(--ds-sunken);border-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .study-type-card .stc-appels{border-left-color:var(--ds-line);color:var(--ds-muted)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.conflict-warning, .deletion-warning){background:var(--ds-warning-bg);border-color:var(--ds-accent-ui);color:var(--ds-warning)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .soum-sub-card{background:var(--ds-sunken);border-left-color:var(--ds-line-strong);border-radius:var(--ds-radius)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dr-alert.success{background:var(--ds-success-bg);border-color:var(--ds-accent-ui);color:var(--ds-success)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dr-alert.error{background:var(--ds-danger-bg);border-color:var(--ds-accent-ui);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-section{background:var(--ds-paper);border-color:var(--ds-accent-ui);box-shadow:none}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-header{background:var(--ds-paper);border-bottom-color:var(--ds-accent-ui)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.user-badge.badge-platinum, .user-badge.badge-silver){background:var(--ds-paper);color:var(--ds-ink-soft)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .transp-etape-terrain{background:var(--ds-paper);border-color:var(--ds-line-strong);color:var(--ds-ink)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .transp-mention{background:var(--ds-sunken);border-left-color:var(--ds-accent-ui);color:var(--ds-danger)}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .transports-correction-note{background:var(--ds-sunken);border-color:var(--ds-line);border-left-color:var(--ds-line-strong)}


/* ===== _ds-charte-indicateurs.css (154 lignes) ===== */
/* =====================================================================
   _ds-charte-indicateurs.css — Charte graphique : l'indicateur (chiffre clé), IDENTIQUE partout
   ---------------------------------------------------------------------
   Un indicateur = un chiffre au-dessus de son libellé, sous un filet épais
   en encre, à plat (ni fond, ni carte, ni ombre, ni pastille de couleur).
   Les pages nomment leurs indicateurs de vingt façons (`.stat-box`,
   `.kpi-card`, `.stat-card`, `.illu-kpi-card`, `.stock-kpi`…) : la charte les
   traite comme UNE famille, sans toucher au balisage.

   Largeur : dans un groupe d'indicateurs (`.header-stats`, `.portfolio-stats`,
   `.plumes-hero-stats`, `.network-stats`), TOUTES les tuiles prennent la
   largeur de la plus large — une colonne de grille de taille `1fr` dans une
   grille aussi large que son contenu. Les grilles Bootstrap (`.row` de
   `.col-*` identiques) sont déjà égales et restent telles quelles.

   Le filet est une image de fond (et non une bordure) : les utilitaires
   Bootstrap `.border-0` et `.shadow-sm` sont `!important` et ne se battent
   pas, alors que `--bs-box-shadow-sm` et `--bs-bg-opacity` se neutralisent
   sur l'élément lui-même. Les jetons `--bs-*-rgb` ramenés à l'encre rendent
   `.text-primary`, `.text-success`… inoffensifs sur les valeurs.
   ===================================================================== */

/* ---- L'indicateur : filet en tête, à plat ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-box, .stat-card, .stats-card:has(> .stats-value), .agent-stat, .kpi-card, .illu-kpi-card, .illu-cmd-kpi, .illu-minikpi, .stock-kpi, .vente-kpi, .transp-kpi, .kpi-card-libraire, .plumes-hero-stat, .stat-mini-card, .tstats-card, .indicator, .evt-kpi-card, .lect-stat-card, .mq-kpi-card, .rep-kpi-card, .role-stat-card, .soum-stat-card, .stat-item:has(> .stat-value), .metric-card, [class$="-kpi"], [class*="-kpi "], [class$="kpi-card"], [class*="kpi-card "], [class$="stats-card"], [class*="stats-card "], [class$="-chiffre"], [class*="-chiffre "]):not(.ds-libre){
  background:transparent linear-gradient(var(--ds-ink), var(--ds-ink)) no-repeat top left / 100% 2px;
  --bs-bg-opacity:0;
  --bs-box-shadow:none;
  --bs-box-shadow-sm:none;
  --bs-box-shadow-lg:none;
  backdrop-filter:none;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:var(--ds-s3) 0 0;
  min-width:0;
  text-align:left;
  transform:none;
  transition:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-box, .stat-card, .stats-card:has(> .stats-value), .agent-stat, .kpi-card, .illu-kpi-card, .illu-cmd-kpi, .illu-minikpi, .stock-kpi, .vente-kpi, .transp-kpi, .kpi-card-libraire, .plumes-hero-stat, .stat-mini-card, .tstats-card, .indicator, .evt-kpi-card, .lect-stat-card, .mq-kpi-card, .rep-kpi-card, .role-stat-card, .soum-stat-card, .stat-item:has(> .stat-value), .metric-card, [class$="-kpi"], [class*="-kpi "], [class$="kpi-card"], [class*="kpi-card "], [class$="stats-card"], [class*="stats-card "], [class$="-chiffre"], [class*="-chiffre "]):not(.ds-libre):hover{
  transform:none;
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-box, .stat-card, .stats-card:has(> .stats-value), .agent-stat, .kpi-card, .illu-kpi-card, .illu-cmd-kpi, .illu-minikpi, .stock-kpi, .vente-kpi, .transp-kpi, .kpi-card-libraire, .plumes-hero-stat, .stat-mini-card, .tstats-card, .indicator, .evt-kpi-card, .lect-stat-card, .mq-kpi-card, .rep-kpi-card, .role-stat-card, .soum-stat-card, .stat-item:has(> .stat-value), .metric-card, [class$="-kpi"], [class*="-kpi "], [class$="kpi-card"], [class*="kpi-card "], [class$="stats-card"], [class*="stats-card "], [class$="-chiffre"], [class*="-chiffre "]).active:not(.ds-libre){
  background-image:linear-gradient(var(--ds-accent-ink), var(--ds-accent-ink));
}

/* ---- La valeur et le libellé ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-value, .stat-number, .stats-value, .kpi-value, .illu-kpi-value, .illu-cmd-kpi-value, .illu-minikpi-value, .stock-kpi__value, .vente-kpi__value, .transp-kpi-valeur, .stat-mini-value, .plumes-hero-stat-value, .tstats-val, .kpi-card__value, .indicator-value, .evt-kpi-value, .lect-stat-value, .mq-kpi-value, .rep-kpi-value, .role-stat-value, .soum-stat-number, .metric-value, [class*="kpi-value"], [class*="kpi__value"], [class*="kpi-valeur"], [class*="chiffre__valeur"], [class*="chiffre-valeur"], [class*="stat-num"], [class*="stats-value"]):not(.ds-libre){
  --bs-primary-rgb:23, 21, 31;
  --bs-secondary-rgb:23, 21, 31;
  --bs-success-rgb:23, 21, 31;
  --bs-info-rgb:23, 21, 31;
  --bs-warning-rgb:23, 21, 31;
  --bs-danger-rgb:23, 21, 31;
  color:var(--ds-ink);
  font-size:var(--ds-t-2xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:var(--ds-tracking-tight);
  line-height:var(--ds-lh-tight);
  font-variant-numeric:tabular-nums;
  text-align:left;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-label, .stats-label, .kpi-label, .illu-kpi-label, .illu-cmd-kpi-label, .illu-minikpi-label, .stock-kpi__label, .vente-kpi__label, .transp-kpi-libelle, .stat-mini-label, .plumes-hero-stat-label, .tstats-lib, .kpi-card__label, .indicator-label, .evt-kpi-label, .lect-stat-label, .mq-kpi-label, .rep-kpi-label, .role-stat-label, .soum-stat-label, .metric-label, [class*="kpi-label"], [class*="kpi__label"], [class*="kpi-libelle"], [class*="chiffre__libelle"], [class*="chiffre-libelle"], [class*="stats-label"]):not(.ds-libre){
  color:var(--ds-ink);
  opacity:1;
  text-align:left;
  font-size:var(--ds-t-md);
  font-weight:var(--ds-w-semi);
  letter-spacing:normal;
  text-transform:none;
}

/* ---- Le pictogramme éventuel : à nu, en encre ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.stat-icon, .kpi-icon, .stock-kpi__icon, .vente-kpi__icon, .kpi-card__icon, .evt-kpi-icon, .metric-icon, [class*="kpi-icon"], [class*="kpi__icon"]):not(.ds-libre):not(.ds-libre){
  width:auto;
  height:auto;
  padding:0;
  background:transparent;
  border-radius:0;
  color:var(--ds-ink);
  justify-content:flex-start;
  font-size:var(--ds-t-lg);
  margin-bottom:var(--ds-s2);
}

/* ---- Le groupe : toutes les tuiles à LA MÊME largeur, sur TOUTE l'application (demande du propriétaire du
   28/09/2026, Q49 : pas seulement égales entre elles au sein d'une page, mais identiques d'une page à l'autre).
   9rem mesuré le 28/09 sur un échantillon de pages réelles (mesure_indicateurs.js) : les largeurs naturelles
   allaient de 77px (profil, valeurs courtes) à 316px (stock, libellé "Références suivies") — 9rem (144px) est
   un compromis qui laisse les libellés longs passer sur deux lignes plutôt que d'imposer soit des tuiles vides
   soit des libellés tronqués. */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.header-stats, .portfolio-stats, .plumes-hero-stats, .network-stats > .row, .stats:has(> .stat-item > .stat-value), .radar-analysis-stats-grille):not(.ds-libre){
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:9rem;
  grid-template-columns:none;
  justify-content:start;
  width:fit-content;
  max-width:100%;
  gap:var(--ds-s6);
  flex-wrap:nowrap;
  border-top:0;
  padding-top:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card:not(.ds-libre){
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .indicator:not(.ds-libre){
  background-size:calc(100% - var(--ds-s4)) 2px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .indicator:last-child:not(.ds-libre){
  background-size:100% 2px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .indicator-trend:not(.ds-libre){
  color:var(--ds-ink-soft);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .trend-up:not(.ds-libre){
  color:var(--ds-success);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card .trend-down:not(.ds-libre){
  color:var(--ds-danger);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .stats-card:has(> .stats-value) > .stats-value:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .stats-card:has(> .stats-value) > .stats-label:not(.ds-libre){
  margin-left:calc(-1 * var(--ds-s4));
  margin-right:calc(-1 * var(--ds-s4));
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero-stats:not(.ds-libre){
  margin-left:auto;
  margin-right:auto;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-stats > .row:not(.ds-libre){
  --bs-gutter-x:0;
  --bs-gutter-y:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-stats > .row > [class*="col-"]:not(.ds-libre){
  width:auto;
  max-width:none;
  flex:none;
  padding:0;
  margin:0;
}
@media (max-width:640px) {
  :where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.header-stats, .portfolio-stats, .plumes-hero-stats, .network-stats > .row, .stats:has(> .stat-item > .stat-value), .radar-analysis-stats-grille):not(.ds-libre){
    grid-auto-flow:row;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:auto;
  }
}


/* ===== _ds-charte-pages-auto.css (377 lignes) ===== */
/* =====================================================================
   _ds-charte-pages-auto.css — GÉNÉRÉ par _dev/scripts/generer_charte_pages_auto.php, ne pas éditer à la main
   ---------------------------------------------------------------------
   Les surfaces « colorées à texte clair » du CSS des pages (bannières à dégradé, tuiles d'action, boutons
   pleins, en-têtes de modales) sont repérées dans les feuilles et les blocs <style> des pages, puis ramenées
   à la charte : bannière à plat à filet épais, tuile papier à filet, bouton plein en encre d'accent. Chaque
   sélecteur est celui de la page (même spécificité), sous la garde du palier composition ; les descendants à
   texte clair passent en encre. Régénérer après une migration de page.
   ===================================================================== */

:where(body:has(#ds-root[data-ds-charte~="composition"])) #modalAjoutOuvrage .modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #previewModal .modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #subscriptionModal .modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .agent-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .analytics-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .arg-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .biblio-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bnf-analyse-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-month-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-week-day-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cgv-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .chap-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .contact-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dash-panel-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .docs-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .edit-service-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fiche-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fichiers-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .hobby-modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .legal-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .lieux-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .marketplace-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .modal-competence .modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .modal-docs-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .modal-header-custom,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partner-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pay-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pdv-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .perso-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pestel-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pitch-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .podcast-modal .modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .privacy-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pub-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendations-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .report-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rgpd-hero,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sell-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .services-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .share-modal-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .survey-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tempo-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .verify-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-hero-fallback{
  background:transparent;
  background-image:none;
  color:var(--ds-ink);
  border-color:transparent;
  border-top:var(--ds-rule);
  border-radius:0;
  box-shadow:none;
  padding-left:0;
  padding-right:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.analytics,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.buy,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.create,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.discover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.given,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.my-offers,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.received,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.recommend,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.sell,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.stats,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .balance-display,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .competence-stats-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-date-box,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .hobby-stats-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pilotage-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-option.selected .quiz-checkbox{
  background:var(--ds-paper);
  background-image:none;
  color:var(--ds-ink);
  border:1px solid var(--ds-line-strong);
  box-shadow:none;
  text-decoration:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-banner .btn-primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-action,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-add-offer,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-add-recommendation,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-auth,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-create-event,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-create-formation,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-create-service,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-enroll.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-generate,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-primary-large,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-save-search,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-sp-write,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-submit,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-template,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-sub-tab.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .category-chip.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .comite-filter-pill.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .copy-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-cta,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tab.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formation-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-search-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-tab.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .modal-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .modal-btn.submit,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pay-btn-primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-btn-primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-filter.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pod-list-play,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pod-play-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-start-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-submit-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-modal-footer .btn-next,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-modal-footer .btn-submit,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendation-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .role-chip-compact.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .role-chip.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rss-tab.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .service-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-btn-complete,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-btn-quiz,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-review-submit,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .share-btn.livreconnect,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sp-filter.is-active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .survey-submit-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .toggle-btn.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-chip.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .voltr-rl-btn-primary{
  background:var(--ds-accent-ink);
  background-image:none;
  color:var(--ds-on-accent);
  border-color:var(--ds-accent-ink);
  box-shadow:none;
  text-decoration:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-banner .btn-primary:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-contact:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-dashboard:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-generate:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-load-more:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-participate:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-primary-large:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-primary:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-template:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sl-voltr-btn:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .voltr-rl-btn-primary:hover{
  background:var(--ds-accent-ink);
  background-image:none;
  color:var(--ds-on-accent);
  border-color:var(--ds-accent-ink);
  box-shadow:none;
  text-decoration:none;
  filter:brightness(.92);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tool-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .voltr-action-btn:hover{
  background:var(--ds-paper);
  background-image:none;
  border-color:var(--ds-ink);
  box-shadow:none;
  transform:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .billing-page-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bstats-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cm-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .content-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cstats-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .detail-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ebib-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .estats-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formation-page,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .marketplace-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mstats-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mxp-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nvp-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pedago-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-page,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .presse-page,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pub-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rcli-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rcmd-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendations-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rfic-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rmai-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rstats-wrap,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .services-container,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-wrapper{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .agent-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .agent-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .agent-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .analytics-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .analytics-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .analytics-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .arg-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .arg-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .arg-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .biblio-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .biblio-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .biblio-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bnf-analyse-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bnf-analyse-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bnf-analyse-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-month-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-month-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-month-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-week-day-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-week-day-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cal-week-day-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cgv-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cgv-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .cgv-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .chap-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .chap-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .chap-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ck-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .contact-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .contact-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .contact-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dash-panel-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dash-panel-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .dash-panel-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .docs-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .docs-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .docs-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .edit-service-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .edit-service-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .edit-service-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .editor-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .etude-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fiche-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fiche-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fiche-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fichiers-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fichiers-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .fichiers-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .legal-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .legal-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .legal-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .lieux-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .lieux-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .lieux-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .marketplace-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .marketplace-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .marketplace-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partner-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partner-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .partner-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pay-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pay-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pay-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pdv-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pdv-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pdv-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .perso-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .perso-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .perso-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pestel-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pestel-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pestel-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pitch-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pitch-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pitch-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .privacy-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .privacy-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .privacy-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pub-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pub-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pub-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quiz-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendations-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendations-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .recommendations-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .report-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .report-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .report-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rgpd-hero h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rgpd-hero .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rgpd-hero .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sell-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sell-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sell-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .services-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .services-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .services-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .survey-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .survey-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .survey-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tempo-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tempo-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .tempo-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .verify-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .verify-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .verify-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-hero-fallback h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-hero-fallback .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .vitrine-hero-fallback .d-flex.justify-content-between:has(> :first-child h1){
  border-top:0;
  padding-top:0;
  margin-top:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .bnf-analyse-header .bnf-criteria-chip{
  background:transparent;
  backdrop-filter:none;
  border-radius:0;
  border:0;
  border-top:1px solid var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pestel-header .btn-pestel:hover{
  background:transparent;
  backdrop-filter:none;
  border-radius:0;
  border:0;
  border-top:1px solid var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner .sf-cert-link{
  color:var(--ds-ink);
  background:transparent;
  backdrop-filter:none;
  border-radius:0;
  border:0;
  border-top:1px solid var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sf-completion-banner .sf-cert-link:hover{
  background:transparent;
  backdrop-filter:none;
  border-radius:0;
  border:0;
  border-top:1px solid var(--ds-ink);
}


/* ===== _ds-charte-pages.css (475 lignes) ===== */
/* =====================================================================
   _ds-charte-pages.css — Charte graphique, palier « composition » : les pages
   ---------------------------------------------------------------------
   Les pages de l'application n'utilisent presque pas les composants Bootstrap
   nus : chacune porte SES classes (bannière `.network-header`, tuile
   `.stat-card`, carte `.user-card`, boutons `.action-btn`…), avec ses
   dégradés, ses ombres et ses effets de survol. Les paliers atomes et
   structures ne les atteignent donc pas. Ce fichier ramène ces motifs
   récurrents au langage de la charte, SANS toucher au balisage ni aux
   feuilles des pages :

   - bannière de page : à plat, filet épais en tête, titre encre (plus de
     dégradé violet ni de bloc coloré) ;
   - tuiles de chiffres : à plat, filet épais en tête, valeur en encre ;
   - onglets : texte seul, soulignement encre ;
   - cartes : papier, filet 1 px, rayon 12, AUCUNE ombre ni décalage au survol ;
   - boutons maison : secondaire à filet fonctionnel, principal en encre d'accent.

   Chaque sélecteur porte sa garde. Les classes sont celles des pages, une par
   une : quand une page est migrée vers les composants `ds-*`, ses lignes
   disparaissent d'ici. Les couleurs sont des jetons ; le rôle donne l'accent.
   ===================================================================== */

/* ---- Bannières de page ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-header{
  background:transparent;
  background-image:none;
  color:var(--ds-ink);
  border:0;
  border-top:var(--ds-rule);
  border-radius:0;
  box-shadow:none;
  padding:20px 0 0;
  text-align:left;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-header h1{
  color:var(--ds-ink);
  font-size:var(--ds-t-2xl);
  font-weight:var(--ds-w-bold);
  letter-spacing:var(--ds-tracking-tight);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header p,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header p,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header p,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header p,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-header p{
  color:var(--ds-ink-soft);
  opacity:1;
  font-size:var(--ds-t-base);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-header a{
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons{
  justify-content:flex-start;
}

/* ---- Marketplace « Les rayons » (mk-*, feuilles non modifiées) : mêmes 1200 px et mêmes gouttières de 16 px que le reste ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-headrow,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-fiche,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-search,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-tabs,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-filtres,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-layout,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-footer,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-fiche-back{
  max-width:1200px;
  padding-left:var(--ds-s4);
  padding-right:var(--ds-s4);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-headrow{
  padding-top:0;
  background-image:linear-gradient(var(--ds-ink), var(--ds-ink));
  background-repeat:no-repeat;
  background-position:var(--ds-s4) 0;
  background-size:calc(100% - 32px) 2px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-tabs{
  border-bottom:0;
  background-image:linear-gradient(var(--ds-line), var(--ds-line));
  background-repeat:no-repeat;
  background-position:var(--ds-s4) 100%;
  background-size:calc(100% - 32px) 1px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-title{
  font-size:var(--ds-t-2xl);
  border-top:0;
  padding-top:var(--ds-s5);
  margin-top:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .mk-experience .mk-rh-sub{
  font-size:var(--ds-t-base);
}

/* ---- Le Radar : la colonne de lecture (9/12 d'un container-fluid) prend la largeur de référence ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .container-fluid:has(.radar-wordmark){
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--ds-s4);
  padding-right:var(--ds-s4);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .container-fluid:has(.radar-wordmark) > .row > [class*="col-"]{
  flex:0 0 auto;
  width:100%;
  max-width:100%;
}
/* ---- Le titre d'une bannière ne porte pas un second filet ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .events-header h1,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header .d-flex:has(> h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resources-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-header .d-flex.justify-content-between:has(> :first-child h1),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formations-header .d-flex.justify-content-between:has(> :first-child h1){
  border-top:0;
  padding-top:0;
  margin-top:0;
}

/* ---- Boutons de bannière : secondaire à filet, le bouton actif en encre d'accent ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn-uniform{
  background:var(--ds-paper);
  border:1px solid var(--ds-line-strong);
  color:var(--ds-ink);
  font-size:var(--ds-t-md);
  font-weight:var(--ds-w-semi);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn-uniform:hover{
  background:var(--ds-paper);
  border-color:var(--ds-ink);
  color:var(--ds-ink);
  transform:none;
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn-success,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .header-buttons .btn-primary{
  background:var(--ds-accent-ink);
  border-color:var(--ds-accent-ink);
  color:var(--ds-on-accent);
}

/* ---- Onglets : texte seul, soulignement encre ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-tabs{
  border-bottom:1px solid var(--ds-line);
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-tabs .nav-link{
  min-height:48px;
  padding:0;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  background:transparent;
  color:var(--ds-ink-soft);
  font-size:var(--ds-t-lg);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-tabs .nav-link:hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-tabs .nav-link.active{
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-sort-tabs{
  background:transparent;
  border-radius:0;
  border-bottom:1px solid var(--ds-line);
  box-shadow:none;
  gap:24px;
  overflow:visible;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sort-tab{
  min-height:44px;
  padding:0;
  background:transparent;
  border-bottom:2px solid transparent;
  color:var(--ds-ink-soft);
  font-size:var(--ds-t-md);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sort-tab:hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sort-tab.active{
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
}

/* ---- Cartes : papier, filet 1 px, rayon 12, ni ombre ni décalage au survol ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .user-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .category-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resource-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-category,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nt-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-section,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-card,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-card-list,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-card{
  background:var(--ds-paper);
  border:1px solid var(--ds-line);
  border-radius:var(--ds-r-md);
  box-shadow:none;
  animation:none;
  transition:border-color var(--ds-dur-fast) var(--ds-ease);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .user-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .category-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resource-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-category:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nt-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-card:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-card-list:hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-card:hover{
  transform:none;
  box-shadow:none;
  border-color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .user-card::before,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-section::before{
  display:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .category-card.active{
  border:2px solid var(--ds-ink);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-viz-header:hover{
  background:transparent;
  border-bottom:1px solid var(--ds-line);
}

/* ---- Boutons maison ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.upload,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.organize,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn.search{
  background:var(--ds-paper);
  background-image:none;
  border:1px solid var(--ds-line-strong);
  color:var(--ds-ink);
  box-shadow:none;
  transition:border-color var(--ds-dur-fast) var(--ds-ease);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn:hover{
  transform:none;
  box-shadow:none;
  border-color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .action-btn i{
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resource-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .view-btn{
  background:var(--ds-paper);
  border:1px solid var(--ds-line-strong);
  border-radius:var(--ds-radius-control);
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resource-btn:hover{
  border-color:var(--ds-ink);
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .resource-btn.primary,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .view-btn.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .empty-state-btn,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .page-link.active{
  background:var(--ds-accent-ink);
  background-image:none;
  border-color:var(--ds-accent-ink);
  color:var(--ds-on-accent);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .empty-state-btn{
  border-radius:var(--ds-radius-control);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .btn-upload-float{
  background:var(--ds-accent-ink);
  background-image:none;
  box-shadow:var(--ds-e2);
}

/* ---- Champs de recherche des pages ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-search input,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .search-box .search-input,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-select{
  min-height:var(--ds-control-h);
  border:1px solid var(--ds-line-strong);
  border-radius:var(--ds-radius-control);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .forum-view-toggle{
  border-radius:var(--ds-radius-control);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-search-section .input-group{
  border-radius:var(--ds-radius-control);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .network-search-section .input-group-text{
  background:var(--ds-paper);
  border-color:var(--ds-line-strong);
}

/* ---- Fil d'actualités : en-têtes de widgets latéraux à plat ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-lectures-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-sidebar-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sp-widget-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pod-widget-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .evt-widget-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nws-widget-header,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rss-widget-header{
  background:transparent;
  background-image:none;
  color:var(--ds-ink);
  border-top:var(--ds-rule);
  border-bottom:1px solid var(--ds-line);
  border-radius:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-lectures-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-sidebar-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sp-widget-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pod-widget-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .evt-widget-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nws-widget-title,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rss-widget-title{
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .pod-widget-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .evt-widget-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nws-widget-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .rss-widget-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .reco-lectures-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ad-sidebar-header a,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .sp-widget-header a{
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .widget-collapse-toggle,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .widget-collapse-toggle:hover{
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .feed-composer-pill{
  border-radius:var(--ds-radius-control);
  border:1px solid var(--ds-line-strong);
}

/* ---- Mes événements : onglets de filtre en texte souligné, repli des catégories et section sans carte ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tabs{
  background:transparent;
  padding:0;
  border-radius:0;
  border-bottom:1px solid var(--ds-line);
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tab{
  flex:none;
  min-height:48px;
  padding:0;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  box-shadow:none;
  color:var(--ds-ink-soft);
  font-size:var(--ds-t-lg);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tab:hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tab.active,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .filter-tab.active:hover{
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .types-disclosure summary{
  padding-left:0;
  padding-right:0;
  background:transparent;
  border:0;
  border-top:1px solid var(--ds-line);
  border-bottom:1px solid var(--ds-line);
  border-radius:0;
  color:var(--ds-ink);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .types-disclosure summary:hover{
  background:transparent;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .types-disclosure[open] summary{
  border-bottom-color:var(--ds-line);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .types-disclosure-active{
  background:transparent;
  border:1px solid var(--ds-line-strong);
  border-radius:0;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .types-grid{
  background:transparent;
  border:0;
  border-bottom:1px solid var(--ds-line);
  border-radius:0;
  padding-left:0;
  padding-right:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-card.active{
  border-color:var(--ds-ink);
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .content-section{
  background:transparent;
  border-radius:0;
  box-shadow:none;
  padding-left:0;
  padding-right:0;
}

/* ---- Fil d'actualités : l'en-tête d'une publication, bas, sous le même filet épais que les cartes latérales ----
   L'avatar est forcé à 80 px par bundle-base.css (`.card .rounded-circle`, width/height/min/max en !important) : seule
   la propriété `zoom` (0,6 → 48 px) le réduit sans !important. */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-card{
  border:1px solid var(--ds-line);
  border-radius:var(--ds-r-md);
  --bs-box-shadow-sm:none;
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-card:hover{
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-header{
  background:transparent;
  border-top:var(--ds-rule);
  border-bottom:1px solid var(--ds-line);
  border-radius:0;
  padding:var(--ds-s2) var(--ds-s4);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-header img.rounded-circle{
  zoom:0.6;
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-header .flex-grow-1{
  padding-left:var(--ds-s3);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .publication-header + .publication-separator{
  display:none;
}


/* ===== _ds-charte-apps.css (362 lignes) ===== */
/* =====================================================================
   _ds-charte-apps.css — Charte graphique : les pages « Mes apps », cartes calquées sur celles de la Marketplace
   ---------------------------------------------------------------------
   Pages : Mes ressources, Mes plumes, Mes recommandations, Mes événements, Mes formations, Mes services, Mes achats,
   Mes ventes, Vidéothèque, Documents, Rapport hebdo, Mes tâches, Mes contrats.

   Modèle : la carte de la Marketplace (.mk-card, mk-base.css) — papier, filet 1 px, rayon 12, sans ombre ; une
   couverture teintée à l'accent du rôle (pas une couleur par catégorie) ; un corps ; un pied ; les actions sont des
   boutons à filet (.mk-btn-sec), l'étiquette de catégorie est en encre d'accent, le statut est une pastille d'encre.
   Les couleurs en dur de ces pages sont ramenées aux jetons par _ds-charte-couleurs.css (généré) ; ce fichier-ci
   pose la STRUCTURE commune et les cas que la génération ne peut pas atteindre.

   Fonds posés EN LIGNE par les pages (style="background: <couleur de la catégorie>") : impossibles à battre sans
   !important, que la charte n'admet pas. Un pseudo-élément opaque, empilé AU-DESSUS du fond de l'élément et
   SOUS son contenu (z-index:-1 dans un contexte d'empilement propre), le recouvre.
   ===================================================================== */

/* ---- Largeur : les pages « Mes apps » sur les 1200 px de référence, comme le reste de l'application ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .container-fluid.ds-app-page:not(.ds-libre){
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--ds-s4);
  padding-right:var(--ds-s4);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .container-fluid.ds-app-page:not(.ds-libre) > .row > [class*="col-"]{
  flex:0 0 auto;
  width:100%;
  max-width:100%;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ventes-page:not(.ds-libre){
  max-width:1200px;
}

/* ---- Cartes de contenu : .mk-card ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-card, .category-card, .type-card, .event-card, .event-card-list, .formation-card, .service-card, .certificate-card, .badge-card, .video-card, .document-card, .engagement-card):not(.ds-libre){
  background:var(--ds-paper);
  border:1px solid var(--ds-line);
  border-radius:var(--ds-radius);
  box-shadow:none;
  overflow:hidden;
  transform:none;
  transition:border-color var(--ds-dur-fast) var(--ds-ease);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-card, .category-card, .type-card, .event-card, .event-card-list, .formation-card, .service-card, .certificate-card, .badge-card, .video-card, .document-card, .engagement-card):not(.ds-libre):hover{
  transform:none;
  box-shadow:none;
  border-color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .card:not(.ds-libre){
  --bs-box-shadow-sm:none;
  box-shadow:none;
  border:1px solid var(--ds-line);
  border-radius:var(--ds-radius);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .card > .card-header:not(.ds-libre){
  background:transparent;
  border-bottom:1px solid var(--ds-line);
}

/* ---- Fonds en ligne : pastille, carré d'icône, étiquette de catégorie -> teinte d'accent léger ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.category-icon, .type-icon, .formation-category, .service-category, .video-card-category-badge, .document-card .badge, .stat-card-icon):not(.ds-libre){
  isolation:isolate;
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.category-icon, .type-icon, .formation-category, .service-category, .video-card-category-badge, .document-card .badge, .stat-card-icon):not(.ds-libre)::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:var(--ds-accent-weak);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.category-icon, .type-icon, .formation-category, .service-category, .document-card .badge, .stat-card-icon):not(.ds-libre){
  position:relative;
}
/* les carrés d'icône de catégorie : rayon de contrôle, comme l'avatar de la Marketplace */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .category-icon:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .type-icon:not(.ds-libre){
  border-radius:var(--ds-radius-control);
}

/* ---- Statut : pastille d'encre, comme .mk-badge ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-badge, .formation-badge, .service-badge):not(.ds-libre){
  isolation:isolate;
  color:var(--ds-on-accent);
  border-radius:var(--ds-r-xs);
  font-size:.6875rem;
  font-weight:var(--ds-w-bold);
  letter-spacing:.06em;
  text-transform:uppercase;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-badge, .formation-badge, .service-badge):not(.ds-libre)::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:var(--ds-ink);
}

/* ---- Couvertures (dégradé de catégorie posé en ligne) : teinte d'accent léger, icône en encre d'accent ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-preview[style*="gradient"], .event-banner[style*="gradient"], .formation-thumbnail[style*="gradient"], .service-thumbnail[style*="gradient"]):not(.ds-libre){
  isolation:isolate;
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-preview[style*="gradient"], .event-banner[style*="gradient"], .formation-thumbnail[style*="gradient"], .service-thumbnail[style*="gradient"]):not(.ds-libre)::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--ds-accent-weak);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-preview[style*="gradient"], .event-banner[style*="gradient"], .formation-thumbnail[style*="gradient"], .service-thumbnail[style*="gradient"]):not(.ds-libre) i,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-preview[style*="gradient"], .event-banner[style*="gradient"], .formation-thumbnail[style*="gradient"], .service-thumbnail[style*="gradient"]):not(.ds-libre) .fas,
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-preview[style*="gradient"], .event-banner[style*="gradient"], .formation-thumbnail[style*="gradient"], .service-thumbnail[style*="gradient"]):not(.ds-libre) .far{
  color:var(--ds-accent-ink);
}

/* ---- Onglets : texte souligné, comme .network-tabs (fini les pilules pleines et la carte blanche à onglets) ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-videos:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-documents:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-tabs:not(.ds-libre){
  background:transparent;
  box-shadow:none;
  padding:0;
  border-radius:0;
  border-bottom:1px solid var(--ds-line);
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-videos .nav-link:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-documents .nav-link:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-tab:not(.ds-libre){
  flex:none;
  min-height:48px;
  padding:0;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  box-shadow:none;
  color:var(--ds-ink-soft);
  font-size:var(--ds-t-md);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-videos .nav-link:not(.ds-libre):hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-documents .nav-link:not(.ds-libre):hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-tab:not(.ds-libre):hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-videos .nav-link.active:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills-documents .nav-link.active:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .main-tab.active:not(.ds-libre){
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
}

/* ---- Onglets Bootstrap « nav-pills » : texte souligné partout, sauf le menu vertical ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills:not(.flex-column):not(.ds-libre){
  border-bottom:1px solid var(--ds-line);
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills:not(.flex-column) .nav-link:not(.ds-libre){
  padding:0;
  min-height:44px;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  color:var(--ds-ink-soft);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills:not(.flex-column) .nav-link:not(.ds-libre):hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills:not(.flex-column) .nav-link.active:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .nav-pills:not(.flex-column) .show > .nav-link:not(.ds-libre){
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
}
/* ---- Actions d'une carte : boutons à filet (.mk-btn-sec), jamais un aplat rouge ou vert par carte ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-btn, .resource-btn.primary, .formation-btn, .formation-btn.primary, .formation-btn.secondary, .certificate-btn, .certificate-btn.primary, .certificate-btn.secondary, .service-btn, .service-btn.primary, .event-btn, .event-btn.primary, .video-card-footer .btn, .document-card .btn):not(.ds-libre){
  background:var(--ds-paper);
  background-image:none;
  border:1px solid var(--ds-line-strong);
  border-radius:var(--ds-radius-control);
  box-shadow:none;
  color:var(--ds-ink);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-btn, .resource-btn.primary, .formation-btn, .formation-btn.primary, .formation-btn.secondary, .certificate-btn, .certificate-btn.primary, .certificate-btn.secondary, .service-btn, .service-btn.primary, .event-btn, .event-btn.primary, .video-card-footer .btn, .document-card .btn):not(.ds-libre):hover{
  background:var(--ds-paper);
  border-color:var(--ds-accent-ui);
  color:var(--ds-ink);
  transform:none;
  box-shadow:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-btn, .resource-btn.primary, .formation-btn, .formation-btn.primary, .formation-btn.secondary, .certificate-btn, .certificate-btn.primary, .certificate-btn.secondary, .service-btn, .service-btn.primary, .event-btn, .event-btn.primary, .video-card-footer .btn, .document-card .btn):not(.ds-libre):disabled{
  background:var(--ds-sunken);
  border-color:var(--ds-line);
  color:var(--ds-muted);
  cursor:not-allowed;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) :is(.resource-btn.danger):not(.ds-libre):hover{
  border-color:var(--ds-danger);
  color:var(--ds-danger);
}

/* ---- Icônes de titre et de carte : en encre, jamais le bleu / vert / rouge d'un utilitaire ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .ds-app-page :is(h1, h2, h3, h4, h5, h6, .section-title, .document-card, .video-card) :is(i, .fas, .far):not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .document-card-icon:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-icon:not(.ds-libre){
  --bs-primary-rgb:23, 21, 31;
  --bs-secondary-rgb:23, 21, 31;
  --bs-success-rgb:23, 21, 31;
  --bs-info-rgb:23, 21, 31;
  --bs-warning-rgb:23, 21, 31;
  --bs-danger-rgb:23, 21, 31;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .document-card-icon:not(.ds-libre){
  background:var(--ds-accent-weak);
  border-radius:var(--ds-radius-control);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .document-card-icon:not(.ds-libre) :is(i, .fas, .far, .fa-file-word, .fa-file-pdf, .fa-file-excel){
  color:var(--ds-ink-soft);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .document-card--coming-soon:not(.ds-libre){
  border-style:dashed;
  background:var(--ds-sunken);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .document-card--coming-soon .btn:not(.ds-libre){
  background:var(--ds-sunken);
  color:var(--ds-muted);
}

/* ---- Sections qui étaient des cartes blanches ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .achievements-section:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) .content-section:not(.ds-libre){
  background:transparent;
  border-radius:0;
  box-shadow:none;
  padding-left:0;
  padding-right:0;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .toggle-btn:not(.ds-libre){
  background:var(--ds-paper);
  border:1px solid var(--ds-line-strong);
  border-radius:var(--ds-radius-control);
  box-shadow:none;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .toggle-btn.active:not(.ds-libre){
  background:var(--ds-ink);
  border-color:var(--ds-ink);
  color:var(--ds-on-accent);
}

/* ---- Formations : certificats, prix, badges ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-card:not(.ds-libre)::before{
  display:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-card:not(.ds-libre){
  padding:var(--ds-s5);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-icon:not(.ds-libre){
  background:var(--ds-accent-weak);
  color:var(--ds-accent-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .formation-price:not(.ds-libre){
  background:var(--ds-paper);
  border:1px solid var(--ds-line);
  border-radius:var(--ds-r-xs);
  box-shadow:none;
  color:var(--ds-ink);
}

/* ---- Rapport hebdo : les métriques sont des indicateurs (filet, chiffre, libellé) ; le score d'engagement une carte ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-card:not(.ds-libre)::before{
  display:none;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-trend:not(.ds-libre){
  border-radius:var(--ds-r-xs);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-trend.trend-up:not(.ds-libre){
  background:var(--ds-success-bg);
  color:var(--ds-success);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-trend.trend-down:not(.ds-libre){
  background:var(--ds-danger-bg);
  color:var(--ds-danger);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .metric-trend.trend-stable:not(.ds-libre){
  background:var(--ds-sunken);
  color:var(--ds-muted);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .engagement-card:not(.ds-libre) .engagement-icon,
:where(body:has(#ds-root[data-ds-charte~="composition"])) .engagement-card:not(.ds-libre) .engagement-level{
  color:var(--ds-ink);
}

/* ---- Événements : date et catégorie sur la couverture ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .event-category-chip:not(.ds-libre){
  color:var(--ds-accent-ink);
  font-weight:var(--ds-w-bold);
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* ---- Icône du titre de page : en encre, jamais le bleu d'un utilitaire ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) h1 :is(i, .fas, .far):not(.ds-libre){
  --bs-primary-rgb:23, 21, 31;
  --bs-secondary-rgb:23, 21, 31;
  --bs-success-rgb:23, 21, 31;
  --bs-info-rgb:23, 21, 31;
  --bs-warning-rgb:23, 21, 31;
  --bs-danger-rgb:23, 21, 31;
  color:var(--ds-ink);
}

/* ---- Filtres de l'historique des Plumes et de Mes tâches : texte souligné, comme les onglets ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-filters:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #filtreBar:not(.ds-libre){
  border-bottom:1px solid var(--ds-line);
  gap:32px;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-filter:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #filtreBar .btn:not(.ds-libre){
  min-height:44px;
  padding:0;
  background:transparent;
  border:0;
  border-bottom:2px solid transparent;
  border-radius:0;
  box-shadow:none;
  color:var(--ds-ink-soft);
  font-weight:var(--ds-w-semi);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-filter:not(.ds-libre):hover,
:where(body:has(#ds-root[data-ds-charte~="composition"])) #filtreBar .btn:not(.ds-libre):hover{
  background:transparent;
  color:var(--ds-ink);
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .plumes-history-filter.active:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #filtreBar .btn.active:not(.ds-libre),
:where(body:has(#ds-root[data-ds-charte~="composition"])) #filtreBar .btn.btn-primary:not(.ds-libre){
  background:transparent;
  color:var(--ds-ink);
  border-bottom-color:var(--ds-ink);
}

/* ---- Les trois tuiles d'action d'une page ont la même hauteur ---- */
:where(body:has(#ds-root[data-ds-charte~="composition"])) .quick-actions:not(.ds-libre){
  align-items:stretch;
}
:where(body:has(#ds-root[data-ds-charte~="composition"])) .certificate-icon:not(.ds-libre){
  box-shadow:none;
}

