/* Trading workspace: shared desktop and mobile surfaces. */
:root { --bg:#f7f8fa; --surface:#fff; --raised:#f0f2f5; --text:#171b22; --muted:#626b79; --line:#e4e7ec; --accent:#087f66; --positive:#07845e; --negative:#cb3452; }
:root[data-theme="dark"] { --bg:#101415; --surface:#171c1e; --raised:#22282b; --text:#f0f3f6; --muted:#a1acb5; --line:#2c353a; --accent:#6ed9b5; --positive:#62d9ad; --negative:#ff8597; }
html { scroll-padding-top:90px; }
.sr-only { position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
body { line-height:1.65; }
main { max-width:1240px !important; padding:28px !important; }
main > section { margin:0 !important; padding-block:24px; }
main > section:empty { display:none; }
#dashboard-view > header { backdrop-filter:none; background:var(--surface); }
#dashboard-view > header > div { max-width:1240px; height:70px; }
#dashboard-view header p.font-extrabold { font-size:17px; }
#account-subtitle { max-width:250px; direction:ltr; text-align:right; }
.header-account { display:flex; align-items:center; gap:4px; min-height:44px; padding:4px; }
.header-account > svg { width:15px; }
.account-kind { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:5px; color:var(--muted); background:var(--raised); font-size:12px; font-weight:700; }
.kind-live { color:var(--warning); background:var(--warning-bg); }
.kind-demo { color:var(--accent); background:var(--notice); }
.page-nav { position:sticky; top:70px; z-index:15; padding-inline:24px; gap:40px; }
.page-nav a { font-size:13px; min-height:54px; }
.page-nav svg { width:20px; height:20px; }
.panel { background:transparent; border:0; border-radius:0; box-shadow:none; padding:20px 0; }
.panel-heading h1,.page-section h1 { font-size:22px; font-weight:800; line-height:1.4; }
.panel-heading h2,.section-bar h2 { font-size:17px; font-weight:700; }
.panel-heading p { font-size:12px; }
.panel-heading { align-items:center; margin-bottom:20px; }
.portfolio-overview { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; border-bottom:1px solid var(--line); }
.balance-caption { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:14px; }
.plain-icon { width:36px; height:36px; display:inline-grid; place-items:center; color:var(--muted); background:transparent; border:0; cursor:pointer; }
.plain-icon svg { width:18px; height:18px; }
.balance-amount { display:flex; justify-content:flex-end; align-items:baseline; gap:10px; margin:8px 0 12px; }
.balance-amount strong { font-size:44px; line-height:1.2; font-weight:800; }
.balance-amount > span { font-size:16px; color:var(--muted); }
.portfolio-today { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:13px; }
.portfolio-today > span { color:var(--muted); }
.portfolio-today svg { width:16px; height:16px; }
.portfolio-today > a { min-width:30px; min-height:32px; display:grid; place-items:center; }
.sync-indicator { display:flex; align-items:center; gap:6px; margin-top:14px; color:var(--muted); font-size:11px; min-height:28px; }
.sync-indicator svg { width:14px; height:14px; }
.sync-indicator.is-stale { color:var(--warning); }
.portfolio-chart-panel { padding:0; }
.portfolio-chart-panel .panel-heading { margin-bottom:12px; }
.portfolio-chart-panel .panel-heading h2 { font-size:13px; color:var(--muted); font-weight:500; }
.portfolio-chart-panel .h-64 { height:175px; }
.quick-actions { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; max-width:640px; }
.quick-actions a { display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--text); font-size:12px; }
.quick-actions a > span { display:grid; place-items:center; width:46px; height:46px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.quick-actions svg { width:23px; height:23px; color:var(--text); }
.quick-actions a:hover > span { border-color:var(--accent); color:var(--accent); }
#metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:0; border:1px solid var(--line); border-radius:8px; background:var(--surface); overflow:hidden; }
.portfolio-metric { padding:18px 20px; border-inline-end:1px solid var(--line); min-width:0; }
.portfolio-metric:nth-child(4) { border-inline-end:0; }
.portfolio-metric > span { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); margin-bottom:9px; }
.portfolio-metric svg { width:15px; height:15px; }
.portfolio-metric strong { font-size:23px; display:inline-block; max-width:100%; overflow-wrap:anywhere; }
.portfolio-metric small { font-size:10px; color:var(--muted); margin-inline-start:5px; }
.lifetime-strip { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:10px 24px; align-items:center; border-top:1px solid var(--line); padding:12px 20px; font-size:12px; color:var(--muted); }
.lifetime-strip b { display:inline-block; margin-inline-start:8px; color:var(--text); }
.lifetime-strip > a { margin-inline-start:auto; width:26px; height:26px; display:grid; place-items:center; color:var(--accent); }
.lifetime-strip svg { width:18px; height:18px; }
.pnl-positive,.position-item .pnl-positive { color:var(--positive) !important; }
.pnl-negative,.position-item .pnl-negative { color:var(--negative) !important; }
.pnl-neutral { color:var(--muted) !important; }
.section-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.section-bar a,.section-link,.back-link { display:inline-flex; align-items:center; gap:6px; color:var(--accent); font-size:12px; min-height:40px; }
.section-bar svg,.section-link svg,.back-link svg { width:17px; height:17px; }
.count-label { font-size:12px; font-weight:500; padding:3px 8px; background:var(--raised); border-radius:4px; margin-inline-start:5px; }
.position-list { display:grid; gap:0 24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.position-item { padding:22px 0; border-block-end:1px solid var(--line); min-width:0; }
.position-item > header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; background:none; }
.position-symbol { display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-width:0; }
.position-symbol strong { font-size:17px; overflow-wrap:anywhere; }
.side-tag { font-size:10px; font-weight:700; padding:2px 5px; border-radius:3px; }
.side-buy { background:var(--notice); color:var(--positive); }
.side-sell { background:color-mix(in srgb,var(--negative) 12%,transparent); color:var(--negative); }
.position-state { font-size:10px; color:var(--muted); }
.position-pnl { display:flex; flex-direction:column; align-items:flex-start; flex-shrink:0; }
.position-pnl strong { font-size:22px; line-height:1.2; }
.position-pnl small { font-size:10px; }
.position-channel { display:flex; align-items:center; gap:6px; margin:12px 0 18px; font-size:12px; color:var(--muted); }
.position-channel > span:not(.position-volume) { overflow-wrap:anywhere; min-width:0; }
.position-channel svg { width:14px; height:14px; flex-shrink:0; }
.position-volume { margin-inline-start:auto; flex-shrink:0; }
.position-opened { display:flex; gap:8px; color:var(--muted); font-size:10px; margin:-8px 0 16px; }
.position-prices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
.position-prices dt { font-size:11px; color:var(--muted); }
.position-prices dd { font-weight:650; font-size:15px; margin:3px 0 0; text-align:right; }
.position-details { margin-top:14px; }
.position-details summary { display:flex; align-items:center; justify-content:space-between; cursor:pointer; font-size:11px; color:var(--muted); min-height:34px; list-style:none; }
.position-details summary::-webkit-details-marker { display:none; }
.position-details summary svg { width:15px; height:15px; }
.position-details[open] summary svg { transform:rotate(180deg); }
.position-details dl { display:grid; gap:8px; padding:10px 0; font-size:11px; }
.position-details dl > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
.position-details dt { color:var(--muted); }
.position-details dd { margin:0; }
.trading-empty { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; padding:30px 12px; color:var(--muted); font-size:12px; gap:12px; background:var(--surface); border-radius:8px; border:1px dashed var(--line); }
.trading-empty svg { width:32px; height:32px; stroke-width:1.3; }
.mobile-trades { display:none; }
.trade-tabs { display:flex; gap:24px; border-bottom:1px solid var(--line); padding-inline:0; }
.trade-tabs button { min-height:48px; border:0; border-bottom:2px solid transparent; color:var(--muted); background:transparent; font-size:13px; cursor:pointer; }
.trade-tabs button[aria-pressed="true"] { color:var(--text); border-bottom-color:var(--text); font-weight:700; }
.trade-filter-panel { border-bottom:1px solid var(--line); }
.trade-filter-panel > summary { min-height:46px; display:flex; gap:8px; align-items:center; cursor:pointer; color:var(--muted); font-size:12px; list-style:none; }
.trade-filter-panel > summary svg { width:16px; height:16px; }
.trade-filter-panel > summary svg:last-child { margin-inline-start:auto; }
.trading-page .panel-heading { padding:0; }
.trading-page .trade-tools { padding:16px 0; background:none; }
.trade-tools label:has(#trade-status) { display:none; }
.trade-summary { background:transparent; padding:10px 0; font-size:11px; line-height:1.9; }
.desktop-trades { border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.account-page { max-width:760px; margin-inline:auto !important; }
.account-page h2 { margin:28px 0 14px; }
.account-identity { display:flex; align-items:center; gap:14px; padding:20px 0 28px; border-bottom:1px solid var(--line); }
.account-avatar { display:grid; place-items:center; width:48px; height:48px; background:var(--raised); border-radius:8px; }
.account-avatar svg { width:25px; }
.account-identity h2 { margin:0; font-size:18px; }
.account-identity p { font-size:12px; color:var(--muted); margin:3px 0; }
.account-identity > .account-kind { margin-inline-start:auto; }
.account-picker { padding:22px 0 8px; margin:0; display:block; }
.account-picker label { display:block; margin-bottom:9px; color:var(--muted); font-size:13px; }
.account-picker select { width:100%; min-width:0; max-width:100%; height:48px; font-size:13px; }
.account-scope-note { font-size:12px; color:var(--muted); line-height:1.9; }
.account-stats { display:grid; grid-template-columns:1fr 1fr; margin:24px 0; gap:20px; }
.account-stats > div { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:14px; font-size:13px; }
.bot-connection { display:block; }
#bot-status { font-size:15px; }
#last-seen { font-size:12px; }
.bot-meta-box { border:0; padding:12px 0; font-size:12px; color:var(--muted); }
.connection-notice { padding:12px; font-size:11px; border-radius:6px; overflow-wrap:anywhere; }
.account-menu a { display:flex; align-items:center; gap:12px; min-height:60px; border-bottom:1px solid var(--line); font-size:14px; }
.account-menu svg { width:20px; height:20px; color:var(--muted); }
.account-menu svg:last-child { margin-inline-start:auto; width:16px; }
.account-preferences { display:flex; justify-content:space-between; align-items:center; min-height:64px; font-size:13px; border-bottom:1px solid var(--line); }
.channel-editor { margin-block:14px 24px; }
.channel-editor > summary { display:flex; align-items:center; gap:8px; width:fit-content; cursor:pointer; min-height:44px; color:var(--accent); font-size:13px; list-style:none; }
.channel-editor > summary svg { width:18px; height:18px; }
.channel-editor .channel-manager { background:var(--surface); padding:20px; border:1px solid var(--line); border-radius:8px; }
.channel-editor .channel-manager h1 { font-size:16px; }
#channels > .report-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto; gap:14px; padding:20px 0; }
#channels > .report-row > a { text-align:right; overflow-wrap:anywhere; font-weight:700; }
.channel-actions { gap:8px; }
.channel-actions input { width:22px; height:22px; }
.page-title-row .eyebrow { display:none; }
.report-model-note { font-size:11px; line-height:1.9; }
.channel-card-archive { display:flex; gap:20px; padding-block:10px; color:var(--muted); font-size:11px; border-top:1px solid var(--line); }
.channel-card-archive > span { display:flex; align-items:center; gap:5px; }
.channel-card-archive svg { width:13px; height:13px; }
.channel-card-top { margin-top:12px; }
.channel-card-top strong { font-size:15px; }
.performance-metrics .channel-metric { min-height:115px; }
.channel-metrics,.analysis-chart,.analysis-summary { border-radius:6px; box-shadow:none; }
.balances-hidden [data-private] { color:transparent !important; text-shadow:none; position:relative; user-select:none; }
.balances-hidden [data-private]::after { content:'••••'; position:absolute; inset:0; color:var(--muted); }
#toast { bottom:24px; max-width:calc(100vw - 32px); }
@media(max-width:767px) {
  main { padding:12px 18px 100px !important; }
  main > section { padding-block:20px; }
  #dashboard-view > header > div { height:62px; padding-inline:18px; }
  #dashboard-view header p.font-extrabold { font-size:16px; }
  #account-subtitle { font-size:10px; max-width:190px; }
  .page-nav { position:fixed; top:auto; bottom:0; inset-inline:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; padding:4px 4px max(7px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); box-shadow:0 -4px 18px #00000005; overflow:visible; }
  .page-nav a { min-width:0; padding:7px 0 4px; min-height:56px; gap:4px; font-size:10px; border:0; flex-direction:column; }
  .page-nav a[aria-current="page"] { color:var(--text); }
  .page-nav a[aria-current="page"] svg { color:var(--accent); stroke-width:2.5; }
  .page-nav svg { width:23px; height:23px; }
  .portfolio-overview { grid-template-columns:1fr; gap:10px; border:0; padding-block:8px; }
  .balance-amount strong { font-size:40px; }
  .portfolio-chart-panel .h-64 { height:85px; }
  .portfolio-chart-panel .panel-heading { margin-bottom:4px; }
  .portfolio-chart-panel .panel-heading h2 { font-size:11px; }
  .portfolio-chart-panel .panel-heading > svg { width:15px; height:15px; }
  .quick-actions { gap:5px; padding-block:8px 22px; }
  .quick-actions a { font-size:11px; }
  .quick-actions a > span { width:42px; height:42px; }
  #metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-metric { padding:14px; border-bottom:1px solid var(--line); }
  .portfolio-metric:nth-child(2) { border-inline-end:0; }
  .portfolio-metric > span { font-size:11px; gap:5px; margin-bottom:6px; }
  .portfolio-metric strong { font-size:21px; }
  .portfolio-metric small { font-size:9px; }
  .lifetime-strip { border-top:0; padding:10px 14px; gap:4px 12px; font-size:10px; }
  .lifetime-strip > span:nth-child(2) { flex-basis:100%; order:3; }
  .section-bar h2 { font-size:16px; }
  .position-list { grid-template-columns:1fr; }
  .desktop-trades { display:none; }
  .mobile-trades { display:grid; }
  .position-item { padding-block:20px; }
  .position-symbol strong { font-size:16px; }
  .position-pnl strong { font-size:23px; }
  .position-prices { gap:12px 20px; }
  .trading-page .trade-tools { display:grid; grid-template-columns:minmax(0,1fr) 44px; }
  .trading-page .trade-tools label:first-child { grid-column:1/-1; }
  .trading-page .trade-tools input,.trading-page .trade-tools select { font-size:14px; }
  .trading-page .trade-tools label { width:100%; }
  .trading-page #export-trades { align-self:end; }
  .page-section h1 { font-size:21px; }
  .panel-heading { gap:8px; }
  .page-title-row { margin-bottom:18px; }
  .account-identity { gap:10px; }
  .account-identity h2 { font-size:17px; }
  .account-avatar { width:40px; height:40px; }
  .account-stats { gap:16px; }
  .account-stats > div { font-size:12px; }
  #channels > .report-row { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  #channels > .report-row > span:not(.channel-actions) { grid-column:1/-1; grid-row:2; font-size:11px; }
  #channels > .report-row > a { font-size:13px; }
  .channel-actions { flex-wrap:wrap; gap:5px; justify-content:flex-end; }
  .channel-actions .icon-button,.channel-report-link { width:34px; height:36px; }
  .channel-editor .channel-manager { padding:14px; }
  .channel-form { grid-template-columns:1fr; }
  .channel-form-actions { grid-column:auto; }
  .channel-form input,.channel-form select { font-size:16px; }
  .archive-table tr { padding:18px 0; background:transparent; }
  .archive-table td { grid-template-columns:95px minmax(0,1fr); font-size:12px; }
  .archive-table-wrap { background:transparent; }
  .page-section:has(#archive-list) > .trade-tools { display:grid; grid-template-columns:minmax(0,1fr) 42px 42px; gap:8px; padding:14px 0; align-items:end; }
  .page-section:has(#archive-list) > .trade-tools label { min-width:0; }
  .archive-detail[open] > article { border:0; padding:14px 0; }
  .risk-facts div { padding-inline:0; }
  .archive-prices { grid-template-columns:1fr; }
  .report-controls { gap:8px; }
  .channel-report-card { padding:16px; }
  .channel-metric { padding:12px; }
  .channel-metrics.performance-metrics { margin-bottom:14px; }
  .metric-caption { font-size:11px; }
  .performance-metrics .channel-metric { min-height:104px; }
  .channel-detail-heading { flex-wrap:wrap; gap:8px; }
  .channel-detail-heading h2 { font-size:18px; overflow-wrap:anywhere; }
  #toast { bottom:90px; }
}
@media(max-width:360px) {
  main { padding-inline:14px !important; }
  #dashboard-view > header > div { padding-inline:14px; }
  #account-subtitle { max-width:155px; }
  .balance-amount strong { font-size:36px; }
  .position-symbol { gap:4px; }
  .position-symbol strong { font-size:14px; }
  .position-pnl strong { font-size:20px; }
  #channels > .report-row { grid-template-columns:1fr; }
  #channels .channel-actions { justify-content:flex-start; }
}
