/* ── Sticky column positioning & stacking ── */
.dx-datagrid .dx-datagrid-sticky-column,
.dx-datagrid .dx-datagrid-sticky-column-left,
.dx-datagrid .dx-datagrid-sticky-column-right {
  position: sticky;
  z-index: 2;
}

/* Right-edge sticky columns get higher z-index */
.dx-datagrid .dx-datagrid-sticky-column-left.dx-datagrid-sticky-column-right,
.dx-datagrid .dx-datagrid-sticky-column-right.dx-datagrid-sticky-column-right,
.dx-datagrid .dx-datagrid-sticky-column.dx-datagrid-sticky-column-right {
  z-index: 3;
}

/* Expand command on right sticky gets highest z-index */
.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-row
  .dx-datagrid-sticky-column-right.dx-command-expand {
  z-index: 4;
}

/* Use border-separate model when sticky columns are active */
.dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-table {
  border-collapse: separate;
}

/* Focused element inside sticky columns */
.dx-datagrid .dx-datagrid-sticky-columns .dx-focused-fixed-element {
  z-index: 3;
}

/* Scrollbar above sticky columns */
.dx-datagrid .dx-datagrid-sticky-columns .dx-scrollable-scrollbar {
  z-index: 4;
}

/* Sortable content must be visible to allow drag over sticky */
.dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-content.dx-sortable {
  overflow: visible;
}


/* ── Master detail cell stretch in sticky mode ── */
.dx-datagrid-rowsview.dx-datagrid-sticky-columns .dx-row > .dx-master-detail-cell {
  overflow: visible;
}

.dx-datagrid-rowsview.dx-datagrid-sticky-columns .dx-row > .dx-master-detail-cell
  .dx-datagrid-master-detail-container {
  overflow: hidden;
  text-overflow: ellipsis;
}

.dx-datagrid-rowsview.dx-datagrid-sticky-columns .dx-row > .dx-master-detail-cell
  .dx-datagrid-master-detail-container.dx-datagrid-sticky-column-left {
  left: 0;
  right: 0;
}

/* ── Virtual row: non-sticky cells need relative positioning ── */
.dx-datagrid .dx-datagrid-rowsview
  .dx-virtual-row > td:not(
    .dx-datagrid-sticky-column,
    .dx-datagrid-sticky-column-left,
    .dx-datagrid-sticky-column-right
  ) {
  position: relative;
}

/* ── Group row: sticky group cell padding reset ── */
.dx-datagrid-rowsview .dx-row.dx-group-row .dx-group-cell.dx-datagrid-sticky-column,
.dx-datagrid-rowsview .dx-row.dx-group-row .dx-group-cell.dx-datagrid-sticky-column-left,
.dx-datagrid-rowsview .dx-row.dx-group-row .dx-group-cell.dx-datagrid-sticky-column-right {
  padding-left: 0;
  padding-right: 0;
  overflow: initial;
  overflow-x: clip;
}

/* ── Draggable column opacity reset in sticky mode ── */
.dx-datagrid-sticky-columns .dx-datagrid-draggable-column {
  opacity: 1;
}


/* Ensure submenu renders above everything */
.dx-context-menu .dx-menu-item .dx-submenu {
  position: fixed !important;
}


/* ── Treelist checkbox fix: public CSS is ThemeBuilder 23.1.6, JS is DevExtreme 25.2.7 ──
   The old CSS uses inline-block + .dx-treelist-icon-container.dx-editor-inline-block for checkbox
   placement. 25.2.x moved the checkbox into .dx-treelist-select-checkbox-container and switched
   the icon container to inline-flex + height:1lh. Inject the missing 25.2.x rules here. */

.dx-treelist-rowsview .dx-row>td.dx-treelist-cell-expandable .dx-treelist-icon-container {
  display: inline-flex !important;
  align-items: center !important;
  float: left !important;
  height: 1lh !important;
  line-height: 20px !important; /* 1lh resolves against this; old CSS leaves line-height:1 → 14px */
  white-space: nowrap !important;
  max-height: unset !important; /* old CSS caps at 20px via .dx-treelist-icon-container */
  padding-right: 0 !important;  /* old CSS adds 34px via .dx-treelist-icon-container.dx-editor-inline-block */
  vertical-align: unset !important;
}

/* Spacer divs — old CSS gives them width:24px + invisible ::before glyph; shrink to 25.2.x size */
.dx-treelist-rowsview .dx-row>td.dx-treelist-cell-expandable
  .dx-treelist-empty-space:not(.dx-treelist-collapsed):not(.dx-treelist-expanded) {
  width: 18px !important;
  height: 1px !important;
  top: 0 !important;
  font-size: 0 !important; /* collapse the invisible ::before glyph so it contributes no height */
}

/* Checkbox container — new in 25.2.x, absent from 23.1.6 CSS */
.dx-treelist-rowsview .dx-row>td.dx-treelist-cell-expandable .dx-treelist-select-checkbox-container {
  position: relative !important;
  width: 16px !important;
  height: 1px !important;
  margin: 0 8px 0 0 !important;
}

/* Checkbox widget — 25.2.x centers it via absolute + translateY(-50%) on the 1px anchor */
.dx-treelist-rowsview .dx-row>td.dx-treelist-cell-expandable
  .dx-treelist-select-checkbox-container .dx-select-checkbox {
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dx-treelist-collapsed,
.dx-treelist-expanded {
  font-family: DXIcons !important;
}

/* DevExtreme 25.2.x removed inner <span> from tree expand icons — target element directly */
.dx-treelist-rowsview .dx-treelist-empty-space.dx-treelist-collapsed,
.dx-treelist-rowsview .dx-treelist-empty-space.dx-treelist-expanded {
  font: 24px/24px DXIcons;
  position: relative;
  cursor: pointer;
}

.dx-treelist-rowsview .dx-treelist-empty-space.dx-treelist-collapsed::before {
  content: "\f010";
  visibility: visible;
  position: absolute;
  display: block;
  width: 24px;
  top: 50%;
  left: 0;
  margin-left: -6px;
  margin-top: -12px;
}
.dx-treelist-rowsview .dx-treelist-empty-space.dx-treelist-expanded::before {
  content: "\f016";
  visibility: visible;
  position: absolute;
  display: block;
  width: 24px;
  top: 50%;
  left: 0;
  margin-left: -5px;
  margin-top: -12px;
}

.ck-powered-by{
  display: none !important;
}