
  * { 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(--up); } .neg { color: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(--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; }
  .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; }
  .card:hover { border-color:var(--muted); }
  .card .nm { font-weight:650; font-size:14px; }
  .card .nm .blink { font-size:14px; }
  .card .meta { color:var(--muted); font-size:11.5px; margin:3px 0 6px; }
  .card .th { font-size:12px; line-height:1.45; color:var(--text); opacity:.9; margin-bottom:9px; min-height:50px; }
  .card .perf { display:flex; align-items:center; gap:16px; }
  .card .kpi .v { font-size:16px; font-weight:650; font-variant-numeric:tabular-nums; }
  .card .kpi .k { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .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(--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(--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(--up); border-color:color-mix(in srgb, var(--up) 40%, var(--line)); }
  /* ---- score badge ---- */
  .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:#4ade80; 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:#f87171; 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:#60a5fa; border-color:color-mix(in srgb,#60a5fa 40%,var(--line)); }
  .turn-chip.basing     { color:#facc15; border-color:color-mix(in srgb,#facc15 40%,var(--line)); }
  .turn-chip.turning    { color:#fb923c; border-color:color-mix(in srgb,#fb923c 40%,var(--line)); }
  .turn-chip.confirmed  { color:#4ade80; border-color:color-mix(in srgb,#4ade80 40%,var(--line)); }
  /* ---- signal tier chip ---- */
  .sig-fresh { color:#4ade80; 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(--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 Hero — aurora living-glass (ported from baskets.html.j2) ── */
  #theme-context-hero { position:relative; overflow:hidden; border-radius:12px;
    background:rgba(var(--panel-rgb,16,22,30),.55); border:1px solid rgba(255,255,255,.09);
    backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    box-shadow:0 8px 28px rgba(0,0,0,.40),0 1.5px 0 rgba(255,255,255,.06) inset;
    padding:16px 18px; margin-top:10px; }
  [data-theme='light'] #theme-context-hero {
    background:rgba(255,255,255,.78); border-color:rgba(0,0,0,.09);
    box-shadow:0 4px 18px rgba(0,0,0,.08),0 1px 0 rgba(255,255,255,.9) inset; }
  .tc-aurora { position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
  .tc-aurora::before { content:""; position:absolute; top:-80px; left:-60px;
    width:480px; height:380px; border-radius:50%; filter:blur(80px);
    background:radial-gradient(ellipse,var(--tc-blob-a,rgba(74,222,128,.08)) 0%,transparent 70%);
    animation:tc-drift-a 28s ease-in-out infinite alternate; }
  .tc-aurora::after  { content:""; position:absolute; bottom:-60px; right:-40px;
    width:380px; height:320px; border-radius:50%; filter:blur(80px);
    background:radial-gradient(ellipse,rgba(93,139,255,.06) 0%,transparent 70%);
    animation:tc-drift-b 34s ease-in-out infinite alternate; }
  @keyframes tc-drift-a { from{transform:translate(0,0)} to{transform:translate(30px,20px)} }
  @keyframes tc-drift-b { from{transform:translate(0,0)} to{transform:translate(-25px,18px)} }
  @media(prefers-reduced-motion:reduce){
    .tc-aurora,.tc-aurora::before,.tc-aurora::after{ animation:none; } }
  #theme-context-hero.tc-rotating { --tc-blob-a:rgba(248,113,113,.09); }
  #theme-context-hero.tc-strain   { --tc-blob-a:rgba(250,204,21,.08); }
  #theme-context-hero.tc-steady   { --tc-blob-a:rgba(74,222,128,.08); }
  [data-theme='light'] #theme-context-hero.tc-rotating { --tc-blob-a:rgba(192,57,43,.05); }
  [data-theme='light'] #theme-context-hero.tc-strain   { --tc-blob-a:rgba(156,98,18,.05); }
  [data-theme='light'] #theme-context-hero.tc-steady   { --tc-blob-a:rgba(34,197,94,.04); }
  .tc-inner { position:relative; z-index:1; }
  .tc-toprow { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin-bottom:8px; }
  .tc-big-state { font-size:22px; font-weight:750; letter-spacing:-.01em; line-height:1.1; }
  .tc-stance-sub { color:var(--muted); font-size:13px; line-height:1.5; margin:4px 0 10px; max-width:80ch; }
  .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(--up); }
  .tc-chip.dn  { background:rgba(248,113,113,.10); border-color:rgba(248,113,113,.30); color: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(--down); }
  .tc-chip.mig { background:rgba(93,139,255,.10); border-color:rgba(93,139,255,.25); color:var(--link); }
  .tc-chip.aln { background:rgba(74,222,128,.08); border-color:rgba(74,222,128,.25); color: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(--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); }
  html[data-lang="zh"] #theme-context-hero.tc-steady   { --tc-blob-a:rgba(224,85,85,.08); }
  html[data-lang="zh"] #theme-context-hero.tc-rotating { --tc-blob-a:rgba(69,184,115,.07); }
  /* 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)); }
