/* ============================================================================
   Leversens Trading Tool v6 (25/09/2026) : direction "La Note de Recherche".
   Le dashboard est la note quotidienne d'une maison de recherche privée :
   papier ivoire, encre bleue-noire, filets dorés dans le corps de page, chiffres
   mono posés comme des cotations imprimées. Un seul vestige du terminal : le
   bandeau des juges, encre inversée pleine largeur.
   v6 : barre de navigation et pied de page communs (nav.css, shell.css), donc
   plus aucun sélecteur générique header/footer/main ici ; aucun texte sous
   11 px ; boutons et pastilles d'au moins 24 px, sans or ; contrastes AA ;
   place réservée pour les blocs remplis en JavaScript (stabilité visuelle).
   Charte : ink #0a0e1a · or #c8a04a (filets du corps) · bleu #3a7bd5 · Inter/Crimson Pro/JB Mono
   ========================================================================== */
/* repli aux métriques de Crimson Pro (Georgia réduite à 90,8 %) : le titre ne change pas de nombre de lignes quand la police arrive */
@font-face{font-family:"Crimson Fallback";src:local("Georgia");size-adjust:90.8%}
:root{
  --paper:#f7f3ec; --ivory:#fdfbf7; --well:#f0ebe1; --past:#efe9dd;
  --ink:#0a0e1a; --body-c:#2c3444; --sec:#5c6472; --meta:#6b665a;
  --line:#e7e0d2; --line2:#d8cfbc; --gold-line:#d9bc7a;
  --blue:#3a7bd5; --blue-t:#2760ad; --blue-wash:#e9f0fa;
  --gold:#c8a04a; --gold-t:#7a6230; --gold-wash:#f3ead6;
  --green:#16a34a; --green-t:#0b6b31; --green-wash:#e5f3e9;
  --red:#dc2626; --red-t:#b41f1f; --red-wash:#fbeae6;
  /* alias hérités (app.js pose ces variables en inline) */
  --green-hi:#0b6b31; --red-hi:#b41f1f; --grey:#5c6472;
  --gold-hi:#7a6230; --light:#0a0e1a;
}
*{margin:0;box-sizing:border-box}
html{background:var(--paper);color-scheme:light}
body.tool-page{min-height:100vh;background:var(--paper);color:var(--body-c);
  font-family:Inter,system-ui,sans-serif;font-size:13px;-webkit-font-smoothing:antialiased;
  position:relative;padding-bottom:2.6rem}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* grain de papier + légère vignette : fixes, imperceptibles, jamais animés */
body.tool-page::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}
body.tool-page::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 120% 90% at 50% 8%,transparent 60%,rgba(10,14,26,.045))}
main.tool,body.tool-page .site-foot{position:relative;z-index:1}
.tool .mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.tool .muted{color:var(--meta);font-weight:400;font-size:.75rem;text-transform:none;letter-spacing:0}
.tool .up{color:var(--green-t)} .tool .down{color:var(--red-t)} .tool .flat{color:var(--sec)}
.tool .gold-t{color:var(--gold-t)}
.tool .dot{display:inline-block;width:7px;height:7px;border-radius:50%}
.tool .star{color:var(--gold-t);letter-spacing:.06em}
.tool ::selection{background:#c8a04a3d}
.tool button:focus-visible,.tool a:focus-visible,.tool summary:focus-visible,.tool [tabindex]:focus-visible{outline:2px solid var(--blue-t);outline-offset:2px}

/* tête de rubrique : le double filet d'autorité (2px encre + 1px or) */
.tool h2{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-t);
  border-top:2px solid var(--ink);position:relative;padding-top:.62rem;margin-bottom:.75rem;line-height:1.5}
.tool h2::after{content:"";position:absolute;left:0;right:0;top:3px;height:1px;background:var(--gold-line)}

/* ---- tête de page : titre et chapô centrés ---- */
.tool-head{max-width:46rem;margin:0 auto;padding:1.5rem 1.4rem .4rem;text-align:center}
.tool-head h1{font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;font-weight:600;font-size:clamp(1.9rem,3.6vw,2.4rem);line-height:1.15;color:var(--ink)}
.tool-head .lede{margin-top:.45rem;font-size:.95rem;line-height:1.55;color:var(--sec)}

/* ---- ligne d'état du marché (régime, séance, heure, guide) ---- */
.status-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem .6rem;padding:.55rem 1.4rem .2rem;min-height:2.4rem}
.clock{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--sec)}
.chip,.session{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.03em;padding:.26rem .6rem;
  border-radius:2px;border:1px solid var(--line2);color:var(--sec);background:var(--ivory);line-height:1.4}
.session.OPEN{color:var(--green-t);border-color:#16a34a55}
.session.HALT{color:var(--gold-t);border-color:var(--gold-line)}
.chip.RISK-ON{color:var(--green-t)} .chip.RISK-OFF{color:var(--red-t)}
.guide-link{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line2);
  border-radius:50%;color:var(--sec);text-decoration:none;font-size:.8rem;background:var(--ivory)}
.guide-link:hover{color:var(--ink);border-color:var(--ink)}

/* ---- contrôles (pastilles construites à la génération) ---- */
.controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;padding:.6rem 1.4rem .7rem;align-items:center;
  border-bottom:1px solid var(--line);max-width:1460px;margin:0 auto}
.pill-group{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}
.grp-label{font-size:.6875rem;text-transform:uppercase;letter-spacing:.16em;color:var(--meta);margin-right:.3rem}
.pill{font-family:'JetBrains Mono',monospace;font-size:.75rem;min-height:28px;padding:.3rem .66rem;border-radius:2px;
  border:1px solid var(--line2);background:var(--ivory);color:var(--sec);cursor:pointer;transition:border-color .14s,color .14s,background .14s}
.pill:hover{border-color:var(--ink);color:var(--ink)}
.pill.on{border-color:var(--ink);color:var(--ivory);background:var(--ink);font-weight:700}

/* ---- juges : le vestige du terminal, ruban d'encre pleine largeur ---- */
.judges{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:0;min-height:2.3rem;
  padding:0 1.4rem;background:var(--ink);border-top:2px solid var(--blue);overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.judges::-webkit-scrollbar{display:none}
.judge{display:inline-flex;gap:.45rem;align-items:baseline;padding:.46rem .95rem .46rem 0;margin-right:.95rem;
  border-right:1px solid #f7f3ec1e;flex:none}
.judge:last-child{border-right:0}
.judge .k{font-size:.6875rem;text-transform:uppercase;letter-spacing:.12em;color:#a3aab8}
.judge .v{font-family:'JetBrains Mono',monospace;font-size:.82rem;font-weight:500;font-variant-numeric:tabular-nums;color:#f7f3ec}
.judge .c{font-family:'JetBrains Mono',monospace;font-size:.72rem}
.judge .c.up{color:#3ecf70}.judge .c.down{color:#f26666}.judge .c.flat{color:#a3aab8}
.judge .v.wet{animation:wetink 1.2s ease-out}
@keyframes wetink{0%{color:#8ec2ff}100%{color:#f7f3ec}}

/* ---- alertes : lisérés d'encre sur lavis (une ligne toujours réservée) ---- */
.alerts{max-width:1460px;margin:0 auto;padding:.55rem 1.4rem 0;display:flex;flex-direction:column;gap:.4rem;width:100%;min-height:2.6rem}
.alert{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;line-height:1.5;padding:.45rem .75rem;border-left:3px solid;min-height:2.05rem}
.alert .ic{flex:none;font-size:.88rem;position:relative;top:.05rem}
.alert.warn{border-color:var(--gold);background:var(--gold-wash);color:#5c4a1e}
.alert.danger{border-color:var(--red);background:var(--red-wash);color:#7c1d1d}
.alert.info{border-color:var(--blue);background:var(--blue-wash);color:#1e3a5c}
.alert-none{font-size:.78rem;line-height:1.5;color:var(--meta);padding:.45rem .75rem;border-left:3px solid var(--line);min-height:2.05rem}
.alert-err{font-size:.82rem;line-height:1.5;padding:.45rem .75rem;border-left:3px solid var(--red);background:var(--red-wash);color:#7c1d1d}

/* ---- gabarit de journal : colonne majeure + colonne mineure, filet vertical ---- */
.tool-grid{display:grid;grid-template-columns:minmax(360px,11fr) minmax(330px,9fr);padding:.4rem 1.4rem .9rem;max-width:1460px;margin:0 auto;gap:0}
.col-left{padding-right:1.2rem;display:flex;flex-direction:column;min-width:0}
.col-right{border-left:1px solid var(--line);padding-left:1.2rem;display:flex;flex-direction:column;min-width:0}
.tool .card{padding:1rem 0;border-bottom:1px solid var(--line)}
.col-left>.card:last-child,.col-right>.card:last-child{border-bottom:0}
.tool .timeline-card{max-width:1460px;margin:0 auto;width:100%;padding:.95rem 1.4rem;border-top:1px solid var(--line2)}
@media(max-width:920px){
  .tool-grid{grid-template-columns:1fr}
  .col-right{border-left:0;padding-left:0}
  .col-left{padding-right:0}
}

/* ---- score ---- */
.score-card{padding-top:1.05rem}
.score-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;min-height:7.4rem}
.asset-name{font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;font-size:1.55rem;font-weight:600;color:var(--ink);min-height:2.1rem;line-height:1.35}
.asset-price{margin-top:.28rem;font-size:1.02rem;color:var(--ink);min-height:1.6rem}
.age{font-size:.6875rem;color:var(--meta);border:1px solid var(--line);border-radius:2px;padding:.06rem .45rem;margin-left:.3rem;background:var(--ivory);white-space:nowrap}
.contract-row{margin-top:.45rem;display:flex;gap:.3rem;align-items:center;font-size:.75rem;color:var(--sec);min-height:28px}
.contract-row .pill{font-size:.72rem;min-height:26px;padding:.14rem .55rem}
.score-main{text-align:right;flex:none}
.score-num{font-size:3rem;font-weight:500;line-height:1;min-height:3rem;transition:color .4s}
.score-num.up{color:var(--green-t)}.score-num.down{color:var(--red-t)}.score-num.flat{color:var(--sec)}
.score-label{font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;font-size:1.35rem;font-weight:600;letter-spacing:.01em;margin-top:.12rem;min-height:1.9rem;line-height:1.4}
.score-conf{font-size:.75rem;color:var(--sec);margin-top:.2rem;font-family:'JetBrains Mono',monospace;min-height:1.2rem}
.gauge{margin:1rem 0 .35rem}
.gauge-track{position:relative;height:7px;border-radius:2px;background:linear-gradient(90deg,
  var(--red) 0%,#dc262638 34%,var(--gold-wash) 47%,var(--gold-wash) 53%,#16a34a38 66%,var(--green) 100%);
  border:1px solid var(--line2)}
.gauge-marker{position:absolute;top:-5px;width:2px;height:17px;background:var(--ink);left:50%;
  transition:left .8s cubic-bezier(.3,.8,.3,1)}
.gauge-marker::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-4px;
  width:6px;height:6px;border-radius:50%;background:var(--gold);border:1px solid var(--ink)}
.gauge-scale{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--meta);margin-top:.42rem;font-family:'JetBrains Mono',monospace}
/* piliers : rangée tabulaire à filets, hauteur fixe */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);margin-top:.85rem;border-top:1px solid var(--line)}
.pillar{padding:.55rem .8rem .5rem;border-right:1px solid var(--line);min-height:5.1rem}
.pillar:last-child{border-right:0}
.pillar:first-child{padding-left:0}
.pillar .pk{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--meta);text-transform:uppercase;letter-spacing:.1em}
.pillar .pv{font-family:'JetBrains Mono',monospace;font-size:1.05rem;font-weight:600;margin:.22rem 0 .3rem;color:var(--ink);min-height:1.45rem}
.pillar .pv.up{color:var(--green-t)}.pillar .pv.down{color:var(--red-t)}
.pillar .pv.small{font-size:.75rem;font-weight:400;color:var(--sec)}
.pillar .bar{height:3px;background:var(--well);position:relative;overflow:hidden}
.pillar .fill{position:absolute;top:0;bottom:0;transition:all .7s}
.pillar .pn{font-size:.6875rem;color:var(--meta);margin-top:.3rem;min-height:1rem;font-family:'JetBrains Mono',monospace;line-height:1.35}
.pillar.na{opacity:.6}
@media(max-width:560px){.pillars{grid-template-columns:1fr}.pillar{border-right:0;padding-left:0;min-height:4.6rem}}

/* ---- lecture de la machine : l'éditorial, sur ivoire, avec lettrine ---- */
.ai-read{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.75rem}
.ai-read .ai-k{display:flex;align-items:center;gap:.45rem;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-t)}
.ai-read .ai-k .pulse{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.ai-read .ai-t{margin-top:.5rem;font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;font-size:1.06rem;line-height:1.6;color:var(--ink);
  min-height:9.4em;transition:opacity .22s;background:var(--ivory);padding:.7rem .85rem;border:1px solid var(--line)}
.ai-read .ai-t::first-letter{font-size:2.1em;font-weight:600;float:left;line-height:.85;padding:.04em .12em 0 0;color:var(--ink)}
.ai-read .ai-t.swap{opacity:.3}
.ai-read .tw-rest{visibility:hidden}
.ai-read .caret{display:inline-block;width:7px;margin-right:-7px;height:1em;background:var(--gold);vertical-align:text-bottom}
.ai-read .ai-n{font-style:italic;color:var(--sec);font-size:.82rem;line-height:1.55;margin-top:.5rem;border-top:1px dotted var(--line2);padding-top:.45rem;min-height:6.2em}
.ai-read .ai-note{display:block;font-style:normal;font-size:.72rem;color:var(--meta);margin-top:.25rem}
@media(max-width:560px){.ai-read .ai-t{min-height:15em}.ai-read .ai-n{min-height:9.5em}}

/* ---- précision mesurée : chiffres clés en tuiles, détail en accordéons ---- */
.precision-card{min-height:17rem}
.prec-scope{font-size:.75rem;color:var(--sec);margin:-.2rem 0 .55rem}
.prec-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}
@media(max-width:1180px){.prec-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.prec-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ptile{background:var(--ivory);border:1px solid var(--line);border-top:2px solid var(--ink);padding:.5rem .6rem .45rem;min-height:4.6rem}
.ptile .pt-k{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--meta);line-height:1.35}
.ptile .pt-v{font-size:.95rem;font-weight:600;color:var(--ink);margin-top:.2rem;line-height:1.3}
.ptile .pt-v.txt{font-size:.84rem}
.ptile .pt-s{font-size:.6875rem;color:var(--meta);margin-top:.12rem;line-height:1.3}
.prec-verdict{margin-top:.65rem;font-size:.84rem;line-height:1.5;color:var(--body-c);padding:.45rem .7rem;border-left:3px solid var(--sec);background:var(--well);min-height:2.3rem}
.prec-verdict.ok{border-color:var(--green)}
.prec-verdict.ko{border-color:var(--red-t)}
.prec-line{font-size:.78rem;line-height:1.5;color:var(--sec);margin-top:.35rem;min-height:1.2rem}
.prec-more{margin-top:.55rem;border-top:1px solid var(--line)}
.prec-more summary{cursor:pointer;min-height:32px;display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600;color:var(--ink);list-style:none}
.prec-more summary::-webkit-details-marker{display:none}
.prec-more summary::after{content:"+";font-family:'JetBrains Mono',monospace;color:var(--sec);font-size:1rem}
.prec-more[open] summary::after{content:"−"}
.prec-src{margin:.3rem 0 .55rem;display:inline-flex}
.table-wrap{overflow-x:auto;max-width:100%}
.prec-table{border-collapse:collapse;width:100%;font-size:.78rem;min-width:420px}
.prec-table caption{text-align:left;font-size:.75rem;color:var(--sec);padding:.1rem 0 .4rem;font-family:'JetBrains Mono',monospace}
.prec-table th{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--meta);font-weight:600;text-align:left;padding:.35rem .4rem;border-bottom:1px solid var(--line2)}
.prec-table tbody th{font-family:'JetBrains Mono',monospace;text-transform:none;letter-spacing:0;color:var(--ink);font-size:.75rem;white-space:nowrap}
.prec-table td{padding:.35rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
.prec-table td .cv{display:block;font-weight:600;color:var(--ink)}
.prec-table td .cn{display:block;font-size:.6875rem;color:var(--meta);white-space:nowrap}
.prec-table td.ko .cv{color:var(--sec)}
.prec-table td.ok .cv{color:var(--green-t)}
.prec-table td.na{color:var(--meta)}
.prec-table td.cur{background:var(--blue-wash)}
.prec-stamp{font-size:.72rem;color:var(--meta);margin-top:.4rem}
.prec-method{font-size:.8rem;line-height:1.55;color:var(--sec);padding-bottom:.4rem}
.prec-method p{margin:.35rem 0}
.prec-method ul{margin:.3rem 0 0 1.1rem}
.prec-method li{margin:.15rem 0}

/* ---- explication ---- */
.themes{list-style:none;display:flex;flex-direction:column;padding:0}
.themes li{display:flex;gap:.55rem;align-items:baseline;line-height:1.42;padding:.42rem 0;border-bottom:1px solid var(--line)}
.themes li:last-child{border-bottom:0}
.themes .dot{flex:none;position:relative;top:1px}
.themes .tt{font-size:.86rem;color:var(--ink)}
.themes .meta{display:block;font-size:.6875rem;color:var(--meta);margin-top:.16rem;font-family:'JetBrains Mono',monospace}
#no-themes{font-size:.8rem;line-height:1.5}

/* ---- quant ---- */
.quant-body{font-size:.8rem;min-height:9rem}
.quant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 1.4rem}
.qcell{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;padding:.4rem 0;border-bottom:1px solid var(--line)}
.qcell .qk{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--meta)}
.qcell .qv{font-family:'JetBrains Mono',monospace;font-size:.84rem;text-align:right;color:var(--ink)}
.hr-chip{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.6875rem;padding:.08rem .42rem;border-radius:2px;border:1px solid var(--line2);margin:.15rem .22rem 0 0;background:var(--ivory)}
.hr-chip.ok{color:var(--green-t);border-color:#16a34a55}
.hr-chip.ko{color:var(--meta);text-decoration:line-through}
.quant-note{font-size:.75rem;color:var(--sec);line-height:1.55;margin-top:.55rem}

/* ---- structure intraday + note décisionnelle ---- */
#struct-body{min-height:8.5rem}
.struct-verdict{display:flex;align-items:baseline;gap:.7rem;margin:.2rem 0 .5rem;flex-wrap:wrap}
.struct-verdict .sv{font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;font-size:1.12rem;font-weight:600;color:var(--ink)}
.struct-note{display:inline-flex;align-items:baseline;gap:.4rem;font-family:'JetBrains Mono',monospace;font-size:.75rem;
  padding:.16rem .55rem;border:1px solid var(--line2);border-radius:2px;background:var(--ivory);color:var(--sec)}
.struct-note.valid{border-color:#16a34a66;color:var(--green-t);background:var(--green-wash)}
.struct-note.veto{border-color:var(--line2);color:var(--meta)}
.struct-flags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}
.sflag{font-family:'JetBrains Mono',monospace;font-size:.6875rem;padding:.12rem .5rem;border:1px solid var(--line2);border-radius:2px;background:var(--ivory);color:var(--sec)}
.sflag.on{border-color:var(--gold-line);color:var(--gold-t);background:var(--gold-wash)}
.sflag.up{color:var(--green-t);border-color:#16a34a55}
.sflag.down{color:var(--red-t);border-color:#dc262649}

/* ---- fil de news : liste à filets dans un creux de papier (hauteur fixe) ---- */
.news-card{display:flex;flex-direction:column;padding-top:1.05rem}
.news-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.news-head h2{margin-bottom:0}
.live-dot{font-size:.6875rem;color:var(--green-t);border:1px solid #16a34a55;border-radius:2px;padding:.02rem .36rem;margin-left:.35rem;vertical-align:middle;letter-spacing:.1em;background:var(--green-wash)}
.news-tools{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.seg{display:flex;border:1px solid var(--line2);border-radius:2px;overflow:hidden;background:var(--ivory)}
.seg button{font-family:'JetBrains Mono',monospace;font-size:.72rem;min-height:28px;padding:.28rem .62rem;background:transparent;border:0;color:var(--sec);cursor:pointer;border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--ink);color:var(--ivory);font-weight:700}
.tts{font-size:.8rem;min-height:28px;min-width:32px;background:var(--ivory);border:1px solid var(--line2);border-radius:2px;color:var(--sec);cursor:pointer;padding:.24rem .5rem}
.tts.on{color:var(--ivory);border-color:var(--ink);background:var(--ink)}
#news-count{margin:.35rem 0 .4rem;min-height:1.1rem;display:block}
.newsfeed{position:relative;overflow-y:auto;height:680px;scrollbar-width:thin;scrollbar-color:var(--line2) transparent;
  background:var(--well);border:1px solid var(--line);padding:0 .55rem}
@media(max-width:920px){.newsfeed{height:430px}}
.newsfeed::-webkit-scrollbar{width:7px}
.newsfeed::-webkit-scrollbar-thumb{background:var(--line2);border-radius:99px}
.nrow{display:grid;grid-template-columns:2.9rem 9px 1fr;gap:.5rem;padding:.45rem .2rem;border-bottom:1px solid var(--line);align-items:baseline;transition:background .15s}
.nrow:last-child{border-bottom:0}
.nrow:hover{background:var(--ivory)}
.nrow .nt{font-family:'JetBrains Mono',monospace;font-size:.6875rem;color:var(--meta)}
.nrow .dot{position:relative;top:1px}
.nrow .ntitle{font-size:.84rem;line-height:1.4;color:var(--body-c)}
.nrow.hi .ntitle{font-weight:600;color:var(--ink)}
.nrow .nmeta{display:block;font-size:.6875rem;color:var(--meta);font-family:'JetBrains Mono',monospace;margin-top:.14rem}
/* titres affichés mais hors score (sc = 0) : grisés, motif en infobulle */
.nrow.nosc .ntitle{color:var(--sec);font-weight:400}
.nrow.nosc .dot{opacity:.35}
.nrow .xsc{border-bottom:1px dotted var(--meta);cursor:help}
.nrow.fresh{animation:freshbg 7s ease-out}
@keyframes freshbg{0%{background:var(--gold-wash)}100%{background:transparent}}

/* ---- frise chronologique : la piste bouge, on la saisit ---- */
.tl-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.tl-legend{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.6875rem;color:var(--sec)}
.cal-nav{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.55rem;align-items:center;min-height:28px}
.cal-nav .pill{font-size:.72rem;min-height:26px;padding:.18rem .55rem}
.cal-nav .pill.now{color:var(--ink);border-color:var(--ink)}
.frise{position:relative;height:172px;margin-top:.6rem;overflow:hidden;cursor:grab;
  background:var(--paper);border:1px solid var(--line);border-radius:2px;user-select:none;touch-action:pan-y;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent)}
.frise.grabbing{cursor:grabbing}
.frise-track{position:absolute;top:0;bottom:0;left:0;will-change:transform}
.frise-past{position:absolute;top:0;bottom:0;left:0;background:var(--past)}
.faxis{position:absolute;left:0;right:0;top:96px;height:1px;background:var(--line2)}
.ftick{position:absolute;top:96px;width:1px;height:6px;background:var(--line2)}
.ftick.maj{height:10px;background:var(--meta)}
.flabel{position:absolute;top:110px;transform:translateX(-50%);font-size:.6875rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--meta);white-space:nowrap;font-family:Inter}
.flabel.today{color:var(--gold-t);font-weight:700}
.fmonth{position:absolute;top:146px;transform:translateX(-50%);font-family:'Crimson Pro','Crimson Fallback',Georgia,serif;
  font-size:.82rem;color:var(--sec);white-space:nowrap}
.fnow{position:absolute;top:0;bottom:0;width:1.5px;background:var(--gold);z-index:3}
.fnow::before{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:7px;height:7px;
  border-radius:50%;background:var(--gold)}
.fnow .fnow-lbl{position:absolute;top:4px;left:8px;font-size:.6875rem;letter-spacing:.1em;color:var(--gold-t);
  text-transform:uppercase;white-space:nowrap;font-weight:600}
.fev{position:absolute;transform:translateX(-50%);z-index:2;cursor:pointer;text-align:center}
.fev .fdot{display:inline-block;border-radius:50%;background:var(--ink);vertical-align:middle;transition:transform .12s}
.fev.hi .fdot{width:12px;height:12px;box-shadow:0 0 0 1.5px var(--gold),0 0 0 3px var(--paper)}
.fev.med .fdot{width:9px;height:9px}
.fev.lo .fdot{width:6px;height:6px;background:transparent;border:1.5px solid var(--ink)}
.fev.manual .fdot{border-radius:1px;transform:rotate(45deg);background:var(--gold)}
.fev.realized.up .fdot{background:var(--green)}
.fev.realized.down .fdot{background:var(--red)}
.fev.past{opacity:.6}
.fev:hover{z-index:6}
.fev:hover .fdot{transform:scale(1.35)}
.fev.manual:hover .fdot{transform:rotate(45deg) scale(1.35)}
.fev.sel .fdot{box-shadow:0 0 0 2px var(--gold),0 0 0 4px var(--paper)}
.fev .flbl{position:absolute;left:50%;transform:translateX(-50%);font-size:.6875rem;color:var(--body-c);
  white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.fev .ftime{position:absolute;left:50%;transform:translateX(-50%);font-family:'JetBrains Mono',monospace;
  font-size:.6875rem;color:var(--meta);white-space:nowrap}
.fev .fcard{display:none;position:absolute;left:50%;transform:translateX(-50%);bottom:calc(100% + 8px);
  background:var(--ivory);border:1px solid var(--line2);border-top:2px solid var(--ink);padding:.5rem .65rem;
  min-width:180px;max-width:250px;text-align:left;font-size:.72rem;line-height:1.5;color:var(--body-c);
  box-shadow:0 12px 32px rgba(10,14,26,.12);z-index:8;pointer-events:none;white-space:normal}
.fev:hover .fcard{display:block}
.fev .fcard .t{font-weight:600;color:var(--ink);margin-bottom:.15rem}
.fev .fcard .mono{font-size:.6875rem}
.frise-ruler{position:relative;height:4px;margin-top:.35rem;background:var(--well);border-radius:2px;overflow:hidden}
.frise-ruler .win{position:absolute;top:0;bottom:0;background:var(--line2);border-radius:2px}
.frise-ruler .nowtick{position:absolute;top:-1px;bottom:-1px;width:2px;background:var(--gold)}
.tl-detail{margin-top:1rem;border-left:3px solid var(--gold);background:var(--ivory);border-top:1px solid var(--line);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.8rem 1rem;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem .9rem;font-size:.8rem}
.tl-detail .qk{font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--meta)}
.tl-detail .qv{font-family:'JetBrains Mono',monospace;font-size:.85rem;margin-top:.1rem;color:var(--ink)}
.tl-detail .full{grid-column:1/-1}
.tl-detail .title{font-size:.92rem;font-weight:600;font-family:Inter;color:var(--ink)}
.tl-detail .tl-info{font-size:.84rem;color:var(--body-c);line-height:1.55}
.cal-act{padding:.06rem .42rem;border-radius:2px;font-weight:700}
.cal-act.up{background:var(--green-wash)}
.cal-act.down{background:var(--red-wash)}
.cal-act.flat{background:var(--well);color:var(--sec)}

/* ---- polymarket ---- */
.poly{list-style:none;display:flex;flex-direction:column;font-size:.8rem;padding:0;min-height:10rem}
.poly li{line-height:1.45;padding:.34rem 0;border-bottom:1px solid var(--line)}
.poly li:last-child{border-bottom:0}
.poly li.sel{background:var(--ivory)}
.poly .poly-row{display:flex;gap:.5rem;align-items:baseline;width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit;padding:0;min-height:24px}
button.poly-row{cursor:pointer}
button.poly-row:hover{background:var(--ivory)}
.poly .pct{font-family:'JetBrains Mono',monospace;color:var(--gold-t);font-weight:700;min-width:2.8rem;text-align:right}
.poly .q{color:var(--meta);font-size:.75rem}
.poly-chart{margin:.4rem 0 .25rem 3.3rem}
.poly-chart svg{width:100%;max-width:300px;height:44px;display:block;background:var(--well);border-radius:2px}
.poly-delta{font-size:.6875rem;display:inline-block;margin-top:.2rem}

/* ---- ligne d'état technique, tout en bas ---- */
.tool-status{display:flex;flex-direction:column;gap:.2rem;align-items:center;padding:.9rem 1rem 1.1rem;border-top:1px solid var(--line2);
  font-size:.72rem;line-height:1.5;color:var(--meta);text-align:center;background:var(--ivory);max-width:none}
.conn{font-size:.72rem;color:var(--green);vertical-align:middle;transition:color .3s}
.conn.off{color:var(--red)}
.degraded{color:var(--gold-t)}

@media (prefers-reduced-motion: reduce){
  .tool *,.judges *{animation:none!important;transition:none!important}
}
@media(max-width:560px){
  .tool-head{padding-top:1.1rem}
  /* ligne d'état : deux rangées fixes, quel que soit le texte reçu */
  .status-row{display:grid;grid-template-columns:minmax(0,auto) auto auto;grid-template-areas:"reg clk help" "ses ses ses";
    justify-content:center;justify-items:center;align-items:center;gap:.4rem .5rem;min-height:0}
  .status-row .chip,.status-row .session{font-size:.6875rem;letter-spacing:0;padding:.26rem .5rem}
  .status-row .clock{font-size:.72rem}
  #regime-chip{grid-area:reg} .status-row .clock{grid-area:clk} .status-row .guide-link{grid-area:help} #session-badge{grid-area:ses}
  .chip,.session{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 2rem)}
  #regime-chip{max-width:100%}
  .alert-none{min-height:3.3rem}
  .prec-tiles .ptile:last-child{grid-column:1/-1}
  .asset-price{min-height:2.9rem}
  /* nom de l'actif sur toute la largeur : il ne passe jamais sur deux lignes */
  .score-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.8rem;min-height:0}
  .score-head>div:first-child{display:contents}
  .asset-name{grid-column:1/-1;grid-row:1}
  .asset-price{grid-column:1;grid-row:2}
  .contract-row{grid-column:1;grid-row:3}
  .score-main{grid-column:2;grid-row:2/span 2;align-self:start}
  .asset-price .age{display:block;width:max-content;margin:.25rem 0 0}
  .controls{gap:.45rem 1rem;padding-left:1rem;padding-right:1rem}
  .tool-grid,.alerts{padding-left:1rem;padding-right:1rem}
  .tool .timeline-card{padding-left:1rem;padding-right:1rem}
  .score-num{font-size:2.5rem}
}
