.race-series-card { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(14rem, 1fr) auto; }
.series-next-race { border-left: 1px solid var(--edge); padding-left: 1.5rem; }
.series-next-label { font-size: .875rem; color: var(--ink-muted); }
.series-next-detail { display: grid; gap: .35rem; margin-top: .4rem; }
.series-next-detail strong { font-size: 1.125rem; font-weight: 600; }
.series-next-detail span { color: var(--ink-muted); font-size: .875rem; }
.points-period { padding: 1.25rem; border: 1px solid var(--edge); border-radius: var(--radius); background: var(--surface); }
.points-period-nav { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.points-period-nav h2 { font-size: 1.5rem; font-weight: 600; }
.points-source { color: var(--ink-muted); font-size: .875rem; margin-top: .75rem; }
.points-personal { margin-top: 1rem; font-size: 1.125rem; }
.points-personal strong { color: var(--accent); }
.points-your-row td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
.points-you { margin-left: .75rem; color: var(--accent); font-size: .875rem; }
.points-previous-winner > p { padding-block: .35rem; }
/* The quarter championship: table and rewards ladder side by side, and the
   signed-in driver's card above them. */
.points-with-ladder { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); gap: 1.25rem; align-items: start; }
.points-reward { font-size: .875rem; }
.points-reward-prize { color: var(--accent); }
.reward-ladder { margin-top: 1rem; padding: 1.25rem; border: 1px solid var(--edge); border-radius: var(--radius); background: var(--surface); }
.reward-ladder-heading { margin-top: 1rem; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-muted); }
.reward-ladder-list { margin-top: .5rem; display: grid; gap: .5rem; font-size: .875rem; }
.reward-ladder-list li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .5rem; align-items: baseline; }
.reward-ladder-key { color: var(--ink-muted); white-space: nowrap; }
.reward-ladder-value { display: block; color: var(--ink-faint); font-size: .8rem; }
.reward-ladder-note { margin-top: 1rem; color: var(--ink-faint); font-size: .8rem; }
.quarter-card { margin-top: 1rem; padding: 1rem 1.25rem; border: 1px solid var(--accent); border-radius: var(--radius); background: var(--surface-2); display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: 1rem; }
.quarter-card .points-personal { margin-top: 0; }
.quarter-card-reward, .quarter-card-next { margin-top: .4rem; font-size: .9rem; color: var(--ink-muted); }
.quarter-card-reward strong { color: var(--ink); }
.quarter-card-sources { margin-top: .5rem; display: grid; gap: .3rem; font-size: .875rem; }
.quarter-card-sources li { display: flex; justify-content: space-between; gap: .75rem; color: var(--ink-muted); }
@media (max-width: 900px) {
  .points-with-ladder, .quarter-card { grid-template-columns: minmax(0, 1fr); }
  .race-series-card { grid-template-columns: minmax(0, 1fr) minmax(12rem, 1fr); }
  .race-series-card .challenge-action { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 640px) {
  .race-series-card { grid-template-columns: minmax(0, 1fr); }
  .series-next-race { border-left: 0; border-top: 1px solid var(--edge); padding: 1rem 0 0; }
  .race-series-card .challenge-action { justify-self: stretch; }
}
