.pwa-banner {
    position: fixed;
    left: .75rem;
    right: .75rem;
    bottom: calc(.75rem + env(safe-area-inset-bottom));
    z-index: 1070;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    justify-content: space-between;
    background: #111827;
    color: #fff;
    border-radius: .85rem;
    padding: .75rem .85rem;
    box-shadow: 0 10px 28px rgba(0,0,0,.28);
}
.pwa-banner-copy {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
    flex: 1 1 10rem;
    font-size: .88rem;
    line-height: 1.3;
}
.pwa-banner-copy span { color: #d1d5db; }
.pwa-banner-actions {
    display: flex;
    gap: .45rem;
    flex-shrink: 0;
}
.pwa-banner-install,
.pwa-banner-dismiss {
    border: 0;
    border-radius: .55rem;
    min-height: 2.4rem;
    padding: .35rem .7rem;
    font-weight: 600;
    font-size: .85rem;
}
.pwa-banner-install { background: #3d5afe; color: #fff; }
.pwa-banner-dismiss { background: rgba(255,255,255,.14); color: #fff; }
.tech-shell .pwa-banner {
    bottom: calc(4.85rem + env(safe-area-inset-bottom));
}
@media (min-width: 768px) {
    .tech-shell .pwa-banner {
        left: 50%;
        right: auto;
        width: min(26rem, calc(480px - 1.5rem));
        transform: translateX(-50%);
    }
}
