// Modals

.modal {
  .btn {
    margin-right: .5rem;
  }

  .btn-primary:not([href]),
  .btn-success:not([href]) {
    color: $white;

    &:hover {
      color: $white;
    }
  }
}

.modal-header {
  padding: 0 15px;
}

.modal-title {
  font-weight: var(--cassiopeia-font-weight-normal, $font-weight-normal);
  line-height: $modal-header-height;
}

.contentpane {
  padding: 15px;

  .main-card {
    margin: -10px;
    box-shadow: none;
  }
}

// Styling for joomla-dialog element
joomla-dialog {
  dialog {
    width: 96vw;
    max-width: 1700px;
    height: 96vh;
    padding: 0;
    border: 1px solid var(--border-color-translucent);
    border-radius: .3rem;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);

    @include media-breakpoint-up(xxl) {
      width: 80vw;
      height: 80vh;
    }

    // Override display to flex, to scale the content to full height
    &[open] {
      display: flex;
    }
  }

  &[type="image"] {
    dialog {
      width: fit-content;
      height: fit-content;
    }
  }

  &[type="iframe"] {
    dialog {
      overflow: hidden;
    }
  }

  iframe.iframe-content {
    width: 100%;
    height: 100%;
  }

  // Extra loading animation for iframe and ajax types
  &[type="iframe"],
  &[type="ajax"] {
    &.loading {
      dialog:after {
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        width: 66px;
        height: 66px;
        content: "";
        background: url("../../../../system/images/joomla-loader.svg") no-repeat center;
        background-size: 66px 66px;
        transform: translate(-50%, -50%);
      }
    }
  }
}
// Dialog animation
joomla-dialog dialog[open] {
  animation: dialog-show .4s ease normal;

  @media (prefers-reduced-motion: reduce) {
    animation: none;
  }
}
@keyframes dialog-show {
  0% {
    opacity: 0;
    transform: translateY(-50px);
  }
  30% {
    opacity: 1;
  }
  100% {
    transform: translateY(0);
  }
}
// Dialog elements
.joomla-dialog-container {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-flow: column;
  width: 100%;

  .buttons-holder {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-inline-start: auto;

    button {
      margin-inline: .375rem;
    }
  }
}
.joomla-dialog-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid var(--border-color);

  h3 {
    margin: 0;
  }

  .header-icon {
    margin-inline-end: .375rem;
    font-size: $h3-font-size;
  }

  &.empty {
    display: none;
  }
}
.joomla-dialog-body {
  position: relative;
  box-sizing: border-box;
  flex: 1 1 auto;

  .buttons-holder {
    position: absolute;
    top: 1rem;
    right: 1rem;
  }

  // Apply overflow for potentially large content
  joomla-dialog[type="inline"],
  joomla-dialog[type="ajax"] & {
    overflow: auto;
  }

  // Content basic loading animation
  joomla-dialog.loading & {
    opacity: 0;
  }
  joomla-dialog.loaded & {
    opacity: 1;
    transition: opacity .4s ease;
  }
}
.joomla-dialog-footer {
  position: relative;
  padding: 1rem;
  border-top: 1px solid var(--border-color);

  .buttons-holder button {
    padding-inline: 22px;
  }

  &.empty {
    display: none;
  }
}

// Dialog alert and confirm
.joomla-dialog-alert,
.joomla-dialog-confirm {
  dialog {
    width: 600px;
    max-width: 80vw;
    height: fit-content;
  }

  .joomla-dialog-body {
    padding: 1rem;
  }
}

// Dialog for content select field
.joomla-dialog-content-select-field {
  dialog {
    @include media-breakpoint-up(xxl) {
      width: 90vw;
      height: 90vh;
    }
  }
}
