- Remove MD 1/2/3 grouping from GroupStageStandings; list matches
chronologically under date separators (Jun 14, Jun 18, etc.)
- Fix MatchResult layout: show kick-off time below team names instead
of sandwiching the date between them
- Sort group stage matches by scheduledAt ASC NULLS LAST in the model
so unscheduled matches always trail scheduled ones
- Add Groups/Bracket toggle to the sports season page when both a group
stage and knockout bracket exist, mirroring the NBA/AFL standings toggle;
sports with both standings and group stage now include all three views
- Include group stage matches in getUpcomingEventsForDraftedParticipants
so World Cup fixtures appear on the home page calendar
- Fix isAllCompete check in UpcomingEventsCard and UpcomingCalendarPanel
to treat group_stage_match as a bracket-style event (shows team badges,
not "N of your picks")
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix UTC midnight rollover bug: server now queries from yesterday UTC
as a buffer; UpcomingCalendarPanel filters to local-today client-side
via useEffect + Intl.DateTimeFormat, removing the need for any
cookie or server-side timezone detection
- Cap homepage and league page panels at 6 events with a "View all" link
- Add /upcoming-events page (60-day view across all leagues)
- Add /leagues/:leagueId/upcoming-events page (60-day per-league view)
- Add emptyMessage prop to UpcomingCalendarPanel for context-specific copy
- Change getUpcomingEventsForDraftedParticipants to accept pre-computed
date strings instead of Date objects
fixes#213
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>