
  /* ---------- 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(--ink-link, 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; }
  /* XG-W7 follow line — its own row, never appended to the disclaimer sentence:
     a legal notice and a marketing CTA must not read as one thought. */
  footer.rfoot .rf-x { display:inline-flex; align-items:center; gap:6px; margin-top:11px; padding:4px 10px;
    border-radius:100px; border:1px solid var(--line); color:var(--muted); font-size:11px; font-weight:600;
    transition:color .16s, border-color .16s; }
  footer.rfoot .rf-x:hover { color:var(--text); border-color:color-mix(in srgb,var(--text) 26%,transparent); }
  
/* ---- core tokens (SM4-R3: --numf retired; Inter inherits; spark keeps mono) ---- */
.sm { --mono:var(--font-mono,ui-monospace,"SF Mono",monospace); max-width:1220px; margin:0 auto; }
.sm .num { font-family:inherit; font-variant-numeric:tabular-nums; }
.grade { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px;
         padding:0 5px; border-radius:6px; font-weight:700; font-size:12px; line-height:1; border:1px solid var(--line); }
.grade.A { color:#1f9a55; border-color:#1f9a5566; background:#1f9a5514; }
.grade.B { color:#3b82f6; border-color:#3b82f666; background:#3b82f614; }
.grade.C { color:#c98a1a; border-color:#c98a1a66; background:#c98a1a14; }
.grade.D { color:#d23f3f; border-color:#d23f3f66; background:#d23f3f14; }
.grade.na { color:var(--muted); }
html[data-theme="dark"] .grade.A { color:#3fc07e; }
html[data-theme="dark"] .grade.C { color:#e0a93a; }
html[data-theme="dark"] .grade.D { color:#ef6a6a; }

/* ---- axis tags ---- */
.axis-tag { font-weight:600; font-size:11px; line-height:1; letter-spacing:.04em; text-transform:uppercase;
            padding:3px 6px; border-radius:5px; border:1px solid var(--line); color:var(--muted); }
.axis-13f  { color:#c9a24a; border-color:#c9a24a55; }
.axis-13fa { color:#c9a24a; border-color:#c9a24a55; }
.axis-13dg { color:#5b9bf0; border-color:#5b9bf055; }
.axis-form4 { color:#45b873; border-color:#45b87355; }
.axis-short { color:#b07fd8; border-color:#b07fd855; }

/* ---- freshness chips ---- */
/* inline-block (not inline-flex): long labels must wrap as flowing text, not stack as flex columns */
.chip-fresh { display:inline-block; padding:2px 9px;
              border-radius:100px; font-weight:500; font-size:11px; line-height:1.6; letter-spacing:.03em;
              border:1px solid var(--line); color:var(--muted); background:var(--panel2);
              max-width:100%; }
.chip-fresh .fdot { width:7px; height:7px; border-radius:50%; display:inline-block;
                    vertical-align:middle; margin:-1px 5px 0 0; }
.t-green { color:var(--ink-up, var(--up)); } .t-green .fdot { background:var(--up); }
.t-amber { color:#e0a030; } .t-amber .fdot { background:#e0a030; }
.t-red { color:var(--ink-down, var(--down)); } .t-red .fdot { background:var(--down); }

/* ---- tier pills ---- */
.tier { font-weight:500; font-size:11px; line-height:1; padding:3px 7px; border-radius:5px;
        letter-spacing:.02em; text-transform:capitalize; }
.tier.elevated { color:var(--ink-down, var(--down)); background:rgba(224,100,100,.12); border:1px solid rgba(224,100,100,.35); }
.tier.moderate { color:#e0a030; background:rgba(224,160,48,.1); border:1px solid rgba(224,160,48,.3); }
.tier.low { color:var(--muted); background:var(--panel2); border:1px solid var(--line); }
.tier.unavail { color:var(--muted); background:transparent; border:1px dashed var(--line); }
.tier.activist { color:#5b9bf0; background:rgba(91,155,240,.1); border:1px solid rgba(91,155,240,.35); }
.tier.flip { color:#5b9bf0; background:rgba(91,155,240,.1); border:1px solid rgba(91,155,240,.35); }
.tier.custodial { color:var(--muted); background:var(--panel2); border:1px solid var(--line); }

/* ---- turnover tier ---- */
.tlow { color:var(--muted); background:var(--panel2); border:1px solid var(--line); }
.tmed { color:#e0a030; background:rgba(224,160,48,.1); border:1px solid rgba(224,160,48,.3); }
.thigh { color:var(--ink-down, var(--down)); background:rgba(224,100,100,.12); border:1px solid rgba(224,100,100,.35); }

/* ---- S0 command deck ---- */
.sm-deck { background:var(--panel); border:1px solid var(--line); border-radius:16px;
           padding:20px 22px; display:grid; grid-template-columns:1.2fr 1fr 1.4fr; gap:22px;
           margin-bottom:10px; }
.sm-deck > * { min-width:0; } /* grid children must be shrinkable or long chips blow the deck out of the card */
.sm-deck > .axis-rail { grid-column:1/-1; margin-top:0; }
@media(max-width:960px){ .sm-deck { grid-template-columns:1fr; } }
.sm-deck .deck-eyebrow { font-weight:600; font-size:11px; line-height:1; letter-spacing:.06em;
                          text-transform:uppercase; color:var(--muted); }
.sm-deck h1 { font-size:clamp(22px,3vw,30px); margin:.25em 0 .1em; letter-spacing:-.01em; }
.sm-deck .deck-sub { color:var(--muted); font-size:12.5px; max-width:420px; }
.sm-clock { border-left:1px solid var(--line); border-right:1px solid var(--line);
            padding:0 22px; display:flex; flex-direction:column; justify-content:center; gap:4px; }
@media(max-width:960px){ .sm-clock { border:0; border-top:1px solid var(--line);
                                     border-bottom:1px solid var(--line); padding:14px 0; } }
.sm-clock .ck { font-weight:600; font-size:11px; line-height:1; letter-spacing:.02em;
                color:var(--muted); }
.sm-clock .bignum { font-weight:700; font-size:30px; line-height:1; font-variant-numeric:tabular-nums; }
.sm-clock .bignum span { font-size:14px; color:var(--muted); font-weight:600; }
.sm-clock .qstate { font-weight:600; font-size:11px; line-height:1.5; color:#e0a030; }
.sm-gridbox .gbk { font-weight:600; font-size:11px; line-height:1; letter-spacing:.02em;
                    color:var(--muted); margin-bottom:7px;
                    display:flex; justify-content:space-between; }
.dots-grid { display:grid; grid-template-columns:repeat(18,minmax(0,14px)); gap:5px; }
.dots-grid i { width:10px; height:10px; border-radius:50%; border:1.5px solid var(--muted);
               display:block; }
.dots-grid i.df { background:var(--up); border-color:var(--up); }
.dots-grid i.dn { background:#e0a030; border-color:#e0a030; }
.dots-grid i.dp { border-color:#e0a030; }
.axis-rail { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.hon-note { margin-top:12px; font-size:11px; color:var(--muted);
            border-top:1px solid var(--line); padding-top:10px; }

/* ---- rolling filing-season radar ---- */
.filing-live { margin:14px 0 4px; padding:18px 20px; border:1px solid color-mix(in srgb,var(--info) 42%,var(--line));
               border-radius:15px; background:linear-gradient(135deg,color-mix(in srgb,var(--info) 7%,var(--panel)),var(--panel) 48%);
               overflow:hidden; }
.fl-head { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr); gap:22px; align-items:end; }
.fl-kicker { display:flex; align-items:center; gap:8px; color:var(--ink-info, var(--info)); font-size:11px; font-weight:700;
             letter-spacing:.06em; text-transform:uppercase; }
.fl-pulse { width:8px; height:8px; border-radius:50%; background:var(--info); box-shadow:0 0 0 5px color-mix(in srgb,var(--info) 15%,transparent); }
.filing-live h2 { margin:6px 0 4px; font-size:clamp(19px,2.5vw,25px); letter-spacing:-.01em; }
.fl-sub { max-width:700px; color:var(--muted); font-size:12.5px; line-height:1.55; }
.fl-progress-meta { display:flex; justify-content:space-between; gap:12px; margin-bottom:7px; font-size:11px; color:var(--muted); }
.fl-progress-meta strong { color:var(--text); font-size:13px; }
.fl-track { height:9px; border-radius:9px; background:var(--panel2); overflow:hidden; border:1px solid var(--line); }
.fl-track i { display:block; height:100%; min-width:4px; border-radius:9px; background:linear-gradient(90deg,var(--info),var(--up)); }
.fl-baseline { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.fl-cohort { font-size:11px; color:var(--muted); padding:4px 8px; border:1px solid var(--line); border-radius:6px; background:var(--panel2); }
.fl-cohort strong { color:var(--text); }
.fl-filers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.fl-filer { min-width:0; padding:12px 13px; border:1px solid var(--line); border-radius:11px; background:color-mix(in srgb,var(--panel) 90%,transparent); }
.fl-filer-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.fl-filer-name { font-size:12.5px; font-weight:700; line-height:1.25; }
.fl-filer-date { margin-top:3px; font-size:10.5px; color:var(--muted); }
.fl-filer-stats { display:flex; gap:10px; flex-wrap:wrap; margin-top:9px; font-size:11px; color:var(--muted); }
.fl-filer-stats strong { color:var(--text); font-variant-numeric:tabular-nums; }
.fl-actions { margin-top:9px; display:flex; gap:5px; flex-wrap:wrap; }
.fl-actions span { font-size:10.5px; padding:2px 6px; border-radius:5px; background:var(--panel2); color:var(--muted); }
.fl-actions .pos { color:var(--ink-up, var(--up)); } .fl-actions .neg { color:var(--ink-down, var(--down)); }
.fl-unit { display:inline-block; margin-top:7px; font-size:9.5px; color:var(--ink-info, var(--info)); }
.fl-notices { margin-top:10px; padding:9px 11px; border:1px solid color-mix(in srgb,#e0a030 45%,var(--line));
              border-radius:9px; background:color-mix(in srgb,#e0a030 7%,var(--panel));
              color:var(--muted); font-size:11px; line-height:1.5; }
.fl-notices strong { color:var(--text); }
.fl-title { margin:16px 0 7px; display:flex; align-items:baseline; justify-content:space-between; gap:10px; font-size:12px; font-weight:700; }
.fl-title span { font-size:10.5px; font-weight:500; color:var(--muted); }
.fl-changes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.fl-change { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; min-width:0;
             padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:var(--panel); }
.fl-change .fc-rank { width:24px; height:24px; display:grid; place-items:center; border-radius:6px; font-weight:700;
                      font-size:10.5px; color:var(--ink-info, var(--info)); background:color-mix(in srgb,var(--info) 10%,var(--panel2)); }
.fl-change .fc-main { min-width:0; }
.fl-change .fc-tk { font-size:12px; font-weight:750; }
.fl-change .fc-fund { color:var(--muted); font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fl-change .fc-metric { text-align:right; font-size:10.5px; color:var(--muted); }
.fl-change .fc-metric strong { display:block; color:var(--text); font-size:11.5px; }
.fl-method { margin-top:10px; color:var(--muted); font-size:10.5px; line-height:1.5; }
@media(max-width:820px){
  .fl-head { grid-template-columns:1fr; gap:14px; }
  .fl-filers { grid-template-columns:1fr; }
  .fl-changes { grid-template-columns:1fr; }
}

/* ---- permanent all-filer institutional census ---- */
.institutional-census { margin:14px 0 8px; padding:18px 20px; border:1px solid var(--line);
                        border-radius:15px; background:var(--panel); overflow:hidden; }
.census-head { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
               align-items:end; gap:24px; }
.census-kicker { color:var(--ink-info, var(--info)); font-size:10.5px; font-weight:750; letter-spacing:.07em;
                 text-transform:uppercase; }
.institutional-census h2 { margin:5px 0 4px; font-size:clamp(19px,2.4vw,25px); letter-spacing:-.01em; }
.census-sub { max-width:720px; color:var(--muted); font-size:12.5px; line-height:1.55; }
.census-state { display:inline-flex; margin-left:7px; padding:2px 7px; border:1px solid var(--line);
                border-radius:99px; color:var(--muted); background:var(--panel2);
                font-size:9.5px; letter-spacing:.05em; vertical-align:1px; }
.census-progress-meta { display:flex; align-items:baseline; justify-content:space-between; gap:12px;
                        margin-bottom:6px; color:var(--muted); font-size:10.5px; }
.census-progress-meta strong { color:var(--text); font-size:13px; font-variant-numeric:tabular-nums; }
.census-progress { display:block; width:100%; height:9px; overflow:hidden; border:0; border-radius:9px;
                   background:var(--panel2); accent-color:var(--info); }
.census-progress::-webkit-progress-bar { background:var(--panel2); border:1px solid var(--line); border-radius:9px; }
.census-progress::-webkit-progress-value { border-radius:9px; background:linear-gradient(90deg,var(--info),var(--up)); }
.census-progress::-moz-progress-bar { border-radius:9px; background:linear-gradient(90deg,var(--info),var(--up)); }
.census-period { margin-top:7px; color:var(--muted); font-size:10.5px; }
.census-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.census-panel { min-width:0; padding:12px 13px; border:1px solid var(--line); border-radius:11px;
                background:var(--panel2); }
.census-panel h3 { margin:0 0 3px; font-size:12.5px; }
.census-panel-note { min-height:30px; margin-bottom:5px; color:var(--muted); font-size:10.5px; line-height:1.4; }
.census-list { list-style:none; margin:0; padding:0; }
.census-list li { display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:8px; align-items:center;
                  min-width:0; padding:7px 0; border-top:1px solid var(--line); }
.census-rank { color:var(--muted); font-size:10px; font-variant-numeric:tabular-nums; }
.census-name { min-width:0; }
.census-name strong { display:block; overflow:hidden; color:var(--text); font-size:11.5px;
                      text-overflow:ellipsis; white-space:nowrap; }
.census-name small { display:block; overflow:hidden; color:var(--muted); font-size:9.5px;
                     text-overflow:ellipsis; white-space:nowrap; }
.census-metric { text-align:right; color:var(--muted); font-size:9.5px; line-height:1.35; }
.census-metric strong { display:block; color:var(--text); font-size:10.5px; font-variant-numeric:tabular-nums; }
.census-metric.up strong { color:var(--ink-up, var(--up)); }
.census-metric.down strong { color:var(--ink-down, var(--down)); }
.census-extra > summary { display:flex; align-items:center; gap:4px; cursor:pointer;
                          color:var(--muted); font-size:10.5px; }
.census-foot { margin-top:11px; padding-top:9px; border-top:1px solid var(--line); color:var(--muted);
               font-size:10.5px; line-height:1.5; }
.census-empty { margin-top:12px; padding:11px 13px; border:1px dashed var(--line); border-radius:10px;
                background:var(--panel2); color:var(--muted); font-size:11.5px; }
.census-empty strong { display:block; margin-bottom:2px; color:var(--text); }
@media(max-width:820px){
  .census-head { grid-template-columns:1fr; gap:14px; }
  .census-grid { grid-template-columns:1fr; }
}
@media(max-width:620px){
  .institutional-census { padding:15px 14px; }
  .census-panel-note { min-height:0; }
  .census-extra > summary { min-height:44px; }
}

/* ---- section headers ---- */
.sm-sec { margin:42px 0 10px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.sm-sec::after { content:''; flex:1; height:1px; background:var(--line); align-self:center; }
.sm-sec h2 { font-size:17px; margin:0; }
.sm-sec .h-note { font-size:12px; color:var(--muted); font-weight:400; }
.sm-sec-sub { font-size:12.5px; color:var(--muted); margin:0 0 10px; line-height:1.5; max-width:640px; }

/* ---- cards / banners ---- */
.sm-card { background:var(--panel); border:1px solid var(--line); border-radius:12px;
           padding:18px 20px; margin-top:10px; overflow-x:auto; }
.banner { font-size:11.5px; color:var(--muted); background:var(--panel2); border:1px solid var(--line);
          border-left:3px solid var(--info); border-radius:9px; padding:8px 12px; margin:8px 0 4px;
          line-height:1.55; }
.banner.hazard { border-left-color:var(--down); }

/* ---- wire ---- */
.wire { list-style:none; margin:0; padding:0; }
.wire li { display:flex; align-items:center; gap:10px; padding:7px 2px;
           border-top:1px solid var(--line); font-size:12.3px; flex-wrap:wrap; }
.wire .wd { font-weight:600; font-size:11px; line-height:1; color:var(--muted); min-width:74px; }
.wire .wtk { font-weight:700; font-size:12.3px; line-height:1; min-width:52px; }
.wire .wdesc { color:var(--text); }
.wire .wasof { margin-left:auto; }
.filters { display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 4px; }
.filters .fpill { font-weight:500; font-size:11px; line-height:1.8; padding:2px 11px; border-radius:99px;
                  border:1px solid var(--line); color:var(--muted); cursor:pointer; user-select:none; }
.filters .fpill.on { color:var(--text); border-color:var(--info); background:rgba(91,155,240,.08); }
.wire-count { font-size:11.5px; color:var(--muted); margin:6px 0 2px; }

/* ---- act pills ---- */
.act-pill { font-weight:500; font-size:11px; line-height:1; padding:3px 6px; border-radius:5px; border:1px solid var(--line);
            color:var(--muted); text-transform:capitalize; letter-spacing:.02em; }
.act-pill.new,.act-pill.add { color:var(--ink-up, var(--up)); border-color:rgba(69,184,115,.4); }
.act-pill.trim,.act-pill.exit { color:var(--ink-down, var(--down)); border-color:rgba(224,100,100,.4); }
.act-pill.hold { color:var(--muted); border-color:transparent; background:color-mix(in srgb, var(--muted) 14%, transparent); }

/* ---- tables ---- */
table.sm-t { width:100%; border-collapse:collapse; font-size:12.3px; margin-top:6px; }
table.sm-t th { text-align:right; font-weight:500; font-size:11px; line-height:1.3; letter-spacing:.04em;
                color:var(--muted); padding:6px 8px 7px;
                border-bottom:1px solid var(--line); white-space:nowrap; }
table.sm-t th.l, table.sm-t td.l { text-align:left; }
table.sm-t td { padding:6px 8px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; }
table.sm-t tbody tr:hover { background:var(--panel2); }
table.sm-t td .tk { font-weight:700; font-size:12.3px; line-height:1; }
table.sm-t tr.feat td { background:color-mix(in srgb, var(--up) 6%, transparent); }
table.sm-t tr.closed td { opacity:.55; }
table.sm-t .rk { color:var(--muted); font-variant-numeric:tabular-nums; }
.sub { font-size:10.5px; color:var(--muted); }
.sub2 { opacity:.72; font-weight:500; }
.star { color:#e0a030; }
.spark { font-family:var(--mono); font-size:11px; letter-spacing:1px; color:var(--ink-info, var(--info)); }

/* ---- vs card ---- */
.sm-vs { display:grid; grid-template-columns:1fr auto 1fr; gap:0; align-items:stretch; margin-top:10px; }
@media(max-width:760px){ .sm-vs { grid-template-columns:1fr; } .vs-mid { flex-direction:row; padding:10px 0; } }
.vs-card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:18px 20px; }
.vs-card.win { border-left:4px solid var(--up); }
.vs-card.lag { border-left:4px solid var(--down); }
.vs-mid { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; padding:0 14px; }
.vs-mid .vs-gap { font-weight:700; font-size:22px; line-height:1; font-variant-numeric:tabular-nums; }
.vs-mid .vs-lab { font-weight:500; font-size:11px; line-height:1.2; letter-spacing:.02em;
                  color:var(--muted); text-align:center; }
.vs-role { font-weight:600; font-size:11px; line-height:1; letter-spacing:.02em; }
.vs-card.win .vs-role { color:var(--ink-up, var(--up)); } .vs-card.lag .vs-role { color:var(--ink-down, var(--down)); }
.vs-name { font-size:17px; font-weight:700; margin:5px 0 2px; }
.vs-stat { display:flex; gap:14px; flex-wrap:wrap; margin:10px 0 6px; }
.vs-stat .k { font-weight:500; font-size:11px; line-height:1.2; letter-spacing:.02em; color:var(--muted); }
.vs-stat .v { font-weight:650; font-size:17px; line-height:1.1; font-variant-numeric:tabular-nums; margin-top:3px; }
.vs-list { margin:8px 0 0; padding:0; list-style:none; }
.vs-list li { display:flex; align-items:baseline; gap:8px; padding:4px 0;
              border-top:1px solid var(--line); font-size:12px; }
.vs-list li .vtk { font-weight:700; font-size:12px; line-height:1; min-width:44px; }
.vs-list li .vact { font-size:11px; color:var(--muted); text-transform:capitalize; letter-spacing:.02em; }
.vs-sig { font-size:11.5px; color:var(--muted); margin-top:8px; }

/* ---- per-fund accordion ---- */
details.fund { background:var(--panel); border:1px solid var(--line); border-radius:11px; margin-top:9px; }
details.fund > summary { list-style:none; cursor:pointer; padding:11px 15px;
                         display:flex; align-items:center; gap:11px; flex-wrap:wrap; font-size:13px; }
details.fund > summary::-webkit-details-marker { display:none; }
details.fund[open] > summary { border-bottom:1px solid var(--line); }
.fund .f-name { font-weight:700; font-size:14px; }
.fund .f-body { padding:6px 15px 14px; }
.rot-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:680px){ .rot-grid { grid-template-columns:1fr; } }
.rot-h { font-weight:500; font-size:11px; line-height:1; letter-spacing:.02em;
         color:var(--muted); margin:4px 0 2px; }
.rot-h.into { color:var(--ink-up, var(--up)); } .rot-h.out { color:var(--ink-down, var(--down)); }
.mini { width:100%; border-collapse:collapse; font-size:12px; }
.mini td { padding:4px 6px; border-top:1px solid var(--line); text-align:right; white-space:nowrap; }
.mini td.l { text-align:left; }
.mini .tk { font-weight:700; font-size:12px; line-height:1; }
.hold { display:flex; flex-wrap:wrap; align-items:flex-start; align-content:flex-start; gap:6px; margin-top:6px; }
.hold .h-pill { display:inline-flex; align-items:center; gap:5px; font-weight:500; font-size:11px; line-height:1;
               padding:3px 5px 3px 10px; border-radius:999px;
               border:1px solid var(--line); background:var(--panel2); }

/* ---- S7 dossier ---- */
.sm-search { display:flex; gap:8px; margin:8px 0; align-items:center; flex-wrap:wrap; }
.sm-search input { flex:1; max-width:340px; background:var(--panel2); border:1px solid var(--line);
                   border-radius:9px; color:var(--text); font-weight:600; font-size:13px;
                   padding:8px 13px; outline:none; }
.sm-search input:focus { border-color:var(--info); }
.dossier-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
@media(max-width:820px){ .dossier-grid { grid-template-columns:1fr; } }
.axisblock { border:1px solid var(--line); border-radius:10px; padding:11px 13px; background:var(--panel2); }
.axisblock .ab-h { display:flex; justify-content:space-between; align-items:center; margin-bottom:7px; }
.axisblock .ab-body { font-size:12.3px; line-height:1.6; }
#dossier-card { display:none; }

/* ---- S8 ledger ---- */
.ledgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:10px; }
@media(max-width:960px){ .ledgrid { grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .ledgrid { grid-template-columns:1fr; } }
.led { background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:12px 14px; }
.led .led-nm { font-weight:700; font-size:12.5px; margin-bottom:3px; }
.led .led-rule { font-size:10.5px; color:var(--muted); min-height:36px; margin-bottom:6px; }
.led .led-row { display:flex; justify-content:space-between; font-weight:500; font-size:11px; line-height:1.9; font-variant-numeric:tabular-nums; }
.led .led-row .lk { color:var(--muted); font-weight:500; }

/* ---- misc ---- */
.disc { background:var(--panel2); border:1px solid var(--line); border-left:3px solid var(--info);
        border-radius:10px; padding:11px 14px; margin:14px 0 4px; font-size:12px;
        line-height:1.55; color:var(--muted); }
.sm-2col { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media(max-width:820px){ .sm-2col { grid-template-columns:1fr; } }
/* two-up boards hold wide nowrap tables: columns must shrink (min-width:0) and
   scroll independently instead of blowing the pair out of the card */
.sm-2col > *, .ii-grid > *, .rot-grid > * { min-width:0; overflow-x:auto; }
.dossier-grid > *, .sm-vs > *, .ledgrid > * { min-width:0; }

/* ---- v3: sticky section rail ---- */
.sm-rail { position:sticky; top:0; z-index:30; display:flex; gap:6px; flex-wrap:wrap;
           padding:9px 2px 8px; margin:2px 0 0; background:var(--bg);
           border-bottom:1px solid var(--line); }
.sm-rail a { font-weight:500; font-size:11px; line-height:1.8; padding:2px 11px; border-radius:99px;
             border:1px solid var(--line); color:var(--muted); text-decoration:none;
             white-space:nowrap; }
.sm-rail a:hover { color:var(--text); border-color:var(--info); }
.sm-sec[id], .filing-live[id], .institutional-census[id] { scroll-margin-top:56px; }
@media(max-width:620px){
  .sm-rail { flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-inline:contain;
             scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .sm-rail::-webkit-scrollbar { display:none; }
  .sm-rail a { flex:0 0 auto; min-height:36px; display:inline-flex; align-items:center; }
  .sm-sec[id], .filing-live[id], .institutional-census[id] { scroll-margin-top:60px; }
}

/* ---- v3: ticker logos (big boards only — never wire rows / leaderboard) ---- */
.tlogo { width:18px; height:18px; border-radius:4px; vertical-align:-4px; margin-right:6px;
         background:var(--panel2); object-fit:contain; }

/* ---- v3: S1.5 / S2.5 boards ---- */
.ii-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
@media(max-width:960px){ .ii-grid { grid-template-columns:1fr; } }
.board-h { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.board-h .bt { font-weight:700; font-size:13px; }
.board-h .chip-fresh { margin-left:auto; }
.board-note { font-size:11px; color:var(--muted); margin:3px 0 4px; line-height:1.5; }
details.fullboard > summary { list-style:none; cursor:pointer; padding:7px 2px 3px;
                              font-weight:500; font-size:11px; line-height:1.6; color:var(--muted); }
details.fullboard > summary::-webkit-details-marker { display:none; }
details.fullboard > summary:hover { color:var(--text); }
.role-pill { font-weight:500; font-size:11px; line-height:1; padding:3px 6px; border-radius:5px; letter-spacing:.04em;
             text-transform:capitalize; color:#5b9bf0; border:1px solid #5b9bf055; }
.ip-score { font-weight:500; font-size:11px; line-height:1.4; padding:2px 7px; border-radius:5px;
            border:1px solid var(--line); color:var(--muted); background:var(--panel2); }
.mchip { display:inline-block; font-weight:500; font-size:11px; line-height:1.4; padding:2px 6px; margin:1px 2px 1px 0;
         border-radius:5px; border:1px solid var(--line); color:var(--muted);
         background:var(--panel2); white-space:nowrap; }
/* funds column: let the chips wrap instead of forcing horizontal scroll */
table.sm-t td.mchips { white-space:normal; max-width:280px; }

/* ---- v3: flow breadth mini-bar ---- */
.bbar { display:inline-flex; width:56px; height:7px; border-radius:4px; overflow:hidden;
        background:var(--panel2); vertical-align:middle; }
.bbar i { display:block; height:100%; }
.bbar .bi { background:var(--up); }
.bbar .bo { background:var(--down); }

/* ---- v3: rotation bars (zero-centred) ---- */
.rotbars { list-style:none; margin:6px 0 0; padding:0; }
.rotbars li { display:flex; align-items:center; gap:9px; padding:4px 0; font-size:12px;
              border-top:1px solid var(--line); }
.rotbars .rb-lab { min-width:132px; font-size:11.5px; }
.rotbars .rb-track { flex:1; height:9px; border-radius:5px; background:var(--panel2);
                     position:relative; overflow:hidden; }
.rotbars .rb-track::after { content:''; position:absolute; left:50%; top:0; bottom:0;
                            width:1px; background:var(--line); }
.rotbars .rb-fill { position:absolute; top:0; bottom:0; }
.rotbars .rb-fill.pos { left:50%; background:var(--up); border-radius:0 5px 5px 0; }
.rotbars .rb-fill.neg { right:50%; background:var(--down); border-radius:5px 0 0 5px; }
.rotbars .rb-val { min-width:58px; text-align:right; }

/* ---- v3: wire see-more ---- */
.wire-more-row { display:flex; gap:8px; align-items:center; margin-top:8px;
                 padding-top:9px; border-top:1px solid var(--line); }
.wire-more { font-weight:600; font-size:11.5px; line-height:1.8; padding:3px 14px; border-radius:99px;
             border:1px solid var(--line); background:var(--panel2); color:var(--text);
             cursor:pointer; }
.wire-more:hover { border-color:var(--info); }

/* ---- Follow Desk (sec-follow) ---- */
.ftier { font-weight:500; font-size:11px; line-height:1; padding:3px 7px; border-radius:5px;
         letter-spacing:.02em; text-transform:capitalize; border:1px solid var(--line); }
.ftier.follow { color:var(--ink-up, var(--up)); background:rgba(69,184,115,.1); border-color:rgba(69,184,115,.4); }
.ftier.watch  { color:var(--muted); background:var(--panel2); }
.ftier.fade   { color:var(--ink-down, var(--down)); background:rgba(224,100,100,.08); border-color:rgba(224,100,100,.3); opacity:.75; }
.ftier.insufficient,.ftier.low-data { color:var(--muted); background:transparent; border-style:dashed; }
.fsc-bar { display:inline-block; width:48px; height:5px; border-radius:3px;
           background:var(--panel2); vertical-align:middle; position:relative; overflow:hidden; }
.fsc-bar i { position:absolute; left:0; top:0; height:100%; border-radius:3px; background:var(--info); }
.cap-chip { font-weight:500; font-size:11px; line-height:1; padding:2px 5px; border-radius:4px; text-transform:uppercase;
            letter-spacing:.04em; border:1px solid var(--line); color:var(--muted); }
.cap-chip.large { color:#5b9bf0; border-color:#5b9bf055; }
.cap-chip.mid   { color:#c9a24a; border-color:#c9a24a55; }
.cap-chip.small { color:#45b873; border-color:#45b87355; }
.cap-chip.off_index { color:var(--muted); border-style:dashed; }
.fboard-row-accent td { background:color-mix(in srgb, var(--info) 4%, transparent); }
.follow-banner { font-size:11.5px; color:var(--muted); background:var(--panel2);
                 border:1px solid var(--line); border-left:3px solid var(--up);
                 border-radius:9px; padding:8px 12px; margin:8px 0 4px; line-height:1.55; }
.follow-empty { font-size:12px; color:var(--muted); padding:18px 4px; text-align:center; }
.sm-2half { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:10px; }
@media(max-width:820px){ .sm-2half { grid-template-columns:1fr; } }
.sm-2half > * { min-width:0; overflow-x:auto; }
.frozen-chip { font-weight:500; font-size:11px; line-height:1; padding:2px 6px; border-radius:4px;
               letter-spacing:.02em; text-transform:capitalize;
               color:#e0a030; background:rgba(224,160,48,.1); border:1px solid rgba(224,160,48,.3); }

/* ---- v3: reliability chip + fund links + inline fund-list details ---- */
.rely { font-weight:500; font-size:11px; line-height:1.4; padding:2px 7px; border-radius:5px; letter-spacing:.03em;
        text-transform:capitalize; border:1px solid var(--line); }
.rely.up { color:var(--ink-up, var(--up)); border-color:rgba(69,184,115,.4); background:rgba(69,184,115,.08); }
.rely.down { color:var(--ink-down, var(--down)); border-color:rgba(224,100,100,.4); background:rgba(224,100,100,.08); }
.rely.flat { color:var(--muted); background:var(--panel2); }
.fund-link { color:inherit; text-decoration:none; border-bottom:1px dotted var(--line); }
.fund-link:hover { color:var(--ink-info, var(--info)); border-bottom-color:var(--info); }
details.fl > summary { list-style:none; cursor:pointer; color:var(--ink-info, var(--info));
                       font-weight:500; font-size:11px; line-height:1.6; white-space:nowrap; }
details.fl > summary::-webkit-details-marker { display:none; }
details.fl .fl-body { text-align:left; white-space:normal; padding:4px 0 2px; max-width:340px; }

/* ---- SM4: memory hero cards, qdot motif, smFold, wire followed-fund chip ---- */
.mem-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; margin:10px 0; }
a.mem-card { display:block; background:var(--panel); border:1px solid var(--line); border-radius:12px;
             padding:14px 16px; text-decoration:none; color:inherit; transition:border-color .15s; }
a.mem-card:hover { border-color:var(--info); }
.mem-card .mc-name { font-weight:700; font-size:13px; margin-bottom:4px; }
.mem-card .mc-dots { display:flex; gap:5px; margin:6px 0; }
.qdot { width:12px; height:12px; border-radius:50%; display:inline-block; }
.qdot.beat { background:var(--up); }
.qdot.miss { background:var(--down); }
.qdot.nd { background:transparent; border:1.5px solid var(--muted); }
.mem-card .mc-line { font-size:11.5px; color:var(--muted); margin-top:4px; line-height:1.4; }
.mc-edge { font-weight:700; }
.mem-legend { font-size:11px; color:var(--muted); margin:4px 0 12px; }
.followed-chip { font-weight:500; font-size:11px; line-height:1; padding:2px 7px; border-radius:5px;
                 color:var(--ink-up, var(--up)); background:rgba(69,184,115,.1); border:1px solid rgba(69,184,115,.4); }
/* smFold shared controller */
.smfold-more-row { display:flex; gap:8px; align-items:center; margin-top:8px;
                   padding-top:9px; border-top:1px solid var(--line); }
.smfold-btn { font-weight:500; font-size:11.5px; line-height:1.8; padding:3px 14px; border-radius:99px;
              border:1px solid var(--line); background:var(--panel2); color:var(--text);
              cursor:pointer; }
.smfold-btn:hover { border-color:var(--info); }

/* ---- light mode: deliberate depth, not a dark-palette inversion ----
   Dark mode already gets hierarchy from tonal contrast. On a light canvas the
   same hard rule around every level reads like a stack of form fields, so the
   desk uses three local jobs: elevated outer surfaces, quiet nested surfaces,
   and hairline data rules. These tokens stay page-scoped by design. */
html[data-theme="light"] body {
  background:
    radial-gradient(circle at 8% 0%, color-mix(in srgb,var(--info) 8%,transparent) 0, transparent 31rem),
    radial-gradient(circle at 94% 8%, rgba(119,91,218,.055) 0, transparent 27rem),
    #e9edf3;
  background-attachment:fixed;
}
html[data-theme="light"] .sm {
  --sm-edge:#d5dbe5;
  --sm-rule:#e3e8ef;
  --sm-soft:#f8fafd;
  --sm-soft-blue:#f5f8fd;
  --sm-ink:#202a3d;
  --sm-shadow:0 1px 2px rgba(23,32,55,.055),0 18px 42px -28px rgba(23,32,55,.34);
  --sm-shadow-soft:0 1px 2px rgba(23,32,55,.045),0 10px 24px -22px rgba(23,32,55,.28);
}
html[data-theme="light"] .sm h1,
html[data-theme="light"] .sm h2,
html[data-theme="light"] .sm h3 { color:var(--sm-ink); }

/* Text uses contrast-calibrated semantic inks; dots and fills keep raw hues. */
html[data-theme="light"] .grade.A { color:var(--ink-ok,var(--up)); }
html[data-theme="light"] .grade.B { color:var(--ink-info,var(--info)); }
html[data-theme="light"] .grade.C { color:var(--ink-warn,var(--warn)); }
html[data-theme="light"] .grade.D { color:var(--ink-act,var(--down)); }
html[data-theme="light"] .axis-13f,
html[data-theme="light"] .axis-13fa,
html[data-theme="light"] .t-amber,
html[data-theme="light"] .tier.moderate,
html[data-theme="light"] .tmed,
html[data-theme="light"] .sm-clock .qstate,
html[data-theme="light"] .star,
html[data-theme="light"] .cap-chip.mid,
html[data-theme="light"] .frozen-chip { color:var(--ink-warn,var(--warn)); }
html[data-theme="light"] .axis-13dg,
html[data-theme="light"] .tier.activist,
html[data-theme="light"] .tier.flip,
html[data-theme="light"] .role-pill,
html[data-theme="light"] .cap-chip.large { color:var(--ink-info,var(--info)); }
html[data-theme="light"] .axis-form4,
html[data-theme="light"] .t-green,
html[data-theme="light"] .cap-chip.small { color:var(--ink-ok,var(--ok)); }
html[data-theme="light"] .t-red { color:var(--ink-act,var(--act)); }
html[data-theme="light"] .axis-short { color:color-mix(in srgb,#8b52b8 76%,var(--text)); }
html[data-theme="light"] :is(.ftier.follow,.followed-chip) { color:var(--ink-ok,var(--ok)); }
html[data-theme="light"] :is(.tier.elevated,.thigh,.ftier.fade) { color:var(--ink-act,var(--act)); }
html[data-theme="light"] :is(.fl-actions .pos,.census-metric.up strong,.act-pill.new,.act-pill.add,
  .vs-card.win .vs-role,.rot-h.into,.rely.up) {
  color:var(--ink-up,var(--up));
}
html[data-theme="light"] :is(.fl-actions .neg,.census-metric.down strong,.act-pill.trim,
  .act-pill.exit,.vs-card.lag .vs-role,.rot-h.out,.rely.down) {
  color:var(--ink-down,var(--down));
}
html[data-theme="light"] :is(.fl-kicker,.fl-unit,.fl-change .fc-rank,.census-kicker,.spark,
  details.fl > summary) { color:var(--ink-info,var(--info)); }

/* Primary surfaces carry the page hierarchy. */
html[data-theme="light"] .sm-deck,
html[data-theme="light"] .institutional-census,
html[data-theme="light"] .sm-card {
  border-color:var(--sm-edge);
  box-shadow:var(--sm-shadow);
}
html[data-theme="light"] .sm-deck {
  background:linear-gradient(135deg,#fff 0%,#fcfdff 58%,color-mix(in srgb,var(--info) 3%,#fff) 100%);
}
html[data-theme="light"] .filing-live {
  border-color:color-mix(in srgb,var(--info) 34%,var(--sm-edge));
  background:linear-gradient(135deg,color-mix(in srgb,var(--info) 8%,#fff),#fff 46%,color-mix(in srgb,var(--info) 2%,#fff));
  box-shadow:var(--sm-shadow);
}
html[data-theme="light"] .vs-card,
html[data-theme="light"] details.fund,
html[data-theme="light"] .led,
html[data-theme="light"] a.mem-card {
  border-color:var(--sm-edge);
  box-shadow:var(--sm-shadow-soft);
}
html[data-theme="light"] a.mem-card {
  transition:border-color .15s,box-shadow .15s,transform .15s;
}
html[data-theme="light"] a.mem-card:hover {
  box-shadow:0 2px 4px rgba(23,32,55,.06),0 18px 34px -25px rgba(45,76,135,.42);
  transform:translateY(-1px);
}

/* Nested information rests on near-white, while controls keep panel2. */
html[data-theme="light"] .fl-filer,
html[data-theme="light"] .fl-change,
html[data-theme="light"] .census-panel,
html[data-theme="light"] .axisblock {
  border-color:var(--sm-rule);
  background:var(--sm-soft);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92);
}
html[data-theme="light"] .fl-change { background:var(--sm-soft-blue); }
html[data-theme="light"] .banner,
html[data-theme="light"] .disc,
html[data-theme="light"] .follow-banner,
html[data-theme="light"] .census-empty,
html[data-theme="light"] .fl-notices {
  border-color:var(--sm-rule);
  background:var(--sm-soft);
}

/* Semantic chips should read as status, not identical grey controls. */
html[data-theme="light"] .chip-fresh { border-color:var(--sm-edge); background:rgba(255,255,255,.72); }
html[data-theme="light"] .chip-fresh.t-green { background:color-mix(in srgb,var(--ok) 8%,#fff); }
html[data-theme="light"] .chip-fresh.t-green .fdot { background:var(--ok); }
html[data-theme="light"] .chip-fresh.t-red { background:color-mix(in srgb,var(--act) 7%,#fff); }
html[data-theme="light"] .chip-fresh.t-red .fdot { background:var(--act); }
html[data-theme="light"] .fl-actions .pos { background:color-mix(in srgb,var(--up) 8%,#fff); }
html[data-theme="light"] .fl-actions .neg { background:color-mix(in srgb,var(--down) 7%,#fff); }
html[data-theme="light"] .chip-fresh.t-amber { background:color-mix(in srgb,#e0a030 9%,#fff); }

/* Long data runs need hairlines; the stronger edge token is reserved for cards. */
html[data-theme="light"] .census-list li,
html[data-theme="light"] .wire li,
html[data-theme="light"] .rotbars li,
html[data-theme="light"] .mini td,
html[data-theme="light"] .vs-list li,
html[data-theme="light"] table.sm-t th,
html[data-theme="light"] table.sm-t td,
html[data-theme="light"] details.fund[open] > summary,
html[data-theme="light"] .smfold-more-row,
html[data-theme="light"] .wire-more-row { border-color:var(--sm-rule); }
html[data-theme="light"] table.sm-t th {
  background:linear-gradient(180deg,#f8fafd,#f4f7fb);
  color:#627087;
}
html[data-theme="light"] table.sm-t tbody tr:hover { background:color-mix(in srgb,var(--info) 4%,#fff); }
html[data-theme="light"] .sm-sec::after {
  background:linear-gradient(90deg,color-mix(in srgb,var(--info) 25%,var(--sm-rule)),transparent);
}

/* The sticky rail becomes light chrome rather than a bare strip of canvas. */
html[data-theme="light"] .sm-rail {
  margin-top:10px;
  padding:9px 10px 10px;
  border:1px solid color-mix(in srgb,var(--sm-edge) 78%,transparent);
  border-radius:12px;
  background:rgba(250,251,253,.9);
  box-shadow:0 10px 28px -24px rgba(23,32,55,.55);
  -webkit-backdrop-filter:blur(14px) saturate(1.08);
  backdrop-filter:blur(14px) saturate(1.08);
}
html[data-theme="light"] .sm-rail a { border-color:var(--sm-edge); background:rgba(255,255,255,.78); }
html[data-theme="light"] .sm-rail a:hover { background:color-mix(in srgb,var(--info) 6%,#fff); }
html[data-theme="light"] .sm :is(.sm-rail a,.wire-more,.smfold-btn,summary,.sm-search input):focus-visible {
  outline:2px solid var(--ink-info,var(--info));
  outline-offset:2px;
}

/* Tiny labels that hold on dark become brittle against white. */
html[data-theme="light"] .fl-filer-date,
html[data-theme="light"] .fl-actions span,
html[data-theme="light"] .fc-fund,
html[data-theme="light"] .fc-metric,
html[data-theme="light"] .census-panel-note { font-size:11px; font-weight:500; }
html[data-theme="light"] .census-name small,
html[data-theme="light"] .census-metric { font-size:10px; }
html[data-theme="light"] .census-metric strong { font-size:11px; }

