/* season — a league season as a page.
   The schedule is a list, not a table: a fixture is "these two, this time,
   this field", and a 7-column table of that is unreadable on the phone someone
   actually checks it on. The standings ARE a table, because comparing numbers
   down a column is the whole job. */

.season__meta { color: var(--text-muted); margin: 0 0 32px; }
.season__subhead { color: var(--text-subtle); margin: 40px 0 14px; }
.season__subhead:first-of-type { margin-top: 0; }

/* --- standings --- */
.season__tablewrap { overflow-x: auto; }
.season__table { width: 100%; border-collapse: collapse; font-size: var(--fs-body-sm); }
.season__table th,
.season__table td { padding: 11px 10px; border-bottom: 1px solid var(--rule); text-align: left; }
.season__table thead th {
  font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-subtle); font-weight: var(--weight-body-bold, 600);
  border-bottom-width: 2px;
}
.season__num { text-align: right; font-variant-numeric: tabular-nums; }
.season__pos { width: 2.5em; color: var(--text-subtle); font-variant-numeric: tabular-nums; }
.season__team { font-weight: var(--weight-body-bold, 600); }
.season__w { font-weight: var(--weight-body-bold, 600); }
/* The top row is the only one anyone looks for first. */
.season__table tbody tr:first-child .season__team { color: var(--accent-deep); }

/* --- schedule --- */
.season__dates { list-style: none; margin: 0; padding: 0; }
.season__date { padding: 18px 0; border-top: 1px solid var(--rule); }
.season__date-label {
  margin: 0 0 10px; font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--text-subtle);
}
/* Played dates recede so the next fixture is what the eye lands on. */
.season__date[data-past="true"] { opacity: .74; }

.season__games { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.season__game {
  display: grid;
  grid-template-columns: 120px 1fr auto 1fr auto;
  align-items: center;
  column-gap: 14px;
}
.season__when { color: var(--text-muted); font-size: var(--fs-body-sm); display: flex; gap: 8px; }
.season__field { color: var(--text-subtle); }
.season__side { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.season__side:last-of-type { justify-content: flex-end; text-align: right; }
.season__name { overflow-wrap: anywhere; }
.season__score { font-variant-numeric: tabular-nums; color: var(--text-muted); min-width: 1.6em; text-align: right; }
.season__side.is-win .season__name,
.season__side.is-win .season__score { font-weight: var(--weight-body-bold, 600); color: var(--color-navy); }
.season__v { color: var(--text-subtle); font-size: var(--fs-body-sm); }
.season__tag { color: var(--accent-deep); }
.season__game--none { grid-template-columns: 1fr; color: var(--text-muted); font-style: italic; }

.season__notes { list-style: none; margin: 36px 0 0; padding: 20px 0 0; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 6px; }
.season__notes li { color: var(--text-muted); }

.tone--navy .season__subhead { color: var(--accent-decor); }
.tone--navy .season__side.is-win .season__name,
.tone--navy .season__side.is-win .season__score { color: var(--color-white); }
.tone--navy .season__table tbody tr:first-child .season__team { color: var(--accent); }

@media (max-width: 860px) {
  .season__hide-sm { display: none; }
}
@media (max-width: 680px) {
  /* The 5-column fixture row cannot hold at phone width; stack it so the two
     teams stay on one line each and the time sits above them. */
  .season__game { grid-template-columns: 1fr auto; row-gap: 4px; }
  .season__when { grid-column: 1 / -1; }
  .season__side { grid-column: 1 / -1; justify-content: space-between; }
  .season__side:last-of-type { text-align: left; }
  .season__v { display: none; }
}
