/* =========================================================
   ZEHNPRO global report grid standard
   Uses values from /settings/ui-settings via --zp-grid-* CSS variables.
   Applied broadly to Blade report tables and Tabulator grids so typography,
   header height, row height, padding, and numeric alignment stay consistent.
========================================================= */

:root {
    --zp-grid-default-font-family: var(--zp-grid-font-family, var(--zp-ui-font-family, Inter, "Segoe UI", Arial, sans-serif));
    --zp-grid-default-font-size: var(--zp-grid-font-size, 14px);
    --zp-grid-default-line-height: var(--zp-grid-line-height, 20px);
    --zp-grid-default-row-height: var(--zp-grid-row-height, 34px);
    --zp-grid-default-header-height: var(--zp-grid-header-height, var(--zp-grid-default-row-height));
    --zp-grid-default-cell-py: var(--zp-grid-cell-padding-y, 6px);
    --zp-grid-default-cell-px: var(--zp-grid-cell-padding-x, 10px);
    --zp-grid-default-header-py: var(--zp-grid-header-padding-y, var(--zp-grid-default-cell-py));
}

:is(
    [data-zp-theme-grid],
    .grid-table,
    .tabulator,
    .po-table,
    .po-ops-page .tabulator,
    .inv-ops-page .tabulator,
    .receiving-report-shell table,
    .stockcard-table,
    .stock-card-table,
    #forecastTable,
    #abcInventoryDashboard table,
    #tuStockGrid
) {
    font-family: var(--zp-grid-default-font-family) !important;
    font-size: var(--zp-grid-default-font-size) !important;
    line-height: var(--zp-grid-default-line-height) !important;
    font-variant-numeric: tabular-nums;
}

:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-header,
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-col,
:is([data-zp-theme-grid], .grid-table, .po-table, .stockcard-table, .stock-card-table, .receiving-report-shell table, #abcInventoryDashboard table) thead th {
    min-height: var(--zp-grid-default-header-height) !important;
    background: var(--zp-grid-header-bg, color-mix(in srgb, var(--zp-theme-b, #2563eb) 10%, #ffffff)) !important;
    color: var(--zp-grid-header-text, var(--zp-theme-text, #0f172a)) !important;
    border-color: var(--zp-grid-header-border, rgba(148, 163, 184, .24)) !important;
    font-family: var(--zp-grid-default-font-family) !important;
    font-size: var(--zp-grid-header-font-size, var(--zp-grid-default-font-size)) !important;
    font-weight: var(--zp-grid-header-font-weight, var(--zp-grid-header-weight, 700)) !important;
    line-height: var(--zp-grid-default-line-height) !important;
    letter-spacing: var(--zp-grid-header-letter-spacing, 0) !important;
    text-transform: var(--zp-grid-header-text-transform, none) !important;
    white-space: normal !important;
}

:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-col .tabulator-col-content,
:is([data-zp-theme-grid], .grid-table, .po-table, .stockcard-table, .stock-card-table, .receiving-report-shell table, #abcInventoryDashboard table) thead th {
    padding: var(--zp-grid-default-header-py) var(--zp-grid-default-cell-px) !important;
}

:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-row,
:is([data-zp-theme-grid], .grid-table, .po-table, .stockcard-table, .stock-card-table, .receiving-report-shell table, #abcInventoryDashboard table) tbody tr {
    min-height: var(--zp-grid-default-row-height) !important;
}

:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell,
:is([data-zp-theme-grid], .grid-table, .po-table, .stockcard-table, .stock-card-table, .receiving-report-shell table, #abcInventoryDashboard table) tbody td,
:is([data-zp-theme-grid], .grid-table, .po-table, .stockcard-table, .stock-card-table, .receiving-report-shell table, #abcInventoryDashboard table) tfoot td {
    min-height: var(--zp-grid-default-row-height) !important;
    padding: var(--zp-grid-default-cell-py) var(--zp-grid-default-cell-px) !important;
    font-family: var(--zp-grid-default-font-family) !important;
    font-size: var(--zp-grid-default-font-size) !important;
    font-weight: var(--zp-grid-body-font-weight, var(--zp-grid-body-weight, 500)) !important;
    line-height: var(--zp-grid-default-line-height) !important;
    vertical-align: var(--zp-grid-cell-vertical-align, middle) !important;
    white-space: normal;
    overflow-wrap: anywhere;
}

:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="qty" i],
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="stock" i],
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="amount" i],
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="value" i],
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="cost" i],
:is(.tabulator, #forecastTable, #tuStockGrid) .tabulator-cell[tabulator-field*="price" i],
:is(.num, .right, .text-right, .text-end, .stockcard-num, .stock-card-num, .inv-num, .po-num-cell, .po-money-cell) {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

.zp-report-fit-grid,
.zp-report-fit-grid .tabulator,
.zp-report-fit-grid .tabulator-tableholder {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Decimal emphasis standard for report grids */
:is(
    [data-zp-theme-grid],
    .grid-table,
    .tabulator,
    .po-table,
    .po-ops-page,
    .inv-ops-page,
    .receiving-report-shell,
    .stockcard-table,
    .stock-card-table,
    #forecastTable,
    #abcInventoryDashboard,
    #tuStockGrid
) .zp-number-decimal {
    font-weight: var(--zp-number-decimal-font-weight, 300) !important;
    opacity: var(--zp-number-decimal-opacity, .48) !important;
}
