.client-update-notice {
    position: fixed;
    z-index: 11000;
    right: 12px;
    bottom: calc(90px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    width: min(360px, calc(100% - 24px));
    padding: 12px 44px 12px 12px;
    border: 1px solid var(--control-border, #37434b);
    border-radius: 8px;
    background: var(--control-surface, #141b21);
    color: var(--control-text, #f1f4f6);
    box-shadow: 0 4px 20px #0006;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.client-update-notice[hidden], .client-update-notice progress[hidden] { display: none; }
.client-update-notice small { display: block; color: var(--control-muted, #a9b5be); }
.client-update-notice progress { display: block; width: 100%; height: 6px; margin-top: 8px; accent-color: #45b0d7; }
.client-update-notice button {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 22px;
    cursor: pointer;
}
.client-update-notice button:focus-visible { outline: 2px solid #45b0d7; outline-offset: -3px; }
