.pwa-banner{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;z-index:10000;box-shadow:0 -4px 20px rgba(0,0,0,.15);transition:.3s;transform:translateY(0);display:block}.pwa-banner.show{transform:translateY(0);opacity:1;visibility:visible}.pwa-banner.dismissed{transform:translateY(100%);opacity:0;visibility:hidden}.pwa-banner-content{display:flex;align-items:center;padding:15px 20px;max-width:1200px;margin:0 auto}.pwa-banner-icon{font-size:2rem;margin-right:15px;opacity:.9}.pwa-banner-text{flex:1;margin-right:15px}.pwa-banner-text h4{margin:0 0 5px;font-size:1.2rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.pwa-banner-text p{margin:0;font-size:.95rem;font-weight:500;opacity:.95;opacity:.9}.pwa-banner-actions{display:flex;gap:10px}.pwa-banner-actions .btn{border-radius:20px;font-weight:500;padding:8px 16px;border:none}.pwa-banner-actions .btn-success{background:rgba(255,255,255,.2);color:#fff;backdrop-filter:blur(10px)}.pwa-banner-actions .btn-success:hover{background:rgba(255,255,255,.3);transform:translateY(-1px)}.pwa-banner-actions .btn-outline-secondary{background:0 0;border:1px solid rgba(255,255,255,.3);color:#fff}.pwa-banner-actions .btn-outline-secondary:hover{background:rgba(255,255,255,.1)}.pwa-update-banner{position:fixed;top:20px;right:20px;background:#007bff;color:#fff;padding:15px 20px;border-radius:8px;box-shadow:0 4px 15px rgba(0,123,255,.3);z-index:10001;transform:translateX(400px);transition:transform .3s}.pwa-update-banner.show{transform:translateX(0)}.pwa-update-content{display:flex;align-items:center;gap:15px}.pwa-update-content i{animation:2s linear infinite spin}@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:768px){.pwa-banner-content{padding:12px 15px;flex-direction:column;text-align:center}.pwa-banner-icon{margin-right:0;margin-bottom:10px}.pwa-banner-text{margin-right:0;margin-bottom:15px}.pwa-banner-actions{justify-content:center}.pwa-update-banner{top:10px;right:10px;left:10px;transform:translateY(-100px)}.pwa-update-banner.show{transform:translateY(0)}.pwa-update-content{flex-direction:column;text-align:center;gap:10px}}@media (display-mode:standalone) and (-webkit-touch-callout:none){.container{padding-top:20px}}@media (display-mode:standalone){.pwa-banner{display:none!important}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}*{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}}#pwa-install-btn{animation:2s infinite pulse;position:relative;overflow:hidden}@keyframes pulse{0%,100%{transform:scale(1.05);box-shadow:0 4px 15px rgba(255,215,0,.4)}50%{transform:scale(1.1);box-shadow:0 6px 20px rgba(255,215,0,.6)}}#pwa-install-btn:hover{animation:none;transform:scale(1.15)!important;box-shadow:0 8px 25px rgba(255,215,0,.8)!important}