/* Game Recaps (0.108.0, includes/class-recap.php). The game log's tokens (--gl-*), which dark mode redefines. */
.spz-recap { --rc-card: var(--gl-bg, #f8faf9); --rc-alt: var(--gl-bg-alt, #f1f3f2); --rc-line: var(--gl-border, #dde2e0); --rc-text: var(--gl-text, #33403c);
  --rc-muted: var(--gl-text-muted, #64726d); --rc-ink: #1e293b; --rc-up: #0b7a3b; --rc-down: #b42318; --rc-head: var(--gl-header-bg, #1e293b);
  font-family: var(--gl-font, Inter, system-ui, sans-serif); color: var(--rc-text); }
[data-spz-theme="dark"] .spz-recap { --rc-ink: #e8edf3; --rc-up: #4ade80; --rc-down: #f87171; }
.spz-recap .spz-rc-empty { margin: 16px 0; color: var(--rc-muted); }
.spz-recap .spz-team-chip { vertical-align: middle; }

/* the final */
.spz-recap .spz-rc-head { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; margin: 0 0 12px; padding: 18px 22px; border-radius: 12px; background: var(--rc-head); color: #fff; }
.spz-recap .spz-rc-team { display: flex; align-items: center; gap: 14px; }
.spz-recap .spz-rc-team.is-home { flex-direction: row-reverse; }
.spz-recap .spz-rc-score { font-size: 46px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; opacity: .62; }
.spz-recap .spz-rc-team.is-win .spz-rc-score { opacity: 1; }
.spz-recap .spz-rc-head .spz-team-chip { transform: scale(1.15); }
.spz-recap .spz-rc-mid { display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; }
.spz-recap .spz-rc-final { padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 13px; font-weight: 800; letter-spacing: .02em; }
.spz-recap .spz-rc-date { font-size: 12.5px; color: #b6c2d6; white-space: nowrap; }
.spz-recap .spz-rc-type { font-size: 11px; font-weight: 700; color: #fcd34d; }

/* on this page */
.spz-recap .spz-rc-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.spz-recap .spz-rc-nav a { padding: 5px 11px; border: 1px solid var(--rc-line); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--rc-text); text-decoration: none; background: var(--rc-card); }
.spz-recap .spz-rc-nav a:hover, .spz-recap .spz-rc-nav a:focus-visible { border-color: var(--spz-brand, #00913d); }

.spz-recap .spz-rc-sec { margin: 0 0 14px; padding: 16px 18px; border: 1px solid var(--rc-line); border-radius: 12px; background: var(--rc-card); scroll-margin-top: 80px; }
.spz-recap .spz-rc-h { margin: 0 0 12px; font-size: 18px; font-weight: 800; color: var(--rc-ink); }
.spz-recap .spz-rc-sub { display: flex; align-items: center; gap: 8px; margin: 16px 0 8px; font-size: 14px; font-weight: 700; color: var(--rc-ink); }
.spz-recap .spz-rc-sub:first-of-type { margin-top: 0; }
.spz-recap .spz-rc-note, .spz-recap .spz-rc-sum { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--rc-muted); }
.spz-recap .spz-rc-sum { color: var(--rc-text); font-weight: 600; }
.spz-recap .spz-rc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* scoring */
.spz-recap table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-periods { width: auto; min-width: 280px; }
.spz-recap .spz-rc-periods th, .spz-recap .spz-rc-periods td { padding: 7px 14px; text-align: center; border-bottom: 1px solid var(--rc-line); font-size: 14px; }
.spz-recap .spz-rc-periods thead th { font-size: 12px; font-weight: 700; color: var(--rc-muted); }
.spz-recap .spz-rc-periods tbody th { text-align: left; }
.spz-recap .spz-rc-periods .is-tot { font-weight: 800; color: var(--rc-ink); }
.spz-recap .spz-rc-goals { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.spz-recap .spz-rc-goals li { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; padding: 6px 0; border-bottom: 1px dashed var(--rc-line); font-size: 14px; }
.spz-recap .spz-rc-goals li::before { content: none; }
.spz-recap .spz-rc-gwhen { min-width: 74px; font-size: 12.5px; font-weight: 700; color: var(--rc-muted); font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-gwho { font-weight: 700; }
.spz-recap .spz-rc-gtag { padding: 0 6px; border-radius: 4px; font-size: 10.5px; font-weight: 800; color: #fff; background: #c2410c; }
.spz-recap .spz-rc-gxg { margin-left: auto; font-size: 12.5px; color: var(--rc-muted); }

/* team stats */
.spz-recap .spz-rc-vs { display: grid; gap: 4px; max-width: 640px; margin: 0 auto; }
.spz-recap .spz-rc-vshead { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; margin-bottom: 4px; }
.spz-recap .spz-rc-vshead > * { justify-self: start; }
.spz-recap .spz-rc-vshead > :last-child { justify-self: end; }
.spz-recap .spz-rc-vsrow { display: grid; grid-template-columns: 70px 1fr 70px; align-items: center; row-gap: 4px; padding: 5px 0; }
.spz-recap .spz-rc-vsrow b { font-size: 15px; font-weight: 600; color: var(--rc-text); font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-vsrow b.is-more { font-weight: 800; color: var(--rc-ink); }
.spz-recap .spz-rc-vsrow b:nth-of-type(2) { text-align: right; }
.spz-recap .spz-rc-vslbl { text-align: center; font-size: 13px; color: var(--rc-muted); }
.spz-recap .spz-rc-vsbar { grid-column: 1 / -1; display: flex; gap: 2px; height: 6px; }
.spz-recap .spz-rc-vsbar i { display: block; height: 100%; border-radius: 3px; min-width: 2px; }

/* charts */
.spz-recap .spz-rc-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 8px; font-size: 12.5px; color: var(--rc-muted); }
.spz-recap .spz-rc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.spz-recap .spz-rc-legend i { display: inline-block; width: 14px; height: 4px; border-radius: 2px; }
.spz-recap .spz-rc-legend i.is-dot, .spz-recap .spz-rc-legend i.is-goal, .spz-recap .spz-rc-legend i.is-save, .spz-recap .spz-rc-legend i.is-miss, .spz-recap .spz-rc-legend i.is-block { width: 10px; height: 10px; border-radius: 50%; }
.spz-recap .spz-rc-legend i.is-dot, .spz-recap .spz-rc-legend i.is-goal { background: var(--rc-ink); box-shadow: 0 0 0 2px var(--rc-card), 0 0 0 3px var(--rc-ink); }
.spz-recap .spz-rc-legend i.is-save { background: var(--rc-muted); }
.spz-recap .spz-rc-legend i.is-miss { border: 1.5px solid var(--rc-muted); }
.spz-recap .spz-rc-legend i.is-block { width: 6px; height: 6px; background: var(--rc-line); }
.spz-recap svg.spz-rc-xg { display: block; width: 100%; min-width: 480px; height: auto; }
.spz-recap .spz-rc-xg .grid { stroke: var(--rc-line); stroke-width: 1; }
.spz-recap .spz-rc-xg .per { stroke: var(--rc-muted); stroke-width: 1; stroke-dasharray: 2 3; opacity: .6; }
.spz-recap .spz-rc-xg .ax { font-size: 11px; fill: var(--rc-muted); font-family: inherit; }
.spz-recap .spz-rc-xg .line { fill: none; stroke-width: 2.5; stroke-linejoin: round; }
.spz-recap .spz-rc-xg .goal { stroke: var(--rc-card); stroke-width: 2; }
.spz-recap .spz-rc-maps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.spz-recap .spz-rc-map { margin: 0; }
.spz-recap .spz-rc-map figcaption { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 13px; color: var(--rc-muted); }
.spz-recap svg.spz-rc-rink { display: block; width: 100%; max-width: 420px; height: auto; margin: 0 auto; }
.spz-recap .spz-rc-rink .board { fill: var(--rc-alt); stroke: var(--rc-line); stroke-width: .6; }
.spz-recap .spz-rc-rink .blue { stroke: #2458d6; stroke-width: .9; opacity: .55; }
.spz-recap .spz-rc-rink .gl, .spz-recap .spz-rc-rink .crease, .spz-recap .spz-rc-rink .ring, .spz-recap .spz-rc-rink .net { fill: none; stroke: #c43d3d; stroke-width: .4; opacity: .55; }
.spz-recap .spz-rc-rink .crease { fill: rgba(36, 88, 214, .12); }
.spz-recap .spz-rc-rink .dot { fill: #c43d3d; opacity: .55; }
.spz-recap .spz-rc-rink .shot { stroke-width: .5; }
.spz-recap .spz-rc-rink .shot.is-save { opacity: .55; stroke: none; }
.spz-recap .spz-rc-rink .shot.is-miss { fill: none; stroke-width: .5; opacity: .75; }
.spz-recap .spz-rc-rink .shot.is-block { fill: none; stroke-width: .35; opacity: .4; }
.spz-recap .spz-rc-rink .shot.is-goal { stroke: var(--rc-card); stroke-width: .7; }

/* box score, lines, how we did */
.spz-recap .spz-rc-box, .spz-recap .spz-rc-how { min-width: 560px; }
.spz-recap .spz-rc-box th, .spz-recap .spz-rc-box td, .spz-recap .spz-rc-how th, .spz-recap .spz-rc-how td { padding: 6px 8px; text-align: center; border-bottom: 1px solid var(--rc-line); font-size: 13.5px; white-space: nowrap; }
.spz-recap .spz-rc-box thead th, .spz-recap .spz-rc-how thead th { font-size: 11.5px; font-weight: 700; color: var(--rc-muted); background: var(--rc-alt); }
.spz-recap .is-name { text-align: left !important; }
.spz-recap td.is-name a, .spz-recap .spz-rc-goals a, .spz-recap .spz-rc-lines a { color: var(--rc-ink); font-weight: 600; text-decoration: none; }
.spz-recap td.is-name a:hover, .spz-recap .spz-rc-goals a:hover, .spz-recap .spz-rc-lines a:hover { text-decoration: underline; }
.spz-recap .spz-rc-box td.is-pt { font-weight: 800; color: var(--rc-ink); }
.spz-recap .spz-rc-box.is-goalies { margin-top: 8px; min-width: 420px; }
.spz-recap .spz-rc-how.is-game { min-width: 360px; }
.spz-recap .spz-rc-how.is-game th:first-child { text-align: left; color: var(--rc-muted); font-weight: 600; }
.spz-recap .spz-rc-how td.is-up b { color: var(--rc-up); }
.spz-recap .spz-rc-how td.is-down b { color: var(--rc-down); }
.spz-recap .spz-rc-lines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.spz-recap .spz-rc-line { display: grid; grid-template-columns: 56px 1fr; gap: 8px; align-items: start; padding: 7px 0; border-bottom: 1px dashed var(--rc-line); }
.spz-recap .spz-rc-lname { font-size: 12px; font-weight: 700; color: var(--rc-muted); padding-top: 2px; }
.spz-recap .spz-rc-lwho { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; }
.spz-recap .spz-rc-lwho span { display: inline-flex; align-items: baseline; gap: 5px; }
.spz-recap .spz-rc-lwho small { font-size: 11.5px; color: var(--rc-muted); font-variant-numeric: tabular-nums; }

/* the list of recent games (no game picked) */
.spz-recap .spz-rc-recent { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.spz-recap .spz-rc-recent li { margin: 0; }
.spz-recap .spz-rc-recent li::before { content: none; }
.spz-recap .spz-rc-recent a { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--rc-line); border-radius: 10px; background: var(--rc-card); color: var(--rc-text); text-decoration: none; font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-recent a:hover, .spz-recap .spz-rc-recent a:focus-visible { border-color: var(--spz-brand, #00913d); }
.spz-recap .spz-rc-recent b { font-size: 16px; font-weight: 800; text-align: right; color: var(--rc-ink); }
.spz-recap .spz-rc-recent small { grid-column: 1 / -1; font-size: 11.5px; color: var(--rc-muted); }

@media (max-width: 700px) {
  .spz-recap .spz-rc-head { padding: 14px; gap: 8px; }
  .spz-recap .spz-rc-score { font-size: 34px; }
  .spz-recap .spz-rc-team { gap: 8px; }
  .spz-recap .spz-rc-head .spz-team-chip { transform: none; }
  .spz-recap .spz-rc-sec { padding: 14px 12px; }
  .spz-recap .spz-rc-maps, .spz-recap .spz-rc-lines { grid-template-columns: 1fr; }
  .spz-recap .spz-rc-vsrow { grid-template-columns: 54px 1fr 54px; }
  .spz-recap .spz-rc-gxg { margin-left: 0; }
}

/* team colours: --c on a light page, --cd (lifted, apart from each other) on a dark one */
.spz-recap .spz-rc-vsbar i { background: var(--c); }
.spz-recap .spz-rc-xg .line { stroke: var(--c); }
.spz-recap .spz-rc-xg .goal { fill: var(--c); }
.spz-recap .spz-rc-legend i.is-team { background: var(--c); }
.spz-recap .spz-rc-rink .shot.is-goal, .spz-recap .spz-rc-rink .shot.is-save { fill: var(--c); }
.spz-recap .spz-rc-rink .shot.is-miss, .spz-recap .spz-rc-rink .shot.is-block { stroke: var(--c); }
[data-spz-theme="dark"] .spz-recap .spz-rc-vsbar i, [data-spz-theme="dark"] .spz-recap .spz-rc-legend i.is-team { background: var(--cd, var(--c)); }
[data-spz-theme="dark"] .spz-recap .spz-rc-xg .line { stroke: var(--cd, var(--c)); }
[data-spz-theme="dark"] .spz-recap .spz-rc-xg .goal { fill: var(--cd, var(--c)); }
[data-spz-theme="dark"] .spz-recap .spz-rc-rink .shot.is-goal, [data-spz-theme="dark"] .spz-recap .spz-rc-rink .shot.is-save { fill: var(--cd, var(--c)); }
[data-spz-theme="dark"] .spz-recap .spz-rc-rink .shot.is-miss, [data-spz-theme="dark"] .spz-recap .spz-rc-rink .shot.is-block { stroke: var(--cd, var(--c)); }
.spz-recap svg.spz-rc-xg { max-width: none; }
.spz-recap .spz-rc-box td.is-name, .spz-recap .spz-rc-box th.is-name, .spz-recap .spz-rc-how td.is-name, .spz-recap .spz-rc-how th.is-name { position: sticky; left: 0; z-index: 1; background: var(--rc-card); }
.spz-recap .spz-rc-box thead th.is-name, .spz-recap .spz-rc-how thead th.is-name { background: var(--rc-alt); }
@media (max-width: 700px) { .spz-recap svg.spz-rc-xg { min-width: 560px; } }

/* 0.109.0 release 2: the written lines, prop results, storylines, your plays */
.spz-recap .spz-rc-words { margin: 0 0 12px; padding: 14px 18px; border-left: 3px solid var(--spz-brand, #00913d); border-radius: 0 12px 12px 0; background: var(--rc-card); }
.spz-recap .spz-rc-words p { margin: 0; max-width: 72ch; font-size: 15.5px; line-height: 1.6; color: var(--rc-ink); }
.spz-recap .spz-rc-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.spz-recap .spz-rc-tab { appearance: none; margin: 0; padding: 0 12px; min-height: 32px; border: 1px solid var(--rc-line); border-radius: 999px; background: transparent; color: var(--rc-text); font: 600 13px/1 inherit; font-family: inherit; cursor: pointer; }
.spz-recap .spz-rc-tab[aria-pressed="true"] { background: var(--rc-head); border-color: var(--rc-head); color: #fff; }
.spz-recap .spz-rc-tab:focus-visible { outline: 2px solid var(--spz-brand, #00913d); outline-offset: 2px; }
.spz-recap .spz-rc-pane > .spz-rc-sum { margin: 0 0 8px; }
.spz-recap .spz-rc-props { min-width: 460px; }
.spz-recap .spz-rc-res { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 800; line-height: 1.5; }
.spz-recap .spz-rc-res.is-over { color: #fff; background: var(--rc-up); }
.spz-recap .spz-rc-res.is-under { color: var(--rc-down); border: 1px solid currentColor; }
.spz-recap .spz-rc-res.is-push { color: var(--rc-muted); background: var(--rc-alt); }
[data-spz-theme="dark"] .spz-recap .spz-rc-res.is-over { color: #0b1a10; }
.spz-recap .spz-rc-stories, .spz-recap .spz-rc-mine { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.spz-recap .spz-rc-stories li, .spz-recap .spz-rc-mine li { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0; padding: 8px 0; border-bottom: 1px dashed var(--rc-line); font-size: 14px; line-height: 1.45; }
.spz-recap .spz-rc-stories li::before, .spz-recap .spz-rc-mine li::before { content: none; }
.spz-recap .spz-rc-stories .spz-sl-txt { flex: 1 1 260px; }
.spz-recap .spz-rc-stories .spz-sl-txt a { color: var(--rc-ink); font-weight: 700; text-decoration: none; }
.spz-recap .spz-rc-stories .spz-sl-team { font-size: 12px; color: var(--rc-muted); }
.spz-recap .spz-rc-did { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--rc-ink); font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-mine small { color: var(--rc-muted); }
.spz-recap .spz-rc-mprice { font-size: 13px; color: var(--rc-muted); font-variant-numeric: tabular-nums; }
.spz-recap .spz-rc-mprofit { font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.spz-recap #recap-mine { border-color: var(--spz-brand, #00913d); }
@media (max-width: 700px) { .spz-recap .spz-rc-did { margin-left: 0; } .spz-recap .spz-rc-words { padding: 12px 14px; } }

/* Share This Recap (0.111.0): the pill under the date, white on the dark head */
.spz-recap .spz-rc-head button.spz-share-play.spz-rc-share { margin: 6px auto 0; border-color: rgba(255, 255, 255, .55); color: #fff; background: transparent; }
.spz-recap .spz-rc-head button.spz-share-play.spz-rc-share:hover { background: #00913d; border-color: #00913d; color: #fff; }
.spz-recap .spz-rc-head button.spz-share-play.spz-rc-share:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* (0.114.0) Every game that night, under the date */
.spz-recap .spz-rc-head a.spz-rc-night { display: block; margin-top: 6px; color: rgba(255, 255, 255, .85) !important; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.spz-recap .spz-rc-head a.spz-rc-night:hover { color: #fff !important; }
