health-check переписан: живой = пришли заголовки 200-399 (рвём соединение сразу, не ждём бесконечное тело аудиопотока), параллельно, прогон при старте + ежечасно. Раньше GET висел на живых потоках до таймаута → ложный offline. Новый GET /stations/offline-ids отдаёт station_id оффлайн-станций — клиент их скрывает. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>