/* boxscore.css (2026-10-25): NHL full box score tab (public/boxscore.js). Same tokens as stats.css: 4/8 grid, 11px floor, tabular numbers, team colour only as chips / bar fills / <=20% tints.
   Box Score tab on an NHL game shows only #nbox (the older Gamecast cards stay on their own tabs). */
.stage[data-nhlbox][data-tab="box"]:not(.pregame):not(.home):not(.mock)>:not(.scorebug):not(.btabs):not(#nbox){display:none!important}
/* 2026-10-25 fix: the pregame page has no tab bar, so a saved "Box Score" tab choice must never hide the pregame cards (that left the whole page blank) */
.gcbox{min-width:0}
.gcbox>*{min-width:0}
.gcbox .card{cursor:default}
.gcbox .card:hover{border-color:var(--line)}
.gcbox .tgrid2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.gcbox .bxtop{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
@media (max-width:1180px){.gcbox .bxtop{grid-template-columns:minmax(0,1fr)}}
.gcbox .pl small,.gcbox .pbtn small{font-size:11px;color:var(--gc-ink-4,#8b96a5);font-weight:500}
/* score by period */
.bxlinet{table-layout:auto}
.bxlinet th,.bxlinet td{text-align:center;padding:8px 10px;min-width:44px}
.bxlinet th.pl,.bxlinet td.pl{text-align:left;min-width:96px}
.bxlinet td.pl{display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.04)}
.bxlinet td.tt{font-weight:800;color:var(--gc-ink,#e6edf3)}
.bxlinet tr.bxsec td{padding:10px 10px 4px;border-bottom:0}
.bxlg{width:22px;height:22px;object-fit:contain;flex:none;display:inline-block}
.bxupd{margin-top:8px;min-height:15px}
.bxlive{color:#fff;background:var(--gc-live,#ef4444);border-color:transparent}.bxlive::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;font:0/0 a}
.bxlive[hidden]{display:none}
/* team stats comparison (reuses .cmp2 / .bar2 from stats.css) */
.bxcmp .cmphead .a,.bxcmp .cmphead .h{display:flex;align-items:center}.bxcmp .cmphead .h{justify-content:flex-end}
.bxcmp .cmp2 .v{min-width:0;white-space:nowrap}
/* team toggle */
.bxseg{display:inline-flex;gap:2px;padding:3px;border-radius:var(--gc-r-pill,999px);background:var(--gc-surface-2,#1c222b);border:1px solid var(--gc-hair,rgba(255,255,255,.12));align-self:flex-start}
.bxseg[hidden]{display:none}
.bxseg button{all:unset;cursor:pointer;font:700 12px/1 var(--gc-body,Inter,sans-serif);letter-spacing:var(--gc-track-label,.06em);text-transform:uppercase;color:var(--gc-ink-3,#9aa5b4);padding:8px 14px;border-radius:var(--gc-r-pill,999px)}
.bxseg button:hover{color:#fff}.bxseg button.on{background:var(--gc-accent,var(--slate-green));color:var(--slate-green-ink)}
.bxseg button:focus-visible{outline:none;box-shadow:var(--gc-focus)}
.gcbox[data-team=away] .bxs-team[data-side=home],.gcbox[data-team=home] .bxs-team[data-side=away]{display:none}
/* team player tables */
.bxs-team{padding:0!important;overflow:hidden}
.bxs-team .bxh{padding:12px 16px;font-size:14px;gap:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 22%,transparent),transparent 70%)}
.bxs-team .bxh-t{display:flex;align-items:center;gap:10px;min-width:0}.bxs-team .bxh-t b{font:800 15px/1.1 var(--gc-disp,var(--disp));letter-spacing:var(--gc-track-disp,.02em);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bxrec{font-size:11px;color:var(--gc-ink-4,#8b96a5);font-weight:600;letter-spacing:.04em}
.bxs-team [data-part][hidden]{display:none}
.bxs-team [data-part=goalies]{border-top:1px solid var(--gc-hair,rgba(255,255,255,.08))}
.bxs-scroll{overflow:auto;max-height:min(90vh,900px);scrollbar-width:thin}
.bxtbl{border-collapse:separate;border-spacing:0;width:100%;min-width:max-content}
.bxtbl th,.bxtbl td{padding:6px 5px;min-width:32px;font-size:12px}
.bxtbl thead th{position:sticky;top:0;z-index:2;background:var(--gc-surface,#161b22);border-bottom:1px solid var(--gc-hair,rgba(255,255,255,.12));cursor:help}
.bxtbl thead th.pl{z-index:3;cursor:default}
.bxtbl th.pl,.bxtbl td.pl{position:sticky;left:0;z-index:1;background:var(--gc-surface,#161b22);min-width:156px;max-width:200px;text-align:left;box-shadow:1px 0 0 rgba(255,255,255,.06)}
.bxtbl td.pl .bxp{max-width:200px;gap:8px;white-space:nowrap}
.bxtbl .bxn{overflow:hidden;text-overflow:ellipsis;min-width:0}
.bxdec{font-style:normal;font:800 11px/1 var(--gc-body,Inter,sans-serif);color:var(--slate-green-ink);background:var(--gc-accent,var(--slate-green));border-radius:4px;padding:3px 5px;margin-left:2px}
.bxdec[hidden]{display:none}
.bxtbl th.drv,.bxli.drv b{text-decoration:underline dotted;text-underline-offset:3px}
.bxtbl tr.bxsec td{background:var(--gc-surface-2,#1c222b);color:var(--gc-ink-4,#8b96a5);font:700 11px/1 var(--gc-body,Inter,sans-serif);letter-spacing:var(--gc-track-label,.06em);text-transform:uppercase;padding:8px 10px;text-align:left}
.bxtbl tr.bxsec td.pl{position:static;box-shadow:none}
.bxtbl tr.tot td{border-top:1px solid var(--gc-hair,rgba(255,255,255,.12));background:var(--gc-surface-2,#1c222b);color:var(--gc-ink,#e6edf3)}
.bxtbl tr.tot td.pl{background:var(--gc-surface-2,#1c222b)}
.bxtbl tbody tr:not(.bxsec):hover td{background:rgba(255,255,255,.03)}.bxtbl tbody tr:not(.bxsec):hover td.pl{background:var(--gc-surface-2,#1c222b)}
.bxtbl td{color:var(--gc-ink-2,#b4bcc6)}
/* a value that just changed in a live game: one soft flash, no layout change */
.gcbox td.bxf,.gcbox .v.bxf{animation:bxflash 1.6s var(--gc-ease,ease-out)}
@keyframes bxflash{0%{background:rgba(59,130,246,.42);color:#fff}100%{background:transparent}}
.gc-rm .gcbox .bxf{animation:none}
@media (prefers-reduced-motion:reduce){.gcbox .bxf{animation:none}}
/* scoring / penalties lists */
.bxlist{display:flex;flex-direction:column}
.bxph{font:700 11px/1 var(--gc-body,Inter,sans-serif);letter-spacing:var(--gc-track-label,.06em);text-transform:uppercase;color:var(--gc-ink-4,#8b96a5);padding:12px 0 6px;border-bottom:1px solid var(--gc-hair,rgba(255,255,255,.08))}
.bxph:first-child{padding-top:0}
.bxev{display:grid;grid-template-columns:44px 56px minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:8px 0;font-size:12px;line-height:1.4;color:var(--gc-ink-2,#b4bcc6);border-bottom:1px solid rgba(255,255,255,.04)}
.bxev.scoring{grid-template-columns:44px 56px minmax(0,1fr) auto auto}
.bxev .bxt{color:var(--gc-ink-4,#8b96a5);font-variant-numeric:tabular-nums}
.bxev .bxab{font-weight:700;color:var(--gc-ink,#e6edf3);display:flex;align-items:center;white-space:nowrap}
.bxev .bxtx{min-width:0;overflow-wrap:anywhere}
.bxev .bxsc{color:var(--gc-ink,#e6edf3);font-weight:700;white-space:nowrap;text-align:right}
.bxtg{font:700 11px/1 var(--gc-body,Inter,sans-serif);letter-spacing:var(--gc-track-label,.06em);text-transform:uppercase;border:1px solid var(--gc-hair,rgba(255,255,255,.18));border-radius:var(--gc-r-pill,999px);padding:4px 7px;color:var(--gc-ink-3,#9aa5b4);white-space:nowrap}
.bxtg[hidden]{display:none}
.bxtg.tg-pp{color:var(--gc-warn,#f5c542);border-color:color-mix(in srgb,var(--gc-warn,#f5c542) 50%,transparent)}
.bxtg.tg-sh{color:#7dd3fc;border-color:rgba(125,211,252,.45)}
.bxtg.tg-en{color:#cbd5e1}
.bxtg.tg-miss{color:var(--gc-ink-4,#8b96a5)}
@media (max-width:640px){.bxev,.bxev.scoring{grid-template-columns:40px 48px minmax(0,1fr)}.bxev .bxtg,.bxev .bxsc{grid-column:3}.bxev .bxsc{text-align:left}}
/* stars, injuries, legend */
.bxstars{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.bxstar{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-areas:"h l" "h n" "h t";column-gap:10px;align-items:center;padding:8px;border-radius:var(--gc-r-sm,6px);background:var(--gc-surface-2,#1c222b)}
.bxstar .hs{grid-area:h;width:40px;height:40px}.bxstar{grid-template-columns:40px minmax(0,1fr)}
.bxstar .bxsl{grid-area:l;font:700 11px/1 var(--gc-body,Inter,sans-serif);color:var(--gc-warn,#f5c542);letter-spacing:var(--gc-track-label,.06em)}
.bxstar b{grid-area:n;font-size:13px;color:var(--gc-ink,#e6edf3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bxstar small{grid-area:t;font-size:11px;color:var(--gc-ink-4,#8b96a5)}
.bxinj{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bxij{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:3px 0;color:var(--gc-ink-2,#b4bcc6)}.bxij .st{color:var(--gc-ink-4,#8b96a5);text-align:right}
.bxij small{color:var(--gc-ink-4,#8b96a5)}
@media (max-width:700px){.bxinj{grid-template-columns:minmax(0,1fr)}}
.bxlegl{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--gc-ink-3,#9aa5b4);line-height:1.4}
.bxli{min-width:0}.bxli b{color:var(--gc-ink,#e6edf3);margin-right:4px}
/* pregame placeholder card */
.nbox-pre .bxpt{font-size:13px;color:var(--gc-ink-2,#b4bcc6)}
.nbox-pre .bxpg:empty{display:none}
body.compact .gcbox .bxtop{grid-template-columns:minmax(0,1fr)}

/* 2026-10-25: 'updated Xs ago' line + game info card + 'more team stats' toggle */
.gcbox .bxagobar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--gc-ink-3,#9aa6b5);padding:0 4px 8px;font-variant-numeric:tabular-nums}.gcbox .bxago.stale{color:var(--gc-warn,#e0a73a)}
.gcbox .bxgi{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px 24px}
.gcbox .bxgi-col .ldrteam{margin-bottom:4px}
.gcbox .bxmore{all:unset;cursor:pointer;display:block;margin:8px auto 0;padding:6px 12px;font-size:12px;color:var(--gc-ink-2,#b4bcc6);border:1px solid var(--line);border-radius:6px}
.gcbox .bxmore:hover,.gcbox .bxmore:focus-visible{color:#fff;border-color:var(--gc-ink-4,#8b96a5)}
.gcbox .bxmore[hidden]{display:none}
.gcbox .bxjump{color:var(--gc-ink-4,#8b96a5)}.gcbox .bxjump button{all:unset;cursor:pointer;margin-left:8px;color:var(--gc-ink-2,#b4bcc6);text-decoration:underline dotted}.gcbox .bxjump button:hover,.gcbox .bxjump button:focus-visible{color:#fff}.gcbox .bxagobar[hidden]{display:none}
