/* Trade Dossier 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:#0f1420;          /* app background — deep slate */
  --ink-2:#161c2a;        /* card */
  --ink-3:#1d2433;        /* raised */
  --line:#273044;
  --text:#e6eaf2;
  --mut:#93a0b8;
  --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:#34d399;
  --loss:#f4567a;
  --amber:#e8b352;
  --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:"Space Grotesk",system-ui,sans-serif;
  --body:"Inter",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:8px;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}

/* ---------- rail ---------- */
.rail{
  border-right:1px solid var(--line);padding:22px 16px;display:flex;
  flex-direction:column;gap:26px;position:sticky;top:0;height:100vh;
  background:linear-gradient(180deg,rgba(22,28,42,.55),rgba(22,28,42,0) 40%);
  backdrop-filter:blur(2px);
}
.brand{display:flex;gap:10px;align-items:center}
.brand-mark{
  width:36px;height:36px;border:1px solid var(--accent-dim);color:var(--accent-2);
  background:linear-gradient(160deg,rgba(77,141,255,.18),rgba(77,141,255,.04));
  display:grid;place-items:center;font-size:18px;border-radius:9px;
  box-shadow:0 0 0 1px rgba(77,141,255,.08),0 4px 14px rgba(4,8,18,.4);
}
.brand-name{font-family:var(--disp);font-weight:700;letter-spacing:.02em}
.brand-sub{font-size:11px;color:var(--mut)}
nav{display:flex;flex-direction:column;gap:4px}
.step{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;
  background:none;color:var(--mut);font:500 14px var(--body);cursor:pointer;
  border-radius:9px;text-align:left;position:relative;
  transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);
}
.step:hover{background:var(--ink-2);color:var(--text);transform:translateX(2px)}
.step.active{background:var(--ink-3);color:var(--text)}
.step.active::before{
  content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:3px;
  border-radius:3px;background:linear-gradient(180deg,var(--accent-2),var(--accent));
}
.step-k{font-family:var(--mono);font-size:11px;color:var(--gold-dim)}
.step.active .step-k{color:var(--gold)}
.step-state{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--mut)}
.step-state.ok{color:var(--win)}
.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.foot-note{font-size:11px;color:var(--mut);line-height:1.5}
.pill{
  font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--mut);
  width:max-content;
}
.pill.armed{border-color:var(--loss);color:var(--loss)}
.pill.dry{border-color:var(--amber);color:var(--amber)}

/* ---------- main / views ---------- */
main{padding:34px 42px;width:100%;min-width:0;max-width:none}
.view-head h1{font:700 30px/1.15 var(--disp);margin:0 0 8px;letter-spacing:.01em}
.view-head p{color:var(--mut);margin:0 0 26px;max-width:64ch}

.card{
  background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,0) 30%),var(--ink-2);
  border:1px solid var(--line);border-radius:12px;
  padding:20px;margin-bottom:22px;box-shadow:var(--shadow-1);
  transition:border-color .22s var(--ease),box-shadow .22s var(--ease),transform .22s var(--ease);
}
.card:hover{border-color:color-mix(in srgb,var(--accent) 22%,var(--line));box-shadow:var(--shadow-2)}
.card.narrow{max-width:480px}
.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:6px;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:8px;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);color:var(--text);
  border-radius:8px;padding:10px 12px;font:400 14px 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}
.btn{
  background:linear-gradient(180deg,var(--accent-2),var(--accent));
  color:#fff;border:0;border-radius:9px;
  padding:10px 16px;font:600 13px var(--body);cursor:pointer;white-space:nowrap;
  box-shadow:0 1px 2px rgba(4,8,18,.45),0 4px 14px rgba(77,141,255,.22),inset 0 1px 0 rgba(255,255,255,.14);
  transition:transform .16s var(--ease),box-shadow .16s var(--ease),filter .16s var(--ease);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(4,8,18,.45),0 8px 22px rgba(77,141,255,.32),inset 0 1px 0 rgba(255,255,255,.14)}
.btn:active{transform:translateY(0) scale(.985);filter:brightness(.96)}
.btn.big{padding:12px 22px;font-size:14px}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--text);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent-dim);background:rgba(77,141,255,.06);box-shadow:none}
.btn.stop{background:linear-gradient(180deg,#ff6f92,var(--loss));color:#fff}
.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:14px;align-items:end;flex-wrap:wrap}
.audit-risk-setup{margin-top:16px;border:1px solid var(--line);background:var(--ink);padding:0 14px 14px}
.audit-risk-setup summary{cursor:pointer;padding:12px 0;font:600 13px var(--disp);color:var(--text)}
.audit-risk-setup>p{margin:0 0 12px}
.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)}
.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}}
.joblog{
  background:var(--ink);border:1px solid var(--line);border-radius:8px;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(--accent-dim);border-radius:12px;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:8px}
.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}
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:4px;padding:1px 5px;letter-spacing:.06em;
}
.legend{display:flex;gap:14px;align-items:center;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:999px;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(--gold);padding:0;font:600 10.5px var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.sw{display:inline-block;width:9px;height:9px;border-radius:2px;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:8px;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{margin-top:12px}.trade-evidence pre{margin:0;white-space:pre-wrap;color:var(--mut);font:400 11.5px/1.6 var(--mono)}
.calc-unavailable{padding:10px 12px;margin-bottom:10px;border:1px solid var(--amber);border-radius:8px;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:8px;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}
.switch{display:flex;align-items:center;gap:10px;cursor:pointer}
.switch input{display:none}
.track{
  width:40px;height:22px;border-radius:999px;background:var(--ink-3);
  border:1px solid var(--line);position:relative;transition:.15s;
}
.track::after{
  content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;
  border-radius:50%;background:var(--mut);transition:.15s;
}
.switch input:checked + .track{background:var(--loss);border-color:var(--loss)}
.switch input:checked + .track::after{left:20px;background:#fff}
.switch-label{font:600 13px var(--body)}

@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%}
}

/* ---------- 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:5px;height:20px;position:relative;overflow:hidden}
.tpbar .fill{position:absolute;inset:0 auto 0 0;border-radius:4px}
.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 .gap{color:var(--loss)}
.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:999px;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{color:var(--loss);border-color:color-mix(in srgb,var(--loss) 55%,var(--line))}
.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:6px;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:5px;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:6px;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:10px;margin-bottom:12px;padding:10px;background:var(--ink-2);border:1px solid var(--line);border-radius:6px}
.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:5px;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:repeat(2,minmax(0,1fr));gap:4px;max-height:128px;overflow:auto;padding:7px;border:1px solid var(--line);border-radius:5px;background:var(--ink)}
.group-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;padding:4px 5px;font-size:11px;cursor:pointer}
.group-choice:has(input:checked){background:color-mix(in srgb,var(--win) 10%,transparent);color:var(--text);outline:1px solid color-mix(in srgb,var(--win) 45%,transparent);border-radius:4px}
.group-choice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-choice small{color:var(--mut);font:400 9px var(--mono)}
.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:7px;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:8px;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:7px;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:6px}
.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:6px;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}
.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-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:8px;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:999px;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{color:var(--win);border-color:color-mix(in srgb,var(--win) 55%,var(--line));background:color-mix(in srgb,var(--win) 10%,transparent)}
.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:8px;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:999px;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:8px 0 0 8px}
.input-with-unit span{display:flex;align-items:center;padding:0 8px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 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:14px;align-items:start}
.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:7px;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:8px;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 .field.check{justify-content:flex-end;min-height:64px;padding-bottom:9px}
.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:600px){
  .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: 10px;
  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 0 0 0 rgba(244,86,122,0)}
  50%{box-shadow:0 0 0 5px rgba(244,86,122,.12)}
}

/* 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}
}

/* ==========================================================================
   Trade Dossier 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-mark{width:32px;height:32px;border:1px solid currentColor;display:flex;align-items:center;justify-content:center;gap:3px;transform:rotate(-8deg)}
.site-brand-mark i{display:block;width:2px;height:15px;background:currentColor;transform:skew(-14deg)}
.site-brand-mark i:nth-child(2){height:21px}.site-brand-mark i:nth-child(3){height:10px}
.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:#96968f}
.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{height:57px;width:100%;border:1px solid var(--site-ink);background:var(--site-ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0;cursor:pointer;overflow:hidden}.login-submit span{padding-left:18px;font-size:12px;font-weight:700}.login-submit b{height:56px;width:56px;display:grid;place-items:center;border-left:1px solid #4c4d48;font-size:18px;transition:background .3s,color .3s}.login-submit:hover b{background:var(--site-accent);color:var(--site-ink)}
.google-login{width:100%;min-height:60px;display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:12px;padding:0 16px;border:1px solid var(--site-ink);background:transparent;color:var(--site-ink);font:600 13px "Barlow",sans-serif;cursor:pointer;transition:background .3s,color .3s,transform .3s cubic-bezier(.22,1,.36,1)}.google-login:hover{background:var(--site-ink);color:var(--paper);transform:translateY(-2px)}.google-login:disabled{cursor:not-allowed;opacity:.5;transform:none}.google-login[aria-busy="true"]{cursor:wait}.google-mark{font:700 21px/1 "Space Grotesk",sans-serif;color:#4285f4;text-align:left}.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:#c22f4b}.login-note[data-state="pending"]{color:#1677ff}
.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:#89979f}.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:#187448}.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}}

/* ==========================================================================
   Trade Dossier 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:20px;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,body.login-mode{background:#f2f5f7;color:#101820;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:#f2f5f7;--paper-deep:#e5edf2;--site-ink:#101820;--site-muted:#5c6e79;--site-line:#b7c5ce;--site-accent:#1677ff;--site-display:"Barlow Condensed",sans-serif;font-family:"Barlow",sans-serif;background:#f2f5f7}.login-context{background:#101820;color:#eaf1f5}.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:#6ba7ff}.login-form-head h1{font-family:"Barlow Condensed",sans-serif;font-weight:600;letter-spacing:-.025em}.login-submit:hover b{background:#1677ff;color:#eef5ff}

@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:#eff1f2;--paper-deep:#e1e5e7;--site-ink:#252a2e;--site-muted:#6f777d;--site-line:#bcc2c6;--site-accent:#e66b2e;background:#eff1f2}body.slate-orange-theme .login-context{background:#30363b;color:#eef1f2}body.slate-orange-theme .login-context h2 em{color:#f39763}body.slate-orange-theme .login-submit:hover b{background:#e66b2e}

.rounded-ui .product-window,.rounded-ui .feature-demo{border-radius:18px}.rounded-ui .focus-cta,.rounded-ui .focus-login,.rounded-ui .theme-toggle,.rounded-ui .corner-toggle,.rounded-ui .login-submit{border-radius:9px}.rounded-ui .message-stack article,.rounded-ui .trade-card,.rounded-ui .execution-route,.rounded-ui .activity-line,.rounded-ui .strategy-demo-chart,.rounded-ui .scope-rule{border-radius:10px}.rounded-ui .pw-metrics,.rounded-ui .monitor-summary,.rounded-ui .risk-grid,.rounded-ui .strategy-demo-summary{border-radius:10px;overflow:hidden}.rounded-ui .risk-demo>button{border-radius:8px}.rounded-ui .login-form>input{border-radius:0}.rounded-ui .security-orbit{border-radius:50%}

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

/* Trade Dossier account + legal polish — mirrors the public navy interface. */
.login-shell{
  --paper:#eff1f5;--paper-deep:#e4e9ef;--site-ink:#0d1424;--site-muted:#5c6878;
  --site-line:#bac4d0;--site-accent:#4d8dff;background:var(--paper)
}
.login-context{background:#0d1424}.login-context h2 em{color:#78aaff}
.login-back{padding:9px 12px;border:1px solid transparent;border-radius:9px;transition:background .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.login-back:hover{border-color:var(--site-line);background:rgba(13,20,36,.04);transform:translateX(-2px)}
.auth-tabs{gap:8px;border:0;margin-bottom:25px}
.auth-tabs button{height:42px;padding:0 14px;border:1px solid var(--site-line);border-radius:9px;text-align:center;color:var(--site-muted);transition:color .25s,background .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.auth-tabs button:hover{border-color:#78879a;color:var(--site-ink);transform:translateY(-1px)}
.auth-tabs button[aria-selected="true"]{border-color:var(--site-ink);background:var(--site-ink);color:#f4f7fb}
.auth-tabs button:focus{outline:none}.auth-tabs button:focus-visible{outline:2px solid #f39763;outline-offset:2px}
.auth-field input{border-radius:8px;background:#f7f9fb;transition:border-color .25s,box-shadow .25s,background .25s}
.auth-field input:hover{border-color:#8d9aaa}.auth-field input:focus{background:#fff;border-color:var(--site-accent);box-shadow:0 0 0 3px rgba(77,141,255,.14)}
.login-submit{border-color:var(--site-accent);border-radius:9px;background:var(--site-accent);box-shadow:none;transition:background .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.login-submit b{border-left-color:rgba(255,255,255,.3)}
.login-submit:hover{border-color:#3a76e0;background:#3a76e0;transform:translateY(-2px)}
.login-submit:hover b{background:#0d1424;color:#fff}.login-submit:focus-visible,.google-login:focus-visible{outline:2px solid #f39763;outline-offset:3px}
.google-login{border-radius:9px;border-color:#7d8998;background:#f7f9fb;transition:background .25s,color .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1)}
.google-login:hover{border-color:#0d1424;background:#0d1424;color:#fff;transform:translateY(-2px)}
.auth-consent{padding:13px 14px;border:1px solid var(--site-line);border-radius:8px;background:#f7f9fb}
.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 var(--site-accent)}

.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:9px;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:9px;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:9px;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:#f1f6ff;box-shadow:0 0 0 3px rgba(77,141,255,.09)}
.auth-consent input{width:16px;height:16px;cursor:pointer}
.auth-consent input:focus-visible{outline:2px solid #f39763;outline-offset:2px}
.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}
}
