[data-ng-game]{max-width:1600px;--game-border:#30485e;scroll-behavior:smooth}
[data-ng-game]>.ng-heading{padding:10px 0}
[data-ng-game]>.ng-heading h1{font-size:24px}
[data-ng-game] .ng-note{padding:7px 0;margin:0;font-size:12px}
.ng-game-scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ng-game-scoreboard .ng-box-score{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;padding:14px;border-left:4px solid var(--game-team);background:linear-gradient(110deg,color-mix(in srgb,var(--game-team) 24%,#152234),#132131);border-radius:8px}
.ng-game-scoreboard .ng-box-score>span{grid-row:1/3;align-self:center;color:#fff;font-size:14px;font-weight:850;background:var(--game-team);padding:8px;border-radius:5px}
.ng-game-scoreboard h2{font-size:16px;align-self:end}
.ng-game-scoreboard strong{grid-column:3;grid-row:1/3;align-self:center;font-size:36px;font-variant-numeric:tabular-nums}
.ng-game-scoreboard small{grid-column:2;font-size:11px;color:#b0c4d8}
.ng-game-info{font-size:12px;color:#aec5d9;padding:10px 0}
.ng-situation{padding:12px;border:1px solid #458bc1;background:#123d60;border-radius:8px;display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:10px;color:#b9e3ff;font-size:12px}
.ng-situation.is-red-zone{background:#543316;border-color:#dba054;color:#ffda9e}
.ng-situation p,.ng-situation .nfl-strip-field{grid-column:1/-1}
.ng-game-nav{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0}
.ng-game-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:7px 12px;border:1px solid #355572;border-radius:6px;color:#a9dbff;font-size:12px;background:#152b40}
[data-ng-game] section[id]{scroll-margin-top:calc(var(--site-sticky-top,0px) + 12px)}
.ng-game-filters{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:6px 0}
.ng-game-filters label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#aec5d9;min-width:0}
.ng-game-filters select,.ng-game-filters input{border:1px solid #39556e;border-radius:6px;background:#102336;color:#e2f0ff;padding:8px;min-height:44px;max-width:100%;font-size:12px}
.ng-game-filters span{font-size:11px;color:#a2bbd0;align-self:center}
.ng-category-pair,.ng-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
[data-ng-game] .ng-panel{margin:6px 0;border-radius:8px;background:#102131;border-color:var(--game-border)}
[data-ng-game] .ng-panel>.ng-heading{padding:10px 12px;background:#172c41}
[data-ng-game] .ng-heading h2{font-size:15px}
[data-ng-game] .ng-heading small{font-size:11px;color:#aec5d9}
[data-ng-game] .ng-table{font-size:12px}
[data-ng-game] .ng-table th,[data-ng-game] .ng-table td{padding:5px 9px}
[data-ng-game] .ng-table td:first-child,[data-ng-game] .ng-table th:first-child{min-width:140px;max-width:180px}
.ng-events{list-style:none;margin:0;padding:0;max-height:460px;overflow:auto;overscroll-behavior:contain}
.ng-events li{padding:12px;border-bottom:1px solid #2b4156}
.ng-events small{font-size:11px;color:#92bddb}
.ng-events p{font-size:13px;line-height:1.5;margin:5px 0;color:#e2ecf8}
.ng-events b{font-size:12px;color:#7cefc0}
.ng-events .ng-scoring{border-left:3px solid #64eaa8;background:#12372d}
.ng-events .ng-turnover{border-left:3px solid #ffb06a;background:#432e20}
#ng-plays-section .ng-game-filters{padding:4px 12px}
.nfl-game-modal{position:fixed;inset:0;margin:auto;width:min(1460px,96vw);max-width:100vw;height:94dvh;max-height:100dvh;padding:0;border:1px solid #426480;border-radius:12px;background:#0f1c2c;color:#eaf4ff;overflow:hidden}
.nfl-game-modal::backdrop{background:#020810ce;backdrop-filter:blur(3px)}
.nfl-game-modal[open]{display:flex;flex-direction:column}
.nfl-game-modal>header{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #38516a;flex-shrink:0}
.nfl-game-modal>header strong{margin-right:auto;font-size:14px}
.nfl-game-modal>header button,.nfl-game-modal>header a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #3f6380;border-radius:6px;padding:6px 10px;color:#c9e9ff;font-size:12px;background:#142b40}
.nfl-game-modal iframe{width:100%;flex:1;border:0;min-height:0;background:#0f1c2c}
.nfl-game-modal .nfl-modal-loading{font-size:12px;padding:8px 12px;color:#a9c8e0}
.nfl-game-modal .nfl-modal-loading[hidden]{display:none}
body:has(.nfl-game-modal[open]){overflow:hidden}
body:has([data-ng-game]):has(.site-header[style]){--site-sticky-top:0px}
@media(max-width:700px){
 .ng-category-pair,.ng-overview-grid{grid-template-columns:1fr;gap:4px}
 .ng-game-scoreboard{gap:6px}
 .ng-game-scoreboard .ng-box-score{padding:9px;grid-template-columns:minmax(0,1fr) auto;gap:4px}
 .ng-game-scoreboard .ng-box-score>span{grid-row:1;grid-column:1;font-size:11px;padding:4px;justify-self:start}
 .ng-game-scoreboard h2{grid-row:2;grid-column:1/3;font-size:13px}
 .ng-game-scoreboard strong{grid-column:2;grid-row:1;font-size:29px}
 .ng-game-scoreboard small{grid-column:1/3;grid-row:3;font-size:10px}
 .ng-game-filters label{flex:1 1 120px}.ng-game-filters input{width:100%}
 .ng-game-nav{gap:5px}.ng-game-nav a{padding:6px 9px;font-size:11px}
 .ng-situation{grid-template-columns:1fr}.ng-situation>span{grid-column:1}
 [data-ng-game] .ng-table td:first-child,[data-ng-game] .ng-table th:first-child{min-width:118px;max-width:138px}
 .nfl-game-modal{width:100vw;height:100dvh;border-radius:0;border:0}
 .nfl-game-modal>header{gap:5px;padding:6px 8px}.nfl-game-modal>header strong{font-size:12px}
 .nfl-game-modal>header a,.nfl-game-modal>header button{font-size:11px;padding:6px}
}
@media(prefers-reduced-motion:reduce){[data-ng-game]{scroll-behavior:auto}}

/* ---- compact but readable box score for narrow spaces (Live page side column, phone sheet, phones) ---- */
@media(max-width:700px){
 [data-ng-game]>.ng-heading{padding:4px 0 2px;align-items:center}
 [data-ng-game]>.ng-heading h1{font-size:19px;line-height:1.15}
 [data-ng-game]>.ng-heading small{font-size:10px}
 #ng-game-refresh{min-height:32px!important;padding:4px 10px!important;font-size:11px!important}
 [data-ng-game] .ng-note{padding:3px 0;font-size:11px}
 /* one slim row per team: code · name/record · score */
 .ng-game-scoreboard{grid-template-columns:1fr;gap:4px}
 .ng-game-scoreboard .ng-box-score{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 8px;padding:6px 10px}
 .ng-game-scoreboard .ng-box-score>span{grid-row:1/3;grid-column:1;align-self:center;font-size:11px;padding:4px 6px}
 .ng-game-scoreboard h2{grid-row:1;grid-column:2;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ng-game-scoreboard small{grid-row:2;grid-column:2;font-size:10px}
 .ng-game-scoreboard strong{grid-row:1/3;grid-column:3;font-size:26px;line-height:1}
 .ng-game-info{padding:4px 0 6px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ng-situation{padding:8px;gap:4px;margin-bottom:6px;font-size:11.5px}
 /* line score */
 [data-ng-game] .ng-table{font-size:11.5px}
 [data-ng-game] .ng-table th,[data-ng-game] .ng-table td{padding:3px 6px}
 [data-ng-game] .ng-panel{margin:5px 0}
 [data-ng-game] .ng-panel>.ng-heading{padding:6px 10px}
 [data-ng-game] .ng-heading h2{font-size:13.5px}
 /* scoring summary: time + running score on one line, the play under it (2 lines max, full text on hover) */
 #ng-scoring-section .ng-events{max-height:none;overflow:visible}   /* scoring: show every play; play-by-play keeps its scroll box */
 .ng-events li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 8px;padding:6px 10px}
 .ng-events li small{grid-column:1;font-size:10.5px}
 .ng-events li b{grid-column:2;grid-row:1;font-size:11.5px;white-space:nowrap}
 .ng-events li p{grid-column:1/-1;margin:0;font-size:12px;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 /* section jump links: one scrollable row */
 .ng-game-nav{flex-wrap:nowrap;overflow-x:auto;gap:5px;padding:6px 0;scrollbar-width:none}
 .ng-game-nav a{flex:none;min-height:30px;padding:4px 10px;font-size:11px;border-radius:15px}
 /* player box score */
 .ng-game-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0}
 .ng-game-filters label{gap:2px;font-size:10px}
 .ng-game-filters select,.ng-game-filters input{min-height:32px;padding:4px 6px;font-size:11.5px}
 .ng-game-filters label:has(input){grid-column:1}
 #ng-game-csv{min-height:32px!important;padding:4px 8px!important;font-size:11px!important;align-self:end}
 #ng-filter-result{display:none}
 [data-ng-game] .ng-table td:first-child,[data-ng-game] .ng-table th:first-child{min-width:104px;max-width:128px}
 [data-ng-game] .ng-table td:first-child small,[data-ng-game] .ng-table td:first-child span{font-size:10px}
 [data-ng-game] .ng-table td{line-height:1.25}
}
@media(max-width:700px){
 /* the site-wide 44px link/select minimum made every player row ~64px tall in this dense table */
 #ng-players-section .ng-table td a{min-height:26px!important;min-width:0!important;padding:0!important}
 #ng-players-section .ng-table td:first-child>*:not(a){display:block;margin-top:0;font-size:10px;line-height:1.2}
 .ng-game-filters select,.ng-game-filters input{min-height:32px!important;height:32px}
}
/* my players (green) vs my current opponent's (red) in the box score */
[data-ng-game] .ng-table tr.is-mine td:first-child{box-shadow:inset 3px 0 #4ee5a0;background:#10301f}
[data-ng-game] .ng-table tr.is-mine td:first-child a{color:#8ff0c8}
[data-ng-game] .ng-table tr.is-mine .ng-owned{color:#8ff0c8;font-weight:700}
[data-ng-game] .ng-table tr.is-opp td:first-child{box-shadow:inset 3px 0 #ff7a70;background:#3a1719}
[data-ng-game] .ng-table tr.is-opp td:first-child a{color:#ffb0a8}
[data-ng-game] .ng-table tr.is-opp .ng-owned{color:#ffb0a8;font-weight:700}
.ng-events li.is-mine{box-shadow:inset 3px 0 #4ee5a0;background:#10301f}
.ng-events li.is-opp{box-shadow:inset 3px 0 #ff7a70;background:#3a1719}
.ng-events li.is-both{box-shadow:inset 3px 0 #f5c451;background:#33290c}
