/* NFL Phase 6 — shared launch polish and responsive hardening */
.nfl-page {
  --nfl-panel: rgba(10, 24, 42, .92);
  --nfl-line: rgba(148, 163, 184, .18);
  --nfl-focus: #f6c343;
  min-width: 0;
}
.nfl-page > section,
.nfl-page .card,
.nfl-page article {
  min-width: 0;
}
.nfl-page img {
  max-width: 100%;
}
.nfl-page button,
.nfl-page [data-nav] {
  touch-action: manipulation;
}
.nfl-page button:focus-visible,
.nfl-page [data-nav]:focus-visible,
.nfl-page a:focus-visible {
  outline: 3px solid var(--nfl-focus);
  outline-offset: 3px;
}
.nfl-page table {
  width: 100%;
}
.nfl-page .table-wrap,
.nfl-page .rankings-table-wrap,
.nfl-page .nfl-rankings-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}
.nfl-page .nfl-rank-explanation-row td,
.nfl-page .nfl-rank-explanation,
.nfl-page .rank-explanation-row td {
  white-space: normal;
  overflow-wrap: anywhere;
}
.nfl-page .nfl-empty-state,
.nfl-page .empty-state {
  border: 1px dashed var(--nfl-line);
  border-radius: 14px;
  background: var(--nfl-panel);
}
.nfl-page .shared-player-visual {
  flex: 0 0 auto;
}
/* Initials are a true fallback: remove them once a verified headshot loads. */
body:is(.sport-nfl, .sport-fantasy) .shared-player-visual.photo-loaded .shared-player-fallback {
  display: none !important;
}
.nfl-page .shared-player-visual img {
  object-fit: cover;
}
.nfl-page .nfl-results-kpis,
.nfl-page .engine-overview-grid,
.nfl-page .engine-model-grid,
.nfl-page .engine-signal-grid {
  align-items: stretch;
}
.nfl-page .nfl-results-kpis > *,
.nfl-page .engine-overview-grid > *,
.nfl-page .engine-model-grid > *,
.nfl-page .engine-signal-grid > * {
  height: 100%;
}
@media (max-width: 900px) {
  .nfl-page {
    overflow-x: clip;
  }
  .nfl-page .nfl-results-kpis,
  .nfl-page .engine-overview-grid,
  .nfl-page .engine-model-grid,
  .nfl-page .engine-signal-grid,
  .nfl-page .engine-two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .nfl-page .nfl-engine-flow {
    flex-wrap: wrap;
  }
}
@media (max-width: 620px) {
  .nfl-page {
    padding-inline: 12px;
  }
  .nfl-page h1 {
    font-size: clamp(1.65rem, 8vw, 2.25rem);
  }
  .nfl-page .nfl-results-kpis,
  .nfl-page .engine-overview-grid,
  .nfl-page .engine-model-grid,
  .nfl-page .engine-signal-grid,
  .nfl-page .engine-two-col {
    grid-template-columns: minmax(0, 1fr);
  }
  .nfl-page table {
    min-width: 680px;
  }
  .nfl-page .nfl-rank-explanation-row table,
  .nfl-page .rank-explanation-row table {
    min-width: 0;
  }
  .nfl-page button,
  .nfl-page [data-nav] {
    min-height: 42px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nfl-page *,
  .nfl-page *::before,
  .nfl-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* NFL Week 1 product and visual readiness */
.nfl-page .nfl-ranked-player{display:flex;align-items:center;gap:9px;min-width:190px}.nfl-page .nfl-ranked-player>span{min-width:0}.nfl-page .nfl-ranked-player .shared-player-visual{width:32px;height:32px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#14263a;border:1px solid rgba(255,255,255,.12)}.nfl-page .nfl-ranked-player .shared-player-visual img{width:100%;height:100%;object-fit:cover}.nfl-page .nfl-weekly-pick{position:relative;overflow:hidden}.nfl-page .nfl-weekly-pick:hover{transform:translateY(-2px);border-color:rgba(111,226,189,.42);box-shadow:0 14px 30px rgba(0,0,0,.18)}.nfl-page .nfl-weekly-pick{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.nfl-weekly-player{display:flex;align-items:center;gap:8px;margin:13px 0 -4px;color:#9badc0;font-size:11px;font-weight:800}.nfl-weekly-player .shared-player-visual{width:34px;height:34px;border-radius:50%;overflow:hidden;background:#102333;border:1px solid rgba(111,226,189,.3)}.nfl-weekly-player .shared-player-visual img{width:100%;height:100%;object-fit:cover}.nfl-matchup-visual{display:flex;align-items:center;gap:7px;color:#7f91a7;font-size:10px;font-weight:900;letter-spacing:.08em}.nfl-team-visual{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);overflow:hidden}.nfl-team-visual>span{font-size:9px}.nfl-team-visual img{width:100%;height:100%;object-fit:contain;padding:3px;box-sizing:border-box}.nfl-matchup-visual.compact{margin-bottom:8px}.nfl-matchup-visual.card{margin:11px 0 8px}.nfl-matchup-visual.card .nfl-team-visual{width:40px;height:40px}.nfl-home-market-grid article{position:relative;overflow:hidden}.nfl-home-market-grid article:has(.nfl-matchup-visual){padding-top:14px}.nfl-bet-status{border-color:rgba(246,195,67,.4)!important;background:rgba(246,195,67,.08)!important}.nfl-bet-status b{color:#f6c343!important}.nfl-page .market-waiting{border-left:3px solid #f6c343}.nfl-page .nfl-empty-state,.nfl-page .empty-state,.nfl-weekly-empty{background:linear-gradient(145deg,rgba(17,32,48,.9),rgba(8,18,29,.94))}
@media(max-width:700px){.nfl-page .nfl-ranked-player{min-width:155px}.nfl-page .nfl-ranked-player .shared-player-visual{width:28px;height:28px}.nfl-matchup-visual.card .nfl-team-visual{width:34px;height:34px}.nfl-page .nfl-weekly-pick{min-height:0}.nfl-home-market-grid article:has(.nfl-matchup-visual){padding-top:13px}}


/* NFL market board scale — increase visual hierarchy without reducing desktop coverage. */
.nfl-home-market-grid {
  gap: 16px;
}
.nfl-home-market-grid article:has(.nfl-matchup-visual) {
  min-height: 196px;
  padding: 20px;
}
.nfl-home-market-grid .nfl-matchup-visual.compact {
  gap: 10px;
  margin-bottom: 11px;
  font-size: 12px;
}
.nfl-home-market-grid .nfl-team-visual {
  width: 46px;
  height: 46px;
}
.nfl-home-market-grid article > span {
  font-size: 13px;
}
.nfl-home-market-grid h3 {
  margin: 9px 0;
  font-size: 23px;
  line-height: 1.18;
}
.nfl-home-market-grid p {
  font-size: 14px;
  line-height: 1.45;
}
.nfl-home-market-grid footer {
  margin-top: 16px;
  gap: 8px;
}
.nfl-home-market-grid footer b {
  font-size: 28px;
}
.nfl-home-market-grid footer small {
  font-size: 13px;
}
@media (max-width: 700px) {
  .nfl-home-market-grid article:has(.nfl-matchup-visual) {
    min-height: 0;
    padding: 18px;
  }
  .nfl-home-market-grid .nfl-team-visual {
    width: 42px;
    height: 42px;
  }
  .nfl-home-market-grid h3 { font-size: 21px; }
}
