.nw-pwa-stack{
  position:fixed;
  left:0; right:0;
  bottom:16px;
  z-index:95;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:0 12px;
  pointer-events:none;
}
.nw-pwa-bar{
  pointer-events:auto;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:min(560px,94vw);
  padding:9px 10px 9px 14px;
  border-radius:3px;
  background:rgba(14,14,18,.96);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 14px 34px rgba(0,0,0,.55);
  color:#e9e5df;
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:300;
  font-size:.74rem;
  letter-spacing:.03em;
  line-height:1.6;
  animation:nwPwaIn .18s ease-out;
}
@keyframes nwPwaIn{ from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.nw-pwa-tx{ flex:1 1 auto; min-width:0; }
.nw-pwa-acts{ display:flex; align-items:center; gap:6px; flex:0 0 auto; }
.nw-pwa-btn{
  font-family:inherit;
  font-size:.72rem;
  letter-spacing:.08em;
  color:#c9c4bd;
  background:transparent;
  border:1px solid rgba(255,255,255,.16);
  border-radius:2px;
  padding:6px 11px;
  cursor:pointer;
}
.nw-pwa-btn:hover{ color:#f2f0ec; border-color:rgba(255,255,255,.3); }
.nw-pwa-btn:active{ transform:translateY(1px); }
.nw-pwa-btn:focus-visible{ outline:2px solid rgba(223,199,154,.8); outline-offset:2px; }
.nw-pwa-btn.is-primary{
  color:#f0d6a8;
  border-color:rgba(223,199,154,.5);
  background:rgba(223,199,154,.12);
}
.nw-pwa-btn.is-primary:hover{ border-color:rgba(223,199,154,.8); }
.nw-pwa-install{ border-color:rgba(223,199,154,.42); }
.nw-pwa-offline{ border-color:rgba(240,180,150,.42); color:#f0c9b0; }
.nw-pwa-online{ border-color:rgba(127,192,138,.42); color:#cfe6d4; }
.nw-pwa-update{ border-color:rgba(223,199,154,.42); }
.nw-pwa-nosw{ border-color:rgba(223,199,154,.6); }
@media (max-width:640px){
  .nw-pwa-stack{
    bottom:calc(var(--nw-tab-h, 54px) + env(safe-area-inset-bottom) + 10px);
    padding:0 10px;
  }
  .nw-pwa-bar{
    width:100%;
    max-width:none;
    flex-wrap:wrap;
    font-size:.72rem;
    padding:9px 10px 9px 12px;
  }
  .nw-pwa-tx{ flex:1 1 100%; }
  .nw-pwa-acts{ width:100%; justify-content:flex-end; }
  .nw-pwa-btn{ padding:8px 14px; }
}
@media (prefers-reduced-motion:reduce){
  .nw-pwa-bar{ animation:none; }
}
@media print{
  .nw-pwa-stack{ display:none !important; }
}
