/**
 * Guard against orphan Bootstrap / theme dimmers after SPA navigation.
 * Loaded after /css/styles.css.
 */

/* Hide orphan backdrops by default — never rely on :has(.modal.show). */
body > .modal-backdrop,
body > .offcanvas-backdrop,
body > .dark-transparent {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background: transparent !important;
}

/* Restore dimmer only while overlay guard confirms a real open action. */
body[data-overlay-lock='modal'] > .modal-backdrop.show {
  display: block !important;
  visibility: visible !important;
  opacity: var(--bs-backdrop-opacity, 0.5) !important;
  pointer-events: auto !important;
  background-color: var(--bs-backdrop-bg, #000) !important;
}

body[data-overlay-lock='offcanvas'] > .offcanvas-backdrop.show {
  display: block !important;
  visibility: visible !important;
  opacity: var(--bs-backdrop-opacity, 0.5) !important;
  pointer-events: auto !important;
  background-color: var(--bs-backdrop-bg, #000) !important;
}

/* Neutralize theme mobile dimmer without removing layout nodes from the DOM. */
.layout-overlay,
.show-sidebar + .dark-transparent {
  background: transparent !important;
  box-shadow: none !important;
}

@media (max-width: 1299.98px) {
  #main-wrapper.show-sidebar .layout-overlay {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 10;
    pointer-events: auto;
    background: transparent !important;
    opacity: 1 !important;
  }
}

.preloader {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Keep document root fully opaque (stray theme rules must not dim <html>). */
html {
  opacity: 1 !important;
  filter: none !important;
}

#main-wrapper,
.page-wrapper,
.layout-page-wrapper,
.layout-body-wrapper {
  opacity: 1 !important;
  filter: none !important;
}
