Resolves the import conflict with the rotating dashboard hero (#1725), which
moved the hero TMDB service out of the rails component.
Addresses the Codex review on #1738: the 92-line rail-gate initializer grew
the grandfathered rails component from 703 to 795 lines. The rail order and
conditions now live in dashboard-rail-skeletons.ts behind a structural host
interface, the component keeps a single field (+2 lines over master), and a
spec covers the dashboard-specific rules (live favorites suppressed by the
recent-live rail below it, sources gated on playlists, Xtream on having an
Xtream playlist, disabled rails ignored). The seeded-profile timeline on the
merged branch, with the new hero, is still 0.0004 on each of three reloads.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>