:root{
  --bg:#0a0a0b;--bg-2:#101013;--bg-3:#15151a;--bg-card:#0f0f12;
  --border:#1f1f26;--border-light:#2a2a33;
  --text:#e8e8ea;--text-2:#a0a0a8;--text-3:#5a5a64;
  --green:#0ecb81;--green-bg:rgba(14,203,129,.08);
  --red:#ff4757;--red-bg:rgba(255,71,87,.08);
  --orange:#ffa940;--orange-bg:rgba(255,169,64,.08);
  --gold:#F0B90B;--blue:#4f8fff;--purple:#a78bfa;
  --mono:'JetBrains Mono',monospace;
  --serif:'Instrument Serif',serif;
  --sans:'Inter Tight',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;letter-spacing:-0.01em;overflow-x:hidden;max-width:100%}
body{min-height:100vh;background:radial-gradient(ellipse at top right,rgba(240,185,11,.04),transparent 50%),radial-gradient(ellipse at bottom left,rgba(79,143,255,.03),transparent 50%),var(--bg);background-attachment:fixed}

/* TOP */
.top{border-bottom:1px solid var(--border);background:rgba(10,10,11,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:sticky;top:0;z-index:50}
/* En-tête fusionné en DEUX bandes le 31/7 : marque + modes sur une seule ligne,
   sous-menu en dessous. Avant, quatre bandes empilées (cotations, marque, modes,
   onglets) mangeaient 134 px de hauteur ; on est à ~80. Le bandeau de cotations
   défilant a été retiré — renderTicker() est garde contre son absence. */
.top-inner{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;align-items:center;height:44px;gap:14px}
/* En-tête compacté le 31/7 : 188 px de haut sur quatre bandes, ramenés à 134.
   Les quatre bandes restent distinctes (cotations, marque, modes, onglets) —
   les fusionner en une seule ligne demanderait de refondre le DOM des trois navs. */
/* Les trois bandes de l'en-tête — marque, modes, onglets — doivent tomber sur la
   MÊME verticale. Les boutons de mode et les onglets ont 11 px de retrait interne :
   la marque en reçoit autant pour que les textes s'alignent, pas seulement les
   boîtes. Voir aussi .mode-sep:first-child et .nav-inner plus bas. */
.brand{display:flex;align-items:center;gap:8px;padding-left:11px;flex-shrink:0;font-family:var(--serif);font-size:17px;font-style:italic;letter-spacing:-0.02em}
/* Le mot-symbole passe en dégradé ambre→orange : c'est lui qui porte l'identité
   maintenant que la bande de marque a fusionné avec celle des modes. */
.brand>span:last-child{background:linear-gradient(90deg,#facc15,#fbbf24 45%,#f97316);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.brand>span:last-child em{color:inherit;-webkit-text-fill-color:inherit}
.brand-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.brand em{color:var(--gold);font-style:italic}
.live-status{font-family:var(--mono);font-size:10px;color:var(--text-3);display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.live-status strong{color:var(--text);font-weight:600;font-size:12px}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:livepulse 2s infinite}
.live-dot.stale{background:var(--orange);box-shadow:0 0 8px var(--orange)}
.live-dot.err{background:var(--red);box-shadow:0 0 8px var(--red)}
@keyframes livepulse{0%,100%{opacity:1}50%{opacity:.5}}
.refresh-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:11px;padding:6px 12px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}
.refresh-btn:hover{border-color:var(--gold);color:var(--gold)}
.refresh-btn svg{width:12px;height:12px;transition:transform .3s}
.refresh-btn.loading svg{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Les modes vivent désormais DANS .top-inner, à droite de la marque. Ils défilent
   horizontalement plutôt que de pousser le bloc de statut hors de l'écran. */
.mode-nav{display:flex;align-items:center;gap:5px;min-width:0;overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none}
.mode-nav::-webkit-scrollbar{display:none;height:0}
.mode-btn{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-3);font-family:var(--mono);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.03em;white-space:nowrap;flex-shrink:0}
.mode-btn:hover{border-color:var(--text-3);color:var(--text)}
.mode-btn.active{background:var(--gold);border-color:var(--gold);color:#000}
.mode-btn svg{width:13px;height:13px}
.mode-sep{width:1px;height:20px;background:var(--border);margin:0 8px}
/* Le séparateur en tête de barre décalait « Bourse & Actions » de 17 px vers la
   droite par rapport à la marque et aux onglets. Il ne sépare rien : on le masque. */
.mode-sep:first-child{display:none}
.nav{display:flex;gap:0;height:100%;border-top:1px solid var(--border);background:var(--bg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.nav::-webkit-scrollbar{display:none;height:0}
/* Onglets alignés à gauche (31/7). Ils étaient centrés : sur un écran large, le
   premier onglet flottait au milieu alors que la marque et les boutons de mode
   partaient du bord gauche — les trois bandes ne tombaient jamais sur la même
   verticale. flex-start règle aussi le problème que « safe center » traitait :
   sur une barre étroite et scrollable, le premier onglet reste atteignable. */
.nav-inner{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;height:36px;width:100%;justify-content:flex-start}
.tab{height:100%;padding:0 11px;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;transition:all .2s;font-family:var(--sans);font-weight:500;letter-spacing:-0.01em;white-space:nowrap}
.tab:hover{color:var(--text)}
.tab.active{color:var(--gold);border-bottom-color:var(--gold)}
.tab svg{width:14px;height:14px}

.ticker-bar{display:flex;gap:0;font-family:var(--mono);font-size:10px;height:26px;align-items:center;border-bottom:1px solid var(--border);background:var(--bg);overflow:hidden}
.ticker-track{display:flex;gap:36px;padding:0 28px;animation:scroll 50s linear infinite;white-space:nowrap}
@keyframes scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.tk{display:inline-flex;gap:6px;align-items:center;color:var(--text-3)}
.tk strong{color:var(--text);font-weight:600}
.tk .up{color:var(--green)}.tk .down{color:var(--red)}

.main{max-width:1400px;margin:0 auto;padding:32px 28px 80px}
.page{display:none}
.page.active{display:block;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

.page-title{font-family:var(--serif);font-size:42px;font-style:italic;font-weight:400;letter-spacing:-0.03em;line-height:1;margin-bottom:6px}
.page-title em{color:var(--gold);font-style:italic}
.page-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.15em;margin-bottom:32px}

.section-h{font-family:var(--mono);font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.15em;margin:32px 0 16px;display:flex;align-items:center;gap:14px}
.section-h::after{content:'';flex:1;height:1px;background:var(--border)}

/* HERO */
/* RADAR MARCHÉ — cockpit cross-assets */
.radar-card{background:linear-gradient(135deg,#0f0f14 0%,#0b0b0d 100%);border:1px solid var(--border-light);border-radius:16px;padding:18px 20px;margin-bottom:20px;position:relative;overflow:hidden}
.radar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.radar-title{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text)}
.radar-sub{color:var(--text-3);font-weight:400;text-transform:none;letter-spacing:0;margin-left:8px}
.radar-verdict{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;font-weight:700;padding:6px 12px;border-radius:20px;background:var(--bg-2);border:1px solid var(--border);text-transform:uppercase;letter-spacing:0.06em;transition:all .4s}
.radar-verdict.on{color:var(--green);border-color:rgba(14,203,129,.35);background:var(--green-bg)}
.radar-verdict.off{color:var(--red);border-color:rgba(255,71,87,.35);background:var(--red-bg)}
.radar-verdict.mixed{color:var(--orange);border-color:rgba(255,169,64,.35);background:var(--orange-bg)}
.radar-verdict-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;animation:livepulse 2s infinite}
.radar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.radar-tile{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:10px 10px 9px;transition:border-color .2s,transform .2s}
.radar-tile:hover{border-color:var(--border-light);transform:translateY(-1px)}
.radar-tile-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radar-tile-val{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text);line-height:1.1;letter-spacing:-0.01em}
.radar-tile-chg{font-family:var(--mono);font-size:10px;font-weight:600;margin-top:3px}
.radar-tile-chg.up{color:var(--green)}.radar-tile-chg.down{color:var(--red)}.radar-tile-chg.flat{color:var(--text-3)}
.radar-loading{grid-column:1/-1;font-family:var(--mono);font-size:11px;color:var(--text-3);padding:14px;text-align:center}
.radar-note{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:10px;line-height:1.5}
@media (max-width:1024px){.radar-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.radar-grid{grid-template-columns:repeat(2,1fr)}.radar-head{gap:8px}}
/* JOURNAL IA */
.tj-drop{border:2px dashed var(--border-light);border-radius:14px;padding:26px;text-align:center;margin-bottom:12px;transition:all .2s;background:var(--bg-card)}
.tj-drop.over{border-color:var(--gold);background:rgba(240,185,11,.05)}
.tj-sel{background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:11px;padding:6px 10px;border-radius:7px;outline:none}
.tj-sel:focus{border-color:var(--gold)}
.tj-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.tj-kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px}
.tj-kpi .k{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.tj-kpi .v{font-family:var(--serif);font-size:26px;font-style:italic;line-height:1;letter-spacing:-.02em}
.tj-kpi .s{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:5px}
.tj-kpi .v.pos{color:var(--green)}.tj-kpi .v.neg{color:var(--red)}
.tj-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
@media(max-width:820px){.tj-grid2{grid-template-columns:1fr}}
.tj-bd{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px}
.tj-bd h4{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;font-weight:600}
.tj-bar-row{display:grid;grid-template-columns:70px 1fr 62px;gap:8px;align-items:center;margin-bottom:5px;font-family:var(--mono);font-size:11px}
.tj-bar-row .lbl{color:var(--text-2)}
.tj-bar-track{background:var(--bg-2);border-radius:4px;height:14px;overflow:hidden;position:relative}
.tj-bar-fill{height:100%;border-radius:4px}
.tj-bar-row .val{text-align:right;font-weight:700}
.tj-bar-row .val.pos{color:var(--green)}.tj-bar-row .val.neg{color:var(--red)}
.tj-tbl{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px}
.tj-tbl th{text-align:left;padding:8px 10px;font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-light);position:sticky;top:0;background:var(--bg-card)}
.tj-tbl td{padding:7px 10px;border-bottom:1px solid var(--border)}
.tj-tbl tr:hover td{background:var(--bg-2)}
.tj-pnl-pos{color:var(--green);font-weight:700}.tj-pnl-neg{color:var(--red);font-weight:700}
.tj-dir{font-size:9px;padding:2px 6px;border-radius:4px;font-weight:700}
.tj-dir.long{background:var(--green-bg);color:var(--green)}.tj-dir.short{background:var(--red-bg);color:var(--red)}
.tj-coach{background:linear-gradient(135deg,rgba(240,185,11,.05),var(--bg-card));border:1px solid rgba(240,185,11,.25);border-radius:14px;padding:20px;margin-bottom:14px}
.tj-coach h3{font-family:var(--serif);font-size:20px;font-style:italic;margin-bottom:4px}
.tj-coach h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin:14px 0 6px;color:var(--gold)}
.tj-coach p,.tj-coach li{font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--text)}
.tj-coach ul{margin:0 0 6px 18px}
.tj-coach .grade{font-family:var(--serif);font-size:40px;font-style:italic}
/* CALCULATEUR DE POSITION (Multi-Vision) */
.mv-calc{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-top:14px}
.mv-calc-title{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-2);margin-bottom:12px}
.mv-calc-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mv-calc-field label{display:block;font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:4px}
.mv-calc-field select,.mv-calc-field input{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:13px;font-weight:700;padding:8px 10px;border-radius:7px;outline:none;box-sizing:border-box}
.mv-calc-field select:focus,.mv-calc-field input:focus{border-color:var(--gold)}
.mv-calc-out{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.mv-calc-tile{background:var(--bg-2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;text-align:center}
.mv-calc-tile .l{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px}
.mv-calc-tile .v{font-family:var(--mono);font-size:16px;font-weight:800;color:var(--text)}
.mv-calc-tile.hi .v{color:var(--gold)}
.mv-calc-note{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:8px;line-height:1.5}
@media (max-width:640px){.mv-calc-inputs{grid-template-columns:1fr}}
/* CALENDRIER ÉCONOMIQUE (sur mesure, code couleur par impact) */
.econ-loading{font-family:var(--mono);font-size:11px;color:var(--text-3);padding:16px;text-align:center}
.econ-day{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin:12px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.econ-day:first-child{margin-top:0}
.econ-row{display:grid;grid-template-columns:46px 22px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;margin-bottom:4px;background:var(--bg-2);border-left:3px solid var(--border-light)}
.econ-row.high{border-left-color:var(--red);background:rgba(255,71,87,.07)}
.econ-row.med{border-left-color:var(--orange);background:rgba(255,169,64,.05)}
.econ-row.low{border-left-color:var(--border-light);opacity:.7}
.econ-time{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text-2)}
/* Passé de l'emoji à l'image flagcdn le 05/08/2026 (rendu commun accDrapeau) :
   la colonne de 22px loge tout juste l'image 20×15, centrée verticalement. */
.econ-flag{display:flex;align-items:center;justify-content:center}
.econ-flag img{border-radius:2px}
.econ-flag .glb svg{width:16px;height:16px}
.econ-title{font-family:var(--sans);font-size:13px;color:var(--text);line-height:1.3}
.econ-row.high .econ-title{font-weight:700}
.econ-vals{display:flex;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:3px}
.econ-vals .a b{color:var(--gold)}.econ-vals .f b{color:var(--text-2)}.econ-vals .p b{color:var(--text-3)}
.econ-imp{font-family:var(--mono);font-size:9px;font-weight:700;padding:3px 7px;border-radius:12px;white-space:nowrap}
.econ-imp.high{background:var(--red-bg);color:var(--red)}
.econ-imp.med{background:var(--orange-bg);color:var(--orange)}
.econ-imp.low{background:var(--bg-3);color:var(--text-3)}
/* ═════ Calendrier économique — rendu calqué sur EcoSquawk ═════
   Palette volontairement en dur (zinc/amber/orange de Tailwind) et non en
   variables du site : c'est le seul moyen d'obtenir exactement le même
   visuel. Conséquence assumée : ce bloc ne suit pas le thème clair. */
.ecal{--z900:#18181B;--z800:#27272A;--z700:#3f3f46;--z600:#52525b;--z500:#71717a;--z400:#a1a1aa;--z300:#d4d4d8;
  --amber:#f59e0b;--amber4:#fbbf24;--amber3:#fcd34d;--orange:#f97316;--orange4:#fb923c;
  --yellow:#eab308;--yellow4:#facc15;--emerald4:#34d399;--blue4:#60a5fa;--gray3:#d1d5db;
  background:#09090B;color:#fff;border-radius:12px;padding:22px 18px;margin-top:2px}
@media(min-width:768px){.ecal{padding:28px 26px}}
.ecal *{box-sizing:border-box}

.ecal-top{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.ecal-top1{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.ecal-id{display:flex;align-items:center;gap:12px}
.ecal-ico{width:48px;height:48px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(to bottom right,rgba(245,158,11,.2),rgba(249,115,22,.2));border:1px solid rgba(245,158,11,.3);color:var(--amber4)}
.ecal-h1{font-family:var(--sans);font-size:24px;font-weight:800;text-transform:uppercase;letter-spacing:-.025em;line-height:1.1;margin:0;color:#fff}
@media(min-width:768px){.ecal-h1{font-size:30px}}
.ecal-tz{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:10px;color:var(--z500);margin-top:5px;flex-wrap:wrap}
.ecal-tz b{color:var(--z300);font-weight:600}
.ecal-tz select{background:transparent;border:1px solid var(--z800);border-radius:4px;padding:2px 4px;color:var(--z400);font-size:10px;font-family:var(--sans);cursor:pointer;max-width:170px}
.ecal-tz select:hover{color:#fff}
.ecal-tz select option{background:var(--z900);color:#fff}
.ecal-live{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:2px 10px;font-family:var(--sans);font-size:12px;font-weight:600;
  background:rgba(16,185,129,.15);color:var(--emerald4);border:1px solid rgba(16,185,129,.3)}
.ecal-live i{width:6px;height:6px;border-radius:50%;background:var(--emerald4);display:inline-block;animation:ecalPulse 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes ecalPulse{0%,100%{opacity:1}50%{opacity:.4}}
.ecal-date{display:inline-flex;align-items:center;border-radius:6px;padding:2px 10px;font-family:var(--sans);font-size:12px;font-weight:600;
  background:rgba(245,158,11,.1);color:var(--amber3);border:1px solid rgba(245,158,11,.3)}

.ecal-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:768px){.ecal-grid{grid-template-columns:260px 1fr}}
.ecal-side{display:none;border:1px solid var(--z800);background:var(--z900);border-radius:8px;padding:12px}
@media(min-width:768px){.ecal-side{display:block;position:sticky;top:88px;align-self:start;max-height:calc(100vh - 7rem);overflow-y:auto}}
.ecal-side.ouvert{display:block}
.ecal-grp+.ecal-grp{margin-top:20px}
.ecal-lbl{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--z500);margin-bottom:8px}
.ecal-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ecal-hist{display:inline-flex;align-items:center;gap:4px;font-family:var(--sans);font-size:10px;color:var(--z500);margin-right:2px}
.ecal-p{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;border:1px solid var(--z700);
  background:rgba(39,39,42,.4);color:var(--z300);font-family:var(--sans);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}
.ecal-p:hover{border-color:rgba(245,158,11,.4)}
.ecal-p .n{font-size:10px;color:var(--z500)}
.ecal-p.passe{background:rgba(24,24,27,.4);color:var(--z500);border-color:var(--z800)}
.ecal-p.on{background:var(--amber);color:#000;border-color:var(--amber4);font-weight:600}
.ecal-p.on .n{color:rgba(0,0,0,.7)}
.ecal-p.imp{background:transparent;opacity:.6}
.ecal-p.imp.high{color:var(--orange4);border-color:rgba(249,115,22,.3)}
.ecal-p.imp.medium{color:var(--yellow4);border-color:rgba(234,179,8,.3)}
.ecal-p.imp.low{color:var(--z400);border-color:rgba(113,113,122,.3)}
.ecal-p.imp.on{opacity:1;background:rgba(63,63,70,.4);color:#fff;border-color:var(--z600);box-shadow:0 0 0 1px #09090B,0 0 0 3px rgba(245,158,11,.4)}
.ecal-p img{border-radius:2px;display:block}

.ecal-card{border:1px solid var(--z800);background:#0d0d0f;border-radius:12px;overflow:hidden}
.ecal-scroll{overflow-x:auto}
.ecal-tbl{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px}
.ecal-tbl thead{background:var(--z900);border-bottom:1px solid var(--z800)}
.ecal-tbl th{font-family:var(--sans);font-size:12px;text-transform:uppercase;color:var(--z500);font-weight:600;text-align:left;padding:12px 16px;white-space:nowrap}
.ecal-tbl th.r{text-align:right}
.ecal-tbl td{padding:12px 16px;border-bottom:1px solid #1f1f22;vertical-align:middle}
.ecal-tbl tr{border-left:4px solid var(--z600);transition:background .15s}
.ecal-tbl tr:hover{background:var(--z900)}
.ecal-tbl tr.high{border-left-color:var(--orange)}
.ecal-tbl tr.medium{border-left-color:var(--yellow)}
.ecal-tbl tr.low{border-left-color:var(--z600)}
.ecal-tbl tr.suivant{background:rgba(59,130,246,.1);animation:ecalPulse 3s ease-in-out infinite}
.ecal-hh{font-family:var(--mono);font-weight:600;white-space:nowrap}
.ecal-hh .w{display:flex;align-items:center;gap:6px}
tr.high .ecal-hh{color:var(--orange4)}
tr.medium .ecal-hh{color:var(--yellow4)}
tr.low .ecal-hh{color:var(--z400)}
.ecal-hh svg{color:var(--blue4);animation:ecalPulse 2s cubic-bezier(.4,0,.6,1) infinite;flex-shrink:0}
.ecal-pays{display:flex;align-items:center;gap:8px}
.ecal-pays img{border-radius:2px;display:block;flex-shrink:0}
.ecal-pays span{font-size:12px;color:var(--z500);text-transform:uppercase}
.ecal-ev{color:#fff;line-height:1.4}
.ecal-b{display:inline-flex;align-items:center;gap:4px;border-radius:6px;border:1px solid;padding:2px 10px;font-family:var(--sans);font-size:10px;font-weight:600;background:transparent;white-space:nowrap}
.ecal-b.high{color:var(--orange4);border-color:rgba(249,115,22,.3)}
.ecal-b.medium{color:var(--yellow4);border-color:rgba(234,179,8,.3)}
.ecal-b.low{color:var(--z400);border-color:rgba(113,113,122,.3)}
.ecal-num{text-align:right;font-family:var(--mono);color:var(--z500);white-space:nowrap}
.ecal-num.cons{color:var(--gray3)}
.ecal-num.act{font-weight:600;color:#fff}
.ecal-num.act.vide{color:var(--z500);font-weight:400}
.ecal-num.act.up{color:var(--emerald4)}
.ecal-num.act.down{color:#f87171}
.ecal-vide{padding:34px 16px;text-align:center;font-family:var(--sans);font-size:13px;color:var(--z500)}

/* ── Calendrier éco sur téléphone : une CARTE par annonce (07/08/2026) ──
   Sept colonnes ne tiennent pas dans 305 px. Le tableau défilait bien, mais
   c'était inutilisable : sans défiler on ne voyait que « Heure » et « Pays »
   — pas même le nom de l'événement — et une fois arrivé aux valeurs, on
   lisait des chiffres sans savoir de quoi il s'agissait. Mesuré : 46 % du
   tableau visible à la fois.
   Chaque ligne devient donc une carte lisible d'un coup d'œil : heure, pays
   et impact en tête, l'événement en clair, puis les trois valeurs étiquetées
   côte à côte. Aucune donnée n'est masquée, aucun défilement horizontal.
   Transformation 100 % CSS : le HTML produit par ecoCalRender ne change pas. */
@media(max-width:767px){
  .ecal-scroll{overflow-x:visible}
  .ecal-tbl,.ecal-tbl tbody{display:block}
  .ecal-tbl thead{display:none}          /* les en-têtes deviennent des étiquettes */
  .ecal-tbl tr{
    display:grid;
    grid-template-columns:auto auto 1fr;
    grid-template-areas:"h p i" "e e e" "v1 v2 v3";
    gap:7px 10px;align-items:center;
    padding:11px 13px;margin-bottom:8px;
    border:1px solid var(--z800);border-left-width:4px;border-radius:10px;
  }
  .ecal-tbl tr:hover{background:transparent}   /* pas de survol utile au doigt */
  .ecal-tbl td{display:block;padding:0;border-bottom:none}
  .ecal-tbl td:nth-child(1){grid-area:h}
  .ecal-tbl td:nth-child(2){grid-area:p}
  .ecal-tbl td:nth-child(3){grid-area:e}
  .ecal-tbl td:nth-child(4){grid-area:i;justify-self:end}
  .ecal-tbl td:nth-child(5){grid-area:v1}
  .ecal-tbl td:nth-child(6){grid-area:v2}
  .ecal-tbl td:nth-child(7){grid-area:v3}
  /* Les valeurs perdent leur en-tête de colonne : on le remet devant chacune. */
  .ecal-tbl td:nth-child(n+5)::before{
    display:block;font-family:var(--sans);font-size:9px;font-weight:600;
    text-transform:uppercase;letter-spacing:.06em;color:var(--z500);margin-bottom:2px}
  .ecal-tbl td:nth-child(5)::before{content:"Précédent"}
  .ecal-tbl td:nth-child(6)::before{content:"Consensus"}
  .ecal-tbl td:nth-child(7)::before{content:"Actuel"}
  .ecal-tbl .ecal-num{text-align:left;font-size:13px}
  .ecal-tbl .ecal-ev{font-weight:600;overflow-wrap:anywhere}
  .ecal-tbl .ecal-pays span{display:none}      /* le drapeau suffit, le code fait doublon */
  .ecal-tbl .ecal-pays img{width:22px;height:17px}
}
/* ═════ Accueil Bourse — studio temps réel (structure calquée sur EcoSquawk) ═════
   Même palette en dur que le calendrier, pour un rendu identique. */
.acc{--z900:#18181B;--z800:#27272A;--z700:#3f3f46;--z600:#52525b;--z500:#71717a;--z400:#a1a1aa;--z300:#d4d4d8;
  --amber:#f59e0b;--amber4:#fbbf24;--amber3:#fcd34d;--orange4:#fb923c;--yellow4:#facc15;
  --emerald:#10b981;--emerald4:#34d399;--red5:#ef4444;--red4:#f87171;--red6:#dc2626;--rose4:#fb7185;--sky5:#0ea5e9;--lime5:#84cc16;
  background:#09090B;color:#fff;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:70vh}
.acc *{box-sizing:border-box}
.acc a{color:inherit;text-decoration:none}

/* bandeau haut */
.acc-ban{background:linear-gradient(to right,rgba(245,158,11,.1),rgba(249,115,22,.1),rgba(239,68,68,.1));
  border-bottom:1px solid rgba(245,158,11,.2);padding:8px 16px;display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--sans);font-size:13px;color:var(--z300);text-align:center}
.acc-ban b{color:var(--amber3);font-weight:500}
.acc-ban svg{color:var(--amber4);flex-shrink:0}

/* barre radio */
.acc-radio{position:relative;border-bottom:1px solid var(--z800);background:linear-gradient(to right,#0d0d0f,#111114,#0d0d0f)}
.acc-radio .lz{height:2px;width:100%;background:linear-gradient(to right,#ef4444,#dc2626,#ef4444);animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes accPulse{50%{opacity:.5}}
.acc-radio .in{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px}
.acc-pp{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(to bottom right,#ef4444,#dc2626);box-shadow:0 2px 10px rgba(239,68,68,.3);color:#000}
.acc-pp:hover{background:linear-gradient(to bottom right,#dc2626,#b91c1c)}
.acc-pp:disabled{opacity:.4;cursor:not-allowed}
.acc-stop{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1px solid var(--z800);background:transparent;color:var(--z300);cursor:pointer;display:flex;align-items:center;justify-content:center}
.acc-stop:hover{background:var(--z900)}
.acc-rid{display:flex;align-items:center;gap:8px;flex-shrink:0}
.acc-rid .ic{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.5);color:var(--red4)}
.acc-rid .tx{line-height:1.25}
.acc-rid .tx b{display:block;font-family:var(--sans);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff}
.acc-rid .tx span{font-size:10px;color:var(--z500)}
@media(max-width:820px){.acc-rid .tx{display:none}}
.acc-live{display:inline-flex;align-items:center;border-radius:6px;border:1px solid #ef4444;background:#dc2626;color:#fff;
  font-family:var(--sans);font-size:10px;font-weight:600;padding:0 8px;height:20px;animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
.acc-now{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:4px;background:rgba(24,24,27,.6);border:1px solid var(--z800)}
@media(max-width:820px){.acc-now{display:none}}
.acc-now .cat{display:inline-flex;align-items:center;border-radius:6px;border:1px solid var(--z700);padding:0 6px;font-family:var(--sans);font-size:10px;font-weight:600;color:var(--z300);flex-shrink:0}
.acc-now .h{font-family:var(--mono);font-size:10px;color:var(--z500);flex-shrink:0}
.acc-now .t{font-size:12px;color:rgba(255,255,255,.9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-vol{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}
.acc-vol svg{color:var(--z400)}
.acc-vol input[type=range]{-webkit-appearance:none;appearance:none;width:96px;height:6px;border-radius:9999px;background:rgba(245,158,11,.2);outline:none}
.acc-vol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:1px solid rgba(245,158,11,.5);cursor:pointer}
.acc-vol input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:1px solid rgba(245,158,11,.5);cursor:pointer}
.acc-vol .v{font-family:var(--mono);font-size:9px;color:var(--z500);width:22px;text-align:right}

.acc-radio .acc-sel{background:rgba(24,24,27,.8);border-color:var(--z700);height:26px;max-width:150px}
.acc-radio-lvl{display:flex;align-items:center;gap:6px;flex-shrink:0}
.acc-radio-lvl span{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--z500)}
@media(max-width:820px){.acc-radio-lvl span{display:none}}

/* grille studio */
.acc-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;padding:12px;flex:1;min-height:0}
.acc-col-l{grid-column:span 12;display:flex;flex-direction:column;gap:12px;min-width:0}
.acc-col-c{grid-column:span 12;display:flex;flex-direction:column;min-width:0}
.acc-col-r{grid-column:span 12;display:flex;flex-direction:column;gap:12px;min-width:0}
@media(min-width:768px){.acc-col-l{grid-column:span 6}.acc-col-r{grid-column:span 6}}
@media(min-width:1100px){
  .acc-col-l{grid-column:span 3;order:1}
  .acc-col-c{grid-column:span 6;order:2}
  .acc-col-r{grid-column:span 3;order:3}

  /* ═════ Studio en hauteur d'écran (1/8) ═════
     Le studio grandissait avec son contenu : la colonne centrale (le fil)
     atteignait 3 400 px, la grille étirait les trois colonnes à cette hauteur,
     et la carte « Le fil de l'histoire » — qui a flex:1 — absorbait 2 900 px
     de vide. Le brief par pays se retrouvait 2 600 px sous l'écran.
     On borne donc le studio à la hauteur visible et chaque panneau défile
     chez lui. --acc-haut est mesuré en JS depuis l'en-tête réel (accStart),
     pour ne pas coder en dur une hauteur qui a déjà changé deux fois. */
  .main:has(> #stock-accueil.active) .acc{height:calc(100vh - var(--acc-haut, 82px));min-height:0}
  .acc-col-l, .acc-col-c, .acc-col-r{min-height:0}
  /* Sans ça, un panneau au contenu long refuse de rétrécir sous sa taille
     naturelle et ressort de la colonne au lieu de faire défiler. */
  .acc-col-l > *, .acc-col-r > *{min-height:0}
}

/* cartes */
.acc-card{border:1px solid var(--z800);background:#0d0d0f;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}
.acc-card.d{background:var(--z900)}
.acc-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px 6px}
.acc-card-t{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.acc-card-t svg{color:var(--amber4)}
.acc-card-t .n{margin-left:4px;font-family:var(--mono);font-size:10px;color:var(--z500);text-transform:none;letter-spacing:0}
.acc-card-b{padding:0 10px 10px;overflow-y:auto}
.acc-mini-live{display:inline-flex;align-items:center;gap:4px;border-radius:6px;border:1px solid rgba(16,185,129,.3);background:rgba(16,185,129,.15);
  color:var(--emerald4);font-family:var(--sans);font-size:9px;font-weight:600;padding:0 4px;height:16px}
.acc-mini-live i{width:4px;height:4px;border-radius:50%;background:var(--emerald4);animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}

/* prochaines annonces / calendrier semaine */
.acc-ev{display:flex;align-items:center;gap:8px;padding:6px;border-left:2px solid transparent;cursor:default;border-bottom:1px solid #1f1f22}
.acc-ev:last-child{border-bottom:0}
.acc-ev:hover{background:rgba(255,255,255,.03)}
.acc-ev.ultra{background:rgba(239,68,68,.08);border-left-color:rgba(239,68,68,.7)}
.acc-ev.high{border-left-color:rgba(249,115,22,.5)}
.acc-ev .i{width:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.acc-ev .i .p{width:6px;height:6px;border-radius:50%;display:inline-block}
.acc-ev .i .p.high{background:var(--orange4)}
.acc-ev .i .p.med{background:var(--yellow4)}
.acc-ev .i svg{color:var(--red5)}
.acc-ev .hh{font-family:var(--mono);font-size:10px;font-weight:700;flex-shrink:0;width:38px;color:var(--z400)}
.acc-ev.ultra .hh{color:var(--red4)}
.acc-ev.high .hh{color:var(--orange4)}
.acc-ev img{border-radius:2px;flex-shrink:0;display:block}
.acc-ev .nm{font-size:11px;color:rgba(255,255,255,.85);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-ev.ultra .nm{color:#fff;font-weight:500}
.acc-ev .vals{display:flex;align-items:center;gap:8px;flex-shrink:0;font-family:var(--mono);font-size:10px}
@media(max-width:640px){.acc-ev .vals{display:none}}
.acc-ev .vals span{width:52px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-ev .vals .p1{color:var(--z500)}
.acc-ev .vals .p2{color:var(--z400)}
.acc-ev .vals .p3{font-weight:700;color:var(--z600)}
.acc-ev .vals .p3.up{color:var(--emerald4)}
.acc-ev .vals .p3.down{color:var(--rose4)}
.acc-day{position:sticky;top:0;z-index:1;background:var(--z900);padding:4px;display:flex;align-items:center;gap:8px}
.acc-day b{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--amber4);font-weight:400}
.acc-day span{font-size:10px;color:var(--z500)}
.acc-vals-hd{position:sticky;top:0;z-index:2;background:var(--z900);padding:4px;border-bottom:1px solid var(--z800);display:flex;align-items:center;justify-content:space-between;gap:8px}
.acc-vals-hd .l{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--z500)}
.acc-vals-hd .r{display:flex;gap:8px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--z500)}
.acc-vals-hd .r span{width:52px;text-align:right}
@media(max-width:640px){.acc-vals-hd .r{display:none}}

/* jauge de sentiment */
.acc-gauge{display:flex;align-items:center;gap:10px}
.acc-gauge .g{width:58%;max-width:150px}
.acc-gauge .v{flex:1;text-align:center}
.acc-gauge .v b{display:block;font-family:var(--mono);font-size:24px;font-weight:700;line-height:1}
.acc-gauge .v span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--z300);margin-top:2px}
.acc-comp{display:flex;align-items:center;gap:8px;font-size:10px;padding:1px 0}
.acc-comp .k{width:52px;color:var(--z400);flex-shrink:0}
.acc-comp .bar{flex:1;height:4px;background:#1f1f22;border-radius:9999px;overflow:hidden}
.acc-comp .bar i{display:block;height:100%;border-radius:9999px}
.acc-comp .n{width:22px;text-align:right;font-family:var(--mono);color:rgba(255,255,255,.85);flex-shrink:0}

/* flux temps réel */
.acc-feed-h{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--z800);background:rgba(24,24,27,.6);flex-shrink:0}
.acc-feed-h .lft{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.acc-feed-h h2{font-family:var(--sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin:0}
.acc-cnt{display:inline-flex;align-items:center;border-radius:6px;border:1px solid var(--z700);padding:0 6px;height:16px;font-family:var(--mono);font-size:10px;color:var(--z300)}
.acc-sel{background:var(--z800);border:1px solid var(--z700);color:#e4e4e7;border-radius:4px;padding:1px 6px;height:22px;font-size:10px;font-family:var(--sans);cursor:pointer;max-width:120px}
.acc-sel:focus{outline:none;box-shadow:0 0 0 1px var(--amber)}
.acc-srch{position:relative;min-width:0;max-width:180px;flex-shrink:1}
.acc-srch svg{position:absolute;left:6px;top:50%;transform:translateY(-50%);color:var(--z500);pointer-events:none}
.acc-srch input{width:100%;background:var(--z800);border:1px solid var(--z700);color:#e4e4e7;border-radius:4px;padding:1px 8px 1px 24px;height:22px;font-size:10px;font-family:var(--sans)}
.acc-srch input::placeholder{color:var(--z500)}
.acc-srch input:focus{outline:none;box-shadow:0 0 0 1px var(--amber)}
.acc-feed{overflow-y:auto;flex:1;min-height:0;max-height:60vh}
@media(min-width:1100px){.acc-feed{max-height:none}}
.acc-al{position:relative;border-left:4px solid var(--z600);border-bottom:1px solid #1f1f22;padding:10px;display:flex;flex-direction:column;cursor:pointer;transition:background .2s}
.acc-al:hover{background:rgba(24,24,27,.4)}
.acc-al.danger{border-left-color:var(--red5);background:rgba(239,68,68,.05)}
.acc-al.warning{border-left-color:var(--orange4);background:rgba(251,146,60,.05)}
.acc-al.info{border-left-color:var(--sky5);background:rgba(14,165,233,.05)}
.acc-al-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.acc-al-h .l{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.acc-al-h .r{display:flex;align-items:center;gap:6px;flex-shrink:0}
.acc-al-h img{border-radius:2px;display:block}
.acc-al-h .glb{display:inline-flex;align-items:center;justify-content:center;width:20px;height:15px;border-radius:2px;
  background:linear-gradient(to bottom right,#0ea5e9,#10b981);color:#fff}
.acc-al-h time{font-family:var(--mono);font-size:11px;color:var(--z500)}
.acc-al svg.brk{color:var(--red5);flex-shrink:0}
.acc-brk{display:inline-flex;align-items:center;border-radius:6px;background:var(--red5);color:#fff;font-family:var(--sans);
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:0 6px;flex-shrink:0}
.acc-cat{display:inline-flex;align-items:center;border-radius:6px;font-family:var(--sans);font-size:10px;font-weight:600;padding:0 8px;border:1px solid}
.acc-cat.macro{color:#93c5fd;border-color:rgba(59,130,246,.35);background:rgba(59,130,246,.12)}
.acc-cat.rates{color:#c4b5fd;border-color:rgba(139,92,246,.35);background:rgba(139,92,246,.12)}
.acc-cat.forex{color:#67e8f9;border-color:rgba(6,182,212,.35);background:rgba(6,182,212,.12)}
.acc-cat.indices{color:#a5b4fc;border-color:rgba(99,102,241,.35);background:rgba(99,102,241,.12)}
.acc-cat.commodities{color:#fcd34d;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.12)}
.acc-cat.crypto{color:#fdba74;border-color:rgba(249,115,22,.35);background:rgba(249,115,22,.12)}
.acc-cat.geopolitics{color:#fca5a5;border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.12)}
.acc-cat.earnings{color:#86efac;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.12)}
.acc-cat.announcement{color:var(--z300);border-color:var(--z700);background:rgba(63,63,70,.3)}
.acc-al p{font-size:13px;line-height:1.5;color:rgba(255,255,255,.9);margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.acc-al .more{font-size:10px;color:var(--amber3);margin-top:8px;display:flex;align-items:center;gap:2px;opacity:.7}
.acc-al:hover .more{opacity:1}
/* ── Régime de marché (largeur, secteurs, dérive post-résultats) ── */
/* ── Connexion Google : bouton invité, menu utilisateur, fenêtre ──
   Le menu est en position absolue sous le bouton ; .auth-slot doit donc
   rester un contexte de positionnement, sinon il se cale sur la page. */
.auth-slot{display:flex;align-items:center;flex-shrink:0}
.auth-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;cursor:pointer;
  border:1px solid rgba(255,255,255,.2);border-radius:7px;background:none;color:#fff;
  font-family:var(--sans);font-size:11.5px;font-weight:600;transition:color .2s,border-color .2s,background .2s}
.auth-btn:hover{color:var(--gold);border-color:rgba(245,197,24,.6);background:rgba(255,255,255,.05)}
.auth-btn svg{width:13px;height:13px}

.auth-u{position:relative}
.auth-u-b{display:flex;align-items:center;gap:7px;padding:3px 7px;cursor:pointer;border:none;
  border-radius:7px;background:none;color:#fff;font-family:var(--sans);font-size:11.5px;font-weight:500;
  transition:background .2s}
.auth-u-b:hover{background:rgba(255,255,255,.06)}
.auth-u-b img,.auth-ini{width:26px;height:26px;border-radius:50%;flex-shrink:0;object-fit:cover;
  border:1px solid rgba(245,158,11,.35)}
.auth-ini{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#000;
  font-family:var(--sans);font-weight:700;font-size:12px}
.auth-u-n{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.auth-u-n{display:none}}
.auth-u-b svg{width:11px;height:11px;color:var(--text-3)}

.auth-menu{display:none;position:absolute;right:0;top:calc(100% + 7px);z-index:120;min-width:236px;
  background:#111114;border:1px solid var(--border);border-radius:11px;padding:6px;
  box-shadow:0 18px 46px rgba(0,0,0,.6)}
.auth-menu.on{display:block}
.auth-menu-h{display:flex;align-items:center;gap:10px;padding:9px 9px 10px}
.auth-menu-h>div{min-width:0}
.auth-menu-h b{display:block;font-family:var(--sans);font-size:13px;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-menu-h span{display:block;font-family:var(--sans);font-size:11px;color:var(--text-3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-plan{display:inline-block;margin:0 9px 8px;padding:1px 7px;border-radius:4px;
  background:rgba(255,255,255,.07);color:var(--text-3);
  font-family:var(--mono);font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.auth-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;cursor:pointer;
  border:none;border-radius:7px;background:none;color:var(--text-2);text-align:left;
  font-family:var(--sans);font-size:12.5px;transition:background .2s,color .2s}
.auth-menu button:hover{background:rgba(255,255,255,.06);color:#fff}
.auth-menu button svg{width:15px;height:15px;flex-shrink:0}
.auth-menu>button:first-of-type{border-top:1px solid var(--border);border-radius:0 0 7px 7px;margin-top:2px}

.auth-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;
  padding:22px;overflow-y:auto;background:rgba(0,0,0,.7);backdrop-filter:blur(4px)}
.auth-box{position:relative;width:100%;max-width:420px;margin:auto;overflow:hidden;
  border:1px solid var(--border);border-radius:12px;
  background:linear-gradient(180deg,#18181B,#09090B);box-shadow:0 24px 60px rgba(0,0,0,.7)}
.auth-bande{height:3px;background:linear-gradient(90deg,#ef4444,#f97316,#f59e0b)}
.auth-x{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;
  color:var(--text-3);font-size:15px;line-height:1}
.auth-x:hover{color:#fff}
.auth-corps{padding:26px 24px 22px}
.auth-marque{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;
  font-family:var(--serif);font-size:19px;font-style:italic}
.auth-marque em{color:var(--gold);font-style:italic}
.auth-corps h2{margin:0 0 6px;text-align:center;font-family:var(--sans);font-size:17px;font-weight:600;color:#fff}
.auth-sous{margin:0 0 18px;text-align:center;font-family:var(--sans);font-size:12.5px;color:var(--text-3)}
.auth-gbtn{display:flex;justify-content:center;min-height:44px}
.auth-manque{border:1px solid rgba(245,158,11,.3);background:rgba(245,158,11,.07);border-radius:9px;
  padding:12px;font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--text-2)}
.auth-manque b{display:block;color:#fcd34d;margin-bottom:5px}
.auth-manque input{width:100%;box-sizing:border-box;margin-top:9px;padding:7px 9px;
  background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);
  font-family:var(--mono);font-size:11px}
.auth-manque button{width:100%;margin-top:7px;padding:7px;cursor:pointer;border:none;border-radius:6px;
  background:var(--gold);color:#000;font-family:var(--sans);font-size:12px;font-weight:600}
.auth-msg{margin-top:10px;font-family:var(--sans);font-size:11.5px;color:var(--red);text-align:center}
.auth-note{margin-top:16px;padding-top:13px;border-top:1px solid var(--border);
  font-family:var(--sans);font-size:11px;line-height:1.55;color:var(--text-3)}

/* ── Fil des alertes : page dédiée, filtres à gauche ─────────────
   Le studio affiche le même fil dans une colonne étroite. Ici il prend
   toute la page, la barre de filtres reste collée pendant la descente. */
.al-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.al-top-t{display:flex;align-items:center;gap:12px;min-width:0}
.al-top-t svg{width:26px;height:26px;color:var(--gold);flex-shrink:0}
.al-top-t h1{margin:0;font-family:var(--sans);font-size:21px;font-weight:700;
  text-transform:uppercase;letter-spacing:-.01em;color:var(--text);line-height:1.1}
.al-top-t p{margin:3px 0 0;font-family:var(--mono);font-size:11px;color:var(--text-3)}
.al-ref{flex-shrink:0;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);
  border-radius:8px;padding:6px 12px;cursor:pointer;font-family:var(--mono);font-size:11px;
  transition:color .2s,border-color .2s}
.al-ref:hover{color:var(--text);border-color:var(--text-3)}

.al-grid{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
@media(min-width:860px){.al-grid{grid-template-columns:250px 1fr}
  .al-side{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;scrollbar-width:thin}}
.al-side{border:1px solid var(--border);background:var(--bg-2);border-radius:10px;padding:13px}
.al-f-bloc{margin-bottom:15px}
.al-f-lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--text-3);margin-bottom:7px}
.al-q{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);
  border-radius:7px;padding:7px 10px;color:var(--text);font-family:var(--sans);font-size:12.5px}
.al-q:focus{outline:none;border-color:rgba(245,197,24,.45)}
.al-f-puces{display:flex;flex-wrap:wrap;gap:5px}
.al-puce{display:inline-flex;align-items:center;gap:5px;max-width:100%;
  background:var(--bg);border:1px solid var(--border);border-radius:999px;
  padding:3px 9px;cursor:pointer;font-family:var(--sans);font-size:11px;color:var(--text-2);
  transition:border-color .2s,color .2s,background .2s}
.al-puce:hover{border-color:rgba(245,197,24,.4);color:var(--text)}
.al-puce.on{background:var(--gold);border-color:var(--gold);color:#000;font-weight:600}
.al-puce em{font-style:normal;font-size:9.5px;opacity:.6}
.al-puce img{border-radius:2px;flex-shrink:0}
.al-tronq{max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al-niv-p{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-3)}
.al-niv-p.danger{background:var(--red)}
.al-niv-p.warning{background:#ffa940}
.al-niv-p.info{background:#38bdf8}
.al-reset{width:100%;background:none;border:1px dashed var(--border);border-radius:8px;
  padding:6px;cursor:pointer;font-family:var(--mono);font-size:10px;color:var(--text-3)}
.al-reset:hover{color:var(--text);border-color:var(--text-3)}

.al-carte{border:1px solid var(--border);border-left:4px solid var(--border);border-radius:6px;
  padding:12px 14px;margin-bottom:10px;cursor:pointer;transition:border-color .2s,background .2s}
.al-carte:hover{border-color:#3f3f46}
.al-carte.danger{border-left-color:var(--red);background:rgba(239,68,68,.05)}
.al-carte.warning{border-left-color:#fb923c;background:rgba(251,146,60,.05)}
.al-carte.info{border-left-color:#0ea5e9;background:rgba(14,165,233,.05)}
.al-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.al-h-l{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.al-h time{font-family:var(--mono);font-size:11px;color:var(--text-3);flex-shrink:0}
.al-brk{background:var(--red);color:#fff;border-radius:4px;padding:1px 6px;
  font-family:var(--mono);font-size:8.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.al-carte p{margin:0;font-family:var(--sans);font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.9)}
.al-f{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.al-age{font-family:var(--mono);font-size:10px;color:var(--text-3)}
.al-vide{text-align:center;padding:44px 20px;font-family:var(--sans);font-size:13px;color:var(--text-3)}
/* Bulletin parlé : un seul bloc de texte, interligne confortable — il est
   écrit pour être entendu, et se lit donc comme un paragraphe, pas comme
   une fiche à puces. */
.acc-digest-txt{font-family:var(--sans);font-size:14px;line-height:1.75;color:#e4e4e7}
.acc-digest-txt p{margin:0 0 12px}
.acc-digest-txt p:last-child{margin-bottom:0}

/* Rappel du résumé : l'heure d'arrêt, juste sous le lecteur. */
.acc-ecoute-h{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
  color:rgba(252,211,77,.8);margin:10px 0 14px}

/* Couplage des deux histogrammes de la page Gamma : survoler un strike dans
   l'un l'allume dans l'autre, et la ligne .opt-lien réunit ce qu'on sait de ce
   strike — GEX, volume et open interest sur une seule ligne. */
.opt-bar{cursor:crosshair}
.opt-bar.on{filter:brightness(1.6) saturate(1.2)}
rect.opt-bar.on[fill="transparent"]{fill:rgba(245,197,24,.10)}
.opt-lien{font-family:var(--mono);font-size:10.5px;line-height:1.5;color:var(--text-2);
  background:var(--bg-2);border:1px solid var(--border);border-radius:7px;
  padding:6px 10px;margin-bottom:9px;min-height:27px;overflow-x:auto;white-space:nowrap}

.rg-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.rg-h1{font-family:var(--sans);font-size:22px;font-weight:700;color:var(--text);margin:0 0 4px}
.rg-sous{font-family:var(--sans);font-size:13px;color:var(--text-3)}
.rg-top-r{display:flex;align-items:center;gap:10px}
.rg-maj{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.rg-ref{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);border-radius:8px;
  padding:6px 11px;cursor:pointer;font-size:13px;transition:color .2s,border-color .2s}
.rg-ref:hover:not(:disabled){color:var(--text);border-color:var(--text-3)}
.rg-ref:disabled{opacity:.45;cursor:default}
.rg-card{margin-bottom:16px}

.rg-verdict{border:1px solid;border-radius:12px;padding:14px 16px;margin-bottom:16px;background:rgba(255,255,255,.02)}
.rg-verdict-mot{font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:.06em;margin-bottom:5px}
.rg-verdict-txt{font-family:var(--sans);font-size:13px;color:var(--text-2);line-height:1.5}

.rg-jauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px}
.rg-jauge-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-family:var(--sans);font-size:12.5px;color:var(--text-2);margin-bottom:6px}
.rg-jauge-h b{font-family:var(--mono);font-size:17px}
.rg-bar{height:7px;border-radius:99px;background:var(--bg-2);overflow:hidden}
.rg-bar i{display:block;height:100%;border-radius:99px;transition:width .4s ease}
.rg-jauge-s{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:5px}

.rg-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.rg-ch{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:11px 13px}
.rg-ch .l{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:6px}
.rg-ch .v{font-family:var(--mono);font-size:17px;color:var(--text);display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.rg-ch .v span{color:var(--text-3);font-size:14px}
.rg-ch .v em{font-style:normal;font-size:11px;color:var(--text-3)}
.rg-ch .s{font-family:var(--sans);font-size:11px;color:var(--text-3);margin-top:5px;line-height:1.35}

.rg-note{font-family:var(--sans);font-size:11.5px;color:var(--text-3);line-height:1.55;margin-top:14px;
  padding-top:11px;border-top:1px solid var(--border)}
.rg-note b{color:var(--text-2);font-weight:600}

.rg-tab{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11.5px}
.rg-tab thead th{text-align:right;padding:7px 9px;color:var(--text-3);border-bottom:1px solid var(--border);
  font-weight:400;white-space:nowrap;cursor:pointer;user-select:none}
.rg-tab thead th.g{text-align:left;cursor:default}
.rg-tab thead th.g2{text-align:left;cursor:default;width:26%}
.rg-tab thead th.on{color:var(--gold)}
.rg-tab thead th:not(.g):not(.g2):hover{color:var(--text)}
.rg-tab tbody tr{border-bottom:1px solid rgba(31,31,38,.5)}
.rg-tab tbody tr:hover{background:rgba(24,24,27,.4)}
.rg-tab td{padding:8px 9px;color:var(--text-2)}
.rg-tab td.g{text-align:left;color:var(--text)}
.rg-tab td.n{text-align:right;white-space:nowrap}
.rg-tab td.g b{color:var(--text);font-weight:700}
.rg-sub{display:block;font-size:10px;color:var(--text-3);margin-top:2px}
.rg-mini{height:6px;border-radius:99px;background:var(--bg-2);overflow:hidden}
.rg-mini i{display:block;height:100%;border-radius:99px}
/* Les trois tableaux du Régime dépassent la largeur d'un téléphone : sans
   conteneur défilant, les dernières colonnes (« 3 mois »…) étaient tout
   simplement invisibles, coupées au bord de l'écran (07/08/2026). On les rend
   défilables horizontalement, comme les autres tableaux larges du site. */
#rg-secteurs,#rg-pead{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* La note explicative est écrite dans le même conteneur que le tableau : sans
   ceci elle glisserait hors de la carte quand on fait défiler (jusqu'à 118 px
   sur « Dérive post-résultats »). Elle reste calée à gauche. */
#rg-secteurs>.rg-note,#rg-pead>.rg-note{position:sticky;left:0}
/* Colonne de gauche figée sur « Dérive post-résultats » : son défilement fait
   118 px, et sans cela on lisait des chiffres sans savoir de quel titre il
   s'agit. Fond opaque obligatoire, sinon les cellules défilent par-dessous. */
#rg-pead .rg-tab th.g,#rg-pead .rg-tab td.g{position:sticky;left:0;z-index:1;background:var(--bg-card)}
#rg-pead .rg-tab tbody tr:hover td.g{background:#15151a}
@media(max-width:720px){
  .rg-tab thead th.g2,.rg-tab td.g2{display:none}
  .rg-tab{font-size:11px}
  /* Largeur de confort : en dessous, les colonnes se tassent et deviennent
     illisibles. Le défilement du conteneur prend le relais. */
  .rg-tab{min-width:340px}
  .rg-tab thead th,.rg-tab td{padding-left:6px;padding-right:6px}
}

/* Rafales : les autres brèves du même intervenant, repliées sous la carte. */
.acc-al-f{display:flex;align-items:center;justify-content:space-between;gap:10px}
.acc-al-f .more{margin-top:8px}
.acc-plus{flex-shrink:0;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--z400);
  background:rgba(255,255,255,.04);border:1px solid #27272a;border-radius:999px;padding:3px 9px;
  cursor:pointer;transition:color .2s,border-color .2s}
.acc-plus:hover{color:#fff;border-color:#3f3f46}
.acc-plus.on{color:var(--amber3);border-color:rgba(245,158,11,.4)}
.acc-suite{margin-top:9px;border-left:2px solid #27272a;padding-left:10px;display:flex;flex-direction:column;gap:7px}
.acc-suite-e{display:flex;align-items:flex-start;gap:8px}
.acc-suite-e time{font-family:var(--mono);font-size:10px;color:var(--z600);flex-shrink:0;padding-top:2px}
/* min-width:0 : enfant d'un flex, il pourrait sinon refuser de se réduire et
   pousser la carte hors de l'écran sur un mot très long (URL, sigle). */
.acc-suite-e p{display:block;-webkit-line-clamp:none;overflow:visible;font-size:12.5px;line-height:1.45;
  color:rgba(255,255,255,.72);margin:0;min-width:0;overflow-wrap:anywhere}
/* L'Accueil élargissait aussi l'EN-TÊTE : .top-inner et .nav-inner passaient en
   pleine largeur avec 16 px de marge, alors que partout ailleurs ils sont bridés
   à 1400 px centrés avec 20 px. Le menu du studio ne ressemblait donc à aucun
   autre. Règle retirée le 31/7 : l'en-tête est identique sur toutes les pages.
   Le CONTENU du studio, lui, reste en pleine page — c'est .main:has(...)
   ci-dessous qui s'en charge, et c'est volontairement séparé. */

/* ═════ Studio en pleine page ═════
   Le .main est centré à 1400 px avec 28 px de marge : le fond de l''app
   débordait donc de chaque côté du studio. Quand l''Accueil est la page active,
   on annule largeur maximale et marges. La règle suit la classe .active :
   aucun état à nettoyer en JS, donc rien qui puisse rester coincé. */
.main:has(> #stock-accueil.active){max-width:none;padding:0}
.main:has(> #stock-accueil.active) + .footer-note{display:none}
.main:has(> #stock-accueil.active) .acc{border-radius:0;border-left:0;border-right:0;min-height:calc(100vh - 150px)}

/* Points de comparaison sous la jauge Fear & Greed */
.acc-fng-row{display:flex;justify-content:space-between;gap:6px;margin:6px 0 2px;padding-top:6px;border-top:1px solid #1f1f22}
.acc-fng-row div{text-align:center;flex:1;min-width:0}
.acc-fng-row .l{font-family:var(--mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:#71717a}
.acc-fng-row .v{font-family:var(--mono);font-size:12px;font-weight:700;margin-top:1px}
.acc-fng-src{font-family:var(--mono);font-size:8.5px;color:#52525b;text-align:center;margin-top:4px}

/* Fiche d'une alerte : la bande de gauche reprend la criticité de la carte. */
.acc-al-box{position:relative;display:flex;flex-direction:column;width:100%;max-width:660px;max-height:82vh;overflow:hidden;
  background:#0d0d0f;border:1px solid #27272A;border-left:5px solid #52525b;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.acc-al-box.danger{border-left-color:#ef4444;box-shadow:0 20px 60px rgba(0,0,0,.6),-6px 0 26px -8px rgba(239,68,68,.55)}
.acc-al-box.warning{border-left-color:#fb923c;box-shadow:0 20px 60px rgba(0,0,0,.6),-6px 0 26px -8px rgba(251,146,60,.55)}
.acc-al-box.info{border-left-color:#0ea5e9;box-shadow:0 20px 60px rgba(0,0,0,.6),-6px 0 26px -8px rgba(14,165,233,.5)}
.acc-al-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 52px 0 18px}
.acc-al-top img{border-radius:2px;display:block;flex-shrink:0}
.acc-al-top .glb{display:inline-flex;align-items:center;justify-content:center;width:22px;height:17px;border-radius:3px;
  background:linear-gradient(to bottom right,#0ea5e9,#10b981);color:#fff;flex-shrink:0}
.acc-al-niv{display:inline-flex;align-items:center;border-radius:6px;border:1px solid;padding:2px 9px;
  font-family:var(--sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;background:transparent}
.acc-al-niv.danger{color:#f87171;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.1)}
.acc-al-niv.warning{color:#fb923c;border-color:rgba(251,146,60,.45);background:rgba(251,146,60,.1)}
.acc-al-niv.info{color:#38bdf8;border-color:rgba(14,165,233,.45);background:rgba(14,165,233,.1)}
.acc-al-meta{display:flex;align-items:center;gap:7px;padding:9px 18px 14px;font-family:var(--mono);font-size:12px;color:#a1a1aa;
  border-bottom:1px solid #1f1f22}
.acc-al-meta svg{color:#71717a;flex-shrink:0}
.acc-al-meta em{font-style:normal;color:#52525b}
.acc-al-corps{padding:18px;overflow-y:auto}
.acc-al-txt{font-family:var(--sans);font-size:16px;line-height:1.5;color:#fff;margin:0 0 16px}
.acc-al-interp{border:1px solid rgba(245,158,11,.28);background:rgba(245,158,11,.05);border-radius:10px;padding:12px 14px}
.acc-al-interp .h{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;color:#fbbf24;margin-bottom:7px}
.acc-al-interp .c{font-family:var(--sans);font-size:13.5px;line-height:1.65;color:#d4d4d8}
/* Bouton play de l'interprétation : lecture par la voix du site (03/08/2026) */
.acc-al-interp .h #acc-interp-play{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:8px;cursor:pointer;transition:.15s;
  background:none;border:1px solid rgba(245,158,11,.5);color:var(--gold)}
.acc-al-interp .h #acc-interp-play svg{width:14px;height:14px}
.acc-al-interp .h #acc-interp-play:hover{background:rgba(245,158,11,.12)}
.acc-al-interp .h #acc-interp-play:disabled{opacity:.35;cursor:default;pointer-events:none}
.acc-al-interp .h #acc-interp-play.on{background:rgba(245,158,11,.15)}
.acc-al-src{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-family:var(--sans);font-size:12px;color:#fcd34d}
.acc-al-src:hover{color:#fde68a;text-decoration:underline}
.acc-al{cursor:pointer}

/* Fiche d'une composante du sentiment */
.acc-fiche-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:14px}
.acc-fiche-kpi div{background:#18181B;border:1px solid #27272A;border-radius:8px;padding:8px 10px}
.acc-fiche-kpi .l{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#71717a}
.acc-fiche-kpi .v{font-family:var(--mono);font-size:17px;font-weight:700;color:#fff;margin-top:3px;line-height:1.1}
.acc-fiche-spark{background:#18181B;border:1px solid #27272A;border-radius:8px;padding:10px}
.acc-fiche-spark svg{width:100%;height:80px;display:block}
.acc-fiche-lg{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:#71717a;margin-top:5px}
.acc-fiche-form{background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.25);border-radius:8px;
  padding:10px 12px;margin-top:12px;font-family:var(--sans);font-size:12px;line-height:1.6;color:#d4d4d8}
.acc-fiche-form b{color:#fcd34d}
.acc-comp{cursor:pointer}

/* ═════ Barre de lecture, fixe en bas de toutes les pages ═════ */
.radio-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;height:32px;display:flex;align-items:center;
  border-top:1px solid #27272A;background:rgba(9,9,11,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.radio-bar-in{width:100%;max-width:1600px;margin:0 auto;height:100%;padding:0 16px;display:flex;align-items:center;gap:8px}
@media(min-width:768px){.radio-bar-in{padding:0 24px}}
.radio-bar-pp{width:24px;height:24px;border-radius:50%;border:none;background:#dc2626;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.radio-bar-pp:hover{background:#b91c1c}
.radio-bar-pp:disabled{opacity:.4;cursor:not-allowed}
.radio-wave{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;height:100%}
.radio-wave i{width:4px;border-radius:9999px;display:block;transform-origin:center center;
  background:linear-gradient(to top,#f59e0b,#ef4444);box-shadow:0 1px 2px rgba(245,158,11,.2);
  opacity:.3;transition:opacity .25s}
.radio-bar.on .radio-wave i{opacity:1;animation:radioWave 1s ease-in-out infinite}
@keyframes radioWave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.radio-bar-tx{display:none;flex-direction:column;line-height:1.1;flex-shrink:0;max-width:24em;min-width:0}
@media(min-width:640px){.radio-bar-tx{display:flex}}
.radio-bar-tx .s{display:flex;align-items:center;gap:4px;font-family:var(--sans);font-size:10px;
  text-transform:uppercase;letter-spacing:.06em;color:#f87171}
.radio-bar-tx .s i{width:6px;height:6px;border-radius:50%;background:#ef4444;flex-shrink:0;
  animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
.radio-bar.off .radio-bar-tx .s{color:#71717a}
.radio-bar.off .radio-bar-tx .s i{background:#52525b;animation:none}
.radio-bar-tx .t{font-family:var(--sans);font-size:11px;color:#fff;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.radio-bar-live{display:none;align-items:center;gap:6px;padding:1px 8px;border-radius:3px;flex-shrink:0;
  background:rgba(220,38,38,.2);border:1px solid rgba(220,38,38,.3);color:#f87171}
@media(min-width:768px){.radio-bar.on .radio-bar-live{display:flex}}
.radio-bar-live span{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.radio-bar-vol{display:none;align-items:center;gap:6px;flex-shrink:0}
@media(min-width:768px){.radio-bar-vol{display:flex}}
.radio-bar-vol button{width:28px;height:28px;border:none;background:none;color:#a1a1aa;cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:6px}
.radio-bar-vol button:hover{background:rgba(255,255,255,.06);color:#fff}
.radio-bar-vol input[type=range]{-webkit-appearance:none;appearance:none;width:80px;height:6px;border-radius:9999px;
  background:rgba(245,158,11,.22);outline:none;cursor:pointer}
.radio-bar-vol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;
  border-radius:50%;background:#fff;border:1px solid rgba(245,158,11,.5);cursor:pointer}
/* ── Sous 640 px, la barre repliée n'était QUE l'onde (02/08/2026) ──
   Libellés, badge et volume sont masqués à cette largeur ; l'onde, en
   flex:1, s'étalait donc seule sur toute la largeur — vingt-quatre
   bâtonnets orange pâles, figés, sans un mot. Au bas d'un téléphone,
   cela se lit comme un élément cassé, pas comme une radio en veille.
   À cette taille, c'est le libellé qui porte le sens : l'onde ne
   s'affiche qu'à l'antenne, animée, et le bouton muet arrive avec elle. */
@media(max-width:639px){
  .radio-bar-tx{display:flex}
  .radio-bar.off .radio-wave{display:none}
  .radio-bar.on .radio-bar-vol{display:flex}
  .radio-bar-vol input[type=range]{display:none}
}

.radio-bar-vol input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;
  border:1px solid rgba(245,158,11,.5);cursor:pointer}
/* la barre ne doit jamais recouvrir la fin d'une page */
body{padding-bottom:32px}

/* Bouton « Résumé de la journée » */
.acc-digest{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:36px;padding:0 16px;
  border-radius:6px;border:1px solid rgba(245,158,11,.3);background:rgba(245,158,11,.05);color:#fcd34d;
  font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s}
.acc-digest:hover{background:rgba(245,158,11,.15);color:#fde68a;border-color:rgba(245,158,11,.5)}
.acc-digest:disabled{pointer-events:none;opacity:.5}
.acc-digest svg{flex-shrink:0}
/* Trois résumés : la journée reste l'action principale, pré-market et clôture
   sont deux variantes calées sur la séance américaine — d'où le rang secondaire. */
/* Écoute du résumé : voix du navigateur, même moteur que la radio. */
.acc-ecoute-bar{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px;
  border:1px solid rgba(245,158,11,.2);background:rgba(245,158,11,.05);border-radius:10px}
#acc-ecoute{width:44px;height:44px;border-radius:50%;flex-shrink:0;cursor:pointer;border:none;
  background:var(--amber, #f59e0b);color:#000;display:flex;align-items:center;justify-content:center;
  transition:background .2s}
#acc-ecoute:hover{background:#fbbf24}
#acc-ecoute svg{width:19px;height:19px}
#acc-ecoute.on{background:#fbbf24;animation:accEcoutePulse 1.6s ease-in-out infinite}
@keyframes accEcoutePulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.5)}50%{box-shadow:0 0 0 7px rgba(245,158,11,0)}}
#acc-ecoute-t{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:#fcd34d}

/* Pause, reprise et progression (11/08/2026). Le bouton principal mettait la
   lecture en pause en apparence et la RELANÇAIT DEPUIS LE DÉBUT en réalité :
   les phrases et l'index étaient des variables locales, donc perdus à l'arrêt.
   La barre indique maintenant où on en est — sans elle, « En pause » ne dit pas
   ce qu'on perdrait en repartant du début. */
.acc-ecoute-c{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.acc-progres{height:3px;border-radius:999px;background:rgba(245,158,11,.18);overflow:hidden}
.acc-progres i{display:block;height:100%;width:0;background:var(--amber,#f59e0b);
  border-radius:999px;transition:width .3s ease}
.acc-ecoute-n{font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:#fcd34d;opacity:.75;white-space:nowrap;flex-shrink:0}
#acc-rejoue{width:32px;height:32px;border-radius:50%;flex-shrink:0;cursor:pointer;
  border:1px solid rgba(245,158,11,.35);background:none;color:#fcd34d;
  display:flex;align-items:center;justify-content:center;transition:all .2s}
#acc-rejoue:hover{border-color:var(--amber,#f59e0b);background:rgba(245,158,11,.12)}
#acc-rejoue svg{width:15px;height:15px}
@media (max-width:520px){
  .acc-ecoute-n{display:none}          /* la barre suffit sur un écran étroit */
}

.acc-digest-grp{display:flex;flex-direction:column;gap:6px}
.acc-digest-grp .acc-digest.sec{height:31px;font-size:12px;gap:6px;
  border-color:var(--border);background:rgba(255,255,255,.03);color:var(--text-2)}
.acc-digest-grp .acc-digest.sec svg{width:14px;height:14px}
.acc-digest-grp .acc-digest.sec:hover{background:rgba(255,255,255,.07);color:var(--text);border-color:var(--text-3)}
.acc-digest-grp .acc-digest.sec:disabled{pointer-events:none;opacity:.5}
@media(min-width:520px){
  .acc-digest-grp{flex-direction:row;flex-wrap:wrap}
  .acc-digest-grp .acc-digest{width:auto;flex:1 1 100%}
  .acc-digest-grp .acc-digest.sec{flex:1 1 0;min-width:0}
}

/* Fenêtre du résumé */
.acc-modal{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.acc-modal-box{display:flex;flex-direction:column;width:100%;max-width:680px;max-height:82vh;overflow:hidden;
  background:#0d0d0f;border:1px solid #27272A;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.acc-modal-h{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #27272A;background:#18181B;flex-shrink:0}
.acc-modal-h svg{color:#fbbf24;flex-shrink:0}
.acc-modal-h b{font-family:var(--sans);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff}
.acc-modal-h .d{font-family:var(--mono);font-size:10px;color:#71717a}
.acc-modal-x{margin-left:auto;width:26px;height:26px;border-radius:6px;border:1px solid #27272A;background:transparent;
  color:#a1a1aa;cursor:pointer;font-size:15px;line-height:1;flex-shrink:0}
.acc-modal-x:hover{background:#27272A;color:#fff}
.acc-modal-b{padding:16px;overflow-y:auto;font-family:var(--sans);font-size:13.5px;line-height:1.7;color:#e4e4e7}
.acc-modal-b h4{font-family:var(--sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:#fbbf24;margin:16px 0 6px}
.acc-modal-b h4:first-child{margin-top:0}
.acc-modal-b strong{color:#fff;font-weight:600}
.acc-modal-b ul{margin:4px 0 4px 2px;list-style:none}
.acc-modal-b li{position:relative;padding-left:14px;margin:3px 0}
.acc-modal-b li:before{content:"";position:absolute;left:2px;top:9px;width:4px;height:4px;border-radius:50%;background:#f59e0b}
.acc-modal-b p{margin:6px 0}
.acc-modal-f{padding:9px 16px;border-top:1px solid #27272A;font-family:var(--mono);font-size:9px;color:#71717a;line-height:1.6;flex-shrink:0}

/* Ascenseurs sombres : sur un panneau noir, la barre native claire jure. */
.acc,.acc *,.ecal,.ecal *{scrollbar-width:thin;scrollbar-color:#3f3f46 #0d0d0f}
.acc ::-webkit-scrollbar,.acc::-webkit-scrollbar,
.ecal ::-webkit-scrollbar,.ecal::-webkit-scrollbar{width:8px;height:8px}
.acc ::-webkit-scrollbar-track,.acc::-webkit-scrollbar-track,
.ecal ::-webkit-scrollbar-track,.ecal::-webkit-scrollbar-track{background:#0d0d0f}
.acc ::-webkit-scrollbar-thumb,.acc::-webkit-scrollbar-thumb,
.ecal ::-webkit-scrollbar-thumb,.ecal::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:4px;border:2px solid #0d0d0f}
.acc ::-webkit-scrollbar-thumb:hover,.acc::-webkit-scrollbar-thumb:hover,
.ecal ::-webkit-scrollbar-thumb:hover,.ecal::-webkit-scrollbar-thumb:hover{background:#52525b}
.acc ::-webkit-scrollbar-corner,.ecal ::-webkit-scrollbar-corner{background:#0d0d0f}

/* Sentiment du jour — en-tête ambre monospace + compteur à droite, comme le modèle. */
.acc-sent-h{display:flex;align-items:center;gap:6px;padding:6px 10px 0;
  font-family:var(--mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--amber4)}
.acc-sent-h svg{flex-shrink:0}
.acc-sent-h .n{margin-left:auto;color:var(--z500);text-transform:none;letter-spacing:0;font-weight:400}
.acc-gauge{gap:8px;margin:0 -4px;padding:0 4px;border-radius:6px}
.acc-gauge:hover{background:rgba(255,255,255,.03)}
.acc-gauge .v b{font-size:24px}
.acc-gauge .v span{letter-spacing:.14em}
.acc-comp{gap:8px;margin:0 -4px;padding:1px 4px;border-radius:2px}
.acc-comp:hover{background:rgba(255,255,255,.05)}
.acc-comp .bar i{transition:width .7s cubic-bezier(.4,0,.2,1)}

.acc-al.neuf{animation:accFlash 2s ease-out}
@keyframes accFlash{0%{background:rgba(245,158,11,.22)}100%{background:transparent}}
.acc-maj{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;color:var(--z500);white-space:nowrap}
.acc-maj i{width:5px;height:5px;border-radius:50%;background:var(--emerald4);flex-shrink:0}
.acc-maj.vieux i{background:var(--orange4)}
.acc-maj.mort i{background:var(--red5)}
.acc-ref{background:var(--z800);border:1px solid var(--z700);color:var(--z300);border-radius:4px;height:22px;padding:0 7px;
  font-family:var(--sans);font-size:10px;cursor:pointer;flex-shrink:0}
.acc-ref:hover{border-color:rgba(245,158,11,.4);color:#fff}
.acc-al-h .age{font-family:var(--mono);font-size:10px;color:var(--z600)}
.acc-feed-end{padding:12px;text-align:center;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--z500)}

/* radio mini */
.acc-mini{border:1px solid var(--z800);background:var(--z900);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}

/* Bandeau Breaking — alertes critiques, en tête du studio */
.acc-brk-ban{position:relative;overflow:hidden;display:none;padding:10px;margin-bottom:12px;border-radius:8px;
  border:1px solid rgba(239,68,68,.6);
  background:linear-gradient(to bottom right,rgba(69,10,10,.8),rgba(127,29,29,.4),rgba(69,10,10,.8))}
.acc-brk-ban.on{display:block}
.acc-brk-ban .lz{position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(to right,#ef4444,#f87171,#ef4444);animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
.acc-brk-in{display:flex;align-items:flex-start;gap:8px}
.acc-brk-ico{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:rgba(220,38,38,.3);border:1px solid rgba(239,68,68,.4);color:#f87171;animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
.acc-brk-c{flex:1;min-width:0}
.acc-brk-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}
.acc-brk-tag{display:inline-flex;align-items:center;gap:4px;background:#dc2626;color:#fff;border-radius:2px;
  font-family:var(--sans);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;padding:0 6px}
.acc-brk-tag i{width:4px;height:4px;border-radius:50%;background:#fff;animation:accPulse 2s cubic-bezier(.4,0,.6,1) infinite}
.acc-brk-cat{font-family:var(--sans);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:rgba(252,165,165,.8)}
.acc-brk-hr{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;color:rgba(252,165,165,.7)}
.acc-brk-m{position:relative;overflow:hidden;width:100%}
.acc-brk-m .piste{display:inline-flex;white-space:nowrap;will-change:transform;animation:accTicker linear infinite}
.acc-brk-m p{font-family:var(--sans);font-size:12px;font-weight:600;color:#fef2f2;flex-shrink:0;padding-right:40px;margin:0}
@keyframes accTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.acc-brk-ban:hover .piste{animation-play-state:paused}
.acc-brk-autres{margin-top:4px;font-size:10px;font-style:italic;color:rgba(252,165,165,.7)}

/* Le fil de l'histoire */
.acc-hist{border:1px solid var(--z800);background:var(--z900);border-radius:8px;padding:5px 10px;cursor:pointer;
  transition:border-color .15s;width:100%;text-align:left;color:inherit;font:inherit}
.acc-hist:hover{border-color:rgba(245,158,11,.4)}
#acc-hist-list{scrollbar-width:thin}
.acc-hist+.acc-hist{margin-top:8px}
.acc-hist-l1{display:flex;align-items:center;gap:6px;min-width:0}
.acc-hist-niv{flex-shrink:0;padding:0 6px;border-radius:4px;font-family:var(--mono);font-size:9px;
  text-transform:uppercase;letter-spacing:.07em;border:1px solid}
.acc-hist-niv.danger{background:rgba(239,68,68,.2);color:#f87171;border-color:rgba(239,68,68,.4)}
.acc-hist-niv.warning{background:rgba(249,115,22,.2);color:#fb923c;border-color:rgba(249,115,22,.4)}
.acc-hist-niv.info{background:rgba(14,165,233,.18);color:#38bdf8;border-color:rgba(14,165,233,.4)}
.acc-hist-l1 img{border-radius:2px;flex-shrink:0;display:block}
.acc-hist-l1 .glb{display:inline-flex;align-items:center;justify-content:center;width:20px;height:15px;border-radius:2px;
  background:linear-gradient(to bottom right,#0ea5e9,#10b981);color:#fff;flex-shrink:0}
.acc-hist-l1 .fl{color:#fb923c;flex-shrink:0}
.acc-hist-l1 p{font-size:13px;font-weight:500;color:#fff;line-height:1.3;flex:1;min-width:0;margin:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-hist-l1 .ch{color:var(--z400);flex-shrink:0}
.acc-hist-l2{display:flex;align-items:center;gap:7px;margin-top:2px;padding-left:2px;
  font-family:var(--mono);font-size:10px;color:var(--z500)}
.acc-hist-l2 b{color:var(--amber4);font-weight:400}
.acc-hist-l2 span{display:inline-flex;align-items:center;gap:4px}

/* Chronologie d'une histoire */
.acc-tl{max-height:55vh;overflow-y:auto;padding-right:4px}
.acc-tl-e{position:relative;padding-left:16px;border-left:2px solid rgba(245,158,11,.3)}
.acc-tl-e+.acc-tl-e{margin-top:12px}
.acc-tl-e i{position:absolute;left:-5px;top:6px;width:8px;height:8px;border-radius:50%;background:#fbbf24}
.acc-tl-e .d{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--z500);margin-bottom:3px}
.acc-tl-e p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.9);margin:0;white-space:pre-wrap;word-break:break-word}
.acc-tl-h{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--z500);margin:10px 0 6px}
.acc-tl-sous{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--amber4)}
.acc-tl-sous em{font-style:normal;color:var(--z500);margin-left:7px;text-transform:none;letter-spacing:0}

/* brief par pays */
.acc-cty{display:flex;align-items:center;gap:8px;padding:6px;border-bottom:1px solid #1f1f22;width:100%;background:none;border-left:0;border-right:0;border-top:0;cursor:pointer;text-align:left}
.acc-cty:last-child{border-bottom:0}
.acc-cty:hover{background:#0f0f12}
.acc-cty img,.acc-cty .glb{flex-shrink:0}
.acc-cty .glb{display:inline-flex;align-items:center;justify-content:center;width:20px;height:15px;border-radius:2px;background:linear-gradient(to bottom right,#0ea5e9,#10b981);color:#fff}
.acc-cty .n{font-size:12px;color:rgba(255,255,255,.9);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-cty .c{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--amber4);flex-shrink:0}

.acc-vide{padding:24px 12px;text-align:center;font-family:var(--sans);font-size:12px;color:var(--z500)}

.ecal-mob{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--z800);
  background:transparent;color:var(--z300);font-family:var(--sans);font-size:12px;font-weight:500;cursor:pointer}
@media(min-width:768px){.ecal-mob{display:none}}

.econ-filter{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.econ-filter-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:10px;font-weight:700;padding:5px 11px;border-radius:7px;cursor:pointer}
.econ-filter-btn.active{border-color:var(--gold);color:var(--gold);background:rgba(240,185,11,.08)}
@media(max-width:520px){.econ-row{grid-template-columns:42px 20px 1fr;gap:6px}.econ-imp{grid-column:3;justify-self:start;margin-top:3px}}
/* BRIEF DU MATIN */
.brief-card{background:linear-gradient(135deg,rgba(240,185,11,.05),var(--bg-card));border:1px solid rgba(240,185,11,.2);border-radius:16px;padding:18px 20px;margin-bottom:20px}
.brief-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.brief-title{font-family:var(--serif);font-size:20px;font-style:italic;letter-spacing:-0.02em}
.brief-btn{background:var(--gold);color:#000;border:none;font-family:var(--mono);font-size:11px;font-weight:700;padding:7px 14px;border-radius:8px;cursor:pointer;transition:transform .15s}
.brief-btn:hover{transform:translateY(-1px)}
.brief-btn:disabled{opacity:.5;cursor:default;transform:none}
.brief-body{font-family:var(--sans);font-size:14px;line-height:1.65;color:var(--text)}
.brief-narrative{margin-top:2px}
.brief-body p{margin:0 0 8px}
.brief-snap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.brief-regime{font-family:var(--mono);font-size:11px;font-weight:800;padding:6px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.05em}
.brief-regime.on{background:var(--green-bg);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.brief-regime.off{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.3)}
.brief-regime.mixed{background:var(--orange-bg);color:var(--orange);border:1px solid rgba(255,169,64,.3)}
.brief-chip{display:inline-flex;align-items:baseline;gap:6px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:5px 10px;font-family:var(--mono);font-size:11px}
.brief-chip .l{color:var(--text-3);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.brief-chip .v{color:var(--text);font-weight:700}
.brief-empty{font-family:var(--mono);font-size:12px;color:var(--text-3);line-height:1.6}
.brief-focus{margin-top:10px;padding:10px 12px;background:var(--bg-2);border-left:3px solid var(--gold);border-radius:8px;font-size:13px;color:var(--text-2)}
.brief-time{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:10px}
/* MULTI-VISION — cartes trader par symbole */
.mv-regime{border-radius:14px;padding:14px 18px;margin-bottom:14px;border:1px solid var(--border-light);font-family:var(--mono);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mv-regime.on{background:var(--green-bg);border-color:rgba(14,203,129,.3)}
.mv-regime.off{background:var(--red-bg);border-color:rgba(255,71,87,.3)}
.mv-regime.mixed{background:var(--orange-bg);border-color:rgba(255,169,64,.3)}
.mv-regime-tag{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:0.06em;display:inline-flex;align-items:center;gap:8px}
.mv-regime.on .mv-regime-tag{color:var(--green)}.mv-regime.off .mv-regime-tag{color:var(--red)}.mv-regime.mixed .mv-regime-tag{color:var(--orange)}
.mv-regime-txt{font-size:12px;color:var(--text-2);line-height:1.5}
/* Multi-Vision : score de setup, alignement, top-pick */
.mv-score{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px;padding:3px 7px;border-radius:9px;font-family:var(--mono);line-height:1}
.mv-score b{font-size:16px;font-weight:900}
.mv-score span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;opacity:.8}
.mv-score.aplus{background:rgba(14,203,129,.14);color:var(--green)}
.mv-score.b{background:rgba(245,197,24,.14);color:var(--gold)}
.mv-score.c{background:rgba(255,169,64,.12);color:var(--orange)}
.mv-score.d{background:rgba(255,71,87,.10);color:var(--red)}
.mv-align{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0}
.mv-align-cell{text-align:center;padding:5px 2px;border-radius:6px;background:var(--bg-2);font-family:var(--mono)}
.mv-align-cell .a-l{font-size:8px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.mv-align-cell .a-v{font-size:13px;font-weight:800;margin-top:1px}
.mv-align-cell.up .a-v{color:var(--green)}.mv-align-cell.down .a-v{color:var(--red)}.mv-align-cell.flat .a-v{color:var(--orange)}
.mv-toppick{border-radius:14px;padding:13px 18px;margin-bottom:14px;background:linear-gradient(135deg,rgba(245,197,24,.10),rgba(245,197,24,.02));border:1px solid rgba(245,197,24,.4);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mv-toppick .tp-badge{font-family:var(--mono);font-size:22px;font-weight:900;color:var(--gold);white-space:nowrap}
.mv-toppick .tp-txt{font-family:var(--mono);font-size:12px;color:var(--text-2);line-height:1.5;flex:1;min-width:180px}
.mv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.mv-loading{grid-column:1/-1;font-family:var(--mono);font-size:12px;color:var(--text-3);padding:30px;text-align:center}
.mv-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px;position:relative;overflow:hidden}
.mv-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--border-light)}
.mv-card.bull::before{background:linear-gradient(90deg,transparent,var(--green),transparent)}
.mv-card.bear::before{background:linear-gradient(90deg,transparent,var(--red),transparent)}
.mv-card.range::before{background:linear-gradient(90deg,transparent,var(--orange),transparent)}
.mv-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}
.mv-sym{font-family:var(--mono);font-size:18px;font-weight:800;letter-spacing:-0.02em}
.mv-sym small{color:var(--text-3);font-weight:400;font-size:11px;margin-left:6px}
.mv-price{font-family:var(--serif);font-size:26px;font-style:italic}
.mv-chg{font-family:var(--mono);font-size:12px;font-weight:700}
.mv-chg.up{color:var(--green)}.mv-chg.down{color:var(--red)}.mv-chg.flat{color:var(--text-3)}
.mv-bias{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;font-weight:800;padding:7px 13px;border-radius:9px;margin:10px 0;text-transform:uppercase;letter-spacing:0.05em}
.mv-bias.bull{background:var(--green-bg);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.mv-bias.bear{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.3)}
.mv-bias.range{background:var(--orange-bg);color:var(--orange);border:1px solid rgba(255,169,64,.3)}
.mv-rows{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 10px}
.mv-rows-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:420px){.mv-rows-3{grid-template-columns:1fr 1fr}}
.mv-row{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px}
.mv-row-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:3px}
.mv-row-val{font-family:var(--mono);font-size:13px;font-weight:700}
.mv-row-val.up{color:var(--green)}.mv-row-val.down{color:var(--red)}.mv-row-val.flat{color:var(--orange)}
.mv-levels{border-top:1px solid var(--border);padding-top:10px}
.mv-lvl-line{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;padding:3px 0}
.mv-lvl-line span:first-child{color:var(--text-3)}
.mv-lvl-line b{color:var(--text-2)}
.mv-lvl-line b.res{color:var(--red)}.mv-lvl-line b.sup{color:var(--green)}
.mv-summary{font-family:var(--sans);font-size:12px;color:var(--text-2);line-height:1.5;margin-top:10px;padding:9px 11px;background:var(--bg-2);border-radius:8px}
@media (max-width:900px){.mv-grid{grid-template-columns:1fr}}
.hero{background:linear-gradient(135deg,#101015 0%,#0a0a0b 100%);border:1px solid var(--border-light);border-radius:18px;padding:32px;position:relative;overflow:hidden;margin-bottom:24px}
.hero::before{content:'';position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,71,87,.08),transparent 60%);pointer-events:none}
.hero-flag{display:inline-flex;align-items:center;gap:8px;background:var(--red-bg);border:1px solid rgba(255,71,87,.2);color:var(--red);padding:6px 12px;border-radius:20px;font-family:var(--mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:16px}
.hero-flag .pulse{width:6px;height:6px;border-radius:50%;background:var(--red);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(255,71,87,.6)}50%{opacity:.6;box-shadow:0 0 0 6px rgba(255,71,87,0)}}
.hero-title{font-family:var(--serif);font-size:38px;font-style:italic;font-weight:400;letter-spacing:-0.03em;line-height:1.1;margin-bottom:8px;max-width:700px}
.hero-title em{color:var(--gold);font-style:italic}
.hero-sub{color:var(--text-2);font-size:15px;max-width:600px;line-height:1.5}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}
.hs{font-family:var(--mono)}
.hs-lbl{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:6px}
.hs-val{font-size:24px;color:var(--text);font-weight:600;letter-spacing:-0.02em;transition:color .3s}
.hs-val.red{color:var(--red)}.hs-val.green{color:var(--green)}.hs-val.orange{color:var(--orange)}
.hs-delta{font-size:11px;color:var(--text-3);margin-top:2px}
.hs-delta.red{color:var(--red)}.hs-delta.green{color:var(--green)}

.flash-up{animation:flashUp .6s ease}
.flash-down{animation:flashDown .6s ease}
@keyframes flashUp{0%{background:rgba(14,203,129,.2)}100%{background:transparent}}
@keyframes flashDown{0%{background:rgba(255,71,87,.2)}100%{background:transparent}}

.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;align-items:stretch}
.kpi{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.kpi-lbl{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.15em;margin-bottom:10px}
.kpi-val{font-family:var(--serif);font-size:36px;font-style:italic;letter-spacing:-0.02em;line-height:1;font-weight:400;transition:color .3s}
.kpi-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:8px;display:flex;align-items:center;gap:6px}
.kpi-sub strong{color:var(--text-2)}.kpi-sub .pos{color:var(--green)}.kpi-sub .neg{color:var(--red)}

.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px;position:relative;margin-bottom:16px}
.card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.card-title{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:0.15em;color:var(--text-3);font-weight:500;display:flex;align-items:center;gap:8px}
.card-title::before{content:'';width:3px;height:14px;background:var(--gold);border-radius:1px}

.positions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.pos-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px;position:relative;overflow:hidden;transition:all .2s}
.pos-card:hover{border-color:var(--border-light)}
.pos-card::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--red),transparent);opacity:.5;transition:background .3s}
.pos-card.profit::after{background:linear-gradient(90deg,transparent,var(--green),transparent)}
.pos-card.neutral::after{background:linear-gradient(90deg,transparent,var(--orange),transparent)}
.pos-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.pos-symbol{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-0.02em}
.pos-symbol .pair{color:var(--text-3);font-weight:400;font-size:13px;margin-left:2px}
.pos-status{font-family:var(--mono);font-size:9px;padding:3px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;transition:all .3s}
.st-loss{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.2)}
.st-neutral{background:var(--orange-bg);color:var(--orange);border:1px solid rgba(255,169,64,.2)}
.st-win{background:var(--green-bg);color:var(--green);border:1px solid rgba(14,203,129,.2)}
.pos-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}
.pos-current{font-family:var(--serif);font-size:32px;font-style:italic;letter-spacing:-0.02em;transition:color .3s}
.pos-pnl{font-family:var(--mono);font-size:13px;font-weight:600;transition:color .3s}
.pos-pnl.neg{color:var(--red)}.pos-pnl.pos{color:var(--green)}.pos-pnl.neu{color:var(--orange)}
.pos-meta{font-family:var(--mono);font-size:11px;color:var(--text-3);line-height:1.6}
.pos-meta b{color:var(--text-2);font-weight:500}
.pos-divider{height:1px;background:var(--border);margin:14px 0}
.pos-levels{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pos-lvl{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:10px}
.pos-lvl-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:4px}
.pos-lvl-val{font-family:var(--mono);font-size:14px;font-weight:600}
.pos-lvl-val.red{color:var(--red)}.pos-lvl-val.green{color:var(--green)}

.fear-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px}
.fear-gauge{position:relative;width:100%;aspect-ratio:1;max-width:200px;margin:8px auto 12px}
.fear-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.fear-num span:first-child{font-family:var(--serif);font-size:56px;font-style:italic;line-height:1;transition:color .3s}
.fear-num span:last-child{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.15em;margin-top:6px}

.split{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:24px}

.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan-card{background:linear-gradient(135deg,var(--bg-card),var(--bg-2));border:1px solid var(--border);border-radius:14px;padding:22px;position:relative}
.plan-num{font-family:var(--serif);font-size:64px;font-style:italic;color:var(--gold);line-height:.8;margin-bottom:8px;opacity:.9}
.plan-title{font-size:18px;font-weight:600;letter-spacing:-0.02em;margin-bottom:8px}
.plan-text{color:var(--text-2);font-size:13px;line-height:1.55}
.plan-text strong{color:var(--text)}

.settings-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px}
.settings-row{display:grid;grid-template-columns:0.6fr 1fr 1fr 1fr 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
.settings-row:last-child{border-bottom:none}
.settings-row label{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;display:block;margin-bottom:6px}
.settings-row input,.settings-row select{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:14px;padding:10px 12px;border-radius:8px}
.settings-row input:focus,.settings-row select:focus{outline:none;border-color:var(--gold)}
.settings-symbol{font-family:var(--mono);font-size:16px;font-weight:600;display:flex;align-items:center}
.save-btn{background:var(--gold);color:#000;border:none;font-family:var(--sans);font-weight:600;font-size:14px;padding:12px 24px;border-radius:10px;cursor:pointer;margin-top:18px;transition:transform .15s}
.save-btn:hover{transform:translateY(-1px)}
.save-msg{display:inline-block;margin-left:14px;font-family:var(--mono);font-size:12px;color:var(--green);opacity:0;transition:opacity .3s}
.save-msg.show{opacity:1}

.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.news-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:22px;position:relative;overflow:hidden}
.news-card.priority::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--red)}
.news-card.warn::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--orange)}
.news-card.info::before{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--blue)}
.news-meta{display:flex;gap:10px;align-items:center;margin-bottom:10px;font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em}
.news-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--text-3)}
.news-title{font-family:var(--serif);font-size:22px;font-style:italic;letter-spacing:-0.02em;line-height:1.2;margin-bottom:10px}
.news-body{color:var(--text-2);font-size:13px;line-height:1.6}
.news-body strong{color:var(--text)}
.news-body p{margin-top:8px}
.news-body p:first-child{margin-top:0}

/* ANALYSIS MODULES */
.analysis-intro{
  background:linear-gradient(135deg,rgba(240,185,11,.04),var(--bg-card));
  border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:24px;
}
.analysis-intro h3{font-family:var(--serif);font-size:24px;font-style:italic;margin-bottom:8px;letter-spacing:-0.02em}
.analysis-intro p{color:var(--text-2);font-size:13px;line-height:1.6}

.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:28px;margin-bottom:24px}
.form-row{margin-bottom:20px}
.form-row label{font-family:var(--mono);font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;display:block;margin-bottom:8px;font-weight:500}
.form-row input,.form-row select,.form-row textarea{
  width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);
  font-family:var(--sans);font-size:14px;padding:12px 14px;border-radius:10px;
  transition:border-color .15s;letter-spacing:-0.01em;
}
.form-row textarea{font-family:var(--mono);font-size:13px;min-height:160px;resize:vertical;line-height:1.6}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--gold)}
.form-row input::placeholder{color:var(--text-3)}
/* Empêche le fond blanc de l'autofill navigateur */
.form-row input:-webkit-autofill,.form-row input:-webkit-autofill:hover,.form-row input:-webkit-autofill:focus,
.apikey-row input:-webkit-autofill,.settings-row input:-webkit-autofill{
  -webkit-text-fill-color:var(--text)!important;
  -webkit-box-shadow:0 0 0 1000px var(--bg-2) inset!important;
  caret-color:var(--text);
}
/* Style des flèches des champs number */
.form-row input[type=number]{appearance:textfield;-moz-appearance:textfield}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.action-btn{
  background:var(--gold);color:#000;border:none;font-family:var(--sans);
  font-weight:600;font-size:14px;padding:14px 28px;border-radius:10px;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;transition:transform .15s;
  letter-spacing:-0.01em;
}
.action-btn:hover{transform:translateY(-1px)}
.action-btn:disabled{background:var(--bg-3);color:var(--text-3);cursor:not-allowed;transform:none}
.action-btn svg{width:16px;height:16px}

.loading-row{
  display:none;align-items:center;gap:10px;margin-left:14px;
  font-family:var(--mono);font-size:12px;color:var(--text-2);
}
.loading-row.visible{display:inline-flex}
.dots{display:inline-flex;gap:4px}
.dots span{width:5px;height:5px;background:var(--gold);border-radius:50%;animation:dot 1.2s infinite}
.dots span:nth-child(2){animation-delay:0.2s}
.dots span:nth-child(3){animation-delay:0.4s}
@keyframes dot{0%,80%,100%{opacity:0.2}40%{opacity:1}}

.result-card{
  background:linear-gradient(135deg,var(--bg-card),var(--bg-2));
  border:1px solid var(--border);border-radius:14px;padding:28px;margin-top:24px;
  display:none;
}
.result-card.visible{display:block;animation:fadeIn .4s ease}

.verdict-bar{
  display:flex;align-items:center;gap:18px;padding:18px 22px;
  background:var(--bg-2);border-radius:12px;margin-bottom:24px;
}
.verdict-score{
  font-family:var(--serif);font-size:48px;font-style:italic;line-height:1;
  letter-spacing:-0.03em;
}
.verdict-content{flex:1}
.verdict-label{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:4px}
.verdict-asset{font-size:16px;color:var(--text);font-weight:500;letter-spacing:-0.01em}
.verdict-badge{
  font-family:var(--mono);font-size:11px;padding:6px 14px;border-radius:20px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.1em;display:inline-flex;align-items:center;gap:6px;
}
.v-green{background:var(--green-bg);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.v-orange{background:var(--orange-bg);color:var(--orange);border:1px solid rgba(255,169,64,.3)}
.v-red{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.3)}

.result-content{
  font-size:14px;line-height:1.75;color:var(--text);white-space:pre-wrap;
  font-family:var(--sans);letter-spacing:-0.005em;
}
.result-content strong{color:var(--gold);font-weight:600}
.result-content h1,.result-content h2,.result-content h3{
  font-family:var(--serif);font-style:italic;letter-spacing:-0.02em;
  margin-top:20px;margin-bottom:10px;
}
.result-content h1{font-size:24px;color:var(--gold)}
.result-content h2{font-size:20px;color:var(--text)}
.result-content h3{font-size:16px;color:var(--text-2)}

.config-row{
  background:var(--bg-card);border:1px solid var(--border);border-radius:12px;
  padding:18px 22px;margin-bottom:16px;display:flex;gap:18px;align-items:center;
}
.config-row label{font-family:var(--mono);font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;min-width:140px;font-weight:500}
.config-row input,.config-row select{
  flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:13px;padding:10px 12px;border-radius:8px;
}
.config-row input:focus,.config-row select:focus{outline:none;border-color:var(--gold)}

.tabs-mini{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px}
/* ===== BOURSE / STOCKS ===== */
.stock-page{display:none}
.stock-page.active{display:block}
.scr-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;align-items:center}
/* Filter chip system */
.fchip{position:relative;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px 0 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:6px;font-family:var(--mono);font-size:11px;color:var(--text-2);cursor:pointer;user-select:none;transition:all .15s;white-space:nowrap}
.fchip:hover{border-color:var(--text-3);color:var(--text)}
.fchip.active{background:rgba(240,185,11,.1);border-color:var(--gold);color:var(--gold)}
.fchip.active .fchip-label{color:var(--gold)}
.fchip-label{font-weight:600;color:var(--text-3);font-size:10px;letter-spacing:.04em}
.fchip-val{color:var(--text)}
.fchip-x{color:var(--text-3);font-size:14px;margin-left:3px;line-height:1;opacity:.6}
.fchip-x:hover{opacity:1;color:var(--red)}
/* Dropdown panel */
.fchip-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:200;min-width:280px;background:#1a1a20;border:1px solid var(--border-light);border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.7);padding:0;display:none;overflow:hidden}
.fchip-panel.open{display:block}
.fchip-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid var(--border)}
.fchip-panel-header h4{font-family:var(--sans);font-size:13px;color:var(--text);font-weight:600;margin:0;display:flex;align-items:center;gap:6px}
.fchip-panel-header h4 svg{width:14px;height:14px;color:var(--text-3)}
.fchip-period-lbl{font-family:var(--mono);font-size:11px;color:var(--gold);cursor:pointer;display:flex;align-items:center;gap:4px}
.fchip-panel-body{padding:12px 14px}
.fchip-panel select{width:100%;background:#232329;border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:13px;padding:9px 12px;border-radius:6px;margin-bottom:8px;outline:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235a5a64' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}
.fchip-panel select:focus{border-color:var(--gold);outline:none}
.fchip-panel input[type=number]{width:100%;background:#232329;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:14px;padding:9px 12px;border-radius:6px;margin-bottom:8px;outline:none;text-align:right}
.fchip-panel input[type=number]:focus{border-color:var(--gold)}
.fchip-panel .fp-row{display:flex;gap:6px;margin-bottom:0}
.fchip-panel .fp-row select,.fchip-panel .fp-row input{margin-bottom:0}
.fchip-panel-footer{padding:8px 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.fchip-apply{padding:7px 16px;background:var(--gold);color:#000;border:none;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;cursor:pointer}
.fchip-apply:hover{opacity:.9}
.fchip-reset-btn{background:none;border:none;color:var(--text-3);font-family:var(--mono);font-size:11px;cursor:pointer;display:flex;align-items:center;gap:4px}
.fchip-reset-btn:hover{color:var(--text)}
.fchip-unit{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-bottom:8px;text-align:right}
.fchip-sep{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0}
.fchip-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:5px 0;border-top:1px solid var(--border);margin-top:5px;width:100%}
.fchip-group-label{font-family:var(--mono);font-size:9px;color:var(--text-3);letter-spacing:.06em;width:100%}
.scr-filter-tag{display:flex;align-items:center;gap:5px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:11px;padding:5px 10px;border-radius:20px;cursor:pointer;transition:all .15s}
.scr-filter-tag.active{background:rgba(240,185,11,.12);border-color:var(--gold);color:var(--gold)}
.scr-filter-tag svg{width:11px;height:11px}
.scr-filter-input{background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:11px;padding:5px 10px;border-radius:8px;width:90px;text-align:center}
.scr-filter-input:focus{outline:none;border-color:var(--gold)}
.scr-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px}
.scr-table th{text-align:left;color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--border);cursor:pointer;user-select:none;white-space:nowrap}
.scr-table th:hover{color:var(--text)}
.scr-table th.sorted{color:var(--gold)}
.scr-table td{padding:10px 12px;border-bottom:1px solid rgba(31,31,38,.6);color:var(--text-2);white-space:nowrap}
.scr-table tr:hover td{background:var(--bg-2);color:var(--text)}
.scr-table .sym{color:var(--text);font-weight:700;font-size:13px}
.scr-table .pos{color:var(--green)}
.scr-table .neg{color:var(--red)}
.scr-table .neu{color:var(--text-3)}
.scr-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700}
.scr-badge.buy{background:rgba(14,203,129,.12);color:var(--green);border:1px solid rgba(14,203,129,.2)}
.scr-badge.sell{background:rgba(255,71,87,.12);color:var(--red);border:1px solid rgba(255,71,87,.2)}
.scr-badge.hold{background:var(--bg-3);color:var(--text-3);border:1px solid var(--border)}
.scr-wl-btn{width:24px;height:24px;border-radius:6px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;line-height:1;flex-shrink:0}
.scr-wl-btn:hover{border-color:var(--gold);color:var(--gold)}
.scr-wl-btn.added{background:rgba(14,203,129,.12);border-color:rgba(14,203,129,.3);color:var(--green)}
.scr-wl-btn.added:hover{border-color:var(--red);color:var(--red)}

.ai-opp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ai-opp-card{background:var(--bg-3);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}
.ai-opp-head{display:flex;align-items:center;gap:8px}
.ai-opp-medal{font-size:18px;line-height:1}
.ai-opp-ticker{font-family:var(--mono);font-weight:800;font-size:16px;color:var(--gold);cursor:pointer;flex:1}
.ai-opp-ticker:hover{text-decoration:underline}
.ai-opp-setup{font-family:var(--sans);font-size:12px;font-weight:600;color:var(--text);line-height:1.4}
.ai-opp-justif{font-family:var(--sans);font-size:12px;color:var(--text-2);line-height:1.5}
.ai-opp-levels{display:flex;flex-direction:column;gap:5px;margin-top:4px;padding-top:10px;border-top:1px solid var(--border-light)}
.ai-opp-level{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px}
.ai-opp-level-label{color:var(--text-3);font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.ai-opp-level-val{font-weight:700}
.ai-opp-level-val.entry{color:var(--text)}
.ai-opp-level-val.tp{color:var(--green)}
.ai-opp-level-val.stop{color:var(--red)}
.ai-opp-avoid{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}
.ai-opp-avoid-title{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px}
.ai-opp-avoid-row{margin-bottom:10px;font-family:var(--sans);font-size:12px;color:var(--text-2)}
.ai-opp-avoid-label{font-weight:600;color:var(--text-3)}
.ai-opp-avoid-chip{display:inline-block;background:var(--bg-3);border:1px solid var(--border);border-radius:5px;padding:2px 8px;margin:2px 2px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text-2);cursor:pointer}
.ai-opp-avoid-chip:hover{border-color:var(--gold);color:var(--gold)}
.ai-opp-avoid-reason{margin-top:4px;font-size:11px;color:var(--text-3);font-style:italic}
.ai-opp-footer{margin-top:16px;padding-top:10px;border-top:1px solid var(--border);font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.5}
.wl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:16px}
.wl-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px;transition:border-color .15s;cursor:pointer}
.wl-card:hover{border-color:var(--gold)}
.wl-card .sym{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text)}
.wl-card .name{font-size:11px;color:var(--text-3);margin-top:2px}
.wl-card .price{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--text);margin-top:10px}
.wl-card .chg{font-family:var(--mono);font-size:12px;margin-top:3px}
/* Watchlist enrichie : range 52 semaines + tags */
.wl-range{margin-top:10px}
.wl-range-bar{position:relative;height:6px;background:linear-gradient(90deg,rgba(255,71,87,.25),rgba(255,169,64,.2),rgba(14,203,129,.25));border-radius:4px}
.wl-range-mark{position:absolute;top:-3px;width:3px;height:12px;background:var(--text);border-radius:2px;box-shadow:0 0 0 2px var(--bg-card)}
.wl-range-lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:8.5px;color:var(--text-3);margin-top:3px}
.wl-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}
.wl-tag{font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 7px;border-radius:5px}
.scr-loading{text-align:center;padding:40px;font-family:var(--mono);font-size:12px;color:var(--text-3)}
.scr-empty{text-align:center;padding:40px;font-family:var(--mono);font-size:13px;color:var(--text-3)}
.stock-setup-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}

.scr-charts-grid{display:grid;gap:12px;width:100%}
.scr-charts-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.scr-charts-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.scr-charts-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.scr-charts-grid.cols-3,.scr-charts-grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.scr-charts-grid{grid-template-columns:1fr !important}}
.scr-chart-item{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s;cursor:pointer}
.scr-chart-item:hover{border-color:var(--gold)}
.scr-chart-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border)}
.scr-chart-sym{font-family:var(--mono);font-size:13px;font-weight:800;color:var(--text)}
.scr-chart-name{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.scr-chart-price{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}
.scr-chart-chg{font-family:var(--mono);font-size:11px;font-weight:700}
.scr-chart-tv{width:100%;height:220px;border:none;display:block}
.scr-tf-btn{background:transparent;border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:11px;padding:4px 9px;border-radius:6px;cursor:pointer;transition:all .15s}
.scr-tf-btn:hover{border-color:var(--text-3);color:var(--text)}
.scr-tf-btn.active{background:var(--gold);border-color:var(--gold);color:#000;font-weight:700}

.tab-mini{
  padding:12px 22px;font-family:var(--mono);font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:0.1em;color:var(--text-3);cursor:pointer;
  border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;
}
.tab-mini.active{color:var(--gold);border-bottom-color:var(--gold)}
.tab-mini-panel{display:none}
.tab-mini-panel.active{display:block}

.history-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:12px;
  padding:18px 22px;margin-bottom:12px;cursor:pointer;transition:border-color .15s;
}
.history-card:hover{border-color:var(--border-light)}
.history-h{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.history-asset{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:-0.01em}
.history-asset span{color:var(--text-3);font-weight:400;margin-left:8px}
.history-meta{font-family:var(--mono);font-size:10px;color:var(--text-3)}
.history-snippet{color:var(--text-2);font-size:12px;line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* API KEY MODAL/CARD */
.apikey-card{
  background:linear-gradient(135deg,rgba(79,143,255,.04),var(--bg-card));
  border:1px solid rgba(79,143,255,.2);border-radius:14px;padding:24px;margin-bottom:24px;
}
.apikey-card.set{
  background:linear-gradient(135deg,rgba(14,203,129,.04),var(--bg-card));
  border-color:rgba(14,203,129,.2);
}
.apikey-card h4{font-family:var(--serif);font-size:18px;font-style:italic;margin-bottom:8px;letter-spacing:-0.02em}
.apikey-card p{color:var(--text-2);font-size:13px;line-height:1.6;margin-bottom:12px}
.apikey-row{display:flex;gap:10px;align-items:center}
.apikey-row input{flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;padding:10px 12px;border-radius:8px}
.apikey-row input:focus{outline:none;border-color:var(--gold)}
.btn-secondary{background:var(--bg-2);color:var(--text);border:1px solid var(--border);font-family:var(--mono);font-size:11px;padding:10px 16px;border-radius:8px;cursor:pointer;text-transform:uppercase;letter-spacing:0.1em;font-weight:500}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}

.footer-note{margin-top:60px;padding:24px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--text-3);text-align:center;line-height:1.6}
.footer-note em{color:var(--text-2);font-style:normal}

@media (max-width:1024px){
  .kpi-row,.positions-grid,.plan-grid{grid-template-columns:repeat(2,1fr)}
  .news-grid{grid-template-columns:1fr}.split{grid-template-columns:1fr}
  .settings-row{grid-template-columns:auto 1fr 1fr 1fr}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  /* Header compact : ticker masqué, barres réduites → ~146px au lieu de 188px */
  .ticker-bar{display:none}
  /* Deux bandes seulement : la marque et les modes tiennent sur la même ligne,
     les modes défilent si l'écran est trop étroit. */
  .top-inner{padding:0 14px;gap:8px;height:46px}
  .mode-nav{gap:4px}
  .mode-btn{padding:4px 10px;font-size:10px;flex-shrink:0;white-space:nowrap}
  .mode-sep{margin:0 3px;flex-shrink:0}
  /* Nav : icône + label court empilés (fini les icônes muettes) */
  .nav-inner{padding:0 14px;height:58px}
  .tab{padding:0 9px;font-size:12px;flex-direction:column;justify-content:center;gap:4px}
  .tab span{display:block;font-size:9px;font-family:var(--mono);letter-spacing:0;line-height:1}
  .tab svg{width:17px;height:17px;flex-shrink:0}
  /* Fondu à droite tant qu'il reste des onglets hors écran */
  .nav:not(.nav-at-end){-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent 99%);mask-image:linear-gradient(90deg,#000 86%,transparent 99%)}
  .live-status{gap:6px;font-size:10px}
  .refresh-btn{padding:6px 8px;font-size:0;gap:0}
  .refresh-btn svg{width:14px;height:14px}
  .live-status > span{font-size:10px}
  .brand span:not(.brand-dot){font-size:15px}
  .main{padding:24px 16px 60px}.page-title{font-size:32px}
  .hero{padding:24px}.hero-title{font-size:26px}
  .kpi-row,.positions-grid,.plan-grid,.news-grid{grid-template-columns:1fr}
  .kpi{justify-content:flex-start}
  .settings-row{grid-template-columns:1fr;gap:8px}
  .config-row{flex-direction:column;align-items:stretch}
  .config-row label{min-width:0}
}
/* ===== INTRO SIMPLE ===== */
.simple-intro{
  display:flex;gap:16px;align-items:flex-start;
  background:linear-gradient(135deg,rgba(79,143,255,.06),var(--bg-card));
  border:1px solid rgba(79,143,255,.2);border-radius:14px;padding:20px 22px;margin-bottom:24px;
  font-size:14px;line-height:1.6;color:var(--text-2);
}
.simple-intro strong{color:var(--text)}
.simple-intro-icon{font-size:28px;line-height:1;flex-shrink:0}

.ai-disclaimer{
  background:var(--orange-bg);border:1px solid rgba(255,169,64,.25);border-radius:10px;
  padding:12px 16px;margin-bottom:20px;font-family:var(--mono);font-size:11px;
  color:var(--orange);line-height:1.5;
}

/* ===== CALENDRIER VISUEL ===== */
.cal-events-grid{display:flex;flex-direction:column;gap:14px}
.cal-day-group{margin-bottom:8px}
.cal-day-label{
  font-family:var(--mono);font-size:12px;color:var(--text-2);font-weight:600;
  text-transform:uppercase;letter-spacing:0.1em;margin-bottom:10px;
  display:flex;align-items:center;gap:10px;
}
.cal-day-label::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--text-3)}
.cal-event-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:14px;
  padding:18px 20px;margin-bottom:10px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;
}
.cal-event-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.cal-event-card.imp-critique::before{background:var(--red)}
.cal-event-card.imp-important::before{background:var(--orange)}
.cal-event-card.imp-faible::before{background:var(--blue)}
.cal-time-block{text-align:center;min-width:64px}
.cal-time{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--text)}
.cal-time-tz{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;margin-top:2px}
.cal-main{flex:1}
.cal-event-name{font-size:16px;font-weight:600;letter-spacing:-0.01em;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-flag{font-size:14px}
.cal-event-simple{font-size:13px;color:var(--text-2);line-height:1.5}
.cal-event-simple strong{color:var(--text)}
.cal-impact-badge{
  font-family:var(--mono);font-size:9px;padding:4px 9px;border-radius:20px;
  text-transform:uppercase;letter-spacing:0.08em;font-weight:600;white-space:nowrap;
}
.imp-badge-critique{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.3)}
.imp-badge-important{background:var(--orange-bg);color:var(--orange);border:1px solid rgba(255,169,64,.3)}
.imp-badge-faible{background:rgba(79,143,255,.1);color:var(--blue);border:1px solid rgba(79,143,255,.3)}
.cal-bias-row{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.cal-bias-chip{
  font-family:var(--mono);font-size:11px;padding:6px 12px;border-radius:8px;
  background:var(--bg-2);display:flex;align-items:center;gap:6px;
}
.cal-bias-chip .arrow-up{color:var(--green)}
.cal-bias-chip .arrow-down{color:var(--red)}

.week-bias-card{
  background:linear-gradient(135deg,var(--bg-card),var(--bg-2));
  border:1px solid var(--border-light);border-radius:16px;padding:24px;margin-bottom:24px;
}
.week-bias-title{font-family:var(--serif);font-size:24px;font-style:italic;margin-bottom:12px;letter-spacing:-0.02em}
.week-bias-text{font-size:14px;line-height:1.6;color:var(--text-2)}
.week-bias-text strong{color:var(--text)}

/* ===== NEWS AUTO ===== */
.news-summary-card{
  background:linear-gradient(135deg,var(--bg-card),var(--bg-2));
  border:1px solid var(--border-light);border-radius:16px;padding:24px;margin-bottom:24px;
  display:flex;gap:24px;align-items:center;flex-wrap:wrap;
}
.news-mood{text-align:center;min-width:120px}
.news-mood-emoji{font-size:48px;line-height:1}
.news-mood-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:0.1em;margin-top:6px;font-weight:600}
.news-summary-text{flex:1;min-width:240px;font-size:14px;line-height:1.6;color:var(--text-2)}
.news-summary-text strong{color:var(--text)}

.news-asset-block{margin-bottom:28px}
.news-asset-header{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--border);
}
.news-asset-symbol{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-0.01em}
.news-asset-verdict{
  font-family:var(--mono);font-size:10px;padding:4px 12px;border-radius:20px;
  text-transform:uppercase;letter-spacing:0.08em;font-weight:600;
}
.nv-haussier{background:var(--green-bg);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.nv-baissier{background:var(--red-bg);color:var(--red);border:1px solid rgba(255,71,87,.3)}
.nv-neutre{background:rgba(160,160,168,.1);color:var(--text-2);border:1px solid var(--border-light)}
.news-item-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:14px;
  padding:18px 20px;margin-bottom:12px;position:relative;overflow:hidden;
}
.news-item-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.news-item-card.impact-haussier::before{background:var(--green)}
.news-item-card.impact-baissier::before{background:var(--red)}
.news-item-card.impact-neutre::before{background:var(--text-3)}
.news-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap;padding-right:28px}
.news-item-title{font-size:15px;font-weight:600;letter-spacing:-0.01em;flex:1}
.news-item-impact{
  font-family:var(--mono);font-size:10px;padding:3px 10px;border-radius:20px;
  font-weight:600;text-transform:uppercase;letter-spacing:0.08em;white-space:nowrap;
  display:flex;align-items:center;gap:5px;
}
.ii-haussier{background:var(--green-bg);color:var(--green)}
.ii-baissier{background:var(--red-bg);color:var(--red)}
.ii-neutre{background:rgba(160,160,168,.1);color:var(--text-2)}
.news-item-body{font-size:13px;line-height:1.6;color:var(--text-2)}
.news-item-meta{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:8px;text-transform:uppercase;letter-spacing:0.08em}

@media (max-width:640px){
  .cal-event-card{grid-template-columns:1fr;gap:10px}
  .cal-time-block{text-align:left;display:flex;gap:8px;align-items:baseline}
  .news-summary-card{flex-direction:column;text-align:center}
}
/* ===== ALERTE PROXIMITE STOP ===== */
.stop-alert{
  font-family:var(--mono);font-size:10px;color:var(--red);
  background:var(--red-bg);border:1px solid rgba(255,71,87,.25);
  border-radius:6px;padding:5px 9px;margin:8px 0;font-weight:600;
  display:inline-block;animation:stopPulse 1.5s infinite;
}
@keyframes stopPulse{0%,100%{opacity:1}50%{opacity:.55}}
.pos-card.near-stop{border-color:rgba(255,71,87,.4)}
.pos-card.near-stop::after{background:linear-gradient(90deg,transparent,var(--red),transparent);opacity:1}
.pos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px}
/* ===== WIDGETS REORGANISABLES (Point 7) ===== */
.pw-widget{position:relative;margin-bottom:16px;transition:opacity .2s,transform .15s}
.pw-widget.pw-dragging{opacity:.45;transform:scale(.98)}
.pw-widget.pw-over{outline:2px dashed var(--gold);outline-offset:3px;border-radius:14px}
.pw-handle{font-size:16px;color:var(--text-3);cursor:grab;padding:4px 6px;border-radius:5px;transition:color .15s;user-select:none}
.pw-handle:hover{color:var(--gold)}
.pw-handle:active{cursor:grabbing}
.pw-drag-bar{display:flex;align-items:center;gap:8px;padding:6px 14px 4px;opacity:.6;transition:opacity .15s}
.pw-drag-bar:hover{opacity:1}
#pw-reset-btn{position:sticky;top:70px;z-index:50;float:right;margin-bottom:8px}
@media(max-width:1200px){.pos-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.pos-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.pos-grid{grid-template-columns:1fr}}
/* ===== PERFORMANCE ===== */
.perf-disclaimer{
  background:rgba(79,143,255,.06);border:1px solid rgba(79,143,255,.2);border-radius:10px;
  padding:12px 16px;margin-bottom:20px;font-family:var(--mono);font-size:11px;
  color:var(--text-2);line-height:1.5;
}
.period-selector{display:flex;gap:4px;background:var(--bg-2);border-radius:8px;padding:3px}
.period-btn{
  background:none;border:none;color:var(--text-3);font-family:var(--mono);font-size:11px;
  padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .15s;font-weight:500;
}
.period-btn:hover{color:var(--text-2)}
.period-btn.active{background:var(--gold);color:#000;font-weight:600}

.stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0;
}
.stat-card{
  background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;
}
.stat-label{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:8px}
.stat-value{font-family:var(--serif);font-size:26px;font-style:italic;letter-spacing:-0.02em;line-height:1}
.stat-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:6px}
.stat-value.pos{color:var(--green)}.stat-value.neg{color:var(--red)}.stat-value.neu{color:var(--text)}

.split-perf{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:16px}

/* Calendrier P/L */
#pl-calendar{display:flex;flex-direction:column;gap:8px}
.cal-month{margin-bottom:6px}
.cal-month-label{font-family:var(--mono);font-size:11px;color:var(--text-2);font-weight:600;margin-bottom:8px;text-transform:capitalize}
.cal-weekgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
/* États ajoutés le 05/08/2026 avec la grille commune (pnlCalGrille) :
   week-end estompé (règle rapatriée du JS) et saisie manuelle au liseré or. */
.cal-cell.cal-weekend{background:rgba(255,255,255,.02);border-color:transparent;opacity:.55}
.cal-cell.cal-manuel{outline:2px solid var(--gold);outline-offset:1px}
.cal-cell{
  aspect-ratio:1;border-radius:6px;background:var(--bg-2);position:relative;cursor:default;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;
  font-family:var(--mono);color:var(--text-3);transition:transform .1s;padding:5px 6px;overflow:hidden;
}
.cal-cell:hover{transform:scale(1.1);z-index:5;outline:1px solid var(--border-light)}
.cal-daynum{font-size:10px;opacity:.85}
.cal-dayamt{font-size:11px;font-weight:700;align-self:flex-end;width:100%;text-align:right}
.cal-cell.has-data{color:#fff}
.cal-cell.has-data .cal-daynum{color:rgba(255,255,255,.75)}
.cal-cell.bigloss{background:#c0392b}
.cal-cell.loss{background:rgba(255,71,87,.30)}
.cal-cell.neutral-day{background:var(--bg-3)}
.cal-cell.gain{background:rgba(14,203,129,.30)}
.cal-cell.biggain{background:#0e9c63}
.cal-cell .tooltip{
  position:absolute;bottom:108%;left:50%;transform:translateX(-50%);
  background:#000;border:1px solid var(--border-light);border-radius:8px;padding:8px 10px;
  font-family:var(--mono);font-size:10px;color:var(--text);white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .15s;z-index:10;line-height:1.5;
}
.cal-cell:hover .tooltip{opacity:1}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.cal-dow span{text-align:center;font-family:var(--mono);font-size:9px;color:var(--text-3)}
.cal-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-family:var(--mono);font-size:10px;color:var(--text-3)}
.cal-legend span{display:flex;align-items:center;gap:5px}
.leg{width:11px;height:11px;border-radius:3px;display:inline-block}
.leg-bigloss{background:#c0392b}.leg-loss{background:rgba(255,71,87,.35)}
.leg-neutral{background:var(--bg-3)}.leg-gain{background:rgba(14,203,129,.35)}.leg-biggain{background:#0ecb81}

/* Répartition */
.alloc-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.alloc-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.alloc-name{font-family:var(--mono);font-size:12px;color:var(--text);min-width:54px}
.alloc-bar-bg{flex:1;height:6px;background:var(--bg-2);border-radius:3px;overflow:hidden}
.alloc-bar-fill{height:100%;border-radius:3px}
.alloc-pct{font-family:var(--mono);font-size:11px;color:var(--text-2);min-width:42px;text-align:right}

/* Journal */
.journal-item{
  display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border);
}
.journal-item:last-child{border-bottom:none}
.journal-icon{font-size:18px;line-height:1.2;flex-shrink:0}
.journal-text{font-size:13px;line-height:1.5;color:var(--text-2)}
.journal-text strong{color:var(--text)}

@media (max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .split-perf{grid-template-columns:1fr}
}
@media (max-width:640px){
  .stats-grid{grid-template-columns:1fr 1fr}
}
.cal-nav{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--text-2)}
.cal-nav-btn{
  background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);
  width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.cal-nav-btn:hover{border-color:var(--gold);color:var(--gold)}
#cal-nav-label{min-width:110px;text-align:center;font-weight:600;color:var(--text)}
.cal-month-summary{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--text-3);text-align:center}
.cal-cell.is-today{outline:2px solid var(--gold);outline-offset:-2px}
/* ===== ÉCRAN DE VERROUILLAGE ===== */
#lockScreen{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:20px;
  /* Sur téléphone la boîte est plus haute que l'écran (surtout clavier
     ouvert) : sans défilement, le bouton et les CGU étaient inatteignables. */
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:radial-gradient(ellipse at top,rgba(240,185,11,.06),transparent 55%),var(--bg);
}
#lockScreen.hidden{display:none}
.hidden{display:none!important}
.lock-box{
  background:linear-gradient(135deg,var(--bg-card),var(--bg-2));
  border:1px solid var(--border-light);border-radius:20px;padding:40px 34px;
  max-width:380px;width:100%;text-align:center;
  /* margin:auto + conteneur défilant : centré quand ça tient, défilable sinon */
  margin:auto;
}
@media(max-width:480px){
  #lockScreen{padding:12px 10px}
  .lock-box{padding:24px 16px;border-radius:16px}
  .lock-logo{margin-bottom:16px}
  .lock-title{font-size:24px}
  .lock-sub{margin-bottom:16px}
  .lock-gbtn{margin-top:16px}
  .lock-note{margin-top:16px}
}
.lock-logo{font-family:var(--serif);font-size:22px;font-style:italic;margin-bottom:28px;display:flex;align-items:center;justify-content:center;gap:8px}
.lock-logo em{color:var(--gold)}
.lock-logo .brand-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.lock-title{font-family:var(--serif);font-size:30px;font-style:italic;letter-spacing:-0.02em;margin-bottom:8px}
.lock-sub{font-size:13px;color:var(--text-2);margin-bottom:24px;line-height:1.5}
#lockInput{
  width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:16px;padding:14px 16px;border-radius:12px;text-align:center;
  letter-spacing:2px;margin-bottom:14px;
}
#lockInput:focus{outline:none;border-color:var(--gold)}
.lock-btn{
  width:100%;background:var(--gold);color:#000;border:none;font-family:var(--sans);
  font-weight:600;font-size:15px;padding:14px;border-radius:12px;cursor:pointer;transition:transform .15s;
}
.lock-btn:hover{transform:translateY(-1px)}
.lock-gbtn{margin-top:26px;display:flex;justify-content:center;min-height:44px}
.lock-error{color:var(--red);font-family:var(--mono);font-size:12px;margin-top:14px;min-height:16px}
.lock-note{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:24px;line-height:1.5}
/* ===== SIMULATEUR ===== */
/* ===== TABLEAU HISTORIQUE ===== */
.history-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px;min-width:760px}
.history-table th{text-align:left;padding:10px 12px;color:var(--text-3);font-size:10px;text-transform:uppercase;letter-spacing:0.08em;border-bottom:1px solid var(--border-light);font-weight:500;white-space:nowrap}
.history-table td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text-2);white-space:nowrap}
.history-table tbody tr:hover{background:var(--bg-2)}
.history-table .h-date{color:var(--text-3)}
.history-table td strong{color:var(--gold)}
/* ===== DÉTAIL POSITIONS RESPONSIVE ===== */
.posd-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.posd-price{font-family:var(--serif);font-size:54px;font-style:italic;letter-spacing:-0.03em;line-height:1}
.posd-stats{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lvl-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-radius:10px}
.lvl-lbl{font-family:var(--mono);font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:0.1em;flex-shrink:0}
.lvl-val{font-family:var(--mono);font-size:15px;text-align:right;word-break:break-word}
@media (max-width:760px){
  .posd-grid{grid-template-columns:1fr;gap:24px}
  .posd-price{font-size:42px}
  .lvl-row{padding:10px 12px}
  .lvl-lbl{font-size:10px;letter-spacing:0.05em}
  .lvl-val{font-size:14px}
}
@media (max-width:380px){
  .posd-price{font-size:36px}
  .posd-stats{grid-template-columns:1fr 1fr;gap:8px}
}
/* ===== PROBABILITÉS CALENDRIER ===== */
.proba-block{margin-top:14px;padding:14px;background:var(--bg-2);border-radius:10px;border:1px solid var(--border)}
.proba-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--gold);margin-bottom:10px}
.proba-item{margin-bottom:10px}
.proba-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--text-2);margin-bottom:4px}
.proba-top strong{font-size:13px}
.proba-bar{height:6px;background:var(--bg-3);border-radius:3px;overflow:hidden}
.proba-fill{height:100%;border-radius:3px;transition:width .5s}
.proba-warn{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:8px;line-height:1.5;font-style:italic}
/* ===== ENCART CME ===== */
.cme-block{margin-top:12px;padding:12px 14px;background:rgba(240,185,11,.05);border:1px solid rgba(240,185,11,.2);border-radius:10px}
.cme-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.cme-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--gold)}
.cme-link{font-family:var(--mono);font-size:10px;color:var(--gold);text-decoration:none;border:1px solid rgba(240,185,11,.3);padding:3px 8px;border-radius:6px;white-space:nowrap}
.cme-link:hover{background:rgba(240,185,11,.12)}
.cme-value{font-family:var(--mono);font-size:13px;color:var(--text);font-weight:600;margin-bottom:8px}
.cme-input-row{display:flex;gap:8px}
.cme-input{flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:11px;padding:7px 10px;border-radius:7px}
.cme-input:focus{outline:none;border-color:var(--gold)}
.cme-btn{background:var(--gold);color:#000;border:none;font-family:var(--sans);font-weight:600;font-size:11px;padding:7px 12px;border-radius:7px;cursor:pointer;white-space:nowrap}
/* ===== BLOC CONSENSUS (CPI, NFP, PIB) ===== */
.consensus-block{margin-top:14px;padding:14px;background:rgba(79,143,255,.05);border:1px solid rgba(79,143,255,.2);border-radius:10px}
.consensus-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:#4f8fff;margin-bottom:10px}
.consensus-row{display:flex;gap:24px;margin-bottom:10px}
.consensus-item{flex:1}
.consensus-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3);margin-bottom:3px}
.consensus-val{font-family:var(--mono);font-size:18px;font-weight:600;color:var(--text)}
.consensus-lecture{font-size:12px;line-height:1.5;color:var(--text-2);margin-bottom:8px}
/* ===== HISTORIQUE MACRO ===== */
.macro-hist-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.macro-hist-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.macro-hist-day{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-left:6px}
.macro-hist-vals{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:12px}
.macro-hv{display:flex;flex-direction:column;gap:2px}
.macro-hv-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3)}
.macro-hv-val{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--text)}
.macro-hist-input{display:flex;gap:8px}
@media (max-width:640px){.macro-hist-vals{gap:14px}}
/* ===== ÉCRAN PROFIL ===== */
#profileScreen{position:fixed;inset:0;z-index:9998;background:radial-gradient(ellipse at top,rgba(240,185,11,.06),transparent 55%),var(--bg);display:flex;align-items:center;justify-content:center;padding:20px}
#profileScreen.hidden{display:none}
.profile-box{background:linear-gradient(135deg,var(--bg-card),var(--bg-2));border:1px solid var(--border-light);border-radius:20px;padding:40px 34px;max-width:540px;width:100%;text-align:center}
.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0 20px}
.profile-btn{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:24px 12px;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:8px}
.profile-btn:hover{border-color:var(--gold);transform:translateY(-3px)}
.profile-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:26px;font-style:italic;color:#000;font-weight:600}
.profile-name{font-family:var(--sans);font-size:16px;font-weight:600;color:var(--text)}
.profile-role{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.08em}
@media (max-width:560px){.profile-grid{grid-template-columns:1fr}}
/* ===== ANALYSE DE MARCHÉ ===== */
.analyse-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.analyse-sort{display:flex;align-items:center;gap:8px}
.anl-table{display:flex;flex-direction:column;gap:0}
.anl-head{display:grid;grid-template-columns:1.4fr 1fr 2fr 1.1fr;gap:16px;padding:10px 16px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3);border-bottom:1px solid var(--border-light)}
.anl-row{display:grid;grid-template-columns:1.4fr 1fr 2fr 1.1fr;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);align-items:center}
.anl-row:hover{background:var(--bg-2)}
.anl-coin{display:flex;align-items:center;gap:10px}
.anl-img{width:28px;height:28px;border-radius:50%}
.anl-sym{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text)}
.anl-name{font-size:11px;color:var(--text-3)}
.anl-price{font-family:var(--mono);font-size:14px;color:var(--text)}
.anl-ch{font-size:10px;margin-top:2px}
.anl-range-bar{position:relative;height:8px;background:linear-gradient(90deg,rgba(14,203,129,.25),rgba(240,185,11,.2),rgba(255,71,87,.25));border-radius:4px}
.anl-range-fill{display:none}
.anl-range-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;border:2px solid var(--bg);box-shadow:0 0 6px rgba(0,0,0,.4)}
.anl-range-lbls{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:5px}
.anl-low{color:var(--green);opacity:.85}
.anl-high{color:var(--red);opacity:.7}
.anl-dist-val{font-family:var(--mono);font-size:15px;font-weight:600}
.anl-dist-lbl{font-size:9px;color:var(--text-3);margin-top:2px}
.anl-target{font-family:var(--mono);font-size:10px;color:var(--text-2);margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}
.anl-target strong{color:var(--green)}
@media (max-width:760px){
  .anl-head{display:none}
  .anl-row{grid-template-columns:1fr 1fr;gap:10px}
  .anl-range,.anl-dist{grid-column:span 2}
}
.plan2-levels{display:flex;flex-direction:column;gap:6px}
.plan2-lvl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px}
.plan2-lvl span{color:var(--text-3)}
/* ===== BLOC TAUX DIRECTEUR ===== */
.taux-block{margin-top:14px;padding:14px;background:rgba(240,185,11,.05);border:1px solid rgba(240,185,11,.2);border-radius:10px}
.taux-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--gold);margin-bottom:10px}
.taux-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.taux-item{text-align:center}
.taux-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3);margin-bottom:3px}
.taux-val{font-family:var(--mono);font-size:20px;font-weight:600;color:var(--text)}
.taux-arrow{font-size:18px;font-weight:700}
.taux-tend{font-family:var(--mono);font-size:11px;margin-left:auto;text-transform:uppercase;letter-spacing:0.05em}
/* ===== SANTÉ / RISQUE / RÉPARTITION ===== */
.health-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px;margin-bottom:24px;align-items:stretch}
.health-row > .card{height:100%;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:0}
.health-card{display:flex;flex-direction:row;align-items:center;gap:18px;padding:22px;height:100%}
.health-card-perf{flex-direction:column;align-items:stretch;gap:14px}
.health-card-perf .health-verdict{display:flex;align-items:center;gap:14px;font-style:normal}
.health-emoji{font-size:34px;line-height:1}
.health-label{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}
.health-value{font-family:var(--serif);font-size:24px;font-style:italic;margin-top:2px}
.health-coach{font-family:var(--sans);font-size:13.5px;color:var(--text-2);line-height:1.55;background:var(--bg-2);border-radius:10px;padding:13px 16px}
.health-gauges{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.health-gauge{background:var(--bg-2);border-radius:10px;padding:13px 15px}
.hg-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--text-2);margin-bottom:8px}
.hg-top strong{font-size:18px}
.hg-bar{height:7px;background:var(--bg-3);border-radius:4px;overflow:hidden}
.hg-fill{height:100%;border-radius:4px;transition:width .6s}
.hg-sub{font-family:var(--mono);font-size:10.5px;color:var(--text-3);margin-top:8px}
@media(max-width:640px){.health-gauges{grid-template-columns:1fr}}
.health-light{width:48px;height:48px;border-radius:50%;flex-shrink:0;background:var(--text-3);box-shadow:0 0 0 rgba(0,0,0,0);transition:all .4s}
.health-light.green{background:var(--green);box-shadow:0 0 24px rgba(14,203,129,.5)}
.health-light.orange{background:var(--orange);box-shadow:0 0 24px rgba(255,165,0,.45)}
.health-light.red{background:var(--red);box-shadow:0 0 24px rgba(255,71,87,.5)}
.health-verdict{font-family:var(--serif);font-size:24px;font-style:italic;color:var(--text)}
.health-detail{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:4px;line-height:1.5}
.mini-kpi{padding:18px 20px}
.mini-kpi-val{font-family:var(--serif);font-size:28px;font-style:italic;color:var(--text);margin:6px 0;line-height:1}
.expo-bar{height:8px;background:var(--bg-3);border-radius:4px;overflow:hidden;margin:8px 0}
.expo-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--orange));border-radius:4px;transition:width .5s}
.alloc-bar{display:flex;height:34px;border-radius:8px;overflow:hidden;margin-bottom:14px;background:var(--bg-2)}
.alloc-seg{height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:600;color:#000;transition:width .5s;min-width:2px}
.alloc-legend{display:flex;flex-wrap:wrap;gap:16px}
.alloc-leg-item{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px}
.alloc-dot{width:10px;height:10px;border-radius:3px}
@media (max-width:760px){
  .health-row{grid-template-columns:1fr;gap:14px}
  .health-row > .card{height:auto;justify-content:flex-start;margin-bottom:0}
  .health-card{padding:18px}
  .health-light{width:36px;height:36px}
  .health-verdict{font-size:20px}
}
/* ===== RECHERCHE NEWS PAR CRYPTO ===== */
.news-search-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.news-search-box{flex:1;min-width:220px;display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:0 14px}
.news-search-box:focus-within{border-color:var(--gold)}
.news-search-icon{width:16px;height:16px;color:var(--text-3);flex-shrink:0}
.news-search-box input{flex:1;background:none;border:none;color:var(--text);font-family:var(--mono);font-size:13px;padding:12px 0;outline:none}
#news-search-clear{background:none;border:none;color:var(--text-3);font-size:14px;cursor:pointer;padding:4px}
#news-search-clear:hover{color:var(--red)}
.news-filter-pill{display:inline-flex;align-items:center;gap:14px;background:rgba(240,185,11,.08);border:1px solid rgba(240,185,11,.25);border-radius:10px;padding:10px 16px;font-family:var(--mono);font-size:13px;color:var(--text-2);flex-wrap:wrap}
.news-filter-pill strong{color:var(--gold)}
.news-filter-x{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:11px;padding:5px 10px;border-radius:7px;cursor:pointer}
.news-filter-x:hover{border-color:var(--gold);color:var(--gold)}
/* ===== SUPPRESSION NEWS ===== */
.news-item-card{position:relative}
.news-del{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s;z-index:2}
.news-item-card:hover .news-del{opacity:1}
.news-del:hover{background:var(--red);border-color:var(--red);color:#fff}
@media (max-width:760px){.news-del{opacity:.6}}
/* ===== VALIDATION SETUP (graphique + IA) ===== */
.setup-search-row{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.setup-search-box{flex:1;min-width:220px;display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:0 14px}
.setup-search-box:focus-within{border-color:var(--gold)}
.setup-search-box input{flex:1;background:none;border:none;color:var(--text);font-family:var(--mono);font-size:14px;padding:13px 0;outline:none;text-transform:uppercase}
.setup-quick{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.setup-quick-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.setup-quick-group-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;min-width:80px;flex-shrink:0}
.setup-quick-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:12px;padding:7px 14px;border-radius:8px;cursor:pointer;transition:all .15s}
.setup-quick-btn:hover{border-color:var(--gold);color:var(--gold)}
.setup-quick-btn.active{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
.setup-chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:10px}
.setup-chart-title{font-family:var(--serif);font-size:24px;font-style:italic;color:var(--text)}
.setup-tf{display:flex;gap:6px;flex-wrap:wrap}
.setup-tf-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:11px;padding:5px 11px;border-radius:7px;cursor:pointer}
.setup-tf-btn:hover{color:var(--text)}
.setup-tf-btn.active{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
.tv-chart-container{width:100%;height:520px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg-card)}
.setup-chart-note{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:10px;font-style:italic}
@media (max-width:760px){.tv-chart-container{height:400px}}
/* ===== RÉSULTATS LECTURE STRATÉGIQUE ===== */
.setup-result-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.setup-result-title{font-family:var(--serif);font-size:22px;font-style:italic;color:var(--text)}
.setup-biais{font-family:var(--mono);font-size:12px;padding:6px 14px;border:1px solid;border-radius:20px;font-weight:600}
.setup-synthese{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:16px 18px;font-size:14px;line-height:1.6;color:var(--text-2);margin-bottom:24px}
.setup-block-title{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--gold);margin:24px 0 12px}
.setup-levels{display:flex;flex-direction:column;gap:10px}
.setup-lvl{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 16px}
.setup-lvl-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:5px;flex-wrap:wrap}
.setup-lvl-type{font-family:var(--mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em}
.setup-lvl-price{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--text)}
.setup-lvl-exp{font-size:13px;color:var(--text-2);line-height:1.5}
.setup-scenarios{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.setup-scenario{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px;font-size:13px;line-height:1.6;color:var(--text-2)}
.setup-scenario-h{font-family:var(--mono);font-size:12px;font-weight:600;margin-bottom:8px}
.setup-entries{display:flex;flex-direction:column;gap:10px}
.setup-entry{background:rgba(240,185,11,.05);border:1px solid rgba(240,185,11,.2);border-radius:10px;padding:12px 16px}
.setup-entry-zone{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--gold);margin-bottom:4px}
.setup-entry-ctx{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.05em;margin-left:8px}
.setup-entry-exp{font-size:13px;color:var(--text-2);line-height:1.5}
.setup-objectifs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.setup-obj{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.setup-obj-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3);margin-bottom:6px}
.setup-obj-val{font-size:13px;color:var(--text-2);line-height:1.5}
.setup-invalidation{background:var(--red-bg);border:1px solid rgba(255,71,87,.25);border-radius:12px;padding:16px 18px;font-size:13px;line-height:1.6;color:var(--text-2);margin-top:24px}
.setup-invalidation strong{color:var(--red)}
.setup-warning{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:14px;font-style:italic;line-height:1.5}
@media (max-width:760px){.setup-scenarios{grid-template-columns:1fr}.setup-objectifs{grid-template-columns:1fr}}
.macro-taux-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin:10px 0;background:rgba(240,185,11,.05);border:1px solid rgba(240,185,11,.18);border-radius:8px;font-family:var(--mono);font-size:12px;color:var(--text-2)}
.macro-taux-row strong{color:var(--text);font-size:14px}
.macro-taux-tend{margin-left:auto;text-transform:uppercase;letter-spacing:0.05em;font-size:11px}
.setup-vp{background:rgba(79,143,255,.06);border:1px solid rgba(79,143,255,.25);border-radius:12px;padding:16px 18px;margin-bottom:24px}
.setup-vp-title{font-family:var(--mono);font-size:12px;font-weight:600;color:#4f8fff;margin-bottom:12px;text-transform:uppercase;letter-spacing:0.05em}
.setup-vp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.setup-vp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.setup-vp-label{font-family:var(--mono);font-size:11px;font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:0.05em}
.setup-vp-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--text-2);padding:5px 0}
.setup-vp-row strong{color:var(--text);font-size:13px}
.setup-vp-note{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:12px;font-style:italic;line-height:1.5}
@media (max-width:760px){.setup-vp-grid{grid-template-columns:1fr}}
/* ===== ANALYSE INTRADAY ===== */
.setup-intraday{background:rgba(255,110,199,.06);border:1px solid rgba(255,110,199,.28);border-radius:12px;padding:16px 18px;margin-bottom:24px}
.setup-intraday-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.setup-intraday-badge{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:0.06em;color:#000;background:#ff6ec7;padding:4px 10px;border-radius:6px}
.setup-intraday-resume{font-size:13px;line-height:1.6;color:var(--text-2);margin-bottom:14px}
.setup-intraday-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.setup-intraday-item{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.setup-intraday-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3);margin-bottom:6px}
.setup-intraday-val{font-family:var(--mono);font-size:14px;font-weight:600}
.setup-intraday-warn{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:14px;font-style:italic;line-height:1.5}
@media (max-width:760px){.setup-intraday-grid{grid-template-columns:1fr}}
/* ===== ANALYSE DUALE (données + IA) ===== */
.dual-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.dual-badge{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:0.08em;padding:5px 12px;border-radius:6px;color:#fff}
.dual-title{font-family:var(--serif);font-size:18px;font-style:italic;color:var(--text)}
.dual-sep{height:1px;background:var(--border);margin:40px 0}
.dual-compare{margin-top:24px;padding:14px 18px;background:rgba(240,185,11,.05);border:1px solid rgba(240,185,11,.2);border-radius:10px;font-family:var(--mono);font-size:12px;color:var(--text-2);line-height:1.6}
/* ===== RESSENTI DU MARCHÉ ===== */
.ressenti-card{border:1px solid;border-radius:16px;padding:22px;margin-top:14px;margin-bottom:24px}
.ressenti-top{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:16px}
.ressenti-verdict{font-family:var(--serif);font-size:34px;font-style:italic;font-weight:600;white-space:nowrap}
.ressenti-gauge{flex:1;min-width:200px}
.ressenti-gauge-bar{position:relative;height:10px;background:linear-gradient(90deg,rgba(255,71,87,.3),rgba(240,185,11,.3),rgba(14,203,129,.3));border-radius:5px;overflow:hidden}
.ressenti-gauge-fill{position:absolute;top:0;left:0;height:100%;border-radius:5px;opacity:.85;transition:width .6s}
.ressenti-gauge-mid{position:absolute;top:-3px;left:50%;width:1px;height:16px;background:var(--text-3)}
.ressenti-gauge-lbls{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:6px;text-transform:uppercase;letter-spacing:0.05em}
.ressenti-resume{font-size:14px;line-height:1.6;color:var(--text-2);margin-bottom:14px}
.ressenti-key{font-family:var(--mono);font-size:12px;color:var(--text-2);padding:10px 14px;background:var(--bg-2);border-radius:8px;margin-bottom:16px}
.ressenti-key strong{color:var(--text)}
.ressenti-factors{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ressenti-fcol .ressenti-fh{font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:8px}
.ressenti-fcol ul{margin:0;padding-left:18px}
.ressenti-fcol li{font-size:13px;color:var(--text-2);line-height:1.5;margin-bottom:5px}
.ressenti-warn{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:16px;font-style:italic;line-height:1.5}
@media (max-width:760px){.ressenti-factors{grid-template-columns:1fr}.ressenti-verdict{font-size:28px}}
/* ===== ALERTES DE PRIX ===== */
#setup-alerts-section{margin:24px 0;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px}
.alerts-head{margin-bottom:16px}
.alerts-title{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--text)}
.alerts-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:6px;line-height:1.5}
.alerts-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.alerts-input-group{display:flex;flex-direction:column;gap:6px}
.alerts-input-group label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3)}
.alerts-select,.alerts-price-input{background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:14px;padding:11px 14px;border-radius:9px;outline:none}
.alerts-select:focus,.alerts-price-input:focus{border-color:var(--gold)}
.alerts-price-input{width:140px}
.alerts-tv-btn{display:flex;align-items:center;gap:7px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--sans);font-size:13px;font-weight:500;padding:11px 16px;border-radius:9px;cursor:pointer;transition:all .15s}
.alerts-tv-btn:hover{border-color:#4f8fff;color:#4f8fff}
.alerts-note{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:12px;line-height:1.5}
.alerts-empty{font-family:var(--mono);font-size:12px;color:var(--text-3);text-align:center;padding:18px;margin-top:14px}
#alerts-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.alert-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:12px 16px}
.alert-item-done{opacity:0.6}
.alert-info{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.alert-cond{font-family:var(--mono);font-size:16px;font-weight:600}
.alert-status{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.alert-active{color:var(--green)}
.alert-done{color:var(--gold)}
.alert-del{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:14px;cursor:pointer;padding:6px 11px;border-radius:7px;transition:all .15s}
.alert-del:hover{color:#fff;background:var(--red);border-color:var(--red)}
.alerts-clear-row{margin-bottom:10px}
.alerts-clear-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:11px;padding:7px 14px;border-radius:8px;cursor:pointer;transition:all .15s}
.alerts-clear-btn:hover{color:var(--red);border-color:var(--red)}
.alert-banner{position:fixed;top:0;left:0;right:0;z-index:10000;background:linear-gradient(135deg,var(--gold),#ffa940);color:#000;font-family:var(--mono);font-size:14px;font-weight:600;padding:14px 20px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.4);animation:slideDown .3s}
@keyframes slideDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}
@media (max-width:760px){.alerts-form{flex-direction:column;align-items:stretch}.alerts-price-input{width:100%}}
/* ===== OPPORTUNITÉS CRYPTO ===== */
.opp-controls{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.opp-cats{display:flex;gap:8px;flex-wrap:wrap}
.opp-cat-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:12px;padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .15s}
.opp-cat-btn:hover{border-color:var(--gold);color:var(--gold)}
.opp-cat-btn.active{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
.opp-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.opp-filter-sel{background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;padding:9px 12px;border-radius:8px;outline:none;cursor:pointer}
.opp-filter-sel:focus{border-color:var(--gold)}
.opp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.opp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px;cursor:pointer;transition:all .15s}
.opp-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.opp-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.opp-card-img{width:32px;height:32px;border-radius:50%;flex-shrink:0}
.opp-card-id{flex:1;min-width:0}
.opp-card-sym{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--text)}
.opp-card-name{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opp-card-rank{font-family:var(--mono);font-size:10px;color:var(--text-3);background:var(--bg-2);padding:3px 7px;border-radius:5px}
.opp-card-price{font-family:var(--serif);font-size:24px;font-style:italic;color:var(--text);margin-bottom:8px}
.opp-card-perfs{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;margin-bottom:14px}
.opp-card-scores{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px}
.opp-score{background:var(--bg-2);border-radius:8px;padding:8px;text-align:center}
.opp-score-lbl{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-3);margin-bottom:3px}
.opp-score-val{font-family:var(--mono);font-size:13px;font-weight:600}
.opp-card-cat{display:inline-block;font-family:var(--mono);font-size:10px;color:#4f8fff;background:rgba(79,143,255,.1);padding:3px 9px;border-radius:5px;margin-bottom:8px}
.opp-card-desc{font-size:12px;color:var(--text-2);line-height:1.5;margin-bottom:12px}
.opp-card-more{font-family:var(--mono);font-size:11px;color:var(--gold);text-align:right}
.opp-disclaimer{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:20px;padding:14px 16px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;line-height:1.6}
@media (max-width:760px){.opp-grid{grid-template-columns:1fr}.opp-card-scores{grid-template-columns:1fr 1fr 1fr}}
/* ===== SENTIMENT DÉRIVÉS ===== */
.deriv-syms{display:flex;gap:6px;flex-wrap:wrap}
.deriv-sym-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:11px;padding:5px 11px;border-radius:7px;cursor:pointer;transition:all .15s}
.deriv-sym-btn:hover{color:var(--text)}
.deriv-sym-btn.active{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
.deriv-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-bottom:16px;line-height:1.5}
.deriv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.deriv-loading{font-family:var(--mono);font-size:12px;color:var(--text-3);padding:18px;text-align:center;grid-column:1/-1}
.deriv-item{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.deriv-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3);margin-bottom:8px}
.deriv-val{font-family:var(--serif);font-size:26px;font-style:italic;color:var(--text);margin-bottom:8px}
.deriv-interp{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.5}
.deriv-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;margin:8px 0}
.deriv-bar-long{background:var(--green)}
.deriv-bar-short{background:var(--red)}
.deriv-note{grid-column:1/-1;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:8px;font-style:italic;line-height:1.5}
@media (max-width:760px){.deriv-grid{grid-template-columns:1fr}}
/* ===== ENGINE DE CONVERGENCE ===== */
.cvg-controls{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.cvg-syms{display:flex;gap:8px;flex-wrap:wrap}
.cvg-sym-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:12px;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .15s}
.cvg-sym-btn:hover{border-color:var(--gold);color:var(--gold)}
.cvg-sym-btn.active{background:var(--gold);color:#000;border-color:var(--gold);font-weight:600}
.cvg-hero{display:grid;grid-template-columns:1fr auto;gap:30px;background:linear-gradient(135deg,var(--bg-card),var(--bg-2));border:1px solid var(--border-light);border-radius:18px;padding:28px;margin-bottom:16px;align-items:center}
.cvg-hero-lbl{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;color:var(--text-3);margin-bottom:8px}
.cvg-hero-biais{font-family:var(--serif);font-size:54px;font-style:italic;font-weight:600;line-height:1;letter-spacing:-0.02em}
.cvg-hero-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.cvg-tag{font-family:var(--mono);font-size:11px;padding:5px 12px;border:1px solid var(--border);border-radius:20px;color:var(--text-3)}
.cvg-hero-score{text-align:right;min-width:220px}
.cvg-score-big{font-family:var(--serif);font-size:46px;font-style:italic;font-weight:600;line-height:1;margin-bottom:12px}
.cvg-gauge{position:relative;height:10px;background:linear-gradient(90deg,rgba(255,71,87,.3),rgba(240,185,11,.3),rgba(14,203,129,.3));border-radius:5px;overflow:hidden}
.cvg-gauge-fill{position:absolute;top:0;left:0;height:100%;border-radius:5px;opacity:.85;transition:width .6s}
.cvg-gauge-mid{position:absolute;top:-3px;left:50%;width:1px;height:16px;background:var(--text-3)}
.cvg-gauge-lbls{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:6px;text-transform:uppercase}
.cvg-sizing{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:24px}
.cvg-sizing-lbl{font-family:var(--mono);font-size:10px;letter-spacing:0.08em;color:var(--text-3)}
.cvg-sizing-val{font-family:var(--mono);font-size:15px;font-weight:700}
.cvg-sizing-note{font-family:var(--mono);font-size:11px;color:var(--text-3);flex:1;min-width:200px}
.cvg-levels-title{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--gold);margin-bottom:12px}
.cvg-levels{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.cvg-level{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px}
.cvg-level-key{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:8px}
.cvg-level-verdict{font-family:var(--mono);font-size:16px;font-weight:700;margin-bottom:8px}
.cvg-level-detail{font-family:var(--mono);font-size:10px;color:var(--text-2);line-height:1.5}
.cvg-explain{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:20px;line-height:1.6;padding:14px 16px;background:var(--bg-2);border-radius:10px}
.cvg-explain strong{color:var(--text-2)}
@media (max-width:900px){.cvg-levels{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.cvg-hero{grid-template-columns:1fr;gap:20px}.cvg-hero-score{text-align:left}.cvg-hero-biais{font-size:42px}.cvg-levels{grid-template-columns:1fr}}
/* ===== NARRATIVE CONVERGENCE ===== */
.cvg-narrative{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.cvg-narr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.cvg-narr-title{font-family:var(--mono);font-size:11px;letter-spacing:0.1em;color:var(--text-3)}
.cvg-narr-badge{font-family:var(--mono);font-size:10px;font-weight:600;padding:4px 11px;border:1px solid;border-radius:20px}
.cvg-narr-main{font-size:14px;color:var(--text);line-height:1.5;margin-bottom:10px}
.cvg-narr-score{font-family:var(--mono);font-size:15px;color:var(--text-2)}
.cvg-narr-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:8px}
/* ===== CONVERGENCE — DESIGN STYLE CAPTURES ===== */
.cvgx-topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 18px;background:var(--bg-2);border:1px solid;border-radius:10px;margin-bottom:16px}
.cvgx-topdot{width:10px;height:10px;border-radius:50%}
.cvgx-toplabel{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:0.05em}
.cvgx-topscore{font-family:var(--mono);font-size:15px;font-weight:700}
.cvgx-topdots{font-family:var(--mono);font-size:12px;color:var(--text-3);margin-left:auto}
.dot-g{color:var(--green)}.dot-r{color:var(--red)}
.cvgx-hero{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;align-items:center;background:linear-gradient(135deg,var(--bg-card),var(--bg-2));border:1px solid var(--border-light);border-radius:18px;padding:28px;margin-bottom:16px}
.cvgx-hero-lbl{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;color:var(--text-3);margin-bottom:10px}
.cvgx-hero-big{font-family:var(--serif);font-size:60px;font-style:italic;font-weight:600;line-height:0.95;letter-spacing:-0.02em}
.cvgx-hero-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.cvgx-tag{font-family:var(--mono);font-size:11px;padding:5px 12px;border:1px solid var(--border);border-radius:8px;color:var(--text-3)}
.cvgx-hero-gauge{text-align:center}
.cvgx-gauge-svg{width:100%;max-width:200px;height:auto}
.cvgx-gauge-score{font-family:var(--mono);font-size:22px;font-weight:700;margin-top:-10px}
.cvgx-hero-price{text-align:right}
.cvgx-price-big{font-family:var(--serif);font-size:40px;font-style:italic;font-weight:600;color:var(--text);line-height:1}
.cvgx-price-date{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:6px}
.cvgx-synth{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:16px}
.cvgx-synth-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cvgx-synth-title{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;color:var(--text-2)}
.cvgx-synth-aligned{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.cvgx-synth-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin:8px 0 18px;line-height:1.5}
.cvgx-synth-score{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.cvgx-synth-badge{font-family:var(--mono);font-size:13px;font-weight:700;color:#000;padding:6px 14px;border-radius:7px;letter-spacing:0.03em}
.cvgx-synth-num{font-family:var(--serif);font-size:40px;font-style:italic;font-weight:600;line-height:1}
.cvgx-synth-max{font-family:var(--mono);font-size:14px;color:var(--text-3)}
.cvgx-levels{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}
.cvgx-level{border:1px solid var(--border);border-radius:10px;padding:14px}
.cvgx-level-key{font-family:var(--mono);font-size:10px;color:var(--text-3);letter-spacing:0.04em;margin-bottom:8px}
.cvgx-level-verdict{font-family:var(--mono);font-size:15px;font-weight:700;margin-bottom:6px}
.cvgx-level-dots{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-bottom:8px}
.cvgx-level-detail{font-family:var(--mono);font-size:10px;color:var(--text-2);line-height:1.5}
.cvgx-sizing-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--border)}
.cvgx-sizing-tag{font-family:var(--mono);font-size:13px;font-weight:700}
.cvgx-sizing-note{font-family:var(--mono);font-size:11px;color:var(--text-3)}
@media (max-width:900px){.cvgx-levels{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.cvgx-hero{grid-template-columns:1fr;gap:20px;text-align:center}.cvgx-hero-price,.cvgx-hero-lbl{text-align:center!important}.cvgx-hero-big{font-size:46px}.cvgx-levels{grid-template-columns:1fr}}
/* ===== CONVERGENCE : MODE CRYPTO/MACRO + OPTIONS ===== */
.cvg-mode-tabs{display:flex;gap:8px;margin-bottom:18px}
.cvg-mode-tab{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:13px;font-weight:600;padding:9px 22px;border-radius:9px;cursor:pointer;transition:all .15s}
.cvg-mode-tab:hover{color:var(--text)}
.cvg-mode-tab.active{background:var(--gold);color:#000;border-color:var(--gold)}
.cvg-opt-loading{font-family:var(--mono);font-size:12px;color:var(--text-3);padding:18px;text-align:center}
.cvg-opt-note{font-family:var(--mono);font-size:11px;color:var(--text-3);line-height:1.6;padding:12px 14px;background:var(--bg-2);border-radius:8px;margin-top:12px}
.cvg-opt-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:22px;margin-top:16px}
.cvg-opt-title{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);margin-bottom:16px;letter-spacing:0.03em}
.cvg-opt-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.cvg-opt-m{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:14px}
.cvg-opt-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-3);margin-bottom:6px}
.cvg-opt-val{font-family:var(--serif);font-size:24px;font-style:italic;color:var(--text);line-height:1;margin-bottom:6px}
.cvg-opt-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.4}
.cvg-opt-dist-title{font-family:var(--mono);font-size:11px;color:var(--text-3);margin:20px 0 10px;text-transform:uppercase;letter-spacing:0.05em}
.cvg-strike-chart{display:flex;align-items:flex-end;gap:2px;height:120px;overflow-x:auto;padding-bottom:4px}
.cvg-strike-bar{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:26px;flex:1}
.cvg-strike-bars{display:flex;align-items:flex-end;gap:1px;height:90px;width:100%;justify-content:center}
.cvg-bar-call{width:45%;background:#4f8fff;border-radius:2px 2px 0 0;min-height:1px}
.cvg-bar-put{width:45%;background:var(--red);border-radius:2px 2px 0 0;min-height:1px}
.cvg-strike-lbl{font-family:var(--mono);font-size:8px;color:var(--text-3);white-space:nowrap}
.cvg-strike-lbl.spot{color:var(--gold);font-weight:700}
/* ===== GRAPHIQUE GEX/OI PAR STRIKE (style screenshot) ===== */
.gex-chart-title{font-family:var(--mono);font-size:11px;color:var(--text-3);margin:22px 0 14px}
.gex-chart{display:flex;align-items:stretch;gap:2px;height:240px;overflow-x:auto;padding-bottom:4px}
.gex-col{display:flex;flex-direction:column;align-items:center;min-width:30px;flex:1;position:relative}
.gex-top{height:100px;display:flex;align-items:flex-end;width:100%;justify-content:center}
.gex-zero{height:1px;width:100%;background:var(--border-light)}
.gex-bot{height:100px;display:flex;align-items:flex-start;width:100%;justify-content:center}
.gex-bar{width:70%;border-radius:3px 3px 0 0;min-height:1px;transition:height .4s}
.gex-bar-down{border-radius:0 0 3px 3px}
.gex-col-spot .gex-zero{background:var(--gold);height:2px;box-shadow:0 0 8px var(--gold)}
.gex-lbl{font-family:var(--mono);font-size:8px;color:var(--text-3);margin-top:6px;white-space:nowrap;transform:rotate(-45deg);transform-origin:center;height:24px}
.gex-lbl.spot{color:var(--gold);font-weight:700}
.gex-lbl.maxpain{color:var(--green);font-weight:700}
.gex-legend{display:flex;gap:18px;margin-top:14px;font-family:var(--mono);font-size:11px}
.gex-leg-spot{color:var(--gold)}
.gex-leg-mp{color:var(--green)}
/* ===== STRUCTURE DES ÉCHÉANCES (courbe IV) ===== */
.term-regime{font-family:var(--serif);font-size:18px;font-style:italic;margin:6px 0 14px}
.term-chart{height:160px;background:linear-gradient(180deg,rgba(240,185,11,.04),transparent);border-radius:8px;padding:8px 0}
.term-svg{width:100%;height:100%}
.term-xaxis{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:8px;text-align:center;word-spacing:4px}
/* ===== BARRE POSITIONNEMENT + HISTORIQUE DERIBIT ===== */
.pos-bar-label{font-family:var(--mono);font-size:12px;margin-bottom:8px}
.pos-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin-bottom:6px}
.pos-bar-call{background:#4f8fff;transition:width .5s}
.pos-bar-put{background:var(--red);transition:width .5s}
.pos-bar-legend{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px}
.hist-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hist-one{background:var(--bg-2);border-radius:10px;padding:12px}
.hist-lbl{font-family:var(--mono);font-size:11px;margin-bottom:8px}
@media (max-width:760px){.hist-charts{grid-template-columns:1fr}}
/* ===== COURBES PROPRES (structure + historique) ===== */
.term-chart-wrap{width:100%;background:var(--bg-2);border-radius:10px;padding:8px}
.term-svg2{width:100%;height:auto;display:block}
.hist-chart-box{width:100%}
.hist-svg{width:100%;height:auto;display:block}
/* ===== GRAPHIQUE GEX SVG (style screenshot) ===== */
.gex-svg-wrap{width:100%;background:var(--bg-2);border-radius:10px;padding:8px;overflow-x:auto}
.gex-hover-zone{cursor:crosshair}
.gex-hover-zone:hover{fill:rgba(255,255,255,0.10)}
.gex-svg{width:100%;min-width:600px;height:auto;display:block}
/* ===== HISTORIQUE STYLE SCREENSHOT ===== */
.hist-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:22px 0 10px;flex-wrap:wrap}
.hist-periods{display:flex;gap:4px;background:var(--bg-2);border-radius:7px;padding:3px}
.hist-period-btn{background:transparent;border:none;color:var(--text-3);font-family:var(--mono);font-size:11px;padding:5px 12px;border-radius:5px;cursor:pointer;transition:all .15s}
.hist-period-btn:hover{color:var(--text)}
.hist-period-btn.active{background:var(--gold);color:#000;font-weight:700}
.hist-block{background:var(--bg-2);border-radius:10px;padding:12px;margin-bottom:10px}
.hist-svg2{width:100%;height:auto;display:block;min-height:180px}
/* ===== CACHE / STOCKAGE OVH ===== */
.cvg-stale-banner{background:rgba(240,185,11,.08);border:1px solid rgba(240,185,11,.25);border-radius:8px;padding:9px 14px;margin-bottom:14px;font-family:var(--mono);font-size:11px;color:var(--text-2)}
.cvg-stale-banner strong{color:var(--gold)}
.cvg-empty{background:var(--bg-card);border:1px dashed var(--border);border-radius:14px;padding:40px 20px;text-align:center}
.cvg-empty-icon{font-size:36px;margin-bottom:12px;opacity:0.5}
.cvg-empty-title{font-family:var(--mono);font-size:14px;color:var(--text-2);margin-bottom:8px}
.cvg-empty-sub{font-family:var(--mono);font-size:12px;color:var(--text-3);line-height:1.5;max-width:480px;margin:0 auto}
.cvg-empty-sub strong{color:var(--gold)}
/* ===== ÉCRAN 1 ENRICHI (style screenshot complet) ===== */
.cvgx-analyser-btn{background:#4f8fff;border:none;color:#fff;font-family:var(--mono);font-size:12px;font-weight:700;padding:9px 22px;border-radius:8px;cursor:pointer;margin-top:14px;letter-spacing:0.05em;transition:all .15s}
.cvgx-analyser-btn:hover{background:#3a7fef;transform:translateY(-1px)}
.cvgx-lang-row{display:flex;align-items:center;gap:5px;margin-top:12px;justify-content:flex-end;flex-wrap:wrap}
.cvgx-lang-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);letter-spacing:0.1em;margin-right:4px}
.cvgx-lang-btn{font-family:var(--mono);font-size:9px;color:var(--text-3);background:var(--bg-2);border:1px solid var(--border);padding:3px 8px;border-radius:5px;cursor:default}
.cvgx-lang-btn.active{background:#4f8fff;color:#fff;border-color:#4f8fff}
.cvgx-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.cvgx-subtab{font-family:var(--mono);font-size:11px;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);padding:7px 14px;border-radius:7px;letter-spacing:0.03em;cursor:pointer;transition:all .15s}
.cvgx-subtab:hover{color:var(--gold);border-color:var(--gold);background:rgba(240,185,11,.06)}
.cvgx-tag-trend{font-weight:700}

/* Blocs payants verrouillés (Forecast / Matrice / VRP) */
.macro-3blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.macro-pay-block{margin:0!important;display:flex;flex-direction:column}
.macro-pay-desc{font-family:var(--mono);font-size:11px;color:var(--text-3);line-height:1.6;margin-bottom:18px}
.macro-pay-lock{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px;background:repeating-linear-gradient(45deg,var(--bg-2),var(--bg-2) 10px,transparent 10px,transparent 20px);border-radius:10px;border:1px dashed var(--border)}
.macro-pay-icon{font-size:32px;margin-bottom:14px;opacity:0.6}
.macro-pay-msg{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.7}
.macro-pay-msg strong{color:var(--gold)}
@media (max-width:900px){.macro-3blocks{grid-template-columns:1fr}}
/* ===== GEX HEADLINE MACRO ===== */
.gex-headline{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.gex-headline-lbl{font-family:var(--mono);font-size:12px;letter-spacing:0.08em;color:var(--text-3)}
.gex-headline-val{font-family:var(--serif);font-size:30px;font-style:italic;font-weight:600;margin-left:8px}
.gex-headline-sub{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.5;margin-bottom:16px}
/* ===== LES 3 COLONNES (Forecast / Matrice / VRP) ===== */
.macro-3cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.mc-col{margin:0!important;display:flex;flex-direction:column}
.mc-desc{font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.5;margin-bottom:16px}
.mc-greeks{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.mc-greek{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:13px}
.mc-greek-lbl{font-family:var(--mono);font-size:9px;letter-spacing:0.05em;color:var(--text-3);margin-bottom:7px}
.mc-greek-val{font-family:var(--serif);font-size:22px;font-style:italic;font-weight:600;margin-bottom:6px}
.mc-greek-sub{font-family:var(--mono);font-size:10px;color:var(--text-2);line-height:1.4}
.mc-greek-sub strong{color:var(--text)}
.mc-sub-title{font-family:var(--mono);font-size:10px;letter-spacing:0.05em;color:var(--text-3);margin:14px 0 10px}
.mc-sm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mc-sm-head{font-family:var(--mono);font-size:9px;letter-spacing:0.04em;margin-bottom:8px}
.mc-sm-row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--text-2);padding:3px 0}
.mc-table{width:100%;border-collapse:collapse;margin-bottom:14px}
.mc-table th{font-family:var(--mono);font-size:9px;letter-spacing:0.04em;color:var(--text-3);text-align:left;padding:6px 4px;border-bottom:1px solid var(--border)}
.mc-table td{font-family:var(--mono);font-size:11px;color:var(--text-2);padding:7px 4px;border-bottom:1px solid var(--border)}
.mc-action{font-family:var(--mono);font-size:9px;font-weight:700;padding:2px 8px;border:1px solid;border-radius:5px}
.mc-note{font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.5;margin-top:auto;padding-top:10px}
.vrp-big{font-family:var(--serif);font-size:38px;font-style:italic;font-weight:600;line-height:1;margin-top:8px}
.vrp-pts{font-family:var(--mono);font-size:13px;font-style:normal;color:var(--text-3);margin-left:4px}
.vrp-verdict{font-family:var(--mono);font-size:13px;font-weight:700;font-style:normal;margin-left:8px}
@media (max-width:900px){.macro-3cols{grid-template-columns:1fr}}
/* ===== MINI LOCK (OI par exchange) ===== */
.mc-lock-mini{font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.5;background:repeating-linear-gradient(45deg,var(--bg-2),var(--bg-2) 8px,transparent 8px,transparent 16px);border:1px dashed var(--border);border-radius:8px;padding:12px}
.mc-lock-icon{color:var(--gold);margin-right:4px}
/* ===== BLOC LECTURE & DÉCISION ===== */
.dec-card{border:1px solid var(--gold)!important;background:linear-gradient(135deg,rgba(240,185,11,.04),var(--bg-card))!important;margin-top:0!important;margin-bottom:16px}
.dec-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.dec-title{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:0.05em;color:var(--text)}
.dec-badges{display:flex;gap:8px;flex-wrap:wrap}
.dec-badge{font-family:var(--mono);font-size:12px;font-weight:700;padding:5px 12px;border-radius:7px}
.dec-badge-out{font-family:var(--mono);font-size:11px;padding:5px 11px;border:1px solid var(--border);border-radius:7px;color:var(--text-3)}
.dec-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:20px}
.dec-subtitle{font-family:var(--mono);font-size:10px;letter-spacing:0.08em;color:var(--text-3);margin-bottom:12px}
.dec-level{padding:9px 0;border-bottom:1px solid var(--border)}
.dec-level-here{background:rgba(240,185,11,.06);border-radius:6px;padding:9px 8px;margin:0 -8px}
.dec-level-main{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.dec-level-lbl{font-family:var(--mono);font-size:11px;font-weight:600}
.dec-level-val{font-family:var(--serif);font-size:17px;font-style:italic;color:var(--text)}
.dec-level-note{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:3px}
.dec-spot{font-family:var(--mono);font-size:12px;color:var(--text-2);margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}
.dec-spot strong{color:var(--gold)}
.dec-regime{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.6;padding:10px 14px;background:var(--bg-2);border-radius:8px;margin-bottom:14px}
.dec-plan-list{margin:0 0 14px;padding-left:18px;display:flex;flex-direction:column;gap:8px}
.dec-plan-list li{font-family:var(--mono);font-size:12px;color:var(--text-2);line-height:1.5}
.dec-plan-list strong{color:var(--text)}
.dec-sizing{font-family:var(--mono);font-size:11px;color:var(--text-3);padding-top:10px;border-top:1px dashed var(--border)}
.dec-sizing strong{color:var(--gold)}
.dec-disclaimer{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:16px;font-style:italic;line-height:1.5}
@media (max-width:760px){.dec-grid{grid-template-columns:1fr;gap:18px}}
/* ===== ONGLET INSTITUTIONNELS ===== */
.instit-addr-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.instit-input{flex:1;min-width:220px;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text);font-family:var(--mono);font-size:12px}
.instit-input:focus{outline:none;border-color:var(--gold)}
.instit-warn{font-family:var(--mono);font-size:10px;color:var(--text-2);line-height:1.6;background:rgba(255,71,87,.06);border:1px solid rgba(255,71,87,.2);border-radius:8px;padding:11px 14px;margin-bottom:16px}
.instit-warn strong{color:var(--red)}
.instit-verdict{background:var(--bg-2);border-radius:10px;padding:14px 16px}
.instit-verdict-lbl{font-family:var(--mono);font-size:10px;letter-spacing:0.05em;color:var(--text-3);margin-bottom:6px}
.instit-verdict-val{font-family:var(--serif);font-size:26px;font-style:italic;font-weight:600}
.instit-verdict-txt{font-family:var(--mono);font-size:12px;margin-top:4px}
.instit-verdict-market{font-family:var(--mono);font-size:11px;margin-top:8px;line-height:1.5}
/* ===== ADRESSES CONNUES (institutionnels) ===== */
.instit-known{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:16px}
.instit-known-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;padding:10px 12px;cursor:pointer;transition:all .15s;text-align:left}
.instit-known-btn:hover{border-color:var(--gold);background:rgba(240,185,11,.05);transform:translateY(-1px)}
.instit-known-cat{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:0.03em}
.instit-known-lbl{font-family:var(--mono);font-size:12px;color:var(--text);font-weight:600}
.instit-known-note{font-family:var(--mono);font-size:9px;color:var(--text-3)}
/* ===== HISTORIQUE DEX & GEX (macro) ===== */
.macro-hist-wrap{background:var(--bg-2);border-radius:12px;padding:16px;margin-top:14px}
.macro-hist-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.macrohist-periods{display:flex;gap:4px}
.macrohist-period-btn{background:transparent;border:none;color:var(--text-3);font-family:var(--mono);font-size:11px;padding:5px 12px;border-radius:5px;cursor:pointer;transition:all .15s}
.macrohist-period-btn:hover{color:var(--text)}
.macrohist-period-btn.active{background:var(--gold);color:#000;font-weight:700}
.dexgex-tip{position:absolute;background:rgba(14,17,23,.96);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--mono);font-size:11px;pointer-events:none;z-index:10;min-width:120px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.dexgex-tip-date{color:var(--text-3);font-size:10px;margin-bottom:6px}
.dexgex-tip-row{display:flex;justify-content:space-between;gap:14px;margin:3px 0;color:var(--text-2)}
.dexgex-tip-row strong{color:var(--text)}
.dexgex-tip-verdict{display:inline-block;margin-top:7px;padding:2px 8px;border-radius:4px;color:#fff;font-size:10px;font-weight:700}
/* ===== FLASHALPHA (bouton + carte) ===== */
.fa-row{display:flex;align-items:center;gap:12px;margin:12px 0;flex-wrap:wrap}
.fa-btn{background:linear-gradient(135deg,#f0b90b,#e0a800);color:#000;border:none;font-family:var(--mono);font-size:12px;font-weight:700;padding:9px 16px;border-radius:8px;cursor:pointer;transition:all .15s}
.fa-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(240,185,11,.3)}
.fa-quota{font-family:var(--mono);font-size:10px;color:var(--text-3)}
.fa-auto-status{font-family:var(--mono);font-size:11px;color:var(--text-2)}
.fa-btn-mini{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:10px;padding:5px 10px;border-radius:6px;cursor:pointer;transition:all .15s}
.fa-btn-mini:hover{border-color:var(--gold);color:var(--gold)}
.fa-card{background:rgba(240,185,11,.04);border:1px solid rgba(240,185,11,.2);border-radius:12px;padding:16px;margin-top:8px}
.fa-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.fa-card-title{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--gold)}
.fa-cache-tag{font-family:var(--mono);font-size:9px;padding:3px 8px;border-radius:5px;background:var(--bg-2);color:var(--text-3)}
.fa-cache-tag.live{background:rgba(14,203,129,.12);color:var(--green)}
.fa-cache-tag.stale{background:rgba(255,71,87,.12);color:var(--red)}
.fa-sub-title{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:14px 0 8px}
.fa-closed{font-family:var(--mono);font-size:11px;color:var(--text-2);background:rgba(79,143,255,.08);border:1px solid rgba(79,143,255,.2);border-radius:8px;padding:10px 12px;margin-bottom:12px;line-height:1.5}
.fa-signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-bottom:14px}
.fa-signal{background:var(--bg-2);border-radius:9px;padding:11px 13px}
.fa-signal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:10px}
.fa-signal-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}
.fa-signal-val{font-family:var(--mono);font-size:13px;font-weight:700}
.fa-signal-read{font-family:var(--sans);font-size:11.5px;color:var(--text-2);line-height:1.5}
.perf-tip{position:absolute;background:rgba(14,17,23,.96);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-family:var(--mono);font-size:11px;pointer-events:none;z-index:10;min-width:130px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.perf-tip-date{color:var(--text-3);font-size:10px;margin-bottom:6px}
.perf-tip-row{display:flex;justify-content:space-between;gap:14px;margin:3px 0;color:var(--text-2)}
.perf-tip-row strong{color:var(--text)}
/* ===== ALERTES INTELLIGENTES ===== */
.smart-alerts-box{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:16px;margin:14px 0}
.smart-alerts-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.smart-alerts-title{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);margin-bottom:5px}
.smart-alerts-desc{font-family:var(--sans);font-size:12px;color:var(--text-2);line-height:1.5;max-width:560px}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.switch-slider{position:absolute;cursor:pointer;inset:0;background:var(--bg-3);border-radius:26px;transition:.3s}
.switch-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.switch input:checked+.switch-slider{background:var(--green)}
.switch input:checked+.switch-slider:before{transform:translateX(20px)}
/* ===== SOUS-ONGLETS (onglets fusionnés) ===== */
.subnav{display:flex;gap:8px;margin-bottom:22px;border-bottom:1px solid var(--border);padding-bottom:0}
.subnav-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-3);font-family:var(--sans);font-size:14px;font-weight:600;padding:10px 16px;cursor:pointer;transition:all .15s;margin-bottom:-1px}
.subnav-btn:hover{color:var(--text)}
.subnav-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
/* ===== JOURNAL DE THÈSES ===== */
.thesis-section{display:none !important;margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.thesis-form{background:var(--bg-2);border-radius:12px;padding:18px;margin-bottom:18px}
.thesis-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.thesis-field{flex:1;min-width:90px;display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.thesis-field label{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.thesis-field input,.thesis-field select,.thesis-field textarea{background:var(--bg-3);border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:13px;padding:9px 11px;border-radius:8px;width:100%;box-sizing:border-box}
.thesis-field textarea{resize:vertical;font-family:var(--sans)}
.th-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.th-stat{background:var(--bg-2);border-radius:10px;padding:12px;text-align:center}
.th-stat-v{font-family:var(--mono);font-size:22px;font-weight:700}
.th-stat-l{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-top:3px}
.th-stats-verdict{font-family:var(--sans);font-size:13px;color:var(--text-2);background:var(--bg-2);border-radius:10px;padding:12px 15px;margin-bottom:18px;line-height:1.5}
.th-empty{font-family:var(--sans);font-size:13px;color:var(--text-3);text-align:center;padding:24px;line-height:1.5}
.th-card{background:var(--bg-2);border-radius:12px;padding:15px;margin-bottom:12px}
.th-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.th-card-sym{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text)}
.th-card-status{font-family:var(--mono);font-size:12px;font-weight:700}
.th-card-date{font-family:var(--mono);font-size:10px;color:var(--text-3);margin:3px 0 8px}
.th-card-levels{font-family:var(--mono);font-size:12px;color:var(--text-2);margin-bottom:8px}
.th-card-note{font-family:var(--serif);font-style:italic;font-size:13.5px;color:var(--text-2);line-height:1.5;margin-bottom:10px}
.th-progress{height:7px;background:var(--bg-3);border-radius:4px;overflow:hidden;margin-bottom:5px}
.th-progress-bar{height:100%;border-radius:4px;transition:width .5s}
.th-progress-lbl{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:8px}
.th-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.th-btn{border:none;font-family:var(--mono);font-size:11px;font-weight:600;padding:7px 13px;border-radius:7px;cursor:pointer;transition:all .15s}
.th-win{background:rgba(14,203,129,.15);color:var(--green)}
.th-win:hover{background:rgba(14,203,129,.28)}
.th-loss{background:rgba(255,71,87,.15);color:var(--red)}
.th-loss:hover{background:rgba(255,71,87,.28)}
.th-cancel,.th-reopen,.th-del{background:var(--bg-3);color:var(--text-3)}
.th-cancel:hover,.th-reopen:hover,.th-del:hover{color:var(--text)}
@media(max-width:640px){.th-stats-row{grid-template-columns:repeat(2,1fr)}}
/* ===== PRÉVISIONS INTRADAY / SWING ===== */
.fc-card{border-radius:14px;padding:18px;margin:16px 0;border:1px solid var(--border)}
.fc-intraday{background:linear-gradient(180deg,rgba(255,110,199,.05),transparent);border-color:rgba(255,110,199,.25)}
.fc-swing{background:linear-gradient(180deg,rgba(79,143,255,.05),transparent);border-color:rgba(79,143,255,.25)}
.fc-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.fc-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fc-badge{font-family:var(--mono);font-size:12px;font-weight:700;padding:5px 12px;border-radius:7px}
.fc-badge-intra{background:#ff6ec7;color:#000}
.fc-badge-swing{background:#4f8fff;color:#fff}
.fc-horizon{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.fc-bias{font-family:var(--mono);font-size:13px;font-weight:700}
.fc-resume{font-family:var(--sans);font-size:13.5px;color:var(--text-2);line-height:1.55;margin-bottom:14px}
.fc-trend{font-family:var(--sans);font-size:13.5px;color:var(--text);line-height:1.55;margin-bottom:10px}
.fc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.fc-col{min-width:0}
.fc-col-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;font-weight:700}
.fc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}
.fc-list li{font-family:var(--sans);font-size:12.5px;color:var(--text-2);line-height:1.45;padding-left:14px;position:relative}
.fc-list li:before{content:"▪";position:absolute;left:0;color:var(--text-3)}
.fc-tps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.fc-tp{background:var(--bg-2);border-radius:9px;padding:11px;text-align:center}
.fc-tp-lbl{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-bottom:4px}
.fc-tp-val{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--green)}
.fc-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.fc-inval{font-family:var(--sans);font-size:12.5px;color:var(--text-2);line-height:1.5;flex:1;min-width:200px}
.fc-inval strong{color:var(--red)}
.fc-conf{font-family:var(--mono);font-size:12px;color:var(--text-3)}
.fc-warn{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:12px;padding:9px 12px;background:rgba(255,110,199,.06);border-radius:8px;line-height:1.5}
@media(max-width:640px){.fc-grid{grid-template-columns:1fr}.fc-tps{grid-template-columns:1fr 1fr}}
.ai-cost-box{margin-top:14px}
.aicost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.aicost-item{background:var(--bg-2);border-radius:10px;padding:12px;text-align:center}
.aicost-lbl{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-bottom:4px}
.aicost-val{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--gold)}
.aicost-note{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.5;margin-top:8px}
.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.metric-card{background:var(--bg-2);border-radius:12px;padding:15px;text-align:center}
.metric-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}
.metric-val{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--text)}
.metric-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:5px}
@media(max-width:640px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}
.ds-card{background:linear-gradient(135deg,rgba(240,185,11,.06),rgba(79,143,255,.04));border:1px solid var(--border);border-radius:16px;padding:20px 22px;margin-bottom:24px}
.ds-title{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--text);margin-bottom:16px}
.ds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ds-item{display:flex;align-items:flex-start;gap:13px}
.ds-icon{font-size:26px;line-height:1;flex-shrink:0}
.ds-body{min-width:0}
.ds-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:5px}
.ds-val{font-family:var(--mono);font-size:21px;font-weight:700;color:var(--text);line-height:1.2}
.ds-val-sm{font-size:14px;font-weight:600;font-family:var(--sans);line-height:1.4}
.ds-sub{font-size:13px;font-weight:600;opacity:.8}
@media(max-width:760px){.ds-grid{grid-template-columns:1fr;gap:14px}}
.mo-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 22px;margin-bottom:24px}
.mo-title{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--text);margin-bottom:18px}
.mo-title-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-left:8px;letter-spacing:.04em}
.mo-row{margin-bottom:16px}
.mo-row:last-of-type{margin-bottom:8px}
.mo-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:7px}
.mo-horizon{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}
.mo-horizon-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-left:7px;font-weight:400}
.mo-verdict{font-family:var(--mono);font-size:13px;font-weight:700}
.mo-bar{height:8px;background:var(--bg-3);border-radius:5px;overflow:hidden;margin-bottom:7px}
.mo-bar-fill{height:100%;border-radius:5px;transition:width .6s ease}
.mo-factors{font-family:var(--sans);font-size:12px;color:var(--text-3);line-height:1.5}
.mo-disclaimer{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.5;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.mo-hist{margin-top:8px;padding-top:14px;border-top:1px solid var(--border)}
.mo-hist-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:8px}
.mo-hist-legend{margin-left:10px;font-size:10px}
.mo-hist-legend span{margin-right:8px}
.mo-synthese{display:flex;gap:12px;align-items:flex-start;background:var(--bg-2);border-radius:12px;padding:14px 16px;margin-bottom:20px}
.mo-synthese-emoji{font-size:22px;line-height:1.2;flex-shrink:0}
.mo-synthese-txt{font-family:var(--sans);font-size:14px;color:var(--text);line-height:1.5}
.mo-simples{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}
.mo-simples li{font-family:var(--sans);font-size:13px;color:var(--text-2);line-height:1.45;display:flex;align-items:flex-start;gap:8px}
.mo-f-icon{flex-shrink:0;font-size:12px;line-height:1.5}
.mo-tech{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}
.mo-tech summary{font-family:var(--mono);font-size:11px;color:var(--text-3);cursor:pointer;text-transform:uppercase;letter-spacing:.04em}
.mo-tech summary:hover{color:var(--text-2)}
.mo-tech-row{font-family:var(--sans);font-size:12px;color:var(--text-3);line-height:1.5;margin-top:8px}
.mo-tech-row strong{color:var(--text-2)}
.mo-tech-note{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.5;margin-top:10px;font-style:italic}
.pos-ai-btn{width:100%;background:linear-gradient(135deg,rgba(240,185,11,.12),rgba(79,143,255,.08));border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:600;padding:11px;border-radius:10px;cursor:pointer;transition:all .15s}
.pos-ai-btn:hover:not(:disabled){border-color:var(--gold);background:linear-gradient(135deg,rgba(240,185,11,.2),rgba(79,143,255,.12))}
.pos-ai-btn:disabled{opacity:.5;cursor:wait}
.pos-ai-result{margin-top:12px}
.pos-ai-loading{font-family:var(--mono);font-size:12px;color:var(--text-3);text-align:center;padding:14px}
.pos-ai-err{font-family:var(--mono);font-size:12px;color:var(--red);background:var(--red-bg);border-radius:8px;padding:12px}
.pos-ai-card{background:var(--bg-2);border-radius:12px;padding:15px}
.pos-ai-verdict{font-family:var(--mono);font-size:15px;font-weight:700;margin-bottom:8px}
.pos-ai-conf{font-size:11px;font-weight:400;color:var(--text-3);margin-left:6px}
.pos-ai-resume{font-family:var(--sans);font-size:13.5px;color:var(--text);line-height:1.5;margin-bottom:12px}
.pos-ai-block{margin-bottom:10px}
.pos-ai-h{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;margin-bottom:4px}
.pos-ai-block ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.pos-ai-block li{font-family:var(--sans);font-size:12.5px;color:var(--text-2);line-height:1.4;padding-left:13px;position:relative}
.pos-ai-block li:before{content:"▪";position:absolute;left:0;color:var(--text-3)}
.pos-ai-risk{font-family:var(--sans);font-size:12.5px;color:var(--text-2);background:var(--bg-3);border-radius:8px;padding:9px 12px;margin-bottom:10px;line-height:1.4}
.pos-ai-warn{font-family:var(--sans);font-size:10.5px;color:var(--text-3);font-style:italic;line-height:1.4}
.pos-ai-close{background:none;border:none;color:var(--text-3);font-family:var(--mono);font-size:10px;text-decoration:underline;cursor:pointer;margin-left:6px}
.pos-ai-close:hover{color:var(--text)}
.hl-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.hl-title{font-family:var(--sans);font-size:17px;font-weight:700;color:var(--text)}
.hl-sub{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:4px;max-width:560px;line-height:1.5}
#hl-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.hl-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px}
.hl-card-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.hl-asset{font-family:var(--mono);font-size:20px;font-weight:800;color:var(--text);letter-spacing:.02em}
.hl-price{text-align:right}
.hl-mark{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--text);display:block}
.hl-chg{font-family:var(--mono);font-size:11px;font-weight:600}
.hl-biais-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.hl-biais-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}
.hl-biais-val{font-family:var(--mono);font-size:12px;font-weight:700}
.hl-biais-bar{height:6px;background:var(--bg-3);border-radius:4px;overflow:hidden;margin-bottom:16px}
.hl-biais-fill{height:100%;border-radius:4px;transition:width .5s ease}
.hl-metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.hl-metric{min-width:0}
.hl-m-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:3px}
.hl-m-val{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--text);line-height:1.1}
.hl-m-sub{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:2px}
.hl-spark{width:100%;height:24px;margin-top:5px;display:block}
.hl-spark-empty{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:6px;font-style:italic}
.hl-prices-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--text-3)}
.hl-prices-row strong{color:var(--text-2)}
.hl-px-spark{margin-left:auto;width:120px}
.hl-updated{grid-column:1/-1;font-family:var(--mono);font-size:10px;color:var(--text-3);text-align:right;margin-top:4px}
.hl-empty{font-family:var(--mono);font-size:12px;color:var(--text-3);line-height:1.6;padding:20px;background:var(--bg-card);border:1px dashed var(--border);border-radius:12px}
.hl-empty code{background:var(--bg-3);padding:2px 6px;border-radius:4px;color:var(--gold)}
.hl-disclaimer{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.5;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}
@media(max-width:760px){#hl-content{grid-template-columns:1fr}}
#dl-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.dl-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px}
.dl-card-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:8px}
.dl-card-val{font-family:var(--mono);font-size:24px;font-weight:800;color:var(--text);line-height:1.1}
.dl-card-sub{font-family:var(--mono);font-size:11px;color:var(--text-2);margin-top:6px}
.dl-top{font-size:10px;color:var(--text-3);line-height:1.5}
.dl-chg{font-weight:700}
.dl-spark{margin-top:10px;height:28px}
.dl-card-hint{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.4;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
@media(max-width:760px){#dl-content{grid-template-columns:1fr}}
.cot-layout{display:grid;grid-template-columns:180px 1fr;gap:18px}
.cot-sidebar{display:flex;flex-direction:column;gap:8px;max-height:560px;overflow-y:auto}
.cot-sb-item{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all .15s}
.cot-sb-item:hover{border-color:var(--text-3)}
.cot-sb-item.active{border-color:var(--gold);background:var(--bg-2)}
.cot-sb-top{display:flex;justify-content:space-between;align-items:baseline}
.cot-sb-sym{font-family:var(--mono);font-size:14px;font-weight:800;color:var(--text)}
.cot-sb-score{font-family:var(--mono);font-size:13px;font-weight:700}
.cot-sb-name{font-family:var(--sans);font-size:10px;color:var(--text-3);margin-top:2px}
.cot-sb-spark{height:24px;margin-top:6px}
.cot-main{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px;min-height:300px}
.cot-main-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.cot-main-title{font-family:var(--mono);font-size:20px;font-weight:800;color:var(--text)}
.cot-main-sub{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:3px}
.cot-main-date{font-family:var(--mono);font-size:10px;color:var(--text-3);text-align:right;line-height:1.5}
.cot-main-date span{color:var(--text-2)}
/* ── COT : contrôle de fraîcheur et normalisation (07/08/2026) ──
   Inspiré de la discipline d'un rapport COT professionnel : dire d'abord de
   QUAND datent les chiffres, ne jamais transformer une donnée absente en
   zéro, et normaliser les positions par l'open interest. */
.cot-frais{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap;
  margin:10px 0 4px;padding:9px 12px;border-radius:9px;
  background:rgba(79,143,255,.07);border:1px solid rgba(79,143,255,.25);
  font-family:var(--sans);font-size:11.5px;line-height:1.5;color:var(--text-2)}
.cot-frais.vieux{background:rgba(255,169,64,.08);border-color:rgba(255,169,64,.3)}
.cot-frais b{color:var(--text)}
.cot-frais-pt{width:7px;height:7px;border-radius:50%;background:#4f8fff;flex:0 0 auto;margin-top:5px}
.cot-frais.vieux .cot-frais-pt{background:#ffa940}
.cot-frais-part{flex:1 1 100%;font-family:var(--mono);font-size:10px;color:var(--text-3)}
/* Net rapporté à l'open interest + place dans l'amplitude des 14 semaines */
.cot-norm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 10px}
.cot-norm-pct{font-family:var(--mono);font-size:11.5px;font-weight:700}
.cot-norm-jauge{position:relative;flex:1 1 90px;min-width:70px;max-width:160px;height:4px;
  border-radius:99px;background:var(--bg-2)}
.cot-norm-jauge i{position:absolute;top:-2px;width:2px;height:8px;border-radius:2px;background:var(--text-2)}
.cot-norm-lbl{font-family:var(--mono);font-size:9.5px;color:var(--text-3);white-space:nowrap}
/* Rappel de la somme nulle : qui prend l'autre côté est l'information utile */
.cot-somme{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);
  font-family:var(--sans);font-size:11px;line-height:1.5;color:var(--text-3)}
/* Les deux groupes prioritaires côte à côte dans la liste de gauche */
.cot-sb-duo{display:flex;gap:10px;font-family:var(--mono);font-size:9.5px;color:var(--text-3);margin-top:2px}
.cot-sb-duo b{font-weight:700}

.cot-cat{padding:14px 0;border-bottom:1px solid var(--border)}
.cot-cat:last-child{border-bottom:none}
.cot-cat-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.cot-cat-name{font-family:var(--mono);font-size:13px;font-weight:800;letter-spacing:.03em}
.cot-cat-net{font-family:var(--mono);font-size:12px;color:var(--text-3)}
.cot-cat-body{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;align-items:center}
.cot-cat-nums{display:flex;flex-direction:column;gap:6px}
.cot-ls{display:flex;align-items:baseline;gap:8px}
.cot-ls-lbl{font-family:var(--mono);font-size:9px;color:var(--text-3);width:42px}
.cot-ls-val{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text)}
.cot-cat-charts{display:flex;flex-direction:column;gap:3px}
.cot-chart{height:24px}
@media(max-width:760px){.cot-layout{grid-template-columns:1fr}.cot-sidebar{flex-direction:row;overflow-x:auto;max-height:none}.cot-sb-item{min-width:120px}}
.rr-block{margin:18px 0;padding:16px;background:var(--bg-2);border-radius:12px}
.rr-title{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--text);display:flex;justify-content:space-between;align-items:baseline}
.rr-title-sub{font-size:10px;font-weight:400;color:var(--text-3)}
.rr-desc{font-family:var(--sans);font-size:11px;color:var(--text-3);line-height:1.5;margin:6px 0 12px}
.rr-verdict{font-family:var(--sans);font-size:14px;font-weight:600;margin-bottom:14px}
.rr-bars{display:flex;flex-direction:column;gap:12px}
.rr-row-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.rr-row-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}
.rr-row-val{font-family:var(--mono);font-size:18px;font-weight:800}
.rr-bar{height:26px;background:var(--bg-3);border-radius:6px;overflow:hidden;display:flex}
.rr-bar-fill{height:100%;border-radius:6px;transition:width .5s ease;min-width:3px}
.cvgx-magnet{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.cvgx-magnet-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:6px}
.cvgx-magnet-val{font-family:var(--mono);font-size:26px;font-weight:800;color:var(--text);line-height:1.1}
.cvgx-magnet-sub{font-family:var(--sans);font-size:12px;color:var(--text-3);margin-top:5px;line-height:1.4}
.cvgx-stress-row{display:flex;gap:24px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);flex-wrap:wrap}
.cvgx-stress-item{display:flex;align-items:baseline;gap:10px}
.cvgx-stress-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}
.cvgx-stress-val{font-family:var(--mono);font-size:15px;font-weight:700}
.cvgx-stress-num{font-family:var(--mono);font-size:11px;color:var(--text-3)}
.cvg-intro{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,rgba(79,143,255,.07),rgba(240,185,11,.04));border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin:18px 0}
.cvg-intro-icon{font-size:24px;line-height:1;flex-shrink:0}
.cvg-intro-txt{font-family:var(--sans);font-size:13px;color:var(--text-2);line-height:1.55}
.cvg-intro-txt strong{color:var(--text)}
.cvg-family-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--border);padding-bottom:0}
.cvg-family-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-3);font-family:var(--sans);font-size:15px;font-weight:600;padding:10px 18px;cursor:pointer;transition:all .15s;margin-bottom:-1px}
.cvg-family-tab:hover{color:var(--text-2)}
.cvg-family-tab.active{color:var(--gold);border-bottom-color:var(--gold)}
.hist-view-tabs{display:flex;gap:8px;margin-bottom:16px}
.hist-view-tab{background:var(--bg-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--sans);font-size:13px;font-weight:600;padding:9px 16px;border-radius:9px;cursor:pointer;transition:all .15s}
.hist-view-tab:hover{color:var(--text-2);border-color:var(--text-3)}
.hist-view-tab.active{background:var(--gold);border-color:var(--gold);color:#1a1a1a}
.multi-perf{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}
.multi-perf-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px}
.multi-perf-total{border-color:var(--gold);background:linear-gradient(135deg,rgba(240,185,11,.06),transparent)}
.multi-perf-lbl{font-family:var(--mono);font-size:11px;color:var(--text-2);margin-bottom:8px}
.multi-perf-val{font-family:var(--mono);font-size:24px;font-weight:800;line-height:1.1}
.multi-perf-sub{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-top:5px}
.lows-block{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid #4f8fff;border-radius:12px;padding:14px 16px;margin-bottom:18px}
.lows-head{font-family:var(--mono);font-size:12px;color:var(--text-2);margin-bottom:12px;font-weight:600}
.lows-chips{display:flex;gap:10px;flex-wrap:wrap}
.low-chip{background:var(--bg-2);border:1px solid var(--border);border-radius:9px;padding:8px 12px;min-width:90px}
.low-chip-y{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:3px}
.low-chip-v{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text)}
.lows-abs{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:10px}

/* ===== GOLD TRADING CSS ===== */
.gold-page{display:none;padding:0 16px 80px}
.gold-page.active{display:block}
.gold-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:10px;padding-top:12px}
.gold-title{font-family:var(--mono);font-size:20px;font-weight:800;color:#f5c518;margin:0}
.gold-title em{color:var(--text-3);font-style:normal;font-size:14px;font-weight:400}
.gold-btn-primary{background:linear-gradient(135deg,#f5c518,#e0a800);border:none;color:#000;font-family:var(--mono);font-size:11px;font-weight:800;padding:8px 18px;border-radius:8px;cursor:pointer}
.gold-session-bar{font-family:var(--mono);font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;display:inline-block;margin-top:4px}
.gold-session-bar.asia{background:rgba(147,112,219,.15);color:#9370db;border:1px solid rgba(147,112,219,.3)}
.gold-session-bar.london{background:rgba(79,143,255,.15);color:#4f8fff;border:1px solid rgba(79,143,255,.3)}
.gold-session-bar.new-york{background:rgba(14,203,129,.15);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.gold-session-bar.closed{background:var(--bg-3);color:var(--text-3);border:1px solid var(--border)}
.gold-candle-timer{font-family:var(--mono);font-size:12px;font-weight:700;color:#f5c518;background:rgba(245,197,24,.1);border:1px solid rgba(245,197,24,.25);padding:6px 14px;border-radius:8px}
.gold-price-band{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;background:linear-gradient(135deg,rgba(245,197,24,.06),rgba(245,197,24,.02));border:1px solid rgba(245,197,24,.2);border-radius:14px;padding:16px}
.prop-sym-btn{display:flex;align-items:center;gap:6px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:12px;font-weight:700;padding:8px 14px;border-radius:8px;cursor:pointer;transition:.15s}
.prop-sym-btn:hover{border-color:rgba(245,197,24,.4);color:var(--text)}
.prop-sym-btn.active{background:rgba(245,197,24,.12);border-color:var(--gold);color:var(--gold)}
.prop-sym-btn .prop-sym-name{font-family:var(--sans);font-weight:400;font-size:10px;color:var(--text-3);opacity:.8}
.prop-sym-btn.active .prop-sym-name{color:var(--gold);opacity:.7}
.macro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:10px}
.macro-card{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;text-align:center}
.macro-label{font-family:var(--mono);font-size:9px;color:var(--text-3);letter-spacing:.5px}
.macro-value{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text);margin-top:3px}
.macro-change{font-family:var(--mono);font-size:10px;font-weight:600;margin-top:2px}
.macro-interpretation{padding:8px 10px;background:rgba(245,197,24,.04);border-radius:6px;border-left:2px solid rgba(245,197,24,.3)}
.macro-line{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.6}
.gold-price-main{flex:0 0 auto}
.gold-price-label{font-family:var(--mono);font-size:10px;color:rgba(245,197,24,.6);letter-spacing:.1em;margin-bottom:4px}
.gold-price-value{font-family:var(--mono);font-size:36px;font-weight:900;color:#f5c518;letter-spacing:-.02em}
.gold-price-change{font-family:var(--mono);font-size:14px;font-weight:700;margin-top:2px}
.gold-price-stats{display:flex;flex-wrap:wrap;gap:12px;flex:1;align-items:flex-start;padding-top:4px}
.gold-stat{min-width:90px}
.gold-stat-l{font-family:var(--mono);font-size:9px;color:var(--text-3);display:block;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.gold-stat-v{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);display:block}
.gold-chart-tabs{display:flex;gap:4px;padding:10px 14px 0;background:var(--bg-2)}
.gold-tf-btn{background:none;border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);font-size:11px;font-weight:700;padding:5px 12px;border-radius:6px;cursor:pointer;transition:.15s}
.gold-tf-btn.active,.gold-tf-btn:hover{background:rgba(245,197,24,.12);border-color:rgba(245,197,24,.4);color:#f5c518}
.gold-heatmap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.gold-hmap-card{background:var(--bg-3);border-radius:8px;padding:10px 12px;text-align:center}
.gold-hmap-sym{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:4px}
.gold-hmap-val{font-family:var(--mono);font-size:15px;font-weight:800}
.gold-hmap-chg{font-family:var(--mono);font-size:10px;margin-top:2px}
.gold-setup-badge{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--bg-3);border-radius:14px;border:2px solid var(--border);margin-bottom:12px;transition:border-color .3s}
.gold-setup-badge.a-plus{border-color:var(--green);background:rgba(14,203,129,.08)}
.gold-setup-badge.b-setup{border-color:var(--gold);background:rgba(240,185,11,.08)}
.gold-setup-badge.no-trade{border-color:var(--red);background:rgba(255,71,87,.08)}
.gold-setup-icon{font-size:36px;line-height:1}
.gold-setup-label{font-family:var(--mono);font-size:16px;font-weight:800}
.gold-setup-desc{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:3px}
.gold-signals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.gold-signal-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-3);border-radius:8px}
.gold-signal-name{font-family:var(--mono);font-size:11px;color:var(--text-2)}
.gold-signal-badge{font-family:var(--mono);font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px}
.gold-signal-badge.bull{background:rgba(14,203,129,.15);color:var(--green);border:1px solid rgba(14,203,129,.3)}
.gold-signal-badge.bear{background:rgba(255,71,87,.15);color:var(--red);border:1px solid rgba(255,71,87,.3)}
.gold-signal-badge.neut{background:var(--bg-2);color:var(--text-3);border:1px solid var(--border)}
.gold-zones-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.gold-zone-card{padding:10px 12px;border-radius:8px;border-left:3px solid var(--border)}
.gold-zone-label{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:3px;text-transform:uppercase}
.gold-zone-val{font-family:var(--mono);font-size:15px;font-weight:800;color:var(--text)}
.gold-zone-dist{font-family:var(--mono);font-size:10px;margin-top:2px}
.gold-smc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.gold-smc-item{padding:12px;background:var(--bg-3);border-radius:8px}
.gold-smc-name{font-family:var(--mono);font-size:10px;color:var(--text-3);text-transform:uppercase;margin-bottom:6px}
.gold-smc-val{font-family:var(--mono);font-size:13px;font-weight:700}
.gold-smc-desc{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:3px}
.gold-pt-card{background:var(--bg-3);border-radius:10px;padding:14px;margin-bottom:8px;border-left:3px solid var(--border)}
.gold-pt-card.long{border-left-color:var(--green)}
.gold-pt-card.short{border-left-color:var(--red)}
.gold-cal-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;margin-bottom:6px;background:var(--bg-3)}
.gold-cal-time{font-family:var(--mono);font-size:11px;color:var(--text-3);min-width:60px}
.gold-cal-impact{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.gold-cal-name{font-family:var(--mono);font-size:11px;color:var(--text-2);flex:1}
.gold-cal-countdown{font-family:var(--mono);font-size:10px;color:var(--orange);margin-left:auto}

/* ===== DOM TRADOVATE CSS ===== */
.tv-dom-row{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:4px;margin-bottom:1px;position:relative;min-height:24px}
.tv-dom-price{font-family:var(--mono);font-size:12px;font-weight:700;min-width:70px;text-align:right}
.tv-dom-size{font-family:var(--mono);font-size:11px;min-width:50px;text-align:left}
.tv-dom-bar{position:absolute;top:0;bottom:0;border-radius:3px;opacity:.25;z-index:0}
.tv-dom-content{position:relative;z-index:1;display:flex;align-items:center;gap:6px;width:100%}
.tv-dom-row.ask-row .tv-dom-bar{right:0;background:var(--red)}
.tv-dom-row.bid-row .tv-dom-bar{left:0;background:var(--green)}
.tv-dom-row.best-ask{background:rgba(255,71,87,.08)}
.tv-dom-row.best-bid{background:rgba(14,203,129,.08)}
.tv-dom-row.wall{outline:1px solid rgba(245,197,24,.5)}

/* ===== COCKPIT MNQ (session NY · risque · niveaux) ===== */
.ckp-grid{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:0}
.ckp-cell{padding:14px 16px;border-right:1px solid var(--border);min-width:0}
.ckp-cell:last-child{border-right:none}
.ckp-h{font-family:var(--mono);font-size:10px;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.ckp-state{font-family:var(--mono);font-size:16px;font-weight:800}
.ckp-advice{font-size:12px;color:var(--text-2);line-height:1.5;margin-top:6px}
.ckp-next{font-family:var(--mono);font-size:11px;color:var(--text-3);margin-top:8px}
.ckp-in{width:72px;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;font-weight:700;padding:5px 7px;border-radius:6px;outline:none}
.ckp-in:focus{border-color:var(--gold)}
.ckp-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;font-family:var(--mono);font-size:11px;color:var(--text-2);flex-wrap:wrap}
.ckp-big{font-family:var(--mono);font-size:26px;font-weight:900;color:var(--gold)}
.ckp-lvl{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px}
.ckp-lvl:last-child{border-bottom:none}
.ckp-lvl .l-name{color:var(--text-3)}
.ckp-lvl .l-val{font-weight:700;color:var(--text);margin-left:auto}
.ckp-lvl .l-dist{font-size:10px;min-width:70px;text-align:right}
@media(max-width:900px){.ckp-grid{grid-template-columns:1fr}.ckp-cell{border-right:none;border-bottom:1px solid var(--border)}.ckp-cell:last-child{border-bottom:none}}

/* ===== RADAR MNQ (news & macro) ===== */
.rdr-breaking{display:none;padding:12px 16px;border-radius:10px;margin-bottom:12px;background:rgba(255,71,87,.12);border:1px solid rgba(255,71,87,.55);animation:rdrPulse 1.1s infinite}
@keyframes rdrPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,71,87,.35)}50%{box-shadow:0 0 0 8px rgba(255,71,87,0)}}
.rdr-gauges{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:8px;align-items:stretch}
.rdr-g{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0}
.rdr-g .g-l{font-family:var(--mono);font-size:9px;color:var(--text-3);letter-spacing:.06em}
.rdr-g .g-v{font-family:var(--mono);font-size:14px;font-weight:800;margin-top:2px;color:var(--text)}
.rdr-g .g-c{font-family:var(--mono);font-size:10px;font-weight:700}
.rdr-regime{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 14px;border-radius:8px;font-family:var(--mono);font-weight:900;font-size:12px;white-space:nowrap}
.rdr-cd{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-2);margin-top:10px}
.rdr-cd .cd-t{font-family:var(--mono);font-size:22px;font-weight:900}
.rdr-cd.cd-hot{border-color:rgba(255,169,64,.5);background:rgba(255,169,64,.07)}
.rdr-cd.cd-imminent{border-color:rgba(255,71,87,.6);background:rgba(255,71,87,.08);animation:rdrPulse 1.1s infinite}
/* minmax(0,1fr) et pas 1fr : une piste flexible a un minimum « auto » égal au
   contenu minimal de ses enfants, donc un texte insécable peut l'élargir et
   pousser toute la carte hors de l'écran. C'est exactement ce qui rognait les
   titres sur téléphone (07/08/2026). */
.rdr-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);align-items:baseline}
.rdr-item:last-child{border-bottom:none}
.rdr-badge{font-family:var(--mono);font-size:9px;font-weight:800;padding:2px 7px;border-radius:5px;white-space:nowrap}
.rdr-title{font-size:12.5px;color:var(--text);line-height:1.45;min-width:0}
.rdr-title a{color:inherit;text-decoration:none}
.rdr-title a:hover{color:var(--gold)}
.rdr-meta{font-family:var(--mono);font-size:9.5px;color:var(--text-3);white-space:nowrap;text-align:right}
/* Aucun enfant ne doit pouvoir élargir la grille (07/08/2026). La ligne de
   méta est en nowrap et frôlait la largeur disponible au pixel près : une
   source un peu longue (« Investor's Business Daily ») la faisait déborder,
   et comme une piste de grille s'étire sur son contenu minimal, TOUTE la
   carte devenait plus large que l'écran — d'où les titres rognés à droite. */
.rdr-item > *{min-width:0}
@media(max-width:700px){
  .rdr-gauges{grid-template-columns:repeat(3,1fr)}
  .rdr-regime{grid-column:1/-1}
  .rdr-item{grid-template-columns:auto 1fr}
  /* Sur téléphone la méta passe à la ligne plutôt que de pousser la grille. */
  .rdr-meta{grid-column:2;text-align:left;white-space:normal}
  .rdr-title{overflow-wrap:anywhere}
}
.news2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.news2col{grid-template-columns:1fr}}

/* ===== Nav Prop Firm : séparateurs de groupes + sous-navigation ===== */
.tab-sep{width:1px;height:22px;background:var(--border);margin:0 6px;align-self:center;flex-shrink:0}
.gold-subnav{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.gold-subnav button{background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:7px 13px;border-radius:7px;cursor:pointer;transition:all .15s}
.gold-subnav button.on{background:rgba(245,197,24,.14);border-color:rgba(245,197,24,.5);color:var(--gold)}

/* ===== MODE CHALLENGE ===== */
.ch-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;background:linear-gradient(135deg,rgba(245,197,24,.10),rgba(245,197,24,.02));border-bottom:1px solid var(--border)}
.ch-title{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--gold);letter-spacing:.05em;display:flex;align-items:center;gap:8px}
.ch-phase{font-family:var(--mono);font-size:11px;font-weight:800;padding:4px 11px;border-radius:20px;white-space:nowrap}
.ch-body{padding:14px 16px}
.ch-bars{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:640px){.ch-bars{grid-template-columns:1fr}}
.ch-bar-lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:5px}
.ch-bar-lbl b{font-size:11px}
.ch-bar-track{position:relative;height:14px;background:var(--bg-2);border-radius:7px;overflow:hidden}
.ch-bar-fill{height:100%;border-radius:7px;transition:width .5s}
.ch-rules{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:13px 15px;margin-top:4px}
.ch-rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.ch-rule{text-align:center}
.ch-rule .r-l{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.ch-rule .r-v{font-family:var(--mono);font-size:18px;font-weight:900;margin-top:2px}
.ch-rule .r-s{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:1px}
.ch-cfg{padding:14px 16px;border-top:1px solid var(--border);display:none}
.ch-cfg.open{display:block}
.ch-cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.ch-cfg-field label{display:block;font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.ch-cfg-field input,.ch-cfg-field select{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:12px;font-weight:700;padding:7px 9px;border-radius:7px;outline:none}
.ch-cfg-field input:focus,.ch-cfg-field select:focus{border-color:var(--gold)}
.ch-advice{font-family:var(--mono);font-size:11.5px;line-height:1.6;color:var(--text-2);margin-top:12px;padding:11px 13px;border-radius:10px}
.ch-h{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--text);letter-spacing:.02em;margin-bottom:8px}
@media(max-width:640px){.apx-lex{column-count:1 !important}}

/* ===== COT — positionnement des gros acteurs ===== */
.cot-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px}
.cot-row:last-child{border-bottom:none}
.cot-row .c-sym{font-weight:800;color:var(--gold);min-width:38px}
.cot-row .c-name{color:var(--text-3);font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cot-row .c-net{font-weight:800;text-align:right;min-width:72px}
.cot-row .c-dl{font-size:10px;text-align:right;min-width:64px}
.cot-row .c-oi{color:var(--text-3);font-size:9.5px;text-align:right;min-width:70px}
@media(max-width:640px){.cot-row{grid-template-columns:auto 1fr auto}.cot-row .c-dl{display:none}.cot-row .c-oi{display:none}}

/* ===== Comparateur prop firms : cartes mobile ===== */
#pf-cards{display:none}
.pfc{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;cursor:pointer}
.pfc:active{border-color:var(--gold)}
.pfc-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pfc-firm{font-weight:700;font-size:13.5px;color:var(--text)}
.pfc-px{font-family:var(--mono);font-weight:900;font-size:15px;color:var(--gold);white-space:nowrap}
.pfc-px small{font-size:9px;color:var(--text-3);font-weight:500}
.pfc-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 10px;margin-top:9px}
.pfc-cell .l{font-family:var(--mono);font-size:8.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.pfc-cell .v{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--text-2);margin-top:1px}
@media(max-width:700px){
  #pf-table-card{display:none}
  #pf-cards{display:block}
}
/* Pop-up plein écran avant annonce éco (prop firm = flat pendant les news) */
#rdr-popup{position:fixed;inset:0;z-index:2500;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.78);backdrop-filter:blur(5px);padding:20px}
#rdr-popup.show{display:flex}
.rdr-pop-box{background:#141419;border:2px solid var(--red);border-radius:16px;max-width:540px;width:100%;padding:30px 26px;text-align:center;box-shadow:0 0 0 0 rgba(255,71,87,.4),0 24px 80px rgba(0,0,0,.85);animation:rdrPopGlow 1.2s infinite}
@keyframes rdrPopGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,71,87,.45),0 24px 80px rgba(0,0,0,.85)}50%{box-shadow:0 0 0 14px rgba(255,71,87,0),0 24px 80px rgba(0,0,0,.85)}}
.rdr-pop-count{font-family:var(--mono);font-size:52px;font-weight:900;color:var(--red);line-height:1;margin:14px 0 4px}
.rdr-pop-title{font-size:17px;font-weight:700;color:var(--text);margin-top:12px;line-height:1.4}
.rdr-pop-note{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.6;margin-top:14px;background:rgba(255,71,87,.08);border:1px solid rgba(255,71,87,.25);border-radius:10px;padding:12px}
.rdr-pop-btn{margin-top:18px;background:var(--red);border:none;color:#fff;font-family:var(--mono);font-size:13px;font-weight:800;letter-spacing:.06em;padding:14px 26px;border-radius:10px;cursor:pointer}
.rdr-pop-btn:hover{filter:brightness(1.15)}
.rdr-pop-later{display:block;margin:10px auto 0;background:none;border:none;color:var(--text-3);font-family:var(--mono);font-size:10px;cursor:pointer;text-decoration:underline}
.rdr-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:start}
/* Le squawk occupait la 2e colonne ; il a été retiré de l'onglet Actus le 1/8.
   Sans ça, la colonne restante gardait 1,15fr et laissait un vide à droite.
   Le fil reste disponible sur l'Accueil Bourse et alimente la radio. */
.rdr-cols > div:only-child{grid-column:1 / -1}
@media(max-width:900px){.rdr-cols{grid-template-columns:1fr}}

/* ===== LE MARCHÉ EN CLAIR — cockpit débutant, temps réel ===== */
.mp-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.mp-kicker{font-family:var(--mono);font-size:9.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}
.mp-age{font-family:var(--mono);font-size:9.5px;color:var(--text-3)}
.mp-light{display:flex;align-items:center;gap:14px;border-radius:14px;padding:14px 16px;border:1.5px solid var(--border)}
.mp-light .mp-dot{font-size:30px;line-height:1;flex-shrink:0}
.mp-word{font-family:var(--mono);font-size:16.5px;font-weight:900;line-height:1.2}
.mp-why{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.55;margin-top:4px}
.mp-why b{color:var(--text)}
.mp-l-green{border-color:rgba(14,203,129,.45);background:rgba(14,203,129,.07)}
.mp-l-green .mp-word{color:var(--green)}
.mp-l-orange{border-color:rgba(255,169,64,.45);background:rgba(255,169,64,.07)}
.mp-l-orange .mp-word{color:#ffa940}
.mp-l-red{border-color:rgba(255,71,87,.5);background:rgba(255,71,87,.08);animation:mpPulse 2.4s infinite}
.mp-l-red .mp-word{color:var(--red)}
.mp-l-done{border-color:rgba(79,143,255,.45);background:rgba(79,143,255,.07)}
.mp-l-done .mp-word{color:#4f8fff}
.mp-l-off{border-color:var(--border);background:var(--bg-2)}
.mp-l-off .mp-word{color:var(--text-3)}
@keyframes mpPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,71,87,.28)}50%{box-shadow:0 0 0 8px rgba(255,71,87,0)}}
.mp-q{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.09em;margin:18px 0 9px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.mp-px{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mp-px .v{font-family:var(--mono);font-size:24px;font-weight:900;color:var(--text)}
.mp-px .c{font-family:var(--mono);font-size:14px;font-weight:800}
.mp-px .t{font-family:var(--mono);font-size:11.5px;font-weight:700}
.mp-ruler{position:relative;height:66px;margin:16px 4px 2px}
.mp-track{position:absolute;left:0;right:0;top:22px;height:10px;border-radius:6px;background:var(--bg-3)}
.mp-zone{position:absolute;top:22px;height:10px;border-radius:6px;background:rgba(245,197,24,.15);border:1px solid rgba(245,197,24,.28)}
.mp-tick{position:absolute;top:16px;width:2px;height:22px;background:var(--text-3);opacity:.55}
.mp-tick-l{position:absolute;top:42px;font-family:var(--mono);font-size:8.5px;color:var(--text-3);transform:translateX(-50%);white-space:nowrap;text-align:center;line-height:1.35}
.mp-tick-l b{color:var(--text-2);font-size:9px}
.mp-me{position:absolute;top:12px;width:3px;height:30px;background:var(--gold);border-radius:2px;box-shadow:0 0 12px rgba(245,197,24,.75)}
.mp-me-l{position:absolute;top:-2px;transform:translateX(-50%);font-family:var(--mono);font-size:8.5px;font-weight:900;color:var(--gold);white-space:nowrap;letter-spacing:.05em}
.mp-read{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.65;margin-top:12px}
.mp-read b{color:var(--text)}
.mp-act{padding:13px 15px;background:var(--bg-2);border-radius:10px;border-left:3px solid var(--gold);font-family:var(--mono);font-size:13px;font-weight:700;line-height:1.55;color:var(--text)}
.mp-sub{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.6;margin-top:8px}
.mp-steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.mp-steps button{background:var(--bg-2);border:1px solid var(--border);color:var(--gold);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer}
.mp-steps button:active{border-color:var(--gold)}
.mp-foot{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:13px;padding-top:10px;border-top:1px solid var(--border)}
@media(max-width:600px){
  .mp-word{font-size:14.5px}.mp-px .v{font-size:21px}.mp-light{gap:11px;padding:13px}
  .mp-light .mp-dot{font-size:26px}.mp-tick-l{font-size:8px}
}

#mp-pill{position:fixed;bottom:14px;left:14px;z-index:1200;display:none;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;border:1.5px solid var(--border);background:#14141a;box-shadow:0 8px 26px rgba(0,0,0,.6);cursor:pointer;font-family:var(--mono);font-size:10.5px;font-weight:900;letter-spacing:.02em;max-width:min(78vw,290px)}
#mp-pill span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#mp-pill.mp-l-green{border-color:rgba(14,203,129,.55);color:var(--green)}
#mp-pill.mp-l-orange{border-color:rgba(255,169,64,.55);color:#ffa940}
#mp-pill.mp-l-red{border-color:rgba(255,71,87,.6);color:var(--red)}
#mp-pill.mp-l-done{border-color:rgba(79,143,255,.55);color:#4f8fff}
#mp-pill.mp-l-off{border-color:var(--border);color:var(--text-3)}

/* ===== ÉCRAN DÉCISION — un écran, une décision ===== */
#dec-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--text-3);padding:0 2px 10px}
#dec-head b{color:var(--text);font-size:14px}
.dec-verdict{border-radius:16px;padding:20px 18px;text-align:center;border:1.5px solid var(--border)}
.dec-kicker{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;opacity:.75}
.dec-titre{font-family:var(--mono);font-size:26px;font-weight:900;line-height:1.15;margin-top:6px}
.dec-sous{font-family:var(--mono);font-size:12px;line-height:1.6;margin-top:10px;opacity:.9}
.dec-buy{border-color:rgba(14,203,129,.5);background:rgba(14,203,129,.08);color:var(--green)}
.dec-sell{border-color:rgba(255,71,87,.5);background:rgba(255,71,87,.08);color:var(--red)}
.dec-wait{border-color:rgba(255,169,64,.45);background:rgba(255,169,64,.07);color:#ffa940}
.dec-stop{border-color:rgba(255,71,87,.55);background:rgba(255,71,87,.1);color:var(--red);animation:mpPulse 2.4s infinite}
.dec-fiab{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-family:var(--mono);font-size:11px;opacity:.9}
.dec-dot{width:26px;height:5px;border-radius:3px;background:currentColor;opacity:.22}
.dec-dot.on{opacity:1}
.dec-sec{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.09em;margin:20px 0 9px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.dec-plan .dec-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:12px;color:var(--text-2);line-height:1.45}
.dec-plan .dec-row:last-child{border-bottom:none}
.dec-plan .dec-row b{color:var(--text)}
.dec-plan .v{font-size:17px;font-weight:900;white-space:nowrap}
.dec-plan .v.ko{color:var(--red)}
.dec-plan .v.ok{color:var(--green)}
.dec-size{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;padding:11px 13px;background:var(--bg-2);border-radius:10px;font-family:var(--mono);font-size:11.5px;color:var(--text-3)}
.dec-size b{font-size:15px;font-weight:900;color:var(--gold)}
.dec-note{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.6;margin-top:10px}
.dec-note b{color:var(--text)}
.dec-why div{display:flex;gap:9px;align-items:flex-start;font-family:var(--mono);font-size:11.5px;line-height:1.55;padding:5px 0;color:var(--text-2)}
.dec-why .ok span{color:var(--green);font-weight:900}
.dec-why .no span{color:var(--text-3);font-weight:900}
.dec-detail{margin-top:10px;font-family:var(--mono);font-size:10.5px}
.dec-detail span{color:var(--gold);cursor:pointer;text-decoration:underline}
.dec-sig{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--text-2)}
.dec-sig:last-child{border-bottom:none}
.dec-sig b.ok{color:var(--green)}
.dec-sig b.ko{color:var(--red)}
.dec-sig b.nu{color:var(--text-3)}
.dec-cta{display:block;width:100%;margin-top:16px;background:rgba(245,197,24,.14);border:1.5px solid rgba(245,197,24,.5);color:var(--gold);font-family:var(--mono);font-size:13px;font-weight:800;padding:14px;border-radius:12px;cursor:pointer}
.dec-cta:active{transform:scale(.99)}
.dec-pin{margin-top:16px;padding:12px 14px;background:rgba(245,197,24,.07);border:1px solid rgba(245,197,24,.3);border-radius:11px;font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.6}
.dec-pin span{color:var(--text-3);cursor:pointer;text-decoration:underline;margin-left:6px}
.dec-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.dec-links button{flex:1;min-width:150px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:11px 12px;border-radius:9px;cursor:pointer}
.dec-links button:active{border-color:var(--gold)}
@media(max-width:600px){.dec-titre{font-size:21px}.dec-plan .v{font-size:15px}}


/* Duel MNQ / MES + journal du feu */
.mp-duel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:540px){.mp-duel{grid-template-columns:1fr}}
.mp-dl{border:1px solid var(--border);border-radius:11px;padding:11px 13px;background:var(--bg-2)}
.mp-dl.win{border-color:rgba(14,203,129,.5);background:rgba(14,203,129,.06)}
.mp-dl .s{font-family:var(--mono);font-size:13px;font-weight:900;color:var(--text)}
.mp-dl .s small{font-size:9px;color:var(--text-3);font-weight:600}
.mp-dl .l{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:10.5px;color:var(--text-3);margin-top:5px}
.mp-dl .l b{color:var(--text-2);font-weight:700}
.mp-dl .l b.ko{color:var(--red)}
.mp-dl .l b.ok{color:var(--green)}
.mp-log{font-family:var(--mono);font-size:10px;color:var(--text-2);line-height:1.8;margin-top:9px;padding:9px 11px;background:var(--bg-2);border-radius:8px;max-height:180px;overflow-y:auto}

/* ===== SQUAWK — fil d'actualités traduit en direct ===== */
.fjx-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.fjx-live{font-family:var(--mono);font-size:9.5px;font-weight:800;color:var(--red);display:flex;align-items:center;gap:5px}
.fjx-live i{width:7px;height:7px;border-radius:50%;background:var(--red);display:inline-block;animation:fjxBlink 1.6s infinite}
@keyframes fjxBlink{0%,100%{opacity:1}50%{opacity:.15}}
.fjx-list{max-height:560px;overflow-y:auto;padding-right:4px}
.radio-dot{width:7px;height:7px;border-radius:50%;background:var(--red);display:inline-block;margin-right:5px;vertical-align:middle;animation:fjxBlink 1.6s infinite}
#radio-btn:disabled{pointer-events:none}
.fjx-it{padding:8px 0 8px 10px;border-left:2px solid var(--border);border-bottom:1px solid var(--border)}
.fjx-it:last-child{border-bottom:none}
.fjx-it.imp3{border-left-color:var(--red);background:rgba(255,71,87,.05)}
.fjx-it.imp2{border-left-color:#ffa940}
.fjx-it.imp1{border-left-color:var(--gold)}
.fjx-it.fresh{animation:fjxIn .8s ease}
@keyframes fjxIn{0%{background:rgba(245,197,24,.22)}100%{background:transparent}}
.fjx-t{font-size:12.5px;line-height:1.45;color:var(--text);font-weight:600}
.fjx-t a{color:inherit;text-decoration:none}
.fjx-t a:hover{color:var(--gold)}
.fjx-m{font-family:var(--mono);font-size:9.5px;color:var(--text-3);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fjx-tag{font-family:var(--mono);font-size:8.5px;font-weight:800;padding:1px 6px;border-radius:4px;letter-spacing:.04em}
.fjx-en{font-family:var(--mono);font-size:9.5px;color:var(--text-3);font-style:italic;margin-top:2px;display:none}
/* Rafales repliées dans l'onglet Actus — même principe que sur l'Accueil. */
.fjx-plus{margin-left:auto;flex-shrink:0;font-family:var(--mono);font-size:8.5px;font-weight:700;
  color:var(--text-3);background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:999px;padding:1px 7px;cursor:pointer;transition:color .2s,border-color .2s}
.fjx-plus:hover{color:var(--text);border-color:var(--text-3)}
.fjx-plus.on{color:var(--gold);border-color:rgba(245,197,24,.4)}
.fjx-suite{margin:6px 0 2px;border-left:2px solid var(--border);padding-left:9px;
  display:flex;flex-direction:column;gap:5px}
.fjx-suite-e{display:flex;align-items:flex-start;gap:7px}
.fjx-suite-e time{font-family:var(--mono);font-size:9px;color:var(--text-3);flex-shrink:0;padding-top:2px}
.fjx-suite-e a{font-size:11.5px;line-height:1.4;color:var(--text-2);text-decoration:none;min-width:0;overflow-wrap:anywhere}
.fjx-suite-e a:hover{color:var(--gold)}
.fjx-it:hover .fjx-en{display:block}

.apx-steps{display:flex;flex-direction:column}
.apx-st{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--border)}
.apx-st:last-child{border-bottom:none}
.apx-st .n{flex-shrink:0;width:24px;height:24px;border-radius:8px;background:rgba(245,197,24,.14);border:1px solid rgba(245,197,24,.4);color:var(--gold);font-family:var(--mono);font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.apx-st .t{font-family:var(--mono);font-size:12.5px;font-weight:800;color:var(--text)}
.apx-st .d{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.65;margin-top:3px}
.apx-st .d b{color:var(--text)}
/* ===== CARNET D'ORDRES (DOM) — pédagogie + carnet live ===== */
.dom-lad{font-family:var(--mono);font-size:11.5px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-card)}
.dom-r{display:grid;grid-template-columns:1fr 92px 1fr;align-items:center;height:22px;border-bottom:1px solid rgba(255,255,255,.03);position:relative}
.dom-r:last-child{border-bottom:none}
.dom-bidbar,.dom-askbar{position:absolute;top:2px;bottom:2px;border-radius:3px;opacity:.5}
.dom-bidbar{right:calc(50% + 46px);background:rgba(14,203,129,.35)}
.dom-askbar{left:calc(50% + 46px);background:rgba(255,71,87,.32)}
.dom-q{position:relative;z-index:1;padding:0 8px;font-weight:700}
.dom-qb{text-align:right;color:var(--green)}
.dom-qa{text-align:left;color:var(--red)}
.dom-p{position:relative;z-index:1;text-align:center;font-weight:800;color:var(--text-2);background:var(--bg-2);height:100%;display:flex;align-items:center;justify-content:center;border-left:1px solid var(--border);border-right:1px solid var(--border)}
.dom-r.mid .dom-p{color:var(--gold);background:rgba(245,197,24,.1)}
.dom-r.big .dom-q{font-size:12.5px;text-shadow:0 0 8px currentColor}
.dom-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}
.dom-lg{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.dom-lg .t{font-family:var(--mono);font-size:10.5px;font-weight:800;color:var(--gold);margin-bottom:4px}
.dom-lg .d{font-family:var(--mono);font-size:10.5px;color:var(--text-2);line-height:1.55}
.dom-2col{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:16px;align-items:start}
@media(max-width:800px){.dom-2col{grid-template-columns:1fr}}
/* ===== MA SÉANCE — suivi des trades + verrou de fin de journée ===== */
.sea-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:520px){.sea-row{grid-template-columns:repeat(2,1fr)}}
.sea-box{background:var(--bg-2);border-radius:10px;padding:9px 11px;text-align:center}
.sea-box .l{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.sea-box .v{font-family:var(--mono);font-size:15px;font-weight:900;color:var(--text);margin-top:2px}
.sea-live{margin-top:11px;padding:13px 14px;border:1.5px solid rgba(255,71,87,.45);background:rgba(255,71,87,.06);border-radius:12px}
.sea-live .t{font-family:var(--mono);font-size:12.5px;font-weight:900;color:var(--red)}
.sea-live .d{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.5;margin-top:4px}
.sea-ask{margin-top:11px;padding:13px 14px;border:1.5px solid rgba(245,197,24,.45);background:rgba(245,197,24,.05);border-radius:12px}
.sea-ask .q{font-family:var(--mono);font-size:12.5px;font-weight:800;color:var(--gold)}
.sea-stop{margin-top:11px;padding:15px;border:1.5px solid rgba(255,71,87,.5);background:rgba(255,71,87,.07);border-radius:12px;text-align:center}
.sea-stop .t{font-family:var(--mono);font-size:15px;font-weight:900;color:var(--red)}
.sea-stop .d{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.6;margin-top:6px}
.sea-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.sea-btns button{flex:1;min-width:120px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:11px;font-weight:800;padding:11px 10px;border-radius:9px;cursor:pointer}
.sea-btns button.ok{border-color:rgba(14,203,129,.5);color:var(--green);background:rgba(14,203,129,.07)}
.sea-btns button.ko{border-color:rgba(255,71,87,.5);color:var(--red);background:rgba(255,71,87,.07)}
.sea-btns button:active{transform:scale(.99)}
.sea-mini{font-family:var(--mono);font-size:9.5px;color:var(--text-3);line-height:1.6;margin-top:9px;cursor:pointer}
.sea-hist{font-family:var(--mono);font-size:10.5px;color:var(--text-2);line-height:1.9;margin-top:11px;padding:10px 12px;background:var(--bg-2);border-radius:10px}
.sea-disc{font-family:var(--mono);font-size:11.5px;color:var(--text-2);margin-top:11px;padding:11px 13px;border-left:3px solid var(--gold);background:var(--bg-2);border-radius:0 10px 10px 0}
.sea-reset{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.7;margin-top:10px;padding:11px 13px;background:rgba(167,139,250,.08);border:1px solid rgba(167,139,250,.3);border-radius:10px}
.sea-reset a{color:var(--purple);font-weight:800;text-decoration:none}
/* Absorption expliquée : 3 photos du carnet */
.abs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:820px){.abs-grid{grid-template-columns:1fr}}
.abs-shot .abs-t{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.abs-shot .abs-d{font-family:var(--mono);font-size:10.5px;color:var(--text-2);line-height:1.6;margin-top:8px}
.abs-shot .dom-r{height:20px}
/* Bilan de la semaine */
.bil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
@media(max-width:640px){.bil-grid{grid-template-columns:repeat(2,1fr)}}
.bil-b{background:var(--bg-2);border-radius:10px;padding:11px 12px;text-align:center}
.bil-b .l{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.bil-b .v{font-family:var(--mono);font-size:19px;font-weight:900;color:var(--text);margin-top:2px}
.bil-b .s{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:2px}
.bil-txt{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.75}
.bil-txt div{padding:5px 0}
.bil-txt b{color:var(--text)}
/* ===== FORMATION — modules, leçons, quiz ===== */
.frm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.frm-titre{font-family:var(--mono);font-size:15px;font-weight:900;color:var(--text)}
.frm-sub{font-family:var(--mono);font-size:10.5px;color:var(--text-3);line-height:1.6;margin-top:4px}
.frm-cta{background:rgba(245,197,24,.14);border:1.5px solid rgba(245,197,24,.5);color:var(--gold);font-family:var(--mono);font-size:11.5px;font-weight:800;padding:11px 16px;border-radius:10px;cursor:pointer;white-space:nowrap}
.frm-bar{height:6px;background:var(--bg-2);border-radius:4px;overflow:hidden;margin:14px 0 5px}
.frm-bar>div{height:100%;background:var(--gold);border-radius:4px;transition:width .4s}
.frm-pct{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-bottom:16px}
.frm-mod{border:1px solid var(--border);border-radius:12px;padding:13px 14px;margin-bottom:12px;background:var(--bg-2)}
.frm-mod.fini{border-color:rgba(14,203,129,.4)}
.frm-mtop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.frm-mtop b{font-family:var(--mono);font-size:13px;color:var(--text)}
.frm-num{font-family:var(--mono);font-size:9px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}
.frm-msub{font-family:var(--mono);font-size:10px;color:var(--text-3);margin-top:2px}
.frm-mcnt{font-family:var(--mono);font-size:11px;font-weight:800;color:var(--text-3);white-space:nowrap}
.frm-mcnt.ok{color:var(--green)}
.frm-lec{border-top:1px solid var(--border)}
.frm-ltop{display:flex;align-items:center;gap:10px;padding:9px 0}
.frm-check{width:22px;height:22px;flex-shrink:0;border-radius:6px;border:1.5px solid var(--border-light);background:transparent;color:var(--green);font-size:12px;cursor:pointer;line-height:1}
.frm-lec.done .frm-check{border-color:var(--green);background:rgba(14,203,129,.15)}
.frm-ltit{flex:1;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--text);cursor:pointer;line-height:1.4}
.frm-lec.done .frm-ltit{color:var(--text-3);text-decoration:line-through}
.frm-chev{font-size:9px;color:var(--text-3);cursor:pointer;padding:0 4px}
.frm-corps{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.8;padding:4px 0 12px 32px}
.frm-corps b{color:var(--text)}
.frm-fin{margin-top:12px}
.frm-fin button{background:var(--bg-3);border:1px solid var(--border);color:var(--gold);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:9px 14px;border-radius:8px;cursor:pointer}
.frm-quiz{border-top:1px solid var(--border);margin-top:4px;padding-top:12px}
.frm-qq{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--text);line-height:1.6}
.frm-qr{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.frm-qb{flex:1;min-width:130px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:10px;border-radius:8px;cursor:pointer;line-height:1.4}
.frm-qb.bon{border-color:rgba(14,203,129,.6);color:var(--green);background:rgba(14,203,129,.08)}
.frm-qb.mauvais{opacity:.5}
.frm-qe{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.7;margin-top:10px;padding:10px 12px;background:var(--bg-3);border-radius:8px}
.frm-pied{font-family:var(--mono);font-size:10px;color:var(--text-3);line-height:1.6;margin-top:6px}
@media(max-width:600px){.frm-corps{padding-left:0}.frm-cta{width:100%}}
.frm-dur{font-family:var(--mono);font-size:9px;color:var(--text-3);white-space:nowrap}
.frm-exo{border-top:1px solid var(--border);margin-top:6px;padding:12px 0 4px}
.frm-exo.done .frm-xt{color:var(--green)}
.frm-xt{font-family:var(--mono);font-size:11px;font-weight:800;color:var(--gold);margin-bottom:5px}
.frm-xd{font-family:var(--mono);font-size:11px;color:var(--text-2);line-height:1.7}
.frm-steps{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.frm-steps button{background:var(--bg-3);border:1px solid var(--border);color:var(--gold);font-family:var(--mono);font-size:10.5px;font-weight:700;padding:9px 13px;border-radius:8px;cursor:pointer}
.frm-fini{border:1.5px solid rgba(14,203,129,.5);background:rgba(14,203,129,.06);border-radius:12px;padding:16px;margin-bottom:14px}
.frm-fini .t{font-family:var(--mono);font-size:15px;font-weight:900;color:var(--green)}
.frm-fini .d{font-family:var(--mono);font-size:11.5px;color:var(--text-2);line-height:1.75;margin-top:8px}
.apx-search{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.apx-search input{flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:11.5px;padding:11px 13px;border-radius:9px;outline:none}
.apx-search input:focus{border-color:var(--gold)}
.apx-search span{font-family:var(--mono);font-size:10px;color:var(--text-3);white-space:nowrap}
.frm-next{border:1.5px solid rgba(245,197,24,.5);background:rgba(245,197,24,.07);border-radius:12px;padding:13px 15px;margin-bottom:12px}
.frm-next .frm-nl{font-family:var(--mono);font-size:9.5px;font-weight:800;color:var(--gold);text-transform:uppercase;letter-spacing:.08em}
.frm-next .frm-nt{font-family:var(--mono);font-size:13px;font-weight:800;color:var(--text);line-height:1.45;margin:5px 0 11px}
.frm-next button{width:100%;background:rgba(245,197,24,.16);border:1px solid rgba(245,197,24,.5);color:var(--gold);font-family:var(--mono);font-size:12px;font-weight:800;padding:11px;border-radius:9px;cursor:pointer}
.frm-aide{font-family:var(--mono);font-size:9.5px;color:var(--text-3);line-height:1.6;margin-bottom:14px}
.frm-mbar{height:3px;background:var(--bg-3);border-radius:2px;overflow:hidden;margin:0 0 6px}
.frm-mbar>div{height:100%;background:var(--gold);opacity:.7;border-radius:2px;transition:width .4s}
.frm-push{font-family:var(--mono);font-size:10.5px;color:var(--green);line-height:1.6;padding:9px 11px;background:rgba(14,203,129,.07);border-radius:8px;margin-top:8px}
.frm-lec.open{background:rgba(245,197,24,.04);border-radius:8px}
.frm-quiz.done .frm-qq{color:var(--text-2)}
.vit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
@media(max-width:640px){.vit-grid{grid-template-columns:repeat(2,1fr)}}
.vit-b{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:11px 12px;text-align:center}
.vit-b .l{font-family:var(--mono);font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.vit-b .v{font-family:var(--mono);font-size:19px;font-weight:900;color:var(--text);margin-top:3px}
.vit-b .s{font-family:var(--mono);font-size:9px;color:var(--text-3);margin-top:3px;line-height:1.4}
.pf-plus{display:block;width:100%;margin-top:10px;background:var(--bg-2);border:1px solid var(--border);color:var(--gold);font-family:var(--mono);font-size:11px;font-weight:800;padding:12px;border-radius:10px;cursor:pointer}
.pfc-lien{display:block;width:100%;margin-top:10px;background:var(--bg-3);border:1px solid var(--border);color:var(--gold);font-family:var(--mono);font-size:10px;font-weight:700;padding:9px;border-radius:8px;cursor:pointer}
/* ═══════════════════════════════════════════════════════════════
   REFONTE GRAPHIQUE — 26/7/2026
   Trois principes :
   1. La chasse fixe (mono) sert aux CHIFFRES. Le texte qu’on lit
      passe en Inter Tight : plus lisible, plus compact, plus beau.
   2. Le fond quitte le noir pur (#0a0a0b) pour un anthracite légèrement
      bleuté : moins agressif, et les cartes se détachent enfin.
   3. Le texte long grossit (13 px au lieu de 10-11) et respire.
   ═══════════════════════════════════════════════════════════════ */

:root{
  /* Surfaces : on remonte du noir pur vers un anthracite qui a de la matière */
  --bg:#09090B;
  --bg-2:#18181B;
  --bg-3:#27272A;
  --bg-card:#0d0d0f;
  --border:#27272A;
  --border-light:#3f3f46;
  /* Texte : un blanc légèrement chaud, et un gris secondaire plus lisible */
  --text:#eceef2;
  --text-2:#a8b0bf;
  --text-3:#6b7488;
}

/* ── Le texte qu’on LIT passe en sans-serif ───────────────────────
   Ciblage volontairement précis : tous les blocs de contenu rédigé.
   Les chiffres, tickers, prix et compteurs gardent la chasse fixe. */
.frm-corps, .frm-sub, .frm-xd, .frm-qe, .frm-aide, .frm-pied, .frm-msub,
.dec-sous, .dec-why div, .dec-note, .dec-sub,
.mp-why, .mp-read, .mp-sub,
.sea-live .d, .sea-stop .d, .sea-mini, .sea-reset,
.bil-txt, .dom-lg .d, .apx-st .d, .abs-shot .abs-d,
.vit-b .s, .fjx-t{
  font-family:var(--sans);
  letter-spacing:0;
}

/* ── Les tailles : on arrête le 9-10 px pour du texte suivi ─────── */
.frm-corps{font-size:13.5px;line-height:1.75}
.frm-sub, .frm-xd{font-size:12.5px;line-height:1.65}
.frm-qe, .frm-aide{font-size:12px;line-height:1.65}
.dec-sous{font-size:12.5px;line-height:1.6}
.dec-why div, .dec-note, .dec-sub{font-size:12.5px;line-height:1.65}
.mp-why, .mp-read, .mp-sub{font-size:12.5px;line-height:1.65}
.bil-txt{font-size:12.5px;line-height:1.75}
.sea-live .d, .sea-stop .d{font-size:12.5px;line-height:1.6}
.sea-mini, .sea-reset{font-size:11.5px;line-height:1.7}
.dom-lg .d, .apx-st .d{font-size:12px;line-height:1.7}
.fjx-t{font-size:13px;line-height:1.5}

/* ── Les titres de section : moins criards, mieux espacés ───────── */
.ch-h{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;margin-bottom:10px}
.frm-titre{font-family:var(--sans);font-size:17px;letter-spacing:-0.01em}
.frm-ltit{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:0}
.dec-titre{letter-spacing:-0.01em}

/* ── Les cartes se détachent : un vrai relief, pas un contour ───── */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;
  box-shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6)}

/* ── Boutons : plus de confort au doigt ────────────────────────── */
.frm-steps button, .frm-fin button, .dec-links button, .sea-btns button, .pf-plus, .pfc-lien{
  font-family:var(--sans);font-size:12.5px;letter-spacing:0;font-weight:600}
.gold-subnav button{font-family:var(--sans);font-size:12px;letter-spacing:0;font-weight:600;padding:8px 14px}

/* ── Le fond : dégradé plus subtil, moins « vitrine » ──────────── */
body{background:radial-gradient(ellipse at top right,rgba(240,185,11,.05),transparent 55%),
     radial-gradient(ellipse at bottom left,rgba(79,143,255,.035),transparent 55%),var(--bg)}
.top{background:rgba(9,9,11,.88)}

/* ── Lisibilité mobile : on ne descend plus sous 12 px pour du texte ── */
@media(max-width:640px){
  .frm-corps{font-size:13.5px}
  .dec-why div, .mp-read, .bil-txt{font-size:12.5px}
}
/* ═══════════════════════════════════════════════════════════════
   THÈME CLAIR — 26/7/2026
   Activé par [data-theme="clair"] sur <html>. Tout le site lisant les
   mêmes variables, il suffit de les redéfinir. Les couleurs de marché
   (vert/rouge) sont assombries : sur fond clair, un vert néon devient
   illisible et un rouge vif agresse.
   ═══════════════════════════════════════════════════════════════ */
html[data-theme="clair"]{
  --bg:#f6f7f9;
  --bg-2:#eceef2;
  --bg-3:#e2e5eb;
  --bg-card:#ffffff;
  --border:#dfe3ea;
  --border-light:#c9cfda;
  --text:#14171c;
  --text-2:#4a515e;
  --text-3:#767f8e;
  --green:#0a9e63;
  --red:#d92b3c;
  --orange:#c77a12;
  --gold:#a67c05;
  --blue:#2563c9;
  --purple:#6d4fd6;
}
html[data-theme="clair"] body{
  background:radial-gradient(ellipse at top right,rgba(166,124,5,.05),transparent 55%),
             radial-gradient(ellipse at bottom left,rgba(37,99,201,.04),transparent 55%),var(--bg);
}
html[data-theme="clair"] .top{background:rgba(246,247,249,.9)}
html[data-theme="clair"] .card{
  background:var(--bg-card);border:1px solid var(--border);
  box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 24px -14px rgba(16,24,40,.14);
}
/* Surfaces sombres codées en dur dans quelques composants */
html[data-theme="clair"] #mp-pill,
html[data-theme="clair"] .rdr-pop-box{background:#ffffff;color:var(--text)}
html[data-theme="clair"] .dom-lad{background:var(--bg-card)}
html[data-theme="clair"] .dom-r .dom-p{background:var(--bg-2)}
/* Le carnet : des fonds de barre plus francs sur fond clair */
html[data-theme="clair"] .dom-bidbar{background:rgba(10,158,99,.22)}
/* Derniers fonds sombres codés en dur, repérés à l’audit du 27/7 */
html[data-theme="clair"] .fchip-panel{background:#ffffff;box-shadow:0 12px 40px rgba(16,24,40,.18)}
html[data-theme="clair"] .cal-cell .tooltip{background:#ffffff;box-shadow:0 6px 18px rgba(16,24,40,.2)}
html[data-theme="clair"] .dom-askbar{background:rgba(217,43,60,.2)}
/* Le bouton de bascule */
.theme-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);
  font-family:var(--sans);font-size:12px;font-weight:600;padding:6px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}
.theme-btn:hover{border-color:var(--gold);color:var(--gold)}

/* ── Coffre des cles d'echange (Reglages) ─────────────────────────────── */
.cles-avert{background:rgba(245,197,24,.07);border:1px solid rgba(245,197,24,.25);border-radius:9px;
  padding:11px 14px;margin:0 0 16px;font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--text-2)}
.cles-avert strong{color:var(--gold);display:block;margin-bottom:3px}
.cles-ex{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:12px;background:var(--bg-2)}
.cles-ex.on{border-color:rgba(46,196,127,.4)}
.cles-ex-h{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.cles-ex-n{font-family:var(--serif);font-size:16px;font-style:italic;letter-spacing:-.02em;flex:1}
.cles-etat{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;
  padding:3px 8px;border-radius:20px;border:1px solid var(--border);color:var(--text-3);white-space:nowrap}
.cles-etat.on{color:#2ec47f;border-color:rgba(46,196,127,.4);background:rgba(46,196,127,.08)}
.cles-aide{font-family:var(--sans);font-size:12px;color:var(--text-3);line-height:1.5;margin-bottom:11px}
.cles-champs{display:flex;flex-direction:column;gap:8px}
.cles-champs input{background:var(--bg-3);border:1px solid var(--border);color:var(--text);
  font-family:var(--mono);font-size:12px;padding:9px 12px;border-radius:8px;width:100%}
.cles-champs input:focus{outline:none;border-color:var(--gold)}
.cles-actions{display:flex;gap:9px;align-items:center;margin-top:11px;flex-wrap:wrap}
.cles-sup{background:none;border:1px solid var(--border);color:var(--text-3);font-family:var(--sans);
  font-size:12px;font-weight:600;padding:8px 13px;border-radius:8px;cursor:pointer}
.cles-sup:hover{border-color:#e5484d;color:#e5484d}
.cles-msg{font-family:var(--sans);font-size:13px;color:var(--text-3);margin-top:6px;min-height:18px}
.cles-msg.ok{color:#2ec47f}
.cles-msg.ko{color:#e5484d}
/* ── Écran d'entrée : formulaire adresse + mot de passe ───────────────── */
.lock-sep{display:flex;align-items:center;gap:12px;margin:20px 0 16px;
  font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3)}
.lock-sep::before,.lock-sep::after{content:'';flex:1;height:1px;background:var(--border)}
.lock-form{display:flex;flex-direction:column;gap:9px;text-align:left}
/* 16px minimum : en dessous, iOS Safari zoome automatiquement sur le champ
   au focus et déforme toute la page de connexion. */
.lock-champ{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);
  font-family:var(--sans);font-size:16px;padding:12px 13px;border-radius:10px}
.lock-champ:focus{outline:none;border-color:var(--gold)}
.lock-champ::placeholder{color:var(--text-3)}
.lock-aide{font-family:var(--sans);font-size:11.5px;color:var(--text-3);line-height:1.45;padding:0 2px}
.lock-bascule{margin-top:14px;font-family:var(--sans);font-size:12.5px;color:var(--text-3)}
.lock-bascule button{background:none;border:none;color:var(--gold);font-family:var(--sans);
  font-size:12.5px;font-weight:600;cursor:pointer;padding:0 0 0 4px;text-decoration:underline}
.lock-bascule button:hover{opacity:.8}
/* ── ERGONOMIE TACTILE (téléphone) ────────────────────────────────────
   Deux corrections mesurées le 01/08/2026 sur un écran de 375 px.

   1. LE ZOOM AUTOMATIQUE D'iOS. Safari sur iPhone agrandit la page dès qu'on
      touche un champ dont la police fait moins de 16 px — la mise en page
      saute, et il faut repincer pour revenir. 120 champs du site étaient dans
      ce cas, y compris le formulaire de connexion. Passer à 16 px sur mobile
      supprime le saut : c'est le seuil exact au-dessus duquel Safari ne zoome
      plus. Le rendu paraît à peine plus grand, et seulement sur téléphone.

   2. LES CIBLES TROP PETITES. La navigation principale (Bourse, Crypto, Gold,
      Mindset) faisait 23 px de haut. Un doigt couvre environ 45 px : viser
      juste devenait un exercice. On leur donne de la hauteur sans toucher au
      dessin — c'est du remplissage, pas une police plus grosse.            */
@media (max-width:640px){
  input, select, textarea{font-size:16px !important}
  /* Les curseurs et les cases n'affichent pas de texte : rien à corriger,
     et les agrandir décalerait les grilles où ils sont alignés. */
  input[type=range],input[type=checkbox],input[type=radio]{font-size:inherit !important}

  .mode-btn,.mode-tab,#mode-stocks,#mode-crypto,#mode-gold,#mode-mindset{
    min-height:40px;padding-top:9px;padding-bottom:9px}
  header button,.live-status button{min-height:38px}
  #refreshBtn{min-width:38px}

  /* Le passage des champs à 16 px élargit la liste déroulante de tri : la
     ligne « Trier par … » débordait alors de 10 px. On l'autorise à passer
     à la ligne plutôt que de rogner la police, qui rouvrirait le zoom. */
  .analyse-sort{flex-wrap:wrap}
  .analyse-sort select{max-width:100%}}
/* ── Très petits écrans (iPhone SE, 320 px) ───────────────────────────
   Mesuré le 01/08/2026. Deux cartes de la page Performance et la ligne de
   tri de la page Analyse dépassaient — et comme rien ne défilait, le
   contenu était COUPÉ, donc invisible plutôt que simplement décalé.

   Le calendrier des gains/pertes a un plancher de 292 px (sept colonnes de
   38 px) ; avec 24 px de marge de chaque côté, la carte réclamait 340 px.
   On resserre la marge à 14 px : 320 − 28 = 292, ça tombe juste. Réduire
   le calendrier aurait rendu les jours illisibles.                      */
@media (max-width:400px){
  .card,.settings-card,.apikey-card{padding-left:14px;padding-right:14px}
  /* « 1fr » vaut minmax(auto,1fr) : le minimum est le contenu, et la colonne
     refuse de descendre en dessous. minmax(0,1fr) l'autorise à rétrécir. */
  .split-perf,.split-2,.split-3{grid-template-columns:minmax(0,1fr)}
  /* Dernier recours si un tableau reste plus large que l'écran : qu'il
     défile dans son coin, plutôt que d'être tronqué sans prévenir. */
  #pl-calendar,.cal-month{overflow-x:auto}
  .analyse-sort{width:100%}
  .analyse-sort select{flex:1;min-width:0;width:100%}

  /* En-tete : voir le bloc « EN-TETE SUR TELEPHONE » plus bas. */

}
/* ── ORDRE DE LECTURE SUR TÉLÉPHONE (page Actus) ──────────────────────
   Demandé le 02/08/2026 : voir le calendrier économique en premier.

   Sur grand écran la page a trois colonnes ; sur téléphone elles s'empilent
   dans l'ordre du HTML, ce qui reléguait le calendrier en troisième position
   — derrière « Prochaines annonces » et « Sentiment du jour ».

   « display:contents » retire la boîte des colonnes sans toucher à leur
   contenu : les cartes deviennent alors des enfants directs de la grille,
   et on peut les ordonner entre elles, ce qu'il était impossible de faire
   tant qu'elles vivaient dans trois conteneurs séparés.

   L'ordre suit ce qu'on cherche en ouvrant son téléphone le matin : d'abord
   ce qui va tomber aujourd'hui, puis ce qui tombe à l'instant, puis les
   résumés, et enfin l'analyse de fond qu'on lit quand on a le temps.     */
@media (max-width:767px){
  .acc-col-l,.acc-col-c,.acc-col-r{display:contents}
  /* Ce sont les PETITS-ENFANTS qui deviennent les cases de la grille : les
     colonnes n'ont plus de boîte, donc « .acc-grid > * » ne les atteint plus
     et chaque carte se retrouvait dans une colonne de 18 px, toutes sur la
     même ligne. Il faut viser les enfants des colonnes. */
  .acc-col-l > *, .acc-col-c > *, .acc-col-r > *{grid-column:span 12}

  .acc-brk-ban        {order:1}   /* alerte en cours, s'il y en a une */
  #acc-bloc-flux      {order:2}   /* le fil, en direct — ce qu'on ouvre pour voir */
  #acc-bloc-calendrier{order:3}   /* ce qui arrive aujourd'hui */
  #acc-bloc-annonces  {order:4}   /* les échéances imminentes  */
  #acc-bloc-resumes   {order:5}   /* journée / pré-market / clôture */
  #acc-bloc-sentiment {order:6}
  #acc-bloc-histoire  {order:7}
  #acc-bloc-pays      {order:8}

  /* Hors flex, « flex:1 » posé en attribut ne veut plus rien dire : sans
     plafond, le fil déroulerait des centaines de brèves et repousserait
     tout le reste hors de portée du pouce.

     Le PLANCHER compte autant que le plafond. Le fil se réécrit toutes les
     8 s ; s'il ne renvoie rien un instant — réseau, filtre, archive vide —
     le bloc tombait de 568 px à 164, la page raccourcissait de 404 px, et
     le navigateur remontait le défilement d'autant. Mesuré : y=908 → 504.
     Chrome rattrape parfois le coup avec l'ancrage de défilement ; Safari
     sur iPhone ne l'implémente pas, d'où un symptôme propre au téléphone.
     Une hauteur quasi fixe supprime la cause au lieu de la compenser. */
  /* « !important » est ici nécessaire, pas paresseux : ces deux blocs portent
     min-height:0 dans un attribut style= du HTML, et un attribut l'emporte
     toujours sur la feuille de style. Sans lui le plancher était ignoré —
     mesuré, le bloc retombait bien à 164 px. */
  /* Plancher ÉGAL au plafond : le panneau garde exactement la même hauteur,
     qu'il contienne trois brèves ou trois cents. Un plancher plus bas laissait
     encore 81 px de secousse au moment où le fil se vide. Le fil défile de
     toute façon sur lui-même : cette hauteur fixe est celle d'un cadre, pas
     d'un contenu. */
  #acc-bloc-flux{min-height:70vh !important;max-height:70vh}

  /* Même raison : « Le fil de l'histoire » n'avait aucun plafond et grandit
     avec son contenu. Chaque rafraîchissement déplaçait donc tout ce qui
     le suit. 03/08 : plancher = plafond, comme le fil — la plage libre de
     25vh suffisait encore à faire sauter la lecture toutes les 8 s. */
  #acc-bloc-histoire{min-height:44vh !important;max-height:44vh}

  /* Mêmes cadres figés pour les blocs qui suivent : leur hauteur variait au
     rythme des rendus et tout ce qui se lit en dessous sautait d'autant. */
  #acc-bloc-pays{min-height:32vh !important;max-height:32vh}
  #acc-bloc-sentiment{min-height:340px}

  /* Le défilement du fil est géré à la main (restauration compensée) :
     l'ancrage automatique de Chrome ferait une double compensation. */
  #acc-feed{overflow-anchor:none}

  /* Le passage des champs à 16 px (contre le zoom d'iOS) a élargi les listes
     déroulantes du fil : « Toutes catégories » était coupé au milieu, la
     flèche par-dessus le texte. On leur laisse la largeur qu'il faut et on
     autorise la ligne à se replier plutôt que de rogner le mot. */
  .acc-feed-h .lft{gap:8px}
  .acc-feed-h select{max-width:100%;width:auto}
  #acc-sel{min-width:150px}

  /* Le bandeau radio occupait 103 px avant le premier contenu, sur deux
     lignes. Il reste en place — c'est le bouton du haut — mais resserré :
     ce qu'on veut voir en ouvrant, c'est le calendrier. */
  .acc-radio .in{gap:9px;padding-top:8px;padding-bottom:8px}
  .acc-radio .acc-now{display:none}
}
/* ── EN-TÊTE SUR TÉLÉPHONE ────────────────────────────────────────────
   Refait le 02/08/2026, après un chevauchement bien visible : les boutons
   de mode passaient SOUS la barre « Accueil / Screener / … ».

   La cause n'était pas le repli en lui-même, mais deux hauteurs figées :
   header.top vaut 106 px et .top-inner 46 px. Or .top-inner contient la
   marque (115 px), les quatre boutons de mode (347 px) et le bloc de
   statut (307 px) — soit 769 px à faire tenir dans 347. Sur une seule
   ligne tout était comprimé et « Multi-Vision » rogné ; dès que la ligne
   se repliait, le contenu débordait de ses 46 px et passait derrière la
   barre suivante.

   On laisse donc l'en-tête grandir, et on donne aux boutons de mode leur
   propre ligne, qui défile horizontalement — c'est le geste naturel sur
   téléphone, et aucun onglet n'est plus coupé.                          */
@media (max-width:760px){
  header.top{height:auto}
  .top-inner{height:auto;flex-wrap:wrap;row-gap:8px;padding-top:9px;padding-bottom:9px;align-items:center}

  .brand{flex:0 0 auto}

  /* Statut : ce qui compte est le bouton de connexion. L'horloge et
     « Temps réel » sont décoratifs et coûtaient 164 px sur une ligne
     qui n'en a pas. */
  .live-status{flex:1 1 auto;min-width:0;justify-content:flex-end;flex-wrap:nowrap}
  .live-status > span:not([id]){display:none}
  #ws-status{display:none}
  #auth-slot{min-width:0}
  #auth-slot .auth-u-n{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* Les modes prennent toute la largeur, sur leur propre ligne, et
     défilent latéralement plutôt que d'être comprimés ou rognés. */
  #mode-nav{order:3;flex:0 0 100%;width:100%;flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #mode-nav::-webkit-scrollbar{display:none}
  #mode-nav > *{flex:0 0 auto}

  /* La flèche native du menu déroulant est dessinée DANS la boîte : avec
     6 px de marge à droite elle retombait sur la dernière lettre
     (« Tous pay⌄s »). On lui réserve la place qu'elle occupe. */
  .acc-feed-h select,.acc-sel{padding-right:26px}
  /* Largeurs mesurées sur le libellé le plus long, marges et flèche comprises :
     « Toutes les alertes » réclame 160 px, « Tous pays » 102. En dessous, le
     dernier caractère disparaît. */
  #acc-radio-lvl{min-width:162px}
  #acc-pays-sel{min-width:104px}

  /* Les deux barres d'onglets défilent latéralement — 864 px de contenu
     pour 375 de large. Un dégradé au bord droit le fait comprendre : sans
     lui, « Multi-Vision » coupé net ressemble à un défaut d'affichage. */
  #mode-nav,.nav{position:relative;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);
            mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent)}
}
/* ── RADIO ET RÉSUMÉS : UN SEUL BLOC SUR TÉLÉPHONE ───────────────────
   Demandé le 02/08/2026 : « Résumé de la journée » juste sous le bouton
   lecture, et plus de bloc séparé en bas de page.

   Il n'y a rien à dupliquer ni à supprimer : le bloc des résumés remonte
   simplement en tête de grille (order:0), donc il se pose directement
   sous la barre radio. On efface ensuite la couture entre les deux —
   bordure, arrondis, marges — pour qu'ils se lisent comme un seul
   panneau, comme sur la maquette.

   Les trois résumés sont conservés : la maquette n'en montrait qu'un,
   mais « Pré-market » et « Clôture » n'existent nulle part ailleurs, et
   les perdre en passant sur téléphone serait une régression.          */
@media (max-width:760px){
  .acc-radio{border-bottom:none}
  .acc-radio .in{padding-bottom:8px}

  /* Le texte « Radio Live · En direct » double la pastille LIVE juste à
     côté. Sur un écran étroit, cette redite coûtait une ligne entière. */
  .acc-radio .acc-rid .tx{display:none}

  .acc-grid{padding-top:0}

  #acc-bloc-resumes{
    order:0;
    /* Les marges négatives annulent le retrait de la grille : le bloc
       s'aligne bord à bord avec la barre radio au-dessus. */
    margin:0 -12px;
    border:none;
    border-bottom:1px solid var(--z800);
    border-radius:0;
    background:linear-gradient(to right,#0d0d0f,#111114,#0d0d0f);
    padding:0 16px 12px;
    gap:0;
  }
  #acc-bloc-resumes .acc-digest-grp{gap:7px}
  /* Le résumé du jour est l'action principale : on lui laisse sa hauteur
     confortable, les deux autres restent secondaires. */
  #acc-bloc-resumes .acc-digest{height:40px;font-size:13.5px}
  #acc-bloc-resumes .acc-digest.sec{height:34px}
}
/* ── Fiche « Mon compte » (Réglages) ──────────────────────────────────── */
.cpt-lignes{display:flex;flex-direction:column;gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:9px;overflow:hidden;margin-top:12px;max-width:440px}
.cpt-ligne{display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--bg-2);padding:10px 13px}
.cpt-ligne span{font-family:var(--mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--text-3);white-space:nowrap}
.cpt-ligne b{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:right}
/* ── Réglages de la radio ─────────────────────────────────────────────── */
.radio-rate-l{display:flex;align-items:center;gap:12px;margin-top:14px;max-width:480px}
.radio-rate-l span{font-family:var(--mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--text-3);white-space:nowrap}
.radio-rate-l input[type=range]{flex:1;min-width:0;accent-color:var(--gold)}
.radio-rate-l b{font-family:var(--mono);font-size:12px;color:var(--gold);min-width:52px;text-align:right}
.radio-note{font-family:var(--sans);font-size:12.5px;color:var(--text-3);line-height:1.5;margin-top:14px}
#radio-voix{width:100%}
/* ── ERGONOMIE TACTILE — CRITÈRE : LE DOIGT, PAS LA LARGEUR ───────────
   Mesuré le 02/08/2026. Les règles tactiles précédentes s'arrêtaient à
   640 ou 760 px, comme si « petit écran » et « écran tactile » étaient la
   même chose. Une tablette dément les deux : à 1024 px, 100 des 182 cibles
   du site tombaient sous 34 px de haut, les boutons de mode à 22, et quatre
   champs déclenchaient encore le zoom de Safari.

   « pointer: coarse » désigne exactement ce qu'on vise : un appareil piloté
   au doigt, quelle que soit sa taille. Un écran de bureau rétréci à 800 px
   garde une souris et n'a donc pas besoin de cibles de 40 px — l'ancienne
   règle par largeur le pénalisait pour rien.                             */
@media (pointer: coarse){
  input, select, textarea{font-size:16px !important}
  input[type=range],input[type=checkbox],input[type=radio]{font-size:inherit !important}

  /* 40 px : en dessous, viser au pouce devient un exercice. On ajoute de la
     hauteur, jamais de la police — la densité d'information est voulue. */
  button,select,[role=button],.tab,.subnav-btn,.mode-btn,.btn-secondary,.save-btn,
  .period-btn,.deriv-sym-btn,.setup-quick-btn,.acc-digest,.al-puce,.pf-cmp-cb{
    min-height:40px}

  .mode-btn{padding-top:9px;padding-bottom:9px}

  /* Les liens de texte courant ne sont PAS concernés : les grossir couperait
     les paragraphes en escalier. Seuls ceux qui se comportent en bouton. */
  a.btn-secondary,a.save-btn,a[role=button]{min-height:40px;display:inline-flex;align-items:center}

  /* Deux cibles collées sont aussi difficiles à viser qu'une petite. */
  .acc-digest-grp{gap:8px}
}
/* ── L'EN-TÊTE SUR TABLETTE ───────────────────────────────────────────
   Mesuré le 02/08/2026 à 768 px : la barre des modes recevait 158 px pour
   438 px de contenu. « Bourse & Actions » occupait tout, Crypto 2 px, Gold
   et Mindset zéro. La barre de défilement est masquée et le dégradé
   indicatif s'arrêtait à 760 px : rien ne laissait deviner que trois modes
   existaient encore. Sur iPad, le site paraissait n'en avoir qu'un — donc
   moins utilisable que sur téléphone, où les modes ont leur propre ligne.

   Pourquoi la barre était seule à souffrir : la marque et le bloc d'état
   sont en flex-shrink:0, ils ne cèdent rien. Tout l'écrasement tombait sur
   le seul élément élastique de la ligne.

   On applique donc à la tablette le même remède qu'au téléphone — une ligne
   entière pour les modes — sans toucher au reste du bloc téléphone, qui
   masque l'horloge et resserre des marges dont la tablette n'a pas besoin. */
@media (min-width:761px) and (max-width:1099px){
  header.top{height:auto}
  .top-inner{height:auto;flex-wrap:wrap;row-gap:8px;padding-top:9px;padding-bottom:9px;align-items:center}
  .brand{flex:0 0 auto}
  .live-status{flex:1 1 auto;min-width:0;justify-content:flex-end}

  #mode-nav{order:3;flex:0 0 100%;width:100%;flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #mode-nav::-webkit-scrollbar{display:none}
  #mode-nav > *{flex:0 0 auto}

  /* La barre d'onglets peut encore déborder à cette largeur : même dégradé
     qu'au téléphone pour que la coupure se lise comme « ça continue ». */
  .nav{position:relative;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent);
            mask-image:linear-gradient(to right,#000 calc(100% - 26px),transparent)}
}

/* Le nom de l'annonce économique passait à 56 px entre 768 et 1024 : « Indice
   des… » et « Indice de… » devenaient indiscernables, pendant que trois
   chiffres gris gardaient leurs 172 px. Le téléphone masquait déjà ces
   chiffres sous 640 px ; la tablette a le même besoin, puisqu'elle garde la
   colonne étroite. L'infobulle ne remplace rien : elle ne s'ouvre pas au doigt. */
@media (min-width:641px) and (max-width:1099px){
  .acc-ev .vals{display:none}
}
/* ── COMPTE À REBOURS AVANT UNE ANNONCE ROUGE ─────────────────────────
   Fixé en haut, au-dessus de tout, et seulement pendant les 60 secondes
   qui précèdent une publication majeure — puis deux minutes après, le
   temps que le chiffre tombe. Il ne retarde rien : il prévient.
   Sur téléphone il occupe la largeur ; sur grand écran il reste compact
   et centré, pour ne pas écraser l'en-tête.                            */
#eco-rebours{position:fixed;left:50%;transform:translateX(-50%) translateY(-120%);
  top:8px;z-index:120;display:flex;align-items:center;gap:11px;
  max-width:min(560px,calc(100vw - 16px));padding:10px 15px;border-radius:12px;
  background:linear-gradient(90deg,rgba(120,20,24,.97),rgba(90,16,20,.97));
  border:1px solid rgba(239,68,68,.55);box-shadow:0 10px 34px rgba(0,0,0,.55);
  opacity:0;pointer-events:none;cursor:pointer;
  transition:transform .28s ease,opacity .28s ease}
#eco-rebours.on{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}
#eco-rebours.on:active{filter:brightness(1.15)}
#eco-rebours .pt{width:9px;height:9px;border-radius:50%;background:#ef4444;flex:0 0 auto;
  animation:accPulse 1s cubic-bezier(.4,0,.6,1) infinite}
#eco-rebours .tx{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
#eco-rebours .tx b{font-family:var(--sans);font-size:13.5px;font-weight:600;color:#fff;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#eco-rebours .tx em{font-family:var(--mono);font-size:9.5px;font-style:normal;
  text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.62)}
#eco-rebours .cd{font-family:var(--mono);font-size:21px;font-weight:700;color:#fff;
  font-variant-numeric:tabular-nums;flex:0 0 auto}
/* Les dix dernières secondes battent, pour qu'on lève les yeux. */
#eco-rebours.maintenant{background:linear-gradient(90deg,rgba(160,24,28,.98),rgba(120,18,22,.98))}
#eco-rebours.maintenant .cd{animation:accPulse .9s ease-in-out infinite}
@media (max-width:520px){
  #eco-rebours{left:8px;right:8px;transform:translateY(-120%);max-width:none;
    padding:9px 12px;gap:9px}
  #eco-rebours.on{transform:translateY(0)}
  #eco-rebours .cd{font-size:19px}
}
@media (prefers-reduced-motion:reduce){
  #eco-rebours{transition:none}
  #eco-rebours .pt,#eco-rebours.maintenant .cd{animation:none}
}
/* ═══════════════════════════════════════════════════════════════
   OUVERTURE PUBLIQUE — 02/08/2026
   Le site s'explore sans compte. Trois pièces : la croix qui referme
   l'écran d'entrée (devenu une porte et non plus un mur), l'étiquette
   « Invité » dans l'en-tête, et le bandeau d'invitation.
   ═══════════════════════════════════════════════════════════════ */
.lock-box{position:relative}
.lock-x{position:absolute;top:10px;right:12px;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  background:none;border:none;border-radius:9px;cursor:pointer;
  color:var(--text-3);font-size:16px;line-height:1;transition:.15s}
.lock-x:hover{background:var(--bg-2);color:var(--text)}

.lock-invite{display:block;width:100%;margin-top:12px;padding:9px;
  background:none;border:none;cursor:pointer;
  font-family:var(--sans);font-size:12.5px;color:var(--text-3);
  text-decoration:underline;text-underline-offset:3px;transition:.15s}
.lock-invite:hover{color:var(--text)}

.auth-invite{font-family:var(--mono);font-size:9.5px;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;
  padding:3px 7px;margin-right:8px;border-radius:5px;
  background:rgba(148,163,184,.14);color:var(--text-3);
  border:1px solid rgba(148,163,184,.25);white-space:nowrap}

.cc-invite{position:fixed;left:12px;right:12px;bottom:12px;z-index:110;
  display:flex;align-items:center;gap:12px;
  max-width:min(720px,calc(100vw - 24px));margin:0 auto;
  padding:11px 14px;border-radius:12px;
  background:var(--bg-card);border:1px solid var(--border);
  box-shadow:0 10px 34px rgba(0,0,0,.42);
  font-family:var(--sans);font-size:12.5px;color:var(--text-2);line-height:1.5}
.cc-invite.souci{border-color:rgba(239,68,68,.45);
  background:linear-gradient(90deg,rgba(120,20,24,.22),var(--bg-card))}
.cc-invite .tx{flex:1;min-width:0}
.cc-invite .tx b{color:var(--text)}
.cc-invite .cta{flex:none;padding:8px 14px;border-radius:9px;cursor:pointer;
  background:var(--gold);border:none;color:#12100a;
  font-family:var(--sans);font-size:12.5px;font-weight:700;transition:.15s}
.cc-invite .cta:hover{filter:brightness(1.08)}
.cc-invite .x{flex:none;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  background:none;border:none;border-radius:8px;cursor:pointer;
  color:var(--text-3);font-size:14px;line-height:1;transition:.15s}
.cc-invite .x:hover{background:var(--bg-2);color:var(--text)}

/* La barre radio occupe le bas de l'écran, y compris repliée : le décalage
   est posé en JS (inviteBandeau) parce que sa hauteur dépend de son état. */

@media (max-width:640px){
  .cc-invite{flex-wrap:wrap;gap:9px;padding:10px 12px;font-size:12px}
  .cc-invite .tx{flex:1 1 100%;order:1}
  .cc-invite .cta{order:2;flex:1;min-height:38px}
  .cc-invite .x{order:3}
}

/* Mot de passe oublié — le lien discret sous le formulaire d'entrée */
.lock-oubli{display:block;width:100%;margin-top:7px;padding:7px;
  background:none;border:none;cursor:pointer;
  font-family:var(--sans);font-size:12px;color:var(--text-3);
  text-decoration:underline;text-underline-offset:3px;transition:.15s}
.lock-oubli:hover{color:var(--text)}
.lock-oubli:disabled{opacity:.6;cursor:default}

/* ═══ Abonnement Pro : bouton d'en-tête et fenêtre de tarifs (02/08/2026) ═══ */
.auth-pro{display:inline-flex;align-items:center;gap:5px;margin-right:8px;
  padding:6px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;
  background:linear-gradient(135deg,rgba(245,197,24,.16),rgba(245,158,11,.08));
  border:1px solid rgba(245,197,24,.45);color:var(--gold);
  font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.02em;
  transition:.15s}
.auth-pro:hover{background:linear-gradient(135deg,rgba(245,197,24,.28),rgba(245,158,11,.14));
  border-color:var(--gold)}

.abo-box{max-width:660px;width:calc(100vw - 32px)}
.abo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0 14px}
.abo-col{padding:16px 16px 12px;border:1px solid var(--border);border-radius:12px;
  background:var(--bg-2)}
.abo-col.pro{border-color:rgba(245,197,24,.5);
  background:linear-gradient(180deg,rgba(245,197,24,.07),var(--bg-2) 55%);position:relative}
.abo-nom{font-family:var(--mono);font-size:10.5px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-3)}
.abo-col.pro .abo-nom{color:var(--gold)}
.abo-prix{font-family:var(--sans);font-size:26px;font-weight:800;color:var(--text);
  margin:6px 0 10px}
.abo-prix span{font-size:13px;font-weight:600;color:var(--text-3)}
.abo-col ul{list-style:none;margin:0;padding:0}
.abo-col li{position:relative;padding:5px 0 5px 20px;font-family:var(--sans);
  font-size:12.5px;color:var(--text-2);line-height:1.45}
.abo-col li::before{content:'✓';position:absolute;left:0;top:5px;
  font-weight:800;color:var(--text-3)}
.abo-col.pro li::before{color:var(--gold)}
.abo-cta{display:block;width:100%;padding:12px;border:none;border-radius:10px;
  cursor:pointer;background:var(--gold);color:#12100a;
  font-family:var(--sans);font-size:14px;font-weight:800;transition:.15s}
.abo-cta:hover{filter:brightness(1.08)}
.abo-cta:disabled{opacity:.6;cursor:default}
.abo-note{margin-top:9px;text-align:center;font-family:var(--sans);
  font-size:11.5px;color:var(--text-3);line-height:1.5}
.abo-msg{min-height:16px;margin:2px 0 6px;text-align:center;
  font-family:var(--sans);font-size:12px;color:var(--red)}

@media(max-width:640px){
  .abo-grid{grid-template-columns:1fr;gap:10px}
  .auth-pro{padding:6px 9px;margin-right:6px}
  .abo-box{max-height:88vh;overflow-y:auto}
}

/* ═══ EN-TÊTE ET BARRE RADIO SUR TÉLÉPHONE — seconde passe (02/08/2026) ═══
   Constat sur capture réelle envoyée par Cédric : quatre étages (marque /
   compte / modes / onglets) avant le premier contenu, bouton play qui
   déborde de la barre radio, « Multi-Visio » coupé net sans indice qu'on
   peut faire défiler. */
@media (max-width:760px){
  /* 1 · Marque et compte sur LA MÊME ligne. L'ajout du bouton « Pro » avait
     fait basculer tout le bloc de compte sous la marque : un étage perdu. */
  .brand{flex:0 1 auto;min-width:0}
  .brand span:not(.brand-dot){font-size:14px;white-space:nowrap}
  .auth-invite{display:none}         /* le bandeau invité le dit déjà, en mieux */
  .auth-pro{padding:5px 9px;margin-right:6px;font-size:11px}
  #auth-slot .auth-btn{padding:6px 10px;font-size:12px}
  .refresh-btn{flex-shrink:0}

  /* 2 · Les modes peuvent défiler : le fondu du bord droit le DIT, comme
     sur la barre d'onglets. Une coupure nette se lit comme un bug. */
  #mode-nav:not(.nav-at-end){-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent 99%);
    mask-image:linear-gradient(90deg,#000 88%,transparent 99%)}

  /* 3 · La barre radio devient un vrai mini-lecteur : 46 px de haut, bouton
     de 34 qui tient sous le doigt et ne déborde plus, titre borné par une
     ellipse, et la zone de sécurité des iPhone à encoche respectée. */
  .radio-bar{height:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
  .radio-bar-in{height:46px;padding:0 12px;gap:10px}
  .radio-bar-pp{width:34px;height:34px;flex-shrink:0}
  .radio-bar-pp svg{width:14px !important;height:14px !important}
  .radio-bar-tx .s{font-size:9.5px}
  .radio-bar-tx .t{font-size:12px;margin-top:1px;max-width:52vw;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}
  .radio-bar-vol button{width:34px;height:34px}
}

/* Bulletin partagé prêt (pré-market / clôture) : invitation discrète sous
   les boutons de résumé, pas une fenêtre qui s'impose. */
.acc-digest-pret{display:flex;flex-wrap:wrap;align-items:center;gap:8px 9px;margin-top:8px;
  padding:9px 11px;border-radius:9px;box-sizing:border-box;width:100%;
  background:rgba(245,197,24,.07);border:1px solid rgba(245,197,24,.28);
  font-family:var(--sans);font-size:12px;color:var(--text-2)}
.acc-digest-pret .pt{width:7px;height:7px;border-radius:50%;background:var(--gold);
  flex:0 0 auto;animation:accPulse 1.6s ease-in-out infinite}
/* Le texte peut prendre toute la largeur ; le bouton descend alors sur sa
   propre ligne, calé à droite, au lieu d'écraser la phrase. */
.acc-digest-pret .tx{flex:1 1 150px;min-width:0;line-height:1.4}
.acc-digest-pret button{flex:0 0 auto;margin-left:auto;padding:6px 12px;border-radius:7px;cursor:pointer;
  background:none;border:1px solid rgba(245,197,24,.5);color:var(--gold);
  font-family:var(--sans);font-size:11.5px;font-weight:700;transition:.15s;min-height:30px;white-space:nowrap}
.acc-digest-pret button:hover{background:rgba(245,197,24,.12)}

/* Page personnelle vue par un invité : le vide s'explique au lieu de
   ressembler à un écran cassé. Discret, jamais bloquant. */
.cc-perso-vide{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:14px 0 18px;padding:13px 16px;border-radius:12px;
  background:linear-gradient(135deg,rgba(245,197,24,.06),var(--bg-card));
  border:1px solid rgba(245,197,24,.25);
  font-family:var(--sans);font-size:12.5px;color:var(--text-2);line-height:1.55}
.cc-perso-vide b{color:var(--text);font-size:13.5px;flex:0 0 100%}
.cc-perso-vide span{flex:1;min-width:190px}
.cc-perso-vide button{flex:0 0 auto;padding:9px 16px;border-radius:9px;cursor:pointer;
  background:var(--gold);border:none;color:#12100a;
  font-family:var(--sans);font-size:12.5px;font-weight:700;transition:.15s;min-height:38px}
.cc-perso-vide button:hover{filter:brightness(1.08)}
@media(max-width:640px){
  .cc-perso-vide{padding:12px 13px}
  .cc-perso-vide button{flex:1 1 100%}
}

/* ═══ Pied de page légal (03/08/2026) ═══
   Conditions et confidentialité n'étaient liées que depuis l'écran d'accueil,
   masqué depuis l'ouverture publique : elles étaient devenues introuvables.
   La loi et l'examen d'activation de Stripe exigent qu'on les atteigne de
   n'importe où. */
.footer-liens{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;
  margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.footer-liens a{color:var(--text-2);text-decoration:none;font-family:var(--sans);
  font-size:12.5px;font-weight:600;padding:6px 2px;min-height:32px;
  display:inline-flex;align-items:center;transition:.15s}
.footer-liens a:hover{color:var(--gold)}
/* .footer-src et .footer-edit retirées le 07/08/2026 avec leurs blocs. */
.footer-avert{margin-top:8px;font-size:11px;line-height:1.6;color:var(--text-3)}
.footer-avert em{color:var(--text-2);font-style:normal}

@media(max-width:640px){
  /* La barre radio occupe le bas de l'écran : sans marge, le pied de page
     passe dessous et le dernier lien devient intouchable. */
  .footer-note{padding-bottom:64px}
  .footer-liens{gap:4px 16px}
  .footer-liens a{font-size:12px}
}

/* Acceptation des conditions à l'inscription (03/08/2026) */
.lock-cgu{display:flex;align-items:flex-start;gap:9px;margin:4px 0 12px;
  text-align:left;cursor:pointer;
  font-family:var(--sans);font-size:11.5px;color:var(--text-3);line-height:1.5}
.lock-cgu input{flex:0 0 auto;width:17px;height:17px;margin-top:1px;
  accent-color:var(--gold);cursor:pointer}
.lock-cgu span{flex:1;min-width:0}
.lock-cgu a{color:var(--gold)}
.lock-cgu strong{color:var(--text-2)}

/* Réglage « voix naturelle » de la radio (03/08/2026) */
.radio-neural{display:flex;align-items:flex-start;gap:10px;margin:2px 0 14px;
  cursor:pointer;font-family:var(--sans);font-size:12.5px;
  color:var(--text-2);line-height:1.55}
.radio-neural input{flex:0 0 auto;width:17px;height:17px;margin-top:2px;
  accent-color:var(--gold);cursor:pointer}
.radio-neural span{flex:1;min-width:0}
.radio-neural b{color:var(--text)}
.radio-neural em{color:var(--gold);font-style:normal}
.radio-neural.inactif{cursor:default;opacity:.72}
.radio-neural.inactif input{cursor:default}

/* Conseil de voix : vert quand une voix d'homme naturelle est disponible ici */
.radio-note.bon{color:var(--green)}
.radio-note.bon b{color:var(--green)}
#radio-voix-conseil{margin-top:8px;line-height:1.55}
#radio-voix-conseil b{color:var(--text)}

/* ══════════════════════════════════════════════════════════════════
   Abonnement, commandes et registre des membres (10/08/2026)
   ══════════════════════════════════════════════════════════════════ */

/* — Bandeau d'état du plan : ce qu'on a, d'où ça vient, jusqu'à quand — */
.abo-etat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.abo-pastille{font-family:var(--mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.1em;font-weight:700;padding:5px 10px;border-radius:999px;
  border:1px solid var(--border);color:var(--text-2);background:var(--bg-2)}
.abo-pastille.pro{color:var(--gold);border-color:rgba(240,185,11,.45);background:rgba(240,185,11,.10)}
.abo-pastille.offert{color:#4f8fff;border-color:rgba(79,143,255,.45);background:rgba(79,143,255,.10)}
.abo-pastille.stop{color:var(--orange);border-color:rgba(232,163,61,.45);background:rgba(232,163,61,.10)}
.abo-echeance{font-family:var(--sans);font-size:12.5px;color:var(--text-3)}
.abo-echeance b{color:var(--text-2);font-weight:600}

/* Avertissement d'une résiliation programmée : l'accès court encore, mais
   il faut le dire maintenant, pas le jour de la coupure. */
.abo-alerte{border:1px solid rgba(232,163,61,.35);background:rgba(232,163,61,.08);
  border-radius:9px;padding:10px 13px;margin:10px 0;font-family:var(--sans);
  font-size:12.5px;line-height:1.55;color:var(--text-2)}
.abo-alerte b{color:var(--orange)}

/* — La jauge d'analyses IA. Un nombre seul ne dit pas qu'on approche du bord — */
.abo-jauge-l{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;margin:14px 0 6px;font-family:var(--mono);font-size:10px;
  text-transform:uppercase;letter-spacing:.1em;color:var(--text-3)}
.abo-jauge-l b{font-family:var(--sans);font-size:13.5px;letter-spacing:0;
  text-transform:none;color:var(--text);font-weight:600}
.abo-jauge{height:7px;border-radius:999px;background:var(--bg-2);
  border:1px solid var(--border);overflow:hidden}
.abo-jauge i{display:block;height:100%;background:var(--gold);
  transition:width .4s ease}
.abo-jauge.chaud i{background:var(--orange)}
.abo-jauge.plein i{background:var(--red)}
.abo-reset{margin-top:6px;font-family:var(--sans);font-size:11.5px;color:var(--text-3)}
.abo-relance{margin-top:10px;border:1px solid rgba(240,185,11,.35);
  background:rgba(240,185,11,.07);border-radius:9px;padding:11px 13px;
  font-family:var(--sans);font-size:12.5px;line-height:1.55;color:var(--text-2)}
.abo-relance b{color:var(--gold)}
.abo-relance button{margin-top:8px}

/* Deux actions côte à côte (portail Stripe + factures) sans casser sur mobile */
.abo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.abo-actions .save-btn{margin-top:0}

/* — Tableaux compacts : commandes, factures, membres — */
.tbl-mini{width:100%;border-collapse:collapse;font-size:13px}
.tbl-mini th{text-align:left;padding:4px 10px 8px 0;font-family:var(--mono);
  font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;
  color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap}
.tbl-mini th.tri{cursor:pointer;user-select:none}
.tbl-mini th.tri:hover{color:var(--gold)}
.tbl-mini th.tri::after{content:'';opacity:.55;font-size:9px}
.tbl-mini th.tri.asc::after{content:' ▲'}
.tbl-mini th.tri.desc::after{content:' ▼'}
.tbl-mini td{padding:7px 10px;vertical-align:top}
.tbl-mini td:first-child{padding-left:0}
.tbl-mini td:last-child{padding-right:0;text-align:right;white-space:nowrap}
.tbl-mini tbody tr:hover{background:rgba(255,255,255,.02)}
.tbl-vide{font-family:var(--sans);font-size:12.5px;color:var(--text-3);padding:10px 0}

/* — Tuiles de synthèse (admin) : l'état du business en un regard — */
.adm-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
  gap:1px;background:var(--border);border:1px solid var(--border);
  border-radius:10px;overflow:hidden;margin:4px 0 16px}
.adm-kpi>div{background:var(--bg-card);padding:12px 14px}
.adm-kpi .k{display:block;font-family:var(--mono);font-size:9.5px;
  text-transform:uppercase;letter-spacing:.09em;color:var(--text-3);margin-bottom:5px}
.adm-kpi .v{font-family:var(--sans);font-size:19px;font-weight:600;color:var(--text);
  letter-spacing:-.02em;line-height:1.1}
.adm-kpi .v.or{color:var(--gold)}
.adm-kpi .s{display:block;margin-top:4px;font-family:var(--sans);font-size:11px;color:var(--text-3)}

/* — Puces de filtre — */
.adm-chips{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 12px}
.adm-chip{font-family:var(--mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.08em;padding:6px 11px;border-radius:999px;cursor:pointer;
  border:1px solid var(--border);background:none;color:var(--text-3)}
.adm-chip:hover{color:var(--text-2);border-color:var(--text-3)}
.adm-chip.on{color:var(--gold);border-color:rgba(240,185,11,.5);background:rgba(240,185,11,.10)}

/* — Petite fenêtre de saisie, à la place de prompt()/confirm() du navigateur — */
.adm-modal{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.62);
  display:flex;align-items:center;justify-content:center;padding:20px}
.adm-modal-b{background:var(--bg-card);border:1px solid var(--border);
  border-radius:14px;padding:22px;width:100%;max-width:420px;
  box-shadow:0 24px 60px rgba(0,0,0,.5)}
.adm-modal-b h3{font-family:var(--serif);font-style:italic;font-size:19px;
  margin:0 0 6px;letter-spacing:-.02em}
.adm-modal-b p{font-family:var(--sans);font-size:12.5px;line-height:1.6;
  color:var(--text-2);margin:0 0 14px}
.adm-modal-b label{display:block;font-family:var(--mono);font-size:9.5px;
  text-transform:uppercase;letter-spacing:.09em;color:var(--text-3);margin-bottom:6px}
.adm-modal-b select,.adm-modal-b input{width:100%;background:var(--bg-2);
  border:1px solid var(--border);color:var(--text);font-family:var(--sans);
  font-size:13px;padding:9px 12px;border-radius:8px}
.adm-modal-p{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}
.adm-modal-p button{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.09em;padding:9px 15px;border-radius:8px;cursor:pointer;
  border:1px solid var(--border);background:none;color:var(--text-2)}
.adm-modal-p button.ok{background:var(--gold);border-color:var(--gold);
  color:#000;font-weight:700}
.adm-modal-p button.danger{border-color:rgba(229,72,77,.5);color:var(--red)}

/* — Journal des webhooks Stripe — */
.wh-ligne{display:flex;gap:12px;align-items:baseline;padding:6px 0;
  border-bottom:1px solid var(--border);font-size:12px}
.wh-ligne:last-child{border-bottom:none}
.wh-ligne time{font-family:var(--mono);font-size:10.5px;color:var(--text-3);
  white-space:nowrap;flex:0 0 auto}
.wh-ligne span{font-family:var(--sans);color:var(--text-2);word-break:break-word}
.wh-ligne.ko span{color:var(--red)}
