:root{
  --pwa-bg:#050a08;
  --pwa-panel:#0a1510;
  --pwa-line:rgba(92,240,170,.16);
  --pwa-green:#5cf0aa;
  --pwa-cyan:#69e8dd;
  --pwa-text:#edf9f2;
  --pwa-muted:#81988c;
  --pwa-danger:#ff748b;
  --pwa-shadow:0 30px 90px rgba(0,0,0,.55);
}
.pwa-install-banner,
.pwa-update-banner{
  position:fixed;
  z-index:200;
  right:18px;
  bottom:18px;
  color:var(--pwa-text);
  border:1px solid var(--pwa-line);
  background:
    radial-gradient(
      circle at 90% 5%,
      rgba(92,240,170,.1),
      transparent 30%
    ),
    rgba(8,17,13,.97);
  box-shadow:var(--pwa-shadow);
  backdrop-filter:blur(18px);
}
.pwa-install-banner{
  width:min(470px,calc(100vw - 24px));
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto 34px;
  align-items:center;
  gap:12px;
  border-radius:18px;
  padding:12px;
  animation:pwaBannerIn .3s cubic-bezier(.2,.9,.25,1);
}
.pwa-install-banner.leaving{
  opacity:0;
  transform:translateY(14px) scale(.97);
  transition:.22s ease;
}
.pwa-install-banner img{
  width:56px;
  height:56px;
  border-radius:16px;
}
.pwa-install-banner small,
.pwa-update-banner small{
  display:block;
  color:var(--pwa-green);
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pwa-install-banner strong,
.pwa-update-banner strong{
  display:block;
  margin-top:4px;
  font-size:12px;
}
.pwa-install-banner p{
  margin:5px 0 0;
  color:var(--pwa-muted);
  font-size:8px;
  line-height:1.5;
}
.pwa-install-banner button,
.pwa-update-banner button,
.pwa-ios-dialog button,
.pwa-offline-card button,
.pwa-offline-card a{
  min-height:39px;
  border:1px solid var(--pwa-line);
  border-radius:10px;
  padding:0 12px;
  color:#aabdb2;
  background:rgba(255,255,255,.018);
  cursor:pointer;
  font:800 8px/1 Inter,Segoe UI,Arial,sans-serif;
  text-decoration:none;
  text-transform:uppercase;
  transition:
    transform .15s ease,
    color .2s ease,
    background .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}
.pwa-install-banner button:hover,
.pwa-update-banner button:hover,
.pwa-ios-dialog button:hover,
.pwa-offline-card button:hover,
.pwa-offline-card a:hover{
  transform:translateY(-2px);
  color:#04100a;
  border-color:transparent;
  background:linear-gradient(
    100deg,
    var(--pwa-green),
    var(--pwa-cyan)
  );
  box-shadow:0 12px 26px rgba(92,240,170,.14);
}
.pwa-install-primary{
  color:#04100a !important;
  border-color:transparent !important;
  background:linear-gradient(
    100deg,
    var(--pwa-green),
    var(--pwa-cyan)
  ) !important;
}
.pwa-install-close{
  width:32px;
  height:32px;
  min-height:32px !important;
  padding:0 !important;
  border-radius:9px !important;
}
.pwa-update-banner{
  display:flex;
  align-items:center;
  gap:18px;
  border-radius:16px;
  padding:14px;
  animation:pwaBannerIn .28s ease-out;
}
.pwa-toast{
  max-width:min(430px,calc(100vw - 24px));
  position:fixed;
  z-index:250;
  left:50%;
  bottom:18px;
  border:1px solid var(--pwa-line);
  border-radius:12px;
  padding:12px 15px;
  color:#dcebe3;
  background:#0b1711;
  box-shadow:var(--pwa-shadow);
  opacity:0;
  transform:translate(-50%,14px);
  pointer-events:none;
  transition:.25s ease;
  font:600 10px/1.5 Inter,Segoe UI,Arial,sans-serif;
}
.pwa-toast.show{
  opacity:1;
  transform:translate(-50%,0);
}
.pwa-toast.success{
  border-color:rgba(92,240,170,.3);
}
.pwa-toast.warning{
  color:#ffe2a3;
  border-color:rgba(255,194,77,.35);
}
.pwa-ios-dialog{
  width:min(500px,calc(100% - 24px));
  border:0;
  padding:0;
  color:var(--pwa-text);
  background:transparent;
}
.pwa-ios-dialog::backdrop{
  background:rgba(0,0,0,.76);
  backdrop-filter:blur(8px);
}
.pwa-ios-dialog>section{
  border:1px solid var(--pwa-line);
  border-radius:20px;
  padding:20px;
  background:
    radial-gradient(
      circle at 90% 5%,
      rgba(92,240,170,.09),
      transparent 28%
    ),
    var(--pwa-panel);
  box-shadow:var(--pwa-shadow);
}
.pwa-ios-dialog header{
  display:flex;
  justify-content:space-between;
  gap:15px;
}
.pwa-ios-dialog header small{
  display:block;
  color:var(--pwa-green);
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
}
.pwa-ios-dialog header strong{
  display:block;
  margin-top:6px;
  font-size:21px;
}
.pwa-ios-dialog header button{
  width:34px;
  height:34px;
  min-height:34px;
  padding:0;
}
.pwa-ios-dialog ol{
  display:grid;
  gap:12px;
  margin:22px 0;
  padding-left:22px;
  color:#a9bbb1;
  font:500 11px/1.65 Inter,Segoe UI,Arial,sans-serif;
}
.pwa-dialog-ok{
  width:100%;
  color:#04100a !important;
  border-color:transparent !important;
  background:linear-gradient(
    100deg,
    var(--pwa-green),
    var(--pwa-cyan)
  ) !important;
}
.pwa-is-offline::after{
  content:"Offline";
  position:fixed;
  z-index:190;
  left:50%;
  top:7px;
  border:1px solid rgba(255,194,77,.35);
  border-radius:999px;
  padding:5px 10px;
  color:#ffe2a3;
  background:rgba(24,18,7,.92);
  transform:translateX(-50%);
  font:900 7px/1 Inter,Segoe UI,Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* Página offline */
.pwa-offline-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  margin:0;
  padding:20px;
  color:var(--pwa-text);
  background:
    radial-gradient(
      circle at 15% 10%,
      rgba(92,240,170,.1),
      transparent 28%
    ),
    radial-gradient(
      circle at 85% 15%,
      rgba(105,232,221,.06),
      transparent 24%
    ),
    var(--pwa-bg);
  font-family:Inter,Segoe UI,Arial,sans-serif;
}
.pwa-offline-card{
  width:min(620px,100%);
  display:grid;
  justify-items:center;
  border:1px solid var(--pwa-line);
  border-radius:25px;
  padding:clamp(28px,7vw,58px);
  text-align:center;
  background:rgba(8,17,13,.92);
  box-shadow:var(--pwa-shadow);
}
.pwa-offline-card>img{
  width:92px;
  height:92px;
}
.pwa-offline-card>small{
  margin-top:17px;
  color:var(--pwa-green);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.pwa-offline-card h1{
  margin:12px 0 10px;
  font-size:clamp(38px,8vw,66px);
  line-height:.94;
  letter-spacing:-.055em;
}
.pwa-offline-card p{
  max-width:490px;
  margin:0;
  color:var(--pwa-muted);
  font-size:12px;
  line-height:1.75;
}
.pwa-offline-card>div{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin-top:23px;
}
.pwa-offline-card>span{
  margin-top:17px;
  color:#667c70;
  font-size:8px;
}
@keyframes pwaBannerIn{
  from{
    opacity:0;
    transform:translateY(14px) scale(.97);
  }
  to{
    opacity:1;
    transform:none;
  }
}
@media(max-width:650px){
  .pwa-install-banner{
    grid-template-columns:48px minmax(0,1fr) 32px;
    right:12px;
    bottom:12px;
  }
  .pwa-install-banner img{
    width:46px;
    height:46px;
    border-radius:13px;
  }
  .pwa-install-banner>div{
    grid-column:1/-1;
    display:grid;
  }
  .pwa-install-close{
    grid-column:3;
    grid-row:1;
  }
  .pwa-update-banner{
    right:12px;
    bottom:12px;
    left:12px;
    justify-content:space-between;
  }
}
@media(prefers-reduced-motion:reduce){
  .pwa-install-banner,
  .pwa-update-banner{
    animation:none;
  }
  .pwa-install-banner button,
  .pwa-update-banner button,
  .pwa-ios-dialog button,
  .pwa-offline-card button,
  .pwa-offline-card a{
    transition:none;
  }
}


/* HOTFIX 10.2.1 — banner consistente no site institucional */
.pwa-install-banner,
.pwa-install-banner *,
.pwa-update-banner,
.pwa-update-banner *{
  box-sizing:border-box;
}
.pwa-install-banner{
  font-family:Inter,Segoe UI,Arial,sans-serif;
  line-height:1.2;
}
.pwa-install-banner img{
  display:block;
  object-fit:cover;
}
.pwa-install-banner [data-pwa-install-actions]{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.pwa-install-banner button,
.pwa-update-banner button{
  appearance:none;
  margin:0;
  white-space:nowrap;
}
.pwa-install-banner>span{
  min-width:0;
}
.pwa-install-banner>span strong,
.pwa-install-banner>span p{
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:650px){
  .pwa-install-banner [data-pwa-install-actions]{
    width:100%;
  }
  .pwa-install-banner [data-pwa-install-actions] button{
    width:100%;
  }
}
