/* Pont v3ille : branche les classes Tailwind du site sur les variables des thèmes (sq-themes.css, readable-ui.css). */
html[data-theme] body { background-color: var(--bg-canvas); color: var(--read-text); }
html[data-theme="void"] { color-scheme: dark; }

html[data-theme] .app-main :is(p, li, td, th, h1, h2, h3, h4, blockquote, figcaption) { color: var(--read-text); }
html[data-theme] .app-main :is(.text-slate-500, .text-slate-600) { color: var(--read-muted); }
html[data-theme] .app-main :is(.text-slate-700, .text-slate-800, .text-slate-900) { color: var(--read-text); }
html[data-theme] .app-main a:not([class*="btn"], [class*="bg-"]) { color: var(--read-link); }

html[data-theme]:not([data-theme="win98"]):not([data-theme="winxp"]) .glass-card { background: var(--read-surface); }
html[data-theme] .app-main article blockquote,
html[data-theme] .sources-wrap { background: var(--read-surface); }
html[data-theme] .app-main article blockquote { border-left-color: var(--read-link); }

html[data-theme] table.sources,
html[data-theme] table.sources :is(th, td) { border-color: var(--read-border); }
html[data-theme] table.sources th { background: var(--bg-pill); }
html[data-theme] table.sources tbody tr:nth-child(even) { background: transparent; }


/* Sélecteur mobile (menu ☰) : dans le flux, 4 boutons de 44 px, sans débordement à 360 px. */
html[data-theme] .theme-selector { position: static; display: grid; grid-template-columns: repeat(4, 1fr); width: 100%; max-width: 26rem; }
html[data-theme] .theme-btn { min-height: 44px; padding: 4px 2px; font-size: 0.8rem; }

/* Win98 : le canevas turquoise ne porte pas de texte, l'article se pose sur une fenêtre claire. */
html[data-theme="win98"] .app-main article,
html[data-theme="win98"] .app-main > section,
html[data-theme="win98"] .app-main > main > :is(header, div) { background: var(--read-surface); border: 2px solid #000; box-shadow: 2px 2px 0 #000; }
html[data-theme="win98"] .app-main > :is(section, main) { max-width: 64rem; margin: 1rem auto; }
html[data-theme="win98"] .app-main > main > :is(header, div) { padding: 1rem 1.25rem; }
html[data-theme="win98"] .app-main > main { padding-block: 1rem; }

html[data-theme="win98"] .top-bar :is(nav a, .brand-title, #menu-toggle, .brand-title span),
html[data-theme="winxp"] .top-bar :is(nav a, .brand-title, #menu-toggle, .brand-title span) { color: #fff; }
html[data-theme="void"] .top-bar { background: var(--read-surface); border-color: var(--read-border); }
html[data-theme="void"] .top-bar :is(nav a, .brand-title, #menu-toggle) { color: var(--read-text); }
html[data-theme="void"] #mobile-menu { background: var(--read-surface); }
/* sq-themes.css l.601 impose max-width:100% aux enfants de main (plus spécifique que .max-w-*) : on rend la main aux max-w Tailwind. */
html[data-theme] .app-main > [class*="max-w-"] { max-width: revert-layer; }

/* Contrastes : surfaces claires fixes de Tailwind sous Sombre. */
html[data-theme="void"] :is(.bg-white, .bg-slate-50, .bg-slate-100, .card-saas, .tag-badge) { background-color: var(--read-surface) !important; border-color: var(--read-border); }
html[data-theme="void"] .footer-saas { background-color: var(--read-surface); }
html[data-theme] footer :is(.text-slate-400, .text-slate-500, .text-slate-600, .text-slate-700, p) { color: var(--read-muted); }

/* Retour en haut : lien discret, sans fond. */
.retour-haut { color: var(--read-link); font-size: 0.875rem; text-decoration: underline; }
html[data-theme="win98"] .footer-saas { background-color: var(--read-surface); }

/* ==========================================================================
   Maquette design v1 : Fraunces + Inter, grille 38,2 / 61,8, blocs éditoriaux.
   Toutes les couleurs viennent des variables --read-* ; les niveaux de preuve
   ont une variante claire (win98, winxp, macos) et une variante sombre (void).
   ========================================================================== */
html[data-theme] {
  --font-titre: 'Fraunces Variable', Georgia, 'Times New Roman', serif;
  --r: 14px;
  --cardline: color-mix(in srgb, var(--read-border) 45%, transparent);
  --card-shadow: 0 1px 2px #0000000d, 0 8px 24px #0000000b;
  --c-green-fg: #0b5d33;  --c-green-bg: #dff3e7;
  --c-blue-fg: #0a4d9c;   --c-blue-bg: #e1ecfb;
  --c-violet-fg: #5a2a9c; --c-violet-bg: #ece3fa;
  --c-gray-fg: #3d4657;   --c-gray-bg: #e9ecf1;
  --c-orange-fg: #8a3c00; --c-orange-bg: #fbe8d2;
  --c-red-fg: #9a1b1b;    --c-red-bg: #fbe0e0;
}
html[data-theme="winxp"] { --r: 6px; }
html[data-theme="win98"] { --r: 0px; --cardline: #808080; --card-shadow: none; }
html[data-theme="void"] {
  --card-shadow: 0 1px 2px #0006, 0 8px 24px #0004;
  --c-green-fg: #7fe3a9;  --c-green-bg: #0f3b27;
  --c-blue-fg: #9ccbff;   --c-blue-bg: #122f5a;
  --c-violet-fg: #d3b7ff; --c-violet-bg: #33205c;
  --c-gray-fg: #d3d9e4;   --c-gray-bg: #2e3646;
  --c-orange-fg: #ffc47d; --c-orange-bg: #4a2c08;
  --c-red-fg: #ffabab;    --c-red-bg: #531919;
}
.frame { width: min(92vw, 1440px); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* --- En-tête : logotype, navigation courte, bouton Newsletter --- */
.logo { font-family: var(--font-titre); font-optical-sizing: auto; font-weight: 700; font-size: 1.75rem; line-height: 1; letter-spacing: -0.02em; text-decoration: none; }
html[data-theme] .top-bar .logo { color: var(--read-text); }
html[data-theme] .top-bar .logo span { color: var(--read-link); }
html[data-theme="win98"] .top-bar .logo, html[data-theme="winxp"] .top-bar .logo { color: #fff; }
html[data-theme="win98"] .top-bar .logo span, html[data-theme="winxp"] .top-bar .logo span { color: #ffe08a; }
.nav-link { padding: 0.5rem 0.85rem; border-radius: 8px; font-weight: 600; text-decoration: none; border-bottom: 2px solid transparent; }
html[data-theme] .top-bar .nav-link { color: var(--read-text); }
html[data-theme="win98"] .top-bar .nav-link, html[data-theme="winxp"] .top-bar .nav-link { color: #fff; }
.nav-link:hover { background: color-mix(in srgb, currentColor 12%, transparent); }
.nav-link[aria-current="page"] { border-bottom-color: currentColor; border-radius: 8px 8px 0 0; }
html[data-theme] .top-bar a.nav-cta { display: inline-flex; align-items: center; min-height: 40px; padding: 0 1.1rem; border-radius: 999px; font-weight: 700; text-decoration: none; background: var(--read-link); color: var(--read-surface); }
html[data-theme="win98"] .top-bar a.nav-cta { border-radius: 0; background: #fff; color: #000080; border: 2px solid #000; }
html[data-theme="winxp"] .top-bar a.nav-cta { background: #fff; color: #0a3aa0; }
.nav-cta:hover { filter: brightness(1.08); }
html[data-theme] #mobile-menu { background: var(--read-surface); }
html[data-theme] #mobile-menu .nav-link { color: var(--read-text); }
#mobile-menu .nav-cta { justify-content: center; margin-top: 0.25rem; }

/* --- Sélecteur de thèmes flottant (≥ 1024 px) : 4 pastilles rondes --- */
.theme-float { display: none; }
@media (min-width: 1024px) {
  .theme-float { display: flex; position: fixed; right: 16px; bottom: 24px; z-index: 70; padding: 2px; background: var(--read-surface); border: 1px solid var(--read-border); border-radius: 999px; box-shadow: 0 6px 24px #0003; }
  html[data-theme="win98"] .theme-float { border: 2px solid #000; border-radius: 0; box-shadow: 2px 2px 0 #000; }
  .footer-saas { padding-bottom: 4.5rem; }
}
.theme-pick { width: 44px; height: 44px; display: grid; place-items: center; background: none; border: 0; padding: 0; cursor: pointer; border-radius: 50%; }
.theme-pick .swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--read-border); box-sizing: border-box; }
.theme-pick[aria-pressed="true"] .swatch { outline: 3px solid var(--read-link); outline-offset: 2px; }
.theme-pick:focus-visible { outline: 3px solid var(--read-focus); outline-offset: -3px; }
.theme-pick[data-theme-name="win98"] .swatch { background: #008080; }
.theme-pick[data-theme-name="winxp"] .swatch { background: #245edb; }
.theme-pick[data-theme-name="macos"] .swatch { background: #e4e4e8; }
.theme-pick[data-theme-name="void"] .swatch { background: #1b2540; }

/* --- Page article : cadre, grille, texte --- */
html[data-theme] .app-main .article-page { font-family: 'Inter', system-ui, -apple-system, sans-serif; padding-top: 1.5rem; font-size: 1.125rem; line-height: 1.7; }
html[data-theme] .app-main .article-page :is(h1, h2, h3) { font-family: var(--font-titre); font-optical-sizing: auto; letter-spacing: -0.012em; }
.article-page .article-main { min-width: 0; }
.article-page .article-aside { display: none; }
@media (min-width: 1024px) {
  .article-page .article-grid { display: grid; grid-template-columns: minmax(0, 38.2fr) minmax(0, 61.8fr); column-gap: clamp(2rem, 4vw, 4rem); align-items: start; }
  .article-page .article-aside { display: flex; flex-direction: column; gap: 0.9rem; position: sticky; top: 5rem; max-height: calc(100vh - 6.5rem); overflow: auto; padding: 1rem 1.25rem; background: var(--read-surface); border: 1px solid var(--cardline); border-radius: var(--r); box-shadow: var(--card-shadow); font-size: 1rem; line-height: 1.5; }
  html[data-theme="win98"] .article-page .article-aside { border: 2px solid #000; box-shadow: 2px 2px 0 #000; }
  .article-page .toc-mobile { display: none; }
}
html[data-theme="win98"] .article-page .article-main { padding: 1.5rem 1.75rem 2rem; }
html[data-theme="win98"] .article-page .signal, html[data-theme="win98"] .article-page .retenir-item { box-shadow: none; }

html[data-theme] .app-main .article-page {
  /* Colonne gauche */
  .aside-titre { margin: 0 0 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--read-muted); }
  .aside-ecoute { display: flex; align-items: center; gap: 0.75rem; min-height: 48px; width: 100%; padding: 0.5rem 1rem; border: 0; border-radius: 999px; background: var(--read-link); color: var(--read-surface); font: inherit; font-weight: 700; cursor: pointer; }
  .aside-ecoute svg { width: 1.4rem; height: 1.4rem; flex: none; }
  .aside-ecoute:hover { filter: brightness(1.1); }
  .toc, .chiffres, .legende { padding-top: 1.1rem; border-top: 1px solid var(--cardline); }
  .aside-ecoute + .toc { padding-top: 0; border-top: 0; }
  .toc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
  a.toc-item { display: grid; grid-template-columns: 1.9rem 1fr auto; gap: 0.6rem; align-items: center; padding: 0.3rem 0.6rem; border-radius: calc(var(--r) * 0.6); text-decoration: none; color: var(--read-text); }
  a.toc-item:hover { background: var(--bg-pill); }
  a.toc-item[aria-current="true"] { background: color-mix(in srgb, var(--read-link) 12%, transparent); box-shadow: inset 3px 0 0 var(--read-link); font-weight: 600; }
  .toc-num { text-align: center; font-family: var(--font-titre); font-weight: 700; font-size: 1.05rem; color: var(--read-muted); }
  .toc-rub { display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--read-link); }
  .toc-label { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.95rem; line-height: 1.3; }
  .pastille { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; color: var(--fg); background: var(--bg); }
  .chiffres ul, .legende ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; justify-items: start; }
  .chiffres li { display: grid; grid-template-columns: minmax(4.2rem, auto) 1fr; gap: 0.9rem; align-items: center; justify-self: stretch; }
  .chiffre-n { font-family: var(--font-titre); font-weight: 700; font-size: 1.75rem; line-height: 1; color: var(--read-link); }
  .chiffre-l { font-size: 0.9rem; line-height: 1.3; color: var(--read-muted); }
  .legende li { display: grid; gap: 0.2rem; justify-items: start; }
  .legende-tete { display: flex; align-items: center; gap: 0.4rem; }
  .legende-def { font-size: 0.8125rem; line-height: 1.35; color: var(--read-muted); }
  .legende-renvois { font-size: 0.8125rem; line-height: 1.5; }
  .legende-renvois a + a { margin-left: 0.3rem; }
  .legende-tous { display: inline-block; margin-top: 0.6rem; font-size: 0.8125rem; }
  .legende-mobile { margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--cardline); }
  .legende-mobile .legende-titre { margin: 0 0 0.6rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--read-muted); }
  .legende-mobile ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
  @media (min-width: 1024px) { .legende-mobile { display: none; } }
  .toc-mobile { margin: 0 0 2rem; background: var(--read-surface); border: 1px solid var(--cardline); border-radius: var(--r); font-size: 1rem; }
  .toc-mobile summary { display: flex; align-items: center; min-height: 48px; padding: 0 1.1rem; font-weight: 700; cursor: pointer; }
  .toc-mobile nav { padding: 0 0.5rem 0.75rem; }

  /* Tête d'article */
  .crumb { display: flex; gap: 0.5rem; font-size: 0.875rem; color: var(--read-muted); }
  .crumb a { color: var(--read-muted); }
  .premium { display: inline-block; margin-bottom: 0.75rem; padding: 0.15rem 0.7rem; border-radius: 999px; font-size: 0.8rem; font-weight: 700; color: var(--c-orange-fg); background: var(--c-orange-bg); }
  .surtitre { margin: 1.75rem 0 0.6rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; color: var(--read-link); }
  h1 { margin: 0; font-weight: 700; font-size: clamp(2rem, 1.25rem + 2.4vw, 2.9375rem); line-height: 1.12; text-wrap: balance; }
  .meta { margin: 0.9rem 0 0; font-size: 0.95rem; font-weight: 600; color: var(--read-muted); }
  .chapeau { margin: 1.1rem 0 0; font-size: 1.3125rem; line-height: 1.5; color: var(--read-muted); text-wrap: pretty; }
  .verif { margin: 2rem 0 0; font-size: 0.85rem; color: var(--read-muted); text-align: center; }

  /* Bandeau podcast */
  .v3-audio { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.5rem 1.25rem; margin: 2rem 0 2.25rem; padding: 1.25rem 1.5rem; background: color-mix(in srgb, var(--read-link) 9%, var(--read-surface)); border: 1px solid color-mix(in srgb, var(--read-link) 35%, transparent); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .audio-play { display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%; background: var(--read-link); color: var(--read-surface); cursor: pointer; }
  .audio-play svg { width: 26px; height: 26px; }
  .audio-play:hover { filter: brightness(1.1); }
  .audio-play--petit { width: 44px; height: 44px; }
  .audio-play--petit svg { width: 22px; height: 22px; }
  .audio-titre { margin: 0; font-family: var(--font-titre); font-weight: 650; font-size: 1.3125rem; line-height: 1.25; }
  .audio-titre span { font-weight: 500; color: var(--read-muted); }
  .audio-ligne { display: flex; align-items: center; gap: 0.75rem; }
  .audio-ligne input[type="range"] { flex: 1; min-width: 0; height: 2.75rem; accent-color: var(--read-link); }
  .audio-temps { margin: 0; font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; font-variant-numeric: tabular-nums; color: var(--read-muted); white-space: nowrap; }
  .audio-vitesse { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--read-muted); }
  .audio-vitesse select { height: 2.75rem; padding: 0 0.5rem; border: 1px solid var(--read-border); border-radius: calc(var(--r) * 0.6); background: var(--read-surface); color: var(--read-text); font: inherit; }
  @media (max-width: 639px) {
    .v3-audio { grid-template-columns: auto 1fr; padding: 1rem; }
    .audio-vitesse { grid-column: 1 / -1; justify-content: flex-end; }
  }

  /* Blocs éditoriaux */
  .article-content { font-size: 1.125rem; }
  .bloc { margin-top: 3.25rem; scroll-margin-top: 5.5rem; }
  .article-content h2 { margin: 0 0 1.25rem; padding: 0; border: 0; font-weight: 700; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.8125rem); line-height: 1.2; }
  .article-content h2::before { content: ""; display: block; width: 2.5rem; height: 3px; margin-bottom: 0.75rem; background: var(--read-link); }
  .article-content p { margin: 1rem 0 0; line-height: 1.7; }
  .article-content a { text-decoration-style: solid; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  .article-content sup.ref a { text-decoration: none; }
  .bloc-bref ul { margin: 0; padding: 1.25rem 1.5rem 1.25rem 2.6rem; list-style: disc; background: var(--read-surface); border: 1px solid var(--cardline); border-left: 5px solid var(--read-link); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .bloc-bref li + li { margin-top: 0.6rem; }

  /* Niveaux de preuve : couleur + pictogramme + texte */
  .preuve-primaire, .pastille-primaire, .signal[data-level="primaire"], .verdict-tenu, .prediction-tenu { --fg: var(--c-green-fg); --bg: var(--c-green-bg); }
  .preuve-etude, .pastille-etude, .signal[data-level="etude"] { --fg: var(--c-blue-fg); --bg: var(--c-blue-bg); }
  .preuve-produit, .pastille-produit, .signal[data-level="produit"] { --fg: var(--c-violet-fg); --bg: var(--c-violet-bg); }
  .preuve-opinion, .pastille-opinion, .signal[data-level="opinion"] { --fg: var(--c-gray-fg); --bg: var(--c-gray-bg); }
  .preuve-temoignage, .pastille-temoignage, .signal[data-level="temoignage"], .verdict-partiel, .prediction-partiel, .bloc-correction { --fg: var(--c-orange-fg); --bg: var(--c-orange-bg); }
  .preuve-attribution, .pastille-attribution, .signal[data-level="attribution"], .verdict-dementi, .prediction-dementi { --fg: var(--c-red-fg); --bg: var(--c-red-bg); }
  .preuve, .verdict { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; padding: 0.2rem 0.75rem 0.2rem 0.6rem; border: 1px solid color-mix(in srgb, var(--fg) 40%, transparent); border-radius: 999px; font-size: 0.8125rem; font-weight: 600; line-height: 1.4; color: var(--fg); background: var(--bg); }
  .picto { flex: none; }
  .signal p .preuve, .prediction p .preuve, .rubrique p .preuve { margin-left: 0.25rem; vertical-align: 0.1em; }

  /* Signaux */
  .signal { --fg: var(--read-link); margin: 0 0 1.5rem; padding: 1.5rem 1.75rem 1.75rem; background: var(--read-surface); border: 1px solid var(--cardline); border-top: 4px solid var(--fg); border-radius: var(--r); box-shadow: var(--card-shadow); scroll-margin-top: 5.5rem; }
  .signal-head { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1.1rem; align-items: start; }
  .signal-num { font-family: var(--font-titre); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--fg); }
  .signal-rub { display: inline-block; margin: 0 0 0.5rem; padding: 0.1rem 0.65rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--read-link); background: color-mix(in srgb, var(--read-link) 12%, transparent); }
  .signal h3 { margin: 0 0 0.6rem; font-weight: 600; font-size: 1.5rem; line-height: 1.25; text-wrap: balance; }
  .pourquoi { margin-top: 1.4rem; padding: 1rem 1.25rem; border-left: 4px solid var(--fg); border-radius: 0 calc(var(--r) * 0.7) calc(var(--r) * 0.7) 0; background: color-mix(in srgb, var(--fg) 9%, var(--read-surface)); }
  .pourquoi p { margin: 0.35rem 0 0; }
  .article-content .pourquoi-titre { margin: 0; font-size: 1rem; font-weight: 700; font-variant-caps: all-small-caps; letter-spacing: 0.09em; color: var(--fg); }

  /* À retenir */
  .retenir { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
  .retenir-item { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.25rem; align-items: center; margin: 0; padding: 1rem 1.5rem 1rem 1rem; background: var(--read-surface); border: 1px solid var(--cardline); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .retenir-nb { padding-right: 1.25rem; border-right: 2px solid var(--cardline); text-align: right; font-family: var(--font-titre); font-weight: 700; font-size: 2.9375rem; line-height: 1; color: var(--read-link); }
  .retenir-sans-nb { grid-template-columns: 1fr; }
  .retenir-item p, .retenir-item div { margin: 0; line-height: 1.55; }
  @media (max-width: 639px) {
    .signal { padding: 1.25rem 1.1rem 1.4rem; }
    .signal-num { font-size: 1.9rem; }
    .signal h3 { font-size: 1.3rem; }
    .retenir-item { grid-template-columns: 5rem 1fr; gap: 0.9rem; padding: 0.9rem 1rem 0.9rem 0.6rem; }
    .retenir-nb { padding-right: 0.8rem; font-size: 2rem; }
    .retenir-sans-nb { grid-template-columns: 1fr; }
  }

  /* Prédictions vérifiées */
  .article-content blockquote.prediction { margin: 0; padding: 1.25rem 1.5rem 1.4rem; font-style: normal; background: var(--read-surface); border: 1px solid var(--cardline); border-left: 5px solid var(--fg); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .prediction .verdict { margin: 0; font-size: 0.95rem; font-weight: 700; }
  .prediction p { margin: 0.85rem 0 0; }
  .prediction .verdict + p { margin-top: 1rem; }
  .article-content blockquote.rubrique { margin: 0; padding: 1.25rem 1.5rem 1.4rem; font-style: normal; background: var(--read-surface); border: 1px solid var(--cardline); border-left: 5px solid var(--read-link); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .rub-icone { display: inline-block; width: 1em; height: 1em; vertical-align: -0.12em; margin-right: 0.45rem; color: var(--read-link); }

  /* Sources */
  .bloc-sources p { margin: 0 0 1rem; font-size: 0.9rem; color: var(--read-muted); }
  .sources-wrap { overflow-x: auto; border: 1px solid var(--cardline); border-radius: var(--r); background: var(--read-surface); }
  table.sources { width: 100%; border: 0; border-collapse: collapse; font-size: 0.9rem; line-height: 1.45; }
  table.sources :is(th, td) { padding: 0.6rem 0.75rem; border: 0; border-bottom: 1px solid var(--cardline); }
  table.sources tbody tr:last-child td { border-bottom: 0; }
  table.sources th { background: transparent; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--read-muted); }
  table.sources td:first-child { font-family: 'JetBrains Mono', monospace; color: var(--read-muted); }
  table.sources :is(th, td):last-child { white-space: normal; }
  @media (min-width: 640px) { table.sources :is(td:nth-child(3), td:last-child) { white-space: nowrap; } }
  details.autres { margin-top: 1rem; background: var(--read-surface); border: 1px solid var(--cardline); border-radius: var(--r); }
  details.autres summary { min-height: 48px; display: flex; align-items: center; padding: 0 1.25rem; font-weight: 600; cursor: pointer; }
  details.autres[open] summary { border-bottom: 1px solid var(--cardline); }
  details.autres .sources-wrap { border: 0; border-radius: 0 0 var(--r) var(--r); }

  /* Correction : encadré signé, date en tête */
  .bloc-correction { display: flex; flex-direction: column; padding: 1.5rem 1.75rem; background: var(--read-surface); border: 1px solid var(--cardline); border-left: 5px solid var(--fg); border-radius: var(--r); box-shadow: var(--card-shadow); }
  .bloc-correction h2 { margin-bottom: 0.5rem; }
  .correction-date { order: -1; margin: 0 0 0.75rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fg); }
  .correction-sign { margin: 1rem 0 0; text-align: right; font-family: var(--font-titre); font-style: italic; color: var(--read-muted); }

  /* Pied générique */
  .pied-article { margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--cardline); font-size: 0.8125rem; line-height: 1.5; color: var(--read-muted); }
  .pied-article em { font-style: normal; }

  /* Fin de page : partage, abonnement */
  .article-end { width: min(92vw, 46rem); margin: 4rem auto 4rem; }
  .article-end .font-mono { font-family: inherit; }
}
/* La règle générique des thèmes colore p/li/td en --read-text : on remet le muet où il faut. */
html[data-theme] .article-page :is(.meta, .verif, .pied-article, .crumb, .chapeau, .chiffre-l, .aside-titre, .legende-titre, .toc-num, .correction-sign, .bloc-sources p, .audio-temps) { color: var(--read-muted); }
html[data-theme] .article-page .pied-article p, html[data-theme] .article-page p.pied-article { color: var(--read-muted); }
html[data-theme] .article-page .correction-date, html[data-theme] .article-page .pourquoi-titre { color: var(--fg); }
html[data-theme] .article-page .surtitre { color: var(--read-link); }

/* Barre d'écoute fixée en bas (mobile) : visible quand le bandeau est sorti de l'écran */
.audio-bar { display: none; }
@media (max-width: 1023px) {
  body.audio-bar-on { padding-bottom: 4.5rem; }
  body.audio-bar-on .audio-bar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.75rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 0.5rem 1rem calc(0.5rem + env(safe-area-inset-bottom)); background: var(--read-surface); border-top: 1px solid var(--read-border); box-shadow: 0 -6px 20px #0002; }
  .audio-bar-titre { margin: 0; font-family: var(--font-titre); font-weight: 650; font-size: 1rem; line-height: 1.25; color: var(--read-text); }
  .audio-bar .audio-temps { margin: 0; font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; color: var(--read-muted); white-space: nowrap; }
  .audio-bar-prog { position: absolute; left: 0; top: -1px; height: 3px; width: 0; background: var(--read-link); }
  .audio-bar .audio-play { display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--read-link); color: var(--read-surface); }
}
html[data-theme="win98"] .article-page :is(.preuve, .verdict, .signal-rub) { border-radius: 0; }

/* Bouton Newsletter : plus spécifique que les règles de couleur de la barre (nav a) selon le thème. */
html[data-theme] #top.top-bar nav a.nav-cta { color: var(--read-surface); }
html[data-theme="win98"] #top.top-bar nav a.nav-cta { color: #000080; }
html[data-theme="winxp"] #top.top-bar nav a.nav-cta { color: #0a3aa0; }
