@angular-bootstrap/ngbootstrap 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,36 @@
1
+ # Changelog
2
+
3
+ ## 2.0.0 - 2026-07-05
4
+
5
+ ### Breaking Changes
6
+
7
+ - Removed the previous public spreadsheet adapter export.
8
+ - Replaced the DataGrid default Excel export implementation with `BrowserExcelExportAdapter`.
9
+
10
+ ### Added
11
+
12
+ - Added `BrowserExcelExportAdapter`, a dependency-free browser workbook exporter that implements `ExcelExportAdapter`.
13
+ - Added tests for the browser Excel export adapter.
14
+ - Added documentation that explains why Excel export is dependency-free and when to provide a custom adapter.
15
+
16
+ ### Changed
17
+
18
+ - DataGrid Excel export no longer depends on an unmaintained spreadsheet writer package.
19
+ - The default Excel export path generates an Excel-compatible SpreadsheetML workbook in the browser.
20
+ - Documentation now calls out the limitations of the default adapter: visible column values and basic scalar cell types only; no formulas, charts, pivot tables, merged cells, multiple sheets, workbook styling, or macro-enabled files.
21
+
22
+ ### Migration
23
+
24
+ - Replace imports of the previous spreadsheet adapter with `BrowserExcelExportAdapter`.
25
+ - If your application needs advanced workbook generation, provide your own `ExcelExportAdapter` implementation.
26
+
27
+ ```ts
28
+ import {
29
+ BrowserExcelExportAdapter,
30
+ ExcelExportAdapter,
31
+ } from '@angular-bootstrap/ngbootstrap';
32
+
33
+ providers: [
34
+ { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
35
+ ];
36
+ ```
package/README.md CHANGED
@@ -29,9 +29,15 @@ npm install @angular-bootstrap/ngbootstrap bootstrap bootstrap-icons
29
29
  Optional integrations are installed only when you use those features:
30
30
 
31
31
  ```bash
32
- npm install chart.js jspdf jspdf-autotable xlsx
32
+ npm install chart.js jspdf jspdf-autotable
33
33
  ```
34
34
 
35
+ Excel export is dependency-free by default. The built-in `BrowserExcelExportAdapter`
36
+ generates an Excel-compatible workbook in the browser and avoids unmaintained
37
+ spreadsheet writer dependencies. It is intended for visible column values and
38
+ basic scalar cell types; use a custom `ExcelExportAdapter` for formulas, charts,
39
+ multiple sheets, workbook styling, or other advanced workbook features.
40
+
35
41
  ## Use
36
42
 
37
43
  Import standalone components directly in your Angular component.
@@ -0,0 +1,31 @@
1
+ # @angular-bootstrap/ngbootstrap 2.0.0
2
+
3
+ This release removes the DataGrid Excel export dependency on an unmaintained spreadsheet writer package and replaces it with a dependency-free browser adapter.
4
+
5
+ ## Highlights
6
+
7
+ - DataGrid Excel export now uses `BrowserExcelExportAdapter` by default.
8
+ - The adapter implements the existing `ExcelExportAdapter` contract, so applications can still provide a custom exporter through Angular DI.
9
+ - The package no longer references or requires the removed spreadsheet dependency.
10
+ - Documentation now explains the implementation choice, security rationale, migration path, and default adapter limitations.
11
+
12
+ ## Breaking Change
13
+
14
+ The previous spreadsheet adapter has been removed from the public API. Use `BrowserExcelExportAdapter` or provide your own `ExcelExportAdapter`.
15
+
16
+ ## Limitations
17
+
18
+ The built-in browser adapter exports visible column values and basic scalar cell types. It does not generate formulas, charts, pivot tables, merged cells, multiple sheets, workbook styling, or macro-enabled files.
19
+
20
+ ## Upgrade
21
+
22
+ ```ts
23
+ import {
24
+ BrowserExcelExportAdapter,
25
+ ExcelExportAdapter,
26
+ } from '@angular-bootstrap/ngbootstrap';
27
+
28
+ providers: [
29
+ { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
30
+ ];
31
+ ```
@@ -1259,15 +1259,65 @@ class JsPdfAdapter {
1259
1259
  }
1260
1260
  }
1261
1261
 
1262
- class XlsxAdapter {
1263
- async export({ fileName, sheetName, columns, rows }) {
1264
- const XLSX = await import(/* webpackIgnore: true */ 'xlsx');
1265
- const header = [columns.map(c => c.title)];
1266
- const data = rows.map(r => columns.map(c => r[c.key]));
1267
- const ws = XLSX.utils.aoa_to_sheet([...header, ...data]);
1268
- const wb = XLSX.utils.book_new();
1269
- XLSX.utils.book_append_sheet(wb, ws, sheetName);
1270
- XLSX.writeFile(wb, `${fileName}.xlsx`);
1262
+ class BrowserExcelExportAdapter {
1263
+ async export(payload) {
1264
+ const workbook = this.createSpreadsheetXml(payload);
1265
+ const blob = new Blob([workbook], { type: 'application/vnd.ms-excel;charset=utf-8' });
1266
+ const url = URL.createObjectURL(blob);
1267
+ const anchor = document.createElement('a');
1268
+ anchor.href = url;
1269
+ anchor.download = `${this.baseFileName(payload.fileName)}.xls`;
1270
+ anchor.style.display = 'none';
1271
+ document.body.appendChild(anchor);
1272
+ anchor.click();
1273
+ anchor.remove();
1274
+ URL.revokeObjectURL(url);
1275
+ }
1276
+ createSpreadsheetXml({ sheetName, columns, rows }) {
1277
+ const header = this.createRow(columns.map(column => column.title));
1278
+ const body = rows.map(row => this.createRow(columns.map(column => row[column.key]))).join('');
1279
+ return `<?xml version="1.0"?>
1280
+ <?mso-application progid="Excel.Sheet"?>
1281
+ <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
1282
+ xmlns:o="urn:schemas-microsoft-com:office:office"
1283
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
1284
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
1285
+ <Worksheet ss:Name="${this.escapeXml(this.safeSheetName(sheetName))}">
1286
+ <Table>${header}${body}</Table>
1287
+ </Worksheet>
1288
+ </Workbook>`;
1289
+ }
1290
+ createRow(values) {
1291
+ return `<Row>${values.map(value => this.createCell(value)).join('')}</Row>`;
1292
+ }
1293
+ createCell(value) {
1294
+ if (value === null || value === undefined) {
1295
+ return '<Cell><Data ss:Type="String"></Data></Cell>';
1296
+ }
1297
+ if (typeof value === 'number' && Number.isFinite(value)) {
1298
+ return `<Cell><Data ss:Type="Number">${value}</Data></Cell>`;
1299
+ }
1300
+ if (typeof value === 'boolean') {
1301
+ return `<Cell><Data ss:Type="Boolean">${value ? 1 : 0}</Data></Cell>`;
1302
+ }
1303
+ if (value instanceof Date) {
1304
+ return `<Cell><Data ss:Type="DateTime">${value.toISOString()}</Data></Cell>`;
1305
+ }
1306
+ return `<Cell><Data ss:Type="String">${this.escapeXml(String(value))}</Data></Cell>`;
1307
+ }
1308
+ safeSheetName(sheetName) {
1309
+ return (sheetName || 'Sheet1').replace(/[\\/?*[\]:]/g, '').slice(0, 31) || 'Sheet1';
1310
+ }
1311
+ baseFileName(fileName) {
1312
+ return (fileName || 'export').replace(/\.(xls)$/i, '');
1313
+ }
1314
+ escapeXml(value) {
1315
+ return value
1316
+ .replace(/&/g, '&amp;')
1317
+ .replace(/</g, '&lt;')
1318
+ .replace(/>/g, '&gt;')
1319
+ .replace(/"/g, '&quot;')
1320
+ .replace(/'/g, '&apos;');
1271
1321
  }
1272
1322
  }
1273
1323
 
@@ -9265,7 +9315,7 @@ class Datagrid {
9265
9315
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: Datagrid, deps: [], target: i0.ɵɵFactoryTarget.Component });
9266
9316
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.0", type: Datagrid, isStandalone: true, selector: "ngb-datagrid", inputs: { columns: "columns", data: "data", loading: "loading", total: "total", enableSorting: "enableSorting", enableFiltering: "enableFiltering", filterable: "filterable", enableGlobalFilter: "enableGlobalFilter", filterMode: "filterMode", filter: "filter", filterOperators: "filterOperators", filterManual: "filterManual", externalFiltering: "externalFiltering", dataOperations: "dataOperations", state: "state", multiCheckboxFilterOptions: "multiCheckboxFilterOptions", enablePagination: "enablePagination", pageable: "pageable", enableEdit: "enableEdit", enableDelete: "enableDelete", pageSizeOptions: "pageSizeOptions", enableAdd: "enableAdd", addButtonAriaLabel: "addButtonAriaLabel", addButtonText: "addButtonText", stickyRows: "stickyRows", stickyHeader: "stickyHeader", stickyFooter: "stickyFooter", scrollable: "scrollable", stickyRowHeight: "stickyRowHeight", stickyHeaderHeight: "stickyHeaderHeight", stickyFooterHeight: "stickyFooterHeight", tableOptions: "tableOptions", dataLayoutMode: "dataLayoutMode", selectionMode: "selectionMode", selectionBehavior: "selectionBehavior", selectionKeyMode: "selectionKeyMode", selectAllEnabled: "selectAllEnabled", selectionA11yLabels: "selectionA11yLabels", selectionDisabledFn: "selectionDisabledFn", highlightedIndex: "highlightedIndex", highlightRowKey: "highlightRowKey", highlightColKey: "highlightColKey", globalFilterAriaLabel: "globalFilterAriaLabel", globalFilterPlaceholder: "globalFilterPlaceholder", searchHighlightTerm: "searchHighlightTerm", searchHighlightFields: "searchHighlightFields", expandRowAriaLabel: "expandRowAriaLabel", collapseRowAriaLabel: "collapseRowAriaLabel", exportPdfAriaLabel: "exportPdfAriaLabel", exportExcelAriaLabel: "exportExcelAriaLabel", newRowDefaults: "newRowDefaults", strictEmail: "strictEmail", editOnRowClick: "editOnRowClick", editMode: "editMode", toolbarEditHint: "toolbarEditHint", singleExpand: "singleExpand", exportOptions: "exportOptions", theme: "theme", responsive: "responsive", trackBy: "trackBy", rowClass: "rowClass", rowStyle: "rowStyle", rowReorderable: "rowReorderable", columnReorderable: "columnReorderable", resizable: "resizable", actionDisplay: "actionDisplay", showStickyRowBadge: "showStickyRowBadge", stickyRowBadgeField: "stickyRowBadgeField", stickyRowBadgeLabel: "stickyRowBadgeLabel", labels: "labels", locale: "locale", dir: "dir", keyboardNavigation: "keyboardNavigation", editService: "editService", dataProviderAll: "dataProviderAll", dataProviderSelection: "dataProviderSelection", pageSize: "pageSize" }, outputs: { rowAdd: "rowAdd", rowEdit: "rowEdit", rowSave: "rowSave", rowCancel: "rowCancel", rowDelete: "rowDelete", sortChange: "sortChange", filterChange: "filterChange", filtersChange: "filtersChange", pageChange: "pageChange", dataStateChange: "dataStateChange", selectionChange: "selectionChange", rowReorder: "rowReorder", columnReorder: "columnReorder" }, host: { listeners: { "document:mousemove": "onDocumentMouseMove($event)", "document:mouseup": "onDocumentMouseUp()", "document:click": "onDocumentClick($event)", "document:keydown.escape": "onEscapeKey()" } }, providers: [
9267
9317
  { provide: PdfExportAdapter, useClass: JsPdfAdapter },
9268
- { provide: ExcelExportAdapter, useClass: XlsxAdapter },
9318
+ { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
9269
9319
  { provide: NGB_DATAGRID_HOST, useExisting: forwardRef(() => Datagrid) },
9270
9320
  ], queries: [{ propertyName: "exportButtonDir", first: true, predicate: ExportButtonDirective, descendants: true }, { propertyName: "rowDetailTpl", first: true, predicate: NgbRowDetailTemplate, descendants: true }, { propertyName: "pagerTpl", first: true, predicate: NgbPagerTemplate, descendants: true }, { propertyName: "cellTplQ", predicate: NgbCellTemplate }, { propertyName: "editTplQ", predicate: NgbEditorTemplate }, { propertyName: "filterTplQ", predicate: NgbFilterTemplate }, { propertyName: "filterMenuTplQ", predicate: NgbFilterMenuTemplate }, { propertyName: "globalTplQ", predicate: NgbGlobalFilterTemplate }, { propertyName: "gridColumnQ", predicate: NgbGridColumnDirective }], viewQueries: [{ propertyName: "bodyScroller", first: true, predicate: ["bodyScroller"], descendants: true }, { propertyName: "headerScroller", first: true, predicate: ["headerScroller"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\n<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\n<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n <table\n class=\"grid-table grid-body mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!paged.length) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (row of paged; track trackRow($index, row); let i = $index) {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [row]=\"row\"\n [index]=\"i\"\n [selected]=\"isRowSelected(row, i)\"\n [ngbDndItem]=\"row\"\n [dndIndex]=\"i\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, i); onRowClick($event, i)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(row, i)\"\n [class.row-selected]=\"isRowSelected(row, i)\"\n [class.row-highlight]=\"isRowHighlighted(row, i)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(row, i)\"\n [ngStyle]=\"resolveRowStyle(row, i)\"\n [attr.aria-selected]=\"isRowSelected(row, i) ? 'true' : null\"\n [style.top.px]=\"stickyTop(row, i)\"\n [style.z-index]=\"isRowSticky(row, i) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(i)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"row\"\n [index]=\"i\"\n [attr.id]=\"'dg-row-detail-' + i\"\n ></tr>\n }\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--bs-border-radius, var(--dg-radius-sm))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text)}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:0 .1rem;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.55;line-height:1}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:.3rem;background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:.45}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgbSyncColgroupDirective, selector: "[ngbSyncColgroup]", inputs: ["ngbSyncColgroup", "syncRole", "syncMode"] }, { kind: "component", type: NgbDatagridToolbarComponent, selector: "ngb-datagrid-toolbar", inputs: ["grid"] }, { kind: "component", type: NgbDatagridEditingToolbarComponent, selector: "ngb-datagrid-editing-toolbar", inputs: ["grid", "selectedCount", "editActive", "saveDisabled"] }, { kind: "component", type: NgbDatagridExternalEditorComponent, selector: "ngb-datagrid-external-editor", inputs: ["grid"] }, { kind: "component", type: NgbDatagridColgroupComponent, selector: "colgroup[ngbDatagridColgroup]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridHeaderComponent, selector: "thead[ngbDatagridHeader]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridFilterMenuPanelComponent, selector: "ngb-datagrid-filter-menu-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridRowFilterOperatorPanelComponent, selector: "ngb-datagrid-row-filter-operator-panel", inputs: ["grid", "col", "anchor"] }, { kind: "component", type: NgbDatagridAddRowComponent, selector: "tr[ngbDatagridAddRow]", inputs: ["grid"] }, { kind: "component", type: NgbDatagridDataRowComponent, selector: "tr[ngbDatagridDataRow]", inputs: ["grid", "row", "index", "selected"] }, { kind: "component", type: NgbDatagridDetailRowComponent, selector: "tr[ngbDatagridDetailRow]", inputs: ["grid", "row", "index"] }, { kind: "component", type: NgbDatagridFooterComponent, selector: "ngb-datagrid-footer", inputs: ["grid", "placement"] }, { kind: "directive", type: NgbDndListDirective, selector: "[ngbDndList]", inputs: ["dndChildrenKey", "ngbDndList", "dndGroup", "dndDisabled", "dndCloneOnDrop", "dndCloneFn", "dndIsPalette", "dndCanDrop", "dndAriaLabel"], outputs: ["dndDropped"] }, { kind: "directive", type: NgbDndItemDirective, selector: "[ngbDndItem]", inputs: ["ngbDndItem", "dndGroup", "dndIndex", "dndSourceList", "dndDisabled"], outputs: ["dndDragStart", "dndDragEnd"] }], encapsulation: i0.ViewEncapsulation.None });
9271
9321
  }
@@ -9292,7 +9342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImpor
9292
9342
  NgbDndItemDirective
9293
9343
  ], providers: [
9294
9344
  { provide: PdfExportAdapter, useClass: JsPdfAdapter },
9295
- { provide: ExcelExportAdapter, useClass: XlsxAdapter },
9345
+ { provide: ExcelExportAdapter, useClass: BrowserExcelExportAdapter },
9296
9346
  { provide: NGB_DATAGRID_HOST, useExisting: forwardRef(() => Datagrid) },
9297
9347
  ], standalone: true, template: "<!-- eslint-disable @angular-eslint/template/interactive-supports-focus -->\n<!-- eslint-disable @angular-eslint/template/click-events-have-key-events -->\n<div\n class=\"ngb-grid\"\n [attr.dir]=\"resolvedDir()\"\n [attr.data-theme]=\"theme\"\n [class.ngb-grid--rtl]=\"isRtl()\"\n [class.ngb-responsive]=\"isResponsiveEnabled()\"\n [class.ngb-grid--compact]=\"densityMode === 'compact'\"\n [class.ngb-grid--stacked]=\"isStackedLayout()\"\n [class.ngb-grid--stacked-cards]=\"isStackedCardsLayout()\"\n [class.ngb-grid--menu-open]=\"!!openFilterMenuField || !!openMenuOperatorField || !!openRowFilterField\"\n [class.ngb-grid--row-operator-open]=\"!!openRowFilterField\"\n [class.ngb-grid--zebra]=\"zebraStripesEnabled\"\n [class.ngb-grid--resizable]=\"resizable && !isStackedLayout()\"\n [class.ngb-grid--column-reorderable]=\"isColumnReorderEnabled()\"\n [class.ngb-grid--loading]=\"loading\"\n [attr.aria-busy]=\"loading ? 'true' : null\"\n>\n <div class=\"ngb-grid__layout-toolbar-host\">\n <ng-content select=\"ngb-datagrid-layout-toolbar\"></ng-content>\n </div>\n <ngb-datagrid-toolbar [grid]=\"gridHost\"></ngb-datagrid-toolbar>\n <ngb-datagrid-editing-toolbar\n [grid]=\"gridHost\"\n [selectedCount]=\"getSelectedCount()\"\n [editActive]=\"isToolbarEditActive()\"\n [saveDisabled]=\"isToolbarSaveDisabled()\"\n ></ngb-datagrid-editing-toolbar>\n\n @if (paginationActive && pagerShowsAt('top')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"top\"></ngb-datagrid-footer>\n }\n\n <div\n class=\"ngb-grid__status visually-hidden-focusable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ statusMessage }}</div>\n\n <div class=\"table-wrapper\" [ngClass]=\"responsiveWrapperClasses\">\n @if (loading) {\n <div class=\"ngb-grid__loading-overlay\" role=\"presentation\">\n <div class=\"spinner-border spinner-border-sm text-primary\" role=\"status\">\n <span class=\"visually-hidden\">Loading</span>\n </div>\n </div>\n }\n <div class=\"grid-header-shell\" #headerScroller>\n <table class=\"grid-table grid-header mb-0\" [ngClass]=\"tableClassList\" [style.width.px]=\"tablePixelWidth\">\n @if (tableOptions?.caption) {\n <caption\n [class.caption-top]=\"(tableOptions?.captionSide ?? 'top') === 'top'\"\n >\n {{ tableOptions?.caption }}\n </caption>\n }\n\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"header\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <thead\n class=\"table-light\"\n ngbDatagridHeader\n [grid]=\"gridHost\"\n ></thead>\n </table>\n </div>\n\n <div [class.table-body-scroll]=\"shouldEnableScroll\" #bodyScroller (scroll)=\"onBodyHorizontalScroll()\">\n <table\n class=\"grid-table grid-body mb-0\"\n [ngClass]=\"tableClassList\"\n [style.width.px]=\"tablePixelWidth\"\n role=\"grid\"\n [attr.aria-rowcount]=\"ariaRowCount()\"\n [attr.aria-colcount]=\"ariaColCount()\"\n [attr.aria-readonly]=\"enableEdit || enableAdd ? 'false' : 'true'\"\n [attr.aria-label]=\"tableOptions?.caption || null\"\n >\n <colgroup\n ngbDatagridColgroup\n [grid]=\"gridHost\"\n [ngbSyncColgroup]=\"colgroupSyncId\"\n syncRole=\"body\"\n [syncMode]=\"resizable ? 'explicit' : 'auto'\"\n ></colgroup>\n\n <tbody\n [ngbDndList]=\"paged\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (dndDropped)=\"onRowDrop($event)\"\n >\n @if (!paged.length) {\n <tr class=\"ngb-grid__empty-row\">\n <td [attr.colspan]=\"ariaColCount()\" class=\"ngb-grid__empty text-center text-muted py-4\">\n {{ emptyStateLabel() }}\n </td>\n </tr>\n }\n\n @if (addingNew) {\n <tr\n ngbDatagridAddRow\n [grid]=\"gridHost\"\n [formGroup]=\"addForm\"\n ></tr>\n }\n\n @for (row of paged; track trackRow($index, row); let i = $index) {\n <tr\n class=\"grid-data-row\"\n ngbDatagridDataRow\n [grid]=\"gridHost\"\n [row]=\"row\"\n [index]=\"i\"\n [selected]=\"isRowSelected(row, i)\"\n [ngbDndItem]=\"row\"\n [dndIndex]=\"i\"\n [dndDisabled]=\"!isRowReorderEnabled()\"\n (click)=\"onRowSelect($event, i); onRowClick($event, i)\"\n [formGroup]=\"editForm\"\n [class.sticky-row]=\"isRowSticky(row, i)\"\n [class.row-selected]=\"isRowSelected(row, i)\"\n [class.row-highlight]=\"isRowHighlighted(row, i)\"\n [class.grid-row--reorderable]=\"isRowReorderEnabled()\"\n [ngClass]=\"resolveRowClass(row, i)\"\n [ngStyle]=\"resolveRowStyle(row, i)\"\n [attr.aria-selected]=\"isRowSelected(row, i) ? 'true' : null\"\n [style.top.px]=\"stickyTop(row, i)\"\n [style.z-index]=\"isRowSticky(row, i) ? 3 : null\"\n ></tr>\n\n @if (rowDetailTpl && isExpanded(i)) {\n <tr\n ngbDatagridDetailRow\n [grid]=\"gridHost\"\n [row]=\"row\"\n [index]=\"i\"\n [attr.id]=\"'dg-row-detail-' + i\"\n ></tr>\n }\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"table grid-table grid-foot mb-0\" [style.width.px]=\"tablePixelWidth\">\n <colgroup>\n @for (col of visibleColumns; track col.field) {\n <col [style.width.px]=\"col?.width\" />\n }\n </colgroup>\n <tbody>\n <tr>\n <td [attr.colspan]=\"visibleColumns.length\" width=\"100%\">\n @if (paginationActive && pagerShowsAt('bottom')) {\n <ngb-datagrid-footer [grid]=\"gridHost\" placement=\"bottom\"></ngb-datagrid-footer>\n }\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n @if (externalEditOpen) {\n <ngb-datagrid-external-editor [grid]=\"gridHost\"></ngb-datagrid-external-editor>\n }\n\n @if (openFilterMenuField && openFilterMenuColumn && openFilterMenuAnchor) {\n <ngb-datagrid-filter-menu-panel\n [grid]=\"gridHost\"\n [col]=\"openFilterMenuColumn\"\n [anchor]=\"openFilterMenuAnchor\"\n />\n }\n\n @if (openRowFilterField && openRowFilterColumn && openRowFilterOperatorAnchor) {\n <ngb-datagrid-row-filter-operator-panel\n [grid]=\"gridHost\"\n [col]=\"openRowFilterColumn\"\n [anchor]=\"openRowFilterOperatorAnchor\"\n />\n }\n</div>\n", styles: ["@charset \"UTF-8\";.ngb-grid,.ngb-datagrid-floating-panel{--dg-surface: #ffffff;--dg-surface-muted: #f9fafb;--dg-surface-subtle: #f3f4f6;--dg-surface-config: #edf4ff;--dg-surface-filter-row: #fffbeb;--dg-surface-sticky-row: #fefce8;--dg-border: #d7deea;--dg-border-strong: #cfd6e2;--dg-text: #1f2937;--dg-text-muted: #5b6578;--dg-text-subtle: #64748b;--dg-primary: #315efb;--dg-primary-hover: #2749c4;--dg-primary-active: #1d4ed8;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-accent: #3b82f6;--dg-on-primary: #ffffff;--dg-placeholder: #94a3b8;--dg-success: #39a949;--dg-success-soft: #dcfce7;--dg-success-text: #166534;--dg-success-border-subtle: #bbf7d0;--dg-danger: #ef4444;--dg-danger-soft: #fee2e2;--dg-danger-text: #b91c1c;--dg-danger-border-subtle: #fecaca;--dg-warning-soft: #fef3c7;--dg-warning-border: #fde68a;--dg-warning-text: #854d0e;--dg-filter-multi-icon: #39a949;--dg-filter-multi-icon-soft: #dcfce7;--dg-neutral-pill-bg: #e2e8f0;--dg-locked-bg: #f8fafc;--dg-row-selected-bg: #eef5ff;--dg-row-hover-bg: #f8fbff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f8fbff;--dg-search-highlight-bg: #fef08a;--dg-sticky-border: #facc15;--dg-sticky-badge-bg: #fef08a;--dg-sticky-badge-text: #854d0e;--dg-dropdown-item-active-bg: var(--dg-primary-soft);--dg-dropdown-item-active-color: var(--dg-primary);--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);--dg-pin-shadow-start: 1px 0 0 rgba(15, 23, 42, .08);--dg-pin-shadow-end: -1px 0 0 rgba(15, 23, 42, .08);--dg-backdrop: rgba(15, 23, 42, .45);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(37, 99, 235, .18);--dg-filter-divider: rgba(219, 227, 239, .8);--dg-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--dg-shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--dg-radius-lg: .5rem;--dg-radius-md: .45rem;--dg-radius-sm: .35rem;--dg-control-height: 2.15rem;--dg-nav-height: 2.5rem;--dg-font-size-header: .92rem;--dg-font-size-cell: .84rem;--dg-font-size-label: .94rem;--dg-cell-padding-y: .75rem;--dg-cell-padding-x: .85rem;--dg-header-padding-y: .75rem;--dg-header-padding-x: .85rem;--dg-table-border-width: 1px;--dg-pager-surface: var(--dg-surface);--dg-pager-text: var(--dg-text-muted);--dg-pager-control-bg: var(--dg-surface);--dg-pager-control-hover-bg: var(--dg-surface-subtle);--dg-pager-control-border: var(--dg-border);--dg-pager-link-text: var(--dg-primary);--dg-pager-active-bg: var(--dg-primary);--dg-pager-active-border: var(--dg-primary);--dg-pager-active-text: var(--dg-on-primary);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap],.ngb-datagrid-floating-panel[data-theme=bootstrap]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-main],.ngb-datagrid-floating-panel[data-theme=bootstrap-main]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #f8fbff;--dg-surface-muted: #eaf3ff;--dg-surface-subtle: #d9eaff;--dg-surface-config: #e0efff;--dg-border: #bfd7f4;--dg-border-strong: #7fb0e3;--dg-text: #172554;--dg-text-muted: #45617f;--dg-primary: #1769e0;--dg-primary-hover: #0f56bd;--dg-primary-active: #0b438f;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #93c5fd;--dg-accent: #0f766e;--dg-row-selected-bg: #dcecff;--dg-row-hover-bg: #eef6ff;--dg-detail-row-bg: #edf6ff;--dg-dropdown-item-active-bg: #dcecff;--dg-dropdown-item-active-color: #0f56bd;--dg-focus-ring: #1769e0;--dg-focus-border: rgba(23, 105, 224, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(23, 105, 224, .16)}.ngb-grid[data-theme=bootstrap-main-dark],.ngb-datagrid-floating-panel[data-theme=bootstrap-main-dark]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #172033;--dg-surface-muted: #202b42;--dg-surface-subtle: #273653;--dg-surface-config: #172a4f;--dg-surface-filter-row: #2c2714;--dg-surface-sticky-row: #2e2810;--dg-border: #33425f;--dg-border-strong: #4a5d80;--dg-text: #edf2ff;--dg-text-muted: #b8c3d9;--dg-text-subtle: #93a2bd;--dg-primary: #38bdf8;--dg-primary-hover: #7dd3fc;--dg-primary-active: #bae6fd;--dg-primary-soft: #12344f;--dg-primary-border-subtle: #0284c7;--dg-accent: #38bdf8;--dg-on-primary: #ffffff;--dg-placeholder: #93a2bd;--dg-locked-bg: #1e2a40;--dg-row-selected-bg: #153a67;--dg-row-hover-bg: #22304a;--dg-row-odd-bg: #172033;--dg-row-even-bg: #1b263a;--dg-detail-row-bg: #182d4c;--dg-dropdown-item-active-bg: #183b70;--dg-dropdown-item-active-color: #bfdbfe;--dg-focus-ring: #60a5fa;--dg-focus-border: rgba(96, 165, 250, .6);--dg-focus-shadow: 0 0 0 .2rem rgba(96, 165, 250, .2);--dg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--dg-shadow-md: 0 14px 32px rgba(0, 0, 0, .36);--dg-pager-surface: #111827;--dg-pager-text: #dbeafe;--dg-pager-control-bg: #172033;--dg-pager-control-hover-bg: #22304a;--dg-pager-control-border: #4a5d80;--dg-pager-link-text: #dbeafe;--dg-pager-active-bg: #38bdf8;--dg-pager-active-border: #38bdf8;--dg-pager-active-text: #0f172a;--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\")}.ngb-grid[data-theme=bootstrap-nordic],.ngb-datagrid-floating-panel[data-theme=bootstrap-nordic]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f2f7f8;--dg-surface-subtle: #e6f0f2;--dg-surface-config: #e4f8fb;--dg-surface-filter-row: #fff7ed;--dg-border: #d5e4e7;--dg-border-strong: #a9c8cf;--dg-text: #263243;--dg-text-muted: #64748b;--dg-primary: #0ea5b7;--dg-primary-hover: #0b8798;--dg-primary-active: #0f6b7a;--dg-primary-soft: #d7f5f8;--dg-primary-border-subtle: #9be4ec;--dg-accent: #e85d75;--dg-row-selected-bg: #e7f8fb;--dg-row-hover-bg: #f0fbfd;--dg-row-odd-bg: transparent;--dg-row-even-bg: #fbfeff;--dg-detail-row-bg: #f4fbfc;--dg-dropdown-item-active-bg: #e7f8fb;--dg-dropdown-item-active-color: #0b8798;--dg-focus-ring: #0ea5b7;--dg-focus-border: rgba(14, 165, 183, .45);--dg-focus-shadow: 0 0 0 .2rem rgba(14, 165, 183, .15);--dg-font-size-cell: .88rem;--dg-cell-padding-y: .82rem;--dg-pager-surface: #f8ffff;--dg-pager-text: #526173;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #e7f8fb;--dg-pager-control-border: #b9dce2;--dg-pager-link-text: #0b8798;--dg-pager-active-bg: #0ea5b7;--dg-pager-active-border: #0ea5b7;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-urban],.ngb-datagrid-floating-panel[data-theme=bootstrap-urban]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #ffffff;--dg-surface-muted: #f5f8fa;--dg-surface-subtle: #edf4f7;--dg-surface-config: #e8f4f9;--dg-border: #d9e5ea;--dg-border-strong: #adc6d3;--dg-text: #263445;--dg-text-muted: #5f6f84;--dg-primary: #468faf;--dg-primary-hover: #36748f;--dg-primary-active: #285b72;--dg-primary-soft: #e0f0f6;--dg-primary-border-subtle: #b9dbe8;--dg-accent: #ff7f50;--dg-row-selected-bg: #e8f4f9;--dg-row-hover-bg: #fff2eb;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-dropdown-item-active-bg: #e8f4f9;--dg-dropdown-item-active-color: #36748f;--dg-focus-ring: #468faf;--dg-focus-border: rgba(70, 143, 175, .48);--dg-focus-shadow: 0 0 0 .2rem rgba(70, 143, 175, .16);--dg-cell-padding-y: .86rem;--dg-cell-padding-x: .95rem;--dg-pager-surface: #fffaf7;--dg-pager-text: #5f6f84;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #fff2eb;--dg-pager-control-border: #d4e1e7;--dg-pager-link-text: #36748f;--dg-pager-active-bg: #468faf;--dg-pager-active-border: #468faf;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=bootstrap-vintage],.ngb-datagrid-floating-panel[data-theme=bootstrap-vintage]{--dg-surface: var(--bs-body-bg, #ffffff);--dg-surface-muted: var(--bs-tertiary-bg, #f8f9fa);--dg-surface-subtle: var(--bs-secondary-bg, #e9ecef);--dg-surface-config: var(--bs-primary-bg-subtle, #cfe2ff);--dg-surface-filter-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-surface-sticky-row: var(--bs-warning-bg-subtle, #fff3cd);--dg-border: var(--bs-border-color, #dee2e6);--dg-border-strong: var(--bs-border-color-translucent, #ced4da);--dg-text: var(--bs-body-color, #212529);--dg-text-muted: var(--bs-secondary-color, #6c757d);--dg-text-subtle: var(--bs-tertiary-color, #6c757d);--dg-primary: var(--bs-primary, #0d6efd);--dg-primary-hover: var(--bs-link-hover-color, #0a58ca);--dg-primary-active: var(--bs-link-hover-color, #0a58ca);--dg-primary-soft: var(--bs-primary-bg-subtle, #cfe2ff);--dg-primary-border-subtle: var(--bs-primary-border-subtle, #9ec5fe);--dg-accent: var(--bs-primary, #0d6efd);--dg-on-primary: var(--bs-btn-color, #fff);--dg-placeholder: var(--bs-secondary-color, #6c757d);--dg-success: var(--bs-success, #198754);--dg-success-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-success-text: var(--bs-success-text-emphasis, #0a3622);--dg-success-border-subtle: var(--bs-success-border-subtle, #a3cfbb);--dg-danger: var(--bs-danger, #dc3545);--dg-danger-soft: var(--bs-danger-bg-subtle, #f8d7da);--dg-danger-text: var(--bs-danger-text-emphasis, #58151c);--dg-danger-border-subtle: var(--bs-danger-border-subtle, #f1aeb5);--dg-warning-soft: var(--bs-warning-bg-subtle, #fff3cd);--dg-warning-border: var(--bs-warning-border-subtle, #ffe69c);--dg-warning-text: var(--bs-warning-text-emphasis, #664d03);--dg-filter-multi-icon: var(--bs-success, #198754);--dg-filter-multi-icon-soft: var(--bs-success-bg-subtle, #d1e7dd);--dg-neutral-pill-bg: var(--bs-secondary-bg, #e9ecef);--dg-locked-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-selected-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-row-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-search-highlight-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-border: var(--bs-warning-border-subtle, #ffe69c);--dg-sticky-badge-bg: var(--bs-warning-bg-subtle, #fff3cd);--dg-sticky-badge-text: var(--bs-warning-text-emphasis, #664d03);--dg-dropdown-item-active-bg: var(--bs-primary-bg-subtle, #cfe2ff);--dg-dropdown-item-active-color: var(--bs-primary, #0d6efd);--dg-focus-ring: var(--bs-focus-ring-color, var(--bs-primary, #0d6efd));--dg-focus-border: rgba(var(--bs-primary-rgb, 13, 110, 253), .45);--dg-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 13, 110, 253), var(--bs-focus-ring-opacity, .25));--dg-pin-shadow-start: 1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-pin-shadow-end: -1px 0 0 var(--bs-border-color-translucent, rgba(0, 0, 0, .08));--dg-backdrop: rgba(var(--bs-emphasis-color-rgb, 33, 37, 41), .5);--dg-loading-overlay: color-mix(in srgb, var(--dg-surface) 55%, transparent);--dg-primary-selection-overlay: rgba(var(--bs-primary-rgb, 13, 110, 253), .18);--dg-filter-divider: var(--bs-border-color-translucent, rgba(0, 0, 0, .1));--dg-shadow-sm: var(--bs-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075));--dg-shadow-md: var(--bs-box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15));--dg-radius-lg: var(--bs-border-radius-lg, .5rem);--dg-radius-md: var(--bs-border-radius, .375rem);--dg-radius-sm: var(--bs-border-radius-sm, .25rem);--dg-pager-surface: var(--bs-body-bg, #ffffff);--dg-pager-text: var(--bs-secondary-color, #6c757d);--dg-pager-control-bg: var(--bs-body-bg, #ffffff);--dg-pager-control-hover-bg: var(--bs-tertiary-bg, #f8f9fa);--dg-pager-control-border: var(--bs-border-color, #dee2e6);--dg-pager-link-text: var(--bs-primary, #0d6efd);--dg-pager-active-bg: var(--bs-primary, #0d6efd);--dg-pager-active-border: var(--bs-primary, #0d6efd);--dg-pager-active-text: var(--bs-btn-color, #fff);--dg-pager-select-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");--dg-surface: #fffdf8;--dg-surface-muted: #f6f0e7;--dg-surface-subtle: #eee4d8;--dg-surface-config: #f2e7ef;--dg-border: #dfd2c2;--dg-border-strong: #c8b8a5;--dg-text: #3d3440;--dg-text-muted: #766a72;--dg-primary: #7f4f68;--dg-primary-hover: #684057;--dg-primary-active: #523246;--dg-primary-soft: #efdde8;--dg-primary-border-subtle: #d8b9ca;--dg-accent: #88b0b7;--dg-row-selected-bg: #f1e4ec;--dg-row-hover-bg: #fbf1e5;--dg-row-odd-bg: #fffdf8;--dg-row-even-bg: #fbf7ef;--dg-detail-row-bg: #fbf6ef;--dg-dropdown-item-active-bg: #f1e4ec;--dg-dropdown-item-active-color: #684057;--dg-focus-ring: #7f4f68;--dg-focus-border: rgba(127, 79, 104, .5);--dg-focus-shadow: 0 0 0 .2rem rgba(127, 79, 104, .16);--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-pager-surface: #fffdf8;--dg-pager-text: #766a72;--dg-pager-control-bg: #fffaf2;--dg-pager-control-hover-bg: #fbf1e5;--dg-pager-control-border: #dfd2c2;--dg-pager-link-text: #684057;--dg-pager-active-bg: #7f4f68;--dg-pager-active-border: #7f4f68;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=material],.ngb-grid[data-theme=material-main],.ngb-datagrid-floating-panel[data-theme=material],.ngb-datagrid-floating-panel[data-theme=material-main]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0}.ngb-grid[data-theme=material-indigo],.ngb-datagrid-floating-panel[data-theme=material-indigo]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #3f51b5;--dg-primary-hover: #303f9f;--dg-primary-active: #283593;--dg-primary-soft: #e8eaf6;--dg-primary-border-subtle: #c5cae9;--dg-dropdown-item-active-bg: #e8eaf6;--dg-dropdown-item-active-color: #303f9f;--dg-focus-ring: #3f51b5;--dg-focus-border: rgba(63, 81, 181, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(63, 81, 181, .16);--dg-row-hover-bg: #f0f2ff}.ngb-grid[data-theme=material-deep-purple],.ngb-datagrid-floating-panel[data-theme=material-deep-purple]{--dg-surface: #fffbfe;--dg-surface-muted: #f4eff4;--dg-surface-subtle: #e7e0ec;--dg-surface-config: #eaddff;--dg-border: #cac4d0;--dg-border-strong: #938f99;--dg-text: #1c1b1f;--dg-text-muted: #49454f;--dg-primary: #6750a4;--dg-primary-hover: #59468d;--dg-primary-active: #4f378b;--dg-primary-soft: #eaddff;--dg-primary-border-subtle: #d0bcff;--dg-accent: #7d5260;--dg-row-selected-bg: #eaddff;--dg-row-hover-bg: #f5efff;--dg-row-odd-bg: transparent;--dg-row-even-bg: transparent;--dg-detail-row-bg: #f7f2fa;--dg-dropdown-item-active-bg: #eaddff;--dg-dropdown-item-active-color: #4f378b;--dg-focus-ring: #6750a4;--dg-focus-border: rgba(103, 80, 164, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(103, 80, 164, .16);--dg-radius-lg: .75rem;--dg-radius-md: .65rem;--dg-radius-sm: .5rem;--dg-font-size-header: .78rem;--dg-font-size-cell: .86rem;--dg-cell-padding-y: .8rem;--dg-table-border-width: 0;--dg-pager-control-bg: #fffbfe;--dg-pager-control-hover-bg: #f4eff4;--dg-pager-control-border: #cac4d0;--dg-primary: #7e57c2;--dg-primary-hover: #673ab7;--dg-primary-active: #512da8;--dg-primary-soft: #ede7f6;--dg-primary-border-subtle: #d1c4e9;--dg-accent: #ff7043;--dg-row-selected-bg: #ede7f6;--dg-row-hover-bg: #f5edff;--dg-dropdown-item-active-bg: #ede7f6;--dg-dropdown-item-active-color: #512da8;--dg-focus-ring: #7e57c2;--dg-focus-border: rgba(126, 87, 194, .5);--dg-focus-shadow: 0 0 0 .18rem rgba(126, 87, 194, .16)}.ngb-grid[data-theme=tailwind],.ngb-grid[data-theme=tailwind-main],.ngb-datagrid-floating-panel[data-theme=tailwind],.ngb-datagrid-floating-panel[data-theme=tailwind-main]{--dg-surface: #ffffff;--dg-surface-muted: #f8fafc;--dg-surface-subtle: #f1f5f9;--dg-border: #cbd5e1;--dg-border-strong: #94a3b8;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #2563eb;--dg-primary-hover: #1d4ed8;--dg-primary-active: #1e40af;--dg-primary-soft: #dbeafe;--dg-primary-border-subtle: #bfdbfe;--dg-dropdown-item-active-bg: #dbeafe;--dg-dropdown-item-active-color: #1d4ed8;--dg-focus-ring: #2563eb;--dg-focus-border: rgba(37, 99, 235, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(37, 99, 235, .16);--dg-row-hover-bg: #eff6ff;--dg-font-size-header: .75rem;--dg-font-size-cell: .85rem;--dg-cell-padding-y: .68rem;--dg-cell-padding-x: .8rem;--dg-table-border-width: 1px;--dg-pager-surface: #ffffff;--dg-pager-text: #475569;--dg-pager-control-bg: #ffffff;--dg-pager-control-hover-bg: #eff6ff;--dg-pager-control-border: #bfdbfe;--dg-pager-link-text: #1d4ed8;--dg-pager-active-bg: #2563eb;--dg-pager-active-border: #2563eb;--dg-pager-active-text: #ffffff}.ngb-grid[data-theme=tailwind-slate],.ngb-datagrid-floating-panel[data-theme=tailwind-slate]{--dg-surface: #f8fafc;--dg-surface-muted: #e2e8f0;--dg-surface-subtle: #cbd5e1;--dg-border: #cbd5e1;--dg-border-strong: #64748b;--dg-text: #0f172a;--dg-text-muted: #475569;--dg-primary: #475569;--dg-primary-hover: #334155;--dg-primary-active: #1e293b;--dg-primary-soft: #e2e8f0;--dg-primary-border-subtle: #94a3b8;--dg-dropdown-item-active-bg: #e2e8f0;--dg-dropdown-item-active-color: #334155;--dg-focus-ring: #475569;--dg-row-hover-bg: #e2e8f0;--dg-row-odd-bg: #f8fafc;--dg-row-even-bg: #f1f5f9;--dg-focus-border: rgba(71, 85, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(71, 85, 105, .16)}.ngb-grid[data-theme=tailwind-emerald],.ngb-datagrid-floating-panel[data-theme=tailwind-emerald]{--dg-surface: #ffffff;--dg-surface-muted: #ecfdf5;--dg-surface-subtle: #d1fae5;--dg-border: #a7f3d0;--dg-border-strong: #34d399;--dg-text: #064e3b;--dg-text-muted: #047857;--dg-primary: #059669;--dg-primary-hover: #047857;--dg-primary-active: #065f46;--dg-primary-soft: #d1fae5;--dg-primary-border-subtle: #6ee7b7;--dg-dropdown-item-active-bg: #d1fae5;--dg-dropdown-item-active-color: #047857;--dg-focus-ring: #059669;--dg-focus-border: rgba(5, 150, 105, .48);--dg-focus-shadow: 0 0 0 .18rem rgba(5, 150, 105, .16)}.ngb-datagrid-floating-panel.grid-filter-menu-popover,.ngb-datagrid-floating-panel.dropdown-menu{position:fixed!important;z-index:1200;display:block;visibility:visible;opacity:1;pointer-events:auto;max-height:min(28rem,100vh - 1.5rem);overflow:auto;margin:0!important;border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-datagrid-floating-panel.dropdown-menu{min-width:12rem;padding:.35rem 0}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item{display:block;width:100%;padding:.5rem .85rem;border:0;background:transparent;font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:left}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-operator-menu .dropdown-item.active{color:var(--dg-dropdown-item-active-color);background:var(--dg-dropdown-item-active-bg)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text)}.ngb-datagrid-floating-panel.dropdown-menu .dropdown-item:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel.grid-filter-menu-popover{min-width:18rem;padding:0}.ngb-datagrid-floating-panel .grid-filter-menu-surface{display:block;min-width:18rem;padding:1rem;border-radius:var(--dg-radius-md);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-datagrid-floating-panel .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-datagrid-floating-panel .grid-filter-stack--multi{gap:.65rem}.ngb-datagrid-floating-panel .grid-filter-condition{display:flex;flex-direction:column;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-operator-select,.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-operator-select--compact,.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:2.5rem;padding:.35rem .25rem;font-size:0}.ngb-datagrid-floating-panel .grid-filter-logic-select,.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-datagrid-floating-panel .grid-filter-logic-select select,.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;color:var(--dg-text);text-align:center}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--split,.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary,.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:hover,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:hover,.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-datagrid-floating-panel .grid-filter-multi-panel,.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-datagrid-floating-panel .grid-filter-join-select,.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-datagrid-floating-panel .grid-filter-join-select__control,.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-datagrid-floating-panel .grid-filter-field{position:relative;width:100%;min-width:0}.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-field--with-icon .grid-filter-value-input{padding-right:2.25rem}.ngb-datagrid-floating-panel .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-datagrid-floating-panel .grid-filter-control,.ngb-datagrid-floating-panel .grid-filter-value-input,.ngb-datagrid-floating-panel .grid-filter-value-select,.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-datagrid-floating-panel .grid-filter-apply--secondary:disabled,.ngb-datagrid-floating-panel .grid-filter-cancel--secondary:disabled,.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-datagrid-floating-panel .grid-filter-condition__join{margin:.15rem 0;font-size:.75rem;font-weight:700;color:var(--dg-text-muted);text-align:center}.ngb-datagrid-floating-panel .grid-filter-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.ngb-datagrid-floating-panel .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted);border:1px solid var(--dg-border);border-radius:var(--dg-radius-sm);background:var(--dg-surface)}.ngb-datagrid-floating-panel .grid-filter-clear,.ngb-datagrid-floating-panel .grid-filter-apply,.ngb-datagrid-floating-panel .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;border-radius:var(--dg-radius-sm)}.ngb-datagrid-floating-panel .grid-filter-apply{border:1px solid var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-datagrid-floating-panel .grid-filter-cancel,.ngb-datagrid-floating-panel .grid-filter-clear{border:1px solid var(--dg-border-strong);background:var(--dg-surface);color:var(--dg-text)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%;min-width:16rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__search{border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);min-height:2rem;padding:.4rem .65rem;font-size:.8125rem;width:100%}.ngb-datagrid-floating-panel .grid-multi-filter-list{max-height:11.5rem;overflow:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-datagrid-floating-panel .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-datagrid-floating-panel .grid-multi-filter-option__main{display:flex;align-items:center;gap:.5rem}.ngb-datagrid-floating-panel .grid-filter-menu-surface__actions--multi{justify-content:space-between}.ngb-datagrid-floating-panel[data-theme=bootstrap].dropdown-menu .dropdown-item{font-weight:400}.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-operator-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-input,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-value-select,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-menu-surface__search,.ngb-datagrid-floating-panel[data-theme=bootstrap] .grid-filter-join-select__control{border-radius:var(--bs-border-radius, var(--dg-radius-sm))}ngb-datagrid{display:block}.ngb-grid{color:var(--dg-text)}.ngb-grid .table{margin-bottom:0}.ngb-grid .datagrid-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__search{flex:1 1 20rem;min-width:16rem}.ngb-grid .datagrid-toolbar__search-label{display:block;margin-bottom:.35rem;font-size:.875rem;font-weight:500;color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-shell{display:flex;align-items:center;gap:.625rem;min-height:calc(var(--dg-control-height) + 4px);padding:0 .875rem;border:1px solid var(--dg-border);border-radius:999px;background:var(--dg-surface);box-shadow:var(--dg-shadow-sm)}.ngb-grid .datagrid-toolbar__search-icon{color:var(--dg-text-muted)}.ngb-grid .datagrid-toolbar__search-input{flex:1 1 auto;width:100%;min-width:0;border:0;background:transparent;color:var(--dg-text);outline:none;font-size:.95rem;padding:.625rem 0}.ngb-grid .datagrid-toolbar__search-input::placeholder{color:var(--dg-placeholder)}.ngb-grid .datagrid-toolbar__actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;flex-wrap:wrap}.ngb-grid .datagrid-toolbar__button,.ngb-grid .grid-row-action,.ngb-grid .grid-filter-apply,.ngb-grid .grid-filter-clear,.ngb-grid .grid-filter-cancel,.ngb-grid .grid-filter-operator__button,.ngb-grid .grid-filter-menu-trigger,.ngb-grid .grid-detail-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--dg-control-height);border-radius:var(--dg-radius-md);border:1px solid var(--dg-border);background:var(--dg-surface);color:var(--dg-text);box-shadow:none;font:inherit;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.ngb-grid .datagrid-toolbar__button:hover,.ngb-grid .grid-row-action:hover,.ngb-grid .grid-filter-apply:hover,.ngb-grid .grid-filter-clear:hover,.ngb-grid .grid-filter-cancel:hover,.ngb-grid .grid-filter-operator__button:hover,.ngb-grid .grid-filter-menu-trigger:hover,.ngb-grid .grid-detail-toggle:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text);text-decoration:none}.ngb-grid .datagrid-toolbar__button:focus-visible,.ngb-grid .grid-row-action:focus-visible,.ngb-grid .grid-filter-apply:focus-visible,.ngb-grid .grid-filter-clear:focus-visible,.ngb-grid .grid-filter-cancel:focus-visible,.ngb-grid .grid-filter-operator__button:focus-visible,.ngb-grid .grid-filter-menu-trigger:focus-visible,.ngb-grid .grid-detail-toggle:focus-visible,.ngb-grid .grid-sort-button:focus-visible,.ngb-grid .grid-edit-control:focus-visible,.ngb-grid .grid-filter-control:focus-visible,.ngb-grid .datagrid-toolbar__search-input:focus-visible{outline:none;border-color:var(--dg-focus-border);box-shadow:var(--dg-focus-shadow)}.ngb-grid .datagrid-toolbar__button{padding:.625rem 1rem;font-size:.875rem;font-weight:400}.ngb-grid .datagrid-toolbar__button--primary{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--primary:hover{background:var(--dg-primary-hover);border-color:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid .datagrid-toolbar__button--secondary{background:var(--dg-surface);color:var(--dg-text)}.ngb-grid .table-wrapper{position:relative;overflow-x:hidden;overflow-y:clip;border:var(--dg-table-border-width) solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-sm);isolation:isolate}.ngb-grid .table-body-scroll{max-height:24rem;overflow-y:auto;overflow-x:auto;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border);scrollbar-gutter:stable both-edges;position:relative;z-index:0}.ngb-grid .grid-table{width:max-content;min-width:100%;table-layout:fixed;margin:0;border-collapse:separate;border-spacing:0}.ngb-grid.ngb-grid--resizable .grid-table{min-width:0;width:max-content}.ngb-grid.ngb-grid--resizable .grid-table th,.ngb-grid.ngb-grid--resizable .grid-table td{box-sizing:border-box}.ngb-grid .grid-header-shell{position:relative;z-index:20;overflow:hidden}.ngb-grid .grid-header{position:relative;z-index:20;overflow:visible}.ngb-grid .grid-header thead tr:first-child th:first-child{border-top-left-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead tr:first-child th:last-child{border-top-right-radius:var(--dg-radius-lg)}.ngb-grid .grid-header thead th{background:var(--dg-surface-muted);border-bottom:var(--dg-table-border-width) solid var(--dg-border);color:var(--dg-text);font-size:var(--dg-font-size-header);font-weight:600;text-transform:none;letter-spacing:.01em;overflow:visible}.ngb-grid .grid-table th,.ngb-grid .grid-table td{vertical-align:middle;border-bottom:var(--dg-table-border-width) solid var(--dg-border);padding:var(--dg-cell-padding-y) var(--dg-cell-padding-x);font-size:var(--dg-font-size-cell)}.ngb-grid .grid-table th{padding:var(--dg-header-padding-y) var(--dg-header-padding-x)}.ngb-grid .grid-table td{background:var(--dg-surface);color:var(--dg-text);font-weight:400}.ngb-grid .grid-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-header .grid-table th{overflow:visible}.ngb-grid .grid-header thead tr:first-child th.grid-header__column--resizable{position:relative}.ngb-grid .grid-column-resize-handle{position:absolute;top:0;right:0;width:.45rem;height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.ngb-grid .grid-column-resize-handle:after{content:\"\";position:absolute;top:.35rem;bottom:.35rem;right:.1rem;width:2px;border-radius:1px;background:var(--dg-border-strong);opacity:0;transition:opacity .15s ease}.ngb-grid .grid-header__column--resizable:hover .grid-column-resize-handle:after,.ngb-grid .grid-column-resize-handle:focus-visible:after{opacity:1}body.ngb-datagrid-column-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.ngb-grid.ngb-grid--column-reorderable .grid-header thead tr:first-child th.grid-header__column--reorderable{position:relative}.ngb-grid .grid-column-reorder-handle{flex:0 0 auto;margin-right:.15rem;padding:0 .1rem;color:var(--dg-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;opacity:.55;line-height:1}.ngb-grid .grid-header__column--reorderable:hover .grid-column-reorder-handle,.ngb-grid .grid-column-reorder-handle:focus-visible{opacity:1}.ngb-grid .grid-header__column--drag-over{background:color-mix(in srgb,var(--dg-accent) 12%,transparent);box-shadow:inset 0 -2px 0 var(--dg-accent)}.ngb-grid .grid-header__cell{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;overflow:visible}.ngb-grid .grid-sort-button{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.ngb-grid .grid-sort-button__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-sort-button__indicator{flex:0 0 auto;font-size:.8rem;color:var(--dg-placeholder)}.ngb-grid .grid-sort-button__indicator--active{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-host{position:relative;display:inline-flex;flex:0 0 auto;z-index:30}.ngb-grid .grid-filter-menu-popover:not(.ngb-datagrid-floating-panel){position:absolute;top:calc(100% + .5rem);right:0;z-index:120}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface{position:static;top:auto;right:auto}.ngb-grid .grid-filter-menu-trigger{min-width:var(--dg-control-height);width:var(--dg-control-height);height:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check .bi{color:var(--dg-placeholder)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check{border-color:var(--dg-focus-border);background:var(--dg-primary-soft);color:var(--dg-primary)}.ngb-grid .grid-filter-menu-trigger--check.grid-filter-menu-trigger--active .bi,.ngb-grid .filter-menu-active .grid-filter-menu-trigger--check .bi{color:var(--dg-primary)}.ngb-grid .grid-filter-menu-surface{position:absolute;top:calc(100% + .5rem);right:0;min-width:18rem;padding:1rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-md);background:var(--dg-surface);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-menu-surface__header{margin-bottom:.875rem}.ngb-grid .grid-filter-menu-surface__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--dg-text-subtle)}.ngb-grid .grid-filter-menu-surface__title{margin-top:.15rem;font-size:.95rem;font-weight:700;color:var(--dg-text)}.ngb-grid .grid-filter-stack{display:flex;flex-direction:column;gap:.75rem}.ngb-grid .grid-filter-stack--multi{gap:.65rem}.ngb-grid .grid-filter-operator-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem;color:var(--dg-text)}.ngb-grid .grid-filter-operator-select--compact{width:auto;min-width:2.25rem;max-width:3.5rem;padding:.35rem .25rem;font-size:.6875rem}.ngb-grid .grid-filter-logic-select{display:flex;justify-content:center;margin:.15rem 0}.ngb-grid .grid-filter-logic-select select{width:auto;min-width:4.5rem;min-height:1.75rem;padding:.2rem 1.5rem .2rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600}.ngb-grid .grid-filter-menu-surface__actions--split{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ngb-grid .grid-filter-apply--secondary,.ngb-grid .grid-filter-cancel--secondary{width:100%;border:1px solid var(--dg-border-strong);background:var(--dg-surface-muted);color:var(--dg-text);font-weight:600}.ngb-grid .grid-filter-apply--secondary:hover,.ngb-grid .grid-filter-cancel--secondary:hover{background:var(--dg-surface-subtle)}.ngb-grid .grid-filter-multi-panel{display:flex;flex-direction:column;gap:.5rem;min-width:16.5rem}.ngb-grid .grid-filter-join-select{display:inline-block;width:fit-content;max-width:100%;margin:.1rem 0}.ngb-grid .grid-filter-join-select__control{width:100%;min-height:1.75rem;padding:.2rem 1.25rem .2rem .5rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.8125rem;font-weight:600;text-align:left}.ngb-grid .grid-filter-value-input,.ngb-grid .grid-filter-value-select{width:100%;min-height:var(--dg-control-height);padding:.45rem .65rem;border:1px solid var(--dg-border);border-radius:.375rem;background:var(--dg-surface);font-size:.875rem}.ngb-grid .grid-filter-apply--secondary:disabled,.ngb-grid .grid-filter-cancel--secondary:disabled{opacity:.45;cursor:not-allowed}.ngb-grid .grid-filter-menu-popover .grid-filter-menu-surface:has(.grid-filter-menu-surface__multi){width:16.25rem;max-width:min(16.25rem,92vw);padding:.75rem}.ngb-grid .grid-filter-menu-surface__multi{display:flex;flex-direction:column;gap:.5rem;width:100%}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-menu-surface__search{border-radius:.5rem;min-height:2rem;padding:.4rem .65rem;font-size:.8125rem}.ngb-grid .grid-multi-filter-list{max-height:11.5rem;overflow:auto;margin:0 -.75rem;padding:.15rem 0;border-top:1px solid var(--dg-border);border-bottom:1px solid var(--dg-border)}.ngb-grid .grid-multi-filter-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.45rem .75rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);cursor:pointer}.ngb-grid .grid-multi-filter-option+.grid-multi-filter-option{border-top:1px solid var(--dg-filter-divider)}.ngb-grid .grid-multi-filter-option--summary{font-weight:700}.ngb-grid .grid-multi-filter-option__main{display:inline-flex;align-items:center;gap:.75rem;min-width:0}.ngb-grid .grid-multi-filter-option__main input{width:1rem;height:1rem;margin:0;accent-color:var(--dg-primary);flex:0 0 auto}.ngb-grid .grid-multi-filter-option__count{font-size:.75rem;font-weight:700;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__label{font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-stack__footer,.ngb-grid .grid-filter-menu-surface__actions{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.ngb-grid .grid-filter-inline{display:flex;align-items:center;gap:.45rem;min-width:0;width:100%}.ngb-grid .grid-filter-field{position:relative;min-width:12rem;flex:1 1 auto}.ngb-grid .grid-filter-field--with-icon .grid-filter-control{padding-right:2.25rem}.ngb-grid .grid-filter-field__icon{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--dg-placeholder);pointer-events:none}.ngb-grid .grid-filter-control,.ngb-grid .grid-edit-control{width:100%;min-width:0;min-height:var(--dg-control-height);padding:.5rem .75rem;border:1px solid var(--dg-border);border-radius:.3rem;background:var(--dg-surface);color:var(--dg-text);font-size:.875rem}.ngb-grid .grid-edit-checkbox{width:1rem;height:1rem;margin-top:0}.ngb-grid .grid-filter-operator{position:relative;flex:0 0 auto}.ngb-grid .grid-filter-operator__button{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-filter-operator__button--compact{min-width:var(--dg-control-height);width:var(--dg-control-height);padding:0}.ngb-grid .grid-filter-operator__button--active{border-color:var(--dg-primary);color:var(--dg-primary)}.ngb-grid .grid-filter-operator .dropdown-menu:not(.ngb-datagrid-floating-panel){position:absolute;inset:calc(100% + .35rem) 0 auto auto;min-width:12rem;margin:0;border-radius:.9rem;border-color:var(--dg-border);box-shadow:var(--dg-shadow-md);z-index:120}.ngb-grid .grid-filter-clear{padding:.55rem .8rem;font-size:.8125rem;color:var(--dg-text-muted)}.ngb-grid .grid-filter-apply{padding:.625rem .95rem;border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary);font-size:.875rem;font-weight:600}.ngb-grid .grid-filter-apply:hover{border-color:var(--dg-primary-active);background:var(--dg-primary-active);color:var(--dg-on-primary)}.ngb-grid .grid-filter-menu-surface__actions--multi{justify-content:space-between;margin-top:.35rem}.ngb-grid .grid-filter-menu-surface__multi .grid-filter-apply{min-width:5.25rem;padding:.5rem 1.15rem;font-size:.8125rem}.ngb-grid .grid-filter-cancel{padding:.5rem .85rem;font-size:.8125rem;font-weight:600;color:var(--dg-text);border:1px solid var(--dg-border-strong);background:var(--dg-surface)}.ngb-grid .grid-filter-cancel:hover{border-color:var(--dg-border-strong);background:var(--dg-surface-subtle);color:var(--dg-text)}.ngb-grid .filter-row th{background:var(--dg-surface-filter-row);padding-top:.625rem;padding-bottom:.625rem;overflow:visible;position:relative;z-index:25}.ngb-grid.ngb-grid--menu-open .filter-row th{z-index:85}.ngb-grid .column-pinned-start,.ngb-grid .column-pinned-end{position:sticky;background:inherit;z-index:2}.ngb-grid .grid-header .column-pinned-start,.ngb-grid .grid-header .column-pinned-end{z-index:6}.ngb-grid .column-pinned-start{box-shadow:var(--dg-pin-shadow-start)}.ngb-grid .column-pinned-start:has(+.column-pinned-start){box-shadow:none}.ngb-grid .column-pinned-end{box-shadow:var(--dg-pin-shadow-end)}.ngb-grid .column-locked{background:var(--dg-locked-bg)}.ngb-grid .sticky-row,.ngb-grid .sticky-row td{background:var(--dg-surface-sticky-row);box-shadow:inset 0 0 0 1px var(--dg-sticky-border)}.ngb-grid .sticky-row{position:sticky;z-index:4}.ngb-grid .grid-sticky-badge{display:inline-flex;align-items:center;margin-left:.45rem;padding:.12rem .4rem;border-radius:.25rem;background:var(--dg-sticky-badge-bg);color:var(--dg-sticky-badge-text);font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle}.ngb-grid .grid-row-action--icon{min-width:2.05rem;width:2.05rem;height:2.05rem;min-height:2.05rem;padding:0;border-radius:var(--dg-radius-md)}.ngb-grid .grid-row-action--edit-icon{border-color:var(--dg-primary);background:var(--dg-primary);color:var(--dg-on-primary)}.ngb-grid .grid-row-action--edit-icon:hover{border-color:var(--dg-primary-hover);background:var(--dg-primary-hover);color:var(--dg-on-primary)}.ngb-grid.ngb-grid--zebra .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected) td{background:var(--dg-row-even-bg, var(--dg-surface-muted))}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(odd):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-odd-bg)}.ngb-grid:not(.ngb-grid--zebra) .grid-body tbody tr:nth-child(2n):not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-even-bg)}.ngb-grid .grid-body tbody tr.grid-data-row:hover:not(.sticky-row):not(.row-selected):not(.row-highlight) td{background:var(--dg-row-hover-bg)}.ngb-grid .row-selected,.ngb-grid .row-selected td{background:var(--dg-row-selected-bg)}.ngb-grid .row-highlight,.ngb-grid .row-highlight td{background:var(--dg-warning-soft)}.ngb-grid .grid-header th.column-pinned-start,.ngb-grid .grid-header th.column-pinned-end,.ngb-grid .grid-body tbody td.column-pinned-start,.ngb-grid .grid-body tbody td.column-pinned-end{background:var(--dg-surface)}.ngb-grid .grid-header th.column-locked,.ngb-grid .grid-body tbody td.column-locked{background:var(--dg-locked-bg)!important}.ngb-grid .grid-body tbody tr.row-selected td.column-locked{background:var(--dg-row-selected-bg)!important}.ngb-grid .cell-highlight{background:var(--dg-primary-soft)}.ngb-grid .grid-search-highlight{padding:0;border-radius:.15rem;background:var(--dg-sticky-badge-bg);color:inherit;font-weight:inherit}.ngb-grid .grid-detail-toggle{min-width:2rem;width:2rem;height:2rem;padding:0;border-radius:999px}.ngb-grid .grid-cell-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.ngb-grid .grid-cell-content,.ngb-grid .grid-cell-text{font-weight:400}.ngb-grid .grid-cell--emphasis .grid-cell-content,.ngb-grid .grid-cell--emphasis .grid-cell-text{font-weight:700}.ngb-grid .grid-boolean-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.5rem;padding:.25rem .55rem;border-radius:999px;background:var(--dg-neutral-pill-bg);color:var(--dg-text-muted);font-size:.75rem;font-weight:700}.ngb-grid .grid-boolean-pill--true{background:var(--dg-success-soft);color:var(--dg-success-text)}.ngb-grid .grid-row-action{padding:.55rem .8rem;font-size:.8125rem;font-weight:600;white-space:nowrap}.ngb-grid .grid-actions-cell{overflow:visible;text-overflow:clip;white-space:normal}.ngb-grid .grid-actions-cell__inner{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:nowrap}.ngb-grid .grid-row-action--secondary{color:var(--dg-primary);background:var(--dg-primary-soft);border-color:var(--dg-primary-border-subtle)}.ngb-grid .grid-row-action--danger{color:var(--dg-danger-text);background:var(--dg-danger-soft);border-color:var(--dg-danger-border-subtle)}.ngb-grid .grid-row-action--success{color:var(--dg-success-text);background:var(--dg-success-soft);border-color:var(--dg-success-border-subtle)}.ngb-grid .grid-row-action--neutral{color:var(--dg-text-muted);background:var(--dg-locked-bg);border-color:var(--dg-border)}.ngb-grid .grid-detail-row__cell{padding:0;background:var(--dg-detail-row-bg)}.ngb-grid .grid-detail-row__content{padding:1rem 1.25rem}.ngb-grid.ngb-grid--compact .grid-table th,.ngb-grid.ngb-grid--compact .grid-table td{padding:.55rem .65rem}.ngb-grid.ngb-grid--compact .datagrid-toolbar__button,.ngb-grid.ngb-grid--compact .grid-row-action,.ngb-grid.ngb-grid--compact .grid-filter-apply,.ngb-grid.ngb-grid--compact .grid-filter-clear,.ngb-grid.ngb-grid--compact .grid-filter-operator__button,.ngb-grid.ngb-grid--compact .grid-filter-menu-trigger,.ngb-grid.ngb-grid--compact .grid-detail-toggle,.ngb-grid.ngb-grid--compact .grid-filter-control,.ngb-grid.ngb-grid--compact .grid-edit-control{min-height:32px;font-size:.8125rem}.ngb-grid .grid-row--reorderable{cursor:grab}.ngb-grid .grid-row--reorderable.ngb-dnd-dragging{cursor:grabbing;opacity:.82}.ngb-grid .ngb-dnd-placeholder{display:table-row;background:transparent}.ngb-grid tbody.ngb-dnd-list,.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=true],.ngb-grid tbody.ngb-dnd-list.ngb-dnd-over[data-drop-valid=false]{border:0;border-radius:0;background:transparent;box-shadow:none}.ngb-grid .ngb-dnd-placeholder>td{padding:0;border:0;background:transparent}.ngb-grid .ngb-dnd-placeholder__bar{display:block;height:.35rem;background:var(--dg-primary-selection-overlay)}.ngb-grid.ngb-grid--stacked .grid-header-shell,.ngb-grid.ngb-grid--stacked .grid-header{display:none}.ngb-grid.ngb-grid--stacked .table-wrapper{width:100%}.ngb-grid.ngb-grid--stacked .table-body-scroll{width:100%;max-height:none;overflow:visible;border-top:0;border-bottom:0}.ngb-grid.ngb-grid--stacked .grid-table.grid-body{width:100%;min-width:0;max-width:100%;table-layout:auto}.ngb-grid.ngb-grid--stacked .grid-table.grid-body colgroup{display:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody{display:block;width:100%}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .grid-header-shell,.ngb-grid.ngb-grid--row-operator-open .filter-row th{overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-header-shell,.ngb-grid.ngb-grid--menu-open .grid-header{z-index:80}.ngb-grid.ngb-grid--menu-open .grid-header thead th.filter-menu-open{position:relative;z-index:95;overflow:visible}.ngb-grid.ngb-grid--menu-open .grid-filter-menu-host{z-index:90}.ngb-grid__filter-menu-overlay{pointer-events:auto}.ngb-grid__layout-toolbar-host:empty{display:none}.ngb-grid__layout-toolbar-host:not(:empty){border-bottom:1px solid var(--dg-border)}.ngb-grid .table-wrapper{position:relative}.ngb-grid.ngb-grid--loading .table-wrapper{pointer-events:none}.ngb-grid.ngb-grid--loading .table-wrapper .grid-table{opacity:.45}.ngb-grid__loading-overlay{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:var(--dg-loading-overlay);pointer-events:none}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody tr{display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.65rem;border-bottom:1px solid var(--dg-border);padding:.9rem 1rem}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td{display:grid;width:100%;min-width:0;box-sizing:border-box;white-space:normal;border-bottom:0;padding:.35rem 0;position:static!important;left:auto!important;right:auto!important}.ngb-grid.ngb-grid--stacked .grid-table.grid-body tbody td:not([data-title]){grid-column:1/-1}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td[data-title]{grid-template-columns:minmax(5.5rem,34%) minmax(0,1fr);align-items:baseline;column-gap:.75rem}.ngb-grid.ngb-grid--stacked:not(.ngb-grid--stacked-cards) .grid-table.grid-body tbody td:before{content:attr(data-title);font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody tr{display:block;width:100%;padding:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td.ngb-stacked-card-cell{display:block;width:100%;padding:.9rem 1rem;border-bottom:1px solid var(--dg-border)}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card,.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}@media(min-width:40rem){.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:1.5rem}}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__group{display:flex;flex-direction:column;gap:.85rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__field{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);line-height:1.3}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .ngb-stacked-card__value{width:100%;min-width:0}.ngb-grid.ngb-grid--stacked.ngb-grid--stacked-cards .grid-table.grid-body tbody td:not([data-title]):not(.ngb-stacked-card-cell){display:block;width:100%;padding:.65rem 1rem 0;border-bottom:0}.ngb-grid[data-theme=material] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=tailwind] .datagrid-toolbar__button--primary,.ngb-grid[data-theme=material] .grid-filter-apply,.ngb-grid[data-theme=tailwind] .grid-filter-apply{border-color:var(--dg-primary);background:var(--dg-primary)}.ngb-grid.ngb-responsive .table{width:100%}@media(max-width:992px){.ngb-grid .grid-filter-inline{min-width:11rem}.ngb-grid .grid-filter-field{min-width:10rem}}@media(max-width:768px){.ngb-grid .datagrid-toolbar{align-items:stretch}.ngb-grid .datagrid-toolbar__actions{justify-content:stretch}.ngb-grid .datagrid-toolbar__button{flex:1 1 auto}.ngb-grid .grid-filter-inline{width:100%}.ngb-grid.ngb-responsive thead{display:none}.ngb-grid.ngb-responsive tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;border:1px solid var(--dg-border);border-radius:.75rem;padding:.75rem;margin-bottom:.75rem}.ngb-grid.ngb-responsive tbody td{display:grid;grid-template-columns:8rem 1fr}.ngb-grid.ngb-responsive tbody td:before{content:attr(data-title);font-weight:600;opacity:.75;padding-right:.5rem}}.ngb-grid .datagrid-editing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--dg-border);border-bottom:0;border-radius:var(--dg-radius-lg) var(--dg-radius-lg) 0 0;background:var(--dg-surface)}.ngb-grid .datagrid-editing-toolbar__start,.ngb-grid .datagrid-editing-toolbar__end{display:inline-flex;align-items:center;gap:.5rem}.ngb-grid .datagrid-editing-toolbar__save[hidden],.ngb-grid .datagrid-editing-toolbar__cancel[hidden]{display:none!important}.ngb-grid .datagrid-editing-toolbar__hint{flex:1 1 auto;text-align:center;font-size:.875rem;font-weight:600;color:var(--dg-text-muted)}.ngb-grid .grid-cell--incell{cursor:cell}.ngb-grid .grid-cell--editing .grid-edit-control{border-color:var(--dg-primary);box-shadow:var(--dg-focus-shadow)}.ngb-grid .grid-external-editor{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:1.5rem}.ngb-grid .grid-external-editor__backdrop{position:absolute;inset:0;border:0;background:var(--dg-backdrop);cursor:pointer}.ngb-grid .grid-external-editor__panel{position:relative;z-index:1;width:min(32rem,100%);max-height:min(90vh,40rem);overflow:auto;padding:1.25rem;border:1px solid var(--dg-border);border-radius:var(--dg-radius-lg);background:var(--dg-surface);box-shadow:var(--dg-shadow-md)}.ngb-grid .grid-external-editor__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ngb-grid .grid-external-editor__title{margin:0;font-size:1.125rem;font-weight:700}.ngb-grid .grid-external-editor__close{border:0;background:transparent;color:var(--dg-text-muted);padding:.25rem;cursor:pointer}.ngb-grid .grid-external-editor__form{display:grid;gap:.85rem}.ngb-grid .grid-external-editor__field{display:grid;gap:.35rem}.ngb-grid .grid-external-editor__label{font-size:.8125rem;font-weight:700;color:var(--dg-text-muted);text-transform:uppercase;letter-spacing:.03em}.ngb-grid .grid-external-editor__error{font-size:.75rem;color:var(--dg-danger)}.ngb-grid .grid-external-editor__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.ngb-grid__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ngb-grid .grid-body td[role=gridcell]:focus-visible,.ngb-grid .grid-body td[role=gridcell].grid-cell--focused{outline:2px solid var(--dg-focus-ring);outline-offset:-2px}.ngb-grid--rtl .grid-column-reorder-handle{transform:scaleX(-1)}.ngb-grid--rtl .column-pinned-start{left:auto;right:var(--dg-pin-start, 0)}.ngb-grid--rtl .column-pinned-end{right:auto;left:var(--dg-pin-end, 0)}.ngb-grid .grid-footer{width:100%;color:var(--dg-pager-text)}.ngb-grid .grid-footer--top{margin-bottom:0;border-bottom:var(--dg-table-border-width) solid var(--dg-border)}.ngb-grid .grid-footer--custom{width:100%}\n"] }]
9298
9348
  }], propDecorators: { columns: [{
@@ -14210,5 +14260,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImpor
14210
14260
  * Generated bundle index. Do not edit.
14211
14261
  */
14212
14262
 
14213
- export { DATAGRID_COLUMN_DIRECTIVES, DATAGRID_TEMPLATE_DIRECTIVES, DND_I18N, DND_LIVE_ANNOUNCE, Datagrid, ExcelExportAdapter, ExportButtonDirective, JsPdfAdapter, NGB_BOOLEAN_FILTER_OPERATORS, NGB_DATAGRID_DEFAULT_LABELS, NGB_DATAGRID_DEFAULT_PAGEABLE, NGB_DATAGRID_HOST, NGB_DATAGRID_KEYBOARD_SHORTCUTS, NGB_DATAGRID_PAGER_BREAKPOINTS, NGB_DATAGRID_THEME_OPTIONS, NGB_DATE_FILTER_OPERATORS, NGB_NUMERIC_FILTER_OPERATORS, NGB_PAGER_BREAKPOINTS, NGB_PAGER_DEFAULT_SETTINGS, NGB_SELECT_FILTER_OPERATORS, NGB_TEXT_FILTER_OPERATORS, NgbAdvancedSearchComponent, NgbCellTemplate, NgbChipsComponent, NgbDataChartComponent, NgbDataSparklineComponent, NgbDatagridButtonDirective, NgbDatagridColumnChooserToolComponent, NgbDatagridControlDirective, NgbDatagridDefaultEditService, NgbDatagridFieldShellComponent, NgbDatagridFilterToolComponent, NgbDatagridFloatingPanelDirective, NgbDatagridLayoutToolbarComponent, NgbDatagridLayoutToolbarSpacerComponent, NgbDatagridSortToolComponent, NgbDatagridSurfaceCardComponent, NgbDatagridThemePickerComponent, NgbDndHandleDirective, NgbDndItemDirective, NgbDndListDirective, NgbDndState, NgbEditorTemplate, NgbExportService, NgbFilterMenuTemplate, NgbFilterTemplate, NgbGlobalFilterTemplate, NgbGridChartComponent, NgbGridColumnDirective, NgbJsonPreviewComponent, NgbLiveAnnouncer, NgbPagerComponent, NgbPagerTemplate, NgbPaginationComponent, NgbRowDetailTemplate, NgbSearchHighlightComponent, NgbSplitterComponent, NgbSplitterPaneComponent, NgbStepLabelDirective, NgbStepperComponent, NgbTreeComponent, NgbTypeaheadComponent, PdfExportAdapter, XlsxAdapter, defaultDndI18n, ngbAggregateValues, ngbAllowedFilterOperators, ngbApplyDataGridOperations, ngbBuildChartJsConfig, ngbBuildColumnSelectionChartData, ngbBuildFullGridChartData, ngbBuildRowSelectionChartData, ngbBuildSparklinePoints, ngbCalculateDataGridAggregates, ngbChartPalette, ngbColumnTypeToFilterType, ngbDatagridPagerSettings, ngbDefaultFilterOperator, ngbFilterOperatorLabel, ngbFindFieldFilterDescriptor, ngbFlattenFilterDescriptors, ngbFormatDatagridLabel, ngbFormatPagerRangeLabel, ngbIsCompositeFilter, ngbOperatorRequiresFilterValue, ngbPagerButtonCountForDensity, ngbResolveDatagridPagerSettings, ngbResolvePageableSettings, ngbResolvePagerDensity, ngbResolvePagerPageSizeOptions, ngbResolvePagerSettings, ngbSetFieldFilter };
14263
+ export { BrowserExcelExportAdapter, DATAGRID_COLUMN_DIRECTIVES, DATAGRID_TEMPLATE_DIRECTIVES, DND_I18N, DND_LIVE_ANNOUNCE, Datagrid, ExcelExportAdapter, ExportButtonDirective, JsPdfAdapter, NGB_BOOLEAN_FILTER_OPERATORS, NGB_DATAGRID_DEFAULT_LABELS, NGB_DATAGRID_DEFAULT_PAGEABLE, NGB_DATAGRID_HOST, NGB_DATAGRID_KEYBOARD_SHORTCUTS, NGB_DATAGRID_PAGER_BREAKPOINTS, NGB_DATAGRID_THEME_OPTIONS, NGB_DATE_FILTER_OPERATORS, NGB_NUMERIC_FILTER_OPERATORS, NGB_PAGER_BREAKPOINTS, NGB_PAGER_DEFAULT_SETTINGS, NGB_SELECT_FILTER_OPERATORS, NGB_TEXT_FILTER_OPERATORS, NgbAdvancedSearchComponent, NgbCellTemplate, NgbChipsComponent, NgbDataChartComponent, NgbDataSparklineComponent, NgbDatagridButtonDirective, NgbDatagridColumnChooserToolComponent, NgbDatagridControlDirective, NgbDatagridDefaultEditService, NgbDatagridFieldShellComponent, NgbDatagridFilterToolComponent, NgbDatagridFloatingPanelDirective, NgbDatagridLayoutToolbarComponent, NgbDatagridLayoutToolbarSpacerComponent, NgbDatagridSortToolComponent, NgbDatagridSurfaceCardComponent, NgbDatagridThemePickerComponent, NgbDndHandleDirective, NgbDndItemDirective, NgbDndListDirective, NgbDndState, NgbEditorTemplate, NgbExportService, NgbFilterMenuTemplate, NgbFilterTemplate, NgbGlobalFilterTemplate, NgbGridChartComponent, NgbGridColumnDirective, NgbJsonPreviewComponent, NgbLiveAnnouncer, NgbPagerComponent, NgbPagerTemplate, NgbPaginationComponent, NgbRowDetailTemplate, NgbSearchHighlightComponent, NgbSplitterComponent, NgbSplitterPaneComponent, NgbStepLabelDirective, NgbStepperComponent, NgbTreeComponent, NgbTypeaheadComponent, PdfExportAdapter, defaultDndI18n, ngbAggregateValues, ngbAllowedFilterOperators, ngbApplyDataGridOperations, ngbBuildChartJsConfig, ngbBuildColumnSelectionChartData, ngbBuildFullGridChartData, ngbBuildRowSelectionChartData, ngbBuildSparklinePoints, ngbCalculateDataGridAggregates, ngbChartPalette, ngbColumnTypeToFilterType, ngbDatagridPagerSettings, ngbDefaultFilterOperator, ngbFilterOperatorLabel, ngbFindFieldFilterDescriptor, ngbFlattenFilterDescriptors, ngbFormatDatagridLabel, ngbFormatPagerRangeLabel, ngbIsCompositeFilter, ngbOperatorRequiresFilterValue, ngbPagerButtonCountForDensity, ngbResolveDatagridPagerSettings, ngbResolvePageableSettings, ngbResolvePagerDensity, ngbResolvePagerPageSizeOptions, ngbResolvePagerSettings, ngbSetFieldFilter };
14214
14264
  //# sourceMappingURL=angular-bootstrap-ngbootstrap.mjs.map