.site-update {
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 1700;
    display: flex;
    align-items: center;
    gap: 16px;
    width: min(520px, calc(100vw - 36px));
    padding: 13px 14px;
    border: 1px solid var(--accent-border, #a8ddd0);
    border-radius: 16px;
    color: var(--ink, #141414);
    background: var(--surface-glass-strong, rgba(255, 255, 255, 0.96));
    box-shadow: 0 18px 48px rgba(20, 20, 20, 0.16);
    backdrop-filter: blur(14px);
}

.site-update[hidden] {
    display: none !important;
}

.site-update-message {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1 1 auto;
}

.site-update-message img {
    flex: 0 0 auto;
}

.site-update-message p {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.45;
}

.site-update-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 7px;
}

.site-update-actions button {
    min-height: 34px;
    padding: 7px 11px;
    border: 1px solid var(--line, #e4e4e7);
    border-radius: 999px;
    color: var(--ink, #141414);
    background: var(--surface, #fff);
    font: 700 0.78rem/1.2 var(--font-sans, sans-serif);
    cursor: pointer;
}

.site-update-actions .site-update-now {
    border-color: var(--accent-border, #a8ddd0);
    color: var(--accent-deep, #0f766e);
    background: var(--accent-soft, #e7f7f2);
}

.site-update-actions button:focus-visible {
    outline: 2px solid rgba(var(--accent-rgb, 15, 118, 110), 0.48);
    outline-offset: 2px;
}

@media (max-width: 560px) {
    .site-update {
        left: max(10px, env(safe-area-inset-left));
        right: max(10px, env(safe-area-inset-right));
        bottom: max(10px, env(safe-area-inset-bottom));
        width: auto;
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .site-update-actions button {
        flex: 1 1 0;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .site-update:not([hidden]) {
        animation: update-banner-in 260ms cubic-bezier(0.22, 1, 0.36, 1);
    }
}

@keyframes update-banner-in {
    from { opacity: 0; transform: translateY(8px) scale(0.99); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
