/* Feature-owned presentation, extracted in cascade order. */
.gameday-league-matchup-team>.gameday-points-stack b { font-size:.82rem; }
.gameday-matchup-scoreboard { border-bottom:1px solid var(--line); background:var(--surface); }
.gameday-matchup-scoreboard:has(.gameday-matchup-outlook.your-team-leading) { background:linear-gradient(115deg,color-mix(in srgb,var(--status-positive-border) 12%,var(--surface)),var(--surface) 46%,color-mix(in srgb,var(--status-danger-border) 10%,var(--surface))); }
.gameday-matchup-scoreboard:has(.gameday-matchup-outlook.opponent-leading) { background:linear-gradient(115deg,color-mix(in srgb,var(--status-danger-border) 10%,var(--surface)),var(--surface) 46%,color-mix(in srgb,var(--status-positive-border) 12%,var(--surface))); }
.gameday-matchup-scoreline { display:grid; grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr); align-items:stretch; }
.gameday-matchup-scoreline>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; align-items:center; min-height:72px; padding:9px 12px; }
.gameday-matchup-scoreline>div.opponent { text-align:right; }
.gameday-matchup-scoreline .gameday-score-label { grid-column:1 / -1; color:var(--muted); font-size:.75rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.gameday-matchup-scoreline strong,.gameday-matchup-scoreline .gameday-team-link { min-width:0; font-size:.9rem; overflow-wrap:anywhere; white-space:normal; }
.gameday-matchup-scoreline>div>.gameday-points-stack { grid-column:2; grid-row:2; }
.gameday-matchup-scoreline .gameday-points-stack b { font-size:1.9rem; }
.gameday-matchup-scoreline>div.opponent strong,.gameday-matchup-scoreline>div.opponent>.gameday-team-link { grid-column:2; grid-row:2; }
.gameday-matchup-scoreline>div.opponent>.gameday-points-stack { grid-column:1; justify-items:start; text-align:left; }
.gameday-matchup-scoreline>span { display:grid; place-items:center; color:var(--muted); font-size:.75rem; font-weight:900; }
.gameday-matchup-outlook { padding:0 12px 8px; border-top:1px solid color-mix(in srgb,var(--line) 62%,transparent); }
.gameday-outlook-labels { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:10px; align-items:end; min-height:28px; padding-top:4px; }
.gameday-outlook-labels>span { display:flex; flex-wrap:wrap; min-width:0; align-items:baseline; gap:5px; }
.gameday-outlook-labels>span:last-child { justify-content:flex-end; text-align:right; }
.gameday-outlook-labels strong { font-size:.82rem; font-variant-numeric:tabular-nums; }
.gameday-outlook-labels small { color:var(--muted); font-size:.75rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.gameday-outlook-labels>b { color:var(--muted); font-size:.75rem; font-weight:750; }
.gameday-outlook-bar { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; height:11px; margin-top:9px; overflow:hidden; border:1px solid color-mix(in srgb,var(--text) 28%,var(--line)); background:var(--surface-inset); box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--surface) 70%,transparent); }
.gameday-outlook-bar::after { position:absolute; top:0; bottom:0; left:50%; width:1px; background:color-mix(in srgb,var(--text) 34%,transparent); content:""; transform:translateX(-.5px); }
.gameday-outlook-bar i { height:100%; transition:width .55s cubic-bezier(.2,.75,.25,1); }
.gameday-outlook-bar i:first-child { width:var(--your-outlook); justify-self:end; }
.gameday-outlook-bar i:last-child { width:var(--opponent-outlook); justify-self:start; }
.gameday-matchup-outlook.your-team-leading .gameday-outlook-bar i:first-child { background:linear-gradient(90deg,var(--status-positive-border),color-mix(in srgb,var(--status-positive-border) 74%,var(--chart-primary))); }
.gameday-matchup-outlook.your-team-leading .gameday-outlook-bar i:last-child { background:linear-gradient(90deg,color-mix(in srgb,var(--status-danger-border) 74%,var(--chart-primary)),var(--status-danger-border)); }
.gameday-matchup-outlook.opponent-leading .gameday-outlook-bar i:first-child { background:linear-gradient(90deg,var(--status-danger-border),color-mix(in srgb,var(--status-danger-border) 74%,var(--chart-primary))); }
.gameday-matchup-outlook.opponent-leading .gameday-outlook-bar i:last-child { background:linear-gradient(90deg,color-mix(in srgb,var(--status-positive-border) 74%,var(--chart-primary)),var(--status-positive-border)); }
.gameday-matchup-outlook.outlook-even .gameday-outlook-bar i { background:var(--muted); }
.gameday-matchup-outlook.unavailable .gameday-outlook-bar i { width:100%; background:var(--line); }
.gameday-outlook-teams { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding-top:7px; }
.gameday-outlook-teams>div { display:flex; align-items:baseline; gap:2px 8px; min-width:0; flex-wrap:wrap; }
.gameday-outlook-teams>div.opponent { justify-content:flex-end; text-align:right; }
.gameday-outlook-teams strong { font-size:.75rem; white-space:nowrap; }
.gameday-outlook-teams abbr { font-weight:900; letter-spacing:.03em; }
.gameday-outlook-teams span { overflow:hidden; color:var(--text); font-size:.75rem; font-weight:720; text-overflow:ellipsis; white-space:nowrap; }
.gameday-outlook-teams small { flex-basis:100%; color:var(--muted); font-size:.75rem; }
.gameday-matchup-rosters { display:grid; }
.gameday-matchup-rosters>.empty-state { margin:0; padding:18px 14px; color:var(--muted); font-size:.75rem; line-height:1.5; }
.gameday-roster-section>header { display:flex; align-items:center; padding:7px 10px; border-block:1px solid var(--line-soft); background:var(--surface-inset); color:var(--muted); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; }
.gameday-roster-pairs { display:grid; }
.gameday-roster-pair-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.gameday-roster-pair-row.single-team { grid-template-columns:minmax(0,1fr); }
.gameday-roster-player { display:grid; grid-template-columns:auto minmax(0,1fr) auto; column-gap:9px; row-gap:4px; align-items:center; padding:8px 12px; border-bottom:1px solid var(--line-soft); }
.gameday-roster-player.team-opponent,.gameday-roster-player-empty.team-opponent { border-left:1px solid var(--line); }
.gameday-roster-player-empty { min-width:0; min-height:49px; border-bottom:1px solid var(--line-soft); background:var(--surface); }
.gameday-roster-player.bench { background:var(--surface-inset); }
.roster-bench .gameday-roster-player-empty,.roster-reserve .gameday-roster-player-empty,.roster-taxi .gameday-roster-player-empty { background:var(--surface-inset); }
.gameday-roster-player>span strong,.gameday-roster-player>span small,.gameday-roster-player .gameday-player-link { display:block; overflow-wrap:anywhere; white-space:normal; }
.gameday-roster-player>span strong,.gameday-roster-player .gameday-player-link { font-size:.88rem; }
.gameday-roster-player>span small { margin-top:3px; color:var(--muted); font-size:.75rem; }
.gameday-roster-player>.gameday-position,.gameday-roster-player>.gameday-points-stack { grid-row:1; align-self:center; }
.gameday-roster-player>.gameday-points-stack { grid-column:3; }
.gameday-roster-player>.gameday-points-stack b { font-size:1rem; }
.gameday-points-stack { display:grid; min-width:44px; justify-items:end; gap:1px; font-variant-numeric:tabular-nums; line-height:1; }
.gameday-points-stack b { font-variant-numeric:tabular-nums; }
.gameday-points-stack small { color:var(--muted); font-size:.75rem; font-weight:800; letter-spacing:0; line-height:1.2; text-transform:none; white-space:normal; }
.gameday-position { display:grid; width:2.1rem; min-height:1.75rem; place-items:center; border:1px solid var(--line); font-size:.75rem; font-weight:900; }
.gameday-player-live-detail { grid-column:1 / -1; min-width:0; }
.gameday-player-desktop-detail,.gameday-player-points-history,.gameday-player-primary>.gameday-desktop-game-status { display:none; }
.gameday-player-live-detail>summary { min-height:44px; padding:12px 0; color:var(--link); cursor:pointer; font-size:.8125rem; }
.gameday-player-live-detail[open]>.gameday-field-status { margin-bottom:6px; }
.gameday-player-primary { grid-column:2; grid-row:1; }
.gameday-roster-side { display:none; grid-column:2 / -1; grid-row:2; color:var(--muted); font-size:.75rem; }
.single-team .gameday-roster-side { display:none; }
.gameday-field-status { display:block; width:min(150px,100%); min-width:0; }
.gameday-field-status.is-empty { display:none; }
.gameday-player-situation { width:max-content; max-width:100%; overflow:hidden; padding:2px 6px; background:var(--status-positive-bg); color:var(--status-positive-text); font-size:.75rem; font-weight:800; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.gameday-field-indicator { display:block; min-width:48px; padding:1px 0 2px; }
.gameday-field-indicator>i { position:relative; display:block; height:22px; overflow:hidden; border:1px solid var(--chart-axis); background:linear-gradient(90deg,var(--chart-range) var(--field-position),var(--chart-track) var(--field-position)); }
.gameday-field-indicator>i::before { content:""; position:absolute; z-index:1; top:0; left:80%; width:1px; height:3px; background:var(--status-danger-border); box-shadow:0 9px 0 var(--status-danger-border); opacity:.9; }
.gameday-field-indicator>i::after { content:""; position:absolute; top:50%; left:clamp(4px,var(--field-position),calc(100% - 4px)); width:7px; height:7px; box-sizing:border-box; border:1px solid var(--surface); background:var(--chart-primary); transform:translate(-50%,-50%) rotate(45deg); }
.gameday-field-status.has-situation .gameday-field-indicator>i::after { display:none; }
.gameday-field-indicator>i>b { position:absolute; inset:0; z-index:1; display:grid; place-items:center; color:var(--status-positive-text); font-size:.75rem; font-style:normal; font-weight:950; letter-spacing:.04em; line-height:1; }
.gameday-field-status.red-zone .gameday-field-situation,.gameday-player-situation.red-zone { color:var(--status-danger-text); }
.gameday-field-status.red-zone .gameday-field-indicator>i { border-color:var(--status-danger-border); background:linear-gradient(90deg,color-mix(in srgb,var(--status-danger-border) 76%,var(--chart-range)) var(--field-position),color-mix(in srgb,var(--status-danger-bg) 62%,var(--chart-track)) var(--field-position)); }
.gameday-field-status.red-zone .gameday-field-indicator>i::after { border-color:var(--surface); background:var(--status-danger-text); }
.gameday-field-status.state-touchdown .gameday-player-situation,.gameday-field-status.state-field-goal-made .gameday-player-situation { background:var(--status-positive-bg); color:var(--status-positive-text); }
.gameday-field-status.state-touchdown .gameday-field-indicator>i,.gameday-field-status.state-field-goal-made .gameday-field-indicator>i { border-color:var(--status-positive-border); background:linear-gradient(90deg,color-mix(in srgb,var(--status-positive-border) 60%,var(--status-positive-bg)),var(--status-positive-bg)); }
.gameday-field-status.state-field-goal-missed .gameday-player-situation { background:var(--status-warning-bg); color:var(--status-warning-text); }
.gameday-field-status.state-field-goal-missed .gameday-field-indicator>i { border-color:var(--status-warning-border); background:repeating-linear-gradient(135deg,var(--status-warning-bg) 0 5px,color-mix(in srgb,var(--status-warning-border) 30%,var(--status-warning-bg)) 5px 10px); }
.gameday-field-status.state-field-goal-missed .gameday-field-indicator>i>b { color:var(--status-warning-text); }
.gameday-field-status.state-touchdown .gameday-field-indicator>i::before,.gameday-field-status.state-field-goal-made .gameday-field-indicator>i::before,.gameday-field-status.state-field-goal-missed .gameday-field-indicator>i::before,.gameday-field-status.state-touchdown .gameday-field-indicator>i::after,.gameday-field-status.state-field-goal-made .gameday-field-indicator>i::after,.gameday-field-status.state-field-goal-missed .gameday-field-indicator>i::after { display:none; }
.gameday-player-live-detail .gameday-player-stats { display:block; min-width:0; color:var(--text); font-size:.875rem; line-height:1.4; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.gameday-player-stats.is-empty { display:none; }
.gameday-player-live-detail:has(.gameday-field-status.is-empty):has(.gameday-player-stats.is-empty) { display:none; }
.gameday-player-live-detail.no-field .gameday-player-stats { grid-column:1 / -1; }
.gameday-roster-player.coverage-partial,.gameday-roster-player.coverage-identity-unlinked,.gameday-roster-player.coverage-rules-required { box-shadow:inset 3px 0 var(--amber); }
.gameday-roster-player.game-final { background:color-mix(in srgb,var(--surface-inset) 84%,var(--line)); color:var(--muted); }
.gameday-roster-player.game-final .gameday-position { border-color:var(--line-soft); background:var(--surface-inset); color:var(--muted); }
.gameday-roster-player.game-final .player-name-with-designation>strong,.gameday-roster-player.game-final .gameday-player-link,.gameday-roster-player.game-final>.gameday-points-stack b { color:var(--muted); }
.gameday-roster-player.game-final .gameday-field-indicator { filter:grayscale(1); }
.gameday-player-link { cursor:pointer; }
.gameday-player-stat-table>header,.gameday-player-stat-table>div { display:grid; grid-template-columns:minmax(140px,.7fr) minmax(0,1.3fr); gap:12px; align-items:center; padding:8px 12px; border-bottom:1px solid var(--line-soft); }
.gameday-player-stat-table>header { background:var(--surface-2); font-size:.75rem; }
.gameday-player-stat-table>div span strong,.gameday-player-stat-table>div span small { display:block; }
.gameday-player-stat-table>div span strong { font-size:.75rem; }
.gameday-player-stat-table>div span small { color:var(--muted); font-size:.75rem; }
.gameday-player-stat-table p { margin:0; color:var(--muted); font-size:.75rem; line-height:1.4; }
@container gameday (max-width: 36rem) {
  .gameday-roster-pair-row { grid-template-columns:minmax(0,1fr); }
  .gameday-roster-player-empty { display:none; }
  .gameday-roster-player.team-opponent { border-left:0; }
  .gameday-roster-side { display:block; }
  .gameday-matchup-scoreline>div { grid-template-columns:minmax(0,1fr); gap:5px; padding:10px; }
  .gameday-matchup-scoreline>div>.gameday-points-stack,.gameday-matchup-scoreline>div.opponent strong,.gameday-matchup-scoreline>div.opponent>.gameday-team-link,.gameday-matchup-scoreline>div.opponent>.gameday-points-stack { grid-column:1; grid-row:auto; }
  .gameday-matchup-scoreline>div>.gameday-points-stack { justify-items:start; text-align:left; }
  .gameday-matchup-scoreline>div.opponent>.gameday-points-stack { justify-items:end; text-align:right; }
  .gameday-outlook-labels { gap:5px; }
  .gameday-outlook-labels>b { max-width:92px; text-align:center; }
  .gameday-outlook-teams>div { flex-direction:column; align-items:flex-start; gap:2px; }
  .gameday-outlook-teams>div.opponent { align-items:flex-end; }
  .gameday-player-stat-table>header,.gameday-player-stat-table>div { grid-template-columns:1fr; gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
.gameday-outlook-bar i { transition:none; }
}
/* Both research and live matchups share the saved, minute-by-minute history. */
.panel.matchup-history-panel { min-width: 0; padding: 0; margin: 0; }
.matchup-history-panel > summary { padding: 12px 16px; min-height: 44px; cursor: pointer; font-size: .85rem; font-weight: 750; }
.matchup-history-panel > summary > span { margin-left: 8px; color: var(--muted); font-size: .75rem; font-weight: 500; }
.matchup-history-panel[open] > summary { border-bottom: 1px solid var(--line-soft); }
.matchup-history { min-width: 0; padding: 16px; }
.matchup-history-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.matchup-history-heading h2 { margin: 0; font-size: 1rem; }
.matchup-history-toggle { display: flex; gap: 4px; }
.matchup-history-toggle button { font-size: .8rem; padding: 7px 10px; min-height: 36px; }
.matchup-history-toggle button[aria-pressed="true"] { background: var(--text); color: var(--surface, #fff); }
.matchup-history-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 8px; }
.matchup-history-legend > span { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 4px 6px; align-items: center; }
.matchup-history-legend strong { color: var(--text); font-size: .82rem; overflow-wrap: anywhere; }
.matchup-history-legend b { grid-column: 2; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.matchup-history-legend i { height: 3px; background: currentColor; }
.history-team-0 { color: #138b78; }
.history-team-1 { color: #c16a27; }
.matchup-history-chart { width: 100%; display: block; overflow: visible; touch-action: pan-y; }
.matchup-history-chart path { stroke: currentColor; stroke-width: 2.3; fill: none; stroke-linejoin: round; }
.matchup-history-chart .history-team-1 { stroke-dasharray: 6 3; }
.matchup-history-chart .history-dot { fill: currentColor; stroke: none; }
.matchup-history-chart text { fill: var(--muted, #657080); font-size: 11px; }
.history-grid { stroke: currentColor; opacity: .12; }
.history-cursor { stroke: currentColor; stroke-dasharray: 3 4; opacity: .45; }
.history-break { stroke: currentColor; stroke-dasharray: 2 3; opacity: .3; }
.matchup-history-scrubber { width: 100%; margin: 4px 0; min-height: 24px; accent-color: #138b78; }
.matchup-history-readout { display: block; font-size: .8rem; min-height: 1.4em; font-variant-numeric: tabular-nums; }
.matchup-history-note, .matchup-history-method { color: var(--muted, #657080); font-size: .75rem; line-height: 1.5; margin: 8px 0 0; }
.matchup-history-method p { max-width: 80ch; }
@media (min-width:73.751rem) {
  .matchup-history-panel > summary { display: none; }
}
