html {
  position: relative;
  min-height: 100%;
}

body {
  overflow-x: hidden;
}

// Sticky Footer
.outer-wrapper {
  display: flex;
  margin: 0;
}

.inner-wrapper {
  flex: 1 1 auto;
  flex-flow: column nowrap;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  width: 100%;
  position: relative;
}

.main-content {
  z-index: var(--ds-main-z-index);
  flex: 1 1 100%;
  margin-top: var(--ds-content-spacing);
  margin-bottom: var(--ds-content-spacing);
}

.alert.hide {
  padding: 0;
  margin: 0;
}

ds-admin-sidebar {
  position: fixed;
  z-index: var(--ds-sidebar-z-index);
}

.sticky-top {
  z-index: 0;
}

.media-viewer
  .change-gallery
  .ngx-gallery
  ngx-gallery-preview.ngx-gallery-active {
  right: 0;
  left: auto;
  width: calc(100% - 53px);
}

.ds-submission-reorder-dragging {
  .ds-hint,
  button {
    display: none;
  }
}

ngb-modal-backdrop {
  // ng-bootsrap animates opacity, causing the fully opaque background to flash briefly before the transition starts
  // animating background-color between transparent & a RGBA color instead looks smoother
  &.fade {
    opacity: 1 !important;
    background-color: transparent;
    transition: background-color 0.15s linear;

    &.show {
      background-color: rgba(0, 0, 0, 0.5);
    }
  }
}

.dont-break-out {
  /* These are technically the same, but use both */
  overflow-wrap: break-word;
  word-wrap: break-word;

  -ms-word-break: break-all;
  /* This is the dangerous one in WebKit, as it breaks things wherever */
  word-break: break-all;
  /* Instead use this non-standard one: */
  word-break: break-word;

  /* Adds a hyphen where the word breaks, if supported (No Blink) */
  -ms-hyphens: auto;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;

}

/* Replicate default spacing look ~ preserveWhitespace=true
   To be used e.g. on a div containing buttons that should have a bit of spacing in between
 */
.space-children-mr > :not(:last-child) {
  margin-right: var(--ds-gap);
}

/* Complement .space-children-mr when spaced elements are not on the same level */
.mr-gap {
  margin-right: var(--ds-gap);
}

.ml-gap {
  margin-left: var(--ds-gap);
}

ds-dynamic-form-control-container.d-none {
  /* Ensures that form-control containers hidden and disabled by type binding collapse and let other fields in
     the same row expand accordingly
   */
  visibility: collapse;
}
