/* ── 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;
}