/*
 * Global Z-Index System
 * Keep layer values centralized and component usage predictable.
 */

:root {
  /* Document layers */
  --z-background: -1;
  --z-base: 0;
  --z-content: 1;
  --z-elevated: 10;

  /* Layout layers */
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-navbar: 1035;
  --z-header: 1035;
  --z-layout-overlay: 1040;
  --z-sidebar: 1045;
  --z-drag-target: 1046;
  --z-floating-elements: 1047;

  /* Interactive layers */
  --z-dropdown: 1000;
  --z-popover: 1070;
  --z-tooltip: 1080;

  /* Overlay and system layers */
  --z-offcanvas-backdrop: 1040;
  --z-offcanvas: 1045;
  --z-modal-backdrop: 1050;
  --z-modal: 1055;
  --z-sweetalert: 1060;
  --z-toast: 1090;
  --z-alert: 1100;
  --z-loading: 1110;
  --z-notification: 1200;
  --z-emergency: 9999;
}

/* Layout */
.navbar,
.layout-navbar,
.navbar-fixed-top,
.navbar-fixed-bottom {
  z-index: var(--z-navbar) !important;
}

.layout-menu,
.menu-vertical,
.sidebar {
  z-index: var(--z-sidebar) !important;
}

.layout-overlay,
.content-backdrop {
  z-index: var(--z-layout-overlay) !important;
}

.drag-target {
  z-index: var(--z-drag-target) !important;
}

/* Sticky/fixed primitives */
.sticky-top,
.position-sticky,
.sticky-element {
  z-index: var(--z-sticky) !important;
}

.fixed-top,
.fixed-bottom,
.position-fixed {
  z-index: var(--z-fixed) !important;
}

/* Menus and pickers */
.dropdown-menu,
.tt-menu,
.twitter-typeahead .tt-menu,
.select2-container,
.select2-dropdown,
.ui-autocomplete,
.ui-datepicker,
.datepicker,
.flatpickr-calendar {
  z-index: var(--z-dropdown) !important;
}

/* Overlay components */
.offcanvas {
  z-index: var(--z-offcanvas) !important;
}

.offcanvas-backdrop {
  z-index: var(--z-offcanvas-backdrop) !important;
}

.modal-backdrop {
  z-index: var(--z-modal-backdrop) !important;
}

.modal,
.modal-dialog,
.modal.show {
  z-index: var(--z-modal) !important;
}

.swal2-container {
  z-index: var(--z-sweetalert) !important;
}

/* Notifications and helpers */
#toast-container,
.toast-container,
.toastify {
  z-index: var(--z-toast) !important;
}

.tooltip {
  z-index: var(--z-tooltip) !important;
}

.popover {
  z-index: var(--z-popover) !important;
}

.loading-overlay,
.spinner-overlay,
.blockOverlay {
  z-index: var(--z-loading) !important;
}

.fab,
.floating-btn {
  z-index: var(--z-floating-elements) !important;
}

/* Safe low-level stacking helpers */
.form-floating > label,
.tagify__tag,
.fc-button-group > .fc-button:active,
.fc-button-group > .fc-button:focus,
.fc-button-group > .fc-button:hover {
  z-index: var(--z-content) !important;
}

/* Utility classes */
.z-background { z-index: var(--z-background) !important; }
.z-base { z-index: var(--z-base) !important; }
.z-content { z-index: var(--z-content) !important; }
.z-elevated { z-index: var(--z-elevated) !important; }
.z-dropdown { z-index: var(--z-dropdown) !important; }
.z-sticky { z-index: var(--z-sticky) !important; }
.z-fixed { z-index: var(--z-fixed) !important; }
.z-navbar { z-index: var(--z-navbar) !important; }
.z-header { z-index: var(--z-header) !important; }
.z-layout-overlay { z-index: var(--z-layout-overlay) !important; }
.z-sidebar { z-index: var(--z-sidebar) !important; }
.z-drag-target { z-index: var(--z-drag-target) !important; }
.z-floating { z-index: var(--z-floating-elements) !important; }
.z-offcanvas-backdrop { z-index: var(--z-offcanvas-backdrop) !important; }
.z-offcanvas { z-index: var(--z-offcanvas) !important; }
.z-modal-backdrop { z-index: var(--z-modal-backdrop) !important; }
.z-modal { z-index: var(--z-modal) !important; }
.z-sweetalert { z-index: var(--z-sweetalert) !important; }
.z-popover { z-index: var(--z-popover) !important; }
.z-tooltip { z-index: var(--z-tooltip) !important; }
.z-toast { z-index: var(--z-toast) !important; }
.z-alert { z-index: var(--z-alert) !important; }
.z-loading { z-index: var(--z-loading) !important; }
.z-notification { z-index: var(--z-notification) !important; }
.z-emergency { z-index: var(--z-emergency) !important; }
