/* CCA money pages (site/build_cca_money.py), linked from those pages only as cca-money/cca-money.css?v=<hash>.
   2026-10-20: kept out of style.css because Cloudflare caches style.css for a day, so a change there reaches
   visitors up to 24 h late; a new file name with a content hash is fetched at once. */
/* 2026-10-20 CCA money pages (site/build_cca_money.py): a diverging scale for "above / below the utility" — blue below, red above,
   gray midpoint, lightness-matched arms; separate steps for the dark surface. Text inside a cell picks ink or white by fill. */
:root {
  --dv-b3: #256abf; --dv-b2: #6da7ec; --dv-b1: #b7d3f6; --dv-n0: #f0efec; --dv-r1: #f4c2be; --dv-r2: #e4857e; --dv-r3: #b13f3c;
  --dv-b3-fg: #ffffff; --dv-b2-fg: #17202b; --dv-b1-fg: #17202b; --dv-n0-fg: #17202b; --dv-r1-fg: #17202b; --dv-r2-fg: #17202b; --dv-r3-fg: #ffffff;
  --dv-grid: #e1e0d9; --dv-base: #9a9890; --dv-ring: #ffffff;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --dv-b3: #86b6ef; --dv-b2: #3987e5; --dv-b1: #1c5cab; --dv-n0: #383835; --dv-r1: #9e3432; --dv-r2: #d75853; --dv-r3: #ea9a93;
    --dv-b3-fg: #17202b; --dv-b2-fg: #17202b; --dv-b1-fg: #ffffff; --dv-n0-fg: #e5e9ef; --dv-r1-fg: #ffffff; --dv-r2-fg: #17202b; --dv-r3-fg: #17202b;
    --dv-grid: #2c2c2a; --dv-base: #6b6a64; --dv-ring: #182029;
  }
}
:root[data-theme="dark"] {
  --dv-b3: #86b6ef; --dv-b2: #3987e5; --dv-b1: #1c5cab; --dv-n0: #383835; --dv-r1: #9e3432; --dv-r2: #d75853; --dv-r3: #ea9a93;
  --dv-b3-fg: #17202b; --dv-b2-fg: #17202b; --dv-b1-fg: #ffffff; --dv-n0-fg: #e5e9ef; --dv-r1-fg: #ffffff; --dv-r2-fg: #17202b; --dv-r3-fg: #17202b;
  --dv-grid: #2c2c2a; --dv-base: #6b6a64; --dv-ring: #182029;
}
.dv-b3 { --f: var(--dv-b3); --t: var(--dv-b3-fg); } .dv-b2 { --f: var(--dv-b2); --t: var(--dv-b2-fg); } .dv-b1 { --f: var(--dv-b1); --t: var(--dv-b1-fg); }
.dv-n0 { --f: var(--dv-n0); --t: var(--dv-n0-fg); } .dv-r1 { --f: var(--dv-r1); --t: var(--dv-r1-fg); } .dv-r2 { --f: var(--dv-r2); --t: var(--dv-r2-fg); }
.dv-r3 { --f: var(--dv-r3); --t: var(--dv-r3-fg); } .dv-na { --f: transparent; --t: var(--muted); }
.dv-heat { border-collapse: separate; border-spacing: 2px; width: auto; min-width: 100%; }
.dv-heat th[scope=row] { font-weight: 600; white-space: nowrap; border-bottom: 1px solid var(--rule); }
.dv-heat td.dv-cell { background: var(--f); color: var(--t); text-align: center; font: 600 .85rem var(--mono); font-variant-numeric: tabular-nums;
  border: 0; border-radius: 4px; padding: 8px 6px; min-width: 4.4rem; }
.dv-heat td.dv-cell a { color: inherit; text-decoration: none; }
.dv-heat td.dv-cell:hover, .dv-heat td.dv-cell:focus-within, .dv-heat td.dv-cell:focus { outline: 2px solid var(--ink); outline-offset: -2px; }
.dv-chip { display: inline-block; background: var(--f); color: var(--t); font: 600 .8rem var(--mono); padding: 3px 7px; border-radius: 4px; white-space: nowrap; }
.dv-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 0; font-size: .8rem; color: var(--muted); }
.dv-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dv-legend i { display: inline-block; width: 14px; height: 14px; border-radius: 3px; background: var(--f); border: 1px solid var(--rule); }
.dv-fig { margin: 12px 0 18px; }
.dv-fig svg { width: 100%; height: auto; max-width: 48rem; display: block; }
.dv-fig figcaption { color: var(--muted); font-size: .82rem; margin-top: 6px; max-width: 46rem; }
.dv-grid { stroke: var(--dv-grid); stroke-width: 1; }
.dv-base { stroke: var(--dv-base); stroke-width: 1; }
.dv-ax { fill: var(--muted); font: 11px var(--mono); }
.dv-lab { fill: var(--ink); font: 600 12px var(--mono); }
.dv-dot { fill: var(--f); stroke: var(--dv-ring); stroke-width: 2; }
.dv-hit { fill: transparent; }
g[data-v]:hover .dv-dot, g[data-v]:focus .dv-dot { stroke: var(--ink); }
g[data-v]:focus { outline: none; }
.dv-tip { position: fixed; z-index: 10; pointer-events: none; background: var(--sheet); color: var(--ink); border: 1px solid var(--rule);
  border-radius: 6px; padding: 8px 10px; font-size: .8rem; max-width: 22rem; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.dv-tip b { display: block; font: 700 1rem var(--mono); margin-bottom: 2px; }
.dv-tip div { color: var(--muted); }
.dv-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 14px; margin-top: 8px; }
.dv-cards h3 { margin: 0 0 8px; font-size: 1rem; }
.dv-cards p { margin: 0 0 10px; font-size: .93rem; }
.dv-list { padding-left: 1.1rem; }
.dv-list li { margin: 4px 0; }
h3.dv-h { font-size: 1rem; margin: 24px 0 8px; }
.stats .dv-chip { color: var(--t); font-size: 1.05rem; }
.dv-heat th[scope=row] { text-transform: none; letter-spacing: 0; font-size: .9rem; color: var(--ink); }
.dv-heat th[scope=row] .lede { font-weight: 400; }
.dv-heat thead th.num { text-align: center; }
