:root {
  /* Le fond « papier journal » (choix du fermier, 15/10/2026) : un blanc
     casse chaud, qu'on ne lit pas comme du jaune. */
  --fond: #faf7ef; --encre: #16181d; --pale: #474b52; --rouge: #c4001a;
  --filet: #e6e1d4; --gris: #f0ece2; --barre: #23262d; --carte: #faf7ef;
  /* Noir et jaune (choix du fermier, 15/10/2026 : maquette B + C) : la
     une noire au titre jaune en tete, le jaune en surligneur dessous.
     Le rouge ne dit plus que les baisses. Jamais de jaune en texte sur
     fond clair : il sert de fond, de filet ou de couleur sur du noir. */
  /* Un seul jaune pour le titre et les lignes, un peu pali : plus
     confortable a l'oeil (15/10/2026). */
  --tete: #0f0f10; --jaune: #f4dc6e; --surligneur: #ffe14d; --feutre: #fff0a3;
  /* La lisibilite d'abord (retour du fermier, 14/10/2026) : la police
     d'affiche ne sert qu'au titre du journal ; les titres d'articles en
     serif de texte, gras ; le texte en sans-serif, grand et contraste. */
  --marque: "Noto Serif Display", "DejaVu Serif Condensed", "Liberation Serif", Georgia, serif;
  --titres: "Noto Serif", "DejaVu Serif", "Liberation Serif", Georgia, serif;
  --texte: "Noto Sans", "Lato", "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
  --etroit: "Liberation Sans Narrow", "Nimbus Sans Narrow", "Arial Narrow", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root { --fond: #121316; --encre: #ececec; --pale: #b8bcc3; --filet: #2c2f35;
          --gris: #1d1f24; --barre: #0b0c0e; --carte: #17181c; --rouge: #ff6b6b;
          --tete: #0b0c0e; --surligneur: #ffd200; --feutre: #5c4d00; }
}
body.page-nuit { --fond: #0d0f14; --encre: #ece8df; --pale: #b9b4a9; --filet: #2a2e38;
                 --gris: #151821; --carte: #151821; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.zone-breves { scroll-margin-top: 16px; }
body { margin: 0; background: var(--fond); color: var(--encre); font: 18px/1.7 var(--texte); }
a { color: inherit; }
/* A la maniere du Temps (choix du fermier, 14/10/2026) : titres en serif
   de graisse normale, du blanc, des filets plutot que des cadres. */
h1, h2, h3 { font-family: var(--titres); font-weight: 400; letter-spacing: -0.005em; }

.entete { background: var(--tete); color: #eaeaea;
          box-shadow: 0 0 0 100vmax var(--tete); clip-path: inset(0 -100vmax);
          display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
          max-width: 1240px; margin: 0 auto; padding: 18px 24px 12px; gap: 16px; }
.jour { font: 600 13px/1.3 var(--texte); color: #b9bcc2; }
.marque { text-align: center; }
.cours { justify-self: end; display: flex; flex-direction: column; align-items: flex-end;
         gap: 0; font: 11px/1.2 var(--texte); font-variant-numeric: tabular-nums;
         max-height: 52px; }
.cours-colonnes { display: flex; gap: 14px; }
.cours-col { display: flex; flex-direction: column; align-items: flex-end; }
.cours-ligne { cursor: default; }
.cours-ligne strong { display: inline-block; min-width: 28px; }
.hausse { color: #0a8a3a; font-weight: 700; }
.baisse { color: var(--rouge); font-weight: 700; }
.cours .hausse { color: #3fcf72; }
.cours .baisse { color: #ff6b6b; }
.heure-cours { font-size: 10px; color: #b9bcc2; margin-top: 1px; }
.maquette { font-size: 8px; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.12em;
            color: #b9bcc2; border: 1px dashed #b9bcc2; padding: 0 4px; margin-top: 2px; }
.logo { font: 800 clamp(40px, 6vw, 64px)/1 var(--marque); font-stretch: condensed;
        text-decoration: none; letter-spacing: 0.02em; color: var(--jaune); }
.devise { margin: 8px 0 0; font: italic 400 16px/1.3 var(--titres); letter-spacing: 0.01em;
          color: #eaeaea; }
.barre { background: var(--tete); border-top: 1px solid #2a2a2c;
         border-bottom: 4px solid var(--jaune); }
.barre-dedans { max-width: 1240px; margin: 0 auto; padding: 0 24px; display: flex;
                flex-wrap: wrap; gap: 0 26px; }
.barre a { color: #fff; text-decoration: none; font: 600 14px/1 var(--texte);
           padding: 16px 0 13px; border-bottom: 3px solid transparent; }
.barre a.actif, .barre a:hover { border-color: var(--jaune); color: var(--jaune); }

main { max-width: 1240px; margin: 0 auto; padding: 26px 24px 56px; }
.pastille { display: inline-block; padding: 3px 9px; background: var(--gris); color: var(--pale);
            font: 600 13px/1.4 var(--texte); border-radius: 3px; }
.quand { margin-left: 10px; font: 13px var(--texte); color: var(--pale); }
.suite { font: 700 14px var(--texte); margin: 10px 0 0; }
.suite a { color: var(--encre); text-decoration: underline; text-decoration-color: var(--jaune);
          text-decoration-thickness: 3px; text-underline-offset: 3px; }

.ouverture { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
             gap: 40px; padding-bottom: 32px; border-bottom: 1px solid var(--filet); }
.ouverture.seule { grid-template-columns: 1fr; }
.titre-fort h2 { font-size: clamp(32px, 4vw, 46px); line-height: 1.15; margin: 16px 0 16px; }
.titre-fort h2 a, .breve h3 a { text-decoration: none; }
.titre-fort h2 a { background: linear-gradient(transparent 62%, var(--feutre) 62%); }
.titre-fort h2 a:hover, .breve h3 a:hover { text-decoration: underline; }
.chapo { font-size: 19px; line-height: 1.65; margin: 0; }

.chapeau-encart { background: var(--barre); color: #f2f2f2; padding: 26px 28px 18px;
                  border-top: 6px solid var(--jaune); display: flex; flex-direction: column; }
.chapeau-encart h2 { margin: 0 0 16px; font-size: 32px; line-height: 1.15; color: #fff; }
.chapeau-encart .machine { height: 380px; overflow-y: auto; padding-right: 12px;
                           scrollbar-color: var(--jaune) transparent; }
.chapeau-encart .machine p { margin: 0 0 14px; font: 19px/1.65 var(--texte); }
.chapeau-encart .machine p:last-child { font-style: italic; }
.chapeau-pied { margin: 12px 0 0; font: 13px var(--texte); color: #b9bcc2; }

.corps-une { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px;
             padding-top: 28px; }
.fil { display: grid; grid-template-columns: 1fr; align-content: start; }
.breve { padding: 0 0 22px; margin-bottom: 22px; border-bottom: 1px solid var(--filet); }
.breve h3 { font-size: 25px; line-height: 1.25; margin: 10px 0 8px; }
.breve p { margin: 0; }
.colonne { display: flex; flex-direction: column; gap: 16px; }
.pastille-top { background: var(--surligneur); color: #111; }
.pastille-grave { background: var(--barre); color: #fff; }
.pastille-ciel { background: #1d2b53; color: #fff; }
.zone-cygne { margin-top: 36px; }
.zone-cygne .zone-titre { border-bottom-color: #1d2b53; }
.zone-cygne .carte { border-top-color: var(--filet); }
/* Un ciel noir etoile (demande du fermier, 15/10/2026) : des points
   en degrades, trois tailles de motif pour casser la repetition. */
.tirs { margin-top: 18px; padding: 16px 20px; color: #e9ecf5; column-span: all;
        background-color: #050609;
        background-image:
          radial-gradient(1.8px 1.8px at 12% 18%, #fff 50%, transparent 51%),
          radial-gradient(1.4px 1.4px at 68% 9%, #e6ecff 50%, transparent 51%),
          radial-gradient(2.2px 2.2px at 84% 41%, #fff 50%, transparent 51%),
          radial-gradient(1.4px 1.4px at 33% 57%, #d6deff 50%, transparent 51%),
          radial-gradient(1.6px 1.6px at 51% 83%, #fff 50%, transparent 51%),
          radial-gradient(2px 2px at 7% 92%, #fff3c4 50%, transparent 51%),
          radial-gradient(1.2px 1.2px at 22% 35%, #b4bedb 50%, transparent 51%),
          radial-gradient(1.2px 1.2px at 77% 66%, #b4bedb 50%, transparent 51%),
          radial-gradient(1.2px 1.2px at 45% 12%, #b4bedb 50%, transparent 51%),
          radial-gradient(1.2px 1.2px at 93% 88%, #b4bedb 50%, transparent 51%),
          radial-gradient(1px 1px at 60% 30%, #8d97b5 50%, transparent 51%),
          radial-gradient(1px 1px at 15% 70%, #8d97b5 50%, transparent 51%);
        background-size: 170px 200px, 170px 200px, 170px 200px, 170px 200px, 170px 200px,
                         170px 200px, 100px 120px, 100px 120px, 130px 80px, 130px 80px,
                         70px 60px, 70px 60px; }
.tirs h3 { margin: 0 0 8px; font-size: 22px; color: #fff; }
.tirs ul { margin: 0; padding: 0; list-style: none; }
.tirs li { margin: 0; padding: 10px 0; font: 15px/1.45 var(--texte);
           border-top: 1px solid #23262f; }
.tir-quand { display: block; font: 600 12px var(--texte); letter-spacing: 0.06em;
             text-transform: uppercase; color: var(--jaune); }
.zone-cote { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; }
.zone-cote > div { min-width: 0; }
.zone-cote .tirs { margin-top: 0; display: flex; flex-direction: column; }
.tirs-fusee { display: block; width: 72px; margin: auto auto 0; padding-top: 24px;
              fill: none; stroke: #c9cfe3; stroke-width: 1.6; stroke-linecap: round;
              stroke-linejoin: round; }
.tirs-fusee .flamme { stroke: var(--jaune); stroke-width: 2; }
.tirs .sources, .tirs .sources a { color: #aab3cf; }
.zone-rapaces { margin-top: 0; }
/* De l'air entre le Cancan (et son « voir plus ») et les Rapaces. */
.seconde-partie { margin-top: 44px; }
.seconde-partie .zone-breves { margin-bottom: 36px; }
.zone-rapaces .zone-titre { border-bottom-color: var(--barre); }
.zone-rapaces .carte { border-top-color: var(--filet); }
.breve-seule { max-width: 760px; margin: 0 auto; }
.breve-seule h1 { font-size: clamp(32px, 4.4vw, 48px); line-height: 1.15; margin: 18px 0 20px; }
.corps-breve { font-size: 20px; line-height: 1.65; }
.voisines { display: flex; justify-content: space-between; gap: 20px; margin: 28px 0 8px;
            padding-top: 16px; border-top: 1px solid var(--filet); }
.voisines a { text-decoration: none; font-size: 14px; color: var(--pale); max-width: 45%; }
.voisines a:last-child { text-align: right; }
.voisines strong { color: var(--encre); font: 700 18px/1.2 var(--titres); }
.zone-breves { grid-column: 1 / -1; }
.zone-titre { margin: 0 0 18px; font: 600 15px/1.2 var(--texte); letter-spacing: 0.1em;
              text-transform: uppercase; color: var(--pale); padding-bottom: 10px;
              border-bottom: 3px solid var(--encre); }
.zone-titre span { font: 400 13px var(--texte); letter-spacing: 0; text-transform: none;
                   color: var(--pale); margin-left: 10px;
                   vertical-align: middle; }
.cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
          gap: 18px; }
.carte { display: flex; flex-direction: column; text-decoration: none; padding: 16px 0 18px;
         border-top: 1px solid var(--filet); }
.carte:hover h3 { text-decoration: underline; text-decoration-thickness: 1px;
                  text-underline-offset: 4px; }
.carte h3 { font-size: 23px; line-height: 1.25; margin: 0 0 10px; }
.carte p { margin: 0 0 10px; font-size: 16px; line-height: 1.55; color: var(--encre); display: -webkit-box;
           -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.carte .lire { margin-top: auto; font: 700 13px var(--texte); color: var(--encre); text-decoration: underline; text-decoration-color: var(--jaune);
          text-decoration-thickness: 3px; text-underline-offset: 3px; }
.voir-plus { margin-top: 18px; }
.voir-plus summary { cursor: pointer; display: inline-block; font: 700 14px var(--texte);
                     padding: 10px 20px; border: 2px solid var(--encre); border-radius: 999px;
                     list-style: none; }
.voir-plus summary::-webkit-details-marker { display: none; }
.voir-plus[open] summary { margin-bottom: 18px; }
.edition .bloc:target { background: var(--gris); outline: 6px solid var(--gris); }
.encart-nuit { background: #0d0f14; color: #e7e3da; padding: 20px; }
.encart-nuit .pastille { background: #ff4d5e; color: #fff; }
.encart-nuit .quand { color: #c4bfb4; }
.encart-nuit .bloc p { font: 16px/1.6 var(--texte); margin: 10px 0 0; }
.encart-nuit .suite a { color: #ff4d5e; }
.vide { text-align: center; color: var(--pale); font-style: italic; }

.bandeau { display: inline-block; margin: 0; padding: 4px 10px; background: var(--surligneur);
           color: #111; font: 800 13px/1.2 var(--texte); letter-spacing: 0.12em; }
.sous { margin: 8px 0 0; color: var(--pale); font: 14px/1.4 var(--texte); }
.tete-edition, .tete-rubrique { border-bottom: 1px solid var(--filet); padding-bottom: 14px;
                                margin-bottom: 14px; }
.edition-cancan, .edition-chapeau { column-count: 3; column-gap: 36px;
                                     column-rule: 1px solid var(--filet); }
.edition-nuit { column-count: 2; column-gap: 48px; column-rule: 1px solid var(--filet); }
.edition .bloc { break-inside: avoid; padding: 0 0 16px; margin-bottom: 16px;
                 border-bottom: 1px solid var(--filet); }
.edition-nuit .bloc { border: 0; }
.edition .bloc h3 { font-size: 25px; line-height: 1.25; margin: 0 0 10px; }
.edition .bloc p { margin: 0 0 6px; }
.edition-nuit .bloc p:not(.sources) { font: 18px/1.75 var(--texte); }
.sources { font: 13px/1.5 var(--texte); color: var(--pale); }
.sources a { color: var(--pale); }
.edition .mot-de-la-fin, .edition .chute { column-span: all; }
.mot-de-la-fin { max-width: 900px; margin: 12px 0 28px; padding: 22px 26px; background: var(--gris);
                 border-left: 6px solid var(--jaune); }
.mot-de-la-fin h2 { margin: 0 0 8px; font: 800 13px var(--texte); letter-spacing: 0.14em;
                    text-transform: uppercase; color: var(--encre); }
.mot-de-la-fin .bloc p { font: italic 19px/1.65 var(--titres); }
.signature { text-align: right; font: italic 17px var(--titres); margin: 10px 0 0; }
.chute p { font-style: italic; }
.pied, .colophon { font: 13px/1.5 var(--texte); color: var(--pale); }
.pied { margin-top: 26px; border-top: 1px solid var(--filet); padding-top: 10px; }
/* La boite des lecteurs (docs/avis-lecteurs.md) : trois ronds au trait, le
   choisi se remplit de jaune ; la zone de 200 caracteres n'apparait qu'une
   fois un rond choisi (sans :has, elle reste visible : la boite marche
   partout). Aucun script. */
.lecteur-ecran { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden;
                 clip-path: inset(50%); white-space: nowrap; }
.avis { max-width: 520px; margin: 28px 0 0; padding-top: 14px; border-top: 1px solid var(--filet);
        font: 15px/1.4 var(--texte); }
.avis fieldset { border: 0; margin: 0; padding: 0; }
.avis legend { padding: 0; margin: 0 0 8px; font: 800 13px/1.2 var(--texte);
               letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre); }
.humeur { position: relative; display: inline-block; margin-right: 14px; cursor: pointer; }
.humeur input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.humeur svg { display: block; width: 44px; height: 44px; fill: none; stroke: currentColor;
              stroke-width: 2; stroke-linecap: round; color: var(--pale); }
.humeur:hover svg { color: var(--encre); }
.humeur .rond { fill: transparent; }
.humeur .oeil { fill: currentColor; stroke: none; }
.humeur input:checked + svg { color: #16181d; }
.humeur input:checked + svg .rond { fill: var(--jaune); }
.humeur input:focus-visible + svg { outline: 3px solid var(--encre); outline-offset: 3px;
                                    border-radius: 50%; }
.avis-mot { display: flex; gap: 10px; align-items: flex-end; margin-top: 12px; }
.avis-mot textarea { flex: 1; min-width: 0; padding: 8px 10px; resize: vertical;
                     font: 15px/1.4 var(--texte); color: var(--encre); background: var(--fond);
                     border: 1px solid var(--pale); }
.avis-mot button { width: 44px; height: 44px; border: 0; cursor: pointer;
                   font: 700 22px/1 var(--texte); background: var(--barre); color: var(--jaune); }
.avis-mot button:focus-visible { outline: 3px solid var(--encre); outline-offset: 3px; }
@supports selector(:has(a)) {
  .avis .avis-mot { display: none; }
  .avis:has(input[name="humeur"]:checked) .avis-mot { display: flex; }
}
.avis-note { margin: 8px 0 0; font: 12px/1.4 var(--texte); }
.avis-note a, .colophon .legal a { color: var(--pale); }
.colophon .legal { margin: 6px 0 0; font-size: 12px; }
.page-legale { max-width: 760px; }
.page-legale h1 { font-size: 36px; margin: 0 0 12px; }
.page-legale h2 { font: 800 13px/1.2 var(--texte); letter-spacing: 0.12em;
                  text-transform: uppercase; margin: 26px 0 6px; }
.page-legale p { margin: 0 0 10px; }
.chapeau-legal { font: italic 19px/1.6 var(--titres); }
.piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.colophon { text-align: center; padding: 22px 16px 40px; border-top: 3px solid var(--barre); }
.colophon a { color: var(--encre); text-decoration: underline; text-decoration-color: var(--jaune);
          text-decoration-thickness: 3px; text-underline-offset: 3px; }
.precedentes { margin-top: 36px; }
.precedentes h2 { font-size: 24px; margin: 0 0 8px; }
.liste { list-style: none; padding: 0; margin: 0; max-width: 760px; }
.liste li { padding: 10px 0; border-bottom: 1px solid var(--filet); }
.liste li a { text-decoration: none; font-weight: 700; }

.machine { min-height: 1.6em; }
.machine.ecrit p:not(:empty):last-of-type::after,
.machine.en-attente p:first-child::after { content: "\2589"; color: var(--jaune);
  margin-left: 2px; animation: curseur 1s steps(1) infinite; }
@keyframes curseur { 50% { opacity: 0; } }

.overlay { display: none; position: fixed; inset: 0; z-index: 10; }
.overlay:target { display: block; }
.overlay .voile { position: absolute; inset: 0; background: rgba(10, 10, 10, 0.72); }
.overlay .fenetre { position: relative; max-width: 720px; max-height: calc(100vh - 48px);
                    overflow-y: auto; margin: 24px auto; padding: 28px 30px;
                    background: var(--fond); color: var(--encre);
                    border-top: 6px solid var(--jaune); }
.overlay h2 { font-size: 32px; line-height: 1.15; margin: 14px 0 10px; }
.overlay h3 { font: 800 13px/1.2 var(--texte); letter-spacing: 0.12em;
              text-transform: uppercase; color: var(--encre); margin: 22px 0 6px; }
.overlay ul { padding-left: 20px; margin: 0; }
.overlay li { margin: 0 0 8px; }
.overlay .avertissements { font-size: 14px; color: var(--pale); }
.overlay .avertissements strong { color: var(--encre); }
.overlay .fermer { position: absolute; top: 10px; right: 16px; font: 32px/1 var(--texte);
                   text-decoration: none; color: var(--pale); }

@media (max-width: 1100px) {
  .edition-cancan, .edition-chapeau { column-count: 2; }
  .corps-une { grid-template-columns: 1fr; }
  .colonne { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}
@media (max-width: 820px) {
  .ouverture, .fil { grid-template-columns: 1fr; }
  .edition-cancan, .edition-chapeau, .edition-nuit { column-count: 1; }
  .entete { grid-template-columns: 1fr; text-align: center; }
  .zone-cote { grid-template-columns: 1fr; }
  .jour, .cours { justify-self: center; align-items: center; }
  main, .entete, .barre-dedans { padding-left: 16px; padding-right: 16px; }
  .chapeau-encart .machine { height: 300px; }
  .overlay .fenetre { margin: 0; max-height: 100vh; padding: 22px 16px; }
}
/* Un encadre, borne (demande du fermier, 15/10/2026) : fond jaune
   paille, ecriture noire, filet epais en haut, cadre fin. Le meme en
   mode sombre : l'encadre garde sa lumiere, ses jetons sont redefinis. */
.meteo { margin: 24px 0 48px; padding: 4px 28px 28px;
         --paille: #f8f0d2; --encre: #16181d; --pale: #4f4b3c; --filet: #e6dcae;
         --fond: #fffef8; --rouge: #c4001a; --orange: #c06a00; --violet: #4b5bd0;
         background: var(--paille); color: var(--encre);
         border: 1px solid var(--filet); border-top: 5px solid var(--encre);
         border-bottom: 5px solid var(--encre); }
.meteo .cours-table th, .meteo .cours-table td { border-bottom-color: var(--filet); }
.meteo-sur { margin: 16px 0 0; font: 600 12px var(--texte); letter-spacing: 0.14em;
             text-transform: uppercase; color: var(--pale); }
.meteo code { font-family: "Fira Code", "DejaVu Sans Mono", monospace; }
.meteo-tete { border-bottom: 1px solid var(--encre);
              padding: 6px 0 12px; display: flex; flex-wrap: wrap; justify-content: space-between;
              align-items: baseline; gap: 12px; }
.meteo-tete h2 { margin: 0; font-size: clamp(32px, 4vw, 42px); }
.meteo-tete p { margin: 0; font-size: 14px; color: var(--pale); }
.meteo-chaines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin-top: 24px; }
.meteo h3 { margin: 0; padding-bottom: 6px; font: 600 13px var(--texte); letter-spacing: 0.12em;
            text-transform: uppercase; border-bottom: 2px solid var(--encre); }
.meteo-bitcoin > h3 { border-bottom-color: var(--orange); }
.meteo-ethereum > h3 { border-bottom-color: var(--violet); }
.cours-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.cours-table th, .cours-table td { padding: 9px 6px; border-bottom: 1px solid var(--filet);
                                   text-align: left; font-weight: 400; }
.cours-table thead th { font-size: 12px; color: var(--pale); text-transform: uppercase; letter-spacing: 0.06em; }
.cours-table .nombre { text-align: right; white-space: nowrap; }
.cours-table .tendance { width: 26%; }
.courbe { display: block; width: 100%; height: 24px; }
.courbe polyline { fill: none; stroke: var(--encre); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.courbe-attente { color: var(--pale); }
.cours-table .manquante { color: var(--pale); font-size: 13px; font-style: italic; }
.hausse { color: #0a7a35; font-family: "Fira Code", monospace; }
.baisse { color: var(--rouge); font-family: "Fira Code", monospace; }
.egal { color: var(--pale); font-family: "Fira Code", monospace; }
.meteo-note { margin: 12px 0 0; font-size: 15px; }
.jauge { height: 6px; background: var(--filet); margin-top: 6px; }
.jauge svg, .gpu-barre svg { display: block; width: 100%; height: 100%; }
.jauge rect { fill: var(--orange); }
.meteo-sources { margin: 8px 0 0; font-size: 12px; color: var(--pale); }
.meteo-sources a { color: var(--pale); }
.verdict { margin-top: 14px; padding: 12px 16px; background: var(--fond); border-top: 2px solid var(--violet); }
.verdict p { margin: 0; font-size: 14px; }
.verdict .verdict-titre { font: 400 20px var(--titres); }
.baleine { margin-top: 24px; }
.baleine-montant { margin: 10px 0 0; font-size: 30px; }
.baleine-message { margin: 4px 0 0; font: italic 16px var(--titres); }
.meteo-petits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 34px; }
.meteo-petit .cours-table th, .meteo-petit .cours-table td { padding: 7px 4px; }
.gpu-barres { list-style: none; margin: 8px 0 0; padding: 0; }
.gpu-barres li { display: grid; grid-template-columns: 90px 1fr 76px; gap: 8px; align-items: center;
                 font-size: 13px; padding: 4px 0; border-bottom: 1px solid var(--filet); }
.gpu-barres code { text-align: right; }
.gpu-barre { height: 6px; background: var(--filet); }
.gpu-barre rect { fill: var(--encre); }
.palmares { margin: 8px 0 0; padding-left: 22px; font-size: 14px; }
.palmares code { word-break: break-all; }
.meteo-suite { margin-top: 20px; }
/* En marge des courbes : fin, pastel, sobre (retour du fermier, 15/10/2026) */
.meteo-commentaire { --pastel: #f2e8be; --pastel-encre: #2f2c22; --pastel-filet: #d8cc94;
                     margin-top: 30px; padding: 20px 28px 16px; background: var(--pastel);
                     border-left: 2px solid var(--pastel-filet); color: var(--pastel-encre); }
.meteo-commentaire h3 { margin: 0 0 6px; font: 600 11px/1.4 var(--texte);
                        letter-spacing: 0.16em; text-transform: uppercase; color: var(--pale); }
.meteo-commentaire-texte { margin: 0 0 1.1em; font: 400 16px/1.75 var(--titres); }
.meteo-commentaire-texte:last-of-type { margin-bottom: 0; }
.meteo-coupures { margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--filet); }
.meteo-coupures h4 { margin: 0 0 6px; font: 600 12px var(--texte); letter-spacing: 0.08em;
                     text-transform: uppercase; color: var(--pale); }
.meteo-coupures ul { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.45; }
.meteo-coupures li { margin: 0 0 8px; }
.meteo-coupures a { color: inherit; }
.meteo-coupure-heure { display: block; font-size: 12px; color: var(--pale); }
.meteo-hors-norme { margin-left: 8px; padding: 1px 7px; background: #efe3cf; color: #6b5330;
                    font: 600 11px/1.6 var(--texte); letter-spacing: 0.04em; border-radius: 2px;
                    white-space: nowrap; }
.meteo-mediane { display: block; font: 12px var(--texte); color: var(--pale); }
.meteo-mediane code { font-size: 12px; }
tr.hors-norme > * { background: #f6f0e6; }
@media (prefers-color-scheme: dark) {
  .meteo-hors-norme { background: #4a3f2c; color: #f0dfc0; }
  tr.hors-norme > * { background: #2a261f; }
}
.meteo-commentaire-theme { font: 600 12px var(--texte); letter-spacing: 0.1em;
                           text-transform: uppercase; color: var(--pale); }
.meteo-commentaire-pied { margin: 12px 0 0; padding-top: 8px; border-top: 1px solid var(--pastel-filet);
                          font: 12px/1.5 var(--texte); color: var(--pale); }
.meteo-commentaire-pied a { color: inherit; }
@media (max-width: 960px) {
  .meteo-chaines, .meteo-petits { grid-template-columns: 1fr; gap: 28px; }
  .meteo { padding: 4px 16px 20px; }
}
/* La sante des sources (15/10/2026) : gris, filets, pastels. */
.sante h1 { margin: 6px 0 4px; font: 400 40px/1.15 var(--titres); }
.sante-chapo { margin: 0 0 18px; color: var(--pale); }
.sante-comptes { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0 0 18px; }
.sante-comptes li { padding: 8px 14px; background: var(--gris); border-left: 3px solid var(--filet);
                    font-size: 14px; }
.sante-comptes a { color: inherit; text-decoration: none; }
.sante-comptes strong { font: 500 20px "Fira Code", "DejaVu Sans Mono", monospace; margin-right: 4px; }
.sante-comptes .sante-failing { border-left-color: #c98b8b; }
.sante-comptes .sante-degraded { border-left-color: #d9b77a; }
.sante-comptes .sante-silent { border-left-color: #a9b4c2; }
.sante-comptes .sante-healthy { border-left-color: #9fbf9f; }
.sante-filtres { display: flex; flex-wrap: wrap; gap: 18px; margin: 0 0 8px; font-size: 14px; color: var(--pale); }
.sante-filtres select { margin-left: 6px; font: inherit; padding: 2px 4px; }
.sante-etat { margin: 26px 0 0; padding-top: 8px; border-top: 2px solid var(--encre); }
.sante-etat h2 { display: inline; font: 400 24px var(--titres); }
.sante-nombre { font: 500 16px "Fira Code", "DejaVu Sans Mono", monospace; color: var(--pale); }
.sante-sens { display: inline; margin-left: 10px; font-size: 14px; color: var(--pale); }
.sante-etat summary { cursor: pointer; padding: 4px 0; }
.sante-table { margin-top: 10px; font-size: 14px; }
.sante-table th[scope="row"] { font-weight: 600; }
.sante-erreur { font-family: "Fira Code", "DejaVu Sans Mono", monospace; font-size: 13px; }
.sante-vide, .sante-muet { color: var(--pale); }
.sante-pied { margin-top: 30px; padding-top: 10px; border-top: 1px solid var(--filet);
              font-size: 13px; color: var(--pale); }
@media (max-width: 800px) { .sante-table { display: block; overflow-x: auto; } }
