diff --git a/docs/web/control-ui.md b/docs/web/control-ui.md
index ade9ac3537da..f949e7da97db 100644
--- a/docs/web/control-ui.md
+++ b/docs/web/control-ui.md
@@ -283,9 +283,9 @@ The terminal is also available as a full-screen, terminal-only document at `/?vi
## Connection loss and reconnect
Once a session is established, a dropped Gateway connection does not log you out. The dashboard
-stays visible with an amber "Gateway connection lost — reconnecting…" banner while the client
-retries automatically with backoff (800 ms up to 15 s). Live updates and actions pause until the
-connection returns; **Retry now** in the banner forces an immediate attempt.
+stays visible with a floating amber "Gateway connection lost — Reconnecting…" pill under the top
+bar while the client retries automatically with backoff (800 ms up to 15 s). Live updates and
+actions pause until the connection returns; **Retry now** in the pill forces an immediate attempt.
The login gate only appears when there is no established session yet (first open, page reload
before connect) or when the Gateway actively rejects the credentials (bad token/password, revoked
diff --git a/ui/src/components/connection-banner.ts b/ui/src/components/connection-banner.ts
index 0af60047e4d5..474ddb86bc2a 100644
--- a/ui/src/components/connection-banner.ts
+++ b/ui/src/components/connection-banner.ts
@@ -13,19 +13,18 @@ export type ConnectionBannerProps = {
function renderConnectionBanner(props: ConnectionBannerProps) {
const detail = props.lastError ? redactLoginFailureError(props.lastError) : null;
+ const hint = t("connection.offlineHint");
return html`
-