html.csa-lock, body.csa-lock { overflow: hidden !important; touch-action: none; }

.csa-overlay {
  position: fixed;
  inset: 0;
  z-index: 99998;
  opacity: 0;
  transition: opacity .25s ease;
}
.csa-overlay.csa-visible { opacity: 1; }

.csa-box {
  position: fixed;
  left: 50%;
  bottom: -420px;
  transform: translateX(-50%);
  z-index: 99999;
  width: min(420px, 94vw);
  background: #fff;
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.25);
  transition: bottom .35s ease;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.csa-box.csa-visible { bottom: 0; }

.csa-close {
  position: absolute;
  top: 6px; right: 10px;
  border: 0; background: transparent;
  color: #888; font-size: 22px; line-height: 1; cursor: pointer;
}

.csa-content { margin-top: 16px; }

@media(min-width: 782px){
  .csa-box { left: auto; right: 20px; transform: none; width: 420px; border-radius: 16px; }
}
