
  /* ---------- shared Research-Reports chrome ---------- */
  * { box-sizing:border-box; }
  body { background:var(--bg); color:var(--text); font:14px/1.6 -apple-system,"Segoe UI",Roboto,Helvetica,sans-serif; margin:0; padding:18px 18px 60px; }
  @media(min-width:1100px){ body{ padding-left:max(18px,calc((100vw - 1096px)/2)); padding-right:max(18px,calc((100vw - 1096px)/2)); } }
  a { color:var(--link); text-decoration:none; }
  .wrap { max-width:1060px; margin:0 auto; }
  /* unambiguous move colours (NOT tied to the zh red=up swap) */
  .r-neg { color:#d23f3f; font-weight:600; }
  .r-pos { color:#1f9a55; font-weight:600; }
  html[data-theme="dark"] .r-neg { color:#ef6a6a; }
  html[data-theme="dark"] .r-pos { color:#3fc07e; }
  .mut { color:var(--muted); }
  /* tags / chips */
  .chip { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; line-height:1; padding:5px 10px; border-radius:999px;
          background:var(--panel2); border:1px solid var(--line); color:var(--muted); white-space:nowrap; }
  .chip.tag-macro   { color:#5b8def; border-color:#5b8def55; }
  .chip.tag-fed     { color:#c77dff; border-color:#c77dff55; }
  .chip.tag-rates   { color:#3fb6c0; border-color:#3fb6c055; }
  .chip.tag-equities{ color:#46b87a; border-color:#46b87a55; }
  .chip.tag-crypto  { color:#e0973a; border-color:#e0973a55; }
  .chip.tag-energy  { color:#cf7b3a; border-color:#cf7b3a55; }
  .chip.tag-event   { color:#e0607a; border-color:#e0607a55; }
  .chip.tag-ai      { color:#b48ead; border-color:#b48ead55; }
  .chip.tag-china   { color:#d0554f; border-color:#d0554f55; }
  .chip.tag-credit  { color:#d08770; border-color:#d0877055; }
  footer.rfoot { color:var(--muted); font-size:11.5px; margin:46px auto 0; max-width:1060px; border-top:1px solid var(--line); padding-top:14px; }
  
  .wh-hero { max-width:1060px; margin:16px auto 0; background:var(--panel); border:1px solid var(--line);
             border-radius:16px; padding:24px 28px; position:relative; overflow:hidden; box-shadow:var(--card-shadow); }
  .wh-hero::before { content:""; position:absolute; inset:0 0 auto 0; height:4px;
             background:linear-gradient(90deg,#1f4ea8,#b23b4e 55%,#d9a441); }
  .wh-kick { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--link); margin:0 0 8px; font-weight:700; }
  .wh-hero h1 { font-size:27px; line-height:1.18; margin:0 0 8px; letter-spacing:-.01em; }
  .wh-hero p.sub { font-size:14.5px; color:var(--text); opacity:.82; margin:0; max-width:80ch; }
  .wh-empty { max-width:1060px; margin:22px auto; padding:30px; text-align:center; color:var(--muted);
              border:1px dashed var(--line); border-radius:14px; }

  .wh-list { max-width:1060px; margin:22px auto 0; display:flex; flex-direction:column; gap:18px; }
  .wh-card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:20px 22px;
             scroll-margin-top:84px; position:relative; box-shadow:var(--card-shadow); }
  .wh-card.live { border-color:#b23b4e66; }
  .wh-card .row1 { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-bottom:8px; }
  .wh-badge { font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
              padding:4px 9px; border-radius:999px; border:1px solid var(--line); white-space:nowrap; }
  .wh-badge.live { color:#fff; background:#b23b4e; border-color:#b23b4e; }
  .wh-badge.tone-tailwind { color:#1f9a55; border-color:#1f9a5566; }
  .wh-badge.tone-headwind { color:#d23f3f; border-color:#d23f3f66; }
  html[data-lang="zh"] .wh-badge.tone-tailwind { color:#d23f3f; border-color:#d23f3f66; }
  html[data-lang="zh"] .wh-badge.tone-headwind { color:#1f9a55; border-color:#1f9a5566; }
  .wh-badge.tone-mixed    { color:#d9a441; border-color:#d9a44166; }
  .wh-badge.tone-neutral  { color:var(--muted); }
  .wh-when { font-size:12px; color:var(--muted); }
  .wh-card h2 { font-size:20px; line-height:1.25; margin:2px 0 6px; }
  .wh-summary { font-size:14.5px; opacity:.92; margin:0 0 6px; }

  .wh-meter { display:flex; align-items:center; gap:9px; margin:10px 0 4px; font-size:11.5px; color:var(--muted); }
  .wh-meter .bar { flex:0 0 130px; height:7px; border-radius:999px; background:var(--panel2); overflow:hidden; border:1px solid var(--line); }
  .wh-meter .bar > i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#1f4ea8,#b23b4e); }

  .wh-body { font-size:14px; line-height:1.7; margin:10px 0; }
  .wh-body p { margin:8px 0; opacity:.93; }

  .wh-sub-h { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:16px 0 7px; font-weight:700; }
  table.wh-tbl { border-collapse:collapse; width:100%; font-size:13px; margin:4px 0 2px; }
  table.wh-tbl th { text-align:left; padding:7px 10px; background:var(--panel2); color:var(--muted); font-weight:600; border-bottom:2px solid var(--line); }
  table.wh-tbl td { padding:7px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
  table.wh-tbl tr:hover td { background:var(--panel2); }
  .wh-dir { font-weight:700; font-size:11.5px; white-space:nowrap; }
  .wh-dir.benefit { color:#1f9a55; }
  .wh-dir.hurt { color:#d23f3f; }
  .wh-dir.neutral { color:var(--muted); }
  html[data-theme="dark"] .wh-dir.benefit { color:#3fc07e; }
  html[data-theme="dark"] .wh-dir.hurt { color:#ef6a6a; }
  html[data-lang="zh"] .wh-dir.benefit { color:#d23f3f; }
  html[data-lang="zh"] .wh-dir.hurt { color:#1f9a55; }
  html[data-lang="zh"][data-theme="dark"] .wh-dir.benefit { color:#ef6a6a; }
  html[data-lang="zh"][data-theme="dark"] .wh-dir.hurt { color:#3fc07e; }
  .wh-sym { font-weight:700; font-variant-numeric:tabular-nums; }
  .wh-chg { font-variant-numeric:tabular-nums; font-size:12px; }
  .wh-chg.up { color:#1f9a55; } .wh-chg.dn { color:#d23f3f; }
  html[data-theme="dark"] .wh-chg.up { color:#3fc07e; } html[data-theme="dark"] .wh-chg.dn { color:#ef6a6a; }
  html[data-lang="zh"] .wh-chg.up { color:#d23f3f; } html[data-lang="zh"] .wh-chg.dn { color:#1f9a55; }
  html[data-lang="zh"][data-theme="dark"] .wh-chg.up { color:#ef6a6a; } html[data-lang="zh"][data-theme="dark"] .wh-chg.dn { color:#3fc07e; }

  .wh-src { font-size:12.5px; margin:14px 0 2px; }
  .wh-src a { color:var(--link); word-break:break-word; }
  .wh-disc { font-size:11.5px; color:var(--muted); border-top:1px solid var(--line); margin-top:14px; padding-top:10px; }
  .wh-pagedisc { max-width:1060px; margin:18px auto 0; font-size:12px; color:var(--muted);
                 border:1px solid var(--line); border-radius:12px; padding:12px 16px; background:var(--panel2); }

  /* Treasury Watch panel — the TGA liquidity read (money-green → gold accent) */
  .wh-tre { max-width:1060px; margin:22px auto 0; background:var(--panel); border:1px solid var(--line);
            border-radius:16px; padding:22px 24px; box-shadow:var(--card-shadow); position:relative; overflow:hidden; }
  .wh-tre::before { content:""; position:absolute; inset:0 0 auto 0; height:4px;
            background:linear-gradient(90deg,#1f7a4e,#2f8f6f 55%,#d9a441); }
  .wh-tre .tk { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--link); margin:0 0 6px; font-weight:700; }
  .wh-tre h2 { font-size:19px; line-height:1.2; margin:0 0 4px; letter-spacing:-.01em; }
  .wh-tre p.sub { font-size:13px; color:var(--text); opacity:.78; margin:0 0 14px; max-width:78ch; }
  .wh-stats { display:flex; flex-wrap:wrap; gap:10px 12px; margin:0 0 6px; }
  .wh-stat { flex:1 1 150px; min-width:138px; background:var(--panel2); border:1px solid var(--line);
             border-radius:12px; padding:10px 13px; }
  .wh-stat .lab { font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin:0 0 3px; }
  .wh-stat .val { font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; line-height:1.15; }
  .wh-stat .val .u { font-size:12px; font-weight:600; opacity:.6; }
  .wh-stat .delta { font-size:12px; font-variant-numeric:tabular-nums; margin-top:2px; }
  .wh-stat .delta.up { color:#1f9a55; } .wh-stat .delta.dn { color:#d23f3f; }
  .wh-stat .val.up { color:#1f9a55; } .wh-stat .val.dn { color:#d23f3f; }
  html[data-theme="dark"] .wh-stat .delta.up, html[data-theme="dark"] .wh-stat .val.up { color:#3fc07e; }
  html[data-theme="dark"] .wh-stat .delta.dn, html[data-theme="dark"] .wh-stat .val.dn { color:#ef6a6a; }
  html[data-lang="zh"] .wh-stat .delta.up, html[data-lang="zh"] .wh-stat .val.up { color:#d23f3f; }
  html[data-lang="zh"] .wh-stat .delta.dn, html[data-lang="zh"] .wh-stat .val.dn { color:#1f9a55; }
  html[data-lang="zh"][data-theme="dark"] .wh-stat .delta.up, html[data-lang="zh"][data-theme="dark"] .wh-stat .val.up { color:#ef6a6a; }
  html[data-lang="zh"][data-theme="dark"] .wh-stat .delta.dn, html[data-lang="zh"][data-theme="dark"] .wh-stat .val.dn { color:#3fc07e; }
  .wh-chip { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.03em;
             padding:3px 9px; border-radius:999px; border:1px solid var(--line); }
  .wh-chip.green { color:#1f9a55; border-color:#1f9a5566; }
  .wh-chip.amber { color:#d9a441; border-color:#d9a44166; }
  .wh-chip.red   { color:#d23f3f; border-color:#d23f3f66; }
  .wh-chip.mut   { color:var(--muted); }
  html[data-theme="dark"] .wh-chip.green { color:#3fc07e; }
  .wh-tre .impulse { font-size:13.5px; line-height:1.55; margin:12px 0; padding:10px 13px;
             background:var(--panel2); border-radius:10px; border-left:3px solid #2f8f6f; }
  .wh-tre .sparkwrap { margin:12px 0 2px; }
  .wh-tre .sparkcap { display:flex; justify-content:space-between; font-size:10.5px; color:var(--muted);
             margin:0 0 4px; font-variant-numeric:tabular-nums; }
  .wh-spark { width:100%; height:64px; display:block; }
  .wh-tre .foot { font-size:11.5px; color:var(--muted); margin:12px 0 0; border-top:1px solid var(--line); padding-top:9px; }
  .wh-badge.tre { color:#1f7a4e; border-color:#1f7a4e66; }
  html[data-theme="dark"] .wh-badge.tre { color:#3fc07e; }

