/* The Signal Hub Signal Desk — Slate & Azure.
   Cool slate surfaces, azure accent, IBM Plex Mono for every number.
   Note: --gold/--gold-dim are kept as legacy aliases of the accent so every
   existing component and app.js reference follows the new palette. */
:root{
  --ink:#0d1424;          /* app background — deep navy (Signal Desk v2) */
  --ink-2:#121b2e;        /* card */
  --ink-3:#1b2740;        /* raised */
  --line:#273450;
  --line-2:#2c3a58;       /* card borders */
  --line-soft:#1d2843;    /* inner row dividers */
  --text:#e6eaf2;
  --mut:#8fa0bd;
  --mut-2:#5c6c8a;        /* quiet footnotes */
  --accent:#4d8dff;       /* azure — actions, focus, highlights */
  --accent-2:#78aaff;     /* hover / bright edge */
  --accent-dim:#31548f;   /* borders, quiet accents */
  --gold:var(--accent);       /* legacy alias */
  --gold-dim:var(--accent-dim);
  --win:#43c78b;
  --loss:#f4567a;
  --amber:#e8b352;
  --ember:#e66b2e;        /* upgrade / marketing ember accent */
  --shadow-1:0 1px 2px rgba(4,8,18,.5),0 6px 22px rgba(4,8,18,.28);
  --shadow-2:0 2px 4px rgba(4,8,18,.5),0 14px 34px rgba(4,8,18,.38);
  --ease:cubic-bezier(.22,.72,.24,1);
  --disp:"Barlow Condensed",system-ui,sans-serif;
  --body:"Barlow",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:var(--body);color:var(--text);
  background:
    radial-gradient(1100px 500px at 85% -10%,rgba(77,141,255,.07),transparent 60%),
    radial-gradient(900px 600px at -10% 110%,rgba(77,141,255,.045),transparent 55%),
    var(--ink);
  background-attachment:fixed;
  display:grid;grid-template-columns:232px 1fr;min-height:100vh;
}
::selection{background:rgba(77,141,255,.32)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--ink-3);border-radius:0;border:2px solid var(--ink)}
::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}
::-webkit-scrollbar-track{background:transparent}
.hidden{display:none!important}
.muted{color:var(--mut)} .pad{padding:16px}
b{font-weight:600}
.brand-candles{
  display:block;object-fit:cover;border-radius:50%;flex:none;
  background:#0d1424;box-shadow:0 0 0 1px rgba(120,170,255,.3),0 5px 14px rgba(4,8,18,.28);
}

/* ---------- rail (Signal Desk v2: numbered mono ledger rows) ---------- */
.rail{
  border-right:1px solid var(--line);padding:22px 18px;display:flex;
  flex-direction:column;gap:24px;position:sticky;top:0;height:100vh;
  background:linear-gradient(180deg,var(--ink-2),rgba(18,27,46,0) 55%);
}
.brand{display:flex;gap:11px;align-items:center}
.app-brand-logo{width:38px;height:38px}
.brand-name{font:600 15px/1 var(--disp);letter-spacing:.05em}
.brand-sub{font:500 7px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);white-space:nowrap;margin-top:3px}
nav{display:flex;flex-direction:column;gap:0}
.step{
  display:flex;align-items:center;gap:10px;padding:11px 6px;border:0;
  border-top:1px solid var(--line);border-bottom:1px solid transparent;
  background:none;color:#93a0b8;cursor:pointer;text-align:left;position:relative;
  font:600 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;
  transition:color .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease);
}
.step:hover{color:var(--text)}
.step.active{
  border-top-color:var(--accent);border-bottom-color:var(--accent);color:var(--text);
  background:linear-gradient(90deg,rgba(77,141,255,.12),transparent 70%);
}
.step-k{font-family:var(--mono);font-size:9px;color:var(--accent)}
.step.active .step-k{color:var(--accent-2)}
.step-state{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--mut)}
.step-state.ok{color:var(--win)}
.step.plan-locked{color:color-mix(in srgb,var(--amber) 72%,var(--mut));border-top-color:color-mix(in srgb,var(--amber) 25%,var(--line))}
.step.plan-locked .step-state{color:var(--amber);font-size:7px;letter-spacing:.06em}
.step.plan-locked:hover,.step.plan-locked.active{color:var(--text);background:linear-gradient(90deg,rgba(232,179,82,.1),transparent 72%)}
.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.foot-note{font:400 9px/1.6 var(--mono);color:var(--mut-2)}
/* Pills: crisp gradient chips with a gradient border, soft inner highlight
   and a sheen sweep on hover. State variants recolor through --pill-tint. */
.pill{
  --pill-tint:77,141,255;
  position:relative;overflow:hidden;
  font:600 10px var(--mono);letter-spacing:.09em;text-transform:uppercase;
  color:#c7d4ea;padding:5px 12px;border-radius:0;width:max-content;
  border:1px solid transparent;
  background:
    linear-gradient(160deg,#1d2a48 0%,#141e36 55%,#0f1727 100%) padding-box,
    linear-gradient(135deg,rgba(var(--pill-tint),.55),rgba(var(--pill-tint),.10) 45%,rgba(var(--pill-tint),.38)) border-box;
  box-shadow:0 1px 2px rgba(4,8,18,.45),inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .18s ease,box-shadow .18s ease;
}
.pill::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.10) 48%,transparent 62%);
  transform:translateX(-130%);transition:transform .55s ease;
}
.pill:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(4,8,18,.5),0 0 0 1px rgba(var(--pill-tint),.22),inset 0 1px 0 rgba(255,255,255,.07)}
.pill:hover::after{transform:translateX(130%)}
.pill.armed{--pill-tint:244,86,122;color:#ff9cb5}
.pill.dry{--pill-tint:232,179,82;color:#eec372}

/* ---------- main / views ---------- */
main{padding:0;width:100%;min-width:0;max-width:none;position:relative;overflow:hidden}
.desk-views{position:relative;z-index:1;padding:26px 28px 40px}
.desk-ghost{
  position:absolute;top:-24px;right:8px;font:600 230px/1 var(--disp);
  letter-spacing:-.06em;color:rgba(230,238,255,.05);pointer-events:none;z-index:0;
}
.desk-ticker{
  height:46px;display:flex;align-items:center;gap:24px;padding:0 28px;
  border-bottom:1px solid var(--line);position:relative;z-index:1;
  font:500 8.5px var(--mono);letter-spacing:.06em;color:var(--mut);
}
.desk-ticker-quotes{
  flex:1;min-width:0;overflow:hidden;display:flex;gap:24px;white-space:nowrap;
  mask-image:linear-gradient(90deg,#000 88%,transparent);
}
.desk-ticker .tk-up{color:var(--win)}
.desk-ticker .tk-dn{color:var(--loss)}
.desk-ticker-session{flex:none;color:var(--accent-2);white-space:nowrap}
.view-head .view-kick,.view-kick{margin:0;font:600 9px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.view-head h1{font:600 38px/.95 var(--disp);margin:12px 0 8px;letter-spacing:-.025em}
.view-head p{color:var(--mut);margin:0 0 26px;max-width:66ch}
.view-head .view-lede{font:400 13px/1.7 var(--body)}
.telegram-gate-head .view-kick{color:var(--amber)}
.telegram-plan-gate{overflow:hidden;border:1px solid color-mix(in srgb,var(--amber) 38%,var(--line-2));background:linear-gradient(145deg,color-mix(in srgb,var(--amber) 4%,var(--ink-2)),var(--ink-2));box-shadow:var(--shadow-1)}
.telegram-gate-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 28px;align-items:end;padding:28px;border-bottom:1px solid var(--line)}
.telegram-gate-summary>span{grid-column:1/-1;color:var(--amber);font:700 8px/1.2 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.telegram-gate-summary h2{margin:0;color:var(--text);font:600 clamp(24px,3vw,38px)/1 var(--disp);letter-spacing:-.02em}
.telegram-gate-summary p{grid-column:1;max-width:72ch;margin:0;color:var(--mut);font:11px/1.65 var(--body)}
.telegram-gate-summary .btn{grid-column:2;grid-row:2/4;align-self:center;white-space:nowrap}
.telegram-gate-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.telegram-gate-paths article{display:grid;grid-template-rows:auto auto auto 1fr auto;gap:9px;min-width:0;padding:22px;background:var(--ink)}
.telegram-gate-paths article.is-included{background:color-mix(in srgb,var(--accent) 6%,var(--ink))}
.telegram-gate-paths article>span{color:var(--accent-2);font:700 8px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.telegram-gate-paths strong{color:var(--text);font:600 34px/1 var(--disp);font-variant-numeric:tabular-nums}
.telegram-gate-paths small{color:var(--mut);font:700 7px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.telegram-gate-paths p{margin:5px 0 10px;color:var(--mut);font:10px/1.55 var(--body)}
.telegram-gate-paths .btn{justify-content:center;width:100%}
.telegram-gate-footnote{margin:0;padding:13px 22px;border-top:1px solid var(--line);color:var(--mut-2);font:8px/1.5 var(--mono)}
@media(max-width:950px){.telegram-gate-summary{grid-template-columns:1fr}.telegram-gate-summary .btn{grid-column:1;grid-row:auto;justify-self:start}.telegram-gate-paths{grid-template-columns:1fr}}

.card{
  background:#131c30;
  border:1px solid var(--line-2);border-radius:0;
  padding:20px;margin-bottom:22px;
  transition:border-color .22s var(--ease);
}
.card:hover{border-color:color-mix(in srgb,var(--accent) 28%,var(--line-2))}
.card.narrow{max-width:520px}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}
.card-head h2{font:600 15px var(--disp);margin:0;letter-spacing:.03em}
.dialog-tools{align-items:center;flex-wrap:nowrap}
.dialog-tools .search{min-width:140px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* ---------- forms ---------- */
label{display:block;font:600 12px var(--body);color:var(--mut);margin-bottom:6px;letter-spacing:.03em}
.hint{font-weight:400;text-transform:none;letter-spacing:0;font-size:9px;line-height:1.3;color:var(--mut)}
.field>span.hint{display:block;margin-top:4px}
.field.setting-inactive{opacity:.58}.field.setting-inactive .hint{color:var(--mut)}
.lot-preview input{background:var(--ink-3);color:var(--mut);border-style:dashed;cursor:default}
.sizing-guard{margin-top:7px;padding:6px 8px;border-radius:0;font:600 10px/1.35 var(--mono)}
.sizing-guard.valid{color:var(--win);background:color-mix(in srgb,var(--win) 8%,transparent)}
.sizing-guard.invalid{color:var(--loss);background:color-mix(in srgb,var(--loss) 9%,transparent)}
.risk-guidance{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:var(--ink-2);font:12px/1.55 var(--body);color:var(--text)}
.risk-guidance span{color:var(--mut)}
.row{display:flex;gap:8px}
input,select{
  background:var(--ink);border:1px solid var(--line-2);color:var(--text);
  border-radius:0;padding:10px 12px;font:400 13px var(--mono);flex:1;min-width:0;
}
input,select{transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}
input:focus,select:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(77,141,255,.18);
}
button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* Machined buttons (Direction 1): gradient depth, bevel highlight, hover
   sheen sweep, lift on hover, physical press. Mono uppercase voice. */
.btn{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#63a0ff,#4d8dff 45%,#3a72dd);
  color:#fff;border:1px solid transparent;border-radius:0;
  padding:10px 16px;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(10,20,45,.35),0 2px 6px rgba(4,8,18,.45);
  transition:filter .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease),
             transform .16s var(--ease),box-shadow .16s var(--ease);
}
.btn::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.16) 50%,transparent 65%);
  transform:translateX(-140%);transition:transform .5s ease;
}
.btn:hover{
  filter:brightness(1.07);transform:translateY(-1px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -2px 0 rgba(10,20,45,.3),0 4px 14px rgba(77,141,255,.35);
}
.btn:hover::after{transform:translateX(140%)}
.btn:active{transform:translateY(1px);filter:brightness(.94)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none;box-shadow:none}
.btn:disabled::after{display:none}
.btn.big{padding:12px 22px;font-size:11px}
.btn.ghost{
  background:
    linear-gradient(180deg,#1e2b4a,#121c33) padding-box,
    linear-gradient(135deg,rgba(77,141,255,.55),rgba(77,141,255,.12) 50%,rgba(77,141,255,.4)) border-box;
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(4,8,18,.45);
}
.btn.ghost:hover{
  filter:none;border-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 3px 10px rgba(4,8,18,.5),0 0 0 1px rgba(77,141,255,.25);
}
.btn.stop{
  background:linear-gradient(180deg,#ff7c9c,#f4567a 50%,#d8385f);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 -2px 0 rgba(60,5,20,.35),0 2px 6px rgba(4,8,18,.45);
}
.btn.stop:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(60,5,20,.3),0 4px 14px rgba(244,86,122,.35)}
.fstep{margin-bottom:16px}
.err{color:var(--loss);font:400 13px var(--mono);margin-top:8px}
.ok-row{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}
.dot{width:9px;height:9px;border-radius:50%;background:var(--mut)}
.dot.ok{background:var(--win)}

/* ---------- lists ---------- */
.search{max-width:200px}
.list{max-height:420px;overflow:auto;border-top:1px solid var(--line)}
.dialog{
  display:flex;align-items:center;gap:10px;padding:10px 6px;
  border-bottom:1px solid var(--line);font-size:14px;
}
.dialog .id{font:400 11px var(--mono);color:var(--mut)}
.dialog .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dialog button{padding:5px 12px;font-size:12px}
.dialog .added{font:600 11px var(--mono);color:var(--win)}

/* ---------- audit ---------- */
.audit-controls{display:flex;gap:18px;align-items:end;flex-wrap:wrap;padding:0 4px}
.audit-controls select,.audit-controls input[type="date"]{padding-left:14px;padding-right:14px;min-height:42px}
.audit-controls .btn.big{padding-left:26px;padding-right:26px}
.audit-brief{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(260px,1.6fr);gap:24px;padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.audit-brief b{font:600 18px var(--disp);color:var(--text)}
.audit-brief span{color:var(--muted);line-height:1.6}
.audit-status{margin:14px 0 0;min-height:20px}
.audit-cache-state{margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--mut);font:400 11.5px/1.55 var(--mono);color:var(--mut);background:var(--ink)}
.audit-cache-state b{color:var(--text)}
.audit-cache-state.saved{border-left-color:var(--win)}
.audit-cache-state.mismatch{border-left-color:var(--amber)}
.audit-cache-state.empty{border-left-color:var(--mut)}
.audit-cache-state span{display:block;margin-top:3px;color:var(--amber)}
.audit-risk-setup{margin-top:20px;padding:0}
.audit-risk-setup summary{cursor:pointer;padding:12px 0;font:600 13px var(--disp);color:var(--text)}
.audit-risk-setup>p{margin:16px 26px}
.combined-lab-result{margin-top:16px;border-top:1px solid var(--gold-dim);padding-top:16px}
.combined-result-title{font:600 13px var(--disp);color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.field{display:flex;flex-direction:column;min-width:150px}
.field select,.field input{width:100%}
.stage-line{display:flex;gap:10px;align-items:center;margin:18px 0 8px;font:500 13px var(--mono);color:var(--amber)}
.audit-progress-head{display:flex;justify-content:space-between;gap:16px;margin:18px 0 8px;font:600 11px var(--mono);color:var(--text);text-transform:uppercase;letter-spacing:.06em}
.audit-progress-head b{font-size:13px;font-variant-numeric:tabular-nums}
.audit-progress-meter{height:10px;background:var(--ink);border:1px solid var(--line);overflow:hidden}
.audit-progress-meter>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left center;transition:transform .55s var(--ease)}
.audit-progress-meter.error>span{background:var(--loss)}
.audit-progress-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0 8px}
.audit-progress-steps span{position:relative;padding-top:8px;border-top:1px solid var(--line);font:500 9px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
.audit-progress-steps span::before{content:"";position:absolute;width:5px;height:5px;left:0;top:-3px;border-radius:50%;background:var(--line)}
.audit-progress-steps span.active{color:var(--accent-2);border-color:var(--accent)}
.audit-progress-steps span.active::before{background:var(--accent-2)}
.audit-progress-steps span.complete{color:var(--text);border-color:var(--win)}
.audit-progress-steps span.complete::before{background:var(--win)}
.audit-progress-meta{display:flex;justify-content:space-between;gap:16px;margin:0 0 10px;font:400 10px/1.5 var(--mono);color:var(--mut)}
.audit-progress-meta span:first-child{min-width:0}
.audit-progress-meta span:last-child{flex:none;font-variant-numeric:tabular-nums}
.spinner{
  width:12px;height:12px;border:2px solid var(--gold-dim);border-top-color:var(--gold);
  border-radius:50%;animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spinner{animation:none}.audit-progress-meter>span{transition:none}}
.joblog{
  background:var(--ink);border:1px solid var(--line);border-radius:0;padding:12px;
  font:400 12px/1.7 var(--mono);color:var(--mut);max-height:200px;overflow:auto;
  white-space:pre-wrap;margin:0;
}
.joblog.tall{max-height:420px;color:var(--text)}

/* ---------- verdict strip (signature) ---------- */
.verdict{
  border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:0;background:
  linear-gradient(180deg,rgba(77,141,255,.08),rgba(77,141,255,0) 55%),var(--ink-2);
  padding:24px 24px 14px;margin-bottom:22px;box-shadow:var(--shadow-1);
}
.verdict-word{
  font:700 36px/1 var(--disp);letter-spacing:.01em;margin-bottom:16px;
}
.verdict-word .vp{color:var(--win)} .verdict-word .vn{color:var(--loss)} .verdict-word .vq{color:var(--amber)}
.v-metrics{display:flex;gap:34px;flex-wrap:wrap;margin-bottom:16px}
.vm b{display:block;font:600 22px var(--mono)}
.vm span{font:500 11px var(--body);color:var(--mut);letter-spacing:.05em;text-transform:uppercase}
.equity{width:100%;height:150px;display:block;background:var(--ink);border:1px solid var(--line);border-radius:0}
.ledger-note{
  font:400 11.5px/1.7 var(--mono);color:var(--mut);border-top:1px dashed var(--line);
  margin-top:14px;padding-top:10px;
}

/* ---------- trades table ---------- */
.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
table{width:100%;border-collapse:collapse;font:400 12.5px var(--mono)}
th{
  text-align:left;font:600 11px var(--body);color:var(--mut);letter-spacing:.06em;
  text-transform:uppercase;border-bottom:1px solid var(--line);padding:8px 10px;
}
td{border-bottom:1px solid var(--line);padding:8px 10px;white-space:nowrap}
td.num,th.num{text-align:right}
tr.win td.oc{color:var(--win)} tr.loss td.oc{color:var(--loss)}
tr.neut td.oc{color:var(--mut)}
td .r-pos{color:var(--win)} td .r-neg{color:var(--loss)}
.flag{
  font:600 9.5px var(--mono);color:var(--amber);border:1px solid var(--amber);
  border-radius:0;padding:1px 5px;letter-spacing:.06em;
}
.trade-note{white-space:normal!important;min-width:280px;max-width:520px!important;overflow:visible!important;text-overflow:clip!important;line-height:1.45}
.validation-math{display:block;margin-top:5px;color:var(--mut);font-size:10.5px}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:flex-end;font:400 11.5px var(--mono);color:var(--mut)}
.breakdown-basis{font:500 10.5px var(--mono);color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 45%,transparent);border-radius:0;padding:4px 8px}
.breakdown-head-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.btn.calc-all{padding:5px 8px;font-size:10px}
.calc-toggle{border:0;background:none;color:var(--accent-2);padding:0;font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid transparent;white-space:nowrap}
.calc-toggle:hover{border-bottom-color:currentColor}
.sw{display:inline-block;width:9px;height:9px;border-radius:0;margin-right:5px;vertical-align:-1px}
.sw.win{background:var(--win)} .sw.loss{background:var(--loss)} .sw.neut{background:var(--mut)}
tr.detail-row>td{white-space:normal;color:var(--mut);font-size:11.5px;background:var(--ink);padding:14px}
.trade-calc{border:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--ink-2)}
.trade-calc-head{display:flex;align-items:center;gap:28px;padding:12px 14px;border-bottom:1px solid var(--line)}
.trade-calc-head>span:first-child{margin-right:auto}
.trade-calc-head b,.trade-calc-head small{display:block}
.trade-calc-head b{color:var(--text);font-size:13px}.trade-calc-head small{color:var(--mut);margin-top:3px}
.calc-table{font-size:11.5px}.calc-table td{background:transparent;white-space:nowrap}.calc-table tfoot td{border-top:1px solid var(--line);border-bottom:0}
.calc-table .r-pos,.trade-calc-head .r-pos{color:var(--win)}.calc-table .r-neg,.trade-calc-head .r-neg{color:var(--loss)}
.trade-evidence{display:grid;gap:10px;margin-top:12px}
.evidence-heading{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.evidence-heading b{color:var(--text);font:600 13px var(--disp)}
.evidence-heading span{color:var(--mut);font:400 10.5px/1.5 var(--mono)}
.message-evidence{border:1px solid var(--line);background:var(--ink-2)}
.message-evidence header{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--line);font:500 10px var(--mono);color:var(--mut)}
.message-evidence header b{color:var(--text);margin-right:auto}
.message-full{padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);font:400 12px/1.65 var(--mono)}
.message-evidence details{border-top:1px solid var(--line);padding:8px 10px}
.message-evidence summary{cursor:pointer;color:var(--gold)}
.message-evidence pre,.simulation-evidence pre{margin:8px 0 0;white-space:pre-wrap;color:var(--mut);font:400 11px/1.6 var(--mono)}
.simulation-evidence{border:1px solid var(--line);padding:10px 12px;background:var(--ink-2)}
.simulation-evidence>b{color:var(--text)}
.calc-unavailable{padding:10px 12px;margin-bottom:10px;border:1px solid var(--amber);border-radius:0;color:var(--amber);background:color-mix(in srgb,var(--amber) 8%,transparent)}
.calc-warning,.calc-be-note{padding:9px 12px;margin-bottom:10px;border:1px solid var(--line);border-radius:0;font:400 11px/1.5 var(--mono)}
.calc-warning{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,var(--line));background:color-mix(in srgb,var(--amber) 7%,transparent)}
.calc-be-note{color:var(--mut);background:var(--ink-2)}
tbody tr:not(.detail-row){cursor:pointer;transition:background .14s var(--ease)}
tbody tr:not(.detail-row):hover{background:var(--ink-3)}

/* ---------- live ---------- */
.live-controls{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.spacer{flex:1}
/* Toggle switches (Direction 1): square track, accent when on. */
.switch{display:flex;align-items:center;gap:9px;cursor:pointer}
.switch input{display:none}
.track{
  width:34px;height:18px;flex:none;border-radius:0;background:var(--ink);
  border:1px solid var(--line-2);position:relative;transition:.18s var(--ease);
}
.track::after{
  content:"";position:absolute;top:3px;left:3px;width:10px;height:10px;
  border-radius:0;background:var(--mut);transition:.18s var(--ease);
}
.switch:hover .track{border-color:var(--accent-dim)}
.switch input:checked + .track{background:rgba(77,141,255,.2);border-color:var(--accent);box-shadow:inset 0 0 8px rgba(77,141,255,.15)}
.switch input:checked + .track::after{left:19px;background:var(--accent-2)}
.switch-label{font:600 9.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.switch input:checked ~ .switch-label{color:var(--text)}

@media (max-width:900px){
  html,body{width:100%;overflow-x:hidden}
  body{grid-template-columns:minmax(0,1fr)}
  .rail{position:static;height:auto;width:100%;flex-direction:row;align-items:center;flex-wrap:wrap;padding:14px 16px}
  nav{flex-direction:row;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}
  .step{flex:0 0 auto}
  .rail-foot{display:none}
  .trade-calc-head{align-items:flex-start;flex-wrap:wrap;gap:12px 22px}
  main{padding:18px;width:100%;min-width:0;overflow:hidden}
  .view,.card,.verdict{width:100%;min-width:0}
  .split{grid-template-columns:1fr}
  .v-metrics{gap:20px}
  .live-controls{flex-wrap:wrap}
  .lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
  .lab-grid .field{max-width:none;min-width:0}
  input,select{max-width:100%}
  .table-wrap{width:100%;max-width:100%;scrollbar-width:thin}
  .table-wrap>.ttable{min-width:max-content}
}

/* ---------- additions: toggles in lists, lab, risk panel, tp bars ---------- */
.small{font-size:12.5px;margin-top:-4px}
.mono{font-family:var(--mono)}
.dialog .mini{display:flex;gap:12px;align-items:center}
.mini label{display:flex;gap:5px;align-items:center;font:500 11px var(--body);color:var(--mut);margin:0;cursor:pointer}
.mini input[type=checkbox]{accent-color:var(--gold);width:14px;height:14px;flex:none}
.mini input[type=number]{width:58px;padding:4px 6px;font-size:11px}
.lab-grid{display:flex;gap:16px;flex-wrap:wrap;align-items:end}
.lab-grid .field{min-width:130px;max-width:190px}
.field.check{display:flex;align-items:center;min-height:42px}
.row.tight{gap:4px}
.row.tight input{padding:8px 6px;font-size:12px}
.lab-metrics{margin-top:18px}
.tpbar{display:grid;grid-template-columns:52px 1fr 1fr 90px;gap:10px;align-items:center;margin:8px 0;font:500 12px var(--mono)}
.tpbar .lane{background:var(--ink);border:1px solid var(--line);border-radius:0;height:20px;position:relative;overflow:hidden}
.tpbar .fill{position:absolute;inset:0 auto 0 0;border-radius:0}
.tpbar .fill.claim{background:var(--amber)}
.tpbar .fill.valid{background:var(--win)}
.tpbar .pct{position:absolute;right:6px;top:1px;font-size:11px;color:var(--text)}
.tpbar .overclaim{color:var(--loss)}
.tpbar .underclaim{color:var(--accent-2)}
.tpbar .aligned{color:var(--mut)}
.tp-interpretation{margin:12px 0 14px;padding:10px 12px;border-left:3px solid var(--line);background:var(--ink);font:400 12px/1.55 var(--body);color:var(--mut)}
.tp-interpretation.warning{border-left-color:var(--loss)}
.tp-interpretation.informational{border-left-color:var(--accent-2)}
.tp-interpretation.aligned{border-left-color:var(--win)}
.tp-interpretation b{color:var(--text)}
.tp-legend{font:400 11.5px var(--mono);color:var(--mut);margin-top:6px}
.ttable td{max-width:340px;overflow:hidden;text-overflow:ellipsis}

/* ---------- health, recommendations, symbol profiles ---------- */
.watch-row{align-items:flex-start;flex-wrap:wrap}
.watch-main{flex:1;min-width:220px}
.watch-health{font:400 10.5px/1.5 var(--mono);color:var(--mut);margin-top:4px}
.watch-actions{display:flex;gap:6px;align-items:center}
.watch-actions .btn{padding:6px 9px;font-size:11px}
.watch-live-state{display:inline-flex;align-items:center;padding:4px 7px;border:1px solid var(--line);border-radius:0;font:600 8px var(--mono);letter-spacing:.05em;white-space:nowrap}
.watch-live-state.monitor{color:var(--mut)}
.watch-live-state.live{color:var(--win);border-color:color-mix(in srgb,var(--win) 55%,var(--line));background:color-mix(in srgb,var(--win) 9%,transparent)}
.btn.danger{
  background:
    linear-gradient(180deg,#241a2c,#151222) padding-box,
    linear-gradient(135deg,rgba(244,86,122,.55),rgba(244,86,122,.12) 50%,rgba(244,86,122,.4)) border-box;
  color:var(--loss);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 2px rgba(4,8,18,.45);
}
.btn.danger:hover{
  filter:none;border-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 3px 10px rgba(4,8,18,.5),0 0 0 1px rgba(244,86,122,.3);
}
.health-ok{color:var(--win)}
.health-warn{color:var(--amber)}
.strategy-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:0;overflow:hidden}
.strategy-metric{background:var(--ink);padding:12px;min-height:72px}
.strategy-metric b{display:block;font:600 18px var(--mono);margin-bottom:4px}
.strategy-metric span{font:500 10.5px var(--body);color:var(--mut);text-transform:uppercase}
.coverage-state{margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:0;font:500 11px var(--mono)}
.coverage-state.complete{color:var(--win);border-color:color-mix(in srgb,var(--win) 45%,var(--line))}
.coverage-state.incomplete{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,var(--line))}
.profile-section{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.profile-list{display:grid;gap:10px}
.risk-profile{border:1px solid var(--line);border-radius:0;padding:12px;background:var(--ink)}
.risk-profile.profile-live{border-color:color-mix(in srgb,var(--win) 65%,var(--line));box-shadow:inset 3px 0 0 var(--win);background:color-mix(in srgb,var(--win) 4%,var(--ink))}
.profile-live-switch:has(input:checked) .switch-label{color:var(--win);font-weight:700}
.default-profile{margin-top:4px}
.profile-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.profile-title,.profile-name{flex:1;min-width:180px}
.profile-title strong{display:block;font:600 15px var(--disp)}
.profile-title span{display:block;color:var(--mut);font-size:9px;line-height:1.35;margin-top:3px}
.profile-name{margin:0}
.profile-name input{padding:8px;font-size:12px}
.profile-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;padding:12px;background:var(--ink-2);border:1px solid var(--line);border-radius:0}
.scope-symbols{grid-column:1/-1}
.symbol-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.sym-chip{font:600 9px var(--mono);letter-spacing:.07em;padding:3px 9px;border-radius:0;border:1px solid rgba(77,141,255,.4);background:linear-gradient(160deg,#1c2946,#121b30);color:#9fc0ff}
.sym-chip-all{border-color:var(--line-2);color:var(--mut)}
.scope-summary span{display:block;color:var(--mut);font:500 10px var(--body);text-transform:uppercase;margin-bottom:4px}
.scope-summary b{font:500 12px var(--mono)}
.all-groups{display:flex;align-items:center;gap:7px;margin:0 0 6px;padding:6px 8px;border:1px solid var(--line);border-radius:0;font:600 11px var(--body);cursor:pointer}
.all-groups:has(input:checked){border-color:var(--amber);background:color-mix(in srgb,var(--amber) 9%,transparent);color:var(--amber)}
.group-picker{display:grid;grid-template-columns:1fr;gap:5px;max-height:158px;overflow:auto;padding:7px;border:1px solid var(--line);border-radius:0;background:var(--ink)}
.group-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;font-size:11px;cursor:pointer;border:1px solid var(--line-soft);border-radius:0;background:var(--ink-2);transition:border-color .15s ease,background .15s ease,transform .12s ease}
.group-choice:hover{border-color:var(--accent-dim);transform:translateX(2px)}
.group-choice input{accent-color:var(--win)}
.group-choice:has(input:checked){background:color-mix(in srgb,var(--win) 9%,var(--ink-2));color:var(--text);border-color:color-mix(in srgb,var(--win) 45%,var(--line-soft))}
.group-choice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-choice small{color:var(--mut);font:600 8px var(--mono);letter-spacing:.05em;border:1px solid var(--line-soft);border-radius:0;padding:2px 6px;background:var(--ink)}
.profile-unscoped .profile-scope{border-color:color-mix(in srgb,var(--amber) 65%,var(--line))}
.profile-unscoped .profile-scope::after{content:"No active groups. This profile will not match signals.";grid-column:1/-1;color:var(--amber);font:500 9px/1.35 var(--body)}
.profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(70px,auto);gap:10px;align-items:stretch}
.profile-grid>.field{min-width:0;min-height:70px;height:100%;padding:10px;border:1px solid var(--line);border-radius:0;background:var(--ink-2);display:flex;flex-direction:column;justify-content:flex-start}
.profile-grid>.field.check{justify-content:center;margin:0}
.profile-grid>.field>label:first-child{min-height:16px}
.profile-grid>.field .row.tight{width:100%;margin-top:auto}
.profile-grid>.field .row.tight input{width:0;min-width:0}
.profile-grid input,.profile-grid select{width:100%;min-height:36px;padding:8px;font-size:12px}
.profile-sizing-preview{grid-column:1/-1;min-width:0;margin-top:2px}
.profile-sizing-preview [data-profile-preview-table]{max-height:360px;overflow:auto;padding-right:2px}
.profile-sizing-preview .sizing-guard{margin-bottom:0}
.lab-symbol-sizing.sizing-rejected{border-color:color-mix(in srgb,var(--loss) 65%,var(--line));background:color-mix(in srgb,var(--loss) 7%,var(--ink-3))}
.lab-symbol-sizing.sizing-rejected .risk-output{color:var(--loss)}
.icon-btn{width:34px;height:34px;padding:0;display:grid;place-items:center;font:600 20px var(--mono)}
.icon-btn.danger{background:none;border:1px solid var(--line);color:var(--loss)}
.profile-actions{margin-top:12px;align-items:center}
.account-dashboard{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:1px;border:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--line)}
.account-metric{min-width:0;min-height:92px;padding:13px 14px;background:var(--ink-2)}
.account-metric.primary{background:color-mix(in srgb,var(--gold) 7%,var(--ink-2));box-shadow:inset 0 3px 0 var(--gold)}
.account-metric span{display:block;color:var(--mut);font:600 9px var(--body);letter-spacing:.05em;text-transform:uppercase;margin-bottom:7px}
.account-metric b{display:block;font:600 15px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-metric small{display:block;color:var(--mut);font:500 9px/1.35 var(--body);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-metric b.positive,.account-metric .positive{color:var(--win)}
.account-metric b.negative,.account-metric .negative{color:var(--loss)}
.account-sizing-note{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:0;background:var(--ink);color:var(--mut);font:500 11px/1.45 var(--body)}
.channel-feed{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:0}
.channel-feed thead{position:sticky;top:0;background:var(--ink-2);z-index:1}
.channel-feed .message-cell{white-space:normal;min-width:320px;max-width:620px;line-height:1.45}
#profile-status{color:var(--amber);min-height:18px}
.variant-title{display:flex;justify-content:space-between;gap:12px;margin:18px 0 8px;font:600 13px var(--disp)}
.variant-title span{font:400 11px var(--mono);color:var(--mut)}
.variant-table .r-pos{color:var(--win)}
.variant-table .r-neg{color:var(--loss)}

/* ---------- broker-fed strategies ---------- */
.strategy-market{
  display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));
  border:1px solid var(--line);border-radius:0;margin-bottom:22px;background:var(--line);gap:1px;
  overflow:hidden;
}
.strategy-market>div{background:var(--ink-2);padding:13px 16px;min-width:0}
.strategy-market span{display:block;color:var(--mut);font:600 10px var(--body);text-transform:uppercase;margin-bottom:5px}
.strategy-market b{display:block;font:600 14px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#strategy-trades{min-width:1380px}
#strategy-decisions{min-width:1040px}
#strategy-trades td,#strategy-decisions td{font-size:11px}
.strategy-ledger-summary{display:grid;grid-template-columns:repeat(9,minmax(84px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:14px 0}
.strategy-ledger-summary>div{background:var(--ink-2);padding:11px 12px;min-width:0}
.strategy-ledger-summary span{display:block;color:var(--mut);font-size:8px;text-transform:uppercase;margin-bottom:5px}
.strategy-ledger-summary b{display:block;font:600 13px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strategy-ledger-summary small{display:block;color:var(--mut);font-size:8px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Broker-verified strategy summary on Live P&L: exactly as many tiles as
   facts - the grid sizes to its content so no empty filler cell shows. */
#strategy-exec-summary{grid-template-columns:repeat(8,minmax(84px,1fr))}
.strategy-ledger-pnl-section{margin:0 0 14px}
.strategy-ledger-pnl-section>span{display:block;color:var(--mut);font-size:9px;text-transform:uppercase;margin-bottom:7px}
.strategy-performance-context{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:12px 0 16px;padding:14px 16px;background:var(--ink-2);border-left:2px solid var(--ember)}
.strategy-performance-context>div{min-width:0}
.strategy-performance-context>div>span{display:block;color:var(--ember);font:700 9px var(--mono);letter-spacing:.13em;text-transform:uppercase;margin-bottom:5px}
.strategy-performance-context>div>b{display:block;color:var(--text);font:600 13px var(--disp);letter-spacing:.01em}
.strategy-performance-context>div>small{display:block;color:var(--mut);font-size:10px;line-height:1.5;margin-top:4px}
.strategy-performance-context>.pill{flex:0 0 auto;color:var(--ember);border-color:rgba(230,107,46,.48)}
.strategy-ledger-pnl-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.strategy-ledger-pnl-list>div{border:1px solid var(--line);background:var(--ink-2);padding:10px 11px;min-width:0}
.strategy-ledger-pnl-list span,.strategy-ledger-pnl-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strategy-ledger-pnl-list span{color:var(--mut);font-size:9px;margin-bottom:5px}
.strategy-ledger-pnl-list b{display:block;font:700 13px var(--mono);margin-bottom:4px}
.strategy-ledger-pnl-list small{color:var(--mut);font-size:8px}
.strategy-ledger-pnl-list .strategy-ledger-empty{color:var(--mut);font-size:10px;grid-column:1/-1}
.strategy-ledger-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.strategy-ledger-filters .field{min-width:150px}
.strategy-ledger-filters>span{margin-left:auto;padding-bottom:9px}
.strategy-metric-positive{color:var(--win)!important;font-weight:700!important}
.strategy-metric-negative{color:var(--loss)!important;font-weight:700!important}
.bot-reason{white-space:normal;min-width:200px;line-height:1.4}
.strategy-lab-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.strategy-lab-controls .switch{min-height:38px}
.strategy-progress{display:grid;grid-template-columns:1fr 48px;gap:10px;align-items:center;margin:12px 0 4px}
.strategy-progress>div{height:8px;background:var(--ink);border:1px solid var(--line);overflow:hidden}
.strategy-progress span{display:block;width:0;height:100%;background:var(--gold);transition:width .25s ease}
.strategy-progress b{font:600 10px var(--mono);text-align:right}
.strategy-bt-config{margin-top:16px;border:1px solid var(--line);background:var(--ink);padding:0 14px 12px}
.strategy-bt-config summary{cursor:pointer;padding:12px 0;font:600 12px var(--disp);color:var(--text)}
.strategy-input-note{color:var(--mut);font-size:10px;margin-bottom:8px}
.strategy-opt-limit{max-width:220px;margin-bottom:10px}
.strategy-input-list{border:1px solid var(--line)}
.strategy-param-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(90px,.7fr) auto repeat(3,minmax(80px,.6fr));gap:8px;align-items:end;padding:9px;background:var(--ink-2);border-bottom:1px solid var(--line)}
.strategy-param-row:last-child{border-bottom:0}
.strategy-param-row.param-inactive{opacity:.48;background:var(--ink)}
.strategy-param-row.param-inactive label:first-child::after{content:" · inactive";color:var(--amber);font-size:8px}
.strategy-param-row .switch{min-height:38px}
.strategy-param-row .field{min-width:0}
.strategy-param-row input{padding:7px 6px;font-size:11px}
.strategy-bt-grid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:10px;align-items:end}
.strategy-bt-grid .switch{min-height:38px}
.strategy-bt-tps{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:10px;margin-top:12px}
.strategy-bt-tps>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end;background:var(--ink-2);border:1px solid var(--line);border-radius:0;padding:11px}
.strategy-bt-tps>div>b{grid-column:1/-1;padding-bottom:7px;border-bottom:1px solid var(--line);font:600 11px var(--mono);color:var(--gold)}
.strategy-bt-tps>div .field{min-width:0}
.strategy-bt-tps>div input{width:100%}
.strategy-run-mode{min-width:92px;padding:6px;font-size:10px}
.strategy-run-status{display:block;min-height:13px;margin-top:4px;font:500 9px var(--mono);color:var(--win)}
.strategy-backtest-results{margin-top:18px;border-top:1px solid var(--line)}
.strategy-method{padding:14px 0;color:var(--mut);font-size:11px;line-height:1.65}
.strategy-report{border-top:1px solid var(--line);padding:20px 0}
.strategy-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.strategy-report-head h3{font:600 17px var(--disp);margin:0 0 4px}
.strategy-report-head p{color:var(--mut);font-size:11px;margin:0}
.strategy-report-actions{display:flex;gap:8px;flex-shrink:0}
.strategy-selected{background:var(--ink-3);border-left:3px solid var(--gold);padding:11px 13px;margin-bottom:14px;font-size:11px;line-height:1.55}
.strategy-backtest-only{color:var(--amber)}
.strategy-optimization-diff{border:1px solid color-mix(in srgb,var(--gold) 55%,var(--line));background:color-mix(in srgb,var(--gold) 3%,var(--ink));padding:14px;margin:16px 0 22px}
.strategy-optimization-diff-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:11px}
.strategy-optimization-diff-head h4{font:600 14px var(--disp);margin:0 0 4px}
.strategy-optimization-diff-head p{color:var(--mut);font-size:10px;margin:0}
.strategy-optimization-diff-head>span{flex:0 0 auto;border:1px solid var(--gold);color:var(--gold);padding:4px 7px;border-radius:0;font:600 8px var(--mono);text-transform:uppercase}
.strategy-setting-diff{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.strategy-setting-diff>div{background:var(--ink-2);border:1px solid var(--line);padding:7px 9px}
.strategy-setting-diff span{display:block;color:var(--mut);font-size:8px;text-transform:uppercase;margin-bottom:3px}
.strategy-setting-diff b{font:500 10px var(--mono)}
.strategy-setting-diff i{color:var(--gold);font-style:normal;padding:0 4px}
.strategy-optimization-diff table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
.strategy-optimization-diff th,.strategy-optimization-diff td{border:1px solid var(--line);padding:8px 9px;text-align:right}
.strategy-optimization-diff th:first-child{text-align:left}
.strategy-optimization-diff thead th{background:var(--ink-3);color:var(--text)}
.strategy-optimization-diff tbody th{color:var(--mut);font-weight:500}
.strategy-result-section{margin-top:16px}
.strategy-result-section>h4{font:600 12px var(--disp);margin:0 0 8px;color:var(--mut);text-transform:uppercase}
.strategy-key-metrics{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));border-block:1px solid var(--line);margin:14px 0}
.strategy-key-metrics>div{padding:11px 10px;border-right:1px solid var(--line);min-width:0}
.strategy-key-metrics>div:last-child{border-right:0}
.strategy-key-metrics span{display:block;color:var(--mut);font-size:9px;margin-bottom:5px}
.strategy-key-metrics b{display:block;font:600 14px var(--mono);overflow:hidden;text-overflow:ellipsis}
.strategy-equity-chart{width:100%;height:clamp(210px,28vw,310px);background:var(--ink);border:1px solid var(--line)}
.strategy-equity-chart svg{display:block;width:100%;height:100%}
.strategy-equity-chart .chart-grid line{stroke:var(--line);stroke-width:1}
.strategy-equity-chart .chart-grid text,.strategy-equity-chart .chart-date{fill:var(--mut);font:10px var(--mono)}
.strategy-equity-chart .chart-area{fill:rgba(77,141,255,.10)}
.strategy-equity-chart .chart-line{fill:none;stroke:var(--gold);stroke-width:2.5;vector-effect:non-scaling-stroke}
.strategy-equity-chart .chart-baseline{stroke:var(--mut);stroke-width:1;stroke-dasharray:5 4}
.strategy-equity-chart .chart-start-label{fill:var(--text);font:600 10px var(--mono)}
.strategy-equity-chart .chart-start{fill:var(--text);stroke:var(--ink);stroke-width:2}
.strategy-equity-chart circle{fill:transparent;stroke:transparent;cursor:crosshair}
.strategy-equity-chart circle:hover{fill:var(--gold);stroke:var(--ink);stroke-width:2}
.strategy-chart-empty{display:grid;place-items:center;min-height:180px;border:1px solid var(--line);color:var(--mut);font-size:11px}
.strategy-detail-metrics{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.strategy-detail-metrics summary{cursor:pointer;color:var(--mut);font:600 11px var(--disp);margin-bottom:10px}
.strategy-trade-ledger{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.strategy-trade-ledger summary{cursor:pointer;color:var(--text);font:600 11px var(--disp);margin-bottom:10px}
.strategy-trade-list{border:1px solid var(--line)}
.strategy-trade-row{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.5fr 1fr 1.5fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.strategy-trade-row:last-child{border-bottom:0}
.strategy-trade-row>div{background:var(--ink);padding:9px;min-width:0}
.strategy-trade-row span,.strategy-trade-row small{display:block;color:var(--mut);font-size:8.5px;line-height:1.4}
.strategy-trade-row b{display:block;font:500 9.5px var(--mono);margin:4px 0;white-space:normal;overflow-wrap:anywhere}
.strategy-comparison{width:100%;table-layout:fixed;border-collapse:collapse;font-size:9.5px}
.strategy-comparison th,.strategy-comparison td{border:1px solid var(--line);padding:7px 6px;text-align:right;white-space:normal;overflow-wrap:anywhere}
.strategy-comparison th:first-child{text-align:left;color:var(--mut)}
.strategy-comparison thead th{color:var(--text);background:var(--ink-3)}
.strategy-period-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px}
.strategy-period-table th,.strategy-period-table td{border:1px solid var(--line);padding:9px 10px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.strategy-period-table thead th{background:var(--ink-3);color:var(--text)}
.strategy-period-table tbody th{color:var(--mut);width:18%}
.strategy-period-table td{font-family:var(--mono)}
.strategy-period-note{margin-top:8px;color:var(--mut);font-size:10px;line-height:1.55}
.strategy-validation-banner{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));border:1px solid var(--amber);margin:14px 0;background:color-mix(in srgb,var(--amber) 7%,transparent)}
.strategy-validation-banner.passed{border-color:var(--win);background:color-mix(in srgb,var(--win) 7%,transparent)}
.strategy-validation-banner>div{padding:11px 12px;border-right:1px solid var(--line);min-width:0}
.strategy-validation-banner>div:last-child{border-right:0}
.strategy-validation-banner span{display:block;color:var(--mut);font-size:9px;margin-bottom:5px}
.strategy-validation-banner b{display:block;font:600 12px var(--mono);white-space:normal;overflow-wrap:anywhere}
.strategy-qualification{margin:8px 0 22px;border-block:1px solid var(--line);padding:16px 0}
.strategy-qualification table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:10px}
.strategy-qualification th,.strategy-qualification td{padding:8px 6px;border:1px solid var(--line);text-align:right;white-space:normal;overflow-wrap:anywhere}
.strategy-qualification th:first-child,.strategy-qualification td:first-child{text-align:left;width:17%}
.strategy-qualification td:nth-child(2){text-align:left;width:17%}
.strategy-qualification td small{display:block;color:var(--mut);margin-top:3px}
.strategy-qualification tr.qualified td:nth-child(2){color:var(--win)}
.strategy-qualification tr.not-qualified td:nth-child(2){color:var(--amber)}
.strategy-metric-groups{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.strategy-metric-group{background:var(--ink);padding:12px;min-width:0}
.strategy-metric-group h5{font:600 12px var(--disp);margin:0 0 9px}
.strategy-metric-list{display:grid;grid-template-columns:1fr auto;gap:6px 12px;margin:0}
.strategy-metric-list dt{color:var(--mut);font-size:10px}
.strategy-metric-list dd{font:500 10px var(--mono);margin:0;text-align:right}
.strategy-diagnosis{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:12px}
.strategy-diagnosis h5{font:600 11px var(--disp);margin:0 0 7px}
.strategy-diagnosis ul{margin:0;padding-left:18px;color:var(--mut);font-size:11px;line-height:1.55}
.strategy-ai-output{white-space:pre-wrap;background:var(--ink);border-left:3px solid var(--win);padding:13px;margin-top:12px;font-size:11px;line-height:1.6;color:var(--text)}
.strategy-control-note{margin:-3px 0 14px}
.strategy-panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.strategy-panel-actions .btn{padding:6px 9px;font-size:9px}
.strategy-live-pill{--pill-tint:67,199,139;color:#7fe0b4}
.strategy-risk-list{display:grid;gap:12px}
.strategy-control-empty{padding:28px;border:1px dashed var(--line);color:var(--mut);text-align:center;font-size:11px}
.strategy-control-panel{border:1px solid var(--line);border-left:4px solid var(--mut);background:var(--ink);padding:14px;transition:border-color .2s,box-shadow .2s,background .2s}
.strategy-control-panel.strategy-shadow{border-left-color:var(--amber)}
.strategy-control-panel.strategy-live{border-color:color-mix(in srgb,var(--win) 65%,var(--line));border-left:4px solid var(--win);background:color-mix(in srgb,var(--win) 6%,var(--ink));box-shadow:0 0 0 1px color-mix(in srgb,var(--win) 12%,transparent),0 8px 28px rgba(63,182,139,.08)}
.strategy-control-head{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(220px,1.2fr) auto auto;gap:14px;align-items:center;margin-bottom:12px}
.strategy-head-pnl{display:grid;grid-template-columns:auto auto auto;gap:8px;align-items:baseline;justify-self:end;padding:6px 10px;border:1px solid var(--line);border-radius:0;background:var(--ink-2);white-space:nowrap}
.strategy-head-pnl span{color:var(--mut);font:600 8px var(--body);letter-spacing:.07em;text-transform:uppercase}
.strategy-head-pnl b{font:700 13px var(--mono)}
.strategy-head-pnl small{color:var(--mut);font:500 10px var(--mono)}
.strategy-head-actions{display:flex;gap:6px;align-items:center}
.strategy-delete{color:var(--loss);font-size:16px;line-height:1}
.strategy-delete:hover{border-color:color-mix(in srgb,var(--loss) 55%,var(--line));background:color-mix(in srgb,var(--loss) 8%,transparent)}
.strategy-collapse-toggle{padding:6px 9px!important;min-width:66px;font-size:9px!important}
.strategy-control-panel.is-collapsed{padding-block:10px}
.strategy-control-panel.is-collapsed .strategy-control-head{margin-bottom:0}
.strategy-control-panel.is-collapsed .strategy-control-body{display:none}
.strategy-risk-title{align-self:center;min-width:0}
.strategy-risk-title b,.strategy-risk-title span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.strategy-risk-title span{color:var(--mut);font-size:10px;margin-top:3px}
.strategy-name-line{display:flex!important;align-items:center;gap:8px}
.strategy-name-line b{font:600 15px var(--disp);color:var(--text)}
.strategy-mode-badge{display:inline-flex!important;align-items:center;width:max-content;margin:0!important;padding:3px 7px;border:1px solid var(--line);border-radius:0;color:var(--mut)!important;font:600 8px var(--mono)!important;letter-spacing:.08em}
.strategy-shadow .strategy-mode-badge{color:var(--amber)!important;border-color:color-mix(in srgb,var(--amber) 60%,var(--line));background:color-mix(in srgb,var(--amber) 9%,transparent)}
.strategy-off .strategy-mode-badge{color:var(--mut)!important;background:var(--ink-3)}
.strategy-live .strategy-mode-badge{color:var(--win)!important;border-color:color-mix(in srgb,var(--win) 60%,var(--line));background:color-mix(in srgb,var(--win) 10%,transparent)}
.strategy-live-dot{display:inline-block!important;width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--mut);margin:0!important;overflow:visible!important}
.strategy-shadow .strategy-live-dot{background:var(--amber)}
.strategy-live .strategy-live-dot{background:var(--win);box-shadow:0 0 0 4px color-mix(in srgb,var(--win) 17%,transparent);animation:strategy-live-pulse 2s ease-in-out infinite}
@keyframes strategy-live-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--win) 3%,transparent)}}
.strategy-latest-reason{display:grid;grid-template-columns:auto auto 1fr;gap:9px;align-items:center;min-width:0}
.strategy-latest-reason>span{color:var(--mut);font-size:9px;text-transform:uppercase}
.strategy-latest-reason>b{font:600 10px var(--mono)}
.strategy-latest-reason>small{color:var(--mut);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.strategy-analytics-grid{display:grid;grid-template-columns:1.8fr repeat(4,minmax(90px,1fr));border:1px solid var(--line);background:var(--line);gap:1px;margin-bottom:12px}
.strategy-analytics-grid>div{background:var(--ink-2);padding:9px 10px;min-width:0}
.strategy-live .strategy-analytics-grid>div{background:color-mix(in srgb,var(--win) 3%,var(--ink-2))}
.strategy-analytics-grid span{display:block;color:var(--mut);font-size:8px;text-transform:uppercase;margin-bottom:5px}
.strategy-analytics-grid b{display:block;font:500 10px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strategy-saved-params{border:1px solid var(--line);background:var(--ink-2);margin-bottom:12px}
.strategy-saved-params summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:9px 10px;color:var(--text);font:600 10px var(--disp)}
.strategy-saved-params summary span{color:var(--mut);font:500 9px var(--mono)}
.strategy-saved-param-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line)}
.strategy-saved-param-grid>div{background:var(--ink);padding:8px 9px;min-width:0}
.strategy-saved-param-grid span,.strategy-saved-param-grid small{display:block;color:var(--mut);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.strategy-saved-param-grid input{width:100%;margin:5px 0 4px}
.strategy-entry-save-note{padding:8px 10px;border-top:1px solid var(--line);color:var(--mut);font-size:9px}
.strategy-entry-save-note b{color:var(--text)}
.strategy-risk-controls{display:grid;grid-template-columns:repeat(8,minmax(82px,1fr)) auto auto minmax(70px,.7fr);gap:8px;align-items:end;border-top:1px solid var(--line);padding-top:12px}
.strategy-control-panel .field{min-width:0}
.strategy-control-panel input,.strategy-control-panel select{padding:7px 6px;font-size:11px}
.strategy-control-panel label{font-size:9px}
.input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.input-with-unit input{border-radius:0}
.input-with-unit span{display:flex;align-items:center;padding:0 8px;border:1px solid var(--line);border-left:0;border-radius:0;background:var(--ink-3);color:var(--mut);font:600 9px var(--mono);white-space:nowrap}
.strategy-bt-grid .hint{display:block;margin-top:3px;color:var(--mut);font-size:8px;line-height:1.25}
.strategy-risk-save,.strategy-test-signal{padding:8px 11px;white-space:nowrap}
.strategy-risk-status{color:var(--win);font:500 10px var(--mono);align-self:center;min-width:0;overflow:hidden;text-overflow:ellipsis}
.strategy-tp-config{display:flex;align-items:end;gap:8px;border-top:1px solid var(--line);padding-top:10px;margin-top:10px;flex-wrap:wrap}
.strategy-tp-leg{display:grid;grid-template-columns:auto repeat(3,minmax(88px,120px));align-items:end;gap:7px;padding-right:10px;border-right:1px solid var(--line)}
.strategy-tp-leg>b{align-self:center;font:600 11px var(--mono);color:var(--gold)}
.strategy-tp-note{color:var(--mut);font-size:9px;align-self:center;max-width:180px;line-height:1.4}
@media (max-width:900px){
  .strategy-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .profile-grid{grid-template-columns:1fr 1fr}
  .account-dashboard{grid-template-columns:repeat(2,minmax(140px,1fr))}
  .strategy-market{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-control-head{grid-template-columns:1fr;gap:8px}
  .strategy-head-pnl{justify-self:start}
  .strategy-latest-reason{grid-template-columns:auto auto 1fr}
  .strategy-analytics-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-saved-param-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-risk-controls{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-tp-leg{grid-template-columns:36px repeat(3,minmax(80px,1fr));width:100%;border-right:0}
  .strategy-metric-groups{grid-template-columns:1fr}
  .strategy-diagnosis{grid-template-columns:1fr}
  .strategy-bt-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-bt-tps{grid-template-columns:1fr}
  .strategy-param-row{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-key-metrics{grid-template-columns:repeat(4,minmax(90px,1fr))}
  .strategy-key-metrics>div{border-bottom:1px solid var(--line)}
  .strategy-comparison{font-size:8px}
  .strategy-comparison th,.strategy-comparison td{padding:6px 3px}
  .strategy-validation-banner{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-trade-row{grid-template-columns:repeat(3,minmax(120px,1fr))}
  .strategy-ledger-summary{grid-template-columns:repeat(3,minmax(100px,1fr))}
}
@media (max-width:520px){
  .profile-head{align-items:flex-start;flex-wrap:wrap}
  .profile-scope,.profile-grid,.group-picker{grid-template-columns:1fr}
  .account-dashboard{grid-template-columns:1fr}
  .profile-sizing-preview{grid-column:auto}
  .tpbar{grid-template-columns:42px minmax(90px,1fr) minmax(90px,1fr) 58px;gap:5px}
  .strategy-key-metrics{grid-template-columns:repeat(2,minmax(100px,1fr))}
  .strategy-validation-banner{grid-template-columns:1fr}
  .strategy-report-head{display:block}
  .strategy-report-actions{margin-top:10px}
  .strategy-trade-row{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .strategy-ledger-summary{grid-template-columns:repeat(2,minmax(110px,1fr))}
  .strategy-ledger-filters .field{width:100%}
  .strategy-ledger-filters>span{margin-left:0}
}

/* Backtest Lab: stable aligned rows instead of wrapping fields of mixed height. */
.audit-risk-setup .lab-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px 14px;align-items:start;margin:0 26px 20px}
.audit-risk-setup .lab-grid>.field{min-width:0;max-width:none;width:auto}
.audit-risk-setup .lab-span-2{grid-column:span 2}
.audit-risk-setup .lab-span-4{grid-column:1/-1}
.lab-symbol-sizing{display:grid;grid-template-columns:minmax(90px,1fr) minmax(120px,1.2fr) repeat(3,minmax(72px,.8fr)) minmax(105px,1fr);gap:6px;align-items:center}
.lab-symbol-sizing+.lab-symbol-sizing{margin-top:6px}
.lab-symbol-sizing.header{color:var(--mut);font:600 9px var(--body);letter-spacing:.04em;text-transform:uppercase;padding:0 6px}
.lab-symbol-sizing:not(.header){padding:7px 6px;border:1px solid var(--line);border-radius:0;background:var(--ink-3)}
.lab-symbol-sizing b{font:600 12px var(--mono);color:var(--text)}
.lab-symbol-sizing input{padding:7px 8px;font-size:11px;background:var(--ink)}
.lab-symbol-sizing output{font:600 11px var(--mono);color:var(--text)}
.lab-symbol-sizing output small{display:block;margin-top:2px;color:var(--mut);font:500 8px var(--mono)}
.lab-symbol-sizing .risk-output{color:var(--gold)}
.lab-symbol-details{display:block;border:1px solid var(--line);border-radius:0;padding:0 10px 10px;background:color-mix(in srgb,var(--ink-3) 45%,transparent)}
.lab-symbol-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:10px 2px;color:var(--text);font:600 12px var(--body);list-style:none}
.lab-symbol-details>summary::-webkit-details-marker{display:none}
.lab-symbol-details>summary::before{content:"▾";color:var(--gold);font:700 12px var(--mono);transition:transform .15s}
.lab-symbol-details:not([open])>summary::before{transform:rotate(-90deg)}
.lab-symbol-details>summary span{margin-right:auto}
.lab-symbol-details>summary small{color:var(--mut);font:500 10px var(--mono)}
.audit-risk-setup .lab-run-row{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding-top:2px}
.audit-risk-setup .lab-run-row .small{margin:0}
@media (max-width:1100px){.audit-risk-setup .lab-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media (max-width:700px){.audit-brief{grid-template-columns:1fr;gap:8px}.audit-controls>.field,.audit-controls>.btn{width:100%;max-width:none}}
@media (max-width:600px){
  .audit-progress-steps{grid-template-columns:repeat(3,1fr);row-gap:12px}
  .audit-progress-meta{display:grid;gap:4px}
  .audit-risk-setup .lab-grid{grid-template-columns:1fr}
  .audit-risk-setup .lab-span-2{grid-column:auto}
  .audit-risk-setup .lab-span-4{grid-column:auto}
  .audit-risk-setup .lab-run-row{display:grid;grid-template-columns:1fr}
  .lab-symbol-sizing{grid-template-columns:repeat(3,minmax(72px,1fr))}
  .lab-symbol-sizing.header{display:none}
  .lab-symbol-sizing b,.lab-symbol-sizing .symbol-stop,.lab-symbol-sizing .risk-output{grid-column:span 1}
}
.broker-result {
  display: block;
  font-weight: 800;
  white-space: nowrap;
}

.ttable td small {
  display: block;
  margin-top: 0.2rem;
  color: var(--mut);
  font-size: 0.72rem;
  white-space: nowrap;
}

.broker-calc {
  margin-bottom: 1rem;
  border: 1px solid color-mix(in srgb, var(--win) 45%, transparent);
  border-radius:0;
  overflow: hidden;
}

.broker-calc .trade-calc-head {
  background: color-mix(in srgb, var(--win) 9%, var(--ink-2));
}

.model-separator {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin: 0.85rem 0 0.5rem;
  color: var(--mut);
}

.model-separator b {
  color: var(--text);
}

/* ================= Slate & Azure — motion layer =================
   Polished & subtle: view transitions, hover lifts, eased progress,
   stat value pop paired with the JS count-up. All motion is disabled
   under prefers-reduced-motion. */

.view{animation:viewIn .28s var(--ease) both}
@keyframes viewIn{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:none}
}
.view.hidden{animation:none}

/* verdict + stat values: gentle settle when (re)rendered */
.vm b{will-change:transform;font-variant-numeric:tabular-nums}
.vm b.stat-updated{animation:statPop .5s var(--ease)}
@keyframes statPop{
  0%{opacity:.2;transform:translateY(5px)}
  60%{opacity:1}
  100%{transform:none}
}
.verdict-word span{display:inline-block;animation:statPop .55s var(--ease)}

/* audit/lab equity curves drawn by app.js drawCurve() */
.eq-zero{stroke:var(--line);stroke-dasharray:4}
.eq-line{stroke:var(--accent);stroke-width:2;fill:none}
.equity polyline,.equity line{animation:eqFade .5s var(--ease)}
@keyframes eqFade{from{opacity:0}to{opacity:1}}

/* progress bars ease instead of stepping */
.strategy-progress span{transition:width .45s var(--ease)}

/* armed-live pill breathes; monitor/dry pills stay still */
.pill.armed{animation:armedPulse 2.6s ease-in-out infinite}
@keyframes armedPulse{
  0%,100%{box-shadow:0 1px 2px rgba(4,8,18,.45),inset 0 1px 0 rgba(255,255,255,.05),0 0 0 0 rgba(244,86,122,0)}
  50%{box-shadow:0 1px 2px rgba(4,8,18,.45),inset 0 1px 0 rgba(255,255,255,.05),0 0 0 5px rgba(244,86,122,.14)}
}

/* status dot when connected */
.dot.ok{box-shadow:0 0 0 0 rgba(52,211,153,.35);animation:dotBreathe 3s ease-in-out infinite}
@keyframes dotBreathe{
  0%,100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}
  50%{box-shadow:0 0 0 4px rgba(52,211,153,.14)}
}

/* detail rows unfold softly */
tr.detail-row>td{animation:detailIn .22s var(--ease)}
@keyframes detailIn{from{opacity:0}to{opacity:1}}

/* switches get the springier curve */
.track,.track::after{transition:.2s var(--ease)}

/* toasts/status lines fade in */
.err,#profile-status,.strategy-run-status{animation:eqFade .3s var(--ease)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ==========================================================================
   The Signal Hub public site — Swiss editorial / evidence-led
   ========================================================================== */
body.marketing-mode,body.login-mode{
  display:block;background:#f1efe8;color:#161714;min-height:100%;
  font-family:"Manrope",system-ui,sans-serif;
}
body.app-mode{display:block}
.app-shell{grid-template-columns:232px 1fr;min-height:100vh;background:var(--ink);color:var(--text)}
.app-shell:not(.hidden){display:grid}
.site-shell,.login-shell,.legal-shell{
  --paper:#f1efe8;--paper-deep:#e7e3d9;--site-ink:#161714;--site-muted:#5e6059;
  --site-line:#b9b7ae;--site-accent:#e43d2f;--site-display:"Instrument Serif",Georgia,serif;
  color:var(--site-ink);background:var(--paper);font-family:"Manrope",system-ui,sans-serif;
}
.site-shell *,.login-shell *,.legal-shell *{box-sizing:border-box}
.site-shell a,.login-shell a,.legal-shell a{color:inherit;text-decoration:none}
.site-shell button,.login-shell button,.legal-shell button{font:inherit}
.site-nav{
  height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 clamp(24px,4vw,72px);border-bottom:1px solid var(--site-ink);position:relative;z-index:4;
}
.site-brand{display:flex;align-items:center;gap:12px;width:max-content;font:700 12px/1 "Manrope",sans-serif;letter-spacing:.12em}
.site-brand-logo{width:40px;height:40px}
.legal-brand-logo{width:36px;height:36px}
.site-links{display:flex;flex-direction:row;gap:34px}
.site-links a,.site-login-link{font-size:12px;font-weight:600;letter-spacing:.04em;position:relative}
.site-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .35s cubic-bezier(.22,1,.36,1)}
.site-links a:hover::after{right:0}
.site-login-link{justify-self:end;border:0;background:none;color:inherit;cursor:pointer;padding:10px 0;display:flex;gap:12px;align-items:center}
.site-login-link span{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.site-login-link:hover span{transform:translate(3px,-3px)}
.site-main{padding:0!important;max-width:none!important;width:100%;overflow:hidden}
.marketing-hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,32vw);border-bottom:1px solid var(--site-ink)}
.hero-copy{padding:clamp(72px,10vh,124px) clamp(24px,6vw,104px) 58px;display:flex;flex-direction:column;min-width:0}
.eyebrow{margin:0;font:600 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.hero-copy h1{font:400 clamp(72px,10.1vw,156px)/.79 var(--site-display);letter-spacing:-.055em;margin:auto 0;color:var(--site-ink)}
.hero-copy h1 em{color:var(--site-accent);font-weight:400}
.hero-line{display:block;overflow:hidden;padding:0 .08em .11em 0}
.hero-line>span{display:block;transform:translateY(110%);animation:heroLine .9s cubic-bezier(.22,1,.36,1) forwards}
.hero-line:nth-child(2)>span{animation-delay:.12s}
@keyframes heroLine{to{transform:translateY(0)}}
.hero-reveal{animation:heroFade .7s .3s cubic-bezier(.22,1,.36,1) both}
@keyframes heroFade{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero-bottom{display:grid;grid-template-columns:minmax(260px,470px) auto;gap:50px;align-items:end;margin-top:40px}
.hero-bottom>p{font-size:14px;line-height:1.75;margin:0;color:#363832;max-width:55ch}
.site-button{min-width:220px;border:1px solid var(--site-ink);padding:0;background:transparent;color:inherit;height:55px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden}
.site-button::before{content:"";position:absolute;inset:0;background:var(--site-ink);transform:translateX(-101%);transition:transform .45s cubic-bezier(.22,1,.36,1)}
.site-button span,.site-button b{position:relative;z-index:1}.site-button span{padding-left:18px;font-size:12px;font-weight:700}.site-button b{width:54px;height:54px;border-left:1px solid currentColor;display:grid;place-items:center;font-size:18px}
.site-button:hover{color:var(--paper)}.site-button:hover::before{transform:none}
.site-button:hover b{border-color:var(--paper)}
.hero-ledger{border-left:1px solid var(--site-ink);background:var(--site-accent);color:#171713;padding:38px clamp(24px,3vw,48px);display:flex;flex-direction:column}
.ledger-top,.table-caption{display:flex;justify-content:space-between;text-transform:uppercase;font:600 9px "IBM Plex Mono",monospace;letter-spacing:.12em}
.hero-ledger ol{list-style:none;padding:0;margin:auto 0}
.hero-ledger li{display:grid;grid-template-columns:44px 1fr;border-top:1px solid rgba(22,23,20,.55);padding:18px 0;align-items:start}
.hero-ledger li:last-child{border-bottom:1px solid rgba(22,23,20,.55)}
.hero-ledger li>span{font:500 10px "IBM Plex Mono",monospace}
.hero-ledger li p{margin:0;font-size:12px;line-height:1.55}.hero-ledger li b{font:600 16px/1.1 "Manrope",sans-serif;display:block;margin-bottom:5px}
.ledger-stamp{display:flex;justify-content:space-between;align-items:center;font:600 9px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.ledger-stamp i{width:42px;height:42px;border:1px solid currentColor;border-radius:50%;position:relative}.ledger-stamp i::after{content:"";position:absolute;left:11px;right:11px;top:20px;height:1px;background:currentColor;transform:rotate(-35deg)}
.proof-rule{min-height:92px;border-bottom:1px solid var(--site-ink);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;padding:0 clamp(24px,4vw,72px)}
.proof-rule span{font:500 10px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:14px}
.proof-rule span::before{content:"";width:5px;height:5px;background:var(--site-accent);border-radius:50%}
.method-section{padding:clamp(90px,13vw,190px) clamp(24px,6vw,108px)}
.section-intro{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:clamp(80px,11vw,150px)}
.section-intro h2,.product-heading h2,.evidence-copy h2,.security-section h2{font:400 clamp(48px,6vw,86px)/.95 var(--site-display);letter-spacing:-.035em;margin:0;max-width:900px}
.method-list{max-width:1180px;margin-left:auto}
.method-list article{display:grid;grid-template-columns:100px minmax(240px,1fr) minmax(280px,1fr);gap:40px;border-top:1px solid var(--site-line);padding:36px 0 72px}
.method-number{font:500 11px "IBM Plex Mono",monospace;color:var(--site-accent)}
.method-list h3{font:400 clamp(32px,3.2vw,48px)/.95 var(--site-display);margin:0;letter-spacing:-.02em}
.method-list p{margin:0;color:var(--site-muted);font-size:13px;line-height:1.8;max-width:50ch}
.manifesto{background:var(--site-ink);color:var(--paper);min-height:78vh;padding:clamp(70px,9vw,130px) clamp(24px,6vw,108px);display:grid;grid-template-columns:1fr 4fr;grid-template-rows:auto 1fr auto;gap:40px}
.manifesto blockquote{grid-column:2;margin:auto 0;font:400 clamp(68px,10vw,148px)/.82 var(--site-display);letter-spacing:-.055em}
.manifesto blockquote em{color:var(--site-accent);font-weight:400}
.manifesto-note{grid-column:2;max-width:620px;margin:0 0 0 auto;color:#bdbbb2;font-size:13px;line-height:1.8}
.product-section{padding:clamp(100px,13vw,180px) clamp(24px,6vw,108px)}
.product-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:100px}.product-heading h2{grid-column:2}
.decision-index{margin-left:calc(33.333% + 14px)}
.decision-index article{border-top:1px solid var(--site-ink);padding:22px 0 60px;display:grid;grid-template-columns:190px 1fr 1fr;gap:40px}
.decision-index article>div span,.decision-index article>div b{display:block}.decision-index article>div span{color:var(--site-accent);font:600 10px "IBM Plex Mono",monospace;margin-bottom:20px}.decision-index article>div b{font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.decision-index h3{font:400 34px/1.05 var(--site-display);margin:0;max-width:340px}.decision-index p{font-size:13px;line-height:1.75;color:var(--site-muted);margin:0 0 22px;grid-column:3}.decision-index ul{list-style:none;padding:18px 0 0;margin:0;border-top:1px solid var(--site-line);grid-column:3}.decision-index li{font:500 10px/2 "IBM Plex Mono",monospace;text-transform:uppercase}
.evidence-section{background:var(--paper-deep);border-top:1px solid var(--site-ink);border-bottom:1px solid var(--site-ink);padding:clamp(90px,11vw,150px) clamp(24px,6vw,108px);display:grid;grid-template-columns:.85fr 1.35fr;gap:clamp(60px,9vw,140px);align-items:end}
.evidence-copy h2{margin:24px 0 30px}.evidence-copy>p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--site-muted);max-width:50ch}
.text-link{border:0;border-bottom:1px solid currentColor;background:none;padding:12px 0 7px;margin-top:28px;font-size:11px;font-weight:700;display:flex;gap:60px;cursor:pointer}.text-link span{transition:transform .3s cubic-bezier(.22,1,.36,1)}.text-link:hover span{transform:translateX(6px)}
.evidence-table{font:500 10px "IBM Plex Mono",monospace}.table-caption{border-bottom:1px solid var(--site-ink);padding-bottom:14px}.e-row{display:grid;grid-template-columns:.75fr 1.2fr .8fr 1.3fr;border-bottom:1px solid var(--site-line);padding:18px 4px;gap:20px}.e-head{text-transform:uppercase;color:var(--site-muted);font-size:9px}.positive{color:#1c7a4c}.negative{color:#c32f25}
.security-section{padding:clamp(90px,11vw,150px) clamp(24px,6vw,108px);display:grid;grid-template-columns:1fr 1fr;gap:12vw}.security-section h2{margin-top:24px}.security-copy>p{font-size:15px;line-height:1.8;max-width:56ch;margin:0 0 70px}.security-copy dl{margin:0}.security-copy dl>div{display:flex;justify-content:space-between;border-top:1px solid var(--site-line);padding:16px 0;font:500 10px "IBM Plex Mono",monospace;text-transform:uppercase}.security-copy dl>div:last-child{border-bottom:1px solid var(--site-line)}.security-copy dt{color:var(--site-muted)}.security-copy dd{margin:0}
.closing-section{min-height:72vh;background:var(--site-accent);padding:60px clamp(24px,6vw,108px);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}
.closing-section h2{font:400 clamp(72px,10.5vw,160px)/.8 var(--site-display);letter-spacing:-.055em;margin:70px 0}.closing-section h2 em{font-weight:400;color:var(--paper)}
.site-button.inverse{border-color:var(--site-ink)}.site-footer{padding:38px clamp(24px,4vw,72px);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;border-top:1px solid var(--site-ink)}.site-footer p,.site-footer>span{font-size:10px;line-height:1.5;margin:0}.site-footer>span{text-align:right;font-family:"IBM Plex Mono",monospace}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
[data-reveal].is-visible{opacity:1;transform:none}

/* login */
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(450px,.95fr);position:relative}
.login-context{background:var(--site-accent);border-right:1px solid var(--site-ink);padding:46px clamp(34px,5vw,78px);display:flex;flex-direction:column;justify-content:space-between}
.login-context h2{font:400 clamp(64px,8vw,124px)/.82 var(--site-display);letter-spacing:-.05em;margin:25px 0}.login-context h2 em{font-weight:400;color:var(--paper)}
.login-context-note{font-size:11px;line-height:1.7;max-width:43ch;margin:0}
.login-panel{display:grid;place-items:center;padding:100px clamp(34px,7vw,120px)}
.login-form{width:100%;max-width:500px}.login-form-head{border-bottom:1px solid var(--site-ink);padding-bottom:32px;margin-bottom:38px}.login-form-head>span{font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em}.login-form-head h1{font:400 clamp(46px,5vw,70px)/.95 var(--site-display);letter-spacing:-.035em;margin:35px 0 12px}.login-form-head p{font-size:12px;color:var(--site-muted);margin:0}
.login-form>label{color:var(--site-ink);font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;margin:24px 0 8px}.login-form>input{width:100%;height:53px;border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:transparent;color:var(--site-ink);font:500 14px "Manrope",sans-serif;padding:0}.login-form>input:focus{box-shadow:none;border-color:var(--site-accent)}.login-form>input::placeholder{color:#5c6c8a}
.login-options{display:flex;justify-content:space-between;align-items:center;margin:24px 0 38px}.login-options label{display:flex;align-items:center;gap:8px;color:var(--site-muted);font-size:10px;margin:0;letter-spacing:0;text-transform:none}.login-options input{width:13px;height:13px;min-width:13px;padding:0;accent-color:var(--site-accent);box-shadow:none}.login-options button{border:0;background:none;padding:0;font-size:10px;border-bottom:1px solid currentColor;cursor:pointer}
.login-submit{position:relative;height:48px;width:100%;border:1px solid transparent;background:linear-gradient(180deg,#63a0ff,#4d8dff 45%,#3a72dd);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;cursor:pointer;overflow:hidden;font:600 10.5px "IBM Plex Mono",monospace;letter-spacing:.09em;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(10,20,45,.35),0 2px 6px rgba(4,8,18,.45);transition:filter .2s,transform .2s,box-shadow .2s}
.login-submit::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.16) 50%,transparent 65%);transform:translateX(-140%);transition:transform .5s ease}
.login-submit:hover::after{transform:translateX(140%)}
.login-submit:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 14px rgba(77,141,255,.35)}.login-submit span{padding:0;font-weight:600}.login-submit b{font-size:15px;font-weight:600}
.google-login{position:relative;overflow:hidden;width:100%;min-height:48px;display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:12px;padding:0 16px;border:1px solid transparent;background:linear-gradient(180deg,#1e2b4a,#121c33) padding-box,linear-gradient(135deg,rgba(77,141,255,.55),rgba(77,141,255,.12) 50%,rgba(77,141,255,.4)) border-box;color:#e6eaf2;font:600 12px "Barlow",sans-serif;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 2px rgba(4,8,18,.45);transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .25s}
.google-login::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.12) 50%,transparent 65%);transform:translateX(-140%);transition:transform .5s ease}
.google-login:hover::after{transform:translateX(140%)}
.google-login:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 3px 10px rgba(4,8,18,.5),0 0 0 1px rgba(77,141,255,.25)}.google-login:disabled{cursor:not-allowed;opacity:.5;transform:none}.google-login[aria-busy="true"]{cursor:wait}.google-mark{display:flex;align-items:center;justify-content:flex-start;width:22px;height:22px}.google-mark svg{display:block;width:18px;height:18px}.google-login>b{font:500 19px/1 "Barlow",sans-serif;text-align:right}.login-terms{margin:26px 0 0;font-size:9px;line-height:1.7;color:var(--site-muted);max-width:55ch}.login-note[data-state="error"]{color:#f4567a}.login-note[data-state="pending"]{color:#78aaff}
.login-note{font-size:9px!important;line-height:1.6;color:var(--site-muted);margin:18px 0 0!important}.login-back{position:absolute;z-index:3;right:38px;top:34px;border:0;background:none;color:var(--site-ink);font-size:10px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.login-back span{margin-right:8px}.app-exit{border:0;border-top:1px solid var(--line);background:none;color:var(--mut);padding:12px 0 0;text-align:left;font:500 10px var(--mono);cursor:pointer}.app-exit:hover{color:var(--text)}

/* account access */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--site-line);margin:0 0 24px}.auth-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--site-muted);padding:0 0 13px;text-align:left;font-size:11px;font-weight:700;cursor:pointer}.auth-tabs button[aria-selected="true"]{border-color:var(--site-accent);color:var(--site-ink)}
.email-auth-form{display:grid;gap:18px}.auth-field{display:grid;gap:7px}.auth-field label{font:600 9px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--site-ink)}.auth-field input{width:100%;height:48px;border:1px solid var(--site-line);border-radius:0;background:transparent;color:var(--site-ink);padding:0 13px;font:500 14px "Barlow",sans-serif;outline:none}.auth-field input:focus{border-color:var(--site-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--site-accent) 16%,transparent)}.auth-field input::placeholder{color:#5c6c8a}.auth-field input:invalid:not(:placeholder-shown){border-color:#b64343}
.auth-consent{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;color:var(--site-muted);font-size:10px;line-height:1.6}.auth-consent input{margin:3px 0 0;accent-color:var(--site-accent)}.auth-consent button,.login-terms button{border:0;border-bottom:1px solid currentColor;background:none;color:inherit;padding:0;cursor:pointer}.login-options{justify-content:flex-end;margin:0}.login-options button,.auth-text-button{border:0;border-bottom:1px solid currentColor;background:none;color:var(--site-muted);padding:0;justify-self:start;font-size:10px;cursor:pointer}.auth-instruction{margin:0;color:var(--site-muted);font-size:11px;line-height:1.65}.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:13px;color:var(--site-muted);font:500 8px "IBM Plex Mono",monospace;text-transform:uppercase;margin:24px 0}.auth-divider::before,.auth-divider::after{content:"";height:1px;background:var(--site-line)}.google-security{font-size:9px;line-height:1.6;color:var(--site-muted);margin:12px 0 0}.login-note[data-state="success"]{color:#43c78b}.login-submit:disabled{opacity:.55;cursor:wait}

/* legal documents */
.legal-shell{min-height:100vh;background:#f2f5f7;color:#101820;font-family:"Barlow",sans-serif}.legal-nav{height:82px;padding:0 clamp(20px,4vw,58px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #101820;position:sticky;top:0;z-index:5;background:#f2f5f7}.legal-home,.legal-close{border:0;background:none;color:#101820;cursor:pointer}.legal-home{display:flex;align-items:center;gap:13px;font:600 13px "Barlow Condensed",sans-serif;letter-spacing:.08em}.legal-home .site-brand-mark{display:flex;gap:3px;align-items:end;height:18px}.legal-home .site-brand-mark i{display:block;width:3px;background:#e66b2e}.legal-home .site-brand-mark i:nth-child(1){height:9px}.legal-home .site-brand-mark i:nth-child(2){height:17px}.legal-home .site-brand-mark i:nth-child(3){height:12px}.legal-close{display:flex;gap:14px;align-items:center;font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em}.legal-close span{font-size:23px;font-weight:300}.legal-layout{display:grid;grid-template-columns:minmax(245px,.32fr) minmax(0,1fr)}.legal-layout>aside{min-height:calc(100vh - 82px);padding:48px clamp(24px,4vw,58px);border-right:1px solid #b7c5ce;position:sticky;top:82px;height:calc(100vh - 82px);display:flex;flex-direction:column}.legal-layout>aside>p{margin:0 0 42px;font:600 8px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:#5c6e79}.legal-layout>aside nav{display:grid}.legal-layout>aside nav button{border:0;border-top:1px solid #b7c5ce;background:none;color:#5c6e79;padding:17px 0;text-align:left;font-size:12px;font-weight:600;cursor:pointer}.legal-layout>aside nav button:last-child{border-bottom:1px solid #b7c5ce}.legal-layout>aside nav button.active{color:#e66b2e}.legal-layout>aside small{margin-top:auto;font:500 8px/1.8 "IBM Plex Mono",monospace;text-transform:uppercase;color:#5c6e79}.legal-content{width:min(880px,100%);padding:80px clamp(28px,7vw,110px) 130px}.legal-content article>h1{font:600 clamp(56px,8vw,105px)/.88 "Barlow Condensed",sans-serif;letter-spacing:-.045em;margin:25px 0 35px}.legal-kicker{margin:0;font:600 9px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#e66b2e}.legal-lede{font-size:18px;line-height:1.65;margin:0 0 70px;max-width:68ch}.legal-content article>section{display:grid;grid-template-columns:minmax(180px,.32fr) 1fr;gap:35px;padding:28px 0;border-top:1px solid #b7c5ce}.legal-content article>section:last-child{border-bottom:1px solid #b7c5ce}.legal-content h2{font:600 20px/1.15 "Barlow Condensed",sans-serif;margin:0}.legal-content section p{font-size:13px;line-height:1.75;color:#465861;margin:0}.legal-risk .legal-lede{padding:28px;border:1px solid #e66b2e;background:#fff7f2}.legal-risk .legal-lede strong{font-weight:600}

@media(max-width:1050px){
  .marketing-hero{grid-template-columns:1fr}.hero-ledger{border-left:0;border-top:1px solid var(--site-ink);min-height:580px}.hero-copy{min-height:720px}.proof-rule{grid-template-columns:1fr 1fr;gap:20px;padding-top:26px;padding-bottom:26px}.decision-index{margin-left:0}.login-shell{grid-template-columns:1fr}.login-context{min-height:520px;border-right:0;border-bottom:1px solid var(--site-ink)}
}
@media(max-width:900px){.app-shell:not(.hidden){display:block}.site-nav .site-links{width:auto;overflow:visible;padding:0}}
@media(max-width:720px){
  .site-nav{grid-template-columns:1fr auto;height:72px}.site-links{display:none}.marketing-hero{min-height:auto}.hero-copy{min-height:640px;padding-top:66px}.hero-copy h1{font-size:clamp(61px,18vw,94px)}.hero-bottom{grid-template-columns:1fr;gap:28px}.site-button{width:100%}.proof-rule{grid-template-columns:1fr}.section-intro,.product-heading{grid-template-columns:1fr}.product-heading h2{grid-column:auto}.method-list article{grid-template-columns:44px 1fr;gap:18px}.method-list article p{grid-column:2}.manifesto{grid-template-columns:1fr;min-height:680px}.manifesto blockquote,.manifesto-note{grid-column:1}.manifesto blockquote{font-size:clamp(58px,17vw,90px)}.decision-index article{grid-template-columns:1fr}.decision-index article p,.decision-index article ul{grid-column:1}.evidence-section,.security-section{grid-template-columns:1fr}.evidence-table{overflow:auto}.e-row{min-width:660px}.site-footer{grid-template-columns:1fr;gap:24px}.site-footer>span{text-align:left}.closing-section h2{font-size:clamp(65px,18vw,98px)}.login-context{min-height:420px}.login-panel{padding-top:110px}.login-back{right:24px}
}
@media(max-width:760px){body.marketing-mode,body.login-mode,body.legal-mode{max-width:100%;overflow-x:hidden}.login-shell,.login-context,.login-panel,.login-form{display:block;width:100%;max-width:100%}.login-context{min-height:300px;padding:32px 22px}.login-context h2{font-size:58px;margin:60px 0 30px}.login-panel{padding:75px 22px 55px}.login-form-head{margin-bottom:25px;padding-bottom:24px}.login-form-head h1{font-size:50px;margin-top:28px}.login-back{top:26px;right:16px;max-width:150px;white-space:nowrap;font-size:8px;color:#eaf1f5}.auth-field input{min-width:0}.google-login{min-height:56px}.legal-nav{height:68px}.legal-layout{display:block}.legal-layout>aside{position:static;height:auto;min-height:0;border-right:0;border-bottom:1px solid #b7c5ce;padding:25px 20px}.legal-layout>aside>p{margin-bottom:18px}.legal-layout>aside nav{grid-template-columns:1fr}.legal-layout>aside nav button{padding:13px 0}.legal-layout>aside small{margin-top:18px}.legal-content{padding:58px 20px 90px}.legal-content article>h1{font-size:58px}.legal-lede{font-size:16px;margin-bottom:50px}.legal-content article>section{grid-template-columns:1fr;gap:12px;padding:24px 0}.legal-risk .legal-lede{padding:20px}.auth-tabs button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.hero-line>span,.hero-reveal{animation:none;transform:none;opacity:1}[data-reveal]{opacity:1;transform:none}}

/* ==========================================================================
   The Signal Hub public site v2 — product-led motion system
   ========================================================================== */
.focus-site{
  --focus-paper:#f3f0e7;--focus-paper-2:#e5e7df;--focus-ink:#17201f;
  --focus-deep:#18302b;--focus-deep-2:#213c35;--focus-muted:#65716b;
  --focus-line:#b9beb6;--focus-accent:#d8613f;--focus-sage:#8fa497;
  background:var(--focus-paper);color:var(--focus-ink);font-family:"Manrope",sans-serif;
}
.focus-site .focus-main{padding:0!important;max-width:none!important;width:100%;overflow:hidden}
.focus-nav{height:74px;padding:0 clamp(24px,4vw,64px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(23,32,31,.25);background:var(--focus-paper);position:sticky;top:0;z-index:30}
.focus-brand{display:flex;align-items:center;gap:12px;width:max-content;color:inherit!important}
.focus-brand>span:last-child{display:flex;flex-direction:column;gap:2px}.focus-brand b{font:800 13px/1 "Syne",sans-serif;letter-spacing:-.02em}.focus-brand small{font:500 7px/1.2 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--focus-muted)}
.focus-mark{width:31px;height:31px;border:1px solid currentColor;display:flex;gap:3px;align-items:center;justify-content:center;transform:rotate(-7deg)}.focus-mark i{display:block;width:2px;height:13px;background:currentColor;transform:skew(-12deg)}.focus-mark i:nth-child(2){height:20px}.focus-mark i:nth-child(3){height:9px}
.focus-links{display:flex;flex-direction:row;gap:34px!important;width:auto!important}.focus-links a{font-size:11px;font-weight:600;position:relative}.focus-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--focus-accent);transition:right .35s cubic-bezier(.22,1,.36,1)}.focus-links a:hover::after{right:0}
.focus-login{justify-self:end;border:1px solid var(--focus-ink);background:transparent;color:inherit;padding:10px 15px;min-width:102px;display:flex;justify-content:space-between;cursor:pointer;font-size:11px!important;font-weight:700!important;transition:background .3s,color .3s,transform .3s cubic-bezier(.22,1,.36,1)}.focus-login:hover{background:var(--focus-ink);color:var(--focus-paper);transform:translateY(-2px)}
.focus-hero{min-height:1180px;padding:100px clamp(24px,5vw,76px) 0;position:relative;border-bottom:1px solid var(--focus-line);overflow:hidden}
.market-field{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.23}.market-field::after{content:"";position:absolute;left:0;right:0;bottom:228px;height:1px;background:var(--focus-sage)}
.market-field>i{position:absolute;left:var(--x);bottom:228px;width:19px;height:var(--h);border-left:1px solid var(--focus-sage);border-right:1px solid var(--focus-sage);animation:marketBreathe 4.5s var(--d) ease-in-out infinite alternate;transform-origin:bottom}.market-field>i::before{content:"";position:absolute;left:4px;right:4px;top:30%;bottom:18%;background:var(--focus-sage)}.market-field>i:nth-child(3n)::before,.market-field>i:nth-child(4n)::before{background:var(--focus-accent)}
@keyframes marketBreathe{from{transform:translateY(6px) scaleY(.96);opacity:.5}to{transform:translateY(-8px) scaleY(1.04);opacity:1}}
.focus-hero-copy{position:relative;z-index:2;text-align:center;max-width:980px;margin:0 auto}.focus-kicker{margin:0;font:600 9px/1.4 "IBM Plex Mono",monospace!important;letter-spacing:.14em;text-transform:uppercase}.focus-hero-copy h1{font:800 clamp(68px,8.3vw,126px)/.86 "Syne",sans-serif;letter-spacing:-.07em;margin:38px 0 30px}.focus-hero-copy h1 em{font:400 1.03em/1 "Instrument Serif",serif;color:var(--focus-accent);letter-spacing:-.035em}.focus-mask{display:block;overflow:hidden;padding:.03em .06em .12em}.focus-mask b{display:block;transform:translateY(115%);animation:focusHeadline .9s .12s cubic-bezier(.22,1,.36,1) forwards}.focus-mask:nth-child(2) b{animation-delay:.24s}@keyframes focusHeadline{to{transform:none}}
.focus-sub{max-width:660px;margin:0 auto;color:#4d5a54;font-size:15px;line-height:1.75}.focus-actions{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:34px}.focus-actions>a{font-size:11px;font-weight:700;border-bottom:1px solid currentColor;padding:9px 0}.focus-actions>a span{display:inline-block;margin-left:12px;transition:transform .3s}.focus-actions>a:hover span{transform:translateY(4px)}
.focus-cta{height:54px;min-width:220px;padding:0 18px;border:1px solid var(--focus-ink);background:var(--focus-ink);color:var(--focus-paper);display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:11px!important;font-weight:700!important;transition:transform .3s cubic-bezier(.22,1,.36,1),background .3s}.focus-cta:hover{transform:translateY(-3px);background:var(--focus-accent)}
.hero-product{position:relative;z-index:3;width:min(1060px,92vw);margin:80px auto 0;transform-style:preserve-3d;animation:deviceEnter 1s .45s cubic-bezier(.22,1,.36,1) both;transition:transform .18s ease-out}@keyframes deviceEnter{from{opacity:0;transform:translateY(55px) rotateX(6deg) scale(.97)}to{opacity:1;transform:none}}
.product-window{height:600px;background:var(--focus-deep);color:#e9eee9;border:1px solid #29473f;position:relative;overflow:hidden;box-shadow:0 30px 80px rgba(24,48,43,.18)}
.pw-top{height:43px;border-bottom:1px solid #385249;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 15px;font:500 8px "IBM Plex Mono",monospace;letter-spacing:.08em}.pw-top>div{display:flex;gap:6px}.pw-top>div i{width:7px;height:7px;border:1px solid #64776f;border-radius:50%}.pw-top>span{text-align:center;color:#9eafa7}.pw-top>b{justify-self:end;font-size:8px;color:#b9c8c1}.pw-top>b i,.demo-head b i{display:inline-block;width:6px;height:6px;background:#7bb492;border-radius:50%;margin-right:6px;animation:livePulse 2s ease-in-out infinite}@keyframes livePulse{50%{opacity:.3;transform:scale(.75)}}
.pw-body{height:calc(100% - 43px);display:grid;grid-template-columns:56px 1fr}.pw-body>aside{border-right:1px solid #385249;display:flex;flex-direction:column;align-items:center;gap:25px;padding-top:18px}.pw-body>aside strong{color:#9db2a8}.pw-body>aside i{width:13px;height:2px;background:#526a61}.pw-body>aside i.active{background:var(--focus-accent);width:20px}.pw-content{padding:26px 34px}.pw-title{display:flex;justify-content:space-between;align-items:end}.pw-title span:first-child{display:flex;flex-direction:column;gap:5px}.pw-title small,.pw-metrics small{font:500 8px "IBM Plex Mono",monospace;text-transform:uppercase;color:#8fa29a;letter-spacing:.07em}.pw-title b{font:700 22px "Syne",sans-serif}.pw-verdict{border:1px solid #d9aa64;color:#d9aa64;padding:6px 10px;font:600 8px "IBM Plex Mono",monospace;letter-spacing:.08em}
.pw-verdict.disputed{border-color:var(--focus-accent);color:#eb8c73}
.pw-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#385249;margin:23px 0}.pw-metrics>span{background:var(--focus-deep-2);padding:15px;display:flex;flex-direction:column;gap:7px}.pw-metrics b{font:600 19px "IBM Plex Mono",monospace}.up{color:#8ac9a2!important}.down{color:#e47b68!important}
.pw-chart{height:160px;border:1px solid #385249;padding:13px 15px;position:relative}.pw-chart>span{font:500 8px "IBM Plex Mono",monospace;color:#8fa29a;text-transform:uppercase}.pw-chart svg{position:absolute;left:15px;right:15px;bottom:15px;width:calc(100% - 30px);height:112px}.pw-chart path{stroke:#8ac9a2;stroke-width:2;fill:none;stroke-dasharray:850;stroke-dashoffset:850;animation:drawAudit 2.6s 1s cubic-bezier(.22,1,.36,1) forwards}.pw-chart line{stroke:#526a61;stroke-width:1;stroke-dasharray:4 5}.chart-dot{position:absolute;width:7px;height:7px;background:#8ac9a2;border-radius:50%;right:15px;top:33px;opacity:0;animation:dotArrive .4s 3.25s forwards}@keyframes drawAudit{to{stroke-dashoffset:0}}@keyframes dotArrive{to{opacity:1}}
.pw-table{margin-top:16px;font:500 8px "IBM Plex Mono",monospace}.pw-table>div{display:grid;grid-template-columns:.8fr 1.2fr .8fr 1.3fr;padding:9px 6px;border-bottom:1px solid #314a42}.pw-table>div:first-child{color:#82978e;text-transform:uppercase}.audit-scan{position:absolute;left:56px;right:0;height:1px;background:rgba(138,201,162,.65);top:43px;animation:auditScan 5s 1.4s ease-in-out infinite}@keyframes auditScan{0%,15%{transform:translateY(0);opacity:0}25%{opacity:1}70%{opacity:.3}85%,100%{transform:translateY(555px);opacity:0}}
.sample-tag{display:block;text-align:right;margin-top:10px;font:500 8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--focus-muted)}
.focus-strip{min-height:86px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;padding:0 clamp(24px,5vw,76px);border-bottom:1px solid var(--focus-line);background:#eeece4}.focus-strip span{font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:12px}.focus-strip span::before{content:"";width:5px;height:5px;background:var(--focus-accent);border-radius:50%}
.problem-section{min-height:820px;background:var(--focus-paper-2);padding:clamp(100px,12vw,170px) clamp(24px,8vw,130px);display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;align-items:start;position:relative}.problem-heading h2{font:700 clamp(52px,6vw,88px)/.94 "Syne",sans-serif;letter-spacing:-.06em;margin:26px 0}.problem-heading h2 em{font:400 1.05em "Instrument Serif",serif;color:var(--focus-accent)}.problem-ledger{border-top:1px solid var(--focus-ink)}.problem-ledger article{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--focus-line)}.problem-ledger time{font:500 9px "IBM Plex Mono",monospace;color:var(--focus-accent)}.problem-ledger h3{font:600 17px/1.45 "Manrope",sans-serif;margin:0 0 8px;text-decoration:line-through;text-decoration-color:rgba(216,97,63,.65);text-decoration-thickness:1px}.problem-ledger p{margin:0;color:var(--focus-muted);font-size:12px;line-height:1.7}
.chapter-divider{height:98px;border-top:1px solid var(--focus-ink);border-bottom:1px solid var(--focus-line);margin:0 clamp(24px,5vw,76px);display:flex;align-items:center;gap:14px;font:600 9px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em}.chapter-divider::after{content:"";height:1px;background:var(--focus-line);flex:1;margin-left:12px}.chapter-divider span{color:var(--focus-accent)}
.feature-stage{min-height:920px;padding:90px clamp(24px,7vw,115px) 110px;display:grid;grid-template-columns:minmax(330px,.82fr) minmax(520px,1.18fr);gap:8vw;align-items:center;position:relative;overflow:hidden}.feature-number{position:absolute;left:5vw;top:14px;font:800 clamp(180px,25vw,390px)/1 "Syne",sans-serif;letter-spacing:-.09em;color:rgba(23,32,31,.045);pointer-events:none;will-change:transform}.feature-copy{position:relative;z-index:2}.feature-copy h2{font:700 clamp(45px,5vw,72px)/.96 "Syne",sans-serif;letter-spacing:-.055em;margin:24px 0 34px}.feature-copy ul{list-style:none;padding:0;margin:0}.feature-copy li{padding:14px 0 14px 24px;border-top:1px solid var(--focus-line);font-size:12px;line-height:1.65;position:relative}.feature-copy li:last-child{border-bottom:1px solid var(--focus-line)}.feature-copy li::before{content:"—";position:absolute;left:0;color:var(--focus-accent)}
.feature-demo{position:relative;z-index:3;background:var(--focus-deep);color:#e9eee9;border:1px solid #29473f;box-shadow:0 25px 70px rgba(24,48,43,.14)}.demo-head{height:46px;border-bottom:1px solid #385249;padding:0 17px;display:flex;align-items:center;justify-content:space-between;font:500 8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:#9bafa6}.demo-head b{color:#adc6ba;font-size:8px}
.audit-demo{min-height:490px}.audit-flow{display:grid;grid-template-columns:1.05fr 88px .9fr;align-items:center;padding:38px 30px;min-height:395px}.message-stack>span,.trade-card>span{font:500 8px "IBM Plex Mono",monospace;color:#8da198}.message-stack article{background:var(--focus-deep-2);border-left:2px solid #8fa497;margin-top:12px;padding:14px}.message-stack article:nth-child(3){border-color:var(--focus-accent)}.message-stack small{font:500 7px "IBM Plex Mono",monospace;color:#8da198}.message-stack p{font-size:10px;line-height:1.55;margin:8px 0 0}.message-stack p b{font-size:11px}.parse-line{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;text-align:center}.parse-line i{width:55px;height:1px;background:#668077;position:relative}.parse-line i::after{content:"";position:absolute;right:0;top:-3px;border-left:6px solid #668077;border-top:3px solid transparent;border-bottom:3px solid transparent}.parse-line b{font:500 7px/1.4 "IBM Plex Mono",monospace;color:#8da198}.trade-card{border:1px solid #496158;padding:18px}.result-r{display:block;font:600 38px "IBM Plex Mono",monospace;color:#8ac9a2;margin:18px 0}.trade-card dl{margin:0}.trade-card dl>div{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #385249;font:500 8px "IBM Plex Mono",monospace}.trade-card dd{margin:0}.demo-foot{display:flex;justify-content:space-between;border-top:1px solid #385249;padding:13px 17px;font:500 7px "IBM Plex Mono",monospace;color:#82978e;text-transform:uppercase}
.monitor-stage{background:var(--focus-paper-2);grid-template-columns:minmax(520px,1.18fr) minmax(330px,.82fr)}.monitor-stage .feature-number{left:auto;right:5vw}.monitor-demo{min-height:480px}.monitor-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#385249}.monitor-summary>span{background:var(--focus-deep-2);padding:17px 15px;display:flex;flex-direction:column;gap:7px}.monitor-summary small,.risk-grid small{font:500 7px "IBM Plex Mono",monospace;color:#8fa29a;text-transform:uppercase}.monitor-summary b{font:600 19px "IBM Plex Mono",monospace}.monitor-feed{padding:22px 20px;font:500 8px "IBM Plex Mono",monospace}.monitor-feed>div{display:grid;grid-template-columns:.8fr 1fr 1.6fr .8fr;gap:12px;padding:14px 8px;border-bottom:1px solid #385249}.monitor-feed .mf-head{color:#82978e;text-transform:uppercase}.event-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8ac9a2;margin-right:7px}.event-dot.amber{background:#d3aa6d}.event-dot.soft{background:#8fa497}.activity-line{margin:0 28px 24px;padding:12px;border:1px solid #385249;display:flex;align-items:center;gap:9px;font:500 8px "IBM Plex Mono",monospace;color:#8fa29a}.activity-line i{width:6px;height:6px;border-radius:50%;background:#8ac9a2;animation:livePulse 2s infinite}
.risk-demo{padding-bottom:18px}.risk-profile-head{display:flex;justify-content:space-between;align-items:center;padding:26px}.risk-profile-head>span{display:flex;flex-direction:column;gap:5px}.risk-profile-head small{font:500 7px "IBM Plex Mono",monospace;color:#8fa29a;text-transform:uppercase}.risk-profile-head b{font:600 17px "Syne",sans-serif}.risk-profile-head label{display:flex;align-items:center;gap:10px;font-size:9px;color:#a8bab2}.risk-profile-head label i{width:36px;height:20px;border:1px solid #587066;border-radius:0;position:relative}.risk-profile-head label i::after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;left:3px;top:2px;background:#91a49b}.risk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#385249;margin:0 25px}.risk-grid>span{background:var(--focus-deep-2);padding:16px;display:flex;flex-direction:column;gap:8px}.risk-grid b{font:600 15px "IBM Plex Mono",monospace}.scope-rule{margin:20px 25px;border:1px solid #496158;padding:15px;display:flex;align-items:center;gap:12px;font:500 8px "IBM Plex Mono",monospace}.scope-rule>span{color:#8fa29a}.scope-rule b{padding:7px 10px;background:#29473f}.scope-rule i{font-style:normal;color:var(--focus-accent)}.risk-demo>button{margin:3px 25px 10px;width:calc(100% - 50px);height:42px;background:transparent;border:1px solid #61776e;color:#b8c7c0;font-size:9px;font-weight:700}.risk-demo>p{margin:0;text-align:center;font:500 7px "IBM Plex Mono",monospace;color:#82978e}.armed-state{color:#d5ad70!important}.armed-state i{background:#d5ad70!important}
.method-focus{background:var(--focus-deep);color:#e9eee9;padding:clamp(100px,12vw,170px) clamp(24px,8vw,130px);display:grid;grid-template-columns:1fr 1fr;gap:10vw}.method-focus h2{font:700 clamp(48px,5.5vw,80px)/.95 "Syne",sans-serif;letter-spacing:-.055em;margin:28px 0}.method-focus ol{list-style:none;margin:0;padding:0}.method-focus li{display:grid;grid-template-columns:55px 1fr;border-top:1px solid #4b6259;padding:23px 0}.method-focus li:last-child{border-bottom:1px solid #4b6259}.method-focus li>span{font:500 9px "IBM Plex Mono",monospace;color:var(--focus-accent)}.method-focus li b{font:600 18px "Syne",sans-serif}.method-focus li p{margin:7px 0 0;color:#9fb1a9;font-size:11px;line-height:1.6}
.security-focus{min-height:720px;padding:clamp(90px,11vw,150px) clamp(24px,8vw,130px);display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.security-focus>div:last-child h2{font:700 clamp(50px,5.6vw,82px)/.95 "Syne",sans-serif;letter-spacing:-.06em;margin:28px 0}.security-focus>div:last-child>p:not(.focus-kicker){font-size:13px;line-height:1.8;color:var(--focus-muted);max-width:58ch}.security-focus dl{margin:45px 0 0}.security-focus dl>div{display:flex;justify-content:space-between;border-top:1px solid var(--focus-line);padding:14px 0;font:500 8px "IBM Plex Mono",monospace;text-transform:uppercase}.security-focus dl>div:last-child{border-bottom:1px solid var(--focus-line)}.security-focus dd{margin:0}.security-focus dt{color:var(--focus-muted)}
.security-orbit{width:min(430px,75vw);aspect-ratio:1;border:1px solid var(--focus-line);border-radius:50%;position:relative;display:grid;place-items:center;margin:auto}.security-orbit>i{position:absolute;inset:15%;border:1px solid var(--focus-line);border-radius:50%;animation:orbitSpin 15s linear infinite}.security-orbit>i:nth-child(2){inset:32%;border-color:var(--focus-accent);animation-direction:reverse;animation-duration:10s}.security-orbit>i::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--focus-accent);left:8%;top:14%}.security-orbit>b{text-align:center;font:700 13px/1.5 "IBM Plex Mono",monospace;letter-spacing:.1em}@keyframes orbitSpin{to{transform:rotate(360deg)}}
.focus-closing{min-height:690px;background:var(--focus-accent);padding:70px clamp(24px,7vw,115px);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.focus-closing h2{font:800 clamp(70px,10vw,150px)/.83 "Syne",sans-serif;letter-spacing:-.075em;margin:65px 0}.focus-closing h2 em{font:400 1.04em "Instrument Serif",serif;color:var(--focus-paper)}.focus-cta.light{background:var(--focus-paper);color:var(--focus-ink)}.focus-footer{padding:36px clamp(24px,4vw,64px);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;border-top:1px solid var(--focus-ink)}.focus-footer p,.focus-footer>span{font-size:9px;margin:0}.focus-footer>span{text-align:right;font-family:"IBM Plex Mono",monospace}

@media(max-width:1050px){.focus-hero{min-height:1100px}.product-window{height:560px}.feature-stage,.monitor-stage{grid-template-columns:1fr;gap:55px;min-height:auto}.monitor-stage .feature-copy{grid-row:1}.feature-demo{width:min(780px,100%);margin:auto}.feature-copy{max-width:720px}.problem-section{grid-template-columns:1fr}.method-focus{grid-template-columns:1fr}.security-focus{grid-template-columns:1fr}.security-orbit{order:2}}
@media(max-width:760px){.focus-nav{height:66px;grid-template-columns:1fr auto;padding:0 18px}.focus-links{display:none!important}.focus-hero{min-height:1010px;padding:72px 18px 0}.focus-hero-copy h1{font-size:clamp(55px,16vw,82px);margin-top:30px}.focus-sub{font-size:13px}.focus-actions{flex-direction:column;gap:12px}.focus-cta{width:100%}.hero-product{width:1060px;max-width:none;margin-left:calc(50% - 530px);transform:scale(.58)!important;transform-origin:top center}.focus-hero{height:1020px}.focus-strip{grid-template-columns:1fr 1fr;gap:20px;padding:24px 18px}.problem-section{padding:90px 20px}.problem-heading h2{font-size:50px}.problem-ledger article{grid-template-columns:48px 1fr}.chapter-divider{margin:0 20px}.feature-stage{padding:80px 20px}.feature-copy h2{font-size:47px}.feature-number{font-size:170px}.feature-demo{overflow:hidden}.audit-flow{grid-template-columns:1fr;padding:24px 18px}.parse-line{padding:22px 0}.parse-line i{transform:rotate(90deg)}.monitor-summary{grid-template-columns:1fr 1fr}.monitor-feed{overflow:auto}.monitor-feed>div{min-width:570px}.risk-grid{grid-template-columns:1fr}.scope-rule{align-items:flex-start;flex-wrap:wrap}.method-focus,.security-focus{padding:90px 20px}.security-focus>div:last-child h2,.method-focus h2{font-size:48px}.focus-closing{padding:55px 20px;min-height:600px}.focus-closing h2{font-size:64px}.focus-footer{grid-template-columns:1fr;gap:22px}.focus-footer>span{text-align:left}}
@media(prefers-reduced-motion:reduce){.focus-mask b,.hero-product{animation:none!important;transform:none!important}.market-field>i,.security-orbit>i,.activity-line i,.pw-top>b i,.demo-head b i{animation:none!important}.pw-chart path{stroke-dashoffset:0!important}.audit-scan{display:none}}

/* Exchange Terminal direction — selected design system */
body.marketing-mode{background:#f2f5f7;color:#101820;font-family:"Barlow",sans-serif}
body.login-mode{background:#0d1424;color:#e6eaf2;font-family:"Barlow",sans-serif}
.focus-site{
  --focus-paper:#f2f5f7;--focus-paper-2:#e5edf2;--focus-ink:#101820;
  --focus-deep:#101d27;--focus-deep-2:#182a36;--focus-muted:#5c6e79;
  --focus-line:#b7c5ce;--focus-accent:#1677ff;--focus-sage:#78a8c7;
  font-family:"Barlow",sans-serif;
}
.focus-brand b,.focus-hero-copy h1,.pw-title b,.problem-heading h2,.feature-copy h2,
.risk-profile-head b,.method-focus h2,.method-focus li b,.security-focus>div:last-child h2,
.focus-closing h2{font-family:"Barlow Condensed",sans-serif}
.focus-hero-copy h1{font-size:clamp(76px,9.2vw,142px);font-weight:600;letter-spacing:-.045em;line-height:.82}
.focus-hero-copy h1 em,.problem-heading h2 em,.focus-closing h2 em{
  font-family:"Barlow Condensed",sans-serif;font-style:normal;font-weight:600;letter-spacing:-.035em;color:var(--focus-accent)
}
.problem-heading h2,.feature-copy h2,.method-focus h2,.security-focus>div:last-child h2{font-weight:600;letter-spacing:-.035em}
.focus-closing h2{font-weight:600;letter-spacing:-.045em}.focus-closing h2 em{color:#d9e8ff}
.focus-brand b{font-weight:600;letter-spacing:.03em}.focus-nav{background:#f2f5f7}.problem-section,.monitor-stage,.strategy-stage{background:var(--focus-paper-2)}
.focus-cta:hover{background:var(--focus-accent)}.focus-mark,.brand-mark{color:var(--focus-accent)}
.pw-verdict.disputed{border-color:#4b9aff;color:#7eb5ff}.market-field>i:nth-child(3n)::before,.market-field>i:nth-child(4n)::before{background:var(--focus-accent)}
.focus-strip{background:#eaf0f4}.focus-strip span{position:relative}.focus-strip span::after{content:"";position:absolute;left:17px;bottom:-6px;width:0;height:1px;background:var(--focus-accent);animation:stripSignal 4.8s ease-in-out infinite}.focus-strip span:nth-child(2)::after{animation-delay:1.2s}.focus-strip span:nth-child(3)::after{animation-delay:2.4s}.focus-strip span:nth-child(4)::after{animation-delay:3.6s}@keyframes stripSignal{0%,18%,100%{width:0;opacity:0}28%,58%{width:45px;opacity:1}72%{width:45px;opacity:0}}

.strategy-stage{grid-template-columns:minmax(520px,1.18fr) minmax(330px,.82fr)}.strategy-stage .feature-number{left:auto;right:5vw}.strategy-demo{min-height:560px}.strategy-demo-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#314957}.strategy-demo-summary>span{background:var(--focus-deep-2);padding:16px;display:flex;flex-direction:column;gap:7px}.strategy-demo-summary small,.strategy-demo-chart small{font:500 7px "IBM Plex Mono",monospace;color:#89a0ad;text-transform:uppercase}.strategy-demo-summary b{font:600 17px "IBM Plex Mono",monospace}.strategy-demo-chart{margin:22px 24px 0;border:1px solid #314957;padding:15px 16px 5px;height:205px}.strategy-demo-chart>div{display:flex;justify-content:space-between;align-items:center}.strategy-demo-chart>div b{font:600 16px "IBM Plex Mono",monospace;color:#78adff}.strategy-demo-chart svg{width:100%;height:145px}.strategy-demo-chart line{stroke:#425d6b;stroke-width:1;stroke-dasharray:4 5}.strategy-demo-chart path{stroke:#4b9aff;stroke-width:2;fill:none;stroke-dasharray:760;stroke-dashoffset:760}.strategy-demo.is-visible .strategy-demo-chart path{animation:strategyDraw 1.8s .25s cubic-bezier(.22,1,.36,1) forwards}@keyframes strategyDraw{to{stroke-dashoffset:0}}
.strategy-demo-table{margin:15px 24px 20px;font:500 8px "IBM Plex Mono",monospace}.strategy-demo-table>div{display:grid;grid-template-columns:1.35fr .8fr .8fr .8fr;gap:12px;padding:10px 7px;border-bottom:1px solid #314957}.strategy-demo-table>div:first-child{color:#849ca8;text-transform:uppercase}.strategy-demo-table b{font-size:7px;color:#9eafb8}.strategy-demo-table b.qualified{color:#78adff}
.feature-demo[data-reveal].is-visible .monitor-feed>div:not(.mf-head),.feature-demo[data-reveal].is-visible .message-stack article,.feature-demo[data-reveal].is-visible .strategy-demo-table>div:not(:first-child){animation:terminalRow .55s cubic-bezier(.22,1,.36,1) both}.feature-demo[data-reveal].is-visible *:nth-child(2){animation-delay:.08s}.feature-demo[data-reveal].is-visible *:nth-child(3){animation-delay:.16s}.feature-demo[data-reveal].is-visible *:nth-child(4){animation-delay:.24s}@keyframes terminalRow{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

.login-shell{--paper:#0d1424;--paper-deep:#121b2e;--site-ink:#e6eaf2;--site-muted:#8fa0bd;--site-line:#2c3a58;--site-accent:#4d8dff;--site-display:"Barlow Condensed",sans-serif;font-family:"Barlow",sans-serif;background:#0d1424}.login-context{background:#0a101d;color:#e6eaf2;border-right:1px solid #273450}.login-context .site-brand,.login-context .eyebrow{color:#eaf1f5}.login-context h2{font-family:"Barlow Condensed",sans-serif;font-weight:600;letter-spacing:-.035em}.login-context h2 em{font-family:"Barlow Condensed",sans-serif;font-style:normal;font-weight:600;color:#78aaff}.login-form-head h1{font-family:"Barlow Condensed",sans-serif;font-weight:600;letter-spacing:-.025em}

@media(max-width:1050px){.strategy-stage{grid-template-columns:1fr}.strategy-stage .feature-copy{grid-row:1}}
@media(max-width:760px){.focus-hero-copy h1{font-size:clamp(64px,18vw,94px)}.strategy-demo-summary{grid-template-columns:1fr 1fr}.strategy-demo-table{overflow:auto}.strategy-demo-table>div{min-width:570px}}
@media(prefers-reduced-motion:reduce){.focus-strip span::after,.strategy-demo-chart path,.feature-demo[data-reveal].is-visible .monitor-feed>div,.feature-demo[data-reveal].is-visible .message-stack article,.feature-demo[data-reveal].is-visible .strategy-demo-table>div{animation:none!important}.strategy-demo-chart path{stroke-dashoffset:0}}

/* Signal Desk palette option + expanded market motion */
.focus-nav-actions{justify-self:end;display:flex;align-items:center;gap:8px}.theme-toggle{height:36px;border:1px solid var(--focus-line);background:transparent;color:inherit;padding:0 12px;display:flex;align-items:center;gap:8px;font:600 8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:border-color .25s,background .25s,color .25s}.theme-toggle i{width:7px;height:7px;border-radius:50%;background:var(--focus-accent);box-shadow:0 0 0 0 rgba(77,141,255,.25);animation:themeDot 2.8s ease-in-out infinite}.theme-toggle:hover,.theme-toggle[aria-pressed="true"]{border-color:var(--focus-accent);background:color-mix(in srgb,var(--focus-accent) 10%,transparent)}@keyframes themeDot{50%{box-shadow:0 0 0 5px rgba(77,141,255,.1)}}
.global-market-tape{height:42px;overflow:hidden;border-bottom:1px solid var(--focus-line);background:var(--focus-deep);color:#aebcc6;display:flex;align-items:center}.global-market-tape>div{display:flex;align-items:center;gap:42px;width:max-content;white-space:nowrap;padding-left:42px;animation:marketTape 26s linear infinite;will-change:transform}.global-market-tape span{font:500 8px "IBM Plex Mono",monospace;letter-spacing:.06em}.global-market-tape b{color:#70aaff;font-weight:500}@keyframes marketTape{to{transform:translate3d(-50%,0,0)}}
.feature-stage,.problem-section,.security-focus{isolation:isolate}.feature-stage::before,.problem-section::before,.security-focus::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,color-mix(in srgb,var(--focus-line) 24%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--focus-line) 20%,transparent) 1px,transparent 1px);background-size:84px 84px;mask-image:linear-gradient(to bottom,transparent 4%,#000 25%,#000 78%,transparent 98%);opacity:.5}
.stage-market{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--focus-accent);opacity:.18}.stage-market>i{position:absolute;left:var(--x);bottom:72px;width:18px;height:var(--h);border-left:1px solid currentColor;animation:stageCandle 4.2s var(--d) ease-in-out infinite alternate;transform-origin:bottom}.stage-market>i::before{content:"";position:absolute;left:4px;right:4px;top:26%;bottom:18%;background:currentColor}.stage-market>i:nth-child(even){color:var(--focus-muted)}.stage-market>span{position:absolute;left:10%;bottom:27px;font:500 8px "IBM Plex Mono",monospace;letter-spacing:.18em;white-space:nowrap;animation:stageQuote 8s ease-in-out infinite alternate}@keyframes stageCandle{from{transform:translate3d(0,8px,0) scaleY(.92);opacity:.35}to{transform:translate3d(0,-7px,0) scaleY(1.05);opacity:1}}@keyframes stageQuote{from{transform:translate3d(-14px,0,0);opacity:.35}to{transform:translate3d(36px,0,0);opacity:.8}}
.feature-demo,.feature-copy{position:relative}.feature-demo::after{content:"";position:absolute;left:0;right:0;top:46px;height:1px;background:rgba(77,141,255,.55);transform:translate3d(0,0,0);opacity:0;animation:panelScan 6s ease-in-out infinite;pointer-events:none}@keyframes panelScan{0%,15%{transform:translate3d(0,0,0);opacity:0}23%{opacity:.7}72%{opacity:.18}86%,100%{transform:translate3d(0,390px,0);opacity:0}}

body.marketing-mode.signal-desk-theme,body.login-mode.signal-desk-theme{background:#0f1420;color:#e6eaf2}
.focus-site.signal-desk-theme{--focus-paper:#0f1420;--focus-paper-2:#161c2a;--focus-ink:#e6eaf2;--focus-deep:#0f1420;--focus-deep-2:#1d2433;--focus-muted:#93a0b8;--focus-line:#273044;--focus-accent:#4d8dff;--focus-sage:#78aaff;background:#0f1420;color:#e6eaf2}
.signal-desk-theme .focus-nav{background:#0f1420;border-color:#273044}.signal-desk-theme .focus-sub,.signal-desk-theme .problem-ledger p,.signal-desk-theme .feature-copy li,.signal-desk-theme .security-focus>div:last-child>p:not(.focus-kicker){color:#93a0b8}.signal-desk-theme .focus-strip{background:#161c2a}.signal-desk-theme .global-market-tape{background:#0b101a}.signal-desk-theme .problem-section,.signal-desk-theme .monitor-stage,.signal-desk-theme .strategy-stage{background:#161c2a}.signal-desk-theme .chapter-divider{border-color:#273044}.signal-desk-theme .feature-number{color:rgba(120,170,255,.055)}.signal-desk-theme .focus-login{border-color:#4d8dff}.signal-desk-theme .focus-login:hover{background:#4d8dff;color:#fff}.signal-desk-theme .focus-cta{background:#4d8dff;border-color:#4d8dff;color:#fff}.signal-desk-theme .focus-cta:hover{background:#78aaff}.signal-desk-theme .security-orbit{border-color:#273044}.signal-desk-theme .focus-footer{border-color:#273044}.signal-desk-theme .focus-closing{background:#31548f}.signal-desk-theme .focus-closing h2 em{color:#dce9ff}.signal-desk-theme .stage-market{opacity:.28}.signal-desk-theme .focus-brand small{color:#93a0b8}

@media(max-width:900px){.theme-toggle span{display:none}.theme-toggle{padding:0 12px}.focus-nav-actions{gap:5px}}
@media(max-width:760px){.focus-nav{grid-template-columns:1fr auto}.focus-login{min-width:82px}.global-market-tape>div{animation-duration:20s}.stage-market>i:nth-child(n+5){display:none}}
@media(prefers-reduced-motion:reduce){.theme-toggle i,.global-market-tape>div,.stage-market>i,.stage-market>span,.feature-demo::after{animation:none!important}}

/* Expanded product messaging: validation, terminal execution and strategies */
.focus-question{max-width:760px;margin:0 auto 18px;font:600 17px/1.5 "Barlow",sans-serif;color:var(--focus-ink)}.focus-question::before{content:"";display:inline-block;width:24px;height:2px;background:var(--focus-accent);vertical-align:middle;margin-right:12px}.focus-hero-copy>.focus-kicker{color:var(--focus-muted)}.focus-sub{max-width:790px}
.feature-note{margin:22px 0 0;padding:15px 0;border-top:1px solid var(--focus-line);border-bottom:1px solid var(--focus-line);font:500 9px/1.7 "IBM Plex Mono",monospace;color:var(--focus-muted)}
.execution-route{margin:20px 25px 0;border:1px solid #3d5664;display:grid;grid-template-columns:1fr auto 1.2fr auto 1fr;align-items:center;gap:10px;padding:13px}.execution-route>span{display:flex;flex-direction:column;gap:4px}.execution-route small{font:500 7px "IBM Plex Mono",monospace;color:#78909d}.execution-route b{font:600 9px "Barlow",sans-serif;color:#c6d4dd}.execution-route>i{font-style:normal;color:#4b9aff;animation:routeArrow 1.8s ease-in-out infinite}.execution-route>i:nth-of-type(2){animation-delay:.45s}@keyframes routeArrow{50%{transform:translateX(5px);opacity:.35}}
.risk-demo{min-height:535px}.strategy-examples{margin-top:24px;border-top:1px solid var(--focus-line)}.strategy-examples article{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:17px 0;border-bottom:1px solid var(--focus-line)}.strategy-examples span{font:600 11px "Barlow",sans-serif;color:var(--focus-accent)}.strategy-examples p{margin:0;font-size:10px;line-height:1.65;color:var(--focus-muted)}
.signal-desk-theme .focus-question{color:#e6eaf2}.signal-desk-theme .focus-hero-copy>.focus-kicker{color:#93a0b8}.signal-desk-theme .feature-note,.signal-desk-theme .strategy-examples p{color:#93a0b8}
@media(max-width:760px){.focus-question{font-size:14px}.execution-route{grid-template-columns:1fr;gap:8px}.execution-route>i{transform:rotate(90deg);justify-self:center}.strategy-examples article{grid-template-columns:1fr}.focus-hero-copy>.focus-kicker{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.execution-route>i{animation:none!important}}

/* Slate + Orange palette and corner comparison controls */
.focus-site{--terminal-line:#314957}.corner-toggle{height:36px;border:1px solid var(--focus-line);background:transparent;color:inherit;padding:0 12px;display:flex;align-items:center;gap:8px;font:600 8px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:border-color .25s,background .25s,color .25s,border-radius .35s}.corner-toggle i{width:8px;height:8px;border:1px solid var(--focus-accent);transition:border-radius .35s,background .25s}.corner-toggle:hover,.corner-toggle[aria-pressed="true"]{border-color:var(--focus-accent);background:color-mix(in srgb,var(--focus-accent) 9%,transparent)}.rounded-ui .corner-toggle i{border-radius:50%;background:var(--focus-accent)}

body.marketing-mode.slate-orange-theme,body.login-mode.slate-orange-theme{background:#eff1f2;color:#252a2e}
.focus-site.slate-orange-theme{--focus-paper:#eff1f2;--focus-paper-2:#e1e5e7;--focus-ink:#252a2e;--focus-deep:#30363b;--focus-deep-2:#3b4248;--focus-muted:#6f777d;--focus-line:#bcc2c6;--focus-accent:#e66b2e;--focus-sage:#90989d;--terminal-line:#596168;background:#eff1f2;color:#252a2e}
.slate-orange-theme .focus-nav{background:#eff1f2;border-color:#bcc2c6}.slate-orange-theme .focus-sub,.slate-orange-theme .problem-ledger p,.slate-orange-theme .feature-copy li,.slate-orange-theme .security-focus>div:last-child>p:not(.focus-kicker){color:#6f777d}.slate-orange-theme .focus-strip{background:#e5e8ea}.slate-orange-theme .global-market-tape{background:#30363b}.slate-orange-theme .global-market-tape b{color:#f39763}.slate-orange-theme .problem-section,.slate-orange-theme .monitor-stage,.slate-orange-theme .strategy-stage{background:#e1e5e7}.slate-orange-theme .focus-closing{background:#d9652d}.slate-orange-theme .focus-closing h2 em{color:#f5e7df}.slate-orange-theme .focus-login{border-color:#7d858a}.slate-orange-theme .focus-login:hover{background:#e66b2e;border-color:#e66b2e;color:#fff}.slate-orange-theme .focus-cta{background:#e66b2e;border-color:#e66b2e;color:#fff}.slate-orange-theme .focus-cta:hover{background:#bd4e1f}.slate-orange-theme .feature-number{color:rgba(64,71,76,.055)}.slate-orange-theme .stage-market{opacity:.22}.slate-orange-theme .focus-question::before{background:#e66b2e}
.slate-orange-theme .product-window,.slate-orange-theme .feature-demo{background:#30363b;border-color:#596168}.slate-orange-theme .pw-metrics>span,.slate-orange-theme .monitor-summary>span,.slate-orange-theme .strategy-demo-summary>span{background:#3b4248}.slate-orange-theme .message-stack article,.slate-orange-theme .risk-grid>span{background:#3b4248}.slate-orange-theme .scope-rule b{background:#474f55}.slate-orange-theme .pw-verdict.disputed{border-color:#e66b2e;color:#f39763}.slate-orange-theme .strategy-demo-chart>div b,.slate-orange-theme .strategy-demo-table b.qualified{color:#f39763}.slate-orange-theme .strategy-demo-chart path{stroke:#e66b2e}.slate-orange-theme .execution-route>i{color:#f39763}.slate-orange-theme .focus-brand small{color:#727b80}
.slate-orange-theme .up,.slate-orange-theme .result-r{color:#f39763!important}.slate-orange-theme .pw-chart path{stroke:#f39763}.slate-orange-theme .chart-dot,.slate-orange-theme .event-dot,.slate-orange-theme .activity-line i,.slate-orange-theme .pw-top>b i,.slate-orange-theme .demo-head b i{background:#e66b2e}.slate-orange-theme .event-dot.soft{background:#a1a9ae}.slate-orange-theme .event-dot.amber{background:#f1a06f}

.product-window,.feature-demo{border-color:var(--terminal-line)}.pw-top,.pw-body>aside,.pw-chart,.pw-table>div,.demo-head,.demo-foot,.trade-card,.trade-card dl>div,.activity-line,.risk-grid,.scope-rule,.strategy-demo-chart,.strategy-demo-table>div,.execution-route{border-color:var(--terminal-line)}.pw-metrics,.monitor-summary,.strategy-demo-summary{background:var(--terminal-line)}
.slate-orange-theme .pw-title small,.slate-orange-theme .pw-metrics small,.slate-orange-theme .message-stack>span,.slate-orange-theme .trade-card>span,.slate-orange-theme .monitor-summary small,.slate-orange-theme .risk-grid small,.slate-orange-theme .strategy-demo-summary small,.slate-orange-theme .strategy-demo-chart small{color:#b0b8bd}.slate-orange-theme .pw-top>span,.slate-orange-theme .pw-top>b,.slate-orange-theme .demo-head,.slate-orange-theme .demo-foot{color:#b7c0c5}

body.slate-orange-theme .login-shell{--paper:#0d1424;--paper-deep:#121b2e;--site-ink:#e6eaf2;--site-muted:#8fa0bd;--site-line:#2c3a58;--site-accent:#4d8dff;background:#0d1424}body.slate-orange-theme .login-context{background:#0a101d;color:#e6eaf2}body.slate-orange-theme .login-context h2 em{color:#78aaff}

.corner-toggle{display:none!important}

@media(max-width:900px){.corner-toggle span{display:none}.corner-toggle{padding:0 12px}}

/* The Signal Hub account access — Terminal Dark: the desk's own navy room
   at the door. One tone family for every control (no light/dark clash),
   machined card with an azure top edge, flat accent CTA, radius 0. */
.login-shell{
  --paper:#0d1424;--paper-deep:#121b2e;--site-ink:#e6eaf2;--site-muted:#8fa0bd;
  --site-line:#2c3a58;--site-accent:#4d8dff;background:var(--paper)
}
.login-context{background:#0a101d}.login-context h2 em{color:#78aaff}
.login-form{background:#121b2e;border:1px solid #2c3a58;border-top:2px solid #4d8dff;padding:34px 32px 30px}
.login-form-head{border-bottom:1px solid #273450;padding-bottom:24px;margin-bottom:26px}
.login-form-head>span{color:#4d8dff}
.login-form-head h1{font-size:clamp(38px,4vw,54px);margin:22px 0 10px}
.login-form-head p{color:#8fa0bd}
.login-back{padding:9px 12px;border:1px solid transparent;border-radius:0;transition:background .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.login-back:hover{border-color:var(--site-line);background:rgba(77,141,255,.08);transform:translateX(-2px)}
.auth-tabs{gap:8px;border:0;margin:0 0 22px}
.auth-tabs button{height:42px;padding:0 14px;border:1px solid var(--site-line);border-radius:0;text-align:center;color:var(--site-muted);background:transparent;transition:color .25s,background .25s,border-color .25s}
.auth-tabs button:hover{border-color:#31548f;color:var(--site-ink)}
.auth-tabs button[aria-selected="true"]{border-color:#31548f;border-bottom:2px solid #4d8dff;background:#1b2740;color:var(--site-ink)}
.auth-tabs button:focus{outline:none}.auth-tabs button:focus-visible{outline:2px solid #78aaff;outline-offset:2px}
.auth-field input{border-radius:0;background:#1b2740;border-color:#2c3a58;color:#e6eaf2;transition:border-color .25s,box-shadow .25s,background .25s}
.auth-field input:hover{border-color:#31548f}
.auth-field input:focus{background:#1b2740;border-color:var(--site-accent);box-shadow:inset 0 0 0 1px #31548f}
.auth-field input:-webkit-autofill,.auth-field input:-webkit-autofill:hover,.auth-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:#e6eaf2;-webkit-box-shadow:0 0 0 1000px #1b2740 inset;caret-color:#e6eaf2;
  transition:background-color 99999s ease-in-out 0s}
.login-submit{background:#4d8dff;color:#0a1020;box-shadow:none}
.login-submit::after{background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%)}
.login-submit:hover{filter:brightness(1.08);transform:none;box-shadow:0 3px 14px rgba(77,141,255,.28)}
.login-submit:focus-visible,.google-login:focus-visible{outline:2px solid #78aaff;outline-offset:3px}
.google-login{background:#1b2740;border:1px solid #2c3a58;box-shadow:none}
.google-login:hover{transform:none;border-color:#31548f;box-shadow:0 0 0 1px rgba(77,141,255,.2)}

.auth-consent{padding:13px 14px;border:1px solid var(--site-line);border-radius:0;background:#1b2740}
.auth-consent button,.login-terms button,.login-options button,.auth-text-button{transition:color .2s,border-color .2s}
.auth-consent button:hover,.login-terms button:hover,.login-options button:hover,.auth-text-button:hover{color:var(--site-accent);border-color:var(--site-accent)}
.google-security{padding-left:12px;border-left:2px solid #31548f;color:#5c6c8a}
.login-note{color:#5c6c8a}
@media(max-width:760px){.login-form{padding:24px 18px 22px}}

.legal-shell{background:#eff1f5;color:#0d1424}.legal-nav{background:#eff1f5;border-color:#0d1424}
body.legal-mode{display:block;background:#eff1f5;color:#0d1424}.legal-shell{width:100%;max-width:none}
.legal-home .site-brand-mark i{background:#4d8dff}.legal-home,.legal-close{border-radius:0;padding:9px 10px;transition:background .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.legal-home:hover,.legal-close:hover{background:#e1e7ee;transform:translateY(-1px)}
.legal-home:focus-visible,.legal-close:focus-visible,.legal-layout>aside nav button:focus-visible{outline:2px solid #f39763;outline-offset:2px}
.legal-layout>aside nav{gap:8px}.legal-layout>aside nav button{min-height:46px;padding:0 14px;border:1px solid #bac4d0!important;border-radius:0;background:transparent;color:#5c6878;transition:background .25s,color .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.legal-layout>aside nav button:hover{border-color:#78879a!important;color:#0d1424;transform:translateX(2px)}
.legal-layout>aside nav button.active{border-color:#0d1424!important;background:#0d1424;color:#fff}
.legal-kicker{color:#4d8dff}.legal-risk .legal-kicker{color:#e66b2e}.legal-risk .legal-lede{border-color:#e66b2e;border-radius:0;background:#fff7f2}

@media(max-width:760px){
  .login-back{border-color:rgba(234,241,245,.26);background:rgba(234,241,245,.04)}
  .auth-tabs{gap:6px}.auth-tabs button{padding:0 8px}
  .legal-layout>aside nav{gap:6px}.legal-layout>aside nav button{padding:0 12px}
}

/* Mandatory customer-terms gate for email and Google account access. */
.auth-consent{transition:border-color .22s,background .22s,box-shadow .22s}
.auth-consent:has(input:checked){border-color:#4d8dff;background:rgba(77,141,255,.10);box-shadow:0 0 0 3px rgba(77,141,255,.12)}
.auth-consent input{width:16px;height:16px;cursor:pointer}
.auth-consent input:focus-visible{outline:2px solid #f39763;outline-offset:2px}

/* The Signal Hub SaaS controls */
.ee-trial-link{border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;padding:8px 2px;font:600 10px "IBM Plex Mono",monospace;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:color .2s,border-color .2s}.ee-trial-link:hover{color:var(--site-accent);border-color:var(--site-accent)}
.rail{width:272px}.app-shell>main{margin-left:272px}.step{grid-template-columns:28px minmax(0,1fr) 20px}.step span:nth-child(2){white-space:normal;line-height:1.2;text-align:left}
.brand-mark{display:flex;align-items:flex-end;justify-content:center;gap:3px}.brand-mark span{display:block;width:3px;background:#f39763}.brand-mark span:nth-child(1){height:9px}.brand-mark span:nth-child(2){height:18px}.brand-mark span:nth-child(3){height:13px}
.account-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0 0 18px;background:var(--line);border:1px solid var(--line)}.account-overview article{display:grid;gap:6px;min-height:112px;padding:20px;background:var(--ink)}.account-overview span{font:600 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}.account-overview b{font:600 26px var(--disp);color:var(--text)}.account-overview small{color:var(--mut)}
.account-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px}.account-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin:18px 0}.account-form.compact{grid-template-columns:1fr}.account-form .btn{min-height:40px}.registered-accounts{display:grid;gap:10px}.registered-account{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px;border-top:1px solid var(--line)}.registered-account h3{margin:0 0 5px;font:600 14px var(--disp)}.registered-account p{margin:0;color:var(--mut);font-size:10px}.registered-account-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.device-list{grid-column:1/-1;display:grid;gap:6px}.device-row{display:flex;justify-content:space-between;gap:12px;color:var(--mut);font:500 9px var(--mono)}
.account-form input.input-invalid{border-color:var(--loss);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--loss) 75%,transparent)}
.download-actions{display:grid;gap:10px;margin:18px 0}.security-callout{display:grid;gap:6px;padding:14px;border-left:3px solid #f39763;background:#151e2e}.security-callout b{font:600 11px var(--disp)}.security-callout span{color:var(--mut);font-size:10px;line-height:1.55}
.ea-setup-steps{counter-reset:ea-step;display:grid;gap:0;margin:16px 0;padding:0;list-style:none;border-top:1px solid var(--line)}.ea-setup-steps li{counter-increment:ea-step;display:grid;grid-template-columns:30px 1fr;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--line)}.ea-setup-steps li:before{content:counter(ea-step,decimal-leading-zero);grid-row:1/3;color:var(--accent);font:600 9px var(--mono);padding-top:2px}.ea-setup-steps b{font:600 11px var(--disp)}.ea-setup-steps span{color:var(--mut);font:400 10px/1.55 var(--body)}.ea-token-panel{display:grid;gap:9px;margin:14px 0;padding:14px;border:1px solid var(--accent);background:#0f1830}.ea-token-panel>span{color:var(--amber);font:600 9px/1.4 var(--body)}.ea-token-panel code{overflow-wrap:anywhere;color:var(--win);font:500 10px/1.5 var(--mono);user-select:all}.ea-token-panel .btn{justify-self:start}
.addon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.addon-grid article{position:relative;display:flex;flex-direction:column;padding:26px 22px 22px;background:var(--ink-2);border:1px solid var(--line-2);box-shadow:inset 0 3px 0 transparent;transition:box-shadow .25s,background .25s,border-color .25s}
.addon-grid article:hover{box-shadow:inset 0 3px 0 var(--ember);background:#111a30}
.addon-title span{font:700 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.addon-title h3{margin:10px 0 8px;font:600 17px var(--disp);letter-spacing:-.01em;color:var(--text,#e9eef7)}
.addon-title p{margin:0;font-size:10.5px;line-height:1.6;color:var(--mut);min-height:34px}
.addon-cost{display:flex;align-items:baseline;gap:10px;margin:16px 0 14px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.addon-cost strong{font:600 30px var(--disp);letter-spacing:-.02em;color:var(--text,#e9eef7)}
.addon-cost span{font:600 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;line-height:1.5;color:var(--mut)}
.addon-grid ul{list-style:none;display:grid;gap:7px;margin:0 0 18px;padding:0}
.addon-grid li{position:relative;padding-left:14px;font-size:10.5px;line-height:1.5;color:var(--mut)}
.addon-grid li::before{content:"+";position:absolute;left:0;top:0;font:700 11px/1.5 var(--mono);color:var(--ember)}
.addon-grid .btn{margin-top:auto;width:100%;justify-content:center}
.strategy-show-more{display:block;margin:16px auto 0}.strategy-ledger-filters{grid-template-columns:repeat(5,minmax(120px,1fr)) auto}
.published-strategies{display:grid;gap:1px;border:1px solid var(--line);background:var(--line)}.published-strategy{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,minmax(85px,.28fr)) auto;gap:16px;align-items:center;padding:16px;background:var(--ink)}.published-strategy h3{margin:0 0 4px;font:600 14px var(--disp)}.published-strategy p{margin:0;color:var(--mut);font-size:9px}.published-strategy dl{margin:0}.published-strategy dt{font:600 8px var(--mono);text-transform:uppercase;color:var(--mut)}.published-strategy dd{margin:4px 0 0;font:600 13px var(--disp)}.published-strategy-actions{display:flex;gap:8px;align-items:center}.published-strategy-actions select{min-width:86px}
@media(max-width:1100px){.account-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:1fr}.addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.published-strategy{grid-template-columns:1fr 1fr 1fr}.published-strategy>div:first-child,.published-strategy-actions{grid-column:1/-1}}
@media(max-width:760px){.ee-trial-link{font-size:8px;white-space:nowrap}.rail{width:100%}.app-shell>main{margin-left:0}.account-overview,.account-form{grid-template-columns:1fr}.registered-account{grid-template-columns:1fr}.registered-account-actions{justify-content:flex-start}.strategy-ledger-filters{grid-template-columns:1fr 1fr}.published-strategy{grid-template-columns:1fr 1fr}}
.auth-gate-heading{padding:0 0 5px;border-bottom:1px solid var(--site-line)}
.auth-gate-heading>span{font:600 8px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#4d8dff}
.auth-gate-heading h2{margin:12px 0 7px;font:600 36px/.95 "Barlow Condensed",sans-serif;letter-spacing:-.02em;color:var(--site-ink)}
.auth-gate-heading p{margin:0 0 18px;color:var(--site-muted);font-size:11px;line-height:1.65}
.auth-gate-heading strong{color:var(--site-ink);font-weight:600}
.auth-terms-gate .auth-text-button{margin-top:2px}

@media(max-width:760px){
  .auth-consent{padding:12px;line-height:1.55}
  .auth-gate-heading h2{font-size:32px}
}

/* ==================================================================
   Signal Desk v2 skin — authored from design/signal-desk-v2.dc.html
   (The Signal Hub Backend Redesign). Flat navy surfaces, square
   corners, IBM Plex Mono micro-labels, Barlow Condensed display.
   ================================================================== */
.app-shell{grid-template-columns:216px 1fr}
.app-exit{font:600 9px var(--mono);letter-spacing:.1em;text-transform:uppercase}

/* flatten the remaining rounded chrome to the v2 square language */
.joblog,.equity,.ledger-note,.risk-guidance,.coverage-state,.sizing-guard,
.trade-calc,.risk-profile,.profile-scope,.group-picker,.all-groups,
.strategy-grid,.strategy-market,.account-dashboard,.account-sizing-note,
.channel-feed,.strategy-bt-tps>div,.lab-symbol-sizing:not(.header),
.lab-symbol-details,.strategy-head-pnl,.profile-grid>.field,
.audit-risk-setup,.strategy-bt-config,.tpbar .lane,.tpbar .fill,
.input-with-unit input,.input-with-unit span{border-radius:0}
.verdict{
  border:1px solid var(--accent-dim);border-radius:0;background:
  linear-gradient(90deg,rgba(77,141,255,.08),transparent 60%),#131c30;
  box-shadow:none;
}
.verdict-word{font:600 40px/1 var(--disp);letter-spacing:.02em;text-transform:uppercase}

/* tables: mono uppercase header band like the design's ledger rows */
.ttable thead th{
  font:600 7.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;
  color:var(--mut);background:#0f1830;
}
.card-head h2{font:600 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* section rule headers — "LABEL ———— right note" */
.rule-head{
  display:flex;align-items:center;gap:14px;padding:18px 0 10px;
  font:600 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;
}
.rule-head>span:first-child{color:var(--accent);white-space:nowrap}
.rule-head i{flex:1;height:1px;background:var(--line)}
.rule-head .rule-right{color:var(--mut);white-space:nowrap}

/* 07 Account */
.plan-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-2);background:#131c30;margin-bottom:16px}
.plan-cell{padding:13px 14px;border-right:1px solid var(--line-2);display:flex;flex-direction:column;gap:5px;min-width:0}
.plan-cell:last-child{border-right:0}
.plan-cell small{font:500 7px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut)}
.plan-cell b{font:600 15px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plan-cell small:last-child{font:400 8px var(--mono);letter-spacing:0;text-transform:none;color:var(--mut-2)}
.plan-current{background:linear-gradient(180deg,rgba(77,141,255,.1),transparent 70%)}
.plan-current b{font:600 20px var(--disp);letter-spacing:.02em}
.plan-current .plan-state{color:var(--amber)}
.account-split{align-items:start}
.acct-table-head{
  display:grid;grid-template-columns:1fr .6fr .6fr 1.2fr;gap:10px;padding:8px 6px;
  border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  font:600 7.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);background:#0f1830;
}
.acct-table-row{
  display:grid;grid-template-columns:1fr .6fr .6fr 1.2fr;gap:10px;padding:10px 6px;
  border-bottom:1px solid var(--line-soft);font:500 11px var(--mono);align-items:center;
}
.acct-table-row.muted-row{display:block;font:400 11px/1.6 var(--body);color:var(--mut)}
.account-actions{margin:14px 0 6px}
.install-rule{margin:12px 0 0;font:400 10px/1.65 var(--body);color:var(--mut-2)}
.install-rule b{color:var(--amber)}
.addon-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 0;border-top:1px solid var(--line-soft);align-items:center}
.addon-row:first-of-type{border-top:1px solid var(--line-2)}
.addon-row:last-of-type{border-bottom:1px solid var(--line-2)}
.addon-row b{display:block;font:600 13px var(--body)}
.addon-row>span:first-child small{font:400 10px var(--body);color:var(--mut)}
.addon-price{text-align:right}
.addon-price b{font:600 14px var(--mono)}
.addon-price b small{color:var(--mut);font-size:9px}
.addon-add{display:block;font:600 9px var(--body);color:var(--accent-2)}

/* 08 Admin */
.admin-strip .plan-cell b{font:600 20px var(--mono)}

@media (max-width:900px){
  main{padding:0}
  .plan-strip{grid-template-columns:repeat(2,1fr)}
  .plan-cell{border-bottom:1px solid var(--line-2)}
  .desk-ghost{display:none}
  .desk-views{padding:18px}
  .desk-ticker{padding:0 18px}
  .account-split{grid-template-columns:1fr}
  .step{border-top:0;border-bottom:2px solid transparent;padding:10px 10px}
  .step.active{border-top:0;border-bottom-color:var(--accent)}
}

/* v2 reconciliation: the numbered mono rail supersedes the wide-label rail */
.rail{width:auto}
.app-shell>main{margin-left:0}

/* Evidence integrity panel (audit report) */
.integrity-panel{margin-top:12px;border:1px solid var(--line-2);background:#0f1830;padding:12px 14px}
.integrity-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font:600 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.integrity-badge{color:var(--amber);font:600 8.5px var(--mono);letter-spacing:.1em}
.integrity-badge.live{color:var(--win)}
.integrity-risk{margin-left:auto;color:var(--mut)}
.integrity-risk.low{color:var(--win)}
.integrity-risk.moderate{color:var(--amber)}
.integrity-risk.elevated{color:var(--loss)}
.integrity-cells{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.integrity-cells>span{background:#131c30;padding:10px 12px;min-width:0}
.integrity-cells b{display:block;font:600 16px var(--mono)}
.integrity-cells small{display:block;margin-top:4px;color:var(--mut);font:400 9px/1.4 var(--body)}
.integrity-note{margin:10px 0 0;font:400 10.5px/1.6 var(--body);color:var(--mut)}
.flag.flag-deleted{color:var(--loss);border-color:color-mix(in srgb,var(--loss) 55%,var(--line))}
@media (max-width:900px){.integrity-cells{grid-template-columns:repeat(2,1fr)}}

/* Published walk-forward + engine fingerprint (strategy panels) */
.wf-block{border:1px solid var(--line-2);background:#0f1830;padding:10px 12px;margin-bottom:12px}
.wf-block>span{display:block;font:600 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.wf-block.wf-empty small{display:block;color:var(--mut);font:400 10px/1.5 var(--body);margin-bottom:6px}
.wf-cells{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:8px}
.wf-cells>span{background:#131c30;padding:8px 10px;min-width:0}
.wf-cells small{display:block;color:var(--mut);font:500 7.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.wf-cells b{display:block;font:600 13px var(--mono)}
.wf-cells i{display:block;font:400 8.5px var(--mono);font-style:normal;color:var(--mut);margin-top:3px}
.wf-fingerprint{display:block;font:500 7.5px var(--mono);letter-spacing:.08em;color:var(--mut-2)!important;text-transform:uppercase;margin:0!important}
.wf-stale{color:var(--amber)}
@media (max-width:900px){.wf-cells{grid-template-columns:1fr}}

/* Trading-account capacity meter: one pill per paid slot */
.capacity-meter{border:1px solid var(--line-2);background:#0f1830;padding:12px 14px;margin:0 0 14px}
.cap-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font:600 8.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.cap-head b{font:600 11px var(--mono);letter-spacing:.06em}
.cap-ok{color:var(--win)}
.cap-full{color:var(--amber)}
.cap-lane{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--line-soft)}
.cap-label{font:600 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.cap-pills{display:flex;gap:5px;align-items:center}
.cap-pill{display:block;width:30px;height:12px;border:1px solid var(--line-2);background:transparent;animation:cap-in .4s var(--ease) backwards}
.cap-pill.cap-used{border-color:transparent}
.cap-pill.cap-tone-total{background:var(--accent)}
.cap-pill.cap-tone-demo{background:var(--amber)}
.cap-pill.cap-tone-live{background:var(--win)}
.cap-pill.cap-next{border-color:var(--accent);animation:cap-in .4s var(--ease) backwards,cap-pulse 2.2s ease-in-out infinite}
.cap-pill.cap-none{border-style:dashed;opacity:.5}
.cap-count{text-align:right;font:600 14px var(--mono);color:var(--text);min-width:64px}
.cap-count small{display:block;font:500 8px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-top:2px}
.cap-count.cap-full,.cap-count.cap-full small{color:var(--amber)}
@keyframes cap-in{from{transform:scaleX(.2);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes cap-pulse{50%{box-shadow:0 0 0 4px rgba(77,141,255,.14);border-color:var(--accent-2)}}

/* Registered account cards with live connection state */
.acct-card{border:1px solid var(--line-2);border-left:3px solid var(--mut-2);background:#0f1830;padding:14px;margin-top:12px;transition:border-color .25s var(--ease)}
.acct-card.conn-live{border-left-color:var(--win)}
.acct-card.conn-waiting{border-left-color:var(--amber)}
.acct-card.conn-offline{border-left-color:var(--loss)}
.acct-card-head{display:flex;align-items:flex-start;gap:12px}
.conn-dot{width:10px;height:10px;border-radius:50%;background:var(--mut-2);flex:none;margin-top:5px}
.conn-live .conn-dot{background:var(--win);animation:conn-pulse 2s ease-in-out infinite}
.conn-waiting .conn-dot{background:var(--amber);animation:conn-pulse 2.6s ease-in-out infinite}
.conn-offline .conn-dot{background:var(--loss)}
@keyframes conn-pulse{0%,100%{box-shadow:0 0 0 0 rgba(67,199,139,.35)}50%{box-shadow:0 0 0 7px rgba(67,199,139,0)}}
.acct-card-title{min-width:0}
.acct-card-title b{font:600 15px var(--body)}
.acct-chips{display:inline-flex;gap:5px;margin-left:8px;vertical-align:2px}
.acct-chip{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid var(--line-2);font:600 8px var(--mono);letter-spacing:.08em;color:var(--mut);font-style:normal}
.acct-chip.chip-demo{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,var(--line-2))}
.acct-chip.chip-live{color:var(--loss);border-color:color-mix(in srgb,var(--loss) 55%,var(--line-2))}
.conn-state{margin-left:auto;text-align:right;flex:none}
.conn-state b{display:block;font:600 9px var(--mono);letter-spacing:.1em}
.conn-live .conn-state b{color:var(--win)}
.conn-waiting .conn-state b{color:var(--amber)}
.conn-offline .conn-state b{color:var(--loss)}
.conn-none .conn-state b{color:var(--mut)}
.conn-state small{display:block;color:var(--mut);font:400 9px/1.4 var(--body);max-width:230px;margin-top:3px}
.acct-meta{margin:10px 0 0;font:500 11px var(--mono);color:var(--mut)}
.acct-device{margin:4px 0 0;font:500 9.5px var(--mono);color:var(--mut-2)}
.acct-card .registered-account-actions{display:flex;gap:8px;justify-content:flex-start;margin-top:12px;flex-wrap:wrap}
@media (max-width:760px){.acct-card-head{flex-wrap:wrap}.conn-state{margin-left:22px;text-align:left}}

/* EA setup: the WebRequest URL step must be unmissable */
.ea-setup-steps li.ea-step-critical{
  border:1px solid var(--accent);border-bottom:1px solid var(--accent);
  background:linear-gradient(90deg,rgba(77,141,255,.1),transparent 70%);
  padding:14px 12px;margin:4px 0;grid-template-columns:30px 1fr;
}
.ea-setup-steps li.ea-step-critical:before{color:var(--accent-2)}
.ea-setup-steps li.ea-step-critical b{font-size:12px}
.ea-setup-steps li.ea-step-critical b em{color:var(--amber);font-style:normal;font:600 9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.ea-url-callout{grid-column:2;display:flex;align-items:center;gap:10px;margin-top:10px;padding:11px 13px;border:1px solid var(--accent);background:var(--ink);flex-wrap:wrap}
.ea-url-callout code{flex:1;min-width:180px;color:var(--accent-2);font:600 13px var(--mono);letter-spacing:.02em;user-select:all;overflow-wrap:anywhere}
.ea-url-callout .btn{flex:none;padding:8px 14px}

/* Deletion alert — the headline evidence-integrity finding */
.deletion-alert{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin-bottom:12px;border:1px solid var(--loss);border-left:4px solid var(--loss);background:linear-gradient(90deg,rgba(244,86,122,.12),transparent 70%)}
.deletion-alert-mark{font-size:18px;line-height:1.2;color:var(--loss);flex:none}
.deletion-alert b{display:block;font:600 13px var(--body);color:var(--loss)}
.deletion-alert small{display:block;margin-top:4px;color:var(--mut);font:400 10.5px/1.55 var(--body)}

/* Owner unlimited capacity lane */
.cap-lane-unlimited .cap-pills{color:var(--win);font:600 11px var(--mono);letter-spacing:.04em;display:flex;align-items:center;gap:6px}
.cap-infinity{font:700 16px var(--mono);color:var(--win);line-height:1}

/* Legacy dossier presentation retained for archived audit records. */
.published-strategy.strategy-dossier{display:block;padding:20px}
.dossier-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.dossier-head h3{margin:0 0 4px;font:600 16px var(--disp)}
.dossier-head p{margin:0;color:var(--mut);font-size:10px}
.dossier-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.dossier-collapse{padding:5px 10px;font-size:9px}
.dossier-mini{display:none}
.strategy-dossier.collapsed .dossier-body{display:none}
.strategy-dossier.collapsed .dossier-head{margin-bottom:0}
.strategy-dossier.collapsed{padding:16px 20px}
.strategy-dossier.collapsed .dossier-mini{display:flex;gap:22px;flex-wrap:wrap;margin-top:10px}
.dossier-mini em{display:block;font:600 8px var(--mono);font-style:normal;text-transform:uppercase;color:var(--mut);margin-bottom:3px}
.dossier-mini b{font:600 13px var(--mono)}
.dossier-mini .stat-pos{color:var(--win)}
.dossier-mini .stat-neg{color:var(--loss)}
.dossier-badge{font:600 8px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);border:1px solid var(--line-2);padding:4px 8px}
.dossier-badge.on{color:var(--win);border-color:rgba(67,199,139,.45)}
.dossier-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:12px}
.dossier-stat{background:var(--ink-2);padding:10px 12px}
.dossier-stat span{display:block;font:600 8px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin-bottom:5px}
.dossier-stat b{font:600 14px var(--disp);color:var(--text)}
.dossier-stat.stat-pos b{color:var(--win)}
.dossier-stat.stat-neg b{color:var(--loss)}
.strategy-dossier .strategy-equity-chart{margin-bottom:12px}
.chart-split{stroke:var(--amber);stroke-width:1.5;stroke-dasharray:6 5}
.chart-split-label{fill:var(--amber);font:600 9px var(--mono);letter-spacing:.06em}
.dossier-forward{border:1px solid var(--line-2);background:#0f1830;padding:10px 12px;margin-bottom:12px}
.dossier-forward-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:8px;flex-wrap:wrap}
.dossier-forward-head span{font:600 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.dossier-forward-head b{font:600 11px var(--mono);color:var(--text)}
.dossier-spark{display:block;width:100%;height:56px}
.dossier-spark path{fill:none;stroke:var(--win);stroke-width:2;vector-effect:non-scaling-stroke}
.dossier-spark.down path{stroke:var(--loss)}
.dossier-spark .spark-zero{stroke:var(--line-2);stroke-width:1;stroke-dasharray:4 4}
.dossier-spark-empty{color:var(--mut-2);font-size:10px}
.dossier-backtest{border:1px solid var(--line-2);background:var(--ink);margin-bottom:12px}
.dossier-backtest summary{cursor:pointer;padding:10px 12px;font:600 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);user-select:none}
.dossier-backtest summary:hover{color:var(--accent-2)}
.dossier-backtest-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:2px 12px 12px}
.dossier-backtest-form label{display:flex;flex-direction:column;gap:4px;font:600 8px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
.dossier-backtest-form input{width:110px}
.dossier-backtest-result{padding:0 12px 12px}
.dossier-backtest-result h4{margin:6px 0 10px;font:600 11px var(--mono);color:var(--text)}
.dossier-trades-table{width:100%;border-collapse:collapse;font:10px var(--mono);margin-top:10px}
.dossier-trades-table th{font:600 8px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line-2)}
.dossier-trades-table td{padding:6px 8px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.dossier-trades-table td.r-pos{color:var(--win)}
.dossier-trades-table td.r-neg{color:var(--loss)}
.strategy-dossier .published-strategy-actions{justify-content:flex-end}
@media(max-width:760px){.dossier-head{flex-direction:column}.dossier-badges{flex-direction:row;align-items:center;flex-wrap:wrap}.dossier-backtest-form input{width:96px}}

/* Live account telemetry strip on registered-account cards */
.acct-telemetry{display:flex;flex-wrap:wrap;gap:14px;border:1px solid var(--line-soft);background:#0f1830;padding:8px 12px;margin:2px 0 6px}
.acct-telemetry span{display:flex;flex-direction:column;gap:2px}
.acct-telemetry small{font:600 7px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut-2)}
.acct-telemetry b{font:600 12px var(--mono);color:var(--text)}

/* Expandable channel analytics rows */
.chan-row{cursor:pointer;transition:background .15s ease}
.chan-row:hover{background:#141f3a}
.chan-row.chan-open{background:#152140}
.chan-caret{display:inline-block;width:12px;color:var(--accent);font-size:10px}
.chan-detail>td{background:#0e1628;padding:10px 14px 14px;border-bottom:1px solid var(--line-2)}
.chan-trades{margin-top:0}

/* Human-readable terminal rejection reason under a FAILED trade state */
.trade-fail-note{max-width:270px;margin-top:3px;font:400 9px/1.45 var(--body);color:var(--loss);opacity:.85;white-space:normal}
.exec-failed-row td{background:rgba(244,86,122,.045)}
.exec-failed-row td:first-child{border-left:3px solid var(--loss)}
#exec-log-table{min-width:1320px}
#exec-log-table th:nth-child(2){width:148px}
#exec-log-table th:nth-child(7){min-width:470px}
.exec-source-badge{display:inline-flex;align-items:stretch;min-width:126px;border:1px solid var(--line-2);background:var(--ink);font-family:var(--mono);text-transform:uppercase}
.exec-source-mark{display:grid;place-items:center;width:32px;flex:none;font-size:9px;font-weight:800;letter-spacing:.06em;border-right:1px solid currentColor}
.exec-source-copy{display:flex;flex-direction:column;gap:1px;padding:5px 7px;line-height:1.1}
.exec-source-copy b{font-size:9px;letter-spacing:.09em;color:inherit}
.exec-source-copy small{font-size:6px;letter-spacing:.1em;color:var(--mut);white-space:nowrap}
.exec-source-telegram{color:var(--accent);border-color:rgba(77,141,255,.55);background:rgba(77,141,255,.07)}
.exec-source-telegram .exec-source-mark{background:rgba(77,141,255,.13)}
.exec-source-strategy{color:var(--ember);border-color:rgba(230,107,46,.55);background:rgba(230,107,46,.07)}
.exec-source-strategy .exec-source-mark{background:rgba(230,107,46,.13)}
.exec-source-tradingview{color:#8dd76b;border-color:rgba(141,215,107,.55);background:rgba(141,215,107,.07)}
.exec-source-tradingview .exec-source-mark{background:rgba(141,215,107,.13)}

/* TradingView Alert Automation: operational rather than decorative. The status
   strip, dense policy form and event ledger match the surrounding desk. */
.tv-status-strip{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);margin:0 0 8px;background:var(--panel)}
.tv-status-strip>div{display:flex;flex-direction:column;gap:7px;padding:14px 18px;border-right:1px solid var(--line)}
.tv-status-strip>div:last-child{border-right:0}
.tv-status-strip span{font:700 9px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--mut)}
.tv-status-strip b{font:700 14px/1.2 var(--mono);color:var(--text)}
.tv-usage-meter{display:grid;grid-template-columns:minmax(160px,1fr) auto;align-items:center;gap:14px;margin:0 0 24px;padding:10px 12px;border:1px solid var(--line);background:var(--ink-2)}.tv-usage-meter>div{height:4px;overflow:hidden;background:var(--line)}.tv-usage-meter i{display:block;width:100%;height:100%;background:var(--win);transform:scaleX(0);transform-origin:left center;transition:transform .35s var(--ease),background .2s}.tv-usage-meter>span{font:650 8px/1.4 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}.tv-usage-meter[data-state="warning"]{border-color:color-mix(in srgb,var(--amber) 55%,var(--line))}.tv-usage-meter[data-state="warning"] i{background:var(--amber)}.tv-usage-meter[data-state="warning"]>span{color:var(--amber)}.tv-usage-meter[data-state="limit"]{border-color:color-mix(in srgb,var(--loss) 60%,var(--line))}.tv-usage-meter[data-state="limit"] i{background:var(--loss)}.tv-usage-meter[data-state="limit"]>span{color:var(--loss)}
#tv-ingress-state{color:var(--win)}
.tv-test-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.tv-routing-options{width:100%}
.tv-account-choice{transition:border-color .15s,background .15s,opacity .15s,transform .12s}
.tv-account-choice small.is-live{color:var(--win);border-color:color-mix(in srgb,var(--win) 42%,var(--line-soft))}
.tv-connection-editor .tv-tp-editor p.is-error{color:var(--loss);border-left-color:var(--loss);background:rgba(244,86,122,.055)}
.tv-profiles-head{align-items:flex-start}.tv-profiles-head>div:first-child{display:grid;gap:5px;min-width:0}.tv-profiles-head p{max-width:72ch;margin:0;color:var(--mut);font:10px/1.5 var(--body)}
.tv-profile-head-actions{display:flex;flex:0 0 auto;gap:7px}.tv-profile-create-status{display:block;margin:0 0 12px;color:var(--mut);font:9px/1.45 var(--mono)}.tv-profile-create-status:empty{display:none}.tv-profile-create-status.r-neg{color:var(--loss)}
.tv-profiles-empty{display:grid;gap:6px;padding:18px;border:1px dashed var(--line-2);background:var(--ink)}.tv-profiles-empty b{color:var(--text);font:700 11px/1.2 var(--mono)}.tv-profiles-empty span{max-width:70ch;color:var(--mut);font:10px/1.5 var(--body)}
.tv-created-secret{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:15px 16px;border:1px solid rgba(141,215,107,.48);border-left:3px solid #8dd76b;background:rgba(141,215,107,.07)}
.tv-created-secret.hidden{display:none}
.tv-created-secret>div:first-child{display:grid;gap:6px;min-width:0}
.tv-created-secret span{color:#8dd76b;font:800 9px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.tv-created-secret code{overflow-wrap:anywhere;color:var(--text);font:700 10px/1.5 var(--mono);white-space:normal}
.tv-created-secret small{color:var(--mut);font:9px/1.4 var(--body)}
.tv-created-secret-actions{display:flex;gap:7px;flex:0 0 auto}
@media(max-width:700px){.tv-created-secret{align-items:flex-start;flex-direction:column}.tv-created-secret-actions{width:100%;flex-wrap:wrap}}
.tv-connection-list{display:grid;gap:10px;margin-top:12px}
.tv-connection-row{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(4,minmax(100px,.7fr)) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);background:var(--ink)}
.tv-connection-row>div{display:grid;gap:4px;min-width:0}
.tv-connection-row span{font:700 8px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.tv-connection-row b,.tv-connection-row code{overflow:hidden;text-overflow:ellipsis;font:700 11px/1.3 var(--mono);white-space:nowrap}
.tv-connection-actions{grid-column:1/-1;display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px!important;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--line)}
.tv-connection-row.is-dirty{border-color:color-mix(in srgb,var(--amber) 55%,var(--line))}
.tv-connection-row [data-tv-save-state]{display:block;margin-top:5px;font:700 8px/1.2 var(--mono);letter-spacing:.05em;color:var(--mut)}
.tv-connection-row.is-dirty [data-tv-save-state]{color:var(--amber)}
.tv-connection-row.is-draft{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));box-shadow:inset 3px 0 0 var(--accent)}
.tv-save-dirty{color:var(--amber)!important;border-color:color-mix(in srgb,var(--amber) 65%,var(--line))!important;background:color-mix(in srgb,var(--amber) 8%,var(--ink))!important}
.tv-route-state{flex:1 0 100%;min-height:12px;text-align:right;text-transform:none!important;letter-spacing:0!important;font:700 9px/1.35 var(--mono);color:var(--mut)}
.tv-route-state.is-ok{color:var(--win)}.tv-route-state.is-warn{color:var(--amber)}.tv-route-state.is-error{color:var(--loss)}
.tv-format-notice{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(0,1.8fr);gap:18px;padding:12px 14px;border-left:2px solid var(--amber);background:color-mix(in srgb,var(--amber) 6%,var(--ink))}
.tv-format-notice b{font:800 11px/1.35 var(--mono);color:var(--amber)}.tv-format-notice span{font:10px/1.55 var(--body);color:var(--mut)}
.tv-format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.tv-format-panel,.tv-alias-contract{border:1px solid var(--line);background:var(--ink)}
.tv-format-panel>summary,.tv-alias-contract>summary{display:flex;align-items:center;gap:8px;padding:11px 12px;cursor:pointer;list-style:none;font:800 10px/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text)}
.tv-format-panel>summary::-webkit-details-marker,.tv-alias-contract>summary::-webkit-details-marker{display:none}
.tv-format-panel>summary:before,.tv-alias-contract>summary:before{content:"+";color:var(--accent);font:800 13px/1 var(--mono)}
.tv-format-panel[open]>summary:before,.tv-alias-contract[open]>summary:before{content:"−"}
.tv-format-panel>summary span{color:var(--accent)}.tv-format-panel>summary small{margin-left:auto;color:var(--mut);font:700 7px/1 var(--mono)}
.tv-code-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 12px;border-top:1px solid var(--line)}
.tv-code-head>div{display:grid;gap:7px}.tv-code-head p{flex:1 1 auto;min-width:0;margin:0;color:var(--mut);font:10px/1.45 var(--body)}.tv-code-head p b{color:var(--text)}
.tv-code-head>.btn,.tv-code-actions{flex:0 0 auto}.tv-code-head>.btn{min-width:max-content}
.tv-code-actions{display:flex!important;grid-auto-flow:column;flex-wrap:wrap;justify-content:flex-end;gap:6px!important;white-space:nowrap}
.tv-format-panel pre{max-height:280px;overflow:auto;margin:0;padding:13px;border-top:1px solid var(--line);background:#09101f;color:#b9c9e8;font:9px/1.55 var(--mono);white-space:pre;tab-size:2}
.tv-format-panel pre code{font:inherit;color:inherit}.tv-code-label{margin:0;padding:10px 12px 6px;color:var(--mut);font:700 8px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.tv-recipes-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0 10px;padding-top:16px;border-top:1px solid var(--line)}
.tv-recipes-head>div{display:grid;gap:4px}.tv-recipes-head span:not(.pill){font:800 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.tv-recipes-head b{font:500 9px/1.4 var(--body);color:var(--mut)}
.tv-recipe-grid{margin-top:0}.tv-command-recipes{display:grid;border-top:1px solid var(--line)}
.tv-command-recipes>div{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,2fr) auto;align-items:center;gap:10px;padding:9px 11px;border-bottom:1px solid var(--line)}
.tv-command-recipes>div:last-child{border-bottom:0}.tv-command-recipes span{font:700 8px/1.3 var(--mono);color:var(--mut);text-transform:uppercase}.tv-command-recipes code{overflow:auto;padding:7px 8px;background:#09101f;color:#b9c9e8;font:8px/1.45 var(--mono);white-space:nowrap}.tv-command-recipes .btn{min-width:54px}
.tv-alias-contract{margin-top:10px}.tv-alias-contract .ttable{min-width:900px}.tv-alias-contract td{white-space:normal;line-height:1.45}
.tv-routing-editor{grid-column:1/-1;display:grid!important;grid-template-columns:minmax(180px,.8fr) minmax(0,2.2fr);gap:14px!important;padding-top:12px;border-top:1px solid var(--line)}
.tv-routing-editor>div:first-child{display:grid;align-content:start;gap:4px}
.tv-routing-editor strong{font:700 10px/1.35 var(--mono);color:var(--text)}
.tv-routing-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.tv-tp-editor{grid-column:1/-1;display:grid!important;grid-template-columns:130px 130px 120px 140px minmax(160px,1fr) minmax(160px,1fr);gap:10px!important;align-items:end;padding:12px;border:1px solid var(--line);background:rgba(141,215,107,.025)}
.tv-tp-editor p{grid-column:1/-1;margin:0;color:#8dd76b;font:9px/1.4 var(--mono)}
.tv-tp-editor .field{margin:0}
.tv-test-grid{grid-template-columns:minmax(180px,1fr) repeat(2,minmax(0,1fr))}
.tv-test-grid textarea{width:100%;resize:vertical;min-height:170px}
.tv-test-result{max-height:320px;overflow:auto;margin:14px 0 0;padding:14px;border:1px solid var(--line);background:var(--ink);color:#8dd76b;font:11px/1.55 var(--mono)}
#tv-events-table .tv-state-rejected,#tv-events-table .tv-state-failed{color:var(--loss)}
#tv-events-table .tv-state-rate_held,#tv-events-table .tv-state-quota_held{color:var(--amber)}
#tv-events-table .tv-state-queued,#tv-events-table .tv-state-delivered{color:var(--amber)}
#tv-events-table .tv-state-executed{color:var(--win)}
#tv-events-table .tv-state-monitor{color:var(--amber)}
#tv-events-table .tv-payload-toggle{min-width:105px;padding:7px 9px;font-size:8px;white-space:nowrap}
.tv-events-footer{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding-top:14px}
.tv-events-footer .btn{min-width:112px}
.tv-event-payload-row>td{padding:0!important;background:#0b1324;border-left:2px solid var(--accent)}
.tv-event-payload-row.hidden{display:none}
.tv-event-payload-loading,.tv-event-payload-error{padding:15px 17px;color:var(--mut);font:9px/1.5 var(--mono)}
.tv-event-payload-error{color:var(--loss)}
.tv-event-payload-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 16px;border-bottom:1px solid var(--line)}
.tv-event-payload-head>div{display:grid;gap:4px}
.tv-event-payload-head span,.tv-event-payload-grid header span{font:700 8px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.tv-event-payload-head b{font:700 10px/1.3 var(--mono);color:var(--accent)}
.tv-event-payload-head p{max-width:620px;margin:0;color:var(--mut);font:9px/1.45 var(--body);text-align:right}
.tv-event-payload-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.tv-event-payload-grid>section{min-width:0;background:#09101f}
.tv-event-payload-grid header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}
.tv-event-payload-grid header>div{display:grid;gap:3px}
.tv-event-payload-grid header b{font:700 9px/1.3 var(--mono);color:var(--text)}
.tv-event-payload-grid pre{min-height:120px;max-height:360px;overflow:auto;margin:0;padding:13px;color:#b9c9e8;font:9px/1.55 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:850px){.tv-event-payload-head{align-items:flex-start;flex-direction:column}.tv-event-payload-head p{text-align:left}.tv-event-payload-grid{grid-template-columns:1fr}}
@media(max-width:1100px){.tv-connection-row{grid-template-columns:1fr 1fr 1fr}.tv-connection-actions{justify-content:flex-end}.tv-status-strip{grid-template-columns:repeat(2,1fr)}.tv-tp-editor{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-format-grid{grid-template-columns:1fr}}
@media(max-width:700px){.tv-test-grid,.tv-status-strip,.tv-connection-row,.tv-routing-editor,.tv-routing-options,.tv-tp-editor,.tv-format-notice{grid-template-columns:1fr}.tv-usage-meter{grid-template-columns:1fr}.tv-status-strip>div{border-right:0;border-bottom:1px solid var(--line)}.tv-status-strip>div:last-child{border-bottom:0}.tv-profiles-head{gap:14px}.tv-profiles-head,.tv-profile-head-actions{width:100%;flex-wrap:wrap}.tv-profile-head-actions{justify-content:flex-end}.tv-code-head,.tv-recipes-head{align-items:flex-start;flex-direction:column}.tv-code-head>.btn,.tv-code-actions{align-self:flex-end}.tv-connection-actions{justify-content:flex-end}.tv-format-panel pre{font-size:8px}.tv-command-recipes>div{grid-template-columns:1fr}.tv-command-recipes .btn{justify-self:end}}

/* TradingView connection-owned editing and validator workspace */
.tv-connection-list{gap:14px}
.tv-connection-row{display:block;padding:0;overflow:hidden;background:var(--ink);border-color:var(--line-2)}
.tv-connection-row.is-dirty{border-color:color-mix(in srgb,var(--amber) 58%,var(--line))}
.tv-connection-head{display:grid;grid-template-columns:minmax(220px,1.05fr) minmax(360px,1.6fr) auto;gap:22px;align-items:center;padding:17px 18px;background:color-mix(in srgb,var(--panel) 72%,var(--ink));border-bottom:1px solid var(--line)}
.tv-connection-identity{display:grid;gap:6px;min-width:0}
.tv-connection-identity>span{color:var(--accent)}
.tv-connection-identity h3{overflow:hidden;margin:0;color:var(--text);font:600 17px/1.15 var(--disp);text-overflow:ellipsis;white-space:nowrap}
.tv-connection-meta{display:flex!important;flex-wrap:wrap;gap:5px!important}
.tv-connection-meta i{padding:3px 6px;border:1px solid var(--line-2);color:var(--mut);font:700 7px/1 var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase}
.tv-connection-meta i.is-active{border-color:rgba(141,215,107,.45);background:rgba(141,215,107,.07);color:#8dd76b}
.tv-connection-snapshot{display:grid!important;grid-template-columns:1.15fr 1fr .65fr;gap:0!important;min-width:0;border-left:1px solid var(--line)}
.tv-connection-snapshot>div{display:grid;gap:5px;min-width:0;padding:3px 14px;border-right:1px solid var(--line)}
.tv-connection-snapshot b{font-size:10px}
.tv-connection-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.tv-connection-head-actions .tv-profile-toggle{min-width:82px;border-color:color-mix(in srgb,var(--accent) 58%,var(--line));color:var(--accent-2)}
.tv-profile-toggle::before{content:"−";display:inline-block;margin-right:6px;color:var(--accent);font-size:12px;line-height:1;transition:transform .2s ease}
.tv-profile-toggle[aria-expanded="false"]::before{content:"+"}
.tv-profile-toggle:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}
.tv-profile-toggle:active{transform:translateY(1px)}
.tv-profile-toggle:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
.tv-connection-head-actions .danger{color:var(--loss);border-color:color-mix(in srgb,var(--loss) 45%,var(--line))}
.tv-inline-secret{display:flex!important;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid rgba(141,215,107,.4);background:rgba(141,215,107,.07)}
.tv-inline-secret.hidden{display:none!important}
.tv-inline-secret>div{display:grid;gap:6px;min-width:0}
.tv-inline-secret span{color:#8dd76b}
.tv-inline-secret code{overflow-wrap:anywhere;color:var(--text);font:700 10px/1.45 var(--mono);white-space:normal}
.tv-inline-secret small{color:var(--mut);font:9px/1.4 var(--body)}
.tv-connection-editor{background:rgba(9,16,31,.48)}
.tv-connection-editor:not([open])>summary{display:none}
.tv-connection-editor[open]>.tv-editor-section,.tv-connection-editor[open]>.tv-connection-actions{animation:tv-profile-reveal .2s ease both}
@keyframes tv-profile-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.tv-connection-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;cursor:pointer;list-style:none;color:var(--text);font:800 9px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.tv-connection-editor>summary::-webkit-details-marker{display:none}
.tv-connection-editor>summary>span:before{content:"+";display:inline-block;width:16px;color:var(--accent);font-size:13px}
.tv-connection-editor[open]>summary>span:before{content:"−"}
.tv-connection-editor>summary small{margin:0!important;color:var(--mut);font-size:8px}
.tv-connection-editor[open]>summary{border-bottom:1px solid var(--line)}
.tv-editor-section{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;padding:18px;border-bottom:1px solid var(--line)}
.tv-editor-heading{display:flex!important;align-items:flex-start;gap:10px!important}
.tv-editor-heading>span,.tv-reference-heading>span{display:grid;place-items:center;flex:none;width:25px;height:25px;border:1px solid var(--line-2);color:var(--accent);font-size:8px}
.tv-editor-heading>div{display:grid;gap:5px}
.tv-editor-heading b{font:800 10px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase}
.tv-editor-heading small{color:var(--mut);font:9px/1.45 var(--body)}
.tv-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tv-editor-grid .field,.tv-route-controls .field{margin:0}
.tv-editor-span-2{grid-column:span 2}.tv-editor-span-4{grid-column:1/-1}
.tv-editor-grid textarea{width:100%;min-height:58px;padding:10px 11px;resize:vertical;border:1px solid var(--line-2);background:#0d1628;color:var(--text);font:10px/1.45 var(--mono);outline:none}
.tv-editor-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}
.tv-route-controls{display:grid;grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);gap:12px;align-items:stretch}
.tv-route-setting,.tv-route-destinations{display:grid;align-content:start;gap:9px;min-width:0;padding:12px;border:1px solid var(--line);background:var(--ink)}
.tv-route-label{color:var(--mut);font:700 8px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.tv-route-setting .switch{min-height:32px}.tv-route-setting>small{max-width:34ch;color:var(--mut);font:9px/1.45 var(--body)}
.tv-route-destinations .group-picker{max-height:none;padding:0;border:0;background:transparent}
.tv-routing-options{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.tv-routing-options .tv-account-choice{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"check name" "check status";gap:3px 10px;align-content:center;min-height:58px;padding:10px 12px}
.tv-routing-options .tv-account-choice input{grid-area:check}.tv-routing-options .tv-account-choice span{grid-area:name;font-weight:700}.tv-routing-options .tv-account-choice small{grid-area:status;justify-self:start;padding:0;border:0;background:transparent;line-height:1.35;white-space:normal}
.tv-connection-editor .tv-tp-editor{grid-column:auto;display:grid!important;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px!important;padding:0;border:0;background:transparent}
.tv-editor-switch{grid-column:span 2;align-self:center;min-height:38px}
.tv-editor-section .switch-label{color:var(--text);font-size:10px;letter-spacing:0;text-transform:none}
.tv-connection-editor .tv-tp-editor p{grid-column:1/-1;padding:9px 11px;border-left:2px solid #8dd76b;background:rgba(141,215,107,.04)}
.tv-connection-actions{display:flex!important;grid-column:auto;align-items:center;justify-content:flex-end;gap:7px!important;padding:13px 18px;border-top:0;background:color-mix(in srgb,var(--panel) 58%,var(--ink))}
.tv-connection-actions .tv-route-state{flex:1 1 320px;text-align:left}
.tv-reference-layout{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(270px,.85fr);gap:14px;margin-top:16px}
.tv-key-contract,.tv-placeholder-contract{border:1px solid var(--line);background:var(--ink)}
.tv-reference-heading{display:flex;gap:11px;padding:14px;border-bottom:1px solid var(--line)}
.tv-reference-heading>div{display:grid;gap:4px}
.tv-reference-heading h3{margin:0;color:var(--text);font:800 11px/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase}
.tv-reference-heading p{margin:0;color:var(--mut);font:9px/1.45 var(--body)}
.tv-key-contract .ttable{min-width:750px}.tv-key-contract td{white-space:normal;line-height:1.4}
.tv-placeholder-list{display:grid;gap:0;padding:5px 14px}
.tv-placeholder-list>div{display:grid;grid-template-columns:105px 1fr;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.tv-placeholder-list>div:last-child{border-bottom:0}
.tv-placeholder-list code{color:#8dd76b;font:700 10px/1.2 var(--mono)}
.tv-placeholder-list span{color:var(--mut);font:9px/1.3 var(--body);text-transform:none;letter-spacing:0}
.tv-placeholder-warning{margin:9px 14px 14px;padding:11px;border-left:2px solid var(--amber);background:color-mix(in srgb,var(--amber) 6%,var(--ink))}
.tv-placeholder-warning b{color:var(--amber);font:800 9px/1.2 var(--mono);text-transform:uppercase}
.tv-placeholder-warning p{margin:5px 0 0;color:var(--mut);font:9px/1.5 var(--body)}
.tv-alternative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tv-recipe-grid{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}
.tv-validation-steps{display:grid;grid-template-columns:repeat(3,1fr);margin:14px 0;border:1px solid var(--line);background:var(--ink)}
.tv-validation-steps>div{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;padding:12px 14px;border-right:1px solid var(--line)}
.tv-validation-steps>div:last-child{border-right:0}
.tv-validation-steps span{grid-row:span 2;color:var(--mut-2);font:800 9px/1.2 var(--mono)}
.tv-validation-steps b{color:var(--text);font:800 9px/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase}
.tv-validation-steps small{color:var(--mut);font:8px/1.3 var(--body)}
.tv-validation-steps .is-current span{color:var(--accent)}
.tv-validator-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px}
.tv-validator-form,.tv-validator-result{padding:15px;border:1px solid var(--line);background:var(--ink)}
.tv-validator-form{display:grid;gap:14px}.tv-validator-form .field{margin:0}
.tv-payload-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.tv-payload-label>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.tv-payload-label .btn{padding:5px 8px;font-size:7px}
.tv-validator-form textarea{width:100%;min-height:240px;resize:vertical;background:#09101f;color:#b9c9e8;font:10px/1.55 var(--mono)}
.tv-validator-actions{display:flex;align-items:center;gap:12px}
.tv-validator-result{display:grid;grid-template-rows:auto 1fr auto;gap:12px;border-left:2px solid var(--line-2);transition:border-color .15s,background .15s}
.tv-validator-result>div{display:grid;gap:5px}.tv-validator-result>div span{color:var(--mut);font:700 8px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.tv-validator-result>div b{color:var(--text);font:800 10px/1.2 var(--mono);text-transform:uppercase}
.tv-validator-result pre{min-height:240px;max-height:410px;overflow:auto;margin:0;padding:12px;border:1px solid var(--line);background:#09101f;color:var(--mut);font:10px/1.55 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.tv-validator-result>p{margin:0;color:var(--mut);font:9px/1.45 var(--body)}
.tv-validator-result.is-ok{border-left-color:#8dd76b;background:rgba(141,215,107,.025)}.tv-validator-result.is-ok pre{color:#8dd76b}
.tv-validator-result.is-error{border-left-color:var(--loss);background:rgba(244,86,122,.025)}.tv-validator-result.is-error pre{color:var(--loss)}
@media(max-width:1100px){.tv-connection-head{grid-template-columns:1fr auto}.tv-connection-snapshot{grid-column:1/-1;grid-row:2}.tv-editor-section{grid-template-columns:1fr}.tv-reference-layout,.tv-validator-layout{grid-template-columns:1fr}.tv-connection-editor .tv-tp-editor{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-editor-switch{grid-column:span 2}}
@media(max-width:700px){.tv-connection-head{grid-template-columns:1fr;gap:14px}.tv-connection-head-actions{justify-content:flex-start}.tv-connection-snapshot{grid-column:auto;grid-row:auto;grid-template-columns:1fr;border:1px solid var(--line)}.tv-connection-snapshot>div{border-right:0;border-bottom:1px solid var(--line);padding:9px}.tv-connection-snapshot>div:last-child{border-bottom:0}.tv-inline-secret{align-items:flex-start;flex-direction:column}.tv-editor-grid,.tv-route-controls,.tv-connection-editor .tv-tp-editor,.tv-alternative-grid,.tv-recipe-grid,.tv-validation-steps{grid-template-columns:1fr}.tv-editor-span-2,.tv-editor-span-4,.tv-editor-switch{grid-column:auto}.tv-routing-options{grid-template-columns:1fr}.tv-validation-steps>div{border-right:0;border-bottom:1px solid var(--line)}.tv-validation-steps>div:last-child{border-bottom:0}.tv-payload-label{align-items:flex-start;flex-direction:column}.tv-payload-label>div{justify-content:flex-start}.tv-validator-actions{align-items:flex-start;flex-direction:column}.tv-connection-actions .tv-route-state{flex-basis:100%}}
.exec-action{display:block;font:700 10px var(--mono);color:var(--text)}
.exec-action+small{display:block;margin-top:3px;font:700 7px var(--mono);letter-spacing:.1em;color:var(--mut)}
.exec-trade-state{display:block;margin-top:4px;font:700 7px var(--mono);letter-spacing:.08em;color:var(--mut);white-space:nowrap}
.exec-detail{display:grid;gap:4px;min-width:450px;max-width:720px;font-family:var(--mono)}
.exec-detail-line{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:baseline}
.exec-detail-line>span{font-size:7px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--mut-2)}
.exec-detail-line p{margin:0;color:var(--mut);font-size:9px;line-height:1.45;white-space:normal}
.exec-detail-line p b{color:var(--text);font-weight:700}
.exec-detail-line i{font-style:normal;color:var(--line-2)}
.exec-result{padding:5px 7px;border-left:2px solid var(--line-2);background:rgba(255,255,255,.018);color:var(--mut);font:9px/1.45 var(--body);white-space:normal}
.exec-result-failed{border-left-color:var(--loss);background:rgba(244,86,122,.07);color:var(--loss)}
.exec-technical{margin-top:1px}
.exec-technical summary{cursor:pointer;width:max-content;color:var(--mut-2);font:700 7px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.exec-technical summary:hover{color:var(--text)}
.exec-technical code{display:block;margin-top:5px;padding:5px 7px;border:1px solid var(--line-soft);background:var(--ink);color:var(--mut-2);font:8px/1.45 var(--mono);white-space:normal;overflow-wrap:anywhere}

/* Minimized risk-profile tile: one crisp summary row, green when enabled */
.profile-tile{display:none;align-items:center;gap:14px;padding:11px 14px;cursor:pointer;border-radius:0;transition:background .15s ease}
.profile-tile:hover{background:#152140}
.profile-tile b{font:600 13px var(--disp);color:var(--text)}
.profile-tile-dot{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 6px rgba(232,179,82,.5);flex:none}
.profile-tile-dot.live{background:var(--win);box-shadow:0 0 8px rgba(67,199,139,.6);animation:tileDotPulse 2.4s ease-in-out infinite}
.profile-tile-dot.off{background:var(--mut-2);box-shadow:none;animation:none}
@keyframes tileDotPulse{0%,100%{box-shadow:0 0 4px rgba(67,199,139,.35)}50%{box-shadow:0 0 10px rgba(67,199,139,.75)}}
.profile-tile-mode{font:600 8px var(--mono);letter-spacing:.1em;padding:3px 8px;border-radius:0;border:1px solid var(--line-2);color:var(--amber)}
.profile-tile-mode.live{color:var(--win);border-color:rgba(67,199,139,.45);background:rgba(67,199,139,.08)}
.profile-tile-meta{font:400 10px var(--mono);color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-tile-scope{flex:1;min-width:0}
.profile-tile .profile-tile-expand{padding:5px 9px}
.risk-profile.profile-collapsed{padding:0}
.risk-profile.profile-collapsed .profile-tile{display:flex}
.risk-profile.profile-collapsed .profile-head,
.risk-profile.profile-collapsed .profile-scope,
.risk-profile.profile-collapsed .profile-grid{display:none}
.risk-profile.profile-collapsed.profile-live{border-left:3px solid var(--win)}
@media(max-width:760px){.profile-tile{flex-wrap:wrap;gap:8px}.profile-tile-scope{flex-basis:100%}}

/* Risk-source metric text must never truncate */
.account-metric.wrap b{white-space:normal;overflow:visible;text-overflow:clip;font-size:12px;line-height:1.5}

/* Channel leaderboard */
#lb-table .lb-rank{font-size:15px;text-align:center;width:44px}
#lb-table tr.lb-top td{background:color-mix(in srgb,var(--accent) 5%,transparent)}
#lb-table tr.lb-rank-1 td{background:color-mix(in srgb,#e8b352 9%,transparent)}
.lb-code{font:600 8px var(--mono);letter-spacing:.05em;color:var(--mut);border:1px solid var(--line-soft);border-radius:0;padding:2px 6px;margin-left:6px}
#lb-table td b{font:600 12px var(--mono)}

/* Deleted-message evidence list in the integrity panel */
.integrity-cells{grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important}
.deletion-info{padding:9px 12px;border:1px solid var(--line-2);background:#0f1830;margin-bottom:10px;font-size:11px;color:var(--mut)}
.deletion-info b{color:var(--text)}
.deleted-messages-list{display:grid;gap:8px;margin-top:12px}
.deleted-message{border:1px solid var(--line-2);background:#0f1830;padding:10px 12px;border-left:3px solid var(--mut-2)}
.deleted-message.was-signal{border-left-color:var(--loss)}
.deleted-message-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.deleted-message-head small{color:var(--mut-2);font:400 9px var(--mono)}
.deleted-badge{font:600 7px var(--mono);letter-spacing:.09em;padding:3px 7px;border-radius:0;border:1px solid var(--line-2);color:var(--mut)}
.deleted-badge.signal{color:var(--loss);border-color:rgba(244,86,122,.5);background:rgba(244,86,122,.08)}
.deleted-badge.edited{color:var(--amber)}
.deleted-badge.outcome-win{color:var(--win);border-color:rgba(67,199,139,.5);background:rgba(67,199,139,.08)}
.deleted-badge.outcome-loss{color:var(--loss);border-color:rgba(244,86,122,.5);background:rgba(244,86,122,.08)}
.deleted-badge.outcome-be{color:var(--mut);border-color:var(--line-2)}
.ea-token-account{display:block;font:600 10px var(--mono);letter-spacing:.06em;color:var(--accent-2);margin:2px 0}
.deleted-message-text{font:400 11px/1.55 var(--body);color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:130px;overflow:auto}
.deleted-signal-detail{margin-top:7px}
.deleted-signal-detail summary{cursor:pointer;font:600 8px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.deleted-signal-detail div{margin-top:5px;color:var(--mut)}
/* The evidence list itself sits behind a minimized red blade */
.deleted-messages-blade{margin-top:12px;border:1px solid rgba(244,86,122,.35);border-left:3px solid var(--loss);background:rgba(244,86,122,.03)}
.deleted-messages-blade>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px}
.deleted-messages-blade>summary::-webkit-details-marker{display:none}
.deleted-blade-btn{
  flex:none;font:600 9px var(--mono);letter-spacing:.09em;text-transform:uppercase;
  color:var(--loss);border:1px solid rgba(244,86,122,.55);background:rgba(244,86,122,.08);
  padding:7px 12px;white-space:nowrap;transition:background .16s var(--ease),box-shadow .16s var(--ease);
}
.deleted-messages-blade>summary:hover .deleted-blade-btn{background:rgba(244,86,122,.16);box-shadow:0 0 12px rgba(244,86,122,.2)}
.deleted-blade-btn::after{content:" ▾"}
.deleted-messages-blade[open] .deleted-blade-btn::after{content:" ▴"}
.deleted-blade-hint{color:var(--mut);font:400 10.5px var(--body)}
.deleted-messages-blade[open]>summary{border-bottom:1px solid rgba(244,86,122,.3)}
.deleted-messages-blade>.deleted-messages-list{margin:0;padding:12px 14px}

/* Minimized profile tiles must never overflow the card */
.risk-profile{overflow:hidden}
.profile-tile{width:100%;box-sizing:border-box;min-width:0}
.profile-tile b{max-width:200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}
.profile-tile-meta{min-width:0;max-width:230px}
.profile-tile-scope{max-width:none}

/* Trial obfuscation on the leaderboard */
.lb-blurred b{filter:blur(5px);user-select:none;pointer-events:none}
.lb-upsell{padding:12px 14px;border:1px solid rgba(77,141,255,.4);background:linear-gradient(160deg,#1c2946,#121b30);color:var(--text);font-size:11px}
.lb-upsell b{color:var(--accent-2)}

/* Save-confirmation toast: LIVE vs MONITOR ONLY must be unmistakable */
.save-toast{position:fixed;right:22px;bottom:22px;z-index:340;width:min(400px,calc(100vw - 44px));background:var(--ink-2);border:1px solid var(--line-2);box-shadow:var(--shadow-2);padding:14px 16px;animation:toastIn .28s ease}
@keyframes toastIn{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.save-toast-out{transition:opacity .4s ease,transform .4s ease;opacity:0;transform:translateY(10px)}
.save-toast-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.save-toast-head b{font:600 12px var(--disp)}
.save-toast-close{background:none;border:0;color:var(--mut);font-size:16px;cursor:pointer;padding:2px 6px}
.save-toast-close:hover{color:var(--text)}
.save-toast-row{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line-soft)}
.save-toast-row b{font:600 10px var(--mono);letter-spacing:.06em}
.save-toast-row.live b{color:var(--win)}
.save-toast-row.monitor b{color:var(--amber)}
.save-toast-row small{color:var(--mut);font:400 10px/1.5 var(--body)}
.save-toast-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);align-self:center}
.save-toast-dot.live{background:var(--win);box-shadow:0 0 7px rgba(67,199,139,.6)}

/* Account & add-ons redesign */
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:6px 0 10px}
.account-pricing-control{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:4px 0 18px}.account-pricing-control>p{max-width:70ch;margin:0}.billing-cycle-toggle.dark{display:grid;grid-template-columns:1fr 1.25fr;min-width:300px;border:1px solid var(--line-2);background:var(--ink-3)}.billing-cycle-toggle.dark button{min-height:40px;padding:0 12px;border:0;border-right:1px solid var(--line-2);background:transparent;color:var(--mut);font:700 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .18s,color .18s,transform .15s}.billing-cycle-toggle.dark button:last-child{border-right:0}.billing-cycle-toggle.dark button small{display:block;margin-top:2px;font:600 6.5px var(--mono);letter-spacing:.05em}.billing-cycle-toggle.dark button:hover{color:var(--text);background:var(--ink-2)}.billing-cycle-toggle.dark button:active{transform:translateY(1px)}.billing-cycle-toggle.dark button.active,.billing-cycle-toggle.dark button[aria-pressed="true"]{background:var(--accent);color:#fff}.billing-cycle-toggle.dark button:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
.plan-card{position:relative;display:flex;flex-direction:column;padding:26px 24px 22px;background:var(--ink-2);border:1px solid var(--line-2);transition:border-color .18s ease,transform .18s ease}
.plan-card:hover{border-color:var(--accent-dim);transform:translateY(-2px)}
.plan-card.featured{border-color:rgba(77,141,255,.5);background:linear-gradient(170deg,#16233f,#121b30)}
.plan-card.plan-current{border-color:rgba(67,199,139,.55);box-shadow:inset 0 3px 0 var(--win)}
.plan-title span{font:700 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.plan-title h3{margin:10px 0 8px;font:600 20px var(--disp);letter-spacing:-.01em;color:var(--text)}
.plan-title p{margin:0;font-size:11px;line-height:1.6;color:var(--mut);min-height:36px}
.plan-cost{display:flex;align-items:baseline;gap:12px;margin:16px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.plan-cost strong{font:600 34px var(--disp);letter-spacing:-.02em;color:var(--text)}
.plan-cost span{font:600 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;line-height:1.5;color:var(--mut)}
.plan-card ul{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:7px;flex:1}
.plan-card .btn{width:100%;justify-content:center}
.plan-card li{position:relative;padding-left:15px;font:400 11px/1.5 var(--body);color:var(--mut)}
.plan-card li::before{content:"+";position:absolute;left:0;top:0;font:700 11px var(--mono);color:var(--ember)}
.plan-card .btn{width:100%;justify-content:center}
.plan-card.plan-current .btn{color:var(--win);border-color:rgba(67,199,139,.4);background:transparent;cursor:default}
.plan-grid-tvonly{grid-template-columns:1fr;margin-top:14px}
.plan-card-tvonly{display:grid;grid-template-columns:1.05fr 1.25fr minmax(220px,.68fr);gap:clamp(22px,3vw,46px);align-items:center;background:linear-gradient(170deg,#16233f,#121b30);border-color:rgba(77,141,255,.5)}
.plan-card-tvonly .plan-title p{min-height:0}
.plan-card-tvonly ul{margin:0}
.plan-tvonly-buy{display:flex;flex-direction:column;gap:14px}
.plan-card-tvonly .plan-cost{margin:0}
.addon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:6px}
@media(max-width:1250px){.addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.addon-grid article{display:flex;flex-direction:column;gap:10px;padding:20px 18px 16px;background:linear-gradient(180deg,var(--ink-3),var(--ink-2));border:1px solid var(--line-2);border-top:3px solid var(--accent);box-shadow:var(--shadow-1);transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.addon-grid article:hover{transform:translateY(-2px);border-color:var(--accent-dim);box-shadow:var(--shadow-2)}
.addon-ico{width:38px;height:38px;display:grid;place-items:center;font-size:19px;background:rgba(77,141,255,.12);border:1px solid var(--accent-dim)}
.addon-grid span{font:700 12px var(--disp);letter-spacing:.04em;text-transform:uppercase;color:var(--text)}
/* The blanket span rule above must never restyle the price unit: the
   add-on "$ / USD per month" pair mirrors the plan tiles exactly. */
.addon-grid .addon-cost span{font:600 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;line-height:1.5;color:var(--mut)}
.addon-grid .addon-cost strong{font:600 34px var(--disp);letter-spacing:-.02em;color:var(--text,#e9eef7)}
.addon-grid b{font:700 18px var(--disp);color:var(--accent-2)}
.addon-grid p{margin:0;font:400 10.5px/1.55 var(--body);color:var(--mut);flex:1}
.addon-grid article.addon-active{border-top-color:var(--win)}
.addon-grid article.addon-active .addon-ico{background:rgba(67,199,139,.12);border-color:rgba(67,199,139,.5)}
.lb-upsell{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap}
.lb-subscribe{flex:none}
@media(max-width:1000px){.plan-card-tvonly{grid-template-columns:1fr}.plan-tvonly-buy{flex-direction:row;align-items:center;justify-content:space-between}.plan-card-tvonly .plan-cost{min-width:210px}}
@media(max-width:900px){.plan-grid,.addon-grid{grid-template-columns:1fr}.account-pricing-control{align-items:stretch;flex-direction:column}.billing-cycle-toggle.dark{min-width:0;width:100%}}
@media(max-width:620px){.plan-tvonly-buy{align-items:stretch;flex-direction:column}.plan-card-tvonly .plan-cost{min-width:0}}

/* Plan & add-on buttons: gradient, depth and a sheen sweep instead of flat */
.plan-card .btn:not(:disabled), .addon-grid .btn{
  position:relative;overflow:hidden;border:1px solid transparent;border-radius:0;
  background:
    linear-gradient(165deg,#2f5eb1 0%,#274d94 55%,#1e3a70 100%) padding-box,
    linear-gradient(135deg,rgba(120,170,255,.8),rgba(77,141,255,.25) 50%,rgba(120,170,255,.55)) border-box;
  color:#eaf1ff;font-weight:600;letter-spacing:.04em;
  box-shadow:0 2px 8px rgba(4,8,18,.5),inset 0 1px 0 rgba(255,255,255,.14);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.plan-card .btn:not(:disabled)::after, .addon-grid .btn::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 48%,transparent 64%);
  transform:translateX(-130%);transition:transform .55s ease;
}
.plan-card .btn:not(:disabled):hover, .addon-grid .btn:hover{
  transform:translateY(-1px);filter:brightness(1.08);
  box-shadow:0 5px 16px rgba(23,58,120,.55),0 0 0 1px rgba(120,170,255,.35),inset 0 1px 0 rgba(255,255,255,.18);
}
.plan-card .btn:not(:disabled):hover::after, .addon-grid .btn:hover::after{transform:translateX(130%)}
.plan-card .btn:not(:disabled):active, .addon-grid .btn:active{transform:translateY(0)}
.addon-grid .btn{background:
    linear-gradient(165deg,#1d2b4c 0%,#16223d 60%,#111a30 100%) padding-box,
    linear-gradient(135deg,rgba(77,141,255,.6),rgba(77,141,255,.12) 50%,rgba(77,141,255,.4)) border-box;
  color:#a9c6ff}
.lb-subscribe{border-radius:0}

/* Admin users table rework */
.admin-flag{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:600 9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.admin-flag input{accent-color:var(--win)}
.admin-flag input:checked + span{color:var(--win)}
.admin-status{display:inline-block;margin-left:8px;font:600 8px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:0;border:1px solid var(--line-2)}
.admin-status.win{color:var(--win);border-color:rgba(67,199,139,.45)}
.admin-status.amber{color:var(--amber);border-color:rgba(232,179,82,.45)}
.admin-status.loss{color:var(--loss);border-color:rgba(244,86,122,.45)}
.admin-status.mut{color:var(--mut)}
.admin-cancelled{display:block;margin-top:6px;font:400 9px var(--mono);color:var(--mut);cursor:pointer}
.admin-cancelled input{accent-color:var(--loss)}
.admin-addons label{display:inline-flex;align-items:center;gap:5px;font:600 8px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-right:8px}
.admin-addons input{width:56px;padding:4px 6px}
.admin-addons small{display:block;margin-top:5px;color:var(--mut-2);font:400 9px var(--body)}

/* Per-strategy risk management blade: symmetric bordered cells, the same
   square switches as the audit risk settings. */
.strategy-risk-settings{margin:16px 0 8px;border:1px solid var(--line);border-left:3px solid var(--accent-dim);background:var(--ink-2)}
.strategy-risk-settings>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px}
.strategy-risk-settings>summary::-webkit-details-marker{display:none}
.strategy-risk-settings>summary small{color:var(--mut);font:400 10px var(--body)}
.strategy-risk-settings[open]{border-left-color:var(--accent)}
/* The backtest block carries the same machined left rail as Risk management. */
.sim-params.strategy-backtest{border-left:3px solid var(--accent-dim)}
.sim-params.strategy-backtest[open]{border-left-color:var(--accent)}
.strategy-risk-settings[open]>summary{border-bottom:1px solid var(--line)}
.strategy-risk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}
.strategy-risk-grid>label,.strategy-risk-check{
  display:flex;flex-direction:column;justify-content:space-between;gap:8px;margin:0;
  min-height:78px;padding:11px 12px;border:1px solid var(--line);background:var(--ink);
  font:600 8.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);
}
.strategy-risk-grid input,.strategy-risk-grid select{width:100%;padding:8px 10px;font-size:12px}
.strategy-risk-check{justify-content:center;background:var(--ink-2)}
.strategy-risk-check .switch-label{font-size:9.5px}
.strategy-risk-grid .setting-inactive{opacity:.45}
.strategy-risk-note{display:flex;align-items:center;min-height:78px;padding:11px 14px;border:1px dashed var(--line);color:var(--mut-2);font:400 10px/1.55 var(--body);text-transform:none;letter-spacing:0}
.strategy-risk-subhead{margin:2px 16px 0;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--amber);background:rgba(232,179,82,.04);color:var(--mut);font:400 10.5px/1.55 var(--body)}
.strategy-risk-subhead+.strategy-risk-grid{padding-top:12px}
@media(max-width:900px){.strategy-risk-grid{grid-template-columns:1fr 1fr}}

/* Simulation-parameter chips: the engine settings behind the canonical record */
.sim-params{margin:14px 0 4px;border:1px solid var(--line);background:var(--ink-2)}
.sim-params>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px}
.sim-params>summary::-webkit-details-marker{display:none}
.sim-params>summary small{color:var(--mut);font:400 10px var(--body)}
.sim-params[open]>summary{border-bottom:1px solid var(--line)}
.sim-params-grid{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px}
.sim-param-chip{display:inline-flex;align-items:baseline;gap:7px;padding:5px 9px;border:1px solid var(--line-soft);background:var(--ink);font:500 9px var(--mono)}
.sim-param-chip em{font-style:normal;color:var(--mut-2);letter-spacing:.04em;text-transform:uppercase}
.sim-param-chip b{color:var(--accent-2)}

/* Strategy live-gate strip: what the strategy is waiting for right now */
.dossier-gate{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;border:1px solid var(--line-2);background:#0f1830;border-left:3px solid var(--mut-2)}
.dossier-gate.setup{border-left-color:var(--amber)}
.dossier-gate.signal{border-left-color:var(--win);background:color-mix(in srgb,var(--win) 5%,#0f1830)}
.gate-state{font:600 9px var(--mono);letter-spacing:.1em;color:var(--mut);flex:none}
.dossier-gate.setup .gate-state{color:var(--amber)}
.dossier-gate.signal .gate-state{color:var(--win)}
.gate-reason{font:400 11px/1.5 var(--body);color:var(--text);flex:1;min-width:220px}
.gate-readouts{font:400 9px var(--mono);color:var(--mut)}
.gate-time{font:400 8px var(--mono);color:var(--mut-2);flex:none}

/* Gate sequence: confirmed steps, a pulsing current step, pending steps */
.dossier-gate-seq{padding:12px 14px;margin-bottom:12px;border:1px solid var(--line-2);background:#0f1830;border-left:3px solid var(--mut-2)}
.dossier-gate-seq.setup{border-left-color:var(--amber)}
.dossier-gate-seq.signal{border-left-color:var(--win);background:color-mix(in srgb,var(--win) 5%,#0f1830)}
.gate-steps{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-bottom:9px}
.gate-step{display:flex;align-items:center;gap:6px;padding:4px 2px}
.gate-dot{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font:700 9px var(--mono);border:1.5px solid var(--line-2);color:var(--mut-2);background:var(--ink);flex:none;transition:all .3s ease}
.gate-step.done .gate-dot{border-color:var(--win);background:color-mix(in srgb,var(--win) 22%,var(--ink));color:var(--win)}
.gate-step.current .gate-dot{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 15%,var(--ink));animation:gatePulse 1.6s ease-in-out infinite}
.dossier-gate-seq.signal .gate-step.current .gate-dot,.dossier-gate-seq.signal .gate-step.done:last-child .gate-dot{border-color:var(--win)}
@keyframes gatePulse{0%,100%{box-shadow:0 0 0 0 rgba(232,179,82,.45)}50%{box-shadow:0 0 0 6px rgba(232,179,82,0)}}
.gate-label{font:600 8px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut-2)}
.gate-step.done .gate-label{color:var(--win)}
.gate-step.current .gate-label{color:var(--amber)}
.dossier-gate-seq.signal .gate-label{color:var(--win)}
.gate-detail{font:400 8px var(--mono);color:var(--mut);margin-left:2px}
.gate-link{flex:1 0 14px;height:1.5px;min-width:10px;background:var(--line-2);margin:0 4px}
.gate-step.done + .gate-link{background:color-mix(in srgb,var(--win) 55%,var(--line-2))}
.gate-foot{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.gate-foot .gate-reason{font:400 11px/1.5 var(--body);color:var(--text)}
.gate-foot .gate-time{font:400 8px var(--mono);color:var(--mut-2)}

/* Execution-mode segmented switch on strategy cards */
.mode-switch{display:inline-flex;border:1px solid var(--line-2);border-radius:0;overflow:hidden}
.mode-option{background:var(--ink);border:0;color:var(--mut);font:600 9px var(--mono);letter-spacing:.07em;text-transform:uppercase;padding:7px 13px;cursor:pointer;transition:background .15s ease,color .15s ease}
.mode-option + .mode-option{border-left:1px solid var(--line-2)}
.mode-option:hover{color:var(--text)}
.mode-option.on{background:color-mix(in srgb,var(--accent) 18%,var(--ink));color:var(--accent-2)}
.mode-option.on[data-mode="live"]{background:color-mix(in srgb,var(--loss) 16%,var(--ink));color:#ff9cb5}
.mode-option.on[data-mode="demo"]{background:color-mix(in srgb,var(--amber) 15%,var(--ink));color:var(--amber)}
.mode-caption{margin:8px 0 0;font:400 10px/1.5 var(--body);color:var(--mut)}

/* Per-account execution scope on strategy cards */
.strategy-accounts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px solid var(--line-soft);background:#0f1830}
.strategy-accounts-label{font:600 8px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);flex:none}
.acct-choice{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line-soft);border-radius:0;background:var(--ink-2);cursor:pointer;font:400 11px var(--body);color:var(--text);transition:border-color .15s ease}
.acct-choice:hover{border-color:var(--accent-dim)}
.acct-choice:has(input:checked){border-color:color-mix(in srgb,var(--win) 50%,var(--line-soft));background:color-mix(in srgb,var(--win) 7%,var(--ink-2))}
.acct-choice input{accent-color:var(--win)}
.strategy-accounts small{flex-basis:100%;color:var(--mut-2);font:400 9px/1.5 var(--body)}

/* Signed-in identity card */
.signed-in-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.signed-in-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(160deg,#2f5eb1,#1e3a70);color:#eaf1ff;font:700 20px var(--disp);box-shadow:0 0 0 2px var(--line-2),0 3px 10px rgba(4,8,18,.5);flex:none}
.signed-in-avatar img{width:100%;height:100%;object-fit:cover}
.signed-in-details{display:grid;gap:3px;min-width:0;flex:1}
.signed-in-details b{font:600 15px var(--disp)}
.signed-in-details span{font:400 11px var(--mono);color:var(--mut)}
.signed-in-details small{font:400 9px var(--mono);color:var(--mut-2)}
.signed-in-badges{display:flex;gap:8px}
.signedin-badge{font:700 8px var(--mono);letter-spacing:.1em;padding:5px 11px;border-radius:0;border:1px solid var(--line-2)}
.signedin-badge.owner{color:#0d1424;background:linear-gradient(135deg,#e8b352,#d99a2b);border-color:transparent;box-shadow:0 2px 8px rgba(232,179,82,.35)}
.signedin-badge.plan{color:var(--accent-2);border-color:rgba(77,141,255,.4)}

/* Leaderboard awesomeness */
.lb-row{animation:lbIn .4s ease both;animation-delay:var(--lb-delay,0ms);transition:transform .15s ease}
@keyframes lbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#lb-table tr.lb-row:hover td{background:#152140}
#lb-table tr.lb-rank-1 td{background:linear-gradient(90deg,rgba(232,179,82,.16),rgba(232,179,82,.03));border-bottom:1px solid rgba(232,179,82,.3)}
#lb-table tr.lb-rank-2 td{background:linear-gradient(90deg,rgba(200,210,225,.12),rgba(200,210,225,.02))}
#lb-table tr.lb-rank-3 td{background:linear-gradient(90deg,rgba(205,127,50,.13),rgba(205,127,50,.02))}
#lb-table tr.lb-rank-1 .lb-rank{animation:goldGlow 2.6s ease-in-out infinite}
@keyframes goldGlow{0%,100%{text-shadow:0 0 4px rgba(232,179,82,.35)}50%{text-shadow:0 0 14px rgba(232,179,82,.85)}}
.lb-wl .w{color:var(--win);font-style:normal;font-weight:600}
.lb-wl .l{color:var(--loss);font-style:normal;font-weight:600}
.lb-wr{display:inline-flex;flex-direction:column;gap:3px;min-width:44px}
.lb-wr b{font:600 12px var(--mono)}
.lb-wr i{display:block;height:2px;background:var(--line-2);position:relative;border-radius:0;font-style:normal}
.lb-wr.hot b{color:var(--win)}.lb-wr.hot i{background:linear-gradient(90deg,var(--win),color-mix(in srgb,var(--win) 30%,transparent))}
.lb-wr.warm b{color:var(--amber)}.lb-wr.warm i{background:linear-gradient(90deg,var(--amber),color-mix(in srgb,var(--amber) 30%,transparent))}
.lb-wr.cold b{color:var(--loss)}.lb-wr.cold i{background:linear-gradient(90deg,var(--loss),color-mix(in srgb,var(--loss) 30%,transparent))}
.lb-pnl-cell{position:relative;min-width:130px}
.lb-pnl-bar{position:absolute;left:4px;top:15%;height:70%;border-radius:0;opacity:.22;transition:width .6s ease}
.lb-pnl-bar.pos{background:linear-gradient(90deg,var(--win),transparent)}
.lb-pnl-bar.neg{background:linear-gradient(90deg,var(--loss),transparent)}
.lb-pnl-cell b{position:relative;font:600 12px var(--mono)}

/* Channel analytics color pass */
.chan-row.chan-pos td:first-child{box-shadow:inset 3px 0 0 var(--win)}
.chan-row.chan-neg td:first-child{box-shadow:inset 3px 0 0 var(--loss)}
.chan-net b{font:600 12px var(--mono)}
.chan-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--win);margin-left:6px;animation:tileDotPulse 2s ease-in-out infinite;vertical-align:middle}

/* Telegram handle + join link on leaderboard and channel analytics */
.tg-handle{display:flex;align-items:center;gap:8px;margin-top:4px}
.tg-handle > span{font:400 9px var(--mono);color:var(--mut)}
.tg-join{display:inline-flex;align-items:center;gap:5px;font:700 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--accent-2);padding:4px 10px;border-radius:0;border:1px solid rgba(77,141,255,.55);border-left-width:3px;background:transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}
.tg-join:hover{background:var(--accent);border-color:var(--accent);color:#0d1424}

/* VIP group label — shared by leaderboard and channel analytics */
.vip-badge{display:inline-block;margin-left:7px;font:700 7px var(--mono);letter-spacing:.12em;color:#0d1424;background:linear-gradient(135deg,#e8b352,#d99a2b);padding:3px 8px;vertical-align:middle;box-shadow:0 1px 5px rgba(232,179,82,.35)}

/* Channel analytics adopts the leaderboard row language */
#chanstats tr.chan-row:hover td{background:#152140}
#chanstats .chan-net.lb-pnl-cell{position:relative;min-width:110px}

/* Rows re-rendered by background polling must not replay their entrance */
.lb-row.lb-static{animation:none}

/* Leaderboard evidence-integrity chips and flagged-channel callouts */
.lb-integrity{display:inline-block;font:700 7.5px var(--mono);letter-spacing:.1em;padding:3px 7px;white-space:nowrap}
.lb-integrity.clean{color:#2fd08c;border:1px solid rgba(47,208,140,.45)}
.lb-integrity.flagged{color:#f4567a;border:1px solid rgba(244,86,122,.6);background:rgba(244,86,122,.08)}
.lb-integrity.review{color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 58%,transparent);background:color-mix(in srgb,var(--amber) 7%,transparent)}
.lb-integrity.info{color:var(--accent);border:1px solid rgba(77,141,255,.48);background:rgba(77,141,255,.06)}
.lb-flags{margin-top:14px;padding:14px 16px;border:1px solid rgba(244,86,122,.4);border-left:3px solid #f4567a;background:rgba(244,86,122,.05)}
.lb-flags h4{margin:0 0 4px;font:700 11px var(--mono);letter-spacing:.08em;color:#f4567a}
.lb-flag-row{display:flex;gap:14px;align-items:baseline;padding:7px 0;border-top:1px dashed rgba(244,86,122,.25)}
.lb-flag-row b{min-width:180px}
.lb-flag-row span{font-size:11px;color:var(--muted,#9aa4b5)}

.lb-flag-record{font:600 11px var(--mono,monospace);white-space:nowrap;color:var(--muted,#9aa4b5)}
.lb-flag-row{flex-wrap:wrap}

/* Audit risk settings: minimized blade with an accent edge, mono kick title
   and an explicit expand chip (plain span; NOT .btn so the sheen overlay
   cannot swallow its ::after label). */
.audit-risk-setup{
  border:1px solid var(--line-2);border-left:3px solid var(--accent);
  background:linear-gradient(180deg,var(--ink-3),var(--ink-2));margin-top:12px;
  transition:border-color .2s var(--ease);
}
.audit-risk-setup:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line-2));border-left-color:var(--accent)}
/* Scoped under .audit-risk-setup: the generic ".audit-risk-setup summary"
   base rule is more specific than a lone class and was silently overriding
   this padding with "12px 0" - the squashed-left header. */
.audit-risk-setup .audit-risk-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px 19px 26px;cursor:pointer;list-style:none}
.audit-risk-summary::-webkit-details-marker{display:none}
.audit-risk-title{display:flex;flex-direction:column;gap:9px}
.audit-risk-title b{font:600 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text)}
.audit-risk-title small{color:var(--mut);font:500 10px/1.5 var(--mono);letter-spacing:.03em}
/* Shared expander chip: every expand/minimize control on the desk wears this */
.expander,.audit-risk-expand,.profile-tile-expand{
  flex:none;display:inline-block;font:600 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent-2);border:1px solid var(--accent-dim);background:rgba(77,141,255,.07);
  padding:7px 11px;white-space:nowrap;cursor:pointer;border-radius:0;
  transition:background .16s var(--ease),box-shadow .16s var(--ease);
}
.expander:hover,.audit-risk-summary:hover .audit-risk-expand,.profile-tile:hover .profile-tile-expand{
  background:rgba(77,141,255,.14);box-shadow:0 0 0 1px rgba(77,141,255,.25);
}
.expander[hidden]{display:none}
.audit-risk-expand::after{content:"Expand risk settings ▾"}
details[open] .audit-risk-expand::after{content:"Minimize risk settings ▴"}
.audit-risk-setup[open]{background:var(--ink)}
.audit-risk-setup[open] .audit-risk-summary{border-bottom:1px solid var(--line-2)}
/* Switch fields: identical bordered boxes, stacked in the last grid column */
.audit-risk-setup .field.check{
  grid-column:4;flex-direction:row;justify-content:flex-start;align-items:center;min-height:46px;align-self:end;
  border:1px solid var(--line);background:var(--ink-2);padding:11px 14px;
}
.audit-risk-setup .field.check .switch{margin:0}
@media (max-width:1100px){.audit-risk-setup .field.check{grid-column:2}}
@media (max-width:700px){.audit-risk-setup .field.check{grid-column:auto}}

/* Profile action buttons: make add/delete unmistakable */
#btn-profile-add{font-weight:600}
.profile-head .btn.danger{margin-left:auto}

/* Leaderboard: breathing room and a hard split between good and flagged */
.lb-table th{padding:12px 16px;white-space:nowrap}
.lb-table td{padding:14px 16px;vertical-align:middle}
.lb-table td:nth-child(2){min-width:240px}
.lb-board-card{border-left:3px solid var(--win,#43c78b)}
.lb-flag-card{border-left:3px solid #f4567a}
.lb-flag-card .card-head h2{color:#f4567a}
.pill.danger{color:#f4567a;border-color:rgba(244,86,122,.55)}
.lb-flagged-row td{background:rgba(244,86,122,.04)}
.lb-flag-reasons{font-size:11.5px;color:var(--muted);line-height:1.6}
.lb-integrity{font-size:8px;padding:4px 8px}

/* Channel monitor: a bounded feed that never traps page scrolling for long */
.channel-feed{max-height:380px;overflow-y:auto;overscroll-behavior:contain}

/* Leaderboard data-window banner */
.lb-window-banner{display:flex;align-items:baseline;gap:12px;margin:10px 0 14px;padding:11px 14px;border:1px solid var(--line-2);border-left:3px solid var(--accent,#4d8dff);background:rgba(77,141,255,.06)}
.lb-window-banner b{font-size:12px;white-space:nowrap;color:var(--accent,#4d8dff)}
.lb-window-banner span{font-size:11.5px;color:var(--muted);line-height:1.6}

.lb-range{display:flex;gap:6px;margin-left:auto;margin-right:12px;align-items:center}
.legend .lb-range{display:inline-flex;margin:0 6px 0 0;vertical-align:middle}
.strategy-ledger-filters .lb-range{margin:0 6px 0 0;align-self:flex-end;padding-bottom:2px}
/* Actions sit right-aligned on their own full-width row directly above the
   Risk management blade; the blades themselves span the card edge-to-edge. */
.strategy-accounts .published-strategy-actions{margin-top:12px;padding-top:12px;border-top:1px solid var(--line,rgba(255,255,255,.08));width:100%;justify-content:flex-end}
.strategy-accounts .published-strategy-actions .muted{margin-right:auto;align-self:center}
.strategy-accounts .strategy-risk-settings,.strategy-accounts .sim-params{flex-basis:100%;width:100%;min-width:0}
.lb-range .btn{padding:5px 12px;font-size:10px}
.lb-range .lb-refresh{margin-left:10px}
/* Segmented window control: joined day buttons, inset accent underline on the
   active window (same voice as the rail's active blade). */
.seg{display:inline-flex;border:1px solid var(--line-2)}
.seg .btn,.seg .btn.ghost{
  border:0;border-right:1px solid var(--line-2);border-radius:0;
  background:none;color:var(--mut);padding:7px 14px;
  box-shadow:none;transform:none;filter:none;
}
.seg .btn:last-child{border-right:0}
.seg .btn::after{display:none}
.seg .btn:hover{color:var(--text);background:rgba(77,141,255,.05);transform:none;box-shadow:none;filter:none}
.seg .btn.active{background:rgba(77,141,255,.14);color:var(--accent-2);box-shadow:inset 0 -2px 0 var(--accent)}
.lb-refresh.is-refreshing{opacity:.55;pointer-events:none}

/* Leaderboard drilldown */
.lb-clickable{cursor:pointer}
.lb-row.lb-open td{background:#152140}
.lb-detail-row>td{padding:14px 16px;background:rgba(77,141,255,.03)}
.lb-detail-note{font:500 10px var(--mono,monospace);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.lb-detail-table td,.lb-detail-table th{padding:8px 10px;font-size:11.5px}

/* Leaderboard drilldown: deleted signals the provider tried to erase */
.lb-deleted-trade td{background:rgba(244,86,122,.08)}
.lb-deleted-trade td:first-child{border-left:2px solid #f4567a}
.lb-deleted-tag{display:inline-block;font:700 7px var(--mono,monospace);letter-spacing:.1em;color:#f4567a;border:1px solid rgba(244,86,122,.6);padding:2px 5px;margin-left:6px}
.lb-deleted-tag.review{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 58%,transparent)}
.lb-deleted-tag.info{color:var(--accent);border-color:rgba(77,141,255,.48)}
.lb-deleted-evidence td{padding:0 14px 14px!important;background:rgba(244,86,122,.035)!important}
.lb-deleted-evidence div{border-left:2px solid var(--amber);padding:10px 12px;background:rgba(9,18,35,.42)}
.lb-deleted-evidence b{display:block;font:700 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-bottom:5px}
.lb-deleted-evidence small{display:block;color:var(--muted);margin-bottom:7px;line-height:1.45}
.lb-deleted-evidence pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:500 10px/1.55 var(--mono);color:var(--text)}

/* Full-screen boot state: shown on refresh while a stored session restores,
   so the login form never flashes for signed-in users. */
.session-boot{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--bg,#0d1424);color:var(--muted,#9aa4b5);font-size:14px}
.session-boot[hidden]{display:none}

/* ============ Infrastructure Monitoring blade ============ */
.infra-status{display:flex;align-items:center;gap:14px;padding:16px 20px}
.infra-status-dot{width:14px;height:14px;border-radius:50%;background:#9aa4b5;flex:0 0 auto}
.infra-status-dot.ok{background:#43c78b;box-shadow:0 0 10px rgba(67,199,139,.5)}
.infra-status-dot.warn{background:#e8b34b;box-shadow:0 0 10px rgba(232,179,75,.5)}
.infra-status-dot.crit{background:#f4567a;box-shadow:0 0 10px rgba(244,86,122,.5)}
.infra-status b{display:block;font-size:15px}
.infra-status small{color:var(--muted,#9aa4b5);font-size:11px}
.infra-auto{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted,#9aa4b5)}
.infra-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:14px 0}
.infra-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
.infra-metric{padding:16px 18px}
.infra-metric-label{font:600 10px var(--mono,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#9aa4b5)}
.infra-metric b{display:block;font-size:28px;margin:6px 0 10px;font-variant-numeric:tabular-nums}
.infra-metric small{color:var(--muted,#9aa4b5);font-size:11px}
.infra-bar{height:6px;border-radius:0;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:8px}
.infra-bar i{display:block;height:100%;width:0;border-radius:0;transition:width .4s ease,background .3s}
.infra-bar i.ok{background:#43c78b}.infra-bar i.warn{background:#e8b34b}.infra-bar i.crit{background:#f4567a}
.infra-kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2,#243049);border-radius:0;overflow:hidden}
.infra-kv>div{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--panel,#111a2e)}
.infra-kv span{font:600 9px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#9aa4b5)}
.infra-kv b{font-size:15px;font-variant-numeric:tabular-nums}
.infra-alerts{border-left:3px solid #f4567a}
.infra-alert{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-top:1px dashed rgba(244,86,122,.2)}
.infra-alert:first-child{border-top:0}
.infra-alert-area{font:700 9px var(--mono,monospace);letter-spacing:.08em;min-width:110px;text-transform:uppercase}
.infra-alert.crit .infra-alert-area{color:#f4567a}.infra-alert.warn .infra-alert-area{color:#e8b34b}
.infra-spark{display:flex;align-items:center;gap:14px;padding:10px 0;border-top:1px solid var(--line-2,#243049)}
.infra-spark:first-child{border-top:0}
.infra-spark span{font:600 9px var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#9aa4b5);min-width:120px}
.infra-spark svg{flex:1;height:48px}
@media (max-width:1100px){.infra-grid{grid-template-columns:1fr 1fr 1fr}}@media (max-width:900px){.infra-grid{grid-template-columns:1fr 1fr}.infra-grid-2{grid-template-columns:1fr}.infra-kv{grid-template-columns:1fr}}

/* Post-signup confirmation banner: unmissable, unlike the 9px login note */
.auth-confirm-banner{display:grid;gap:6px;margin:0 0 20px;padding:18px 20px;border:1px solid #2f9e6a;border-left:5px solid #2f9e6a;border-radius:0;background:rgba(57,217,138,.08)}
.auth-confirm-icon{font-size:24px;line-height:1;color:#39d98a}
.auth-confirm-banner b{font:700 16px/1.35 var(--body,"Barlow",sans-serif);color:var(--site-ink,#252a2e)}
.auth-confirm-banner p{margin:0;font-size:13px;line-height:1.65;color:var(--site-ink,#252a2e)}
.auth-confirm-banner p strong{color:#187448;word-break:break-all}
.auth-confirm-banner small{font-size:11px;color:var(--site-muted,#5c666d)}

.auth-confirm-spam{margin-top:4px;padding:8px 10px;border-radius:0;background:rgba(232,179,82,.16);border:1px solid rgba(232,179,82,.5);font-size:12px;line-height:1.6;color:var(--site-ink,#252a2e)}
.auth-confirm-spam b{font-weight:800}

/* Subscription statement banner in the plan card */
.plan-current-banner{display:flex;gap:14px;align-items:flex-start;margin:0 0 16px;padding:16px 18px;border:1px solid var(--win,#43c78b);border-left:5px solid var(--win,#43c78b);border-radius:0;background:rgba(67,199,139,.08)}
.plan-current-banner.trial{border-color:var(--amber,#e8b352);border-left-color:var(--amber,#e8b352);background:rgba(232,179,82,.08)}
.plan-current-icon{font-size:18px;line-height:1.2;color:var(--win,#43c78b)}
.plan-current-banner.trial .plan-current-icon{color:var(--amber,#e8b352)}
.plan-current-banner b{font:700 15px/1.4 var(--body,"Barlow",sans-serif);color:var(--text,#e9eef7)}
.plan-current-banner p{margin:2px 0 0;font-size:12px;line-height:1.6;color:var(--mut,#8fa0bd)}

/* Owned add-on indicators */
.addon-grid article{position:relative}
.addon-owned{position:absolute;top:10px;right:10px;font:700 9px/1 var(--mono,monospace);letter-spacing:.1em;color:var(--ink,#0d1424);background:var(--win,#43c78b);padding:5px 8px;border-radius:0}
.addon-grid article.addon-active{border-color:var(--win,#43c78b);box-shadow:0 0 0 1px rgba(67,199,139,.35)}

.plan-card.plan-pending{border-color:var(--amber,#e8b352)}
.plan-pending-flag{position:absolute;top:-10px;left:14px;font:700 9px/1 var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink,#0d1424);background:var(--amber,#e8b352);padding:5px 9px;border-radius:0}

.addon-remove-row{min-height:15px;margin:2px 0 4px;display:flex;gap:14px}
.addon-remove{border:0;background:none;color:var(--loss,#f4567a);font:600 10px var(--mono,monospace);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:0;border-bottom:1px solid transparent}
.addon-remove:hover{border-color:currentColor}

.addon-owned.addon-owned-pending{background:var(--amber,#e8b352)}

.addon-remove.keep{color:var(--win,#43c78b)}
.btn.ghost.cancel-downgrade{color:var(--amber,#e8b352);border-color:color-mix(in srgb,var(--amber,#e8b352) 50%,transparent)}
.btn.ghost.cancel-downgrade:hover{border-color:var(--amber,#e8b352);background:rgba(232,179,82,.08)}
.addon-remove-row .btn.ghost.cancel-downgrade{padding:5px 10px;font-size:10px}

.lb-now{align-self:center;margin-left:8px;font:600 9px var(--mono,monospace);letter-spacing:.08em;color:var(--mut,#8fa0bd);white-space:nowrap}
.strategy-bt-locked{padding:14px 16px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line)}
.strategy-bt-locked p{margin:0;font-size:12px;color:var(--mut);max-width:62ch}
.strategy-bt-locked b{color:var(--text,#e9eef7)}
/* Live P&L owns terminal connectivity. This status intentionally excludes
   account numbers and balances: it answers only whether the EA bridge is up. */
.ea-connection-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:16px 18px;border-color:var(--line-2);background:linear-gradient(180deg,var(--ink-3),var(--ink-2))}
.ea-connection-main{display:flex;align-items:center;gap:13px;min-width:0}
.ea-connection-main>div{min-width:0}
.ea-connection-dot{width:11px;height:11px;flex:0 0 11px;border:1px solid var(--mut);background:transparent;box-shadow:0 0 0 5px rgba(143,160,189,.08)}
.ea-connection-kicker{display:block;color:var(--accent);font:700 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}
.ea-connection-main b{display:block;font:600 16px var(--disp);color:var(--text)}
.ea-connection-main small{display:block;color:var(--mut);font-size:10px;line-height:1.45;margin-top:3px}
.ea-connection-meta{display:grid;grid-template-columns:repeat(3,minmax(92px,auto)) auto;align-items:center;gap:0;flex:0 0 auto}
.ea-connection-meta>span:not(.pill){display:block;padding:2px 18px;border-left:1px solid var(--line)}
.ea-connection-meta small{display:block;color:var(--mut);font-size:8px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.ea-connection-meta b{display:block;color:var(--text);font:600 12px var(--mono);font-variant-numeric:tabular-nums}
.ea-connection-meta>.pill{margin-left:18px;white-space:nowrap}
.ea-connection-card.is-live .ea-connection-dot{border-color:var(--win);background:var(--win);box-shadow:0 0 0 5px rgba(37,205,142,.1),0 0 18px rgba(37,205,142,.28)}
.ea-connection-card.is-live .ea-connection-main b{color:var(--win)}
.ea-connection-card.is-stale .ea-connection-dot{border-color:var(--amber);background:var(--amber);box-shadow:0 0 0 5px rgba(232,179,75,.09)}

/* ---- Backtest report ---- */
.bt-result{display:block;width:100%;padding:0 16px 16px}
.bt-report{display:flex;flex-direction:column;gap:14px;width:100%}
.bt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:linear-gradient(180deg,var(--ink-3,#1b2740),var(--ink-2,#121b2e));border:1px solid var(--line)}
.bt-cell{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:transparent;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.bt-cell span{font:600 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.bt-cell b{font:600 13px var(--mono)}
.bt-curve{border:1px solid var(--line);background:rgba(13,20,36,.45);padding:10px 12px 6px}
.bt-curve-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:12px;flex-wrap:wrap}
.bt-curve-head span{font:600 8px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.bt-curve-head b{font:600 10px var(--mono);color:var(--text)}
.bt-equity{display:block;width:100%;height:190px}
.bt-log{margin:0;border:1px solid var(--line);background:var(--ink-2)}
.bt-log summary{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;cursor:pointer;list-style:none;text-align:center}
.bt-log summary .expander{flex:none;padding:11px 28px;font-size:11px}
.bt-log summary small{white-space:normal}
.bt-log summary::-webkit-details-marker{display:none}
.bt-log summary small{font:500 9px var(--mono);letter-spacing:.05em;color:var(--mut)}
.bt-log .table-wrap{padding:0 16px 14px;max-height:420px;overflow:auto}
.bt-dirs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bt-dir{border:1px solid var(--line);padding:10px 12px;background:rgba(13,20,36,.45)}
.bt-dir-nums{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.bt-dir-nums em{font:600 11px var(--mono);font-style:normal;color:var(--text,#e9eef7)}
.bt-log summary{padding:12px 0}
@media(max-width:900px){.bt-dirs{grid-template-columns:1fr}}

.src-chip{display:inline-block;font:700 8px var(--mono);letter-spacing:.12em;padding:2px 6px;margin-left:6px;border:1px solid var(--line-2,#2c3a58);color:var(--mut);vertical-align:1px;border-radius:0;line-height:1}
.src-chip.live{color:var(--accent);border-color:rgba(77,141,255,.5)}
.src-chip.sim{color:var(--mut)}
.chan-combined{margin:0 0 14px;padding:14px 18px;background:linear-gradient(180deg,var(--ink-3,#1b2740),var(--ink-2,#121b2e));border:1px solid var(--line-2,#2c3a58);border-left:4px solid var(--accent,#4d8dff);border-radius:0}
.chan-combined.pos{border-left-color:var(--win,#43c78b)}
.chan-combined.neg{border-left-color:var(--loss,#f4567a)}
.chan-combined-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.chan-combined-head span{font:700 11px var(--disp,sans-serif);letter-spacing:.1em;text-transform:uppercase;color:var(--text,#e9eef7)}
.chan-combined-head small{font:500 9px var(--mono,monospace);letter-spacing:.05em;color:var(--mut,#8fa0bd)}
.chan-source-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 14px;background:var(--line-2,#2c3a58);border:1px solid var(--line-2,#2c3a58)}
.chan-source-breakdown>div{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 12px;background:var(--ink,#0c1424)}
.chan-source-breakdown>div:before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--accent)}
.chan-source-breakdown .source-tradingview:before{background:#8dd76b}
.chan-source-breakdown .source-total:before{background:var(--text)}
.chan-source-breakdown span{font:700 8px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.chan-source-breakdown b{font:700 15px var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.chan-source-breakdown small{grid-column:1/-1;color:var(--mut);font:500 8px var(--mono);letter-spacing:.04em}
.chan-source-breakdown .r-pos{color:var(--win)}
.chan-source-breakdown .r-neg{color:var(--loss)}
.chan-combined-grid{display:grid;grid-template-columns:1.3fr repeat(6,minmax(90px,1fr));gap:14px;align-items:start}
.chan-combined-grid>div{display:grid;gap:4px;align-content:start;text-align:left}
.chan-combined-grid span{white-space:nowrap}
.chan-combined-grid b{white-space:nowrap}
.chan-combined-grid span{font:600 8px var(--mono,monospace);letter-spacing:.09em;text-transform:uppercase;color:var(--mut,#8fa0bd)}
.chan-combined-grid b{font:600 15px var(--disp,sans-serif)}
.chan-combined-net b{font-size:22px}
@media(max-width:1100px){.chan-combined-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:760px){.chan-combined-grid{grid-template-columns:repeat(2,1fr)}}

.tracked-source-title{display:flex;align-items:center;gap:10px;min-width:0}
.tracked-source-title h2{margin:0}
.tracked-source-title small{display:block;margin-top:3px;color:var(--mut);font:500 9px/1.35 var(--body)}
#tv-livetrades{min-width:1240px}
#tv-livetrades .tv-position-key{display:block;margin-top:3px;color:var(--mut);font:500 8px var(--mono);letter-spacing:.03em}
#tv-livetrades .tv-trade-net{font-weight:700;font-variant-numeric:tabular-nums}
.live-account-scope{white-space:nowrap;border-color:rgba(87,142,255,.42);color:var(--accent);background:rgba(87,142,255,.08)}
.live-account-scope.is-account{border-color:rgba(141,215,107,.42);color:var(--win);background:rgba(141,215,107,.07)}
.live-account-picker{position:relative;display:inline-grid;grid-template-areas:"picker";width:154px;min-height:30px;margin:0;border:1px solid var(--line-2);background:var(--ink);cursor:pointer}
.live-account-picker>span{grid-area:picker;z-index:1;align-self:center;padding:0 30px 0 10px;overflow:hidden;color:var(--text);font:500 10px var(--mono);letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}
.live-account-picker::after{content:"⌄";position:absolute;z-index:1;right:10px;top:50%;color:var(--mut);font:700 12px var(--mono);transform:translateY(-58%);pointer-events:none}
.live-account-picker select{grid-area:picker;width:100%;height:100%;padding:0;opacity:0;cursor:pointer}
.live-account-picker:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(77,141,255,.18)}
.live-account-id{display:inline-grid;grid-template-columns:6px minmax(0,1fr);gap:8px;align-items:center;max-width:190px;vertical-align:middle}
.live-account-id::before{content:"";width:5px;height:5px;border:1px solid var(--accent);background:rgba(87,142,255,.2);box-shadow:0 0 0 2px rgba(87,142,255,.06)}
.live-account-id>span{display:grid;gap:2px;min-width:0}
.live-account-id b{overflow:hidden;text-overflow:ellipsis;color:var(--text);font:750 9px/1.25 var(--mono);letter-spacing:.015em;white-space:nowrap}
.live-account-id small{overflow:hidden;text-overflow:ellipsis;color:var(--mut);font:550 8px/1.25 var(--mono);letter-spacing:.035em;white-space:nowrap}
.live-account-id.is-monitor::before{border-color:var(--mut-2);background:transparent;box-shadow:none}
.live-account-id.is-monitor b{color:var(--mut)}
.live-account-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.live-account-chips i{display:inline-flex;align-items:center;gap:5px;max-width:140px;overflow:hidden;text-overflow:ellipsis;color:var(--accent);font:700 7px/1.25 var(--mono);font-style:normal;letter-spacing:.04em;white-space:nowrap}
.live-account-chips i::before{content:"";flex:none;width:3px;height:3px;background:currentColor}
#livetrades td:nth-child(2),#tv-livetrades td:nth-child(3),#exec-log-table td:nth-child(3){min-width:128px}
@media(max-width:760px){.chan-source-breakdown{grid-template-columns:1fr}.tracked-source-title small{display:none}}

.lb-tz{align-self:center;margin-left:6px;padding:4px 6px;background:var(--ink-2,#121b2e);border:1px solid var(--line-2,#2c3a58);color:var(--mut,#8fa0bd);font:600 9px var(--mono,monospace);letter-spacing:.04em;cursor:pointer}
.lb-tz:hover{color:var(--text,#e9eef7);border-color:var(--accent-dim,#31548f)}

.monitor-badge{display:inline-block;margin-left:7px;font:700 7px var(--mono);letter-spacing:.12em;color:var(--mut,#8fa0bd);background:var(--ink-3,#1b2740);border:1px solid var(--line-2,#2c3a58);padding:2px 7px;vertical-align:middle}

.chan-combined-countcell{padding-right:6px}
.chan-count-row{display:inline-flex;gap:16px;align-items:baseline}
.chan-count-row i{display:inline-flex;gap:5px;align-items:baseline;font-style:normal;white-space:nowrap}
.chan-count-row b{font:600 15px var(--disp,sans-serif);color:var(--text,#e9eef7)}
.chan-count-row em{font:600 8px var(--mono,monospace);letter-spacing:.09em;color:var(--mut,#8fa0bd);font-style:normal}

/* Combined P&L panel: money values follow sign colouring like table cells */
.chan-combined-grid .r-pos{color:var(--win,#43c78b)}
.chan-combined-grid .r-neg{color:var(--loss,#f4567a)}

.chan-trades .trade-fail-row td{padding:7px 12px 9px;font:400 11px/1.55 var(--body,sans-serif);color:var(--loss,#f4567a);background:rgba(244,86,122,.06);border-left:3px solid var(--loss,#f4567a)}

/* ---- Unsaved-changes dialog ---- */
.unsaved-dialog{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;background:rgba(7,11,20,.72);backdrop-filter:blur(2px)}
.unsaved-dialog-panel{width:min(440px,92vw);background:linear-gradient(180deg,var(--ink-3,#1b2740),var(--ink-2,#121b2e));border:1px solid var(--line-2,#2c3a58);border-top:3px solid var(--accent);padding:22px 24px;border-radius:0}
.unsaved-dialog-panel h3{margin:0 0 8px;font:700 12px var(--disp,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--text,#e9eef7)}
.unsaved-dialog-panel p{margin:0 0 16px;font-size:12px;line-height:1.6;color:var(--mut)}
.unsaved-dialog-panel p b{color:var(--text,#e9eef7)}
.unsaved-dialog-actions{display:flex;gap:8px;flex-wrap:wrap}


/* ================= Responsive sweep: laptops, tablets, phones ================= */
@media (max-width:1100px){
  .bt-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .ea-connection-card{align-items:flex-start;flex-direction:column;gap:16px}
  .ea-connection-meta{width:100%;grid-template-columns:repeat(3,1fr) auto}
  .ea-connection-meta>span:not(.pill):first-child{border-left:0;padding-left:0}
}
@media (max-width:900px){
  .card-head{flex-wrap:wrap}
  .card-head .legend{width:100%;justify-content:flex-start}
  .legend{flex-wrap:wrap;row-gap:8px;column-gap:10px}
  .lb-range{flex-wrap:wrap;margin-left:0;row-gap:6px}
  .breakdown-head-actions{margin-left:0;flex-wrap:wrap}
  .seg{flex-wrap:wrap}
}
@media (max-width:620px){
  main{padding:14px 12px}
  .card{padding:16px 14px}
  .view-head h1{font-size:30px}
  .strategy-risk-grid{grid-template-columns:1fr}
  .published-strategy{grid-template-columns:1fr}
  .published-strategy>div:first-child,.published-strategy-actions{grid-column:auto}
  .strategy-performance-context{align-items:flex-start;flex-direction:column;gap:10px}
  .ea-connection-meta{grid-template-columns:repeat(3,1fr)}
  .ea-connection-meta>span:not(.pill){padding:2px 10px}
  .ea-connection-meta>.pill{grid-column:1/-1;margin:12px 0 0;justify-self:start}
  .bt-log summary{flex-wrap:wrap;gap:8px}
  .bt-log summary small{white-space:normal}
  .bt-dir-nums{gap:8px 14px}
  .bt-curve{padding:8px 8px 4px}
  .unsaved-dialog-panel{padding:18px 16px}
  .unsaved-dialog-actions{flex-direction:column}
  .unsaved-dialog-actions .btn{width:100%;justify-content:center}
  .chan-combined{padding:12px 14px}
  .plan-cost strong{font-size:28px}
  .addon-cost strong{font-size:26px}
  .strategy-exec-count{margin-left:0}
  .legend input[type=date]{min-width:0;flex:1 1 40%}
  .strategy-ledger-filters{grid-template-columns:1fr}
  .strategy-market{grid-template-columns:1fr 1fr}
  .audit-risk-summary{flex-wrap:wrap}
}
@media (max-width:420px){
  .strategy-market{grid-template-columns:1fr}
  .bt-stats{grid-template-columns:1fr 1fr}
  .view-head h1{font-size:26px}
}

.strategy-risk-savebar{display:flex;justify-content:flex-end;padding:4px 16px 16px}
.strategy-risk-savebar .btn{min-width:180px;justify-content:center}

/* Verdict W/L cell: the coloured counts inside the metric <b> must not pick
   up the small label styling that .vm span carries. */
.vm b span{font-size:inherit;font-family:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:none;display:inline}
.account-symbol-suggestions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.account-symbol-suggestions .btn{padding:5px 8px;min-height:auto}
#account-symmap-table td>.r-neg{display:block;margin-top:6px;max-width:420px}
#account-symmap-table .pill.good{color:var(--pos);border-color:rgba(55,211,153,.5)}
#account-symmap-table .pill.warn{color:#eec372;border-color:rgba(232,179,82,.5)}
