11 tasks: the shared banner store + renderer, a friendlier network-unreachable message in client.ts, then migrating every existing inline error site (GarminConnection, SyncModal, Profile, Activities, Analysis, TrainingTypesCard, LoginGate, OnboardingWizard) to it, finishing with dead-CSS cleanup. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>