/* The ADMIN's console. Local assets only: no fonts, scripts or images from elsewhere. */
:root{color-scheme:dark;
  /* dark theme (client 2026-09-30): one set of tokens; every surface, text and state colour below reads from them */
  --canvas:#0c0f14;--paper:#141920;--paper-2:#1a2029;--field:#0f141a;--hover:#1f2631;--line:#232a35;--line-strong:#323b48;
  --ink:#e7eaf0;--muted:#9ba5b4;--faint:#6c7686;--focus:#5aa9ff;
  --bid:#3fb950;--bid-bg:rgba(63,185,80,.13);--ask:#f47067;--ask-bg:rgba(244,112,103,.13);--mine:#b392f0;--mine-bg:rgba(179,146,240,.16);
  --term:#090c10;--term-ink:#d6dde6;--term-faint:#7d8896;
  --accent:#1f9d8c;--accent-hover:#23b19e;--accent-text:#4fd1bf;--accent-ink:#04120f;
  --good:#46c35a;--good-bg:rgba(70,195,90,.13);--warn:#e3a53a;--warn-bg:rgba(227,165,58,.14);--bad:#f47067;--bad-bg:rgba(244,112,103,.14);--bad-solid:#d9453b;--bad-hover:#e8554a;
  --neutral-bg:#1e252f;--shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.25);
  --radius:12px;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-anchor:none}      /* the console keeps the reader's place itself (keepPlace) */
body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,dl,dd,figure{margin:0}
h2{font-size:17px;font-weight:650;letter-spacing:-.2px}
h3{font-size:15px;font-weight:650}
a{color:var(--accent-text)}
[hidden]{display:none!important}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;min-height:36px;padding:6px 13px;border:1px solid var(--line-strong);border-radius:8px;background:var(--paper-2);font-weight:600;line-height:1.3;transition:background .12s,border-color .12s}
button:hover:not(:disabled){background:var(--hover);border-color:#3d4757}
button:disabled{cursor:not-allowed;opacity:.45}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}
button.danger{background:var(--bad-solid);border-color:var(--bad-solid);color:#fff}
button.danger:hover:not(:disabled){background:var(--bad-hover);border-color:var(--bad-hover)}
button.quiet{border-color:transparent;background:transparent;color:var(--accent-text);padding:4px 8px;min-height:30px}
button.quiet:hover:not(:disabled){background:var(--neutral-bg)}
button.small{min-height:30px;padding:3px 10px;font-size:13px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
input,select{width:100%;min-height:36px;border:1px solid var(--line-strong);border-radius:8px;padding:6px 10px;background:var(--field)}
input::placeholder{color:var(--faint)}
input:focus,select:focus{border-color:var(--accent)}
input[type=password],input.number{font-family:var(--mono);font-size:14px}
input.number{text-align:right}
.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:.94em}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.small-text{font-size:13px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* top bar */
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:18px;padding:10px 24px;background:rgba(12,15,20,.86);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:.4px}
.brand .mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#27b8a4,#1a6fd0);color:#fff;font-size:15px;box-shadow:0 2px 10px rgba(39,184,164,.28)}
.mode{font-size:12px;font-weight:700;letter-spacing:.3px;padding:3px 9px;border-radius:999px;background:var(--neutral-bg);color:var(--muted);text-transform:uppercase}
.mode.live{background:var(--bad-bg);color:var(--bad)}
.mode.test{background:var(--warn-bg);color:var(--warn)}
.top nav{display:flex;gap:4px;margin-left:8px}
.top nav button{border-color:transparent;background:transparent;font-weight:600;color:var(--muted);padding:6px 12px}
.top nav button:hover:not(:disabled){background:var(--hover);color:var(--ink)}
.top nav button[aria-current=page]{background:var(--neutral-bg);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.session{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);white-space:nowrap}
.session .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px;vertical-align:1px}
body.stale .session .dot{background:var(--bad)}

main{max-width:1320px;margin:0 auto;padding:18px 20px 60px}
.notice{padding:10px 14px;border-radius:var(--radius);background:var(--neutral-bg);margin-bottom:14px;font-size:14px;overflow-wrap:anywhere}
.notice.error{background:var(--bad-bg);color:var(--bad)}
.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:20;max-width:min(720px,calc(100% - 32px));padding:10px 14px;border-radius:var(--radius);background:var(--paper-2);border:1px solid var(--line-strong);box-shadow:0 10px 34px rgba(0,0,0,.5);font-size:14px;overflow-wrap:anywhere;margin:0}
.toast.error{background:var(--bad-bg);color:var(--bad)}

/* sign in */
.login{max-width:420px;margin:80px auto;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}
.login h1{font-size:22px;margin-bottom:6px}
.login p{color:var(--muted);font-size:14px}
.login label{display:block;font-weight:600;margin:18px 0 6px}
.login button{margin-top:14px;width:100%}

/* status row with the controls */
.status{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.status .state{display:flex;align-items:center;gap:12px;flex:1 1 320px;min-width:0}
.status .state p{color:var(--muted);font-size:14px}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:650;white-space:nowrap;background:var(--neutral-bg);color:var(--muted)}
.pill.good{background:var(--good-bg);color:var(--good)}
.pill.warning{background:var(--warn-bg);color:var(--warn)}
.pill.danger{background:var(--bad-bg);color:var(--bad)}
.pill.big{font-size:15px;padding:5px 14px}
.controls{display:flex;gap:8px;flex-wrap:wrap}

/* attention list */
.attention{margin-top:12px;display:grid;gap:8px}
.item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 14px;padding:11px 14px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--faint);border-radius:var(--radius)}
.item.danger{border-left-color:var(--bad)}
.item.warning{border-left-color:var(--warn)}
.item.good{border-left-color:var(--good)}
.item .body{flex:1 1 360px;min-width:0}
.item .body strong{display:block}
.item .body p{color:var(--muted);font-size:14px}
.item .body details{margin-top:6px}
.item .act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* sections and cards */
.section{margin-top:22px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.section-head p{color:var(--muted);font-size:14px}
.section h3.group{margin:14px 0 8px;text-transform:uppercase;letter-spacing:.4px;font-size:12px}
.section>details.raw{margin-bottom:6px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;min-width:0}
.card .head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.card .head h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kpi .label{font-size:13px;color:var(--muted);font-weight:600}
.kpi .value{font-size:26px;font-weight:700;letter-spacing:-.5px;margin:2px 0 4px}
.kpi .value.good{color:var(--good)}
.kpi .value.danger{color:var(--bad)}
.kpi .value.warning{color:var(--warn)}
.kpi .sub{font-size:13px;color:var(--muted)}
progress{width:100%;height:6px;appearance:none;border:0;border-radius:3px;background:var(--neutral-bg);overflow:hidden;margin-top:8px}
progress::-webkit-progress-bar{background:var(--neutral-bg);border-radius:3px}
progress::-webkit-progress-value{background:var(--good);border-radius:3px}
progress::-moz-progress-bar{background:var(--good);border-radius:3px}
progress.mid::-webkit-progress-value,progress.mid::-moz-progress-bar{background:var(--warn)}
progress.high::-webkit-progress-value,progress.high::-moz-progress-bar{background:var(--bad)}
.now{margin:6px 0 10px;font-size:15px}
.now strong{font-weight:650}
.why{color:var(--muted);font-size:14px;margin-bottom:8px}
.rows{display:grid;gap:5px}
.row{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:12px;font-size:14px;padding:4px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .k{color:var(--muted)}
.row .v .sub{display:block;color:var(--faint);font-size:13px}
.chip{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.3px;padding:1px 7px;border-radius:5px;background:var(--neutral-bg);color:var(--muted)}
.chip.dex{background:rgba(144,133,233,.16);color:#b6adf5}
.chip.cex{background:rgba(57,135,229,.16);color:#8dbcf5}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:12px;padding:1px 8px;border-radius:999px;background:var(--neutral-bg);color:var(--muted)}
.tag.warning{background:var(--warn-bg);color:var(--warn)}
.tag.good{background:var(--good-bg);color:var(--good)}
.tag.danger{background:var(--bad-bg);color:var(--bad)}

/* places */
.market{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:8px 0;border-top:1px solid var(--line)}
.market .name{font-weight:600}
.market .price{text-align:right}
.market .tags{grid-column:1/-1;margin-top:0}
.balances{margin-top:6px;border-top:1px solid var(--line)}
.balance{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:6px 0;font-size:14px;align-items:baseline}
.balance .asset{font-weight:650}
.balance .amount{font-size:15px}
.balance .split{display:block;color:var(--faint);font-size:13px;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:normal}

/* feed */
.feed{display:grid;gap:6px}
.feed details{background:var(--paper);border:1px solid var(--line);border-radius:8px}
.feed summary{display:grid;grid-template-columns:8px max-content 1fr auto;gap:10px;align-items:center;padding:8px 12px;cursor:pointer;list-style:none}
.feed summary::-webkit-details-marker{display:none}
.feed .dot{width:8px;height:8px;border-radius:50%;background:var(--faint)}
.feed .dot.warning{background:var(--warn)}
.feed .dot.danger{background:var(--bad)}
.feed .dot.good{background:var(--good)}
.feed time{color:var(--faint);font-size:13px;font-variant-numeric:tabular-nums}
.feed .headline{font-weight:600}
.feed .meta{display:block;color:var(--faint);font-size:13px;font-weight:400}
.feed .count{font-size:12px;color:var(--muted);background:var(--neutral-bg);padding:1px 7px;border-radius:999px}
.feed .detail{padding:2px 12px 12px 30px;font-size:14px;color:var(--muted);display:grid;gap:6px}
.feed .detail .next{color:var(--ink)}
pre{margin:6px 0 0;padding:10px;background:var(--field);border:1px solid var(--line);border-radius:8px;font:12px/1.45 var(--mono);white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
details.raw summary{cursor:pointer;color:var(--accent-text);font-size:13px;font-weight:600}
dl.facts{display:grid;grid-template-columns:minmax(90px,38%) 1fr;gap:4px 12px;font-size:14px}
dl.facts dt{color:var(--muted)}

/* lists */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.tabs button{border-color:transparent;background:transparent;color:var(--muted);padding:6px 12px}
.tabs button[aria-selected=true]{background:var(--paper);border-color:var(--line);color:var(--ink)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.filters label{display:grid;gap:3px;font-size:12px;color:var(--muted);font-weight:600}
.filters select{min-width:150px;width:auto;min-height:32px;padding:3px 8px;font-size:14px}
.filters .check{grid-template-columns:auto 1fr;align-items:center;gap:6px}
.filters .check input{width:auto;min-height:0}
.table-wrap{overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:760px}
/* Text-heavy columns take the width; times, amounts and short labels take what they need (client 2026-09-29). */
td.wide,th.wide{min-width:260px;width:44%}
td.time,th.time{white-space:nowrap;width:1%}
td.num,th.num{white-space:nowrap}
th{text-align:left;font-size:12px;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
td .sub{display:block;color:var(--faint);font-size:13px}
td.num,th.num{text-align:right}
.pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:var(--muted)}
.pager .info{margin:0 auto 0 4px}
.pager label{display:flex;align-items:center;gap:6px;font-size:13px}
.pager select{width:auto;min-height:30px;padding:2px 6px}
.empty{padding:22px;text-align:center;color:var(--muted);background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius)}

/* settings */
.settings-group{margin-top:22px}
.settings-group>p{color:var(--muted);font-size:14px;margin-bottom:10px}
.setting{display:grid;grid-template-columns:1fr 200px;gap:6px 22px;align-items:start;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-top:0}
.setting:first-of-type{border-top:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}
.setting:last-of-type{border-radius:0 0 var(--radius) var(--radius)}
.setting .meaning{color:var(--muted);font-size:14px}
.setting>div{min-width:0}
.opening-basis{font-size:13px;margin:10px 0;padding:10px;background:var(--paper-2);border:1px solid var(--line);border-radius:6px}
.setting details.opening-basis{margin:10px 0;color:var(--ink)}
.setting details.opening-basis:not([open]){padding:6px 10px}
.setting details.opening-basis[open]>summary{margin-bottom:6px}
.opening-basis table{min-width:0;table-layout:fixed;font-size:12px}
.opening-basis th,.opening-basis td{padding:7px;overflow-wrap:anywhere}
.opening-basis th:first-child{width:32%}
.opening-basis th:last-child{width:48%}
.opening-basis .num{overflow-wrap:anywhere;white-space:normal}
.setting details{font-size:13px;color:var(--muted);margin-top:4px}
.setting details summary{cursor:pointer;color:var(--accent-text);font-weight:600}
.setting .field{display:grid;gap:4px}
.setting .field input{text-align:right}
.setting .unit{font-size:12px;color:var(--faint)}
.setting input.skew{width:100%;accent-color:var(--accent);margin:2px 0}
.setting .skew-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--faint)}
.setting .skew-reading{font-size:12px;color:var(--muted);text-align:right}
.setting.changed input{border-color:var(--warn);background:var(--warn-bg)}
.savebar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding:12px 16px;background:var(--paper-2);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 -8px 28px rgba(0,0,0,.45)}
.savebar .count{font-weight:600}
.savebar .spacer{flex:1}
form.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:end}
form.inline label{display:grid;gap:3px;font-size:12px;color:var(--muted);font-weight:600}
form.inline select,form.inline input{width:auto;min-width:200px}
.callout{padding:12px 16px;border-radius:var(--radius);background:var(--neutral-bg);font-size:14px}
.callout.good{background:var(--good-bg);color:var(--good)}
.callout.warning{background:var(--warn-bg);color:var(--warn)}
.callout.danger{background:var(--bad-bg);color:var(--bad)}
.callout button{margin-left:10px}

/* dialog */
dialog{border:1px solid var(--line-strong);border-radius:16px;padding:0;max-width:540px;width:calc(100% - 32px);background:var(--paper);color:var(--ink);box-shadow:0 24px 70px rgba(0,0,0,.6)}
dialog::backdrop{background:rgba(3,6,10,.72);backdrop-filter:blur(2px)}
dialog form{padding:22px 24px}
dialog h2{margin-bottom:8px}
dialog p{color:var(--muted);font-size:14px;margin-top:8px}
dialog ul{margin:10px 0 0;padding-left:20px;font-size:14px}
dialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.result{margin-top:10px}

@media(max-width:760px){
  .top{flex-wrap:wrap;gap:8px 12px;padding:8px 14px}
  .top nav{order:3;width:100%;margin-left:0;justify-content:space-between}
  .top nav button{flex:1;padding:6px 4px;min-width:0;font-size:14px}
  .session{margin-left:auto}
  main{padding:12px 14px 60px}
  .status{padding:12px 14px}
  .setting{grid-template-columns:1fr}
  .setting .field input{text-align:left}
  .feed summary{grid-template-columns:8px 1fr auto;gap:8px}
  .feed time{grid-column:2;grid-row:2;font-size:12px}
  .feed .headline{grid-column:2}
  .kpi .value{font-size:22px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- revamp 2026-09-28: result, balances, venues, trades, log ---------------------------------------- */
.good-text,.chg.good,.delta.good,.pnl-value.good,.net .good,.trades-summary .good,.hero.good,.stat .value.good,.change.good{color:var(--good)}
.chg.danger,.delta.danger,.pnl-value.danger,.net .danger,.trades-summary .danger,.hero.danger,.stat .value.danger,.change.danger{color:var(--bad)}
.hero.warning,.stat .value.warning{color:var(--warn)}
.warn-text{color:var(--warn)}
.top{box-shadow:0 1px 0 rgba(0,0,0,.4)}
.live{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:999px;background:var(--neutral-bg);color:var(--muted);font-variant-numeric:tabular-nums}
.live .beat{width:8px;height:8px;border-radius:50%;background:var(--faint)}
body.streaming .live .beat{background:var(--good);animation:beat 2s ease-in-out infinite}
body.streaming .live{background:var(--good-bg);color:var(--good)}
.live.late{background:var(--warn-bg)!important;color:var(--warn)!important}
body.stale .live .beat{background:var(--bad);animation:none}
@keyframes beat{0%,100%{opacity:1}50%{opacity:.25}}
.checks-slot{display:flex;align-items:center}
.checks-chip{min-height:30px;padding:3px 11px;font-size:13px;border-radius:999px}
.checks-chip.good{background:var(--good-bg);border-color:transparent;color:var(--good)}
.checks-chip.warning{background:var(--warn-bg);border-color:transparent;color:var(--warn)}

/* result */
.pnl{display:grid;grid-template-columns:minmax(230px,1fr) minmax(360px,2fr) minmax(250px,1fr);gap:12px;margin-top:16px}
.pnl .card{padding:16px 18px}
.pnl .label{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}
.pnl .hero{font-size:40px;font-weight:750;letter-spacing:-1px;margin:6px 0 4px;line-height:1.1}
.pnl .sub{font-size:13px;color:var(--muted)}
.pnl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.stat{padding:10px 12px;border-radius:10px;background:var(--paper-2);border:1px solid var(--line)}
.stat .label{font-size:11px}
.stat .value{font-size:21px;font-weight:700;margin:3px 0 2px}
.stat .sub{font-size:12px;color:var(--faint)}
.limit{margin-top:10px}
.limit-head{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:600}
.limit .sub{font-size:12px;color:var(--faint);margin-top:2px}
.windows{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:var(--neutral-bg);flex-wrap:wrap}
.windows .window{min-height:28px;padding:2px 10px;font-size:12.5px;border:0;background:transparent;color:var(--muted);border-radius:7px}
.windows .window[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0000001f}

/* balances */
.balance-venues{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.balance-venue{min-width:0}
.balance-venue h3{margin:0}
.venue-value{font-size:24px;font-weight:750;margin:8px 0 14px;overflow-wrap:anywhere}
.venue-asset{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:3px 12px;padding:12px 0;border-top:1px solid var(--line);align-items:baseline}
.venue-asset .amount{text-align:right;font-weight:700;overflow-wrap:anywhere}
.venue-asset .asset-value{grid-column:2;text-align:right;min-height:0}
.venue-asset .asset-delta{grid-column:1/-1;margin:0;font-size:13px}
.venue-asset .split{grid-column:1/-1;color:var(--faint);font-size:12.5px;overflow-wrap:anywhere}
.assets{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.asset{container-type:inline-size}
.asset.major{grid-column:span 2}
.asset-head{display:flex;align-items:baseline;justify-content:space-between;gap:4px 8px;flex-wrap:wrap}
.asset .symbol{font-weight:800;font-size:15px;letter-spacing:.5px}
.asset .mark{font-size:13px;color:var(--muted)}
.asset-total{font-size:34px;font-weight:750;letter-spacing:-.8px;margin:6px 0 0;line-height:1.15;font-family:var(--mono);overflow-wrap:anywhere}
.asset.minor .asset-total{font-size:24px}
.asset-value{color:var(--muted);font-size:14px;min-height:20px}
.asset-delta{margin:6px 0 10px;font-weight:650;font-size:15px}
.asset-places{border-top:1px solid var(--line)}
/* Place | amount | change on a wide card; on a narrow one the change goes under the amount (2026-09-29: the change column
   was fixed at 110px and pushed out of a 240px card). Every column may shrink; nothing leaves the card. */
.asset-place{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:2px 12px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line);font-size:14px}
.asset-place:last-child{border-bottom:0}
.asset-place .place{display:flex;gap:4px 6px;align-items:center;flex-wrap:wrap;min-width:0}
.asset-place .amount{text-align:right}
.asset-place .change{text-align:right;font-size:13px;white-space:nowrap}
.asset-place .split{grid-column:1/-1;font-size:12.5px;color:var(--faint)}
@container (max-width:360px){
  .asset-place{grid-template-columns:minmax(0,1fr) auto}
  .asset-place .change{grid-column:2}
  .asset-place .change.faint{display:none}
}
.nw{white-space:nowrap}
.pnl-assets{margin:12px 0 8px;padding-top:10px;border-top:1px solid var(--line)}
.pnl-assets .label{font-size:11px}
.asset-changes{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;font-weight:650;font-family:var(--mono)}
.asset-changes .usd{font-weight:500;color:var(--muted)}
.asset-changes .good{color:var(--good)}.asset-changes .danger{color:var(--bad)}

/* venues */
.books{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.ladder{font-family:var(--mono);font-size:12.5px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.lvl{position:relative;display:grid;grid-template-columns:1fr 1fr 110px;gap:8px;padding:2px 10px;font-variant-numeric:tabular-nums}
.lvl>span{position:relative;z-index:1}
.lvl::before{content:'';position:absolute;top:0;bottom:0;right:0;width:var(--depth,0%);opacity:.9}
.lvl.ask::before{background:var(--ask-bg)}
.lvl.bid::before{background:var(--bid-bg)}
.lvl.ask .px{color:var(--ask);font-weight:600}
.lvl.bid .px{color:var(--bid);font-weight:600}
.lvl .qty{text-align:right}
.lvl .ours{text-align:right;color:var(--mine);font-weight:700}
.lvl.mine{box-shadow:inset 3px 0 0 var(--mine);background:linear-gradient(90deg,var(--mine-bg),transparent 70%)}
.lvl.gap{border-top:1px dashed var(--faint)}
.lvl.ghost{opacity:.75;font-style:italic}
.lvl.head{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);background:var(--canvas);padding:5px 10px}
.lvl.head::before{display:none}
.spread{padding:4px 10px;text-align:center;font-size:12px;color:var(--muted);background:var(--canvas);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.own-line{margin-top:8px;color:var(--mine)}
.pools{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.pool .pool-price{font-size:22px;font-weight:700;margin:4px 0 2px}

/* trades */
.trades table{min-width:980px}
.trades td{vertical-align:top}
.trades td.time{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.trades td.trade,.trades th.trade{white-space:nowrap;width:1%}
.trades td.trade .sub{white-space:normal}
.trades td.state-col,.trades th.state-col{width:12%;min-width:118px}
.trades td.state-col .sub{white-space:normal}
.trades td.legcol,.trades th.legcol{width:26%;min-width:230px}
.trades td.num{width:1%;min-width:132px}
.trades td.num .sub{white-space:normal}
.trade-row.is-open{background:rgba(227,165,58,.06)}
.pnl-cell{display:grid;justify-items:end}
.pnl-value{font-size:17px;font-weight:750;font-family:var(--mono)}
.leg{display:grid;gap:1px;font-size:13px}
.leg-title{font-weight:650;color:var(--ink)}
.chg{font-family:var(--mono);font-size:13px;font-weight:600}
.leg-none{color:var(--muted);font-size:12.5px}
.fee{color:var(--faint);font-size:12px}
.trade-detail{padding:4px 2px 8px;display:grid;gap:8px}
.legs{display:grid;gap:4px}
.legrow{display:grid;grid-template-columns:60px minmax(160px,1.3fr) minmax(160px,1.4fr) minmax(140px,1fr) minmax(120px,1fr);gap:10px;font-size:13px;padding:6px 8px;background:var(--paper-2);border-radius:6px}
.legrow .n{font-weight:700;color:var(--muted)}
.legrow .sub{display:block;color:var(--faint);font-size:12px}
.legrow .chgs{display:grid}
.trades-summary{margin:0 0 0 auto;font-size:14px;color:var(--muted)}
.trades.compact table{min-width:900px}

/* log */
.term{background:var(--term);color:var(--term-ink);border-radius:10px;padding:10px 0;font:12.5px/1.55 var(--mono);max-height:68vh;overflow:auto}
.term.small{max-height:none}
.term .tl,.term summary{display:grid;grid-template-columns:66px 50px 48px 1fr auto;gap:10px;padding:1px 14px;align-items:baseline}
.term .tl{grid-template-columns:54px 1fr auto}
.term details{border-left:3px solid transparent}
.term details[open]{background:#161b22;border-left-color:#3b82f6}
.term summary{cursor:pointer;list-style:none}
.term summary::-webkit-details-marker{display:none}
.term summary:hover{background:#161b22}
.term .ts{color:var(--term-faint)}
.term .src{color:#8aa4c8}
.term .where,.term .code{color:var(--term-faint)}
.term .rep{color:#e3b341}
.lvl-tag{font-weight:700}
.lvl-tag.danger{color:#ff7b72}.lvl-tag.warning{color:#e3b341}.lvl-tag.good{color:#56d364}.lvl-tag.neutral{color:#79c0ff}
.term .tbody-detail{padding:4px 14px 10px 160px;color:#b7c0cc;display:grid;gap:4px}
.term .tbody-detail dl.facts dt{color:var(--term-faint)}
.term .tbody-detail .next{color:#e6edf3}
.term pre{background:#0b0f14;border-color:#30363d;color:#c9d1d9}
.term details.raw summary{color:#79c0ff;display:block;padding:0}
.term .older{margin:2px 14px 6px;color:#79c0ff}
.term .faint{color:var(--term-faint)}
.checks .term{padding:8px 0}
details.fold{margin-top:22px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px}
details.fold>summary{cursor:pointer;padding:10px 0;font-weight:650}
details.fold[open]{padding-bottom:16px}
details.fold .section{margin-top:6px}

@media(max-width:1100px){.pnl{grid-template-columns:1fr 1fr}.pnl-window{grid-column:1/-1;order:3}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .pnl{grid-template-columns:1fr}.pnl-window{order:0}.pnl .hero{font-size:32px}
  .asset.major{grid-column:auto}.asset-total{font-size:28px}
  .books{grid-template-columns:1fr}.lvl{grid-template-columns:1fr 1fr 90px}
  .session{flex-wrap:wrap;justify-content:flex-end;gap:6px}
  #freshness{display:none!important}
  .term summary{grid-template-columns:64px 44px 1fr;row-gap:0}.term .src{display:none}.term .rep{grid-column:3}
  .term .tbody-detail{padding-left:14px}
  .legrow{grid-template-columns:1fr}
  .trades-summary{margin-left:0}
}

/* pools page: liquidity by price (client 2026-09-29). Areas are read with the legend and the table view, never by colour alone. */
.pool .section-head h2 .tag{margin-left:6px;vertical-align:2px}
.pool-status{display:flex;align-items:center;gap:8px}
.liq-figure{position:relative;margin-top:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 8px}
.liq-chart{display:block;width:100%;height:auto;overflow:visible}
.liq-chart .grid{stroke:var(--line);stroke-width:1}
.liq-chart .baseline{stroke:var(--line-strong);stroke-width:1}
.liq-chart .axis-tick{stroke:var(--line-strong);stroke-width:1}
.liq-chart .axis{fill:var(--muted);font:11px var(--mono)}
.liq-chart .area{stroke-linejoin:round}
.liq-chart .price-line{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3}
.liq-chart .price-label{fill:var(--ink);font:12px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-weight:650}
.liq-chart .cursor{stroke:var(--muted);stroke-width:1;pointer-events:none}
.liq-tip{position:absolute;top:18px;min-width:210px;max-width:260px;padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.5);font-size:13px;pointer-events:none;z-index:2}
.liq-tip strong{display:block;margin-bottom:4px;font-family:var(--mono);font-size:12px}
.tip-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;padding:1px 0}
.tip-foot{margin-top:4px;padding-top:4px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}
.legend{list-style:none;margin:8px 0 0;padding:0;display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.legend li{display:flex;align-items:center;gap:6px}
.liq-table{margin-top:8px;font-size:13px}
.liq-table summary{cursor:pointer;color:var(--accent-text);font-weight:600}
.liq-table table{min-width:0}
.positions{margin-top:14px}
.positions table{min-width:900px}
.positions td .sub{font-size:12px}
.watch{margin-top:12px}
.watch-list{display:grid;gap:6px}
.watch-row{display:grid;grid-template-columns:minmax(80px,160px) 1fr auto;gap:6px 14px;align-items:center;padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-radius:8px;font-size:14px}
.watch-row .label{font-weight:600}
.watch-row .address{overflow-wrap:anywhere}
.watch-row .sub{grid-column:1/-1;color:var(--faint);font-size:12px}
.watch-form{display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) auto;gap:8px;margin-top:10px;align-items:center}
.watch-form input.address{font-family:var(--mono);font-size:13px}
@media (max-width:720px){.watch-form{grid-template-columns:1fr}.watch-row{grid-template-columns:1fr auto}}

/* the run's own liquidity (client 2026-09-29): a range of the current price with two handles, an amount, a preview, one confirmed action */
.liquidity{margin-top:12px}
.liq-form{display:grid;gap:10px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.range-wrap{display:grid;gap:4px}
.range-scale{position:relative;height:16px;font-size:11px;color:var(--faint);font-family:var(--mono)}
.range-mark{position:absolute;transform:translateX(-50%);white-space:nowrap}
.range-mark.now{color:var(--ink);font-weight:650}
.range-mark:first-child{transform:none}
.range-mark:last-child{transform:translateX(-100%)}
.range-track{position:relative;height:28px}
.range-track::before{content:"";position:absolute;left:0;right:0;top:12px;height:4px;border-radius:2px;background:var(--line)}
.range-fill{position:absolute;top:12px;height:4px;border-radius:2px;background:var(--accent);opacity:.7}
.range-now{position:absolute;top:4px;width:2px;height:20px;margin-left:-1px;background:var(--ink)}
.range-track input[type=range]{position:absolute;left:0;right:0;top:0;width:100%;height:28px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;pointer-events:none}
.range-track input[type=range]::-webkit-slider-runnable-track{background:transparent;height:28px}
.range-track input[type=range]::-moz-range-track{background:transparent;height:28px}
.range-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:18px;height:18px;margin-top:5px;border-radius:50%;background:var(--paper-2);border:2px solid var(--accent-text);box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:pointer}
.range-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:var(--paper-2);border:2px solid var(--accent-text);box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:pointer}
.range-track input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--accent);outline-offset:2px}
.range-text{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:13px}
.range-text .muted{color:var(--faint)}
.liq-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.liq-controls input.amount{width:160px;font-family:var(--mono);font-size:13px}
.liq-controls input.share{width:90px;font-family:var(--mono);font-size:13px}
.liq-controls select.asset{width:auto;min-width:110px}
.liq-controls .share-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.liq-preview{padding:8px 12px;border-left:3px solid var(--accent);background:var(--paper-2);font-size:14px}
.liq-preview p{margin:0 0 4px}
.liq-positions{margin-top:12px;display:grid;gap:8px}
.liq-positions h4{margin:0;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.liq-position{display:grid;gap:8px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:8px}
.liq-position-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}
.liq-position p{margin:0}
.liq-attempts{margin-top:10px;font-size:13px}
.liq-attempts summary{cursor:pointer;color:var(--accent-text);font-weight:600}
.liq-attempts table{min-width:0}
@media (max-width:720px){.liq-controls input.amount{width:100%}}

/* the load/unload campaigns (client 2026-09-29): the Now page's card */
.campaign-form{display:grid;gap:10px;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.campaign-row{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:8px 14px;align-items:start}
.campaign-row .k{color:var(--muted);font-size:13px;padding-top:6px}
.campaign-sides,.campaign-venues{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;padding-top:4px}
.campaign-sides label,.campaign-venues label{display:inline-flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}
.campaign-sides input,.campaign-venues input{width:auto;min-height:0;margin:0;accent-color:var(--accent)}
.campaign-form input.minutes{width:90px;font-family:var(--mono);font-size:13px}
.campaign-form > button{justify-self:start}
/* client 2026-10-02: Simulate beside Start, the simulated table under them */
.campaign-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.campaign-simulation{display:grid;gap:8px;margin-top:4px;min-width:0}
.campaign-simulation h4{margin:0;font-size:14px}
.campaign-simulation .table-wrap{overflow-x:auto}
.campaign-simulation table{min-width:720px;font-size:13px}
.campaign-simulation ul{margin:0;padding-left:18px;display:grid;gap:2px}
.campaign-simulation .num.good{color:var(--good)}
.campaign-simulation .num.danger{color:var(--bad)}
.campaign-slices{margin-top:10px;font-size:13px}
.campaign-slices summary{cursor:pointer;color:var(--accent-text);font-weight:600}
.campaign-slices table{min-width:0}
@media (max-width:720px){.campaign-row{grid-template-columns:1fr}.campaign-row .k{padding-top:0}}

/* ---- dark re-skin 2026-09-30: depth, rhythm and legibility on the dark surfaces -------------------------------------- */
main{max-width:1360px;padding:22px 24px 72px}
.status,.item,.card,.table-wrap,.feed details,.liq-form,.campaign-form,.liq-figure,.liq-position,.watch-row,.setting,details.fold,.empty{box-shadow:0 1px 0 rgba(255,255,255,.02) inset}
.status{padding:16px 20px;border-radius:14px;background:linear-gradient(180deg,var(--paper-2),var(--paper))}
.card{border-radius:var(--radius)}
.card:hover{border-color:#2b3441}
.section{margin-top:28px}
.section-head h2{font-size:16px;font-weight:650;letter-spacing:.1px}
.section h3.group{color:var(--muted)}
.kpi .value,.pnl .hero,.asset-total,.stat .value{font-variant-numeric:tabular-nums}
.pnl .card{background:linear-gradient(180deg,var(--paper-2),var(--paper))}
th{background:var(--paper-2);color:var(--muted);position:sticky;top:0;z-index:1}
tbody tr:hover td{background:rgba(255,255,255,.02)}
.table-wrap{border-radius:var(--radius)}
.pill{border:1px solid transparent}
.pill.good{border-color:rgba(70,195,90,.28)}
.pill.warning{border-color:rgba(227,165,58,.3)}
.pill.danger{border-color:rgba(244,112,103,.32)}
.item{border-left-width:3px;background:linear-gradient(90deg,rgba(255,255,255,.015),transparent 40%),var(--paper)}
.item.danger{background:linear-gradient(90deg,rgba(244,112,103,.07),transparent 45%),var(--paper)}
.item.warning{background:linear-gradient(90deg,rgba(227,165,58,.06),transparent 45%),var(--paper)}
.callout{border:1px solid var(--line)}
.callout.warning{border-color:rgba(227,165,58,.28)}
.callout.danger{border-color:rgba(244,112,103,.3)}
.callout.good{border-color:rgba(70,195,90,.26)}
.notice{border:1px solid var(--line)}
.notice.error{border-color:rgba(244,112,103,.3)}
.mode{border:1px solid var(--line-strong)}
.mode.live{border-color:rgba(244,112,103,.4)}
.mode.test{border-color:rgba(227,165,58,.4)}
.windows,.tabs{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:3px}
.tabs button[aria-selected=true],.windows .window[aria-pressed=true]{background:var(--neutral-bg);border-color:var(--line-strong);color:var(--ink);box-shadow:none}
.ladder{border-color:var(--line-strong)}
.lvl.head,.spread{background:var(--paper-2)}
.range-track::before{background:var(--line-strong)}
.range-mark.now{color:var(--accent-text)}
.range-now{background:var(--accent-text)}
.liq-chart .price-line{stroke:var(--accent-text)}
.liq-chart .price-label{fill:var(--accent-text)}
.liq-figure,.liq-form,.campaign-form{background:var(--paper)}
.checks-chip{border:1px solid var(--line-strong)}
::selection{background:rgba(79,209,191,.28)}
*{scrollbar-color:#2e3643 transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#2a323e;border-radius:8px;border:2px solid var(--canvas)}
::-webkit-scrollbar-track{background:transparent}
@media(max-width:760px){
  main{padding:12px 14px 60px}
  .status{padding:12px 14px}
  .top{padding:8px 14px}
}

/* ---- Strategies: tiles and the opened strategy's panel (client 2026-10-01) ---------------------------------------- */
.stiles{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-bottom:12px}
.stile{display:flex;flex-direction:column;align-items:stretch;gap:6px;text-align:left;padding:12px 14px;min-height:0;border-radius:var(--radius);
  background:var(--paper);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .12s,background .12s}
.stile:hover{background:var(--hover);border-color:var(--line-strong)}
.stile.open{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.stile-head{display:flex;align-items:center;gap:8px;min-width:0}
.stile-title{font-weight:650;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stile-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--neutral-bg);color:var(--accent-text);flex:none}
.stile-status{display:flex}
.stile-now{font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em}
.stile-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--line);padding-top:8px;margin-top:auto}
.stile-metrics .m{display:flex;flex-direction:column;min-width:0}
.stile-metrics .k,.stile-spark .k{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px;font-weight:650}
.stile-metrics .v{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.stile-metrics .v.good{color:var(--good)}.stile-metrics .v.danger{color:var(--bad)}
.stile-progress{display:block;height:5px;border-radius:3px;background:var(--neutral-bg);overflow:hidden}
.stile-progress span,.meter span{display:block;height:100%;background:var(--accent);border-radius:3px}
.stile-spark{display:flex;align-items:center;gap:8px}
.spark{width:120px;height:28px;flex:none}
.spark-line{fill:none;stroke-width:1.8;stroke-linejoin:round}
.spark-line.good{stroke:var(--good)}.spark-line.danger{stroke:var(--bad)}
.spark-zero{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 2}
.sdetail{padding:16px 18px}
.sdetail>.head h3{font-size:16px}
.sdetail .now{margin:2px 0 10px}
.sstats{margin:6px 0 12px}
.sstats .stat .value{font-family:inherit;font-size:19px;letter-spacing:-.2px}
.sgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));margin-top:12px}
.sgrid .liq-figure{margin-top:0}
.fig-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fig-title{font-weight:650;font-size:14px}
.fig-sub{font-size:12.5px;color:var(--muted);margin:2px 0 8px}
.warning-text{color:var(--warn)}
.danger-text{color:var(--bad)}
.liq-chart .ref-line{stroke:var(--ink);stroke-width:2.4;fill:none;stroke-linejoin:round}
.liq-chart .series-line{stroke-width:1.6;fill:none;stroke-linejoin:round;opacity:.95}
.liq-chart .route-mark.good{fill:var(--good)}.liq-chart .route-mark.danger{fill:var(--bad)}.liq-chart .route-mark.neutral{fill:var(--muted)}
.route-key{font-size:11px}.route-key.good{color:var(--good)}
.swatch.ref{background:var(--ink);height:3px;border-radius:2px}
.liq-chart .flow-band{fill:none;opacity:.55;stroke-linecap:butt}
.liq-chart .flow-band:hover{opacity:.85}
.liq-chart .flow-band.open{stroke:var(--muted);stroke-dasharray:4 3}
.liq-chart .flow-open{fill:var(--muted)}
.liq-chart .flow-label{fill:var(--ink);font:600 12.5px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.liq-chart .result-line{fill:none;stroke-width:2;stroke-linejoin:round}
.liq-chart .result-line.good{stroke:var(--good)}.liq-chart .result-line.danger{stroke:var(--bad)}
.liq-chart .result-dot{stroke:var(--paper);stroke-width:2}
.liq-chart .result-dot.good{fill:var(--good)}.liq-chart .result-dot.danger{fill:var(--bad)}
.tip-row .num{font-variant-numeric:tabular-nums}
/* funds split: quoting first */
.frow{margin:10px 0 4px}
.fhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}
.fbar{display:flex;height:16px;border-radius:5px;overflow:hidden;background:var(--neutral-bg);gap:2px}
.fbar .seg{display:block;min-width:3px}
.seg-book{background:#3987e5}
.seg-aside{background:repeating-linear-gradient(135deg,#3987e5 0 3px,#1d4574 3px 7px)}
.seg-other{background:#d95926}
.seg-blocked{background:#898781}
.seg-free{background:#199e70}
.fnums{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted);margin-top:6px}
.fnums>span{display:inline-flex;align-items:center;gap:6px}
.fnums .num{color:var(--ink)}
.meter{height:10px;border-radius:5px;background:var(--neutral-bg);overflow:hidden;margin:6px 0 10px}
.meter span.capped{background:var(--warn)}
.campaign-meter{height:8px;margin:10px 0}
.campaign-embedded{margin-top:4px}
.markets-box{margin-top:14px}
.mchips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.mchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--neutral-bg);font-size:13px;border:1px solid var(--line)}
.mchip .dot{width:8px;height:8px;border-radius:50%;background:var(--good)}
.mchip.out{color:var(--muted)}.mchip.out .dot{background:var(--warn)}
.left-out{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}
.left-out li{margin:2px 0}
@media(max-width:760px){.sgrid{grid-template-columns:1fr}.stiles{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.stiles{grid-template-columns:1fr}}

/* ---- Run and service: status tiles and one data-sources table (client 2026-10-01) ------------------------------- */
.health-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));margin-bottom:12px}
.htile{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);
  border-left:3px solid var(--line-strong);min-width:0}
.htile.good{border-left-color:var(--good)}.htile.warning{border-left-color:var(--warn)}.htile.danger{border-left-color:var(--bad)}
.hlabel{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.4px;font-weight:650}
.hvalue{font-size:18px;font-weight:700;letter-spacing:-.2px}
.hsub{font-size:12.5px;color:var(--muted)}
.htile details.raw{margin-top:4px}
.sources-card{margin-bottom:12px}
.src-summary{display:flex;gap:6px}
.src-table td{vertical-align:middle}
.src-table .src-group td{background:var(--paper-2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:650;padding-top:6px;padding-bottom:6px}
.src-table tr.src-attn td{background:rgba(227,165,58,.05)}
.src-table .code{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.sdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--muted)}
.sdot.good{background:var(--good)}.sdot.warning{background:var(--warn)}.sdot.danger{background:var(--bad)}
/* The limits' starting point (client 2026-10-02) at the top of "Money and risk", and an on/off setting as a switch. */
.starting-point{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:12px 0 4px}
.starting-point p{flex:1 1 260px}
.starting-point button{margin-left:0}
.switch-row{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:36px}
input.switch{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:44px;min-height:0;height:24px;padding:0;border-radius:999px;border:1px solid var(--line-strong);background:var(--neutral-bg);position:relative;cursor:pointer;transition:background .12s,border-color .12s}
input.switch::before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .12s,background .12s}
input.switch:checked{background:var(--accent);border-color:var(--accent)}
input.switch:checked::before{transform:translateX(20px);background:var(--accent-ink)}
input.switch:disabled{cursor:not-allowed;opacity:.45}
.switch-state{font-weight:600}
/* Balance history at the top of Balances (client 2026-10-18): stacked bands with 2px surface gaps, booking marks above the
   plot, a pinned or hovered point explained below. Bands are named by the legend, the end labels, the detail and the table. */
.balance-figure{margin:0 0 14px}
.balance-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.stats.balance-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:4px 0 10px}
.balance-kpis .kpi-label{display:inline-flex;align-items:center;gap:6px}
.balance-kpis .stat .value{font-size:19px}
.shape-icon{flex:none;color:var(--ink)}
.balance-legend{display:grid;gap:4px;margin-bottom:6px}
.balance-legend .legend{margin:0}
.legend .legend-value{color:var(--ink)}
.faint-legend{font-size:12px}
.dash-key{display:inline-block;width:0;height:12px;border-left:1px dashed var(--muted)}
.liq-chart.balance-chart{cursor:crosshair;touch-action:pan-y}
.balance-chart:focus{outline:none}
.balance-chart:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
.balance-chart .band{opacity:.88}
.balance-chart .band-gap{stroke:var(--paper);stroke-width:2;fill:none;stroke-linejoin:round}
.balance-chart .event-line{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;opacity:.6;pointer-events:none}
.balance-chart .booking-mark{fill:var(--ink)}
.balance-chart .gap-label{fill:var(--faint);font:11px var(--mono)}
.balance-chart .end-label{fill:var(--muted);font:12px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.balance-chart .cursor{stroke:var(--ink);stroke-width:1}
.balance-chart .pin-line{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3;pointer-events:none}
.balance-chart .dot{stroke:var(--paper);stroke-width:2;pointer-events:none}
.balance-plot{position:relative}
.balance-tooltip{position:absolute;top:12px;z-index:1;pointer-events:none;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.5;width:max-content;max-width:min(340px,calc(100% - 16px));box-shadow:0 3px 12px #0003;overflow-wrap:anywhere}
.balance-tooltip .muted{font-size:11px}
.balance-detail{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:8px;min-height:200px}
.bd-head{display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;flex-wrap:wrap;margin-bottom:6px}
.bd-title{font-size:15px;font-weight:650}
.bd-sub{font-size:13px;color:var(--muted)}
.bd-status{font-size:12px;color:var(--faint)}
.bd-point-values{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:14px;margin:4px 0 12px}
.bd-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:8px 28px}
.bd-label{font-size:12px;color:var(--faint);margin:0 0 4px}
.bd-event{display:flex;gap:10px;padding:9px 0;margin:0;border-top:1px solid var(--line);font-size:14px}
.bd-icon{padding-top:3px}
.bd-body{min-width:0;flex:1}
.bd-type{font-size:12px;color:var(--faint)}
.bd-text{font-size:14px;overflow-wrap:anywhere}
.bd-chips{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:13px}
.bd-chip{display:inline-flex;align-items:center;gap:5px}
.bd-balances{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 16px;font-size:13px;align-items:baseline}
.bd-balances .h{font-size:12px;color:var(--faint)}
.bd-balances .r{text-align:right}
.bd-balances .total{border-top:1px solid var(--line);padding-top:6px;font-weight:650}
.bd-name{display:flex;align-items:baseline;gap:6px;min-width:0}
.bd-name .swatch{transform:translateY(1px)}
.bd-amounts{display:block;font-size:12px;color:var(--faint);overflow-wrap:anywhere}
.balance-foot{margin-top:8px}
@media(max-width:760px){.bd-cols{grid-template-columns:1fr}.stats.balance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- 2026-10-22: notifications page, one period for the balances, the balance table ----------------------------------- */
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.checks-chip.danger{background:var(--bad-bg);border-color:transparent;color:var(--bad)}
.notes-chip[aria-current=page]{box-shadow:inset 0 0 0 1px currentColor}
.notes table{min-width:820px}
.notes td{vertical-align:middle}
.notes th.note-act,.notes td.note-act{width:1%}
.note-row td.note-type{white-space:nowrap;width:1%}
.note-row.danger td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.note-row.warning td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.note-row.neutral td:first-child{box-shadow:inset 3px 0 0 var(--faint)}
.note-title{display:block;font-weight:650}
.note-row td .sub{overflow-wrap:anywhere}
.note-row td.note-where,.note-row td.note-status{color:var(--muted);font-size:13px}
.note-row td.note-where{min-width:120px;max-width:280px}
.note-row td.note-status{white-space:nowrap}
.note-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;white-space:nowrap}
.note-detail-row td{background:var(--paper-2);font-size:14px;color:var(--muted)}
.note-detail-row td p{max-width:980px;margin-bottom:6px}
.tip-total{margin-top:2px}
.tip-assets{display:grid;grid-template-columns:auto auto auto;gap:1px 12px;margin:6px 0 4px;padding-top:6px;border-top:1px solid var(--line)}
.tip-sym{font-weight:600;display:inline-flex;align-items:center;gap:5px}
.tip-amount,.tip-usd{text-align:right}
.tip-usd{color:var(--muted)}
.balance-table{margin-top:12px}
.balance-table table{min-width:880px;font-size:13.5px}
.balance-table tbody th,.balance-table tfoot th{position:static;background:none;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);font-weight:650;white-space:nowrap;vertical-align:top;padding:9px 12px}
.balance-table td{padding:9px 12px}
.balance-table td.bt-value{font-weight:700;white-space:nowrap}
.balance-table td.bt-asset{text-align:right;white-space:nowrap}
.balance-table td.bt-none{color:var(--faint)}
.bt-venue{display:inline-flex;align-items:center;gap:8px}
.bt-venue .chip{margin-left:2px}
.bt-missing{display:block;font-size:12px;font-weight:500;white-space:normal}
.bt-amount{display:block;font-weight:650}
.bt-usd{display:block;color:var(--muted);font-size:12px}
.bt-delta{display:block;font-size:12px}
.bt-delta.good{color:var(--good)}
.bt-delta.danger{color:var(--bad)}
.bt-split{display:block;color:var(--faint);font-size:11.5px;white-space:normal;max-width:210px;margin-left:auto;line-height:1.35;margin-top:2px}
.bt-many .bt-amount:not(:first-child){margin-top:6px}
.balance-table .balance-total th,.balance-table .balance-total td{border-top:1px solid var(--line-strong);border-bottom:0;background:var(--paper-2)}
@media(max-width:760px){
  .balance-table table,.balance-table tbody,.balance-table tfoot{display:block;min-width:0}
  .balance-table thead{display:none}
  .balance-table tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 12px;border-bottom:1px solid var(--line)}
  .balance-table tbody th,.balance-table tfoot th,.balance-table td{border:0;padding:0;background:none}
  .balance-table tbody th,.balance-table tfoot th{flex:1 1 auto;white-space:normal}
  .balance-table td.bt-value{flex:none}
  .balance-table td.bt-asset{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;text-align:left;white-space:normal}
  .balance-table td.bt-asset::before{content:attr(data-symbol);font-weight:700;min-width:48px;color:var(--muted)}
  .balance-table td.bt-none{display:none}
  .bt-amount,.bt-usd,.bt-delta{display:inline}
  .bt-split{flex-basis:100%;max-width:none;margin-left:58px}
  .balance-total{background:var(--paper-2)}
}
.funding .funding-address { overflow-wrap:anywhere; white-space:pre-wrap; }
.funding .funding-message { white-space:pre-wrap; overflow-wrap:anywhere; padding:1rem; background:var(--bg,#0c0f14); border:1px solid var(--line,#303944); border-radius:8px; }
.funding label { display:block; margin-top:1rem; }
.funding input, .funding select { display:block; width:min(100%,38rem); margin:.4rem 0; }
.funding button { margin:.5rem .5rem .5rem 0; }
