:root{
  --bg:#05080d;
  --panel:#101722;
  --line:#203043;
  --text:#eef3fb;
  --muted:#95a3b8;
  --green:#34d399;
  --teal:#2dd4bf;
  --amber:#f59e0b;
  --red:#ef4444;
  --blue:#60a5fa;
  --cyan:#4de2ff;
  --lime:#7bf1a8;
  --rose:#fb7185;
  --shadow:0 24px 48px rgba(0,0,0,.34);
  --radius:16px;
}
[hidden]{display:none !important}
*{box-sizing:border-box}
img{max-width:100%;height:auto}
input,select,button,textarea{max-width:100%}
body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  position:relative;
  background:
    radial-gradient(circle at 12% 18%, rgba(45,212,191,.18), transparent 24%),
    radial-gradient(circle at 84% 0%, rgba(96,165,250,.18), transparent 26%),
    linear-gradient(135deg, #060b12 0%, #09111b 38%, #05080d 100%);
  font-family:"Bahnschrift","Aptos","Segoe UI Variable","Segoe UI",sans-serif;
}
body.modal-open{overflow:hidden}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(circle at center, rgba(0,0,0,.95), transparent 88%);
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, transparent 0%, rgba(5,8,13,.14) 58%, rgba(5,8,13,.58) 100%);
}
.mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.app{max-width:1500px;margin:0 auto;padding:22px 22px 28px;position:relative;z-index:1}
.topbar{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(360px,.95fr);
  gap:14px;
  align-items:start;
  margin-bottom:12px;
}
.topbar-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-self:start;
}
.panel{
  position:relative;
  overflow:hidden;
  backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(12,19,31,.92),rgba(10,15,24,.86));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  transition:transform .2s ease,box-shadow .2s ease;
}
.panel::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.28), transparent);
  pointer-events:none;
}
.topcard{
  padding:16px 18px;
  min-height:96px;
  background:linear-gradient(180deg,rgba(16,24,37,.9),rgba(10,14,22,.84));
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  transition:transform .2s ease,box-shadow .2s ease;
}
.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.headline{font-size:28px;font-weight:700;letter-spacing:-.03em;margin:4px 0 2px}
.sub{font-size:13px;color:var(--muted)}
.headline,.signal-symbol,.section-title h2,.section-title h3,.hero-symbol{font-family:"Bahnschrift","Segoe UI Variable","Segoe UI",sans-serif}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#0f151e;color:var(--muted)}
.badge.live{color:var(--green)}
.badge.paper{color:var(--amber)}
.badge.good{color:var(--teal)}
.badge.risk{color:var(--red)}
.route-filter-chip{
  appearance:none;
  cursor:pointer;
  background:#0f151e;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.route-filter-chip:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.18);
}
.route-filter-chip.active{
  color:#f4fffb;
  border-color:rgba(45,212,191,.36);
  background:linear-gradient(180deg, rgba(14,35,31,.92), rgba(10,24,24,.88));
  box-shadow:0 0 0 1px rgba(45,212,191,.12), inset 0 0 0 1px rgba(255,255,255,.03);
}
.hero-card{
  background:
    radial-gradient(circle at 82% 20%, rgba(96,165,250,.18), transparent 26%),
    radial-gradient(circle at 0% 100%, rgba(45,212,191,.18), transparent 28%),
    linear-gradient(135deg, rgba(9,16,27,.96), rgba(13,20,31,.92) 42%, rgba(10,29,35,.88));
  border-color:rgba(45,212,191,.2);
}
.hero-card::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-40px;
  top:-70px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(77,226,255,.18), transparent 68%);
  pointer-events:none;
}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.95fr);gap:18px;align-items:start}
.brand-lockup{display:flex;align-items:flex-start;gap:16px}
.brand-frame{
  position:relative;
  width:88px;
  height:88px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:24px;
  border:1px solid rgba(77,226,255,.18);
  background:linear-gradient(180deg, rgba(7,12,20,.82), rgba(10,18,28,.7));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03), 0 14px 30px rgba(0,0,0,.24);
}
.brand-frame::after{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:18px;
  border:1px solid rgba(96,165,250,.08);
  pointer-events:none;
}
.brand-mark{
  width:62px;
  height:62px;
  display:block;
  filter:drop-shadow(0 10px 20px rgba(77,226,255,.12));
}
.brand-copy{display:flex;flex-direction:column;gap:4px}
.brand-wordmark{
  font-size:36px;
  font-weight:800;
  letter-spacing:-.06em;
  line-height:1;
}
.brand-tagline{
  max-width:580px;
  font-size:14px;
  line-height:1.5;
  color:#d7e3f0;
}
.brand-ribbon{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0 10px;
}
.brand-ribbon span{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.44);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#dbe5f2;
}
.hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.hero-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 11px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(7,10,16,.46);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#dbe5f2;
}
.hero-pill.live{border-color:rgba(52,211,153,.3);color:var(--lime)}
.hero-pill.good{border-color:rgba(45,212,191,.28);color:#86ffe6}
.hero-pill.paper{border-color:rgba(245,158,11,.3);color:#ffd37a}
.hero-pill.neutral{border-color:rgba(96,165,250,.22);color:#c6dbff}
.runtime-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.runtime-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d141d;
  color:#dbe5f2;
  font-size:11px;
  line-height:1.3;
}
.runtime-chip.good{border-color:rgba(52,211,153,.24);background:rgba(52,211,153,.08)}
.runtime-chip.paper{border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.08)}
.runtime-chip.risk{border-color:rgba(239,68,68,.24);background:rgba(239,68,68,.08)}
.runtime-chip.neutral{border-color:rgba(96,165,250,.22);background:rgba(96,165,250,.08)}
.runtime-chip-label{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.runtime-chip-value{font-weight:700}
.hero-spotlight{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(96,165,250,.18);
  background:linear-gradient(180deg, rgba(9,13,21,.82), rgba(11,19,31,.62));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.hero-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hero-symbol{font-size:34px;font-weight:800;letter-spacing:-.05em;margin:6px 0 4px}
.hero-meta{font-size:13px;line-height:1.5;color:#d7e3f0}
.market-tape{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 16px;
  margin-bottom:16px;
  border-color:rgba(96,165,250,.18);
  background:linear-gradient(180deg,rgba(9,15,24,.92),rgba(8,12,19,.84));
}
.tape-label{
  flex:0 0 auto;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.tape-track{
  display:flex;
  gap:10px;
  width:100%;
  overflow:auto;
  scrollbar-width:none;
}
.tape-track::-webkit-scrollbar{display:none}
.tape-empty{font-size:13px;color:var(--muted);padding:10px 0}
.tape-chip{
  flex:0 0 auto;
  min-width:172px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg, rgba(18,26,40,.84), rgba(12,17,27,.76));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.tape-chip.up{border-color:rgba(52,211,153,.18)}
.tape-chip.down{border-color:rgba(239,68,68,.18)}
.tape-chip-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tape-symbol{font-size:16px;font-weight:700;letter-spacing:-.02em}
.tape-side{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.tape-side.up{color:var(--lime)}
.tape-side.down{color:#ff8a95}
.tape-values{display:flex;justify-content:space-between;gap:12px;margin-top:8px}
.tape-meta{font-size:11px;color:var(--muted)}
.tape-value{font-size:14px;font-weight:700;color:#edf4ff}
.panel.ops-command-center{
  padding:16px;
  margin-bottom:16px;
  border-color:rgba(45,212,191,.18);
  background:linear-gradient(180deg,rgba(9,17,28,.94),rgba(6,11,19,.86));
}
.ops-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
}
.ops-tile{
  min-width:0;
  padding:12px;
  border:1px solid rgba(116,168,255,.14);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(17,28,43,.82),rgba(7,12,20,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.ops-tile.good{border-color:rgba(52,211,153,.22);background:linear-gradient(180deg,rgba(13,34,31,.78),rgba(7,17,18,.68))}
.ops-tile.paper{border-color:rgba(245,158,11,.24);background:linear-gradient(180deg,rgba(39,29,12,.72),rgba(16,13,8,.66))}
.ops-tile.risk{border-color:rgba(239,68,68,.26);background:linear-gradient(180deg,rgba(45,14,20,.72),rgba(17,9,13,.68))}
.ops-tile-wide{grid-column:span 2}
.ops-label{
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.ops-value{
  margin-top:5px;
  font-size:20px;
  font-weight:800;
  color:var(--text);
  overflow-wrap:anywhere;
}
.ops-sub{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.ops-mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin-top:10px;
}
.ops-mini-grid span,
.ops-pill{
  min-width:0;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(3,7,12,.34);
  color:#dbe5f2;
  font-size:11px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.ops-row-stack{display:grid;gap:6px;margin-top:10px}
.ops-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  padding:7px 8px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(3,7,12,.32);
  font-size:11px;
}
.ops-row span{min-width:0;color:var(--muted);overflow-wrap:anywhere}
.ops-row strong{color:#f2f7ff;text-align:right;overflow-wrap:anywhere}
.ops-row.good,.ops-pill.good{border-color:rgba(52,211,153,.22);color:#b9ffe2}
.ops-row.paper,.ops-pill.paper{border-color:rgba(245,158,11,.22);color:#ffd37a}
.ops-row.risk,.ops-pill.risk{border-color:rgba(239,68,68,.24);color:#ffb4be}
.ops-row.neutral,.ops-pill.neutral{border-color:rgba(96,165,250,.18);color:#dcecff}
.ops-reason-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
@media (max-width:760px){
  .ops-grid{grid-template-columns:minmax(0,1fr)}
  .ops-tile-wide{grid-column:span 1}
  .ops-mini-grid{grid-template-columns:1fr}
}
.quick-stats{display:flex;gap:8px;padding:6px 16px;overflow-x:auto;scrollbar-width:none;margin-bottom:8px}
.quick-stats::-webkit-scrollbar{display:none}
.qstat{flex:1;min-width:120px;background:var(--panel);border-left:3px solid var(--teal);border-radius:6px;padding:6px 10px;font-family:"Cascadia Mono","Fira Mono","Consolas",monospace}
.qstat-label{font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.qstat-value{font-size:.95rem;color:var(--text);font-weight:600;margin-top:2px}
.qstat.accent-amber{border-left-color:var(--amber)}
.qstat.accent-red{border-left-color:var(--red)}
.qstat.accent-green{border-left-color:var(--green)}
.qstat.accent-teal{border-left-color:var(--teal)}
.main{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;min-height:540px}
.left,.right,.bottom{padding:18px}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.section-title h2,.section-title h3{margin:0;font-size:15px;letter-spacing:.02em}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.filters input,.filters select,.filters button,.compare-controls select,.action-btn{
  background:#0b1119;
  border:1px solid rgba(96,165,250,.16);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  font:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.filters button,.action-btn{cursor:pointer;background:linear-gradient(180deg,#18283d,#101827)}
.cluster-review-panel{margin-bottom:14px;padding:14px}
.cluster-review-list{display:flex;flex-direction:column;gap:10px;max-height:240px;overflow:auto;padding-right:4px}
.cluster-review-item{
  padding:12px;
  border:1px solid rgba(96,165,250,.12);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(18,26,38,.92),rgba(12,18,28,.82));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.cluster-review-item.alerted{border-color:rgba(52,211,153,.24)}
.cluster-review-item.cooldown{border-color:rgba(245,158,11,.24)}
.cluster-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.cluster-review-symbol{font-size:14px;font-weight:700;letter-spacing:-.02em}
.cluster-review-time{font-size:11px;color:var(--muted)}
.cluster-review-grid{display:grid;gap:8px}
.cluster-review-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:start}
.cluster-review-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.cluster-review-value{font-size:12px;color:var(--text);word-break:break-word}
.cluster-review-empty{
  padding:12px;
  border:1px dashed rgba(96,165,250,.16);
  border-radius:14px;
  font-size:12px;
  color:var(--muted);
  background:rgba(10,15,23,.42);
}
.signal-list{display:flex;flex-direction:column;gap:10px;max-height:620px;overflow:auto;padding-right:4px}
.signal-card{
  padding:14px;
  border:1px solid rgba(96,165,250,.12);
  border-radius:16px;
  background:linear-gradient(180deg,#121a26,#0f151f);
  cursor:pointer;
  transition:.16s transform,.16s border-color,.16s background,.16s box-shadow;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.signal-card:hover{transform:translateY(-1px);border-color:#355072;box-shadow:0 14px 28px rgba(0,0,0,.22)}
.signal-card.active{border-color:#4b7fb5;background:linear-gradient(180deg,#152233,#111a26);box-shadow:0 16px 32px rgba(0,0,0,.24), inset 0 0 0 1px rgba(96,165,250,.1)}
.signal-card.up{border-color:rgba(52,211,153,.16)}
.signal-card.down{border-color:rgba(239,68,68,.16)}
.signal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.signal-stack{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.signal-side{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:56px;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.signal-side.up{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.28);color:var(--lime)}
.signal-side.down{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.28);color:#ff909b}
.signal-secondary-badge{
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(245,158,11,.22);
  background:rgba(245,158,11,.08);
  color:#ffd37a;
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.signal-symbol{font-size:17px;font-weight:700;letter-spacing:-.02em}
.tier{padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border:1px solid transparent}
.tier.elite{background:rgba(45,212,191,.12);border-color:rgba(45,212,191,.35);color:var(--teal)}
.tier.high{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.35);color:var(--green)}
.tier.watch{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:var(--amber)}
.tier.low,.tier.unknown{background:rgba(107,114,128,.12);border-color:rgba(107,114,128,.35);color:#c2cad6}
.status{margin-top:6px;color:var(--muted);font-size:12px}
.signal-scorebox{text-align:right}
.signal-score{font-size:24px;font-weight:800;letter-spacing:-.03em}
.trade-lifecycle-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:10px 0 12px;
}
.trade-lifecycle-strip > div{
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(96,165,250,.12);
  border-radius:12px;
  background:rgba(13,20,29,.78);
}
.trade-lifecycle-strip span,
.signal-action{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.trade-lifecycle-strip strong{
  display:block;
  margin-top:3px;
  font-size:12px;
  line-height:1.25;
  color:#dce7f3;
}
.signal-decision-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.signal-stage-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(245,158,11,.24);
  background:rgba(245,158,11,.08);
  color:#ffd37a;
  font-size:10px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.signal-stage-badge.good,
.signal-stage-badge.manage{
  border-color:rgba(52,211,153,.28);
  background:rgba(52,211,153,.1);
  color:var(--green);
}
.signal-stage-badge.risk{
  border-color:rgba(239,68,68,.28);
  background:rgba(239,68,68,.1);
  color:#ff909b;
}
.signal-lifecycle{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin-top:10px;
}
.signal-lifecycle span{
  position:relative;
  min-width:0;
  padding:6px 7px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#0c131c;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  text-align:center;
  text-transform:uppercase;
}
.signal-lifecycle span.done{
  border-color:rgba(45,212,191,.24);
  color:var(--teal);
  background:rgba(45,212,191,.07);
}
.signal-lifecycle span.active{
  border-color:rgba(96,165,250,.28);
  color:#9dc7ff;
  background:rgba(96,165,250,.09);
}
.signal-lifecycle span.watch{
  border-color:rgba(245,158,11,.24);
  color:var(--amber);
  background:rgba(245,158,11,.08);
}
.signal-command-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:8px;
}
.signal-command-strip > div{
  min-width:0;
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  background:rgba(8,13,21,.72);
}
.signal-command-strip span{
  display:block;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.15;
  text-transform:uppercase;
}
.signal-command-strip strong{
  display:block;
  margin-top:3px;
  color:#edf6ff;
  font-size:11px;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.signal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;color:var(--muted);font-size:12px}
.signal-microbar{height:7px;margin-top:12px;background:#0a1017;border:1px solid rgba(255,255,255,.05);border-radius:999px;overflow:hidden}
.signal-microbar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#60a5fa)}
.signal-card.down .signal-microbar > span{background:linear-gradient(90deg,#fb7185,#f59e0b)}
.signal-plan-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:10px;
}
.signal-plan-row span{
  min-width:0;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  background:#0b121a;
  color:#d9e4f0;
  font-size:11px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.signal-plan-row b{
  display:block;
  margin-bottom:2px;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.signal-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag{padding:4px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;color:#c8d1df;background:#0d131b}
.signal-note{margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.detail-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#131b25,#101722);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease,filter .18s ease}
.detail-card h3{margin:0 0 10px;font-size:14px}
.detail-card h4{margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.detail-span-2{grid-column:1 / -1}
.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.hero h1{margin:0;font-size:30px;letter-spacing:-.04em}
.thesis{display:flex;flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none}
.thesis li,.ai-list li{font-size:14px;color:#d8e1ef;padding-left:16px;position:relative}
.thesis li::before,.ai-list li::before{content:"";width:7px;height:7px;border-radius:999px;background:var(--blue);position:absolute;left:0;top:8px}
.ai-list.risks li::before{background:var(--amber)}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.metric-block{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#0d141d}
.metric-block .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.metric-block .v{font-size:20px;font-weight:800;letter-spacing:-.03em;margin-top:4px}
.trade-usecase-card .signal-lifecycle{margin-top:4px}
.trade-lifecycle-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.lifecycle-tile{
  min-width:0;
  padding:12px;
  border:1px solid rgba(96,165,250,.12);
  border-radius:12px;
  background:#0d141d;
}
.lifecycle-tile .k{
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.lifecycle-tile .v{
  margin-top:3px;
  font-size:15px;
  font-weight:800;
  color:#e4edf8;
}
.lifecycle-tile p{
  margin:7px 0 0;
  font-size:12px;
  line-height:1.5;
  color:var(--muted);
}
.breakdown-row{display:grid;grid-template-columns:110px 1fr 54px;gap:10px;align-items:center;margin:10px 0}
.bar{height:9px;background:#0d141d;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#60a5fa)}
.small{font-size:12px;color:var(--muted)}
.ai-copy{margin:10px 0 0;font-size:14px;line-height:1.6;color:#d8e1ef}
.ai-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.microcopy{margin-top:14px;font-size:12px;line-height:1.5;color:var(--muted)}
.compare-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.compare-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.compare-grid{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.compare-row{display:grid;grid-template-columns:110px 1fr 1fr 120px;gap:10px;align-items:center}
.compare-cell{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0d141d}
.compare-cell.win{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}
.compare-edge{font-size:12px;color:var(--muted);text-align:right}
.analytics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.analytics ul,.lab-list,.log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.analytics li,.lab-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.log-list li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.session-command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:12px}
.session-command-briefs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.session-command-brief{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0d141d;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.session-command-brief.good{border-color:rgba(52,211,153,.18)}
.session-command-brief.paper{border-color:rgba(245,158,11,.18)}
.session-command-brief.risk{border-color:rgba(239,68,68,.18)}
.session-command-brief-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.session-command-feed{margin-top:14px}
.session-command-feed li{padding:12px 0}
.session-command-meta{font-size:12px;color:var(--muted)}
.session-command-next{font-size:12px;line-height:1.5;color:#d7e3f0}
.session-command-event-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
@keyframes deskSpotlightPulse{
  0%{box-shadow:0 0 0 0 rgba(96,165,250,.36), inset 0 0 0 1px rgba(255,255,255,.03)}
  50%{box-shadow:0 0 0 10px rgba(96,165,250,0), 0 18px 40px rgba(0,0,0,.28), inset 0 0 0 1px rgba(96,165,250,.18)}
  100%{box-shadow:0 0 0 0 rgba(96,165,250,0), inset 0 0 0 1px rgba(255,255,255,.03)}
}
.desk-spotlight{
  position:relative;
  animation:deskSpotlightPulse 1.45s ease-out 1;
  scroll-margin-top:24px;
}
.lab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:16px}
.lab-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.log-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.log-meta{font-size:12px;color:var(--muted)}
.button-row{display:flex;gap:10px;flex-wrap:wrap}
@keyframes workspaceReveal{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes workspaceGlow{
  0%,100%{transform:translate3d(0,14px,0);opacity:.26}
  50%{transform:translate3d(-28px,-10px,0);opacity:.6}
}
.workspace-shell{margin-top:16px}
.workspace-bar{
  position:sticky;
  top:0;
  z-index:30;
  overflow:hidden;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,#101721,#0d141d);
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.workspace-bar::after{
  content:"";
  position:absolute;
  right:-68px;
  bottom:-62px;
  width:220px;
  height:140px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(96,165,250,.16), transparent 70%);
  pointer-events:none;
  opacity:.36;
}
.workspace-copy{display:flex;flex-direction:column;gap:4px}
.workspace-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.workspace-hint{font-size:13px;color:#cfd7e4}
.workspace-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.workspace-tabs{display:flex;gap:10px;flex-wrap:wrap}
.workspace-tab{background:#0d131b;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:12px;font:inherit;font-weight:700;font-size:13px;letter-spacing:.02em;cursor:pointer;transition:.16s border-color,.16s color,.16s background,.16s transform}
.workspace-tab:hover{transform:translateY(-1px);border-color:#365173;color:var(--text)}
.workspace-tab.active{color:var(--text);border-color:#4b7fb5;background:linear-gradient(180deg,#152232,#111a26);box-shadow:inset 0 0 0 1px rgba(96,165,250,.18)}
.workspace-panel{display:none}
.workspace-panel.active{display:block;animation:workspaceReveal .26s ease-out}
.deck-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1 1 auto;justify-content:center}
.deck-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:#0d141d;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.deck-chip.good{border-color:rgba(52,211,153,.3);color:var(--green)}
.deck-chip.stale{border-color:rgba(245,158,11,.3);color:var(--amber)}
.focus-bubble{
  margin-bottom:16px;
  padding:18px;
  border-color:rgba(77,226,255,.24);
  background:
    radial-gradient(circle at 82% 16%, rgba(96,165,250,.14), transparent 24%),
    radial-gradient(circle at 0% 100%, rgba(45,212,191,.14), transparent 28%),
    linear-gradient(135deg, rgba(9,16,27,.94), rgba(12,20,31,.9) 44%, rgba(8,28,34,.88));
}
.focus-bubble-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;align-items:start}
.focus-bubble-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.focus-bubble-copy{display:flex;flex-direction:column;gap:10px}
.focus-bubble-title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.05em}
.focus-bubble-title .mono{font-size:28px}
.focus-bubble-pills{display:flex;gap:8px;flex-wrap:wrap}
.focus-bubble-panel{
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(96,165,250,.16);
  background:linear-gradient(180deg, rgba(9,13,21,.82), rgba(11,19,31,.62));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.focus-bubble-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
.focus-bubble-actions{margin-top:4px}
.focus-bubble-callout{
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(13,20,31,.92), rgba(8,13,21,.9));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.focus-bubble-callout.good{border-color:rgba(45,212,191,.24);background:linear-gradient(180deg, rgba(10,34,31,.92), rgba(8,18,18,.9))}
.focus-bubble-callout.paper{border-color:rgba(245,158,11,.22);background:linear-gradient(180deg, rgba(38,28,10,.92), rgba(18,14,8,.9))}
.focus-bubble-callout.risk{border-color:rgba(248,113,113,.22);background:linear-gradient(180deg, rgba(36,16,20,.92), rgba(20,10,13,.9))}
.focus-bubble-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.focus-bubble-lane{
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(11,17,28,.96), rgba(8,13,22,.92));
  display:flex;
  flex-direction:column;
  gap:8px;
}
.focus-bubble-lane.long{border-color:rgba(45,212,191,.22)}
.focus-bubble-lane.short{border-color:rgba(248,113,113,.18)}
.focus-bubble-lane-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.focus-bubble-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.focus-bubble-note{font-size:12px;line-height:1.55;color:#d9e5f0}
.focus-bubble-note strong{color:#f5fbff}
.focus-bubble-queue{display:flex;flex-direction:column;gap:10px}
.focus-bubble-queue-item{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(8,12,17,.78)
}
.focus-bubble-queue-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.focus-bubble-queue-meta{font-size:11px;color:#9fb0c2;letter-spacing:.02em}
.backtest-visuals{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin:16px 0 18px}
.backtest-wide{grid-column:1 / -1}
.backtest-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.backtest-stat{padding:12px;border-radius:14px;border:1px solid rgba(96,165,250,.12);background:linear-gradient(180deg,#0f1722,#0b1119)}
.backtest-stat-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.backtest-stat-value{font-size:24px;font-weight:800;letter-spacing:-.04em;margin-top:6px}
.backtest-stat-note{font-size:12px;color:#cfd8e4;margin-top:4px}
.coverage-meter,.edge-bar,.leaderboard-bar{height:10px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.05);background:#0a1017}
.coverage-meter{margin-top:14px}
.coverage-meter > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#60a5fa)}
.edge-ladder,.leaderboard-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.edge-row,.leaderboard-row{display:grid;grid-template-columns:96px 1fr 92px 88px;gap:10px;align-items:center}
.edge-bar > span,.leaderboard-bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#4de2ff)}
.edge-bar.negative > span,.leaderboard-bar.negative > span{background:linear-gradient(90deg,#fb7185,#f59e0b)}
.win-pill,.sample-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d141d;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#dbe5f2;
}
.win-pill.good{border-color:rgba(52,211,153,.24);color:var(--lime)}
.win-pill.paper{border-color:rgba(245,158,11,.24);color:#ffd37a}
.win-pill.risk{border-color:rgba(239,68,68,.24);color:#ff9ca6}
.backtest-empty{margin-top:14px;font-size:13px;color:var(--muted)}
.book-analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.book-analytics-card{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#131b25,#101722)}
.book-analytics-card .ba-name{font-size:12px;font-weight:700;color:var(--text)}
.book-analytics-card .ba-return{font-size:20px;font-weight:800;letter-spacing:-.03em;color:var(--teal)}
.book-analytics-card .ba-meta{color:var(--muted)}
.unlock-empty{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed rgba(116,168,255,.18);border-radius:14px;background:rgba(8,12,17,.5)}
.unlock-skeleton{display:flex;flex-direction:column;gap:6px}
.unlock-skeleton span{height:8px;border-radius:999px;background:linear-gradient(90deg,rgba(45,212,191,.12),rgba(96,165,250,.06));animation:unlockPulse 1.6s ease-in-out infinite}
.unlock-skeleton span:nth-child(1){width:72%}
.unlock-skeleton span:nth-child(2){width:46%}
.unlock-skeleton span:nth-child(3){width:60%}
.unlock-copy{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.unlock-title{font-size:12px;font-weight:700;color:var(--text)}
.unlock-meta{font-size:11px;color:var(--muted)}
.unlock-bar{height:6px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.05);background:#0a1017}
.unlock-bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--blue))}
.unlock-hint{font-size:11px;color:var(--muted)}
@keyframes unlockPulse{0%,100%{opacity:.4}50%{opacity:.85}}
@media(prefers-reduced-motion:reduce){.unlock-skeleton span{animation:none}}
/* Macro Desk / TradFi board */
.macro-grouphdr{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 0 10px}
.macro-grouphdr:first-child{margin-top:4px}
.macro-count{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;color:var(--muted)}
.macro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.macro-card{display:flex;flex-direction:column;gap:10px;padding:14px}
.macro-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.macro-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.macro-sym{font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--text)}
.macro-name{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.macro-tag{margin-top:3px;align-self:flex-start;padding:1px 8px;border-radius:999px;border:1px solid rgba(96,165,250,.25);background:#0d141d;font-size:10px;font-weight:700;color:#c6dbff}
.macro-quote{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.macro-price{font-size:22px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.macro-chg{font-size:13px;font-weight:700;display:inline-flex;align-items:baseline;gap:4px;color:var(--muted)}
.macro-chg small{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.macro-chg.up{color:var(--green)}
.macro-chg.down{color:var(--rose)}
.macro-range{position:relative;height:6px;border-radius:999px;background:#0a1017;border:1px solid rgba(255,255,255,.05)}
.macro-range i{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:linear-gradient(180deg,var(--cyan),var(--teal));transform:translate(-50%,-50%);box-shadow:0 0 8px rgba(77,226,255,.5)}
.macro-rows{display:flex;flex-direction:column;gap:6px}
.macro-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}
.macro-k{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;flex:0 0 auto}
.macro-v{color:#d9e5f0;text-align:right}
.macro-v b{font-weight:700}
.macro-v b.up{color:var(--green)}
.macro-v b.down{color:var(--rose)}
.macro-hot{color:var(--amber);font-weight:700}
.macro-ma{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.02em}
.macro-ma.up{color:var(--green)}
.macro-ma.down{color:var(--rose)}
.macro-read{font-size:12px;line-height:1.5;color:#cdd9e6;border-top:1px solid var(--line);padding-top:8px}
.sim-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.sim-card{
  padding:14px;
  border:1px solid rgba(96,165,250,.12);
  border-radius:16px;
  background:linear-gradient(180deg,#0f1722,#0b1119);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.sim-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.sim-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:14px}
.sim-card.best{border-color:rgba(52,211,153,.26);box-shadow:0 16px 32px rgba(0,0,0,.18), inset 0 0 0 1px rgba(52,211,153,.08)}
.sim-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sim-card-title{font-size:14px;font-weight:700;letter-spacing:.01em}
.sim-card-sub{margin-top:4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sim-filter-btn{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left}
.sim-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.sim-metric{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#0d141d}
.sim-metric .k{font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.sim-metric .v{margin-top:4px;font-size:18px;font-weight:800;letter-spacing:-.03em}
.sim-curve{display:grid;grid-template-columns:repeat(auto-fit,minmax(8px,1fr));gap:4px;align-items:end;height:58px;margin-top:14px}
.sim-curve span{display:block;min-height:8px;border-radius:999px 999px 3px 3px;background:linear-gradient(180deg,#2dd4bf,#60a5fa)}
.sim-curve span.down{background:linear-gradient(180deg,#fb7185,#f59e0b)}
.curve-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.curve-card{padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg, rgba(11,17,28,.94), rgba(8,13,22,.9));display:flex;flex-direction:column;gap:8px}
.curve-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.curve-track{margin-top:6px}
.execution-filmstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.filmstrip-card{
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(11,17,28,.96), rgba(8,13,22,.92));
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:228px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.filmstrip-card.good{border-color:rgba(45,212,191,.22);background:linear-gradient(180deg, rgba(8,29,28,.94), rgba(7,15,17,.92))}
.filmstrip-card.risk{border-color:rgba(239,68,68,.18);background:linear-gradient(180deg, rgba(33,14,18,.94), rgba(16,9,11,.92))}
.filmstrip-card.paper{border-color:rgba(245,158,11,.18);background:linear-gradient(180deg, rgba(33,24,10,.94), rgba(16,12,8,.92))}
.filmstrip-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.filmstrip-step{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.filmstrip-title{font-size:16px;font-weight:800;letter-spacing:-.03em}
.filmstrip-meta{display:flex;gap:8px;flex-wrap:wrap}
.filmstrip-route-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.filmstrip-route-segment{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.54);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.filmstrip-route-segment.good{border-color:rgba(45,212,191,.22);background:linear-gradient(180deg, rgba(8,39,35,.9), rgba(8,18,18,.88))}
.filmstrip-route-segment.paper{border-color:rgba(245,158,11,.18);background:linear-gradient(180deg, rgba(42,28,12,.9), rgba(18,13,10,.88))}
.filmstrip-route-segment.risk{border-color:rgba(239,68,68,.2);background:linear-gradient(180deg, rgba(44,16,20,.92), rgba(18,10,12,.88))}
.filmstrip-route-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.filmstrip-route-value{font-size:12px;font-weight:700;letter-spacing:.01em;color:#eff6ff}
.filmstrip-route-caption{font-size:11px;line-height:1.45;color:#c7d4e3}
.filmstrip-chip{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.5);
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#dce6f2;
}
.filmstrip-copy{font-size:12px;line-height:1.55;color:#dbe5f2}
.filmstrip-track{
  margin-top:auto;
  height:8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.05);
  background:#091019;
  overflow:hidden;
}
.filmstrip-track > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#60a5fa)}
.filmstrip-card.risk .filmstrip-track > span{background:linear-gradient(90deg,#fb7185,#f59e0b)}
.map-path{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.map-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(8,12,18,.82);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#dce6f2;
  transition:transform .2s ease, border-color .2s ease, background .2s ease, opacity .2s ease;
}
.map-chip.done{border-color:rgba(96,165,250,.16);background:rgba(10,18,29,.86)}
.map-chip.active{border-color:rgba(45,212,191,.26);background:rgba(8,29,28,.92);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(45,212,191,.08)}
.map-chip.idle{opacity:.48;filter:saturate(.65)}
.map-arrow{font-size:12px;color:var(--muted)}
.map-arrow.done,.map-arrow.active{color:#cde3fb}
.map-arrow.idle{opacity:.38}
.map-build-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px}
.map-meter{
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(11,17,28,.94), rgba(8,13,22,.9));
  display:flex;
  flex-direction:column;
  gap:8px;
}
.map-meter-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.map-meter-track{height:8px;border-radius:999px;border:1px solid rgba(255,255,255,.05);background:#091019;overflow:hidden}
.map-meter-track > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#60a5fa)}
.map-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.map-stage{
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg, rgba(11,17,28,.96), rgba(8,13,22,.92));
  display:flex;
  flex-direction:column;
  gap:8px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
  transition:transform .22s ease, border-color .22s ease, opacity .22s ease, filter .22s ease, box-shadow .22s ease;
}
.map-stage.live{border-color:rgba(96,165,250,.22);background:linear-gradient(180deg, rgba(14,22,36,.96), rgba(9,14,23,.92))}
.map-stage.good{border-color:rgba(45,212,191,.2);background:linear-gradient(180deg, rgba(8,29,28,.94), rgba(7,15,17,.92))}
.map-stage.paper{border-color:rgba(245,158,11,.18);background:linear-gradient(180deg, rgba(33,24,10,.94), rgba(16,12,8,.92))}
.map-stage.risk{border-color:rgba(239,68,68,.18);background:linear-gradient(180deg, rgba(33,14,18,.94), rgba(16,9,11,.92))}
.map-stage.wide{grid-column:1 / -1}
.map-stage.masked{opacity:.36;transform:translateY(10px);filter:saturate(.62)}
.map-stage.revealed{opacity:1;transform:translateY(0);filter:none}
.map-stage.active{box-shadow:0 16px 32px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.03);border-color:rgba(77,226,255,.24)}
.map-stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.map-stage-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.map-stage-title{font-size:18px;font-weight:800;letter-spacing:-.03em}
.map-stage-copy{font-size:12px;line-height:1.55;color:#dbe5f2}
.map-stage-meta{display:flex;gap:8px;flex-wrap:wrap}
.map-ghost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.map-ghost-chip{
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(7,10,16,.72);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.map-sidecar{
  margin-top:14px;
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(96,165,250,.16);
  background:linear-gradient(180deg, rgba(10,16,26,.96), rgba(8,12,20,.92));
}
.sim-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:16px}
.sim-subpanel{padding:14px;border:1px solid var(--line);border-radius:16px;background:#0d141d}
.sim-subpanel h4{margin:0 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.performance-lifecycle-panel{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(13,22,33,.9),rgba(8,13,21,.88));
}
.performance-lifecycle-panel.good{border-color:rgba(52,211,153,.24)}
.performance-lifecycle-panel.risk{border-color:rgba(239,68,68,.24)}
.performance-lifecycle-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.performance-lifecycle-head span{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.performance-lifecycle-head strong{
  display:block;
  margin-top:4px;
  font-size:24px;
  line-height:1;
}
.performance-lifecycle-copy{
  margin-top:10px;
  color:#d8e1ef;
  font-size:12px;
  line-height:1.45;
}
.performance-lifecycle-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.performance-lifecycle-strip > div{
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:12px;
  background:#0a1119;
}
.performance-lifecycle-strip span,
.performance-lifecycle-strip small{
  display:block;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.15;
  text-transform:uppercase;
}
.performance-lifecycle-strip strong{
  display:block;
  margin:4px 0 2px;
  color:#f6fbff;
  font-family:var(--mono);
  font-size:18px;
  line-height:1;
}
.performance-position-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
  gap:10px;
}
.position-command-card{
  min-width:0;
  padding:12px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;
  background:rgba(8,13,21,.72);
}
.position-command-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.position-command-head > div:first-child{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  min-width:0;
}
.position-command-head strong{
  color:#f6fbff;
  font-size:13px;
}
.position-command-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:10px;
  color:#d8e1ef;
  font-size:10px;
}
.position-command-meta span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.agent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.agent-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(96,165,250,.14);
  background:linear-gradient(180deg,#121a26,#0f151f);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
  cursor:pointer;
  color:inherit;
  text-align:left;
  transition:.16s transform,.16s border-color,.16s box-shadow;
}
.agent-card:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(0,0,0,.18)}
.agent-card.active{border-color:var(--agent-accent,#4b7fb5);box-shadow:0 16px 32px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.03)}
.agent-card.best{background:linear-gradient(180deg,rgba(20,31,45,.96),rgba(13,19,30,.9))}
.agent-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.agent-id{display:flex;align-items:center;gap:12px}
.agent-avatar{
  --agent-avatar-size:56px;
  position:relative;
  width:var(--agent-avatar-size);
  height:var(--agent-avatar-size);
  flex:0 0 var(--agent-avatar-size);
  border-radius:999px;
  display:grid;
  place-items:center;
  isolation:isolate;
  color:#eef3fb;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(8,12,20,.98),rgba(6,10,18,.94));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03), 0 12px 28px rgba(0,0,0,.24);
  overflow:visible;
}
.agent-avatar::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:999px;
  background:radial-gradient(circle, var(--agent-accent-soft,rgba(96,165,250,.18)) 0%, transparent 72%);
  opacity:.5;
  filter:blur(8px);
  transform:scale(.92);
  z-index:-2;
}
.agent-avatar::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 0 0 1px var(--agent-accent-soft,rgba(96,165,250,.16)), inset 0 0 26px var(--agent-accent-soft,rgba(96,165,250,.16));
  opacity:.9;
  z-index:1;
  pointer-events:none;
}
.agent-avatar--sm{--agent-avatar-size:42px}
.agent-avatar--lg{--agent-avatar-size:64px}
.agent-avatar-core{
  position:relative;
  width:100%;
  height:100%;
  border-radius:inherit;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.12), transparent 24%),
    radial-gradient(circle at 50% 12%, var(--agent-accent-soft,rgba(96,165,250,.14)), transparent 38%),
    linear-gradient(180deg, rgba(11,17,28,.98), rgba(7,10,18,.94));
}
.agent-avatar-core svg{
  width:68%;
  height:68%;
  display:block;
  filter:drop-shadow(0 0 10px var(--agent-accent-soft,rgba(96,165,250,.18)));
}
.agent-avatar-rings{
  position:absolute;
  inset:8px;
  border-radius:999px;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.04);
  opacity:.7;
}
.agent-avatar-scanline{
  position:absolute;
  left:10px;
  right:10px;
  top:14px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, transparent, var(--agent-accent,#60a5fa), transparent);
  opacity:0;
  pointer-events:none;
}
.agent-avatar-crown{
  position:absolute;
  top:-6px;
  right:-2px;
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg, rgba(255,214,102,.96), rgba(181,123,24,.94));
  box-shadow:0 8px 18px rgba(0,0,0,.24);
  z-index:2;
}
.agent-avatar-crown svg{
  width:12px;
  height:12px;
  display:block;
  fill:#231400;
}
.agent-avatar--steady .agent-avatar-core{animation:agentSlowBreath 5.2s ease-in-out infinite}
.agent-avatar--orbital .avatar-orbit{transform-origin:32px 32px;animation:agentOrbit 10s linear infinite}
.agent-avatar--flash .agent-avatar-core{animation:agentChargeFlash 2.8s ease-in-out infinite}
.agent-avatar--glitch .agent-avatar-core svg{animation:agentGlitch 4.4s steps(2,end) infinite}
.agent-avatar--scan .agent-avatar-scanline{animation:agentScan 2.7s ease-in-out infinite}
.agent-avatar--crowned::before,
.agent-avatar--surging::before,
.agent-avatar--hot::before{opacity:.82;transform:scale(1.02);animation:agentAura 2.6s ease-in-out infinite}
.agent-avatar--watching::before{opacity:.56}
.agent-avatar--quiet{opacity:.72}
.agent-avatar--quiet::before{opacity:.28}
.agent-avatar--quiet::after{opacity:.54}
.agent-avatar--bruised::after{border-style:dashed;opacity:.64}
.agent-avatar--bruised .agent-avatar-core{filter:saturate(.82)}
.agent-avatar.is-crowned::after{box-shadow:0 0 0 1px rgba(255,214,102,.28), inset 0 0 28px rgba(255,214,102,.2)}
.agent-name{font-size:18px;font-weight:800;letter-spacing:-.03em}
.agent-role{font-size:12px;color:var(--muted)}
.agent-tag{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.08);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.agent-focus{font-size:12px;color:#c8d1df}
.agent-note{font-size:13px;line-height:1.5;color:#d8e1ef}
.agent-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.agent-kv{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.05);
  background:#0d141d;
}
.agent-kv .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.agent-kv .v{margin-top:4px;font-size:18px;font-weight:800;letter-spacing:-.03em}
.agent-chips{display:flex;flex-wrap:wrap;gap:8px}
.agent-chip{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d141d;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#dbe5f2;
}
.agent-market-row{display:grid;grid-template-columns:132px 1fr 72px;gap:10px;align-items:center}
.agent-market-bar{height:10px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.05);background:#0a1017}
.agent-market-bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--agent-accent,#60a5fa),#4de2ff)}
.agent-detail-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
@keyframes agentAura{
  0%,100%{opacity:.54;transform:scale(.96)}
  50%{opacity:.92;transform:scale(1.03)}
}
@keyframes agentSlowBreath{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-1px) scale(1.02)}
}
@keyframes agentOrbit{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes agentChargeFlash{
  0%,100%{filter:saturate(1) brightness(1)}
  45%{filter:saturate(1.12) brightness(1.08)}
  55%{filter:saturate(1.2) brightness(1.18)}
}
@keyframes agentGlitch{
  0%,100%{transform:translate(0,0)}
  14%{transform:translate(.5px,-.4px)}
  16%{transform:translate(-.6px,.3px)}
  18%{transform:translate(0,0)}
  62%{transform:translate(.4px,.2px)}
  64%{transform:translate(-.5px,-.3px)}
  66%{transform:translate(0,0)}
}
@keyframes agentScan{
  0%{opacity:0;transform:translateY(-8px)}
  15%{opacity:.15}
  50%{opacity:.9}
  100%{opacity:0;transform:translateY(26px)}
}
.sim-scenario-name{font-size:13px;font-weight:700;color:#eef3fb}
.sim-scenario-flags{display:flex;gap:6px;flex-wrap:wrap}
.sim-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sim-compare-card{padding:12px;border:1px solid var(--line);border-radius:14px;background:#101722}
.sim-compare-card h5{margin:0 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.execution-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:16px}
.execution-wide{grid-column:1 / -1}
.execution-form{display:flex;flex-direction:column;gap:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.input-stack{display:flex;flex-direction:column;gap:6px}
.input-stack label{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.input-stack input,.input-stack select,.input-stack textarea{
  width:100%;
  background:#0b1119;
  border:1px solid rgba(96,165,250,.16);
  color:var(--text);
  padding:10px 12px;
  border-radius:12px;
  font:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.input-stack textarea{min-height:88px;resize:vertical}
.inline-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0d141d;
  color:#d8e1ef;
  font-size:13px;
}
.inline-toggle input{width:16px;height:16px;margin:0}
.execution-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.position-chart-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.position-chart-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(96,165,250,.14);
  background:rgba(11,17,25,.72);
  color:var(--text);
  font-size:12px;
}
.position-chart-toggle input{accent-color:var(--teal)}
.position-chart-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
.position-chart-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}
.position-chart-strip .metric-block{padding:10px 12px}
.position-chart-strip .metric-block .v{font-size:18px}
.position-chart-strip .metric-block .small{margin-top:4px}
.position-chart-shell{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(96,165,250,.14);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(11,17,27,.86),rgba(9,14,22,.78));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.position-chart-hover{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(96,165,250,.12);
  background:rgba(8,12,19,.68);
}
.position-chart-hover strong{display:block;font-size:13px}
.position-chart-hover .small{margin-top:4px}
.position-chart-svg{display:block;width:100%;height:auto}
.position-chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.position-chart-bot{
  appearance:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(96,165,250,.14);
  background:#0b1119;
  color:var(--text);
  font:inherit;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,opacity .16s ease;
}
.position-chart-bot:hover{transform:translateY(-1px)}
.position-chart-bot.active{
  border-color:rgba(77,226,255,.34);
  background:linear-gradient(180deg, rgba(15,31,40,.96), rgba(10,20,26,.9));
  box-shadow:0 0 0 1px rgba(77,226,255,.14);
}
.position-chart-bot.live .position-chart-swatch{background:var(--cyan)}
.position-chart-bot.ghost .position-chart-swatch{background:rgba(123,241,168,.68)}
.position-chart-bot.muted{opacity:.48}
.position-chart-swatch{
  width:10px;
  height:10px;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(255,255,255,.12);
}
.position-chart-empty{
  padding:18px 16px;
  border-radius:16px;
  border:1px dashed rgba(96,165,250,.18);
  background:rgba(9,14,22,.56);
  color:var(--muted);
  font-size:13px;
}
.desk-status{margin-top:12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.05);background:#0d141d;font-size:13px;color:#d8e1ef}
.desk-status.good{border-color:rgba(52,211,153,.24);background:rgba(52,211,153,.08)}
.desk-status.paper{border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.08)}
.desk-status.risk{border-color:rgba(239,68,68,.24);background:rgba(239,68,68,.08)}
.ticket-grid{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:16px}
.ticket-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.blotter-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.blotter-item{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.blotter-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.blotter-sub{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.5}
.blotter-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:12px;color:#d8e1ef}
.exit-signal-board{
  margin-bottom:14px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(96,165,250,.14);
  background:linear-gradient(180deg,rgba(12,19,30,.94),rgba(8,13,21,.88));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.exit-signal-board.active{border-color:rgba(245,158,11,.28);background:linear-gradient(180deg,rgba(27,20,10,.88),rgba(9,14,22,.9))}
.exit-signal-board.quiet{border-style:dashed}
.exit-signal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.exit-signal-head strong{display:block;margin-top:3px;font-size:15px;color:#f6fbff}
.exit-signal-kicker{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800}
.exit-signal-summary{margin-top:10px;font-size:12px;line-height:1.55;color:#d8e1ef}
.exit-signal-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.exit-signal-metrics div{padding:9px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:rgba(8,13,21,.72)}
.exit-signal-metrics span{display:block;font-family:var(--mono);font-size:16px;font-weight:800;color:#f6fbff}
.exit-signal-metrics small{display:block;margin-top:2px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.exit-signal-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.exit-signal-row{padding:11px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:rgba(8,13,21,.74)}
.exit-signal-row.exit{border-color:rgba(239,68,68,.28);background:rgba(34,12,16,.56)}
.exit-signal-row.harvest,.exit-signal-row.tighten{border-color:rgba(245,158,11,.24);background:rgba(31,22,10,.5)}
.exit-signal-row-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.exit-signal-row-head > div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.exit-signal-row-meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:8px;font-size:11px;color:#d8e1ef}
.exit-signal-row-copy{margin-top:8px;font-size:12px;line-height:1.5;color:var(--muted)}
.unchained-board{display:flex;flex-direction:column;gap:14px}
.unchained-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.unchained-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.unchained-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.unchained-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}
.unchained-metric{padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#0d141d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.unchained-metric .k{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.unchained-metric .v{margin-top:6px;font-size:18px;font-weight:700;color:#f5fbff}
.unchained-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.unchained-stack{display:flex;flex-direction:column;gap:12px}
.unchained-card{padding:14px;border-radius:16px;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg, rgba(11,17,28,.96), rgba(8,13,22,.92));box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.unchained-card h4{margin:0 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.unchained-status{padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#0d141d;font-size:13px;line-height:1.55;color:#d8e1ef}
.unchained-status.good{border-color:rgba(52,211,153,.24);background:rgba(52,211,153,.08)}
.unchained-status.paper{border-color:rgba(245,158,11,.24);background:rgba(245,158,11,.08)}
.unchained-status.risk{border-color:rgba(239,68,68,.24);background:rgba(239,68,68,.08)}
.unchained-candidate-list,.unchained-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.unchained-candidate{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;gap:8px}
.unchained-candidate-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.unchained-candidate-title{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.unchained-candidate-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:#d8e1ef}
.unchained-candidate-copy{font-size:12px;line-height:1.55;color:var(--muted)}
.unchained-log-list li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px;line-height:1.55;color:#dbe5f2}
.unchained-log-meta{margin-top:4px;color:var(--muted);font-size:11px}
.logic-chain-step{
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(12,18,28,.95), rgba(8,13,21,.92));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
  transition:opacity .18s ease, filter .18s ease, border-color .18s ease, transform .18s ease;
}
.logic-chain-step.clear{border-color:rgba(45,212,191,.18)}
.logic-chain-step.watch{border-color:rgba(245,158,11,.16)}
.logic-chain-step.blocked{border-color:rgba(248,113,113,.2)}
.logic-chain-step.dim{opacity:.56;filter:saturate(.72)}
.logic-chain-step.bottleneck{
  border-color:rgba(96,165,250,.3);
  box-shadow:0 18px 34px rgba(0,0,0,.24), inset 0 0 0 1px rgba(96,165,250,.16);
  transform:translateY(-1px);
}
.logic-chain-step .small{color:#dbe5f2}
.logic-chain-step-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.proof-trend-strip{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:10px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, rgba(8,13,22,.72), rgba(7,12,18,.9));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.proof-trend-strip.good{border-color:rgba(45,212,191,.22);background:linear-gradient(180deg, rgba(8,31,29,.76), rgba(7,15,17,.92))}
.proof-trend-strip.paper{border-color:rgba(245,158,11,.18);background:linear-gradient(180deg, rgba(35,24,12,.76), rgba(16,12,8,.92))}
.proof-trend-strip.risk{border-color:rgba(239,68,68,.2);background:linear-gradient(180deg, rgba(39,16,19,.78), rgba(16,10,12,.92))}
.proof-trend-strip.compact{padding:10px 12px;gap:8px}
.proof-trend-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.proof-trend-eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.proof-trend-title{font-size:13px;font-weight:800;letter-spacing:.01em;color:#f4f8ff}
.proof-trend-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.38);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#eff6ff;
  white-space:nowrap;
}
.proof-trend-track{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.proof-trend-step{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.44);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#e2ebf6;
}
.proof-trend-step.current{
  border-color:rgba(255,255,255,.16);
  box-shadow:0 0 0 1px rgba(255,255,255,.05), 0 10px 22px rgba(0,0,0,.16);
}
.proof-trend-step.placeholder{opacity:.74}
.proof-trend-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:currentColor;
  opacity:.88;
  box-shadow:0 0 0 1px rgba(255,255,255,.06);
}
.proof-trend-step.good .proof-trend-dot{color:#2dd4bf}
.proof-trend-step.paper .proof-trend-dot{color:#fbbf24}
.proof-trend-step.risk .proof-trend-dot{color:#fb7185}
.proof-trend-link{
  width:18px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(148,163,184,.34), rgba(148,163,184,.12));
  flex:0 0 auto;
}
.proof-trend-caption{font-size:11px;line-height:1.5;color:#d8e2ef}
.unchained-empty{font-size:12px;line-height:1.55;color:var(--muted)}
.unchained-table{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.unchained-table-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:10px;align-items:center}
.unchained-table-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.unchained-table-cell{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.06);background:#0d141d;font-size:12px;line-height:1.5;color:#dbe5f2}
.unchained-table-cell strong{color:#f5fbff}
.unchained-atlas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.unchained-atlas-block{padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.06);background:#0d141d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}
.unchained-atlas-block h5{margin:0 0 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.money{font-weight:700}
.money.good{color:var(--lime)}
.money.risk{color:#ff909b}
.money.paper{color:#dbe5f2}
.holdings-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.holdings-item{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.holdings-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.orderbook-board{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.orderbook-row{display:grid;grid-template-columns:110px 1fr 96px 92px;gap:10px;align-items:center}
.orderbook-bar{height:10px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.05);background:#0a1017}
.orderbook-bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#4de2ff)}
.orderbook-bar.down > span{background:linear-gradient(90deg,#fb7185,#f59e0b)}
.orderbook-note{font-size:12px;line-height:1.5;color:var(--muted)}
.orderbook-source-badge{font-size:0.5rem;padding:2px 6px;border-radius:3px;font-weight:600;text-transform:uppercase;vertical-align:middle}
.orderbook-source-badge.ws{background:rgba(45,212,191,0.1);color:var(--teal)}
.orderbook-source-badge.poll{background:rgba(255,255,255,0.05);color:var(--muted)}
.prediction-board{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.prediction-row{padding:12px 14px;border:1px solid rgba(255,255,255,.06);border-radius:14px;background:#0d141d}
.prediction-row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.prediction-row-title{font-size:14px;font-weight:700;line-height:1.45;color:#edf4ff}
.prediction-row-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.prediction-bar{height:10px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.05);background:#0a1017;margin-top:12px}
.prediction-bar > span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f59e0b,#fb7185)}
.prediction-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.prediction-list li{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.wallet-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.wallet-list li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px;line-height:1.5;color:#d7e3f2}
.wallet-list strong{color:#f6fbff}
.guardrail-list,.ladder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.guardrail-item,.ladder-step{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.guardrail-head,.ladder-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.guardrail-copy,.ladder-copy{margin-top:6px;font-size:12px;line-height:1.5;color:var(--muted)}
.stage-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d141d;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#dbe5f2;
}
.stage-pill.good{border-color:rgba(52,211,153,.24);color:var(--lime)}
.stage-pill.paper{border-color:rgba(245,158,11,.24);color:#ffd37a}
.stage-pill.risk{border-color:rgba(239,68,68,.24);color:#ff9ca6}
.desk-pulse-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.desk-pulse-card{
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg, rgba(11,17,28,.96), rgba(8,13,22,.92));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:172px;
}
.desk-pulse-card.good{border-color:rgba(45,212,191,.22);background:linear-gradient(180deg, rgba(8,31,29,.94), rgba(7,15,17,.92))}
.desk-pulse-card.paper{border-color:rgba(245,158,11,.18);background:linear-gradient(180deg, rgba(35,24,12,.94), rgba(16,12,8,.92))}
.desk-pulse-card.risk{border-color:rgba(239,68,68,.2);background:linear-gradient(180deg, rgba(39,16,19,.94), rgba(16,10,12,.92))}
.desk-pulse-card--hero{position:relative;overflow:hidden}
.desk-pulse-card--hero::after{
  content:'';
  position:absolute;
  inset:auto -10% -48% 38%;
  height:120px;
  background:radial-gradient(circle, rgba(96,165,250,.18), transparent 68%);
  pointer-events:none;
}
.desk-pulse-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.desk-pulse-eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.desk-pulse-title{font-size:18px;font-weight:800;letter-spacing:-.03em;color:#f5f9ff}
.desk-pulse-summary{font-size:12px;line-height:1.55;color:#d8e2ef}
.desk-pulse-chips{display:flex;gap:8px;flex-wrap:wrap}
.desk-pulse-chip{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(7,10,16,.46);
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#dce6f2;
}
.desk-pulse-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.desk-pulse-list li{padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}
.desk-pulse-list li:first-child{padding-top:0;border-top:0}
.desk-pulse-list strong{color:#f5f9ff}
.desk-pulse-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
@media (min-width: 1100px){
  .desk-pulse-card--hero{grid-column:span 2}
}
.desk-toast-stack{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:32;
  display:flex;
  flex-direction:column;
  gap:10px;
  width:min(360px, calc(100vw - 32px));
  pointer-events:none;
}
.desk-toast{
  pointer-events:auto;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(8,13,22,.96);
  box-shadow:0 22px 48px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.02);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.desk-toast.good{border-color:rgba(45,212,191,.22);background:linear-gradient(180deg, rgba(8,31,29,.97), rgba(8,13,20,.95))}
.desk-toast.paper{border-color:rgba(245,158,11,.2);background:linear-gradient(180deg, rgba(40,28,12,.97), rgba(14,10,8,.95))}
.desk-toast.risk{border-color:rgba(239,68,68,.24);background:linear-gradient(180deg, rgba(42,16,20,.97), rgba(15,9,11,.95))}
.desk-toast-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.desk-toast-title{font-size:13px;font-weight:800;letter-spacing:.01em;color:#f5f9ff}
.desk-toast-body{font-size:12px;line-height:1.5;color:#dce6f2}
.desk-toast-meta{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.desk-toast-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.desk-pulse-next{font-size:12px;line-height:1.5;color:#dce6f2}
body.operator-mode .workspace-bar{
  border-color:rgba(96,165,250,.24);
  background:linear-gradient(180deg, rgba(12,20,31,.98), rgba(8,13,22,.94));
  box-shadow:0 18px 40px rgba(0,0,0,.24), inset 0 0 0 1px rgba(96,165,250,.08);
  transform:translateY(-1px);
}
body.operator-mode .workspace-bar::after{animation:workspaceGlow 8s ease-in-out infinite}
body.operator-mode .workspace-hint{color:#e4edfb}
body.operator-mode .workspace-tab.active{
  transform:translateY(-1px);
  border-color:rgba(96,165,250,.44);
  box-shadow:0 14px 24px rgba(0,0,0,.2), inset 0 0 0 1px rgba(96,165,250,.18);
}
body.operator-mode .focus-bubble,
body.operator-mode .desk-pulse-card--hero,
body.operator-mode .detail-card[data-operator-priority="core"]{
  border-color:rgba(96,165,250,.22);
  box-shadow:0 18px 36px rgba(0,0,0,.22), inset 0 0 0 1px rgba(96,165,250,.08);
  transform:translateY(-1px);
}
body.operator-mode [data-workspace-panel="research"] [data-operator-priority="support"],
body.operator-mode [data-workspace-panel="execution"] [data-operator-priority="support"]{display:none}
body.operator-mode [data-workspace-panel="research"] .backtest-visuals,
body.operator-mode [data-workspace-panel="execution"] .execution-grid{grid-template-columns:1fr}
body.operator-mode [data-workspace-panel="execution"] .unchained-grid{grid-template-columns:1fr}
body.operator-mode [data-workspace-panel="research"] [data-operator-priority="core"],
body.operator-mode [data-workspace-panel="execution"] [data-operator-priority="core"]{animation:workspaceReveal .24s ease-out}
@media (prefers-reduced-motion: reduce){
  .workspace-panel.active,
  .workspace-bar::after,
  .detail-card,
  .focus-bubble,
  .desk-pulse-card,
  .filmstrip-card,
  .workspace-tab,
  .signal-card,
  #detailRoot,
  .qstat-value,
  .panel,
  .topcard,
  .universe-chip,
  .notif-backdrop{animation:none !important;transition:none !important}
}
.modal-shell{
  position:fixed;
  inset:0;
  z-index:30;
  display:grid;
  place-items:center;
  padding:20px;
}
.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(3,7,12,.72);
  backdrop-filter:blur(10px);
}
.modal-card{
  position:relative;
  width:min(680px, 100%);
  padding:20px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(12,19,31,.97),rgba(9,14,23,.94));
  box-shadow:0 34px 68px rgba(0,0,0,.42);
}
.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.action-btn.primary{
  border-color:rgba(77,226,255,.22);
  background:linear-gradient(180deg,#17304b,#112338);
  color:#edf6ff;
}
.empty{display:flex;align-items:center;justify-content:center;min-height:260px;color:var(--muted);border:1px dashed var(--line);border-radius:16px}
.footer-note{margin-top:10px;font-size:12px;color:var(--muted)}

/* ── Live PnL Sparkline Chart ── */
.pnl-chart-card { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.pnl-chart-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.pnl-chart-header h3 { font-size: 0.8rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin: 0; }
.pnl-chart-value { font-size: 1.1rem; font-weight: 700; font-family: var(--mono); }
.pnl-chart-value.positive { color: var(--green); }
.pnl-chart-value.negative { color: var(--red); }
.pnl-chart-value.zero { color: var(--muted); }
.pnl-chart-card canvas { width: 100%; height: 100px; display: block; border-radius: 6px; background: rgba(0,0,0,0.15); }
.pnl-chart-footer { display: flex; justify-content: space-between; margin-top: 8px; font-size: 0.65rem; color: var(--muted); }

/* ── Tablet breakpoint ── */
@media (max-width: 1200px){
  .topbar{grid-template-columns:1fr}
  .topbar-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .main{grid-template-columns:1fr}
  .left,.right{width:100%}
  .detail-grid{grid-template-columns:1fr}
  .hero-grid{grid-template-columns:1fr}
  .market-tape{flex-direction:column;align-items:flex-start}
  .backtest-visuals{grid-template-columns:1fr}
  .backtest-stat-grid{grid-template-columns:1fr 1fr}
  .sim-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sim-grid{grid-template-columns:1fr 1fr}
  .sim-compare-grid{grid-template-columns:1fr}
  .sim-detail-grid{grid-template-columns:1fr}
  .agent-grid{grid-template-columns:1fr 1fr}
  .lab-grid{grid-template-columns:1fr 1fr}
  .split-grid{grid-template-columns:1fr}
  .execution-grid{grid-template-columns:1fr}
  .unchained-grid{grid-template-columns:1fr}
  .analytics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .focus-bubble-grid{grid-template-columns:1fr}
  .focus-bubble-lanes{grid-template-columns:1fr}
  .focus-bubble-strip{grid-template-columns:1fr}
  .compare-row{grid-template-columns:1fr 1fr}
  .compare-edge{grid-column:1 / -1;text-align:left}
  .modal-card{width:min(600px,100%)}
}
/* ── Small tablet / large phone ── */
@media (max-width: 760px){
  .topbar,.topbar-stats,.analytics,.lab-grid,.split-grid,.ai-columns,.kv,
  .compare-row,.execution-summary,.form-grid,.ticket-grid,.modal-grid,
  .sim-grid,.sim-detail-grid,.sim-metrics,.agent-grid,.agent-stat-grid{grid-template-columns:1fr}
  .cluster-review-row{grid-template-columns:1fr;gap:4px}
  .cluster-review-head{flex-direction:column}
  .hero-symbol{font-size:28px}
  .tape-chip{min-width:160px}
  .backtest-stat-grid,.edge-row,.leaderboard-row,.orderbook-row{grid-template-columns:1fr}
  .workspace-bar{padding:12px 14px}
  .workspace-tabs{width:100%}
  .workspace-tab{flex:1 1 0}
  .app{padding:14px}
  .left,.right,.bottom{padding:14px}
  .compare-edge{text-align:left}
  .brand-lockup{align-items:flex-start}
  .brand-wordmark{font-size:30px}
  .brand-frame{width:72px;height:72px}
  .brand-mark{width:52px;height:52px}
  .exit-signal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exit-signal-head{align-items:flex-start}
}

/* ── Phone breakpoint ── */
@media (max-width: 600px){
  .app{padding:10px}
  .left,.right,.bottom{padding:12px}

  /* Stack all grids to single column */
  .topbar-stats{grid-template-columns:1fr}
  .analytics,
  .split-grid,
  .execution-grid,
  .lab-grid,
  .backtest-visuals{grid-template-columns:1fr}
  .sim-controls{grid-template-columns:repeat(2,minmax(0,1fr))}

  /* Hero section */
  .hero-grid{grid-template-columns:1fr}
  .hero-badges{flex-wrap:wrap}
  .brand-lockup{flex-direction:column;align-items:center;text-align:center}
  .brand-copy{align-items:center}
  .brand-ribbon{justify-content:center}
  .brand-wordmark{font-size:26px}
  .brand-frame{width:64px;height:64px}
  .brand-mark{width:46px;height:46px}
  .brand-tagline{text-align:center}

  /* Workspace bar */
  .workspace-bar{flex-direction:column;align-items:stretch;gap:10px}
  .workspace-actions{justify-content:center}
  .workspace-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px}
  .workspace-tabs::-webkit-scrollbar{display:none}
  .workspace-tab{flex:0 0 auto;white-space:nowrap}

  /* Buttons */
  .button-row{flex-wrap:wrap;gap:8px}
  .button-row .action-btn{flex:1 1 auto;min-width:0}

  /* Modal */
  .modal-card{width:calc(100% - 20px);margin:10px;padding:16px;border-radius:16px}
  .modal-grid{grid-template-columns:1fr}
  .modal-shell{padding:10px}

  /* Filters */
  .filters{flex-direction:column;gap:8px}
  .filters input,
  .filters select,
  .filters button{width:100%}

  /* Signal list */
  .signal-list{max-height:none}
  .signal-card{padding:12px}
  .signal-head{flex-direction:column;gap:6px}
  .signal-meta{grid-template-columns:1fr;gap:4px}

  /* Section titles */
  .section-title{flex-wrap:wrap;gap:8px}
  .section-title h2,
  .section-title h3{font-size:14px}

  /* Tape */
  .tape-track{font-size:12px}
  .tape-chip{min-width:140px;padding:8px 10px}
  .tape-symbol{font-size:14px}
  .tape-value{font-size:13px}
  .market-tape{padding:10px 12px;gap:10px}

  /* Focus bubble */
  .focus-bubble{padding:14px}
  .focus-bubble-grid{grid-template-columns:1fr}
  .focus-bubble-title{font-size:22px}
  .focus-bubble-title .mono{font-size:24px}
  .focus-bubble-lanes{grid-template-columns:1fr}
  .focus-bubble-strip{grid-template-columns:1fr}

  /* Compare */
  .compare-row{grid-template-columns:1fr}
  .compare-toolbar{flex-direction:column;gap:10px}

  /* Sim */
  .sim-grid{grid-template-columns:1fr}
  .sim-detail-grid{grid-template-columns:1fr}
  .sim-metrics{grid-template-columns:1fr}

  /* Agent */
  .agent-grid{grid-template-columns:1fr}

  /* Backtest */
  .backtest-stat-grid{grid-template-columns:1fr}
  .backtest-stat-value{font-size:20px}

  /* Detail grid */
  .detail-grid{grid-template-columns:1fr}

  /* AI columns and kv */
  .ai-columns{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}

  /* Headline / typography scale down */
  .headline{font-size:24px}
  .hero h1{font-size:24px}
  .hero{flex-direction:column;gap:12px}

  /* Topcard */
  .topcard{padding:14px;min-height:auto}

  /* Desk pulse */
  .desk-pulse-grid{grid-template-columns:1fr}

  /* Edge / leaderboard rows */
  .edge-row,.leaderboard-row{grid-template-columns:1fr;gap:6px}

  /* Filmstrip */
  .filmstrip-route-rail{grid-template-columns:1fr}

  /* Map */
  .map-build-grid{grid-template-columns:1fr}
  .map-board{grid-template-columns:1fr}
  .map-ghost-grid{grid-template-columns:1fr}

  /* Session commands */
  .session-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .session-command-briefs{grid-template-columns:1fr}

  /* Toast stack */
  .desk-toast-stack{right:10px;bottom:10px;width:calc(100vw - 20px)}

  /* Lab toolbar */
  .lab-toolbar{flex-direction:column;align-items:stretch;gap:8px}
  .sim-toolbar{flex-direction:column;align-items:stretch;gap:8px}
}

/* ── Light theme overrides ── */
[data-theme="light"]{
  --bg:#f4f6f9;
  --panel:#ffffff;
  --line:#d4d9e0;
  --text:#1a1e26;
  --muted:#5a6577;
  --green:#16a34a;
  --teal:#0d9488;
  --amber:#d97706;
  --red:#dc2626;
  --blue:#2563eb;
  --cyan:#0891b2;
  --lime:#15803d;
  --rose:#e11d48;
  --shadow:0 24px 48px rgba(0,0,0,.08);
}
/* Signal Flow Timeline */
.signal-timeline { display: flex; align-items: center; padding: 12px 16px; margin: 8px 0 12px; background: rgba(255,255,255,0.02); border-radius: 8px; overflow-x: auto; }
.stl-stage { display: flex; flex-direction: column; align-items: center; min-width: 60px; position: relative; }
.stl-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--line); background: var(--bg); transition: all 0.3s; }
.stl-dot.done { background: var(--teal); border-color: var(--teal); }
.stl-dot.active { background: var(--teal); border-color: var(--teal); animation: stl-pulse 1.5s ease-in-out infinite; }
.stl-dot.pending { background: transparent; border-color: var(--line); }
.stl-label { font-size: 0.6rem; color: var(--muted); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.3px; }
.stl-label.done { color: var(--teal); }
.stl-label.active { color: var(--text); font-weight: 600; }
.stl-line { flex: 1; height: 2px; background: var(--line); min-width: 20px; }
.stl-line.done { background: var(--teal); }
.stl-time { font-size: 0.55rem; color: var(--muted); margin-top: 2px; }
@keyframes stl-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(45,212,191,0.4); }
  50% { box-shadow: 0 0 0 6px rgba(45,212,191,0); }
}

[data-theme="light"] body{
  background:linear-gradient(135deg,#f0f2f5 0%,#e8ecf1 38%,#f4f6f9 100%);
}
[data-theme="light"] body::before{
  background:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),
             linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);
}
[data-theme="light"] body::after{
  background:linear-gradient(180deg,transparent 0%,rgba(244,246,249,.14) 58%,rgba(244,246,249,.58) 100%);
}

/* Notification Center */
.notif-bell{position:relative;cursor:pointer;background:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--muted);font-size:1rem;transition:color .2s}
.notif-bell:hover{color:var(--teal)}
.notif-badge{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;font-size:.6rem;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700}
.notif-badge:empty{display:none}
.notif-drawer{position:fixed;top:0;right:-380px;width:360px;height:100vh;background:var(--panel);border-left:1px solid var(--line);z-index:9999;transition:right .3s ease;display:flex;flex-direction:column}
.notif-drawer.open{right:0}
.notif-header{padding:16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.notif-header h3{margin:0;font-size:.9rem;color:var(--text)}
.notif-list{flex:1;overflow-y:auto;padding:8px}
.notif-item{padding:10px;border-radius:6px;margin-bottom:4px;border-left:3px solid var(--teal);background:rgba(255,255,255,.02)}
.notif-item.unread{background:rgba(45,212,191,.05)}
.notif-item .notif-time{font-size:.6rem;color:var(--muted)}
.notif-item .notif-text{font-size:.75rem;color:var(--text);margin-top:2px}
.notif-item.signal{border-left-color:var(--teal)}
.notif-item.trade{border-left-color:var(--green)}
.notif-item.warning{border-left-color:var(--amber)}
.notif-item.error{border-left-color:var(--red)}
.notif-item.discovery{border-left-color:var(--blue)}
.notif-item.system{border-left-color:var(--muted)}
.notif-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.4);z-index:9998}
.notif-item{position:relative;cursor:pointer;transition:transform 0.2s,opacity 0.2s}
.notif-item.acted{opacity:0.6}
.notif-item .notif-priority{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%}
.notif-priority.high{background:var(--red)}
.notif-priority.medium{background:var(--amber)}
.notif-priority.low{background:var(--line)}
.notif-item.compact{padding:6px 10px}
.notif-item.compact .notif-text{font-size:0.65rem}
.notif-item .notif-dismiss{position:absolute;top:6px;right:20px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.7rem;opacity:0;transition:opacity 0.15s;padding:2px 4px}
.notif-item:hover .notif-dismiss{opacity:1}
.notif-group{border:1px solid var(--line);border-radius:8px;margin-bottom:4px}
.notif-group-header{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;cursor:pointer;font-size:0.72rem;color:var(--text)}
.notif-group-count{font-size:0.6rem;color:var(--muted)}
.notif-group-items{display:none;padding:0 10px 8px}
.notif-group.expanded .notif-group-items{display:block}
.notif-muted-indicator{padding:6px 10px;font-size:0.6rem;color:var(--muted);text-align:center;border-top:1px solid var(--line)}
.notif-priority-settings{padding:12px;border-top:1px solid var(--line)}
.notif-ps-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:0.7rem;gap:6px}
.notif-ps-row .nps-type{color:var(--text);text-transform:capitalize;min-width:60px}
.notif-ps-row .nps-score{font-family:var(--mono);color:var(--muted);min-width:24px;text-align:right}
.notif-ps-row .nps-mute{cursor:pointer;background:none;border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:0.6rem}
.notif-ps-row .nps-mute:hover{border-color:var(--amber)}

/* Universe Explorer */
.universe-panel{padding:16px}
.universe-search{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:.8rem;margin-bottom:12px}
.universe-search:focus{outline:none;border-color:var(--teal)}
.universe-stats{display:flex;gap:12px;margin-bottom:16px}
.universe-stat{background:var(--panel);border-radius:6px;padding:8px 12px;border-left:3px solid var(--teal)}
.universe-stat-label{font-size:.6rem;color:var(--muted);text-transform:uppercase}
.universe-stat-value{font-size:1rem;color:var(--text);font-weight:600}
.universe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;max-height:400px;overflow-y:auto}
.universe-chip{padding:8px 10px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:6px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:border-color .2s;font-family:var(--mono);font-size:.75rem}
.universe-chip:hover{border-color:var(--teal)}
.universe-chip .chip-sym{color:var(--text);font-weight:600}
.universe-chip .chip-badge{font-size:.55rem;padding:2px 6px;border-radius:4px;text-transform:uppercase}
.chip-badge.active{background:rgba(45,212,191,.15);color:var(--teal)}
.chip-badge.discovered{background:rgba(96,165,250,.15);color:var(--blue)}
.discover-btn{padding:8px 16px;background:linear-gradient(135deg,var(--teal),var(--blue));border:none;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;font-size:.75rem}
.discover-btn:hover{opacity:.9}
.discover-btn:disabled{opacity:.5;cursor:not-allowed}
.sig-sparkline{display:block;margin-top:4px;opacity:.8}
.qstat canvas{display:block;margin-top:4px}
.universe-chip canvas{display:block;margin-top:2px}
.universe-chip{flex-wrap:wrap}

/* ── Smooth Animated Transitions ─────────────────────────────────── */

/* Signal Card Entrance — stagger slide-in on render */
.signal-card{
  animation:cardSlideIn .2s ease-out both;
}
@keyframes cardSlideIn{
  from{opacity:0;transform:translateX(-10px)}
  to{opacity:1;transform:translateX(0)}
}
.signal-card:nth-child(1){animation-delay:0s}
.signal-card:nth-child(2){animation-delay:.03s}
.signal-card:nth-child(3){animation-delay:.06s}
.signal-card:nth-child(4){animation-delay:.09s}
.signal-card:nth-child(5){animation-delay:.12s}
.signal-card:nth-child(6){animation-delay:.15s}
.signal-card:nth-child(7){animation-delay:.18s}
.signal-card:nth-child(8){animation-delay:.21s}
.signal-card:nth-child(9){animation-delay:.24s}
.signal-card:nth-child(10){animation-delay:.27s}
.signal-card:nth-child(11){animation-delay:.3s}
.signal-card:nth-child(12){animation-delay:.33s}
.signal-card:nth-child(13){animation-delay:.36s}
.signal-card:nth-child(14){animation-delay:.39s}
.signal-card:nth-child(15){animation-delay:.42s}
.signal-card:nth-child(n+16){animation-delay:0s}

/* Detail Panel — fade + scale on open */
#detailRoot:not(.empty){
  animation:detailFadeIn .3s ease-out;
}
@keyframes detailFadeIn{
  from{opacity:0;transform:scale(.98)}
  to{opacity:1;transform:scale(1)}
}

/* Quick Stats Value Flash — JS toggles .flash class on change */
.qstat-value.flash{
  animation:valueFlash .6s ease-out;
}
@keyframes valueFlash{
  0%{color:var(--teal)}
  100%{color:var(--text)}
}

/* Panel / Card hover lift */
.panel:hover,.topcard:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 20px rgba(0,0,0,.15);
}

/* Market tape smooth scroll */
.tape-track{
  scroll-behavior:smooth;
}

/* Notification drawer backdrop transition */
.notif-backdrop{
  transition:opacity .3s ease;
  opacity:0;
  pointer-events:none;
}
.notif-backdrop.open{
  opacity:1;
  pointer-events:auto;
}

/* Universe chip enhanced hover */
.universe-chip{
  transition:transform .15s ease,border-color .2s ease,box-shadow .2s ease;
}
.universe-chip:hover{
  transform:translateY(-1px);
  box-shadow:0 2px 8px rgba(45,212,191,.15);
}

/* ── Command Palette ──────────────────────────────────────────────────── */
.cmd-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:10000;display:none}
.cmd-backdrop.open{display:block}
.cmd-palette{position:fixed;top:18%;left:50%;transform:translateX(-50%);width:520px;max-width:90vw;background:var(--panel);border:1px solid var(--line);border-radius:12px;z-index:10001;display:none;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,0.5);overflow:hidden}
.cmd-palette.open{display:flex}
.cmd-input{width:100%;padding:14px 16px;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.9rem;outline:none}
.cmd-input::placeholder{color:var(--muted)}
.cmd-results{max-height:340px;overflow-y:auto;padding:4px}
.cmd-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background 0.15s}
.cmd-item:hover,.cmd-item.active{background:rgba(45,212,191,0.1)}
.cmd-item .cmd-icon{width:24px;text-align:center;font-size:0.9rem}
.cmd-item .cmd-label{flex:1;color:var(--text);font-size:0.8rem}
.cmd-item .cmd-label mark{background:rgba(45,212,191,0.3);color:var(--text);border-radius:2px;padding:0 1px}
.cmd-item .cmd-cat{font-size:0.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px}
.cmd-empty{padding:20px;text-align:center;color:var(--muted);font-size:0.8rem}

/* ─────────────────────────────────────��──────────────────────
   Responsive Breakpoints — Tablet (1024px) & Mobile (640px)
   Appended for tablet + phone usability without breaking desktop.
   ──────────────────────────────────────────────────────────── */

/* ── Tablet ≤ 1024px ── */
@media (max-width: 1024px) {
  /* App container */
  .app { max-width: 100%; padding: 0 8px; }

  /* Main grid: stack signal list on top, detail below */
  .main { grid-template-columns: 1fr; }
  .left, .right { width: 100%; }

  /* Topbar hero + stat cards: 2x2 wrap */
  .topbar { grid-template-columns: 1fr; }
  .topbar-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-grid { grid-template-columns: 1fr; }

  /* Workspace tabs: horizontal scroll when they overflow */
  .workspace-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .workspace-tabs::-webkit-scrollbar { display: none; }
  .workspace-tab { flex: 0 0 auto; white-space: nowrap; }

  /* Lab grid and 3-column grids: 2 columns */
  .lab-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .analytics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .execution-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Quick stats: horizontal scroll with smaller chips */
  .quick-stats { overflow-x: auto; scrollbar-width: none; }
  .quick-stats::-webkit-scrollbar { display: none; }
  .qstat { min-width: 100px; }

  /* Backtest visuals: stack */
  .backtest-visuals { grid-template-columns: 1fr; }
  .split-grid { grid-template-columns: 1fr; }
  .execution-grid { grid-template-columns: 1fr; }
  .unchained-grid { grid-template-columns: 1fr; }
  .sim-detail-grid { grid-template-columns: 1fr; }

  /* Focus bubble: stack */
  .focus-bubble-grid { grid-template-columns: 1fr; }

  /* Detail grid: stack */
  .detail-grid { grid-template-columns: 1fr; }

  /* Sim controls: 3 columns at tablet */
  .sim-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sim-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Mobile ≤ 640px ── */
@media (max-width: 640px) {
  /* App container: full width, tight padding */
  .app { max-width: 100%; padding: 8px 6px 16px; }

  /* Main grid: single column, full width */
  .main { grid-template-columns: 1fr; min-height: auto; }
  .left, .right, .bottom { width: 100%; padding: 12px 10px; }

  /* Topbar: stack vertically, reduce padding */
  .topbar {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 8px;
  }
  .topbar-stats { grid-template-columns: 1fr; gap: 8px; }
  .topcard { padding: 12px 14px; min-height: auto; }

  /* Hero stat cards: single column stack */
  .hero-grid { grid-template-columns: 1fr; gap: 12px; }
  .hero-spotlight { padding: 12px; }
  .hero-symbol { font-size: 26px; }
  .hero-badges { gap: 6px; }
  .hero-pill { padding: 6px 9px; font-size: 10px; }
  .brand-lockup { flex-direction: column; align-items: flex-start; gap: 12px; }
  .brand-frame { width: 56px; height: 56px; border-radius: 16px; }
  .brand-mark { width: 40px; height: 40px; }
  .brand-wordmark { font-size: 24px; }
  .brand-tagline { font-size: 12px; }
  .brand-ribbon span { font-size: 10px; padding: 5px 8px; }
  .runtime-strip { gap: 6px; }
  .runtime-chip { font-size: 10px; padding: 5px 8px; }

  /* Market tape: smaller font */
  .market-tape { padding: 8px 10px; gap: 8px; font-size: 12px; }
  .tape-label { font-size: 10px; }
  .tape-chip { min-width: 130px; padding: 8px 10px; }
  .tape-symbol { font-size: 13px; }
  .tape-value { font-size: 12px; }
  .tape-meta { font-size: 10px; }

  /* Quick stats: 2 per row, wrapping */
  .quick-stats {
    display: flex;
    flex-wrap: wrap;
    overflow-x: visible;
    gap: 6px;
    padding: 6px 8px;
  }
  .qstat {
    flex: 1 1 calc(50% - 6px);
    min-width: calc(50% - 6px);
    max-width: calc(50% - 3px);
    padding: 6px 8px;
  }
  .qstat-label { font-size: 0.6rem; }
  .qstat-value { font-size: 0.85rem; }

  /* Workspace shell tabs: smaller font, compact padding */
  .workspace-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 10px 12px;
  }
  .workspace-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 6px;
    padding-bottom: 4px;
  }
  .workspace-tabs::-webkit-scrollbar { display: none; }
  .workspace-tab {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: 12px;
    padding: 8px 10px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .workspace-copy { gap: 2px; }
  .workspace-label { font-size: 10px; }
  .workspace-hint { font-size: 11px; }
  .workspace-actions {
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-start;
  }
  .workspace-actions .action-btn { font-size: 11px; padding: 8px 10px; min-height: 44px; }

  /* Lab grid: single column */
  .lab-grid { grid-template-columns: 1fr; }
  .analytics { grid-template-columns: 1fr; }
  .agent-grid { grid-template-columns: 1fr; }

  /* Signal cards: full width, reduce padding */
  .signal-list { max-height: none; padding-right: 0; }
  .signal-card { padding: 10px 12px; }
  .signal-head { flex-direction: column; gap: 6px; }
  .signal-scorebox { text-align: left; }
  .signal-score { font-size: 20px; }
  .signal-meta { grid-template-columns: 1fr; gap: 4px; }
  .signal-symbol { font-size: 15px; }

  /* Detail panel: full width */
  .detail-grid { grid-template-columns: 1fr; }
  .detail-card { padding: 12px; }
  .detail-card h3 { font-size: 13px; }

  /* Notification drawer: full width (360px -> 100vw) */
  .notif-drawer { width: 100vw; right: -100vw; }
  .notif-drawer.open { right: 0; }

  /* Command palette: 90vw width */
  .cmd-palette { width: 90vw; }

  /* Modal / confirm dialog: full width with margin */
  .modal-shell { padding: 8px; }
  .modal-card {
    width: 90vw;
    padding: 14px;
    border-radius: 14px;
  }
  .modal-grid { grid-template-columns: 1fr; }

  /* Universe grid: 2 columns */
  .universe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .universe-search { font-size: 0.75rem; padding: 8px 10px; }
  .universe-stats { flex-wrap: wrap; gap: 8px; }
  .universe-stat { flex: 1 1 auto; min-width: calc(50% - 8px); }

  /* Hide decorative elements on mobile */
  body::before { display: none; }
  .hero-card::after { display: none; }
  .workspace-bar::after { display: none; }
  .desk-pulse-card--hero::after { display: none; }

  /* Tap targets: at least 44px on interactive elements */
  .filters button,
  .action-btn,
  .notif-bell,
  .discover-btn,
  .position-chart-bot {
    min-height: 44px;
    min-width: 44px;
  }
  .filters input,
  .filters select {
    min-height: 44px;
  }
  .badge { padding: 5px 10px; min-height: 28px; }

  /* Sim controls: 2 columns on mobile */
  .sim-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sim-grid { grid-template-columns: 1fr; }
  .sim-compare-grid { grid-template-columns: 1fr; }

  /* Execution and backtest: single column */
  .execution-grid { grid-template-columns: 1fr; }
  .execution-summary { grid-template-columns: 1fr; }
  .backtest-visuals { grid-template-columns: 1fr; }
  .backtest-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-grid { grid-template-columns: 1fr; }
  .unchained-grid { grid-template-columns: 1fr; }

  /* Focus bubble: full width, compact */
  .focus-bubble { padding: 12px; margin-bottom: 10px; }
  .focus-bubble-grid { grid-template-columns: 1fr; }
  .focus-bubble-title { font-size: 20px; }
  .focus-bubble-title .mono { font-size: 22px; }
  .focus-bubble-lanes { grid-template-columns: 1fr; }
  .focus-bubble-strip { grid-template-columns: 1fr; }
  .focus-bubble-kv { grid-template-columns: 1fr; }

  /* Compare */
  .compare-row { grid-template-columns: 1fr; }
  .compare-toolbar { flex-direction: column; gap: 8px; }

  /* Orderbook, edge, leaderboard rows: stack */
  .orderbook-row { grid-template-columns: 1fr; gap: 6px; }
  .edge-row { grid-template-columns: 1fr; gap: 6px; }
  .leaderboard-row { grid-template-columns: 1fr; gap: 6px; }

  /* AI columns */
  .ai-columns { grid-template-columns: 1fr; }
  .kv { grid-template-columns: 1fr; }

  /* Session command grid */
  .session-command-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-command-briefs { grid-template-columns: 1fr; }

  /* Headline scale-down */
  .headline { font-size: 22px; }
  .eyebrow { font-size: 10px; }
  .sub { font-size: 12px; }

  /* Toast stack: full width */
  .desk-toast-stack { right: 6px; bottom: 6px; width: calc(100vw - 12px); }

  /* Desk pulse board */
  .desk-pulse-board { grid-template-columns: 1fr; }

  /* Filmstrip cards */
  .filmstrip-route-rail { grid-template-columns: 1fr; }

  /* Map grids */
  .map-build-grid { grid-template-columns: 1fr; }
  .map-board { grid-template-columns: 1fr; }
  .map-ghost-grid { grid-template-columns: 1fr; }

  /* Lab and sim toolbars: stack */
  .lab-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }
  .sim-toolbar { flex-direction: column; align-items: stretch; gap: 8px; }

  /* Button row: wrap and full width buttons */
  .button-row { gap: 6px; }
  .button-row .action-btn { flex: 1 1 auto; min-width: 0; text-align: center; }

  /* Filters: stack */
  .filters { flex-direction: column; gap: 6px; }
  .filters input,
  .filters select,
  .filters button { width: 100%; }

  /* Section titles */
  .section-title { flex-wrap: wrap; gap: 6px; }
  .section-title h2,
  .section-title h3 { font-size: 13px; }

  /* Cluster review */
  .cluster-review-row { grid-template-columns: 1fr; gap: 4px; }
  .cluster-review-head { flex-direction: column; gap: 6px; }

  /* Unchained table */
  .unchained-table-row { grid-template-columns: 1fr; gap: 6px; }

  /* Position chart toolbar */
  .position-chart-toolbar { flex-direction: column; gap: 8px; }
  .position-chart-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Ticket grid */
  .ticket-grid { grid-template-columns: 1fr; gap: 8px; }

  /* Form grid */
  .form-grid { grid-template-columns: 1fr; }

  /* Unchained atlas */
  .unchained-atlas-grid { grid-template-columns: 1fr; }
}

/* ── Correlation Heatmap ─────────────────────────────────────────── */
.heatmap-container{position:relative;overflow:auto;margin-bottom:16px;background:rgba(0,0,0,.1);border-radius:8px;padding:12px}
.heatmap-container canvas{display:block}
.heatmap-tooltip{position:absolute;display:none;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:.7rem;color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;pointer-events:none;z-index:10;box-shadow:0 4px 12px rgba(0,0,0,.3);white-space:nowrap}
.heatmap-legend{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.65rem;color:var(--muted)}
.heatmap-legend-bar{width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,#ef4444,#1a1f2e,#34d399)}

/* ── Symbol Detail Modal ──────────────────────────────────────── */
.sym-modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 10002; display: none; }
.sym-modal-backdrop.open { display: block; }
.sym-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); width: 600px; max-width: 92vw; max-height: 80vh; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; z-index: 10003; display: none; flex-direction: column; box-shadow: 0 24px 80px rgba(0,0,0,0.5); overflow: hidden; opacity: 0; transition: transform 0.25s ease, opacity 0.25s ease; }
.sym-modal.open { display: flex; opacity: 1; transform: translate(-50%, -50%) scale(1); }
.sym-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.sym-modal-title { font-size: 1.2rem; font-weight: 700; color: var(--text); margin: 0; font-family: var(--mono); }
.sym-modal-actions { display: flex; gap: 8px; align-items: center; }
.sym-modal-focus-btn { padding: 6px 14px; background: linear-gradient(135deg, var(--teal), var(--blue)); border: none; border-radius: 6px; color: #fff; font-size: 0.7rem; font-weight: 600; cursor: pointer; }
.sym-modal-focus-btn:hover { opacity: 0.85; }
.sym-modal-close { background: none; border: none; color: var(--muted); font-size: 1.4rem; cursor: pointer; padding: 4px 8px; }
.sym-modal-close:hover { color: var(--text); }
.sym-modal-body { padding: 16px 20px; overflow-y: auto; flex: 1; }
.sym-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.sym-detail-card { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.sym-detail-card h4 { font-size: 0.7rem; color: var(--muted); text-transform: uppercase; margin: 0 0 8px; letter-spacing: 0.5px; }
.sym-detail-metric { display: flex; justify-content: space-between; padding: 3px 0; font-size: 0.75rem; }
.sym-detail-metric .label { color: var(--muted); }
.sym-detail-metric .value { color: var(--text); font-weight: 600; font-family: var(--mono); }
.sym-chart-area { width: 100%; margin-bottom: 16px; }
.sym-chart-area canvas { width: 100%; height: 80px; }
.sym-signals-list { max-height: 200px; overflow-y: auto; }
.sym-signal-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 8px; border-radius: 4px; font-size: 0.72rem; border-left: 3px solid var(--line); margin-bottom: 4px; background: rgba(255,255,255,0.02); }
.sym-signal-row.long { border-left-color: var(--teal); }
.sym-signal-row.short { border-left-color: var(--red); }
.clickable-sym { cursor: pointer; text-decoration: underline; text-decoration-color: rgba(255,255,255,0.15); text-underline-offset: 2px; }
.clickable-sym:hover { text-decoration-color: var(--teal); color: var(--teal); }

/* ── Signal Comparison Overlay ────────────────────────────────────── */
.compare-overlay{position:fixed;inset:0;background:var(--bg);z-index:9998;display:none;flex-direction:column;overflow:hidden}
.compare-overlay.open{display:flex}
.compare-ov-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);flex-shrink:0}
.compare-ov-header h3{margin:0;font-size:.9rem;color:var(--text)}
.compare-ov-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;padding:4px 8px}
.compare-ov-close:hover{color:var(--text)}
.compare-ov-body{display:flex;flex:1;overflow:hidden}
.compare-ov-col{flex:1;overflow-y:auto;padding:16px}
.compare-ov-divider{width:1px;background:var(--line);flex-shrink:0}
.compare-metric-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.03);font-size:.75rem}
.compare-metric-row .metric-label{color:var(--muted);flex:1}
.compare-metric-row .metric-value{color:var(--text);font-weight:600;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.compare-metric-row .metric-value.winner{color:var(--teal)}
.compare-metric-row .metric-value.loser{color:var(--red);opacity:.7}
.compare-signal-header{text-align:center;padding:12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.compare-signal-header .sym{font-size:1.1rem;font-weight:700;color:var(--text)}
.compare-signal-header .tier{font-size:.65rem;padding:2px 8px;border-radius:4px}
.compare-chart-area{margin:12px 0}
.compare-chart-area canvas{width:100%;height:60px}
.compare-section-label{font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.compare-signal-header .side-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.65rem;font-weight:700;text-transform:uppercase;margin:4px 0}
.compare-signal-header .side-badge.long{background:rgba(45,212,191,.12);color:var(--teal);border:1px solid rgba(45,212,191,.25)}
.compare-signal-header .side-badge.short{background:rgba(239,68,68,.12);color:var(--red);border:1px solid rgba(239,68,68,.25)}
.compare-thesis-text{font-size:.72rem;color:var(--muted);line-height:1.5;margin:4px 0}
.compare-text-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.03);font-size:.72rem}
.compare-text-row .metric-label{color:var(--muted);flex-shrink:0;min-width:80px}
.compare-text-row .metric-value{color:var(--text);text-align:right;word-break:break-word}
.compare-open-btn{background:none;border:1px solid var(--line);color:var(--muted);font-size:.65rem;padding:3px 8px;border-radius:4px;cursor:pointer;transition:color .15s,border-color .15s}
.compare-open-btn:hover{color:var(--teal);border-color:var(--teal)}
@media(max-width:700px){
  .compare-ov-body{flex-direction:column}
  .compare-ov-divider{width:auto;height:1px}
}
/* ── Export menu ─────────────────────────────────────────────────────── */
.export-menu-wrap{position:relative;display:inline-flex;align-items:center}
.export-btn{background:none;border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--muted);font-size:.72rem;cursor:pointer;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:color .2s,border-color .2s}
.export-btn:hover{color:var(--teal);border-color:var(--teal)}
.export-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:180px;display:none;flex-direction:column;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3);overflow:hidden}
.export-dropdown.open{display:flex}
.export-option{background:none;border:none;padding:8px 14px;color:var(--text);font-size:.72rem;text-align:left;cursor:pointer;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:background .15s}
.export-option:hover{background:rgba(45,212,191,.1)}
.export-option+.export-option{border-top:1px solid var(--line)}
/* ── Config Dashboard ─────────────────────────────────────────────── */
.config-gear-btn{background:none;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:2px 6px;transition:color .15s}
.config-gear-btn:hover{color:var(--teal)}
.config-overlay{position:fixed;inset:0;background:var(--bg);z-index:9998;display:none;flex-direction:column;overflow:hidden}
.config-overlay.open{display:flex}
.config-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}
.config-header h3{margin:0;font-size:0.9rem;color:var(--text)}
.config-actions{display:flex;gap:8px}
.config-reload-btn{padding:6px 14px;background:linear-gradient(135deg,var(--teal),var(--blue));border:none;border-radius:6px;color:#fff;font-size:0.7rem;font-weight:600;cursor:pointer}
.config-reload-btn:hover{opacity:0.85}
.config-reload-btn:disabled{opacity:0.5;cursor:not-allowed}
.config-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer}
.config-close:hover{color:var(--text)}
.config-body{flex:1;overflow-y:auto;padding:16px 20px}
.config-search-bar{margin-bottom:16px}
.config-search{width:100%;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:"Cascadia Mono","Fira Code","Consolas",monospace;font-size:0.8rem}
.config-search:focus{outline:none;border-color:var(--teal)}
.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:24px}
.config-item{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.config-item .config-key{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.3px;margin-bottom:4px;font-family:"Cascadia Mono","Fira Code","Consolas",monospace}
.config-item .config-val{font-size:0.8rem;color:var(--text);font-family:"Cascadia Mono","Fira Code","Consolas",monospace;word-break:break-all}
.config-item .config-val.masked{color:var(--amber)}
.config-item .config-val.bool-true{color:var(--green)}
.config-item .config-val.bool-false{color:var(--red)}
.config-item .config-val.number{color:var(--blue)}
.config-changelog{border-top:1px solid var(--line);padding-top:16px}
.config-changelog h4{font-size:0.75rem;color:var(--muted);text-transform:uppercase;margin:0 0 12px}
.config-change-item{padding:8px;background:rgba(45,212,191,0.05);border-left:3px solid var(--teal);border-radius:4px;margin-bottom:6px;font-size:0.72rem}
.config-change-item .change-key{color:var(--text);font-weight:600}
.config-change-item .change-old{color:var(--red)}
.config-change-item .change-new{color:var(--green)}
@media(max-width:700px){
  .config-grid{grid-template-columns:1fr}
}

/* ── Watchlist / Favorites Bar ─────────────────────────────────── */
.watchlist-bar{display:flex;align-items:center;gap:6px;padding:4px 16px;overflow-x:auto;scrollbar-width:none;min-height:36px}
.watchlist-bar::-webkit-scrollbar{display:none}
.watchlist-chips{display:flex;gap:5px;align-items:center}
.watchlist-chips:empty + .watchlist-add-btn{margin-left:0}
.wl-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--panel);border:1px solid var(--line);border-radius:16px;cursor:pointer;font-family:var(--mono,"Cascadia Mono","Fira Code",monospace);font-size:.7rem;color:var(--text);transition:border-color .2s,transform .15s;user-select:none;white-space:nowrap}
.wl-chip:hover{border-color:var(--teal);transform:translateY(-1px)}
.wl-chip.dragging{opacity:.5}
.wl-chip .wl-sym{font-weight:600}
.wl-chip .wl-badge{font-size:.55rem;min-width:14px;height:14px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}
.wl-badge.long{background:var(--teal)}
.wl-badge.short{background:var(--red)}
.wl-badge.none{background:var(--line);color:var(--muted)}
.wl-chip .wl-remove{font-size:.7rem;color:var(--muted);margin-left:2px;opacity:0;transition:opacity .15s}
.wl-chip:hover .wl-remove{opacity:1}
.watchlist-add-btn{width:26px;height:26px;border-radius:13px;border:1px dashed var(--line);background:none;color:var(--muted);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;flex-shrink:0}
.watchlist-add-btn:hover{color:var(--teal);border-color:var(--teal)}
.watchlist-search{width:100px;padding:4px 8px;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--text);font-family:var(--mono,"Cascadia Mono","Fira Code",monospace);font-size:.7rem}
.watchlist-search:focus{outline:none;border-color:var(--teal)}
.sym-modal-wl-btn{padding:4px 10px;border-radius:10px;border:1px solid var(--line);background:none;color:var(--muted);font-size:.7rem;cursor:pointer;transition:color .2s,border-color .2s}
.sym-modal-wl-btn:hover{color:var(--teal);border-color:var(--teal)}
.sym-modal-wl-btn.active{color:var(--teal);border-color:var(--teal)}

/* ── Portfolio Overview ─────────────────────────────────────────── */
.portfolio-overview{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.portfolio-top{display:flex;gap:24px;align-items:flex-start}
.portfolio-chart-wrap{position:relative;width:160px;height:160px;flex-shrink:0}
.portfolio-chart-wrap canvas{display:block}
.portfolio-center-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}
.portfolio-count{font-size:1.4rem;font-weight:700;color:var(--text);font-family:var(--mono)}
.portfolio-label{font-size:.6rem;color:var(--muted);text-transform:uppercase}
.portfolio-metrics{flex:1}
.portfolio-metric{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(255,255,255,0.03);font-size:.75rem}
.portfolio-metric .pm-label{color:var(--muted)}
.portfolio-metric .pm-value{color:var(--text);font-weight:600;font-family:var(--mono)}
.portfolio-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.portfolio-legend-item{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--text)}
.portfolio-legend-dot{width:10px;height:10px;border-radius:50%}
.portfolio-legend-pct{color:var(--muted);font-family:var(--mono)}
.portfolio-warnings{margin-top:10px}
.portfolio-warning{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:.7rem;margin-bottom:4px}
.portfolio-warning.amber{background:rgba(245,158,11,0.08);border-left:3px solid var(--amber);color:var(--amber)}
.portfolio-warning.red{background:rgba(239,68,68,0.08);border-left:3px solid var(--red);color:var(--red)}
.portfolio-empty{text-align:center;padding:24px 16px;color:var(--muted);font-size:.75rem}
@media(max-width:700px){
  .portfolio-top{flex-direction:column;align-items:center}
}

/* ── Alert Rules Button ───────────────────────────────────────── */
.alert-rules-btn{background:none;border:1px solid var(--line);border-radius:8px;padding:4px 10px;color:var(--muted);font-size:.85rem;cursor:pointer;transition:color .2s,border-color .2s}
.alert-rules-btn:hover{color:var(--amber);border-color:var(--amber)}

/* ── Alert Rules Manager ──────────────────────────────────────── */
.alerts-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:10004;display:none}
.alerts-backdrop.open{display:block}
.alerts-manager{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:560px;max-width:92vw;max-height:80vh;background:var(--panel);border:1px solid var(--line);border-radius:12px;z-index:10005;display:none;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,0.5);overflow:hidden}
.alerts-manager.open{display:flex}
.alerts-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.alerts-header h3{margin:0;font-size:0.9rem;color:var(--text)}
.alerts-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer}
.alerts-body{flex:1;overflow-y:auto;padding:16px 20px}
.alerts-list{margin-bottom:20px}
.alert-rule-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,0.03);border:1px solid var(--line);border-radius:8px;margin-bottom:6px}
.alert-rule-item .rule-name{flex:1;font-size:0.8rem;color:var(--text);font-weight:600}
.alert-rule-item .rule-meta{font-size:0.6rem;color:var(--muted)}
.alert-rule-item .rule-toggle{cursor:pointer}
.alert-rule-item .rule-delete{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.8rem}
.alert-rule-item .rule-delete:hover{color:var(--red)}
.alert-rule-item.disabled{opacity:0.5}
.alerts-creator{border-top:1px solid var(--line);padding-top:16px}
.alerts-creator h4{font-size:0.75rem;color:var(--muted);text-transform:uppercase;margin:0 0 12px}
.alerts-name-input{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:var(--mono,"Cascadia Mono","Fira Code",monospace);font-size:0.8rem;margin-bottom:12px;box-sizing:border-box}
.alerts-name-input:focus{outline:none;border-color:var(--teal)}
.alert-condition-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}
.alert-condition-row select,.alert-condition-row input{padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--text);font-family:var(--mono,"Cascadia Mono","Fira Code",monospace);font-size:0.72rem}
.alert-condition-row select{min-width:100px}
.alert-condition-row input{flex:1;min-width:60px}
.alert-condition-row .remove-condition{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem}
.alert-condition-row .remove-condition:hover{color:var(--red)}
.alerts-add-condition{background:none;border:1px dashed var(--line);border-radius:6px;padding:6px 12px;color:var(--muted);font-size:0.7rem;cursor:pointer;width:100%;margin-bottom:12px}
.alerts-add-condition:hover{border-color:var(--teal);color:var(--teal)}
.alerts-logic{margin-bottom:12px;font-size:0.72rem;color:var(--text);display:flex;gap:16px}
.alerts-logic label{cursor:pointer;display:flex;align-items:center;gap:4px}
.alerts-save-btn{padding:8px 16px;background:linear-gradient(135deg,var(--teal),var(--blue));border:none;border-radius:6px;color:#fff;font-weight:600;font-size:0.75rem;cursor:pointer;width:100%}
.alerts-save-btn:hover{opacity:0.85}

/* ── Performance Dashboard ──────────────────────────────────────── */
.perf-charts{margin-bottom:16px}
.perf-chart-section{margin-bottom:12px}
.perf-chart-label{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px}
.perf-chart-section canvas{width:100%;display:block;background:rgba(0,0,0,0.1);border-radius:6px}
.perf-chart-row{display:flex;gap:12px}
.perf-chart-half{flex:0 0 200px}
.perf-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.perf-stat{background:rgba(255,255,255,0.03);border:1px solid var(--line);border-radius:8px;padding:10px;text-align:center}
.perf-stat .ps-label{font-size:0.6rem;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
.perf-stat .ps-value{font-size:0.95rem;color:var(--text);font-weight:700;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.perf-stat .ps-value.positive{color:var(--green)}
.perf-stat .ps-value.negative{color:var(--red)}
.perf-stat .ps-sub{font-size:0.6rem;color:var(--muted);margin-top:2px}
@media(max-width:600px){.perf-stats-grid{grid-template-columns:repeat(2,1fr)}.perf-chart-row{flex-direction:column}.perf-chart-half{flex:1 1 auto}}

/* ── Multi-Timeframe Panel ──────────────────────────────────────── */
.mtf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.mtf-col{background:rgba(255,255,255,0.03);border:1px solid var(--line);border-radius:8px;padding:14px;text-align:center}
.mtf-col .mtf-tf{font-size:0.8rem;font-weight:700;color:var(--text);margin-bottom:10px;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.mtf-col canvas{display:block;margin:0 auto 8px}
.mtf-col .mtf-return{font-size:0.85rem;font-weight:700;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-bottom:4px}
.mtf-return.positive{color:var(--green)}
.mtf-return.negative{color:var(--red)}
.mtf-col .mtf-count{font-size:0.6rem;color:var(--muted)}
.mtf-col .mtf-status{margin-top:8px;padding:4px 8px;border-radius:4px;font-size:0.6rem;font-weight:600}
.mtf-status.bullish{background:rgba(45,212,191,0.1);color:var(--teal)}
.mtf-status.bearish{background:rgba(239,68,68,0.1);color:var(--red)}
.mtf-status.neutral{background:rgba(255,255,255,0.05);color:var(--muted)}
@media(max-width:600px){.mtf-grid{grid-template-columns:repeat(2,1fr)}}

/* ── Trade Journal ─────────────────────────────────────────────────── */
.journal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:10006;display:none}
.journal-backdrop.open{display:block}
.journal-overlay{position:fixed;inset:40px;background:var(--panel);border:1px solid var(--line);border-radius:12px;z-index:10007;display:none;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,0.5);overflow:hidden}
.journal-overlay.open{display:flex}
.journal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px}
.journal-header h3{margin:0;font-size:0.9rem;color:var(--text)}
.journal-header-actions{display:flex;gap:8px;align-items:center}
.journal-search{padding:6px 10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:0.75rem;width:160px}
.journal-search:focus{outline:none;border-color:var(--teal)}
.journal-new-btn{padding:6px 14px;background:linear-gradient(135deg,var(--teal),var(--blue));border:none;border-radius:6px;color:#fff;font-size:0.7rem;font-weight:600;cursor:pointer}
.journal-export-btn{padding:6px 12px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:0.7rem;cursor:pointer}
.journal-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer}
.journal-body{flex:1;overflow-y:auto;padding:16px 20px}
.journal-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.journal-filter-btn{padding:4px 10px;background:rgba(255,255,255,0.04);border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:0.65rem;cursor:pointer}
.journal-filter-btn.active{border-color:var(--teal);color:var(--teal);background:rgba(45,212,191,0.08)}
.journal-entry{background:rgba(255,255,255,0.03);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:10px}
.journal-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.journal-entry .je-symbol{font-weight:700;font-size:0.85rem;color:var(--text);font-family:var(--mono)}
.journal-entry .je-side{font-size:0.6rem;padding:2px 8px;border-radius:4px;text-transform:uppercase;font-weight:700}
.je-side.long{background:rgba(45,212,191,0.15);color:var(--teal)}
.je-side.short{background:rgba(239,68,68,0.15);color:var(--red)}
.journal-entry .je-pnl{font-family:var(--mono);font-weight:600;font-size:0.85rem}
.je-pnl.positive{color:var(--green)}
.je-pnl.negative{color:var(--red)}
.journal-entry .je-notes{font-size:0.75rem;color:var(--text);margin:8px 0;line-height:1.5}
.journal-entry .je-lessons{font-size:0.72rem;color:var(--amber);font-style:italic;margin:6px 0}
.journal-entry .je-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.je-tag{padding:2px 8px;background:rgba(96,165,250,0.1);border-radius:10px;font-size:0.6rem;color:var(--blue)}
.journal-entry .je-stars{color:var(--amber);font-size:0.8rem;letter-spacing:2px}
.journal-entry .je-meta{font-size:0.6rem;color:var(--muted);margin-top:6px}
.journal-entry .je-actions{display:flex;gap:6px;margin-top:8px}
.je-actions button{background:none;border:1px solid var(--line);border-radius:4px;padding:3px 10px;color:var(--muted);font-size:0.65rem;cursor:pointer}
.je-actions button:hover{border-color:var(--teal);color:var(--teal)}
.journal-editor{padding:16px}
.je-form-group{margin-bottom:12px}
.je-form-group label{display:block;font-size:0.65rem;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
.je-form-group input,.je-form-group textarea,.je-form-group select{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:var(--mono);font-size:0.78rem}
.je-form-group textarea{min-height:80px;resize:vertical}
.je-form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.je-tag-selector{display:flex;flex-wrap:wrap;gap:4px}
.je-tag-option{padding:3px 10px;border:1px solid var(--line);border-radius:12px;font-size:0.6rem;color:var(--muted);cursor:pointer}
.je-tag-option.selected{border-color:var(--teal);color:var(--teal);background:rgba(45,212,191,0.08)}
.je-star-selector{font-size:1.2rem;cursor:pointer;letter-spacing:4px}
.je-star-selector .star{color:var(--line);transition:color 0.15s}
.je-star-selector .star.filled{color:var(--amber)}
.je-form-actions{display:flex;gap:8px;margin-top:16px}
.je-form-actions button{padding:8px 16px;border-radius:6px;font-size:0.75rem;font-weight:600;cursor:pointer}
.je-save-btn{background:linear-gradient(135deg,var(--teal),var(--blue));border:none;color:#fff;flex:1}
.je-cancel-btn{background:none;border:1px solid var(--line);color:var(--muted)}

/* ── Signal Accuracy Tracker ──────────────────────────────────────── */
.accuracy-summary{display:flex;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.accuracy-summary .acc-stat{text-align:center}
.accuracy-summary .acc-stat-value{font-size:1rem;font-weight:700;color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.accuracy-summary .acc-stat-label{font-size:0.6rem;color:var(--muted);text-transform:uppercase}
.accuracy-section{margin-bottom:16px}
.accuracy-section-title{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,0.05)}
.accuracy-bar-row{display:flex;align-items:center;margin-bottom:6px;gap:8px}
.accuracy-bar-label{width:70px;font-size:0.7rem;color:var(--text);font-weight:600;text-align:right;flex-shrink:0}
.accuracy-bar-track{flex:1;height:18px;background:rgba(255,255,255,0.04);border-radius:4px;overflow:hidden;position:relative}
.accuracy-bar-fill{height:100%;border-radius:4px;transition:width 0.5s ease-out;min-width:2px}
.accuracy-bar-fill.good{background:linear-gradient(90deg,var(--teal),var(--green))}
.accuracy-bar-fill.mid{background:linear-gradient(90deg,var(--amber),#d97706)}
.accuracy-bar-fill.poor{background:linear-gradient(90deg,var(--red),#dc2626)}
.accuracy-bar-value{width:50px;font-size:0.7rem;color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}
.accuracy-bar-meta{font-size:0.58rem;color:var(--muted);width:50px}

/* ── Volume Profile ───────────────────────────────────────────── */
.vp-header{display:flex;justify-content:space-between;align-items:center;padding:0 8px 8px}
.vp-bid-label{font-size:0.65rem;color:var(--teal);text-transform:uppercase;font-weight:600}
.vp-ask-label{font-size:0.65rem;color:var(--red);text-transform:uppercase;font-weight:600}
.vp-mid-label{font-size:0.75rem;color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700}
#volumeProfileCanvas{width:100%;display:block;background:rgba(0,0,0,0.1);border-radius:6px}
.vp-footer{display:flex;justify-content:space-between;align-items:center;padding:8px;font-size:0.68rem;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.vp-total-bid{color:var(--teal)}
.vp-total-ask{color:var(--red)}
.vp-ratio{color:var(--text);font-weight:600}
.vp-placeholder{text-align:center;padding:40px 0;color:var(--muted);font-size:0.72rem}

/* -- Pattern Recognition Feed -------------------------------------------- */
.pattern-summary{display:flex;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pattern-stat{padding:4px 10px;background:rgba(255,255,255,0.03);border-radius:12px;font-size:0.65rem;color:var(--muted)}
.pattern-stat .ps-count{color:var(--text);font-weight:700;margin-right:4px}
.pattern-feed{max-height:400px;overflow-y:auto}
.pattern-card{display:flex;gap:12px;padding:10px 12px;background:rgba(255,255,255,0.02);border:1px solid var(--line);border-radius:8px;margin-bottom:6px;transition:border-color 0.2s;cursor:pointer}
.pattern-card:hover{border-color:var(--teal)}
.pattern-card .pat-icon{font-size:1.2rem;flex-shrink:0;width:28px;text-align:center}
.pattern-card .pat-body{flex:1}
.pattern-card .pat-name{font-size:0.78rem;font-weight:700;color:var(--text)}
.pattern-card .pat-desc{font-size:0.65rem;color:var(--muted);margin-top:2px}
.pattern-card .pat-meta{display:flex;gap:12px;margin-top:6px;font-size:0.6rem}
.pattern-card .pat-symbol{font-weight:600;color:var(--teal);font-family:var(--mono)}
.pattern-card .pat-winrate{color:var(--green)}
.pattern-card .pat-return{color:var(--blue)}
.pattern-card .pat-tier{padding:1px 6px;border-radius:4px;font-weight:600;text-transform:uppercase;font-size:0.55rem}
.pat-tier.elite{background:rgba(45,212,191,0.15);color:var(--teal)}
.pat-tier.high{background:rgba(96,165,250,0.15);color:var(--blue)}
.pat-tier.medium{background:rgba(245,158,11,0.15);color:var(--amber)}

/* -- Market Pulse Globe -------------------------------------------------- */
.pulse-container{position:relative;display:flex;justify-content:center;padding:8px 0}
#marketPulseCanvas{display:block;cursor:crosshair}
.pulse-tooltip{position:absolute;display:none;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 12px;font-size:0.7rem;color:var(--text);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;pointer-events:none;z-index:10;box-shadow:0 4px 12px rgba(0,0,0,0.3);white-space:nowrap}
.pulse-legend{display:flex;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}
.pulse-legend-item{display:flex;align-items:center;gap:4px;font-size:0.6rem;color:var(--muted)}
.pulse-legend-dot{width:8px;height:8px;border-radius:50%}

/* ── Session Replay Timeline ─────────────────────────────────────────── */
.session-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:10008;display:none}
.session-backdrop.open{display:block}
.session-overlay{position:fixed;top:40px;right:0;bottom:0;width:400px;max-width:95vw;background:var(--panel);border-left:1px solid var(--line);z-index:10009;display:none;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,0.3)}
.session-overlay.open{display:flex}
.session-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.session-header h3{margin:0;font-size:0.85rem;color:var(--text)}
.session-actions{display:flex;gap:8px}
.session-export-btn{padding:5px 12px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:0.68rem;cursor:pointer;transition:border-color .2s}
.session-export-btn:hover{border-color:var(--teal);color:var(--teal)}
.session-close{background:none;border:none;color:var(--muted);font-size:1.3rem;cursor:pointer;transition:color .2s}
.session-close:hover{color:var(--text)}
.session-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.session-stat{text-align:center}
.session-stat .ss-value{font-size:0.9rem;font-weight:700;color:var(--text);font-family:"Cascadia Mono","Fira Mono","Consolas",monospace}
.session-stat .ss-label{font-size:0.55rem;color:var(--muted);text-transform:uppercase}
.session-timeline{flex:1;overflow-y:auto;padding:12px 16px}
.timeline-event{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.03);position:relative;cursor:default}
.timeline-event::before{content:'';position:absolute;left:13px;top:28px;bottom:-8px;width:1px;background:var(--line)}
.timeline-event:last-child::before{display:none}
.timeline-event:hover{background:rgba(255,255,255,0.02);border-radius:4px}
.timeline-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0}
.timeline-dot.focus{background:var(--teal)}
.timeline-dot.signal{background:var(--blue)}
.timeline-dot.trade{background:var(--green)}
.timeline-dot.alert{background:var(--amber)}
.timeline-dot.error{background:var(--red)}
.timeline-dot.system{background:var(--muted)}
.timeline-body{flex:1;min-width:0}
.timeline-type{font-size:0.68rem;font-weight:600;color:var(--text);text-transform:capitalize}
.timeline-detail{font-size:0.65rem;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-time{font-size:0.58rem;color:var(--muted);font-family:"Cascadia Mono","Fira Mono","Consolas",monospace;flex-shrink:0;min-width:50px;text-align:right}

/* ── Layouts ───────────────────────────────────────────────────── */
.layout-menu-wrap{position:relative}
.layout-btn{background:none;border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--muted);font-size:0.72rem;cursor:pointer;font-family:"Cascadia Mono","Fira Mono","Consolas",monospace;transition:color .2s,border-color .2s}
.layout-btn:hover{color:var(--teal);border-color:var(--teal)}
.layout-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:200px;display:none;flex-direction:column;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.3);overflow:hidden}
.layout-dropdown.open{display:flex}
.layout-option{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .15s;font-size:0.72rem;color:var(--text);border:none;background:none;text-align:left;width:100%;font-family:"Cascadia Mono","Fira Mono","Consolas",monospace}
.layout-option:hover{background:rgba(45,212,191,.1)}
.layout-option .lo-icon{width:22px;height:22px;border-radius:4px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:700;color:var(--teal)}
.layout-option .lo-name{flex:1}
.layout-option .lo-delete{color:var(--muted);font-size:0.7rem;opacity:0;transition:opacity .15s;background:none;border:none;cursor:pointer}
.layout-option:hover .lo-delete{opacity:1}
.layout-divider{height:1px;background:var(--line)}
.layout-save-btn{padding:8px 14px;border:none;background:none;color:var(--teal);font-size:0.72rem;cursor:pointer;text-align:left;font-family:"Cascadia Mono","Fira Mono","Consolas",monospace}
.layout-save-btn:hover{background:rgba(45,212,191,.05)}
.layout-save-input{width:calc(100% - 20px);padding:6px 10px;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--text);font-family:"Cascadia Mono","Fira Mono","Consolas",monospace;font-size:0.72rem;margin:4px 10px}

/* ── Vim Navigation ────────────────────────────────────────────── */
.signal-card.vim-selected{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal),0 0 12px rgba(45,212,191,.15)}
.vim-indicator{position:fixed;bottom:12px;right:12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:0.6rem;color:var(--teal);font-family:"Cascadia Mono","Fira Mono","Consolas",monospace;font-weight:700;z-index:100;opacity:.7;display:none}
.vim-indicator.active{display:block}
.shortcuts-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10010;display:none}
.shortcuts-backdrop.open{display:block}
.shortcuts-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:620px;max-width:92vw;background:var(--panel);border:1px solid var(--line);border-radius:12px;z-index:10011;display:none;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.shortcuts-modal.open{display:block}
.shortcuts-modal h3{margin:0 0 16px;font-size:0.9rem;color:var(--text)}
.shortcuts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.shortcuts-section h4{font-size:0.7rem;color:var(--teal);text-transform:uppercase;margin:0 0 8px}
.shortcut-row{display:flex;gap:8px;padding:3px 0;font-size:0.72rem}
.shortcut-key{background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-family:"Cascadia Mono","Fira Mono","Consolas",monospace;color:var(--text);font-weight:600;min-width:28px;text-align:center;font-size:0.68rem}
.shortcut-desc{color:var(--muted)}

/* ── Sound Settings ────────────────────────────────────────────── */
.sound-settings{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:180px;display:none;flex-direction:column;z-index:100;box-shadow:0 -4px 20px rgba(0,0,0,.3);padding:10px}
.sound-settings.open{display:flex}
.sound-setting-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:0.68rem;color:var(--text)}
.sound-setting-row label{cursor:pointer;display:flex;align-items:center;gap:4px}
.sound-volume-slider{width:100%;margin:6px 0;accent-color:var(--teal)}
.sound-settings-title{font-size:0.6rem;color:var(--muted);text-transform:uppercase;margin-bottom:6px}

/* ── Risk Dashboard ─────────────────────────────────────────────── */
.risk-top { display: flex; align-items: center; gap: 20px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.risk-gauge-wrap { text-align: center; }
.risk-gauge-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin-top: 4px; }
.risk-score-text { font-size: 0.75rem; font-weight: 600; margin-top: 2px; }
.risk-score-text.low { color: var(--green); }
.risk-score-text.moderate { color: var(--amber); }
.risk-score-text.high { color: var(--red); }
.risk-breakdown { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.risk-card { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
.risk-card .rc-title { font-size: 0.65rem; color: var(--muted); text-transform: uppercase; margin-bottom: 6px; }
.risk-card .rc-value { font-size: 0.9rem; font-weight: 700; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.risk-card .rc-bar { height: 4px; background: rgba(255,255,255,0.06); border-radius: 2px; margin-top: 6px; overflow: hidden; }
.risk-card .rc-bar-fill { height: 100%; border-radius: 2px; transition: width 0.5s; }
.risk-sizing { margin-bottom: 16px; }
.risk-sizing-title { font-size: 0.65rem; color: var(--muted); text-transform: uppercase; margin-bottom: 8px; }
.sizing-row { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.03); font-size: 0.72rem; }
.sizing-row .sr-sym { width: 80px; font-weight: 600; color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.sizing-row .sr-current { width: 70px; color: var(--muted); }
.sizing-row .sr-kelly { width: 70px; font-weight: 600; }
.sizing-row .sr-kelly.ok { color: var(--green); }
.sizing-row .sr-kelly.over { color: var(--amber); }
.sizing-row .sr-kelly.danger { color: var(--red); }
.sizing-row .sr-bar { flex: 1; height: 6px; background: rgba(255,255,255,0.06); border-radius: 3px; position: relative; }
.sizing-row .sr-bar-fill { height: 100%; border-radius: 3px; }
.risk-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.scenario-card { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 8px; padding: 10px; text-align: center; }
.scenario-card .sc-title { font-size: 0.65rem; color: var(--muted); text-transform: uppercase; margin-bottom: 6px; }
.scenario-card .sc-sigma { font-size: 0.7rem; color: var(--text); margin-bottom: 4px; }
.scenario-card .sc-impact { font-size: 1rem; font-weight: 700; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.sc-impact.mild { color: var(--amber); }
.sc-impact.moderate { color: #f97316; }
.sc-impact.severe { color: var(--red); }

/* ── Execution Speed Dashboard ──────────────────────────────── */
.exec-speed-top { display: flex; gap: 16px; align-items: center; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.exec-latency-gauge { text-align: center; }
.exec-latency-gauge canvas { display: block; margin: 0 auto; }
.exec-latency-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin-top: 4px; }
.exec-speed-summary { flex: 1; }
.exec-speed-summary .ess-row { display: flex; justify-content: space-between; padding: 3px 0; font-size: 0.72rem; }
.ess-row .ess-label { color: var(--muted); }
.ess-row .ess-value { color: var(--text); font-weight: 600; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.ess-value.fast { color: var(--green); }
.ess-value.medium { color: var(--amber); }
.ess-value.slow { color: var(--red); }
.exec-speed-charts { margin-bottom: 14px; }
.exec-speed-charts canvas { width: 100%; display: block; background: rgba(0,0,0,0.1); border-radius: 6px; }
.exec-speed-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; }
.exec-speed-stat { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 6px; padding: 8px; text-align: center; }
.exec-speed-stat .ess-stat-label { font-size: 0.55rem; color: var(--muted); text-transform: uppercase; }
.exec-speed-stat .ess-stat-value { font-size: 0.85rem; font-weight: 700; color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; margin-top: 2px; }
.exec-speed-breakdown { }
.exec-slippage-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: 0.7rem; }
.exec-slippage-row .esr-sym { width: 70px; font-weight: 600; color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.exec-slippage-row .esr-bar { flex: 1; height: 6px; background: rgba(255,255,255,0.06); border-radius: 3px; overflow: hidden; }
.esr-bar-fill { height: 100%; border-radius: 3px; }
.esr-bar-fill.positive { background: var(--green); }
.esr-bar-fill.negative { background: var(--red); }
.exec-slippage-row .esr-value { width: 50px; text-align: right; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size: 0.65rem; }
.exec-percentiles { display: flex; gap: 4px; margin-top: 10px; }
.exec-pct { flex: 1; text-align: center; padding: 4px; background: rgba(255,255,255,0.03); border-radius: 4px; }
.exec-pct .pct-label { font-size: 0.5rem; color: var(--muted); text-transform: uppercase; }
.exec-pct .pct-value { font-size: 0.75rem; font-weight: 700; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color: var(--text); }
.exec-tod-chart { margin-top: 12px; }
.exec-tod-chart canvas { width: 100%; display: block; background: rgba(0,0,0,0.1); border-radius: 6px; }
.exec-tod-label { font-size: 0.55rem; color: var(--muted); text-transform: uppercase; margin-top: 4px; text-align: center; }
.exec-section-title { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin: 10px 0 6px; letter-spacing: 0.04em; }

/* ── Execution Overlay ────────────────────────────────────────── */
.exec-canvas-wrap { position: relative; margin-bottom: 12px; }
#execOverlayCanvas { width: 100%; display: block; background: rgba(0,0,0,0.1); border-radius: 6px; }
.exec-tracker { border-top: 1px solid var(--line); padding-top: 12px; }
.exec-tracker-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.exec-label { font-size: 0.7rem; color: var(--muted); text-transform: uppercase; font-weight: 600; }
.exec-status { font-size: 0.6rem; padding: 2px 8px; border-radius: 4px; font-weight: 600; }
.exec-status.monitoring { background: rgba(45,212,191,0.1); color: var(--teal); }
.exec-status.filling { background: rgba(52,211,153,0.1); color: var(--green); animation: execPulse 1s infinite; }
.exec-order-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: rgba(255,255,255,0.02); border: 1px solid var(--line); border-radius: 6px; margin-bottom: 4px; font-size: 0.7rem; }
.exec-order-row .eo-sym { font-weight: 700; color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; width: 70px; }
.exec-order-row .eo-side { font-size: 0.55rem; padding: 1px 6px; border-radius: 3px; text-transform: uppercase; font-weight: 700; }
.eo-side.buy { background: rgba(45,212,191,0.15); color: var(--teal); }
.eo-side.sell { background: rgba(239,68,68,0.15); color: var(--red); }
.exec-order-row .eo-price { color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; width: 80px; }
.exec-order-row .eo-fill { flex: 1; }
.eo-fill-bar { height: 4px; background: rgba(255,255,255,0.06); border-radius: 2px; overflow: hidden; }
.eo-fill-bar-inner { height: 100%; border-radius: 2px; background: var(--teal); transition: width 0.3s; }
.exec-order-row .eo-queue { font-size: 0.6rem; color: var(--muted); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; width: 60px; text-align: right; }
.exec-order-row .eo-time { font-size: 0.55rem; color: var(--muted); width: 50px; text-align: right; }
.exec-order-row .eo-status { font-size: 0.55rem; padding: 1px 6px; border-radius: 3px; font-weight: 600; }
.eo-status.pending { background: rgba(245,158,11,0.12); color: var(--amber); }
.eo-status.partial { background: rgba(45,212,191,0.12); color: var(--teal); }
.eo-status.filled { background: rgba(52,211,153,0.12); color: var(--green); }
.exec-empty { font-size: 0.7rem; color: var(--muted); padding: 8px 0; }
@keyframes execPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.6; } }

/* ── Execution Analytics ─────────────────────────────────────────── */
.exec-analytics-top { display: flex; gap: 16px; align-items: center; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.exec-quality-score { text-align: center; min-width: 80px; }
.exec-quality-score .eqs-value { font-size: 1.8rem; font-weight: 700; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.eqs-value.good { color: var(--green); }
.eqs-value.ok { color: var(--amber); }
.eqs-value.poor { color: var(--red); }
.exec-quality-score .eqs-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; }
.exec-quality-breakdown { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.exec-quality-stat { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; text-align: center; }
.exec-quality-stat .eqb-label { font-size: 0.55rem; color: var(--muted); text-transform: uppercase; }
.exec-quality-stat .eqb-value { font-size: 0.8rem; font-weight: 700; color: var(--text); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; margin-top: 2px; }
.exec-analytics-chart { margin-bottom: 14px; }
.exec-analytics-heatmap { margin-bottom: 14px; }
.exec-chart-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin-bottom: 6px; }
.exec-analytics-chart canvas, .exec-analytics-heatmap canvas { width: 100%; display: block; background: rgba(0,0,0,0.1); border-radius: 6px; }
.exec-insights { margin-bottom: 14px; }
.exec-insight { display: flex; gap: 8px; padding: 8px 10px; background: rgba(45,212,191,0.04); border-left: 3px solid var(--teal); border-radius: 4px; margin-bottom: 4px; font-size: 0.7rem; color: var(--text); line-height: 1.4; }
.exec-insight.warning { border-left-color: var(--amber); background: rgba(245,158,11,0.04); }
.exec-insight.danger { border-left-color: var(--red); background: rgba(239,68,68,0.04); }
.exec-insight .ei-icon { flex-shrink: 0; }
.exec-history { max-height: 250px; overflow-y: auto; }
.exec-history-header { display: flex; gap: 4px; padding: 4px 6px; font-size: 0.55rem; color: var(--muted); text-transform: uppercase; border-bottom: 1px solid var(--line); cursor: pointer; user-select: none; }
.exec-history-header span:hover { color: var(--text); }
.exec-history-row { display: flex; gap: 4px; padding: 5px 6px; font-size: 0.65rem; border-bottom: 1px solid rgba(255,255,255,0.02); font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.exec-history-row.good { border-left: 2px solid var(--green); }
.exec-history-row.ok { border-left: 2px solid var(--amber); }
.exec-history-row.poor { border-left: 2px solid var(--red); }
.exec-history-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eh-time { width: 60px; color: var(--muted); }
.eh-sym { width: 65px; color: var(--text); font-weight: 600; }
.eh-side { width: 35px; }
.eh-expected { width: 70px; color: var(--muted); }
.eh-fill { width: 70px; color: var(--text); }
.eh-slip { width: 50px; }
.eh-latency { width: 50px; }
.eh-quality { width: 35px; font-weight: 700; }

/* ── Order Flow Tape ────────────────��─────────────────────────── */
.tape-stats { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.tape-delta-bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin-bottom: 6px; }
.tape-delta-buy { background: var(--teal); transition: width 0.3s; }
.tape-delta-sell { background: var(--red); transition: width 0.3s; }
.tape-meta { display: flex; justify-content: space-between; font-size: 0.6rem; color: var(--muted); flex-wrap: wrap; gap: 4px; }
.tape-meta .tm-buy { color: var(--teal); font-weight: 600; }
.tape-meta .tm-sell { color: var(--red); font-weight: 600; }
.tape-meta .tm-delta { font-weight: 700; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.tape-list { max-height: 300px; overflow-y: auto; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.tape-row { display: flex; align-items: center; gap: 6px; padding: 3px 6px; font-size: 0.65rem; border-bottom: 1px solid rgba(255,255,255,0.02); transition: background 0.2s; }
.tape-row.tape-buy { color: var(--teal); }
.tape-row.tape-sell { color: var(--red); }
.tape-row.tape-large { font-weight: 700; background: rgba(255,255,255,0.03); }
.tape-row.tape-iceberg { font-style: italic; }
.tape-time { width: 65px; color: var(--muted); font-size: 0.58rem; }
.tape-price { width: 75px; text-align: right; }
.tape-size { width: 60px; text-align: right; }
.tape-flag { font-size: 0.5rem; padding: 1px 4px; border-radius: 3px; font-weight: 700; text-transform: uppercase; }
.tape-flag.large { background: rgba(245,158,11,0.15); color: var(--amber); }
.tape-flag.iceberg { background: rgba(96,165,250,0.15); color: var(--blue); }
.tape-row:nth-child(-n+3) { animation: tapeSlideIn 0.2s ease-out; }
@keyframes tapeSlideIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ── Regime Transition Matrix ──────────────────────────────────── */
.regime-matrix-stats { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.regime-matrix-stats .rms-item { font-size: 0.65rem; color: var(--muted); }
.rms-item strong { color: var(--text); }
#regimeMatrixCanvas { display: block; margin: 0 auto; }
.regime-matrix-legend { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 0.6rem; color: var(--muted); }
.rml-bar { width: 80px; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #101722, #2dd4bf); }
.rml-note { margin-left: auto; font-style: italic; }

/* ── Expectancy Calculator ───────────────────────────────────── */
.expectancy-hero { text-align: center; padding: 16px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.expectancy-hero .ev-value { font-size: 1.6rem; font-weight: 700; font-family: var(--mono); }
.ev-value.positive { color: var(--green); }
.ev-value.negative { color: var(--red); }
.expectancy-hero .ev-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin-top: 4px; }
.ev-section-title { font-size: 0.65rem; color: var(--muted); text-transform: uppercase; margin: 12px 0 6px; padding-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,0.05); }
.ev-row { display: flex; align-items: center; gap: 6px; padding: 5px 0; font-size: 0.7rem; border-bottom: 1px solid rgba(255,255,255,0.02); }
.ev-row .ev-tier { width: 60px; font-weight: 600; color: var(--text); }
.ev-row .ev-wr { width: 50px; color: var(--muted); font-family: var(--mono); }
.ev-row .ev-avgwin { width: 55px; color: var(--green); font-family: var(--mono); }
.ev-row .ev-avgloss { width: 55px; color: var(--red); font-family: var(--mono); }
.ev-row .ev-ev { width: 55px; font-weight: 700; font-family: var(--mono); }
.ev-row .ev-conf { font-size: 0.55rem; padding: 1px 6px; border-radius: 3px; }
.ev-conf.high { background: rgba(52,211,153,0.1); color: var(--green); }
.ev-conf.medium { background: rgba(255,255,255,0.05); color: var(--muted); }
.ev-conf.low { background: rgba(245,158,11,0.1); color: var(--amber); }
.ev-tf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 8px; }
.ev-tf-card { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 6px; padding: 10px; text-align: center; }
.ev-tf-card .etf-label { font-size: 0.65rem; color: var(--muted); }
.ev-tf-card .etf-value { font-size: 0.9rem; font-weight: 700; font-family: var(--mono); margin-top: 4px; }

/* ── Momentum Rankings ───────────────────────────────────────── */
.momentum-table { max-height: 400px; overflow-y: auto; }
.momentum-row { display: flex; align-items: center; gap: 6px; padding: 6px 4px; font-size: 0.7rem; border-bottom: 1px solid rgba(255,255,255,0.03); }
.momentum-row .mr-rank { width: 24px; color: var(--muted); font-weight: 700; text-align: center; }
.momentum-row .mr-sym { width: 70px; font-weight: 600; color: var(--text); font-family: var(--mono); cursor: pointer; }
.momentum-row .mr-sym:hover { color: var(--teal); text-decoration: underline; }
.momentum-row .mr-score { width: 45px; font-weight: 700; font-family: var(--mono); color: var(--text); }
.momentum-row .mr-spark { width: 50px; }
.momentum-row .mr-regime { font-size: 0.55rem; padding: 1px 6px; border-radius: 3px; background: rgba(255,255,255,0.05); color: var(--muted); }
.momentum-row .mr-trend { width: 20px; text-align: center; font-size: 0.8rem; }
.mr-trend.up { color: var(--green); }
.mr-trend.down { color: var(--red); }
.mr-trend.flat { color: var(--muted); }
.momentum-row .mr-streak { font-size: 0.5rem; padding: 1px 5px; border-radius: 3px; font-weight: 700; }
.mr-streak.hot { background: rgba(239,68,68,0.15); color: var(--red); }
.mr-streak.cold { background: rgba(96,165,250,0.15); color: var(--blue); }
/* ── Drawdown Recovery ──────────────────────────────────────────── */
.dd-status { display: flex; gap: 16px; align-items: center; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.dd-status-main { text-align: center; }
.dd-status-main .dd-value { font-size: 1.3rem; font-weight: 700; font-family: var(--mono); }
.dd-value.none { color: var(--green); }
.dd-value.mild { color: var(--amber); }
.dd-value.severe { color: var(--red); }
.dd-status-main .dd-label { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; }
.dd-status-detail { flex: 1; }
.dd-status-row { display: flex; justify-content: space-between; font-size: 0.7rem; padding: 2px 0; }
.dd-status-row .dd-k { color: var(--muted); }
.dd-status-row .dd-v { color: var(--text); font-family: var(--mono); font-weight: 600; }
#ddRecoveryCanvas { width: 100%; display: block; background: rgba(0,0,0,0.1); border-radius: 6px; margin-bottom: 12px; }
.dd-scenarios { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.dd-scenario { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 6px; padding: 10px; text-align: center; }
.dd-scenario .dds-title { font-size: 0.6rem; color: var(--muted); text-transform: uppercase; margin-bottom: 4px; }
.dd-scenario .dds-periods { font-size: 1rem; font-weight: 700; font-family: var(--mono); color: var(--text); }
.dd-scenario .dds-rate { font-size: 0.6rem; color: var(--muted); margin-top: 2px; }
.dd-scenario.optimistic { border-left: 3px solid var(--green); }
.dd-scenario.expected { border-left: 3px solid var(--amber); }
.dd-scenario.conservative { border-left: 3px solid var(--red); }
.dd-history { max-height: 150px; overflow-y: auto; }
.dd-history-row { display: flex; gap: 8px; padding: 4px 0; font-size: 0.65rem; border-bottom: 1px solid rgba(255,255,255,0.02); }
.dd-history-row span { font-family: var(--mono); }
.dd-history-row .ddh-depth { color: var(--red); width: 60px; }
.dd-history-row .ddh-duration { color: var(--muted); width: 60px; }
.dd-history-row .ddh-recovery { color: var(--green); width: 60px; }
.dd-no-drawdown { text-align: center; padding: 20px; color: var(--green); font-size: 0.8rem; }

/* ── Performance Monitor ──────────────────────────────────────────── */
.perf-monitor { position: fixed; bottom: 12px; left: 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; font-family: var(--mono); font-size: 0.55rem; z-index: 99; opacity: 0; transition: opacity 0.3s; pointer-events: none; }
.perf-monitor.visible { opacity: 0.8; pointer-events: auto; }
.perf-row { display: flex; justify-content: space-between; gap: 12px; padding: 1px 0; }
.perf-label { color: var(--muted); }
.perf-val { color: var(--text); font-weight: 600; }
.perf-val.good { color: var(--green); }
.perf-val.warn { color: var(--amber); }
.perf-val.bad { color: var(--red); }

/* ── Panel Error Boundary ─────────────────────────────────────────── */
.panel-error { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 20px; color: var(--muted); font-size: 0.72rem; }
.pe-icon { width: 24px; height: 24px; border-radius: 12px; background: rgba(239,68,68,0.1); color: var(--red); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.8rem; }
.pe-retry { background: none; border: 1px solid var(--line); border-radius: 4px; padding: 3px 10px; color: var(--muted); font-size: 0.65rem; cursor: pointer; }
.pe-retry:hover { border-color: var(--teal); color: var(--teal); }

/* ── Safe-area insets (iPhone notch / Dynamic Island) ─────────── */
@supports (padding: env(safe-area-inset-top)) {
  body {
    padding-top: env(safe-area-inset-top);
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
  .topbar {
    padding-top: env(safe-area-inset-top);
  }
  .controls-bar {
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media (display-mode: standalone) {
  body {
    padding-top: env(safe-area-inset-top);
  }
  .topbar {
    padding-top: calc(env(safe-area-inset-top) + 4px);
  }
}

/* ── Touch device hover fix ───────────────────────────────────── */
@media (hover: none) {
  * { -webkit-tap-highlight-color: transparent; }

  /* Active press feedback instead of hover */
  .action-btn:active,
  .retry-btn:active,
  .signal-card:active,
  .workspace-tab:active,
  .wl-chip:active,
  .export-option:active,
  .cmd-item:active,
  .tape-row:active,
  .momentum-row:active,
  button:active {
    opacity: 0.7;
    transform: scale(0.97);
    transition: transform 0.05s ease, opacity 0.05s ease;
  }
}

/* ── Overscroll containment ───────────────────────────────────── */
html, body {
  /* overscroll-behavior-y: contain removed — interferes with Windows
     trackpad 2-finger scroll on the main content area. Retained on
     inner scroll containers below where it's actually useful. */
  overflow-x: hidden;
}
.signal-list,
.tape-list,
.exec-orders,
.dd-history,
.journal-list {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* ── Extra-small screens (iPhone SE / mini) ───────────────────── */
@media (max-width: 400px) {
  .app { padding: 6px 4px 60px; }
  .brand-wordmark { font-size: 18px; }
  .topbar { padding: 6px 8px; }
  .qstat { flex: 1 1 100%; min-width: unset; }
  .qstat-row { flex-direction: column; gap: 4px; }
  .workspace-tabs { gap: 2px; }
  .workspace-tab { font-size: 0.55rem; padding: 6px 8px; }
  .detail-card { padding: 10px 8px; }
  .detail-card h3 { font-size: 0.75rem; }
  .hero-symbol { font-size: 20px; }
  .signal-card { padding: 8px 6px; }
  .controls-bar { flex-wrap: wrap; gap: 6px; padding: 8px; }
  .controls-bar button { font-size: 0.6rem; padding: 6px 10px; }
  .exec-speed-grid { grid-template-columns: repeat(2, 1fr); }
  .dd-scenarios { grid-template-columns: 1fr; }
  .perf-monitor { font-size: 0.55rem; }
  .tape-row { font-size: 0.58rem; gap: 4px; }
  .momentum-row { font-size: 0.58rem; }
}

/* ── Touch target minimums ────────────────────────────────────── */
@media (pointer: coarse) {
  .wl-chip { min-height: 40px; padding: 8px 14px; }
  .badge { min-height: 32px; display: inline-flex; align-items: center; }
  .export-option { min-height: 44px; }
  .layout-option { min-height: 44px; }
  .cmd-item { min-height: 44px; }
  .tier-label { min-height: 36px; display: inline-flex; align-items: center; }
  .alert-rule-row button { min-height: 40px; min-width: 40px; }
  .journal-entry button { min-height: 40px; min-width: 40px; }
  select, input[type="text"], input[type="number"] { min-height: 44px; }
  .topbar-btn { min-width: 44px; min-height: 44px; }
}

/* ── PWA install prompt ───────────────────────────────────────── */
.pwa-install-banner {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--surface);
  border-top: 1px solid var(--teal);
  padding: 12px 16px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 10000;
  text-align: center;
  animation: slideUp 0.3s ease;
}
.pwa-install-banner.visible { display: block; }
.pwa-install-banner p { font-size: 0.75rem; color: var(--text); margin-bottom: 8px; }
.pwa-install-banner .pwa-install-btn {
  background: var(--teal);
  color: var(--bg);
  border: none;
  border-radius: 8px;
  padding: 10px 24px;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
}
.pwa-install-banner .pwa-dismiss {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 0.7rem;
  cursor: pointer;
  margin-left: 12px;
}
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
/* ── Live Mode Ceremony ───────────────────────────────────────── */
.ceremony-backdrop {
  position: fixed; inset: 0; z-index: 20000;
  background: rgba(0,0,0,0.85);
  display: flex; align-items: center; justify-content: center;
  animation: ceremonyFadeIn 0.3s ease;
}
@keyframes ceremonyFadeIn { from { opacity: 0; } to { opacity: 1; } }
.ceremony-modal {
  background: var(--panel);
  border: 2px solid #ef4444;
  border-radius: 16px;
  padding: 32px;
  max-width: 480px;
  width: 90%;
  box-shadow: 0 0 60px rgba(239,68,68,0.3);
}
.ceremony-header {
  text-align: center;
  margin-bottom: 24px;
}
.ceremony-icon { font-size: 48px; display: block; margin-bottom: 8px; }
.ceremony-header h2 { color: #ef4444; font-size: 1.3rem; margin: 0; }
.ceremony-risks {
  list-style: none; padding: 0; margin: 12px 0;
}
.ceremony-risks li {
  padding: 8px 12px;
  margin-bottom: 6px;
  background: rgba(239,68,68,0.08);
  border-left: 3px solid #ef4444;
  border-radius: 4px;
  font-size: 0.8rem;
  color: var(--text);
}
.ceremony-check {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.75rem; color: var(--text);
  margin: 16px 0; cursor: pointer;
}
.ceremony-check input { width: 18px; height: 18px; accent-color: #ef4444; }
.ceremony-prompt { font-size: 0.8rem; color: var(--muted); margin-bottom: 8px; }
.ceremony-input {
  width: 100%; padding: 12px;
  background: var(--bg); border: 2px solid var(--line);
  border-radius: 8px; color: var(--text);
  font-size: 1rem; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-align: center; letter-spacing: 2px;
}
.ceremony-input:focus { border-color: #ef4444; outline: none; }
.ceremony-next {
  display: block; width: 100%; margin-top: 16px;
  padding: 12px; border: none; border-radius: 8px;
  background: var(--line); color: var(--muted);
  font-size: 0.8rem; font-weight: 600; cursor: not-allowed;
}
.ceremony-next:not(:disabled) {
  background: #ef4444; color: white; cursor: pointer;
}
.ceremony-countdown-text { text-align: center; color: var(--muted); font-size: 0.8rem; }
.ceremony-countdown {
  text-align: center; font-size: 3rem; font-weight: 900;
  color: #ef4444; font-family: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  margin: 12px 0;
  animation: ceremonyPulse 1s ease infinite;
}
@keyframes ceremonyPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
.ceremony-final-warn {
  text-align: center; font-size: 0.7rem; color: var(--muted);
  margin-bottom: 16px;
}
.ceremony-activate {
  display: block; width: 100%;
  padding: 16px; border: 2px solid #ef4444;
  border-radius: 8px; background: transparent;
  color: #ef4444; font-size: 1rem; font-weight: 900;
  text-transform: uppercase; letter-spacing: 2px;
  cursor: not-allowed; opacity: 0.4;
}
.ceremony-activate:not(:disabled) {
  background: #ef4444; color: white;
  cursor: pointer; opacity: 1;
  animation: ceremonyPulse 1s ease infinite;
}
.ceremony-cancel {
  display: block; width: 100%; margin-top: 16px;
  padding: 12px; border: 1px solid var(--line);
  border-radius: 8px; background: transparent;
  color: var(--muted); font-size: 0.75rem;
  cursor: pointer;
}
.ceremony-cancel:hover { color: var(--text); border-color: var(--muted); }
.ceremony-step h3 { font-size: 0.9rem; color: var(--text); margin-bottom: 12px; }

/* ── Panic Button ─────────────────────────────────────────────── */
.panic-btn {
  background: transparent;
  border: 2px solid #ef4444;
  color: #ef4444;
  padding: 6px 16px;
  border-radius: 8px;
  font-weight: 900;
  font-size: 0.7rem;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all 0.2s ease;
  display: none;
}
.panic-btn.visible {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.panic-btn:hover {
  background: #ef4444;
  color: white;
  box-shadow: 0 0 20px rgba(239,68,68,0.4);
}
.panic-btn:active {
  transform: scale(0.95);
}

/* ── Live Mode Visual Override ────────────────────────────────── */
body.live-mode {
  border-top: 3px solid #ef4444;
}
body.live-mode .topbar {
  background: linear-gradient(180deg, rgba(239,68,68,0.08) 0%, transparent 100%);
}
body.live-mode .brand-wordmark::after {
  content: ' [LIVE]';
  color: #ef4444;
  font-size: 0.6em;
  font-weight: 900;
  animation: pulse 2s ease infinite;
}

/* Live mode pulsing indicator */
.live-pulse {
  display: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ef4444;
  animation: pulse 1.5s ease infinite;
  margin-left: 6px;
}
body.live-mode .live-pulse { display: inline-block; }

/* Paper mode lock badge */
.paper-lock-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.55rem;
  color: var(--teal);
  background: rgba(45,212,191,0.08);
  border: 1px solid rgba(45,212,191,0.2);
  border-radius: 4px;
  padding: 2px 8px;
  margin-left: 8px;
}
.paper-lock-badge.locked {
  color: var(--amber);
  background: rgba(251,191,36,0.08);
  border-color: rgba(251,191,36,0.2);
}

/* ── Live Mode Visual System ──────────────────────────────────── */
body.live-mode {
  --live-accent: #ef4444;
  --live-glow: rgba(239,68,68,0.15);
}

/* Topbar red accent */
body.live-mode .topbar {
  border-bottom: 2px solid var(--live-accent);
  background: linear-gradient(180deg, rgba(239,68,68,0.06) 0%, transparent 60%);
}

/* Live badge always visible and pulsing */
body.live-mode .badge.live {
  background: var(--live-accent);
  color: white;
  animation: pulse 2s ease infinite;
  box-shadow: 0 0 12px var(--live-glow);
}

/* Controls bar red tint */
body.live-mode .controls-bar {
  border-top: 2px solid var(--live-accent);
  background: linear-gradient(0deg, rgba(239,68,68,0.04) 0%, transparent 100%);
}

/* Workspace tabs red underline for active */
body.live-mode .workspace-tab.active {
  border-color: var(--live-accent);
  color: var(--live-accent);
}

/* Signal cards subtle red border on hover */
body.live-mode .signal-card {
  border-left: 2px solid rgba(239,68,68,0.2);
}

/* Detail cards red accent line */
body.live-mode .detail-card {
  border-top: 1px solid rgba(239,68,68,0.15);
}

/* Live mode watermark */
body.live-mode::before {
  content: 'LIVE';
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-30deg);
  font-size: 12rem;
  font-weight: 900;
  color: rgba(239,68,68,0.03);
  pointer-events: none;
  z-index: 0;
  letter-spacing: 20px;
  font-family: var(--mono);
}

/* Live mode banner strip */
.live-banner {
  display: none;
  background: linear-gradient(90deg, #ef4444, #dc2626, #ef4444);
  background-size: 200% 100%;
  animation: liveBannerScroll 3s linear infinite;
  color: white;
  text-align: center;
  padding: 4px 0;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 15000;
}
body.live-mode .live-banner { display: block; }
body.live-mode .topbar { margin-top: 24px; }
body.live-mode { padding-top: 24px; }

@keyframes liveBannerScroll {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Paper mode - calm, normal, safe-feeling */
body:not(.live-mode) .paper-indicator {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--teal);
  font-size: 0.6rem;
}
body.live-mode .paper-indicator { display: none; }

/* ── Mode History ─────────────────────────────────────────────── */
.mode-history-list { max-height: 300px; overflow-y: auto; }
.mode-history-row {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; font-size: 0.7rem;
  border-bottom: 1px solid var(--line);
}
.mode-history-row .mh-time { color: var(--muted); font-family: var(--mono); width: 140px; }
.mode-history-row .mh-arrow { font-size: 0.9rem; }
.mode-history-row .mh-from, .mode-history-row .mh-to {
  padding: 2px 8px; border-radius: 4px; font-weight: 600; font-size: 0.6rem; text-transform: uppercase;
}
.mh-from.paper, .mh-to.paper { background: rgba(45,212,191,0.1); color: var(--teal); }
.mh-from.live, .mh-to.live { background: rgba(239,68,68,0.1); color: #ef4444; }
.mode-history-row .mh-trigger {
  font-size: 0.6rem; color: var(--muted); background: rgba(255,255,255,0.03);
  padding: 2px 6px; border-radius: 3px;
}
.mode-history-row .mh-ip { color: var(--muted); font-size: 0.55rem; font-family: var(--mono); margin-left: auto; }

/* ── Exchange Accounts ────────────────────────────────────────── */
.exchange-account {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; margin-bottom: 8px;
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--line);
  border-radius: 8px;
}
.exchange-account .ea-logo { font-size: 1.5rem; }
.exchange-account .ea-name { font-weight: 700; font-size: 0.85rem; color: var(--text); }
.exchange-account .ea-status {
  font-size: 0.6rem; padding: 2px 8px; border-radius: 4px;
  font-weight: 600; text-transform: uppercase;
}
.ea-status.ok { background: rgba(45,212,191,0.1); color: var(--teal); }
.ea-status.error { background: rgba(239,68,68,0.1); color: #ef4444; }
.ea-status.not_synced { background: rgba(255,255,255,0.05); color: var(--muted); }
.exchange-account .ea-stats {
  display: flex; gap: 16px; margin-left: auto; font-size: 0.65rem; color: var(--muted);
}
.exchange-account .ea-stat-value { font-weight: 700; color: var(--text); font-family: var(--mono); }
.exchange-not-configured {
  padding: 24px; text-align: center; color: var(--muted); font-size: 0.75rem;
}

/* ── Exchange Health ──────────────────────────────────────────── */
.exchange-health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.exchange-health-card {
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
}
.exchange-health-card.healthy { border-left: 3px solid var(--teal); }
.exchange-health-card.degraded { border-left: 3px solid var(--amber); }
.exchange-health-card.down { border-left: 3px solid #ef4444; }
.exchange-health-card.unstable { border-left: 3px solid var(--amber); }
.eh-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.eh-name { font-weight: 700; font-size: 0.9rem; color: var(--text); }
.eh-status {
  font-size: 0.6rem; padding: 3px 10px; border-radius: 4px;
  font-weight: 700; text-transform: uppercase;
}
.eh-status.healthy { background: rgba(45,212,191,0.1); color: var(--teal); }
.eh-status.degraded { background: rgba(251,191,36,0.1); color: var(--amber); }
.eh-status.down { background: rgba(239,68,68,0.1); color: #ef4444; }
.eh-status.unstable { background: rgba(251,191,36,0.1); color: var(--amber); }
.eh-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.eh-metric { text-align: center; }
.eh-metric-label { font-size: 0.55rem; color: var(--muted); text-transform: uppercase; }
.eh-metric-value { font-size: 0.85rem; font-weight: 700; color: var(--text); font-family: var(--mono); }
.eh-metric-value.good { color: var(--teal); }
.eh-metric-value.warn { color: var(--amber); }
.eh-metric-value.bad { color: #ef4444; }
.eh-recommended {
  text-align: center; margin-top: 12px; font-size: 0.6rem; color: var(--muted);
  padding-top: 12px; border-top: 1px solid var(--line);
}
.eh-recommended strong { color: var(--teal); }

/* -- Trade Import --------------------------------------------------------- */
.import-controls {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  margin-bottom: 12px;
}
.import-select, .import-input {
  background: var(--bg); border: 1px solid var(--line);
  color: var(--text); border-radius: 6px; padding: 8px 12px;
  font-size: 0.75rem; font-family: var(--mono);
}
.import-input { width: 120px; }
.import-status {
  font-size: 0.7rem; color: var(--muted); padding: 8px 0;
}
.import-status.loading { color: var(--amber); }
.import-status.success { color: var(--teal); }
.import-status.error { color: #ef4444; }
.import-results {
  font-size: 0.7rem;
}
.import-summary {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px; margin-top: 8px;
}
.import-stat {
  background: rgba(255,255,255,0.02); border: 1px solid var(--line);
  border-radius: 6px; padding: 10px; text-align: center;
}
.import-stat-label { font-size: 0.55rem; color: var(--muted); text-transform: uppercase; }
.import-stat-value { font-size: 0.9rem; font-weight: 700; color: var(--text); font-family: var(--mono); margin-top: 2px; }

/* ── Live Prices ──────────────────────────────────────────────── */
.live-price {
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 700;
  margin-left: 8px;
}
.live-price.up { color: var(--teal); }
.live-price.down { color: #ef4444; }

/* -- Brand Refresh: Rift Command ---------------------------------------- */
:root{
  --bg:#03070c;
  --panel:#0b121d;
  --panel-2:#111c2b;
  --line:#26384c;
  --text:#f6fbff;
  --muted:#9aaabd;
  --green:#35f7a4;
  --teal:#2df5d0;
  --amber:#ffb84d;
  --red:#ff5d76;
  --blue:#74a8ff;
  --cyan:#5ce9ff;
  --lime:#a7ff83;
  --rose:#ff6f91;
  --ink:#03070c;
  --glass:rgba(7,13,22,.74);
  --shadow:0 30px 70px rgba(0,0,0,.48);
  --radius:22px;
  --mono:"JetBrains Mono","Cascadia Mono","SFMono-Regular",Consolas,monospace;
  --display:"Agency FB","Bahnschrift Condensed","Bahnschrift","Aptos Display","Segoe UI",sans-serif;
}
html{background:#03070c}
body{
  overflow-x:hidden;
  background:
    radial-gradient(circle at 8% 9%, rgba(45,245,208,.18), transparent 28%),
    radial-gradient(circle at 88% -4%, rgba(255,111,145,.15), transparent 24%),
    radial-gradient(circle at 48% 36%, rgba(116,168,255,.1), transparent 30%),
    linear-gradient(135deg,#02050a 0%,#07111b 42%,#03070c 100%);
  font-family:"Bahnschrift","Aptos","Segoe UI",sans-serif;
}
body::before{
  opacity:.3;
  background:
    linear-gradient(rgba(92,233,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(92,233,255,.045) 1px, transparent 1px),
    radial-gradient(circle at 50% 0%, rgba(45,245,208,.16), transparent 34%);
  background-size:92px 92px,92px 92px,100% 100%;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.92),rgba(0,0,0,.56) 52%,transparent 96%);
}
body::after{
  background:
    linear-gradient(120deg, transparent 0 38%, rgba(45,245,208,.05) 38.1% 38.5%, transparent 38.6% 100%),
    linear-gradient(180deg, transparent 0%, rgba(3,7,12,.2) 50%, rgba(3,7,12,.72) 100%);
}
.mono{font-family:var(--mono)}
.app{
  max-width:1560px;
  padding:28px 24px 34px;
}
.topbar{
  grid-template-columns:minmax(0,1.62fr) minmax(380px,.9fr);
  gap:18px;
  margin-bottom:16px;
}
.topbar-stats{gap:12px}
.panel{
  border-color:rgba(116,168,255,.18);
  background:
    linear-gradient(180deg,rgba(17,28,43,.84),rgba(6,11,19,.76)),
    radial-gradient(circle at 10% 0%,rgba(92,233,255,.08),transparent 30%);
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.04);
}
.panel::before{
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(92,233,255,.55), rgba(255,184,77,.3), transparent);
}
.topcard{
  min-height:112px;
  padding:18px 20px;
  background:
    linear-gradient(180deg,rgba(17,28,43,.9),rgba(6,11,19,.72)),
    radial-gradient(circle at 88% 8%,rgba(45,245,208,.12),transparent 34%);
}
.topcard:hover,.detail-card:hover{
  transform:translateY(-2px);
  border-color:rgba(92,233,255,.28);
  box-shadow:0 24px 54px rgba(0,0,0,.36),0 0 0 1px rgba(45,245,208,.06);
}
.eyebrow,.workspace-label,.tape-label,.runtime-chip-label{
  color:#9feef0;
  letter-spacing:.18em;
}
.headline{
  font-family:var(--display);
  font-size:34px;
  letter-spacing:-.025em;
  text-shadow:0 0 18px rgba(92,233,255,.12);
}
.sub{color:#aab9c9;line-height:1.55}
.hero-card{
  isolation:isolate;
  min-height:312px;
  background:
    radial-gradient(circle at 80% 8%, rgba(92,233,255,.24), transparent 28%),
    radial-gradient(circle at 8% 100%, rgba(45,245,208,.18), transparent 30%),
    linear-gradient(135deg, rgba(8,17,28,.98), rgba(13,23,37,.95) 45%, rgba(5,12,19,.9));
  border-color:rgba(92,233,255,.28);
}
.hero-card::after{
  width:420px;
  height:420px;
  right:-168px;
  top:-158px;
  background:
    repeating-radial-gradient(circle, rgba(92,233,255,.2) 0 1px, transparent 1px 26px),
    radial-gradient(circle, rgba(45,245,208,.18), transparent 64%);
  opacity:.88;
  animation:riftDrift 13s ease-in-out infinite;
}
.hero-card .sub{max-width:720px}
.hero-grid{
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.82fr);
  gap:24px;
  align-items:stretch;
}
.brand-lockup{gap:18px;align-items:center}
.brand-frame{
  width:104px;
  height:104px;
  border-radius:30px;
  border-color:rgba(92,233,255,.34);
  background:
    linear-gradient(145deg,rgba(255,255,255,.07),transparent 28%),
    radial-gradient(circle at 28% 18%,rgba(92,233,255,.18),transparent 36%),
    linear-gradient(180deg,rgba(7,17,27,.96),rgba(3,7,12,.84));
  box-shadow:0 20px 50px rgba(0,0,0,.44),0 0 34px rgba(45,245,208,.11),inset 0 0 0 1px rgba(255,255,255,.05);
}
.brand-frame::before{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius:36px;
  background:conic-gradient(from 210deg,transparent,rgba(92,233,255,.38),transparent 32%,rgba(255,184,77,.24),transparent 58%);
  opacity:.72;
  z-index:-1;
  filter:blur(10px);
}
.brand-frame::after{
  inset:10px;
  border-radius:22px;
  border-color:rgba(255,255,255,.08);
}
.brand-mark{
  width:74px;
  height:74px;
  filter:drop-shadow(0 12px 24px rgba(45,245,208,.2));
}
.brand-copy{gap:7px}
.brand-wordmark{
  font-family:var(--display);
  font-size:clamp(48px,5vw,82px);
  font-weight:900;
  letter-spacing:-.07em;
  text-transform:uppercase;
  background:linear-gradient(92deg,#f8ffff 0%,#a7ffef 34%,#5ce9ff 58%,#ffcf7a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 12px 28px rgba(45,245,208,.12));
}
.brand-tagline{
  max-width:680px;
  color:#d8e8f6;
  font-size:15px;
}
.brand-ribbon{margin:18px 0 12px}
.brand-ribbon span,.hero-pill,.runtime-chip,.badge{
  border-color:rgba(92,233,255,.18);
  background:linear-gradient(180deg,rgba(6,13,22,.76),rgba(3,7,12,.58));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.brand-ribbon span::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  margin-right:8px;
  background:var(--teal);
  box-shadow:0 0 12px rgba(45,245,208,.75);
}
.hero-pill{
  padding:8px 13px;
  letter-spacing:.1em;
}
.hero-pill.paper{border-color:rgba(255,184,77,.32);color:#ffcf7a}
.hero-pill.neutral{border-color:rgba(92,233,255,.22);color:#dcecff}
.hero-spotlight{
  position:relative;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:20px;
  border-radius:24px;
  border-color:rgba(92,233,255,.26);
  background:
    linear-gradient(180deg,rgba(4,10,18,.42),rgba(4,9,15,.84)),
    radial-gradient(circle at 60% 18%,rgba(255,184,77,.16),transparent 28%);
}
.hero-spotlight::before{
  content:"";
  position:absolute;
  inset:16px 16px auto auto;
  width:86px;
  height:86px;
  border-radius:50%;
  border:1px solid rgba(92,233,255,.24);
  background:repeating-radial-gradient(circle,rgba(92,233,255,.18) 0 1px,transparent 1px 14px);
  opacity:.8;
}
.hero-symbol{
  font-family:var(--display);
  font-size:clamp(42px,4vw,64px);
  text-transform:uppercase;
  color:#f6fbff;
}
.hero-meta{color:#d4e3f0}
.market-tape{
  padding:14px 18px;
  border-color:rgba(45,245,208,.2);
  background:
    linear-gradient(90deg,rgba(92,233,255,.08),transparent 28%),
    linear-gradient(180deg,rgba(9,17,28,.94),rgba(5,10,17,.86));
}
.tape-label::before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  margin-right:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 14px rgba(53,247,164,.88);
}
.tape-chip,.signal-card,.detail-card,.metric-block,.cluster-review-item{
  background:
    linear-gradient(180deg,rgba(17,28,43,.86),rgba(6,11,19,.76)),
    radial-gradient(circle at 100% 0%,rgba(92,233,255,.06),transparent 34%);
  border-color:rgba(116,168,255,.16);
}
.main{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:18px;
}
.left,.right,.bottom{padding:20px}
.section-title h2,.section-title h3{
  font-family:var(--display);
  font-size:20px;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.filters{
  padding:8px;
  border:1px solid rgba(116,168,255,.12);
  border-radius:18px;
  background:rgba(3,7,12,.28);
}
.filters input,.filters select,.filters button,.compare-controls select,.action-btn{
  border-color:rgba(92,233,255,.18);
  background:linear-gradient(180deg,rgba(9,17,28,.9),rgba(4,9,15,.78));
  border-radius:14px;
}
.filters button,.action-btn{
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.filters button:hover,.action-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(45,245,208,.36);
  box-shadow:0 12px 26px rgba(0,0,0,.26),0 0 0 1px rgba(45,245,208,.08);
}
.signal-list{gap:12px}
.signal-card{
  position:relative;
  padding:16px;
  border-radius:18px;
}
.signal-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(180deg,var(--cyan),transparent);
  opacity:.48;
}
.signal-card.up::before{background:linear-gradient(180deg,var(--green),transparent)}
.signal-card.down::before{background:linear-gradient(180deg,var(--rose),transparent)}
.signal-card:hover{
  transform:translateY(-3px);
  border-color:rgba(92,233,255,.32);
  box-shadow:0 22px 44px rgba(0,0,0,.34),0 0 24px rgba(45,245,208,.06);
}
.signal-card.active{
  border-color:rgba(92,233,255,.5);
  background:
    linear-gradient(180deg,rgba(17,34,52,.94),rgba(7,13,22,.86)),
    radial-gradient(circle at 95% 0%,rgba(45,245,208,.11),transparent 36%);
  box-shadow:0 24px 52px rgba(0,0,0,.38),0 0 0 1px rgba(92,233,255,.16);
}
.signal-symbol{
  font-family:var(--display);
  font-size:22px;
}
.signal-score{
  font-family:var(--display);
  font-size:32px;
}
.signal-microbar{
  height:8px;
  background:rgba(3,7,12,.68);
}
.signal-microbar > span{background:linear-gradient(90deg,var(--teal),var(--cyan),var(--lime))}
.signal-card.down .signal-microbar > span{background:linear-gradient(90deg,var(--rose),var(--amber))}
.tier,.signal-side,.tag{
  border-radius:999px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.detail-card{
  border-radius:20px;
  border-color:rgba(116,168,255,.16);
}
.workspace-shell{margin-top:18px}
.workspace-bar{
  border-radius:24px;
  border-color:rgba(45,245,208,.2);
  background:
    linear-gradient(90deg,rgba(45,245,208,.12),transparent 36%),
    linear-gradient(180deg,rgba(14,25,39,.9),rgba(5,10,17,.78));
}
.workspace-tab{
  border-radius:999px;
  background:rgba(3,7,12,.54);
  border-color:rgba(116,168,255,.16);
}
.workspace-tab.active{
  color:#f8ffff;
  border-color:rgba(45,245,208,.46);
  background:linear-gradient(180deg,rgba(22,55,51,.82),rgba(8,17,28,.86));
  box-shadow:0 0 0 1px rgba(45,245,208,.12),0 12px 28px rgba(0,0,0,.24);
}
a,button,input,select{outline-color:var(--cyan)}
button:focus-visible,input:focus-visible,select:focus-visible,.signal-card:focus-visible{
  outline:2px solid rgba(92,233,255,.78);
  outline-offset:2px;
}
@keyframes riftDrift{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg);opacity:.76}
  50%{transform:translate3d(-18px,16px,0) rotate(8deg);opacity:1}
}
@keyframes deckRise{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
.hero-card,.topbar-stats .topcard,.market-tape,.ops-command-center,.main,.workspace-shell{
  animation:deckRise .55s ease both;
}
.topbar-stats .topcard:nth-child(1){animation-delay:.04s}
.topbar-stats .topcard:nth-child(2){animation-delay:.08s}
.topbar-stats .topcard:nth-child(3){animation-delay:.12s}
.topbar-stats .topcard:nth-child(4){animation-delay:.16s}
.market-tape{animation-delay:.18s}
.ops-command-center{animation-delay:.2s}
.main{animation-delay:.24s}
.workspace-shell{animation-delay:.28s}
@media (max-width:1200px){
  .topbar,.hero-grid{grid-template-columns:1fr}
  .hero-spotlight{min-height:220px}
  .main{grid-template-columns:1fr}
}
@media (max-width:760px){
  .app{padding:14px 10px 22px}
  .brand-lockup{align-items:flex-start}
  .brand-frame{width:82px;height:82px;border-radius:24px}
  .brand-mark{width:60px;height:60px}
  .brand-wordmark{font-size:44px}
  .brand-tagline{font-size:13px}
  .hero-card{min-height:auto}
  .topbar-stats{grid-template-columns:1fr}
  .main{gap:12px}
  .left,.right,.bottom{padding:14px}
  .section-title h2,.section-title h3{font-size:17px}
}
@media (prefers-reduced-motion: reduce){
  .hero-card,.topbar-stats .topcard,.market-tape,.ops-command-center,.main,.workspace-shell{animation:none}
  .hero-card::after{animation:none}
}

/* -- Mobile Viewport Stability ----------------------------------------- */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
@supports not (overflow-x: clip){
  html,
  body{overflow-x:hidden}
}
.app,
.topbar,
.topbar-stats,
.hero-grid,
.main,
.left,
.right,
.bottom,
.workspace-shell,
.workspace-bar,
.workspace-panel,
.panel,
.signal-list,
.signal-head,
.signal-stack,
.signal-tags,
#detailRoot,
.detail-grid,
.detail-card,
.signal-card{
  min-width:0;
}
.panel,
#detailRoot,
.detail-grid,
.detail-card,
.signal-card,
.workspace-bar,
.hero-card,
.topcard{
  max-width:100%;
}
.signal-list,
#detailRoot,
.detail-grid{
  overflow-x:clip;
}
.signal-card,
.detail-card{
  box-sizing:border-box;
}
.detail-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
}
@media (max-width:760px){
  html,
  body{
    overflow-x:hidden;
    position:relative;
  }
  body{touch-action:pan-y}
  .app{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right));
  }
  .main{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .left,
  .right,
  .bottom,
  .panel,
  .workspace-shell,
  .workspace-panel{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    transform:none;
  }
  .left,
  .right,
  .bottom{
    contain:layout paint;
  }
  .filters input,
  .filters select,
  .input-stack input,
  .input-stack select,
  .input-stack textarea,
  .cmd-input,
  .universe-search,
  .alerts-name-input,
  .alert-condition-row input,
  .alert-condition-row select,
  .je-form-group input,
  .je-form-group textarea,
  .je-form-group select,
  .layout-save-input,
  .import-select,
  .import-input,
  .ceremony-input{
    font-size:16px;
  }
  .brand-wordmark,
  .headline,
  .hero-symbol,
  .signal-symbol,
  .section-title h2,
  .section-title h3{
    overflow-wrap:anywhere;
  }
  .brand-ribbon,
  .hero-badges,
  .runtime-strip,
  .button-row,
  .workspace-actions,
  .position-chart-toolbar,
  .compare-toolbar,
  .lab-toolbar,
  .sim-toolbar{
    min-width:0;
    max-width:100%;
  }
  .workspace-tabs,
  .market-tape,
  .tape-track,
  .watchlist-bar,
  .quick-stats,
  .signal-timeline{
    max-width:100%;
    overscroll-behavior-x:contain;
  }
  .market-tape,
  .signal-timeline{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .signal-list,
  .signal-card,
  .signal-head,
  .signal-stack,
  .signal-tags,
  .trade-lifecycle-strip,
  .signal-lifecycle,
  .signal-command-strip,
  .signal-plan-row,
  .trade-lifecycle-grid,
  .performance-lifecycle-strip,
  .performance-position-grid,
  .position-command-meta{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  .trade-lifecycle-strip,
  .trade-lifecycle-grid,
  .performance-lifecycle-strip,
  .signal-command-strip{
    grid-template-columns:1fr 1fr;
  }
  .position-command-meta{
    grid-template-columns:1fr;
  }
  .signal-plan-row{
    grid-template-columns:1fr;
  }
  .signal-list{
    overflow-y:visible;
    padding-right:0;
  }
  .signal-card,
  .signal-card:hover,
  .signal-card.active,
  .detail-card,
  .detail-card:hover,
  #detailRoot:not(.empty){
    animation:none !important;
    transform:none !important;
  }
  .signal-head{
    min-width:0;
  }
  .signal-stack > *,
  .signal-tags > *{
    min-width:0;
  }
  .signal-symbol{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  /* Mobile signal detail clamp: keep Safari from creating a horizontal zoom lane. */
  #detailRoot,
  #detailRoot .detail-grid,
  #detailRoot .detail-card,
  #detailRoot .hero,
  #detailRoot .hero > div{
    min-width:0;
    max-width:100%;
    overflow-x:hidden;
  }
  #detailRoot .hero{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
  }
  #detailRoot .hero > div:last-child{
    text-align:left !important;
  }
  #detailRoot .hero h1{
    max-width:100%;
    font-size:clamp(26px,10vw,36px);
    line-height:.98;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #detailRoot .hero .sub{
    max-width:100%;
    overflow-wrap:anywhere;
  }
  #detailRoot .hero .headline{
    font-size:clamp(28px,12vw,34px) !important;
  }
  #detailRoot .signal-timeline{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:start;
    justify-items:center;
    gap:6px;
    overflow-x:hidden;
    padding:10px 8px;
  }
  #detailRoot .stl-line{
    display:none;
  }
  #detailRoot .stl-stage{
    width:100%;
    min-width:0;
  }
  #detailRoot .stl-label{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:clamp(7px,2.35vw,10px);
    letter-spacing:.02em;
  }
  #detailRoot .stl-time{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:clamp(7px,2vw,9px);
  }
  #detailRoot .stl-dot{
    width:12px;
    height:12px;
  }
  #detailRoot .trade-lifecycle-grid{
    grid-template-columns:1fr;
  }
  .notif-drawer,
  .compare-overlay,
  .config-overlay,
  .cmd-backdrop,
  .shortcuts-backdrop{
    max-width:100dvw;
  }
  .desk-toast-stack,
  .vim-indicator{
    max-width:calc(100dvw - 12px);
  }
}

/* -- Dense dashboard flow ---------------------------------------------- */
@media (min-width: 761px){
  .main,
  .detail-grid,
  .split-grid,
  .execution-grid,
  .backtest-visuals,
  .lab-grid,
  .analytics,
  .sim-detail-grid,
  .agent-grid,
  .focus-bubble-grid,
  .unchained-grid{
    align-items:start;
  }

  .main > .panel,
  .detail-grid > *,
  .split-grid > *,
  .execution-grid > *,
  .backtest-visuals > *,
  .lab-grid > *,
  .analytics > *,
  .sim-detail-grid > *,
  .agent-grid > *,
  .focus-bubble-grid > *,
  .unchained-grid > *{
    align-self:start;
  }

  .left{
    display:flex;
    flex-direction:column;
  }
}

@media (min-width: 1201px){
  .left{
    position:sticky;
    top:16px;
    max-height:calc(100vh - 32px);
  }

  .signal-list{
    flex:1 1 auto;
    max-height:none;
  }
}
