:root{--bg:#0a0f14;--panel:#10171e;--panel2:#0c1218;--line:#1e2a33;--line2:#2b3d4a;
--txt:#dbe4e9;--txt2:#9fb2bf;--dim:#5f7484;--faint:#43586a;--acc:#2ee58a;--accdark:#03271a;--accline:#21473a}
*{box-sizing:border-box}
body.console{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:15px;line-height:1.6}
.cw{max-width:1500px;margin:0 auto;padding:0 24px}
.cut{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.cut-s{clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.hdr{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.hdr nav{display:flex;gap:18px;align-items:center;font-size:12px;letter-spacing:1.5px;color:var(--txt2)}
.hdr nav a{color:var(--txt2);text-decoration:none}
.hdr nav a.on{color:#e8f5ee;border-bottom:2px solid var(--acc);padding-bottom:2px}
.hdr nav a.rss{color:var(--acc)}
.btn{display:inline-block;background:var(--acc);color:var(--accdark);padding:8px 16px;font-weight:600;font-size:12px;letter-spacing:1px;text-decoration:none;border:0;cursor:pointer}
.btn-o{display:inline-block;border:1px solid var(--line2);color:var(--txt2);padding:7px 14px;font-size:12px;letter-spacing:1px;text-decoration:none;background:transparent}
.statusbar{display:flex;gap:20px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:1.5px;color:var(--dim)}
.panel{background:var(--panel);border:1px solid var(--line);padding:16px}
.tag{font-size:10px;letter-spacing:2px;color:var(--acc)}
.edition{font-size:15px;line-height:1.75;color:var(--txt)}
.edition h1{font-size:26px;line-height:1.3;color:#f0f5f7;border-left:3px solid var(--acc);padding-left:14px}
.edition h2{font-size:19px;color:#f0f5f7;letter-spacing:.5px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:34px}
.edition h3{font-size:15px;color:#e8f5ee}
.edition a{color:var(--acc);text-decoration:none}
.edition a:hover{text-decoration:underline}
.edition img{max-width:100%;border:1px solid var(--line);
  display:block;margin:12px auto}
/* Le lien qui enveloppe une image devient un bloc pleine largeur pour
   que l'image (margin:auto) se centre dedans. Le texte de la puce ou du
   paragraphe reste aligne a gauche : on ne touche pas au text-align. */
.edition a:has(img){display:block;margin:12px 0}
.edition a:has(img) img{margin:0 auto}
.edition li:has(img) img,.edition p:has(img) img{margin:10px auto}
/* --- Puces de l'edition ---------------------------------------------------
   overflow:hidden ci-dessus est indispensable au rendu des images en puce
   (038/039 : sans lui le texte de la puce se colle a DROITE de l'image), mais
   il ROGNE le marqueur natif, dessine hors de la boite de contenu quand
   list-style-position vaut outside. Resultat : des listes sans puce visible.
   On dessine donc la puce nous-memes A L'INTERIEUR de la boite, en couleur
   d'accent du theme (var(--acc)), avec l'aeration du rendu email.
   Ne pas revenir a une puce native tant que overflow:hidden est la. */
.edition li{overflow:hidden}
.edition ul{list-style:none;padding-left:0;margin:10px 0}
.edition ul>li{position:relative;padding-left:20px;margin-bottom:6px}
.edition ul>li::before{content:"";position:absolute;left:3px;top:.66em;
  width:6px;height:6px;background:var(--acc)}
/* Listes imbriquees : puce attenuee pour distinguer les niveaux. */
.edition ul ul>li::before{background:var(--line2)}
/* Listes numerotees : le compteur natif serait rogne lui aussi, on le ramene
   a l'interieur de la boite. */
.edition ol{padding-left:20px;margin:10px 0}
.edition ol>li{list-style-position:inside;margin-bottom:6px}
/* Legende d'image : un <em> seul sur sa ligne, juste apres une image,
   est traite comme une legende (italique deja porte par <em>, gris
   attenue, taille reduite, rapproche de l'image du dessus). */
.edition li > em,
.edition p > em:only-child,
.edition a:has(img) + em,
.edition img + em{
  display:block;color:#8698a5;font-size:13px;line-height:1.5;
  margin:2px 0 10px;font-style:italic;text-align:center}
/* Vignettes YouTube : taille raisonnable. */
/* Vignette YouTube plafonnee a 360px MAIS jamais plus large que son
   conteneur : ce selecteur d'attribut l'emporte sur .edition img
   {max-width:100%}, d'ou un debordement de 10px sur un ecran de 375px
   (conteneur 327px) et une vignette rognee dans une puce. */
.edition a[href*="youtu"] img{max-width:min(360px,100%)}
.edition blockquote{border-left:2px solid var(--line2);margin:0;padding:2px 16px;color:var(--txt2)}
.edition code{background:var(--panel2);padding:1px 6px;font-size:13px}
.edition hr{border:0;border-top:1px solid var(--line)}
.edition table{border-collapse:collapse;width:100%}
.edition th,.edition td{border:1px solid var(--line);padding:6px 10px;font-size:13px;text-align:left}
.edition th{color:var(--dim);font-size:11px;letter-spacing:1px}
.ftr{border-top:1px solid var(--line);margin-top:40px;padding:14px 0 28px;font-size:11px;letter-spacing:.6px;color:var(--faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.ftr a{color:var(--dim);text-decoration:none}
.input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--txt);padding:9px 12px;font-size:13px}
.pagebody{max-width:760px}
.pagebody h1{font-size:24px;color:#f0f5f7}
.pagebody h2{font-size:17px;color:#e8f5ee;margin-top:28px}
.pagebody a{color:var(--acc)}
@media(max-width:820px){.grid2{grid-template-columns:1fr!important}.hdr nav{flex-wrap:wrap}}
.flags{display:inline-flex;align-items:center;gap:6px}
.flags a{display:inline-flex;line-height:0;opacity:.4;padding:2px;
  border:1px solid transparent;transition:opacity .15s}
.flags a:hover{opacity:.8}
.flags a.sel{opacity:1;border-color:#2ee58a}
.flag{width:21px;height:14px;display:block;border:1px solid #0a0f14}

/* ── Encadres outils ─────────────────────────────── */
.toolsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:20px;align-items:start}
.toolsgrid.two{grid-template-columns:1fr 1fr}
.toolsrow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;align-items:start}
.toolsrow.two{align-items:start}
.tcol{display:flex;flex-direction:column;gap:14px}
.sidetools{display:flex;flex-direction:column;gap:12px;margin-top:16px}
/* Accueil 3 colonnes : outils gauche | edition | outils droite */
.home3{display:grid;grid-template-columns:290px minmax(0,1fr) 290px;gap:26px;
  margin-top:20px;align-items:start}
.home3 .colL,.home3 .colR{display:flex;flex-direction:column;gap:13px}
.home3 .edition{min-width:0}
.logbook{border-top:1px solid #1e2a33;padding-top:11px}
.logline{display:block;font-size:12px;color:#9fb2bf;text-decoration:none;
  padding:5px 0;border-bottom:1px solid #131c24}
.logline:hover{color:#dbe4e9}
.loglink{display:block;font-size:11px;letter-spacing:1.5px;color:#2ee58a;
  text-decoration:none;padding-top:9px}
@media(max-width:1320px){
  .home3{grid-template-columns:minmax(0,1fr) 252px}
  .home3 .colL{grid-column:2;grid-row:1}
  .home3 .edition{grid-column:1;grid-row:1/3}
  .home3 .colR{grid-column:2;grid-row:2}
}
@media(max-width:860px){
  .home3{grid-template-columns:1fr}
  .home3 .colL,.home3 .colR,.home3 .edition{grid-column:1;grid-row:auto}
  .home3 .edition{order:-1}
}
.toolcard{padding:13px 14px}
.toolcard .tag{margin-bottom:9px}
.tcline{display:flex;align-items:center;gap:9px}
.tcbig{font-size:13px;color:#f0f5f7;letter-spacing:.5px}
.tcbig2{font-size:23px;color:#f0f5f7;margin:9px 0 2px;letter-spacing:1px}
.tcbig2 small{font-size:12px;color:#5f7484;letter-spacing:1px}
.tcsub{font-size:11px;color:#9fb2bf;margin-top:2px}
.tclist{margin-top:9px}
.tcval{color:#5f7484;margin-left:auto;font-size:10px}
.tcgrid{display:grid;gap:3px;margin-top:9px;font-size:12px;color:#dbe4e9}
.tcgrid span{color:#5f7484;font-size:9px;letter-spacing:1.2px;display:block;text-transform:uppercase}
.tcgrid > div{padding:2px 0}
.tcsrc{font-size:9px;color:#43586a;margin-top:9px;letter-spacing:.5px}
.tcna{color:#5f7484;font-size:12px}
.tchint{font-size:11px;color:#5f7484;margin-top:9px;line-height:1.5}
.tclink{display:inline-block;color:#2ee58a;font-size:11px;letter-spacing:1px;margin-top:10px;text-decoration:none}
.tcform{display:flex;gap:7px;margin-bottom:2px}
.tcform .input{font-size:12px;padding:7px 10px}
.tcform .btn{padding:7px 12px;white-space:nowrap}
.tcdesc{font-size:11px;color:#9fb2bf;line-height:1.55;max-height:120px;overflow:auto}

/* ── Executive Hangars (modele xyxyll) ──────────── */
.leds{display:flex;align-items:center;gap:9px}
.led{width:14px;height:14px;border-radius:50%;display:inline-block;
  border:1px solid #1e2a33;background:#0f1519}
.led.online.live{background:#2ee58a;border-color:#2ee58a;box-shadow:0 0 10px #2ee58aaa}
.led.offline.live{background:#cf222e;border-color:#cf222e;box-shadow:0 0 10px #cf222eaa}
.ledlabel{font-size:16px;letter-spacing:3px}
.ledlabel.online{color:#2ee58a}.ledlabel.offline{color:#cf222e}
.countdown{font-size:26px;color:#f0f5f7;letter-spacing:2px;margin:3px 0 2px;
  font-variant-numeric:tabular-nums}
.countdown.done{color:#e3b341}
.gauge{position:relative;height:5px;background:#0c1218;border:1px solid #1e2a33;margin:9px 0 3px;overflow:hidden}
.gauge > span{position:absolute;left:0;top:0;bottom:0;background:#17694a}
.gauge .gmark{position:absolute;top:0;bottom:0;width:1px;background:#2b3d4a}
.sched{width:100%;border-collapse:collapse;margin-top:5px;font-size:11px}
.sched td{padding:4px 0;border-bottom:1px solid #131c24;color:#dbe4e9;letter-spacing:.5px}
.sched td:first-child{display:flex;align-items:center;gap:7px}
.sched td:nth-child(2){text-align:right;color:#9fb2bf;font-variant-numeric:tabular-nums}
.sched td.cyc{text-align:right;color:#43586a;width:42px}
.toolcard.loading{opacity:.55}
/* ── Cartes RSI ──────────────────────────────────── */
.toolrow{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.8px;color:#dbe4e9;padding:3px 0}
.dot{width:8px;height:8px;display:inline-block;flex-shrink:0;border-radius:50%}
.dot.ok{background:#2ee58a}.dot.warn{background:#e3b341}.dot.err{background:#cf222e}
.dot.off{background:#5f7484}
.dot.big{width:12px;height:12px}
.rsicard{margin-top:12px;border-top:1px solid #1e2a33;padding-top:11px}
.rsihead{display:flex;gap:12px;align-items:center}
.rsihead img{border:1px solid #2b3d4a;background:#0c1319;flex-shrink:0}
.rsiname{font-size:15px;color:#f0f5f7;letter-spacing:.5px}
.rsiname b{color:#2ee58a;font-weight:400}
.orgline{display:flex;gap:10px;align-items:center;margin-top:6px}
.orgline.bord{padding:7px 0;border-bottom:1px solid #131c24}
.orgline img{border:1px solid #1e2a33;background:#0c1319;flex-shrink:0}
.orgname{font-size:13px;color:#dbe4e9;text-decoration:none}
.orgname:hover{color:#2ee58a}
.orgname b{color:#2ee58a;font-weight:400}
.rsierr{margin-top:11px;color:#e3b341;font-size:12px}
.alltools{display:block;text-align:center;font-size:10px;letter-spacing:1.5px;color:#2ee58a;text-decoration:none;padding:8px;border:1px solid #1e2a33;background:#0c1218}

.edition .ytthumb:hover img{border-color:#2ee58a}
@media(max-width:820px){.toolsgrid.two,.toolsrow,.toolsrow.two{grid-template-columns:1fr}}

/* ── Fil du jour ─────────────────────────────────── */
.centercol{min-width:0;display:flex;flex-direction:column;gap:18px}
.home3 .centercol .edition{min-width:0}
.dayfeed{padding:13px 16px}
.dfhead{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.dfdot{width:9px;height:9px;border-radius:50%;background:#2ee58a;
  box-shadow:0 0 8px #2ee58a99;animation:dfpulse 2.4s infinite}
@keyframes dfpulse{50%{opacity:.35}}
.dfnote{margin-left:auto;font-size:9px;letter-spacing:1px;color:#43586a}
.dfitem{display:flex;gap:12px;padding:7px 0;border-top:1px solid #131c24;align-items:baseline}
.dfitem:first-of-type{border-top:0}
.dftime{flex-shrink:0;font-size:11px;color:#2ee58a;font-variant-numeric:tabular-nums;letter-spacing:1px}
.dftext{font-size:13px;color:#dbe4e9;line-height:1.55}
.dflink{color:#2ee58a;text-decoration:none}

/* ── MOTD breaking news ──────────────────────────── */
.motd{display:block;text-decoration:none;background:#1a0f12;
  border:1px solid #6b1f28;border-left:3px solid #cf222e;padding:11px 15px}
.motd:hover{border-color:#cf222e}
.motdtag{display:inline-block;font-size:9px;letter-spacing:2px;color:#0a0f14;
  background:#cf222e;padding:2px 7px;margin-right:9px;vertical-align:middle}
.motdtext{font-size:13.5px;color:#f0f5f7;line-height:1.5}
.motdmeta{display:block;font-size:9px;color:#6b7f8c;letter-spacing:1px;margin-top:6px}
.dfsrc{color:#5f7484;font-size:11px}
/* Fil du jour : hauteur plafonnee, defilement interne */
.dayfeed .dfscroll{max-height:340px;overflow-y:auto}
.dayfeed .dfscroll::-webkit-scrollbar{width:5px}
.dayfeed .dfscroll::-webkit-scrollbar-thumb{background:#1e2a33}

/* ── Observatoire aUEC (page cachee) ─────────────── */
.obswrap{margin:22px 0 40px}
.obshead{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap;
  border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:18px}
.obshead>div:first-child{flex:1 1 340px;min-width:0}
.obstitre{font-size:20px;color:#f0f5f7;margin-top:6px}
.obsnote{color:var(--txt2);font-size:13px;max-width:60ch}
.obsvaleur{text-align:right;min-width:210px}
.obschiffre{font-size:42px;line-height:1;color:var(--acc);font-weight:600}
.obsunite{font-size:11px;letter-spacing:1.5px;color:var(--dim);margin-top:6px}
.obsvar{font-size:12px;margin-top:8px;color:var(--txt2)}
.obsvar.up{color:#f85149}.obsvar.down{color:var(--acc)}
.obsstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;margin-bottom:18px}
.obsstats>div{background:var(--panel);border:1px solid var(--line);padding:12px 14px;
  font-size:19px;color:#f0f5f7}
.obsstats span{display:block;font-size:10px;letter-spacing:2px;color:var(--dim);
  margin-bottom:5px}
.obsgraph{margin-bottom:16px;overflow-x:auto}
.obssvg{width:100%;height:auto;display:block;margin-top:10px;min-width:520px}
.obsgrid{stroke:var(--line);stroke-width:1}
.obsaxe{fill:var(--dim);font-size:10px;font-family:system-ui,sans-serif}
.obsligne{fill:none;stroke:var(--acc);stroke-width:2;stroke-linejoin:round}
.obsaire{fill:var(--acc);opacity:.10;stroke:none}
.obspoint{fill:var(--acc)}
.obsbarre{fill:var(--acc);opacity:.55}
.obsbarre:hover{opacity:.9}
.obsvide{color:var(--dim);font-size:13px;padding:26px 0;text-align:center}
.obsalerte{border-color:#5c2a2a;background:#1a1012;margin-bottom:18px}
.obspied{color:var(--faint);font-size:12px;max-width:80ch;margin-top:18px}

/* ── Observatoire : bloc d'analyse ──────────────── */
.obsanalyse{margin-bottom:16px}
.obsahead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.obsbadge{font-size:10px;letter-spacing:1.5px;padding:4px 9px;border:1px solid}
.obsb-rien_a_signaler{color:var(--acc);border-color:var(--accline)}
.obsb-historique_insuffisant{color:var(--dim);border-color:var(--line2)}
.obsb-mouvement_notable{color:#e3b341;border-color:#5c4a1a}
.obsb-signal_a_interpreter{color:#f85149;border-color:#5c2a2a}
.obsconf{font-size:11px;color:var(--dim);letter-spacing:1px}
.obsdeux{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  gap:22px;margin-top:14px}
@media(max-width:760px){.obsdeux{grid-template-columns:1fr}}
.obsetiq{font-size:10px;letter-spacing:2px;color:var(--dim);
  border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:9px}
.obsetiq-i{color:#9a8bbf;border-color:#2e2740}
.obsfaits{list-style:none;padding:0;margin:0;font-size:13px;color:var(--txt2)}
.obsfaits li{padding:3px 0}
.obsfaits strong{color:#f0f5f7}
.obshypo{font-size:14px;color:var(--txt);margin:0;font-style:italic}
.obsevts{margin:6px 0 0;padding-left:18px;font-size:12px;color:var(--txt2)}
.obsevts li{padding:2px 0}
.obsinsuf{font-size:14px;color:var(--txt2);margin-top:12px}
.obsinsuf strong{color:#f0f5f7}
.obsvide2{color:var(--dim);font-size:13px;margin-top:12px}
.obsavert{font-size:11px;color:var(--faint);margin:14px 0 0;
  border-top:1px solid var(--line);padding-top:10px}
.obssoustitre{font-size:12px;letter-spacing:1px;color:var(--acc);margin-top:4px}
.obsrepere{stroke:var(--line2);stroke-width:1;stroke-dasharray:3 3;opacity:.85}
.obsrepereetiq{fill:var(--txt2);font-size:9px;letter-spacing:.5px;
  font-family:system-ui,sans-serif}
.obsreperenote{font-size:11px;color:var(--faint);margin:8px 0 0}
.obsvitesse{margin-top:10px;display:flex;gap:12px;justify-content:flex-end;
  align-items:baseline;flex-wrap:wrap}
.obsvlabel{font-size:10px;letter-spacing:2px;color:var(--dim)}
.obsv{font-size:12px;color:var(--txt2)}
.obsv strong{color:var(--txt2);font-weight:600}
.obsv-fort strong{color:#f85149}
.obsv-haut strong{color:#e3b341}
.obsm-eleve{color:#f85149}
.obsm-normal{color:var(--acc)}
.obsm-reference_insuffisante{color:var(--dim)}

/* --- Podcast : lecteur de l'episode du jour (note 078) ------------------- */
.podplayer{margin-bottom:16px;padding:14px 16px;background:#0e1a16;border:1px solid #21473a}
.podhead{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap}
.poddot{width:7px;height:7px;background:#2ee58a;border-radius:50%;flex:none}
.podmeta{font-size:11px;color:#5f7484;letter-spacing:1px;text-transform:uppercase}
.podfeed{margin-left:auto;font-size:11px;letter-spacing:1px;color:#2ee58a;text-decoration:none}
.podfeed:hover{text-decoration:underline}
.podtitle{font-size:14px;color:#dbe4e9;margin-bottom:10px}
/* Le lecteur natif est gris clair et ne se stylise quasiment pas : il jurait
   avec le theme. On le masque a l'oeil (sans le retirer du DOM, il reste le
   moteur audio et le repli sans JavaScript) et on pilote des controles aux
   couleurs de Cavalera. Les controles sont de vrais elements de formulaire :
   le bouton est un <button>, la barre un <input type=range>, donc le clavier
   et les lecteurs d'ecran fonctionnent sans code supplementaire. */
.podaudio{display:none}
.podctl{display:flex;align-items:center;gap:12px}
.podplay{flex:none;width:38px;height:38px;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:#2ee58a;color:#04140d;border:0;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  transition:background .12s}
.podplay:hover{background:#4df0a0}
.podplay:focus-visible{outline:2px solid #dbe4e9;outline-offset:2px}
.podplay svg{fill:currentColor;margin-left:1px}
.podplay.playing svg{margin-left:0}
.podseek{flex:1;height:4px;-webkit-appearance:none;appearance:none;
  background:#1e2a33;cursor:pointer;outline:none;min-width:60px}
.podseek::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;
  background:#2ee58a;cursor:pointer;border:0;border-radius:0;transform:rotate(45deg)}
.podseek::-moz-range-thumb{width:11px;height:11px;background:#2ee58a;
  cursor:pointer;border:0;border-radius:0}
.podseek::-moz-range-progress{background:#2ee58a;height:4px}
.podseek:focus-visible{outline:2px solid #dbe4e9;outline-offset:4px}
.podseek:disabled{cursor:default;opacity:.5}
.podtime{flex:none;font-size:11.5px;color:#5f7484;font-variant-numeric:tabular-nums;
  letter-spacing:.5px;min-width:74px;text-align:right}
.poddl{flex:none;color:#5f7484;display:flex;align-items:center;transition:color .12s}
.poddl:hover{color:#2ee58a}
@media (max-width:640px){
  .podfeed{margin-left:0;width:100%}
  .podtitle{font-size:13px}
}

/* Mention de non-affiliation (politique fansite CIG). Discrete mais
   lisible : elle doit etre visible, pas cachee. */
.legal{max-width:1500px;margin:0 auto;padding:18px 24px 34px;
  color:#43586a;font-size:11.5px;line-height:1.65;text-align:center}

/* Drapeau de langue des videos, en image plutot qu'en emoji : Windows ne rend
   pas les emojis drapeaux (il n'assemble pas les indicateurs regionaux) et le
   lectorat est majoritairement sur PC. Selecteur plus specifique que
   « .edition img », sinon le drapeau herite du centrage en bloc applique aux
   illustrations et part seul sur sa ligne. */
.edition img.flag, img.flag{display:inline-block;width:18px;height:13px;
  max-width:18px;vertical-align:-2px;margin:0 3px;border:1px solid #1e2a33;
  border-radius:1px}

/* Liste « lache » : Markdown enveloppe alors le contenu de chaque puce dans
   un <p>, dont la marge haute pousse le texte vers le bas tandis que la puce,
   en position absolue, reste en haut. D'ou un decroche visible entre la puce
   et son texte. On annule la marge du premier paragraphe. */
.edition li > p:first-child{margin-top:0}
.edition li > p:last-child{margin-bottom:0}

/* Carte RMT price watch de la page Outils. La carte entiere est un lien :
   cible de clic large, plus sure au doigt qu'un petit lien texte. */
a.rmtcard{display:block;text-decoration:none;color:inherit;transition:border-color .12s}
a.rmtcard:hover{border-color:#2ee58a}
.rmtunit{font-size:11px;color:#5f7484;letter-spacing:.5px;margin-top:2px}
.rmtvar{font-size:12px;color:#5f7484;margin-top:6px;font-variant-numeric:tabular-nums}
.rmtvar.up{color:#2ee58a}
.rmtvar.down{color:#e5734e}
.rmtvar.big{font-size:20px;font-weight:bold}
.rmtspark{margin:12px 0 6px;line-height:0}
.rmtspark.tall svg{height:74px}
.rmtrow{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.rmtrow.tight{align-items:baseline;justify-content:flex-start}
.rmtcta{margin-top:8px;font-size:11px;letter-spacing:1px;color:#2ee58a;text-transform:uppercase}

/* Page d'abonnement au podcast. Le lien « s'abonner » menait au flux XML brut :
   correct pour une application, illisible pour un humain. */
.podsub{max-width:760px;margin:24px auto 40px;padding:0 20px}
.podsub-h1{font-size:26px;margin:0 0 6px;color:#f0f5f7;font-weight:600}
.podsub-intro{color:#5f7484;margin:0 0 24px;line-height:1.6}
.podsub-block{padding:16px 18px;margin-bottom:16px}
.podsub-apps{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:center;justify-content:center}
/* Les badges officiels et le pave texte n'ont pas la meme hauteur : sans
   align-items:center ils s'etiraient et paraissaient decales. */
.podsub-badge{display:inline-flex;align-items:center;line-height:0;border:0;background:none;padding:0;text-decoration:none}
.podsub-badge img{display:block;height:40px;width:auto}
.podsub-app{display:flex;align-items:center;gap:8px;padding:11px 16px;
  background:#0e1a16;border:1px solid #21473a;color:#dbe4e9;text-decoration:none;
  transition:border-color .12s,background .12s}
a.podsub-app:hover{border-color:#2ee58a;background:#12241d}
.podsub-app.off{opacity:.45;border-color:#1e2a33;background:#0d1218}
.podsub-app-nom{font-size:14px}
.podsub-soon{font-size:10.5px;color:#5f7484;letter-spacing:1px;text-transform:uppercase}
.podsub-help{color:#5f7484;font-size:13px;line-height:1.6;margin:10px 0 0}
.podsub-url{display:flex;gap:8px;margin-top:12px}
.podsub-url input{flex:1;background:#0a0f14;border:1px solid #1e2a33;color:#dbe4e9;
  padding:10px 12px;font-family:inherit;font-size:13px;min-width:0}
.podsub-copy{flex:none;padding:10px 16px;background:#2ee58a;color:#04140d;border:0;
  cursor:pointer;font-size:13px;font-weight:600;transition:background .12s}
.podsub-copy:hover{background:#4df0a0}
.podsub-copy.done{background:#1e2a33;color:#2ee58a}
.podsub-eps{list-style:none;padding:0;margin:12px 0 0}
.podsub-eps li{display:flex;align-items:baseline;gap:10px;padding:8px 0;
  border-bottom:1px solid #16202a}
.podsub-eps li:last-child{border-bottom:0}
.podsub-eps a{color:#dbe4e9;text-decoration:none;flex:1}
.podsub-eps a:hover{color:#2ee58a}
.podsub-meta{color:#5f7484;font-size:12px;font-variant-numeric:tabular-nums}
.podsub-langs{color:#5f7484;font-size:13px;text-align:center;margin-top:20px}
.podsub-langs a{color:#2ee58a;text-decoration:none;margin:0 2px}
@media(max-width:640px){.podsub-url{flex-direction:column}}

/* Annuaire communautaire. Cartes cliquables en entier : cible large, plus
   sure au doigt qu'un lien texte. */
.comm{max-width:1100px;margin:20px auto 40px;padding:0 20px}
.comm-intro{color:#5f7484;line-height:1.7;margin:0 0 26px;max-width:720px}
.comm-theme{margin-bottom:30px}
.comm-h2{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;
  color:#f0f5f7;margin:0 0 12px;letter-spacing:.5px}
.comm-ico{font-size:16px}
.comm-line{flex:1;height:1px;background:#1e2a33}
.comm-n{font-size:11px;color:#43586a;font-variant-numeric:tabular-nums}
.comm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
a.comm-card{display:block;padding:14px 16px;text-decoration:none;color:inherit;
  transition:border-color .12s,background .12s}
a.comm-card:hover{border-color:#2ee58a;background:#0e1a16}
.comm-nom{font-size:14px;font-weight:600;color:#2ee58a;margin-bottom:6px}
.comm-desc{font-size:12.5px;color:#8fa3b0;line-height:1.55;min-height:38px}
.comm-hote{font-size:10.5px;color:#43586a;margin-top:10px;letter-spacing:.5px}
a.comm-card:hover .comm-hote{color:#5f7484}
.comm-note{color:#43586a;font-size:12px;line-height:1.6;margin-top:30px;
  padding-top:18px;border-top:1px solid #16202a;max-width:720px}
@media(max-width:600px){.comm-grid{grid-template-columns:1fr}}

/* --- Page /sources : specifique, le reste reprend les classes .comm-* --- */
.src-nom{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.src-freq{flex:none;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#5f7484;font-weight:400}
.src-avert{margin:0 0 14px;font-size:12px;color:#8a7a45;border-left:2px solid #5c4d1f;padding-left:10px}
.src-yt-desc{color:#5f7484;border-left-color:#21473a}
/* Une source non liee : meme carte, sans affordance de clic. */
.src-nolink{cursor:default}
.src-chaines{display:flex;flex-wrap:wrap;gap:8px}
.src-chaine{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;background:#0e1a16;border:1px solid #21473a;color:#dbe4e9;text-decoration:none;font-size:13px}
a.src-chaine:hover{border-color:#2ee58a;color:#f0f5f7}
.src-flag{font-size:12px;line-height:1}

