  /* layout + nav + header/foot bands come from site.css — page-specific styles only below */
  :root {
    --in:#d2a8ff; --out:#58a6ff;   /* net-flow direction colours — NON-valenced (lavender in / blue out); the +/− sign carries direction, not good/bad */
  }
  /* summary strip */
  .cstrip { margin-top:10px; }
  .crow { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
  .cstat { background:var(--bg); border:1px solid var(--line); border-radius:4px; padding:8px 11px; }
  .cstat .ck { color:var(--muted); font-size:var(--type-2xs); font-weight:var(--weight-bold); text-transform:uppercase; letter-spacing:.4px; }
  .cstat .cv { color:var(--text); font-size:17px; font-weight:var(--weight-medium); margin-top:2px; }
  .cstat .cs { color:var(--muted); font-size:var(--type-xs); margin-top:1px; }

  /* aggregate history — three aligned lanes make daily reversals legible without hiding the rolling regime */
  .flow-history { padding:12px var(--pad) 10px; background:var(--panel); border-bottom:1px solid var(--line); }
  .flow-head { display:flex; align-items:flex-end; justify-content:flex-start; gap:24px; }
  .flow-title { margin:0; color:var(--text); font:var(--weight-medium) 15px/1.2 var(--font-sans); }
  .flow-meta { margin:3px 0 0; color:var(--muted); font-size:var(--type-xs); }
  .flow-ranges { display:flex; gap:6px; }
  .flow-range { min-height:30px; border:1px solid var(--line); border-radius:var(--control-radius); background:var(--bg); color:var(--muted); padding:4px 8px;
    font:var(--weight-medium) var(--type-2xs)/1.2 var(--font-sans); cursor:pointer; }
  .flow-range:hover { color:var(--text); border-color:var(--muted); }
  .flow-range:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
  .flow-range[aria-pressed=true] { color:var(--text); border-color:var(--accent); background:#182536; }
  .flow-range:disabled { color:var(--dim); border-color:var(--line); background:var(--bg); cursor:not-allowed; opacity:.55; }
  .flow-readout { display:grid; grid-template-columns:minmax(260px,1fr) repeat(4,auto); align-items:baseline; gap:8px 18px;
    margin-top:10px; padding:7px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    font:var(--type-xs)/1.35 var(--font-sans); font-variant-numeric:tabular-nums; }
  .flow-read { color:var(--text); }
  .flow-date, .flow-metric { color:var(--muted); white-space:nowrap; }
  .flow-date b, .flow-metric b { color:var(--text); font-weight:600; }
  .flow-chart-wrap { overflow-x:auto; margin-top:8px; }
  .flow-chart { display:block; width:100%; min-width:700px; height:auto; font:var(--type-2xs) var(--font-sans); }
  .flow-chart .grid, .flow-chart .divider { stroke:var(--line); stroke-width:1; vector-effect:non-scaling-stroke; }
  .flow-chart .zero { stroke:#6e7681; stroke-width:1; vector-effect:non-scaling-stroke; }
  .flow-chart .selection { stroke:#adbac7; stroke-width:1; stroke-dasharray:3 4; opacity:.55; vector-effect:non-scaling-stroke; }
  .flow-chart .label, .flow-chart .date { fill:var(--muted); }
  .flow-chart .value { fill:var(--text); font-weight:600; }
  .flow-chart .hit { fill:transparent; cursor:crosshair; }
  .flow-legend { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:7px; color:var(--muted); font-size:10.5px; }
  .flow-key { display:inline-flex; align-items:center; gap:6px; }
  .flow-key.rolling { color:#d29922; }
  .flow-key.reserves { color:#3fb950; }
  .flow-swatch { width:14px; height:2px; background:currentColor; }
  .flow-note { margin-left:auto; }

  .controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:9px var(--pad); background:var(--panel); border-bottom:1px solid var(--line); }
  input[type=search] { min-width:220px; }
  .count b { color:var(--text); }

  .cex-table-scroll .data-table { min-width:760px; }
  .cex-table-scroll thead th:first-child, .cex-table-scroll tbody > tr > :first-child { padding-left:var(--pad); }
  .cex-table-scroll thead th:last-child, .cex-table-scroll tbody > tr > :last-child { padding-right:var(--pad); }
  .cex-table-scroll thead th { user-select:none; }
  .cex-table-scroll thead th.sorted { color:var(--accent); }
  td.r { text-align:right; }
  td.reserve-ratio { color:var(--neutral); }
  .nd { color:var(--dim); font-style:italic; }       /* not disclosed — visible, never $0, never hidden */
  .dash { color:var(--dim); }
  .nfin { color:var(--in); }                          /* net inflow (+, arriving) */
  .nfout { color:var(--out); }                        /* net outflow (−, leaving) */
  .por { padding:1px 7px; border-radius:9px; border:1px solid var(--line); color:var(--muted); font-size:inherit; font-weight:var(--weight-normal); }
  .por.yes { color:#adbac7; border-color:#2f6f43; }
  .foot { line-height:1.5; }
  @media (max-width:760px) {
    .flow-head { align-items:flex-start; flex-direction:column; gap:8px; }
    .flow-readout { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .flow-read { grid-column:1/-1; }
    .flow-note { margin-left:0; flex-basis:100%; }
  }
