.grl-pwa-card{position:fixed;z-index:99990;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(680px,calc(100% - 28px));display:grid;grid-template-columns:1fr auto;gap:8px 18px;align-items:center;padding:18px 20px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(16,34,48,.94);color:#fff;box-shadow:0 18px 60px rgba(0,0,0,.34);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font-family:var(--grl-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}
.grl-pwa-card[hidden],.grl-pwa-modal[hidden],.grl-pwa-action[hidden]{display:none!important}.grl-pwa-copy{display:flex;flex-direction:column;gap:3px;padding-right:12px}.grl-pwa-copy strong{font-size:17px}.grl-pwa-copy span{font-size:13px;line-height:1.4;color:rgba(255,255,255,.72)}.grl-pwa-action{grid-column:2;grid-row:1/3;min-height:44px;padding:0 17px;border:0;border-radius:999px;background:var(--grl-accent,#e8792f);color:#fff;font-weight:800;cursor:pointer;white-space:nowrap}.grl-pwa-action:disabled{opacity:.75;cursor:default}.grl-pwa-close{position:absolute;right:8px;top:5px;border:0;background:transparent;color:rgba(255,255,255,.55);font-size:21px;cursor:pointer}.grl-pwa-modal{position:fixed;z-index:99999;inset:0;display:grid;place-items:end center;padding:20px;background:rgba(0,0,0,.48);font-family:var(--grl-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}.grl-pwa-modal-box{position:relative;width:min(520px,100%);padding:24px;border-radius:24px;background:#fff;color:#14293a;box-shadow:0 20px 70px rgba(0,0,0,.35)}.grl-pwa-modal-box strong{font-size:21px}.grl-pwa-modal-box p{line-height:1.55}.grl-pwa-modal-box .grl-pwa-close{color:#5b6470}.grl-pwa-note{font-size:13px;color:#66717b}@media(max-width:620px){.grl-pwa-card{grid-template-columns:1fr;padding:17px 18px}.grl-pwa-action{grid-column:1;grid-row:auto;width:100%;margin-top:5px}.grl-pwa-copy{padding-right:20px}}
@media(prefers-reduced-motion:reduce){.grl-pwa-card,.grl-pwa-modal{scroll-behavior:auto}}

/* 1.3.0.5 — ingresso morbido per CTA e modali PWA */
@keyframes grlPwaCardEnter{from{opacity:0;transform:translate(-50%,18px) scale(.985)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes grlPwaModalEnter{from{opacity:0}to{opacity:1}}
@keyframes grlPwaModalBoxEnter{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.grl-pwa-card.grl-pwa-enter{animation:grlPwaCardEnter .42s cubic-bezier(.2,.8,.2,1) both}
.grl-pwa-modal.grl-pwa-enter{animation:grlPwaModalEnter .28s ease-out both}
.grl-pwa-modal.grl-pwa-enter .grl-pwa-modal-box{animation:grlPwaModalBoxEnter .42s cubic-bezier(.2,.8,.2,1) both}
@media(prefers-reduced-motion:reduce){.grl-pwa-card.grl-pwa-enter,.grl-pwa-modal.grl-pwa-enter,.grl-pwa-modal.grl-pwa-enter .grl-pwa-modal-box{animation:none!important}}
