/* Catalyst viz: values copied from site/style.css (not imported, to stay self-contained). */
.cv{--cv-paper:#f6f1e7;--cv-ink:#1f1c17;--cv-mute:#6b6458;--cv-rule:#d9cfbd;--cv-d:#2b5c8a;--cv-r:#b23a3a;--cv-card:#fbf8f2;
  font-family:"IBM Plex Sans",system-ui,sans-serif;color:var(--cv-ink);max-width:100%;min-width:0}
.cv-wrap{position:relative;background:var(--cv-card);border:1px solid var(--cv-rule);border-radius:4px;padding:12px 12px 10px;box-sizing:border-box;max-width:100%;overflow:hidden}
.cv-title{font-family:Fraunces,Georgia,serif;font-weight:600;font-size:1.05rem;line-height:1.25}
.cv-sub{font-size:.85rem;color:var(--cv-mute);margin:2px 0 6px}
.cv-svg{display:block;width:100%;height:auto;overflow:visible;touch-action:manipulation}
.cv-tick{font-size:11px;fill:var(--cv-mute);font-family:"IBM Plex Mono",ui-monospace,monospace}
.cv-axis{font-size:12px;fill:var(--cv-ink);font-weight:500}
.cv-xlabel{font-size:10px;fill:var(--cv-mute);font-style:italic}
.cv-band{fill:var(--cv-ink);pointer-events:none}
.cv-band-95{fill-opacity:.06}.cv-band-80{fill-opacity:.09}.cv-band-50{fill-opacity:.14}
.cv-call{stroke:var(--cv-ink);stroke-width:3.5;cursor:pointer}
.cv-mean{stroke:var(--cv-mute);stroke-width:1.2;stroke-dasharray:5 3;pointer-events:none}
.cv-maj{stroke:var(--cv-ink);stroke-width:1.5;stroke-dasharray:2 2}
.cv-pt{cursor:pointer;outline:none}
.cv-pt:hover,.cv-pt:focus{stroke-width:2.4;stroke:var(--cv-ink)}
.cv-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.75rem;color:var(--cv-mute);margin-top:6px}
.cv-li{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.cv-note{font-size:.72rem;color:var(--cv-mute);margin:6px 0 0;line-height:1.4}
.cv-tip{position:absolute;z-index:20;max-width:260px;background:var(--cv-paper);border:1px solid var(--cv-ink);border-radius:3px;padding:7px 9px;
  font-size:.78rem;line-height:1.45;box-shadow:0 2px 8px rgba(31,28,23,.18);pointer-events:auto;overflow-wrap:anywhere}
.cv-tip a{color:var(--cv-d)}
.cv-mute{color:var(--cv-mute)}
.cv-flag{color:var(--cv-r);font-weight:500;margin-top:2px}
.cv-lb{display:inline-block;font:600 9px/1 "IBM Plex Mono",monospace;letter-spacing:.04em;padding:2px 4px;border-radius:2px;border:1px solid var(--cv-rule);color:var(--cv-mute);vertical-align:1px}
.cv-lb-live{color:#2f6b3a;border-color:#2f6b3a}.cv-lb-sourced{color:var(--cv-d);border-color:var(--cv-d)}.cv-lb-analyst{color:var(--cv-ink)}.cv-lb-estimated{color:#8a5a00;border-color:#8a5a00}
.cv-tabs{display:flex;gap:4px;margin:4px 0 6px}
.cv-tab{font:inherit;font-size:.8rem;padding:4px 10px;border:1px solid var(--cv-rule);background:var(--cv-paper);color:var(--cv-ink);border-radius:3px;cursor:pointer}
.cv-tab.on{background:var(--cv-ink);color:var(--cv-paper);border-color:var(--cv-ink)}
.cv-empty{color:var(--cv-mute);font-size:.85rem}
@media (max-width:480px){.cv-wrap{padding:10px 8px 8px}.cv-legend{font-size:.7rem;gap:3px 9px}}
.cv-eb,.cv-eb-cap,.cv-catbars{pointer-events:none}
.cv-tip{pointer-events:none}.cv-tip.pin{pointer-events:auto}
/* v2.4 lane charts */
.cv-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.cv-head .cv-tabs{margin:0 0 0 auto}
.cv-svg{width:100%;height:auto;max-height:320px}
.cv-lane{font:600 11px "IBM Plex Sans",system-ui,sans-serif;fill:var(--cv-mute)}
.cv-lane-cat{fill:#D55E00}
.cv-dlabel{font:500 10px "IBM Plex Sans",system-ui,sans-serif;fill:var(--cv-ink);pointer-events:none;paint-order:stroke;stroke:var(--cv-card);stroke-width:3px}
.cv-tagtxt{font:700 11px "IBM Plex Mono",ui-monospace,monospace;fill:#fff}
.cv-call{stroke:#D55E00;stroke-width:3.5}
.cv-mean{stroke:var(--cv-mute);stroke-width:1.2;stroke-dasharray:5 3;pointer-events:none}
.cv-maj{stroke:var(--cv-ink);stroke-width:1.5;stroke-dasharray:2 2}
.cv-item{transition:opacity .12s}
svg.cv-hl .cv-points .cv-item{opacity:.15}
svg.cv-hl .cv-points .cv-item.on{opacity:1}
svg.cv-hl .cv-item.on .cv-eb-pred{stroke-opacity:.8}
.cv-legend{gap:3px 14px;margin-top:4px}
.cv-key{color:var(--cv-ink);font-weight:500}
.cv-panel{overflow-x:auto}
@media (max-width:480px){.cv-lane{font-size:10px}}
/* v2.4 band fix: let SVG attributes drive band colour */
.cv-band.cv-band-80{fill:#D55E00;fill-opacity:.16}
.cv-band.cv-band-95,.cv-band.cv-band-model{fill:revert-layer;fill-opacity:1}

.cv-numtxt{font-size:8.5px;font-weight:700;fill:var(--cv-ink)}
.cv-numkey{display:flex;flex-wrap:wrap;gap:.25rem 1.6rem;list-style:decimal;margin:.4rem 0 0;padding-left:1.4rem;font-size:.78rem;color:var(--cv-ink)}
.cv-numkey li{padding-left:.15rem}
.cv-yaxis{font-size:10px}
.cv-numkey li{display:list-item;margin-left:.3rem}.cv-numkey li::marker{font-weight:700}
.cv-trend-val{font-size:13px;font-weight:700;fill:#D55E00}.cv-trend-empty{padding:30px 0;text-align:center}
/* v2.11 seat key: HTML label column grouped by seat count (no SVG label collisions) */
.cv-seatkey{display:grid;gap:.2rem;margin:.45rem 0 .2rem;font-size:.78rem;color:var(--cv-ink)}
.cv-sk-row{display:grid;grid-template-columns:5.2rem 1fr;gap:.5rem;align-items:baseline;border-top:1px solid var(--cv-rule);padding-top:.2rem}
.cv-sk-n{font-weight:700;font-variant-numeric:tabular-nums}
.cv-sk-names{display:flex;flex-wrap:wrap;gap:.15rem .9rem}
.cv-sk-i::before{content:"";display:inline-block;width:.6em;height:.6em;border-radius:50%;border:2px solid var(--sk,currentColor);margin-right:.3em;vertical-align:-.05em}
.cv-sk-model::before{border-radius:0}
.cv-sk-rater::before{border:0;border-radius:0;background:var(--sk,currentColor);clip-path:polygon(50% 0,100% 100%,0 100%)}
.cv-majnote{font-size:.75rem;color:var(--cv-mute,#666);margin:.2rem 0 0}
.cv-axisnote{font-size:.75rem;text-align:right;margin:.1rem 0 0;color:var(--cv-ink)}
