/* GameDay Matrix P4.2 safe homepage editorial layout
   Scope: homepage presentation only. No model, API, Worker or shared component changes. */

.home-headlines{
  margin-top:14px;
  padding:17px 18px 18px;
  background:#08182A;
  border:1px solid #173653;
}
.home-headlines-heading{
  align-items:flex-end;
  margin-bottom:11px;
  padding-bottom:11px;
  border-bottom:1px solid rgba(98,197,255,.12);
}
.home-headlines-heading .tag{
  color:#D3A55E;
  font-size:11px;
}
.home-headlines-heading h2{
  margin:4px 0 0;
  color:#F5F7FA;
  font:600 24px var(--display);
  line-height:1.05;
}
.home-headlines .external-news-status{
  color:#71869A;
  font-size:9px;
  letter-spacing:.02em;
}
.home-headlines-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.home-headlines-grid .external-news-card{
  min-height:88px;
  padding:11px 12px;
  border:1px solid rgba(98,197,255,.13);
  background:rgba(255,255,255,.022);
  color:#F5F7FA;
  box-shadow:none;
}
.home-headlines-grid .external-news-card:hover{
  border-color:rgba(98,197,255,.38);
  background:rgba(98,197,255,.045);
  transform:none;
  box-shadow:none;
}
.home-headlines-grid .external-source{color:#62C5FF}
.home-headlines-grid .external-category{
  background:rgba(98,197,255,.08);
  color:#9AB4C8;
}
.home-headlines-grid .external-news-card strong{
  margin-top:7px;
  color:#F5F7FA;
  font:600 14px var(--display);
  line-height:1.14;
}
.home-headlines-grid .external-open{
  padding-top:8px;
  color:#D3A55E;
  font-size:9px;
}
.home-headlines-grid .external-news-card:first-child{
  grid-column:1/-1;
  min-height:128px;
  position:relative;
  overflow:hidden;
  padding:15px 18px 16px 21px;
  background:
    linear-gradient(118deg,rgba(25,128,227,.15),rgba(8,24,42,.30) 58%,rgba(211,165,94,.05));
}
.home-headlines-grid .external-news-card:first-child::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:#62C5FF;
}
.home-headlines-grid .external-news-card:first-child strong{
  max-width:760px;
  margin-top:9px;
  font-size:clamp(20px,1.75vw,27px);
  line-height:1.08;
}
.home-headlines-grid .external-news-card:nth-child(6){
  grid-column:1/-1;
  min-height:72px;
}
.home-headlines .external-news-loading,
.home-headlines .external-news-empty{
  border-color:rgba(98,197,255,.16);
  color:#8FA6BA;
}

.matrix-updates-home{
  margin-top:18px;
  padding:18px;
}
.matrix-updates-home .gameday-news-head{
  align-items:flex-end;
}
.matrix-updates-home .gameday-news-head h2{
  font-size:26px;
}
.matrix-updates-dek{
  max-width:720px;
  margin:7px 0 0;
  color:#8FA6BA;
  font-size:11px;
  line-height:1.45;
}
.matrix-updates-home .gameday-news-grid{
  margin-top:14px;
}

@media(max-width:1100px){
  .home-headlines-grid .external-news-card strong{font-size:13px}
  .home-headlines-grid .external-news-card:first-child strong{font-size:22px}
}
@media(max-width:950px){
  .home-headlines{margin-top:12px}
}
@media(max-width:700px){
  .home-headlines{padding:15px 14px}
  .home-headlines-heading{align-items:flex-start;flex-direction:column;gap:7px}
  .home-headlines-grid{grid-template-columns:1fr}
  .home-headlines-grid .external-news-card:first-child,
  .home-headlines-grid .external-news-card:nth-child(6){grid-column:auto}
  .home-headlines-grid .external-news-card{min-height:0}
  .matrix-updates-home .gameday-news-head{align-items:flex-start;flex-direction:column;gap:12px}
}

/* P4.2.2 homepage polish: live headline hierarchy + final scoreboard logos */
.home-headlines-grid .external-news-card.home-lead-story::after{
  content:"TOP STORY";
  position:absolute;
  top:14px;
  right:16px;
  color:#62C5FF;
  font-size:8px;
  font-weight:800;
  letter-spacing:.12em;
}
.home-headlines-grid .external-news-card.home-lead-story .external-news-meta{
  padding-right:72px;
}

.gameday-scoreboard .scoreboard-card.is-final{
  opacity:1;
}
.gameday-scoreboard .scoreboard-team{
  grid-template-columns:minmax(0,1fr) auto;
  min-height:34px;
}
.scoreboard-team-main{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-width:0;
}
.scoreboard-team-logo{
  position:relative;
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(98,197,255,.14);
  border-radius:50%;
  background:#07172A;
  flex:none;
}
.scoreboard-team-logo .fallback{
  color:#8FA6BA;
  font-size:8px;
  font-weight:800;
  letter-spacing:-.02em;
}
.scoreboard-team-logo img{
  position:absolute;
  inset:2px;
  width:24px;
  height:24px;
  object-fit:contain;
}
.scoreboard-team-logo.logo-loaded .fallback{opacity:0}
.scoreboard-team-main strong{
  min-width:0;
}

@media(max-width:700px){
  .home-headlines-grid .external-news-card.home-lead-story::after{display:none}
  .home-headlines-grid .external-news-card.home-lead-story .external-news-meta{padding-right:0}
  .scoreboard-team-main{grid-template-columns:26px minmax(0,1fr);gap:8px}
  .scoreboard-team-logo{width:26px;height:26px}
  .scoreboard-team-logo img{width:22px;height:22px}
}
.gameday-scoreboard .scoreboard-head .kicker{
  color:#D3A55E;
  font-size:10px;
  letter-spacing:.11em;
}

/* P4.2.2.1 cache-safe scoreboard logo guard.
   The unique stylesheet filename guarantees the scoreboard sizing rules cannot be
   satisfied by the cached P4.2.1 homepage stylesheet. */
.gameday-scoreboard .scoreboard-team-main{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-width:0;
}
.gameday-scoreboard .scoreboard-team-logo{
  position:relative;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  min-width:28px;
  max-width:28px;
  min-height:28px;
  max-height:28px;
  overflow:visible;
}
.gameday-scoreboard .scoreboard-team-logo .fallback{
  position:absolute;
  inset:0;
  margin:auto;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#102943;
  color:#fff;
  font-size:8px;
  font-weight:800;
}
.gameday-scoreboard .scoreboard-team-logo img{
  position:relative;
  z-index:2;
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:28px !important;
  max-height:28px !important;
  object-fit:contain;
}
.gameday-scoreboard .scoreboard-team-logo.logo-loaded .fallback{
  display:none !important;
}
@media(max-width:700px){
  .gameday-scoreboard .scoreboard-team-main{grid-template-columns:24px minmax(0,1fr);gap:8px}
  .gameday-scoreboard .scoreboard-team-logo{
    width:24px;min-width:24px;max-width:24px;height:24px;min-height:24px;max-height:24px;
  }
  .gameday-scoreboard .scoreboard-team-logo img{max-width:24px !important;max-height:24px !important}
  .gameday-scoreboard .scoreboard-team-logo .fallback{width:21px;height:21px;font-size:7px}
}
