// base styles for every modal popup used in Discourse

// prevents bg scrolling when modal is open
html:has(.d-modal) {
  overflow: hidden;
}

html.keyboard-visible.mobile-view {
  .d-modal {
    max-height: calc(var(--composer-vh, var(--1dvh)) * 100);
    height: calc(var(--composer-vh, var(--1dvh)) * 100);
    bottom: 0;
  }

  .d-modal__container {
    max-height: calc(var(--composer-vh, var(--1dvh)) * 100);
    height: calc(var(--composer-vh, var(--1dvh)) * 100);
  }
}

html:not(.keyboard-visible.mobile-view) {
  .d-modal__container {
    padding-bottom: env(safe-area-inset-bottom);
  }
}

.d-modal {
  align-items: flex-end;

  &__container {
    // this is a hack to prevent issues on safari with transforms
    position: fixed;

    width: 100%;
    max-width: 100%;
    max-height: calc(var(--composer-vh, var(--1dvh)) * 85);
  }

  &__header {
    padding: 0.5rem;
  }

  &__footer {
    margin-top: auto;
  }
  .ios-device & {
    &__footer {
      margin-top: auto;
    }
  }

  &__title-text {
    font-size: var(--font-up-1-rem);
  }

  // fixes modal placement on Android when keyboard is visible
  html.keyboard-visible:not(.ios-device) & {
    height: calc(100% - env(keyboard-inset-height));

    .d-modal__container {
      max-height: 100%;
      min-height: 100%;
      height: 100%;
    }
  }
}

//legacy

.modal {
  &.fade {
    transition: opacity 0.3s linear, top 0.3s ease-out;
    top: -25%;
  }
  &.fade.in {
    top: 50%;
  }
}

.close {
  font-size: var(--font-up-4);
}

@media only screen and (max-device-width: 568px) {
  .flag-modal-body .flag-message {
    height: 3em;
  }
}
