:root {
  --bg: #f8f7f3; --ink: #202624; --muted: #626b66; --line: #dedfd8;
  --good: #246444; --bad: #a23a31; --warn: #845811;
  --good-soft: #e7ede6; --bad-soft: #f1e6e1; --subtle: #eeede7;
  --gutter: clamp(24px,3.3vw,64px); --space: 8px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.5 Arial,sans-serif; }
body.modal-open { overflow:hidden; }
button,input { font:inherit; color:inherit; }
button { cursor:pointer; border:1px solid var(--line); background:transparent; padding:8px 16px; border-radius:4px; }
button:disabled { opacity:.4; cursor:default; }
button:hover:not(:disabled) { background:var(--subtle); }
button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible,summary:focus-visible { outline:2px solid var(--good); outline-offset:4px; }
a { color:inherit; text-underline-offset:4px; }
.container { width:100%; max-width:1440px; margin-inline:auto; padding-inline:var(--gutter); }
h1,h2,h3,p { margin:0; }
h1 { font-size:34px; line-height:1.2; font-weight:600; letter-spacing:-.03em; }
h2 { font-size:22px; line-height:1.3; font-weight:600; letter-spacing:-.02em; }
h3 { font-size:17px; font-weight:600; }
.muted { color:var(--muted); }
.positive { color:var(--good); }
.negative { color:var(--bad); }
.num,.balance,.result { font-variant-numeric:tabular-nums; }
.header { display:flex; align-items:center; gap:48px; min-height:96px; }
.brand { text-decoration:none; font-size:22px; font-weight:700; letter-spacing:-.04em; white-space:nowrap; }
.brand span { margin-left:4px; font-weight:400; }
nav { display:flex; gap:8px; }
nav button { border:0; padding:8px 12px; color:var(--muted); }
nav button[aria-current=page] { color:var(--ink); background:var(--subtle); font-weight:600; }
.header-status { margin-left:auto; text-align:right; font-size:13px; color:var(--muted); }
.header-status span { display:block; }
#connection.live { color:var(--good); }
#connection.offline { color:var(--warn); }
.page { padding-top:24px; min-height:calc(100dvh - 192px); }
.page-title,.section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.page-title { margin-bottom:32px; }
.page-title>span { font-size:13px; text-align:right; }
.overview-grid { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:48px; }
.capital-area,.allocation-area { min-width:0; }
.balance-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.balance { font-size:52px; font-weight:600; letter-spacing:-.045em; line-height:1.1; }
.result { font-size:17px; margin-top:8px; }
.segments { display:flex; gap:4px; flex-wrap:wrap; }
.segments button { border:0; padding:4px 8px; font-size:13px; color:var(--muted); white-space:nowrap; }
.segments button[aria-pressed=true] { color:var(--bg); background:var(--ink); }
.chart { position:relative; width:100%; touch-action:pan-y; }
.capital-chart { height:264px; margin-top:24px; }
.chart svg { display:block; width:100%; height:100%; overflow:visible; }
.chart svg text { font-family:Arial,sans-serif; fill:var(--muted); font-variant-numeric:tabular-nums; }
.chart-footer { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin-top:8px; }
.chart-empty { height:100%; display:flex; align-items:center; justify-content:center; color:var(--muted); }
.allocation-area .section-head h2 { font-size:17px; }
#allocation-chart { height:200px; display:flex; align-items:center; justify-content:center; margin:8px 0; }
#allocation-chart svg { width:200px; height:200px; }
.allocation-legend { display:grid; gap:8px; }
.allocation-item { display:grid; grid-template-columns:12px 1fr auto; align-items:center; text-align:left; gap:8px; border:0; border-radius:0; padding:0; width:100%; background:none; font-size:13px; }
.allocation-item[aria-pressed=true] { color:var(--good); font-weight:600; }
.swatch { width:8px; height:8px; border-radius:50%; display:inline-block; }
.allocation-item .num { color:var(--muted); }
.activity { margin-top:32px; display:flex; align-items:center; gap:12px; padding:16px 0; font-size:13px; }
.activity-dot { width:8px; height:8px; border-radius:50%; background:var(--good); flex-shrink:0; }
.activity button { margin-left:auto; padding:0; border:0; font-size:13px; flex-shrink:0; }
.positions-area,.performance-area { margin-top:32px; }
.holdings-visual { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:24px; }
.holding { display:block; width:100%; padding:0; border:0; border-radius:0; text-align:left; min-width:0; }
.holding:hover:not(:disabled) { background:none; }
.holding-title { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.holding-title strong { font-size:17px; font-weight:600; }
.holding-meta { display:flex; justify-content:space-between; gap:8px; font-size:13px; color:var(--muted); margin-top:4px; }
.holding-bar { display:block; height:8px; background:var(--line); position:relative; margin:12px 0 8px; border-radius:2px; overflow:hidden; }
.holding-bar span { display:block; height:100%; background:var(--ink); border-radius:2px; }
.holding:hover .holding-bar span { background:var(--good); }
.selection-note { margin-top:16px; font-size:13px; }
.selection-note button { padding:4px 8px; margin-left:8px; }
.performance-area { margin-bottom:32px; }
.text-button { border:0; padding:0; background:none; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.strategy-row { display:grid; grid-template-columns: minmax(150px,1.25fr) 120px minmax(160px,2fr) 120px; align-items:center; gap:24px; width:100%; text-align:left; border:0; border-radius:0; padding:16px 0; }
.strategy-row .strategy-name { font-weight:600; }
.strategy-row small { display:block; color:var(--muted); font-size:13px; font-weight:400; }
.strategy-row .num { text-align:right; }
.profit-track { height:32px; display:flex; align-items:center; position:relative; }
.profit-track:before { content:''; position:absolute; left:50%; width:1px; height:32px; background:var(--line); }
.profit-bar { position:absolute; height:8px; border-radius:2px; }
.mini-chart { height:32px; width:120px; }
.mini-chart svg { width:100%; height:100%; }
.strategy-selector { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.strategy-selector button[aria-pressed=true] { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.strategy-focus { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.strategy-focus .balance { font-size:34px; }
.strategy-focus p { margin-top:4px; font-size:13px; }
.strategy-chart { height:320px; margin-top:24px; }
.strategy-metrics,.drawer-metrics { display:flex; flex-wrap:wrap; gap:32px 48px; margin:32px 0; }
.strategy-metrics dt,.drawer-metrics dt { font-size:13px; color:var(--muted); }
.strategy-metrics dd,.drawer-metrics dd { margin:4px 0 0; font-size:22px; font-variant-numeric:tabular-nums; }
.table-scroll { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:15px; }
th,td { text-align:left; padding:12px 16px 12px 0; border-bottom:1px solid var(--line); height:52px; }
th { color:var(--muted); font-size:13px; font-weight:400; position:sticky; top:0; background:var(--bg); }
th.num,td.num { text-align:right; }
td button { border:0; padding:0; text-align:left; }
tbody tr:hover { background:var(--subtle); }
details { margin-top:24px; }
summary { cursor:pointer; font-size:13px; color:var(--muted); }
details p { max-width:66ch; margin-top:12px; }
details a { display:inline-block; margin-top:8px; font-size:13px; }
.opportunities { margin-top:24px; }
.opportunity { display:grid; grid-template-columns:200px minmax(160px,1fr) 120px 1fr; align-items:center; gap:24px; padding:16px 0; }
.opportunity h3 { font-size:17px; }
.opportunity small { font-size:13px; color:var(--muted); }
.opportunity button { padding:0; border:0; text-align:left; }
.opportunity .num { text-align:right; }
.opportunity .reason { font-size:13px; color:var(--muted); }
.market-instruments { margin-top:48px; }
input { background:transparent; border:1px solid var(--line); border-radius:4px; padding:8px 12px; width:100%; }
.instrument-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:24px; }
.instrument-button { padding:0; border:0; text-align:left; }
.instrument-button strong,.instrument-button small { display:block; }
.instrument-button small { font-size:13px; color:var(--muted); margin-top:4px; }
.journal-filter { margin-bottom:24px; }
.log-row { display:grid; grid-template-columns:104px 1fr auto; gap:24px; padding:16px 0; }
.log-row time { font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums; }
.log-row small { display:block; color:var(--muted); font-size:13px; margin-top:4px; }
.log-row button { text-align:left; padding:0; border:0; }
.pagination { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:32px; }
.pagination span { color:var(--muted); font-size:13px; }
.empty { color:var(--muted); padding:32px 0; }
.error { color:var(--bad); margin-top:16px; }
footer { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; color:var(--muted); font-size:13px; padding:32px 0; }
.modal-layer { position:fixed; inset:0; z-index:20; background:#20262466; display:flex; justify-content:flex-end; }
.drawer { width:min(840px,100%); height:100dvh; overflow-y:auto; background:var(--bg); padding:32px; box-shadow:-8px 0 32px #20262422; }
.drawer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.drawer-head button { flex-shrink:0; }
.drawer h2 { font-size:34px; }
.drawer .subtitle { color:var(--muted); margin-top:4px; font-size:13px; }
.drawer-chart { height:320px; margin-top:32px; }
.drawer .chart-footer { margin-bottom:24px; }
.drawer-position { padding:16px 0; }
.drawer-position p { margin-top:4px; }
.drawer .rules { margin-top:24px; max-width:66ch; }
.drawer .rules p { margin-top:16px; }
.drawer .trade-detail { margin-top:24px; }
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(min-width:1800px) { .capital-chart { height:320px; } }
@media(max-width:1100px) { .header { gap:24px; } .overview-grid { gap:32px; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); } .balance { font-size:34px; } .strategy-row { gap:16px; grid-template-columns:minmax(140px,1fr) 100px minmax(100px,1fr) 100px; } .mini-chart { width:100px; } .opportunity { grid-template-columns:160px 1fr 80px 1fr; gap:16px; } }
@media(max-width:760px) {
  .header { flex-wrap:wrap; padding-top:24px; gap:16px; padding-bottom:16px; }
  .header-status { order:1; } nav { order:2; width:100%; gap:4px; } nav button { flex:1; padding:8px 4px; }
  .page { padding-top:16px; } .page-title { align-items:flex-start; margin-bottom:24px; }
  .page-title>span { max-width:144px; }
  .overview-grid { grid-template-columns:1fr; gap:32px; }
  .balance { font-size:34px; } .balance-row { align-items:flex-start; }
  .balance-row .segments { width:100%; }
  .capital-chart { height:224px; margin-top:16px; }
  #allocation-chart { height:184px; } #allocation-chart svg { width:184px; height:184px; }
  .allocation-area { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:center; }
  .allocation-area .section-head { grid-column:1/-1; }
  .allocation-item { grid-template-columns:8px 1fr; gap:4px 8px; font-size:13px; }
  .allocation-item .num { grid-column:2; }
  .activity { align-items:flex-start; flex-wrap:wrap; gap:8px; }
  .activity-dot { margin-top:5px; } #activity-text { flex:1; } .activity button { margin-left:16px; }
  .holdings-visual { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .holding-meta { flex-direction:column; gap:4px; }
  .section-head { align-items:flex-start; } .section-head h2 { font-size:22px; }
  .section-head .text-button { text-align:right; max-width:104px; }
  .strategy-row { grid-template-columns:minmax(120px,1fr) 100px; gap:8px 16px; }
  .strategy-row .mini-chart { display:none; } .strategy-row .profit-track { grid-column:1; grid-row:auto; }
  .strategy-row>.num { grid-column:2; grid-row:span 2; align-self:center; }
  .strategy-focus { align-items:flex-start; flex-wrap:wrap; gap:16px; }
  .strategy-chart { height:264px; } .strategy-metrics { gap:24px 32px; }
  .table-scroll table { min-width:620px; }
  .opportunity { grid-template-columns:1fr 80px; gap:8px 16px; }
  .opportunity .profit-track { grid-row:2; grid-column:1; } .opportunity .num { grid-column:2; grid-row:1; }
  .opportunity .reason { grid-column:1/-1; }
  .instrument-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .market-instruments .section-head { display:block; } .search-label { display:block; margin-top:16px; }
  .log-row { grid-template-columns:1fr auto; gap:8px 16px; } .log-row time { grid-column:1/-1; }
  footer { display:block; } footer>* { display:block; margin-top:8px; }
  .drawer { padding:24px; } .drawer h2 { font-size:22px; } .drawer-chart { height:264px; }
}
@media(prefers-reduced-motion:no-preference) { .holding-bar span { transition:width .2s; } }
@media(max-width:760px) {
  .strategy-row .strategy-name { grid-column:1; grid-row:1; }
  .strategy-row .profit-track { grid-column:1; grid-row:2; }
  .strategy-row>.num { grid-column:2; grid-row:1 / 3; }
}
.radar-grid { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:48px; }
.flow-focus,.radar-evaluation { min-width:0; }
.flow-focus .section-head { align-items:flex-start; }
.flow-focus .section-head p,.flow-time { font-size:13px; }
.flow-time { margin-top:8px; }
.flow-legend { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:24px; font-size:13px; }
.flow-legend strong { font-variant-numeric:tabular-nums; font-weight:400; }
.flow-main { min-height:200px; margin-top:16px; }
.flow-main svg,.drawer-flow svg { display:block; width:100%; height:auto; }
.radar-horizons { margin-top:16px; }
.radar-result { margin-top:24px; }
.radar-result strong { font-weight:400; }
.radar-result small,#radar-verdict { font-size:13px; }
.result-pending { height:32px; }
#radar-verdict { margin-top:24px; }
.pattern-result { display:flex; justify-content:space-between; gap:16px; margin-top:16px; font-size:13px; }
.radar-section { margin-top:48px; }
.radar-section>.section-head>span { font-size:13px; }
.radar-feeds { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px 24px; margin-top:24px; }
.flow-instrument { border:0; padding:0; border-radius:0; text-align:left; min-width:0; }
.flow-instrument[aria-pressed=true] strong { text-decoration:underline; text-underline-offset:4px; }
.flow-instrument svg { display:block; width:100%; height:64px; margin-top:8px; }
.flow-instrument .holding-title>span { font-size:13px; }
#radar-more,#signal-more { margin-top:24px; }
.signal-row { display:grid; grid-template-columns:160px 1fr auto; gap:24px; width:100%; text-align:left; border:0; border-radius:0; padding:16px 0; align-items:center; }
.signal-row small { display:block; color:var(--muted); font-size:13px; }
.radar-sample { font-size:13px; margin-top:32px; }
.radar-method { margin-bottom:32px; }
.drawer-flow { margin-top:32px; }
.outcome-list { margin-top:32px; }
@media(max-width:1100px) { .radar-grid { gap:32px; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); } }
@media(max-width:760px) {
  nav button { font-size:13px; }
  .radar-grid { grid-template-columns:1fr; gap:32px; }
  #page-radar>.page-title { flex-wrap:wrap; }
  #page-radar>.page-title>span { max-width:none; text-align:left; }
  .flow-main { min-height:0; }
  .radar-feeds { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .radar-feeds .holding-meta { flex-direction:row; }
  .radar-section>.section-head { flex-wrap:wrap; }
  .radar-section .search-label { width:100%; margin-top:0; }
  .signal-row { grid-template-columns:1fr auto; gap:8px 16px; }
  .signal-row>span:nth-child(2) { grid-row:2; grid-column:1/-1; }
  .signal-row>.num { grid-row:1; grid-column:2; }
}

.experiment-selector { margin-bottom:16px; }
.experiment-head { margin-bottom:32px; }
.experiment-head p { margin-top:8px; font-size:13px; }
#radar-decomposition { margin-top:24px; }
.radar-result .holding-title { flex-wrap:wrap; }

.exposure-summary { margin-top:24px; }
.exposure-summary .holding-bar { margin-bottom:0; }

.advisor-area { margin-bottom:calc(var(--space)*4); }
.advisor-area>p { margin:calc(var(--space)*2) 0; max-width:66ch; }
.advisor-area .section-head { flex-wrap:wrap; }
.advisor-review { margin-bottom:calc(var(--space)*3); }
.advisor-review p { margin-top:var(--space); }
.metric-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--space); padding-block:var(--space); }
.metric-row>span:last-child { margin-inline-start:auto; text-align:right; font-variant-numeric:tabular-nums; }

.exit-value { white-space:nowrap; }

.live-book-bar { display:flex; height:16px; background:#a23a31; margin-top:24px; }
.live-book-bar span { display:block; height:100%; background:#246444; }
#live-book strong { font-size:24px; font-weight:600; }
#live-flow-age { font-size:13px; text-align:right; }
#live-more { margin-top:24px; }
#legacy-radar { margin-bottom:32px; }
#legacy-radar>.segments { margin-top:32px; }
