:root {
  color-scheme: dark;
  --ink: #08090b;
  --surface: #111319;
  --surface-raised: #171a21;
  --surface-strong: #1c2029;
  --text: #f2f0eb;
  --muted: #aaa8a1;
  --faint: #858891;
  --line: rgba(255, 255, 255, .1);
  --line-strong: rgba(255, 255, 255, .17);
  --vertux: #7c5cff;
  --action-fill: #6c4df2;
  --action-hover: #7352f6;
  --vertux-soft: #b9a9ff;
  --positive: #5ed0a0;
  --warning: #e1b264;
  --negative: #ef7b76;
  --focus: #b9a9ff;
  --radius: 14px;
  --radius-large: 18px;
  --rail: 248px;
  --body: "Manrope", system-ui, sans-serif;
  --display: "Unbounded", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--ink); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--ink); color: var(--text); font: 14px/1.5 var(--body); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .56; }
a { color: inherit; }
svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
::selection { background: rgba(124, 92, 255, .4); color: #fff; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #0b0c0f; }
::-webkit-scrollbar-thumb { border: 3px solid #0b0c0f; border-radius: 10px; background: #454956; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100; padding: 10px 14px; border-radius: 9px; background: var(--text); color: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: none; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); }
.rail { position: sticky; top: 0; z-index: 30; height: 100vh; padding: 22px 15px 15px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #0b0c0f; }
.brand-lockup { min-height: 44px; padding: 0 8px; display: flex; align-items: center; gap: 11px; }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; background: #f5f3ed; color: #0a0b0e; font: 700 var(--type-caption)/1 var(--display); letter-spacing: -.04em; box-shadow: 0 10px 26px rgba(124, 92, 255, .18); }
.brand-lockup > span:last-child { min-width: 0; display: grid; gap: 2px; }
.brand-lockup strong { font: 650 13px/1.1 var(--display); letter-spacing: -.035em; }
.brand-lockup small { color: var(--vertux-soft); font: 500 var(--type-caption)/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.rail-close { display: none; position: absolute; top: 20px; right: 15px; }
.navigation { min-height: 0; margin-top: 27px; overflow: auto; }
.nav-heading { margin: 18px 10px 8px; color: #666973; font: 500 var(--type-caption)/1 var(--mono); letter-spacing: .11em; text-transform: uppercase; }
.nav-heading:first-child { margin-top: 0; }
.system-heading { padding-top: 15px; border-top: 1px solid var(--line); }
.nav-item { position: relative; width: 100%; min-height: 44px; padding: 0 10px; display: flex; align-items: center; gap: 11px; border: 0; border-radius: 9px; background: transparent; color: #9698a0; text-align: left; font-size: var(--type-caption); font-weight: 650; transition: color .16s ease, background .16s ease; }
.nav-item svg { width: 17px; height: 17px; }
.nav-item:hover { color: #e2e1dd; background: rgba(255, 255, 255, .035); }
.nav-item.active { color: #fff; background: rgba(124, 92, 255, .14); }
.nav-item.active::before { content: ""; position: absolute; left: -15px; width: 2px; height: 21px; border-radius: 2px; background: var(--vertux); box-shadow: 0 0 14px rgba(124, 92, 255, .58); }
.nav-alert { margin-left: auto; width: 7px; height: 7px; border-radius: 50%; background: var(--warning); }
.rail-footer { margin-top: auto; padding-top: 12px; display: grid; gap: 5px; border-top: 1px solid var(--line); }
.runtime-evidence { margin-top: 9px; padding: 9px 0 0; display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--line); }
.runtime-evidence > i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--warning); box-shadow: 0 4px 12px rgba(225, 178, 100, .3); }
.runtime-evidence[data-state="ready"] > i { background: var(--positive); box-shadow: 0 4px 12px rgba(94, 208, 160, .32); }
.runtime-evidence[data-state="preview"] > i, .runtime-evidence[data-state="fixture"] > i { background: var(--warning); }
.runtime-evidence[data-state="error"] > i { background: var(--negative); box-shadow: 0 4px 12px rgba(239, 123, 118, .28); }
.runtime-evidence > span { display: grid; }
.runtime-evidence strong { font-size: var(--type-caption); }
.runtime-evidence small { color: var(--faint); font: 500 var(--type-caption)/1.4 var(--mono); }
.owner-button { width: 100%; padding: 9px 7px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 9px; align-items: center; border: 1px solid transparent; border-radius: 10px; background: transparent; text-align: left; }
.owner-button:hover, .owner-button[aria-expanded="true"] { border-color: var(--line); background: rgba(255, 255, 255, .03); }
.owner-button > span:first-child { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid rgba(124, 92, 255, .35); border-radius: 9px; background: rgba(124, 92, 255, .12); color: var(--vertux-soft); font-weight: 800; }
.owner-button > span:nth-child(2) { min-width: 0; display: grid; }
.owner-button strong, .owner-button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.owner-button strong { font-size: var(--type-caption); }
.owner-button small { color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.owner-button > svg { width: 15px; height: 15px; color: var(--faint); }
.shell-control-wrap { position: relative; }
.shell-control { width: 100%; min-height: 44px; padding: 8px 7px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--muted); text-align: left; }
.shell-control:hover, .shell-control[aria-expanded="true"] { border-color: var(--line); background: rgba(255, 255, 255, .03); color: var(--text); }
.shell-control > svg { width: 17px; height: 17px; }
.shell-control > span { min-width: 0; display: grid; gap: 1px; }
.shell-control strong { font-size: var(--type-caption); }
.shell-control small { overflow: hidden; color: var(--faint); font: 500 var(--type-caption) var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.shell-menu { position: absolute; z-index: 50; right: 0; bottom: calc(100% + 8px); width: 218px; padding: 13px; display: grid; gap: 6px; border: 1px solid var(--line-strong); border-radius: 12px; background: #171a21; box-shadow: 0 18px 50px rgba(0, 0, 0, .5); }
.shell-menu > strong { font-size: var(--type-caption); }
.shell-menu > small { color: var(--faint); font-size: var(--type-caption); }
.shell-menu > a { margin-top: 5px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--vertux-soft); font-size: var(--type-caption); text-decoration: none; }
.shell-menu > a:hover { border-color: rgba(185, 169, 255, .5); color: #fff; }
.shell-menu > p { margin: 3px 0 0; color: var(--faint); font-size: var(--type-caption); line-height: 1.45; }

.workspace { min-width: 0; }
.topbar { min-height: 84px; padding: 14px clamp(20px, 3vw, 42px); display: flex; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); background: var(--ink); }
.topbar-title { min-width: 0; margin-right: auto; }
.topbar-title > span { color: var(--faint); font: 500 var(--type-caption)/1 var(--mono); letter-spacing: .05em; }
.topbar h1 { margin: 6px 0 0; font-size: 21px; line-height: 1.15; letter-spacing: -.03em; }
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.read-only-badge { min-height: 34px; padding: 0 11px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(94, 208, 160, .25); border-radius: 999px; background: rgba(94, 208, 160, .06); color: #b9ecd8; font: 600 var(--type-caption) var(--mono); white-space: nowrap; }
.read-only-badge svg { width: 14px; height: 14px; }
.button { min-height: 40px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--line-strong); border-radius: 10px; background: transparent; font-size: var(--type-caption); font-weight: 750; transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.button:hover:not(:disabled) { transform: translateY(-1px); border-color: rgba(185, 169, 255, .5); }
.button.primary { border-color: var(--action-fill); background: var(--action-fill); color: #fff; box-shadow: 0 9px 26px rgba(124, 92, 255, .2); }
.button.primary:hover:not(:disabled) { background: var(--action-hover); border-color: var(--action-hover); box-shadow: 0 12px 31px rgba(124, 92, 255, .3); }
.button.secondary { background: rgba(255, 255, 255, .025); }
.button.danger { border-color: rgba(239, 123, 118, .38); background: rgba(239, 123, 118, .07); color: #ffc4c0; }
.button.danger:hover:not(:disabled) { border-color: rgba(239, 123, 118, .7); background: rgba(239, 123, 118, .12); }
.button.full { width: 100%; }
.icon-button { width: 38px; height: 38px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 10px; background: transparent; color: var(--muted); }
.icon-button:hover { background: var(--surface-strong); color: #fff; }
.mobile-menu { display: none; }
.text-button { min-height: 34px; padding: 0 4px; border: 0; background: transparent; color: var(--vertux-soft); font-weight: 700; }
.text-button:hover { color: #fff; }

main { padding: 20px clamp(20px, 3vw, 42px) 72px; }
.environment-banner { min-height: 45px; padding: 10px 14px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 13px; border: 1px solid rgba(225, 178, 100, .3); border-radius: 12px; background: rgba(225, 178, 100, .07); color: #f0d8ad; }
.environment-banner strong { font-size: var(--type-caption); }
.environment-banner span { color: #d0c1a7; font-size: var(--type-caption); }
.environment-banner code { color: var(--warning); font: 500 var(--type-caption) var(--mono); letter-spacing: .06em; }
.environment-banner.live { border-color: rgba(94, 208, 160, .25); background: rgba(94, 208, 160, .05); color: #c2efdf; }
.quality-strip { margin: 12px 0 24px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.quality-strip > div { min-width: 0; padding: 14px 16px; display: grid; gap: 2px; border-right: 1px solid var(--line); }
.quality-strip > div:first-child { padding-left: 0; }
.quality-strip > div:last-child { border-right: 0; }
.quality-strip span { color: var(--faint); font-size: var(--type-caption); }
.quality-strip strong { overflow: hidden; color: #dcdbd6; font-size: var(--type-caption); text-overflow: ellipsis; white-space: nowrap; }
.quality-strip small { overflow: hidden; color: var(--faint); font: 500 var(--type-caption) var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.quality-strip .stale { color: var(--warning); }
.quality-strip .error { color: var(--negative); }
.quality-strip .ready { color: var(--positive); }

.view { display: none; }
.view.active { display: block; animation: view-in .24s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes view-in { from { opacity: .01; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.portfolio-ledger { display: grid; gap: 15px; }
.portfolio-headline { min-height: 144px; padding: 24px 27px; display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; border: 1px solid var(--line); border-radius: var(--radius-large); background: radial-gradient(circle at 86% 42%, rgba(124, 92, 255, .12), transparent 32%), var(--surface); box-shadow: 0 18px 42px rgba(0, 0, 0, .18); }
.headline-copy > span, .headline-pnl > span { color: var(--muted); font-size: var(--type-caption); }
.headline-value { margin: 9px 0 7px; display: block; font: 650 clamp(35px, 4.4vw, 57px)/1 var(--display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.headline-copy p { margin: 0; color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.headline-pnl { min-width: 245px; padding-left: 26px; border-left: 1px solid var(--line); }
.headline-pnl strong { margin: 9px 0 5px; display: block; color: var(--positive); font: 650 27px/1.1 var(--display); letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.headline-pnl small { color: var(--faint); font-size: var(--type-caption); }
.overview-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(270px, .55fr); gap: 15px; }
.chart-surface, .evidence-column, .positions-surface, .portfolio-breakdown, .data-surface, .analytics-primary, .ranking-surface, .instrument-surface, .market-vision-surface, .margin-surface, .ai-request, .ai-report, .connection-surface, .sync-pipeline, .sync-history, .latency-surface, .service-center-host { border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.surface-head { min-height: 70px; padding: 15px 19px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.surface-head h2, .surface-head h3, .section-head h2 { margin: 0; font-size: 16px; letter-spacing: -.025em; }
.surface-head p, .section-head p { margin: 4px 0 0; color: var(--muted); font-size: var(--type-caption); }
.range-switch { display: flex; gap: 3px; }
.range-switch button, .chart-toolbar button { min-height: 31px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; color: var(--faint); font: 600 var(--type-caption) var(--mono); }
.range-switch button { font: 600 var(--type-caption) var(--body); white-space: nowrap; }
.range-switch button:hover, .range-switch button.active, .chart-toolbar button:hover, .chart-toolbar button.active { background: var(--surface-strong); color: #fff; }
.chart-frame { position: relative; min-height: 280px; }
.chart-host { width: 100%; height: 280px; }
.chart-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 30px; color: var(--faint); text-align: center; }
.chart-frame.chart-frame-empty { min-height: 170px; height: auto; }
.chart-frame-empty .chart-empty { position: static; min-height: 170px; max-width: 520px; margin: 0 auto; color: var(--muted); font-size: 13px; line-height: 1.7; align-content: center; }
.chart-foot { min-height: 42px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.chart-foot > span:first-child { display: flex; align-items: center; gap: 7px; }
.legend-line { width: 22px; height: 2px; border-radius: 2px; background: var(--vertux); }
.evidence-column { padding: 20px; }
.evidence-column > h2 { margin: 0 0 9px; font-size: 14px; }
.metric-ledger { margin: 0; }
.metric-ledger > div { padding: 13px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 15px; border-bottom: 1px solid var(--line); }
.metric-ledger dt { color: var(--muted); font-size: var(--type-caption); }
.metric-ledger dd { margin: 0; font: 600 13px var(--mono); font-variant-numeric: tabular-nums; }
.metric-ledger small { grid-column: 1 / -1; color: var(--faint); font-size: var(--type-caption); }
.method-note { margin-top: 17px; display: grid; grid-template-columns: auto 1fr; gap: 10px; color: var(--vertux-soft); }
.method-note svg { width: 17px; margin-top: 2px; }
.method-note p { margin: 0; display: grid; gap: 3px; }
.method-note strong { color: #d9d2ff; font-size: var(--type-caption); }
.method-note span { color: var(--muted); font-size: var(--type-caption); line-height: 1.5; }
.positions-surface { overflow: hidden; }
.table-scroll { max-width: 100%; overflow: auto; scrollbar-gutter: stable; }
table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.wide-ledger { min-width: 1180px; }
th { padding: 11px 16px; border-bottom: 1px solid var(--line); color: var(--faint); text-align: left; font: 500 var(--type-caption) var(--mono); letter-spacing: .04em; }
td { padding: 13px 16px; border-bottom: 1px solid rgba(255, 255, 255, .065); color: #d3d2cd; font-size: var(--type-caption); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: rgba(255, 255, 255, .018); }
.numeric { text-align: right; font-variant-numeric: tabular-nums; }
td.numeric { font-family: var(--mono); font-size: var(--type-caption); }
.cell-note { margin-top: 3px; display: block; color: var(--faint); font: 500 var(--type-caption)/1.4 var(--mono); }
.unsupported { color: var(--warning); font: 500 var(--type-caption) var(--mono); }
.instrument-cell { display: grid; gap: 2px; }
.instrument-cell strong { font-size: var(--type-caption); }
.instrument-cell small { color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.asset-chip, .status-chip, .version-chip, .analysis-label { min-height: 25px; padding: 0 8px; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font: 500 var(--type-caption) var(--mono); }
.status-chip.fresh { border-color: rgba(94, 208, 160, .25); color: var(--positive); }
.status-chip.stale { border-color: rgba(225, 178, 100, .3); color: var(--warning); }
.positive { color: var(--positive) !important; }
.negative { color: var(--negative) !important; }
.empty-cell { height: 90px; color: var(--faint); text-align: center; white-space: normal; }

.evidence-chip { min-height: 27px; padding: 0 9px; display: inline-flex; align-items: center; flex: 0 0 auto; border: 1px solid rgba(185, 169, 255, .24); border-radius: 999px; color: var(--vertux-soft); font: 600 var(--type-caption) var(--mono); white-space: nowrap; }
.portfolio-breakdown { overflow: hidden; }
.portfolio-rows { padding: 4px 19px 12px; }
.portfolio-row { min-height: 74px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 18px; align-items: center; border-bottom: 1px solid var(--line); }
.portfolio-row:last-child { border-bottom: 0; }
.portfolio-row > span { min-width: 0; display: grid; gap: 2px; }
.portfolio-row strong { overflow: hidden; font-size: var(--type-caption); text-overflow: ellipsis; white-space: nowrap; }
.portfolio-row small { color: var(--faint); font: 500 var(--type-caption)/1.45 var(--mono); }
.allocation-track { grid-column: 1 / -1; height: 3px; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, .07); }
.allocation-track i { width: var(--allocation); height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--vertux), var(--vertux-soft)); }
.closed-positions-surface { margin-top: 15px; overflow: hidden; }

.period-controls { margin-bottom: 15px; padding: 13px 15px; display: grid; grid-template-columns: auto minmax(135px, .45fr) minmax(135px, .45fr) auto minmax(210px, 1fr); gap: 10px; align-items: end; border-block: 1px solid var(--line); }
.period-presets { display: flex; gap: 3px; }
.period-presets button { min-height: 40px; padding-inline: 10px; border: 0; border-radius: 8px; background: transparent; color: var(--faint); font: 600 var(--type-caption) var(--mono); }
.period-presets button:hover, .period-presets button.active { background: var(--surface-strong); color: #fff; }
.period-status { margin: 0; align-self: center; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; }
.statistics-ledger { margin-top: 15px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.stat-comparison, .cash-flow-list, .relative-bar-chart, .efficiency-list { padding: 4px 19px 12px; }
.stat-comparison-row { min-height: 76px; padding: 12px 0; display: grid; grid-template-columns: minmax(140px, .75fr) minmax(260px, 1fr); gap: 18px; align-items: center; border-bottom: 1px solid var(--line); }
.stat-comparison-row:last-child { border-bottom: 0; }
.stat-comparison-row > span { min-width: 0; display: grid; gap: 3px; }
.stat-comparison-row > span strong { overflow: hidden; font-size: var(--type-caption); text-overflow: ellipsis; white-space: nowrap; }
.stat-comparison-row small { color: var(--faint); font-size: var(--type-caption); }
.stat-comparison-row dl, .market-vision-row dl, .futures-risk-row dl { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.stat-comparison-row dl > div, .market-vision-row dl > div, .futures-risk-row dl > div { display: grid; gap: 3px; }
.stat-comparison-row dt, .market-vision-row dt, .futures-risk-row dt { color: var(--faint); font-size: var(--type-caption); }
.stat-comparison-row dd, .market-vision-row dd, .futures-risk-row dd { margin: 0; font: 650 var(--type-caption) var(--mono); font-variant-numeric: tabular-nums; }
.cash-flow-row { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.cash-flow-row:last-child { border-bottom: 0; }
.cash-flow-row > span { min-width: 0; display: grid; gap: 3px; }
.cash-flow-row strong { font-size: var(--type-caption); }
.cash-flow-row small { color: var(--faint); font-size: var(--type-caption); }
.cash-flow-row.deposit > span:first-child strong { color: var(--positive); }
.cash-flow-row.withdrawal > span:first-child strong { color: var(--warning); }
.relative-bar-row { min-height: 55px; display: grid; grid-template-columns: minmax(110px, .48fr) minmax(80px, 1fr) auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); }
.relative-bar-row:last-child { border-bottom: 0; }
.relative-bar-row > span { min-width: 0; display: grid; gap: 2px; }
.relative-bar-row strong { font: 650 var(--type-caption) var(--mono); }
.relative-bar-row small { color: var(--faint); font-size: var(--type-caption); }
.relative-bar { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, .065); }
.relative-bar i { width: var(--bar); height: 100%; display: block; border-radius: inherit; background: var(--positive); }
.relative-bar-row.worst .relative-bar i { background: var(--negative); }
.efficiency-row { min-height: 57px; display: grid; grid-template-columns: 24px minmax(76px, .45fr) minmax(100px, .7fr) auto auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line); }
.efficiency-row:last-child { border-bottom: 0; }
.efficiency-row > span { color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.efficiency-row > strong { font-size: var(--type-caption); }
.efficiency-row > small { color: var(--faint); font-size: var(--type-caption); }
.efficiency-row > b { font: 650 var(--type-caption) var(--mono); }
.efficiency-row > em { color: var(--muted); font: 500 var(--type-caption) var(--mono); font-style: normal; text-align: right; }

.market-vision-surface { margin-bottom: 15px; overflow: hidden; }
.market-vision-grid { padding: 5px 19px 13px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.market-vision-row { min-height: 70px; display: grid; grid-template-columns: minmax(90px, .8fr) minmax(150px, 1fr); gap: 14px; align-items: center; border-bottom: 1px solid var(--line); }
.market-vision-row > span { min-width: 0; display: grid; gap: 3px; }
.market-vision-row > span strong { font-size: var(--type-caption); }
.market-vision-row > span small { color: var(--faint); font-size: var(--type-caption); }
.market-vision-row dl { grid-template-columns: repeat(2, 1fr); }

.margin-surface { overflow: hidden; }
.margin-account-ledgers { display: grid; }
.margin-account { border-bottom: 1px solid var(--line); }
.margin-account > header { min-height: 46px; padding: 11px 19px 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.margin-account > header strong { font-size: var(--type-caption); }
.margin-account > header small { color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.margin-ledger { margin: 0; padding: 4px 19px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.margin-ledger > div { min-width: 0; min-height: 101px; padding: 18px 14px; display: grid; align-content: start; gap: 5px; border-right: 1px solid var(--line); }
.margin-ledger > div:first-child { padding-left: 0; }
.margin-ledger > div:last-child { padding-right: 0; border-right: 0; }
.margin-ledger dt { color: var(--muted); font-size: var(--type-caption); }
.margin-ledger dd { margin: 4px 0 0; font: 650 15px var(--mono); font-variant-numeric: tabular-nums; }
.margin-ledger small { color: var(--faint); font-size: var(--type-caption); line-height: 1.45; }
.margin-ledger .margin-buffer dd { color: var(--warning); }
.futures-risk-list { padding: 2px 19px 12px; border-top: 1px solid var(--line); }
.futures-risk-row { min-height: 67px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .6fr); gap: 18px; align-items: center; border-bottom: 1px solid var(--line); }
.futures-risk-row:last-child { border-bottom: 0; }
.futures-risk-row > span { min-width: 0; display: grid; gap: 3px; }
.futures-risk-row > span strong { font-size: var(--type-caption); }
.futures-risk-row > span small { overflow: hidden; color: var(--faint); font: 500 var(--type-caption) var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.futures-risk-row dl { grid-template-columns: repeat(2, 1fr); }
.risk-plan-layout { margin-top: 15px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 15px; align-items: start; }
.surface-note { margin: 0; padding: 13px 19px 16px; border-top: 1px solid var(--line); color: var(--warning); font-size: var(--type-caption); line-height: 1.55; }
.advisor-list { padding: 4px 19px; }
.advisor-row { min-height: 112px; padding: 15px 0; display: grid; grid-template-columns: minmax(100px, .6fr) auto; gap: 8px 16px; border-bottom: 1px solid var(--line); }
.advisor-row:last-child { border-bottom: 0; }
.advisor-row > span, .advisor-row > div { display: grid; gap: 3px; align-content: start; }
.advisor-row > span strong { font-size: var(--type-caption); }
.advisor-row small { color: var(--faint); font-size: var(--type-caption); }
.advisor-row > div { text-align: right; }
.advisor-row > div strong { color: var(--vertux-soft); font: 650 15px var(--mono); }
.advisor-row ul { grid-column: 1 / -1; margin: 1px 0 0; padding-left: 16px; color: var(--muted); font-size: var(--type-caption); line-height: 1.55; }
.advisor-warning { margin: 0; padding: 13px 19px 16px; border-top: 1px solid rgba(225, 178, 100, .22); color: var(--warning); font-size: var(--type-caption); line-height: 1.55; }

.section-head { min-height: 70px; margin-bottom: 14px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.section-head h2 { font-size: 24px; }
.section-head p { max-width: 72ch; font-size: var(--type-caption); }
.filters { margin-bottom: 14px; padding: 14px; display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)) auto; gap: 10px; align-items: end; border-block: 1px solid var(--line); }
label { display: grid; gap: 6px; color: var(--muted); font-size: var(--type-caption); font-weight: 650; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; background: #0c0e12; padding: 10px 11px; outline: 0; transition: border-color .15s, box-shadow .15s; }
input::placeholder, textarea::placeholder { color: #898c96; }
input:focus, select:focus, textarea:focus { border-color: rgba(185, 169, 255, .7); box-shadow: 0 0 0 3px rgba(124, 92, 255, .13); }
select { appearance: none; padding-right: 29px; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-repeat: no-repeat; background-size: 5px 5px; }
.data-surface { overflow: hidden; }
.analytics-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr); gap: 15px; }
.analytics-primary { padding: 7px 22px; }
.analytics-grid { margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); }
.analytics-grid > div { min-height: 122px; padding: 23px 18px; display: grid; align-content: start; border-bottom: 1px solid var(--line); }
.analytics-grid > div:nth-child(odd) { border-right: 1px solid var(--line); padding-left: 0; }
.analytics-grid > div:nth-child(even) { padding-right: 0; }
.analytics-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
.analytics-grid dt { color: var(--muted); font-size: var(--type-caption); }
.analytics-grid dd { margin: 11px 0 5px; font: 650 23px var(--display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.analytics-grid small { color: var(--faint); font-size: var(--type-caption); }
.ranking-surface { padding: 22px; }
.ranking-surface h3 { margin: 0 0 17px; font-size: 14px; }
.ranking-list { display: grid; gap: 3px; }
.ranking-row { min-height: 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; align-items: center; border-bottom: 1px solid var(--line); }
.ranking-row strong { font-size: var(--type-caption); }
.ranking-row span { font: 600 var(--type-caption) var(--mono); }
.ranking-row small { color: var(--faint); font-size: var(--type-caption); }
.empty-copy { color: var(--muted); font-size: var(--type-caption); line-height: 1.6; }
.instrument-heading { align-items: end; }
.instrument-picker { width: min(260px, 100%); }
.instrument-surface { overflow: hidden; }
.chart-toolbar { min-height: 52px; padding: 8px 13px; display: flex; align-items: center; gap: 3px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.chart-toolbar > span { width: 1px; height: 23px; margin: 0 6px; flex: 0 0 auto; background: var(--line); }
.chart-toolbar button { white-space: nowrap; }
.market-chart { height: min(58vh, 540px); min-height: 360px; }
.market-status { min-height: 44px; padding: 0 16px; display: flex; align-items: center; gap: 24px; border-top: 1px solid var(--line); color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.market-status strong { margin-left: auto; color: var(--warning); }
.ai-layout { display: grid; grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr); gap: 15px; }
.ai-request { padding: 22px; display: grid; gap: 15px; align-content: start; }
.ai-request h3 { margin: 0 0 3px; font-size: 15px; }
.ai-request label small { color: var(--faint); }
.ai-boundary { padding: 12px; display: grid; grid-template-columns: auto 1fr; gap: 9px; border: 1px solid rgba(124, 92, 255, .25); border-radius: 11px; background: rgba(124, 92, 255, .07); color: var(--vertux-soft); }
.ai-boundary p { margin: 0; color: #c4bed9; font-size: var(--type-caption); line-height: 1.5; }
.ai-request > small { color: var(--faint); font-size: var(--type-caption); }
.ai-report { min-height: 480px; padding: 24px; }
.ai-report-content { max-width: 78ch; }
.ai-report-content header { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.ai-report-content h3 { margin: 0; font-size: 20px; }
.ai-report-content section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.ai-report-content section:last-child { border-bottom: 0; }
.ai-report-content h4 { margin: 0 0 8px; font-size: var(--type-caption); }
.ai-report-content p, .ai-report-content li { color: #c5c4be; font-size: var(--type-caption); line-height: 1.65; }
.empty-state { min-height: 360px; display: grid; place-items: center; align-content: center; gap: 9px; color: var(--faint); text-align: center; }
.empty-state svg { width: 30px; height: 30px; color: var(--vertux-soft); }
.empty-state h3 { margin: 5px 0 0; color: #d8d7d2; font-size: 15px; }
.empty-state p { max-width: 55ch; margin: 0; font-size: var(--type-caption); line-height: 1.55; }
.connection-surface { margin-bottom: 15px; overflow: hidden; }
.connection-header { min-height: 76px; padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.connection-header h3 { margin: 0; font-size: 15px; }
.connection-header p { max-width: 72ch; margin: 5px 0 0; color: var(--muted); font-size: var(--type-caption); }
.connection-badge { min-height: 27px; padding: 0 9px; display: inline-flex; align-items: center; flex: 0 0 auto; border: 1px solid rgba(225, 178, 100, .3); border-radius: 999px; color: var(--warning); font: 600 var(--type-caption) var(--mono); }
.connection-surface[data-state="verified"] .connection-badge, .connection-surface[data-state="ready"] .connection-badge { border-color: rgba(94, 208, 160, .28); color: var(--positive); }
.connection-surface[data-state="error"] .connection-badge { border-color: rgba(239, 123, 118, .4); color: var(--negative); }
.connection-steps { margin: 0; padding: 0 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-bottom: 1px solid var(--line); }
.connection-steps li { position: relative; min-width: 0; min-height: 82px; padding: 17px 17px 16px 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-content: center; }
.connection-steps li:not(:last-child)::after { content: ""; position: absolute; top: 50%; right: 12px; width: 18px; height: 1px; background: var(--line-strong); }
.connection-steps i { width: 10px; height: 10px; margin-top: 4px; border: 2px solid var(--faint); border-radius: 50%; }
.connection-steps li.complete i { border-color: var(--positive); background: var(--positive); }
.connection-steps li.active i { border-color: var(--vertux-soft); background: var(--vertux); box-shadow: 0 0 0 4px rgba(124, 92, 255, .1); }
.connection-steps li.error i { border-color: var(--negative); background: var(--negative); }
.connection-steps span { min-width: 0; display: grid; gap: 2px; }
.connection-steps strong { overflow: hidden; color: #deddd8; font-size: var(--type-caption); text-overflow: ellipsis; white-space: nowrap; }
.connection-steps small { color: var(--faint); font-size: var(--type-caption); line-height: 1.45; }
.connection-meta { margin: 0; padding: 0 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.connection-meta > div { min-width: 0; padding: 14px 14px 14px 0; display: grid; gap: 3px; }
.connection-meta dt { color: var(--faint); font-size: var(--type-caption); }
.connection-meta dd { margin: 0; overflow: hidden; color: #d5d4cf; font: 500 var(--type-caption) var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.connection-actions { padding: 14px 20px 18px; display: flex; flex-wrap: wrap; gap: 9px; }
.connection-preview-note { margin: 0; padding: 0 20px 18px; color: #d4c4a9; font-size: var(--type-caption); line-height: 1.55; }
.sync-layout { display: grid; grid-template-columns: minmax(300px, .7fr) minmax(0, 1.1fr) minmax(230px, .55fr); gap: 15px; align-items: start; }
.sync-pipeline, .sync-history, .latency-surface { padding: 21px; }
.sync-pipeline h3, .sync-history h3, .latency-surface h3 { margin: 0; font-size: 14px; }
.sync-pipeline ol { margin: 18px 0 0; padding: 0; list-style: none; }
.sync-pipeline li { position: relative; min-height: 63px; display: grid; grid-template-columns: auto 1fr; gap: 12px; }
.sync-pipeline li:not(:last-child)::before { content: ""; position: absolute; top: 17px; bottom: -6px; left: 5px; width: 1px; background: var(--line); }
.sync-pipeline li > i { position: relative; z-index: 1; width: 11px; height: 11px; margin-top: 4px; border: 2px solid var(--faint); border-radius: 50%; background: var(--surface); }
.sync-pipeline li.complete > i { border-color: var(--positive); background: var(--positive); box-shadow: 0 0 0 4px rgba(94, 208, 160, .08); }
.sync-pipeline li.active > i { border-color: var(--vertux-soft); background: var(--vertux); box-shadow: 0 0 0 4px rgba(124, 92, 255, .1); }
.sync-pipeline li.error > i { border-color: var(--negative); background: var(--negative); }
.sync-pipeline li > span { display: grid; align-content: start; }
.sync-pipeline strong { font-size: var(--type-caption); }
.sync-pipeline small { color: var(--faint); font-size: var(--type-caption); }
.sync-history header { padding-bottom: 14px; display: flex; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); }
.sync-history header span { color: var(--faint); font: 500 var(--type-caption) var(--mono); }
.run-row { padding: 13px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 15px; border-bottom: 1px solid var(--line); }
.run-row strong { font-size: var(--type-caption); }
.run-row span { font: 500 var(--type-caption) var(--mono); }
.run-row small { color: var(--faint); font-size: var(--type-caption); }
.latency-surface dl { margin: 17px 0; }
.latency-surface dl > div { min-height: 47px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.latency-surface dt { color: var(--muted); font-size: var(--type-caption); }
.latency-surface dd { margin: 0; font: 650 14px var(--mono); }
.latency-surface p { margin: 0; color: var(--warning); font-size: var(--type-caption); line-height: 1.55; }
.service-center-host { min-height: 470px; padding: 25px; }
vertux-service-center {
  --vsc-surface: #171a21;
  --vsc-surface-strong: #1c2029;
  --vsc-text: #f2f0eb;
  --vsc-muted: #aaa8a1;
  --vsc-accent: #7c5cff;
  --vsc-font: Manrope, system-ui, sans-serif;
}

dialog { width: min(520px, calc(100% - 28px)); max-height: calc(100dvh - 28px); padding: 0; overflow: auto; border: 1px solid var(--line-strong); border-radius: 18px; background: var(--surface); color: var(--text); box-shadow: 0 30px 100px rgba(0, 0, 0, .65); }
dialog::backdrop { background: rgba(2, 3, 5, .78); backdrop-filter: blur(4px); }
.dialog-card { padding: 22px; display: grid; gap: 18px; }
.dialog-card > header { display: flex; justify-content: space-between; gap: 18px; }
.dialog-card h2 { margin: 0; font-size: 18px; }
.dialog-card header p { margin: 5px 0 0; color: var(--muted); font-size: var(--type-caption); }
.dialog-warning { padding: 13px; display: grid; grid-template-columns: auto 1fr; gap: 10px; border: 1px solid rgba(225, 178, 100, .28); border-radius: 11px; background: rgba(225, 178, 100, .07); color: var(--warning); }
.dialog-warning p { margin: 0; display: grid; gap: 4px; color: #d4c4a9; font-size: var(--type-caption); line-height: 1.55; }
.dialog-warning strong { color: #f1dbb7; }
.dialog-warning span { color: #d4c4a9; font-weight: 400; }
.capture-contract { margin: -4px 0 0; padding: 12px 13px; border-block: 1px solid var(--line); color: var(--muted); font-size: var(--type-caption); line-height: 1.6; }
.dialog-card label small { color: var(--faint); font-weight: 400; }
.confirm-line { grid-template-columns: auto 1fr; align-items: start; }
.confirm-line input { width: 17px; height: 17px; padding: 0; accent-color: var(--vertux); }
.confirm-line span { font-size: var(--type-caption); line-height: 1.5; }
.form-progress, .form-error { min-height: 18px; margin: -7px 0 0; font-size: var(--type-caption); }
.form-progress { color: var(--vertux-soft); }
.form-error { color: #ffaba7; }
.dialog-card > footer { display: flex; justify-content: flex-end; gap: 9px; }
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 80; max-width: min(430px, calc(100% - 44px)); padding: 12px 15px; border: 1px solid var(--line-strong); border-radius: 11px; background: #1b1e26; box-shadow: 0 18px 60px rgba(0, 0, 0, .5); color: #fff; font-size: var(--type-caption); }
.toast.error { border-color: rgba(239, 123, 118, .4); color: #ffd0cd; }
.live-flash { animation: live-flash .48s ease-out; }
@keyframes live-flash { from { background-color: rgba(94, 208, 160, .13); box-shadow: inset 0 0 0 1px rgba(94, 208, 160, .2); } to { background-color: transparent; box-shadow: none; } }

@media (max-width: 1180px) {
  .quality-strip { grid-template-columns: repeat(3, 1fr); }
  .quality-strip > div:nth-child(3) { border-right: 0; }
  .quality-strip > div:nth-child(n+4) { border-top: 1px solid var(--line); }
  .overview-grid, .analytics-layout, .risk-plan-layout { grid-template-columns: 1fr; }
  .margin-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .margin-ledger > div { border-bottom: 1px solid var(--line); }
  .margin-ledger > div:nth-child(3) { border-right: 0; }
  .margin-ledger > div:nth-last-child(-n+3) { border-bottom: 0; }
  .filters { grid-template-columns: repeat(3, 1fr); }
  .connection-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .connection-steps li:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .connection-steps li:nth-child(2)::after { display: none; }
  .connection-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sync-layout { grid-template-columns: 1fr 1fr; }
  .latency-surface { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .rail { position: fixed; left: 0; width: min(var(--rail), calc(100% - 46px)); transform: translateX(-105%); box-shadow: 22px 0 70px rgba(0, 0, 0, .55); transition: transform .2s ease-out; }
  body.rail-open::after { content: ""; position: fixed; inset: 0; z-index: 25; background: rgba(0, 0, 0, .6); }
  body.rail-open .rail { transform: none; }
  .rail-close, .mobile-menu { display: grid; }
  .topbar { position: sticky; top: 0; z-index: 20; }
  .read-only-badge { display: none; }
  .statistics-ledger { grid-template-columns: 1fr; }
  .period-controls { grid-template-columns: auto repeat(2, minmax(125px, 1fr)) auto; }
  .period-status { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .topbar { min-height: 72px; padding: 11px 14px; gap: 10px; }
  .topbar h1 { font-size: 17px; }
  .topbar-title > span { display: none; }
  .topbar-actions .button { min-width: 44px; min-height: 44px; padding: 0 10px; }
  .mobile-menu, .rail-close { width: 44px; height: 44px; }
  .topbar-actions .button span { display: none; }
  main { padding: 14px 12px 52px; }
  .environment-banner { grid-template-columns: 1fr; gap: 2px; }
  .environment-banner code { margin-top: 4px; }
  .quality-strip { grid-template-columns: 1fr 1fr; }
  .quality-strip > div { padding: 11px 10px; border-top: 1px solid var(--line); }
  .quality-strip > div:nth-child(odd) { padding-left: 0; }
  .quality-strip > div:nth-child(even) { border-right: 0; }
  .quality-strip > div:first-child, .quality-strip > div:nth-child(2) { border-top: 0; }
  .quality-strip > div:last-child { grid-column: 1 / -1; }
  .portfolio-headline { min-height: 0; padding: 20px; align-items: stretch; flex-direction: column; }
  .headline-value { font-size: 34px; }
  .headline-pnl { min-width: 0; padding: 17px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .headline-pnl strong { font-size: 21px; }
  .surface-head { align-items: flex-start; flex-direction: column; }
  .surface-head .range-switch { align-self: stretch; }
  .evidence-chip { white-space: normal; }
  .range-switch button { flex: 1; }
  .range-switch button, .chart-toolbar button { min-height: 44px; }
  .chart-frame, .chart-host { min-height: 240px; height: 240px; }
  .section-head, .instrument-heading { align-items: stretch; flex-direction: column; }
  .section-head h2 { font-size: 21px; }
  .connection-header { align-items: flex-start; flex-direction: column; }
  .connection-steps { padding-inline: 16px; grid-template-columns: 1fr; }
  .connection-steps li { min-height: 66px; padding-right: 0; border-bottom: 1px solid var(--line); }
  .connection-steps li:last-child { border-bottom: 0; }
  .connection-steps li::after { display: none; }
  .connection-meta { padding-inline: 16px; }
  .connection-actions { padding-inline: 16px; display: grid; grid-template-columns: 1fr; }
  .connection-actions .button { width: 100%; min-height: 44px; }
  .connection-preview-note { padding-inline: 16px; }
  .instrument-picker { width: 100%; }
  .filters { padding-inline: 0; grid-template-columns: 1fr 1fr; }
  .filters .button { grid-column: 1 / -1; }
  .period-controls { padding-inline: 0; grid-template-columns: 1fr 1fr; }
  .period-presets { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); }
  .period-presets button { min-height: 44px; }
  .period-controls .button { align-self: stretch; min-height: 44px; }
  .period-status { grid-column: 1 / -1; }
  .stat-comparison-row { grid-template-columns: 1fr; gap: 10px; }
  .stat-comparison-row dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-vision-grid { grid-template-columns: 1fr; }
  .margin-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .margin-ledger > div, .margin-ledger > div:nth-child(3) { padding-inline: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .margin-ledger > div:nth-child(odd) { padding-left: 0; }
  .margin-ledger > div:nth-child(even) { padding-right: 0; border-right: 0; }
  .margin-ledger > div:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }
  .margin-ledger > div:nth-last-child(-n+2) { border-bottom: 0; }
  .futures-risk-row { grid-template-columns: 1fr; gap: 9px; padding-block: 13px; }
  .analytics-grid { grid-template-columns: 1fr 1fr; }
  .analytics-grid > div { min-height: 108px; padding: 17px 10px; }
  .analytics-grid dd { font-size: 18px; }
  .market-chart { height: 390px; min-height: 320px; }
  .market-status { align-items: flex-start; flex-direction: column; gap: 4px; padding-block: 10px; }
  .market-status strong { margin-left: 0; }
  .ai-layout, .sync-layout { grid-template-columns: 1fr; }
  .latency-surface { grid-column: auto; }
}

@media (max-width: 430px) {
  .analytics-grid { grid-template-columns: 1fr; }
  .analytics-grid > div, .analytics-grid > div:nth-child(odd), .analytics-grid > div:nth-child(even) { min-height: 95px; padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .analytics-grid > div:last-child { border-bottom: 0; }
  .filters { grid-template-columns: 1fr; }
  .filters .button { grid-column: auto; }
  .period-controls { grid-template-columns: 1fr; }
  .period-controls > *, .period-presets, .period-status { grid-column: auto; }
  .period-presets { grid-template-columns: repeat(2, 1fr); }
  .portfolio-row { grid-template-columns: 1fr; }
  .portfolio-row .numeric { text-align: left; }
  .allocation-track { grid-column: auto; }
  .stat-comparison-row dl { grid-template-columns: 1fr; }
  .cash-flow-row { align-items: flex-start; flex-direction: column; justify-content: flex-start; gap: 8px; }
  .cash-flow-row .numeric { text-align: left; }
  .relative-bar-row { grid-template-columns: minmax(90px, 1fr) auto; }
  .relative-bar { grid-column: 1 / -1; grid-row: 2; }
  .efficiency-row { min-height: 0; padding-block: 13px; grid-template-columns: 22px minmax(0, 1fr); gap: 5px 10px; align-items: start; }
  .efficiency-row > span { grid-column: 1; grid-row: 1 / span 4; padding-top: 2px; }
  .efficiency-row > strong { grid-column: 2; grid-row: 1; }
  .efficiency-row > small { grid-column: 2; grid-row: 2; }
  .efficiency-row > b { grid-column: 2; grid-row: 3; margin-top: 2px; }
  .efficiency-row > em { grid-column: 2; grid-row: 4; text-align: left; }
  .market-vision-row { grid-template-columns: 1fr; gap: 9px; padding-block: 12px; }
  .margin-ledger { grid-template-columns: 1fr; }
  .margin-ledger > div, .margin-ledger > div:nth-child(odd), .margin-ledger > div:nth-child(even), .margin-ledger > div:nth-last-child(-n+2) { min-height: 82px; padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .margin-ledger > div:last-child { border-bottom: 0; }
  .futures-risk-row dl { grid-template-columns: 1fr 1fr; }
  .advisor-row { grid-template-columns: 1fr; }
  .advisor-row > div { text-align: left; }
  .advisor-row ul { grid-column: auto; }
  .connection-meta { grid-template-columns: 1fr; }
  .connection-meta > div { border-bottom: 1px solid var(--line); }
  .connection-meta > div:last-child { border-bottom: 0; }
  .dialog-card > footer { align-items: stretch; flex-direction: column-reverse; }
  .dialog-card > footer .button { width: 100%; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ==========================================================================
   Search Bar
   ========================================================================== */
.topbar-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 4px 12px;
  min-width: 220px;
  max-width: 380px;
  flex: 1;
  transition: border-color .15s ease, background .15s ease;
}
.topbar-search:focus-within {
  border-color: #8c73ff;
  background: rgba(140, 115, 255, 0.05);
}
.topbar-search .search-icon {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: var(--muted);
  flex-shrink: 0;
}
.topbar-search input {
  background: none;
  border: none;
  color: #fff;
  font-size: var(--type-caption);
  width: 100%;
  outline: none;
  font-family: inherit;
}
.topbar-search .search-kbd {
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--type-caption);
  color: var(--muted);
  background: rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  padding: 2px 5px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  white-space: nowrap;
}

/* ==========================================================================
   Tooltips & Popovers
   ========================================================================== */
.term-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(140, 115, 255, 0.14);
  border: 1px solid rgba(140, 115, 255, 0.35);
  color: #b9a9ff;
  font-size: var(--type-caption);
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  cursor: pointer;
  margin-left: 5px;
  vertical-align: middle;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
  line-height: 1;
  padding: 0;
}
.term-help:hover, .term-help:focus-visible {
  background: #8c73ff;
  color: #fff;
  border-color: #8c73ff;
  outline: 2px solid rgba(185, 169, 255, .7);
  outline-offset: 2px;
}

.term-popover {
  position: fixed;
  z-index: 1000;
  width: 340px;
  max-width: 90vw;
  background: #15171f;
  border: 1px solid rgba(140, 115, 255, 0.4);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 16px;
  font-size: var(--type-caption);
  line-height: 1.5;
  color: #e2e4ea;
  pointer-events: auto;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .15s ease, transform .15s ease;
}
.term-popover.visible {
  opacity: 1;
  transform: translateY(0);
}
.term-popover-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}
.term-popover-title strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.term-popover-title small {
  color: #8f9199;
  font-size: var(--type-caption);
  font-family: 'JetBrains Mono', monospace;
}
.term-popover-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--type-caption);
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(140, 115, 255, 0.18);
  color: #b9a9ff;
  border: 1px solid rgba(140, 115, 255, 0.3);
  white-space: nowrap;
}
.term-popover-desc {
  margin-bottom: 10px;
  color: #cfd2dc;
}
.term-popover-formula {
  background: #0d0e14;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-color: rgba(94, 208, 160, .32);
  border-radius: 6px;
  padding: 8px 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--type-caption);
  color: #5ed0a0;
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}
.term-popover-vars {
  margin-bottom: 10px;
  font-size: var(--type-caption);
}
.term-popover-vars div {
  margin-bottom: 4px;
}
.term-popover-vars b {
  color: #b9a9ff;
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--type-caption);
}
.term-popover-example {
  background: rgba(94, 208, 160, 0.06);
  border: 1px solid rgba(94, 208, 160, 0.2);
  border-radius: 6px;
  padding: 8px;
  font-size: var(--type-caption);
  color: #d1f3e4;
}
.term-popover-example strong {
  color: #5ed0a0;
  display: block;
  margin-bottom: 2px;
}

/* ==========================================================================
   Glossary View
   ========================================================================== */
.glossary-head {
  margin-bottom: 20px;
}
.glossary-category-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}
.glossary-category-filter button {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line);
  color: #8f9199;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: var(--type-caption);
  font-family: inherit;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.glossary-category-filter button:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}
.glossary-category-filter button.active {
  background: #5d48cf;
  border-color: #8c73ff;
  color: #fff;
}
.glossary-search-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 14px;
  margin-bottom: 20px;
}
.glossary-search-wrap svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--muted);
  flex-shrink: 0;
}
.glossary-search-wrap input {
  background: none;
  border: none;
  color: #fff;
  font-size: 13px;
  flex: 1;
  outline: none;
  font-family: inherit;
}
.glossary-search-wrap:focus-within {
  border-color: #8c73ff;
  box-shadow: 0 0 0 2px rgba(140, 115, 255, .16);
}
#glossaryCount {
  font-size: var(--type-caption);
  color: var(--muted);
  font-family: 'JetBrains Mono', monospace;
}
.glossary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
  gap: 16px;
}
.term-card {
  background: #111319;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  transition: border-color .15s ease, transform .15s ease;
}
.term-card:hover {
  border-color: rgba(140, 115, 255, 0.4);
  transform: translateY(-2px);
}
.term-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.term-card-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.term-card-title h3 {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin: 0;
}
.term-card-title small {
  color: #8f9199;
  font-size: var(--type-caption);
}
.term-card-desc {
  font-size: var(--type-caption);
  line-height: 1.5;
  color: #cfd2dc;
  margin-bottom: 12px;
}
.term-card-formula {
  background: #090a0e;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-color: rgba(94, 208, 160, .3);
  border-radius: 6px;
  padding: 8px 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: var(--type-caption);
  color: #5ed0a0;
  margin-bottom: 12px;
  overflow-wrap: anywhere;
}
.term-card-example {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  padding: 8px 10px;
  font-size: var(--type-caption);
  line-height: 1.4;
  color: #a7aab5;
  margin-top: 0;
}
.term-card-example strong {
  color: #b9a9ff;
  display: block;
  margin-bottom: 2px;
}

/* ==========================================================================
   Analytics Return Chart
   ========================================================================== */
.analytics-chart-surface {
  margin-bottom: 20px;
}
.analytics-chart-legend {
  display: flex;
  gap: 16px;
  font-size: var(--type-caption);
  color: var(--muted);
}
.analytics-chart-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.legend-line.capital-change {
  width: 14px;
  height: 2px;
  background: #5ed0a0;
  border-radius: 1px;
}
/* ==========================================================================
   Dialog Explainer
   ========================================================================== */
.env-explainer {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.env-notes {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 10px 12px;
  font-size: var(--type-caption);
  line-height: 1.5;
  color: #cfd2dc;
}
.env-notes p {
  margin-bottom: 6px;
}
.env-notes p:last-child {
  margin-bottom: 0;
}
.env-notes em {
  color: #b9a9ff;
  font-style: normal;
}

@media (max-width: 1180px) {
  .topbar { flex-wrap: wrap; gap: 12px; }
  .topbar-search { order: 3; flex: 1 0 100%; min-width: 0; max-width: none; }
  .topbar-actions { order: 2; }
}

@media (max-width: 720px) {
  .topbar-search { padding-inline: 10px; }
  .topbar-search .search-kbd { display: none; }
  .analytics-chart-legend { flex-wrap: wrap; }
  .glossary-search-wrap { align-items: flex-start; flex-wrap: wrap; }
  .glossary-search-wrap input { min-width: calc(100% - 28px); }
  #glossaryCount { width: 100%; padding-left: 26px; }
  .term-popover { width: min(340px, calc(100vw - 20px)); }
}
:root { --price-alert-gap: 16px; }
.price-alert-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: var(--price-alert-gap); align-items: end; padding: 20px; margin-bottom: 24px; }
.price-alert-form label { display: grid; gap: 8px; color: var(--text); }
.price-alert-form input, .price-alert-form select, .price-alert-setup input, .price-alert-setup textarea { box-sizing: border-box; width: 100%; min-width: 0; padding: 10px 12px; background: var(--surface); color: var(--text); border: 1px solid var(--line-strong); border-radius: 8px; font: inherit; }
.price-alert-form input::placeholder { color: var(--muted); }
.price-alert-help { grid-column: 1 / -1; color: var(--muted); margin: 0; }
.price-alert-row { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: var(--price-alert-gap); padding: 18px 20px; border-top: 1px solid var(--line); }
.price-alert-row p { margin: 5px 0; }
.price-alert-row small { color: var(--muted); }
.price-alert-actions { display: flex; flex-wrap: wrap; gap: 8px; }
[data-view-panel="alerts"] > .data-surface + .data-surface { margin-top: 24px; }
#priceAlertSetup { margin-bottom: 20px; }
.price-alert-setup { flex-basis: 100%; display: grid; gap: 12px; }
.price-alert-setup[hidden] { display: none; }
.price-alert-setup textarea { font-family: ui-monospace, monospace; resize: vertical; }
#priceAlertCount { margin-left: auto; font-variant-numeric: tabular-nums; }
#priceAlertDialog { max-width: min(540px, calc(100vw - 32px)); }
@media (max-width: 1100px) { .price-alert-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .price-alert-form { grid-template-columns: minmax(0, 1fr); } .price-alert-actions { width: 100%; } }

.operations-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 18px; border-top: 1px solid var(--line); }
.operations-pagination > span { color: var(--muted); font-variant-numeric: tabular-nums; }
.operations-pagination > div { display: flex; gap: 8px; }

.operations-surface .table-scroll { max-height: min(55vh, 600px); }
.operations-surface th { position: sticky; top: 0; z-index: 1; background: var(--surface); }
.skip-link:not(:focus) { clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; padding: 0; white-space: nowrap; }
.analytics-layout { align-items: start; }
.manual-plan-surface { margin-top: 24px; }
.risk-plan-layout:has(> [hidden]) { grid-template-columns: minmax(0, 1fr); }
.company-sources small { display: block; color: var(--muted); margin-top: 4px; font-size: var(--type-caption); }
.company-sources a { color: var(--vertux-soft); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.company-extra-metrics summary { cursor: pointer; padding: 12px 0; color: var(--vertux-soft); }
.company-metrics th { max-width: 280px; white-space: normal; }
.company-metrics td { font-variant-numeric: tabular-nums; }

/* Period controls and bounded ledgers keep the analytical reading order stable. */
.headline-copy .headline-note { max-width: 64ch; font-size: var(--type-caption); line-height: 1.5; color: var(--muted); margin-top: 8px; }
.headline-copy .headline-note:empty { display: none; }
.chart-scope { display: flex; align-items: end; gap: 16px; padding: 0 20px 16px; }
.chart-scope label { flex: 0 1 230px; display: grid; gap: 6px; }
.chart-scope label span, .holding-filter label span { color: var(--muted); font-size: var(--type-caption); }
.chart-scope p { flex: 1; margin: 0; font-size: var(--type-caption); color: var(--muted); line-height: 1.5; }
.chart-scope select, .holding-filter select, .calculator-form input, .calculator-form select, .plan-editor input, .plan-editor select, .plan-editor textarea { width: 100%; min-width: 0; border: 1px solid var(--line-strong); border-radius: 9px; padding: 10px 11px; background: #0c0e12; color: var(--text); font: inherit; }
.period-controls { grid-template-columns: repeat(3, minmax(130px, 1fr)) auto auto; }
.period-controls .period-presets { grid-column: 1 / -1; flex-wrap: wrap; justify-self: start; }
.period-controls .period-status { grid-column: 1 / -1; max-width: 100%; color: var(--muted); line-height: 1.5; }
.period-controls[aria-busy="true"] .period-status { color: var(--vertux-soft); }
.list-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 18px; border-top: 1px solid var(--line); }
.list-pagination[hidden] { display: none; }
.list-pagination > span { color: var(--muted); font-size: var(--type-caption); font-variant-numeric: tabular-nums; }
.list-pagination > div { display: flex; gap: 8px; }
.list-pagination.compact { padding: 14px 0 0; }
.closed-positions-surface .table-scroll { max-height: min(52vh, 520px); }
.closed-positions-surface th { position: sticky; top: 0; z-index: 1; background: var(--surface); }
.statistics-ledger { align-items: start; }
.disclosure-surface > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; cursor: pointer; list-style: none; }
.disclosure-surface > summary::-webkit-details-marker { display: none; }
.disclosure-surface > summary strong { display: block; font-size: 16px; line-height: 1.3; }
.disclosure-surface > summary small { display: block; margin-top: 6px; font-size: var(--type-caption); color: var(--muted); line-height: 1.5; }
.disclosure-surface > summary:hover { background: rgba(255,255,255,.025); }
.disclosure-cue { color: var(--vertux-soft); flex-shrink: 0; font-size: var(--type-caption); }
.disclosure-surface[open] > summary { border-bottom: 1px solid var(--line); }
.disclosure-surface[open] .disclosure-cue { font-size: 0; }
.disclosure-surface[open] .disclosure-cue::after { content: 'Свернуть'; font-size: var(--type-caption); }
.holding-filter { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.holding-filter label { flex: 1 1 145px; display: grid; gap: 6px; }
.holding-filter > p { flex-basis: 100%; }
.holding-filter p { margin: 0; font-size: var(--type-caption); color: var(--muted); line-height: 1.5; }
.ranking-explanation { font-size: var(--type-caption); color: var(--muted); margin: 8px 0 18px; line-height: 1.5; }
.ranking-row strong, .relative-bar-row strong, .efficiency-row strong { overflow-wrap: anywhere; }
.ranking-row small, .relative-bar-row small, .efficiency-row em { overflow-wrap: anywhere; color: var(--muted); }
.efficiency-row { grid-template-columns: 22px minmax(0, 1fr) auto; }
.efficiency-row > small { grid-column: 2; }
.efficiency-row > b { grid-column: 3; grid-row: 1 / 3; }
.efficiency-row > em { grid-column: 2 / -1; font-style: normal; font-size: var(--type-caption); }
.margin-account-empty p { margin: 10px 0 0; max-width: 75ch; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; }
.margin-account-empty header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.margin-ledger { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.calculator-surface { margin-bottom: 24px; }
.calculator-form, .plan-editor { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 20px; align-items: end; }
.calculator-form label, .plan-editor label { display: grid; gap: 7px; color: var(--muted); font-size: var(--type-caption); }
.calculator-future-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.calculator-future-fields[hidden] { display: none; }
.calculator-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 20px; border-top: 1px solid var(--line); }
.calculator-metrics dt { color: var(--muted); font-size: var(--type-caption); }
.calculator-metrics dd { margin: 8px 0 6px; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.calculator-metrics small { color: var(--muted); font-size: var(--type-caption); }
.plan-editor .plan-notes, .plan-editor .form-progress { grid-column: 1 / -1; }
.manual-plan-row { padding: 18px 20px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: start; }
.manual-plan-row > strong, .manual-plan-row > p { grid-column: 1; }
.manual-plan-row .plan-draft-actions { grid-column: 2; grid-row: 1 / 6; display: flex; flex-wrap: wrap; gap: 8px; }
.manual-plan-row small, .manual-plan-row p { display: block; margin-top: 7px; color: var(--muted); line-height: 1.5; overflow-wrap: anywhere; }
.manual-plan-row button { flex-shrink: 0; }
@media (max-width: 1180px) {
  .period-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .period-controls > .button { width: 100%; }
  .calculator-form, .plan-editor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .period-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .period-controls > label:first-of-type { grid-column: 1 / -1; }
  .period-controls .period-presets { width: 100%; }
  .period-controls .period-presets button { flex: 1; min-height: 40px; }
  .chart-scope, .holding-filter { flex-direction: column; align-items: stretch; }
  .chart-scope label, .holding-filter label { flex-basis: auto; }
  .calculator-form, .plan-editor, .calculator-future-fields { grid-template-columns: minmax(0, 1fr); }
  .calculator-metrics { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .calculator-metrics > div + div { padding-top: 16px; border-top: 1px solid var(--line); }
  .disclosure-surface > summary { padding: 18px; }
  .disclosure-surface > summary strong { font-size: 15px; }
  .list-pagination { padding: 12px; gap: 10px; }
  .list-pagination > div { margin-left: auto; }
  .manual-plan-row { grid-template-columns: minmax(0, 1fr); }
  .manual-plan-row .plan-draft-actions { grid-column: 1; grid-row: auto; }
  .stat-comparison-row dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Readable working surfaces: full lists remain visible; pagination bounds their length. */
.statistics-ledger > .paginated-surface { display: flex; flex-direction: column; min-width: 0; }
.paginated-surface > .cash-flow-list, .paginated-surface > .stat-comparison,
.paginated-surface > .relative-bar-chart, .paginated-surface > .efficiency-list { flex: 0 0 auto; display: grid; grid-auto-rows: auto; align-content: start; }
.paginated-surface > .list-pagination { margin-top: 0; }
.statistics-ledger .surface-head { align-items: flex-start; }
.statistics-ledger .surface-head p, .holding-filter p, .ranking-explanation,
.period-coverage-note, .surface-note.period-coverage-note, .period-controls .period-status { font-size: 14px; line-height: 1.5; }
.period-coverage-note { max-width: 75ch; overflow-wrap: anywhere; }
.analytics-grid dt, .analytics-grid small { font-size: 14px; line-height: 1.5; }
.stat-comparison-row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-block: 12px; align-content: start; }
.stat-comparison-row dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.stat-comparison-row > span strong, .cash-flow-row strong, .relative-bar-row strong,
.efficiency-row > strong, .efficiency-row > b, .ranking-row strong { font-size: 14px; }
.stat-comparison-row small, .stat-comparison-row dt, .stat-comparison-row dd,
.cash-flow-row small, .relative-bar-row small, .efficiency-row > small,
.efficiency-row > em, .efficiency-row > span, .ranking-row small { font-size: 14px; line-height: 1.5; }
.cash-flow-row, .relative-bar-row, .efficiency-row { min-height: 0; padding-block: 10px; }
.efficiency-row { gap: 4px 10px; align-content: start; }
.efficiency-row > em { text-align: left; font: 400 14px/1.5 var(--body); }
.ranking-list { align-content: start; }
.ranking-row { padding-block: 8px; }
.run-list { display: grid; align-content: start; }
.run-row { padding-block: 10px; }
.run-row > small { grid-column: 1 / -1; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; overflow-wrap: anywhere; }
.run-row > strong, .run-row > span { font-size: var(--type-caption); }
.sync-history > .list-pagination { padding: 12px 0 0; }
.sync-history header span { font-size: var(--type-caption); }
.relative-bar-row { grid-template-columns: minmax(0, 1fr) minmax(45px, .5fr) auto; }
.list-pagination { flex-wrap: wrap; font-size: 14px; }
.list-pagination .button, .holding-filter label { font-size: 14px; }
.list-pagination .button { min-height: 42px; }
@media (max-width: 720px) {
  .efficiency-row { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .efficiency-row > span { grid-column: 1; grid-row: 1 / span 3; }
  .efficiency-row > strong { grid-column: 2; grid-row: 1; }
  .efficiency-row > small { grid-column: 2 / -1; grid-row: 2; }
  .efficiency-row > b { grid-column: 3; grid-row: 1; margin-top: 0; }
  .efficiency-row > em { grid-column: 2 / -1; grid-row: 3; text-align: left; }
  .relative-bar-row { grid-template-columns: minmax(0, 1fr) auto; }
  .relative-bar-row > strong { grid-column: 2; grid-row: 1; }
  .relative-bar { grid-column: 1 / -1; grid-row: 2; }
}
.risk-section-nav { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0 0 24px; }
.risk-section-nav a { min-height: 44px; display: inline-flex; align-items: center; color: var(--vertux-soft); text-underline-offset: 5px; font-weight: 650; }
.risk-plan-view > article { margin-bottom: 28px; scroll-margin-top: 24px; }
.risk-plan-view .section-head p, .risk-plan-view .surface-head p,
.risk-plan-view .surface-note, .risk-plan-view .empty-copy,
.risk-plan-view .margin-account p, .risk-plan-view .margin-account small,
.risk-plan-view .margin-ledger dt, .risk-plan-view .margin-ledger small,
.risk-plan-view .futures-risk-row dt, .risk-plan-view .futures-risk-row small,
.risk-plan-view .advisor-row small, .risk-plan-view .advisor-row li,
.risk-plan-view .advisor-warning, .risk-plan-view .form-progress { font-size: 14px; line-height: 1.6; }
.risk-plan-view .surface-head { padding: 22px 24px; }
.risk-plan-view .surface-head h3 { font-size: 20px; line-height: 1.3; }
.risk-plan-view .surface-head p { max-width: 70ch; }
.risk-plan-view .surface-note { color: var(--muted); }
.risk-plan-view .status-chip, .risk-plan-view .evidence-chip { font-size: 14px; }
.risk-plan-view th, .risk-plan-view td, .risk-plan-view .cell-note,
.risk-plan-view .instrument-cell strong, .risk-plan-view .instrument-cell small { font-size: 14px; line-height: 1.5; }
.risk-plan-view .margin-account { padding: 22px 24px; }
.risk-plan-view .margin-account header { flex-wrap: wrap; row-gap: 8px; padding: 0; margin-bottom: 18px; }
.risk-plan-view .margin-account header strong { font-size: 16px; }
.risk-plan-view .margin-ledger { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; padding: 0; }
.risk-plan-view .margin-ledger > div { padding: 0; border: 0; }
.risk-plan-view .margin-ledger dd { margin: 8px 0; font-size: 22px; overflow-wrap: anywhere; }
.risk-plan-view .metric-explanation { display: block; color: var(--muted); }
.risk-plan-view .metric-source { display: block; margin-top: 8px; color: var(--faint); }
.risk-plan-view .calculator-form, .risk-plan-view .plan-editor { padding: 24px; gap: 22px; align-items: start; }
.risk-plan-view .calculator-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.risk-plan-view .calculator-form label, .risk-plan-view .plan-editor label { font-size: 14px; line-height: 1.5; color: var(--text); }
.risk-plan-view .calculator-form small, .risk-plan-view .plan-editor small { font-size: 14px; line-height: 1.5; font-weight: 400; color: var(--muted); }
.risk-plan-view input, .risk-plan-view select, .risk-plan-view textarea { min-height: 44px; font-size: 16px; }
.risk-plan-view textarea { resize: vertical; min-height: 96px; }
.risk-plan-view .button { min-height: 44px; font-size: 14px; }
.risk-plan-view .calculator-form > .button { align-self: end; justify-self: start; }
.calculator-intro, .calculator-example { margin: 0; padding: 20px 24px 0; max-width: 90ch; }
.calculator-example { padding-block: 0 22px; }
.calculator-example strong { color: var(--text); }
.calculator-field-note { grid-column: 1 / -1; margin: -6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.risk-plan-view .calculator-metrics { padding: 24px; gap: 24px; }
.risk-plan-view .calculator-metrics dt, .risk-plan-view .calculator-metrics small { font-size: 14px; line-height: 1.5; }
.risk-plan-view .calculator-metrics dd { font-size: 26px; line-height: 1.3; overflow-wrap: anywhere; }
.risk-plan-view .term-help { width: 28px; height: 28px; font-size: 14px; }
.risk-plan-view .futures-risk-row strong, .risk-plan-view .futures-risk-row dd,
.risk-plan-view .advisor-row strong, .manual-plan-row > strong { font-size: 16px; }
.manual-plan-row p { margin: 0; font-size: 14px; }
.plan-draft-note { white-space: pre-wrap; }
.risk-plan-layout { align-items: stretch; }
.risk-plan-layout > article { display: flex; flex-direction: column; min-width: 0; }
.risk-plan-layout > article { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .statistics-ledger { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .risk-plan-view .calculator-form, .risk-plan-view .plan-editor, .risk-plan-view .calculator-future-fields { grid-template-columns: minmax(0, 1fr); }
  .risk-plan-view .surface-head, .risk-plan-view .calculator-form, .risk-plan-view .plan-editor, .risk-plan-view .margin-account, .risk-plan-view .calculator-metrics { padding: 18px; }
  .risk-plan-view .margin-ledger { grid-template-columns: minmax(0, 1fr); }
  .risk-plan-view .margin-ledger > div + div { padding-top: 18px; border-top: 1px solid var(--line); }
  .calculator-intro, .calculator-example { padding-inline: 18px; }
  .risk-plan-view .calculator-form > .button { justify-self: stretch; }
  .relative-bar-row { grid-template-columns: minmax(0, 1fr) auto; }
  .relative-bar-row .relative-bar { display: none; }
  .list-pagination > div { flex-wrap: wrap; }
}

/* Readability contract: captions 13, field labels 14, working copy 15. */
:root { --type-caption: 13px; --type-label: 14px; --type-body: 15px; --type-heading: 20px; }
body { font-size: var(--type-body); }
.nav-heading { color: var(--muted); letter-spacing: .04em; line-height: 1.4; }
.nav-item { font-size: var(--type-label); min-height: 46px; }
.brand-lockup small { font-size: 10px; }
.topbar-title > span { font-family: var(--body); font-size: var(--type-caption); }
.topbar-search { position: relative; max-width: 460px; min-height: 44px; }
.topbar-search input { min-height: 34px; font-size: var(--type-label); }
.global-search-results { position: absolute; z-index: 70; top: calc(100% + 8px); right: 0; width: max(100%, 340px); max-width: calc(100vw - 32px); max-height: min(60vh, 540px); overflow: auto; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--surface-raised); padding: 6px; }
.global-search-results[hidden] { display: none; }
.global-search-results button { display: grid; gap: 4px; text-align: left; width: 100%; padding: 12px; border: 0; border-radius: 8px; background: transparent; line-height: 1.45; }
.global-search-results button:hover, .global-search-results button[aria-selected="true"] { background: var(--surface-strong); }
.global-search-results strong { font-size: var(--type-label); overflow-wrap: anywhere; }
.global-search-results small, .global-search-results p { color: var(--muted); font-size: var(--type-caption); }
.global-search-results p { padding: 12px; margin: 0; }
th, td, td.numeric, .cell-note, .instrument-cell strong, .instrument-cell small, .asset-chip { font-size: var(--type-label); line-height: 1.55; }
th { white-space: normal; }
.positions-surface td { padding-block: 16px; }
.positions-surface .cell-note { max-width: 30ch; white-space: normal; }
.metric-ledger dt, label, .button, .surface-head p, .empty-copy, .surface-note { font-size: var(--type-label); line-height: 1.55; }
.surface-head h3 { font-size: var(--type-heading); line-height: 1.35; }
#priceAlertRules > .empty-copy, #priceAlertEvents > .empty-copy { padding: 20px 24px; margin: 0; }
[data-view-panel="alerts"] > .data-surface { margin-top: 24px; }
[data-view-panel="alerts"] > .section-intro { margin-bottom: 20px; }

/* Each glossary entry sizes to its own content. */
.glossary-grid { align-items: start; }

/* This device's Invest appearance is independent of the Nexus account theme. */
:root[data-workspace-theme="graphite"]{--vertux:#97a5bc;--vertux-soft:#c3cfe0;--focus:#c3cfe0;--action-fill:#43516a;--action-hover:#52637f}
:root[data-workspace-theme="graphite"] .nav-item.active{background:rgba(151,165,188,.15)}
vertux-account-center{--account-font:var(--body);--account-text:var(--text);--account-surface:var(--surface);--account-surface-strong:var(--surface-raised);--account-surface-3:var(--surface-strong);--account-accent:var(--action-fill);--account-accent-hover:var(--action-hover);--account-accent-soft:var(--vertux-soft);--account-muted:var(--muted);--account-line:var(--line);--account-line-strong:var(--line-strong)}
.personal-settings{margin:20px 0 24px}#workspaceTheme{max-width:420px;margin-bottom:16px}

/* Glossary: equal column widths with natural card height, no empty grid tracks. */
.glossary-grid{display:block;columns:2 340px;column-gap:16px}
.term-card{display:inline-flex;vertical-align:top;width:100%;break-inside:avoid;margin:0 0 16px;padding:20px;transform:none}
.term-card:hover{transform:none}.term-card-header{align-items:flex-start;gap:12px}.term-card-title{display:grid;gap:5px;min-width:0;flex:1}.term-card-title h3{font-size:16px;line-height:1.4;overflow-wrap:normal;word-break:normal;text-wrap:balance}.term-card-title small{line-height:1.5;overflow-wrap:break-word}.term-card .term-popover-badge{flex:none;max-width:110px;white-space:normal;line-height:1.4}.term-card-desc{font-size:14px;line-height:1.6}.term-card-example{line-height:1.55}.term-card-formula{margin-top:0}.term-popover-title{min-width:0}.term-popover-header{gap:12px}.term-popover-badge{max-width:120px;flex-shrink:0;white-space:normal}
.analytics-chart-legend{align-items:center;flex-wrap:wrap;justify-content:flex-end}.analytics-chart-legend .range-control{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.analytics-chart-legend .range-control button{min-height:40px;padding:8px 14px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font:600 13px var(--body,Manrope,system-ui);cursor:pointer;white-space:nowrap}
.analytics-chart-legend .range-control button[aria-pressed=true]{color:#fff;background:#6c4df2;border-color:#b9a9ff}.analytics-chart-legend .range-control button:hover{border-color:#b9a9ff;color:#fff}.analytics-chart-legend .range-control button:focus-visible{outline:2px solid #b9a9ff;outline-offset:3px}
@media(max-width:700px){.glossary-grid{columns:1}.term-card{padding:16px}.analytics-chart-legend{justify-content:flex-start}.analytics-chart-legend .range-control button{min-height:44px}}

body[data-current-view=profile] #autoRefreshStatus,body[data-current-view=settings] #autoRefreshStatus,body[data-current-view=system] #autoRefreshStatus,body[data-current-view=glossary] #autoRefreshStatus{display:none}

.term-card-details{margin-top:4px}.term-card-details>summary{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--vertux-soft);cursor:pointer;font-size:13px;font-weight:600;list-style:none}.term-card-details>summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:400}.term-card-details[open]>summary::after{content:"−"}.term-card-details[open]>summary{margin-bottom:10px}.term-card-details>summary:focus-visible{outline:2px solid var(--vertux-soft);outline-offset:3px;border-radius:4px}
