
  * { box-sizing:border-box; }
  body { background:var(--bg); color:var(--text); font:14px/1.5 -apple-system,"Segoe UI",Roboto,Helvetica,sans-serif; margin:0; padding:18px; }
  @media (min-width:1100px){ body{ padding:24px max(40px,calc((100vw - 1440px)/2)); } }
  a { text-decoration:none; color:inherit; }
  h1 { font-size:20px; margin:0; }
  h2 { font-size:14px; margin:0 0 10px; font-weight:600; letter-spacing:.2px; }
  h3 { font-size:12px; margin:0 0 6px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; }
  .panel { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:14px; }
  .muted { color:var(--muted); } .sm { font-size:12px; } .xs { font-size:11px; }
  .pos { color:var(--up); } .neg { color:var(--down); }
  .topline { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; }
  .note { margin:8px 0 0; line-height:1.5; }
  .help { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border-radius:50%; border:1px solid var(--muted); color:var(--muted); font-size:10px; font-weight:600; cursor:help; position:relative; vertical-align:middle; margin-left:4px; }
  .help .tip { display:none; position:absolute; top:140%; left:50%; transform:translateX(-50%); width:280px; background:var(--panel); border:1px solid var(--line); padding:9px 11px; border-radius:8px; z-index:60; font-size:12px; line-height:1.45; color:var(--text); font-weight:400; box-shadow:var(--popover-shadow); pointer-events:auto; cursor:auto; max-height:min(60vh,420px); overflow-y:auto; overscroll-behavior:contain; text-align:left; white-space:normal; }
  /* invisible hover pad across the icon→tip gap — keeps :hover alive mid-travel (on .help, not .tip: the tip is a scroll container and clips its pseudos) */
  .help:hover::before { content:''; position:absolute; top:100%; left:-30px; right:-30px; height:10px; }
  .help:hover .tip { display:block; }
  .tabnum { font-variant-numeric:tabular-nums; }
  .lag-tag { display:inline-block; font-size:10px; background:var(--panel2); border:1px solid var(--line); border-radius:5px; padding:1px 6px; color:var(--muted); vertical-align:middle; margin-left:4px; }
  .soft-tag { display:inline-block; font-size:10px; font-style:italic; color:var(--orange,#f97316); margin-left:3px; }

  /* ── "What's set up now" stance strip ─────────────────────────── */
  .stance-strip { display:flex; flex-wrap:wrap; gap:8px; }
  .stance-card { flex:1 1 140px; min-width:130px; border:1px solid var(--line); border-radius:10px; padding:9px 12px; cursor:pointer; user-select:none; background:var(--panel2); transition:border-color .15s, background .15s, transform .1s; position:relative; }
  .stance-card:hover { border-color:var(--muted); transform:translateY(-1px); }
  .stance-card.active { border-color:var(--blue,#3b82f6); box-shadow:inset 0 0 0 1px var(--blue,#3b82f6); }
  .stance-card .sc-top { display:flex; align-items:center; gap:6px; }
  .stance-card .sc-dot { font-size:14px; line-height:1; }
  .stance-card .sc-label { font-size:12.5px; font-weight:700; }
  .stance-card .sc-count { font-size:22px; font-weight:800; font-variant-numeric:tabular-nums; margin-top:2px; line-height:1; }
  .stance-card .sc-sub { font-size:10.5px; color:var(--muted); margin-top:2px; line-height:1.3; }
  .stance-card .sc-accent { position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:10px 0 0 10px; }
  /* lane colors */
  .lane-act    { --lane:var(--up,#16a34a); }
  .lane-ready  { --lane:var(--blue,#3b82f6); }
  .lane-fav    { --lane:#22c55e; }
  html[data-lang="zh"] .lane-fav { --lane:#ef4444; }
  .lane-profit { --lane:var(--orange,#f97316); }
  .lane-watch  { --lane:#eab308; }
  .lane-aside  { --lane:var(--muted); }
  .sc-accent { background:var(--lane); }

  /* ── Filter / toolbar ─────────────────────────────────────────── */
  .toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:2px; }
  .chip { display:inline-block; font-size:11px; padding:3px 9px; border-radius:20px; border:1px solid var(--line); cursor:pointer; user-select:none; background:var(--panel2); color:var(--muted); transition:background .15s,border-color .15s,color .15s; }
  .chip.active { background:var(--blue,#3b82f6); border-color:var(--blue,#3b82f6); color:#fff; }
  .chip:hover:not(.active) { border-color:var(--muted); color:var(--text); }
  .search-box { flex:1; min-width:120px; max-width:220px; }
  .search-box input { width:100%; background:var(--panel2); border:1px solid var(--line); color:var(--text); border-radius:6px; padding:4px 10px; font-size:12px; outline:none; }
  .search-box input:focus { border-color:var(--blue,#3b82f6); }
  .toggle-btn { font-size:11px; padding:3px 10px; border-radius:6px; border:1px solid var(--line); cursor:pointer; user-select:none; background:var(--panel2); color:var(--muted); }
  .toggle-btn.active { color:var(--text); border-color:var(--muted); }
  .stamp-row { margin-left:auto; font-size:11px; color:var(--muted); white-space:nowrap; }

  /* ── Leaders table ────────────────────────────────────────────── */
  .leaders-wrap { overflow-x:auto; }
  table.leaders { width:100%; border-collapse:collapse; font-size:13px; }
  table.leaders th { padding:7px 10px; text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); border-bottom:2px solid var(--line); cursor:pointer; white-space:nowrap; user-select:none; }
  table.leaders th:hover { color:var(--text); }
  table.leaders th .sort-ic { display:inline-block; margin-left:3px; opacity:.4; }
  table.leaders th.sort-asc .sort-ic::after { content:"↑"; opacity:1; }
  table.leaders th.sort-desc .sort-ic::after { content:"↓"; opacity:1; }
  table.leaders th:not(.sort-asc):not(.sort-desc) .sort-ic::after { content:"↕"; }
  table.leaders td { padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
  table.leaders tr.lead-row:hover td { background:var(--panel2); }
  table.leaders tr.group-head td { background:var(--panel2); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); padding:5px 10px; border-bottom:1px solid var(--line); }
  .tk-link { font-weight:700; font-size:14px; color:var(--blue,#3b82f6); }
  .tk-link:hover { text-decoration:underline; }
  .tk-baskets { font-size:10px; color:var(--muted); margin-top:1px; }
  .price-cell { white-space:nowrap; }
  .pct-chg { font-size:11px; margin-left:4px; }
  .expander { cursor:pointer; color:var(--muted); font-size:12px; user-select:none; padding:2px 4px; border-radius:4px; }
  .expander:hover { color:var(--text); background:var(--panel2); }

  /* ── Stance pill + reason ─────────────────────────────────────── */
  .stance-cell { min-width:210px; }
  .stance-pill { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:800; padding:3px 9px; border-radius:20px; border:1px solid var(--lane); color:var(--lane); white-space:nowrap; }
  .stance-reason { font-size:11.5px; color:var(--text); margin-top:3px; line-height:1.35; max-width:320px; }
  .stance-reason.muted { color:var(--muted); }

  /* ── Plain metric cells ───────────────────────────────────────── */
  .metric-lead { font-size:12.5px; }
  .metric-sub { font-size:10.5px; color:var(--muted); margin-top:1px; }
  .gauge-wrap { display:flex; align-items:center; gap:6px; white-space:nowrap; }
  .gauge-bar { width:48px; height:6px; background:var(--line); border-radius:4px; overflow:hidden; flex-shrink:0; }
  .gauge-fill { height:100%; border-radius:4px; background:var(--blue,#3b82f6); }
  .gauge-hi { background:var(--up); } .gauge-med { background:var(--orange,#f97316); } .gauge-lo { background:var(--muted); }

  /* ── Chips / badges ───────────────────────────────────────────── */
  .chip-row { display:flex; flex-wrap:wrap; gap:3px; margin-top:2px; }
  .badge { display:inline-block; font-size:10px; font-weight:600; padding:2px 6px; border-radius:5px; border:1px solid; white-space:nowrap; }
  .badge-green { color:var(--up); border-color:var(--up); }
  .badge-red { color:var(--down); border-color:var(--down); }
  .badge-blue { color:var(--blue,#3b82f6); border-color:var(--blue,#3b82f6); }
  .badge-orange { color:var(--orange,#f97316); border-color:var(--orange,#f97316); }
  .badge-muted { color:var(--muted); border-color:var(--line); }

  /* ── Dealer map cell ──────────────────────────────────────────── */
  .dealer-cell { min-width:150px; font-size:11.5px; }
  .dealer-line { line-height:1.4; }
  .regime-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:4px; vertical-align:middle; }
  .rd-long { background:var(--up); } .rd-short { background:var(--down); } .rd-neutral { background:var(--muted); }
  .dealer-na { color:var(--muted); font-style:italic; }

  /* ── Expanded detail row ──────────────────────────────────────── */
  tr.detail-row td { background:var(--panel2); padding:0; border-bottom:1px solid var(--line); }
  .detail-inner { display:none; padding:14px 16px; }
  tr.detail-row.open .detail-inner { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
  .detail-block h4 { font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); margin:0 0 6px; font-weight:700; }
  .detail-block .dl { display:grid; grid-template-columns:auto 1fr; gap:2px 10px; font-size:12px; }
  .detail-block .dl .k { color:var(--muted); }
  .detail-block .dl .v { text-align:right; font-variant-numeric:tabular-nums; }
  .posture { font-size:12px; line-height:1.5; margin:6px 0 0; color:var(--text); }
  .receipt { font-size:10.5px; color:var(--muted); margin-top:6px; font-style:italic; }
  /* checks (legs) */
  .checks { display:flex; flex-wrap:wrap; gap:4px 8px; }
  .check { display:inline-flex; align-items:center; gap:3px; font-size:11px; }
  .check .ic { font-weight:700; }
  .check.on { color:var(--up); } .check.off { color:var(--muted); } .check.na { color:var(--muted); opacity:.65; }

  /* ── Playbook accordion ──────────────────────────────────────── */
  .playbook-section { border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:8px; }
  .playbook-hd { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; cursor:pointer; font-weight:600; font-size:13px; user-select:none; }
  .playbook-hd:hover { background:var(--panel2); }
  .playbook-hd .caret { font-size:11px; color:var(--muted); transition:transform .2s; }
  .playbook-section.open .playbook-hd .caret { transform:rotate(90deg); }
  .playbook-body { display:none; padding:10px 14px; font-size:13px; line-height:1.6; border-top:1px solid var(--line); }
  .playbook-section.open .playbook-body { display:block; }
  .playbook-body ul { margin:6px 0 0 18px; padding:0; }
  .playbook-body li { margin-bottom:3px; }

  .loading-row td { color:var(--muted); font-style:italic; text-align:center; padding:24px; }

  @media (max-width:820px) {
    table.leaders { font-size:12px; }
    table.leaders th, table.leaders td { padding:6px 7px; }
    .hide-narrow { display:none; }
  }
