
  /* ---------- 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; }
  
  body { padding-bottom:52px; }
  @media(min-width:1180px){ body{ padding-left:max(18px,calc((100vw - 1216px)/2)); padding-right:max(18px,calc((100vw - 1216px)/2)); } }
  .shell { max-width:1180px; margin:0 auto; }
  .hero { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:18px; margin:24px 0 16px; align-items:start; }
  .hero-main,.side,.card,.rail-card,.empty { background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:var(--card-shadow); }
  .hero-main { min-height:0; padding:24px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
  .hero-main:before { content:''; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,#d04545,var(--warn),var(--link)); }
  .eyebrow { display:flex; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; margin:0 0 14px; }
  html[data-lang="zh"] .eyebrow { letter-spacing:0; }
  .live { width:7px; height:7px; border-radius:50%; background:var(--up); box-shadow:0 0 0 4px color-mix(in srgb,var(--up) 14%,transparent); align-self:center; }
  .hero h1 { font-size:36px; line-height:1.04; margin:0 0 12px; letter-spacing:0; }
  .hero h1 a { color:var(--text); }
  .hero h1 a:hover { color:var(--link); }
  .dek { color:var(--muted); font-size:14.5px; max-width:72ch; margin:0; }
  .meta,.intel { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-top:16px; }
  .chip { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--line); border-radius:999px; padding:5px 10px; font-size:11.5px; color:var(--muted); background:var(--panel2); }
  .chip b { color:var(--text); }
  .theme { --c:var(--link); color:color-mix(in srgb,var(--c) 82%,var(--text)); border-color:color-mix(in srgb,var(--c) 40%,var(--line)); background:color-mix(in srgb,var(--c) 12%,var(--panel)); }
  .th-monetary{--c:#7aa7e0}.th-inflation{--c:#e08b45}.th-growth{--c:#9cbf5a}.th-credit{--c:#a78bfa}.th-fiscal{--c:#e0a030}.th-policy{--c:#d04545}.th-markets{--c:#45b873}.th-macro{--c:var(--muted)}
  .imp-high { color:var(--up); border-color:color-mix(in srgb,var(--up) 48%,var(--line)); }
  .imp-medium { color:var(--warn); border-color:color-mix(in srgb,var(--warn) 48%,var(--line)); }
  .tk { color:var(--link); border-color:color-mix(in srgb,var(--link) 42%,var(--line)); }
  .read { margin-left:auto; color:var(--link); font-size:12px; font-weight:800; }
  .side { padding:16px; display:grid; gap:12px; align-content:start; }
  .tile { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:13px 14px; border:1px solid var(--line); border-radius:8px; background:var(--panel2); }
  .tile .k { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
  .tile .v { font-size:18px; font-weight:760; margin-top:2px; }
  .tile .s { color:var(--muted); font-size:11.5px; }
  .tile .num { font-size:26px; font-weight:850; font-variant-numeric:tabular-nums; }
  .layout { display:grid; grid-template-columns:minmax(0,1fr) 328px; gap:18px; align-items:start; }
  .toolbar { position:sticky; top:0; z-index:5; display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:12px 0 14px; background:linear-gradient(180deg,var(--bg) 72%,transparent); }
  .search { position:relative; flex:1 1 260px; min-width:210px; }
  .search input { width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text); border-radius:8px; padding:10px 12px 10px 34px; outline:none; font-size:13px; }
  .search input:focus { border-color:var(--link); box-shadow:0 0 0 3px color-mix(in srgb,var(--link) 16%,transparent); }
  .search .mag { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--muted); }
  .filters { display:flex; flex-wrap:wrap; gap:6px; }
  .fbtn { border:1px solid var(--line); background:var(--panel); color:var(--muted); border-radius:999px; padding:7px 10px; font-size:11.5px; cursor:pointer; }
  .fbtn:hover,.fbtn.on { color:var(--text); border-color:var(--link); background:color-mix(in srgb,var(--link) 10%,var(--panel)); }
  .count { color:var(--muted); font-size:12px; margin-left:auto; white-space:nowrap; }
  .feed { display:grid; gap:10px; }
  .card { display:grid; grid-template-columns:86px minmax(0,1fr); overflow:hidden; color:var(--text); transition:transform .16s,border-color .16s,box-shadow .16s; }
  .card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--link) 45%,var(--line)); box-shadow:0 14px 30px -18px color-mix(in srgb,var(--link) 50%,transparent); }
  .rank { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:2px; min-height:112px; background:var(--panel2); border-right:1px solid var(--line); color:var(--muted); }
  .rank b { color:var(--link); font-size:11px; letter-spacing:.08em; }
  .rank span { font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
  .body { padding:14px 16px; min-width:0; }
  .top { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-bottom:8px; }
  .title { font-size:17px; line-height:1.28; font-weight:730; margin:0; color:var(--text); }
  .card:hover .title { color:var(--link); }
  .summary { color:var(--muted); font-size:12.5px; margin:8px 0 0; }
  .rail { display:grid; gap:12px; position:sticky; top:12px; }
  .rail-card { padding:15px; }
  .rail-card h2 { margin:0 0 10px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
  .line { display:flex; gap:9px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--line); }
  .line:last-child { border-bottom:0; }
  .date { flex:0 0 74px; color:var(--muted); font-size:11.5px; font-variant-numeric:tabular-nums; }
  .main { min-width:0; font-size:12.5px; }
  .tag { display:inline-flex; min-width:45px; justify-content:center; padding:2px 7px; border-radius:6px; border:1px solid var(--line); color:var(--link); font-size:10.5px; font-weight:800; margin-right:5px; }
  .empty { padding:34px 28px; text-align:center; }
  .empty h2 { font-size:21px; color:var(--text); text-transform:none; letter-spacing:0; margin:0 0 8px; }
  .empty p,.disc { color:var(--muted); }
  .disc { font-size:11.5px; line-height:1.55; margin:14px 0 0; }
  .hidden { display:none !important; }
  @media(max-width:900px){ .hero,.layout{grid-template-columns:1fr}.hero-main{min-height:0}.hero h1{font-size:28px}.rail{position:static} }
  @media(max-width:560px){ .hero-main{padding:20px 16px}.card{grid-template-columns:1fr}.rank{min-height:auto;flex-direction:row;justify-content:flex-start;padding:8px 14px;border-right:0;border-bottom:1px solid var(--line)}.toolbar{position:static} }

