/* ===========================================================================
   games.css — the game page. One shell, any game.

   Everything paints on hi-tokens.css. No italics anywhere on this site, and
   gold appears only on the U+25F7 receipt mark, which hi-receipt.css owns.
   Mint and coral are semantic and rationed: mint marks a win and a scoring
   club's tick, coral marks a loss. Every other mark is ink.
   =========================================================================== */

.gm-scope {
  --gm-pad: clamp(16px, 4vw, 34px);
  max-width: var(--hi-maxw);
  margin: 0 auto;
  padding: 0 var(--gm-pad) 90px;
  color: var(--hi-ink);
}

/* ---------------------------------------------------------------- 1. HERO */
.gm-hero { margin: 26px 0 var(--sec); }

.gm-hero-band {
  background: linear-gradient(160deg, var(--hi-hero-a), var(--hi-hero-b));
  color: var(--hi-on-navy);
  border-radius: var(--rad, 16px);
  padding: clamp(20px, 3.4vw, 38px);
  box-shadow: var(--hi-ambient);
}

.gm-hero-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: baseline;
  justify-content: space-between;
}

.gm-hero-issue {
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-on-navy-dim);
}

.gm-hero-stamp { font: 500 var(--t-mono) / 1.5 var(--hi-mono); color: var(--hi-on-navy-dim); }

.gm-hero-title {
  font: 600 clamp(1.7rem, 3.4vw, 2.6rem) / 1.1 var(--hi-serif);
  margin: 14px 0 8px;
  color: #fff;
}

.gm-hero-thesis {
  font: 400 var(--t-dek) / 1.55 var(--hi-sans);
  color: var(--hi-on-navy);
  max-width: 62ch;
  margin: 0 0 22px;
}

/* --- the score itself --------------------------------------------------- */
.gm-score {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: clamp(10px, 2.4vw, 26px);
  align-items: center;
  border-top: 1px solid var(--hi-navy-line);
  padding-top: 22px;
}

.gm-side { display: flex; align-items: center; gap: 14px; min-width: 0; }
.gm-side.is-home { flex-direction: row-reverse; text-align: right; }

.gm-crest { width: 54px; height: 54px; flex: 0 0 54px; display: grid; place-items: center; }
.gm-crest img { width: 100%; height: 100%; object-fit: contain; }
.gm-crest .logo-l { display: none; }
[data-theme="light"] .gm-crest .logo-l { display: block; }
[data-theme="light"] .gm-crest .logo-d { display: none; }

.gm-side-txt { min-width: 0; }
.gm-side-tri {
  font: 800 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-on-navy-dim);
  display: block;
}
.gm-side-name {
  font: 600 clamp(.98rem, 1.7vw, 1.28rem) / 1.15 var(--hi-serif);
  color: #fff;
  display: block;
  margin-top: 4px;
}
.gm-side-name a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--hi-navy-line); }
.gm-side-name a:hover, .gm-side-name a:focus-visible { border-bottom-color: var(--hi-on-navy-hi); color: var(--hi-on-navy-hi); }

.gm-side-goals {
  font: 700 clamp(2.4rem, 7vw, 4rem) / .95 var(--hi-mono);
  color: var(--hi-on-navy-dim);
  font-variant-numeric: tabular-nums;
}
.gm-side.is-win .gm-side-goals { color: #fff; }

.gm-score-mid { text-align: center; }
.gm-score-final {
  display: block;
  font: 800 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-on-navy-dim);
}
.gm-score-meta {
  display: block;
  font: 500 var(--t-mono) / 1.6 var(--hi-mono);
  color: var(--hi-on-navy-dim);
  margin-top: 8px;
}

/* --- the drawn period strip --------------------------------------------- */
.gm-strip { margin-top: 26px; }
.gm-strip svg { width: 100%; height: auto; display: block; overflow: visible; }
.gm-strip-key {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 12px;
  font: 500 var(--t-mono) / 1.5 var(--hi-mono);
  color: var(--hi-on-navy-dim);
}
.gm-strip-key b { font-weight: 700; color: var(--hi-on-navy); }

.gm-seriesline {
  margin: 20px 0 0;
  font: 600 var(--t-body) / 1.5 var(--hi-sans);
  color: var(--hi-on-navy);
  border-left: 3px solid var(--hi-on-navy-hi);
  padding-left: 12px;
}

/* ----------------------------------------------------------- 2. SECTIONS */
.gm-sec { margin: var(--sec) 0 0; scroll-margin-top: 80px; }

.gm-sec .subdek {
  font: 400 var(--t-body) / 1.6 var(--hi-sans);
  color: var(--hi-ink-2);
  max-width: 68ch;
  margin: 10px 0 18px;
}

.gm-empty {
  border: 1px dashed var(--hi-line);
  border-radius: var(--rad-sm, 10px);
  padding: 18px;
  font: 400 var(--t-body) / 1.6 var(--hi-sans);
  color: var(--hi-ink-2);
  background: var(--hi-card-2);
}

/* --- three stars --------------------------------------------------------- */
.gm-stars { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: var(--gap, 16px); }

.gm-star {
  display: flex;
  gap: 14px;
  align-items: center;
  background: var(--hi-card);
  border: 1px solid var(--hi-line);
  border-radius: var(--rad-sm, 10px);
  padding: 14px;
  box-shadow: var(--hi-ambient);
}

.gm-star-mug {
  width: 52px; height: 52px; flex: 0 0 52px;
  border-radius: 50%;
  background: var(--hi-track);
  display: grid; place-items: center;
  overflow: hidden;
  font: 700 .8rem/1 var(--hi-sans);
  color: var(--hi-muted);
}
.gm-star-mug img { width: 100%; height: 100%; object-fit: cover; }

.gm-star-n {
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
}
.gm-star-name { font: 600 1rem/1.2 var(--hi-serif); margin: 5px 0 3px; }
.gm-star-name a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-star-name a:hover, .gm-star-name a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-star-line { font: 500 var(--t-mono) / 1.4 var(--hi-mono); color: var(--hi-ink-2); }

/* --- the goal ledger ----------------------------------------------------- */
.gm-goals { list-style: none; margin: 0; padding: 0; }

.gm-goal {
  display: grid;
  grid-template-columns: 68px 1fr auto;
  gap: 14px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--hi-hair);
}

.gm-goal-when {
  font: 600 var(--t-mono) / 1.35 var(--hi-mono);
  color: var(--hi-muted);
  font-variant-numeric: tabular-nums;
}
.gm-goal-when b { display: block; color: var(--hi-ink); font-weight: 700; }

.gm-goal-who { font: 400 var(--t-body) / 1.5 var(--hi-sans); min-width: 0; }
.gm-goal-who a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-goal-who a:hover, .gm-goal-who a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-goal-who .gm-scorer { font-weight: 700; }
.gm-goal-asst { color: var(--hi-muted); }

.gm-tag {
  display: inline-block;
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  padding: 4px 7px;
  border-radius: 4px;
  background: var(--hi-ink-soft);
  color: var(--hi-ink-2);
  margin-left: 6px;
}
.gm-tag.is-pp { background: var(--hi-mint-soft); color: var(--hi-mint); }
.gm-tag.is-sh { background: var(--hi-coral-soft); color: var(--hi-coral); }

.gm-goal-clip { text-align: right; font: 500 var(--t-mono) / 1.4 var(--hi-mono); white-space: nowrap; }
.gm-goal-clip a { color: var(--hi-blue); text-decoration: none; border-bottom: 1px solid var(--hi-blue-line); }
.gm-goal-clip a:hover, .gm-goal-clip a:focus-visible { border-bottom-color: var(--hi-blue); }
.gm-goal-clip span { color: var(--hi-muted); }

/* --- the box ------------------------------------------------------------- */
.gm-box { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: var(--gap, 16px); }

.gm-club {
  background: var(--hi-card);
  border: 1px solid var(--hi-line);
  border-radius: var(--rad-sm, 10px);
  box-shadow: var(--hi-ambient);
  overflow: hidden;
  min-width: 0;
}

.gm-club-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--hi-line);
  background: var(--hi-card-2);
}
.gm-club-head b { font: 600 1rem/1.2 var(--hi-serif); }
.gm-club-head a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-club-head a:hover, .gm-club-head a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-club-head span { font: 500 var(--t-mono) / 1.4 var(--hi-mono); color: var(--hi-muted); }

.gm-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.gm-table { width: 100%; border-collapse: collapse; font: 400 var(--t-small) / 1.4 var(--hi-sans); }
.gm-table th, .gm-table td { padding: 7px 9px; text-align: right; white-space: nowrap; }
.gm-table th:first-child, .gm-table td:first-child { text-align: left; position: sticky; left: 0; background: var(--hi-card); }
.gm-table thead th {
  font: 800 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
  border-bottom: 1px solid var(--hi-line);
  background: var(--hi-card-2);
  cursor: pointer;
  user-select: none;
}
.gm-table thead th:first-child { background: var(--hi-card-2); }
.gm-table thead th[aria-sort="descending"], .gm-table thead th[aria-sort="ascending"] { color: var(--hi-blue); }
.gm-table tbody tr { border-bottom: 1px solid var(--hi-hair); }
.gm-table tbody tr:last-child { border-bottom: 0; }
.gm-table td { font-variant-numeric: tabular-nums; color: var(--hi-ink); }
.gm-table td.gm-na { color: var(--hi-muted); }
.gm-table a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid transparent; }
.gm-table a:hover, .gm-table a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-table .gm-no { color: var(--hi-muted); font: 500 var(--t-mono) / 1 var(--hi-mono); margin-right: 6px; }

/* --- goaltending --------------------------------------------------------- */
.gm-gk { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: var(--gap, 16px); }

.gm-dec {
  display: inline-block;
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  padding: 4px 7px;
  border-radius: 4px;
  background: var(--hi-ink-soft);
  color: var(--hi-ink-2);
}
.gm-dec.is-w { background: var(--hi-mint-soft); color: var(--hi-mint); }
.gm-dec.is-l { background: var(--hi-coral-soft); color: var(--hi-coral); }

/* --- the paired-bar ledger ---------------------------------------------- */
.gm-ledger {
  background: var(--hi-card);
  border: 1px solid var(--hi-line);
  border-radius: var(--rad-sm, 10px);
  box-shadow: var(--hi-ambient);
  padding: clamp(14px, 2.2vw, 22px);
}

.gm-lrow {
  display: grid;
  grid-template-columns: 62px 1fr 132px 1fr 62px;
  gap: 10px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--hi-hair);
}
.gm-lrow:last-child { border-bottom: 0; }

.gm-lval { font: 700 var(--t-body) / 1 var(--hi-mono); font-variant-numeric: tabular-nums; }
.gm-lval.is-a { text-align: right; }
.gm-lval.is-h { text-align: left; }

.gm-lbar { height: 12px; background: var(--hi-data-track); border-radius: 2px; overflow: hidden; display: flex; }
.gm-lbar.is-a { justify-content: flex-end; }
.gm-lbar i { display: block; height: 100%; background: var(--hi-data-fill); border-radius: 2px; }

.gm-llbl {
  text-align: center;
  font: 800 var(--t-micro) / 1.3 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
}

/* --- the account, and the links out -------------------------------------- */
.gm-story p { font: 400 var(--t-dek) / 1.65 var(--hi-serif); color: var(--hi-ink); max-width: 66ch; }
.gm-story h3 { font: 600 var(--t-h3) / 1.25 var(--hi-serif); margin: 0 0 8px; }
.gm-story .gm-credit { font: 500 var(--t-mono) / 1.5 var(--hi-mono); color: var(--hi-muted); margin-top: 10px; }

.gm-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--gap, 16px); }

.gm-linkcard {
  display: block;
  background: var(--hi-card);
  border: 1px solid var(--hi-line);
  border-radius: var(--rad-sm, 10px);
  padding: 15px;
  text-decoration: none;
  color: var(--hi-ink);
  box-shadow: var(--hi-ambient);
  transition: box-shadow .16s ease, border-color .16s ease;
}
.gm-linkcard:hover, .gm-linkcard:focus-visible { box-shadow: var(--hi-lift); border-color: var(--hi-blue-line); }
.gm-linkcard b { display: block; font: 600 1rem/1.25 var(--hi-serif); margin-bottom: 5px; }
.gm-linkcard span { font: 400 var(--t-small) / 1.5 var(--hi-sans); color: var(--hi-ink-2); }

.gm-prevnext { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.gm-prevnext a, .gm-onfile a {
  display: inline-block;
  font: 500 var(--t-small) / 1.3 var(--hi-sans);
  padding: 8px 12px;
  border: 1px solid var(--hi-line);
  border-radius: 999px;
  color: var(--hi-ink);
  text-decoration: none;
  background: var(--hi-card);
}
.gm-prevnext a:hover, .gm-prevnext a:focus-visible,
.gm-onfile a:hover, .gm-onfile a:focus-visible { border-color: var(--hi-blue); color: var(--hi-blue); }

.gm-onfile { margin-top: 26px; }
.gm-onfile h3 {
  font: 800 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
  margin: 0 0 10px;
}
.gm-onfile-list { display: flex; flex-wrap: wrap; gap: 8px; }

.gm-boundary { margin: 0; padding-left: 20px; }
.gm-boundary li { font: 400 var(--t-body) / 1.65 var(--hi-sans); color: var(--hi-ink-2); margin-bottom: 8px; max-width: 72ch; }

/* --------------------------------------------------------------- 3. PHONE */
/* Single column until there is genuine room for two clubs side by side. */
@media (max-width: 860px) {
  .gm-score { grid-template-columns: 1fr; gap: 14px; }
  .gm-side.is-home { flex-direction: row; text-align: left; }
  .gm-score-mid { text-align: left; border-top: 1px solid var(--hi-navy-line); padding-top: 12px; }
  .gm-side-goals { font-size: clamp(2rem, 12vw, 3rem); }
  .gm-box, .gm-gk, .gm-stars, .gm-links { grid-template-columns: 1fr; }
  .gm-goal { grid-template-columns: 58px 1fr; }
  .gm-goal-clip { grid-column: 2; text-align: left; }
  .gm-lrow { grid-template-columns: 46px 1fr 92px 1fr 46px; gap: 6px; }
  .gm-lval { font-size: var(--t-small); }
}

/* ===========================================================================
   4. THE PREVIEW — the same shell before the game is played.

   Mint and coral stay rationed: mint is the club AHEAD in the all-time line
   and a win among a goaltender's last ten, coral the club behind and a loss.
   Nothing else on the preview earns a colour, because nothing else on it is
   a lead or a deficit. No italics, no gold.
   =========================================================================== */
.gm-pv-rec {
  font: 500 var(--t-mono) / 1.4 var(--hi-mono);
  color: var(--hi-on-navy-dim);
  font-variant-numeric: tabular-nums;
}

/* --- the series, one split bar ----------------------------------------- */
.gm-pv-series { margin-top: 6px; }

.gm-pv-bar {
  display: flex;
  height: 14px;
  border-radius: 3px;
  overflow: hidden;
  background: var(--hi-navy-line, rgba(255, 255, 255, .16));
}
.gm-pv-bar i { display: block; height: 100%; background: var(--hi-on-navy-dim); }
.gm-pv-bar i.is-up { background: var(--hi-mint); }
.gm-pv-bar i.is-dn { background: var(--hi-coral); }
.gm-pv-bar i.is-tie { background: var(--hi-on-navy-dim); opacity: .5; }

.gm-pv-barkey {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 7px;
  font: 500 var(--t-mono) / 1.4 var(--hi-mono);
  color: var(--hi-on-navy-dim);
}
.gm-pv-barkey span:nth-child(2) { text-align: center; }
.gm-pv-barkey span:last-child { text-align: right; }

/* --- probable goaltenders ----------------------------------------------- */
.gm-pv-gk { padding: 14px 16px 16px; }

.gm-pv-status {
  font: 500 var(--t-mono) / 1.5 var(--hi-mono);
  color: var(--hi-muted);
  margin: 0 0 12px;
}

.gm-pv-dots { display: flex; gap: 5px; }
.gm-pv-dots i {
  display: block;
  width: 100%;
  max-width: 26px;
  height: 10px;
  border-radius: 2px;
  background: var(--hi-data-track);
}
.gm-pv-dots i.is-w { background: var(--hi-mint); }
.gm-pv-dots i.is-l { background: var(--hi-coral); }

.gm-pv-dotkey {
  font: 400 var(--t-small) / 1.5 var(--hi-sans);
  color: var(--hi-muted);
  margin: 8px 0 0;
}

.gm-pv-facts { margin: 12px 0 0; padding-left: 18px; }
.gm-pv-facts li {
  font: 400 var(--t-small) / 1.6 var(--hi-sans);
  color: var(--hi-ink-2);
  font-variant-numeric: tabular-nums;
}

.gm-pv-backup { font: 400 var(--t-small) / 1.5 var(--hi-sans); color: var(--hi-ink-2); margin: 10px 0 0; }
.gm-pv-backup a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-pv-backup a:hover, .gm-pv-backup a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }

/* --- the lines ---------------------------------------------------------- */
.gm-pv-lines {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: var(--gap, 16px);
}

.gm-pv-unit { padding: 13px 16px; border-top: 1px solid var(--hi-hair); }
.gm-pv-unit:first-of-type { border-top: 0; }

.gm-pv-unitlbl {
  display: block;
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
  margin-bottom: 10px;
}

.gm-pv-chips { display: flex; flex-wrap: wrap; gap: 7px; }

.gm-pv-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 5px 10px;
  border: 1px solid var(--hi-line);
  border-radius: 999px;
  background: var(--hi-card-2);
  font: 400 var(--t-small) / 1.3 var(--hi-sans);
}
.gm-pv-chip i { font: 700 var(--t-mono) / 1 var(--hi-mono); color: var(--hi-muted); }
.gm-pv-chip em { font: 500 var(--t-mono) / 1 var(--hi-mono); color: var(--hi-muted); }
.gm-pv-chip a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid transparent; }
.gm-pv-chip a:hover, .gm-pv-chip a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }

/* --- out of the lineup --------------------------------------------------- */
.gm-pv-out { list-style: none; margin: 0; padding: 6px 16px 14px; }
.gm-pv-out li { padding: 10px 0; border-top: 1px solid var(--hi-hair); }
.gm-pv-out li:first-child { border-top: 0; }
.gm-pv-out b { font: 600 var(--t-body) / 1.3 var(--hi-sans); }
.gm-pv-out b a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-pv-out b a:hover, .gm-pv-out b a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-pv-out p { font: 400 var(--t-small) / 1.55 var(--hi-sans); color: var(--hi-ink-2); margin: 5px 0 0; max-width: 58ch; }

.gm-pv-tag {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--hi-card-2);
  border: 1px solid var(--hi-line);
  font: 700 var(--t-micro) / 1.6 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
}

/* --- streaks ------------------------------------------------------------- */
.gm-pv-streaks { list-style: none; margin: 0; padding: 6px 16px 14px; }
.gm-pv-streaks li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: start;
  padding: 10px 0;
  border-top: 1px solid var(--hi-hair);
}
.gm-pv-streaks li:first-child { border-top: 0; }
.gm-pv-streaks b { font: 600 var(--t-body) / 1.3 var(--hi-sans); }
.gm-pv-streaks b a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid var(--hi-line); }
.gm-pv-streaks b a:hover, .gm-pv-streaks b a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-pv-streaks p { font: 400 var(--t-small) / 1.55 var(--hi-sans); color: var(--hi-ink-2); margin: 4px 0 0; }

.gm-pv-len {
  display: block;
  text-align: center;
  padding: 5px 0;
  border-radius: 4px;
  background: var(--hi-card-2);
  border: 1px solid var(--hi-line);
  font: 700 var(--t-body) / 1.1 var(--hi-mono);
  font-variant-numeric: tabular-nums;
  color: var(--hi-ink);
}
.gm-pv-streaks li.is-club .gm-pv-len { background: var(--hi-data-track); }

/* --- leaders and club rates ---------------------------------------------- */
.gm-pv-ledger { display: grid; gap: var(--gap, 16px); }

.gm-pv-leaders, .gm-pv-rates {
  background: var(--hi-card);
  border: 1px solid var(--hi-line);
  border-radius: var(--rad-sm, 12px);
  padding: 14px 16px 16px;
}
.gm-pv-leaders h3, .gm-pv-rates h3 {
  font: 700 var(--t-micro) / 1 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
  margin: 0 0 12px;
}

.gm-pv-lead {
  display: grid;
  grid-template-columns: 1fr 52px 128px 52px 1fr;
  gap: 10px;
  align-items: center;
  padding: 9px 0;
  border-top: 1px solid var(--hi-hair);
}
.gm-pv-lead:first-of-type { border-top: 0; }
.gm-pv-leadname { font: 400 var(--t-small) / 1.35 var(--hi-sans); color: var(--hi-ink); }
.gm-pv-leadname.is-h { text-align: right; }
.gm-pv-leadname a { color: var(--hi-ink); text-decoration: none; border-bottom: 1px solid transparent; }
.gm-pv-leadname a:hover, .gm-pv-leadname a:focus-visible { border-bottom-color: var(--hi-blue); color: var(--hi-blue); }
.gm-pv-leadval {
  font: 700 var(--t-body) / 1 var(--hi-mono);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.gm-pv-leadcat {
  font: 700 var(--t-micro) / 1.2 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
  text-align: center;
}

/* --- the schedule around the game ---------------------------------------- */
.gm-pv-sched { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--gap, 16px); }
.gm-pv-schhead { font: 400 var(--t-small) / 1.55 var(--hi-sans); color: var(--hi-ink-2); margin: 0; padding: 12px 16px 0; }
.gm-pv-schlist { list-style: none; margin: 0; padding: 8px 16px 4px; }
.gm-pv-schlist li {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: baseline;
  padding: 7px 0;
  border-top: 1px solid var(--hi-hair);
  font: 400 var(--t-small) / 1.4 var(--hi-sans);
}
.gm-pv-schlist li:first-child { border-top: 0; }
.gm-pv-schlist b { font: 500 var(--t-mono) / 1.4 var(--hi-mono); color: var(--hi-ink); white-space: nowrap; }
.gm-pv-schlist span { color: var(--hi-ink-2); }
.gm-pv-schlist em {
  font: 700 var(--t-micro) / 1.6 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
  color: var(--hi-muted);
}
.gm-pv-schlist i {
  margin-left: auto;
  font: 500 var(--t-mono) / 1.4 var(--hi-mono);
  font-variant-numeric: tabular-nums;
  color: var(--hi-muted);
}
.gm-pv-next { font: 400 var(--t-small) / 1.5 var(--hi-sans); color: var(--hi-muted); margin: 0; padding: 4px 16px 14px; }

.gm-pv-b2b {
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--hi-coral-soft);
  color: var(--hi-coral);
  font: 700 var(--t-micro) / 1.7 var(--hi-sans);
  letter-spacing: var(--hi-lbl-track);
  text-transform: uppercase;
}

/* --- the scheduled slate on the front page of the route ------------------- */
.gm-pv-slate {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--gap, 16px);
}

@media (max-width: 860px) {
  .gm-pv-lines, .gm-pv-sched, .gm-pv-slate { grid-template-columns: 1fr; }
  /* One club per row under the category label, so the two names stay paired
     with their own number instead of wrapping apart. */
  .gm-pv-lead { grid-template-columns: 1fr auto; row-gap: 3px; gap: 8px; }
  .gm-pv-leadcat { grid-column: 1 / -1; order: -1; text-align: left; }
  .gm-pv-leadname { order: 1; text-align: left; }
  .gm-pv-leadname.is-h { order: 3; text-align: left; }
  .gm-pv-leadval.is-a { order: 2; text-align: right; }
  .gm-pv-leadval.is-h { order: 4; text-align: right; }
  .gm-pv-barkey { font-size: var(--t-micro); }
  .gm-pv-dots i { max-width: none; }
}
