.pwa-banner{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);width:min(60rem, calc(100% - 2rem));z-index:39;background:hsl(var(--bulma-primary-h),var(--bulma-primary-s),var(--bulma-primary-l));color:#fff;border-radius:14px;box-shadow:0 12px 32px rgb(18 58 71 / .35);animation:pwa-banner-in 0.3s ease-out}@keyframes pwa-banner-in{from{opacity:0;transform:translate(-50%,.75rem)}to{opacity:1;transform:translate(-50%,0)}}.pwa-banner__inner{display:flex;align-items:center;gap:.85rem;padding:.75rem 1rem}.pwa-banner__icon{width:40px;height:40px;border-radius:10px;flex:0 0 auto}.pwa-banner__text{flex:1 1 auto;min-width:0}.pwa-banner__title{font-weight:700;font-size:.95rem;line-height:1.25;color:#fff}.pwa-banner__subtitle{font-size:.8rem;line-height:1.3;color:hsl(0 0% 100% / .85)}.pwa-banner__cta{font-weight:600;white-space:nowrap;flex:0 0 auto}.pwa-banner__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:0;border-radius:9999px;background:#fff0;color:hsl(0 0% 100% / .85);cursor:pointer}.pwa-banner__close:hover,.pwa-banner__close:focus{background:hsl(0 0% 100% / .12);color:#fff}@media (max-width:768px){.pwa-banner{left:.75rem;right:.75rem;bottom:calc(5rem + env(safe-area-inset-bottom, 0px));transform:none;width:auto;border-radius:14px;animation:pwa-banner-in-mobile 0.3s ease-out}@keyframes pwa-banner-in-mobile{from{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.pwa-banner__inner{padding-bottom:.75rem}.pwa-banner__subtitle{display:none}}