:root{
  --ice:#F3F6F8;--surface:#FFFFFF;--text:#1C2A39;--muted:#5B6B7B;--line:#D5DEE6;
  --blue:#2457A6;--red:#C8102E;--crease:#E3EEF8;--boards:#14202D;--boards-text:#EEF3F8;
  --good:#1F7A4D;--bad:#B3261E;--warn:#9A6700;
  /* Corners: thin bars, badges and cells, buttons and fields, cards and panels. */
  --r-xs:2px;--r-sm:4px;--r-md:6px;--r-lg:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ice:#0E1824;--surface:#15222F;--text:#E4ECF3;--muted:#93A4B5;--line:#26384A;
  --blue:#7EA6E6;--red:#F0566B;--crease:#1A2D40;--boards:#091119;--boards-text:#E4ECF3;--good:#5CC08A;--bad:#F08A80;--warn:#E3B341;}}
:root[data-theme="dark"]{
  --ice:#0E1824;--surface:#15222F;--text:#E4ECF3;--muted:#93A4B5;--line:#26384A;
  --blue:#7EA6E6;--red:#F0566B;--crease:#1A2D40;--boards:#091119;--boards-text:#E4ECF3;--good:#5CC08A;--bad:#F08A80;--warn:#E3B341;}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ice);color:var(--text);font:400 16px/1.5 Barlow,system-ui,sans-serif;font-variant-numeric:tabular-nums}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
h1,h2,h3{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:700;line-height:1.1;margin:0}
/* Small print shrinks with its text but never below 11px. */
small{font-size:max(11px,.85em)}
/* Sticky header: brand, five sections and a team/player search. Below 900px the brand row scrolls away and the section row sticks. */
header{background:var(--boards);color:var(--boards-text);border-bottom:4px solid var(--red);position:sticky;top:0;z-index:20}
.bar{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:8px 28px}
.brand{font:700 26px/1 "Barlow Condensed",sans-serif;letter-spacing:.01em;color:inherit;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.brand svg{width:45px;height:28px;flex-shrink:0}
.brand b{font-weight:inherit;color:#7EA6E6}
.mainnav{display:flex;gap:4px}
.mainnav a{color:var(--boards-text);text-decoration:none;font:600 18px/1 "Barlow Condensed",sans-serif;padding:10px 14px;border-radius:var(--r-sm);opacity:.78;text-align:center;white-space:nowrap}
.mainnav a:hover{opacity:1;background:rgba(255,255,255,.08)}
.mainnav a[aria-current="page"]{opacity:1;background:rgba(255,255,255,.14);box-shadow:inset 0 -3px 0 var(--red)}
.mainnav .nav-short{display:none}
.search{position:relative;margin-left:auto;width:min(280px,100%)}
.search input{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:var(--boards-text);border-radius:var(--r-lg);padding:8px 12px}
.search input::placeholder{color:var(--boards-text);opacity:.6}
.search input:focus{background:var(--surface);color:var(--text);border-color:var(--blue);outline:none}
.search ul{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 32px));margin:0;padding:6px;list-style:none;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 12px 40px #0004;z-index:30}
.search li a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);color:var(--text);text-decoration:none}
.search li a i{width:8px;height:22px;border-radius:var(--r-xs);flex-shrink:0}
.search li a .tl{width:30px;height:24px;border-radius:0}.search li a .tl.chip{width:8px;height:22px;border-radius:var(--r-xs)}
.search li a span{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.search li a small{color:var(--muted);font-size:13px}
.search li a.active,.search li a:hover{background:var(--crease)}
.search .none{padding:10px;color:var(--muted);font-size:14px}
.subnav{display:flex;gap:4px;margin:0 0 22px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.subnav a{flex-shrink:0;padding:10px 14px;color:var(--muted);text-decoration:none;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}
.subnav a:hover{color:var(--text)}
.subnav a[aria-current="page"]{color:var(--text);border-bottom-color:var(--red)}
/* Team and player page tabs: the row sticks under the header (--hdr, measured by headerSpace) while the page scrolls. */
.page-tabs{position:sticky;top:var(--hdr,66px);z-index:15;display:flex;gap:2px;margin:0 -16px 24px;padding:0 16px;background:var(--ice);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.page-tabs::-webkit-scrollbar{display:none}
.page-tabs button{flex-shrink:0;font:600 18px/1 "Barlow Condensed",sans-serif;padding:13px 16px 11px;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--muted);cursor:pointer}
.page-tabs button:hover{color:var(--text)}
.page-tabs button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--red)}
.tab-pane>*+*{margin-top:28px}
@media (max-width:640px){.page-tabs button{padding:12px 11px 10px;font-size:17px}}
@media (max-width:900px){
  header{top:-58px}
  .bar{flex-wrap:wrap;padding:0 16px;gap:0 16px}
  .brand{height:58px;display:flex;align-items:center;font-size:24px}
  .search{width:auto;flex:1;max-width:320px}
  .mainnav{order:3;flex-basis:100%;min-width:0;overflow-x:auto;scrollbar-width:none;display:grid;grid-template-columns:repeat(7,auto);justify-content:space-between;gap:0;margin:0 -8px 4px}
  .mainnav a{padding:11px 6px;font-size:17px}
  @media (max-width:400px){.mainnav a{padding:11px 3px;font-size:15px}}
  .mainnav .nav-long{display:none}.mainnav .nav-short{display:inline}
}
main{max-width:1180px;margin:0 auto;padding:20px 16px 64px}
.lede{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;margin-bottom:20px}
.lede h1{font-size:44px}
.stamp{color:var(--muted);font-size:14px}
.lede-act{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
.lede-act .social-button{margin-left:0}
.day-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.share-link{all:unset;cursor:pointer;color:var(--blue);font-weight:600;font-size:14px;white-space:nowrap}
.share-link:hover{text-decoration:underline}.share-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
section+section{margin-top:40px}
h2{font-size:28px;margin-bottom:12px}
h3{font-size:21px;margin-bottom:8px}
.note{color:var(--muted);font-size:14px;max-width:72ch}
.how{margin:-4px 0 12px;max-width:72ch}
details.how>summary{display:inline-flex;align-items:center;gap:5px;cursor:pointer;list-style:none;color:var(--muted);font:600 13px Barlow,sans-serif}
.how summary::-webkit-details-marker{display:none}
.how summary::before{content:'';width:0;height:0;border:4px solid transparent;border-left:6px solid currentColor;border-right:0;transition:transform .15s}
.how[open] summary::before{transform:rotate(90deg)}
details.how>summary:hover{color:var(--text)}
.how p{margin:6px 0 0}
/* Faceoff rows: the signature element */
.day{margin-bottom:28px}
.day h2{font-size:24px;color:var(--muted);font-weight:600}
.game{display:grid;grid-template-columns:56px 1fr 56px;grid-template-areas:"away rail home" "meta meta meta";gap:6px 12px;align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line)}
.side{font:700 26px/1 "Barlow Condensed",sans-serif}
.side a{color:var(--text);text-decoration:none}
.side a:hover{color:var(--blue)}
.away{grid-area:away}.home{grid-area:home;text-align:right}
.rail{grid-area:rail;position:relative;height:34px;border-radius:999px;overflow:hidden;display:flex;background:var(--line)}
.rail span{display:flex;align-items:center;font:700 17px/1 "Barlow Condensed",sans-serif;color:#fff;padding:0 12px;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.rail .h{justify-content:flex-end}
.rail::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1.5px rgba(8,14,22,.7);transform:translateX(-1px)}
.meta{grid-area:meta;display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--muted);font-size:14px}
.chip{display:inline-block;font-size:13px;font-weight:600;padding:1px 8px;border-radius:var(--r-lg);background:var(--crease);color:var(--blue)}
.day h2 span{font:500 15px Barlow,sans-serif;color:var(--muted);margin-left:8px}
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,470px),1fr));gap:14px}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px 12px;display:grid;grid-template-rows:auto 34px 42px 30px;gap:10px;min-width:0}
.gcards.one{grid-template-columns:minmax(0,640px);margin-bottom:24px}
/* Preview: the game card, with the playoff stakes beside it when there are any. */
.pv-top{display:grid;grid-template-columns:minmax(0,640px) minmax(0,1fr);gap:20px;align-items:start;margin-bottom:24px}
.pv-top .gcards.one{margin-bottom:0}
@media (max-width:980px){.pv-top{grid-template-columns:minmax(0,1fr)}}
.gc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.gc-title{font-weight:600;min-width:0;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.gc-title:hover{color:var(--blue)}
.gc-title span{color:var(--muted);font-weight:400}
.gc-top time{color:var(--muted);font-size:14px;white-space:nowrap}
.gc-row{display:grid;grid-template-columns:88px 1fr 88px;gap:10px;align-items:center}
.gc-row>*{grid-area:auto}
.gc-row .side{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:6px}
.gc-row .side .tl{width:30px;height:24px}
.gc-row .side:hover{color:var(--blue)}
.gc-row .home{text-align:right;justify-content:flex-end}
.gc-split{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;color:var(--muted);font-size:13px;padding:0 2px}
.gc-split span:nth-child(2){text-align:center}.gc-split span:nth-child(3){text-align:right}
.gc-split.one{grid-template-columns:1fr}
.gc-split span{display:flex;flex-direction:column;line-height:1.3}
.gc-split span:nth-child(2){align-items:center}.gc-split span:nth-child(3){align-items:flex-end}
.gc-split b{color:var(--text);font:600 17px/1.1 "Barlow Condensed",sans-serif}
.gc-split.one span{display:block}
.gc-split.one b{font:600 14px Barlow,sans-serif}
.gc-foot{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;font-size:13px;border-top:1px solid var(--line);padding-top:8px;white-space:nowrap;min-width:0}
.gc-foot>*{overflow:hidden;text-overflow:ellipsis}
.gc-lineup{color:var(--muted);text-decoration:none;font-weight:600}
.gc-lineup:hover{color:var(--blue)}
.gc-lineup.done{color:var(--good)}
.gc-muted{color:var(--muted)}
.gc-market{justify-self:end;text-align:right;color:var(--muted)}
/* Market pill: label, the market favourite's no-vig chance, then its moneyline in an inverted badge. */
.mk{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:2px 2px 2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--ice);color:var(--text);font:700 14px/1 Barlow,sans-serif}
.mk small{font:700 11px/1 Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mk i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:0}
.mk-ml{font:700 17px/1 "Barlow Condensed",sans-serif;padding:3px 9px;border-radius:999px;background:var(--text);color:var(--surface);font-variant-numeric:tabular-nums}
.gc-short{display:none}
.gc-split.live b{font-size:21px;line-height:1.05}
.gcard.is-on .rail{opacity:.55}
.gcard.is-on.wp .rail{opacity:1}
a.tier{text-decoration:none}
.wp-chart{width:100%;height:auto;display:block;margin:14px 0 4px}
.wp-chart text{font:12px Barlow,system-ui,sans-serif;fill:var(--muted)}
.wp-chart .wp-grid{stroke:var(--line)}
.wp-chart .wp-mid{stroke:var(--muted);stroke-dasharray:4 4}
.wp-chart .wp-line{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round}
.wp-panel{margin-bottom:24px}
.wp-chart .wp-pp{opacity:.16;cursor:help}.wp-chart .wp-pp:hover,.wp-chart .wp-pp:focus{opacity:.32;outline:none}
.wp-chart .wp-goal{stroke:var(--surface);stroke-width:2;cursor:help}.wp-chart .wp-goal:hover,.wp-chart .wp-goal:focus{stroke:var(--text);outline:none}
.wp-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin:4px 0 8px}
.wp-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.wp-dot{border-radius:50%}.wp-band{background:var(--muted);opacity:.35;border-radius:var(--r-xs)}
@media (max-width:640px){.wp-chart text{font-size:22px}.wp-chart .wp-goal{r:11px}}
.live-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.live-pill.final{color:var(--muted)}
.pv-why{font-size:17px;line-height:1.45;margin:4px 0 14px;max-width:62ch}
.early-pill{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 5px;margin-right:6px;white-space:nowrap}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.live-board .sb-mid{align-items:center}
.live-board .sb-mid .live-dot{margin-bottom:2px}
.scoreboard.live-board{grid-template-areas:"away mid home" "xg xg xg"}
.lv-xg{grid-area:xg;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--boards-text) 16%,transparent)}
.lv-xg[hidden]{display:none}
.lv-xg b{font:700 clamp(26px,3.6vw,38px)/1 "Barlow Condensed",sans-serif;font-variant-numeric:tabular-nums;opacity:.7}
.lv-xg b.lead{opacity:1}
.lv-xg-mid{display:flex;flex-direction:column;gap:6px;text-align:center;min-width:0}
.lv-xg-bar{display:block;height:12px;border-radius:var(--r-sm);background:var(--ch);overflow:hidden}
.lv-xg-bar i{display:block;height:100%;background:var(--ca);box-shadow:3px 0 0 var(--boards);transition:width .6s ease}
.lv-xg small{color:color-mix(in srgb,var(--boards-text) 70%,transparent);font-size:13px}
.lv-xg small span{color:var(--boards-text);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:12px}
.lv-xg small em{font-style:normal}.lv-xg small em::before{content:'· '}
@media (max-width:520px){.scoreboard.live-board{grid-template-areas:"away home" "mid mid" "xg xg"}.lv-xg{gap:10px;padding-top:12px}
  .lv-xg small em{display:block}.lv-xg small em::before{content:none}}
@media (prefers-reduced-motion:reduce){.lv-xg-bar i{transition:none}}
.live-grid h3{font-size:17px;margin:14px 0 4px;color:var(--muted)}
.ev-row{display:grid;grid-template-columns:44px 56px minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.ev-time{color:var(--muted);font-size:13px}
.ev-team{font-weight:600;font-size:13px;white-space:nowrap}
.ev-what small{display:block;color:var(--muted);font-size:13px}
.ev-what .chip{font-size:11px;padding:0 6px}
.ev-score{font:600 16px "Barlow Condensed",sans-serif}
.ev-none{margin:4px 0}
.lineups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px}
.lineup{border-top:4px solid var(--tc)}
.lineups.single{grid-template-columns:minmax(0,1fr)}
.gcards.wide{grid-template-columns:minmax(0,1fr)}
.ln-no,.ln-fn{display:none}
.ln-p.ln-open{color:var(--muted);font-weight:400;font-style:italic}
.ln-outs .ln-hd span:last-child{font-weight:400}
.ln-out-row{display:grid;grid-template-columns:minmax(0,170px) 58px minmax(0,1fr);gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.ln-badge{justify-self:start;font:700 12px/1 Barlow,sans-serif;letter-spacing:.03em;text-transform:uppercase;padding:4px 7px;border-radius:var(--r-sm);background:var(--crease);color:var(--muted)}
.ln-badge.hurt{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}
.ln-badge.dtd{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}
.ln-why{color:var(--muted);font-size:14px;min-width:0}
@media (min-width:860px){
  .lineups.single .lineup{padding:24px 28px}
  .lineups.single .ln-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:0 40px}
  .lineups.single .ln-row{font-size:16px;padding:9px 0}
  .lineups.single .ln-row.pair{grid-template-columns:30px repeat(2,minmax(0,1.5fr)) 44px}.lineups.single .ln-row.pair .ln-sec{grid-column:4}
  .lineups.single .ln-row .ln-fn{display:inline;font-weight:400;color:var(--muted)}
  .lineups.single .ln-row .ln-no{display:inline-block;min-width:24px;font:600 13px Barlow,sans-serif;color:var(--muted)}
}
.lineups section+section,.gcards section+section{margin-top:0}
.lineup h3{font-size:18px;margin:18px 0 6px}.lineup h3 small{font:400 13px Barlow,sans-serif;color:var(--muted);margin-left:6px}
.ln-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.ln-src{color:var(--muted);font-size:13px}
.chip.muted{background:var(--ice);color:var(--muted);border:1px solid var(--line)}
.ln-block{margin-top:18px}
.ln-hd{display:flex;justify-content:space-between;font:700 18px/1.2 "Barlow Condensed",sans-serif;padding-bottom:6px;border-bottom:2px solid var(--line)}
.ln-hd span:last-child{font:400 12px Barlow,sans-serif;color:var(--muted);align-self:end}
.ln-row{display:grid;grid-template-columns:30px repeat(3,minmax(0,1fr)) 44px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.ln-row.pair{grid-template-columns:30px repeat(2,minmax(0,1fr)) minmax(0,1fr) 44px}
.ln-row.pair .ln-sec{grid-column:5}
.ln-row.goalie{grid-template-columns:62px minmax(0,1fr) 44px}
.ln-lab{font:700 14px "Barlow Condensed",sans-serif;color:var(--muted)}
.ln-p{color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-p:hover{color:var(--blue)}
.ln-sec{text-align:right;color:var(--muted);font-size:13px}
.ln-lab small{display:none;font:400 11px Barlow,sans-serif}
.ln-extra{font-size:14px;color:var(--muted);margin:10px 0 0}
@media (max-width:480px){
  .ln-out-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:14px}.ln-out-row .ln-badge{justify-self:end}.ln-why{grid-column:1/-1;font-size:13px}
  .lineup{padding:16px 14px}
  .ln-row,.ln-row.pair{grid-template-columns:34px repeat(3,minmax(0,1fr));gap:6px;font-size:14px}
  .ln-row.pair{grid-template-columns:34px repeat(2,minmax(0,1.5fr))}
  .ln-row .ln-sec{display:none}
  .ln-row.goalie .ln-sec{display:block}
  .ln-row.goalie{grid-template-columns:54px minmax(0,1fr) 44px}
  .ln-lab{display:flex;flex-direction:column;line-height:1.15}.ln-lab small{display:block}
  .ln-hd.sk span:last-child{display:none}
}
.ln-extra .ln-p{font-weight:500}
/* A lineup spot: headshot, then the name over a thin rating bar (percentile, lineupPanel's cell). */
.ln-cell{display:flex;align-items:center;gap:7px;min-width:0}
.ln-face{width:30px;height:30px}.ln-face.ini{font-size:11px}
.ln-nm{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.ln-tx{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ln-rt{display:block;height:3px;border-radius:var(--r-xs);background:var(--line);max-width:84px;overflow:hidden}
.ln-rt i{display:block;height:100%;background:var(--blue)}
.ln-rt.none{opacity:.5}
@media (max-width:480px){.ln-cell{gap:5px}.ln-face{width:22px;height:22px}.ln-face.ini{font-size:9px}}
.inj{font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--bad);margin-left:2px}

.empty{padding:24px;border:1px dashed var(--line);border-radius:var(--r-lg);color:var(--muted)}
/* tables */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:15px}
th,td{padding:8px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th{font:600 14px/1.2 Barlow,sans-serif;color:var(--muted);background:var(--surface);position:sticky;top:0}
th.l,td.l{text-align:left}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--crease)}
/* A table wider than its box fades at the right edge until it is scrolled to the end (tableCues). */
.scroll.more{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.25));mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.25))}
th.abbr{text-decoration:underline dotted;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent);text-underline-offset:3px;cursor:help}
th.abbr button{cursor:pointer}
th button{all:unset;cursor:pointer}
th button:focus-visible{outline:2px solid var(--blue)}
.tm{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-weight:600}
/* Logo boxes are 5:4: the saved logos are cropped to their drawing (site_logos), so a wide mark fills the width and a
   tall one the height, the same balance the NHL's own frames keep. */
.tl{display:inline-block;flex-shrink:0;width:25px;height:20px;background:var(--lg) center/contain no-repeat;vertical-align:middle}
.tl.chip{width:10px;height:10px;border-radius:var(--r-xs)}
.tl.big{width:50px;height:40px}.tl.big.chip{width:14px;height:14px}
.tl.xl{width:90px;height:72px}.tl.xl.chip{width:18px;height:18px}
.team-h1{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}
/* Player headshots (face()): round, the portrait on a wash of the team colour; initials on the colour without one. */
.pf{display:inline-block;flex-shrink:0;width:24px;height:24px;border-radius:50%;object-fit:cover;vertical-align:middle;background:color-mix(in srgb,var(--tc,#5B6B7B) 24%,var(--crease))}
.pf.ini{display:inline-grid;place-items:center;background:var(--tc,#5B6B7B);font:700 10px/1 Barlow,sans-serif;font-style:normal;letter-spacing:.02em}
.pf.md{width:40px;height:40px}.pf.md.ini{font-size:15px}
.pf.lg{width:64px;height:64px}.pf.lg.ini{font-size:23px}
.pf.xl{width:96px;height:96px}.pf.xl.ini{font-size:34px}
.pn{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}   /* a headshot and a name side by side */
/* Preview heading: each team's logo leads its name, cap-height-matched, with a quiet "at" that wraps with the home team. */
.matchup{display:flex;flex-wrap:wrap;align-items:center;gap:4px .45em}
.mu-t{display:inline-flex;align-items:center;gap:.28em}
.mu-t .tl{width:1.25em;height:1em}
.mu-at{color:var(--muted);font-weight:500;font-size:.7em;margin-right:.1em}
.club-logo{float:right;margin:0 0 6px 10px}
.sb-team .tl.big{width:65px;height:52px}
@media (max-width:560px){.tl.xl{width:60px;height:48px}.sb-team .tl.big{width:45px;height:36px}}
/* The cut line is a background stripe, not a border, so the pinned team cell draws it the same as the rest. */
.cut td{background-image:repeating-linear-gradient(90deg,var(--red) 0 6px,transparent 6px 11px);background-size:100% 2px;background-repeat:no-repeat;background-position:0 0}
.stack{display:flex;flex-direction:column;gap:28px}
.standings{min-width:760px}
.sect th{position:static;text-align:left;font:700 16px/1.2 "Barlow Condensed",sans-serif;color:var(--text);background:var(--crease);letter-spacing:.02em}
.standings .rk{display:inline-block;min-width:30px;color:var(--muted);font-size:13px;font-weight:600}
.range{position:relative;display:inline-block;width:120px;height:10px;vertical-align:middle}
.range b{position:absolute;top:4px;height:2px;background:var(--muted)}
.range em{position:absolute;top:0;width:10px;height:10px;border-radius:50%;background:var(--blue);transform:translateX(-5px)}
.heat{border-radius:var(--r-sm);padding:2px 6px;display:inline-block;min-width:44px}
/* Playoff odds: a tile per stage, its blue as deep as the chance (square-root scale, so small chances still show). */
.po-table{border-collapse:separate;border-spacing:4px;min-width:620px}
.po-table td,.po-table th{border:0;padding:0 2px}
.po-table td.l{padding:0 14px 0 8px}
.po-table th{padding:10px 2px 6px;text-align:center}
.po-table th.l{text-align:left;padding-left:8px}
.po-table tbody tr:hover{background:none}
.po-table tbody tr:hover td.l .tm{color:var(--blue)}
.po-table .tm .tl{width:30px;height:24px}
.po-c{display:grid;place-items:center;height:40px;border-radius:var(--r-sm);font:700 19px/1 "Barlow Condensed",sans-serif;
  background:color-mix(in srgb,#2457A6 var(--a),color-mix(in srgb,#2457A6 7%,var(--surface)))}   /* the light theme's deep blue in both themes, so white reads on the deep tiles */
.po-h3{margin:28px 0 12px}
.po-series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.po-series{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px 12px}
.po-sides{display:flex;justify-content:space-between;align-items:center;gap:8px}
.po-sides a{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font:700 20px/1 "Barlow Condensed",sans-serif}
.po-sides a:last-child{flex-direction:row-reverse}
.po-sides a:hover{color:var(--blue)}
.po-sides>span{color:var(--muted);font-size:13px}
.po-logo{width:40px;height:32px}
.po-split{display:flex;height:8px;border-radius:999px;overflow:hidden;margin:12px 0 8px;gap:2px}
.po-split i{display:block;height:100%}
.po-sfoot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:600;font-size:14px}
.po-sfoot small{color:var(--muted);font-weight:400;font-size:12px;text-align:center}
@media (max-width:640px){.po-table{min-width:0;border-spacing:3px}.po-table td.l{padding:0 6px 0 4px}.po-c{height:36px;font-size:16px}.po-table .tm{gap:5px}.po-table .tm .tl{width:22px;height:18px}}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:24px 32px}
/* teams */
.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;margin-bottom:24px}
.teams a{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}
.teams a:hover{color:var(--blue)}
.teams i{width:6px;height:22px;border-radius:var(--r-xs)}
.thead{border-left:10px solid var(--tc);padding:4px 0 4px 16px;margin-bottom:24px}
.thead h1{font-size:44px}
.stats{display:flex;flex-wrap:wrap;gap:12px 36px;margin-top:10px}
.stats div{display:flex;flex-direction:column}
.stats b{font:700 30px/1 "Barlow Condensed",sans-serif}
.stats span{color:var(--muted);font-size:14px}
.comp{display:grid;grid-template-columns:150px 1fr 56px;gap:6px 12px;align-items:center;font-size:15px}
.comp .track{position:relative;height:14px;background:var(--crease);border-radius:var(--r-sm)}
.comp .track::before{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--muted)}
.comp .fill{position:absolute;top:0;bottom:0;border-radius:var(--r-sm)}
.pos{color:var(--good)}.neg{color:var(--bad)}
/* players */
/* Player tables (playerTable): goals above average as a bar either side of zero, its parts shaded by size. */
.pt-gaa{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}
.pt-bar{position:relative;width:60px;height:8px;border-radius:var(--r-xs);background:var(--crease)}
.pt-bar::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1px solid var(--muted)}
.pt-bar i{position:absolute;top:0;bottom:0;left:50%;background:var(--blue);border-radius:0 var(--r-xs) var(--r-xs) 0}
.pt-bar i.neg{left:auto;right:50%;background:var(--red);border-radius:var(--r-xs) 0 0 var(--r-xs)}
.pt-gaa b{min-width:36px;text-align:right}
.pt-sh{background:color-mix(in srgb,var(--c) var(--a),transparent)}
.pt-table td .pn{gap:8px}
@media (max-width:640px){.pt-bar{width:40px}.pt-gaa{gap:6px}}
.filters{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:12px;align-items:center}
/* Fields: one size everywhere, at 16px so a phone does not zoom in on them. */
input,select{font:400 16px/1.25 Barlow,system-ui,sans-serif;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;min-height:40px}
input[type=checkbox]{min-height:0}
/* Buttons: filled for the page's main action, outlined for the rest; the same height and corners everywhere. */
.social-button,.mt-toggle,#code-update,.share-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:var(--r-md);font:600 14px/1 Barlow,system-ui,sans-serif;cursor:pointer;text-decoration:none;white-space:nowrap}
/* Segmented choices (team styles, movers, heat maps, compare): one look for all of them. */
:is(.lg-seg,.oh-seg,.hm-toggle,.cmp-mode,.share-seg){display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);max-width:100%}
:is(.lg-seg,.oh-seg,.hm-toggle,.cmp-mode,.share-seg)>:is(button,a){all:unset;box-sizing:border-box;cursor:pointer;padding:5px 12px;border-radius:var(--r-sm);font:600 14px/1.3 Barlow,sans-serif;color:var(--muted);text-align:center;text-decoration:none}
:is(.lg-seg,.oh-seg,.hm-toggle,.cmp-mode,.share-seg)>:is(button,a):hover{color:var(--text)}
:is(.lg-seg,.oh-seg,.hm-toggle,.cmp-mode,.share-seg)>:is([aria-pressed="true"],.on){background:var(--crease);color:var(--text)}
:is(.lg-seg,.oh-seg,.hm-toggle,.cmp-mode,.share-seg)>:is(button,a):focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
input[type=search]{min-width:min(100%,260px)}
.filters label{display:inline-flex;align-items:center;gap:8px}
input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--blue)}
.more{margin-top:12px}
button.link{all:unset;cursor:pointer;color:var(--blue);font-weight:600}
.about p,.about li{max-width:72ch}
.about h2{margin-top:28px}
/* Wide tables keep the first column in view while the rest scrolls sideways. */
.pinned th:first-child,.pinned td:first-child{position:sticky;left:0;z-index:1;background-color:var(--surface);box-shadow:1px 0 0 var(--line)}
.pinned th:first-child{z-index:2}
.pinned tbody tr:hover td:first-child{background-color:var(--crease)}
.about li{margin-bottom:6px}
.social-button+.social-button{margin-left:0}
.social-button.copy-link{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 1.5px var(--blue)}
.social-button.copy-link:hover{background:var(--crease)}
.copy-out{flex:1 1 100%;display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}
.copy-out input{flex:1;min-width:0;font:14px Barlow,system-ui,sans-serif;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}
.sr-status,.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.retry-link{font:inherit;color:var(--blue);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
footer{max-width:1180px;margin:0 auto;padding:0 16px 40px;color:var(--muted);font-size:13px}
/* Footer: every team, by division. */
.team-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:18px 24px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.team-index div{display:flex;flex-direction:column;gap:4px}
.team-index b{color:var(--text);font:600 12px Barlow,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.team-index a{color:var(--muted);text-decoration:none}.team-index a:hover{color:var(--blue);text-decoration:underline}
@media (max-width:640px){.team-index{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .lede h1,.thead h1{font-size:34px}
  .game{grid-template-columns:44px 1fr 44px}
  .gc-row{grid-template-columns:70px 1fr 70px;gap:8px}
  .gc-row .side .tl{width:20px;height:16px}
  .gc-row .side{gap:4px}
  .gcard{padding:12px 12px 10px}
  .gc-foot{gap:8px}
  .side{font-size:22px}
  .comp{grid-template-columns:110px 1fr 48px}
  .lede h1{font-size:32px}
  h2{font-size:25px}
  input[type=search]{min-width:0;flex:1 1 100%}
  .filters select{flex:1 1 40%}
  /* Tabs share the width so five fit from 360px up; narrower, they scroll, faded on the side with more. */
  .subnav{gap:0}
  .subnav a{flex:1 0 auto;text-align:center;padding:10px 4px;font-size:14px}
  .subnav.more{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
  .subnav.back{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px);mask-image:linear-gradient(90deg,transparent,#000 44px)}
  .subnav.more.back{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
  .gc-long{display:none}
  .gc-short{display:inline}
}
/* Scouting reports: strong hierarchy, comparable numbers and quiet context. */
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.report-hero{position:relative;display:grid;grid-template-columns:1fr auto;gap:24px;padding:30px 32px;background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--tc,var(--blue));border-radius:var(--r-lg);margin-bottom:24px;overflow:hidden}
/* A header's club crest, large and faint at the right, behind everything. It sinks slower than the page as the page
   scrolls, and settles in when the page opens (heroMotion). */
.report-hero{isolation:isolate}
.hero-wm{position:absolute;inset:-14% -2% -14% auto;width:min(44%,440px);z-index:-1;pointer-events:none;opacity:.08}
.hero-wm .tl{display:block;width:100%;height:100%}
.hero-wm .chip{display:none}
@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){
  .hero-wm{animation:hero-sink linear both;animation-timeline:scroll(root);animation-range:0 520px}}}
@keyframes hero-sink{to{translate:0 150px}}
.report-hero h1{font-size:58px;margin:8px 0 12px;letter-spacing:-.02em}
.report-hero .identity{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted)}
.report-hero .stats{grid-column:1/-1;padding-top:20px;border-top:1px solid var(--line);gap:20px 42px;margin-top:0}
.rating-tile{align-self:center;text-align:center;background:var(--crease);border-radius:var(--r-lg);min-width:144px;padding:16px 22px}
.rating-tile strong{display:block;font:700 68px/1 'Barlow Condensed',sans-serif;color:var(--blue)}
.rating-tile span{display:block;color:var(--muted);font-size:13px;max-width:145px}
.rating-tile .rating-unit{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.report-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:24px;margin:24px 0}
.report-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;min-width:0}
.report-grid section+section{margin-top:0}
.panel-top{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:20px}
.panel-top h2{margin:4px 0 0;font-size:30px}
.panel-top .chip{white-space:nowrap}
.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.metric-tile{padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}
.metric-tile .label{font-size:13px;font-weight:600;color:var(--muted)}
.metric-tile strong{display:block;font:700 38px/1.2 'Barlow Condensed',sans-serif;letter-spacing:-.01em;margin:7px 0}
.metric-tile small{font-size:12px;color:var(--muted)}
.share-track{position:relative;height:5px;background:var(--crease);border-radius:var(--r-sm);margin:10px 0}
.share-track i{display:block;height:100%;background:var(--blue);border-radius:var(--r-sm)}
.share-track:after{content:'';position:absolute;left:50%;top:-3px;height:11px;border-left:1px solid var(--muted)}
.metric-tile.against .share-track i{background:var(--red)}
.stats-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.stats-controls label{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:14px}
.sample-line{font-size:13px;color:var(--muted);margin:12px 0 0}
.source-note{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:0}
.chart-wrap{margin-top:4px}
.history-chart{width:100%;height:auto;overflow:visible;display:block}
.history-chart text{font-family:Barlow,system-ui,sans-serif;fill:var(--muted);font-size:12px}
.history-chart .chart-grid{stroke:var(--line);stroke-width:1}
.history-chart .median{stroke:var(--muted);stroke-dasharray:4 5}
.history-chart .history-line{stroke:var(--blue);stroke-width:3;fill:none;stroke-linejoin:round}
.history-chart .dot{fill:var(--surface);stroke:var(--blue);stroke-width:3;cursor:help}
.history-chart .dot:focus,.history-chart .dot:hover{fill:var(--blue);outline:none;stroke-width:5}
.history-chart .value-label{fill:var(--text);font-weight:600;font-size:15px}
.history-chart .pct-label{fill:var(--text);font-weight:600;font-size:13px}
.history-chart .pct-label.muted{fill:var(--muted);font-weight:400}
.history-chart .history-area{fill:var(--blue);fill-opacity:.08}
.history-chart .dot.neg{stroke:var(--red)}
.chart-detail{min-height:42px;font-size:13px;color:var(--muted);padding:10px 12px;background:var(--ice);border-radius:var(--r-sm)}
.component-row{display:grid;grid-template-columns:110px 1fr 52px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.component-row:last-child{border-bottom:0}
.diverge{height:11px;background:var(--ice);position:relative;border-radius:var(--r-sm)}
.diverge:after{content:'';position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1px solid var(--muted)}
.diverge i{position:absolute;top:0;bottom:0;border-radius:var(--r-sm)}
.component-row b{text-align:right}
.rate-pair{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.rate-pair div{border-bottom:2px solid var(--line);padding-bottom:12px}
.rate-pair span{display:block;font-size:12px;color:var(--muted)}
.rate-pair strong{font:700 30px/1.3 'Barlow Condensed',sans-serif}
.report-links{display:flex;gap:10px 16px;flex-wrap:wrap;margin-bottom:18px;font-size:14px}
@media(max-width:640px){
  .report-links .rl-team{display:none}
  .report-links:has(button~button)::after{content:'';order:1;flex-basis:100%}
  .report-links:has(button~button)>:is(button,.mt-toggle){order:2;margin-left:0;min-height:34px;padding:0 11px;font-size:13px}
  .report-links:has(button~button){column-gap:8px}
  .report-links:has(button~button)>a{margin-right:8px}
  .report-links>.copy-out{order:3}
}
.report-panel details{margin-top:16px;font-size:14px}
.report-panel summary{cursor:pointer;color:var(--blue)}
.report-panel details p{color:var(--muted);max-width:85ch}
.report-panel details .scroll{margin-top:12px}
.club-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:30px}
.club-card{display:block;background:var(--surface);color:var(--text);text-decoration:none;border:1px solid var(--line);border-top:4px solid var(--tc);border-radius:var(--r-lg);padding:20px;transition:transform .15s,border-color .15s}
.club-card:hover{transform:translateY(-2px);border-color:var(--tc)}
.club-card h3{font-size:25px;margin:8px 0 18px}
.club-card .club-numbers{display:flex;justify-content:space-between;gap:12px}
.club-card strong{display:block;font:700 26px/1.1 'Barlow Condensed',sans-serif}
.club-card small{color:var(--muted);font-size:12px}
.team-profile .comp{padding:5px 0}
.team-profile .report-panel h2{font-size:28px}
@media(max-width:760px){.report-grid{grid-template-columns:1fr}.report-hero{padding:22px;gap:16px}.report-hero h1{font-size:43px}.rating-tile{min-width:100px;padding:12px}.rating-tile strong{font-size:52px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-panel{padding:18px}.panel-top{flex-wrap:wrap}}
@media(max-width:420px){.report-hero{grid-template-columns:1fr}.rating-tile{display:flex;gap:16px;align-items:center;text-align:left}.rating-tile .rating-unit{display:none}.report-hero h1{font-size:40px}.stats{gap:18px}.report-hero .stats{gap:18px 24px}.metric-tile{padding:12px}.metric-tile strong{font-size:33px}}
@media(prefers-reduced-motion:reduce){.club-card{transition:none}}

@media(max-width:640px){.history-chart text{font-size:20px}.history-chart .value-label{font-size:24px}.history-chart .pct-label{font-size:20px}}
.social-button{background:var(--blue);color:var(--surface);margin-left:auto}
.social-button:hover{filter:brightness(1.08)}
.report-links{align-items:center}
.share-dialog{width:min(690px,calc(100% - 24px));max-height:94vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:0 20px 80px #0006}
.share-dialog::backdrop{background:#06111dcc;backdrop-filter:blur(4px)}
.share-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}
.share-top h2{font-size:28px;margin:5px 0 0}
.share-close{color:var(--text);background:var(--ice);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:18px;flex-shrink:0}
.share-preview{background:var(--ice);border-radius:var(--r-lg);padding:14px;display:flex;justify-content:center}
.share-preview img{display:block;max-width:100%;width:auto;height:auto;max-height:62vh;object-fit:contain;box-shadow:0 3px 18px #0002}
.share-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:18px 0 6px;font-size:14px}
.share-actions span{color:var(--muted);font-size:12px}
.share-seg{margin:0 0 12px}
.share-actions [hidden]{display:none}   /* the system share button shows only where the browser can share files */
.share-primary{background:var(--blue);color:var(--surface)}
@media(max-width:440px){.share-dialog{padding:16px}.share-actions{gap:12px}.share-preview{padding:8px}}

/* Player and goalie headers: the club's two colours as a band across the top, a wash of the first behind the headshot,
   and the team logo as a badge on the portrait. */
.pl-hero{border-top:0;padding-top:38px;background:linear-gradient(118deg,color-mix(in srgb,var(--tc) 15%,var(--surface)) 0,var(--surface) 58%)}
.pl-hero::before{content:"";position:absolute;inset:0 0 auto;height:10px;background:linear-gradient(90deg,var(--tc) 0 72%,var(--tc2) 72% 100%)}
.pl-id{display:flex;align-items:center;gap:22px;min-width:0}
.pl-name{min-width:0}
.pl-name h1{margin:6px 0 10px}
.pl-pic{position:relative;flex-shrink:0;line-height:0}
.pl-face{width:124px;height:124px;box-shadow:0 0 0 4px var(--surface),0 0 0 7px var(--tc)}
.pl-face.ini{font-size:44px}
.pl-badge{position:absolute;right:-8px;bottom:-4px;width:44px;height:35px;padding:3px;box-sizing:content-box;background-color:var(--surface);background-origin:content-box;border-radius:var(--r-md);box-shadow:0 1px 4px #0003}
.pl-badge.chip{width:16px;height:16px;right:2px;bottom:2px;padding:0}
@media(max-width:760px){.pl-hero{padding-top:30px}.pl-face{width:96px;height:96px}.pl-face.ini{font-size:34px}.pl-badge{width:34px;height:27px}.pl-id{gap:18px}}
@media(max-width:420px){.pl-id{align-items:flex-start;gap:14px}.pl-face{width:72px;height:72px;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--tc)}.pl-face.ini{font-size:26px}
  .pl-badge{width:26px;height:21px;right:-6px;bottom:-4px;padding:2px}.pl-name h1{font-size:34px}}

/* Percentiles card (player pages): one bar per part of his game against his position, 99 the best. */
.pc-card{margin-bottom:24px}
.pc-card .panel-top{margin-bottom:12px}
.pc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 40px}
.pc-row{display:grid;grid-template-columns:118px minmax(0,1fr) 30px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.pc-l{color:var(--muted);font-weight:500}
.pc-track{position:relative;height:12px;border-radius:var(--r-sm);background:var(--crease)}
.pc-track::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;border-left:1px dashed var(--muted);opacity:.7}
.pc-track i{transform-origin:0 50%;display:block;height:100%;border-radius:var(--r-sm);background:color-mix(in srgb,var(--muted) 55%,var(--crease))}
.pc-track i.hi{background:var(--blue)}.pc-track i.lo{background:var(--red)}
.pc-v{text-align:right;font:700 20px/1 "Barlow Condensed",sans-serif}
.pc-v.hi{color:var(--blue)}.pc-v.lo{color:var(--red)}
.pc-row.edge .pc-l::after{content:" · EDGE";font-size:11px;color:var(--muted);font-weight:400}
@media(max-width:760px){.pc-grid{grid-template-columns:minmax(0,1fr)}.pc-row{grid-template-columns:104px minmax(0,1fr) 28px}}

/* Results, game pages and team game lists. */
.summary-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;margin:0 0 20px}
.summary-tiles div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.summary-tiles strong{font:700 28px/1.05 "Barlow Condensed",sans-serif}
.summary-tiles span{color:var(--muted);font-size:13px}
@media(max-width:640px){.summary-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-tiles div{padding:10px 12px}.summary-tiles strong{font-size:24px}.summary-tiles div:last-child:nth-child(odd){grid-column:1/-1}}
.results-table td{vertical-align:middle}
.score-cell a{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font:600 17px/1 "Barlow Condensed",sans-serif}
.score-cell a:hover{color:var(--blue)}
.score-cell .won{font-weight:700}
.score-cell span:not(.won):not(.at):not(.chip){opacity:.62}
.score-cell .at{color:var(--muted);font:400 13px Barlow,sans-serif}
.dot-team{display:inline-block;width:8px;height:8px;border-radius:var(--r-xs);margin-right:4px;vertical-align:1px}
.pick{display:inline-flex;align-items:center;gap:2px;font-weight:600;padding:1px 8px;border-radius:var(--r-lg)}
.pick.hit{background:color-mix(in srgb,var(--good) 14%,transparent)}
.pick.miss{background:color-mix(in srgb,var(--bad) 12%,transparent)}
.muted-cell{color:var(--muted)}
.verdict{font-size:13px;font-weight:600;padding:2px 9px;border-radius:var(--r-lg);white-space:nowrap}
.verdict.good{color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent)}
.verdict.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}
.verdict.even,.verdict.none{color:var(--muted);background:var(--crease)}
.scoreboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,auto) minmax(0,1fr);grid-template-areas:"away mid home";align-items:center;gap:16px;background:var(--boards);color:var(--boards-text);border-radius:var(--r-lg);padding:22px 28px;margin-bottom:24px;border-bottom:5px solid var(--red)}
.sb-team{display:flex;align-items:center;gap:14px;border-left:8px solid var(--ca);padding-left:14px}
.sb-team strong{margin-left:auto}.sb-team.home strong{margin:0 auto 0 0}   /* logo and name together, the score by the clock */
.sb-team.home{border-left:0;border-right:8px solid var(--ch);padding:0 14px 0 0}
.sb-team a{color:var(--boards-text);text-decoration:none;font:700 clamp(19px,2.6vw,28px)/1.1 "Barlow Condensed",sans-serif;min-width:0}
.sb-team strong{font:700 clamp(44px,7vw,76px)/1 "Barlow Condensed",sans-serif;opacity:.55}
.sb-team strong.won{opacity:1}
.sb-team{grid-area:away}.sb-team.home{grid-area:home}
.sb-mid{grid-area:mid;text-align:center;display:flex;flex-direction:column;gap:4px}
.sb-mid span{font:700 20px/1 "Barlow Condensed",sans-serif;letter-spacing:.02em}
.sb-mid small{color:color-mix(in srgb,var(--boards-text) 70%,transparent);font-size:13px}
.prob-row{display:grid;grid-template-columns:170px 1fr;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.prob-label{font-weight:600;display:flex;flex-direction:column}
.prob-label small{color:var(--muted);font-weight:400;font-size:12px}
.rail.mini{grid-area:auto;width:100%;height:26px;border-radius:999px}
.rail.mini span{font-size:15px;padding:0 10px}
/* Market row: set off as a tinted band, with each side's moneyline as a badge under the bar. */
.prob-row.mkt{margin:8px -12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--ice)}
.prob-ml{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font:700 14px/1 Barlow,sans-serif;color:var(--text)}
.prob-ml span{display:inline-flex;align-items:center;gap:6px}
.prob-ml i{display:inline-block;width:9px;height:9px;border-radius:50%}
.prob-ml small{font:700 11px/1 Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* Model vs market extras: market movement and how the game ended. */
.sub-hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.sub-hd h3{font-size:19px;white-space:nowrap}
.sub-hd small{color:var(--muted);font-size:12px;text-align:right}
.mv{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center}
.mv-end{display:flex;flex-direction:column;gap:6px}
.mv-end:last-child{align-items:flex-end}
.mv-end small{color:var(--muted);font-size:12px;white-space:nowrap}
.mv-val{display:flex;align-items:center;gap:7px;font:700 15px/1 Barlow,sans-serif;white-space:nowrap}
.mv-mid{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.mv-mid svg{width:100%;height:54px;overflow:visible}
.mv-mid path{fill:none;stroke:var(--text);vector-effect:non-scaling-stroke}
.mv-line{stroke-width:2;stroke-linejoin:round}
.mv-dot{stroke-width:7;stroke-linecap:round}
.mv-dot.last{stroke-width:10}
.mv-even{stroke:var(--muted);stroke-dasharray:3 3;opacity:.6;vector-effect:non-scaling-stroke}
.mv-chg{font:700 13px Barlow,sans-serif;color:var(--text)}
.mv-chg.flat{color:var(--muted);font-weight:600}
.ends{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ends>div{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--ice);text-align:center;min-width:0}
.ends b{font:700 22px/1 "Barlow Condensed",sans-serif;color:var(--muted)}
.ends span{font-size:12px;color:var(--muted);line-height:1.2}
.ends i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.ends .hit{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text);background:var(--surface)}
.ends .hit b,.ends .hit span{color:var(--text)}
.ends em{font:700 11px/1 Barlow,sans-serif;font-style:normal;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--text);color:var(--surface);margin-top:2px;white-space:nowrap}
.prob-legend{display:flex;gap:16px;margin-top:10px;color:var(--muted);font-size:13px}
.prob-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--r-xs);margin-right:6px}
.cmp-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font:700 18px "Barlow Condensed",sans-serif;margin-bottom:4px}
.cmp-row{display:grid;grid-template-columns:52px 1fr 52px;gap:10px;align-items:center;padding:6px 0}
.cmp-row>b{font:600 18px/1 "Barlow Condensed",sans-serif;color:var(--muted)}
.cmp-row>b:last-child{text-align:right}
.cmp-row>b.lead{color:var(--text)}
.cmp-row span{display:block;text-align:center;font-size:13px;color:var(--muted);margin-bottom:3px}
.cmp-bar{display:flex;height:8px;border-radius:var(--r-sm);overflow:hidden;background:var(--line)}
.box-team{border-top:4px solid var(--tc);margin-top:20px}
table.box td,table.box th{padding:6px 9px;font-size:14px}
.team-games{margin-top:24px}
@media (max-width:520px){
  .scoreboard{padding:16px;gap:12px 10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"away home" "mid mid"}
  .sb-team{flex-direction:column-reverse;align-items:flex-start;gap:4px}
  .sb-team strong,.sb-team.home strong{margin:0}
  .sb-team.home{flex-direction:column;align-items:flex-end}
  .prob-row{grid-template-columns:1fr}
  .mv{grid-template-columns:1fr 1fr;grid-template-areas:"o c" "m m"}
  .mv-end:first-child{grid-area:o}.mv-end:last-child{grid-area:c}.mv-mid{grid-area:m}
  .ends{grid-template-columns:1fr 1fr}
}
.tier{display:inline-flex;align-items:baseline;gap:5px;font-size:13px;font-weight:600;padding:2px 9px;border-radius:var(--r-lg);white-space:nowrap}
.tier small{font-weight:400;opacity:.8}
.tier-0{background:var(--crease);color:var(--muted)}
.tier-1{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue)}
.tier-2{background:color-mix(in srgb,var(--blue) 24%,transparent);color:var(--blue)}
.tier-3{background:var(--blue);color:#fff}
.calib{width:100%;height:auto;display:block}
.calib text{font:12px Barlow,system-ui,sans-serif;fill:var(--muted)}
.calib text.axis{font-size:13px;fill:var(--text)}
.calib .g{stroke:var(--line);stroke-width:1}
.calib .diag{stroke:var(--muted);stroke-dasharray:5 5}
.calib .err{stroke:var(--blue);stroke-width:2;opacity:.45}
.calib .hist{fill:var(--blue);stroke:var(--surface);stroke-width:2}
.calib .live{fill:var(--red);stroke:var(--surface);stroke-width:1.5}
.calib-legend{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:13px;margin-top:6px}
.calib-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.calib-legend i.hist{background:var(--blue);border-radius:50%}
.calib-legend i.live{background:var(--red);transform:rotate(45deg)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* Finals from the live feed, before the morning update adds them: a thin accent and a wrapping note instead of xG and verdict. */
.res-fresh td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
/* Result cards: the score and shots for each side, expected goals as a bar in the teams' colours (away from the left),
   the top performer, and the model's pick in the corner (green when it won). */
.rs-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:12px}
.rs-card{display:grid;gap:7px;align-content:start;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--text);text-decoration:none;min-width:0}
a.rs-card:hover{border-color:var(--blue)}
.rs-card.res-fresh{box-shadow:inset 3px 0 0 var(--blue)}
.rs-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.rs-pick{letter-spacing:0;text-transform:none;padding:1px 8px;border-radius:var(--r-lg);white-space:nowrap}
.rs-pick.hit{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}
.rs-pick.miss{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)}
.rs-side{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;color:var(--muted)}
.rs-side .tl{width:28px;height:22px}
.rs-side em{font:600 20px/1.1 "Barlow Condensed",sans-serif;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-side small{font-size:12px}
.rs-side b{font:700 26px/1 "Barlow Condensed",sans-serif;min-width:20px;text-align:right}
.rs-side.won{color:var(--text)}.rs-side.won b{font-weight:800}
.rs-xg{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.rs-xg.none{display:block}
.rs-bar{height:6px;border-radius:var(--r-xs);background:var(--ch);overflow:hidden}.rs-bar i{display:block;height:100%;background:var(--ca);box-shadow:2px 0 0 var(--surface)}
.rs-star{display:flex;align-items:center;gap:8px;min-width:0;padding-top:8px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.rs-star b{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-star span{white-space:nowrap}
.res-mode{margin-left:auto;font-weight:600;font-size:14px;cursor:pointer}
.res-pending{white-space:normal;min-width:240px;max-width:340px;color:var(--muted);font-size:13px;line-height:1.3}
/* Track record: model vs the betting market (marketPanel). Reuses the .calib chart text and grid styles. */
.mkt-panel{margin:0 0 24px}
.mkt-panel .summary-tiles{margin-bottom:14px}
.mkt-lead{margin:0 0 10px;max-width:72ch}
svg.mkt{max-width:720px}
.mkt .zero{stroke:var(--muted);stroke-width:1.5}
.mkt .run{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round}
.mkt .pt{fill:var(--blue);stroke:var(--surface);stroke-width:1.5}
.mkt .pt:hover{fill:var(--red)}
.mkt text.side-lab{font-size:12px;fill:var(--muted)}
/* Game page layout (viewGame): the shot map beside the team stats, top performers side by side, the pregame view last. */
.gm-shots{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:24px;align-items:start;margin:24px 0}
.gm-shots.solo{grid-template-columns:minmax(0,1fr)}
.gm-shots>.report-panel,.gm-shots>div>.report-panel{margin:0}
.gm-shots.solo .gm-stats{max-width:760px}
.gm-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0 0}
.gm-box .box-team{margin-top:0}
.gm-box h2 .tl,.box-full h3 .tl{vertical-align:-3px}
.gm-h{margin:34px 0 0}
.gm-pre{margin-top:14px}
.gm-pre.solo{max-width:820px}
.cmp-head .tl{vertical-align:-3px}
table.box-top{width:100%}
.box-full{margin-top:16px;padding-top:16px;padding-bottom:16px}
.box-full>summary{cursor:pointer;font:700 19px/1.2 "Barlow Condensed",sans-serif;color:var(--blue)}
.box-full>summary small{font:400 13px Barlow,sans-serif;color:var(--muted);margin-left:8px}
.box-full-team{border-top:3px solid var(--tc);margin-top:16px;padding-top:8px}
.box-full-team h3{font-size:19px;margin:2px 0 6px}
/* Bars inside table cells: ice time against the team's most-used skater, save percentage from .850 to 1.000. */
td.bx-toi,.bx-sv{white-space:nowrap;font-variant-numeric:tabular-nums}
.bx-track{display:inline-block;width:42px;height:6px;border-radius:var(--r-sm);background:var(--crease);margin-right:7px;vertical-align:1px;overflow:hidden}
.bx-track i{display:block;height:100%;border-radius:var(--r-sm);background:var(--tc,var(--blue))}
.bx-sv .bx-track i{background:var(--blue)}
@media (max-width:1000px){.gm-shots{grid-template-columns:minmax(0,1fr)}.gm-shots .gm-stats{max-width:none}}
@media (max-width:860px){.gm-box{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.bx-track{width:28px;margin-right:5px}}
/* Standings: points by game over the last ten (pointsStrip). */
.pstrip{display:block;margin:0 auto;overflow:visible}
.pstrip line{stroke:var(--line);stroke-width:1}
.pstrip .ps-w{fill:var(--good)}.pstrip .ps-o{fill:var(--muted)}.pstrip .ps-l{fill:var(--bad)}
/* Team page header: a band in the club's colours, the next game and the last ten results. */
.report-hero.team-band{background:linear-gradient(115deg,color-mix(in srgb,var(--tc) 32%,var(--surface)) 0,color-mix(in srgb,var(--tc2) 14%,var(--surface)) 45%,var(--surface) 72%);border-top:0}
.report-hero.team-band::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:linear-gradient(90deg,var(--tc) 0 62%,var(--tc2) 62%)}
.th-strip{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:stretch;padding-top:16px;border-top:1px solid var(--line)}
.th-strip small{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.th-next{display:grid;grid-template-columns:auto auto;gap:2px 16px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--text);text-decoration:none}
.th-next:hover{border-color:var(--blue)}
.th-next small{grid-column:1/-1;margin:0}
.th-opp{display:inline-flex;align-items:center;gap:8px;font:600 15px Barlow,sans-serif;color:var(--muted)}
.th-opp b{font:700 22px/1 "Barlow Condensed",sans-serif;color:var(--text)}
.th-opp .tl.big{width:36px;height:29px}
.th-when{font-size:13px;color:var(--muted)}
.th-p{grid-row:2/4;grid-column:2;text-align:right;font-size:13px;color:var(--muted)}
.th-p b{display:block;font:700 26px/1 "Barlow Condensed",sans-serif;color:var(--text)}
.th-last{min-width:0;flex:1}
.th-chips{display:grid;grid-template-columns:repeat(10,minmax(38px,52px));gap:4px}
.th-res{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0 5px;border-radius:var(--r-sm);background:var(--crease);border-top:3px solid var(--muted);color:var(--text);text-decoration:none;font:600 13px/1.1 "Barlow Condensed",sans-serif}
.th-res.w{border-top-color:var(--good)}.th-res.l{border-top-color:var(--bad)}
.th-res b{font-size:13px}.th-res.w b{color:var(--good)}.th-res.l b{color:var(--bad)}.th-res.o b{color:var(--muted)}
.th-res:hover{background:color-mix(in srgb,var(--blue) 14%,transparent)}
@media (max-width:640px){.th-chips{grid-template-columns:repeat(5,minmax(0,1fr))}.th-next{width:100%}}
/* Goalie cards (goalieCards). */
.gk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.gk-card{border:1px solid var(--line);border-top:3px solid var(--tc);border-radius:var(--r-lg);padding:12px 14px;background:var(--ice);min-width:0}
.gk-top{display:flex;gap:10px;align-items:center}
.gk-face{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;background:var(--crease)}
.gk-card h3{font-size:20px;margin:0 0 2px}
.gk-card h3 small{color:var(--muted);font-weight:600}
.gk-card .chip{font-size:11px;padding:0 6px}
.gk-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 8px}
.gk-nums div{display:flex;flex-direction:column;min-width:0}
.gk-nums b{font:700 24px/1 "Barlow Condensed",sans-serif}
.gk-nums span{font-size:12px;color:var(--muted);line-height:1.2;margin-top:2px}
.gk-share{height:5px;border-radius:var(--r-sm);background:var(--crease);overflow:hidden}
.gk-share i{display:block;height:100%;background:var(--tc)}
.gk-rate{font-size:12px;color:var(--muted);margin:8px 0 0}
/* Team page "Form after the latest results" (site_refresh.js): before and after as two dots on one shared scale. */
.form-bars{display:grid;gap:2px;max-width:760px}
.fb-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2fr) 104px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.fb-lab{font-size:14px;font-weight:600}
.fb-track{position:relative;height:14px;background:linear-gradient(var(--line),var(--line)) 0 50%/100% 2px no-repeat}
.fb-link{position:absolute;top:5px;height:4px;background:var(--muted);opacity:.6}
.fb-link.up{background:var(--good)}.fb-link.down{background:var(--bad)}
.fb-dot{position:absolute;top:1px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 2px var(--surface)}
.fb-dot.now{background:var(--blue)}.fb-dot.now.up{background:var(--good)}.fb-dot.now.down{background:var(--bad)}
.fb-v{text-align:right;font:600 16px/1 "Barlow Condensed",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.fb-key{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin-top:8px}
.fb-key span{display:inline-flex;align-items:center;gap:6px}
.fb-key .fb-dot{position:static;margin:0;box-shadow:none}
@media (max-width:560px){.fb-row{grid-template-columns:minmax(0,1fr) 96px;grid-template-areas:"lab v" "t t";gap:6px 10px}.fb-lab{grid-area:lab}.fb-v{grid-area:v}.fb-track{grid-area:t}}
/* Top performers fit a phone without scrolling: names wrap with the position under them, the TOI bar goes, and the
   goalie rows keep shots, goals against, save % and the decision (ice time and saves are in the full box score). */
@media (max-width:560px){
  .gm-box .box td,.gm-box .box th{padding:6px 5px}
  .gm-box .box td.l{white-space:normal;min-width:0;line-height:1.25}
  .gm-box .box-top td.l small{display:block}
  .gm-box .box-top .bx-track{display:none}
  .gm-box .box:not(.box-top) :is(th,td):is(:nth-child(2),:nth-child(4)){display:none}
}
/* Track record page: hero numbers on the boards, how forecasts are checked, then the charts (they reuse .calib). */
.rec-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--boards);color:var(--boards-text);border-radius:var(--r-lg);border-bottom:5px solid var(--red);padding:26px 28px 22px;margin:4px 0 16px}
.rec-hero::before{content:'';position:absolute;z-index:-1;right:-110px;top:-120px;width:340px;height:340px;border:4px solid rgba(200,16,46,.4);border-radius:50%}
.rec-hero::after{content:'';position:absolute;z-index:-1;right:56px;top:46px;width:12px;height:12px;border-radius:50%;background:rgba(200,16,46,.55)}
.rec-hero .eyebrow{color:#7EA6E6}
.rec-hero h1{font-size:clamp(38px,5.6vw,62px);line-height:.95;margin:6px 0 10px;letter-spacing:-.005em}
.rec-hero>p{margin:0;max-width:62ch;opacity:.8;font-size:16px}
.rec-big{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.rec-big>div{display:flex;flex-direction:column;gap:3px;padding:16px 18px 0 0}
.rec-big>div+div{padding-left:18px;border-left:1px solid rgba(255,255,255,.14)}
.rec-big strong{font:700 clamp(38px,4.8vw,58px)/1 "Barlow Condensed",sans-serif;letter-spacing:-.01em;white-space:nowrap}
.rec-big b{font-weight:600;font-size:15px;line-height:1.25}
.rec-big span{font-size:13px;opacity:.72;line-height:1.4}
.rec-steps{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;counter-reset:st}
.rec-steps li{counter-increment:st;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px}
.rec-steps li::before{content:counter(st);grid-row:span 2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--crease);color:var(--blue);font:700 16px/1 "Barlow Condensed",sans-serif}
.rec-steps b{font:700 18px/1.15 "Barlow Condensed",sans-serif;margin-top:3px}
.rec-steps span{color:var(--muted);font-size:13px;line-height:1.4}
.rec-panel{margin:0 0 24px}
.rec-lead{margin:-6px 0 14px;max-width:80ch}
.rec-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.rec-two figure{margin:0;min-width:0}
.rec-two figcaption{font:700 17px/1.2 "Barlow Condensed",sans-serif;margin-bottom:6px}
svg.rc-seasons{max-width:700px}
.rc .hit{fill:transparent}
.rc .hit:hover{fill:color-mix(in srgb,var(--text) 6%,transparent)}
.rc .band{fill:var(--blue);opacity:.13}
.rc .exp{fill:none;stroke:var(--muted);stroke-width:2;stroke-dasharray:6 5}
.rc .act{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round}
.rc .end{fill:var(--blue);stroke:var(--surface);stroke-width:2}
.rc text.lab{font-size:14px;font-weight:600;fill:var(--text)}
.rc text.lab.sub{font-weight:500;fill:var(--muted)}
.rc text.side-lab{font-size:12px;fill:var(--muted)}
.rc .ok{fill:var(--good)}
.rc .no{fill:var(--bad);opacity:.7}
.rc .zero{stroke:var(--muted);stroke-width:1.5}
.rc text.yr{font-size:13px;font-weight:600;fill:var(--text)}
.rc text.gain{font:700 15px "Barlow Condensed",sans-serif;fill:var(--text)}
.rc .db{stroke:var(--blue);stroke-width:4;stroke-linecap:round;opacity:.3}
.rc .dh{fill:var(--muted);stroke:var(--surface);stroke-width:2}
.rc .dm{fill:var(--blue);stroke:var(--surface);stroke-width:2}
.rc .dm.live{fill:var(--red)}
.rc .err{opacity:.6}
.rc .said{stroke:var(--text);stroke-width:2.5;stroke-linecap:round}
.mkt .up{fill:var(--blue);opacity:.14}
.mkt .dn{fill:var(--muted);opacity:.16}
.calib-legend i.act{height:3px;width:16px;background:var(--blue);border-radius:2px;vertical-align:3px}
.calib-legend i.exp{height:0;width:16px;border-top:2px dashed var(--muted);vertical-align:3px}
.calib-legend i.band{background:color-mix(in srgb,var(--blue) 18%,transparent)}
.calib-legend i.ok{background:var(--good);border-radius:2px}
.calib-legend i.no{background:color-mix(in srgb,var(--bad) 70%,transparent);border-radius:2px}
.calib-legend i.dm{background:var(--blue);border-radius:50%}
.calib-legend i.dm.live{background:var(--red)}
.calib-legend i.dh{background:var(--muted);border-radius:50%}
.calib-legend i.said{width:3px;height:14px;background:var(--text);vertical-align:-3px}
@media(max-width:900px){
  .rec-big{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rec-big>div:nth-child(odd){padding-left:0;border-left:0}
  .rec-big>div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.14);margin-top:14px}
  .rec-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rec-two{grid-template-columns:1fr;gap:20px}
}
@media(max-width:560px){
  .rec-hero{padding:20px 18px 18px;margin:0 -4px 14px}
  .rec-hero::before{width:220px;height:220px;right:-90px;top:-90px}.rec-hero::after{display:none}
  .rec-big>div{padding-right:10px}.rec-big>div:nth-child(even){padding-left:12px}
  .rec-big b{font-size:14px}.rec-big span{font-size:12px}
  .rec-steps{grid-template-columns:1fr;gap:8px}
  .rc text,.rc text.side-lab,.rc text.axis{font-size:17px}.rc text.lab,.rc text.yr{font-size:18px}.rc text.gain{font-size:20px}
}
/* Next steps (nextUp): a row of linked cards under a player's, goalie's or game's header. On phones it scrolls sideways. */
.nx{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;margin:0 0 24px}
.nx-card{display:grid;grid-template-columns:1fr auto;grid-template-areas:"eye eye" "main big" "sub big";align-items:center;gap:2px 12px;
  padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--r-lg);color:var(--text);text-decoration:none;min-width:0}
.nx-card:hover{border-color:var(--blue);box-shadow:0 1px 0 var(--blue)}
.nx-card small{grid-area:eye;color:var(--muted);font:600 11px/1.3 Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-main{grid-area:main;display:flex;align-items:center;gap:6px;font:700 17px/1.2 "Barlow Condensed",sans-serif;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-main .tl{flex-shrink:0}
.nx-big{grid-area:big;font:700 34px/1 "Barlow Condensed",sans-serif;letter-spacing:-.01em}
.nx-sub{grid-area:sub;color:var(--blue);font-size:13px;font-weight:600}
@media(max-width:640px){
  .nx{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;scrollbar-width:none;margin:0 -16px 20px;padding:0 16px}
  .nx::-webkit-scrollbar{display:none}
  .nx-card{flex:0 0 min(84%,300px);scroll-snap-align:start;padding:10px 12px}
  .nx-main{font-size:16px}.nx-big{font-size:30px}
}

/* Live state banner, update toast and the code-update button (site_refresh.js). */
#state-stamp{max-width:1180px;margin:10px auto 0;padding:0 16px;color:var(--muted);font-size:13px}
#state-stamp::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--good);margin-right:7px;vertical-align:1px}
#update-toast{position:fixed;bottom:20px;right:20px;max-width:min(360px,calc(100vw - 40px));background:var(--boards);color:var(--boards-text);border-left:4px solid var(--good);padding:10px 16px;border-radius:var(--r-lg);box-shadow:0 8px 30px #0005;font-size:14px;z-index:1000}
#code-update{display:flex;margin:16px auto;background:var(--blue);color:var(--surface)}
.form-moves{list-style:none;margin:0;padding:0}
.form-moves li{display:grid;grid-template-columns:1fr auto;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.form-moves li:last-child{border-bottom:0}
.form-moves b{font-variant-numeric:tabular-nums}
/* Playoff bracket (Standings > Bracket). Desktop: four columns per conference with connecting lines.
   Phones: one stacked list per round, no lines. */
.bk-lead{margin:-6px 0 6px}
.bk-key{margin:0 0 26px;font-size:13px}
.bk-conf{margin-bottom:34px}
.bk-head,.bk{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr));column-gap:30px}
.bk-head{margin:4px 0 8px;color:var(--muted);font:600 13px Barlow,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.bk{grid-template-rows:1fr 1fr;row-gap:14px}
.bk-c1{grid-column:1}.bk-c2{grid-column:2}.bk-c3{grid-column:3}.bk-c4{grid-column:4}
.bk>div{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0}
.bk-mh{display:none}
.bk-pair{display:grid;grid-template-rows:1fr 1fr;gap:10px;flex:1}
.bk-s,.bk-box{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:8px 10px;min-width:0}
.bk-s{align-self:center;display:grid;gap:3px}
.bk-t{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:6px;white-space:nowrap}
.bk-t .tm{overflow:hidden;text-overflow:ellipsis}
.bk-t b{font:600 17px/1.2 "Barlow Condensed",sans-serif}
.bk-seed{font:600 12px/1 Barlow,sans-serif;color:var(--muted);background:var(--crease);border-radius:var(--r-sm);padding:3px 0;text-align:center;cursor:help}
.bk-meta{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-bt{font:700 16px/1.2 "Barlow Condensed",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-sub{font-size:12px;color:var(--muted);margin-bottom:4px}
.bk-row{display:grid;grid-template-columns:minmax(52px,auto) minmax(0,1fr) 42px;align-items:center;gap:8px;padding:2px 0;font-size:14px}
.bk-row b{text-align:right;font-weight:600}
.bk-bar{height:6px;border-radius:var(--r-sm);background:var(--crease);overflow:hidden}
.bk-bar i{display:block;height:100%;border-radius:var(--r-sm)}
/* Connectors: each source card draws a stub to the right; each target cell draws the vertical joint and a stub in. */
.bk-s::after,.bk-in .bk-box::after,.bk-c3 .bk-box::after{content:"";position:absolute;left:100%;top:50%;width:15px;border-top:2px solid var(--line)}
.bk-in::before{content:"";position:absolute;left:-15px;top:25%;bottom:25%;border-left:2px solid var(--line)}
.bk-in::after,.bk-one::after{content:"";position:absolute;left:-15px;width:15px;top:50%;border-top:2px solid var(--line)}
.bk-c2.bk-in::before{top:calc(25% - 2.5px);bottom:calc(25% - 2.5px)}
.bk-c3.bk-in::before{top:calc(25% - 3.5px);bottom:calc(25% - 3.5px)}
.bk-c4 .bk-box{border-color:color-mix(in srgb,var(--red) 40%,var(--line))}
.bk-cup{margin-top:10px}
.bk-cupl{max-width:520px;margin:10px 0 6px}
.bk-cupl .bk-box{border:0;padding:0;background:none}
.bk-cupl .bk-bt{display:none}
@media (max-width:860px){
  .bk-head{display:none}
  .bk{display:block}
  .bk>div{display:block;margin-bottom:10px}
  .bk-mh{display:block;font-size:18px;color:var(--muted);margin:16px 0 8px}
  .bk-c1:first-child .bk-mh{margin-top:4px}
  .bk-pair{display:flex;flex-direction:column;gap:10px}
  .bk-s{align-self:stretch}
  .bk-s::after,.bk-in::before,.bk-in::after,.bk-one::after,.bk-in .bk-box::after,.bk-c3 .bk-box::after{display:none}
  .bk-t b{font-size:18px}
}

.cb-h{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
.cb-panel .panel-top+.cb-h{margin-top:4px}
.cb-table td.cb-unit{white-space:nowrap}
.cb-sep{color:var(--muted);margin:0 4px}
.cb-pos{color:var(--muted);margin-left:6px;font-size:12px}
.lm-scroll{margin-top:4px}
.lm-grid{display:block;max-width:none;font:12px Barlow,sans-serif}
.lm-name{fill:var(--text)}
.lm-bg{fill:var(--ice)}
.lm-split{stroke:var(--muted);stroke-width:1}
.lm-diag{fill:none;stroke:var(--muted);stroke-width:1}
.lm-hit{fill:transparent;cursor:pointer}
.lm-on{fill:none;stroke:var(--text);stroke-width:1.5;pointer-events:none}
.lm-detail{min-height:1.5em;margin:8px 0 4px;font-size:14px}
.lm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;color:var(--muted);font-size:13px;margin:6px 0 4px}
.lm-sizes,.lm-cols{display:inline-flex;align-items:center;gap:8px}
.lm-sizes>span{display:inline-flex;align-items:center;gap:2px}
.lm-key{fill:var(--muted)}
.lm-cols i{display:inline-block;width:110px;height:10px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--red),var(--line),var(--blue))}
/* xGF% cells tinted on the linemate grid's scale (shareFill), soft enough for the number to read on top. */
.cb-table td.cb-share{background:color-mix(in srgb,var(--sh) 46%,transparent);font-weight:600;font-variant-numeric:tabular-nums}

/* Players > Compare: two skaters, goalies or teams side by side, each stat as mirrored bars in the sides' colours. */
.cmp-mode{margin:0 0 14px}
.cmp-pick{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;margin-bottom:14px}
.cmp-pick input{width:100%;min-width:0;box-sizing:border-box}
.cmp-swap{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--r-lg);width:38px;height:38px;font-size:18px;cursor:pointer}
.cmp-swap:disabled{opacity:.4;cursor:default}
.cmp-cards{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch;margin-bottom:16px}
/* A side: a band of its colour across the top, a wash of it behind the headshot or logo. */
.cmp-card{position:relative;display:flex;align-items:center;gap:14px;padding:20px 16px 14px;border-radius:var(--r-lg);border:1px solid var(--line);overflow:hidden;
  background:linear-gradient(120deg,color-mix(in srgb,var(--tc,var(--line)) 16%,var(--surface)),var(--surface) 70%);color:var(--text);text-decoration:none;min-width:0}
.cmp-card::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--tc,var(--line))}
.cmp-card.b{flex-direction:row-reverse;text-align:right;background:linear-gradient(240deg,color-mix(in srgb,var(--tc,var(--line)) 16%,var(--surface)),var(--surface) 70%)}
.cmp-who{display:flex;flex-direction:column;gap:2px;min-width:0}
.cmp-card small{color:var(--muted);font-size:13px}
.cmp-card b{font:700 26px/1.1 "Barlow Condensed",sans-serif;overflow-wrap:anywhere}
.cmp-card:hover b{text-decoration:underline}
.cmp-card.empty{color:var(--muted);border-style:dashed;font-size:15px;background:var(--surface);justify-content:center}
.cmp-card.empty::before{content:none}
.cmp-pic{position:relative;flex-shrink:0;line-height:0}
.cmp-pic .pf{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--tc)}
.cmp-badge{position:absolute;right:-6px;bottom:-3px;width:26px;height:21px;padding:2px;box-sizing:content-box;background-color:var(--surface);background-origin:content-box;border-radius:var(--r-sm);box-shadow:0 1px 3px #0003}
.cmp-badge.chip{width:12px;height:12px;padding:0;right:0;bottom:0}
.cmp-vs{align-self:center;color:var(--muted);font:700 16px "Barlow Condensed",sans-serif}
/* Rows: the label over [A's value | A's bar growing left | B's bar growing right | B's value]. */
.cx-block+.cx-block{margin-top:20px}
.cx-sec{margin:0 0 4px;padding-bottom:6px;font:700 13px/1 Barlow,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}
.cx-row{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) minmax(64px,auto);grid-template-areas:"lab lab lab" "a bars b";gap:2px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.cx-row:last-child{border-bottom:0}
.cx-row.text{grid-template-areas:"lab lab lab" "a . b"}
.cx-lab{grid-area:lab;text-align:center;font-size:13px;color:var(--muted);font-weight:500}
.cx-v{display:flex;flex-direction:column;line-height:1.1}
.cx-v.a{grid-area:a;text-align:left}.cx-v.b{grid-area:b;text-align:right}
.cx-v b,.cx-row.text .cx-v{font:500 19px/1.15 "Barlow Condensed",sans-serif;color:var(--muted);font-variant-numeric:tabular-nums}
.cx-v.win b{font-weight:700;color:var(--text)}
.cx-v small{font-size:11px;color:var(--muted);min-height:1em}
.cx-bars{grid-area:bars;display:grid;grid-template-columns:1fr 1fr;gap:3px;height:14px}
.cx-half{position:relative;display:flex;background:var(--crease);overflow:hidden}
.cx-half.a{justify-content:flex-end;border-radius:var(--r-sm) 0 0 var(--r-sm)}
.cx-half.b{border-radius:0 var(--r-sm) var(--r-sm) 0}
.cx-half i{display:block;height:100%}
.cx-half.a i{background:var(--ca)}.cx-half.b i{background:var(--cb)}
/* Dark team colours (navy, black) lifted so they read on the dark background. */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cx-half.a i{background:color-mix(in srgb,var(--ca) 72%,#fff)}:root:not([data-theme="light"]) .cx-half.b i{background:color-mix(in srgb,var(--cb) 72%,#fff)}
  :root:not([data-theme="light"]) .cmp-card::before{background:color-mix(in srgb,var(--tc) 80%,#fff)}}
:root[data-theme="dark"] .cx-half.a i{background:color-mix(in srgb,var(--ca) 72%,#fff)}:root[data-theme="dark"] .cx-half.b i{background:color-mix(in srgb,var(--cb) 72%,#fff)}
:root[data-theme="dark"] .cmp-card::before{background:color-mix(in srgb,var(--tc) 80%,#fff)}
.cmp-meet{margin-top:20px}
.cmp-meet ul{margin:0;padding-left:18px}
.cmp-meet li{margin:4px 0}
@media(max-width:560px){.cmp-pick,.cmp-cards{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px}
  .cmp-card{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 10px 10px}.cmp-card.b{flex-direction:column;align-items:flex-end}.cmp-card b{font-size:19px}
  .cmp-pic .pf.lg{width:52px;height:52px}.cmp-pic .tl.big{width:40px;height:32px}
  .cx-row{grid-template-columns:minmax(52px,auto) minmax(0,1fr) minmax(52px,auto);gap:2px 8px}.cx-v b,.cx-row.text .cx-v{font-size:17px}.cx-bars{height:12px}}

/* Why the model thinks this: waterfall of the pregame home win chance (site_ext_explain.js). */
.xp{margin-top:24px}
.xp .panel-top{margin-bottom:4px}
.xp-intro{margin:0 0 10px;color:var(--muted);font-size:14px}
.xp-rows{display:flex;flex-direction:column}
.xp-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 74px;grid-template-areas:"lab track val" "sub sub sub";gap:3px 10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.xp-lab{grid-area:lab;font:600 15px/1.2 "Barlow Condensed",sans-serif;min-width:0}
.xp-track{grid-area:track;position:relative;height:14px;border-radius:var(--r-sm);background:var(--crease);overflow:hidden}
.xp-even{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--muted)}
.xp-bar{position:absolute;top:2px;bottom:2px;min-width:2px;border-radius:var(--r-xs);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 22%,transparent)}
.xp-v{grid-area:val;text-align:right;font:700 15px/1 "Barlow Condensed",sans-serif;white-space:nowrap;font-variant-numeric:tabular-nums}
.xp-v small{font:600 11px Barlow,sans-serif;color:var(--muted);margin-left:4px}
.xp-sub{grid-area:sub;font-size:13px;line-height:1.35;color:var(--muted)}
.xp-off .xp-lab,.xp-off .xp-v{color:var(--muted);font-weight:500}
.xp-start{border-top:0}
.xp-total{border-top:2px solid var(--text)}
.xp-total .xp-track{height:18px}
.xp-total .xp-v{font-size:17px}

/* Roster notes and glossary use the same spacing and colours as the main site. */
.x-moves{padding-left:1.25rem;line-height:1.65}.x-moves li+li{margin-top:.65rem}
.x-flag{padding:.75rem 1rem;border-left:3px solid var(--blue);background:var(--surface);line-height:1.5}
.x-roster h3{margin-top:1.5rem}.x-az{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 24px}
.x-az button,.x-az span{min-width:34px;height:34px;display:inline-grid;place-items:center;padding:0 8px;border-radius:var(--r-md);font:600 15px/1 Barlow,sans-serif}
.x-az button{border:1px solid var(--line);background:var(--surface);color:var(--blue);cursor:pointer}
.x-az button:hover{border-color:var(--blue);background:var(--crease)}
.x-az button:disabled{color:var(--muted);opacity:.5;cursor:default;background:var(--surface);border-color:var(--line)}
.x-az span{color:var(--muted);opacity:.45}
.x-gloss dl{margin:0}.x-gl-item{padding:1rem 0;border-bottom:1px solid var(--line)}
.x-gl-item dt{font-weight:700;margin-bottom:.35rem}.x-gl-item dd{margin:0;line-height:1.65}
.x-gl-group{scroll-margin-top:6rem}.x-gl-group h2{margin:1.5rem 0 .5rem}
.x-goalies th button{font:inherit;color:inherit;white-space:nowrap}.x-goalies td small{color:var(--muted)}
.x-gloss [hidden]{display:none!important}
/* Players > Goalies: goals saved above expected against shots faced, a team logo per goalie. */
.gk-chart-panel{margin-bottom:16px}.gk-chart-panel .panel-top{margin-bottom:8px}
.gk-chart{min-height:260px;margin:4px 0 8px}
.gk-chart svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none;height:auto}
.gk-grid{stroke:var(--line);stroke-width:1}.gk-grid.zero{stroke:var(--muted);stroke-dasharray:5 4;stroke-width:1.5}
.gk-tick{fill:var(--muted);font:500 12px Barlow,sans-serif}
.gk-axis{fill:var(--muted);font:600 12px Barlow,sans-serif}
.gk-quad{fill:var(--muted);font:600 12px Barlow,sans-serif;opacity:.85;text-transform:uppercase;letter-spacing:.04em}
.gk-logo{pointer-events:none}
.gk-dot{stroke:var(--surface);stroke-width:2}
.gk-ring{fill:none;stroke:var(--text);stroke-width:2;pointer-events:none}
#gk-chart a:focus{outline:none}
#gk-detail .pn{gap:6px}
@media (max-width:480px){.gk-quad{font-size:11px;letter-spacing:0}}

/* Where the season can end: fan chart on the team page's Season tab (site_ext_fanchart.js). */
.fc-chart{position:relative;min-height:250px;margin:6px 0 4px;touch-action:pan-y;border-radius:var(--r-sm)}
.fc-chart svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none}
.fc-chart:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.fc-grid{stroke:var(--line);stroke-width:1}
.fc-tick{fill:var(--muted);font:500 12px Barlow,sans-serif}
.fc-b90{fill:var(--blue);fill-opacity:.13}
.fc-b50{fill:var(--blue);fill-opacity:.26}
.fc-med{fill:none;stroke:var(--blue);stroke-width:2;stroke-dasharray:6 4}
.fc-so{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.fc-now{stroke:var(--surface);stroke-width:2}
.fc-cut{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:2 4}
.fc-cutr{stroke:var(--muted);stroke-width:3;stroke-linecap:round}
.fc-end{fill:var(--text);font:600 12px Barlow,sans-serif}.fc-end.cut{fill:var(--muted)}
.fc-cross{stroke:var(--muted);stroke-width:1}
.fc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin:4px 0 8px}
.fc-legend i{display:inline-block;width:14px;height:10px;margin-right:6px;vertical-align:-1px;border-radius:var(--r-xs)}
.fc-legend i.so{height:3px;vertical-align:3px}
.fc-legend i.b50{background:color-mix(in srgb,var(--blue) 26%,transparent)}
.fc-legend i.b90{background:color-mix(in srgb,var(--blue) 13%,transparent)}
.fc-legend i.med{height:0;border-top:2px dashed var(--blue);border-radius:0;vertical-align:3px}
.fc-legend i.cut{height:0;border-top:2px dotted var(--muted);border-radius:0;vertical-align:3px}
@media (max-width:480px){.fc-end{font-size:11px}}

.gf-grid{margin-bottom:0}
.gf-period{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px}
.gf-period:first-of-type{margin-top:4px}
.gf-list{list-style:none;margin:0;padding:0}
.gf-goal{display:grid;grid-template-columns:44px 64px minmax(0,1fr) auto 44px;gap:4px 10px;align-items:baseline;padding:8px 0 8px 10px;
  border-bottom:1px solid var(--line);border-left:3px solid var(--tc)}
.gf-goal:last-child{border-bottom:0}
.gf-so .gf-goal{grid-template-columns:64px minmax(0,1fr) auto}
.gf-time{font-variant-numeric:tabular-nums;color:var(--muted)}
.gf-team{font-weight:700;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.gf-who{min-width:0}
.gf-who small,.gf-score small{display:block;color:var(--muted);font-size:13px}
.gf-tag{margin-left:6px;font-size:11px;padding:0 6px;vertical-align:1px}
.gf-score{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.gf-clip{font-size:13px;text-align:right}
.gf-none{color:var(--muted);margin:2px 0 6px;font-size:14px}
@media (max-width:560px){
  .gf-goal{grid-template-columns:40px 58px minmax(0,1fr);padding-left:8px}
  .gf-so .gf-goal{grid-template-columns:58px minmax(0,1fr) auto}
  .gf-list:not(.gf-so) .gf-score,.gf-clip{grid-column:3;text-align:left}
  .gf-score small{display:inline;margin-left:8px}
}
.gf-stack{display:grid;gap:24px;margin:24px 0}
.gf-stack>.report-panel{margin:0}
.gf-who{display:flex;align-items:center;gap:10px}
.gf-who>span{min-width:0}
.gf-face{width:38px;height:38px;flex:none;border-radius:50%;object-fit:cover;background:var(--crease)}
/* Wide screens: the periods side by side, each goal on two lines (scorer, then score and video). */
@media (min-width:1000px){
  .gf-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
  .gf-periods .gf-per:nth-child(4){grid-column:1/-1}
  .gf-periods .gf-goal{grid-template-columns:42px 60px minmax(0,1fr)}
  .gf-periods .gf-score,.gf-periods .gf-clip{grid-column:3;text-align:left}
  .gf-periods .gf-score{display:flex;gap:10px;align-items:baseline}
  .gf-periods .gf-score small{display:inline}
  .gf-periods .gf-period:first-of-type{margin-top:4px}
}
@media (max-width:560px){.gf-face{width:30px;height:30px}}
/* Score and video share the goal's second line (narrow layouts). */
@media (max-width:560px){
  .gf-list:not(.gf-so) .gf-score{grid-column:2/4;grid-row:2}
  .gf-list:not(.gf-so) .gf-clip{grid-column:3;grid-row:2;justify-self:end;align-self:baseline}
  .gf-who{gap:8px}
}
@media (min-width:1000px){
  .gf-periods .gf-score{grid-row:2}
  .gf-periods .gf-clip{grid-row:2;justify-self:end}
}

@font-face{font-family:'PuckDelta Barlow';src:url('brand/gameimpact/Barlow-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'PuckDelta Barlow';src:url('brand/gameimpact/Barlow-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'PuckDelta Barlow Condensed';src:url('brand/gameimpact/BarlowCondensed-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
.gi-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.gi-download{background:var(--blue);color:var(--surface)}
.gi-download:disabled{opacity:.6;cursor:wait}
.gi-preview{max-width:820px;margin:20px auto;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--ice)}
.gi-preview svg{display:block;width:100%;height:auto}
.gi-status{text-align:center}
/* Folded: the card's header and its top rows, fading out above the button that opens the rest. */
.gi-preview.folded{position:relative;aspect-ratio:1080/660}
.gi-preview.folded::after{content:"";position:absolute;inset:auto 0 0;height:120px;background:linear-gradient(transparent,var(--ice));pointer-events:none}
.gi-more{text-align:center;margin:-8px 0 0}
/* Biggest impact: the game's top three Game GAR figures in a row under the scoreboard. */
.gi-stars{margin:20px 0 24px}
.gi-stars h2{font-size:22px;margin:0 0 10px}.gi-stars h2 small{font:600 13px/1 Barlow,sans-serif;color:var(--muted);margin-left:6px}
.gi-stars ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gi-stars li{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-top:4px solid var(--tc);border-radius:var(--r-lg);
  background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 14%,var(--surface)),var(--surface) 70%)}
.gi-star-n{font:700 15px/1 "Barlow Condensed",sans-serif;color:var(--muted)}
.gi-star-who{min-width:0}.gi-star-name{display:block;font:700 19px/1.1 "Barlow Condensed",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gi-star-who small{display:block;font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gi-star-who small .tl{width:16px;height:16px;vertical-align:-3px}
.gi-stars li>b{font:700 26px/1 "Barlow Condensed",sans-serif}
@media(max-width:860px){.gi-stars ol{grid-template-columns:minmax(0,1fr);gap:8px}.gi-stars li{padding:10px 12px}}
.gi-method{color:var(--muted);font-size:14px;max-width:820px;margin:12px auto 0}
.gi-method summary{cursor:pointer;font-weight:600}.gi-method p{line-height:1.5}
@media(max-width:600px){.gi-preview.folded{aspect-ratio:auto}.gi-preview.folded::after,.gi-more{display:none}.gi-panel .panel-top{align-items:flex-start;flex-direction:column;gap:12px}.gi-preview{margin:16px -8px}.gi-actions{width:100%;justify-content:space-between}}
/* Season impact (Players > Impact) */
.si-panel .panel-top{flex-wrap:wrap;gap:10px}
.si-legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0;padding:0;font-size:13px;color:var(--muted)}
.si-legend li{display:flex;align-items:center;gap:6px}
.si-legend i{display:inline-block;width:11px;height:11px;border-radius:3px}
.si-legend .si-dot-key{border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--surface)}
.si-bar{display:block}
.si-bar .si-zero{stroke:var(--muted);stroke-width:1}
.si-bar .si-dot{fill:var(--text);stroke:var(--surface);stroke-width:1.5}
.si-table td.si-bd,.si-table th.si-bd{min-width:160px}
.si-more{text-align:center;margin:14px 0 4px}
.si-bar-m{display:none}
@media (max-width:640px){.si-legend{font-size:12px}.si-table .si-x,.si-table .si-bd,.si-table .si-w{display:none}
  .si-bar-m{display:block;margin:4px 0 0 26px}.si-bar-m .si-bar{width:150px}}
/* Player and goalie pages: this season's game impact */
.gi-pl-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 14px}
.gi-pl-stats b{display:block;font:700 30px/1 "Barlow Condensed",sans-serif}
.gi-pl-stats span{font-size:13px;color:var(--muted)}
.gi-pl-bar{position:relative;height:22px;margin:2px 0}
.gi-pl-bar i{position:absolute;top:0;bottom:0;border-radius:4px;box-shadow:inset -2px 0 0 var(--surface)}
.gi-pl-zero{position:absolute;top:-3px;bottom:-3px;border-left:1px solid var(--muted)}
.gi-pl-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--surface);transform:translate(-50%,-50%)}
.gi-pl-legend{margin:10px 0 0}.gi-pl-legend b{font-weight:600}
.gi-pl-h{margin:18px 0 8px;font-size:15px}
.gi-strip{display:flex;align-items:stretch;gap:3px;height:72px;position:relative}
.gi-strip::after{content:"";position:absolute;left:0;right:0;top:var(--zero);border-top:1px solid var(--line);pointer-events:none}
.gi-strip-wrap{min-width:120px}
.gi-g{flex:1 1 0;max-width:28px;display:flex;flex-direction:column;justify-content:flex-start;position:relative;border-radius:3px}
.gi-g:hover,.gi-g:focus-visible{background:var(--crease)}
.gi-g i{position:absolute;left:15%;right:15%;border-radius:2px}
.gi-g.up i{bottom:calc(100% - var(--zero));background:var(--good)}.gi-g.down i{top:var(--zero);background:var(--bad)}
.gi-strip-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}
@media (max-width:640px){.gi-pl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gi-pl-stats b{font-size:26px}.gi-strip{gap:2px;height:64px}}


.hm-fig{margin:0}
.hm-one{max-width:560px}
.hm-fig figcaption{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;margin:0 0 6px;font-size:14px}
.hm-fig figcaption span{color:var(--muted)}
.hm-rink{display:block;width:100%;height:auto}
.hm-rink image{image-rendering:auto}
.hm-att{fill:var(--text);opacity:.35}
.hm-goal{fill:#FFD23F;stroke:#3A2A00;stroke-width:.35}
.hm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--muted);font-size:13px;margin:10px 0 4px}
.hm-legend>i{display:inline-block;width:120px;height:10px;border-radius:var(--r-sm);border:1px solid var(--line)}
.hm-key{display:inline-flex;align-items:center;gap:5px;margin-left:8px}
.hm-goal-key{display:inline-block;width:9px;height:9px;border-radius:50%;background:#FFD23F;border:1px solid #3A2A00}

.hm-few{margin:0 0 10px}
.hm-full figcaption{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.hm-full figcaption>div{display:flex;flex-direction:column;gap:2px}
.hm-cap-r{text-align:right;align-items:flex-end}

/* Home page. The games are drawn as centre ice: each half tinted with its team's colour, the red line between them
   and a faceoff circle holding the start time (the live score once the game is on). Nothing crosses the red line:
   each team's details sit on its own side, mirrored about it. Everything below uses the site's panels. */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Masthead. */
.hm-mast{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 32px;margin:4px 0 22px}
.hm-date{margin:0;color:var(--muted);font-weight:600;font-size:15px}
.hm-mast h1{font-size:clamp(42px,6.2vw,68px);line-height:.95;margin:4px 0 10px;letter-spacing:-.005em}
.hm-intro{margin:0;max-width:60ch;color:var(--muted);font-size:17px;line-height:1.45}
.hm-mast-links{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:14px}
.hm-mast-links a{font-weight:600;text-decoration:none}
.hm-mast-links a:hover{text-decoration:underline}
.hm-mast-links span{color:var(--muted);font-size:13px;margin-top:2px}

/* Rinks: the game of the night and the tiles share the ice. */
.hm-feature,.hm-tile{position:relative;isolation:isolate;overflow:hidden;color:#EEF3F8;
  background:linear-gradient(90deg,color-mix(in srgb,var(--ca) 40%,#14202D) 0%,color-mix(in srgb,var(--ca) 16%,#14202D) 49.5%,color-mix(in srgb,var(--ch) 16%,#14202D) 50.5%,color-mix(in srgb,var(--ch) 40%,#14202D) 100%)}
.hm-feature::before,.hm-tile::before{content:'';position:absolute;inset:0 auto 0 calc(50% - 3px);width:6px;background:#C8102E;z-index:-1}
.hm-feature :focus-visible,.hm-tile:focus-visible{outline-color:#EEF3F8}
/* The two clubs' crests, large and faint, one in each half of the game of the night, under the lines. */
.hm-wm{position:absolute;inset:0;z-index:-2;pointer-events:none;display:grid;grid-template-columns:1fr 1fr;place-items:center}
.hm-wm .tl{width:min(92%,440px);height:auto;aspect-ratio:5/4;opacity:.1}
.hm-wm .chip{display:none}

/* Game of the night. Blue lines just outside each team's details, on wide screens. */
.hm-feature{border-radius:var(--r-lg);padding:20px 28px 24px}
.hm-feature::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,transparent calc(50% - 384px),rgba(80,130,220,.3) calc(50% - 384px),rgba(80,130,220,.3) calc(50% - 376px),transparent calc(50% - 376px),transparent calc(50% + 376px),rgba(80,130,220,.3) calc(50% + 376px),rgba(80,130,220,.3) calc(50% + 384px),transparent calc(50% + 384px))}
.hm-tag{position:absolute;top:18px;left:24px;margin:0;font:700 17px/1.15 "Barlow Condensed",sans-serif}
.hm-tag small{display:block;font:500 13px Barlow,sans-serif;opacity:.75}
.hm-tag.right{left:auto;right:24px;text-align:right}
.hm-face{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:0 30px;align-items:start;margin-top:48px}
.hm-side{display:flex;flex-direction:column;min-width:0}
.hm-side.hm-away{align-items:flex-end;text-align:right}
.hm-side.hm-home{align-items:flex-start;text-align:left}
.hm-nick{font:700 clamp(30px,4.4vw,52px)/1 "Barlow Condensed",sans-serif;color:inherit;text-decoration:none;max-width:100%;overflow-wrap:anywhere}
.hm-nick:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.hm-rec{font-size:14px;opacity:.75;margin-top:4px}
.hm-win{font:700 clamp(60px,9vw,108px)/.9 "Barlow Condensed",sans-serif;margin-top:10px;letter-spacing:-.01em}
.hm-sub{font-size:13px;opacity:.75;margin-top:4px}
.hm-dot{align-self:center;width:118px;height:118px;border-radius:50%;border:3px solid #C8102E;background:#14202D;display:grid;place-items:center;color:inherit;text-decoration:none;
  box-shadow:0 0 0 7px color-mix(in srgb,#14202D 65%,transparent)}
.hm-dot:hover{background:#1d2c3c}
.hm-dot-in{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.hm-dot-in b{font:700 22px/1 "Barlow Condensed",sans-serif}
.hm-dot-in small{font-size:12px;opacity:.75;display:flex;align-items:center;gap:4px;white-space:nowrap}
.hm-tdot .live-dot{display:none}   /* the small dots have no room: the clock shows it is live */
.hm-po{margin-top:18px;width:min(250px,100%);display:grid;gap:6px;font-size:14px}
.hm-po-k b{font-weight:700;margin-left:4px}
.hm-po-wl{display:flex;justify-content:space-between;opacity:.85}
.hm-po-wl b{font-weight:700}
.hm-range{position:relative;display:block;height:16px;background:linear-gradient(rgba(238,243,248,.3),rgba(238,243,248,.3)) center/100% 2px no-repeat}
.hm-range-span{position:absolute;top:4px;height:8px;border-radius:var(--r-sm);background:#EEF3F8}
.hm-range-now{position:absolute;top:0;width:2px;height:16px;margin-left:-1px;background:#C8102E}
.hm-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 36px;margin-top:24px}
.hm-actions .hm-btn:first-child{justify-self:end}
.hm-actions .hm-btn:last-child{justify-self:start}
/* The two buttons match: same colour, same width, mirrored about the red line. */
.hm-btn{display:inline-block;box-sizing:border-box;width:13em;max-width:100%;padding:9px 18px;border-radius:var(--r-lg);background:#EEF3F8;color:#14202D;font-weight:600;text-align:center;text-decoration:none;white-space:nowrap}
.hm-btn:hover{background:#fff}

/* Your team (hmMine): a dark panel washed in the club's colours, its crest large and faint at the right; the record,
   the playoff chance with its last move and a line of the last days, the next game, and the way to the team page. */
.hm-mine{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:14px 28px;
  margin:4px 0 26px;padding:18px 24px;border-radius:var(--r-lg);color:#EEF3F8;
  background:linear-gradient(110deg,color-mix(in srgb,var(--tc) 46%,#14202D) 0%,color-mix(in srgb,var(--tc2) 18%,#14202D) 55%,#14202D 100%)}
.hm-mine::before{content:'';position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--tc) 0 62%,var(--tc2) 62%)}
.hm-mine-wm{position:absolute;inset:-30% 0 -30% auto;width:min(36%,360px);z-index:-1;opacity:.1;pointer-events:none}
.hm-mine-wm .tl{display:block;width:100%;height:100%}.hm-mine-wm .chip{display:none}
.hm-mine small{display:block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:3px}
.hm-mine a{color:inherit;text-decoration:none}
.hm-mine-id{display:flex;align-items:center;gap:14px;min-width:0}
.hm-mine-id .tl.big{width:62px;height:50px;flex-shrink:0}
.hm-mine-id>div{min-width:0;display:flex;flex-direction:column}
.hm-mine-name{font:700 30px/1.02 "Barlow Condensed",sans-serif;overflow-wrap:anywhere}
a.hm-mine-name:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.hm-mine-id span{font-size:14px;opacity:.75;margin-top:3px}
.hm-mine-po{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"k k" "v s" "d d";align-items:end;gap:0 12px}
.hm-mine-po small{grid-area:k}
.hm-mine-po b{grid-area:v;font:700 44px/.95 "Barlow Condensed",sans-serif;letter-spacing:-.01em}
.hm-mine-po>span{grid-area:d;font-size:13px;opacity:.8;margin-top:4px}
.hm-mine-po>span.up{color:#7EE2A8;opacity:1}.hm-mine-po>span.down{color:#FF9AA5;opacity:1}
.hm-mine-spark{grid-area:s;width:100%;max-width:120px;height:28px;align-self:center}
.hm-mine-spark polyline{fill:none;stroke:#EEF3F8;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.8}
.hm-mine-next{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 12px;padding:10px 14px;border-radius:var(--r-lg);background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.hm-mine-next:hover{background:rgba(255,255,255,.12)}
.hm-mine-next small{grid-column:1/-1}
.hm-mine-opp{display:inline-flex;align-items:center;gap:7px;font-size:14px;opacity:.85}
.hm-mine-opp b{font:700 22px/1 "Barlow Condensed",sans-serif;opacity:1}
.hm-mine-opp .tl{width:30px;height:24px}
.hm-mine-win{text-align:right;font-size:12px;opacity:.85}
.hm-mine-win b{display:block;font:700 28px/1 "Barlow Condensed",sans-serif}
.hm-mine-go{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.hm-mine-go .hm-btn{width:auto;padding:8px 18px;color:#14202D}
.hm-mine-x{font:600 13px Barlow,sans-serif;background:none;border:0;color:inherit;opacity:.7;cursor:pointer;padding:2px;text-decoration:underline}
.hm-mine-x:hover{opacity:1}
.hm-mine :focus-visible{outline-color:#EEF3F8}
@media (max-width:980px){.hm-mine{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hm-mine-go{flex-direction:row;align-items:center;justify-content:space-between}}
@media (max-width:640px){.hm-mine{grid-template-columns:minmax(0,1fr);padding:16px 16px 14px;gap:14px}.hm-mine-name{font-size:26px}.hm-mine-wm{width:60%}}

/* Follow your team (hmPickChapter): every club by division, each a button with its crest. */
.hm-pick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 28px;max-width:1180px;margin:0 auto}
.hm-pick-div h3{font:600 15px/1.2 Barlow,sans-serif;color:var(--muted);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.hm-pick-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.hm-pick-t{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid transparent;border-radius:var(--r-md);background:none;color:var(--text);font:600 15px Barlow,sans-serif;text-align:left;cursor:pointer;min-width:0}
.hm-pick-t span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-pick-t:hover{border-color:var(--line);background:var(--surface)}
.hm-pick-t:hover .hm-pick-logo{transform:scale(1.12)}
.hm-pick-logo{width:34px;height:27px;flex-shrink:0;transition:transform .15s}
@media (prefers-reduced-motion:reduce){.hm-pick-logo{transition:none}}
@media (max-width:1080px){.hm-pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.hm-pick-grid{gap:18px}.hm-pick-row{grid-template-columns:minmax(0,1fr)}.hm-pick-t{padding:6px 4px;font-size:14px}.hm-pick-logo{width:28px;height:22px}}

/* The rest of the slate. */
.hm-slate{margin:0}
.hm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:12px;margin-top:12px}
.hm-feature+.hm-tiles{margin-top:12px}
.hm-tiles:first-child{margin-top:0}
.hm-tile{display:grid;grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);grid-template-areas:"as dot hs" "af . hf";align-content:center;gap:0 14px;
  padding:12px 16px 11px;border-radius:var(--r-lg);text-decoration:none}
.hm-tile::before{inset:0 auto 0 calc(50% - 2px);width:4px}
.hm-tile:hover{filter:brightness(1.12)}
.hm-ts{display:flex;align-items:center;gap:12px;min-width:0}
.hm-ts.hm-away{grid-area:as;justify-content:flex-end}
.hm-ts.hm-home{grid-area:hs;flex-direction:row-reverse;justify-content:flex-end}
.hm-tx{display:flex;flex-direction:column;min-width:0}
.hm-away .hm-tx{align-items:flex-end}
/* Each tile is a size container: the logo takes what the tile can spare beside the abbreviation and percentage. */
.hm-tile{container-type:inline-size}
.hm-tl{width:clamp(52px,calc(50cqw - 124px),120px);height:auto;aspect-ratio:5/4;align-self:center}
.hm-tl.chip{width:10px;height:28px}
.hm-side>.tl{margin-bottom:6px}
.hm-tt{font:700 22px/1 "Barlow Condensed",sans-serif}
.hm-tp{font:700 34px/1.05 "Barlow Condensed",sans-serif}
/* The dot shares the team row, so logo, numbers and time keep one centre line; an empty footer takes no room. */
.hm-tf{font-size:12px;opacity:.85;min-height:16px;white-space:nowrap;margin-top:4px}
.hm-tf:empty{display:none}
.hm-tf b{font-weight:700}
.hm-tf.hm-away{grid-area:af;text-align:right}
.hm-tf.hm-home{grid-area:hf}
.hm-tdot{grid-area:dot;align-self:center;justify-self:center;width:62px;height:62px;border-radius:50%;border:2px solid #C8102E;background:#14202D;display:grid;place-items:center}
.hm-tdot .hm-dot-in b{font-size:15px}
.hm-tdot .hm-dot-in small{font-size:11px}
.hm-tile.is-on .hm-tp{opacity:.6}
/* A game in progress: a light laps the rink's edge like a car on a track, over a soft red glow that breathes. */
@property --hm-lap{syntax:'<angle>';inherits:false;initial-value:0deg}
.hm-tile.is-live{box-shadow:0 0 0 1px rgba(255,90,106,.45),0 0 16px 2px rgba(200,16,46,.45);animation:hm-glow 2.4s ease-in-out infinite}
.hm-tile.is-live::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;padding:3px;
  background:conic-gradient(from var(--hm-lap),transparent 0 50%,rgba(255,90,106,.3) 66%,#FF5A6A 84%,#FFF 92%,#FF5A6A 96%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:hm-lap 3s linear infinite}
@keyframes hm-lap{to{--hm-lap:360deg}}
@keyframes hm-glow{50%{box-shadow:0 0 0 1px rgba(255,90,106,.7),0 0 26px 5px rgba(200,16,46,.6)}}
@media (prefers-reduced-motion:reduce){.hm-tile.is-live,.hm-tile.is-live::after{animation:none}}

/* Dumbbell: a team's playoff chance with a loss (left end) and a win (right end); the tick is today's chance. */
.hm-db{display:grid;grid-template-columns:62px 1fr 76px;align-items:center;gap:10px;font-size:13px}
.hm-db-team{display:flex;align-items:center;gap:6px;font-weight:600}
.hm-db-team .tl{width:20px;height:16px}
.hm-db-track{position:relative;height:26px;border-radius:var(--r-sm);background:linear-gradient(var(--line),var(--line)) center/100% 2px no-repeat}
.hm-db-span{position:absolute;top:8px;height:10px;border-radius:var(--r-sm)}
.hm-db-now{position:absolute;top:3px;width:2px;height:20px;margin-left:-1px;background:var(--text)}
.hm-db-lab{position:absolute;top:5px;font-size:12px;line-height:16px;font-weight:600;padding:0 5px;white-space:nowrap}
.hm-db-lab.loss{color:var(--muted)}
.hm-db-delta{color:var(--muted);text-align:right;white-space:nowrap}

.hm-block{padding:20px 22px}
.hm-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}
.hm-h h2{margin:0;font-size:26px}
.hm-h a{font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap}
.hm-h a:hover{text-decoration:underline}
.hm-count{font:500 15px Barlow,sans-serif;color:var(--muted);margin-left:6px}
.hm-block h3{font-size:18px;margin:14px 0 6px}
.hm-cap,.hm-more{color:var(--muted);font-size:13px;margin:10px 0 0}
.hm-more a,.hm-cap a{font-weight:600;text-decoration:none}

/* Stake swings (the preview page's "What's at stake" panel, site_ext_stakes). */
.hm-swings{list-style:none;margin:0;padding:0;display:grid;gap:14px}

/* Chapters below the slate: a centred headline and one sentence, then one picture. Bands run the full width. */
.hm-ch{padding:96px 0 0}
.hm-ch.band,.hm-race,.hm-cup,.hm-results-ch{--band:var(--surface);background:var(--band);box-shadow:0 0 0 100vmax var(--band);clip-path:inset(0 -100vmax);padding:80px 0;margin-top:96px}
.hm-race{margin-top:72px}
.hm-ch.band+.hm-ch.band,.hm-race+.hm-cup,.hm-results-ch+.hm-ch{margin-top:0}
.hm-ch-head{text-align:center;max-width:780px;margin:0 auto 44px}
.hm-ch-head h2{font:700 clamp(36px,5.2vw,60px)/1.02 "Barlow Condensed",sans-serif;letter-spacing:-.005em;margin:0 0 14px}
.hm-ch-head p{margin:0 auto;max-width:62ch;font-size:19px;line-height:1.45;color:var(--muted)}
.hm-ch-more{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 30px;margin:40px 0 0}
.hm-go{font-weight:600;font-size:16px;color:var(--blue);text-decoration:none}
.hm-go::after{content:" ›"}
.hm-go:hover{text-decoration:underline}

/* The playoff race: each conference a strip of ice, red line at 50%, blue lines at 25% and 75%; each logo sits at its
   team's playoff chance, and logos too close to share a lane stack up and down (hmSwarm). */
.hm-pic{container-type:inline-size;max-width:1080px;margin:0 auto}
.hm-swarm+.hm-swarm{margin-top:30px}
.hm-swarm h3{font:600 16px/1.2 Barlow,sans-serif;color:var(--muted);margin:0 0 10px}
.hm-track,.hm-axis{--lw:clamp(20px,5.6cqw,54px);--lh:calc(var(--lw)*.86)}
.hm-track{position:relative;height:calc(var(--lanes)*var(--lh) + 28px);border-radius:calc(var(--lh) + 14px);
  background:linear-gradient(180deg,color-mix(in srgb,var(--ice) 55%,var(--surface)),var(--ice));box-shadow:inset 0 0 0 1px var(--line),inset 0 2px 6px rgba(20,32,45,.06)}
.hm-track::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  --x:calc(var(--lw)/2 + (100% - var(--lw))*.25);--y:calc(var(--lw)/2 + (100% - var(--lw))*.75);--m:calc(var(--lw)/2 + (100% - var(--lw))*.5);
  background:linear-gradient(90deg,transparent calc(var(--x) - 2px),rgba(36,87,166,.35) calc(var(--x) - 2px),rgba(36,87,166,.35) calc(var(--x) + 2px),transparent calc(var(--x) + 2px)),
    linear-gradient(90deg,transparent calc(var(--y) - 2px),rgba(36,87,166,.35) calc(var(--y) - 2px),rgba(36,87,166,.35) calc(var(--y) + 2px),transparent calc(var(--y) + 2px)),
    linear-gradient(90deg,transparent calc(var(--m) - 2px),rgba(200,16,46,.45) calc(var(--m) - 2px),rgba(200,16,46,.45) calc(var(--m) + 2px),transparent calc(var(--m) + 2px))}
.hm-pp{position:absolute;z-index:1;left:calc(var(--lw)/2 + (100% - var(--lw))*var(--p));top:calc(14px + var(--k)*var(--lh));width:var(--lw);height:calc(var(--lw)*.8);transform:translateX(-50%);border-radius:var(--r-sm);transition:transform .15s}
.hm-pp-logo{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 1.5px rgba(10,20,30,.28))}
.hm-pp-tip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(calc(-100% * var(--p)));padding:4px 9px;border-radius:var(--r-md);background:var(--boards);color:var(--boards-text);
  font:500 13px/1.2 Barlow,sans-serif;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s}
.hm-pp-tip b{font-weight:700;margin-left:3px}
.hm-pp:hover,.hm-pp:focus-visible{transform:translateX(-50%) scale(1.18);z-index:3}
.hm-pp:hover .hm-pp-tip,.hm-pp:focus-visible .hm-pp-tip{display:block;opacity:1}
.hm-axis{position:relative;height:20px;margin-top:10px;color:var(--muted);font-size:13px}
.hm-axis span{position:absolute;left:calc(var(--lw)/2 + (100% - var(--lw))*var(--p));transform:translateX(-50%)}
.hm-movers-row{text-align:center;margin-top:40px}
.hm-movers-row p{margin:0 0 12px;color:var(--muted);font-size:15px}
.hm-movers-row div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.hm-mv{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 8px;border-radius:999px;border:1px solid var(--line);background:var(--ice);color:var(--text);text-decoration:none;font-weight:600;font-size:15px}
.hm-mv b{font-weight:700}.hm-mv.up b{color:var(--good)}.hm-mv.down b{color:var(--bad)}
.hm-mv:hover{border-color:var(--blue)}

/* Who lifts the Cup: a dark band, as the rinks are. */
.hm-cup{--band:#14202D;color:#EEF3F8;background:radial-gradient(120% 90% at 50% 0%,#1D3047 0%,#14202D 60%);box-shadow:0 0 0 100vmax #14202D}
.hm-cup .hm-ch-head p{color:#9FB0C0}
.hm-cup .hm-go{color:#9CC0FF}
.hm-cup-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;max-width:1120px;margin:0 auto}
.hm-cup-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 14px 22px;border-radius:var(--r-lg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 22%,rgba(255,255,255,.05)),rgba(255,255,255,.03));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);color:inherit;text-decoration:none}
a.hm-cup-card:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.hm-cup-card.rest{background:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);justify-content:center}
.hm-cup-logo{width:76px;height:61px;margin-bottom:6px}
.hm-cup-name{font:700 21px/1.1 "Barlow Condensed",sans-serif}
.hm-cup-p{font:700 46px/1 "Barlow Condensed",sans-serif;letter-spacing:-.01em}
.hm-cup-bar{width:72%;height:4px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin:4px 0 2px}
.hm-cup-bar i{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--tc) 55%,#fff)}
.hm-cup-sub{font-size:13px;color:#9FB0C0}

/* The season's best: the leader large on a wash of his team's colour, the next three below. */
.hm-lead-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:1180px;margin:0 auto}
.hm-lead-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.hm-lead-card h3{margin:0;padding:16px 18px 0;font:600 15px/1.3 Barlow,sans-serif}
.hm-lead-card h3 a{color:var(--muted);text-decoration:none}.hm-lead-card h3 a:hover{color:var(--blue)}
.hm-lead-top{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"logo val" "who who";align-items:start;gap:14px 12px;padding:16px 18px 18px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 16%,transparent),transparent 70%)}
/* The leader's headshot, ringed in his team colour, with the team logo as a badge. */
.hm-lead-pic{grid-area:logo;position:relative;line-height:0}
.hm-lead-face{width:72px;height:72px;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--tc)}
.hm-lead-face.ini{font-size:26px}
.hm-lead-logo{position:absolute;right:-8px;bottom:-4px;width:28px;height:22px;padding:2px;box-sizing:content-box;background-color:var(--surface);background-origin:content-box;border-radius:var(--r-sm);box-shadow:0 1px 3px #0003}
.hm-lead-logo.chip{width:12px;height:12px;padding:0;right:0;bottom:0}
.hm-lead-mini{width:24px;height:24px}
.hm-lead-val{grid-area:val;display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.hm-lead-val b{font:700 52px/.9 "Barlow Condensed",sans-serif;letter-spacing:-.01em}
.hm-lead-val small{font-size:12px;line-height:1.4;color:var(--muted);margin-top:4px;max-width:16ch;min-height:2.8em}   /* two lines kept for every unit, so the names line up across the cards */
.hm-lead-who{grid-area:who;min-width:0}
.hm-lead-name{display:block;font:700 26px/1.05 "Barlow Condensed",sans-serif;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.hm-lead-name:hover{color:var(--blue)}
.hm-lead-team{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.hm-lead-card ol{list-style:none;margin:0;padding:6px 18px 14px;border-top:1px solid var(--line)}
.hm-lead-card li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;font-size:15px}
.hm-lead-card li a,.hm-lead-card li span{color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-lead-card li a:hover{color:var(--blue)}
.hm-lead-card li b{font:700 17px/1 "Barlow Condensed",sans-serif}

/* Last night's finals. */
.hm-fin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:1120px;margin:0 auto}
.hm-fin{display:flex;flex-direction:column;gap:6px;padding:14px 16px 12px;border-radius:var(--r-lg);background:var(--ice);border:1px solid var(--line);color:var(--text);text-decoration:none}
a.hm-fin[href]:hover{border-color:var(--blue)}
.hm-fin-t{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--muted);font:600 18px/1 "Barlow Condensed",sans-serif}
.hm-fin-t .tl{width:28px;height:22px}
.hm-fin-t b{font:700 26px/1 "Barlow Condensed",sans-serif}
.hm-fin-t.won{color:var(--text)}
.hm-fin-foot{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:8px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.hm-fin-foot .pick{font-size:12px}

/* Track record. */
.hm-rec-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px;align-items:center;max-width:1000px;margin:0 auto}
.hm-rec-big{display:block;font:700 clamp(84px,11vw,132px)/.9 "Barlow Condensed",sans-serif;color:var(--blue);letter-spacing:-.02em}
.hm-rec-text p{font-size:20px;line-height:1.45;margin:16px 0 0;max-width:34ch}
.hm-rec-text .hm-rec-now{font-size:16px;color:var(--muted)}
.hm-rec-now b{color:var(--text)}
.hm-record figure{margin:0}
.hm-record figcaption{font-size:13px;color:var(--muted);margin-top:8px;text-align:center}
.hm-cal{width:100%;height:auto;display:block}
.hm-cal .diag{stroke:var(--muted);stroke-dasharray:4 4}
.hm-cal .grid{stroke:var(--line)}
.hm-cal .err{stroke:var(--blue);stroke-width:2;opacity:.4}
.hm-cal circle{fill:var(--blue);stroke:var(--ice);stroke-width:2}
.hm-cal text{font:500 12px Barlow,sans-serif;fill:var(--muted);text-anchor:middle}
.hm-cal text.y{text-anchor:end}

/* Explore. */
.hm-guide ul{list-style:none;margin:0 auto;padding:0;max-width:1180px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px}
.hm-guide li{border-top:1px solid var(--line)}
.hm-guide a{display:block;padding:18px 0 22px;color:var(--text);text-decoration:none;height:100%}
.hm-guide a:hover b{color:var(--blue)}
.hm-guide b{display:block;font:700 22px/1.15 "Barlow Condensed",sans-serif;margin-bottom:4px}
.hm-guide span{display:block;color:var(--muted);font-size:15px;line-height:1.45}
.hm-guide+.note,.hm-guide+.how{margin-top:56px}
@media (prefers-reduced-motion:reduce){.hm-pp,.hm-pp-tip{transition:none}}

/* Depth as the page scrolls, tied to the scroll itself (scroll-driven animations): the masthead sinks at half the
   page's speed and fades as the slate rises over it, the crests on the game of the night sink slower than the ice
   while its logos ride a little ahead, and a glow slides down through the Cup band. Each moves while it is on screen.
   The timed reveals (parts rising into place, the race fanning out, bars and dots) are in site_ext_home.js. Browsers
   without scroll timelines, and readers who ask for less motion, see the page still. Only transforms and opacity move. */
.hm-cup-bar i{transform-origin:0 50%}
.hm-cal circle{transform-box:fill-box;transform-origin:50% 50%}
.hm-rec-big{transform-origin:0 70%}
@media (max-width:640px){.hm-rec-big{transform-origin:50% 70%}}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){
  .hm-mast{transform-origin:0 100%;animation:hm-recede linear both;animation-timeline:scroll(root);animation-range:0 320px}
  .hm-feature{view-timeline:--hm-f}
  .hm-wm .tl{animation:hm-far linear both;animation-timeline:--hm-f;animation-range:cover}
  .hm-side>.tl{animation:hm-near linear both;animation-timeline:--hm-f;animation-range:cover}
  .hm-cup{position:relative;isolation:isolate;view-timeline:--hm-cup}
  .hm-cup::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:radial-gradient(48% 38% at 50% 30%,rgba(110,160,255,.22),transparent 70%);animation:hm-glide linear both;animation-timeline:--hm-cup;animation-range:cover}
}}
@keyframes hm-recede{to{translate:0 160px;scale:.92;opacity:0}}
@keyframes hm-far{from{translate:0 -130px;scale:1.2}to{translate:0 170px;scale:1}}
@keyframes hm-near{from{translate:0 40px}to{translate:0 -50px}}
@keyframes hm-glide{from{translate:0 -38%;opacity:.3}50%{opacity:1}to{translate:0 38%;opacity:.3}}
@media (max-width:1080px){.hm-cup-row{grid-template-columns:repeat(3,minmax(0,1fr))}.hm-lead-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hm-fin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media (max-width:1179px){.hm-feature::after{display:none}}   /* too narrow for blue lines clear of the text */
@media (max-width:980px){
  .hm-mast-links{align-items:flex-start}
}
@media (max-width:640px){
  .hm-mast h1{margin-bottom:8px}
  .hm-intro{font-size:16px}
  .hm-feature{padding:14px 12px 18px}
  .hm-nick{font-size:clamp(20px,6.2vw,26px);overflow-wrap:normal}
  .hm-win{font-size:clamp(46px,14vw,60px)}
  .hm-mast-links{flex-direction:row;flex-wrap:wrap;gap:4px 16px}
  .hm-mast-links span{flex-basis:100%;margin-top:0}
  .hm-tag{top:12px;left:14px;font-size:15px}
  .hm-tag small{display:none}
  .hm-tag.right{display:none}
  .hm-face{gap:0 10px;margin-top:34px}
  .hm-dot{width:64px;height:64px;border-width:2px;box-shadow:none}
  .hm-dot-in b{font-size:15px}
  .hm-dot-in small{font-size:11px}
  .hm-dot .live-dot{display:none}
  .hm-rec{font-size:12px}
  .hm-sub{font-size:12px}
  .hm-po{font-size:12px;margin-top:12px}
  .hm-po-wl{flex-direction:column;gap:0}
  .hm-side.hm-away .hm-po-wl{align-items:flex-end}
  .hm-actions{gap:10px 20px}
  .hm-btn{width:100%;padding:8px 6px;font-size:14px}
  .hm-tile{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:0 10px;padding:10px 12px}
  .hm-ts{gap:8px}
  .hm-tdot{width:54px;height:54px}
  .hm-tp{font-size:30px}
  .hm-db{grid-template-columns:58px 1fr;gap:8px}
  .hm-db-delta{display:none}
  .hm-block{padding:16px 14px}
  .hm-ch{padding-top:64px}
  .hm-race,.hm-cup,.hm-results-ch{padding:56px 0;margin-top:64px}
  .hm-race+.hm-cup,.hm-results-ch+.hm-ch{margin-top:0}
  .hm-ch-head{margin-bottom:28px}
  .hm-ch-head p{font-size:17px}
  .hm-ch-more{margin-top:28px;gap:8px 22px}
  .hm-swarm h3{font-size:14px}
  .hm-cup-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .hm-cup-card{padding:18px 10px 16px}
  .hm-cup-logo{width:58px;height:46px}
  .hm-cup-p{font-size:38px}
  /* Leaders swipe sideways, a card at a time, the next one peeking in. */
  .hm-lead-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 8px;scroll-padding:0 16px;scrollbar-width:none}
  .hm-lead-grid::-webkit-scrollbar{display:none}
  .hm-lead-card{flex:0 0 84%;scroll-snap-align:start}
  .hm-fin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .hm-fin{padding:10px 12px}
  .hm-fin-t{grid-template-columns:24px minmax(0,1fr) auto;font-size:16px}
  .hm-fin-t .tl{width:22px;height:18px}
  .hm-fin-t b{font-size:22px}
  .hm-rec-split{grid-template-columns:minmax(0,1fr);gap:28px;text-align:center}
  .hm-rec-text p{margin-inline:auto;font-size:18px}
  .hm-guide ul{grid-template-columns:minmax(0,1fr)}
  .hm-guide a{padding:14px 0 16px}
}

/* League leaders and player game log */
.ld-filters label{color:var(--muted);font-size:14px}
.ld-filters label select{color:var(--text)}
.ld-panel .panel-top,.ld-log .panel-top{margin-bottom:14px}
.ld-rk{display:inline-block;min-width:26px;color:var(--muted);font-size:13px;font-weight:600}
.ld-table td b{font-weight:700}
.ld-at{display:inline-block;min-width:22px;color:var(--muted);font-size:13px}
.ld-total td{font-weight:600;background:var(--crease);border-top:2px solid var(--line)}
.pinned tbody tr.ld-total td:first-child{background-color:var(--crease)}
.ld-log{margin-top:24px}
.ld-panel .note{margin:14px 0 6px}
@media (max-width:640px){
  .ld-panel,.ld-log{padding:16px}
  .ld-filters label{flex:1 1 100%}
  .ld-filters label select{flex:1 1 auto}
}
/* Leaders: the top three as cards (headshot on a wash of the team colour, the number large), bars in the table. */
.ld-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px}
.ld-top{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"pic val" "who who";gap:12px 14px;align-items:center;padding:20px 18px 16px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 18%,var(--surface)),var(--surface) 70%);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.ld-top::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--tc)}
.ld-top-rk{position:absolute;top:12px;left:14px;font:700 14px/1 "Barlow Condensed",sans-serif;color:var(--muted)}
.ld-top-pic{grid-area:pic;position:relative;line-height:0;margin-left:14px}
.ld-top-pic .pf{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--tc)}
.ld-top-badge{position:absolute;right:-8px;bottom:-4px;width:26px;height:21px;padding:2px;box-sizing:content-box;background-color:var(--surface);background-origin:content-box;border-radius:var(--r-sm);box-shadow:0 1px 3px #0003}
.ld-top-badge.chip{width:12px;height:12px;padding:0;right:0;bottom:0}
.ld-top-val{grid-area:val;display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.ld-top-val b{font:700 48px/.9 "Barlow Condensed",sans-serif;letter-spacing:-.01em}
.ld-top-val small{font-size:12px;color:var(--muted);margin-top:4px}
.ld-top-who{grid-area:who;min-width:0}
.ld-top-name{display:block;font:700 24px/1.05 "Barlow Condensed",sans-serif;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.ld-top-name:hover{color:var(--blue)}
.ld-top-who small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.ld-val{white-space:nowrap}
.ld-val b{display:inline-block;min-width:36px}
.ld-bar{display:inline-block;width:72px;height:6px;margin-left:8px;border-radius:var(--r-xs);background:var(--crease);vertical-align:middle;overflow:hidden}
.ld-bar i{display:block;height:100%;background:var(--blue);border-radius:var(--r-xs)}
.ld-table .pn{gap:8px}
@media (max-width:760px){.ld-podium{grid-template-columns:minmax(0,1fr);gap:8px}
  .ld-top{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"pic who val";padding:14px 14px 12px}
  .ld-top-rk{top:8px;left:10px}.ld-top-pic{margin-left:10px}.ld-top-pic .pf.lg{width:48px;height:48px}.ld-top-val b{font-size:34px}.ld-top-name{font-size:20px}}
@media (max-width:640px){.ld-bar{width:40px;margin-left:6px}}

/* Keep long skating-board options within a small phone; the select can shrink beside its label. */
.ld-filters label{min-width:0;max-width:100%}
.ld-filters label select{min-width:0;flex:1}
/* All boards: each board's top five as a small card, the leader with a larger headshot. */
.ld-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin:0 0 16px}
.ld-grid .ld-mini{margin:0;padding:14px 16px}
.ld-mini-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.ld-mini-head h2{font-size:21px;margin:0}.ld-mini-head a{font-size:13px;font-weight:600;white-space:nowrap}
.ld-mini ol{list-style:none;margin:0;padding:0}
.ld-mini li{display:grid;grid-template-columns:18px auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line)}
.ld-mini li:first-child{border-top:0;padding:4px 8px 8px;margin:0 -8px 2px;border-radius:var(--r-md,var(--r-lg));background:linear-gradient(100deg,color-mix(in srgb,var(--tc) 16%,transparent),transparent 75%)}
.ld-mini .ld-rk{font:700 14px/1 "Barlow Condensed",sans-serif;color:var(--muted)}
.ld-mini-who{min-width:0;display:flex;flex-direction:column}
.ld-mini-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;font-size:14px}
.ld-mini li.lead .ld-mini-name{font:700 19px/1.1 "Barlow Condensed",sans-serif}
.ld-mini-who small{font-size:12px;color:var(--muted)}.ld-mini-who small .tl{width:14px;height:14px;vertical-align:-2px;margin-right:3px}
.ld-mini li>b{font:700 18px/1 "Barlow Condensed",sans-serif;white-space:nowrap}
.ld-mini li.lead>b{font-size:26px}
@media (max-width:600px){.ld-mini-who{flex-direction:row;align-items:baseline;gap:6px}.ld-mini li{padding:4px 0}.ld-mini li.lead{padding:4px 8px 6px}}

/* League pages: Team styles scatter and Playoff race lines (site_ext_league.js). */
.lg-panel .filters{margin:0 0 10px}

.lg-chart{position:relative;min-height:280px;margin:4px 0 8px}
.lg-chart svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none}
.lg-grid{stroke:var(--line);stroke-width:1}.lg-grid.mid{stroke:var(--muted);stroke-dasharray:4 4}
.lg-tick{fill:var(--muted);font:500 12px Barlow,sans-serif}
.lg-axis{fill:var(--muted);font:600 12px Barlow,sans-serif}
.lg-avg{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:5 4}
.lg-quad{fill:var(--muted);font:600 12px Barlow,sans-serif;opacity:.85;text-transform:uppercase;letter-spacing:.04em}
.lg-dot{stroke:var(--surface);stroke-width:2}
.lg-dot.many{fill-opacity:.55;stroke-width:1}
.lg-lab{fill:var(--text);font:600 11px Barlow,sans-serif;pointer-events:none}
.lg-ring{fill:none;stroke:var(--text);stroke-width:2;pointer-events:none}
#lg-style a:focus{outline:none}#lg-style a:focus circle{stroke:var(--text)}
.lg-race{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.lg-race.hot{stroke-width:3.5}.lg-race.dim,.lg-end.dim{opacity:.22}
.lg-end{cursor:pointer}.lg-end line{stroke-width:1;opacity:.6}
.lg-end text{fill:var(--text);font:600 12px Barlow,sans-serif}
.lg-end:focus{outline:none}.lg-end:focus text{text-decoration:underline}
.lg-cross{stroke:var(--muted);stroke-width:1}
.lg-hot{font-weight:700;color:var(--text)}
#lg-detail,#lg-rdetail{margin-bottom:8px}
@media (max-width:480px){.lg-quad{font-size:11px;letter-spacing:0}.lg-lab{font-size:11px}.lg-seg button{padding:5px 8px;font-size:13px}}
.lg-logo{pointer-events:none}
.lg-logo.many{opacity:.85}
/* Playoff race: a small chart per division (drawDiv). */
.lg-minis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
.lg-mini{min-width:0}
.lg-mini h3{font-size:19px;margin:0 0 2px}
.lg-mini h3 small{font:400 13px Barlow,sans-serif;color:var(--muted);margin-left:6px}
.lg-mchart{position:relative;min-height:210px;margin:2px 0 4px}
.lg-mchart svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none}
.lg-mdetail{min-height:2.8em;font-size:13px;margin-bottom:4px}
.lg-endhit{fill:transparent}
@media (max-width:760px){.lg-minis{grid-template-columns:minmax(0,1fr)}}

/* Head to head on the game preview page (site_ext_matchup.js). */
.hh{margin-top:24px}
.hh .hh-h{font-size:20px;margin:22px 0 10px;color:var(--muted)}
.hh .panel-top{margin-bottom:6px}
.hh-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin-top:18px}
.hh .hh-h+.hh-cols{margin-top:0}
.hh-col{min-width:0;border-top:3px solid var(--tc,var(--line));padding-top:10px}
.hh-col h4{margin:0 0 10px;font:700 18px/1.2 "Barlow Condensed",sans-serif}
.hh-col h4 small{font:400 13px Barlow,sans-serif;color:var(--muted);margin-left:6px}
.hh-chips{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.hh-res{display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 0 4px;border-radius:var(--r-sm);text-decoration:none;color:var(--text);background:var(--crease);border-top:3px solid var(--muted);min-width:0}
.hh-res.w{border-top-color:var(--good)}.hh-res.l{border-top-color:var(--bad)}
.hh-res b{font:700 14px/1 "Barlow Condensed",sans-serif}
.hh-res.w b{color:var(--good)}.hh-res.l b{color:var(--bad)}.hh-res.o b{color:var(--muted)}
.hh-res span{font:600 13px/1.1 "Barlow Condensed",sans-serif;white-space:nowrap}
.hh-res span small{display:block;text-align:center;font:400 11px Barlow,sans-serif;color:var(--muted)}
.hh-res em{font:400 11px/1.1 Barlow,sans-serif;font-style:normal;color:var(--muted);white-space:nowrap}
.hh-res:hover{background:color-mix(in srgb,var(--blue) 14%,transparent)}
.hh-line{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.hh-line span{display:flex;flex-direction:column;font-size:12px;color:var(--muted);line-height:1.25}
.hh-line b{font:700 21px/1.1 "Barlow Condensed",sans-serif;color:var(--text)}
.hh .cmp-row>b small{display:block;font:400 11px Barlow,sans-serif;color:var(--muted);margin-top:2px}
.hh-small{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.45}
.hh-comp{padding:5px 0;border-bottom:1px solid var(--line)}
.hh-comp:last-of-type{border-bottom:0}
.hh-comp.total{border-top:2px solid var(--line);margin-top:2px}
.hh-comp.total .hh-lab{color:var(--text);font-weight:600}
.hh-lab{font-size:13px;color:var(--muted);margin-bottom:2px}
.hh-dv{display:grid;grid-template-columns:38px 1fr 48px;gap:8px;align-items:center;font-size:13px}
.hh-dv span:first-child{font-weight:600}
.hh-dv b{text-align:right;font:600 15px/1.2 "Barlow Condensed",sans-serif}
.hh-track{position:relative;height:9px;background:var(--crease);border-radius:var(--r-sm)}
.hh-track::before{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--muted)}
.hh-track i{position:absolute;top:0;bottom:0;border-radius:var(--r-sm)}
.hh-gt td,.hh-gt th{padding:5px 8px}
.hh-gt .chip{font-size:11px;padding:0 6px;vertical-align:1px}
.hh-sub{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}
.hh-start{display:grid;grid-template-columns:48px 62px minmax(0,1fr) 52px 40px;gap:6px;align-items:baseline;padding:5px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;font-size:14px}
.hh-start:last-child{border-bottom:0}
.hh-start:hover{background:var(--crease)}
.hh-start>span:nth-child(n+4){text-align:right}
.hh-gn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.hh-gn small{font-weight:400;color:var(--muted)}
.hh-d{color:var(--muted);font-size:13px}
.hh-ser{grid-template-columns:48px minmax(0,1fr) 20px minmax(0,1fr) 30px}
.hh-ser>span:nth-child(n+3){text-align:left}
.hh-ser>span:nth-child(3){color:var(--muted);font-size:13px;text-align:center}
.hh-ser>span:last-child{color:var(--muted);font-size:12px;text-align:right}
.hh-ser .hh-w{font-weight:700}
@media (max-width:760px){
  .hh-cols{grid-template-columns:minmax(0,1fr);gap:22px}
}
@media (max-width:480px){
  .hh{padding:16px 14px}
  .hh-chips{grid-template-columns:repeat(5,minmax(0,1fr))}
  .hh-line{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hh-start{grid-template-columns:44px 56px minmax(0,1fr) 48px 36px;font-size:13px}
}
/* Season projection: one bar per team in its colour (projBlock). */
.pj-lab{font-size:13px;color:var(--muted);margin:10px 0 3px}
.pj-lab:first-child{margin-top:0}
.pj-lab small{margin-left:6px;font-size:12px}
.pj-row{display:grid;grid-template-columns:56px minmax(0,1fr) 64px;gap:8px;align-items:center;padding:2px 0}
.pj-t{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:13px}
.pj-track{position:relative;height:10px;border-radius:var(--r-sm);background:var(--crease)}
.pj-track>i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-sm)}
.pj-range>em{position:absolute;top:3px;height:4px;border-radius:var(--r-sm);opacity:.45}
.pj-range>i{width:12px!important;height:12px;top:-1px;margin-left:-6px;border-radius:50%;box-shadow:0 0 0 2px var(--surface)}
.pj-row>b{text-align:right;font:600 16px/1.1 "Barlow Condensed",sans-serif}
.pj-row>b small{display:block;font:400 11px Barlow,sans-serif;color:var(--muted)}
/* Last starts: save percentage as a bar. */
.hh-sub small{text-transform:none;letter-spacing:0;font-weight:400;margin-left:6px}
.hh-sv{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.hh-sv small{color:var(--muted);font-size:11px;min-width:34px;text-align:left}
.hh-svt{display:inline-block;width:44px;height:7px;border-radius:var(--r-sm);background:var(--crease);overflow:hidden}
.hh-svt i{display:block;height:100%;background:var(--tc,var(--blue));border-radius:var(--r-sm)}
.hh-start{grid-template-columns:48px 62px minmax(0,1fr) 140px 40px}
.hh-ser{grid-template-columns:48px minmax(0,1fr) 20px minmax(0,1fr) 30px}
.hh-ser .tl{margin-right:4px;vertical-align:-2px}
.hh-next{margin:4px 0 0;font-size:14px}
@media (max-width:480px){
  .hh-start{grid-template-columns:42px 50px minmax(0,1fr) 112px 34px}
  .hh-ser{grid-template-columns:44px minmax(0,1fr) 18px minmax(0,1fr) 26px}
  .hh-svt{width:30px}.hh-sv small{display:none}
}

/* About > Methodology (site_ext_methodology.js). */
.mt{display:flex;flex-direction:column;gap:22px}
.mt-intro{font-size:19px;line-height:1.55;max-width:68ch;margin:0}
.mt-lead{max-width:72ch;margin:6px 0 16px}
.mt-sec h2{margin:4px 0 0}
.mt-sec h3{font-size:21px;margin:22px 0 6px}
.mt-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mt-tile{background:var(--boards);color:var(--boards-text);border-radius:var(--r-lg);padding:16px 18px;border-bottom:4px solid var(--red)}
.mt-tile strong{display:block;font:700 40px/1 "Barlow Condensed",sans-serif;letter-spacing:.01em}
.mt-tile span{display:block;margin-top:6px;font-size:14px;opacity:.85;line-height:1.35}

/* Pipeline */
.mt-pipe{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;counter-reset:s}
.mt-pipe li{position:relative;background:var(--crease);border-radius:var(--r-lg);padding:16px 14px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.mt-pipe li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:34px;border:6px solid transparent;border-left:8px solid var(--red);z-index:1}
.mt-pipe b{font:700 19px/1.15 "Barlow Condensed",sans-serif}
.mt-pipe span:not(.mt-step){font-size:14px;color:var(--muted);line-height:1.4}
.mt-step{position:absolute;top:10px;right:12px;font:700 13px "Barlow Condensed",sans-serif;color:var(--muted)}
.mt-ico{width:30px;height:30px;fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Two columns that stack on phones */
.mt-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}
.mt-fig{margin:0}
.mt-rink{display:block;width:100%;max-width:440px;height:auto}
.mt-fig figcaption{font-size:14px;color:var(--muted);margin-top:8px;max-width:440px}
.mt-legend{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:600}
.mt-legend i{flex:1;max-width:220px;height:10px;border-radius:5px}
.mt-facts{display:flex;flex-direction:column;gap:12px}
.mt-fact{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:10px}
.mt-fact strong{font:700 44px/1 "Barlow Condensed",sans-serif;color:#E24A1A;min-width:2.2em}
.mt-fact span{color:var(--muted)}

/* SVG charts */
.mt-chart{position:relative;min-height:180px;margin:8px 0 4px}
.mt-chart svg{display:block;overflow:visible}
.mt-grid{stroke:var(--line);stroke-width:1}.mt-grid.zero{stroke:var(--muted);stroke-dasharray:4 4}
.mt-tick,.mt-val{fill:var(--muted);font:500 12px Barlow,sans-serif}
.mt-val{fill:var(--text);font-weight:600}
.mt-axis{fill:var(--muted);font:600 12px Barlow,sans-serif}
.mt-note{fill:var(--text);font:600 12px Barlow,sans-serif}
.mt-rowlab{fill:var(--text);font:600 14px Barlow,sans-serif}
.mt-rowval{fill:var(--text);font:700 15px "Barlow Condensed",sans-serif}
.mt-name{fill:var(--text);font:600 12px Barlow,sans-serif;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.mt-bar{fill:var(--blue);opacity:.55}.mt-bar.sure,.mt-bar.up{fill:var(--red);opacity:.8}.mt-bar:hover{opacity:1}
.mt-cut{stroke:var(--text);stroke-width:1.5;stroke-dasharray:4 3}
.mt-range{fill:var(--blue);opacity:.22}.mt-miss{fill:var(--blue)}
.mt-dot{stroke:var(--surface);stroke-width:.8}
.mt-dot:hover{stroke:var(--text);stroke-width:2}

/* Regulation / overtime / shootout bars */
.mt-ends{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.mt-endrow{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:12px;font-weight:600}
.mt-stack{display:flex;height:30px;border-radius:var(--r-md);overflow:hidden;background:var(--line)}
.mt-stack i{display:flex;align-items:center;padding:0 8px;font:600 13px Barlow,sans-serif;font-style:normal;white-space:nowrap;overflow:hidden;color:var(--surface)}
.e0{background:var(--blue)}.e1{background:var(--red)}.e2{background:var(--warn)}
.mt-keys{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--muted);margin-top:6px}
.mt-keys i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.mt-k-range{background:var(--blue);opacity:.3}.mt-k-miss{background:var(--blue)}
.mt-k-lrn{background:var(--blue)}.mt-k-tst{background:var(--red)}.mt-k-no{background:var(--line)}

/* Horizontal bars: what moves a forecast */
.mt-hbars{display:flex;flex-direction:column;gap:10px;margin:8px 0}
.mt-hbar{display:grid;grid-template-columns:190px minmax(0,1fr) 64px;align-items:center;gap:12px}
.mt-hbar span{font-weight:600}
.mt-hbar i{display:block;height:16px;border-radius:8px;background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 55%,var(--red)))}
.mt-hbar b{font:700 17px "Barlow Condensed",sans-serif;text-align:right}

/* Walk-forward grid */
.mt-wf{display:flex;flex-direction:column;gap:3px;margin-top:10px}
.mt-wf-row{display:grid;grid-template-columns:62px repeat(var(--n,12),minmax(0,1fr));gap:3px;align-items:center}
.mt-wf-row span{font-size:12px;color:var(--muted);font-weight:600}
.mt-wf-row i{display:block;height:16px;border-radius:3px;background:var(--line)}
.mt-wf-row i.lrn{background:var(--blue);opacity:.75}.mt-wf-row i.tst{background:var(--red)}
.mt-wf-head i{background:none;height:auto;font:600 10px Barlow,sans-serif;font-style:normal;color:var(--muted);text-align:center;overflow:hidden}
.mt-wf-head i:first-of-type{font-size:9px}

/* Game day timeline */
.mt-day{list-style:none;margin:10px 0 0;padding:0 0 0 22px;border-left:3px solid var(--line);display:flex;flex-direction:column;gap:16px}
.mt-day li{position:relative;display:flex;flex-direction:column;gap:2px}
.mt-day li::before{content:"";position:absolute;left:-31px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--surface);border:3px solid var(--red)}
.mt-day span{color:var(--muted);font-size:15px}
.mt-rules{padding-left:20px;max-width:76ch}.mt-rules li{margin-bottom:8px}

@media (max-width:900px){.mt-pipe{grid-template-columns:repeat(2,minmax(0,1fr))}.mt-pipe li::after{display:none}.mt-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.mt-split{grid-template-columns:1fr}.mt-hbar{grid-template-columns:120px minmax(0,1fr) 56px;gap:8px}.mt-hbar span{font-size:14px}}
@media (max-width:480px){.mt-stack i.e1,.mt-stack i.e2{font-size:0;padding:0}.mt-keys span{flex-basis:100%}.mt-intro{font-size:17px}.mt-pipe{grid-template-columns:1fr}.mt-tile strong{font-size:32px}.mt-tile{padding:12px 14px}
  .mt-endrow{grid-template-columns:84px minmax(0,1fr);font-size:14px}.mt-fact strong{font-size:36px}.mt-wf-row{grid-template-columns:50px repeat(var(--n,12),minmax(0,1fr));gap:2px}.mt-wf-row i{height:13px}}

/* My team: toggle on team pages, "Your team" strip on Upcoming, and an inset accent (no size change) on that team's cards/rows. */
.mt-toggle{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}
.mt-toggle::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--mt,var(--blue))}
.mt-toggle:hover{box-shadow:inset 0 0 0 1.5px var(--mt,var(--blue))}
.mt-toggle.on{background:var(--crease)}
.mt-toggle span{color:var(--muted);font-weight:500}
.report-links .mt-toggle{margin-left:auto}
.report-links .mt-toggle+.social-button{margin-left:0}
.mt-slot{margin:0 0 24px}
.mt-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--mt);border-radius:var(--r-lg);padding:10px 16px;margin:0 0 22px;font-size:14px}
.mt-strip+section,.mt-hint+section{margin-top:0}
.mt-k{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mt-id{min-width:0}
.mt-name{font:700 20px/1.1 "Barlow Condensed",sans-serif;color:var(--text);text-decoration:none}
.mt-name:hover{color:var(--blue)}
.mt-rec{display:flex;gap:14px;color:var(--muted)}
.mt-rec b{color:var(--text);font-weight:600}
.mt-next{color:var(--text);text-decoration:none;min-width:0}
.mt-next:hover b{color:var(--blue)}
.mt-next .mt-k{display:inline;margin-right:6px}
.mt-when{color:var(--muted)}
.mt-p{display:block;color:var(--muted)}
.mt-none{color:var(--muted)}
.mt-link{margin-left:auto;font-weight:600;text-decoration:none;white-space:nowrap}
.mt-hint{color:var(--muted);font-size:14px;margin:0 0 18px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.mt-x{font:600 13px Barlow,sans-serif;background:none;border:0;color:var(--blue);cursor:pointer;padding:2px 4px;text-decoration:underline}
/* Accent: inset shadows only, so heights, borders and padding never change. */
.gcard.mt-on,.club-card.mt-on,.sch-game.mt-on{box-shadow:inset 4px 0 0 var(--mt)}
tr.mt-on>td:first-child,tr.mt-on>th:first-child{box-shadow:inset 4px 0 0 var(--mt)}
.pinned tr.mt-on>td:first-child{box-shadow:inset 4px 0 0 var(--mt),1px 0 0 var(--line)}
@media (max-width:640px){.mt-strip{padding:10px 12px;gap:6px 16px}.mt-link{margin-left:0}}

/* Odds over time: team chart and Movers tables. */
.oh-panel{margin:24px 0}
.oh-panel .panel-top{flex-wrap:wrap;align-items:end;margin-bottom:12px}

.oh-chart{position:relative;min-height:190px;margin:4px 0 0;touch-action:pan-y;border-radius:var(--r-sm)}
.oh-chart svg{display:block;overflow:visible;user-select:none;-webkit-user-select:none}
.oh-grid{stroke:var(--line);stroke-width:1}
.oh-tick{fill:var(--muted);font:500 12px Barlow,sans-serif}
.oh-line{fill:none;stroke:var(--blue);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.oh-dot{fill:var(--blue);stroke:var(--surface);stroke-width:2}
.oh-end{fill:var(--text);font:600 13px Barlow,sans-serif}
.oh-cross{stroke:var(--muted);stroke-width:1}
.oh-tip{position:absolute;z-index:3;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:5px 10px;
  box-shadow:0 4px 16px rgba(0,0,0,.18);transform:translate(-50%,calc(-100% - 12px));white-space:nowrap;font-size:13px;color:var(--muted)}
.oh-tip strong{display:block;color:var(--text);font:700 19px/1.1 "Barlow Condensed",sans-serif}
.oh-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
.oh-panel details .scroll{max-width:560px}
.oh-spark{display:block}
.oh-spark polyline{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.oh-spark circle{fill:var(--blue);stroke:var(--surface);stroke-width:1.5}
.oh-movers td,.oh-movers th{padding:7px 8px}
.oh-movers td:last-child{padding-top:4px;padding-bottom:4px}
@media (max-width:480px){.oh-seg{display:flex;width:100%}.oh-seg button{flex:1;padding:6px 4px;font-size:13px}}

/* Weekly recap (site_ext_recap.js) */
.rc-brief{margin-bottom:16px}
.rc-text{margin:0;padding-left:1.1em;display:grid;gap:6px;max-width:80ch}
.rc-text li{line-height:1.45}
.rc-partial{background:var(--crease);border-radius:var(--r-lg);padding:8px 12px;color:var(--text);max-width:none}
.rc-moves{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:4px 18px}
.rc-moves h3,.rc-h3{font:600 16px/1.2 "Barlow Condensed",sans-serif;margin:4px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.rc-moves table{width:100%}
.rc-moves td{padding:5px 8px;white-space:nowrap}
.rc-game a{white-space:nowrap}
.rc-game .won{font-weight:700}
/* The week's finals as score cards, and standings points gained as bars. */
.rc-week{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px;align-items:start;margin:0 0 24px}
.rc-week>.report-panel{margin:0}
.rc-day{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.rc-games .panel-top+.rc-day{margin-top:2px}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}
.rc-g{display:flex;flex-direction:column;gap:3px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-md,var(--r-lg));background:var(--ice);color:var(--text);text-decoration:none;min-width:0}
.rc-g:hover{border-color:var(--blue)}
.rc-g.up{border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
.rc-g.big{box-shadow:inset 3px 0 0 var(--red)}
.rc-side{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center;font:600 16px/1.15 "Barlow Condensed",sans-serif;color:var(--muted)}
.rc-side em{font-style:normal}
.rc-side b{font-size:18px}
.rc-side.won{color:var(--text)}.rc-side.won b{font-weight:800}
.rc-foot{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--muted);margin-top:1px}
.rc-up{color:var(--red);font-weight:700}
.rc-pts{display:grid;gap:1px}
.rc-pt{display:grid;grid-template-columns:62px minmax(0,1fr) 22px 44px;gap:8px;align-items:center;padding:2px 0;color:var(--text);text-decoration:none;font-size:13px}
.rc-pt:hover{background:var(--crease)}
.rc-pt-t{display:inline-flex;align-items:center;gap:5px;font-weight:600}
.rc-pt-bar{height:12px;border-radius:var(--r-sm);background:var(--crease);overflow:hidden}
.rc-pt-bar i{display:block;height:100%;border-radius:var(--r-sm)}
.rc-pt b{text-align:right;font:700 16px/1 "Barlow Condensed",sans-serif}
.rc-pt small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
@media (max-width:900px){.rc-week{grid-template-columns:minmax(0,1fr)}}
@media (max-width:420px){.rc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* The week in four items on the Results page. */
.rc-teaser{margin:0 0 22px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.rc-t-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.rc-t-head h2{font-size:22px;margin:0}.rc-t-head a{font-weight:600;white-space:nowrap}
.rc-t-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px}
.rc-t-item{display:flex;flex-direction:column;gap:3px;min-width:0}
.rc-t-item>a,.rc-t-item>span:not(.rc-t-k){font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-t-k{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.rc-t-item small{font-size:13px;color:var(--muted)}
@media (max-width:860px){.rc-t-items{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-t-item>a,.rc-t-item>span:not(.rc-t-k){white-space:normal}}


/* Schedule strength (team page section, Standings > Schedule strength). */
.ss-tiles{margin:6px 0 10px}
.ss-tiles span b{color:var(--text);font-weight:700}
.ss-h{margin:14px 0 8px;font:700 18px/1.2 "Barlow Condensed",sans-serif}
.ss-next{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ss-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:66px;padding:4px 8px;border-radius:var(--r-lg);border:1px solid var(--line);
  color:var(--text);text-decoration:none;line-height:1.15}
.ss-chip small{font-size:11px;color:var(--muted)}
.ss-chip b{font:700 15px/1.1 "Barlow Condensed",sans-serif;white-space:nowrap}
.ss-chip:hover b,.ss-chip:focus-visible b{text-decoration:underline}
.ss-chip:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.ss-chip .ss-b2b{margin-top:1px}
.ss-hard{background:color-mix(in srgb,var(--bad) 20%,var(--surface));border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}
.ss-mid{background:var(--surface)}
.ss-easy{background:color-mix(in srgb,var(--good) 18%,var(--surface));border-color:color-mix(in srgb,var(--good) 55%,var(--line))}
.ss-b2b{display:inline-block;font:700 11px/1 Barlow,sans-serif;letter-spacing:.04em;padding:2px 4px;border-radius:var(--r-sm);background:var(--crease);color:var(--blue)}
.ss-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:10px 0 0;font-size:12px;color:var(--muted)}
.ss-key{display:inline-block;width:14px;height:10px;border-radius:var(--r-sm);border:1px solid var(--line);vertical-align:middle;margin-left:4px}
.ss-legend .ss-key:first-child{margin-left:0}
.ss-cell{display:inline-block;min-width:44px;padding:1px 6px;border-radius:var(--r-sm);border:1px solid transparent;font-variant-numeric:tabular-nums}
.ss-cell.ss-mid{background:transparent}
.ss-table td{font-variant-numeric:tabular-nums}
@media (max-width:480px){.ss-chip{min-width:58px;padding:3px 6px}.ss-chip b{font-size:14px}}
/* Standings > Schedule strength: the road ahead. */
.ss-road{padding:18px 22px 16px;margin-bottom:16px}
.ss-axis{display:grid;grid-template-columns:1fr auto 1fr;margin:0 0 8px calc(28px + 76px + 12px);margin-right:56px;font-size:12px;font-weight:600;color:var(--muted)}
.ss-axis span:nth-child(2){text-align:center}.ss-axis span:last-child{text-align:right}
.ss-rows{display:grid;gap:2px}
.ss-row{display:grid;grid-template-columns:28px 76px minmax(0,1fr) 44px;gap:12px;align-items:center;height:30px;padding:0 4px;border-radius:var(--r-sm);color:var(--text);text-decoration:none}
.ss-row:hover{background:var(--crease)}
.ss-rk{font-size:13px;color:var(--muted);text-align:right}
.ss-tm{display:flex;align-items:center;gap:8px;font-weight:600}
.ss-track{position:relative;height:100%;background:linear-gradient(var(--line),var(--line)) 50% 0/1.5px 100% no-repeat}
.ss-bar{position:absolute;top:8px;bottom:8px;border-radius:var(--r-xs)}
.ss-bar.hard{background:color-mix(in srgb,var(--bad) 75%,transparent)}
.ss-bar.easy{background:color-mix(in srgb,var(--good) 75%,transparent)}
.ss-dot{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 2.5px var(--text)}
.ss-row>b{font:700 17px/1 "Barlow Condensed",sans-serif;text-align:right}
.ss-key-line{display:flex;flex-wrap:wrap;gap:6px 22px;margin:12px 0 0;font-size:13px;color:var(--muted)}
.ss-key-line span{display:inline-flex;align-items:center;gap:6px}
.ss-key-line .ss-bar{position:static;display:inline-block;width:14px;height:10px}
.ss-key-line .ss-dot{position:static;display:inline-block;margin:0}
.ss-more{max-width:none;margin-top:4px}
.ss-more[open] summary{margin-bottom:10px}
@media (max-width:640px){.ss-road{padding:14px 10px 12px}.ss-row{grid-template-columns:20px 58px minmax(0,1fr) 36px;gap:8px}.ss-axis{margin-left:calc(20px + 58px + 8px + 4px);margin-right:44px;font-size:11px}.ss-axis span:nth-child(2){display:none}.ss-axis{grid-template-columns:1fr 1fr}}

/* Schedule tab: day picker, quick day chips and one card per game, the same card as Upcoming. */
.sch-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.sch-step{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--text);text-decoration:none;font-weight:600;white-space:nowrap;min-height:40px}
.sch-step:hover{border-color:var(--blue);color:var(--blue)}
.sch-controls input[type=date]{flex:0 1 190px;min-width:0}
.sch-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.sch-chips a{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap}
.sch-chips a:hover{border-color:var(--blue)}
.sch-chips a[aria-current="page"]{background:var(--blue);border-color:var(--blue);color:var(--surface)}
.sch-count{margin:0 0 10px}
.sch-list{margin-bottom:16px}
/* Cards are the Upcoming page's (.gcard); only what that card never shows is styled here. */
.sch-state{display:inline-flex;align-items:baseline;gap:6px;color:var(--muted);font-size:14px;white-space:nowrap}
.sch-state .chip{font-size:11px;padding:0 6px}
.sch-game span.side{color:var(--text)}
/* No forecast: the bar's place, empty, with what is known written in it. */
.sch-none{height:34px;border-radius:999px;background:var(--crease);display:flex;align-items:center;justify-content:center;padding:0 12px;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:640px){.sch-controls{flex-wrap:nowrap;gap:8px}.sch-controls input[type=date]{flex:1 1 0}.sch-step{padding:8px 12px}}

/* Score effects: 5-on-5 xG share by score state (site_ext_scoreeffects.js). */
.se-chart{margin:6px 0 4px}
.se-row{display:grid;grid-template-columns:72px minmax(0,1fr) 128px;gap:10px;align-items:center;padding:6px 0;border-radius:var(--r-sm)}
.se-row[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.se-row[tabindex]:hover{background:var(--crease)}
.se-lab{font-weight:600;font-size:14px}
.se-track{position:relative;height:22px;background:var(--crease);border-radius:var(--r-sm)}
.se-track.bare{background:none;height:14px}
.se-track i{position:absolute;top:50%;transform:translate(-50%,-50%)}
.se-mid{left:50%;width:0;height:100%;border-left:1px dashed var(--muted)}
.se-lg{width:12px;height:12px;border:2px solid var(--muted);border-radius:50%;background:var(--surface);box-sizing:border-box}
.se-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--surface);box-sizing:content-box}
.se-track em{position:absolute;transform:translateX(-50%);font:500 12px Barlow,sans-serif;color:var(--muted);font-style:normal}
.se-num{font-size:14px;white-space:nowrap}
.se-num b{font-size:16px}
.se-num small{display:block;color:var(--muted);font-size:12px}
.se-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin:6px 0 8px}
.se-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-sizing:border-box}
.se-legend i.lg{border:2px solid var(--muted);background:var(--surface)}
@media (max-width:480px){.se-row{grid-template-columns:62px minmax(0,1fr) 92px;gap:8px}.se-num small{font-size:11px}}

.sc-scroll{margin-top:4px}
.sc-chart{min-width:680px;padding:4px 10px 8px 0}
.sc-axis,.sc-team{display:grid;grid-template-columns:124px minmax(0,1fr)}
.sc-axis>span,.sc-names{position:sticky;left:0;z-index:2;background:var(--surface)}
.sc-ticks{position:relative;height:20px;border-bottom:1px solid var(--line)}
.sc-ticks span{position:absolute;top:0;text-align:center;font-size:12px;font-weight:600;color:var(--muted);border-left:1px solid var(--line)}
.sc-ticks span:first-child{border-left:0}
.sc-head{display:flex;align-items:center;gap:6px;margin:12px 0 2px;padding-left:10px;font-weight:700;font-size:14px;position:sticky;left:0;width:max-content}
.sc-sw,.sc-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--r-xs)}
.sc-names{padding-left:10px}
.sc-name,.sc-group{height:13px;line-height:13px;font-size:11px;white-space:nowrap;overflow:hidden}
.sc-name{display:flex;justify-content:space-between;gap:6px;padding-right:8px}
.sc-name span{overflow:hidden;text-overflow:ellipsis}
.sc-name small{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.sc-group{color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:11px}
.sc-track{display:block;width:100%;cursor:crosshair;background:linear-gradient(var(--line),var(--line)) 0 0/100% 1px no-repeat}
.sc-up{opacity:.13}
.sc-period{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.sc-goal{stroke-width:2}
.sc-halo{stroke:var(--surface);stroke-width:4}
.sc-gmark{position:absolute;bottom:-5px;width:9px;height:9px;margin-left:-5px;border-radius:50%;border:1.5px solid var(--surface);z-index:1}
.sc-on{fill:none;stroke:var(--text);stroke-width:1.5}
.sc-detail{min-height:1.5em;margin:8px 0 4px;font-size:14px}
.sc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin:6px 0 4px}
.sc-legend span{display:inline-flex;align-items:center;gap:5px}
.sc-legend i.sc-key-goal{width:2px;height:12px;border-radius:0;background:var(--text);box-shadow:0 0 0 1px var(--surface)}
.sc-legend i.sc-key-up{background:var(--muted);opacity:.3}

/* Shot map (site_ext_shotmap.js): rink lines stay recessive so the shots carry the picture. */
.sm-panel{margin-top:20px}
.sm{--a:var(--al);--h:var(--hl);--n:var(--muted)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sm{--a:var(--ad);--h:var(--hd)}}
:root[data-theme="dark"] .sm{--a:var(--ad);--h:var(--hd)}
.sm-ends{display:flex;justify-content:space-between;gap:12px;font:600 15px/1.2 "Barlow Condensed",sans-serif;color:var(--text);margin:4px auto 6px;max-width:880px}
.sm-ends i{display:inline-block;width:10px;height:10px;border-radius:50%;margin:0 6px;vertical-align:0}
.sm-ends i.a{background:var(--a)}.sm-ends i.h{background:var(--h)}
.sm-rink{max-width:880px;margin:0 auto}
.sm-rink svg{display:block;width:100%;height:auto;touch-action:manipulation;cursor:crosshair}
.sm-ice{fill:var(--ice)}
.sm-boards{fill:none;stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke}
.sm-red,.sm-blue{opacity:.4}.sm-red{fill:var(--red)}.sm-blue{fill:var(--blue)}
.sm-goal,.sm-fo{fill:none;stroke:var(--red);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.45}
.sm-cc{fill:none;stroke:var(--blue);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.45}
.sm-spot{fill:var(--red);opacity:.45}.sm-spot.center{fill:var(--blue)}
.sm-crease{fill:var(--crease);stroke:var(--red);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.8}
.sm-net{fill:none;stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}
.sm-dot{vector-effect:non-scaling-stroke}
.sm-dot.a{--c:var(--a)}.sm-dot.h{--c:var(--h)}.sm-dot.n{--c:var(--n)}
.sm-dot.g{fill:var(--c);stroke:var(--surface);stroke-width:1.5px}
.sm-dot.s{fill:color-mix(in srgb,var(--c) 30%,transparent);stroke:var(--c);stroke-width:1.5px}
.sm-dot.m{fill:none;stroke:var(--c);stroke-width:1.25px;stroke-opacity:.85}
.sm-dot.b{fill:none;stroke:var(--c);stroke-width:1.25px;stroke-dasharray:2 2;stroke-opacity:.75}
.sm-live-tag{display:inline-block;margin:0 0 10px;padding:3px 10px;border-radius:var(--r-lg);background:var(--crease);color:var(--blue);font-size:13px;font-weight:600}
.sm-sel{fill:none;stroke:var(--text);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}
.sm-detail{min-height:3em;margin:8px auto 4px;max-width:880px;font-size:15px}
.sm-legend{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;color:var(--muted);font-size:13px;margin:0 auto 14px;max-width:880px}
.sm-legend>span{display:inline-flex;align-items:center;gap:6px}
.sm-sizes{gap:4px!important}
.sm-key{display:inline-block;vertical-align:middle;overflow:visible}
table.sm-tot{width:100%}
table.sm-tot td,table.sm-tot th{padding:6px 10px;font-size:14px}
.sm-list{margin-top:12px}
.sm-list summary{cursor:pointer;color:var(--blue);font-weight:600;margin-bottom:8px}
.sm-list table td,.sm-list table th{padding:5px 9px;font-size:13px;white-space:nowrap}
@media (max-width:520px){.sm-ends{font-size:14px}.sm-detail{font-size:14px}}

/* Skating panel (player pages): NHL EDGE values, league average and percentile meter. */
.sk-head,.sk-row{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(120px,170px);gap:12px;align-items:center}
.sk-head{font-size:12px;color:var(--muted);padding-bottom:6px;border-bottom:1px solid var(--line)}
.sk-head span:nth-child(2),.sk-avg{text-align:right}
.sk-row{padding:10px 0;border-bottom:1px solid var(--line)}
.sk-row>div{min-width:0}
.sk-label{display:block;font-size:13px;color:var(--muted)}
.sk-row strong{font:700 22px/1.1 "Barlow Condensed",sans-serif;font-variant-numeric:tabular-nums}
.sk-row small{font-size:12px;color:var(--muted)}
.sk-avg{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.sk-rank{display:flex;align-items:center;gap:8px}
.sk-meter{flex:1;height:8px;border-radius:var(--r-sm);background:var(--line);overflow:hidden}
.sk-meter i{display:block;height:100%;border-radius:var(--r-sm);background:var(--blue)}
.sk-pct{min-width:24px;text-align:right;font:700 16px/1 "Barlow Condensed",sans-serif;font-variant-numeric:tabular-nums}
.sk-pct.none{color:var(--muted)}
.sk-zones{display:flex;height:26px;border-radius:var(--r-lg);overflow:hidden;margin:16px 0 4px;font:600 12px/26px Barlow,sans-serif;color:#fff}
.sk-zones span{text-align:center;white-space:nowrap;overflow:hidden}
.sk-zones .oz{background:var(--blue)}
.sk-zones .nz{background:color-mix(in srgb,var(--muted) 70%,var(--surface));color:var(--text)}
.sk-zones .dz{background:var(--red)}
.sk-zone-avg{margin:0 0 6px;font-size:12px;color:var(--muted)}
@media(max-width:560px){.sk-head,.sk-row{grid-template-columns:minmax(0,1fr) 64px 96px;gap:8px}.sk-row strong{font-size:20px}}
/* Players > Skating leaderboards (reuse the Leaders table styles). */
.sk-when{display:block;font-size:11px;color:var(--muted);font-weight:400}
/* Skating boards: every skater as a dot along the value (beeswarm), the leaders labelled, the median dashed. */
.sk-dist{margin:0 0 6px;min-height:80px}
.sk-dist svg{display:block;overflow:visible;height:auto;user-select:none;-webkit-user-select:none}
.sk-dot{fill:color-mix(in srgb,var(--muted) 60%,var(--surface))}
.sk-dot.lead{fill:var(--blue)}.sk-dot.dim{opacity:.45}.sk-dot.team{stroke:var(--surface);stroke-width:1}
.sk-axis{stroke:var(--line)}.sk-med{stroke:var(--muted);stroke-dasharray:4 4}
.sk-tick{fill:var(--muted);font:500 12px Barlow,sans-serif}
.sk-lead-lab{fill:var(--text);font:600 12px Barlow,sans-serif}
.sk-lead-line{stroke:var(--blue);stroke-width:1;opacity:.6}
.sk-ring{fill:none;stroke:var(--text);stroke-width:2;pointer-events:none}
.sk-detail{margin-bottom:14px}.sk-detail .pn{gap:6px}

.stt-line{color:var(--muted);font-size:14px;margin:10px 0 0}
.stt-table th button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;white-space:nowrap}
#stt-root .filters{margin:0 0 10px}
/* Standings > Special teams: the map of both units, and rank-shaded rate cells. */
.st-map-panel{margin-bottom:16px}
.st-map{width:100%;height:auto;display:block;overflow:visible}
.st-map .st-grid{stroke:var(--line)}
.st-map .st-avg{stroke:var(--muted);stroke-dasharray:5 5;stroke-width:1.5}
.st-map .st-tick{font:500 13px Barlow,sans-serif;fill:var(--muted)}
.st-map .st-quad{font:700 15px "Barlow Condensed",sans-serif;fill:var(--muted);opacity:.8;letter-spacing:.02em}
.st-map .st-axis{font:600 13px Barlow,sans-serif;fill:var(--muted)}
.st-map image{filter:drop-shadow(0 1px 1.5px rgba(10,20,30,.25));transition:transform .12s;transform-box:fill-box;transform-origin:center}
.st-map a:hover image,.st-map a:focus image{transform:scale(1.25)}
.stt-rank{display:inline-block;min-width:54px;padding:2px 6px;border-radius:var(--r-sm)}
@media (max-width:640px){.st-map .st-tick,.st-map .st-axis{font-size:17px}.st-map .st-quad{font-size:19px}}
@media (prefers-reduced-motion:reduce){.st-map image{transition:none}}


.tr-chart{width:100%;height:auto;display:block;margin:8px 0 4px}
.tr-chart text{font:12px Barlow,system-ui,sans-serif;fill:var(--muted)}
.tr-grid{stroke:var(--line)}.tr-grid.mid{stroke:var(--muted);stroke-dasharray:4 4}
.tr-line{fill:none;stroke-width:2.5;stroke-linejoin:round}
.tr-line.xg{stroke:var(--blue)}.tr-line.gl{stroke:var(--red)}
.tr-dot{stroke:var(--surface);stroke-width:1.5;cursor:help}.tr-dot.xg{fill:var(--blue)}.tr-dot.gl{fill:var(--red)}
.tr-dot:hover,.tr-dot:focus{stroke:var(--text);outline:none}
.tr-res.W{fill:var(--good)}.tr-res.L{fill:var(--bad)}.tr-res.OTL{fill:var(--muted)}
.tr-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);font-size:13px;margin:4px 0 8px}
.tr-legend i{display:inline-block;width:12px;height:3px;margin-right:6px;vertical-align:3px}
.tr-legend i.xg{background:var(--blue)}.tr-legend i.gl{background:var(--red)}
.tr-legend i.res{width:6px;height:10px;border-radius:var(--r-xs);vertical-align:-1px}
.tr-legend i.W{background:var(--good)}.tr-legend i.L{background:var(--bad)}.tr-legend i.OTL{background:var(--muted)}
.tr-sparks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px}
.tr-spark{margin:0}
.tr-spark figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:14px;color:var(--muted)}
.tr-spark figcaption b{font-size:22px;color:var(--text);margin-left:auto}
.tr-spark figcaption small{width:100%;text-align:right}
.tr-spark svg{width:100%;height:56px;display:block}
.tr-spark .tr-line{stroke-width:2;vector-effect:non-scaling-stroke}


