/**
 * Trendmetrik — tek kaynak z-index katmanları
 * Yeni yüzen UI eklerken burada sabit tanımlayın; rastgele büyük sayı kullanmayın.
 * Sıra: alttan üste (Bootstrap modal ~1050/1055 ile hizalı).
 */
:root {
  --tm-z-base: 0;
  --tm-z-dropdown: 1000;
  --tm-z-sticky: 1020;
  /* Sağ-alt / kenar yumruk butonları (WhatsApp, destek) — geri bildirim sekmesinin altında */
  --tm-z-floating-widgets: 1025;
  /* Dikey “Geri bildirim” sekmesi */
  --tm-z-fixed: 1030;
  --tm-z-sidebar: 1035;
  --tm-z-header-sticky: 1040;
  --tm-z-demo-banner: 1042;

  --tm-z-modal-backdrop: 1050;
  --tm-z-modal: 1055;

  --tm-z-popover: 1060;
  --tm-z-datepicker: 1070;
  /* Eski isim; datepicker ile aynı bant (tooltips / popper) */
  --tm-z-tooltip: var(--tm-z-datepicker);

  --tm-z-toast: 1080;
  /* Tam ekran geri bildirim (açıkken datepicker/toast üstü) */
  --tm-z-feedback-overlay: 1095;
  /* Global tam ekran yükleme — etkileşimi keser */
  --tm-z-loading: 1100;

  /* Admin (layouts/admin_base): tam ekran portal / yükleme / toast — sırayla üst üste */
  --tm-z-admin-portal: 1110;
  --tm-z-admin-loading: 1120;
  --tm-z-admin-toast: 1130;

  /* Alert Dashboard — detay modalı (geri bildirim 1095 / admin portal 1110 üstünde) */
  --tm-z-alert-detail-backdrop: 12040;
  --tm-z-alert-detail-modal: 12050;

  /* Dashboard “Nasıl kullanılır” onboarding — kısayol modalı (9999) / sticky şerit üstünde, body’de olmalı */
  --tm-z-onboarding-overlay: 12055;

  /* UI v2 — shell/header ile aynı isimlendirme (alias) */
  --tmv2-z-header: var(--tm-z-header-sticky);
  --tmv2-z-sidebar: var(--tm-z-sidebar);
  --tmv2-z-dropdown: var(--tm-z-dropdown);
  --tmv2-z-modal: var(--tm-z-modal);
  --tmv2-z-modal-backdrop: var(--tm-z-modal-backdrop);
  --tmv2-z-toast: var(--tm-z-toast);
  --tmv2-z-floating: var(--tm-z-floating-widgets);
}

/* Bootstrap diyalogları — projedeki tek ölçek.
   NOT: `body >` öncülü, sayfa-özel override'ların (örn. account/orders.html'deki
   gevşek `.modal { z-index: 10000 }`) uygulanmadan önce HERHANGİ bir öncül
   (page-shell, tmv2-analysis-root vb.) tarafından kazanılmasını engellemek için
   ek kural olarak verilir. */
.modal-backdrop {
  z-index: var(--tm-z-modal-backdrop) !important;
}

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

/* Body direct-child selector — tm-modal-bootstrap-stack.css'daki body>.modal.show ile
   aynı özgüllükte, kısmen taşınan modallar için ekstra garanti. */
body > .modal,
body > .modal.fade,
body > .modal.fade.show,
body > .modal.show {
  z-index: var(--tm-z-modal) !important;
}

body > .modal-backdrop,
body > .modal-backdrop.fade,
body > .modal-backdrop.show,
body > .modal-backdrop.fade.show {
  z-index: var(--tm-z-modal-backdrop) !important;
}

/* Mobil sidebar perdesi (tablet z-index çok yüksekti); Bootstrap modal açıkken kapat */
body.modal-open .tmv2-sidebar-backdrop {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Bootstrap modal açıkken loading/overlay katmanları modalı örtmesin.
   Projedeki çeşitli sayfalarda loading-overlay z-index milyonluk rakamlara
   çıkarılmış (99999999 vb.); modal z-index 1055 olduğu için açılınca
   modalı perdeliyorlar. Tek satır guard: modal açıkken hepsi devre dışı.
   NOT: `.dynamic-loading` sınıfı devam eden sayfa-içi işlemler için korunur. */
body.modal-open #globalLoadingOverlay,
body.modal-open #dashboard-loading-overlay,
body.modal-open #order-loading-overlay,
body.modal-open #product-loading-overlay,
body.modal-open #category-loading-overlay,
body.modal-open #return-loading-overlay,
body.modal-open #tableLoadingOverlay,
body.modal-open #alerts-loading-overlay,
body.modal-open #form-loading-overlay,
body.modal-open #qa-list-loading-overlay,
body.modal-open #loading-overlay:not(.dynamic-loading),
body.modal-open .dashboard-loading-overlay,
body.modal-open .order-loading-overlay,
body.modal-open .product-loading-overlay,
body.modal-open .category-loading-overlay,
body.modal-open .return-loading-overlay,
body.modal-open .qa-list-loading-overlay,
body.modal-open .db-backup-loading-overlay,
body.modal-open .loading-overlay:not(.dynamic-loading) {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.modal.alert-detail-elevated {
  z-index: var(--tm-z-alert-detail-modal) !important;
}

body.modal-open:has(.modal.alert-detail-elevated.show) > .modal-backdrop {
  z-index: var(--tm-z-alert-detail-backdrop) !important;
}

/* Yardımcı sınıflar (Tailwind z-[…] yerine) */
.tm-z-toast {
  z-index: var(--tm-z-toast) !important;
}

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

/* Loading scrim — paired with `.tm-z-loading` for full-page blocking overlays
   (spinner over a dim backdrop). Background follows the modal-backdrop token
   so it dims consistently with Bootstrap modals in both themes. Combine with
   Bootstrap utilities like `position-fixed top-0 start-0 w-100 h-100`. */
.tm-loading-scrim {
  background-color: var(--tm-modal-backdrop, rgba(0, 0, 0, 0.5));
}

/* Yaygın kütüphaneler */
.flatpickr-calendar {
  z-index: var(--tm-z-datepicker) !important;
}

/* Inline dashboard / mağaza tarih aralığı (çift takvim) */
.date-range-picker-modal {
  z-index: var(--tm-z-datepicker) !important;
}
