/* ============================================================
   AURUM ONE — shell (Phase 1 · Session 01)
   Coquille unique montée AU-DESSUS de l'existant. Header desktop
   + barre basse mobile, breakpoint 1024px. Aucune donnée fabriquée :
   les espaces sont des conteneurs vides + lien vers la page actuelle.
   Tokens : voir tokens.css (importé ci-dessous, SPEC-GLOBALE).
   ============================================================ */
@import url('tokens.css');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{background:var(--bg)}
body{
  font-family:var(--font);color:var(--text);background:var(--bg);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
  min-height:100dvh;display:flex;flex-direction:column;
}
a{color:var(--gold);text-decoration:none}
a:hover{color:#D4B158}
svg{display:block}

/* ── Header (top) — brand · nav 5 onglets (desktop) · pills · wallet ── */
.one-header{
  display:flex;align-items:center;gap:18px;
  padding:0 16px;min-height:58px;
  background:var(--bg2);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:40;
  padding-top:env(safe-area-inset-top,0);
}
.one-brand{
  font-family:var(--cinzel);font-size:16px;letter-spacing:.28em;color:var(--gold);
  font-weight:600;display:flex;align-items:center;gap:10px;flex-shrink:0;
  white-space:nowrap;
}
.one-badge{
  font-family:var(--mono);font-size:9px;letter-spacing:.25em;color:var(--gold);
  border:1px solid var(--gold-dim);background:var(--gold-wash);
  padding:2px 7px;border-radius:4px;
}

/* Desktop tabs — hidden on mobile (bottom bar takes over) */
.one-nav{display:none;gap:4px;margin-left:8px}
.one-nav a{
  font-size:13px;font-weight:500;color:var(--text2);
  padding:8px 14px;border-radius:8px;letter-spacing:.01em;
  min-height:44px;display:inline-flex;align-items:center;
  white-space:nowrap;
}
.one-nav a:hover{color:var(--text)}
.one-nav a.on{color:var(--gold);background:var(--gold-wash);box-shadow:inset 0 0 0 1px var(--gold-dim)}

.one-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}

.pill{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  padding:4px 10px;border-radius:20px;border:1px solid var(--border);
  color:var(--text3);white-space:nowrap;
}
.pill.actif{color:var(--green);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.07)}
.pill.actif::before{content:"●";margin-right:6px;animation:one-pulse 2s infinite}
.pill.gele{color:var(--red);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.07)}
.pill.relance{color:var(--orange);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.06)}
.pill.dim{color:var(--text3)}
@keyframes one-pulse{50%{opacity:.35}}

.wallet{
  font-family:var(--mono);font-size:10px;color:var(--text2);
  background:var(--bg3);border:1px solid var(--border);
  padding:4px 10px;border-radius:6px;white-space:nowrap;
}

/* ── Main — 5 espaces (un seul actif à la fois) ── */
.one-main{
  flex:1 1 auto;min-height:0;overflow-y:auto;
  padding:22px 20px calc(22px + env(safe-area-inset-bottom,0));
}
.one-space{display:none}
.one-space.active{display:block}

/* Phase-1 scaffold : conteneur vide + pont vers la page actuelle */
.one-scaffold{
  max-width:760px;margin:0 auto;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px 26px 24px;
}
.one-eyebrow{
  font-family:var(--cinzel);font-size:10px;letter-spacing:.4em;color:var(--gold);
  text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:10px;
}
.one-eyebrow .num{font-family:var(--mono);font-size:12px;letter-spacing:.06em}
.one-scaffold h1{
  font-family:var(--cinzel);font-weight:600;font-size:24px;letter-spacing:.06em;
  color:var(--text);margin:12px 0 8px;line-height:1.2;
}
.one-scaffold p{color:var(--text2);font-size:13.5px;max-width:62ch;margin-bottom:6px}
.one-scaffold .phase-note{
  margin:16px 0 18px;padding:10px 14px;border:1px dashed var(--gold-dim);
  border-radius:var(--radius-inner);color:var(--text2);font-size:12px;background:var(--gold-wash);
}
.one-scaffold .phase-note b{color:var(--gold);font-weight:600}
.one-bridges{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.one-cta{
  display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:10px 16px;border-radius:var(--radius-inner);
  font-size:13px;font-weight:600;color:var(--gold);
  border:1px solid var(--gold-dim);background:var(--gold-wash);
}
.one-cta:hover{color:#D4B158;border-color:var(--gold)}
.one-cta .arw{font-family:var(--mono);font-size:12px}

/* ── Bottom nav (mobile) — 5 items, hit target ≥ 44px ── */
.one-bottomnav{
  display:grid;grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--border);background:var(--bg2);
  position:sticky;bottom:0;z-index:40;
  padding-bottom:env(safe-area-inset-bottom,0);
}
.one-bottomnav a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:56px;padding:8px 0 6px;
  font-size:9.5px;letter-spacing:.03em;color:var(--text3);font-weight:500;
  text-align:center;
}
.one-bottomnav a svg{width:20px;height:20px;color:currentColor}
.one-bottomnav a.on{color:var(--gold)}

/* ── Focus (clavier) ── */
a:focus-visible,
.one-nav a:focus-visible,
.one-bottomnav a:focus-visible,
.one-cta:focus-visible,
/* Tous les <button> de ① (lignes de trade, mini-cards, cartes moteurs, actions drill,
   fil compact « Aujourd'hui », FAB Guardian) sur fond sombre : anneau doré au clavier
   (sinon contour navigateur par défaut, peu contrasté). ⚠ V2 : les trades sont .trow
   (PAS .prow, jamais rendu — revue R2/A1) ; on cible les classes RÉELLEMENT rendues. */
#space-vue .trow:focus-visible,
#space-vue .mk:focus-visible,
#space-vue .eng:focus-visible,
#space-vue .cta:focus-visible,
#space-vue .protectbtn:focus-visible,
#space-vue .crumb .tab:focus-visible,
#space-vue .crumb .cb:focus-visible,
#space-vue .tfe:focus-visible,
#space-vue .tfe-more:focus-visible,
#space-vue .tfe-all:focus-visible,
#space-vue .vue-gfab:focus-visible,
#space-vue .one-livepin:focus-visible{
  outline:2px solid var(--gold);outline-offset:2px;border-radius:8px;
}

/* ── Breakpoint shell : 1024px (SPEC §Interactions) ── */
@media (min-width:1024px){
  .one-nav{display:flex}
  .one-bottomnav{display:none}
  .one-main{padding:26px 24px 30px}
}
/* Header compact mobile (planche 05a = marque + état + santé). Le pill mode
   (lecture) + wallet sont des éléments du header DESKTOP ; sur mobile ils
   vivraient dans ③ Trading (polish mobile = Session 09). On les masque + on
   serre l'espacement pour garantir zéro débordement horizontal (la marque peut
   rétrécir en dernier). */
@media (max-width:1023.98px){
  .one-header{gap:8px;padding-left:12px;padding-right:12px}
  /* flex-shrink:1 rend le filet réel : la marque rétrécit + clippe (overflow
     hidden) AVANT de pousser état/santé hors écran, quelle que soit la longueur
     du libellé d'état. .one-right reste flex-shrink:0 ⇒ la marque cède en 1ère. */
  .one-brand{letter-spacing:.14em;font-size:15px;min-width:0;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .one-right{gap:6px;flex-shrink:0}
  .one-header #pill-mode,
  .one-header .wallet{display:none}
}

/* ── Sigils moteurs (SPEC §Design Tokens · defs partagés dans index.html) ── */
.sig{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;flex-shrink:0}
.sig svg{width:11px;height:11px}
.sig.shield{color:var(--shield);background:rgba(47,163,127,.12)}
.sig.sword{color:var(--sword);background:rgba(78,156,208,.12)}
.sig.cockpit{color:var(--cockpit);background:rgba(201,168,76,.14)}
.sig.carry{color:var(--carry);background:rgba(52,211,153,.12)}
/* CARRY has no shared glyph yet → a filled dot marker in its family colour. */
.sig.carry::after{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}

@media (prefers-reduced-motion:reduce){
  .pill.actif::before{animation:none}
}

/* ════════════════════════════════════════════════════════════════════════════
   ① VUE D'ENSEMBLE — Session 02 (planches 03 desktop + 05a mobile)
   Tout est scopé sous #space-vue (aucune fuite vers les autres espaces) sauf le
   bandeau live (.one-livepin, NON collant) rendu en tête de la Vue. Anatomie relevée
   verbatim de la référence visuelle (mid-fidelity : structure contractuelle,
   espacements ajustés aux tokens ONE). Aucun chiffre coloré par un moteur :
   vert/rouge = argent+direction ; le moteur signe (sigil + bordure gauche).
   ════════════════════════════════════════════════════════════════════════════ */
#space-vue .pos{color:var(--green)}
#space-vue .neg{color:var(--red)}
#space-vue .warn{color:var(--orange)}
#space-vue .mut{color:var(--text3)}

/* Layout V2 (planches 16 + L4/19) : colonne principale + rail droit « Aujourd'hui ».
   L4/B8 — Guardian a QUITTÉ le rail (page dédiée). Le rail (fil « Aujourd'hui » COMPACT)
   s'active en colonne à ≥1440px ; en dessous il coule SOUS la colonne principale
   (position 7). max-width porté à 1600px (fin de la page flottante étroite sur grand
   écran) ; le contenu s'étire large avant de se centrer (marges réduites au-delà). */
#space-vue .vue-layout{display:grid;gap:16px;grid-template-columns:1fr;max-width:1600px;margin:0 auto}
#space-vue .vue-main{display:flex;flex-direction:column;gap:16px;min-width:0}
#space-vue .vue-rail{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (min-width:1440px){
  #space-vue .vue-layout{grid-template-columns:minmax(0,1fr) 384px;align-items:start}
  /* max-height + overflow : sur un viewport court, le bas d'« Aujourd'hui » reste
     atteignable (le rail scrolle) au lieu d'être coupé sous le pli (R1). */
  #space-vue .vue-rail{position:sticky;top:76px;max-height:calc(100vh - 92px);overflow-y:auto}
}
/* Ultra-large (≥2000px, ex. 27" 2560×1440) : élargir le cap pour tenir la DoD « aucune
   marge morte >200px à 2560px ». 1600 laisserait ~480px de marge par côté à 2560 (la
   « page flottante » que B8 corrige) ; à 2200px la marge tombe à 180px. Le rail reste
   384px, la colonne principale s'étire. Écrans 1440-1920 : cap 1600 inchangé (planche). */
@media (min-width:2000px){
  #space-vue .vue-layout{max-width:2200px}
}

/* Cartes + entêtes de section (Cinzel). */
#space-vue .card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;min-width:0}
#space-vue .card h3{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0 0 14px}
#space-vue .card h3 .ct{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.05em;text-transform:none;font-weight:400}
#space-vue .v-empty{color:var(--text3);font-size:12.5px;padding:8px 0}
#space-vue .fresh{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.04em}

/* Capital. */
#space-vue .cap-total{font-family:var(--mono);font-size:34px;font-weight:500;letter-spacing:-.01em;color:var(--text);line-height:1}
#space-vue .cap-delta{font-family:var(--mono);font-size:13px;margin-top:6px}
/* SEULE la 2ᵉ span (« / 30j ») est mutée : la 1ère (delta du jour) porte .pos/.neg et
   doit garder sa couleur argent (vert/rouge). Cibler `span` tout court battait .pos/.neg
   en spécificité (id+classe+type) et forçait le delta du jour en gris (audit R6 §3). */
#space-vue .cap-delta span:last-child{color:var(--text3);margin-left:10px}
/* SPEC-B3 — icône ⓘ du libellé « courbe N j » : l'info de troncature vit dans son title
   (tooltip natif). tabindex=0 ⇒ focusable clavier, d'où l'anneau de focus (a11y). */
#space-vue .cap-delta .ii{cursor:help;font-size:11px;padding:0 1px;color:var(--gold)}
#space-vue .cap-delta .ii:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-radius:3px}
#space-vue .cap-scope{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.05em;margin-top:8px}
#space-vue .spark-host{height:48px;margin:12px 0 4px;position:relative}
#space-vue .spark-host svg{display:block;width:100%;height:100%}
#space-vue .wrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--border);font-size:12.5px}
#space-vue .wrow .wl{color:var(--text2);display:flex;flex-direction:column;gap:2px;min-width:0}
#space-vue .wrow .wl small{font-family:var(--mono);font-size:9.5px;color:var(--text3)}
#space-vue .wrow .wv{font-family:var(--mono);font-size:13px;text-align:right;white-space:nowrap}

#space-vue .attr{margin-top:6px}
#space-vue .attr-head{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--text3);text-transform:uppercase;padding:12px 0 2px;display:flex;align-items:center;gap:8px}
#space-vue .attr-head .ct{margin-left:auto;text-transform:none;letter-spacing:.04em}
#space-vue .attr-row{display:grid;grid-template-columns:18px 76px 1fr 74px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}
#space-vue .attr-row .an{font-size:11.5px;font-weight:600;letter-spacing:.05em;color:var(--text2)}
#space-vue .attr-row .bar{height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;position:relative}
#space-vue .attr-row .bar i{position:absolute;top:0;left:0;bottom:0;border-radius:3px;min-width:2px}
#space-vue .attr-row .av{font-family:var(--mono);font-size:12px;text-align:right}
#space-vue .attr-note{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.03em;margin-top:8px;line-height:1.5}
/* Ligne statut DRY (moteur signal-seul) : sobre, jamais un $, jamais une couleur PnL. */
#space-vue .attr-row.dry .dry-lbl{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.02em;align-self:center}
#space-vue .attr-row.dry .dry-tag{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text2);text-transform:uppercase;border:1px solid var(--border2);border-radius:var(--radius-chip);padding:2px 6px;justify-self:end;align-self:center}

#space-vue .dd{display:flex;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
#space-vue .dd .d{flex:1;min-width:0}
#space-vue .dd .dl{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--text3);text-transform:uppercase}
#space-vue .dd .dv{font-family:var(--mono);font-size:13px;margin-top:3px}
#space-vue .dd .dg{height:4px;background:var(--bg3);border-radius:2px;margin-top:6px;overflow:hidden}
#space-vue .dd .dg i{display:block;height:100%;background:var(--orange);border-radius:2px}

/* Positions ouvertes — anatomie unifiée [sigil][asset+dir][contexte][durée·lev][PnL]. */
#space-vue .prow{display:grid;grid-template-columns:18px 92px 58px minmax(0,1fr) 104px 96px;gap:12px;align-items:center;padding:11px 4px;border-top:1px solid var(--border);border-left:2px solid transparent;text-align:left;width:100%;background:none;color:inherit;font:inherit;cursor:pointer}
#space-vue .prow:first-of-type{border-top:none}
#space-vue .prow:hover{background:rgba(255,255,255,.02)}
#space-vue .prow.eng-shield{border-left-color:var(--shield)}
#space-vue .prow.eng-sword{border-left-color:var(--sword)}
#space-vue .prow.eng-cockpit{border-left-color:var(--cockpit)}
#space-vue .prow.eng-carry{border-left-color:var(--carry)}
#space-vue .prow.eng-paper{border-left-color:var(--border2)}
#space-vue .prow .pa{font-size:14px;font-weight:700;color:var(--text)}
#space-vue .prow .pm{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:2px}
/* Le contexte (entrée·SL·TP) vit dans la piste minmax(0,1fr) : la colonne centrale
   est intrinsèquement étroite (côtés fixes 380+384), donc on TRONQUE sur une ligne —
   jamais de wrap multi-lignes qui ballonnerait la hauteur de la ligne (audit R3). */
#space-vue .prow .prow-ctx{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .prow .px{font-family:var(--mono);font-size:10.5px;color:var(--text3);text-align:right;white-space:nowrap}
#space-vue .prow>span{min-width:0}
#space-vue .prow .pv{font-family:var(--mono);font-size:13px;text-align:right}
#space-vue .prow .pv small{display:block;font-size:10px;color:var(--text3);font-weight:400}
#space-vue .dirb{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;padding:2px 7px;border-radius:4px;justify-self:start}
#space-vue .dirb.long{color:var(--green);background:rgba(34,197,94,.12)}
#space-vue .dirb.short{color:var(--red);background:rgba(239,68,68,.12)}
#space-vue .dirb.flat{color:var(--text3);background:rgba(107,114,128,.14)}
#space-vue .ptag{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;padding:1px 5px;border-radius:3px;border:1px solid var(--border2);color:var(--text3);margin-left:6px;vertical-align:middle}

/* Marché — mini-cards régime. */
#space-vue .mkt{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:2px}
@media (min-width:1024px){ #space-vue .mkt{grid-template-columns:repeat(4,minmax(0,1fr))} }
#space-vue .mk{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 10px;text-align:left;cursor:pointer;color:inherit;font:inherit;min-height:52px}
#space-vue .mk:hover{border-color:var(--border2);background:var(--bg3)}
#space-vue .mk .ms{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--text);display:flex;align-items:center;gap:5px}
#space-vue .mk .ms i{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
#space-vue .mk .ms i.green{background:var(--green)} #space-vue .mk .ms i.red{background:var(--red)} #space-vue .mk .ms i.gray{background:var(--text3)}
#space-vue .mk .mp{font-family:var(--mono);font-size:11.5px;color:var(--text2);margin-top:4px}
#space-vue .mk .mc{font-family:var(--mono);font-size:10px;margin-top:1px}

/* Fil « Aujourd'hui » + « À venir ». */
#space-vue .feed{display:flex;flex-direction:column}
#space-vue .fe{display:grid;grid-template-columns:42px 20px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--border);font-size:12.5px;align-items:start}
#space-vue .fe:first-of-type{border-top:none}
#space-vue .fe .ft{font-family:var(--mono);font-size:10px;color:var(--text3);padding-top:2px}
#space-vue .fe .fi{width:18px;height:18px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;background:rgba(255,255,255,.04);color:var(--text2)}
#space-vue .fe .fi.gold{background:var(--gold-wash);color:var(--gold)}
#space-vue .fe .fi.green{background:rgba(34,197,94,.1);color:var(--green)}
#space-vue .fe .fi.red{background:rgba(239,68,68,.1);color:var(--red)}
#space-vue .fe .fi.sword{background:rgba(78,156,208,.1);color:var(--sword)}
#space-vue .fe p{color:var(--text2);min-width:0}
#space-vue .fe p b{color:var(--text);font-weight:600}
#space-vue .fe p .amt{font-family:var(--mono)}
#space-vue .next{margin-top:12px}
#space-vue .nx{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-top:1px dashed var(--border2);font-size:11.5px}
#space-vue .nx:first-child{border-top:none}
#space-vue .nx .nd{font-size:9px;line-height:1;padding-top:3px}
#space-vue .nx .nd.red{color:var(--red)} #space-vue .nx .nd.orange{color:var(--orange)} #space-vue .nx .nd.mut{color:var(--text3)}
#space-vue .nx .nn{color:var(--text2);flex:1;min-width:0}
#space-vue .nx .nt{font-family:var(--mono);font-size:9.5px;color:var(--text3);white-space:nowrap}

/* Bandeau live (mobile seulement — planche 05a).
   NON COLLANT — invariant. Il est POSITION 1 du flux ① (« épinglé en tête » au sens de la
   SPEC = premier du flux, jamais `position:sticky`) : visible à l'arrivée, il défile
   ensuite naturellement. Le `position:sticky;top:calc(58px + safe-area);z-index:6` de la
   revue R5 a été RETIRÉ. Mesuré en Chromium : il n'épinglait RIEN — le scrollport du
   bandeau est #one-main (overflow-y:auto) qui ne déborde jamais, c'est le DOCUMENT qui
   scrolle ⇒ sticky ne s'engage pas. Son `top` ne produisait qu'un DÉPLACEMENT constant
   vers le bas (+58px sans encoche, +105px avec) qui enfonçait le bandeau DANS la carte
   Capital et masquait le total consolidé (constat founder). Re-régler `top` ne corrige
   rien (top:0 ⇒ plus de déplacement, mais toujours aucun épinglage) et si #one-main
   venait à déborder, sticky flotterait pour de bon au-dessus du contenu : dans les deux
   régimes il est faux ici — ne JAMAIS le re-sortir du flux. */
.one-livepin{display:none}
@media (max-width:1023.98px){
  #space-vue .one-livepin.on{
    display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;
    background:var(--bg2);border:1px solid rgba(239,68,68,.35);border-left:3px solid var(--red);
    border-radius:var(--radius);padding:9px 12px;margin:0 0 14px;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;
  }
  #space-vue .one-livepin .lp1{font-size:13.5px;font-weight:700;color:var(--text)}
  #space-vue .one-livepin .lp2{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:2px}
  #space-vue .one-livepin .lpv{font-family:var(--mono);font-size:14px;text-align:right}
  #space-vue .one-livepin .lpv small{display:block;font-size:9px;color:var(--text3)}
}

/* ── Empilage mobile/tablette V2 ① (planche 17b/19 · acquis session 09, breakpoint
   porté à 1440 par L4/B8) ────────────────────────────────────────────────────────
   ORDRE B6 en flux document (Capital → Trades actifs → Marché → Moteurs) — IDENTIQUE
   mobile et desktop (aucun `order:` CSS). Le rail « Aujourd'hui » (fil COMPACT) coule
   SOUS la principale (position 7) < 1440px. Cibles tactiles ≥44px. Le bandeau live
   reste POSITION 1 du flux, JAMAIS collant (voir le bloc ≤1023.98px ci-dessus).
   Pur CSS : contenu/logique inchangés. */
@media (max-width:1439.98px){
  /* cibles tactiles ≥44px (lignes/mini-cards/fil/cartes moteurs = <button>). */
  #space-vue .trow{min-height:44px}
  #space-vue .mk{min-height:56px}
  #space-vue .tfe{min-height:44px}
  #space-vue .eng{min-height:44px}
  /* actions capital + navigation du drill : cible tactile ≥44px (acquis S09). */
  #space-vue .protectbtn,#space-vue .cta,#space-vue .crumb .tab{min-height:44px}
  /* « ① VUE D'ENSEMBLE » = la sortie principale d'un drill-in : ≥44px (T1). */
  #space-vue .crumb .cb{min-height:44px;display:inline-flex;align-items:center}
}
/* Compaction téléphone étroit. */
@media (max-width:640px){
  #space-vue .trow{grid-template-columns:18px minmax(0,1fr) auto;gap:9px;padding:10px 2px}
  #space-vue .cap-total{font-size:30px}
  #space-vue .drill-grid{grid-template-columns:1fr}
  /* market cards macro : le mood WORLD tient dans la cellule étroite (O1 · planche 17b). */
  #space-vue .mk.macro .mval{font-size:13px}
  #space-vue .mk.macro .mval.gold{font-size:11px}
}

/* ════════════════════════════════════════════════════════════════════════════
   ① VUE D'ENSEMBLE V2 — grammaire legacy (planches 15/16/17/17b)
   Cartes moteurs bordées + chevron · trades en lignes · market cards macro · drill-in
   régimes/SWORD · rail Guardian. Tout scopé sous #space-vue. §7 : vert/rouge = argent+
   direction ; le moteur signe (sigil/bordure), jamais la couleur d'un chiffre ; « — »
   honnête ; un chip d'état est un token de couleur, jamais une couleur PnL.
   ════════════════════════════════════════════════════════════════════════════ */
/* Titre de section (Moteurs · Trades actifs · Radar). */
#space-vue .sectt{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:600;margin:6px 0 10px;display:flex;align-items:center;gap:8px}
#space-vue .sectt .ct{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.05em;text-transform:none;font-weight:400}

/* Market cards macro (F&G / VIX / DXY / WORLD) — 4 cellules centrées, tap → ②. */
#space-vue .mk.macro{text-align:center;padding:11px 8px;min-height:58px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-width:0}
#space-vue .mk .mlab{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3)}
/* max-width:100% + ellipsis : un mood « RISK_OFF » (insécable) ne déborde jamais la cellule (O1). */
#space-vue .mk .mval{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--text);line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-vue .mk .mval.gold{color:var(--gold);font-size:14px} #space-vue .mk .mval.warn{color:var(--orange)}
#space-vue .mk .msub{font-family:var(--mono);font-size:9.5px;color:var(--text3)}
#space-vue .mk .msub .pos{color:var(--green)} #space-vue .mk .msub .neg{color:var(--red)} #space-vue .mk .msub.warn{color:var(--orange)}

/* ── L2 · MERGE DASHBOARD LEGACY (planche 18) ────────────────────────────────────
   L1 header (ligne PnL + ligne état + SYNC) · L2 jauge F&G 5 zones · L5 signaux
   actifs · L6 tuiles on-chain. §7 : vert/rouge = argent + direction seulement ; l'état
   d'une métrique on-chain est un TOKEN de couleur porté par son TAG (la valeur reste
   neutre), jamais une couleur de PnL. */
/* L1 — ligne PnL legacy « 1.11 CHF PnL — 1 position — −15.34 net réalisé · cumulé — 182W/188L (49%) ». */
#space-vue .cap-legacy{font-family:var(--mono);font-size:11.5px;color:var(--text2);margin-top:6px;line-height:1.6}
#space-vue .cap-legacy .pos{color:var(--green)} #space-vue .cap-legacy .neg{color:var(--red)}
#space-vue .cap-legacy .mut{color:var(--text3)}
#space-vue .cap-legacy .sep{color:var(--text3);margin:0 2px}
/* Portée explicite de la ligne héritée (wallet principal ≠ total consolidé 2 wallets). */
#space-vue .cap-legacy-scope{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);border:1px solid var(--border2);border-radius:4px;padding:1px 6px;cursor:help;white-space:nowrap}
/* L1 — ligne d'état « ACTIF — 11 actifs — prochain scoring 19:00 » (token d'état). */
#space-vue .cap-state{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;color:var(--text3);margin-top:4px;cursor:help}
#space-vue .cap-state.ok{color:var(--green)} #space-vue .cap-state.warn{color:var(--orange)} #space-vue .cap-state.neg{color:var(--red)}
#space-vue .cap-state.mut{color:var(--text3)}
/* L1 — bouton SYNC (rafraîchissement, jamais du capital) + marqueur d'échec honnête. */
#space-vue .synb{font-family:var(--mono);font-size:9px;letter-spacing:.14em;padding:4px 10px;border-radius:6px;border:1px solid var(--gold-dim);background:var(--gold-wash);color:var(--gold);cursor:pointer;min-height:28px;margin-left:10px}
#space-vue .synb:hover:not(:disabled){border-color:var(--gold)}
#space-vue .synb:disabled{opacity:.55;cursor:progress}
#space-vue .syn-err{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--red);margin-left:6px;cursor:help}

/* L2 — jauge Fear & Greed 5 zones (drawer sous les market cards). */
#space-vue .fng{margin-top:8px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-inner);padding:12px 14px}
#space-vue .fng-head{display:flex;align-items:baseline;gap:8px}
#space-vue .fng-head .fng-val{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--text);line-height:1}
#space-vue .fng-head .fng-cls{font-family:var(--mono);font-size:11px;color:var(--text2);letter-spacing:.04em}
#space-vue .fng-head .fng-trend{font-size:12px;color:var(--gold);margin-left:auto;cursor:help}
#space-vue .fng-bar{position:relative;height:8px;border-radius:4px;margin:12px 0 6px;background:linear-gradient(90deg,#EF4444 0%,#F59E0B 25%,#EAB308 45%,#84CC16 65%,#22C55E 100%)}
#space-vue .fng-marker{position:absolute;top:-4px;width:3px;height:16px;border-radius:2px;background:var(--text);transform:translateX(-1.5px);box-shadow:0 0 0 2px var(--bg2)}
#space-vue .fng-zones{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));font-family:var(--mono);font-size:8.5px;letter-spacing:.02em;color:var(--text3);gap:2px}
#space-vue .fng-zones span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
#space-vue .fng-zones span:first-child{text-align:left} #space-vue .fng-zones span:last-child{text-align:right}
#space-vue .fng-zones span.on{color:var(--gold)}
#space-vue .fng-src{font-family:var(--mono);font-size:8.5px;color:var(--text3);letter-spacing:.02em;margin-top:8px}
#space-vue .fng-more{display:block;width:100%;text-align:left;margin-top:10px;padding:8px 0 0;border:none;border-top:1px solid var(--border);background:none;font-family:var(--mono);font-size:10px;color:var(--text3);cursor:pointer;min-height:32px}
#space-vue .fng-more:hover{color:var(--gold)}
#space-vue .mk.macro.on{border-color:var(--gold-dim);background:var(--gold-wash)}

/* L5 — SIGNAUX ACTIFS : une ligne par source, tap → ② Marchés. */
#space-vue .sigs{display:flex;flex-direction:column}
#space-vue .sigl{display:grid;grid-template-columns:96px minmax(0,auto) minmax(0,1fr) 14px;gap:10px;align-items:center;padding:10px 4px;border-top:1px solid var(--border);background:none;color:inherit;font:inherit;text-align:left;width:100%;cursor:pointer}
#space-vue .sigl:first-child{border-top:none}
#space-vue .sigl:hover{background:rgba(255,255,255,.02)}
#space-vue .sigl .sl2{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
#space-vue .sigl .sv2{font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-vue .sigl .sv2.warn{color:var(--orange)} #space-vue .sigl .sv2.mut{color:var(--text3)}
#space-vue .sigl .sn2{font-family:var(--mono);font-size:9.5px;color:var(--text3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-vue .sigl .chev{color:var(--text3);font-size:14px;line-height:1;justify-self:end}
@media (max-width:640px){
  /* 3 colonnes, la valeur au-dessus de sa note (placement explicite : aucune ligne
     implicite parasite, le chevron reste aligné sur les deux lignes). */
  #space-vue .sigl{grid-template-columns:82px minmax(0,1fr) 14px;row-gap:2px}
  #space-vue .sigl .sl2{grid-column:1;grid-row:1 / 3;align-self:center}
  #space-vue .sigl .sv2{grid-column:2;grid-row:1}
  #space-vue .sigl .sn2{grid-column:2;grid-row:2}
  #space-vue .sigl .chev{grid-column:3;grid-row:1 / 3;align-self:center}
}

/* L6 — 8 tuiles on-chain CryptoQuant : 4 colonnes desktop, 2 en mobile. Le TAG porte
   l'état (ok/warn/alert/fair/neutral/na) ; la VALEUR reste neutre (§7). */
#space-vue .oct-grid{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px}
@media (max-width:640px){ #space-vue .oct-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
#space-vue .mk.oct{text-align:left;padding:9px 10px;min-height:56px}
#space-vue .mk.oct .ocv{font-size:13px;color:var(--text)}
#space-vue .mk.oct .msub{font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;margin-top:2px;white-space:normal}
#space-vue .ost-ok{color:var(--green)} #space-vue .ost-warn{color:var(--orange)}
#space-vue .ost-alert{color:var(--red)} #space-vue .ost-fair{color:var(--gold)}
#space-vue .ost-neutral{color:var(--text3)} #space-vue .ost-na{color:var(--text3)}
#space-vue .ost-stale{color:var(--orange)}
#space-vue .ocnote{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.02em;margin-top:8px;line-height:1.5}
/* L4 — chips de protection d'une ligne de trade (SL % · Trail · Ext) : état, pas PnL. */
#space-vue .trow .pchip{font-family:var(--mono);font-size:9px;letter-spacing:.04em;padding:1px 6px;border-radius:4px;border:1px solid var(--border2);color:var(--text2);white-space:nowrap}

/* Cartes moteurs (grille 2×2 desktop, empilées mobile) — bordure gauche 3px moteur. */
#space-vue .engs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:640px){ #space-vue .engs{grid-template-columns:1fr} }
#space-vue .eng{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:var(--radius-inner);padding:12px 14px;text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;display:block}
#space-vue .eng:hover{border-color:var(--border2);background:var(--bg3)}
#space-vue .eng.shield{border-left-color:var(--shield)} #space-vue .eng.sword{border-left-color:var(--sword)}
#space-vue .eng.cockpit{border-left-color:var(--cockpit)} #space-vue .eng.carry{border-left-color:var(--carry)}
#space-vue .ehd{display:flex;align-items:center;gap:8px;margin-bottom:9px}
#space-vue .ehd .en{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text)}
#space-vue .ehd .chev{margin-left:auto;color:var(--text3);font-size:15px;line-height:1}
#space-vue .edge-chip{font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;padding:2px 7px;border-radius:var(--radius-chip);border:1px solid var(--border2);color:var(--text3);white-space:nowrap}
#space-vue .edge-chip.live{color:var(--green);border-color:rgba(47,163,127,.4)}
#space-vue .edge-chip.paper{color:var(--orange);border-color:rgba(245,158,11,.4)}
#space-vue .edge-chip.warn{color:var(--orange);border-color:rgba(245,158,11,.4)}
#space-vue .edge-chip.off{color:var(--red);border-color:rgba(239,68,68,.35)}
#space-vue .edge-chip.dim{color:var(--text3);border-color:var(--border2)}
#space-vue .eng .el{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px;font-family:var(--mono);font-size:10.5px;color:var(--text3)}
#space-vue .eng .el span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .eng .el b{color:var(--text2);font-weight:600}
#space-vue .eng .el b.pos{color:var(--green)} #space-vue .eng .el b.neg{color:var(--red)}
#space-vue .eng-basis{font-family:var(--mono);font-size:8.5px;color:var(--text3);letter-spacing:.02em;margin-top:8px;padding-top:7px;border-top:1px solid var(--border)}

/* Trades actifs — lignes compactes bordées par moteur, tap → ③. */
#space-vue .trow{display:grid;grid-template-columns:18px 1fr auto;gap:12px;align-items:center;padding:11px 6px;border-top:1px solid var(--border);border-left:2px solid transparent;text-align:left;width:100%;background:none;color:inherit;font:inherit;cursor:pointer}
#space-vue .trow:first-of-type{border-top:none}
#space-vue .trow:hover{background:rgba(255,255,255,.02)}
#space-vue .trow.eng-shield{border-left-color:var(--shield)} #space-vue .trow.eng-sword{border-left-color:var(--sword)}
#space-vue .trow.eng-cockpit{border-left-color:var(--cockpit)} #space-vue .trow.eng-carry{border-left-color:var(--carry)}
#space-vue .trow.eng-paper{border-left-color:var(--border2)}
#space-vue .trow .ta{font-size:13.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#space-vue .rdot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
#space-vue .rdot.green{background:var(--green)} #space-vue .rdot.red{background:var(--red)} #space-vue .rdot.gray{background:var(--text3)}
#space-vue .trow .tm{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#space-vue .trow .tv{font-family:var(--mono);font-size:13px;text-align:right;white-space:nowrap}
#space-vue .trow .tv small{display:block;font-size:10px;color:var(--text3);font-weight:400}
#space-vue .timer{font-family:var(--mono);font-size:9px;letter-spacing:.04em;padding:1px 7px;border-radius:4px;border:1px solid rgba(245,158,11,.35);color:var(--orange)}
#space-vue .timer.hot{border-color:rgba(239,68,68,.45);color:var(--red)}

/* ── Drill-in moteurs (planche 17) : breadcrumb + onglets + détail 2 colonnes ── */
#space-vue .crumb{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--text3);display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 0 14px;max-width:1480px;margin:0 auto}
#space-vue .crumb .cb{background:none;border:none;color:var(--gold);font:inherit;cursor:pointer;padding:0;letter-spacing:.06em}
#space-vue .crumb .cb:hover{color:#D4B158}
#space-vue .crumb .sep{color:var(--text3)}
#space-vue .crumb b{color:var(--text2);font-weight:600}
#space-vue .crumb .tab{font-family:var(--mono);font-size:9px;letter-spacing:.05em;padding:5px 11px;border-radius:16px;border:1px solid var(--border);color:var(--text2);background:var(--bg2);cursor:pointer;min-height:30px;display:inline-flex;align-items:center;gap:5px}
#space-vue .crumb .tab.on{color:var(--gold);border-color:var(--gold);background:var(--gold-wash)}
#space-vue .crumb .tab:hover{border-color:var(--border2)}
#space-vue .drill-grid{display:grid;gap:16px;grid-template-columns:1fr;max-width:1480px;margin:0 auto}
@media (min-width:900px){ #space-vue .drill-grid.two{grid-template-columns:1fr 1fr} }
#space-vue .drill-col{display:flex;flex-direction:column;gap:12px;min-width:0}

/* Stats compact 4 KPIs. */
#space-vue .kpis3{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
#space-vue .kpi3{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-inner);padding:9px 10px;min-width:0}
#space-vue .kpi3 .kl{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}
/* min-width:0 (piste) + ellipsis : un « Total » all-time à plusieurs chiffres ($1,234.56,
   insécable) ne peut pas déborder la grille 4× (parité avec .met/.eng .el — pas de scroll-x). */
#space-vue .kpi3 .kv{font-family:var(--mono);font-size:14px;margin-top:3px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .kpi3 .kv.pos{color:var(--green)} #space-vue .kpi3 .kv.neg{color:var(--red)}
#space-vue .kpi3 .kv small{font-size:9px;color:var(--text3)}

/* Régime card SHIELD (score bar + 4 métriques + rationale + PROTECT + overlay GELÉ). */
#space-vue .regc{position:relative;background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:var(--radius-inner);padding:13px 14px}
#space-vue .regc.long{border-left-color:var(--green)} #space-vue .regc.short{border-left-color:var(--red)}
#space-vue .regc.protect{border-left-color:var(--orange)} #space-vue .regc.sword{border-left-color:var(--sword)} #space-vue .regc.carry{border-left-color:var(--carry)}
#space-vue .regh{display:flex;align-items:center;justify-content:space-between;gap:8px}
#space-vue .regh .ra2{font-size:14px;font-weight:700;color:var(--text)}
#space-vue .regh .rp{font-family:var(--mono);font-size:11px;color:var(--text3);margin-left:8px}
#space-vue .regbadge{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;padding:2px 8px;border-radius:4px}
#space-vue .regbadge.long{color:var(--green);background:rgba(34,197,94,.12)} #space-vue .regbadge.short{color:var(--red);background:rgba(239,68,68,.12)}
#space-vue .regbadge.protect{color:var(--orange);background:rgba(245,158,11,.12)} #space-vue .regbadge.flat{color:var(--text3);background:rgba(107,114,128,.14)}
#space-vue .convb{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.05em;padding:2px 8px;border-radius:4px;color:var(--sword);background:rgba(78,156,208,.12)}
#space-vue .regbar{height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;margin:10px 0}
#space-vue .regbar i{display:block;height:100%;border-radius:3px}
#space-vue .metgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
#space-vue .met{background:var(--bg3);border-radius:6px;padding:8px 9px;min-width:0}
#space-vue .met .ml2{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
#space-vue .met .mv2{font-family:var(--mono);font-size:12px;margin-top:3px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .met .mv2.pos{color:var(--green)} #space-vue .met .mv2.neg{color:var(--red)}
#space-vue .rat{border-left:2px solid var(--border2);padding:4px 0 4px 10px;margin-top:10px;font-size:11.5px;color:var(--text2);line-height:1.5}
#space-vue .protectbtn{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;padding:4px 10px;border-radius:6px;border:1px solid rgba(245,158,11,.4);background:rgba(245,158,11,.06);color:var(--orange);cursor:pointer;min-height:30px}
#space-vue .protectbtn:hover{background:rgba(245,158,11,.12)}
#space-vue .frozen-ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,10,15,.72);border-radius:var(--radius-inner);font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--orange);font-weight:600;pointer-events:none}
#space-vue .tpill{font-family:var(--mono);font-size:9px;letter-spacing:.04em;padding:2px 8px;border-radius:4px;border:1px solid var(--border2);color:var(--text2);margin:0 6px 6px 0;display:inline-block}
#space-vue .cta{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.04em;padding:6px 12px;border-radius:7px;border:1px solid var(--gold-dim);background:var(--gold-wash);color:var(--gold);cursor:pointer;min-height:32px;display:inline-flex;align-items:center}
#space-vue .cta:hover{border-color:var(--gold)}
#space-vue .cta.ghost{color:var(--text2);border-color:var(--border);background:none}
#space-vue .cta.ghost:hover{color:var(--text);border-color:var(--border2)}

/* Radar SWORD — candidats + raisons de skip + planchers affichés. */
#space-vue .pnr{display:grid;grid-template-columns:84px 1fr 74px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--border);font-size:11.5px}
#space-vue .pnr:first-of-type{border-top:none}
#space-vue .pnr .pl{font-weight:600;color:var(--text)}
#space-vue .pnr .pval{color:var(--text2);font-family:var(--mono);font-size:10.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .pnr .page{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-align:right;color:var(--text3)}
#space-vue .pnr .page.skip{color:var(--orange)} #space-vue .pnr .page.muted{color:var(--red)}
#space-vue .radar-floors{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:8px}
#space-vue .drill-note{padding:10px 14px;border:1px dashed var(--border2);border-radius:8px;font-size:11px;color:var(--text3);line-height:1.5}
#space-vue .drill-empty{color:var(--text3);font-size:12px;padding:10px 0}

/* ── Fil « Aujourd'hui » COMPACT (B7 · planche 19) ─────────────────────────────
   1 LIGNE par événement (heure · badge type coloré · résumé tronqué · chevron) ;
   tap = déplie le détail complet ; rafales même-type/minute groupées (« REGIME ×6 ») ;
   cap 8 + lien « tout → ④ Journal ». Replié par défaut sur mobile (2 derniers + « voir
   tout »). Le badge est un token de TYPE (jamais un chiffre coloré, §7). */
#space-vue .tfeed{display:flex;flex-direction:column}
#space-vue .tfe{display:grid;grid-template-columns:42px auto 1fr 14px;gap:8px;align-items:center;padding:9px 2px;border-top:1px solid var(--border);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%}
#space-vue .tfe:first-child{border-top:none}
#space-vue .tfe:hover{background:rgba(255,255,255,.02)}
#space-vue .tfe .tft{font-family:var(--mono);font-size:10px;color:var(--text3)}
#space-vue .tfe .tbadge{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;border:1px solid var(--border);border-radius:3px;padding:1px 5px;white-space:nowrap;color:var(--text2)}
#space-vue .tfe .tbadge.orange{color:var(--orange);border-color:rgba(245,158,11,.4)}
#space-vue .tfe .tbadge.gold{color:var(--gold);border-color:var(--gold-dim)}
#space-vue .tfe .tbadge.green{color:var(--green);border-color:rgba(34,197,94,.4)}
#space-vue .tfe .tbadge.red{color:var(--red);border-color:rgba(239,68,68,.4)}
#space-vue .tfe .tbadge.gray{color:var(--text3);border-color:var(--border2)}
#space-vue .tfe .tftx{font-size:11.5px;color:var(--text2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-vue .tfe .tchev{font-size:10px;color:var(--gold);transition:transform .15s;justify-self:end}
#space-vue .tfe .tchev.on{transform:rotate(180deg)}
/* Détail déplié (tap) : chaque item du groupe sur sa propre ligne, texte complet. */
#space-vue .tfe-detail{padding:2px 2px 8px 50px;border-top:1px dashed var(--border2)}
#space-vue .tfe-detail .tfd{font-size:11.5px;color:var(--text2);padding:5px 0;line-height:1.5;word-break:break-word}
#space-vue .tfe-detail .tfd .tfdt{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-right:7px}
#space-vue .tfe-detail .tfd b{color:var(--text);font-weight:600}
#space-vue .tfe-detail .tfd .ptag{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;padding:1px 5px;border-radius:3px;border:1px solid var(--border2);margin-right:5px}
/* « voir tout » (mobile) + « tout → ④ Journal » (toujours). */
#space-vue .tfe-more{display:none;font-family:var(--mono);font-size:10px;color:var(--gold);background:none;border:none;cursor:pointer;padding:9px 2px;text-align:left;border-top:1px dashed var(--border2)}
#space-vue .tfe-all{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--text3);background:none;border:none;border-top:1px solid var(--border);cursor:pointer;padding:10px 2px 2px;text-align:left;width:100%}
#space-vue .tfe-all:hover{color:var(--gold)}

/* ✦ FAB Guardian (mobile) : ouvre la PAGE Guardian dédiée (même destination que le
   bouton ✦ du header + l'onglet ⑤). Masqué ≥1024px (le header porte le bouton ✦). */
#space-vue .vue-gfab{display:none}
@media (max-width:1023.98px){
  #space-vue .vue-gfab{display:flex;position:fixed;right:16px;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:40;width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;border:1px solid var(--gold-dim);background:var(--bg2);color:var(--gold);font-size:20px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.4)}
}
/* Fil compact replié par défaut < 1440px : seuls les 2 groupes récents visibles ;
   les groupes .fe-extra (et leur détail déplié) apparaissent quand « voir tout »
   (.feed-open) est activé. Desktop ≥1440px : tout visible (cap 8), pas de « voir tout ». */
@media (max-width:1439.98px){
  #space-vue .tfeed .fe-extra{display:none}
  #space-vue .tfeed .fe-extra + .tfe-detail{display:none}
  #space-vue .tfeed.feed-open .fe-extra{display:grid}
  #space-vue .tfeed.feed-open .fe-extra + .tfe-detail{display:block}
  #space-vue .tfe-more{display:block}
}

/* ════════════════════════════════════════════════════════════════════════════
   ③ TRADING · DÉCISION & MÉTRIQUES — Session 03 (planche 04)
   Centre de contrôle PAR ACTIF. Tout scopé sous #space-trading (sauf la modale de
   confirmation, position:fixed). Anatomie relevée de la référence visuelle
   (mid-fidelity : structure contractuelle, tokens ONE). Règles §7 : vert/rouge =
   argent+direction seulement ; le moteur signe (sigil/chip), jamais la couleur d'un
   chiffre ; « — » honnête ; chiffres en mono tabulaire.
   ════════════════════════════════════════════════════════════════════════════ */
#space-trading .pos{color:var(--green)}
#space-trading .neg{color:var(--red)}
#space-trading .mut{color:var(--text3)}
#space-trading .gold{color:var(--gold)}

/* Cartes + entêtes (parité #space-vue). */
#space-trading .card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}
#space-trading .card h3{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0 0 12px}
#space-trading .card h3 .ct{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.04em;text-transform:none;font-weight:400}
#space-trading .trd-empty{color:var(--text3);font-size:12px;padding:6px 0}

/* Strip « VUE PAR ACTIF » + 3 chips d'état. */
#space-trading .trd-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:1420px;margin:0 auto 12px;font-family:var(--mono);font-size:10px}
#space-trading .trd-strip-lbl{letter-spacing:.16em;color:var(--text3)}
#space-trading .trd-asset-sel{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--gold);background:var(--bg3);border:1px solid var(--gold-dim);border-radius:6px;padding:6px 10px;min-height:36px;cursor:pointer}
#space-trading .trd-chip{font-family:var(--mono);font-size:10px;letter-spacing:.05em;padding:6px 11px;border-radius:16px;border:1px solid var(--border);color:var(--text2);background:var(--bg2);min-height:34px;display:inline-flex;align-items:center}
#space-trading .trd-chip.on{color:var(--gold);border-color:var(--gold);background:var(--gold-wash)}
#space-trading a.trd-chip:hover{border-color:var(--border2);color:var(--text)}

/* Pilotage — PAPER/LIVE/AUTO + panic (armement ≤1 clic). */
#space-trading .trd-pilot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:1420px;margin:0 auto 14px}
#space-trading .trd-pill{font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:5px 10px;border-radius:6px;border:1px solid var(--border);color:var(--text3);white-space:nowrap}
#space-trading .trd-pill.mode{color:var(--text2)}
#space-trading .trd-pill.paper{color:var(--orange);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.06)}
#space-trading .trd-pill.live{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
#space-trading .trd-btn{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:7px 12px;border-radius:7px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:38px}
#space-trading .trd-btn:hover{border-color:var(--gold-dim)}
#space-trading .trd-btn.off{color:var(--text3)}
#space-trading .trd-btn.armed{color:var(--red);border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.09)}
#space-trading .trd-btn.danger{color:var(--red);border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.1)}

/* Grille 3 colonnes (400 / 1fr / 372) — planche 04. */
#space-trading .trd-grid{display:grid;gap:16px;grid-template-columns:1fr;max-width:1420px;margin:0 auto}
#space-trading .trd-col{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (min-width:1024px){ #space-trading .trd-grid{grid-template-columns:400px minmax(0,1fr) 372px} }
@media (min-width:1024px) and (max-width:1279.98px){ #space-trading .trd-grid{grid-template-columns:340px minmax(0,1fr) 320px} }

/* ── Décision · biais ── */
#space-trading .trd-chiprow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
#space-trading .trd-mchip{font-family:var(--mono);font-size:9px;letter-spacing:.1em;border:1px solid var(--border2);color:var(--text2);padding:3px 8px;border-radius:4px}
#space-trading .trd-edge{font-family:var(--mono);font-size:9px;letter-spacing:.12em;padding:3px 9px;border-radius:4px;border:1px solid var(--border);color:var(--text3)}
#space-trading .trd-edge.ok{color:var(--green);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}
#space-trading .trd-edge.no{color:var(--text3)}
#space-trading .trd-figee{color:var(--orange);letter-spacing:.08em;margin-left:6px;white-space:nowrap}
#space-trading .trd-recobig{font-size:22px;font-weight:800;margin-top:12px;letter-spacing:.01em;display:flex;align-items:baseline;gap:8px}
#space-trading .trd-recobig.pos{color:var(--green)} #space-trading .trd-recobig.neg{color:var(--red)} #space-trading .trd-recobig.mut{color:var(--text)}
#space-trading .trd-score{font-family:var(--mono);font-weight:500;font-size:16px;color:var(--text3)}
#space-trading .trd-sco-arw{font-family:var(--mono);font-size:11px;font-weight:600}
#space-trading .trd-conf{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.06em;margin-top:3px}
#space-trading .trd-reasons{margin-top:9px}
#space-trading .trd-blt{display:flex;gap:8px;font-size:11.5px;color:var(--text2);padding:3px 0}
#space-trading .trd-blt::before{content:"‣";color:var(--gold)}
/* Jauge SHORT↔LONG (baissier gauche / haussier droite). */
#space-trading .trd-bias{position:relative;height:6px;border-radius:3px;margin:15px 0 5px;background:linear-gradient(90deg,#B8432E 0%,#7a3a28 30%,#2a2a30 46%,#2a2a30 54%,#1f5c42 70%,var(--shield) 100%)}
#space-trading .trd-bias i{position:absolute;top:-4px;width:3px;height:14px;background:var(--text);border-radius:1px;transform:translateX(-50%)}
#space-trading .trd-bias-lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.12em}
/* 5 sub-scores bipolaires (centrés zéro). */
#space-trading .trd-subs{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}
#space-trading .trd-ss{display:grid;grid-template-columns:98px 1fr 46px;gap:10px;align-items:center;padding:5px 0;font-family:var(--mono);font-size:10.5px}
#space-trading .trd-sn{color:var(--text2)}
#space-trading .trd-sn em{font-style:normal;color:var(--text3);font-size:9px;margin-left:4px}
#space-trading .trd-sb{position:relative;height:4px;background:var(--bg3);border-radius:2px}
#space-trading .trd-sb i{position:absolute;top:0;bottom:0;border-radius:2px}
#space-trading .trd-ctr{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--border2)}
#space-trading .trd-sv{text-align:right;color:var(--text)}
#space-trading .trd-sv.pos{color:var(--green)} #space-trading .trd-sv.neg{color:var(--red)}
#space-trading .trd-fac-arw{position:absolute;top:-6px;transform:translateX(-50%);font-size:11px;font-weight:700;pointer-events:none}
#space-trading .trd-sb .trd-fac-arw{top:-7px}

/* ── Positionnement ── */
#space-trading .trd-pnr{display:grid;grid-template-columns:104px 1fr auto;gap:9px;padding:8px 0;border-top:1px dashed var(--border2);font-size:11.5px;align-items:center}
#space-trading .trd-pnr:first-of-type{border-top:none}
#space-trading .trd-pnr.anc{opacity:.55}
#space-trading .trd-pl{color:var(--text3);font-size:10.5px}
#space-trading .trd-pval{font-family:var(--mono);font-size:11px;color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
#space-trading .trd-pval b{color:var(--text);font-weight:600}
#space-trading .trd-psub{font-size:10px;color:var(--text3);font-family:var(--mono)}
#space-trading .trd-psub.pos{color:var(--green)} #space-trading .trd-psub.neg{color:var(--red)}
#space-trading .trd-page{font-family:var(--mono);font-size:9px;color:var(--text3);white-space:nowrap;text-align:right}
#space-trading .trd-pdiv{font-size:9px;color:var(--gold);background:var(--gold-wash);border:1px solid var(--gold-dim);border-radius:4px;padding:1px 5px}
#space-trading .lsbar{display:inline-flex;width:88px;height:6px;border-radius:3px;overflow:hidden;background:var(--bg3);flex-shrink:0}
#space-trading .lsbar i{height:6px;flex:0 0 auto}
#space-trading .lsbar .lsl{background:#2c7a45} #space-trading .lsbar .lss{background:#8f3530}
#space-trading .tkbar{position:relative;display:inline-block;width:64px;height:6px;border-radius:3px;background:var(--bg3);flex-shrink:0}
#space-trading .tkbar .ctr{position:absolute;left:50%;top:-2px;width:1px;height:10px;background:var(--border2)}
#space-trading .tkbar .tks,#space-trading .tkbar .tkb{position:absolute;top:0;height:6px}
#space-trading .tkbar .tks{left:0;background:#8f3530;border-radius:3px 0 0 3px}
#space-trading .tkbar .tkb{right:0;background:#2c7a45;border-radius:0 3px 3px 0}

/* ── Squeeze ── */
#space-trading .trd-sqz-nd{font-family:var(--mono);font-size:10.5px;color:var(--text3);padding:6px 0}
#space-trading .trd-sqz-note{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.03em;margin-bottom:8px}
#space-trading .trd-sqz-row{display:grid;grid-template-columns:100px 1fr 34px;gap:10px;align-items:center;padding:4px 0;font-family:var(--mono);font-size:10.5px}
#space-trading .trd-sqz-lab{color:var(--text2)}
#space-trading .trd-sqz-track{position:relative;height:5px;background:var(--bg3);border-radius:3px;overflow:hidden}
#space-trading .trd-sqz-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px}
#space-trading .trd-sqz-fill.lo{background:var(--text3)} #space-trading .trd-sqz-fill.md{background:var(--orange)} #space-trading .trd-sqz-fill.hi{background:var(--red)} #space-trading .trd-sqz-fill.na{background:transparent}
#space-trading .trd-sqz-val{text-align:right;color:var(--text)}
#space-trading .trd-sqz-val.hi{color:var(--red)} #space-trading .trd-sqz-val.md{color:var(--orange)} #space-trading .trd-sqz-val.na{color:var(--text3)}
#space-trading .trd-sqz-meta,#space-trading .trd-sqz-conc,#space-trading .trd-sqz-ctx,#space-trading .trd-sqz-stale{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:7px;line-height:1.6}
#space-trading .trd-sqz-conc.neg{color:var(--red)}

/* ── DeepDive ── */
#space-trading .trd-tf{display:flex;gap:4px;flex-wrap:wrap}
#space-trading .trd-tf button{font-family:var(--mono);font-size:9px;padding:4px 9px;border:1px solid var(--border);border-radius:4px;color:var(--text3);background:var(--bg);cursor:pointer;min-height:28px}
#space-trading .trd-tf button.on{color:var(--gold);border-color:var(--gold-dim);background:var(--gold-wash)}
#space-trading .trd-chart{height:170px;margin:12px 0 2px;position:relative}
#space-trading .trd-chart svg{display:block;width:100%;height:100%}
#space-trading .trd-warnbox{margin:12px 0 2px;padding:9px 12px;border-radius:8px;font-size:11.5px;line-height:1.5;border:1px solid var(--border2);color:var(--text2)}
#space-trading .trd-warnbox.active{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.07);color:#ff8a82}
#space-trading .trd-warnbox.soon{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.06);color:var(--orange)}
#space-trading .trd-warnbox.far{border-color:var(--border2);color:var(--text2)}
#space-trading .trd-dd{margin-top:6px}
#space-trading .trd-dmet{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px dashed var(--border2);font-size:12px;color:var(--text2);align-items:baseline}
#space-trading .trd-dmet:first-child{border-top:none}
#space-trading .trd-dmet .v{font-family:var(--mono);font-size:11.5px;color:var(--text);text-align:right}
#space-trading .trd-dmet .v.pos{color:var(--green)} #space-trading .trd-dmet .v.neg{color:var(--red)}
#space-trading .trd-volgauge{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;margin:2px 0 2px}
#space-trading .trd-volgauge i{display:block;height:100%;background:var(--gold);border-radius:2px}
#space-trading .trd-trkbox{margin-top:12px;padding:10px 12px;border:1px dashed var(--border2);border-radius:8px;font-size:12px}
#space-trading .trd-th{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--text3);text-transform:uppercase;margin-bottom:5px}
#space-trading .trd-trkbox b{font-family:var(--mono)}
#space-trading .trd-trknote{font-size:11px;color:var(--text3);font-style:italic;margin-top:3px}

/* ── SWORD · triggers ── */
#space-trading .trd-sword{margin-top:12px;padding:10px 12px;border:1px dashed var(--border2);border-radius:8px}
#space-trading .card#trd-sword .trd-sword{margin-top:0;border:none;padding:0}
#space-trading .trd-sword-note{font-size:11px;color:var(--text3);line-height:1.55;margin-bottom:7px}
#space-trading .trd-sword-banner{font-size:11px;color:var(--red);margin-bottom:6px}
#space-trading .trd-trg{display:grid;grid-template-columns:1fr 66px 62px;gap:8px;padding:7px 0;border-top:1px dashed var(--border2);align-items:baseline}
#space-trading .trd-tn{font-size:10.5px;color:var(--text2)}
#space-trading .trd-tv{font-family:var(--mono);font-size:10.5px;text-align:right;color:var(--text)}
#space-trading .trd-tst{font-family:var(--mono);font-size:9px;text-align:right}
#space-trading .trd-tst .pos{color:var(--green)} #space-trading .trd-tst .neg{color:var(--red)} #space-trading .trd-tst .gold{color:var(--gold)} #space-trading .trd-tst .mut{color:var(--text3)}
#space-trading .trd-tst b{font-weight:700}
#space-trading .trd-sword-scan{font-family:var(--mono);font-size:9px;color:var(--text3);margin-top:9px;padding-top:8px;border-top:1px dashed var(--border2);line-height:1.6}

/* ── Ticket manuel ── */
#space-trading .trd-tix-note{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-bottom:10px}
#space-trading .trd-params{display:flex;gap:10px;margin-bottom:8px}
#space-trading .trd-fld{flex:1;min-width:0}
#space-trading .trd-fld label{display:block;font-size:10px;color:var(--text3);margin-bottom:4px}
#space-trading .trd-fld input,#space-trading .trd-fld select{width:100%;font-family:var(--mono);font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border2);border-radius:6px;padding:8px 9px;min-height:38px}
#space-trading .trd-risk{margin-bottom:8px}
#space-trading .trd-seg{display:inline-flex;border:1px solid var(--border2);border-radius:6px;overflow:hidden;margin-bottom:8px}
#space-trading .trd-seg button{font-family:var(--mono);font-size:10px;padding:6px 12px;background:var(--bg);color:var(--text3);border:none;cursor:pointer;min-height:32px}
#space-trading .trd-seg button.on{background:var(--gold-wash);color:var(--gold)}
#space-trading .trd-tg{display:flex;gap:16px;margin:6px 0 4px}
#space-trading .trd-toggle{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text2);cursor:pointer}
#space-trading .trd-tixprev{margin-top:8px}
#space-trading .trd-tixprev-h{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--text3);margin-bottom:4px}
#space-trading .trd-bigbtns{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
#space-trading .trd-exec{border:none;cursor:pointer;color:#141008;font-family:var(--font);font-size:13px;font-weight:700;letter-spacing:.06em;padding:13px;border-radius:9px;text-transform:uppercase}
#space-trading .trd-exec small{font-size:9px;font-weight:600;text-transform:none;opacity:.8}
#space-trading .trd-exec.long{background:linear-gradient(135deg,#2FA37F,#22C55E)}
#space-trading .trd-exec.short{background:linear-gradient(135deg,#B8432E,#EF4444)}
#space-trading .trd-exec:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}
#space-trading .trd-block{margin-top:8px;font-size:11px;color:#ff5252}
#space-trading .trd-arm{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
#space-trading .trd-arm .trd-btn{flex:1;min-width:130px}
#space-trading .trd-exec-note{margin-top:8px;text-align:center;font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.05em}

/* ── Modale de confirmation (portée verbatim de warroom · position:fixed) ── */
#space-trading .trd-cmodal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:60}
#space-trading .trd-cmodal.hidden{display:none}
#space-trading .trd-cmodal .cbox{background:var(--bg2);border:1px solid rgba(239,68,68,.4);border-radius:12px;padding:18px;width:min(440px,92vw);box-shadow:0 12px 40px rgba(0,0,0,.6);max-height:88vh;overflow-y:auto}
#space-trading .trd-cmodal .cbox.neutral{border-color:var(--gold-dim)}
#space-trading .trd-cmodal h3{font-size:13px;letter-spacing:.06em;color:var(--red);margin:0 0 12px;font-weight:700}
#space-trading .trd-cmodal .cbox.neutral h3{color:var(--gold)}
#space-trading .cm-body .cm-lvl{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:5px 0;border-bottom:1px solid var(--border)}
#space-trading .cm-body .cm-lvl span:first-child{color:var(--text3)}
#space-trading .cm-body .cm-lvl span:last-child{font-family:var(--mono);text-align:right}
#space-trading .cm-body .cm-lvl .mut{color:var(--text3)} #space-trading .cm-body .cm-lvl .neg{color:var(--red)} #space-trading .cm-body .cm-lvl .pos{color:var(--green)}
#space-trading .cm-warn{margin-top:9px;padding:8px 10px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.35);border-radius:6px;color:#ff8a82;font-size:11px;line-height:1.5}
#space-trading .cm-typed{margin-top:12px}
#space-trading .cm-typed.hidden{display:none}
#space-trading .cm-typed label{display:block;font-size:11px;color:var(--text3);margin-bottom:5px}
#space-trading .cm-typed b{color:var(--gold);font-family:var(--mono)}
#space-trading .cm-typed input{width:100%;font-family:var(--mono);font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--border2);border-radius:6px;padding:9px}
#space-trading .cm-btns{display:flex;gap:9px;margin-top:14px}
#space-trading .trd-mbtn{flex:1;padding:11px;font-size:12px;font-weight:600;border-radius:7px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:44px}
#space-trading .trd-mbtn.danger{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.12);color:#ff8a82}
#space-trading .trd-mbtn.ghost{color:var(--text2)}
#space-trading .trd-mbtn:disabled{opacity:.45;cursor:not-allowed}
#space-trading .trd-toast{margin-top:10px;font-size:11px;min-height:14px;text-align:center;font-family:var(--mono)}
/* whale « Historique » button + modal (reuses the cm overlay — no new framework) */
#space-trading .trd-whist{display:block;width:100%;margin-top:8px;padding:7px 9px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);background:var(--bg3);border:1px solid var(--border);border-radius:6px;cursor:pointer}
#space-trading .trd-whist:hover{background:var(--bg2)}
#space-trading #whale-hist-modal .cbox{width:min(560px,94vw);padding:0}
#space-trading .trd-mhead{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
#space-trading .trd-mhead h3{flex:1;margin:0;font-size:11px;line-height:1.5;letter-spacing:.02em;color:var(--gold);font-weight:600}
#space-trading .trd-mx{flex:0 0 auto;background:none;border:none;color:var(--text2);font-size:16px;line-height:1;cursor:pointer;padding:2px 4px;min-height:auto}
#space-trading .trd-mx:hover{color:var(--text)}
#space-trading .whale-hist-body{max-height:64vh;overflow-y:auto;padding:8px 16px 14px}
#space-trading .trd-mrow{display:grid;grid-template-columns:48px 1fr auto auto auto;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border);font-size:10.5px;font-family:var(--mono)}
#space-trading .trd-mrow:last-child{border-bottom:none}
#space-trading .trd-mrow .pos{color:var(--green)} #space-trading .trd-mrow .neg{color:var(--red)} #space-trading .trd-mrow .mut{color:var(--text3)}
#space-trading .trd-mdir{font-weight:700}
#space-trading .trd-mtype{color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-trading .trd-musd{color:var(--text);text-align:right}
#space-trading .trd-mwallet{color:var(--text3)}
#space-trading .trd-mage{color:var(--text3);text-align:right}
#space-trading .trd-toast.ok{color:var(--green)} #space-trading .trd-toast.err{color:var(--red)}

/* ── Session 09 · empilage mobile ③ Décision (planches 05b / 04 / 11b) ──────────
   Pile mono-colonne. SEED founder (leçon squeeze) : sur BTC la carte Squeeze remonte
   sous « Décision·biais » (AVANT DeepDive) via `order` DANS la 1ʳᵉ colonne — jamais
   enterrée sous le pli ; le hook JS `trd-seed-sqz` (renderSqueeze) n'active l'ordre
   que pour BTC. Sinon la pile suit l'ordre DOM (Décision → Positionnement → Squeeze
   → DeepDive → Ticket → SWORD). Strips = chips à défilement horizontal CONTENU (jamais
   la page). Puces de sous-vue / boutons / champs en cibles tactiles ≥44px. Pur CSS. */
@media (max-width:1023.98px){
  #space-trading .trd-strip,#space-trading .trd-pilot{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  #space-trading .trd-params{flex-direction:column;gap:8px}
  /* SEED squeeze BTC — sous Décision·biais, avant DeepDive (ordre intra-colonne 1). */
  #space-trading.trd-seed-sqz #trd-decision{order:1}
  #space-trading.trd-seed-sqz #trd-squeeze{order:2}
  #space-trading.trd-seed-sqz #trd-positioning{order:3}
  /* cibles tactiles ≥44px (puces sous-vue, sélecteurs, boutons pilotage, champs ticket). */
  #space-trading .trd-chip,#space-trading .trd-asset-sel,#space-trading .trd-btn,#space-trading .ana-compare-btn,#space-trading .ana-cmp-sel,#space-trading .trd-whist{min-height:44px}
  #space-trading .trd-tf button,#space-trading .trd-seg button{min-height:44px}
  #space-trading .trd-fld input,#space-trading .trd-fld select{min-height:44px}
}

/* ════════════════════════════════════════════════════════════════════════════
   ③ TRADE EN COURS — Session 04 (planche 10, « la vue 3 secondes »)
   Sous-vue du même espace #space-trading. Bandeau position + rail TP←mark→SL +
   Décision·biais live (chip ✓ALIGNÉ/✗CONTRE + ALERTE FLIP rouge in-page) + métriques
   Δ + chart entrée/SL/TP + événements/whales/thèse + alertes. Tout scopé, tokens ONE,
   lisible sans scroll à 1440px. Règles §7 : vert/rouge = argent+direction ; le moteur
   signe (sigil/bordure), jamais la couleur d'un chiffre ; « — » honnête.
   ════════════════════════════════════════════════════════════════════════════ */
/* Puce d'état « Trade en cours » : point rouge = position ouverte sur l'actif. */
#space-trading .trd-livedot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:6px;vertical-align:middle}
/* Sigil « papier » (pas de glyphe partagé) : marqueur neutre. */
.sig.paper{color:var(--text3);background:rgba(255,255,255,.05)}
.sig.paper::after{content:"";width:5px;height:5px;border-radius:2px;background:currentColor}
/* Badge direction (scopé — le global n'existe que sous #space-vue). */
#space-trading .dirb{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;padding:2px 7px;border-radius:4px}
#space-trading .dirb.long{color:var(--green);background:rgba(34,197,94,.12)}
#space-trading .dirb.short{color:var(--red);background:rgba(239,68,68,.12)}
#space-trading .dirb.flat{color:var(--text3);background:rgba(107,114,128,.14)}

/* Conteneurs centrés (parité trd-grid : max 1420). */
#space-trading #trd-live,#space-trading .trd-posbanner{max-width:1420px;margin:0 auto}
#space-trading #trd-live{margin-bottom:0}

/* Bandeau « positions ouvertes ailleurs ». */
#space-trading .trd-posbanner{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
#space-trading .trd-posb-lbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase}
#space-trading .trd-posb-chip{display:inline-flex;align-items:center;gap:7px;background:var(--bg2);border:1px solid var(--border2);border-radius:8px;padding:6px 10px;min-height:38px;cursor:pointer;color:inherit;font:inherit}
#space-trading .trd-posb-chip:hover{border-color:var(--gold-dim)}
#space-trading .trd-posb-a{font-size:12px;font-weight:700;color:var(--text)}
#space-trading .trd-posb-pnl{font-family:var(--mono);font-size:12px}
#space-trading .trd-posb-pnl.pos{color:var(--green)} #space-trading .trd-posb-pnl.neg{color:var(--red)}

/* Bandeau position. */
#space-trading .trd-band{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}
#space-trading .trd-band-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
#space-trading .trd-band-asset{font-size:18px;font-weight:800;color:var(--text);letter-spacing:.01em}
#space-trading .trd-lane{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;padding:2px 7px;border-radius:4px;border:1px solid var(--border2);color:var(--text3)}
#space-trading .trd-lane.live{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
#space-trading .trd-lane.paper{color:var(--orange);border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.06)}
#space-trading .trd-ws{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;padding:2px 7px;border-radius:10px;border:1px solid var(--border);color:var(--text3)}
#space-trading .trd-ws.on{color:var(--green);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.06)}
#space-trading .trd-ws.on::before{content:"●";margin-right:4px;font-size:8px}
#space-trading .trd-band-pnl{margin-left:auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end}
#space-trading .trd-band-pnl>span{font-family:var(--mono);font-size:30px;font-weight:600;line-height:1;letter-spacing:-.01em}
#space-trading .trd-band-pnl .pos{color:var(--green)} #space-trading .trd-band-pnl .neg{color:var(--red)}
#space-trading .trd-band-pnl small{font-family:var(--mono);font-size:11px;margin-top:3px}
#space-trading .trd-band-pnl small.pos{color:var(--green)} #space-trading .trd-band-pnl small.neg{color:var(--red)}
#space-trading .trd-band-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .trd-bc{display:flex;flex-direction:column;gap:3px;min-width:0}
#space-trading .trd-bck{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase}
#space-trading .trd-bcv{font-family:var(--mono);font-size:12.5px;color:var(--text);display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-trading .trd-bcv .pos{color:var(--green)} #space-trading .trd-bcv .neg{color:var(--red)} #space-trading .trd-bcv .mut{color:var(--text3)}
#space-trading .trd-durbar{position:relative;display:inline-block;width:52px;height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;flex-shrink:0}
#space-trading .trd-durbar i{position:absolute;left:0;top:0;bottom:0;background:var(--gold);border-radius:3px;min-width:2px}
#space-trading .trd-band-acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
#space-trading .trd-abtn{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;padding:9px 12px;border-radius:7px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:40px}
#space-trading .trd-abtn:hover{border-color:var(--gold-dim);color:var(--text)}
#space-trading .trd-abtn.live-long{color:var(--shield);border-color:rgba(47,163,127,.4)}
#space-trading .trd-abtn.danger{color:var(--red);border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.09)}
#space-trading .trd-band-note{margin-top:10px;font-family:var(--mono);font-size:10px;color:var(--text3)}
/* Session 06 — ligne « clôture nette maintenant » (brut · net) + chip frais, sous le PnL. */
#space-trading .trd-band-net{display:flex;align-items:baseline;gap:9px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border2);flex-wrap:wrap}
#space-trading .trd-band-netk{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--text3);text-transform:uppercase}
#space-trading .trd-band-netv{font-family:var(--mono);font-size:11.5px;color:var(--text2);display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
#space-trading .trd-band-netv .pos{color:var(--green)} #space-trading .trd-band-netv .neg{color:var(--red)} #space-trading .trd-band-netv .mut{color:var(--text3)}
#space-trading .trd-feechip{font-family:var(--mono);font-size:9.5px;color:var(--text3);border:1px solid var(--border2);border-radius:10px;padding:2px 8px;background:var(--bg3);white-space:nowrap}
/* Session 06 — valeur « BE net <prix> » affichée à côté du bouton SL → BE net. */
#space-trading .trd-be{font-family:var(--mono);font-size:10px;color:var(--gold);border:1px solid var(--gold-dim);border-radius:6px;padding:0 8px;background:var(--gold-wash);display:inline-flex;align-items:center;min-height:40px}
/* Session 06 — sheet de gestion (inputs SL/TP prix + scale-in) sous le bandeau. */
#space-trading #trd-lv-manage{max-width:1420px;margin:0 auto}
#space-trading .trd-manage{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
#space-trading .trd-manage-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}
#space-trading .trd-manage-card h4{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin:0 0 9px;display:flex;align-items:center;gap:8px}
#space-trading .trd-manage-card .live-tag{font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--red);border:1px solid rgba(239,68,68,.4);background:rgba(239,68,68,.08);border-radius:3px;padding:1px 6px}
#space-trading .trd-manage-acts{display:flex;gap:7px;margin-top:9px}
#space-trading .trd-manage-acts .trd-abtn{flex:1}
#space-trading .trd-manage-warn{font-size:10.5px;color:#ff5252;margin-top:7px;line-height:1.5}
#space-trading .trd-manage-sub{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:8px;line-height:1.5}
/* Note « autre position même actif » (audit R5) — orange par défaut, rouge si une des
   autres positions est du capital réel (live) masqué par la vue une-position-par-actif. */
#space-trading .trd-band-extra{margin-top:10px;font-family:var(--mono);font-size:10.5px;color:var(--orange);background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.3);border-radius:6px;padding:7px 10px;line-height:1.5}
#space-trading .trd-band-extra.live{color:#ff8a82;background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.35)}

/* Rail TP ← mark → SL. */
#space-trading .trd-rail-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px 16px;margin-bottom:12px}
#space-trading .trd-rail-lbls{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11px;color:var(--text2);margin-bottom:10px;gap:10px}
#space-trading .trd-rail-lbls .pos{color:var(--green)} #space-trading .trd-rail-lbls .neg{color:var(--red)} #space-trading .trd-rail-lbls .mut{color:var(--text3)}
#space-trading .trd-rail-mkl{color:var(--gold);font-weight:600}
#space-trading .trd-rail{position:relative;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(239,68,68,.28),rgba(42,42,48,.6) 45%,rgba(42,42,48,.6) 55%,rgba(34,197,94,.28))}
#space-trading .trd-rail>i{position:absolute;top:50%;transform:translate(-50%,-50%)}
#space-trading .trd-rail-sl{width:3px;height:18px;background:var(--red);border-radius:1px}
#space-trading .trd-rail-tp{width:3px;height:18px;background:var(--green);border-radius:1px}
#space-trading .trd-rail-mk{width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.18)}

/* ALERTE FLIP (bandeau rouge in-page). */
#space-trading .trd-flipbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.45);border-left:3px solid var(--red);border-radius:var(--radius);padding:11px 15px;margin-bottom:12px;font-size:12.5px;color:#ff8a82;line-height:1.5}
#space-trading .trd-flipbar b{color:var(--text)}
#space-trading .trd-flip-notif{margin-left:auto;font-family:var(--mono);font-size:10px;padding:6px 11px;border-radius:6px;border:1px solid rgba(239,68,68,.4);background:rgba(239,68,68,.08);color:#ff8a82;cursor:pointer;min-height:34px;white-space:nowrap}

/* Grille 3 colonnes de la sous-vue (parité trd-grid). */
#space-trading .trd-lv-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:1024px){ #space-trading .trd-lv-grid{grid-template-columns:400px minmax(0,1fr) 372px} }
@media (min-width:1024px) and (max-width:1279.98px){ #space-trading .trd-lv-grid{grid-template-columns:340px minmax(0,1fr) 320px} }

/* Empty state (pas de position sur l'actif). */
#space-trading .trd-lv-none{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center}
#space-trading .trd-lv-none-h{font-size:14px;color:var(--text);font-weight:600}
#space-trading .trd-lv-none-s{font-size:12px;color:var(--text3);margin-top:6px}

/* Chip ✓ALIGNÉ / ✗CONTRE. */
#space-trading .trd-align{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;padding:3px 9px;border-radius:4px;border:1px solid var(--border2);color:var(--text3)}
#space-trading .trd-align.pos{color:var(--green);border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.07)}
#space-trading .trd-align.neg{color:var(--red);border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.08)}

/* Squeeze COMPLET dans la carte biais live (Session 06 — remplace l'ancienne mini-ligne,
   réutilise squeezePanelInner ; mêmes styles .trd-sqz-* que la carte décision). */
#space-trading .trd-lv-sqz{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-trading .trd-lv-sqz-h{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--text3);text-transform:uppercase;margin-bottom:7px;display:flex;align-items:baseline;gap:8px}
#space-trading .trd-lv-sqz-h .ct{margin-left:auto;font-size:8.5px;letter-spacing:.04em;text-transform:none;color:var(--text3)}

/* Métriques live (Δ depuis l'entrée). */
#space-trading .trd-lv-mh{font-family:var(--cinzel);font-size:10px;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:14px 0 4px;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .trd-lv-mh .ct{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.04em;text-transform:none;font-weight:400}

/* Contexte du trade : thèse + événements + whales + alertes. */
#space-trading .trd-these{margin-bottom:12px}
#space-trading .trd-these-l{font-size:11.5px;color:var(--text2);padding:3px 0}
#space-trading .trd-these-l .pos{color:var(--green)} #space-trading .trd-these-l .neg{color:var(--red)} #space-trading .trd-these-l .mut{color:var(--text3)}
#space-trading .trd-evs,#space-trading .trd-whales,#space-trading .trd-alerts{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
#space-trading .trd-ev{display:grid;grid-template-columns:34px 1fr;gap:9px;padding:5px 0;font-size:11.5px;align-items:baseline}
#space-trading .trd-ev-mod{font-family:var(--mono);font-size:11px;text-align:right}
#space-trading .trd-ev-mod.pos{color:var(--green)} #space-trading .trd-ev-mod.neg{color:var(--red)}
#space-trading .trd-ev-s{color:var(--text2);min-width:0}
#space-trading .trd-whale{display:grid;grid-template-columns:52px 1fr auto;gap:8px;padding:5px 0;font-family:var(--mono);font-size:10.5px;align-items:baseline}
#space-trading .trd-whale .pos{color:var(--green)} #space-trading .trd-whale .neg{color:var(--red)} #space-trading .trd-whale .mut{color:var(--text3)}
#space-trading .trd-wsub{color:var(--text3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-trading .trd-wusd{color:var(--text2);text-align:right}
#space-trading .trd-alert{font-size:11px;line-height:1.5;padding:7px 10px;border-radius:6px;margin-top:6px}
#space-trading .trd-alert.neg{color:#ff8a82;background:rgba(239,68,68,.09);border:1px solid rgba(239,68,68,.35)}
#space-trading .trd-alert.warn{color:var(--orange);background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.3)}

/* ── Session 09 · empilage mobile ③ Trade en cours (planche 11a) ──────────────
   Pile : bandeau position → rail TP←mark→SL → alerte flip → biais live → graphique
   → contexte. Le bandeau d'actions capital (SL→BE · ±SL/TP · Fermer) PASSE À LA
   LIGNE plutôt que de défiler (jamais « Fermer » caché hors écran) et chaque bouton
   est ≥44px — les confirmations d'intention restent inchangées (§7). Pur CSS. */
@media (max-width:1023.98px){
  #space-trading .trd-posbanner{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  #space-trading .trd-band-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #space-trading .trd-band-pnl>span{font-size:26px}
  #space-trading .trd-band-acts{flex-wrap:wrap}
  #space-trading .trd-abtn{min-height:44px}
  #space-trading .trd-posb-chip{min-height:44px}
  #space-trading .trd-flip-notif{min-height:44px}
  #space-trading .trd-manage{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════════════════════════════
   ③ ANALYSE COMPLÈTE — Session 05 (planche 09, asset.html DeepDive intégral)
   3ᵉ sous-vue de #space-trading. Contexte mondial (verdict macro + F&G/VIX/DXY +
   événements pondérés) · score PROTECT n/100 + rationale + challenge ⚠ · sub-scores
   technique/fondamental/risque · chart entrée/SL/TP · cibles & risque · Pour/Contre ·
   whales · triggers · contradictions · ⇄ comparer. Tokens ONE, tout scopé. Règles §7 :
   vert/rouge = argent+direction ; PROTECT/NEUTRAL = orange (warn) ; « — » honnête.
   ════════════════════════════════════════════════════════════════════════════ */
#space-trading .warn{color:var(--orange)}
#space-trading #trd-analyse{max-width:1420px;margin:0 auto}
/* Anti-débordement horizontal : un token externe pathologiquement long (URL de source
   d'événement, narrative LLM, rationale) casse dans sa boîte au lieu de scroller la page
   (audit round 3 — défensif ; les sources réelles sont courtes). */
#space-trading .ana-macro-sum,#space-trading .ana-ev-title,#space-trading .ana-ev-desc,#space-trading .ana-ev-src,#space-trading .ana-rationale,#space-trading .ana-ch-thesis,#space-trading .ana-ch-list li,#space-trading .ana-fsummary,#space-trading .ana-contra-sum,#space-trading .ana-contra-det,#space-trading .ana-trg-sum,#space-trading .ana-wmeta{overflow-wrap:anywhere;min-width:0}
#space-trading .trd-ana-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
#space-trading .ana-head-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase}
#space-trading .ana-compare-btn{font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:6px 12px;border-radius:6px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:34px}
#space-trading .ana-compare-btn.on{color:var(--gold);border-color:var(--gold-dim);background:var(--gold-wash)}
#space-trading .ana-cmp-sel{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);background:var(--bg3);border:1px solid var(--gold-dim);border-radius:6px;padding:6px 10px;min-height:34px;cursor:pointer}

#space-trading .trd-ana-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:1024px){ #space-trading .trd-ana-grid{grid-template-columns:340px minmax(0,1fr) 360px} }
@media (min-width:1024px) and (max-width:1279.98px){ #space-trading .trd-ana-grid{grid-template-columns:300px minmax(0,1fr) 300px} }

/* Contexte mondial (gauche). */
#space-trading .ana-macro{padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}
#space-trading .ana-macro-bias{display:inline-block;font-family:var(--cinzel);font-size:13px;letter-spacing:.12em;padding:3px 10px;border:1px solid currentColor;border-radius:5px}
#space-trading .ana-macro-bias.pos{color:var(--green)} #space-trading .ana-macro-bias.neg{color:var(--red)} #space-trading .ana-macro-bias.warn{color:var(--orange)}
#space-trading .ana-macro-mood{margin-left:8px;font-family:var(--mono);font-size:10px;color:var(--text2);letter-spacing:.1em;text-transform:uppercase}
#space-trading .ana-macro-sum{margin-top:9px;font-size:12px;color:var(--text2);line-height:1.55}
#space-trading .ana-macro-time{margin-top:6px;font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.05em}
#space-trading .ana-inds{margin-bottom:12px}
#space-trading .ana-inds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
#space-trading .ana-ind{background:var(--bg3);border-radius:7px;padding:9px 6px;text-align:center}
#space-trading .ana-ind-lab{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin-bottom:3px}
#space-trading .ana-ind-val{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--text)}
#space-trading .ana-ind-chg{font-family:var(--mono);font-size:9.5px;margin-top:2px}
#space-trading .ana-ind-chg.pos{color:var(--green)} #space-trading .ana-ind-chg.neg{color:var(--red)} #space-trading .ana-ind-chg.mut{color:var(--text3)}
#space-trading .ana-event{background:var(--bg3);border-radius:7px;padding:9px 10px;margin-top:7px}
#space-trading .ana-ev-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}
#space-trading .ana-ev-sev{width:6px;height:6px;border-radius:50%;flex-shrink:0}
#space-trading .ana-ev-sev.crit{background:var(--red)} #space-trading .ana-ev-sev.high{background:var(--orange)} #space-trading .ana-ev-sev.med{background:var(--gold)} #space-trading .ana-ev-sev.low{background:var(--text3)}
#space-trading .ana-ev-cat{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--text3);text-transform:uppercase;font-weight:600}
#space-trading .ana-ev-mod{margin-left:auto;font-family:var(--mono);font-size:11px;font-weight:700}
#space-trading .ana-ev-mod.pos{color:var(--green)} #space-trading .ana-ev-mod.neg{color:var(--red)} #space-trading .ana-ev-mod.mut{color:var(--text3)}
#space-trading .ana-ev-title{font-size:12px;color:var(--text);font-weight:600;line-height:1.35;margin-bottom:3px}
#space-trading .ana-ev-desc{font-size:11px;color:var(--text2);line-height:1.45}
#space-trading .ana-ev-src{font-family:var(--mono);font-size:9px;color:var(--text3);margin-top:4px;font-style:italic}

/* Prix courant (grand header). */
#space-trading .ana-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
#space-trading .ana-price-usd{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--gold);letter-spacing:-.01em}
#space-trading .ana-price-chg{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em}
#space-trading .ana-price-chg.pos{color:var(--green)} #space-trading .ana-price-chg.neg{color:var(--red)} #space-trading .ana-price-chg.mut{color:var(--text3)}
#space-trading .ana-price-stale{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.04em}

/* Score PROTECT + rationale + challenge. */
#space-trading .ana-verdict{margin-bottom:6px}
#space-trading .ana-vmeta{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.05em;margin-bottom:8px}
#space-trading .ana-verdict-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#space-trading .ana-action{font-family:var(--cinzel);font-size:16px;letter-spacing:.14em;padding:4px 12px;border:1px solid currentColor;border-radius:6px}
#space-trading .ana-action.pos{color:var(--green)} #space-trading .ana-action.neg{color:var(--red)} #space-trading .ana-action.warn{color:var(--orange)}
#space-trading .ana-score{font-family:var(--mono);display:flex;align-items:baseline;gap:2px}
#space-trading .ana-score b{font-size:26px;font-weight:700;color:var(--text)}
#space-trading .ana-score small{font-size:11px;color:var(--text3)}
#space-trading .ana-bar{flex:1;min-width:80px;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
#space-trading .ana-bar i{display:block;height:100%;border-radius:3px}
#space-trading .ana-bar i.pos{background:var(--green)} #space-trading .ana-bar i.neg{background:var(--red)} #space-trading .ana-bar i.warn{background:var(--orange)}
#space-trading .ana-rationale{margin-top:9px;font-size:12px;color:var(--text2);line-height:1.6;font-style:italic;border-left:2px solid var(--gold-dim);padding-left:10px}
#space-trading .ana-challenge-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 13px;background:var(--bg3);border:1px solid rgba(245,158,11,.4);border-radius:7px;color:var(--orange);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;cursor:pointer;min-height:36px}
#space-trading .ana-challenge-btn:hover{background:rgba(245,158,11,.08)}
#space-trading .ana-challenge-btn:disabled{opacity:.5;cursor:not-allowed}
#space-trading .ana-challenge{background:var(--bg3);border-left:3px solid var(--orange);border-radius:8px;padding:13px 15px;margin-top:11px}
#space-trading .ana-ch-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-family:var(--cinzel);font-size:11px;letter-spacing:.1em;color:var(--orange);text-transform:uppercase;margin-bottom:11px}
#space-trading .ana-ch-meta{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.04em;text-transform:none}
#space-trading .ana-ch-thesis{font-size:12.5px;color:var(--text);line-height:1.55;margin-bottom:12px;padding:9px 11px;background:var(--bg2);border-radius:6px}
#space-trading .ana-ch-sect{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin:8px 0 4px}
#space-trading .ana-ch-list{list-style:none;padding:0;margin:0}
#space-trading .ana-ch-list li{position:relative;padding:5px 0 5px 16px;font-size:11.5px;color:var(--text2);line-height:1.45}
#space-trading .ana-ch-list li::before{content:"→";position:absolute;left:0;color:var(--orange)}
#space-trading .ana-challenge-err{margin-top:10px;font-size:11px;color:var(--orange)}
#space-trading .trd-anaerr{font-size:12px;color:var(--text2);padding:14px 0;text-align:center}
#space-trading .ana-retry-btn{margin-left:8px;font-family:var(--mono);font-size:10.5px;padding:6px 12px;border-radius:6px;border:1px solid var(--gold-dim);background:var(--gold-wash);color:var(--gold);cursor:pointer;min-height:32px}

/* Sub-scores technique / fondamental / risque. */
#space-trading .ana-subs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .ana-sub{display:flex;flex-direction:column;gap:5px}
#space-trading .ana-sub-lab{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase}
#space-trading .ana-sub-bar{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}
#space-trading .ana-sub-bar i{display:block;height:100%;border-radius:2px}
#space-trading .ana-sub-bar i.pos{background:var(--green)} #space-trading .ana-sub-bar i.neg{background:var(--red)} #space-trading .ana-sub-bar i.warn{background:var(--orange)}
#space-trading .ana-sub-num{font-family:var(--mono);font-size:14px;font-weight:700}
#space-trading .ana-sub-num.pos{color:var(--green)} #space-trading .ana-sub-num.neg{color:var(--red)} #space-trading .ana-sub-num.warn{color:var(--orange)}

/* Cibles & risque. */
#space-trading .ana-targets{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .ana-targets-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
#space-trading .ana-tcell{text-align:center}
#space-trading .ana-tlabel{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin-bottom:3px}
#space-trading .ana-tval{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text)}

/* Pour / Contre. */
#space-trading .ana-factors{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .ana-factors-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#space-trading .ana-fcol{background:var(--bg3);border-radius:7px;padding:10px}
#space-trading .ana-fcol-t{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}
#space-trading .ana-fcol.bull .ana-fcol-t{color:var(--green)} #space-trading .ana-fcol.bear .ana-fcol-t{color:var(--red)}
#space-trading .ana-fcount{font-family:var(--mono);background:var(--bg);padding:1px 6px;border-radius:3px;font-size:9px;color:var(--text2)}
#space-trading .ana-fempty{font-size:11px;color:var(--text3);font-style:italic}
#space-trading .ana-factor{background:var(--bg);border-radius:5px;border-left:2px solid;padding:6px 8px;margin-bottom:6px}
#space-trading .ana-factor.bull{border-left-color:var(--green)} #space-trading .ana-factor.bear{border-left-color:var(--red)}
#space-trading .ana-fsummary{font-size:11.5px;color:var(--text);line-height:1.4;margin-bottom:4px}
#space-trading .ana-fmeta{display:flex;gap:8px;font-family:var(--mono);font-size:9.5px;color:var(--text3)}
#space-trading .ana-fmod{font-weight:700;color:var(--gold)}

/* Positions ouvertes (du /asset). */
#space-trading .ana-positions{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
#space-trading .ana-position{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg3);border-radius:6px;padding:8px 10px;margin-top:6px}
#space-trading .ana-pos-lev{font-family:var(--mono);font-size:11px;color:var(--text2)}
#space-trading .ana-pos-pnl{font-family:var(--mono);font-size:13px;font-weight:600;margin-left:auto}
#space-trading .ana-pos-pnl.pos{color:var(--green)} #space-trading .ana-pos-pnl.neg{color:var(--red)}
#space-trading .ana-pos-meta{flex:0 0 100%;font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:2px}

/* Signaux & contradictions (droite). */
#space-trading .ana-contras{border-left:3px solid var(--orange);padding-left:10px;margin-bottom:14px}
#space-trading .ana-contras-t{color:var(--orange)}
#space-trading .ana-contra{background:var(--bg3);border-left:3px solid;border-radius:5px;padding:8px 10px;margin-top:6px}
#space-trading .ana-contra.neg{border-left-color:var(--red)} #space-trading .ana-contra.warn{border-left-color:var(--orange)} #space-trading .ana-contra.gold{border-left-color:var(--gold)}
#space-trading .ana-contra-sum{font-size:11.5px;color:var(--text);font-weight:600;line-height:1.35}
#space-trading .ana-contra-det{font-size:11px;color:var(--text2);margin-top:4px;line-height:1.45}
#space-trading .ana-whales,#space-trading .ana-triggers{margin-bottom:14px}
#space-trading .ana-whales-net{font-family:var(--mono);font-size:10.5px;color:var(--text2);margin-bottom:7px;letter-spacing:.04em}
#space-trading .ana-whales-net .pos{color:var(--green)} #space-trading .ana-whales-net .neg{color:var(--red)} #space-trading .ana-whales-net .warn{color:var(--orange)}
#space-trading .ana-whale{background:var(--bg3);border-radius:5px;padding:6px 9px;margin-top:5px}
#space-trading .ana-wrow{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px}
#space-trading .ana-wrow .pos{color:var(--green);font-weight:600} #space-trading .ana-wrow .neg{color:var(--red);font-weight:600} #space-trading .ana-wrow .mut{color:var(--text3)}
#space-trading .ana-wprio{font-size:8.5px;letter-spacing:.1em;color:var(--orange)}
#space-trading .ana-wage{margin-left:auto;font-size:9.5px;color:var(--text3)}
#space-trading .ana-wmeta{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-top:2px}
#space-trading .ana-netmod{font-family:var(--mono);font-size:10px;color:var(--text2);margin-bottom:7px}
#space-trading .ana-netmod .pos{color:var(--green);font-weight:700} #space-trading .ana-netmod .neg{color:var(--red);font-weight:700} #space-trading .ana-netmod .mut{color:var(--text3)}
#space-trading .ana-trigger{background:var(--bg3);border-radius:5px;padding:6px 9px;margin-top:5px}
#space-trading .ana-trg-head{display:flex;align-items:center;gap:8px;margin-bottom:3px}
#space-trading .ana-trg-cat{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;font-weight:600}
#space-trading .ana-trg-mod{margin-left:auto;font-family:var(--mono);font-size:11px;font-weight:700}
#space-trading .ana-trg-mod.pos{color:var(--green)} #space-trading .ana-trg-mod.neg{color:var(--red)} #space-trading .ana-trg-mod.mut{color:var(--text3)}
#space-trading .ana-trg-sum{font-size:11px;color:var(--text);line-height:1.4}

/* ⇄ Comparer (2 panneaux mini côte à côte). */
#space-trading .ana-compare-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:900px){ #space-trading .ana-compare-grid{grid-template-columns:1fr 1fr} }
#space-trading .ana-cpane{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}
#space-trading .ana-cpane-t{font-family:var(--cinzel);font-size:14px;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}
#space-trading .ana-cpane-fac{margin-top:12px}
#space-trading .ana-cpane-tg{margin-top:12px;grid-template-columns:repeat(3,1fr)}

@media (max-width:1023.98px){
  #space-trading .trd-ana-head{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  #space-trading .ana-price-usd{font-size:22px}
}

/* ════════════════════════════════════════════════════════════════════════════
   ④ JOURNAL — Session 06 (planche 13, grand livre unifié + « ce qui marche »)
   Tout scopé sous #space-journal. 3 legs RÉELS signés par sigil (COCKPIT/SHIELD/
   SWORD) ; « ce qui marche » porté verbatim de journal.html (classes .ww/.grp/…).
   Règles §7 : vert/rouge = argent+direction seulement ; le moteur signe (sigil +
   bordure gauche), jamais la couleur d'un chiffre ; « — » honnête ; Cinzel = titres.
   ════════════════════════════════════════════════════════════════════════════ */
#space-journal .pos{color:var(--green)} #space-journal .neg{color:var(--red)}
#space-journal .mut{color:var(--text3)} #space-journal .gold{color:var(--gold)}
#space-journal .jrn-wrap{max-width:1420px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
#space-journal .card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}
#space-journal .card h3{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0 0 12px}
#space-journal .card h3 .ct{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.04em;text-transform:none;font-weight:400}
#space-journal .jrn-empty{color:var(--text3);font-size:12px;padding:10px 2px}

/* Filtres (chips). */
#space-journal .jrn-filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 14px}
#space-journal .jrn-fgroup{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
#space-journal .jrn-flbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase;margin-right:2px}
#space-journal .jrn-chip{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;padding:6px 11px;border-radius:16px;border:1px solid var(--border);color:var(--text2);background:var(--bg2);min-height:34px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
#space-journal .jrn-chip .sig{width:16px;height:16px}
#space-journal .jrn-chip:hover{border-color:var(--border2);color:var(--text)}
#space-journal .jrn-chip.on{color:var(--gold);border-color:var(--gold);background:var(--gold-wash)}
#space-journal .jrn-sel{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);background:var(--bg3);border:1px solid var(--border2);border-radius:6px;padding:6px 9px;min-height:34px;cursor:pointer}
#space-journal .jrn-reload{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:7px 12px;border-radius:7px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:36px}
#space-journal .jrn-reload:hover{border-color:var(--gold-dim);color:var(--gold)}
#space-journal .jrn-meta{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.03em;margin-left:auto;text-align:right;line-height:1.5}

/* KPIs de tête (6 tuiles). */
#space-journal .jrn-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
#space-journal .jrn-kpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-inner);padding:12px 14px;min-width:0}
#space-journal .jrn-kpi-l{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text3);text-transform:uppercase}
#space-journal .jrn-kpi-v{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--text);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-journal .jrn-kpi-v.pos{color:var(--green)} #space-journal .jrn-kpi-v.neg{color:var(--red)}
#space-journal .jrn-kpi-basis{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.03em;margin-top:-8px;padding:0 2px}
#space-journal .jrn-kpi-basis:empty{display:none}

/* Grille 2 colonnes (ce qui marche | attribution ; jour | rapports). */
#space-journal .jrn-grid2{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:1024px){ #space-journal .jrn-grid2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)} }
#space-journal .jrn-export{margin-left:8px;font-family:var(--mono);font-size:10px;font-weight:600;padding:5px 10px;border-radius:6px;border:1px solid var(--gold-dim);background:var(--gold-wash);color:var(--gold);cursor:pointer;letter-spacing:.03em}

/* « Ce qui marche » — classes portées verbatim de journal.html, tokens ONE. */
#space-journal .jrn-ww .pad{padding:6px 2px}
#space-journal .jrn-ww .note{font-size:11px;color:var(--text2);line-height:1.55}
#space-journal .ww-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px;padding:4px 0}
#space-journal .ww{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px}
#space-journal .ww h3{font-family:var(--mono);font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);font-weight:600;margin:0 0 9px;display:block}
#space-journal .ww .grp{display:flex;align-items:center;gap:8px;font-size:11.5px;padding:4px 0;border-bottom:1px solid var(--border);font-family:var(--mono)}
#space-journal .ww .grp:last-child{border-bottom:none}
#space-journal .ww .gk{min-width:56px;font-weight:600;color:var(--text2)}
#space-journal .ww .gn{color:var(--text3);font-size:10px}
#space-journal .ww .gm{margin-left:auto;font-weight:600}
#space-journal .ww .gm.pos{color:var(--green)} #space-journal .ww .gm.neg{color:var(--red)}
#space-journal .ww .sub{opacity:.45}
#space-journal .verdict{margin-top:10px;padding:9px;border-radius:7px;border:1px solid var(--border);font-size:11.5px;line-height:1.55;color:var(--text2)}
#space-journal .verdict.sig{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.05)}
#space-journal .verdict.insuf{border-color:var(--border);background:var(--bg)}
#space-journal .verdict .pos{color:var(--green)} #space-journal .verdict .neg{color:var(--red)}
#space-journal .badge{display:inline-block;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;font-weight:700;padding:1px 6px;border-radius:3px;text-transform:uppercase}
#space-journal .badge.ok{background:rgba(34,197,94,.1);color:var(--green);border:1px solid rgba(34,197,94,.35)}
#space-journal .badge.no{background:var(--bg3);color:var(--text3);border:1px solid var(--border)}

/* Attribution par moteur. */
#space-journal .jrn-attr-row{display:grid;grid-template-columns:18px 74px 1fr auto 84px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--border)}
#space-journal .jrn-attr-row:first-child{border-top:none}
#space-journal .jrn-attr-n{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--text2)}
#space-journal .jrn-attr-bar{height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;position:relative}
#space-journal .jrn-attr-bar i{position:absolute;top:0;left:0;bottom:0;border-radius:3px;min-width:2px;background:var(--text3)}
#space-journal .jrn-attr-bar i.pos{background:var(--green)} #space-journal .jrn-attr-bar i.neg{background:var(--red)}
#space-journal .jrn-attr-meta{font-family:var(--mono);font-size:9.5px;color:var(--text3);white-space:nowrap}
#space-journal .jrn-attr-v{font-family:var(--mono);font-size:12px;text-align:right}
#space-journal .jrn-attr-v.pos{color:var(--green)} #space-journal .jrn-attr-v.neg{color:var(--red)}
#space-journal .jrn-attr-note{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.02em;margin-top:10px;line-height:1.6}
#space-journal .jrn-attr-note:empty{display:none}
/* Attribution rows can be wider than a phone card (fixed tracks + nowrap meta) : scroll
   INSIDE the panel (mirror .jrn-table-wrap) so it never forces a whole-page x-scroll (§audit R1). */
#space-journal #jrn-attr{overflow-x:auto}
#space-journal .jrn-attr-row{min-width:max-content}

/* Stats par jour (cliquables). */
#space-journal .jrn-days{display:flex;flex-direction:column;gap:2px;max-height:288px;overflow-y:auto}
#space-journal .jrn-day{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 8px;border:1px solid transparent;border-radius:7px;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;width:100%}
#space-journal .jrn-day:hover{background:rgba(255,255,255,.02)}
#space-journal .jrn-day.on{border-color:var(--gold-dim);background:var(--gold-wash)}
#space-journal .jrn-day-d{font-family:var(--mono);font-size:11.5px;color:var(--text2)}
#space-journal .jrn-day-n{font-family:var(--mono);font-size:10px;color:var(--text3)}
#space-journal .jrn-day-p{font-family:var(--mono);font-size:12px;font-weight:600}
#space-journal .jrn-day-p.pos{color:var(--green)} #space-journal .jrn-day-p.neg{color:var(--red)}
/* « ✕ effacer » du filtre jour (bouton réel, opérable clavier). */
#space-journal .jrn-dayclear{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--gold);background:var(--gold-wash);border:1px solid var(--gold-dim);border-radius:4px;padding:2px 6px;margin-left:4px;cursor:pointer;text-transform:none}
#space-journal .jrn-dayclear:hover{border-color:var(--gold)}
#space-journal .jrn-dayclear:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Rapports quotidiens. */
#space-journal .jrn-rep{padding:9px 0;border-top:1px solid var(--border)}
#space-journal .jrn-rep:first-child{border-top:none}
#space-journal .jrn-rep-h{display:flex;align-items:center;gap:8px}
#space-journal .jrn-rep-d{font-family:var(--mono);font-size:11px;color:var(--text2);font-weight:600}
#space-journal .jrn-rep-mood{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);border:1px solid var(--border2);border-radius:4px;padding:1px 6px}
#space-journal .jrn-rep-txt{font-size:11.5px;color:var(--text3);line-height:1.5;margin-top:4px;overflow-wrap:anywhere}

/* Grand livre (table unifiée). */
#space-journal .jrn-table-wrap{overflow-x:auto}
#space-journal .jrn-table{width:100%;border-collapse:collapse;font-size:11.5px}
#space-journal .jrn-table th{text-align:left;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
#space-journal .jrn-table td{padding:8px 10px;border-bottom:1px solid var(--border);font-family:var(--mono);white-space:nowrap;vertical-align:middle}
#space-journal .jrn-table tbody tr:last-child td{border-bottom:none}
#space-journal .jrn-row{border-left:2px solid transparent}
#space-journal .jrn-row.eng-cockpit td:first-child{box-shadow:inset 2px 0 0 var(--cockpit)}
#space-journal .jrn-row.eng-shield td:first-child{box-shadow:inset 2px 0 0 var(--shield)}
#space-journal .jrn-row.eng-sword td:first-child{box-shadow:inset 2px 0 0 var(--sword)}
#space-journal .jrn-row.eng-paper td:first-child{box-shadow:inset 2px 0 0 var(--border2)}
#space-journal .jrn-row:hover{background:rgba(255,255,255,.02)}
#space-journal .jrn-row.shadow{opacity:.62}
#space-journal .jrn-when{color:var(--text3)}
#space-journal .jrn-sig{width:26px}
#space-journal .jrn-sig .sig{width:18px;height:18px}
#space-journal .jrn-asset{font-family:var(--font);font-weight:700;color:var(--text)}
#space-journal .jrn-dir{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.06em;padding:2px 7px;border-radius:4px}
#space-journal .jrn-dir.long{color:var(--green);background:rgba(34,197,94,.12)}
#space-journal .jrn-dir.short{color:var(--red);background:rgba(239,68,68,.12)}
#space-journal .jrn-dir.flat{color:var(--text3);background:rgba(107,114,128,.14)}
#space-journal .jrn-ctx{color:var(--text2);white-space:normal;min-width:150px}
#space-journal .jrn-ctx .jrn-xr{color:var(--text2)}
#space-journal .jrn-ctx .jrn-cv{color:var(--text3)}
#space-journal .jrn-ctx .jrn-papier{font-size:8.5px;letter-spacing:.12em;color:var(--orange);border:1px solid rgba(245,158,11,.4);border-radius:3px;padding:1px 5px}
#space-journal .jrn-dl{color:var(--text2)}
#space-journal .jrn-dl small{color:var(--text3);margin-left:6px}
#space-journal .jrn-pnl{text-align:left;font-weight:600;white-space:nowrap}
#space-journal .jrn-pnl.pos{color:var(--green)} #space-journal .jrn-pnl.neg{color:var(--red)}
#space-journal .jrn-pnl small{font-weight:400;margin-left:2px}
#space-journal .jrn-pnl small.pos{color:var(--green)} #space-journal .jrn-pnl small.neg{color:var(--red)}
#space-journal .jrn-foot{font-family:var(--mono);font-size:10px;color:var(--text3);text-align:center;padding:6px 0 4px;line-height:1.6}
#space-journal .jrn-foot b{color:var(--text2);font-weight:600}

/* Modale export hypothèse (read-only ; position:fixed). */
#space-journal .jrn-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:60}
#space-journal .jrn-modal.hidden{display:none}
#space-journal .jrn-mbox{background:var(--bg2);border:1px solid var(--gold-dim);border-radius:12px;padding:18px;width:min(680px,94vw);max-height:86vh;overflow:auto}
#space-journal .jrn-mbox h3{font-family:var(--cinzel);font-size:13px;letter-spacing:.06em;color:var(--gold);margin:0 0 10px}
#space-journal .jrn-mnote{font-size:11px;color:var(--text3);line-height:1.55;margin-bottom:8px}
#space-journal .jrn-mbox textarea{width:100%;height:340px;background:var(--bg);border:1px solid var(--border2);color:var(--text);border-radius:6px;padding:10px;font-family:var(--mono);font-size:11px;line-height:1.5;resize:vertical}
#space-journal .jrn-mbtns{display:flex;gap:9px;margin-top:10px}
#space-journal .jrn-mbtn{font-family:var(--mono);font-size:11px;font-weight:600;padding:9px 14px;border-radius:7px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:40px}
#space-journal .jrn-mbtn:hover{border-color:var(--gold-dim);color:var(--gold)}

/* Focus clavier (parité shell : anneau doré sur les <button> du journal). */
#space-journal .jrn-chip:focus-visible,#space-journal .jrn-day:focus-visible,#space-journal .jrn-reload:focus-visible,#space-journal .jrn-export:focus-visible,#space-journal .jrn-mbtn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ── Session 09 · empilage mobile ④ Journal (planche 05c / 13) ─────────────────
   Ordre de pile EXPLICITE (≠ reflow brut) : KPIs → filtres (chips) → Grand livre,
   PUIS les analytics (« ce qui marche » / attribution / stats jour / rapports) et le
   pied. La planche 05c mène par les KPIs puis le grand livre ; l'analyse descend.
   `.jrn-wrap` est déjà une colonne flex ⇒ `order` sur ses enfants directs (négatif =
   remonté, positif = descendu ; le seul `.card.jrn-card` direct est le grand livre —
   les cartes analytics vivent DANS les `.jrn-grid2`). Chips/sélecteurs ≥44px. Pur CSS. */
@media (max-width:1023.98px){
  #space-journal .jrn-meta{margin-left:0;text-align:left;width:100%}
  #space-journal .jrn-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  #space-journal #jrn-kpis{order:-4}
  #space-journal #jrn-kpi-basis{order:-3}
  #space-journal .jrn-filters{order:-2}
  #space-journal .jrn-wrap>.card.jrn-card{order:-1}
  #space-journal .jrn-foot{order:1}
  /* cibles tactiles ≥44px (chips de filtre, sélecteur d'actif, recharger, exporter, jours, boutons modale). */
  #space-journal .jrn-chip,#space-journal .jrn-sel,#space-journal .jrn-reload,#space-journal .jrn-export,#space-journal .jrn-day,#space-journal .jrn-mbtn{min-height:44px}
}
@media (max-width:560px){
  #space-journal .jrn-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  #space-journal .jrn-kpi-v{font-size:17px}
}

/* ════════════════════════════════════════════════════════════════════════════
   ② MARCHÉS — Session 07 (planche 12) · « l'intelligence en un écran »
   Tout scopé sous #space-marches (sauf le drawer, position:fixed). Mid-fidelity :
   structure/contenu contractuels, espacements ajustables (SPEC). Règles §7 :
   vert/rouge = argent+direction seulement ; un label/direction SIGNE (bordure/teinte),
   jamais la couleur d'un chiffre ; mood/risque/fraîcheur JAMAIS colorés argent ;
   « — » honnête ; chiffres en mono tabulaire ; Cinzel = titres de section.
   ════════════════════════════════════════════════════════════════════════════ */
#space-marches .pos{color:var(--green)}
#space-marches .neg{color:var(--red)}
#space-marches .mut{color:var(--text3)}
#space-marches .gold{color:var(--gold)}
#space-marches .warn{color:var(--orange)}
#space-marches .mono{font-family:var(--mono)}

#space-marches .mch-wrap{display:flex;flex-direction:column;gap:14px;max-width:1420px;margin:0 auto}
#space-marches .card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}
#space-marches .card h3{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0 0 12px}
#space-marches .fresh{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.04em;text-transform:none;font-weight:400}
#space-marches .fresh.mut{color:var(--text3)}
#space-marches .mch-note{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.02em;line-height:1.5;margin:0 0 8px}
#space-marches .mch-empty{color:var(--text3);font-size:12.5px;padding:8px 0}

#space-marches .mch-top{display:grid;grid-template-columns:1fr;gap:14px}
#space-marches .mch-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:1024px){
  #space-marches .mch-top{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
  #space-marches .mch-grid{grid-template-columns:1fr 1fr}
}

/* Verdict pyramide + jauges F&G/VIX/DXY. */
#space-marches .mch-pyr{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}
#space-marches .tv-tier{display:flex;flex-direction:column;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:9px 14px;text-align:left;color:inherit;font:inherit;cursor:pointer;min-height:44px;box-sizing:border-box}
#space-marches .tv-tier:hover{border-color:var(--border2);background:var(--bg3)}
#space-marches .tv-k{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--text3)}
#space-marches .tv-v{font-size:15px;font-weight:700;letter-spacing:.01em;color:var(--text)}
#space-marches .tv-v .pos{color:var(--green)} #space-marches .tv-v .neg{color:var(--red)} #space-marches .tv-v .warn{color:var(--orange)} #space-marches .tv-v .mut{color:var(--text3)}
#space-marches .tv-score{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text2)}
#space-marches .tv-sub{font-family:var(--mono);font-size:9.5px;color:var(--text3);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#space-marches .mch-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:12px;border-top:1px solid var(--border)}
#space-marches .gcell{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0}
#space-marches .gcell .gl{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--text3);text-transform:uppercase}
#space-marches .gcell .gv{font-family:var(--mono);font-size:15px;color:var(--text);margin-top:3px}
#space-marches .gcell .gv .pos{color:var(--green)} #space-marches .gcell .gv .neg{color:var(--red)} #space-marches .gcell .gv .mut{color:var(--text3)}
#space-marches .gcell .gc{font-size:10px;color:var(--text2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-marches .gcell .ga{font-family:var(--mono);font-size:8.5px;color:var(--text3);margin-top:3px}

/* Calendrier des fenêtres. */
#space-marches .cal-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--border);font-size:12.5px}
#space-marches .cal-row:first-of-type{border-top:none}
#space-marches .cal-badge{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;padding:2px 7px;border-radius:4px;border:1px solid var(--border2);color:var(--text3);white-space:nowrap}
#space-marches .cal-badge.active{color:var(--red);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}
#space-marches .cal-badge.soon{color:var(--orange);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06)}
#space-marches .cal-row.active{background:rgba(239,68,68,.04);border-radius:6px}
#space-marches .cal-ev{font-weight:700;color:var(--text);letter-spacing:.03em}
#space-marches .cal-win,#space-marches .cal-eta{font-family:var(--mono);font-size:10.5px;color:var(--text3)}
#space-marches .cal-cons{font-family:var(--mono);font-size:10.5px;color:var(--text2)}

/* Heatmap 11 actifs — la teinte SIGNE la direction, le chiffre reste neutre (§7). */
#space-marches .mch-heatcard{padding-bottom:16px}
#space-marches .hm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
#space-marches .hm-cell{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--border2);border-radius:8px;padding:9px 10px;text-align:left;color:inherit;font:inherit;cursor:pointer;min-height:64px}
#space-marches .hm-cell:hover{border-color:var(--border2);background:var(--bg3)}
#space-marches .hm-cell.dir-long{border-left-color:var(--green);background:rgba(34,197,94,.05)}
#space-marches .hm-cell.dir-short{border-left-color:var(--red);background:rgba(239,68,68,.05)}
#space-marches .hm-cell.dir-protect{border-left-color:var(--gold);background:var(--gold-wash)}
#space-marches .hm-cell.dir-wait{border-left-color:var(--border2)}
#space-marches .hm-sym{font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--text)}
#space-marches .hm-bias{font-family:var(--mono);font-size:14px;color:var(--text);letter-spacing:-.01em}
#space-marches .hm-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#space-marches .hm-foot:empty{display:none}
#space-marches .hm-reg{font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;color:var(--text3);text-transform:uppercase}
#space-marches .hm-chg{font-family:var(--mono);font-size:9.5px;margin-left:auto}
#space-marches .hm-chg.pos{color:var(--green)} #space-marches .hm-chg.neg{color:var(--red)}

/* Événements world-scan + modifiers. */
#space-marches .ev-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;text-align:left;background:none;color:inherit;font:inherit;cursor:pointer;padding:10px 2px;border-top:1px solid var(--border)}
#space-marches .ev-row:first-of-type{border-top:none}
#space-marches .ev-row:hover{background:rgba(255,255,255,.02)}
#space-marches .ev-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;background:var(--text3);flex-shrink:0}
#space-marches .ev-dot.crit{background:var(--red)} #space-marches .ev-dot.high{background:var(--gold)} #space-marches .ev-dot.med{background:var(--sword)} #space-marches .ev-dot.low{background:var(--text3)}
#space-marches .ev-main{min-width:0}
#space-marches .ev-title{display:block;font-size:12.5px;color:var(--text);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
#space-marches .ev-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px;font-family:var(--mono);font-size:9px;color:var(--text3)}
#space-marches .ev-cat{letter-spacing:.08em;text-transform:uppercase}
#space-marches .ev-mods{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;max-width:150px}
#space-marches .ev-mod{font-family:var(--mono);font-size:9px;padding:1px 5px;border-radius:4px;border:1px solid var(--border2);color:var(--text3);white-space:nowrap}
#space-marches .ev-mod.pos{color:var(--green);border-color:rgba(34,197,94,.3)} #space-marches .ev-mod.neg{color:var(--red);border-color:rgba(239,68,68,.3)}

/* Microstructure par actif. */
#space-marches .mic-head,#space-marches .mic-row{display:grid;grid-template-columns:60px 1fr 1fr 46px;gap:8px;align-items:center}
#space-marches .mic-head{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;color:var(--text3);text-transform:uppercase;padding:0 2px 6px}
#space-marches .mic-row{width:100%;min-height:44px;text-align:left;background:none;color:inherit;font:inherit;cursor:pointer;padding:8px 2px;border-top:1px solid var(--border)}
#space-marches .mic-row:hover{background:rgba(255,255,255,.02)}
#space-marches .mic-row.stale{opacity:.55}
#space-marches .mic-sym{font-size:12px;font-weight:700;color:var(--text)}
#space-marches .mic-f{font-family:var(--mono);font-size:11.5px}
#space-marches .mic-f.gold{color:var(--gold)} #space-marches .mic-f.neg{color:var(--red)} #space-marches .mic-f.mut{color:var(--text3)}
#space-marches .mic-oi{font-family:var(--mono);font-size:10.5px}
#space-marches .mic-oi .pos{color:var(--green)} #space-marches .mic-oi .neg{color:var(--red)}
#space-marches .mic-drill{font-family:var(--mono);font-size:9px;color:var(--text3);text-align:right;letter-spacing:.04em}

/* Insider 🐋. */
#space-marches .ins-flow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
#space-marches .ins-chip{font-family:var(--mono);font-size:10.5px;padding:3px 8px;border-radius:5px;border:1px solid var(--border2);background:var(--bg);color:var(--text2);white-space:nowrap}
#space-marches .ins-chip .pos{color:var(--green)} #space-marches .ins-chip .neg{color:var(--red)} #space-marches .ins-chip .mut{color:var(--text3)}
#space-marches .ins-focus{border-top:1px solid var(--border);padding-top:10px}
#space-marches .ins-fh{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--text2);margin-bottom:8px;display:flex;align-items:center;gap:8px}
#space-marches .ins-net{font-size:9px;font-weight:600;padding:1px 6px;border-radius:4px;border:1px solid var(--border2)}
#space-marches .ins-net.pos{color:var(--green);border-color:rgba(34,197,94,.3)} #space-marches .ins-net.neg{color:var(--red);border-color:rgba(239,68,68,.3)}
#space-marches .ins-card{display:grid;grid-template-columns:1fr 54px 74px 42px;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--border);font-size:11.5px}
#space-marches .ins-t{font-family:var(--mono);font-size:10px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#space-marches .ins-d{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em}
#space-marches .ins-d.pos{color:var(--green)} #space-marches .ins-d.neg{color:var(--red)} #space-marches .ins-d.mut{color:var(--text3)}
#space-marches .ins-u{font-size:11.5px;text-align:right;color:var(--text)}
#space-marches .ins-a{font-family:var(--mono);font-size:9.5px;text-align:right}

/* Fil macro — observation, aucun badge. */
#space-marches .mn-row{display:grid;grid-template-columns:38px 66px 1fr auto;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--border);font-size:12px}
#space-marches .mn-row:first-of-type{border-top:none}
#space-marches .mn-t{font-family:var(--mono);font-size:10px;color:var(--text3)}
#space-marches .mn-src{font-family:var(--mono);font-size:9.5px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
#space-marches .mn-h{color:var(--text2);line-height:1.4;min-width:0}
#space-marches a.mn-h:hover{color:var(--gold);text-decoration:underline}
#space-marches .mn-crypto{color:var(--sword);font-size:11px}

/* Drawer drill-down (read-only, template existant, ZÉRO LLM). */
#space-marches .mch-drawer{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end}
#space-marches .mch-drawer.hidden{display:none}
#space-marches .mch-dbg{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(1px)}
#space-marches .mch-dpanel{position:relative;z-index:1;width:min(440px,94vw);height:100%;background:var(--bg2);border-left:1px solid var(--gold-dim);display:flex;flex-direction:column;box-shadow:-16px 0 40px rgba(0,0,0,.5);animation:mch-slide .18s ease}
@keyframes mch-slide{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
#space-marches .mch-dhead{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}
#space-marches .mch-dtitle{font-family:var(--cinzel);font-size:12px;letter-spacing:.06em;color:var(--gold);flex:1;min-width:0}
#space-marches .mch-dclose{font-family:var(--mono);font-size:15px;color:var(--text2);background:var(--bg3);border:1px solid var(--border2);border-radius:7px;width:44px;height:44px;cursor:pointer;flex-shrink:0}
#space-marches .mch-dclose:hover{color:var(--gold);border-color:var(--gold-dim)}
#space-marches .mch-dbody{padding:16px 18px;overflow:auto}
#space-marches .dr-sec{margin-bottom:16px}
#space-marches .dr-badge{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;padding:3px 9px;border-radius:5px;border:1px solid var(--border2)}
#space-marches .dr-badge.pos{color:var(--green);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}
#space-marches .dr-badge.neg{color:var(--red);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.06)}
#space-marches .dr-badge.warn{color:var(--orange);border-color:rgba(245,158,11,.3)}
#space-marches .dr-mood{font-family:var(--mono);font-size:10px;margin-left:8px;color:var(--text2)}
#space-marches .dr-mood.warn{color:var(--orange)}
#space-marches .dr-time{font-family:var(--mono);font-size:9.5px;color:var(--text3);margin-left:8px}
#space-marches .dr-summary{font-size:12.5px;color:var(--text2);line-height:1.6;margin:10px 0 0}
#space-marches .dr-h{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin:12px 0 8px}
#space-marches .dr-contra{border-left:2px solid var(--gold-dim);padding:6px 0 6px 10px;margin-bottom:8px}
#space-marches .dr-contra.high{border-left-color:var(--red)} #space-marches .dr-contra.med{border-left-color:var(--gold)}
#space-marches .dr-cs{font-size:12px;color:var(--text);line-height:1.45}
#space-marches .dr-cd{font-size:11px;color:var(--text3);line-height:1.5;margin-top:3px}
#space-marches .dr-evtitle{font-size:14px;font-weight:600;color:var(--text);line-height:1.4;display:flex;align-items:baseline;gap:8px}
#space-marches .dr-evmeta{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-family:var(--mono);font-size:9.5px;color:var(--text3)}
#space-marches .dr-mods{display:flex;flex-wrap:wrap;gap:5px}
#space-marches .dr-posn{padding:9px 0;border-top:1px solid var(--border)}
#space-marches .dr-posn:first-of-type{border-top:none}
#space-marches .dr-posn.stale{opacity:.55}
#space-marches .dr-pl{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--text3);text-transform:uppercase;margin-bottom:5px}
#space-marches .dr-page{color:var(--text3);text-transform:none;letter-spacing:0}
#space-marches .dr-pv{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--text2)}
#space-marches .dr-pv b{color:var(--text);font-weight:600}
#space-marches .psub{font-size:10px;color:var(--text3);font-family:var(--mono)}
#space-marches .psub.pos{color:var(--green)} #space-marches .psub.neg{color:var(--red)}
#space-marches .pdiv{font-size:9px;color:var(--gold);margin-left:6px}
/* L/S + taker bars (copie scopée — les originaux sont sous #space-trading). */
#space-marches .lsbar{display:inline-flex;width:88px;height:6px;border-radius:3px;overflow:hidden;background:var(--bg3);flex-shrink:0}
#space-marches .lsbar i{height:6px;flex:0 0 auto}
#space-marches .lsbar .lsl{background:#2c7a45} #space-marches .lsbar .lss{background:#8f3530}
#space-marches .tkbar{position:relative;display:inline-block;width:64px;height:6px;border-radius:3px;background:var(--bg3);flex-shrink:0}
#space-marches .tkbar .ctr{position:absolute;left:50%;top:-2px;width:1px;height:10px;background:var(--border2)}
#space-marches .tkbar .tks,#space-marches .tkbar .tkb{position:absolute;top:0;height:6px}
#space-marches .tkbar .tks{left:0;background:#8f3530;border-radius:3px 0 0 3px}
#space-marches .tkbar .tkb{right:0;background:#2c7a45;border-radius:0 3px 3px 0}

/* Focus clavier (parité shell : anneau doré). */
#space-marches .tv-tier:focus-visible,#space-marches .hm-cell:focus-visible,#space-marches .ev-row:focus-visible,#space-marches .mic-row:focus-visible,#space-marches .mch-dclose:focus-visible,#space-marches a.mn-h:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ── Session 09 · mobile ② Marchés (planche 05d / 12) ─────────────────────────
   La pile suit déjà la pyramide de la planche 12 — Verdict+jauges → Calendrier →
   Heatmap → Événements → Microstructure → Insider → Fil macro — car `.mch-top` /
   `.mch-grid` retombent en 1 colonne < 1024. Ici : cibles ≥44px + safe-areas iOS
   sur le drawer plein écran (encoche haut + indicateur bas). Pur CSS. */
@media (max-width:1023.98px){
  #space-marches .ev-row{min-height:44px}
  #space-marches .cal-row{min-height:44px}
  #space-marches .mch-dhead{padding-top:calc(16px + env(safe-area-inset-top,0))}
  #space-marches .mch-dbody{padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}
}
/* Téléphone étroit : jauges en 3, heatmap dense, modificateurs resserrés, drawer plein écran. */
@media (max-width:640px){
  #space-marches .mch-gauges{grid-template-columns:repeat(3,minmax(0,1fr))}
  #space-marches .hm-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
  #space-marches .ev-mods{max-width:110px}
  #space-marches .mch-dpanel{width:100vw}
}

/* ════════════════════════════════════════════════════════════════════════
   ⑤ SYSTÈME (Session 08 · planche 14) — gouvernance + moteurs + santé + labo
   + Guardian + docs. Tout scopé sous #space-systeme. États hydratés (jamais
   un libellé en dur) ; vert/rouge = statut opérationnel/diagnostic (jamais un
   nombre financier signé par un moteur — cf. §7) ; l'« engagé » (LIVE/ARMÉ)
   porte l'accent OR, le kill/gel porte l'ORANGE (warn).
   ════════════════════════════════════════════════════════════════════════ */
#space-systeme .sys-boot{color:var(--text3);font-size:13px;padding:24px 4px}
#space-systeme .sys-wrap{display:flex;flex-direction:column;gap:18px}

/* ── Sous-nav 6 onglets ── */
#space-systeme .sys-subnav{
  display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-bottom:1px solid var(--border);padding-bottom:2px;
}
#space-systeme .sys-tab{
  font-family:var(--font);font-size:13px;font-weight:500;color:var(--text2);
  background:none;border:none;padding:9px 14px;border-radius:8px 8px 0 0;
  min-height:44px;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent;
}
#space-systeme .sys-tab:hover{color:var(--text)}
#space-systeme .sys-tab.on{color:var(--gold);border-bottom-color:var(--gold)}

#space-systeme .sys-panel{min-width:0}
#space-systeme .sys-panel[hidden]{display:none}

/* ── Cartes ── */
#space-systeme .sys-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
#space-systeme .sys-eng-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
#space-systeme .sys-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px;min-width:0;margin-bottom:16px;
}
#space-systeme .sys-eng-grid .sys-card,#space-systeme .sys-grid2 .sys-card{margin-bottom:0}
#space-systeme .sys-card h3{
  font-family:var(--cinzel);font-size:10.5px;letter-spacing:.28em;color:var(--gold);
  text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0 0 12px;
}
#space-systeme .sys-card h3 .sys-note{margin-left:auto;text-transform:none;letter-spacing:.02em}
#space-systeme .sys-card.danger{border-color:rgba(239,68,68,.3)}
#space-systeme .sys-note{font-family:var(--mono);font-size:10.5px;color:var(--text3);letter-spacing:.02em;font-weight:400;line-height:1.5}
#space-systeme .sys-note b{color:var(--text2)}
#space-systeme .sys-note code,#space-systeme code{font-family:var(--mono);font-size:.92em;color:var(--gold);background:var(--gold-wash);padding:1px 4px;border-radius:4px}
#space-systeme p.sys-note{margin:6px 0 10px}
#space-systeme .sys-empty{color:var(--text3);font-size:13px;padding:18px 4px}
#space-systeme .sys-foot{color:var(--text3);font-family:var(--mono);font-size:10px;line-height:1.6;padding:4px 2px}
#space-systeme .sys-fresh{font-family:var(--mono);font-size:9.5px;color:var(--text3);letter-spacing:.06em;margin-top:10px}

/* ── Boutons ── */
#space-systeme .sys-btn{
  font-family:var(--font);font-size:13px;font-weight:600;color:var(--gold);
  background:var(--gold-wash);border:1px solid var(--gold-dim);border-radius:8px;
  padding:10px 16px;min-height:44px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
}
#space-systeme .sys-btn:hover{background:rgba(201,168,76,.14)}
#space-systeme .sys-btn.ghost{color:var(--text2);background:var(--bg3);border-color:var(--border)}
#space-systeme .sys-btn.ghost:hover{color:var(--text)}
#space-systeme .sys-btn.danger{color:var(--red);background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.35)}
#space-systeme .sys-btn.danger:hover{background:rgba(239,68,68,.14)}
#space-systeme .sys-btn.sm{font-size:12px;padding:8px 12px;min-height:38px}
#space-systeme .sys-btn.xs{font-size:11px;padding:5px 9px;min-height:32px}
#space-systeme .sys-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}

/* ── Gouvernance ── */
#space-systeme .sys-statebig{font-family:var(--cinzel);font-size:26px;font-weight:600;letter-spacing:.1em;margin:4px 0 10px}
#space-systeme .sys-statebig.actif{color:var(--green)}
#space-systeme .sys-statebig.gele{color:var(--red)}
#space-systeme .sys-statebig.relance{color:var(--orange)}
#space-systeme .sys-statebig.dim{color:var(--text3)}
#space-systeme .sys-kv{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid var(--border);font-size:12.5px;color:var(--text2)}
#space-systeme .sys-kv:first-of-type{border-top:none}
#space-systeme .sys-kv b{font-family:var(--mono);color:var(--text);font-weight:500}
#space-systeme .sys-kv b.on{color:var(--gold)}
#space-systeme .sys-kv b.off{color:var(--text3)}
#space-systeme .sys-toast{font-family:var(--mono);font-size:11px;margin-top:8px;min-height:14px}
#space-systeme .sys-toast.ok{color:var(--green)}
#space-systeme .sys-toast.bad{color:var(--red)}

/* ── Moteurs — cartes signées par sigil + bordure gauche ── */
#space-systeme .sys-card.eng{border-left:3px solid var(--border2)}
#space-systeme .sys-card.eng.shield{border-left-color:var(--shield)}
#space-systeme .sys-card.eng.sword{border-left-color:var(--sword)}
#space-systeme .sys-card.eng.cockpit{border-left-color:var(--cockpit)}
#space-systeme .sys-card.eng.carry{border-left-color:var(--carry)}
#space-systeme .sys-enghead{display:flex;align-items:center;gap:8px;margin-bottom:8px}
#space-systeme .sys-enghead h3{margin:0}
#space-systeme .sys-badge{
  margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  padding:3px 9px;border-radius:20px;border:1px solid var(--border);color:var(--text3);white-space:nowrap;
}
#space-systeme .sys-badge.live{color:var(--gold);border-color:var(--gold-dim);background:var(--gold-wash)}
#space-systeme .sys-badge.dry,#space-systeme .sys-badge.off,#space-systeme .sys-badge.paper,#space-systeme .sys-badge.dim{color:var(--text3)}
#space-systeme .sys-badge.ok{color:var(--green);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.07)}
#space-systeme .sys-badge.warn{color:var(--orange);border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06)}
#space-systeme .sys-badge.bad{color:var(--red);border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.07)}

#space-systeme .sys-toggles{display:flex;flex-direction:column;gap:8px;margin:10px 0}
#space-systeme .sys-toggle{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  padding:10px 14px;min-height:44px;cursor:pointer;font-family:var(--font);font-size:13px;color:var(--text2);
}
#space-systeme .sys-toggle:hover{border-color:var(--border2)}
#space-systeme .sys-toggle[disabled]{opacity:.55;cursor:default}
#space-systeme .sys-toggle span em.warn{color:var(--orange);font-style:normal}
#space-systeme .sys-toggle b{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em}
#space-systeme .sys-toggle b.on{color:var(--gold)}
#space-systeme .sys-toggle b.off{color:var(--text3)}
#space-systeme .sys-toggle b.bad,#space-systeme .sys-toggle b.warn{color:var(--orange)}

#space-systeme .sys-steprow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;font-size:12.5px;color:var(--text2)}
#space-systeme .sys-stepper{display:flex;align-items:center;gap:2px}
#space-systeme .sys-stepper button{
  width:30px;height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);
  color:var(--gold);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
#space-systeme .sys-stepper.sm button{width:26px;height:26px;font-size:14px}
#space-systeme .sys-stepper b{font-family:var(--mono);min-width:26px;text-align:center;color:var(--text);font-size:13px}
#space-systeme .sys-effline{font-size:12px;color:var(--text2);padding:6px 0;border-top:1px solid var(--border);margin-top:4px}
#space-systeme .sys-effline b{font-family:var(--mono);color:var(--gold)}

#space-systeme .sys-floors{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-floors-h{font-size:12px;color:var(--text2);margin-bottom:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
#space-systeme .sys-floor-row{display:flex;align-items:center;gap:8px;padding:5px 0;flex-wrap:wrap}
#space-systeme .sys-floor-asset{font-family:var(--mono);font-size:12px;color:var(--text);min-width:64px;font-weight:500}
#space-systeme .sys-floor-part{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:2px 7px;border-radius:12px;border:1px solid var(--border);color:var(--text3)}
#space-systeme .sys-floor-part.active{color:var(--gold);border-color:var(--gold-dim);background:var(--gold-wash)}
#space-systeme .sys-floor-part.restricted{color:var(--orange);border-color:rgba(245,158,11,.3)}
#space-systeme .sys-floor-part.muted,#space-systeme .sys-floor-part.off{color:var(--text3)}
#space-systeme .sys-floor-msg{font-family:var(--mono);font-size:10px;color:var(--text3)}
#space-systeme .sys-floor-msg.ok{color:var(--green)} #space-systeme .sys-floor-msg.bad{color:var(--red)}
/* ── SPEC-05 : éditeur de limites COCKPIT (caps serveur) ── */
#space-systeme .sys-limits{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-limits-h{font-size:12px;color:var(--text2);margin-bottom:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
#space-systeme .sys-limit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--border);flex-wrap:wrap}
#space-systeme .sys-limit-row:first-of-type{border-top:none}
#space-systeme .sys-limit-label{font-size:12.5px;color:var(--text2);flex:1 1 auto}
#space-systeme .sys-limit-field{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
#space-systeme .sys-limit-field input{font-family:var(--mono);font-size:13px;color:var(--text);background:var(--bg3);border:1px solid var(--border);border-radius:7px;padding:7px 9px;width:112px;text-align:right}
#space-systeme .sys-limit-field input:focus{outline:none;border-color:var(--gold-dim)}
#space-systeme .sys-limit-row.dirty .sys-limit-field input{border-color:var(--gold-dim)}
#space-systeme .sys-limit-srv{font-family:var(--mono);font-size:9.5px;color:var(--text3)}
#space-systeme .sys-telem{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:11.5px;color:var(--text3)}
#space-systeme .sys-telem b{font-family:var(--mono);color:var(--text2)}

/* ── Santé ── */
#space-systeme .sys-scorebig{font-family:var(--mono);font-size:34px;font-weight:600;line-height:1;margin:4px 0 8px}
#space-systeme .sys-scorebig span{font-size:15px;color:var(--text3)}
#space-systeme .sys-scorebig.ok{color:var(--green)} #space-systeme .sys-scorebig.warn{color:var(--orange)} #space-systeme .sys-scorebig.bad{color:var(--red)} #space-systeme .sys-scorebig.dim{color:var(--text3)}
#space-systeme .sys-costline{font-size:14px;margin:2px 0 8px}
#space-systeme .sys-costline b{font-family:var(--mono);font-size:18px;color:var(--text)}
#space-systeme .sys-bar{height:7px;background:var(--bg3);border-radius:4px;overflow:hidden;margin:6px 0}
#space-systeme .sys-bar span{display:block;height:100%;border-radius:4px;background:var(--gold)}
#space-systeme .sys-bar span.ok{background:var(--green)} #space-systeme .sys-bar span.warn{background:var(--orange)} #space-systeme .sys-bar span.bad{background:var(--red)}
#space-systeme .sys-costsrc{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-family:var(--mono);font-size:10.5px;color:var(--text3)}
#space-systeme .sys-costsrc b{color:var(--text2)}
#space-systeme .sys-notif-status{font-family:var(--mono);font-size:10px;margin-left:4px}
#space-systeme .sys-notif-status.ok{color:var(--green)} #space-systeme .sys-notif-status.bad{color:var(--red)}

/* ── Tables (crons · feeds · readiness) ── */
#space-systeme .sys-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
#space-systeme .sys-table{width:100%;border-collapse:collapse;font-size:12px}
#space-systeme .sys-table th{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--text3);text-transform:uppercase;font-weight:500;padding:6px 10px;border-bottom:1px solid var(--border)}
#space-systeme .sys-table td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text2);white-space:nowrap}
#space-systeme .sys-table td:first-child{color:var(--text);font-family:var(--mono);font-size:11.5px}
#space-systeme .sys-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--text3);vertical-align:middle}
#space-systeme .sys-dot.ok{background:var(--green)} #space-systeme .sys-dot.warn{background:var(--orange)} #space-systeme .sys-dot.bad{background:var(--red)}
#space-systeme .sys-table td.fresh{color:var(--green)} #space-systeme .sys-table td.stale{color:var(--orange)} #space-systeme .sys-table td.bad{color:var(--red)}

/* ── Labo ── */
#space-systeme .sys-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
#space-systeme .sys-chip{font-family:var(--font);font-size:12px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:6px 12px;min-height:36px;cursor:pointer}
#space-systeme .sys-chip.on{color:var(--gold);background:var(--gold-wash);border-color:var(--gold-dim)}
#space-systeme .sys-edge{border:1px solid var(--border);border-radius:9px;padding:12px;margin-bottom:10px;background:var(--bg3)}
#space-systeme .sys-edge-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
#space-systeme .sys-edge-scope{font-family:var(--mono);font-size:12px;color:var(--text);font-weight:500}
#space-systeme .sys-verdict{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;padding:2px 8px;border-radius:12px;border:1px solid var(--border);color:var(--text3)}
#space-systeme .sys-verdict.valide{color:var(--green);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.07)}
#space-systeme .sys-verdict.fragile{color:var(--orange);border-color:rgba(245,158,11,.3)}
#space-systeme .sys-verdict.artefact{color:var(--red);border-color:rgba(239,68,68,.3)}
#space-systeme .sys-verdict.nonteste{color:var(--text3)}
#space-systeme .sys-edge-stat{font-family:var(--mono);font-size:12px;color:var(--text2);margin:4px 0}
#space-systeme .sys-crits{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
#space-systeme .sys-crit{font-family:var(--mono);font-size:9.5px;padding:2px 7px;border-radius:10px;border:1px solid var(--border);color:var(--text3)}
#space-systeme .sys-crit.pass{color:var(--green);border-color:rgba(34,197,94,.25)}
#space-systeme .sys-crit.fail{color:var(--text3)}
#space-systeme .sys-lesson{padding:6px 0;border-top:1px solid var(--border)}
#space-systeme .sys-lesson:first-child{border-top:none}
#space-systeme .sys-lesson b{font-size:12.5px;color:var(--text)}
#space-systeme .sys-edge-lessons{margin-top:8px;border-top:1px solid var(--border);padding-top:6px}
#space-systeme .sys-form{display:flex;flex-direction:column;gap:8px}
#space-systeme .sys-form input,#space-systeme .sys-form textarea{
  font-family:var(--font);font-size:13px;color:var(--text);background:var(--bg3);
  border:1px solid var(--border);border-radius:7px;padding:9px 11px;width:100%;resize:vertical;
}
#space-systeme .sys-form input:focus,#space-systeme .sys-form textarea:focus{outline:none;border-color:var(--gold-dim)}
#space-systeme .sys-jrow{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0;border-top:1px solid var(--border);font-size:12px;color:var(--text2)}
#space-systeme .sys-jrow:first-child{border-top:none}
#space-systeme .sys-jkind{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--gold);background:var(--gold-wash);padding:2px 7px;border-radius:10px;height:fit-content;white-space:nowrap}
#space-systeme .sys-jrow b{color:var(--text)}

/* ══════════════════════════════════════════════════════════════════════════
   CHAT — composant de fil PARTAGÉ (⑤ plein écran + rail ① + FAB mobile)
   MÊMES classes `aur-*` aux TROIS hôtes (source unique : AurumSystemeCore.
   chatBubbleHtml). Bulles user (droite, accent or) / assistant (gauche, fond
   card), largeur lisible ~72ch, label + points de chargement. NON scopé (le
   composant vit dans deux espaces + le plein écran mobile). Ne JAMAIS re-scoper
   ni forker par hôte — c'était la dérive sys-*/g* corrigée ici.
   ══════════════════════════════════════════════════════════════════════════ */
.aur-chat{display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}
.aur-msg{display:flex}
.aur-msg.user{justify-content:flex-end}
.aur-msg.ai,.aur-msg.err{justify-content:flex-start}
/* ~72ch = longueur de ligne lisible (borne la largeur des bulles). */
.aur-bub{max-width:min(80%,72ch);border-radius:12px;padding:10px 13px;font-size:13px;line-height:1.55;word-break:break-word;overflow-wrap:break-word}
.aur-bub.ai{background:var(--bg3);border:1px solid var(--border);color:var(--text)}
.aur-bub.user{background:var(--gold-wash);border:1px solid var(--gold-dim);color:var(--text)}
/* Erreur INLINE : bloc distinct (jamais un faux tour Guardian), fil conservé. */
.aur-bub.err{max-width:min(88%,72ch);background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.35);color:var(--text);font-size:12.5px;line-height:1.5}
.aur-label{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--gold);margin-bottom:5px;text-transform:uppercase}
.aur-content{word-wrap:break-word;overflow-wrap:break-word}
.aur-content code{font-family:var(--mono);font-size:.9em}
.aur-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text3);margin:0 2px;animation:aur-dotp 1.2s infinite}
@keyframes aur-dotp{0%,60%,100%{opacity:.3}30%{opacity:1}}

/* ── ⑤ Guardian — PAGE dédiée (L4/B9 · planche 19) ─────────────────────────────
   La page Guardian prend TOUT l'écran (classe `sys-guard` sur l'espace ⑤ posée par
   setTab) : sous-nav + autres panneaux masqués, panneau guardian en position FIXE sous
   le header, la PAGE ne scrolle pas (scroll INTERNE au fil). Grille : sidebar
   conversations fixe 240px (scroll propre) + zone chat (fil centré max-width 860px,
   input collé au BAS). Mobile : plein écran, input au-dessus du clavier (--sys-kbd via
   visualViewport) + retour ← vers l'écran précédent. RÉUTILISE les multi-conversations. */
#space-systeme.sys-guard .sys-subnav{display:none}
#space-systeme.sys-guard .sys-panel:not(#sys-panel-guardian){display:none}
#space-systeme.sys-guard .sys-wrap{gap:0}
#space-systeme.sys-guard #sys-panel-guardian{
  position:fixed;left:0;right:0;z-index:45;background:var(--bg);
  top:calc(58px + env(safe-area-inset-top,0px));
  bottom:var(--sys-kbd,0px);
}
#space-systeme .sys-gpage{
  height:100%;display:grid;overflow:hidden;
  grid-template-columns:240px 1fr;grid-template-rows:auto 1fr;
  grid-template-areas:"head head" "side chat";
}
#space-systeme .sys-ghead{grid-area:head;display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg2)}
#space-systeme .sys-gback{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--gold);background:var(--gold-wash);border:1px solid var(--gold-dim);border-radius:8px;padding:8px 12px;min-height:40px;cursor:pointer;flex-shrink:0}
#space-systeme .sys-gback:hover{background:rgba(201,168,76,.14)}
#space-systeme .sys-gtitle{font-family:var(--cinzel);font-size:10.5px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px;margin:0;min-width:0}
#space-systeme .sys-gtitle .sys-note{margin-left:0;font-weight:400;text-transform:none}
#space-systeme.sys-guard .sys-convcol{grid-area:side;min-height:0;border-right:1px solid var(--border);background:var(--bg2);padding:12px;overflow-y:auto}
#space-systeme.sys-guard .sys-convlist{max-height:none;flex:1;min-height:0}
/* Zone chat : fil à scroll INTERNE (max-width 860px centré) + input collé au bas.
   Aucun chevauchement input/messages (items flex distincts), aucune bulle coupée.
   min-width:0 partout ⇒ un contenu long ne force jamais la largeur (zéro débordement H). */
#space-systeme.sys-guard .sys-chatmain{grid-area:chat;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#space-systeme.sys-guard .sys-chat{height:auto;flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;max-width:860px;width:100%;margin:0 auto;padding:16px 16px 14px}
#space-systeme.sys-guard .sys-chatbar{position:sticky;bottom:0;flex-shrink:0;max-width:860px;width:100%;margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--bg2)}
/* Bulles : user max-width 70 % (alignées droite) / assistant 88 % (planche 19). Override
   du composant partagé (min(80%,72ch)) UNIQUEMENT sur la page Guardian. */
#space-systeme.sys-guard .sys-chat .aur-msg.user .aur-bub{max-width:70%}
#space-systeme.sys-guard .sys-chat .aur-msg.ai .aur-bub{max-width:88%}

/* ── Conversations + fil (styles RÉUTILISÉS, multi-conversations inchangées) ── */
#space-systeme .sys-convcol{display:flex;flex-direction:column;gap:10px;min-width:0}
#space-systeme .sys-convnew{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--gold);background:var(--gold-wash);border:1px solid var(--gold-dim);border-radius:9px;padding:10px 12px;cursor:pointer;min-height:40px;text-align:left}
#space-systeme .sys-convnew:hover{background:var(--gold-wash)}
#space-systeme .sys-convnew:disabled{opacity:.55;cursor:not-allowed}
#space-systeme .sys-convlist{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:min(52vh,404px);padding-right:2px}
#space-systeme .sys-convitem{display:flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;background:var(--bg2);cursor:pointer;min-width:0}
#space-systeme .sys-convitem:hover{border-color:var(--border2);background:var(--bg3)}
#space-systeme .sys-convitem.on{border-color:var(--gold-dim);background:var(--gold-wash)}
#space-systeme .sys-convmeta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;text-align:left;background:none;border:none;cursor:pointer;padding:0;color:inherit}
#space-systeme .sys-convtitle{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#space-systeme .sys-convitem.on .sys-convtitle{color:var(--gold)}
#space-systeme .sys-convdate{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.04em}
#space-systeme .sys-convdel{background:none;border:none;color:var(--text3);font-size:15px;line-height:1;cursor:pointer;padding:4px 5px;border-radius:6px;flex-shrink:0}
#space-systeme .sys-convdel:hover{color:var(--red);background:var(--bg2)}
#space-systeme .sys-convempty{color:var(--text3);font-size:11.5px;padding:8px 2px}
#space-systeme .sys-chatmain{display:flex;flex-direction:column;min-width:0}
/* Hauteur FIXE : le fil ne grandit/rétrécit pas avec le nombre de messages —
   l'input reste ancré, l'autoscroll bas garde le dernier message visible. */
#space-systeme .sys-chat{height:min(56vh,440px);min-height:240px;padding:6px 2px;margin-bottom:10px}
#space-systeme .sys-chatbar{display:flex;gap:8px;align-items:flex-end}
#space-systeme .sys-chatbar textarea{
  flex:1;font-family:var(--font);font-size:13px;color:var(--text);background:var(--bg3);
  border:1px solid var(--border);border-radius:9px;padding:10px 12px;resize:none;min-height:44px;max-height:120px;
}
#space-systeme .sys-chatbar textarea:focus{outline:none;border-color:var(--gold-dim)}
/* Bouton « … » désactivé pendant la génération. */
#space-systeme #sys-chat-send[disabled]{opacity:.55;cursor:not-allowed}
/* Mobile : page Guardian plein écran en une colonne — la liste des conversations passe
   au-dessus du fil (courte, scroll propre), le chat remplit le reste, input au-dessus du
   clavier (--sys-kbd). Cibles ≥44px. */
@media (max-width:820px){
  #space-systeme.sys-guard .sys-gpage{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"head" "side" "chat"}
  #space-systeme.sys-guard .sys-convcol{border-right:none;border-bottom:1px solid var(--border);max-height:26vh}
  #space-systeme.sys-guard .sys-convlist{max-height:none}
  #space-systeme .sys-convnew,#space-systeme .sys-convitem{min-height:44px}
}

/* ── Docs ── */
#space-systeme .sys-doc-lead{margin:0 0 14px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg3);color:var(--text2)}
#space-systeme .sys-docs{display:grid;grid-template-columns:220px 1fr;gap:18px}
#space-systeme .sys-doc-toc{display:flex;flex-direction:column;gap:2px;position:sticky;top:0;align-self:start;max-height:70vh;overflow-y:auto}
#space-systeme .sys-doc-link{text-align:left;font-family:var(--font);font-size:12.5px;color:var(--text2);background:none;border:none;padding:8px 10px;border-radius:6px;cursor:pointer;min-height:38px}
#space-systeme .sys-doc-link:hover{color:var(--text);background:var(--bg3)}
#space-systeme .sys-doc-link.on{color:var(--gold);background:var(--gold-wash)}
#space-systeme .sys-doc-body{min-width:0;font-size:13.5px;line-height:1.7;color:var(--text2)}
#space-systeme .sys-doc-body h2{font-family:var(--cinzel);font-size:15px;color:var(--gold);letter-spacing:.06em;margin:0 0 12px}
#space-systeme .sys-doc-body p{margin:0 0 10px}
#space-systeme .sys-doc-body ul,#space-systeme .sys-doc-body ol{margin:0 0 10px 18px}
#space-systeme .sys-doc-body li{margin:3px 0}
#space-systeme .sys-doc-body strong{color:var(--text)}
#space-systeme .sys-doc-body hr{border:none;border-top:1px solid var(--border);margin:14px 0}
/* Titres de section vivants (#/##/###) rendus par renderMarkdownMinimal. */
#space-systeme .sys-doc-body h3{font-family:var(--cinzel);font-size:13.5px;color:var(--gold);letter-spacing:.04em;margin:16px 0 8px}
#space-systeme .sys-doc-body h4{font-size:13.5px;color:var(--text);font-weight:600;margin:13px 0 6px}
#space-systeme .sys-doc-body h5{font-size:12.5px;color:var(--text2);font-weight:600;margin:11px 0 5px}
#space-systeme .sys-doc-body blockquote{margin:0 0 10px;padding:2px 12px;border-left:2px solid var(--gold-dim);color:var(--text3)}
#space-systeme .sys-doc-body blockquote p{margin:4px 0}
#space-systeme .sys-doc-body code{font-family:var(--mono);font-size:.88em;color:var(--gold)}
#space-systeme .sys-doc-tw{overflow-x:auto;margin:0 0 12px}
#space-systeme .sys-doc-body table{border-collapse:collapse;width:100%;font-size:12.5px}
#space-systeme .sys-doc-body th,#space-systeme .sys-doc-body td{border:1px solid var(--border);padding:6px 9px;text-align:left;vertical-align:top}
#space-systeme .sys-doc-body th{color:var(--gold);font-weight:600;background:var(--bg3)}
/* Attribution licite de la lib de graphiques (C) — footer discret des docs. */
#space-systeme .sys-doc-attr{margin-top:16px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;color:var(--text3);letter-spacing:.02em}

/* ── Session 09 · mobile ⑤ Système (planche 05e / 14) ─────────────────────────
   Sous-nav 6 onglets → chips à défilement horizontal CONTENU (barre masquée, jamais
   la page) ; panneaux empilés (déjà 1fr ≤640). Cibles ≥44px partout (chips labo,
   steppers, boutons denses de table, liens docs). Toutes les règles restent scopées
   #space-systeme (états hydratés + confirmations `window.confirm` inchangés). Pur CSS. */
@media (max-width:1023.98px){
  #space-systeme .sys-docs{grid-template-columns:1fr}
  #space-systeme .sys-doc-toc{flex-direction:row;flex-wrap:wrap;position:static;max-height:none;border-bottom:1px solid var(--border);padding-bottom:8px}
  #space-systeme .aur-bub{max-width:88%}
  /* sous-nav = chips scrollables (barre de défilement masquée, plus d'underline continu). */
  #space-systeme .sys-subnav{border-bottom:none;padding-bottom:0;gap:6px;scrollbar-width:none}
  #space-systeme .sys-subnav::-webkit-scrollbar{display:none}
  #space-systeme .sys-tab{border:1px solid var(--border);border-radius:20px;background:var(--bg3);padding:10px 16px}
  #space-systeme .sys-tab.on{border-color:var(--gold-dim);background:var(--gold-wash)}
  /* cibles tactiles ≥44px. */
  #space-systeme .sys-chip,#space-systeme .sys-btn.sm,#space-systeme .sys-btn.xs,#space-systeme .sys-doc-link{min-height:44px}
  #space-systeme .sys-stepper button{width:44px;height:44px}
  #space-systeme .sys-stepper.sm button{width:40px;height:40px}
  #space-systeme .sys-limit-field input{min-height:44px;width:120px}
}
/* Téléphones : les grilles minmax(320/280px) ne peuvent pas rétrécir sous leur min
   ⇒ débordement horizontal < 360px. On passe en 1 colonne rétrécissable (1fr). */
@media (max-width:640px){
  #space-systeme .sys-eng-grid,#space-systeme .sys-grid2{grid-template-columns:1fr}
}

/* ══ L3 · CONFIG LEGACY (les 19 sections de screenSettings) ════════════════════
   Styles ADDITIFS scopés #space-systeme. Aucune règle existante n'est modifiée.
   Vert/rouge = argent + direction UNIQUEMENT (§7) : les états de fraîcheur/
   catégorie restent neutres, jamais colorés en « bon/mauvais ». */

/* Champs de formulaire génériques (compte · chat-id · ajouts de liste) */
#space-systeme .sys-flabel{display:block;font-size:12px;color:var(--text2);margin:10px 0 5px}
#space-systeme .sys-card input[type=text],#space-systeme .sys-card input[type=number],#space-systeme .sys-card select{
  font-family:var(--mono);font-size:13px;color:var(--text);background:var(--bg3);
  border:1px solid var(--border);border-radius:7px;padding:9px 10px;width:100%;max-width:100%;min-height:40px;
}
#space-systeme .sys-card input:focus,#space-systeme .sys-card select:focus{outline:none;border-color:var(--gold-dim)}
#space-systeme .sys-card input:disabled,#space-systeme .sys-card select:disabled{opacity:.5}
#space-systeme .sys-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
#space-systeme .sys-inline input,#space-systeme .sys-inline select{flex:1 1 130px;width:auto;min-width:0}
#space-systeme .sys-inline .sys-btn{flex:0 0 auto}
#space-systeme #sys-asset-add{text-transform:uppercase}   /* parité champ legacy manualAssetInput */

/* §5 assets approuvés — puces retirables.
   ⚠ `.sys-chips` est DÉJÀ défini (session 08) et sert aussi aux chips moteur du
   Labo et aux onglets du Monitor : le redéclarer ici changeait leur `gap` et
   leur `margin` en silence. On réutilise la règle existante telle quelle. */
#space-systeme .sys-chipx{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;
  color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:5px 6px 5px 11px}
#space-systeme .sys-chipx b{color:var(--text);font-weight:600}
#space-systeme .sys-chipx button{width:24px;height:24px;border:none;border-radius:50%;background:transparent;
  color:var(--text3);font-size:15px;line-height:1;cursor:pointer}
#space-systeme .sys-chipx button:hover{color:var(--red);background:rgba(239,68,68,.1)}

/* §6 X watchlist */
#space-systeme .sys-xlist{display:flex;flex-direction:column;margin-top:6px}
#space-systeme .sys-xrow{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-top:1px solid var(--border)}
#space-systeme .sys-xrow:first-child{border-top:none}
#space-systeme .sys-xmain{flex:1;min-width:0}
#space-systeme .sys-xmain b{font-size:13px;color:var(--text)}
#space-systeme .sys-xcat{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;margin-left:7px;
  padding:2px 7px;border-radius:4px;border:1px solid var(--border);color:var(--text3);white-space:nowrap}
#space-systeme .sys-xdel{flex:0 0 auto;width:32px;height:32px;border:none;background:transparent;
  color:var(--text3);font-size:16px;cursor:pointer;border-radius:6px}
#space-systeme .sys-xdel:hover{color:var(--red);background:rgba(239,68,68,.1)}

/* §6 code couleur par catégorie (le markup émettait la classe sans style) */
#space-systeme .sys-xcat.news{color:#22C55E;border-color:rgba(34,197,94,.35)}
#space-systeme .sys-xcat.whale{color:#3B82F6;border-color:rgba(59,130,246,.35)}
#space-systeme .sys-xcat.analyst{color:#F59E0B;border-color:rgba(245,158,11,.35)}
#space-systeme .sys-xcat.official{color:#EF4444;border-color:rgba(239,68,68,.35)}
#space-systeme .sys-xcat.project{color:#A78BFA;border-color:rgba(167,139,250,.35)}
#space-systeme .sys-xcat.other{color:var(--text3)}

/* §5 date d'approbation + symbole au format inattendu (rendu, donc retirable) */
#space-systeme .sys-chipdate{font-family:var(--mono);font-size:9px;color:var(--text3);margin-left:2px}
#space-systeme .sys-chipx.bad{border-color:rgba(239,68,68,.4)}
#space-systeme .sys-chipx.bad b{color:var(--orange)}

/* §5 pastilles moteur sur un actif approuvé (⚔ SWORD · 🛡 position) */
#space-systeme .sys-chipeng{font-size:10px;line-height:1;opacity:.9}
#space-systeme .sys-chipx.held{border-color:var(--gold-dim);background:var(--gold-wash)}

/* §16 signaux d'intelligence actifs (onglet SIGNAUX du Guardian legacy) */
#space-systeme .sys-signals{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-signals-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--gold);
  text-transform:uppercase;margin-bottom:6px}
#space-systeme .sys-sigrow{padding:7px 0;border-top:1px solid var(--border)}
#space-systeme .sys-sigrow:first-of-type{border-top:none}
#space-systeme .sys-sigtop{display:flex;align-items:center;gap:6px}
#space-systeme .sys-sigcat{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  padding:1px 6px;border-radius:4px;border:1px solid var(--border)}
#space-systeme .sys-sigcat.pos{color:var(--green)} #space-systeme .sys-sigcat.warn{color:var(--orange)}
#space-systeme .sys-sigcat.neg{color:var(--red)} #space-systeme .sys-sigcat.dim{color:var(--text3)}
#space-systeme .sys-sigsum{font-size:12px;color:var(--text2);margin-top:3px;word-break:break-word}
#space-systeme .sys-sigdel{margin-left:auto;font-family:var(--font);font-size:10px;color:var(--red);
  background:none;border:1px solid rgba(239,68,68,.35);border-radius:4px;padding:2px 8px;cursor:pointer}

/* §3 bannière kill-switch + rapport de relance */
#space-systeme .sys-killbanner{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--red);
  background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.35);border-radius:8px;padding:8px 10px;margin:8px 0}
#space-systeme .sys-relance{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-relance-h{font-family:var(--cinzel);font-size:10px;letter-spacing:.24em;color:var(--gold);
  text-transform:uppercase;margin-bottom:6px}

/* §11 avertissement de plafonnement des slots */
#space-systeme .sys-clampwarn{font-family:var(--mono);font-size:10.5px;color:var(--orange);
  background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.28);border-radius:6px;padding:6px 8px;margin:6px 0}

/* §19 navigation legacy absorbée */
#space-systeme .sys-navrows{display:flex;flex-direction:column;gap:6px;margin-top:8px}
#space-systeme .sys-navrow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  text-align:left;font-family:var(--font);background:var(--bg3);border:1px solid var(--border);
  border-radius:8px;padding:11px 13px;min-height:44px;color:var(--text2);cursor:pointer}
#space-systeme .sys-navrow b{font-size:13px;color:var(--text);font-weight:600;display:block}
#space-systeme .sys-navrow:hover{border-color:var(--gold-dim)}
#space-systeme .sys-navrow.gone{cursor:default;opacity:.6}
#space-systeme .sys-navrow.gone:hover{border-color:var(--border)}

/* §4 matrice de notifications */
#space-systeme .sys-notifh{font-size:12px;color:var(--text2);margin:14px 0 6px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-notiftab td.mid,#space-systeme .sys-notiftab th:not(:first-child){text-align:center}
#space-systeme .sys-notiftab input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}
#space-systeme .sys-defchip{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--text3);
  border:1px solid var(--border);border-radius:4px;padding:1px 5px;margin-left:6px;white-space:nowrap}
/* `.sys-notif-status` (+ .ok/.bad) est DÉJÀ défini plus haut (session 08) : le
   redéclarer ici écrasait silencieusement son `margin-left` (4px → 6px) —
   exactement la dérive « diff des règles existantes = ∅ » que le projet
   interdit. Aucune redéclaration : on réutilise la règle existante. */

/* §7 déclencheurs manuels */
#space-systeme .sys-trigs{display:flex;flex-direction:column;gap:8px;margin-top:8px}
#space-systeme .sys-trig{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
#space-systeme .sys-trig .sys-btn{flex:0 0 auto;min-width:190px;justify-content:center}
#space-systeme .sys-trigs.sm .sys-btn{min-width:150px}
#space-systeme .sys-trig.bt{margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}
#space-systeme .sys-trigmsg{font-family:var(--mono);font-size:10.5px;color:var(--text3);flex:1 1 140px;min-width:0}
#space-systeme .sys-trigmsg.ok{color:var(--green)} #space-systeme .sys-trigmsg.bad{color:var(--red)}
#space-systeme .sys-trigmsg.pending{color:var(--gold)}

/* §7 résultat backtest « vrais scores » + §14 backtest */
#space-systeme .sys-btreal{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-btrealh{font-size:12px;color:var(--text2);margin-bottom:8px}
#space-systeme .sys-statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:10px 0}
#space-systeme .sys-stat{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:0}
#space-systeme .sys-stat span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--text3)}
#space-systeme .sys-stat b{font-family:var(--mono);font-size:15px;color:var(--text);font-weight:600}
#space-systeme .sys-stat b.pos,#space-systeme .pos{color:var(--green)}
#space-systeme .sys-stat b.neg,#space-systeme .neg{color:var(--red)}
#space-systeme .sys-stat b.dim{color:var(--text3)}
#space-systeme .sys-btsonnet{margin-top:8px;font-size:12px;color:var(--text2)}
#space-systeme .sys-btsec{font-size:12px;color:var(--text2);margin:14px 0 6px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-btdist{display:flex;gap:8px;flex-wrap:wrap}
#space-systeme .sys-btdist>div{flex:1 1 90px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px;text-align:center}
#space-systeme .sys-btdist>div span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em}
#space-systeme .sys-btdist>div b{font-family:var(--mono);font-size:15px;color:var(--text)}
#space-systeme .sys-btdist>div.pos span{color:var(--green)} #space-systeme .sys-btdist>div.neg span{color:var(--red)} #space-systeme .sys-btdist>div.warn span{color:var(--orange)}
#space-systeme .sys-btmonths{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:4px 12px}
#space-systeme .sys-btmonth{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px solid var(--border)}
#space-systeme .sys-btmonth b{font-family:var(--mono);font-size:12px}
#space-systeme .sys-bttrades{max-height:320px;overflow-y:auto}

/* §8 calendrier économique */
#space-systeme .sys-cal{display:flex;flex-direction:column;margin-top:6px}
#space-systeme .sys-calrow{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--border)}
#space-systeme .sys-calrow:first-child{border-top:none}
#space-systeme .sys-calmain{flex:1;min-width:0}
#space-systeme .sys-calmain b{font-size:13px;color:var(--text)}
#space-systeme .sys-calassets{color:var(--gold)}
#space-systeme .sys-calwhen{flex:0 0 auto;text-align:right;font-family:var(--mono);font-size:11px}
#space-systeme .sys-calwhen .crit{color:var(--red);font-weight:600}
#space-systeme .sys-calwhen .warn{color:var(--orange)}
#space-systeme .sys-calwhen .dim{color:var(--text3)}
/* `.sys-dot.warn` existe déjà (même valeur) — on n'ajoute que `.crit`. */
#space-systeme .sys-dot.crit{background:var(--red)}
#space-systeme .sys-dot.open{background:var(--green)} #space-systeme .sys-dot.closed{background:var(--text3)} #space-systeme .sys-dot.other{background:var(--orange)}

/* §9 System Monitor */
#space-systeme .sys-montabs{margin:6px 0 10px}
#space-systeme .sys-monsec{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--text3);
  text-transform:uppercase;margin:14px 0 6px;display:flex;gap:8px;align-items:baseline}
#space-systeme .sys-monex{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
#space-systeme .sys-monexi{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:9px 11px;min-width:0}
#space-systeme .sys-monexi b{font-size:12.5px;color:var(--text)}
#space-systeme .sys-monexi span{font-family:var(--mono);font-size:10px;margin-left:6px}
#space-systeme .sys-monexi .fresh{color:var(--text2)} #space-systeme .sys-monexi .stale{color:var(--orange)} #space-systeme .sys-monexi .dim{color:var(--text3)}

/* §9 Monitor — bloc crons (cron_health) + re-run */
#space-systeme .sys-croncat{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--text3);
  text-transform:uppercase;margin:8px 0 4px}
#space-systeme .sys-cronrow{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-top:1px solid var(--border)}
#space-systeme .sys-cronmain{flex:1;min-width:0}
#space-systeme .sys-cronmain b{font-size:12.5px;color:var(--text)}
#space-systeme .sys-cronst{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  padding:1px 6px;border-radius:4px;border:1px solid var(--border);margin-left:6px}
#space-systeme .sys-cronst.fresh{color:var(--green)} #space-systeme .sys-cronst.stale{color:var(--orange)}
#space-systeme .sys-cronst.bad{color:var(--red)} #space-systeme .sys-cronst.dim{color:var(--text3)}
#space-systeme .sys-cronerr{font-family:var(--mono);font-size:10px;color:var(--red);margin-top:2px;word-break:break-word}
#space-systeme .sys-cronalert{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:2px}
#space-systeme .sys-cronalert.critical{color:var(--red)} #space-systeme .sys-cronalert.warning{color:var(--orange)}
#space-systeme .sys-cronrow .sys-btn{flex:0 0 auto;min-height:30px;padding:4px 9px}
/* `.sys-dot.bad` existe déjà (session 08, même valeur) — on n'ajoute QUE les
   variantes réellement nouvelles. */
#space-systeme .sys-dot.fresh{background:var(--green)} #space-systeme .sys-dot.stale{background:var(--orange)}
#space-systeme .sys-dot.dim{background:var(--text3)}

/* §11 SWORD — télémétrie legacy + historique */
#space-systeme .sys-swtel{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}
#space-systeme .sys-swtel b.pos{color:var(--green)} #space-systeme .sys-swtel b.warn{color:var(--orange)} #space-systeme .sys-swtel b.neg{color:var(--red)} #space-systeme .sys-swtel b.dim{color:var(--text3)}
#space-systeme .sys-swtrades{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}
#space-systeme .sys-swtradesh{font-size:12px;color:var(--text2);margin-bottom:6px}
#space-systeme .sys-swtrow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:11.5px;border-top:1px solid var(--border)}
#space-systeme .sys-swtrow:first-of-type{border-top:none}
#space-systeme .sys-swtrow b{font-family:var(--mono);color:var(--text)}
#space-systeme .sys-swdir{font-family:var(--mono);color:var(--text3)}
#space-systeme .sys-swpnl{margin-left:auto;font-family:var(--mono)}
#space-systeme .sys-swpnl.pos{color:var(--green)} #space-systeme .sys-swpnl.neg{color:var(--red)} #space-systeme .sys-swpnl.dim{color:var(--text3)}
#space-systeme .sys-swtrow .pos{color:var(--green)} #space-systeme .sys-swtrow .warn{color:var(--orange)} #space-systeme .sys-swtrow .neg{color:var(--red)} #space-systeme .sys-swtrow .dim{color:var(--text3)}

/* §12 §13 éditeurs de paramètres moteur */
#space-systeme .sys-params{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#space-systeme .sys-param-row{display:flex;align-items:center;gap:10px;padding:6px 0;flex-wrap:wrap}
#space-systeme .sys-param-label{flex:1 1 auto;font-size:12.5px;color:var(--text2)}
#space-systeme .sys-param-row input{flex:0 0 auto;width:104px;text-align:right}
#space-systeme .sys-param-srv{font-family:var(--mono);font-size:9.5px;color:var(--text3);flex:0 0 auto}
#space-systeme .sys-param-note{flex:1 1 100%}
#space-systeme .sys-params .sys-btn{margin-top:8px}

/* Tables de régimes/alertes : les classes directionnelles réutilisent pos/neg. */
#space-systeme .sys-table td.pos{color:var(--green)} #space-systeme .sys-table td.neg{color:var(--red)} #space-systeme .sys-table td.warn{color:var(--orange)}

@media (max-width:640px){
  #space-systeme .sys-trig .sys-btn,#space-systeme .sys-trigs.sm .sys-btn{min-width:100%}
  #space-systeme .sys-param-row input{width:100%}
  #space-systeme .sys-card input[type=text],#space-systeme .sys-card input[type=number],#space-systeme .sys-card select{min-height:44px}
  #space-systeme .sys-navrow,#space-systeme .sys-xdel,#space-systeme .sys-chipx button{min-height:44px}
  #space-systeme .sys-chipx button{width:32px;height:32px}
  #space-systeme .sys-notiftab input[type=checkbox]{width:22px;height:22px}
  #space-systeme .sys-sigdel,#space-systeme .sys-cronrow .sys-btn{min-height:44px;padding:4px 12px}
}

/* ── Session 09 · overlays + safe-areas mobile (planches 05a-05e) ─────────────
   Toutes les couches modales sont des `position:fixed` z-index 60 (> barre basse 40)
   ⇒ elles couvrent la nav et flottent AU-DESSUS de tout ; aucun ancêtre en opacity<1
   / transform ne les emprisonne (piège stacking-context P3 évité — vérifié : les
   overlays sont des enfants DIRECTS de `.one-space`, jamais imbriqués dans une carte/
   rangée atténuée). Sur téléphone, on insère des paddings safe-area pour que le
   contenu (dont les boutons de confirmation capital) ne passe jamais sous l'encoche
   ni sous l'indicateur d'accueil. Confirmations d'intention inchangées (§7). */
@media (max-width:1023.98px){
  #space-trading .trd-cmodal,#space-journal .jrn-modal{
    padding:calc(env(safe-area-inset-top,0) + 10px) 12px calc(env(safe-area-inset-bottom,0) + 10px);
  }
  /* la modale de confirmation garde ses boutons atteignables au pouce même en contenu long. */
  #space-trading .trd-cmodal .cbox,#space-journal .jrn-mbox{max-height:calc(100dvh - env(safe-area-inset-top,0) - env(safe-area-inset-bottom,0) - 24px)}
}

/* ── Guardian : entrée header (planche 14) ── */
.one-guardian{
  display:inline-flex;align-items:center;gap:6px;font-family:var(--font);font-size:12px;
  color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:8px;
  padding:6px 11px;min-height:36px;cursor:pointer;white-space:nowrap;
}
.one-guardian:hover{color:var(--gold);border-color:var(--gold-dim)}
.one-guardian svg{width:15px;height:15px}
@media (max-width:1023.98px){ .one-guardian span{display:none} .one-guardian{padding:6px 9px} }
