/* Modal overlay robusto para tablets/navegadores antigos (sem depender do Tailwind JIT). */
.sf-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top, 0px))
    max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px))
    max(1rem, env(safe-area-inset-left, 0px));
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: rgba(15, 23, 42, 0.5);
  box-sizing: border-box;
}

.sf-modal-overlay.is-open {
  display: flex;
}

.sf-modal-overlay.hidden {
  display: none !important;
}

.sf-modal-overlay--z55 {
  z-index: 55;
}

.sf-modal-overlay--z60 {
  z-index: 60;
}

.sf-modal-overlay--z70 {
  z-index: 70;
}

.sf-modal-overlay > :first-child {
  position: relative;
  width: 100%;
  max-height: min(92vh, calc(100vh - 2rem));
  margin: auto;
  flex: 0 0 auto;
  align-self: center;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

.sf-modal-panel {
  position: relative;
  width: 100%;
  max-width: 48rem;
  max-height: min(92vh, calc(100vh - 2rem));
  margin: auto;
  flex: 0 0 auto;
  align-self: center;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

.sf-modal-panel--sm {
  max-width: 28rem;
}

.sf-modal-panel--lg {
  max-width: 64rem;
}

.sf-modal-panel--xl {
  max-width: 80rem;
}

body.sf-modal-open {
  overflow: hidden;
}

/* Gincanas: mesmo portal/lock do sf-modal */
.gincanas-modal-backdrop.is-open {
  display: flex;
}
