/* =============================================================================
   OrganicSystem — Professional ERP Grid
   Visual polish for OrganicSystemErpGrid (os-erp-grid.js).
   ============================================================================= */

/* Global: hide filter-row UI — search/filter via column header filters only. */
.dx-datagrid-filter-row,
.dx-treelist-filter-row {
  display: none !important;
}

/* Header-filter popup: prevent native + DX placeholder both painting "Search". */
.dx-header-filter-menu .dx-texteditor-input::placeholder,
.dx-header-filter-menu .dx-list-search .dx-texteditor-input::placeholder {
  opacity: 0 !important;
  color: transparent !important;
}

.os-erp-grid.dx-datagrid,
.os-erp-grid .dx-datagrid,
[data-os-erp-grid="on"].dx-datagrid,
[data-os-erp-grid="on"] .dx-datagrid {
  --os-erp-grid-neg: #b42318;
  --os-erp-grid-zero: var(--os-text-muted, #6b7280);
  --os-erp-grid-pos: inherit;
  --os-erp-grid-empty: var(--os-text-muted, #9ca3af);
  --os-erp-grid-group-bg: var(--os-surface-muted, rgba(15, 23, 42, 0.04));
}

[data-theme="dark"] .os-erp-grid.dx-datagrid,
[data-theme="dark"] .os-erp-grid .dx-datagrid,
[data-theme="dark"] [data-os-erp-grid="on"].dx-datagrid,
[data-theme="dark"] [data-os-erp-grid="on"] .dx-datagrid {
  --os-erp-grid-neg: #f97066;
  --os-erp-grid-zero: var(--os-text-muted, #9ca3af);
  --os-erp-grid-empty: var(--os-text-muted, #6b7280);
  --os-erp-grid-group-bg: rgba(255, 255, 255, 0.04);
}

/* Conditional formatting */
.os-erp-grid .os-erp-grid-negative,
[data-os-erp-grid="on"] .os-erp-grid-negative {
  color: var(--os-erp-grid-neg) !important;
  font-variant-numeric: tabular-nums;
}

.os-erp-grid .os-erp-grid-zero,
[data-os-erp-grid="on"] .os-erp-grid-zero {
  color: var(--os-erp-grid-zero) !important;
  font-variant-numeric: tabular-nums;
}

.os-erp-grid .os-erp-grid-positive,
[data-os-erp-grid="on"] .os-erp-grid-positive {
  font-variant-numeric: tabular-nums;
}

.os-erp-grid .os-erp-grid-empty,
[data-os-erp-grid="on"] .os-erp-grid-empty {
  color: var(--os-erp-grid-empty);
}

.os-erp-grid .os-erp-grid-bool-false,
[data-os-erp-grid="on"] .os-erp-grid-bool-false {
  opacity: 0.72;
}

/* Group panel */
.os-erp-grid .dx-datagrid-group-panel,
[data-os-erp-grid="on"] .dx-datagrid-group-panel {
  background: var(--os-erp-grid-group-bg);
  border-radius: 0.25rem;
  min-height: 2rem;
  padding: 0.25rem 0.5rem;
}

/* Collapse empty header toolbars left after Column Chooser / group-panel strip removal */
.dx-datagrid-header-panel.os-erp-grid-header-panel-empty,
.dx-datagrid .dx-datagrid-header-panel:not(:has(.dx-toolbar-item:not(.dx-state-invisible))),
.dx-datagrid .dx-datagrid-header-panel:not(:has(
  .dx-toolbar-item:not(.dx-state-invisible) .dx-button,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-group-panel-item,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-texteditor,
  .dx-toolbar-item:not(.dx-state-invisible) input,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-menu
)),
.os-erp-grid .dx-datagrid-header-panel:not(:has(
  .dx-toolbar-item:not(.dx-state-invisible) .dx-button,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-group-panel-item,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-texteditor,
  .dx-toolbar-item:not(.dx-state-invisible) input,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-menu
)),
[data-os-erp-grid="on"] .dx-datagrid-header-panel:not(:has(
  .dx-toolbar-item:not(.dx-state-invisible) .dx-button,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-group-panel-item,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-texteditor,
  .dx-toolbar-item:not(.dx-state-invisible) input,
  .dx-toolbar-item:not(.dx-state-invisible) .dx-menu
)) {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.dx-datagrid-header-panel .dx-toolbar-after:not(:has(.dx-toolbar-item:not(.dx-state-invisible))),
.dx-datagrid-header-panel .dx-toolbar-before:not(:has(.dx-toolbar-item:not(.dx-state-invisible))),
.dx-datagrid-header-panel .dx-toolbar-center:not(:has(.dx-toolbar-item:not(.dx-state-invisible))) {
  display: none !important;
  width: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Empty group-panel host (no grouped chips) must not reserve a row */
.dx-datagrid-header-panel .dx-datagrid-group-panel:not(:has(.dx-group-panel-item)) {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* Filter row denser ERP look */
.os-erp-grid .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor,
[data-os-erp-grid="on"] .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor {
  margin: 0;
}

/* Footer / totals */
.os-erp-grid .dx-datagrid-total-footer .dx-datagrid-summary-item,
[data-os-erp-grid="on"] .dx-datagrid-total-footer .dx-datagrid-summary-item {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Selection checkboxes stay visible when frozen columns exist */
.os-erp-grid .dx-datagrid-headers .dx-command-select,
.os-erp-grid .dx-datagrid-rowsview .dx-command-select,
[data-os-erp-grid="on"] .dx-datagrid-headers .dx-command-select,
[data-os-erp-grid="on"] .dx-datagrid-rowsview .dx-command-select {
  min-width: 2.25rem;
}

/*
 * DX Material paints repeating skeleton PNGs on .dx-virtual-row > td::before.
 * When rowRenderingMode=virtual survives after data bind, those bars stay visible
 * while the footer already shows Rows: N. Kill the placeholder art on ERP grids;
 * spacer rows may remain for scroll metrics.
 */
.os-dx-grid .dx-datagrid-rowsview .dx-virtual-row > td::before,
.os-erp-grid .dx-datagrid-rowsview .dx-virtual-row > td::before,
[data-os-erp-grid="on"] .dx-datagrid-rowsview .dx-virtual-row > td::before {
  content: none !important;
  display: none !important;
  background-image: none !important;
  background: none !important;
  height: 0 !important;
  width: 0 !important;
}

/* Context menu: rely on DevExtreme; ensure above chrome */
.dx-context-menu.dx-overlay-wrapper {
  z-index: 4000;
}
