sol: surface updated-days server failures
Return 500 with an error envelope from api_updated_days instead of a
silent 200 [], and migrate loadUpdatedBanner to apiJson with logError.
On refresh failure while the banner is visible, append a staleness row
and keep the pending-days links; on first-paint failure render an
unknown-status indicator. Never hide the banner on a failed health
check.