.pwa-install-banner{position:fixed;bottom:calc(20px + var(--sa-bottom, env(safe-area-inset-bottom, 0px)) + var(--bottom-nav-height, 0px));left:50%;transform:translate(-50%) translateY(120%);width:calc(100% - 32px);max-width:480px;background:var(--surface, var(--bg-primary, #fff));border-radius:14px;box-shadow:0 10px 40px #0000002e;z-index:9999;padding:14px 16px;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s;opacity:0;pointer-events:none}.pwa-install-banner.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.pwa-install-content{display:flex;align-items:center;gap:12px}.pwa-install-icon{font-size:var(--fs-5xl, 32px);flex-shrink:0}.pwa-install-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pwa-install-text strong{font-size:var(--fs-md, 14px);font-weight:var(--fw-bold, 700);color:var(--text, var(--text-primary, #111827))}.pwa-install-text small{font-size:var(--fs-xs, 12px);color:var(--text-subtle, var(--text-secondary, #6b7280))}.pwa-install-btn{padding:8px 16px;background:var(--primary, #0f172a);color:var(--text-on-brand, #fff);border:none;border-radius:20px;font-weight:var(--fw-semibold, 600);font-size:var(--fs-sm, 13px);cursor:pointer;white-space:nowrap;font-family:inherit;transition:opacity .2s}.pwa-install-btn:hover{opacity:.9}.pwa-install-dismiss{background:none;border:none;color:var(--text-faint, var(--text-muted, #9ca3af));font-size:var(--fs-2xl, 22px);line-height:1;cursor:pointer;padding:4px 8px;flex-shrink:0;border-radius:6px;transition:color .2s,background .2s}.pwa-install-dismiss:hover{color:var(--text, var(--text-primary, #111827));background:var(--surface-sunken, var(--gray-100, #f1f5f9))}@media(max-width:480px){.pwa-install-banner{bottom:calc(12px + var(--sa-bottom, env(safe-area-inset-bottom, 0px)) + var(--bottom-nav-height, 0px));padding:12px 14px}.pwa-install-icon{font-size:var(--fs-3xl, 24px)}.pwa-install-text strong{font-size:var(--fs-sm, 13px)}.pwa-install-text small{font-size:var(--fs-2xs, 11px)}.pwa-install-btn{padding:6px 12px;font-size:var(--fs-xs, 12px)}}
