:root{--pwa-theme-color:var(--empresa-color, #ce32ff)}
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,#ce32ff);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,#ce32ff,#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:var(--empresa-color, #ce32ff);color:#fff}
.pwa-banner__btn--dismiss{background:transparent;color:#999;padding:8px 10px}

/* ============================================================
   BOTTOM NAVIGATION BAR (Mobile Carousel)
   ============================================================ */
.pwa-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:#fff;box-shadow:0 -2px 10px rgba(0,0,0,.08);z-index:9999;padding-bottom:env(safe-area-inset-bottom,0px)}
.pwa-bottom-nav-scroll{display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;height:100%;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:0;padding:0 4px}
.pwa-bottom-nav-scroll::-webkit-scrollbar{display:none}
.pwa-bottom-nav-item{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#8898aa;padding:6px 2px 4px;scroll-snap-align:start;transition:color .15s ease,background .15s ease;position:relative;border-radius:0;-webkit-tap-highlight-color:transparent}
.pwa-bottom-nav-item i,.pwa-bottom-nav-item .fas,.pwa-bottom-nav-item .far,.pwa-bottom-nav-item .fab,.pwa-bottom-nav-item .fa,.pwa-bottom-nav-item .ni{font-size:20px;line-height:1;margin-bottom:3px}
.pwa-bottom-nav-item span{font-size:9px;line-height:1.15;text-align:center;max-width:62px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.pwa-bottom-nav-item:hover,.pwa-bottom-nav-item:focus{color:#525f7f;text-decoration:none}
.pwa-bottom-nav-item.active{color:var(--empresa-color,#ce32ff)}
.pwa-bottom-nav-item.active::before{content:'';position:absolute;top:0;left:25%;right:25%;height:3px;background:var(--empresa-color,#ce32ff);border-radius:0 0 3px 3px}
.pwa-bottom-nav-item.has-submenu::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid currentColor;opacity:.5}
.pwa-bottom-nav-item.disabled{opacity:.4;pointer-events:none}
.pwa-bottom-nav-sep{flex:0 0 4px;display:flex;align-items:center;justify-content:center}
.pwa-bottom-nav-sep::after{content:'';width:3px;height:3px;border-radius:50%;background:#dee2e6}

@media(max-width:768px){
  /* Navegacion movil = sidebar normal (hamburguesa) como bessacandina.
     La barra inferior autogenerada queda deshabilitada; el sidebar y su
     boton hamburguesa (.nav-toggle-btn d-xl-none) se comportan via Argon. */
  .pwa-bottom-nav{display:none!important}
}