
  * { 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(34px,calc((100vw - 1340px)/2)); } }
  a { text-decoration:none; color:inherit; }
  h1 { font-size:22px; margin:0; }
  h2 { font-size:15px; margin:26px 0 6px; display:flex; align-items:center; gap:8px; }
  h2 .idx { font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:1px 6px; font-weight:600; }
  .muted { color:var(--muted); } .sm { font-size:12px; }
  .pos { color:var(--up); } .neg { color:var(--down); }
  .back { font-size:12.5px; color:var(--muted); }
  .back:hover { color:var(--link); }
  .chip { display:inline-block; font-size:11px; padding:1px 8px; margin:0 4px 4px 0; border-radius:7px; background:var(--panel2); border:1px solid var(--line); color:var(--muted); }
  /* standout-board cross-reference: ★ marks a member currently on the US standout buy board */
  .sb-star { color:var(--warn); text-decoration:none; font-size:12px; }
  .sb-star:hover { filter:brightness(1.15); }
  .chip.sb-chip { color:var(--warn); border-color:color-mix(in srgb, var(--warn) 38%, var(--line)); background:color-mix(in srgb, var(--warn) 12%, var(--panel2)); }
  /* W4 stock-personality slim chips in holdings table (display-only, R-SP13) */
  .sp-td-chip,.sp-td-mode{display:inline-block;font-size:9.5px;font-weight:600;padding:0px 5px;border-radius:5px;cursor:help;white-space:nowrap}
  .sp-td-chip{background:color-mix(in srgb,var(--muted) 8%,transparent);color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 22%,transparent)}
  .sp-td-mode{background:color-mix(in srgb,var(--info) 8%,transparent);color:var(--info,var(--link));border:1px solid color-mix(in srgb,var(--info,var(--link)) 28%,transparent)}
  /* within-theme member context chip (basket_member_context.py band — display-only cohort read) */
  .mc-chip{display:inline-block;font-size:9.5px;font-weight:600;padding:0px 5px;border-radius:5px;white-space:nowrap;cursor:help}
  .mc-chip.pos{background:color-mix(in srgb,var(--up) 10%,transparent);color:var(--up);border:1px solid color-mix(in srgb,var(--up) 28%,transparent)}
  .mc-chip.warn{background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 28%,transparent)}
  .mc-chip.neg{background:color-mix(in srgb,var(--down) 10%,transparent);color:var(--down);border:1px solid color-mix(in srgb,var(--down) 28%,transparent)}
  .mc-chip.neu{background:color-mix(in srgb,var(--muted) 8%,transparent);color:var(--muted);border:1px solid color-mix(in srgb,var(--muted) 22%,transparent)}
  .panel { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-top:10px; }
  .hero { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-start; }
  .hero .lhs { flex:1; min-width:280px; }
  .hero .thesis { font-size:13px; line-height:1.55; color:var(--text); opacity:.9; max-width:75ch; margin:8px 0 0; }
  .scoreboxes { display:flex; gap:10px; flex-wrap:wrap; }
  .sbx { background:var(--panel2); border:1px solid var(--line); border-radius:11px; padding:10px 14px; text-align:center; min-width:96px; }
  .sbx .v { font-size:26px; font-weight:740; font-variant-numeric:tabular-nums; line-height:1; }
  .sbx .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }
  .tlabel { font-size:11px; font-weight:700; letter-spacing:.05em; padding:3px 9px; border-radius:7px; text-transform:uppercase; }
  .treco { font-size:12px; font-weight:700; padding:3px 11px; border-radius:8px; }
  .cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
  .tx { background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--c,var(--muted)); border-radius:11px; padding:12px 14px; }
  .tx .k { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
  .tx .v { font-size:20px; font-weight:720; font-variant-numeric:tabular-nums; margin:5px 0 3px; }
  .tx .d { font-size:11.5px; color:var(--muted); line-height:1.4; }
  .cbar { display:flex; height:8px; border-radius:5px; overflow:hidden; background:var(--line); margin:8px 0; }
  .cbar i { display:block; height:100%; }
  .kpis { display:flex; flex-wrap:wrap; gap:16px; }
  .kpis .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .kpis .v { font-size:16px; font-weight:680; font-variant-numeric:tabular-nums; }
  table { border-collapse:collapse; width:100%; font-size:13px; }
  th,td { padding:7px 9px; border-bottom:1px solid var(--line); white-space:nowrap; }
  th { color:var(--muted); font-weight:500; text-align:right; cursor:pointer; user-select:none; }
  th:first-child,td:first-child { text-align:left; }
  td.num,th.num { text-align:right; font-variant-numeric:tabular-nums; }
  .ts { overflow-x:auto; }
  .tk { font-weight:680; } .tk:hover { color:var(--link); }
  .cv { font-weight:700; border-radius:6px; padding:1px 7px; font-size:12px; }
  /* confluence cascade tier badge (T1 master -> T4 earliest), ported from subsectors_china */
  .tier { display:inline-block; font-weight:800; font-size:10px; padding:1px 5px; border-radius:5px; letter-spacing:.02em; color:#fff; vertical-align:middle; }
  .tier.T1 { background:var(--up); } .tier.T2 { background:#3da564; }
  .tier.T3 { background:var(--info); } .tier.T4 { background:#6b7cc4; }
  html[data-lang="zh"] .tier.T2 { background:#d04545; }
  .tier .prov { font-weight:700; opacity:.8; margin-left:1px; }
  .why { color:var(--muted); font-size:11.5px; white-space:normal; max-width:42ch; }
  #hold { table-layout:fixed; }
  #hold th,#hold td { vertical-align:top; }
  #hold .hold-stock { width:30%; }
  #hold .hold-potential { width:76px; }
  #hold .hold-verdict { width:34%; white-space:normal; }
  #hold .hold-entry { width:24%; white-space:normal; }
  #hold .hold-20d { width:72px; }
  .hold-company { color:var(--muted); font-size:11.5px; }
  .v-short { display:none; font-weight:700; }
  .act-table .act-entry { white-space:normal; max-width:24ch; }
  .timeline .ev { display:flex; gap:8px; padding:6px 0; border-top:1px solid var(--line); font-size:12.5px; }
  .timeline .ev:first-child { border-top:0; }
  .timeline .dt { color:var(--muted); width:84px; flex:0 0 84px; font-variant-numeric:tabular-nums; }
  .sev-high { color:var(--down); } .sev-medium { color:var(--warn); }
  footer { color:var(--muted); font-size:11.5px; margin-top:28px; border-top:1px solid var(--line); padding-top:12px; max-width:95ch; }
  .disc { font-size:11.5px; color:var(--muted); margin-top:6px; max-width:90ch; }
  /* ---- cross-market narrative chip ---- */
  .xm-hot { font-size:12.5px; margin:2px 0 10px; padding:7px 11px; border-radius:8px;
    background:rgba(251,146,60,.10); border:1px solid rgba(251,146,60,.35); color:var(--text); }
  .xm-row { display:flex; flex-wrap:wrap; gap:8px; }
  .xm-chip { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:inherit;
    border:1px solid var(--line); border-radius:9px; padding:5px 10px; background:var(--panel2); transition:border-color .15s; }
  .xm-chip:hover { border-color:var(--muted); }
  .xm-flag { font-size:14px; line-height:1; }
  .xm-nm { font-weight:600; max-width:24ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .xm-sc { font-weight:740; font-variant-numeric:tabular-nums; }
  .xm-ar.pos { color:var(--up); } .xm-ar.neg { color:var(--down); } .xm-ar.muted { color:var(--muted); }
  /* ── FTR W3: live strip in basket detail header ─────────────────────── */
  .ftr-live-strip { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 12px;
    background:var(--panel2); border:1px solid var(--line); border-radius:9px; margin-top:8px; font-size:12.5px; }
  .ftr-ls-pill { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:12px; }
  .ftr-ls-pill.live { background:rgba(35,192,138,.14); border:1px solid rgba(35,192,138,.35); color:var(--up); }
  .ftr-ls-pill.pre  { background:rgba(79,140,255,.12); border:1px solid rgba(79,140,255,.30); color:var(--link); }
  .ftr-ls-pill.post,.ftr-ls-pill.closed { background:rgba(139,147,167,.08); border:1px solid var(--line); color:var(--muted); }
  .ftr-ls-chg { font-size:18px; font-weight:800; font-variant-numeric:tabular-nums; }
  .ftr-ls-chg.up { color:var(--up); } .ftr-ls-chg.dn { color:var(--down); }
  .ftr-ls-rank { font-size:12px; color:var(--muted); }
  /* ── FTR W8: anatomy panel ────────────────────────────────────────────── */
  .ftr-anatomy-card { background:var(--panel); border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-top:8px; }
  .ftr-anatomy-hd { padding:13px 16px 10px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:start; }
  .ftr-ah-why { font-size:12px; color:var(--muted); line-height:1.45; max-width:38ch; }
  .ftr-ah-why strong { color:var(--text); }
  .ftr-ah-score { font-size:32px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1; text-align:center; }
  .ftr-leg-list { padding:12px 16px; display:grid; gap:8px; }
  .ftr-leg-row { display:grid; grid-template-columns:96px 1fr 56px 52px; align-items:center; gap:9px; }
  .ftr-leg-lbl { font-size:11px; color:var(--muted); font-weight:500; }
  .ftr-leg-wt  { font-size:9.5px; color:var(--muted); }
  .ftr-leg-bar { height:8px; background:color-mix(in srgb, var(--text) 14%, var(--panel2)); border-radius:4px; overflow:hidden; position:relative; }
  .ftr-leg-bar-ctr { position:absolute; left:50%; top:0; bottom:0; width:1px; background:color-mix(in srgb, var(--muted) 30%, transparent); }
  .ftr-leg-fill { position:absolute; top:0; bottom:0; border-radius:3px; }
  .ftr-leg-fill.pos { left:50%; background:var(--up); }
  .ftr-leg-fill.neg { right:50%; background:var(--down); }
  .ftr-leg-fill.crowd { left:50%; background:var(--amber,#fb923c); }
  .ftr-leg-val { font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; }
  .ftr-leg-src { font-size:10.5px; color:var(--muted); text-align:right; }
  .ftr-anatomy-ft { padding:9px 16px; border-top:1px solid var(--line); background:rgba(251,146,60,.03);
    display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
  .ftr-crowd-note { background:rgba(251,146,60,.10); border:1px solid rgba(251,146,60,.30); color:var(--amber,#fb923c); padding:3px 9px; border-radius:6px; font-size:11px; font-weight:700; }
  /* ---- sector-cycle mini-chart ---- */
  .cyc-readrow { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:9px; }
  .cyc-pchip { font-size:11.5px; font-weight:700; padding:2px 9px; border-radius:7px; }
  .cyc-rk { font-size:11.5px; color:var(--muted); border:1px solid var(--line); border-radius:7px; padding:2px 8px; }
  .cyc-rk b { color:var(--text); font-variant-numeric:tabular-nums; }
  .cyc-rk.pos { color:var(--up); border-color:color-mix(in srgb, var(--up) 38%, var(--line)); }
  .cyc-rk.neg { color:var(--down); border-color:color-mix(in srgb, var(--down) 38%, var(--line)); }
  @media (max-width:720px){
    html, body { overflow-x:hidden; }
    body { padding:12px; font-size:13px; }
    h1 { font-size:19px; }
    h2 { align-items:flex-start; flex-wrap:wrap; line-height:1.25; }
    .panel { border-radius:9px; padding:11px; }
    .hero .lhs { min-width:0; }
    .scoreboxes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
    .sbx { min-width:0; padding:9px 8px; }
    .sbx .k { overflow-wrap:anywhere; }
    .ts { overflow-x:visible; }
    #hold { font-size:12px; }
    #hold th,#hold td { padding:6px 5px; white-space:normal; overflow-wrap:anywhere; }
    #hold .hold-stock { width:42%; }
    #hold .hold-potential { width:58px; text-align:center; }
    #hold .hold-verdict { width:auto; }
    #hold .hold-entry,
    #hold .hold-20d { display:none; }
    .act-table { table-layout:fixed; font-size:12px; }
    .act-table th,.act-table td { padding:6px 5px; white-space:normal; overflow-wrap:anywhere; }
    .act-table .act-name { width:42%; }
    .act-table .act-conv { width:58px; text-align:center; }
    .act-table .act-entry,
    .act-table .act-20d { display:none; }
    .hold-company { display:none; }
    .v-full { display:none; }
    .v-short { display:inline; }
    .cv { padding:1px 6px; }
    .disc, footer { max-width:100%; }
  }
