:root{--pwa-theme-color:#5e72e4}
html,body{overscroll-behavior-y:contain}
body{animation:pwa-fade-in .2s ease-out}
@keyframes pwa-fade-in{from{opacity:0}to{opacity:1}}
@media(display-mode:standalone){
  body::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--pwa-theme-color,#5e72e4);z-index:99999;pointer-events:none}
  .navbar,.sidenav-header,.main-content .navbar{padding-top:calc(.5rem + env(safe-area-inset-top,0px))}
  .footer,.fixed-bottom{padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}
  .btn-floating,.fab,.whatsapp-btn{bottom:calc(1rem + env(safe-area-inset-bottom,0px))}
  .container,.container-fluid{padding-left:calc(15px + env(safe-area-inset-left,0px));padding-right:calc(15px + env(safe-area-inset-right,0px))}
  body{padding-top:env(safe-area-inset-top,0px)}
  .browser-only{display:none!important}
  .nav-link,.list-group-item,.dropdown-item{min-height:44px;display:flex;align-items:center}
}
.ptr-indicator{position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(-60px);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;transition:transform .2s ease;pointer-events:none}
.ptr-indicator.visible{transform:translateX(-50%) translateY(20px)}
@media(display-mode:standalone){
  .ptr-indicator.visible{transform:translateX(-50%) translateY(calc(20px + env(safe-area-inset-top,0px)))}
}
.ptr-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%}
.ptr-spinner.spinning{animation:ptr-spin .6s linear infinite}
@keyframes ptr-spin{to{transform:rotate(360deg)}}
.pwa-progress-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,#5e72e4,#825ee4);z-index:99999;transform:scaleX(0);transform-origin:left;width:100%;pointer-events:none}
.pwa-progress-bar.loading{transform:scaleX(.7);transition:transform 8s cubic-bezier(.1,.05,0,1)}
.pwa-progress-bar.done{transform:scaleX(1);opacity:0;transition:transform .2s ease,opacity .3s ease .2s}
.nav-link:active,.sidenav .nav-link:active,.list-group-item:active{transform:scale(.97);opacity:.8;transition:transform .1s ease,opacity .1s ease}
.pwa-banner{position:fixed;bottom:0;left:0;right:0;background:#fff;color:#1a1a2e;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;padding-left:40px;z-index:99998;transform:translateY(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;box-shadow:0 -2px 12px rgba(0,0,0,.12);padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
.pwa-banner--visible{transform:translateY(0)}
.pwa-banner__close{position:absolute;top:50%;left:10px;transform:translateY(-50%);background:none;border:none;font-size:22px;line-height:1;color:#999;cursor:pointer;padding:4px}
.pwa-banner__close:hover{color:#333}
.pwa-banner__content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.pwa-banner__icon{width:40px;height:40px;border-radius:10px;flex-shrink:0;object-fit:cover;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.pwa-banner__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.pwa-banner__text strong{font-size:14px;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pwa-banner__text span{font-size:12px;color:#777;white-space:normal;line-height:1.4}
.pwa-banner__actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}
.pwa-banner__btn{border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s}
.pwa-banner__btn:active{opacity:.7}
.pwa-banner__btn--install{background:#5e72e4;color:#fff}
.pwa-banner__btn--dismiss{background:transparent;color:#999;padding:8px 10px}