
  * { 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:21px; margin:0; }
  h2 { font-size:15px; margin:30px 0 4px; 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; }
  h3.cat { font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin:20px 0 9px; border-bottom:1px solid var(--line); padding-bottom:5px; }
  .muted { color:var(--muted); } .sm { font-size:12px; }
  .pos { color:var(--ink-up, var(--up)); } .neg { color:var(--ink-down, var(--down)); }
  .topline { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px; }
  .panel { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:6px; margin-top:8px; }
  .panel.pad { padding:14px; }
  .story { font-size:14.5px; margin:8px 0 4px; line-height:1.5; }
  .story b { font-weight:650; }
  .tagline { color:var(--muted); font-size:12.5px; max-width:90ch; margin:4px 0 0; }
  .sub { color:var(--muted); font-size:12.5px; margin:2px 0 8px; max-width:92ch; }
  .chartbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin:8px 0 2px; }
  .tabs { display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
  .tabs button,.tabs .tab { border:0; background:var(--panel); color:var(--muted); font-size:12px; padding:5px 11px; cursor:pointer; border-right:1px solid var(--line); }
  .tabs button:last-child { border-right:0; }
  .tabs button.on { background:var(--panel2); color:var(--text); font-weight:650; }
  .tabs .rangeN { width:74px; background:var(--panel); color:var(--text); border:0; border-left:1px solid var(--line); padding:5px 8px; font-size:12px; }
  .ts { overflow-x:auto; }
  table { border-collapse:collapse; width:100%; font-size:13px; }
  th,td { padding:6px 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; }
  th.sel { color:var(--text); }
  .bname { font-weight:600; }
  .blink { font-weight:650; color:inherit; text-decoration:none; }
  .blink:hover { color:var(--ink-link, var(--link)); text-decoration:underline; text-underline-offset:2px; }
  .dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:middle; }
  #chart { height:420px; width:100%; }
  .legend { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; max-height:156px; overflow:auto; padding-right:3px; }
  .lchip { display:inline-flex; align-items:center; gap:6px; font-size:12px; cursor:pointer; color:var(--text); }
  .lchip.off { opacity:.34; }
  .lchip .lv { color:var(--muted); font-variant-numeric:tabular-nums; }
  .toolbar { display:flex; align-items:center; gap:10px; margin:10px 0 4px; flex-wrap:wrap; }
  .toolbar .lbl { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
  .finder { display:grid; grid-template-columns:minmax(220px,1fr) auto; gap:10px; align-items:center; margin:14px 0 8px; }
  .finder input { width:100%; border:1px solid var(--line); background:var(--panel); color:var(--text); border-radius:9px; padding:9px 11px; font-size:13px; outline:none; }
  .finder input:focus { border-color:var(--link); box-shadow:0 0 0 3px color-mix(in srgb,var(--link) 16%,transparent); }
  .finder .count { color:var(--muted); font-size:12px; white-space:nowrap; }
  .catbar { display:flex; flex-wrap:wrap; gap:6px; margin:9px 0 4px; }
  .catbar button { border:1px solid var(--line); background:var(--panel); color:var(--muted); border-radius:8px; padding:5px 9px; font-size:12px; cursor:pointer; }
  .catbar button.on { background:var(--panel2); color:var(--text); font-weight:650; border-color:color-mix(in srgb,var(--link) 32%,var(--line)); }
  .chart-note { font-size:12px; color:var(--muted); margin:6px 0 0; }
  .see-more-wrap { display:flex; justify-content:center; padding:10px 0 4px; }
  .see-more { border:1px solid var(--line); background:var(--panel2); color:var(--text); border-radius:8px; padding:7px 12px; font-size:12px; font-weight:650; cursor:pointer; }
  .see-more:hover { border-color:var(--muted); }
  .cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:13px; }
  .cards .card { background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--c,#888); border-radius:10px; padding:12px 13px; cursor:pointer; transition:border-color .15s; }
  .cards .card:hover { border-color:var(--muted); }
  .cards .card .nm { font-weight:650; font-size:14px; }
  .cards .card .nm .blink { font-size:14px; }
  .cards .card .meta { color:var(--muted); font-size:11.5px; margin:3px 0 6px; }
  .cards .card .th { font-size:12px; line-height:1.45; color:var(--text); opacity:.9; margin-bottom:9px; min-height:50px; }
  .cards .card .perf { display:flex; align-items:center; gap:16px; }
  .cards .card .kpi .v { font-size:16px; font-weight:650; font-variant-numeric:tabular-nums; }
  .cards .card .kpi .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .cards .card .spark { margin-left:auto; }
  .detail { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:13px 15px; margin-top:12px; scroll-margin-top:14px; }
  .detail h4 { margin:0 0 4px; font-size:15px; display:flex; align-items:center; gap:8px; }
  .detail h4 .blink { font-size:15px; }
  .detail .th { color:var(--text); opacity:.92; font-size:12.5px; line-height:1.5; margin:0 0 9px; max-width:95ch; }
  .kpirow { display:flex; flex-wrap:wrap; gap:18px; margin:8px 0 10px; }
  .kpirow .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .kpirow .v { font-size:15px; font-weight:650; font-variant-numeric:tabular-nums; }
  .refline { font-size:12px; color:var(--muted); margin:2px 0 9px; }
  .why { color:var(--muted); font-size:12px; white-space:normal; max-width:46ch; }
  details > summary { cursor:pointer; font-size:12.5px; color:var(--muted); margin:6px 0; }
  .warn { display:inline-block; font-size:11px; padding:1px 7px; margin:2px 5px 2px 0; border-radius:7px; background:rgba(250,204,21,.12); border:1px solid rgba(250,204,21,.4); color:var(--ink-warn, var(--warn)); }
  .chip { display:inline-block; font-size:11px; padding:1px 7px; margin:0 4px 4px 0; border-radius:7px; background:var(--panel2); border:1px solid var(--line); color:var(--muted); }
  .clog { margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--muted); }
  .clog li { margin:2px 0; }
  footer { color:var(--muted); font-size:11.5px; margin-top:26px; border-top:1px solid var(--line); padding-top:12px; max-width:95ch; }
  .pfx { color:var(--muted); }
  .asof { font-size:12px; color:var(--muted); margin-left:auto; }
  @media (max-width:640px){
    .finder { grid-template-columns:1fr; }
    .finder .count { white-space:normal; }
    #chart { height:360px; }
  }
  /* W5-B Reversal Sleeve strategy card */
  .sleeve-strategy-card { border:1px solid color-mix(in srgb,var(--up) 35%,var(--line));
    border-left:3px solid var(--up); border-radius:10px; background:var(--panel); padding:13px 15px;
    margin:24px 0 0; max-width:720px; }
  .sleeve-strategy-card .sc-head { font-size:14px; font-weight:700; margin:0 0 3px; }
  .sleeve-strategy-card .sc-sub { font-size:12px; color:var(--muted); margin:0 0 8px; line-height:1.5; max-width:64ch; }
  .sleeve-strategy-card .sc-stats { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0; }
  .sleeve-strategy-card .sc-stat { font-size:11.5px; color:var(--muted); padding:3px 9px;
    border:1px solid var(--line); border-radius:7px; background:var(--bg); }
  .sleeve-strategy-card .sc-stat b { color:var(--text); font-variant-numeric:tabular-nums; }
  .sleeve-strategy-card .sc-link { display:inline-block; font-size:12.5px; font-weight:650;
    color:var(--ink-up, var(--up)); text-decoration:none; margin-top:6px; }
  .sleeve-strategy-card .sc-link:hover { text-decoration:underline; }
  .sleeve-strategy-card .sc-note { font-size:11px; color:var(--muted); margin:5px 0 0; }
  .sleeve-strategy-card .sc-tag { display:inline-block; font-size:10.5px; font-weight:700;
    letter-spacing:.04em; border:1px solid var(--line); border-radius:5px; padding:1px 6px;
    color:var(--muted); margin-right:6px; vertical-align:2px; }
  /* ---- cross-market AI-semis confirmer chip (lite/THS page; display-only) ---- */
  .semis-chip { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; background:var(--panel2);
    border:1px solid var(--line); border-radius:9px; padding:8px 12px; margin:10px 0 0; font-size:12.5px; }
  .semis-chip .sx-tag { font-size:10.5px; color:var(--muted); font-style:italic; }
  .semis-badge { display:inline-block; font-size:10px; font-weight:650; border:1px solid var(--line);
    border-radius:6px; padding:0 6px; margin-left:6px; color:var(--muted); vertical-align:1px; }
  .semis-badge.on { color:var(--ink-up, var(--up)); border-color:color-mix(in srgb, var(--up) 40%, var(--line)); }
  /* ---- score badge ---- */
  /* Chip TEXT moved off the dark-tuned Tailwind literals and onto the estate ink
     rungs (2026-08-12): #4ade80 measured 1.74:1 and #f87171 2.6:1 on the light
     panels. The tint and border keep the literal — they are non-text and clear
     the 3:1 boundary floor — so only the ink changes. */
  .score-badge { display:inline-flex; align-items:center; gap:3px; font-size:11px; font-weight:700;
    padding:1px 7px; border-radius:7px; border:1px solid var(--line); font-variant-numeric:tabular-nums;
    vertical-align:1px; margin-left:6px; }
  .score-badge.strong { color:var(--ink-up, var(--up)); border-color:color-mix(in srgb,#4ade80 40%,var(--line)); background:color-mix(in srgb,#4ade80 8%,transparent); }
  .score-badge.neutral { color:var(--muted); border-color:var(--line); }
  .score-badge.weak { color:var(--ink-down, var(--down)); border-color:color-mix(in srgb,#f87171 40%,var(--line)); background:color-mix(in srgb,#f87171 8%,transparent); }
  /* ---- turn-state chip ---- */
  .turn-chip { display:inline-block; font-size:10.5px; font-weight:600; padding:1px 6px; border-radius:6px;
    border:1px solid var(--line); margin-left:5px; vertical-align:1px; }
  .turn-chip.washed_out { color:var(--ink-info, var(--info)); border-color:color-mix(in srgb,#60a5fa 40%,var(--line)); }
  .turn-chip.basing     { color:var(--ink-warn, var(--warn)); border-color:color-mix(in srgb,#facc15 40%,var(--line)); }
  .turn-chip.turning    { color:var(--ink-warn, var(--warn)); border-color:color-mix(in srgb,#fb923c 40%,var(--line)); }
  .turn-chip.confirmed  { color:var(--ink-up, var(--up)); border-color:color-mix(in srgb,#4ade80 40%,var(--line)); }
  /* ---- signal tier chip ---- */
  .sig-fresh { color:var(--ink-ok, var(--ok)); font-size:8px; vertical-align:middle; margin-left:2px; }
  .sig-chip { display:inline-block; font-size:10px; font-weight:700; padding:0 5px;
    border-radius:5px; vertical-align:1px; color:var(--ink-up, var(--up));
    border:1px solid color-mix(in srgb,var(--up) 40%,var(--line)); margin-left:4px; }
  /* ---- entry radar strip ---- */
  .entry-radar { background:var(--panel); border:1px solid var(--line); border-left:3px solid #fb923c;
    border-radius:10px; padding:12px 15px; margin:0 0 20px; }
  .entry-radar .er-head { font-size:14px; font-weight:700; margin:0 0 2px; display:flex; align-items:center; gap:8px; }
  .entry-radar .er-sub { font-size:12px; color:var(--muted); margin:0 0 10px; line-height:1.5; }
  .entry-radar .er-items { display:flex; flex-direction:column; gap:7px; }
  .entry-radar .er-item { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font-size:13px; }
  .entry-radar .er-reco { font-size:11px; color:var(--muted); }
  .entry-radar .er-note { font-size:11px; color:var(--muted); margin-top:8px; line-height:1.5; border-top:1px solid var(--line); padding-top:7px; }
  .entry-radar .er-empty { color:var(--muted); font-size:12.5px; font-style:italic; padding:4px 0; }
  /* ---- overlap chips ---- */
  .overlap-row { margin:6px 0 2px; display:flex; flex-wrap:wrap; gap:5px; align-items:center; font-size:11.5px; }
  .overlap-chip { display:inline-block; padding:1px 8px; border:1px solid var(--line); border-radius:7px;
    background:var(--panel2); font-size:11px; cursor:pointer; color:inherit; }
  .overlap-chip:hover { border-color:var(--muted); }

  /* ── Theme-context chip family (retained from the aurora-glass hero the rvx hero
       replaced): the What-changed strip, the client-injected policy-lever chip and the
       strength/breaking chips all still draw from it. The glass panel + drifting aurora
       blobs that used to wrap them are gone with the hero markup — the page-level
       .rvx-aurora backdrop and the hero's own radial wash do that work now. ── */
  .tc-chips { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 4px; }
  .tc-chip { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; padding:3px 9px;
    border-radius:20px; border:1px solid; white-space:nowrap; text-decoration:none; color:inherit; }
  .tc-chip:hover { opacity:.85; }
  .tc-chip.up  { background:rgba(74,222,128,.12); border-color:rgba(74,222,128,.35); color:var(--ink-up, var(--up)); }
  .tc-chip.dn  { background:rgba(248,113,113,.10); border-color:rgba(248,113,113,.30); color:var(--ink-down, var(--down)); }
  .tc-chip.was1{ font-size:9.5px; padding:0 5px; opacity:.75; border-radius:5px; margin-left:3px;
                 background:rgba(248,113,113,.08); border-color:rgba(248,113,113,.25); color:var(--ink-down, var(--down)); }
  .tc-chip.mig { background:rgba(93,139,255,.10); border-color:rgba(93,139,255,.25); color:var(--ink-link, var(--link)); }
  .tc-chip.aln { background:rgba(74,222,128,.08); border-color:rgba(74,222,128,.25); color:var(--ink-up, var(--up)); }
  .tc-chip.rcpt{ background:var(--panel2); border-color:var(--line); color:var(--muted); }
  .tc-receipt-tip { cursor:default; }
  .tc-days  { font-size:11px; color:var(--muted); align-self:center; }
  .tc-pb-link { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--ink-link, var(--link));
    border:1px solid var(--line); border-radius:20px; padding:3px 10px; margin-top:4px; text-decoration:none; }
  .tc-pb-link:hover { border-color:var(--link); }
  /* leg-toggle (All / None legend buttons) */
  .leg-toggle { font-size:11px; padding:2px 8px; border:1px solid var(--line); border-radius:6px;
    background:var(--panel2); color:var(--muted); cursor:pointer; margin-right:6px; }
  .leg-toggle:hover { color:var(--text); border-color:var(--muted); }
  /* ── zh 红涨绿跌: direction-coded chip TINTS swap with the text vars ── */
  html[data-lang="zh"] .tc-chip.up,
  html[data-lang="zh"] .tc-chip.aln { background:rgba(224,85,85,.10); border-color:rgba(224,85,85,.35); }
  html[data-lang="zh"] .tc-chip.dn,
  html[data-lang="zh"] .tc-chip.was1 { background:rgba(69,184,115,.10); border-color:rgba(69,184,115,.35); }
  /* zh 红涨绿跌 (operator ruling 2026-07-21): strong=bullish→red; confirmed=basing→turning→red */
  html[data-lang="zh"] .score-badge.strong { color:#e06464; border-color:color-mix(in srgb,#e06464 40%,var(--line)); background:color-mix(in srgb,#e06464 8%,transparent); }
  html[data-lang="zh"] .turn-chip.confirmed { color:#e06464; border-color:color-mix(in srgb,#e06464 40%,var(--line)); }
  /* --red is not defined on this theme.css page (it's a vector-family token) — literal hex */
  html[data-lang="zh"] .sig-chip { color:#e06464; border-color:color-mix(in srgb,#e06464 40%,var(--line)); }
  /* category filter chips for performance table */
  .cat-filter-bar { display:flex; flex-wrap:wrap; gap:6px; margin:9px 0 4px; }
  .cat-filter-bar button { border:1px solid var(--line); background:var(--panel); color:var(--muted);
    border-radius:8px; padding:5px 9px; font-size:12px; cursor:pointer; }
  .cat-filter-bar button.on { background:var(--panel2); color:var(--text); font-weight:650;
    border-color:color-mix(in srgb,var(--link) 32%,var(--line)); }
