cbced8d4b6
The schedule details page now renders Angular's <schedule-details-header> summary block (badges per flight + share/last-update + full-route timeline) between the day-tabs strip and the per-leg cards, so a connecting itinerary like SU 6188 + SU 6341 surfaces both flight numbers and the combined Moscow→Murmansk timeline up top instead of jumping straight from the date tabs to the first-leg detail card. Mini-list duplicate fix: when the sibling search returned 0 matches the fallback path used to leak the URL-parsed per-leg breakdown into the rail, producing a first-leg-only row stacked next to the synthesized combined row. Now the fallback is empty — the mini-list just shows the (synthesized) current flight on its own. FullRouteTimeline now uses the API's pre-formatted .localTime instead of the full ISO .local, so 00:30 / 02:00 shows up instead of 2026-04-26T00:30:00+03:00. useAppSettings.buyTicketMaxHours: parse <n>d as well as <n>h (Angular ships 330d for buyPeriod.max). Without this the Buy button hides for any flight more than ~3 days out. Plumbed sortMode/onSortChange/hideColumnHeaders through DayGroupedFlightList so the sticky ScheduleColumnHeaders and the inner list stay in sync (removes 2 TS errors in ScheduleSearchPage).