/* NRL article visualisations: `nrl` (pick your edge) and `nrl-seasons`.
   Both figures carry .viz-nrl; figure-specific rules use .viz-nrl-rule / .viz-nrl-seasons. */
.viz-nrl{
  --nrl-back:#4b96dc;   /* 2020-25 backtest (validated with --nrl-live on #1b1d20) */
  --nrl-live:#ee5e34;   /* 2026; one step darker than --viz-accent so it sits in the dark band */
  --nrl-band:rgba(242,241,235,.075);
  --nrl-soft:#8b8f88
}
/* Breakout, type isolation and button hovers come from viz.css; the prose column's paragraph and list margins don't. */
.viz.viz-nrl p,.viz.viz-nrl li{margin:0}
.viz.viz-nrl .nrl-season-readout{margin-bottom:26px}
.viz-nrl .viz-stage text{font-size:10px}
.viz-nrl .viz-stage svg{height:auto}
.viz-nrl .viz-tooltip{min-width:180px;text-align:left}
.viz-nrl .viz-tooltip strong{display:block;font-weight:500;margin-bottom:2px}
.viz-nrl .viz-foot a{text-underline-offset:3px}

/* Controls */
.nrl-controls{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:14px 22px;align-items:end;margin:0 0 18px;padding:14px 0 12px;border-top:1px solid var(--viz-line);border-bottom:1px solid var(--viz-line)}
.nrl-edge{border:0;margin:0;padding:0;min-width:0}
.nrl-edge legend,.nrl-seg-label{display:block;font:10px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--viz-muted);padding:0;margin:0 0 6px}
.nrl-range{display:grid;grid-template-columns:72px minmax(0,1fr) 54px;align-items:center;gap:8px;min-height:26px}
.viz-nrl .nrl-range label{font-size:11px;color:var(--viz-muted)}
.nrl-range output{font:12px var(--mono);font-variant-numeric:tabular-nums;color:var(--viz-ink);text-align:right}
.nrl-seg{display:grid;grid-template-columns:1fr 1fr;align-content:end;min-width:0}
.nrl-seg .nrl-seg-label{grid-column:1/-1}
.nrl-seg button{padding:9px 6px;white-space:nowrap}
.nrl-seg button+button{border-left:0}
.nrl-hint{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:6px 18px;font:11px/1.6 var(--mono);color:var(--viz-faint);min-height:18px}
.viz-nrl .nrl-reset{padding:5px 8px;flex-shrink:0}

/* Scoreboard */
.nrl-board{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px}
.nrl-score{position:relative;background:var(--viz-raised);padding:14px 16px 13px;min-height:104px}
.nrl-score-k{font:10px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--viz-muted);display:flex;align-items:center;gap:8px}
.nrl-score-v{font:500 34px/1.15 var(--sans);letter-spacing:-1px;margin:6px 0 4px!important;color:var(--viz-ink)}
.nrl-score-s{font:11px/1.5 var(--mono);color:var(--viz-muted);font-variant-numeric:tabular-nums;min-height:17px}
.nrl-units::before{content:' · '}
.nrl-swatch{display:inline-block;width:10px;height:10px;border-radius:50%}
.nrl-swatch-back{background:var(--nrl-back)}
.nrl-swatch-live{background:var(--nrl-live)}
.viz-nrl .nrl-play{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:var(--nrl-live);border-color:var(--nrl-live);color:var(--viz-accent-ink);font-size:11px;padding:12px 14px;font-weight:500}
.viz-nrl .nrl-play:hover{background:var(--viz-accent);border-color:var(--viz-accent)}

/* Stage */
.nrl-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.viz-nrl-rule.is-wide .nrl-stage{grid-template-columns:auto minmax(0,1fr);column-gap:40px;align-items:start}
.nrl-scatter{position:relative;touch-action:pan-y}
.nrl-scatter canvas,.nrl-scatter svg{position:absolute;inset:0;width:100%;height:100%}
.nrl-scatter svg{pointer-events:none}
.nrl-tick{stroke:var(--viz-line)}
.nrl-frame{fill:none;stroke:var(--viz-grid)}
.viz-nrl .viz-stage .nrl-axis-title{fill:var(--viz-muted);font-size:10px}
.viz-nrl .viz-stage .nrl-note{fill:var(--viz-faint);font-size:10px}
.viz-nrl .viz-stage .nrl-note.is-small{font-size:9px}
.nrl-legend{margin-top:8px}
.viz-nrl .nrl-legend i.nrl-key{width:8px;height:8px;border-radius:50%;background:var(--viz-ink)}
.viz-nrl .nrl-legend i.nrl-key-lost{background:transparent;border:1.3px solid var(--viz-ink)}
.viz-nrl .nrl-legend i.nrl-key-none{width:4px;height:4px;background:var(--viz-faint)}
.viz-nrl .nrl-legend i.nrl-key-back{width:12px;height:3px;border-radius:0;background:var(--nrl-back)}
.viz-nrl .nrl-legend i.nrl-key-live{width:12px;height:3px;border-radius:0;background:var(--nrl-live)}
.nrl-right{overflow:visible;touch-action:pan-y}
.nrl-grid line{stroke:var(--viz-grid)}
.nrl-grid line.nrl-zero,.nrl-zero{stroke:var(--viz-line)}
.nrl-grid line.nrl-split{stroke:var(--viz-line)}
.nrl-live-col{fill:rgba(238,94,52,.045)}
.viz-nrl .viz-stage .nrl-panel-title{fill:var(--viz-muted);font-size:10px;letter-spacing:.04em}
.nrl-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.nrl-line-back{stroke:var(--nrl-back)}
.nrl-line-live{stroke:var(--nrl-live)}
.nrl-end{stroke:var(--viz-bg);stroke-width:2}
.nrl-end-back{fill:var(--nrl-back)}
.nrl-end-live{fill:var(--nrl-live)}
.nrl-bar{fill:var(--nrl-back)}
.nrl-bar-live{fill:var(--nrl-live)}
.viz-nrl .viz-stage .nrl-value{fill:var(--viz-muted);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--viz-bg);stroke-width:3px;stroke-linejoin:round}
.viz-nrl .viz-stage .nrl-value-strong{fill:var(--viz-ink)}
.viz-nrl .viz-stage .nrl-season{fill:var(--viz-ink)}
.viz-nrl .viz-stage .nrl-count{fill:var(--viz-faint)}
.viz-nrl .viz-stage .nrl-unknown{fill:var(--viz-faint);font-size:22px}
.nrl-hit{fill:transparent}
.nrl-hit:hover{fill:rgba(242,241,235,.03)}

/* Verdict */
.nrl-verdict{margin-top:26px;padding-top:18px;border-top:1px solid var(--viz-line);animation:nrl-rise .6s cubic-bezier(.2,.7,.2,1) both}
.nrl-verdict-line{font:500 19px/1.35 var(--sans);letter-spacing:-.3px;color:var(--viz-ink);max-width:46ch;margin:0 0 14px!important}
.nrl-dist-svg{display:block;width:100%;height:auto}
.viz-nrl .nrl-dist-svg text{font:10px var(--mono);fill:var(--viz-muted)}
.viz-nrl .nrl-dist-svg .nrl-dist-label{fill:var(--viz-ink);font-family:var(--sans);font-size:12px}
.viz-nrl .nrl-dist-svg .nrl-dist-stat{fill:var(--viz-ink);font-variant-numeric:tabular-nums}
.viz-nrl .nrl-dist-svg .nrl-value-strong{fill:var(--viz-ink)}
.viz-nrl .nrl-dist-svg .nrl-count{fill:var(--viz-faint)}
.nrl-dist-bar{opacity:.34}
.nrl-dist-bar.is-tail{opacity:1}
.nrl-dist-model{fill:var(--nrl-back)}
.nrl-dist-market{fill:var(--nrl-soft)}
.nrl-actual{stroke:var(--nrl-live);stroke-width:2}
@keyframes nrl-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Numbers table */
.nrl-numbers{margin-top:18px;font:11px/1.6 var(--mono);color:var(--viz-muted)}
.nrl-numbers summary{cursor:pointer;width:fit-content}
.nrl-numbers summary:focus-visible{outline:2px solid var(--viz-accent);outline-offset:2px}
.viz-nrl .nrl-numbers table{width:100%;max-width:560px;border-collapse:collapse;margin:10px 0 0;font:11px/1.5 var(--mono);font-variant-numeric:tabular-nums}
.viz-nrl .nrl-numbers th,.viz-nrl .nrl-numbers td{border-bottom:1px solid var(--viz-grid);padding:6px 8px 6px 0;text-align:right;font-weight:400;color:var(--viz-ink)}
.viz-nrl .nrl-numbers th:first-child,.viz-nrl .nrl-numbers thead th{color:var(--viz-muted)}
.viz-nrl .nrl-numbers th:first-child{text-align:left}

@media(max-width:860px){
  .nrl-controls{grid-template-columns:1fr 1fr 1fr}
  .nrl-edge{grid-column:1/-1}
}
@media(max-width:560px){
  .nrl-controls{grid-template-columns:1fr;gap:12px}
  .nrl-seg{grid-template-columns:96px 1fr 1fr;align-items:center}
  .nrl-seg .nrl-seg-label{grid-column:auto;margin:0}
  .nrl-hint{flex-direction:column;align-items:start}
  .nrl-board{grid-template-columns:1fr 1fr;gap:8px}
  .nrl-score{padding:12px 12px 12px;min-height:0}
  .nrl-score-v{font-size:26px}
  .nrl-score-s{font-size:10px;min-height:30px}
  .nrl-units{display:block}
  .nrl-units::before{content:none}
  .viz-nrl .nrl-play{position:static;transform:none;width:100%;margin-top:10px}
  .nrl-verdict-line{font-size:17px}
}
@media(max-width:560px){.nrl-season-readout{min-height:60px;align-content:start}}
@media(prefers-reduced-motion:reduce){.nrl-verdict{animation:none}}

/* ---------- nrl-seasons ---------- */
.nrl-season-readout{display:flex;flex-wrap:wrap;gap:2px 22px;min-height:24px;align-items:baseline;font:11px/1.6 var(--mono);color:var(--viz-muted);font-variant-numeric:tabular-nums}
.nrl-season-readout b{font:500 15px/1.4 var(--sans);color:var(--viz-ink);margin-right:2px}
.nrl-season-readout span b{font:12px var(--mono);color:var(--viz-ink)}
.nrl-seasons-svg{display:block;width:100%;outline:none}
.nrl-seasons-svg:focus-visible{outline:2px solid var(--viz-accent);outline-offset:4px}
.nrl-window{fill:rgba(75,150,220,.08)}
.nrl-sbar{fill:var(--nrl-soft)}
.nrl-sbar.is-window{fill:var(--nrl-back)}
.nrl-sbar.is-live{fill:var(--nrl-live)}
.nrl-sbar.is-soft{fill-opacity:.45}
.nrl-whisker{stroke:var(--nrl-soft);stroke-width:1.5}
.nrl-whisker.is-window{stroke:var(--nrl-back)}
.nrl-whisker.is-live{stroke:var(--nrl-live)}
.nrl-hfa-dot{fill:var(--nrl-soft);stroke:var(--viz-bg);stroke-width:2}
.nrl-hfa-dot.is-window{fill:var(--nrl-back)}
.nrl-hfa-dot.is-live{fill:var(--nrl-live)}
.nrl-assume{stroke:var(--viz-muted);stroke-dasharray:4 4}
.nrl-col-hi{fill:rgba(242,241,235,.05)}
.viz-nrl .viz-stage .nrl-window-label{fill:var(--viz-muted)}
.viz-nrl-seasons .nrl-legend i.nrl-key-soft{width:10px;height:10px;border-radius:0;background:var(--nrl-soft);opacity:.45}
.viz-nrl-seasons .nrl-legend i.nrl-key-solid{width:10px;height:10px;border-radius:0;background:var(--nrl-soft)}
.viz-nrl-seasons .nrl-legend i.nrl-key-win{width:10px;height:10px;border-radius:0;background:var(--nrl-back)}
.viz-nrl-seasons .nrl-legend i.nrl-key-live{width:10px;height:10px;border-radius:0;background:var(--nrl-live)}
.nrl-sbar,.nrl-hfa-dot,.nrl-whisker{transition:opacity .5s}
.viz-nrl-seasons .nrl-hit:hover{fill:transparent}
