.cb-pwa-banner{--cbpwa-bg:#fff;--cbpwa-fg:#1f1a17;--cbpwa-muted:#6b625b;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:999999;max-width:440px;margin:0 auto;padding:16px 16px 14px;background:var(--cbpwa-bg);color:var(--cbpwa-fg);border-radius:18px;box-shadow:0 12px 40px rgba(20,12,6,.22),0 2px 6px rgba(20,12,6,.08);font-family:inherit;font-size:15px;line-height:1.4;transform:translateY(calc(100% + 40px));opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s ease}.cb-pwa-banner.is-visible{transform:none;opacity:1}.cb-pwa-banner *{box-sizing:border-box}.cb-pwa-head{display:flex;gap:12px;align-items:center;padding-right:28px}.cb-pwa-icon{flex:0 0 48px;width:48px;height:48px;border-radius:12px;object-fit:cover}.cb-pwa-banner p{margin:0}.cb-pwa-title{font-weight:700;font-size:16px}.cb-pwa-text{color:var(--cbpwa-muted);font-size:14px;margin-top:2px !important}.cb-pwa-btn{display:block;width:100%;margin:14px 0 0;padding:12px 16px;border:0;border-radius:999px;background:var(--cbpwa-accent,#3b2417);color:#fff;font:inherit;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.cb-pwa-btn--ghost{background:0 0;color:var(--cbpwa-accent,#3b2417);box-shadow:inset 0 0 0 1.5px currentColor}.cb-pwa-btn:focus-visible,.cb-pwa-close:focus-visible{outline:3px solid var(--cbpwa-accent,#3b2417);outline-offset:2px}.cb-pwa-close{position:absolute;top:6px;right:6px;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:0 0;color:var(--cbpwa-muted);font-size:24px;line-height:36px;cursor:pointer}.cb-pwa-ios{margin-top:12px !important;padding:10px 12px;border-radius:12px;background:#f5efe8;font-size:14px}.cb-pwa-share{display:inline-block;vertical-align:-3px;margin:0 2px;color:#007aff}.cb-pwa-install-btn[hidden]{display:none !important}@media (prefers-reduced-motion:reduce){.cb-pwa-banner{transition:opacity .2s ease;transform:none}}