.pwa-install-banner,.pwa-update-banner{position:fixed;left:50%;transform:translateX(-50%);max-width:500px}.pwa-install-banner{bottom:-200px;width:calc(100% - 2rem);background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:1.25rem;z-index:10000;transition:bottom .3s cubic-bezier(.4, 0, .2, 1)}.pwa-install-banner.show{bottom:1.5rem}.pwa-install-content{display:flex;align-items:center;gap:1rem}.pwa-install-icon{flex-shrink:0}.pwa-install-icon img{width:56px;height:56px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.pwa-install-text{flex:1}.pwa-install-btn,.pwa-install-close{display:flex;align-items:center;cursor:pointer;transition:.2s}.pwa-install-text strong{display:block;font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:.25rem}.pwa-install-text p{font-size:.875rem;color:var(--gray-600);margin:0}.pwa-install-btn{gap:.5rem;padding:.75rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-weight:600;flex-shrink:0}.pwa-install-btn:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.3)}.pwa-install-btn:active{transform:translateY(0)}.pwa-install-close{width:32px;height:32px;justify-content:center;background:var(--gray-100);border:none;border-radius:50%;color:var(--gray-600);flex-shrink:0}.pwa-install-close:hover{background:var(--gray-200);color:var(--gray-800)}.pwa-update-banner{top:-200px;width:calc(100% - 2rem);background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.2);padding:1.25rem;z-index:10001;transition:top .3s cubic-bezier(.4, 0, .2, 1)}.pwa-update-btn,.pwa-update-close{display:flex;cursor:pointer;transition:.2s}.pwa-update-banner.show{top:1.5rem}.pwa-update-content{display:flex;align-items:center;gap:1rem}.pwa-update-content>i{font-size:1.5rem;animation:2s linear infinite rotate}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.pwa-update-text{flex:1}.pwa-update-text strong{display:block;font-size:1rem;font-weight:600;margin-bottom:.25rem}.pwa-update-text p{font-size:.875rem;opacity:.9;margin:0}.pwa-update-btn{align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#fff;color:var(--primary-color);border:none;border-radius:8px;font-weight:600;flex-shrink:0}.pwa-update-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,255,255,.3)}.pwa-update-btn:active{transform:translateY(0)}.pwa-update-close{width:32px;height:32px;align-items:center;justify-content:center;background:rgba(255,255,255,.2);border:none;border-radius:50%;color:#fff;flex-shrink:0}.pwa-update-close:hover{background:rgba(255,255,255,.3)}body.pwa-standalone{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}@media (max-width:640px){.pwa-install-banner,.pwa-update-banner{width:calc(100% - 1rem);padding:1rem}.pwa-install-banner.show{bottom:1rem}.pwa-update-banner.show{top:1rem}.pwa-install-content,.pwa-update-content{gap:.75rem}.pwa-install-icon img{width:48px;height:48px}.pwa-install-text strong,.pwa-update-text strong{font-size:.9375rem}.pwa-install-text p,.pwa-update-text p{font-size:.8125rem}.pwa-install-btn,.pwa-update-btn{padding:.625rem 1rem;font-size:.875rem}}