{{-- Self-contained update-progress page. NO Livewire, NO Alpine, NO external JS. Loaded into the browser BEFORE the container teardown triggered by the update request. While the backend is down the page is already client-side; its inline JS polling loop tolerates 502s and only finishes once /version.json reports a version DIFFERENT from the pre-update one (or a down→up cycle for a same-version redeploy). The old container keeps answering /up 200 throughout the long build, so /up alone would redirect prematurely back into the rebuild — that was the 502. Modelled on errors/layout.blade.php (same token-only CSS, same wordmark). --}}
{{ __('update.subtitle') }}
{{ __('update.timeout_hint') }}
{{ __('update.elapsed') }}: 0s