/* Le nouveau rapport de marque et de groupe (dossier/42-VISUELS-ET-RAPPORTS.md § 1.2, § 1.3 et § 2, lot F, 13/11/2026) :
   les pages gardent `.rp-page` (16:9, règles d'impression de rapport.css : 1 440 × 810, sans marge, 16 px) et prennent
   l'habillage `.rd-*` d'ici, dans le langage du rapport Chaussea : couverture nuit, pages papier, grille nette, grands
   chiffres maigres (Inter 200), filets fins, surtitres en JetBrains Mono capitales espacées, accent en Instrument Serif
   italique. Toutes les tailles sont en em : à l'écran la page suit la largeur de son cadre (rapport.css), à l'impression
   1 em vaut 16 px ; les figures SVG (1 312 de large, js/rapport-document.js) prennent la largeur du corps et se réduisent
   avec elle. Rien ne s'anime : la page s'imprime telle qu'elle se lit. Chaque page tient dans son cadre : les blocs
   variables (titres, listes, noms) sont coupés à leur place, jamais posés hors de la page. */

/* Instrument Serif italique : l'accent des titres du document seulement (§ 6, décision 5 : l'interface reste en Inter). */
@font-face {
  font-family: "Instrument Serif";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/instrument-serif-italic-latin.woff2") format("woff2");
}

.rp-page.rd {
  /* Les couleurs du Chaussea qui manquent aux `--rp-*` (rapport.css) : la nuit, le lavis bleu, le panneau, le bleu
     profond d'un petit texte sur lavis, la hausse (5,3:1 sur papier) et la baisse (5,6:1). */
  --rd-nuit: #0A1628; --rd-lavis: #EEF3FF; --rd-panneau: #F6F8FB; --rd-bleu-fonce: #0B4FE0; --rd-gris-barre: #A9B3C4;
  --rd-hausse: #0E7A4F; --rd-hausse-lavis: #E8F5EE; --rd-baisse: #B4451F; --rd-baisse-lavis: #FBEFEA;
  --rd-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --rd-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
  display: flex; flex-direction: column; padding: 2.25em 4em 1.75em; line-height: 1.45;
  font-variant-numeric: tabular-nums;
}
.rp-page.rd > * { flex: none; }

/* --- L'en-tête et le pied ------------------------------------------------------------------------------------------- */
.rd-tete { display: flex; align-items: center; justify-content: space-between; gap: 2em; padding-bottom: 0.85em; margin-bottom: 1.4em; border-bottom: 1px solid var(--rp-trait); }
.rd-signature { display: inline-flex; align-items: center; gap: 0.4em; font-size: 0.95em; font-weight: 600; letter-spacing: -0.012em; color: var(--rp-encre); }
.rd-signature-marque { display: inline-flex; width: 1.3em; height: 1.3em; }
.rd-signature-marque svg { display: block; width: 100%; height: 100%; }
.rd-faisceau { fill: var(--rp-bleu); }
.rd-repere, .rd-pied, .rd-kicker, .rd-bloc-titre, .rd-marche-mono, .rd-puce, .rd-tampon, .rd-fiche-releve, .rd-tableau th, .rd-bandeau dt, .rd-cartes-reste {
  font-family: var(--rd-mono); text-transform: uppercase; font-variant-numeric: normal;
}
.rd-repere { font-size: 0.62em; letter-spacing: 0.16em; color: var(--rp-encre-3); white-space: nowrap; }
.rp-page.rd > .rd-corps { flex: 1 1 auto; display: flex; flex-direction: column; gap: 1.15em; min-height: 0; }
.rd-pied {
  display: flex; align-items: center; justify-content: space-between; gap: 2em; margin-top: 1em; padding-top: 0.75em;
  border-top: 1px solid var(--rp-trait); font-size: 0.58em; letter-spacing: 0.1em; color: var(--rp-encre-3);
}
.rd-pied-gauche { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-pied-droite { display: inline-flex; align-items: center; gap: 1.2em; flex: none; white-space: nowrap; }
.rd-exemple {
  display: inline-block; padding: 0.15em 0.6em; border: 1px solid var(--rd-baisse); border-radius: 3px;
  font-family: var(--rd-mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--rd-baisse);
}

/* --- Titres et textes ------------------------------------------------------------------------------------------------ */
.rd-entete { display: grid; gap: 0.5em; }
.rd-kicker { font-size: 0.66em; letter-spacing: 0.16em; color: var(--rp-bleu-texte); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-titre {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: 2.3em; font-weight: 300; line-height: 1.12; letter-spacing: -0.022em; text-wrap: balance;
}
.rd-accent { font-family: var(--rd-serif); font-style: italic; font-weight: 400; font-size: 1.12em; letter-spacing: -0.005em; color: var(--rp-bleu); }
.rd-chapeau { max-width: 62em; font-size: 0.98em; color: var(--rp-encre-2); }
.rd-texte { font-size: 0.86em; color: var(--rp-encre-2); }
.rd-note { font-size: 0.8em; color: var(--rp-encre-3); }
.rd-bloc-titre { margin-bottom: 0.85em; font-size: 0.62em; letter-spacing: 0.14em; color: var(--rp-encre-3); }
.rd-lecture { display: grid; flex: none; gap: 0.3em; }
.rd-corps > .rd-entete, .rd-corps > .rd-trio, .rd-corps > .rd-enseignements { flex: none; }
.rd-lecture p:first-child { max-width: 72em; font-size: 0.95em; color: var(--rp-encre-2); }
.rd-coupe { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-num { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }

/* Les figures : le SVG nu d'un visuel (1 312 de large), à la largeur du corps. */
/* La figure garde son rapport (largeur du corps) ; si la page manque de place (un titre sur deux lignes, des noms très
   longs), elle se réduit plutôt que de pousser le pied hors de la page : le SVG garde ses proportions, centré. */
.rd-figure { flex: 0 1 auto; width: 100%; min-height: 0; margin: 0; aspect-ratio: var(--ratio); }
.rd-figure > svg { display: block; width: 100%; height: 100%; }

/* --- Les logos (des disques, comme dans l'application) ---------------------------------------------------------------- */
.rd-logo {
  position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box;
  width: 2em; height: 2em; overflow: hidden; vertical-align: middle; border: 1px solid var(--rp-trait); border-radius: 50%;
  background: hsl(var(--teinte, 218) 42% 93%); color: hsl(var(--teinte, 218) 45% 26%);
}
.rd-logo::before { content: attr(data-initiales); font-size: 0.62em; font-weight: 600; line-height: 1; letter-spacing: 0.02em; }
.rd-logo.rd-moi { border-color: transparent; background: var(--rp-bleu-texte); color: #FFFFFF; }
.rd-logo-image, .rd-logo-image.rd-moi { border-color: var(--rp-trait); background: #FFFFFF; }
.rd-logo-image.rd-moi { border-color: var(--rp-bleu); }
.rd-logo-image::before, .rd-logo-trace::before { content: none; }
.rd-logo-image img { display: block; width: 70%; height: 70%; object-fit: contain; }
.rd-logo-trace, .rd-logo-trace.rd-moi { background: var(--rp-piste); color: var(--rp-encre); border-color: var(--rp-trait); }
.rd-logo-trace svg { display: block; width: 60%; height: 60%; }
.rd-logo-petit { width: 1.55em; height: 1.55em; }
.rd-logo-mini { width: 1.35em; height: 1.35em; }

/* Les IA, leur logo devant le nom ; un marché, son drapeau devant le nom. */
.rd-ia { display: inline-flex; align-items: center; gap: 0.4em; white-space: nowrap; }
.rd-ia-logo { display: inline-flex; flex: none; width: 1.1em; height: 1.1em; }
.rd-ia-logo svg { display: block; width: 100%; height: 100%; }
.rd-marche { display: inline-flex; align-items: center; gap: 0.45em; flex: none; white-space: nowrap; }
.rd-drapeau { display: inline-flex; flex: none; }
.rd-drapeau svg { display: block; width: auto; height: 0.85em; border-radius: 1px; }
.rd-marche-mono { font-size: 0.62em; letter-spacing: 0.14em; color: var(--rp-encre-3); }
.rd-marche-mono .rd-drapeau svg { height: 1.25em; }
.rd-marche-petit { margin-left: 0.6em; font-size: 0.86em; color: var(--rp-encre-2); }

/* --- Grands chiffres, puces, jauges ----------------------------------------------------------------------------------- */
.rd-grand { font-weight: 200; line-height: 1; letter-spacing: -0.035em; color: var(--rp-bleu); white-space: nowrap; }
.rd-grand small { margin-left: 0.06em; font-size: 0.42em; font-weight: 300; letter-spacing: 0; }
.rd-puce { display: inline-block; padding: 0.35em 0.75em; border-radius: 3px; font-size: 0.62em; letter-spacing: 0.1em; white-space: nowrap; }
.rd-puces { display: flex; flex-wrap: wrap; gap: 0.4em; margin-top: 0.8em; }
.rd-puce-papier { background: var(--rd-lavis); color: var(--rd-bleu-fonce); }
.rd-puce-papier.rd-hausse { background: var(--rd-hausse-lavis); color: var(--rd-hausse); }
.rd-puce-papier.rd-baisse { background: var(--rd-baisse-lavis); color: var(--rd-baisse); }
.rd-hausse { color: var(--rd-hausse); }
.rd-baisse { color: var(--rd-baisse); }
.rd-jauge { position: absolute; left: 0; bottom: 0; width: calc(var(--v) * 100%); height: 0.3em; background: var(--rp-bleu); }

/* --- La couverture (nuit) ---------------------------------------------------------------------------------------------- */
.rp-page.rd.rd-sombre {
  --rp-trait: #2E3C53;
  background: radial-gradient(120% 95% at 88% 0%, #10264D 0%, #0A1628 46%, #060B14 100%); color: #FFFFFF;
}
.rd-sombre .rd-signature { color: #FFFFFF; }
.rd-sombre .rd-repere, .rd-sombre .rd-pied { color: #9FB0CC; }
.rd-sombre .rd-kicker { color: #8EA7D6; }
.rd-sombre .rd-accent { color: #7FA6FF; }
.rd-sombre .rd-note { color: #9FB0CC; }
.rd-sombre .rd-exemple { border-color: #F08A64; color: #F08A64; }
.rd-sombre .rd-logo { border-color: #2E3C53; }
.rd-couverture { flex: 1 1 auto; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); align-items: center; gap: 4em; min-height: 0; }
.rd-couverture-texte { display: grid; gap: 0; min-width: 0; }
.rd-grand-titre {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin-top: 0.4em;
  font-size: 4em; font-weight: 300; line-height: 1.06; letter-spacing: -0.03em; text-wrap: balance; overflow-wrap: anywhere;
}
.rd-grand-titre-long { font-size: 2.8em; -webkit-line-clamp: 4; }
.rd-sous { max-width: 38em; margin-top: 1.1em; font-size: 1.08em; line-height: 1.5; color: #C9D5EA; }
.rd-sous + .rd-note { margin-top: 0.8em; max-width: 46em; }
.rd-carte-score {
  position: relative; display: grid; min-width: 0; padding: 1.6em 1.7em 1.9em; overflow: hidden; border: 1px solid #2E3C53;
  border-radius: 6px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015));
}
.rd-carte-haut { display: flex; align-items: center; gap: 0.7em; min-width: 0; }
.rd-carte-marque { flex: 1 1 auto; font-size: 1.25em; font-weight: 500; letter-spacing: -0.01em; }
.rd-sombre .rd-marche-mono { color: #8EA7D6; }
.rd-grand-couverture { margin: 0.28em 0 0.14em; font-size: 6em; color: #FFFFFF; }
.rd-carte-legende { font-size: 0.9em; color: #B7C4DC; }
.rd-sombre .rd-puce { justify-self: start; margin-top: 0.9em; background: rgba(30, 111, 255, 0.22); color: #CFE0FF; }
.rd-sombre .rd-puces .rd-puce { margin-top: 0; }
.rd-sombre .rd-puce-etat { background: rgba(255, 255, 255, 0.08); color: #C9D5EA; }
.rd-bandeau { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); margin-top: 1.5em; border-top: 1px solid #2E3C53; }
.rd-bandeau > div { min-width: 0; padding: 0.85em 0 0 1.2em; border-left: 1px solid #2E3C53; }
.rd-bandeau > div:first-child { padding-left: 0; border-left: 0; }
.rd-bandeau dt { font-size: 0.62em; letter-spacing: 0.14em; color: #8EA7D6; }
.rd-bandeau dd { margin-top: 0.2em; overflow: hidden; font-size: 1.55em; font-weight: 300; letter-spacing: -0.01em; text-overflow: ellipsis; white-space: nowrap; }
.rd-couverture-bas { display: flex; align-items: flex-end; justify-content: space-between; gap: 3em; margin-top: 1.4em; }
.rd-avertissement { font-size: 0.74em; line-height: 1.5; color: var(--rp-encre-2); }
.rd-sombre .rd-avertissement { max-width: 72em; color: #9FB0CC; }
.rd-tampon { flex: none; padding: 0.5em 0.85em; border: 1px solid #7FA6FF; border-radius: 4px; font-size: 0.62em; letter-spacing: 0.14em; color: #7FA6FF; white-space: nowrap; }

/* La couverture d'un groupe : le nom, puis jusqu'à six cartes de marque. */
.rd-couverture-groupe { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); gap: 3em; }
.rd-sous-accent { margin-top: 0.5em; font-size: 1.6em; line-height: 1.2; }
.rd-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8em; align-content: center; min-width: 0; }
.rd-cartes-1 { grid-template-columns: minmax(0, 1fr); }
.rd-carte-groupe { padding: 0.95em 1.1em 1.15em; }
.rd-carte-groupe .rd-carte-marque { font-size: 1em; }
.rd-carte-groupe .rd-logo { width: 1.7em; height: 1.7em; }
.rd-grand-carte { margin: 0.32em 0 0.12em; font-size: 2.6em; color: #FFFFFF; }
.rd-cartes-5 .rd-grand-carte, .rd-cartes-6 .rd-grand-carte { font-size: 2.2em; }
.rd-carte-groupe .rd-carte-legende { overflow: hidden; font-size: 0.7em; text-overflow: ellipsis; white-space: nowrap; }
.rd-carte-groupe .rd-puces { margin-top: 0.55em; }
.rd-cartes-reste { grid-column: 1 / -1; font-size: 0.62em; letter-spacing: 0.14em; color: #8EA7D6; }

/* --- L'essentiel ------------------------------------------------------------------------------------------------------ */
.rd-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2em; padding: 1.15em 0 1.25em; border-top: 1px solid var(--rp-encre); border-bottom: 1px solid var(--rp-trait); }
.rd-trio-deux { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rd-trio > * + * { padding-left: 2em; border-left: 1px solid var(--rp-trait); }
.rd-chiffre { min-width: 0; }
.rd-chiffre .rd-grand { font-size: 3.5em; }
.rd-chiffre-legende { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-width: 26em; margin-top: 0.45em; overflow: hidden; font-size: 0.9em; font-weight: 500; line-height: 1.35; }
.rd-chiffre-appui { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-width: 30em; margin-top: 0.35em; overflow: hidden; font-size: 0.8em; color: var(--rp-encre-2); }
.rd-duo { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 3em; align-items: start; min-height: 0; }
.rd-duo-egal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rd-points, .rd-actions { display: grid; gap: 0.95em; padding: 0; list-style: none; }
.rd-points li, .rd-actions li { display: grid; grid-template-columns: 2.3em minmax(0, 1fr); align-items: start; }
.rd-points .rd-num, .rd-actions .rd-num { padding-top: 0.2em; font-family: var(--rd-mono); font-size: 0.78em; text-align: left; color: var(--rp-bleu-texte); }
.rd-points p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: 0.95em; line-height: 1.45; }
.rd-commencer { min-width: 0; padding: 1.15em 1.35em 1.25em; border-radius: 6px; background: var(--rd-lavis); }
.rd-commencer .rd-bloc-titre { color: var(--rd-bleu-fonce); }
.rd-commencer-sous { margin: -0.4em 0 0.9em; font-size: 0.8em; color: var(--rp-encre-2); }
.rd-actions { gap: 0.8em; }
.rd-action-texte { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 0.88em; font-weight: 500; line-height: 1.38; }
.rd-action-meta { margin-top: 0.25em; overflow: hidden; font-size: 0.74em; color: var(--rp-encre-2); text-overflow: ellipsis; white-space: nowrap; }
.rd-logos { display: flex; align-items: center; gap: 0.3em; }
.rd-logos .rd-coupe { margin-left: 0.3em; }

/* --- Listes à barres (Claude, fiches) --------------------------------------------------------------------------------- */
.rd-lignes { display: grid; gap: 0.55em; padding: 0; list-style: none; }
.rd-ligne { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) 7em; align-items: center; gap: 0.9em; font-size: 0.86em; }
.rd-ligne-nom { display: flex; align-items: center; gap: 0.55em; min-width: 0; }
.rd-ligne.rd-moi .rd-ligne-nom { font-weight: 600; }
.rd-ligne-piste { height: 0.55em; overflow: hidden; border-radius: 999px; background: var(--rp-piste); }
.rd-ligne-barre { display: block; width: calc(var(--v) * 100%); height: 100%; border-radius: inherit; background: var(--rd-gris-barre); }
.rd-ligne.rd-moi .rd-ligne-barre { background: var(--rp-bleu); }
.rd-ligne-valeur { font-weight: 500; text-align: right; white-space: nowrap; }
.rd-lignes-serrees { gap: 0.32em; }
.rd-lignes-serrees .rd-ligne { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) 3.4em; font-size: 0.78em; gap: 0.7em; }
.rd-ia-titre { display: inline-flex; vertical-align: -0.08em; margin-right: 0.3em; }
.rd-ia-titre .rd-ia-logo { width: 0.8em; height: 0.8em; }

/* --- La méthode ------------------------------------------------------------------------------------------------------- */
.rd-equation {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.5fr) auto minmax(0, 1.1fr); align-items: center; gap: 1.6em;
  padding: 1.15em 1.6em; border-radius: 6px; background: var(--rd-nuit); color: #FFFFFF;
}
.rd-terme { min-width: 0; }
.rd-terme b { display: block; font-size: 2.7em; font-weight: 200; line-height: 1; letter-spacing: -0.03em; }
.rd-terme > span { display: block; margin-top: 0.4em; font-size: 0.78em; line-height: 1.35; color: #B7C4DC; }
.rd-op { font-size: 2em; font-weight: 200; color: #7FA6FF; }
.rd-total b { color: #7FA6FF; }
.rd-ias-liste { display: flex; flex-wrap: wrap; gap: 0.35em 1em; margin-top: 0.5em; }
.rd-equation .rd-ia { color: #DCE5F5; }
.rd-equation .rd-ia-logo { padding: 0.12em; border-radius: 3px; background: #FFFFFF; }
.rd-duo-methode { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
.rd-methode-texte { display: grid; gap: 0.6em; }
.rd-methode-texte p { font-size: 0.84em; line-height: 1.5; color: var(--rp-encre-2); }
.rd-methode-texte .rd-signale { padding-left: 0.8em; border-left: 2px solid var(--rd-baisse); color: var(--rp-encre); }
.rd-lexique { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8em 1.6em; }
.rd-lexique div { padding-top: 0.5em; border-top: 1px solid var(--rp-trait); }
.rd-lexique dt { font-size: 0.82em; font-weight: 600; }
.rd-lexique dd { margin-top: 0.15em; font-size: 0.74em; line-height: 1.4; color: var(--rp-encre-2); }
.rd-avertissements { display: grid; gap: 0.35em; margin-top: auto; padding: 0.95em 1.2em 1em; border-radius: 6px; background: var(--rd-panneau); }
.rd-avertissements .rd-bloc-titre { margin-bottom: 0.3em; }
.rd-avertissement-exemple .rd-exemple { margin-right: 0.4em; font-size: 0.86em; }
.rd-pile { display: grid; gap: 1.1em; }
.rd-ias-methode { margin-top: 0; font-size: 0.8em; color: var(--rp-encre-2); }
.rd-releves { display: grid; gap: 0 1.6em; padding: 0; list-style: none; }
.rd-releves-deux { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rd-releves li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.8em; padding: 0.22em 0; border-bottom: 1px solid var(--rp-trait); font-size: 0.76em; }
.rd-releves .rd-marche-petit { margin-left: 0; }
.rd-releves-date { color: var(--rp-encre-2); white-space: nowrap; }

/* --- Le groupe : tableau de l'essentiel et fiches ------------------------------------------------------------------- */
.rd-duo-groupe { grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.62fr); }
.rd-tableau { width: 100%; border-collapse: collapse; font-size: 0.8em; }
.rd-tableau th { padding: 0 0.8em 0.55em 0; border-bottom: 1px solid var(--rp-encre); font-size: 0.72em; font-weight: 400; letter-spacing: 0.12em; text-align: left; color: var(--rp-encre-3); }
.rd-tableau th.rd-num { text-align: right; }
.rd-tableau td { padding: 0.42em 0.8em 0.42em 0; border-bottom: 1px solid var(--rp-trait); vertical-align: middle; }
.rd-tableau td:last-child, .rd-tableau th:last-child { padding-right: 0; }
.rd-t-marque { white-space: nowrap; }
.rd-t-nom { display: inline-flex; align-items: center; gap: 0.5em; max-width: 15em; vertical-align: middle; font-weight: 500; }
.rd-t-taux { font-weight: 600; }
.rd-t-releve { color: var(--rp-encre-2); white-space: nowrap; }
.rd-attenue td { color: var(--rp-encre-3); }
.rd-dense .rd-tableau { font-size: 0.7em; }
.rd-dense .rd-tableau td { padding-block: 0.26em; }
.rd-dense .rd-t-nom { max-width: 13em; }
.rd-dense .rd-points p { font-size: 0.88em; }
.rd-entete-court .rd-titre { -webkit-line-clamp: 1; }
.rd-fiches { flex: 1 1 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4em; min-height: 0; }
.rd-fiches-quatre { grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 0.9em 1.2em; }
.rd-fiche { display: flex; flex-direction: column; gap: 0.9em; min-width: 0; min-height: 0; padding: 1em 1.25em; overflow: hidden; border: 1px solid var(--rp-trait); border-top: 2px solid var(--rp-encre); border-radius: 4px; }
.rd-fiche-tete { display: flex; align-items: center; gap: 0.8em; min-width: 0; }
.rd-fiche-tete .rd-t-nom { flex: 0 1 auto; max-width: none; min-width: 0; }
.rd-fiche-nom { font-size: 1.12em; font-weight: 600; letter-spacing: -0.01em; }
.rd-fiche-releve { margin-left: auto; flex: none; font-size: 0.6em; letter-spacing: 0.12em; color: var(--rp-encre-3); white-space: nowrap; }
.rd-fiche-corps { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 1.5em; min-height: 0; }
.rd-grand-fiche { font-size: 3.3em; }
.rd-fiche .rd-chiffre-legende { font-size: 0.78em; font-weight: 400; color: var(--rp-encre-2); }
.rd-fiche-ia { margin-top: 1em; }
.rd-ia-taux { display: grid; gap: 0.3em; padding: 0; list-style: none; }
.rd-ia-taux li { display: flex; align-items: center; justify-content: space-between; gap: 0.8em; font-size: 0.8em; }
.rd-ia-taux b { font-weight: 500; }
.rd-fiche-noms { min-width: 0; }
.rd-espace { margin-top: 1em; }
.rd-sources { display: grid; gap: 0.3em; padding: 0; list-style: none; }
.rd-sources li { display: flex; justify-content: space-between; gap: 1em; font-size: 0.8em; }
.rd-sources b { flex: none; font-weight: 500; color: var(--rp-encre-2); }
/* Quatre fiches par page : tout se resserre ; les IA sur deux colonnes, les sites sur une ligne. */
.rd-fiche-compacte { gap: 0.55em; padding: 0.75em 1.05em; }
.rd-fiche-compacte .rd-fiche-nom { font-size: 1em; }
.rd-fiche-compacte .rd-logo { width: 1.6em; height: 1.6em; }
.rd-fiche-compacte .rd-grand-fiche { font-size: 2.4em; }
.rd-fiche-compacte .rd-puces { margin-top: 0.5em; }
.rd-fiche-compacte .rd-fiche-ia { margin-top: 0.6em; }
.rd-fiche-compacte .rd-bloc-titre { margin-bottom: 0.45em; }
.rd-fiche-compacte .rd-ia-taux { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.15em 1em; }
.rd-fiche-compacte .rd-ia-taux li { font-size: 0.72em; }
.rd-fiche-compacte .rd-espace { margin-top: 0.6em; }
.rd-fiche-compacte .rd-sources { gap: 0.12em; }
.rd-fiche-compacte .rd-sources li { font-size: 0.72em; }
.rd-fiche-compacte .rd-note { font-size: 0.72em; }

/* L'essentiel avec le visuel des questions à gagner : les enseignements sur trois colonnes, puis le visuel. */
.rd-enseignements-ligne .rd-points { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2em; }
.rd-enseignements-ligne .rd-points p { font-size: 0.9em; }
.rd-commencer-figure { display: flex; flex: 0 1 auto; flex-direction: column; min-height: 0; padding: 0; background: none; }
.rd-commencer-figure .rd-bloc-titre { display: flex; flex: none; align-items: baseline; gap: 1.2em; min-width: 0; margin-bottom: 0.6em; white-space: nowrap; }
.rd-commencer-figure .rd-bloc-sous { overflow: hidden; text-overflow: ellipsis; }
.rd-bloc-sous { font-family: var(--police); font-size: 1.25em; letter-spacing: 0; text-transform: none; color: var(--rp-encre-2); }

/* La couverture d'un groupe : la date de la composition sous la phrase. */
.rd-composition { margin-top: 1.4em; font-family: var(--rd-mono); font-size: 0.66em; letter-spacing: 0.14em; text-transform: uppercase; color: #8EA7D6; }
/* Le tableau de l'essentiel d'un groupe : une jauge sous le taux ; plus aéré jusqu'à huit marques. */
.rd-t-jauge { display: inline-block; width: 4.5em; height: 0.45em; margin-right: 0.8em; vertical-align: 0.1em; border-radius: 999px; background: linear-gradient(90deg, var(--rp-bleu) calc(var(--v) * 100%), var(--rp-piste) 0); }
.rd-aere .rd-tableau { font-size: 0.92em; }
.rd-aere .rd-tableau td { padding-block: 0.85em; }
.rd-aere .rd-t-jauge { width: 7em; }
/* Deux fiches par page : plus grandes. */
.rd-fiche:not(.rd-fiche-compacte) { gap: 1.2em; padding: 1.3em 1.5em; font-size: 1.12em; }
.rd-fiche:not(.rd-fiche-compacte) .rd-ia-taux { gap: 0.5em; }
.rd-fiche:not(.rd-fiche-compacte) .rd-lignes-serrees { gap: 0.55em; }
.rd-fiche:not(.rd-fiche-compacte) .rd-sources { gap: 0.5em; }
/* La méthode d'un groupe : des textes un peu plus petits, pour la liste de vingt marques. */
.rd-pile .rd-methode-texte p { font-size: 0.8em; }
.rd-pile .rd-methode-texte { gap: 0.45em; }
.rd-fiche-noms > .rd-note { margin-bottom: 0.7em; }

/* 14/11/2026 (demande de Martin : « aucun chevauchement, peu importe la marque et les données », détecteur en navigateur).
   1. Un nom de marque trop long se REPLIE sur deux lignes au lieu d'être coupé sur une seule : deux noms qui ne
      diffèrent qu'à la fin (« … numéro 1 France », « … numéro 2 France ») restent distincts. Au-delà, l'ellipse. */
.rd-t-nom .rd-coupe, .rd-fiche-nom, .rd-carte-marque, .rd-ligne-nom .rd-coupe, .rd-releves li > .rd-coupe {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; overflow-wrap: anywhere; line-height: 1.2;
}
/* 2. Une liste dans une colonne étroite ne s'élargit jamais à son plus long texte (un site interminable poussait le nombre
      de réponses hors de la fiche) : la colonne de la grille est bornée, le nom se coupe, le nombre reste. */
.rd-sources, .rd-lignes, .rd-ia-taux { grid-template-columns: minmax(0, 1fr); }
.rd-fiche-compacte .rd-ia-taux { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rd-sources li > .rd-coupe { flex: 1 1 auto; }
/* 3. La suite du tableau de l'essentiel d'un groupe (plus de lignes qu'une page n'en loge) : toute la largeur. */
.rd-tableau-suite { flex: none; min-width: 0; }
.rd-tableau-suite .rd-t-nom { max-width: 22em; }
/* 4. La méthode d'un groupe nombreux : trois colonnes de relevés au-delà de seize marques. */
.rd-releves-trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* --- La version avec Claude (14/11/2026, dossier/43 § 3.7, lot E) : la mention de la couverture et du pied -------------- */
.rd-avec-claude, .rd-puce-claude { display: inline-flex; align-items: center; gap: 0.5em; white-space: nowrap; }
.rd-avec-claude { padding: 0.15em 0.6em; border: 1px solid var(--rp-trait); border-radius: 3px; color: var(--rp-encre-2); }
.rd-avec-claude .rd-ia-logo, .rd-puce-claude .rd-ia-logo { width: 1.25em; height: 1.25em; padding: 0.12em; border-radius: 50%; background: #FFFFFF; }
.rd-couverture-vue { margin-top: 0.9em; }
.rd-sombre .rd-couverture-vue .rd-puce { margin-top: 0; }
.rd-sombre .rd-avec-claude { border-color: #2E3C53; color: #C9D5EA; }
/* Le logo de Claude à côté d'une marque d'un groupe aussi mesurée avec lui (le groupe reste sans Claude). */
.rd-marque-claude { display: inline-flex; flex: none; align-items: center; margin-left: 0.35em; vertical-align: -0.12em; }
.rd-marque-claude .rd-ia-logo { width: 0.95em; height: 0.95em; }
