@coreui/data-grid 0.1.0-rc.0 → 0.3.0-rc.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.
Files changed (166) hide show
  1. package/README.md +9 -6
  2. package/dist/css/data-grid.css +156 -38
  3. package/dist/css/data-grid.css.map +1 -1
  4. package/dist/css/data-grid.min.css +2 -2
  5. package/dist/css/data-grid.min.css.map +1 -1
  6. package/dist/css/data-grid.standalone.css +1066 -0
  7. package/dist/css/data-grid.standalone.css.map +1 -0
  8. package/dist/css/data-grid.standalone.min.css +5 -0
  9. package/dist/css/data-grid.standalone.min.css.map +1 -0
  10. package/dist/js/clipboard.cjs +56 -0
  11. package/dist/js/clipboard.cjs.map +1 -0
  12. package/dist/js/clipboard.mjs +54 -0
  13. package/dist/js/clipboard.mjs.map +1 -0
  14. package/dist/js/csv.cjs +36 -59
  15. package/dist/js/csv.cjs.map +1 -1
  16. package/dist/js/csv.mjs +35 -55
  17. package/dist/js/csv.mjs.map +1 -1
  18. package/dist/js/data-grid.esm.js +14108 -9331
  19. package/dist/js/data-grid.esm.js.map +1 -1
  20. package/dist/js/data-grid.esm.min.js +6 -6
  21. package/dist/js/data-grid.esm.min.js.map +1 -1
  22. package/dist/js/data-grid.js +14408 -9634
  23. package/dist/js/data-grid.js.map +1 -1
  24. package/dist/js/data-grid.lite.esm.js +10507 -0
  25. package/dist/js/data-grid.lite.esm.js.map +1 -0
  26. package/dist/js/data-grid.lite.esm.min.js +8 -0
  27. package/dist/js/data-grid.lite.esm.min.js.map +1 -0
  28. package/dist/js/data-grid.lite.js +10520 -0
  29. package/dist/js/data-grid.lite.js.map +1 -0
  30. package/dist/js/data-grid.lite.min.js +8 -0
  31. package/dist/js/data-grid.lite.min.js.map +1 -0
  32. package/dist/js/data-grid.lite.mjs +10507 -0
  33. package/dist/js/data-grid.lite.mjs.map +1 -0
  34. package/dist/js/data-grid.min.js +6 -6
  35. package/dist/js/data-grid.min.js.map +1 -1
  36. package/dist/js/data-grid.mjs +14108 -9331
  37. package/dist/js/data-grid.mjs.map +1 -1
  38. package/dist/js/direction.cjs +26 -0
  39. package/dist/js/direction.cjs.map +1 -0
  40. package/dist/js/direction.mjs +24 -0
  41. package/dist/js/direction.mjs.map +1 -0
  42. package/dist/js/drag.cjs +467 -0
  43. package/dist/js/drag.cjs.map +1 -0
  44. package/dist/js/drag.mjs +464 -0
  45. package/dist/js/drag.mjs.map +1 -0
  46. package/dist/js/export-table-BdabEbJG.mjs +26 -0
  47. package/dist/js/export-table-BdabEbJG.mjs.map +1 -0
  48. package/dist/js/export-table-D762wrZ1.cjs +55 -0
  49. package/dist/js/export-table-D762wrZ1.cjs.map +1 -0
  50. package/dist/js/filters.cjs +89 -132
  51. package/dist/js/filters.cjs.map +1 -1
  52. package/dist/js/filters.mjs +88 -128
  53. package/dist/js/filters.mjs.map +1 -1
  54. package/dist/js/labels.cjs +65 -70
  55. package/dist/js/labels.cjs.map +1 -1
  56. package/dist/js/labels.mjs +64 -66
  57. package/dist/js/labels.mjs.map +1 -1
  58. package/dist/js/print.cjs +66 -0
  59. package/dist/js/print.cjs.map +1 -0
  60. package/dist/js/print.mjs +64 -0
  61. package/dist/js/print.mjs.map +1 -0
  62. package/dist/js/validate.cjs +43 -0
  63. package/dist/js/validate.cjs.map +1 -0
  64. package/dist/js/validate.mjs +42 -0
  65. package/dist/js/validate.mjs.map +1 -0
  66. package/dist/js/xlsx.cjs +240 -0
  67. package/dist/js/xlsx.cjs.map +1 -0
  68. package/dist/js/xlsx.mjs +238 -0
  69. package/dist/js/xlsx.mjs.map +1 -0
  70. package/dist/types/base-component.d.ts +28 -18
  71. package/dist/types/data-grid.d.ts +26 -13
  72. package/dist/types/dom/data.d.ts +15 -0
  73. package/dist/types/dom/event-handler.d.ts +21 -10
  74. package/dist/types/dom/manipulator.d.ts +15 -8
  75. package/dist/types/engine/active-cell.d.ts +1 -0
  76. package/dist/types/engine/data-source.d.ts +1 -1
  77. package/dist/types/engine/features-lite.d.ts +25 -0
  78. package/dist/types/engine/features.d.ts +35 -0
  79. package/dist/types/engine/table.d.ts +3 -3
  80. package/dist/types/engine/validate.d.mts +1 -0
  81. package/dist/types/engine/validate.d.ts +20 -0
  82. package/dist/types/engine/virtualizer.d.ts +2 -0
  83. package/dist/types/icons.d.ts +6 -4
  84. package/dist/types/index-lite.d.mts +1 -0
  85. package/dist/types/index-lite.d.ts +19 -0
  86. package/dist/types/index.d.ts +11 -2
  87. package/dist/types/types.d.ts +53 -31
  88. package/dist/types/ui/body.d.ts +6 -3
  89. package/dist/types/ui/header.d.ts +3 -2
  90. package/dist/types/ui/loading.d.ts +1 -1
  91. package/dist/types/ui/pinning.d.ts +1 -1
  92. package/dist/types/ui/toolbar.d.ts +10 -2
  93. package/dist/types/util/clipboard.d.mts +1 -0
  94. package/dist/types/util/clipboard.d.ts +29 -0
  95. package/dist/types/util/config.d.ts +27 -10
  96. package/dist/types/util/csv.d.ts +5 -5
  97. package/dist/types/util/direction.d.mts +1 -0
  98. package/dist/types/util/direction.d.ts +17 -0
  99. package/dist/types/util/drag.d.mts +1 -0
  100. package/dist/types/util/drag.d.ts +48 -0
  101. package/dist/types/util/export-table.d.ts +47 -0
  102. package/dist/types/util/index.d.ts +66 -10
  103. package/dist/types/util/print.d.mts +1 -0
  104. package/dist/types/util/print.d.ts +32 -0
  105. package/dist/types/util/sanitizer.d.ts +15 -11
  106. package/dist/types/util/xlsx.d.mts +1 -0
  107. package/dist/types/util/xlsx.d.ts +17 -0
  108. package/dist/types/util/zip.d.ts +11 -0
  109. package/package.json +101 -10
  110. package/scss/_base.scss +13 -0
  111. package/scss/_config.scss +14 -0
  112. package/scss/_functions.scss +1 -0
  113. package/scss/_mixins.scss +1 -0
  114. package/scss/base/_buttons.scss +113 -0
  115. package/scss/base/_forms.scss +157 -0
  116. package/scss/base/_helpers.scss +24 -0
  117. package/scss/base/_pagination.scss +100 -0
  118. package/scss/base/_reboot.scss +93 -0
  119. package/scss/base/_root.scss +85 -0
  120. package/scss/base/_spinner.scss +45 -0
  121. package/scss/base/_table.scss +78 -0
  122. package/scss/components/_data-grid.scss +807 -0
  123. package/scss/data-grid.scss +7 -555
  124. package/scss/data-grid.standalone.scss +16 -0
  125. package/scss/functions/_defaults.scss +25 -0
  126. package/scss/mixins/_tokens.scss +12 -0
  127. package/src/{base-component.js → base-component.ts} +21 -17
  128. package/src/data-grid.ts +523 -201
  129. package/src/dom/{data.js → data.ts} +13 -10
  130. package/src/dom/event-handler.ts +380 -0
  131. package/src/dom/{manipulator.js → manipulator.ts} +11 -11
  132. package/src/engine/active-cell.ts +10 -3
  133. package/src/engine/data-source.ts +7 -3
  134. package/src/engine/features-lite.ts +47 -0
  135. package/src/engine/features.ts +68 -0
  136. package/src/engine/table.ts +86 -45
  137. package/src/engine/validate.ts +64 -0
  138. package/src/engine/virtualizer.ts +17 -1
  139. package/src/icons.ts +11 -5
  140. package/src/index-lite.ts +85 -0
  141. package/src/index.ts +30 -2
  142. package/src/labels.ts +6 -4
  143. package/src/types.ts +87 -32
  144. package/src/ui/body.ts +73 -17
  145. package/src/ui/header.ts +51 -26
  146. package/src/ui/loading.ts +2 -2
  147. package/src/ui/pinning.ts +16 -16
  148. package/src/ui/toolbar.ts +27 -3
  149. package/src/util/clipboard.ts +112 -0
  150. package/src/util/{config.js → config.ts} +25 -11
  151. package/src/util/csv.ts +11 -30
  152. package/src/util/direction.ts +37 -0
  153. package/src/util/drag.ts +832 -0
  154. package/src/util/export-table.ts +86 -0
  155. package/src/util/{index.js → index.ts} +55 -35
  156. package/src/util/print.ts +125 -0
  157. package/src/util/{sanitizer.js → sanitizer.ts} +17 -13
  158. package/src/util/xlsx.ts +183 -0
  159. package/src/util/zip.ts +170 -0
  160. package/src/base-component.d.ts +0 -19
  161. package/src/dom/event-handler.d.ts +0 -11
  162. package/src/dom/event-handler.js +0 -331
  163. package/src/dom/manipulator.d.ts +0 -9
  164. package/src/util/config.d.ts +0 -11
  165. package/src/util/index.d.ts +0 -10
  166. package/src/util/sanitizer.d.ts +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../scss/data-grid.standalone.scss","../../scss/base/_root.scss","data-grid.standalone.css","../../scss/base/_reboot.scss","../../scss/base/_table.scss","../../scss/base/_buttons.scss","../../scss/base/_forms.scss","../../scss/base/_pagination.scss","../../scss/base/_spinner.scss","../../scss/base/_helpers.scss","../../scss/components/_data-grid.scss","../../scss/mixins/_tokens.scss"],"names":[],"mappings":"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","file":"data-grid.standalone.css","sourcesContent":["/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n\n// The grid plus the base styles it would otherwise borrow from\n// @coreui/coreui(-pro). Load this INSTEAD of data-grid.css when the CoreUI\n// stylesheet is not on the page.\n\n// scss-docs-start import-stack\n@forward \"config\";\n@forward \"functions\";\n@forward \"mixins\";\n@forward \"base\";\n@forward \"components/data-grid\";\n// scss-docs-end import-stack\n","@use \"../config\" as *;\n\n// Semantic tokens the grid resolves against. Values mirror @coreui/coreui-pro 5.\n// They are emitted unlayered-free: any real CoreUI stylesheet (or app CSS)\n// declaring the same properties outside a layer takes precedence.\n\n// scss-docs-start base-root-variables\n$base-white: #fff !default;\n$base-primary: #5856d6 !default;\n$base-primary-rgb: 88, 86, 214 !default;\n$base-danger: #e55353 !default;\n$base-body-color: rgba(37, 42.92, 54.02, .95) !default;\n$base-body-bg: #fff !default;\n$base-body-bg-rgb: 255, 255, 255 !default;\n$base-emphasis-color: #080a0c !default;\n$base-emphasis-color-rgb: 8, 10, 12 !default;\n$base-secondary-color: rgba(37, 42.92, 54.02, .681) !default;\n$base-secondary-bg: #e7eaee !default;\n$base-tertiary-bg: #f3f4f7 !default;\n$base-border-color: #dbdfe6 !default;\n$base-link-color: #5856d6 !default;\n$base-link-hover-color: #4645ab !default;\n// scss-docs-end base-root-variables\n\n// scss-docs-start base-root-dark-variables\n$base-body-color-dark: rgba(255, 255, 255, .87) !default;\n$base-body-bg-dark: #212631 !default;\n$base-body-bg-rgb-dark: 33, 38, 49 !default;\n$base-emphasis-color-dark: #fff !default;\n$base-emphasis-color-rgb-dark: 255, 255, 255 !default;\n$base-secondary-color-dark: rgba(255, 255, 255, .6) !default;\n$base-secondary-bg-dark: #323a49 !default;\n$base-tertiary-bg-dark: rgb(41.5, 48, 61) !default;\n$base-border-color-dark: #4a566d !default;\n$base-primary-dark: rgb(94.2, 92.4, 207.6) !default;\n$base-link-color-dark: rgb(151.2, 150, 226.8) !default;\n$base-link-hover-color-dark: rgb(171.36, 170.4, 233.04) !default;\n// scss-docs-end base-root-dark-variables\n\n@layer #{$base-layer} {\n :root {\n color-scheme: light;\n\n --#{$prefix}white: #{$base-white};\n --#{$prefix}primary: #{$base-primary};\n --#{$prefix}primary-rgb: #{$base-primary-rgb};\n --#{$prefix}danger: #{$base-danger};\n --#{$prefix}body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --#{$prefix}body-font-size: 1rem;\n --#{$prefix}body-line-height: 1.5;\n --#{$prefix}body-color: #{$base-body-color};\n --#{$prefix}body-bg: #{$base-body-bg};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb};\n --#{$prefix}emphasis-color: #{$base-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb};\n --#{$prefix}secondary-color: #{$base-secondary-color};\n --#{$prefix}secondary-bg: #{$base-secondary-bg};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg};\n --#{$prefix}border-width: 1px;\n --#{$prefix}border-color: #{$base-border-color};\n --#{$prefix}border-radius: .375rem;\n --#{$prefix}border-radius-sm: .25rem;\n --#{$prefix}box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --#{$prefix}focus-ring-color: rgba(#{$base-primary-rgb}, .25);\n --#{$prefix}link-color: #{$base-link-color};\n --#{$prefix}link-hover-color: #{$base-link-hover-color};\n }\n\n [data-coreui-theme=\"dark\"] {\n color-scheme: dark;\n\n --#{$prefix}body-color: #{$base-body-color-dark};\n --#{$prefix}body-bg: #{$base-body-bg-dark};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb-dark};\n --#{$prefix}emphasis-color: #{$base-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb-dark};\n --#{$prefix}secondary-color: #{$base-secondary-color-dark};\n --#{$prefix}secondary-bg: #{$base-secondary-bg-dark};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg-dark};\n --#{$prefix}border-color: #{$base-border-color-dark};\n --#{$prefix}primary: #{$base-primary-dark};\n --#{$prefix}link-color: #{$base-link-color-dark};\n --#{$prefix}link-hover-color: #{$base-link-hover-color-dark};\n }\n}\n","/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n@layer data-grid-base {\n :root {\n color-scheme: light;\n --cui-white: #fff;\n --cui-primary: #5856d6;\n --cui-primary-rgb: 88, 86, 214;\n --cui-danger: #e55353;\n --cui-body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --cui-body-font-size: 1rem;\n --cui-body-line-height: 1.5;\n --cui-body-color: rgba(37, 42.92, 54.02, 0.95);\n --cui-body-bg: #fff;\n --cui-body-bg-rgb: 255, 255, 255;\n --cui-emphasis-color: #080a0c;\n --cui-emphasis-color-rgb: 8, 10, 12;\n --cui-secondary-color: rgba(37, 42.92, 54.02, 0.681);\n --cui-secondary-bg: #e7eaee;\n --cui-tertiary-bg: #f3f4f7;\n --cui-border-width: 1px;\n --cui-border-color: #dbdfe6;\n --cui-border-radius: .375rem;\n --cui-border-radius-sm: .25rem;\n --cui-box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --cui-focus-ring-color: rgba(88, 86, 214, .25);\n --cui-link-color: #5856d6;\n --cui-link-hover-color: #4645ab;\n }\n [data-coreui-theme=dark] {\n color-scheme: dark;\n --cui-body-color: rgba(255, 255, 255, 0.87);\n --cui-body-bg: #212631;\n --cui-body-bg-rgb: 33, 38, 49;\n --cui-emphasis-color: #fff;\n --cui-emphasis-color-rgb: 255, 255, 255;\n --cui-secondary-color: rgba(255, 255, 255, 0.6);\n --cui-secondary-bg: #323a49;\n --cui-tertiary-bg: rgb(41.5, 48, 61);\n --cui-border-color: #4a566d;\n --cui-primary: rgb(94.2, 92.4, 207.6);\n --cui-link-color: rgb(151.2, 150, 226.8);\n --cui-link-hover-color: rgb(171.36, 170.4, 233.04);\n }\n}\n@layer data-grid-base {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--cui-body-font-family);\n font-size: var(--cui-body-font-size);\n font-weight: 400;\n line-height: var(--cui-body-line-height);\n color: var(--cui-body-color);\n text-align: start;\n background-color: var(--cui-body-bg);\n -webkit-text-size-adjust: 100%;\n }\n .data-grid *,\n .data-grid *::before,\n .data-grid *::after {\n box-sizing: border-box;\n }\n .data-grid table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n .data-grid th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n .data-grid thead,\n .data-grid tbody,\n .data-grid tr,\n .data-grid td,\n .data-grid th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n .data-grid label {\n display: inline-block;\n }\n .data-grid button,\n .data-grid input,\n .data-grid optgroup,\n .data-grid select,\n .data-grid textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n .data-grid button,\n .data-grid select {\n text-transform: none;\n }\n .data-grid button,\n .data-grid [type=button],\n .data-grid [type=reset],\n .data-grid [type=submit] {\n -webkit-appearance: button;\n }\n .data-grid button:not(:disabled),\n .data-grid [type=button]:not(:disabled),\n .data-grid [type=reset]:not(:disabled),\n .data-grid [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n .data-grid ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n .data-grid svg {\n vertical-align: middle;\n }\n .data-grid ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n}\n@layer data-grid-base {\n .data-grid .table {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n --cui-table-color-state: initial;\n --cui-table-bg-state: initial;\n --cui-table-color: var(--cui-emphasis-color);\n --cui-table-bg: var(--cui-body-bg);\n --cui-table-border-color: var(--cui-border-color);\n --cui-table-accent-bg: transparent;\n --cui-table-striped-color: var(--cui-emphasis-color);\n --cui-table-striped-bg: rgba(var(--cui-emphasis-color-rgb), 0.05);\n --cui-table-active-color: var(--cui-emphasis-color);\n --cui-table-active-bg: rgba(var(--cui-emphasis-color-rgb), 0.1);\n --cui-table-hover-color: var(--cui-emphasis-color);\n --cui-table-hover-bg: rgba(var(--cui-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--cui-table-border-color);\n }\n .data-grid .table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--cui-table-color-state, var(--cui-table-color-type, var(--cui-table-color)));\n background-color: var(--cui-table-bg);\n border-bottom-width: var(--cui-border-width);\n box-shadow: inset 0 0 0 9999px var(--cui-table-bg-state, var(--cui-table-bg-type, var(--cui-table-accent-bg)));\n }\n .data-grid .table > tbody {\n vertical-align: inherit;\n }\n .data-grid .table > thead {\n vertical-align: bottom;\n }\n .data-grid .table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n }\n .data-grid .table-bordered > :not(caption) > * > * {\n border-width: var(--cui-border-width) 0;\n }\n .data-grid .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n .data-grid .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n }\n .data-grid .table-hover > tbody > tr:hover > * {\n --cui-table-color-state: var(--cui-table-hover-color);\n --cui-table-bg-state: var(--cui-table-hover-bg);\n }\n .data-grid .table-active {\n --cui-table-color-state: var(--cui-table-active-color);\n --cui-table-bg-state: var(--cui-table-active-bg);\n }\n}\n@layer data-grid-base {\n .data-grid .btn {\n --cui-btn-padding-x: 0.75rem;\n --cui-btn-padding-y: 0.375rem;\n --cui-btn-font-size: 1rem;\n --cui-btn-font-weight: 400;\n --cui-btn-line-height: 1.5;\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-bg: transparent;\n --cui-btn-border-width: var(--cui-border-width);\n --cui-btn-border-color: transparent;\n --cui-btn-border-radius: var(--cui-border-radius);\n --cui-btn-hover-color: var(--cui-btn-color);\n --cui-btn-hover-bg: transparent;\n --cui-btn-hover-border-color: transparent;\n --cui-btn-active-color: var(--cui-btn-hover-color);\n --cui-btn-active-bg: var(--cui-btn-hover-bg);\n --cui-btn-active-border-color: var(--cui-btn-hover-border-color);\n --cui-btn-disabled-color: var(--cui-btn-color);\n --cui-btn-disabled-opacity: .65;\n display: inline-block;\n padding: var(--cui-btn-padding-y) var(--cui-btn-padding-x);\n font-size: var(--cui-btn-font-size);\n font-weight: var(--cui-btn-font-weight);\n line-height: var(--cui-btn-line-height);\n color: var(--cui-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--cui-btn-bg);\n border: var(--cui-btn-border-width) solid var(--cui-btn-border-color);\n border-radius: var(--cui-btn-border-radius);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .btn:hover {\n color: var(--cui-btn-hover-color);\n background-color: var(--cui-btn-hover-bg);\n border-color: var(--cui-btn-hover-border-color);\n }\n .data-grid .btn:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .btn:active {\n color: var(--cui-btn-active-color);\n background-color: var(--cui-btn-active-bg);\n border-color: var(--cui-btn-active-border-color);\n }\n .data-grid .btn:disabled {\n color: var(--cui-btn-disabled-color);\n pointer-events: none;\n opacity: var(--cui-btn-disabled-opacity);\n }\n .data-grid .btn-sm {\n --cui-btn-padding-y: 0.25rem;\n --cui-btn-padding-x: 0.5rem;\n --cui-btn-font-size: 0.875rem;\n --cui-btn-border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .btn-primary {\n --cui-btn-color: #fff;\n --cui-btn-bg: var(--cui-primary);\n --cui-btn-border-color: var(--cui-primary);\n --cui-btn-hover-color: #fff;\n --cui-btn-hover-bg: color-mix(in srgb, var(--cui-primary) 85%, #000);\n --cui-btn-hover-border-color: color-mix(in srgb, var(--cui-primary) 80%, #000);\n }\n .data-grid .btn-outline-secondary {\n --cui-btn-color: var(--cui-secondary-color);\n --cui-btn-border-color: var(--cui-border-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-hover-border-color: var(--cui-border-color);\n }\n .data-grid .btn-ghost {\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-active-bg: var(--cui-secondary-bg);\n }\n .data-grid .btn-link {\n --cui-btn-color: var(--cui-link-color);\n --cui-btn-hover-color: var(--cui-link-hover-color);\n text-decoration: underline;\n }\n}\n@layer data-grid-base {\n .data-grid .form-control,\n .data-grid .form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--cui-body-color);\n appearance: none;\n background-color: var(--cui-body-bg);\n background-clip: padding-box;\n border: var(--cui-border-width) solid var(--cui-border-color);\n border-radius: var(--cui-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .form-control:focus,\n .data-grid .form-select:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-control:disabled,\n .data-grid .form-select:disabled {\n background-color: var(--cui-secondary-bg);\n opacity: 1;\n }\n .data-grid .form-control::placeholder,\n .data-grid .form-select::placeholder {\n color: var(--cui-secondary-color);\n opacity: 1;\n }\n .data-grid .form-select {\n padding-inline-end: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n }\n .data-grid .form-control-sm,\n .data-grid .form-select-sm {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n .data-grid .form-control.is-invalid {\n border-color: var(--cui-danger);\n }\n .data-grid .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: 0.125rem;\n }\n .data-grid .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n .data-grid .form-check-input {\n --cui-form-check-bg: var(--cui-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--cui-form-check-bg);\n background-image: var(--cui-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--cui-border-width) solid var(--cui-border-color);\n print-color-adjust: exact;\n }\n .data-grid .form-check-input[type=checkbox] {\n border-radius: 0.25em;\n }\n .data-grid .form-check-input[type=radio] {\n border-radius: 50%;\n }\n .data-grid .form-check-input:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-check-input:checked {\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:checked[type=checkbox] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input:checked[type=radio] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input[type=checkbox]:indeterminate {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n }\n .data-grid .form-check-label {\n cursor: pointer;\n }\n .data-grid .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n }\n [data-coreui-theme=dark] .data-grid .form-select {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n }\n}\n@layer data-grid-base {\n .data-grid .pagination {\n --cui-pagination-padding-x: 0.75rem;\n --cui-pagination-padding-y: 0.375rem;\n --cui-pagination-font-size: 1rem;\n --cui-pagination-color: var(--cui-link-color);\n --cui-pagination-bg: var(--cui-body-bg);\n --cui-pagination-border-width: var(--cui-border-width);\n --cui-pagination-border-color: var(--cui-border-color);\n --cui-pagination-border-radius: var(--cui-border-radius);\n --cui-pagination-hover-color: var(--cui-link-hover-color);\n --cui-pagination-hover-bg: var(--cui-tertiary-bg);\n --cui-pagination-hover-border-color: var(--cui-border-color);\n --cui-pagination-active-color: #fff;\n --cui-pagination-active-bg: var(--cui-primary);\n --cui-pagination-active-border-color: var(--cui-primary);\n --cui-pagination-disabled-color: var(--cui-secondary-color);\n --cui-pagination-disabled-bg: var(--cui-secondary-bg);\n --cui-pagination-disabled-border-color: var(--cui-border-color);\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n .data-grid .page-link {\n position: relative;\n display: block;\n padding: var(--cui-pagination-padding-y) var(--cui-pagination-padding-x);\n font-size: var(--cui-pagination-font-size);\n color: var(--cui-pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--cui-pagination-bg);\n border: var(--cui-pagination-border-width) solid var(--cui-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .page-link:hover {\n z-index: 2;\n color: var(--cui-pagination-hover-color);\n background-color: var(--cui-pagination-hover-bg);\n border-color: var(--cui-pagination-hover-border-color);\n }\n .data-grid .page-link:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--cui-border-width));\n }\n .data-grid .page-item:first-child .page-link {\n border-top-left-radius: var(--cui-pagination-border-radius);\n border-bottom-left-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item:last-child .page-link {\n border-top-right-radius: var(--cui-pagination-border-radius);\n border-bottom-right-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item.active .page-link {\n z-index: 3;\n color: var(--cui-pagination-active-color);\n background-color: var(--cui-pagination-active-bg);\n border-color: var(--cui-pagination-active-border-color);\n }\n .data-grid .page-item.disabled .page-link {\n color: var(--cui-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--cui-pagination-disabled-bg);\n border-color: var(--cui-pagination-disabled-border-color);\n }\n .data-grid .pagination-sm {\n --cui-pagination-padding-x: 0.5rem;\n --cui-pagination-padding-y: 0.25rem;\n --cui-pagination-font-size: 0.875rem;\n --cui-pagination-border-radius: var(--cui-border-radius-sm);\n }\n}\n@layer data-grid-base {\n .data-grid .spinner-border {\n --cui-spinner-width: 2rem;\n --cui-spinner-height: 2rem;\n --cui-spinner-vertical-align: -.125em;\n --cui-spinner-border-width: 0.25em;\n --cui-spinner-animation-speed: 0.75s;\n --cui-spinner-animation-name: data-grid-spinner-border;\n display: inline-block;\n flex-shrink: 0;\n width: var(--cui-spinner-width);\n height: var(--cui-spinner-height);\n vertical-align: var(--cui-spinner-vertical-align);\n border: var(--cui-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--cui-spinner-animation-speed) linear infinite var(--cui-spinner-animation-name);\n }\n .data-grid .spinner-border-sm {\n --cui-spinner-width: 1rem;\n --cui-spinner-height: 1rem;\n --cui-spinner-border-width: .2em;\n }\n}\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@layer data-grid-base {\n .data-grid .visually-hidden:not(caption) {\n position: absolute !important;\n }\n .data-grid .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n}\n.data-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n --cui-data-grid-viewport-max-height: 30rem;\n --cui-data-grid-header-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-header-shadow: inset 0 calc(-1 * var(--cui-border-width, 1px)) 0 var(--cui-border-color, #dee2e6);\n --cui-data-grid-cell-selected-bg: rgba(var(--cui-primary-rgb, 50, 31, 219), 0.12);\n --cui-data-grid-cell-selected-border-color: var(--cui-primary, #321fdb);\n --cui-data-grid-cell-selected-border-width: 1px;\n --cui-data-grid-row-handle-width: 2rem;\n --cui-data-grid-select-cell-width: 2.5rem;\n --cui-data-grid-sorter-margin: 0.25rem;\n --cui-data-grid-sorter-opacity: 0.3;\n --cui-data-grid-spacing: 0.5rem;\n --cui-data-grid-resizer-width: 0.625rem;\n --cui-data-grid-resizer-grip-height: 60%;\n --cui-data-grid-resizer-grip-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-resizer-grip-color-hover: var(--cui-secondary-color, #6c757d);\n --cui-data-grid-pinned-border-width: var(--cui-border-width);\n --cui-data-grid-pinned-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-drop-indicator: var(--cui-primary, #321fdb);\n --cui-data-grid-drag-transition: 0.15s ease;\n --cui-data-grid-menu-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-menu-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-menu-shadow: var(--cui-box-shadow, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));\n --cui-data-grid-menu-min-width: 10rem;\n --cui-data-grid-menu-item-hover-bg: var(--cui-tertiary-bg, #f8f9fa);\n --cui-data-grid-loading-bg: rgba(var(--cui-body-bg-rgb, 255, 255, 255), 0.6);\n --cui-data-grid-pinned-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-focus-ring-width: 2px;\n --cui-data-grid-focus-ring-color: var(--cui-primary, #321fdb);\n}\n.data-grid .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-toolbar-actions {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n.data-grid .data-grid-toolbar-search {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--cui-data-grid-viewport-max-height);\n overflow-y: auto;\n overflow-anchor: none;\n}\n.data-grid .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n}\n.data-grid .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: 0.25rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid [role=grid] :is(td, th):focus-visible {\n outline: var(--cui-data-grid-focus-ring-width) solid var(--cui-data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--cui-data-grid-focus-ring-width));\n}\n.data-grid .data-grid-viewport:focus-visible {\n outline: 0;\n}\n.data-grid .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--cui-data-grid-header-bg);\n box-shadow: var(--cui-data-grid-header-shadow);\n}\n.data-grid .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: 48px;\n vertical-align: middle;\n}\n.data-grid .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n}\n.data-grid .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n}\n.data-grid .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.data-grid .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid .btn-ghost {\n --cui-btn-padding-x: var(--cui-btn-padding-y);\n --cui-btn-line-height: 1;\n}\n.data-grid .data-grid-menu-button {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--cui-data-grid-menu-min-width);\n padding: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.25rem 0.75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-menu-item:hover, .data-grid .data-grid-menu-item:focus-visible {\n background-color: var(--cui-data-grid-menu-item-hover-bg);\n}\n.data-grid .data-grid-menu-item[aria-disabled=true] {\n color: var(--cui-secondary-color, #6c757d);\n cursor: default;\n background: none;\n}\n.data-grid .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n padding: 0.75rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-filter-menu > div {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.data-grid .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.data-grid .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n}\n.data-grid .data-grid-filter-menu-join label {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n}\n.data-grid .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n max-height: 14rem;\n overflow-y: auto;\n}\n.data-grid .data-grid-filter-menu-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n}\n.data-grid .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n max-height: 20rem;\n padding: 0.75rem;\n overflow-y: auto;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-column-chooser-option {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n margin-bottom: 0;\n}\n.data-grid .data-grid-column-chooser-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n padding-top: 0.25rem;\n margin-top: 0.25rem;\n border-top: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-filter-button {\n position: relative;\n margin-inline-start: auto;\n}\n.data-grid .data-grid-filter-button ~ .data-grid-menu-button {\n margin-inline-start: 0;\n}\n.data-grid .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: 0.125rem;\n inset-inline-end: 0.125rem;\n width: 0.375rem;\n height: 0.375rem;\n content: \"\";\n background-color: var(--cui-primary, #321fdb);\n border-radius: 50%;\n}\n.data-grid .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: 0.75;\n}\n.data-grid .data-grid-menu-item-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-menu-divider {\n height: var(--cui-border-width, 1px);\n margin: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-dragging {\n opacity: 0.5;\n}\n.data-grid.data-grid-drag-active {\n cursor: grabbing;\n user-select: none;\n}\n.data-grid .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1080;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--cui-data-grid-cell-padding-x, 0.5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--cui-data-grid-pinned-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-drop-indicator);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n transform: translate(-9999px, -9999px);\n opacity: 0.9;\n}\n.data-grid .data-grid-drag-ghost-settle {\n transition: transform var(--cui-data-grid-drag-transition), opacity var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drop-indicator {\n position: fixed;\n z-index: 1080;\n pointer-events: none;\n background-color: var(--cui-data-grid-drop-indicator);\n transition: top var(--cui-data-grid-drag-transition), left var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drag-preview {\n transition: transform var(--cui-data-grid-drag-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .data-grid :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n}\n.data-grid .data-grid-drop-indicator-x {\n width: 0.125rem;\n}\n.data-grid .data-grid-drop-indicator-y {\n height: 0.125rem;\n}\n.data-grid .data-grid-cell-selected {\n position: relative;\n background-color: var(--cui-data-grid-cell-selected-bg);\n}\n.data-grid .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--cui-data-grid-cell-selected-border-color);\n}\n.data-grid .data-grid-cell-selected-top::after {\n border-top-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-right::after {\n border-right-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-left::after {\n border-left-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-row-handle-cell {\n width: var(--cui-data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n}\n.data-grid .data-grid-row-handle {\n display: inline-flex;\n color: var(--cui-secondary-color, #6c757d);\n cursor: grab;\n touch-action: none;\n}\n.data-grid .data-grid-select-cell {\n width: var(--cui-data-grid-select-cell-width);\n text-align: center;\n}\n.data-grid .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--cui-data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n user-select: none;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-sort-icon {\n display: inline-flex;\n font-size: 0.875em;\n opacity: 0;\n}\n.data-grid .data-grid-sort-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n}\n.data-grid[data-coreui-sorter-visibility=always] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon, .data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n}\n.data-grid:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid.data-grid-resizable .data-grid-viewport, .data-grid.data-grid-pinned .data-grid-viewport {\n overflow-x: auto;\n}\n.data-grid.data-grid-resizable .table, .data-grid.data-grid-pinned .table {\n width: max-content;\n min-width: 100%;\n}\n.data-grid.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n}\n.data-grid.data-grid-pinned .table {\n border-collapse: separate;\n border-spacing: 0;\n}\n.data-grid .data-grid-cell-pinned-start,\n.data-grid .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--cui-data-grid-pinned-bg);\n}\n.data-grid .data-grid-header .data-grid-cell-pinned-start,\n.data-grid .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n}\n.data-grid .data-grid-cell-pinned-start-last,\n.data-grid .data-grid-cell-pinned-end-first {\n position: sticky;\n}\n.data-grid .data-grid-cell-pinned-start-last::after,\n.data-grid .data-grid-cell-pinned-end-first::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--cui-data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n}\n.data-grid .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-0.5 * var(--cui-data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cui-data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n user-select: none;\n}\n.data-grid .data-grid-resizer::after {\n width: 2px;\n height: var(--cui-data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--cui-data-grid-resizer-grip-color);\n transition: background-color 0.15s ease;\n}\n.data-grid .data-grid-resizer:hover::after, .data-grid .data-grid-resizer.data-grid-resizer-active::after {\n background-color: var(--cui-data-grid-resizer-grip-color-hover);\n}\n.data-grid .data-grid-spacer > td {\n padding: 0;\n border: 0;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n}\n.data-grid .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n}\n.data-grid .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--cui-data-grid-spacing);\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-tooltip {\n position: fixed;\n z-index: 1080;\n max-width: 12rem;\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--cui-body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--cui-emphasis-color, #000);\n border-radius: var(--cui-border-radius, 0.375rem);\n}\n.data-grid .data-grid-empty > td {\n padding: 2rem 1rem;\n color: var(--cui-secondary-color, #6c757d);\n text-align: center;\n}\n.data-grid .data-grid-pagination {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-top: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination.data-grid-pagination-top {\n border-top: 0;\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination .pagination {\n margin-bottom: 0;\n}\n.data-grid .data-grid-pagination .data-grid-pagination-info {\n margin-inline-start: auto;\n color: var(--cui-secondary-color, #6c757d);\n}\n.data-grid .data-grid-pagination .form-select {\n width: auto;\n}\n\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n }\n .data-grid-print-root h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n .data-grid-print-root table {\n width: 100%;\n border-collapse: collapse;\n }\n .data-grid-print-root :is(th, td) {\n padding: 0.25rem 0.5rem;\n text-align: start;\n border: 1px solid #000;\n }\n .data-grid-print-root thead {\n display: table-header-group;\n }\n .data-grid-print-root tr {\n break-inside: avoid;\n }\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=data-grid.standalone.css.map */\n","@use \"../config\" as *;\n\n// The slice of CoreUI's reboot the grid actually relies on, scoped to the grid\n// so the sheet never restyles the host page.\n\n@layer #{$base-layer} {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--#{$prefix}body-font-family);\n font-size: var(--#{$prefix}body-font-size);\n font-weight: 400;\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: start;\n background-color: var(--#{$prefix}body-bg);\n -webkit-text-size-adjust: 100%;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n\n thead,\n tbody,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n label {\n display: inline-block;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n }\n\n ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n svg {\n vertical-align: middle;\n }\n\n ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-table-variables\n$base-table-cell-padding-y: .5rem !default;\n$base-table-cell-padding-x: .5rem !default;\n$base-table-striped-factor: .05 !default;\n$base-table-active-factor: .1 !default;\n$base-table-hover-factor: .075 !default;\n// scss-docs-end base-table-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .table {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n --#{$prefix}table-color-state: initial;\n --#{$prefix}table-bg-state: initial;\n --#{$prefix}table-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-bg: var(--#{$prefix}body-bg);\n --#{$prefix}table-border-color: var(--#{$prefix}border-color);\n --#{$prefix}table-accent-bg: transparent;\n --#{$prefix}table-striped-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-striped-factor});\n --#{$prefix}table-active-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-active-factor});\n --#{$prefix}table-hover-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-hover-factor});\n\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--#{$prefix}table-border-color);\n\n > :not(caption) > * > * {\n padding: $base-table-cell-padding-y $base-table-cell-padding-x;\n color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));\n background-color: var(--#{$prefix}table-bg);\n border-bottom-width: var(--#{$prefix}border-width);\n box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-sm > :not(caption) > * > * {\n padding: .25rem .25rem;\n }\n\n .table-bordered > :not(caption) > * > * {\n border-width: var(--#{$prefix}border-width) 0;\n }\n\n .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n .table-hover > tbody > tr:hover > * {\n --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);\n }\n\n .table-active {\n --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-button-variables\n$base-btn-padding-y: .375rem !default;\n$base-btn-padding-x: .75rem !default;\n$base-btn-font-size: 1rem !default;\n$base-btn-padding-y-sm: .25rem !default;\n$base-btn-padding-x-sm: .5rem !default;\n$base-btn-font-size-sm: .875rem !default;\n$base-btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-button-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .btn {\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x};\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y};\n --#{$prefix}btn-font-size: #{$base-btn-font-size};\n --#{$prefix}btn-font-weight: 400;\n --#{$prefix}btn-line-height: 1.5;\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-bg: transparent;\n --#{$prefix}btn-border-width: var(--#{$prefix}border-width);\n --#{$prefix}btn-border-color: transparent;\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}btn-hover-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-hover-bg: transparent;\n --#{$prefix}btn-hover-border-color: transparent;\n --#{$prefix}btn-active-color: var(--#{$prefix}btn-hover-color);\n --#{$prefix}btn-active-bg: var(--#{$prefix}btn-hover-bg);\n --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-hover-border-color);\n --#{$prefix}btn-disabled-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-disabled-opacity: .65;\n\n display: inline-block;\n padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n font-size: var(--#{$prefix}btn-font-size);\n font-weight: var(--#{$prefix}btn-font-weight);\n line-height: var(--#{$prefix}btn-line-height);\n color: var(--#{$prefix}btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--#{$prefix}btn-bg);\n border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n border-radius: var(--#{$prefix}btn-border-radius);\n transition: $base-btn-transition;\n\n &:hover {\n color: var(--#{$prefix}btn-hover-color);\n background-color: var(--#{$prefix}btn-hover-bg);\n border-color: var(--#{$prefix}btn-hover-border-color);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:active {\n color: var(--#{$prefix}btn-active-color);\n background-color: var(--#{$prefix}btn-active-bg);\n border-color: var(--#{$prefix}btn-active-border-color);\n }\n\n &:disabled {\n color: var(--#{$prefix}btn-disabled-color);\n pointer-events: none;\n opacity: var(--#{$prefix}btn-disabled-opacity);\n }\n }\n\n .btn-sm {\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y-sm};\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x-sm};\n --#{$prefix}btn-font-size: #{$base-btn-font-size-sm};\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .btn-primary {\n --#{$prefix}btn-color: #fff;\n --#{$prefix}btn-bg: var(--#{$prefix}primary);\n --#{$prefix}btn-border-color: var(--#{$prefix}primary);\n --#{$prefix}btn-hover-color: #fff;\n --#{$prefix}btn-hover-bg: color-mix(in srgb, var(--#{$prefix}primary) 85%, #000);\n --#{$prefix}btn-hover-border-color: color-mix(in srgb, var(--#{$prefix}primary) 80%, #000);\n }\n\n .btn-outline-secondary {\n --#{$prefix}btn-color: var(--#{$prefix}secondary-color);\n --#{$prefix}btn-border-color: var(--#{$prefix}border-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-color);\n }\n\n .btn-ghost {\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-active-bg: var(--#{$prefix}secondary-bg);\n }\n\n .btn-link {\n --#{$prefix}btn-color: var(--#{$prefix}link-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}link-hover-color);\n\n text-decoration: underline;\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-form-variables\n$base-input-padding-y: .375rem !default;\n$base-input-padding-x: .75rem !default;\n$base-input-font-size: 1rem !default;\n$base-input-padding-y-sm: .25rem !default;\n$base-input-padding-x-sm: .5rem !default;\n$base-input-font-size-sm: .875rem !default;\n$base-input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n$base-form-select-indicator: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-select-indicator-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-input-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-radio-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\") !default;\n$base-form-check-indeterminate-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\") !default;\n// scss-docs-end base-form-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .form-control,\n .form-select {\n display: block;\n width: 100%;\n padding: $base-input-padding-y $base-input-padding-x;\n font-size: $base-input-font-size;\n font-weight: 400;\n line-height: 1.5;\n color: var(--#{$prefix}body-color);\n appearance: none;\n background-color: var(--#{$prefix}body-bg);\n background-clip: padding-box;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n border-radius: var(--#{$prefix}border-radius);\n transition: $base-input-transition;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:disabled {\n background-color: var(--#{$prefix}secondary-bg);\n opacity: 1;\n }\n\n &::placeholder {\n color: var(--#{$prefix}secondary-color);\n opacity: 1;\n }\n }\n\n .form-select {\n padding-inline-end: 2.25rem;\n background-image: $base-form-select-indicator;\n background-repeat: no-repeat;\n background-position: right .75rem center;\n background-size: 16px 12px;\n }\n\n .form-control-sm,\n .form-select-sm {\n padding: $base-input-padding-y-sm $base-input-padding-x-sm;\n font-size: $base-input-font-size-sm;\n border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n\n .form-control.is-invalid {\n border-color: var(--#{$prefix}danger);\n }\n\n .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: .125rem;\n }\n\n .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n\n .form-check-input {\n --#{$prefix}form-check-bg: var(--#{$prefix}body-bg);\n\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: .25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--#{$prefix}form-check-bg);\n background-image: var(--#{$prefix}form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n print-color-adjust: exact;\n\n &[type=\"checkbox\"] {\n border-radius: .25em;\n }\n\n &[type=\"radio\"] {\n border-radius: 50%;\n }\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:checked {\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:checked[type=\"checkbox\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-input-checked-bg-image};\n }\n\n &:checked[type=\"radio\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-radio-checked-bg-image};\n }\n\n &[type=\"checkbox\"]:indeterminate {\n --#{$prefix}form-check-bg-image: #{$base-form-check-indeterminate-bg-image};\n\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:disabled {\n pointer-events: none;\n filter: none;\n opacity: .5;\n }\n }\n\n .form-check-label {\n cursor: pointer;\n }\n\n .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: .5;\n }\n }\n\n [data-coreui-theme=\"dark\"] .data-grid .form-select {\n background-image: $base-form-select-indicator-dark;\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-pagination-variables\n$base-pagination-padding-y: .375rem !default;\n$base-pagination-padding-x: .75rem !default;\n$base-pagination-padding-y-sm: .25rem !default;\n$base-pagination-padding-x-sm: .5rem !default;\n$base-pagination-font-size-sm: .875rem !default;\n$base-pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-pagination-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .pagination {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y};\n --#{$prefix}pagination-font-size: 1rem;\n --#{$prefix}pagination-color: var(--#{$prefix}link-color);\n --#{$prefix}pagination-bg: var(--#{$prefix}body-bg);\n --#{$prefix}pagination-border-width: var(--#{$prefix}border-width);\n --#{$prefix}pagination-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}pagination-hover-color: var(--#{$prefix}link-hover-color);\n --#{$prefix}pagination-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}pagination-hover-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-active-color: #fff;\n --#{$prefix}pagination-active-bg: var(--#{$prefix}primary);\n --#{$prefix}pagination-active-border-color: var(--#{$prefix}primary);\n --#{$prefix}pagination-disabled-color: var(--#{$prefix}secondary-color);\n --#{$prefix}pagination-disabled-bg: var(--#{$prefix}secondary-bg);\n --#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);\n\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n\n .page-link {\n position: relative;\n display: block;\n padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n font-size: var(--#{$prefix}pagination-font-size);\n color: var(--#{$prefix}pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--#{$prefix}pagination-bg);\n border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n transition: $base-pagination-transition;\n\n &:hover {\n z-index: 2;\n color: var(--#{$prefix}pagination-hover-color);\n background-color: var(--#{$prefix}pagination-hover-bg);\n border-color: var(--#{$prefix}pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n }\n\n .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--#{$prefix}border-width));\n }\n\n .page-item:first-child .page-link {\n border-top-left-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-left-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item:last-child .page-link {\n border-top-right-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-right-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item.active .page-link {\n z-index: 3;\n color: var(--#{$prefix}pagination-active-color);\n background-color: var(--#{$prefix}pagination-active-bg);\n border-color: var(--#{$prefix}pagination-active-border-color);\n }\n\n .page-item.disabled .page-link {\n color: var(--#{$prefix}pagination-disabled-color);\n pointer-events: none;\n background-color: var(--#{$prefix}pagination-disabled-bg);\n border-color: var(--#{$prefix}pagination-disabled-border-color);\n }\n\n .pagination-sm {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x-sm};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y-sm};\n --#{$prefix}pagination-font-size: #{$base-pagination-font-size-sm};\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius-sm);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-spinner-variables\n$base-spinner-width: 2rem !default;\n$base-spinner-height: $base-spinner-width !default;\n$base-spinner-border-width: .25em !default;\n$base-spinner-animation-speed: .75s !default;\n// scss-docs-end base-spinner-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .spinner-border {\n --#{$prefix}spinner-width: #{$base-spinner-width};\n --#{$prefix}spinner-height: #{$base-spinner-height};\n --#{$prefix}spinner-vertical-align: -.125em;\n --#{$prefix}spinner-border-width: #{$base-spinner-border-width};\n --#{$prefix}spinner-animation-speed: #{$base-spinner-animation-speed};\n --#{$prefix}spinner-animation-name: data-grid-spinner-border;\n\n display: inline-block;\n flex-shrink: 0;\n width: var(--#{$prefix}spinner-width);\n height: var(--#{$prefix}spinner-height);\n vertical-align: var(--#{$prefix}spinner-vertical-align);\n border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n }\n\n .spinner-border-sm {\n --#{$prefix}spinner-width: 1rem;\n --#{$prefix}spinner-height: 1rem;\n --#{$prefix}spinner-border-width: .2em;\n }\n }\n}\n\n// Keyframes cannot be scoped; the name is namespaced instead so it can never\n// collide with the host page's own animations.\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","@use \"../config\" as *;\n\n// `!important` declarations invert the layer order — a layered `!important`\n// beats an unlayered one — so this block wins even when CoreUI is loaded.\n// It is byte-for-byte the same rule, so that costs nothing.\n\n@layer #{$base-layer} {\n .data-grid {\n .visually-hidden:not(caption) {\n position: absolute !important;\n }\n\n .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n }\n}\n","@use \"../functions/defaults\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../config\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n\n// Everything resolves through CoreUI semantic variables, so light/dark theming\n// via [data-coreui-theme] works with no extra rules. The fallbacks keep the grid\n// legible when the CoreUI stylesheet is absent; `data-grid.standalone.css` fills\n// the rest in.\n\n// scss-docs-start data-grid-variables\n$data-grid-viewport-max-height: 30rem !default;\n$data-grid-header-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-header-shadow: inset 0 calc(-1 * var(--#{$prefix}border-width, 1px)) 0 var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-cell-selected-bg: rgba(var(--#{$prefix}primary-rgb, 50, 31, 219), .12) !default;\n$data-grid-cell-selected-border-color: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-cell-selected-border-width: 1px !default;\n$data-grid-row-handle-width: 2rem !default;\n$data-grid-select-cell-width: 2.5rem !default;\n$data-grid-sorter-margin: .25rem !default;\n$data-grid-sorter-opacity: .3 !default;\n$data-grid-spacing: .5rem !default;\n$data-grid-resizer-width: .625rem !default;\n$data-grid-resizer-grip-height: 60% !default;\n$data-grid-resizer-grip-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-resizer-grip-color-hover: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-pinned-border-width: var(--#{$prefix}border-width) !default;\n$data-grid-pinned-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-drop-indicator: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-drag-transition: .15s ease !default;\n$data-grid-menu-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-menu-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-menu-shadow: var(--#{$prefix}box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)) !default;\n$data-grid-menu-min-width: 10rem !default;\n$data-grid-menu-item-hover-bg: var(--#{$prefix}tertiary-bg, #f8f9fa) !default;\n$data-grid-loading-bg: rgba(var(--#{$prefix}body-bg-rgb, 255, 255, 255), .6) !default;\n$data-grid-pinned-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-focus-ring-width: 2px !default;\n$data-grid-focus-ring-color: var(--#{$prefix}primary, #321fdb) !default;\n// scss-docs-end data-grid-variables\n\n// Values that shape the grid but have no runtime knob. Sass-only on purpose:\n// a token here would be a new public custom property, which is a separate call.\n// scss-docs-start data-grid-layout-variables\n$data-grid-bar-min-height: 48px !default;\n$data-grid-border-width: var(--#{$prefix}border-width, 1px) !default;\n$data-grid-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-border-radius: var(--#{$prefix}border-radius, .375rem) !default;\n$data-grid-muted-color: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-popup-max-width: 18rem !default;\n$data-grid-gap-sm: .25rem !default;\n$data-grid-tooltip-z-index: 1080 !default;\n// scss-docs-end data-grid-layout-variables\n\n$data-grid-tokens: () !default;\n\n// scss-docs-start data-grid-css-vars\n// stylelint-disable-next-line scss/dollar-variable-default\n$data-grid-tokens: defaults(\n (\n --#{$prefix}data-grid-viewport-max-height: #{$data-grid-viewport-max-height},\n --#{$prefix}data-grid-header-bg: #{$data-grid-header-bg},\n --#{$prefix}data-grid-header-shadow: #{$data-grid-header-shadow},\n --#{$prefix}data-grid-cell-selected-bg: #{$data-grid-cell-selected-bg},\n --#{$prefix}data-grid-cell-selected-border-color: #{$data-grid-cell-selected-border-color},\n --#{$prefix}data-grid-cell-selected-border-width: #{$data-grid-cell-selected-border-width},\n --#{$prefix}data-grid-row-handle-width: #{$data-grid-row-handle-width},\n --#{$prefix}data-grid-select-cell-width: #{$data-grid-select-cell-width},\n --#{$prefix}data-grid-sorter-margin: #{$data-grid-sorter-margin},\n --#{$prefix}data-grid-sorter-opacity: #{$data-grid-sorter-opacity},\n --#{$prefix}data-grid-spacing: #{$data-grid-spacing},\n --#{$prefix}data-grid-resizer-width: #{$data-grid-resizer-width},\n --#{$prefix}data-grid-resizer-grip-height: #{$data-grid-resizer-grip-height},\n --#{$prefix}data-grid-resizer-grip-color: #{$data-grid-resizer-grip-color},\n --#{$prefix}data-grid-resizer-grip-color-hover: #{$data-grid-resizer-grip-color-hover},\n --#{$prefix}data-grid-pinned-border-width: #{$data-grid-pinned-border-width},\n --#{$prefix}data-grid-pinned-border-color: #{$data-grid-pinned-border-color},\n --#{$prefix}data-grid-drop-indicator: #{$data-grid-drop-indicator},\n --#{$prefix}data-grid-drag-transition: #{$data-grid-drag-transition},\n --#{$prefix}data-grid-menu-bg: #{$data-grid-menu-bg},\n --#{$prefix}data-grid-menu-border-color: #{$data-grid-menu-border-color},\n --#{$prefix}data-grid-menu-shadow: #{$data-grid-menu-shadow},\n --#{$prefix}data-grid-menu-min-width: #{$data-grid-menu-min-width},\n --#{$prefix}data-grid-menu-item-hover-bg: #{$data-grid-menu-item-hover-bg},\n --#{$prefix}data-grid-loading-bg: #{$data-grid-loading-bg},\n --#{$prefix}data-grid-pinned-bg: #{$data-grid-pinned-bg},\n --#{$prefix}data-grid-focus-ring-width: #{$data-grid-focus-ring-width},\n --#{$prefix}data-grid-focus-ring-color: #{$data-grid-focus-ring-color},\n ),\n $data-grid-tokens\n);\n// scss-docs-end data-grid-css-vars\n\n.data-grid {\n // The column menu is positioned against the grid root (it must escape the\n // viewport's overflow while staying inside the token scope).\n position: relative;\n // A column so that a root given an explicit height actually constrains the\n // scroller: the viewport takes what the toolbar and pagination leave, and\n // min-height: 0 lets it shrink below its content instead of overflowing the\n // root. With no height set, this changes nothing — the viewport is sized by\n // its content up to the max-height token.\n display: flex;\n flex-direction: column;\n\n @include tokens($data-grid-tokens);\n\n .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .data-grid-toolbar-actions {\n display: flex;\n gap: $data-grid-gap-sm;\n align-items: center;\n }\n\n .data-grid-toolbar-search {\n margin-inline-start: auto;\n }\n\n .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--#{$prefix}data-grid-viewport-max-height);\n overflow-y: auto;\n // Windowed rendering resizes the spacer rows and recycles row elements on\n // every frame; browser scroll anchoring chases those mutations and keeps\n // adjusting scrollTop, which turns wheel scrolling into a feedback loop.\n overflow-anchor: none;\n }\n\n // Inline editing: the in-cell editor fills the cell; the popup layer hosts\n // rich editors (date pickers, selects) anchored over the cell.\n .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n }\n\n .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: $data-grid-gap-sm;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n // cellNavigation: the roving-tabindex active cell. The ring is inset so the\n // sticky header and pinned columns don't clip it.\n [role=\"grid\"] :is(td, th):focus-visible {\n outline: var(--#{$prefix}data-grid-focus-ring-width) solid var(--#{$prefix}data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--#{$prefix}data-grid-focus-ring-width));\n }\n\n .data-grid-viewport:focus-visible {\n outline: 0;\n }\n\n .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--#{$prefix}data-grid-header-bg);\n box-shadow: var(--#{$prefix}data-grid-header-shadow);\n }\n\n // Header label row: fixed 48px with vertically centered content (height on a\n // table cell acts as a min; min-height is ignored on table-cell).\n .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: $data-grid-bar-min-height;\n vertical-align: middle;\n }\n\n .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n }\n\n .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n }\n\n .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Icon-only ghost buttons: square them by matching horizontal padding to\n // vertical (follows .btn / .btn-sm automatically) and collapsing the text\n // line-height so height follows the icon, not a 1.5em text line.\n .btn-ghost {\n --#{$prefix}btn-padding-x: var(--#{$prefix}btn-padding-y);\n --#{$prefix}btn-line-height: 1;\n }\n\n .data-grid-menu-button {\n margin-inline-start: auto;\n }\n\n .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n padding: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: .5rem;\n width: 100%;\n padding: $data-grid-gap-sm .75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n\n &:hover,\n &:focus-visible {\n background-color: var(--#{$prefix}data-grid-menu-item-hover-bg);\n }\n\n // Disabled items stay focusable (aria-disabled, APG menu pattern) so the\n // roving arrow cycle can reach them.\n &[aria-disabled=\"true\"] {\n color: $data-grid-muted-color;\n cursor: default;\n background: none;\n }\n }\n\n .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n padding: .75rem;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n\n > div {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n }\n }\n\n .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n\n label {\n display: flex;\n gap: .375rem;\n align-items: center;\n }\n }\n\n .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n max-height: 14rem;\n overflow-y: auto;\n }\n\n .data-grid-filter-menu-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n }\n\n .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n max-height: 20rem;\n padding: .75rem;\n overflow-y: auto;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-column-chooser-option {\n display: flex;\n gap: .375rem;\n align-items: center;\n margin-bottom: 0;\n }\n\n .data-grid-column-chooser-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n padding-top: $data-grid-gap-sm;\n margin-top: $data-grid-gap-sm;\n border-top: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-filter-button {\n position: relative;\n // Right-align the trailing controls as a group: the filter button takes the\n // auto margin (menu drops its own below) so filter and menu sit together at\n // the end, matching a menu-only header.\n margin-inline-start: auto;\n\n ~ .data-grid-menu-button {\n margin-inline-start: 0;\n }\n }\n\n // Active-filter indicator dot on the filter button.\n .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: .125rem;\n inset-inline-end: .125rem;\n width: .375rem;\n height: .375rem;\n content: \"\";\n background-color: var(--#{$prefix}primary, #321fdb);\n border-radius: 50%;\n }\n\n .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: .75;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n .data-grid-menu-divider {\n height: $data-grid-border-width;\n margin: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-dragging {\n opacity: .5;\n }\n\n // While a drag is live the whole grid keeps the grabbing cursor and stops\n // painting a text selection under the pointer.\n &.data-grid-drag-active {\n cursor: grabbing;\n user-select: none;\n }\n\n // Both overlays are position: fixed (placed from viewport coordinates in JS)\n // so they escape the viewport's overflow, like the tooltip.\n .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $data-grid-tooltip-z-index;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--#{$prefix}data-grid-cell-padding-x, .5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-drop-indicator);\n border-radius: $data-grid-border-radius;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);\n transform: translate(-9999px, -9999px);\n opacity: .9;\n }\n\n // The settling ghost: on release it flies from the pointer to the slot the\n // item landed in (or back home on cancel) and fades out there.\n .data-grid-drag-ghost-settle {\n transition: transform var(--#{$prefix}data-grid-drag-transition), opacity var(--#{$prefix}data-grid-drag-transition);\n }\n\n .data-grid-drop-indicator {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-drop-indicator);\n transition: top var(--#{$prefix}data-grid-drag-transition), left var(--#{$prefix}data-grid-drag-transition);\n }\n\n // The live reorder preview: cells slide to the layout the drop will produce.\n // Transform only, so nothing reflows and the real order still changes once.\n .data-grid-drag-preview {\n transition: transform var(--#{$prefix}data-grid-drag-transition);\n }\n\n // Someone who asked the OS to stop moving things still gets the preview —\n // it snaps to the final layout instead of gliding there.\n @media (prefers-reduced-motion: reduce) {\n :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n }\n\n // The line is 2px across its short axis and spans the grid along the other;\n // JS sets the spanning size, the axis class sets the thickness.\n .data-grid-drop-indicator-x {\n width: .125rem;\n }\n\n .data-grid-drop-indicator-y {\n height: .125rem;\n }\n\n // Cell selection: a tinted fill on every selected cell, plus an outline\n // drawn only on the sides that sit on the selection's boundary — so a\n // rectangle reads as one region instead of a grid of boxes. The outline is\n // an overlay rather than a border: a border on a table cell would shift the\n // whole row's layout the moment a range is selected.\n .data-grid-cell-selected {\n position: relative;\n background-color: var(--#{$prefix}data-grid-cell-selected-bg);\n }\n\n .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--#{$prefix}data-grid-cell-selected-border-color);\n }\n\n .data-grid-cell-selected-top::after {\n border-top-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-right::after {\n border-right-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-left::after {\n border-left-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n // The reorder column: as narrow as the grip, and the grip itself is the only\n // thing that starts a row drag (a row is full of interactive content that a\n // whole-row handle would swallow).\n .data-grid-row-handle-cell {\n width: var(--#{$prefix}data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n }\n\n .data-grid-row-handle {\n display: inline-flex;\n color: $data-grid-resizer-grip-color-hover;\n cursor: grab;\n touch-action: none;\n }\n\n .data-grid-select-cell {\n width: var(--#{$prefix}data-grid-select-cell-width);\n text-align: center;\n }\n\n .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--#{$prefix}data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n user-select: none;\n background: none;\n border: 0;\n }\n\n .data-grid-sort-icon {\n display: inline-flex;\n font-size: .875em;\n opacity: 0;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n // The active sort direction is always visible; the neutral (unsorted) icon is\n // hidden unless `sorterVisibility` opts it in (steadily via \"always\", or on\n // header hover/focus via \"hover\").\n .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n }\n\n &[data-coreui-sorter-visibility=\"always\"] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon,\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n }\n\n // Body cells render on a single line and truncate with an ellipsis instead of\n // spilling their content across the fixed-layout column boundary onto the next\n // column. Matches the default of AG Grid / MUI X Data Grid and TanStack's\n // virtualized-table guidance, and keeps every row a uniform height for the\n // fixed-height virtualizer (wrapping would desync `estimateSize`). Pinned cells\n // are excluded so their shadow pseudo-element (painted outside the box via a\n // translate) isn't clipped; the select cell holds only a checkbox.\n //\n // Auto row height is the deliberate exception: there the virtualizer measures\n // each row, so cells are free to wrap. Scoping the rule out is what keeps the\n // two modes from fighting over specificity.\n &:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Widths applied to each header cell drive the column layout; letting the\n // table grow to its content (min-width keeps it filling a wide viewport)\n // turns a resize or a pin into horizontal scroll rather than squeezing\n // neighbours. Both features share this layout mode.\n &.data-grid-resizable,\n &.data-grid-pinned {\n .data-grid-viewport {\n overflow-x: auto;\n }\n\n .table {\n width: max-content;\n min-width: 100%;\n }\n }\n\n // A pinned th is already sticky (a positioned containing block for the\n // resizer), so only non-pinned header cells need explicit relative here.\n &.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n }\n\n &.data-grid-pinned .table {\n // position: sticky is unreliable on collapsed-border tables; the grid opts\n // into separate borders so pinned cells stay put on horizontal scroll.\n border-collapse: separate;\n border-spacing: 0;\n }\n\n .data-grid-cell-pinned-start,\n .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n }\n\n .data-grid-header .data-grid-cell-pinned-start,\n .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n }\n\n // Edge cells cast a shadow over the scrolling content. A pseudo-element is\n // used because the cell's own box-shadow carries the table striping accent.\n .data-grid-cell-pinned-start-last,\n .data-grid-cell-pinned-end-first {\n position: sticky;\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--#{$prefix}data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n }\n }\n\n .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-.5 * var(--#{$prefix}data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--#{$prefix}data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n user-select: none;\n\n // Always-visible grip so the resizable edge is discoverable, not just a\n // bare hover target.\n &::after {\n width: 2px;\n height: var(--#{$prefix}data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--#{$prefix}data-grid-resizer-grip-color);\n transition: background-color .15s ease;\n }\n\n &:hover::after,\n &.data-grid-resizer-active::after {\n background-color: var(--#{$prefix}data-grid-resizer-grip-color-hover);\n }\n }\n\n .data-grid-spacer > td {\n padding: 0;\n border: 0;\n }\n\n // Spacer rows break `nth-of-type` striping, so striping inside the grid is\n // driven by the absolute row index (.data-grid-row-odd) instead.\n .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n }\n\n .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n // The last row closes on the viewport edge (or the pagination border), so it\n // doesn't need its own separator line.\n .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n }\n\n .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Infinite scroll's \"next page arriving\" strip. Sticky, not an overlay: the\n // rows already loaded stay readable while the grid appends to them.\n .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--#{$prefix}data-grid-spacing);\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Shared icon-button tooltip. position: fixed (set in JS) so it escapes the\n // viewport overflow; theme-inverted like CoreUI's own tooltip.\n .data-grid-tooltip {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n max-width: 12rem;\n padding: $data-grid-gap-sm .5rem;\n font-size: .875rem;\n line-height: 1.4;\n color: var(--#{$prefix}body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--#{$prefix}emphasis-color, #000);\n border-radius: $data-grid-border-radius;\n }\n\n .data-grid-empty > td {\n padding: 2rem 1rem;\n color: $data-grid-muted-color;\n text-align: center;\n }\n\n .data-grid-pagination {\n display: flex;\n // Wrap the page controls, count and page-size select onto multiple rows on\n // narrow viewports; without this the fixed row overflows and scrolls the page\n // instead of staying inside the grid.\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-top: $data-grid-border-width solid $data-grid-border-color;\n\n &.data-grid-pagination-top {\n border-top: 0;\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .pagination {\n margin-bottom: 0;\n }\n\n .data-grid-pagination-info {\n margin-inline-start: auto;\n color: $data-grid-muted-color;\n }\n\n .form-select {\n width: auto;\n }\n }\n}\n\n// Print: the grid renders a plain, complete table into the document (see\n// util/print.ts) and hides everything else, so a virtualized grid prints all\n// its rows instead of the twenty in the window.\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n\n h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n\n :is(th, td) {\n padding: $data-grid-gap-sm .5rem;\n text-align: start;\n border: 1px solid #000;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr {\n break-inside: avoid;\n }\n }\n\n // :has() is inside the browser floor (.browserslistrc), and scoping to the\n // body's own children keeps the clone's ancestors from being hidden.\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n","// Vendored from @coreui/coreui-pro (scss/mixins/_tokens.scss, v6 line).\n// Sync manually — do not diverge.\n\n// Output a token map as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n"]}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * CoreUI PRO data-grid.standalone.scss v0.1.0
3
+ * License (https://coreui.io/pro/license/)
4
+ */@layer data-grid-base{:root{color-scheme:light;--cui-white:#fff;--cui-primary:#5856d6;--cui-primary-rgb:88,86,214;--cui-danger:#e55353;--cui-body-font-family:system-ui,-apple-system,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif;--cui-body-font-size:1rem;--cui-body-line-height:1.5;--cui-body-color:rgba(37, 42.92, 54.02, 0.95);--cui-body-bg:#fff;--cui-body-bg-rgb:255,255,255;--cui-emphasis-color:#080a0c;--cui-emphasis-color-rgb:8,10,12;--cui-secondary-color:rgba(37, 42.92, 54.02, 0.681);--cui-secondary-bg:#e7eaee;--cui-tertiary-bg:#f3f4f7;--cui-border-width:1px;--cui-border-color:#dbdfe6;--cui-border-radius:.375rem;--cui-border-radius-sm:.25rem;--cui-box-shadow:0 .5rem 1rem rgba(8, 10, 12, .15);--cui-focus-ring-color:rgba(88, 86, 214, .25);--cui-link-color:#5856d6;--cui-link-hover-color:#4645ab}[data-coreui-theme=dark]{color-scheme:dark;--cui-body-color:rgba(255, 255, 255, 0.87);--cui-body-bg:#212631;--cui-body-bg-rgb:33,38,49;--cui-emphasis-color:#fff;--cui-emphasis-color-rgb:255,255,255;--cui-secondary-color:rgba(255, 255, 255, 0.6);--cui-secondary-bg:#323a49;--cui-tertiary-bg:rgb(41.5, 48, 61);--cui-border-color:#4a566d;--cui-primary:rgb(94.2, 92.4, 207.6);--cui-link-color:rgb(151.2, 150, 226.8);--cui-link-hover-color:rgb(171.36, 170.4, 233.04)}}@layer data-grid-base{.data-grid{box-sizing:border-box;font-family:var(--cui-body-font-family);font-size:var(--cui-body-font-size);font-weight:400;line-height:var(--cui-body-line-height);color:var(--cui-body-color);text-align:start;background-color:var(--cui-body-bg);-webkit-text-size-adjust:100%}.data-grid *,.data-grid ::after,.data-grid ::before{box-sizing:border-box}.data-grid table{caption-side:bottom;border-collapse:collapse}.data-grid th{text-align:inherit;text-align:-webkit-match-parent}.data-grid tbody,.data-grid td,.data-grid th,.data-grid thead,.data-grid tr{border-color:inherit;border-style:solid;border-width:0}.data-grid label{display:inline-block}.data-grid button,.data-grid input,.data-grid optgroup,.data-grid select,.data-grid textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.data-grid button,.data-grid select{text-transform:none}.data-grid [type=button],.data-grid [type=reset],.data-grid [type=submit],.data-grid button{-webkit-appearance:button}.data-grid [type=button]:not(:disabled),.data-grid [type=reset]:not(:disabled),.data-grid [type=submit]:not(:disabled),.data-grid button:not(:disabled){cursor:pointer}.data-grid ::-moz-focus-inner{padding:0;border-style:none}.data-grid svg{vertical-align:middle}.data-grid ul{padding-left:0;margin-bottom:0;list-style:none}}@layer data-grid-base{.data-grid .table{--cui-table-color-type:initial;--cui-table-bg-type:initial;--cui-table-color-state:initial;--cui-table-bg-state:initial;--cui-table-color:var(--cui-emphasis-color);--cui-table-bg:var(--cui-body-bg);--cui-table-border-color:var(--cui-border-color);--cui-table-accent-bg:transparent;--cui-table-striped-color:var(--cui-emphasis-color);--cui-table-striped-bg:rgba(var(--cui-emphasis-color-rgb), 0.05);--cui-table-active-color:var(--cui-emphasis-color);--cui-table-active-bg:rgba(var(--cui-emphasis-color-rgb), 0.1);--cui-table-hover-color:var(--cui-emphasis-color);--cui-table-hover-bg:rgba(var(--cui-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--cui-table-border-color)}.data-grid .table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--cui-table-color-state,var(--cui-table-color-type,var(--cui-table-color)));background-color:var(--cui-table-bg);border-bottom-width:var(--cui-border-width);box-shadow:inset 0 0 0 9999px var(--cui-table-bg-state,var(--cui-table-bg-type,var(--cui-table-accent-bg)))}.data-grid .table>tbody{vertical-align:inherit}.data-grid .table>thead{vertical-align:bottom}.data-grid .table-sm>:not(caption)>*>*{padding:.25rem .25rem}.data-grid .table-bordered>:not(caption)>*>*{border-width:var(--cui-border-width) 0}.data-grid .table-borderless>:not(caption)>*>*{border-bottom-width:0}.data-grid .table-striped>tbody>tr:nth-of-type(odd)>*{--cui-table-color-type:var(--cui-table-striped-color);--cui-table-bg-type:var(--cui-table-striped-bg)}.data-grid .table-hover>tbody>tr:hover>*{--cui-table-color-state:var(--cui-table-hover-color);--cui-table-bg-state:var(--cui-table-hover-bg)}.data-grid .table-active{--cui-table-color-state:var(--cui-table-active-color);--cui-table-bg-state:var(--cui-table-active-bg)}}@layer data-grid-base{.data-grid .btn{--cui-btn-padding-x:0.75rem;--cui-btn-padding-y:0.375rem;--cui-btn-font-size:1rem;--cui-btn-font-weight:400;--cui-btn-line-height:1.5;--cui-btn-color:var(--cui-body-color);--cui-btn-bg:transparent;--cui-btn-border-width:var(--cui-border-width);--cui-btn-border-color:transparent;--cui-btn-border-radius:var(--cui-border-radius);--cui-btn-hover-color:var(--cui-btn-color);--cui-btn-hover-bg:transparent;--cui-btn-hover-border-color:transparent;--cui-btn-active-color:var(--cui-btn-hover-color);--cui-btn-active-bg:var(--cui-btn-hover-bg);--cui-btn-active-border-color:var(--cui-btn-hover-border-color);--cui-btn-disabled-color:var(--cui-btn-color);--cui-btn-disabled-opacity:.65;display:inline-block;padding:var(--cui-btn-padding-y) var(--cui-btn-padding-x);font-size:var(--cui-btn-font-size);font-weight:var(--cui-btn-font-weight);line-height:var(--cui-btn-line-height);color:var(--cui-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:var(--cui-btn-bg);border:var(--cui-btn-border-width) solid var(--cui-btn-border-color);border-radius:var(--cui-btn-border-radius);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.data-grid .btn:hover{color:var(--cui-btn-hover-color);background-color:var(--cui-btn-hover-bg);border-color:var(--cui-btn-hover-border-color)}.data-grid .btn:focus-visible{outline:0;box-shadow:0 0 0 .25rem var(--cui-focus-ring-color)}.data-grid .btn:active{color:var(--cui-btn-active-color);background-color:var(--cui-btn-active-bg);border-color:var(--cui-btn-active-border-color)}.data-grid .btn:disabled{color:var(--cui-btn-disabled-color);pointer-events:none;opacity:var(--cui-btn-disabled-opacity)}.data-grid .btn-sm{--cui-btn-padding-y:0.25rem;--cui-btn-padding-x:0.5rem;--cui-btn-font-size:0.875rem;--cui-btn-border-radius:var(--cui-border-radius-sm)}.data-grid .btn-primary{--cui-btn-color:#fff;--cui-btn-bg:var(--cui-primary);--cui-btn-border-color:var(--cui-primary);--cui-btn-hover-color:#fff;--cui-btn-hover-bg:color-mix(in srgb, var(--cui-primary) 85%, #000);--cui-btn-hover-border-color:color-mix(in srgb, var(--cui-primary) 80%, #000)}.data-grid .btn-outline-secondary{--cui-btn-color:var(--cui-secondary-color);--cui-btn-border-color:var(--cui-border-color);--cui-btn-hover-color:var(--cui-body-color);--cui-btn-hover-bg:var(--cui-tertiary-bg);--cui-btn-hover-border-color:var(--cui-border-color)}.data-grid .btn-ghost{--cui-btn-color:var(--cui-body-color);--cui-btn-hover-color:var(--cui-body-color);--cui-btn-hover-bg:var(--cui-tertiary-bg);--cui-btn-active-bg:var(--cui-secondary-bg)}.data-grid .btn-link{--cui-btn-color:var(--cui-link-color);--cui-btn-hover-color:var(--cui-link-hover-color);text-decoration:underline}}@layer data-grid-base{.data-grid .form-control,.data-grid .form-select{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--cui-body-color);appearance:none;background-color:var(--cui-body-bg);background-clip:padding-box;border:var(--cui-border-width) solid var(--cui-border-color);border-radius:var(--cui-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.data-grid .form-control:focus,.data-grid .form-select:focus{outline:0;box-shadow:0 0 0 .25rem var(--cui-focus-ring-color)}.data-grid .form-control:disabled,.data-grid .form-select:disabled{background-color:var(--cui-secondary-bg);opacity:1}.data-grid .form-control::placeholder,.data-grid .form-select::placeholder{color:var(--cui-secondary-color);opacity:1}.data-grid .form-select{padding-inline-end:2.25rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.data-grid .form-control-sm,.data-grid .form-select-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--cui-border-radius-sm)}.data-grid .form-select-sm{padding-inline-end:2.25rem}.data-grid .form-control.is-invalid{border-color:var(--cui-danger)}.data-grid .form-check{display:block;min-height:1.5rem;padding-inline-start:1.5em;margin-bottom:.125rem}.data-grid .form-check .form-check-input{float:left;margin-inline-start:-1.5em}.data-grid .form-check-input{--cui-form-check-bg:var(--cui-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;background-color:var(--cui-form-check-bg);background-image:var(--cui-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--cui-border-width) solid var(--cui-border-color);-webkit-print-color-adjust:exact;print-color-adjust:exact}.data-grid .form-check-input[type=checkbox]{border-radius:.25em}.data-grid .form-check-input[type=radio]{border-radius:50%}.data-grid .form-check-input:focus{outline:0;box-shadow:0 0 0 .25rem var(--cui-focus-ring-color)}.data-grid .form-check-input:checked{background-color:var(--cui-primary);border-color:var(--cui-primary)}.data-grid .form-check-input:checked[type=checkbox]{--cui-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.data-grid .form-check-input:checked[type=radio]{--cui-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e")}.data-grid .form-check-input[type=checkbox]:indeterminate{--cui-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");background-color:var(--cui-primary);border-color:var(--cui-primary)}.data-grid .form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.data-grid .form-check-label{cursor:pointer}.data-grid .form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}[data-coreui-theme=dark] .data-grid .form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}}@layer data-grid-base{.data-grid .pagination{--cui-pagination-padding-x:0.75rem;--cui-pagination-padding-y:0.375rem;--cui-pagination-font-size:1rem;--cui-pagination-color:var(--cui-link-color);--cui-pagination-bg:var(--cui-body-bg);--cui-pagination-border-width:var(--cui-border-width);--cui-pagination-border-color:var(--cui-border-color);--cui-pagination-border-radius:var(--cui-border-radius);--cui-pagination-hover-color:var(--cui-link-hover-color);--cui-pagination-hover-bg:var(--cui-tertiary-bg);--cui-pagination-hover-border-color:var(--cui-border-color);--cui-pagination-active-color:#fff;--cui-pagination-active-bg:var(--cui-primary);--cui-pagination-active-border-color:var(--cui-primary);--cui-pagination-disabled-color:var(--cui-secondary-color);--cui-pagination-disabled-bg:var(--cui-secondary-bg);--cui-pagination-disabled-border-color:var(--cui-border-color);display:flex;padding-left:0;margin-bottom:1rem;list-style:none}.data-grid .page-link{position:relative;display:block;padding:var(--cui-pagination-padding-y) var(--cui-pagination-padding-x);font-size:var(--cui-pagination-font-size);color:var(--cui-pagination-color);text-decoration:none;cursor:pointer;background-color:var(--cui-pagination-bg);border:var(--cui-pagination-border-width) solid var(--cui-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.data-grid .page-link:hover{z-index:2;color:var(--cui-pagination-hover-color);background-color:var(--cui-pagination-hover-bg);border-color:var(--cui-pagination-hover-border-color)}.data-grid .page-link:focus-visible{z-index:3;outline:0;box-shadow:0 0 0 .25rem var(--cui-focus-ring-color)}.data-grid .page-item:not(:first-child) .page-link{margin-left:calc(-1 * var(--cui-border-width))}.data-grid .page-item:first-child .page-link{border-top-left-radius:var(--cui-pagination-border-radius);border-bottom-left-radius:var(--cui-pagination-border-radius)}.data-grid .page-item:last-child .page-link{border-top-right-radius:var(--cui-pagination-border-radius);border-bottom-right-radius:var(--cui-pagination-border-radius)}.data-grid .page-item.active .page-link{z-index:3;color:var(--cui-pagination-active-color);background-color:var(--cui-pagination-active-bg);border-color:var(--cui-pagination-active-border-color)}.data-grid .page-item.disabled .page-link{color:var(--cui-pagination-disabled-color);pointer-events:none;background-color:var(--cui-pagination-disabled-bg);border-color:var(--cui-pagination-disabled-border-color)}.data-grid .pagination-sm{--cui-pagination-padding-x:0.5rem;--cui-pagination-padding-y:0.25rem;--cui-pagination-font-size:0.875rem;--cui-pagination-border-radius:var(--cui-border-radius-sm)}}@layer data-grid-base{.data-grid .spinner-border{--cui-spinner-width:2rem;--cui-spinner-height:2rem;--cui-spinner-vertical-align:-.125em;--cui-spinner-border-width:0.25em;--cui-spinner-animation-speed:0.75s;--cui-spinner-animation-name:data-grid-spinner-border;display:inline-block;flex-shrink:0;width:var(--cui-spinner-width);height:var(--cui-spinner-height);vertical-align:var(--cui-spinner-vertical-align);border:var(--cui-spinner-border-width) solid currentcolor;border-right-color:transparent;border-radius:50%;animation:var(--cui-spinner-animation-speed) linear infinite var(--cui-spinner-animation-name)}.data-grid .spinner-border-sm{--cui-spinner-width:1rem;--cui-spinner-height:1rem;--cui-spinner-border-width:.2em}}@keyframes data-grid-spinner-border{to{transform:rotate(360deg)}}@layer data-grid-base{.data-grid .visually-hidden:not(caption){position:absolute!important}.data-grid .visually-hidden{width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}}.data-grid{position:relative;display:flex;flex-direction:column;--cui-data-grid-viewport-max-height:30rem;--cui-data-grid-header-bg:var(--cui-body-bg, #fff);--cui-data-grid-header-shadow:inset 0 calc(-1 * var(--cui-border-width, 1px)) 0 var(--cui-border-color, #dee2e6);--cui-data-grid-cell-selected-bg:rgba(var(--cui-primary-rgb, 50, 31, 219), 0.12);--cui-data-grid-cell-selected-border-color:var(--cui-primary, #321fdb);--cui-data-grid-cell-selected-border-width:1px;--cui-data-grid-row-handle-width:2rem;--cui-data-grid-select-cell-width:2.5rem;--cui-data-grid-sorter-margin:0.25rem;--cui-data-grid-sorter-opacity:0.3;--cui-data-grid-spacing:0.5rem;--cui-data-grid-resizer-width:0.625rem;--cui-data-grid-resizer-grip-height:60%;--cui-data-grid-resizer-grip-color:var(--cui-border-color, #dee2e6);--cui-data-grid-resizer-grip-color-hover:var(--cui-secondary-color, #6c757d);--cui-data-grid-pinned-border-width:var(--cui-border-width);--cui-data-grid-pinned-border-color:var(--cui-border-color, #dee2e6);--cui-data-grid-drop-indicator:var(--cui-primary, #321fdb);--cui-data-grid-drag-transition:0.15s ease;--cui-data-grid-menu-bg:var(--cui-body-bg, #fff);--cui-data-grid-menu-border-color:var(--cui-border-color, #dee2e6);--cui-data-grid-menu-shadow:var(--cui-box-shadow, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));--cui-data-grid-menu-min-width:10rem;--cui-data-grid-menu-item-hover-bg:var(--cui-tertiary-bg, #f8f9fa);--cui-data-grid-loading-bg:rgba(var(--cui-body-bg-rgb, 255, 255, 255), 0.6);--cui-data-grid-pinned-bg:var(--cui-body-bg, #fff);--cui-data-grid-focus-ring-width:2px;--cui-data-grid-focus-ring-color:var(--cui-primary, #321fdb)}.data-grid .data-grid-toolbar{display:flex;flex-wrap:wrap;gap:var(--cui-data-grid-spacing);align-items:center;min-height:48px;padding:var(--cui-data-grid-spacing);border-bottom:var(--cui-border-width,1px) solid var(--cui-border-color,#dee2e6)}.data-grid .data-grid-toolbar-actions{display:flex;gap:.25rem;align-items:center}.data-grid .data-grid-toolbar-search{margin-inline-start:auto}.data-grid .data-grid-viewport{position:relative;flex:1 1 auto;min-height:0;max-height:var(--cui-data-grid-viewport-max-height);overflow-y:auto;overflow-anchor:none}.data-grid .data-grid-cell-editor{width:100%;min-width:4rem}.data-grid .data-grid-editor-popup{position:absolute;z-index:4;padding:.25rem;background-color:var(--cui-data-grid-menu-bg);border:var(--cui-border-width,1px) solid var(--cui-data-grid-menu-border-color);border-radius:var(--cui-border-radius,.375rem);box-shadow:var(--cui-data-grid-menu-shadow)}.data-grid [role=grid] :is(td,th):focus-visible{outline:var(--cui-data-grid-focus-ring-width) solid var(--cui-data-grid-focus-ring-color);outline-offset:calc(-1 * var(--cui-data-grid-focus-ring-width))}.data-grid .data-grid-viewport:focus-visible{outline:0}.data-grid .data-grid-header{position:sticky;top:0;z-index:2;background-color:var(--cui-data-grid-header-bg);box-shadow:var(--cui-data-grid-header-shadow)}.data-grid .data-grid-header tr:not(.data-grid-filter-row)>th{height:48px;vertical-align:middle}.data-grid .data-grid-filter-row>th{padding-top:0;font-weight:400}.data-grid .data-grid-header th[data-coreui-draggable]{cursor:grab}.data-grid .data-grid-header-cell{display:flex;align-items:center;gap:.25rem}.data-grid .data-grid-header-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-grid .btn-ghost{--cui-btn-padding-x:var(--cui-btn-padding-y);--cui-btn-line-height:1}.data-grid .data-grid-menu-button{margin-inline-start:auto}.data-grid .data-grid-menu{position:absolute;z-index:4;min-width:var(--cui-data-grid-menu-min-width);padding:.25rem 0;background-color:var(--cui-data-grid-menu-bg);border:var(--cui-border-width,1px) solid var(--cui-data-grid-menu-border-color);border-radius:var(--cui-border-radius,.375rem);box-shadow:var(--cui-data-grid-menu-shadow)}.data-grid .data-grid-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.25rem .75rem;font:inherit;color:inherit;text-align:start;cursor:pointer;background:0 0;border:0}.data-grid .data-grid-menu-item:focus-visible,.data-grid .data-grid-menu-item:hover{background-color:var(--cui-data-grid-menu-item-hover-bg)}.data-grid .data-grid-menu-item[aria-disabled=true]{color:var(--cui-secondary-color,#6c757d);cursor:default;background:0 0}.data-grid .data-grid-filter-menu{position:absolute;z-index:4;display:flex;flex-direction:column;gap:.5rem;min-width:var(--cui-data-grid-menu-min-width);max-width:18rem;padding:.75rem;background-color:var(--cui-data-grid-menu-bg);border:var(--cui-border-width,1px) solid var(--cui-data-grid-menu-border-color);border-radius:var(--cui-border-radius,.375rem);box-shadow:var(--cui-data-grid-menu-shadow)}.data-grid .data-grid-filter-menu>div{display:flex;flex-direction:column;gap:.5rem}.data-grid .data-grid-filter-menu-condition{display:flex;flex-direction:column;gap:.25rem}.data-grid .data-grid-filter-menu-join{display:flex;gap:1rem}.data-grid .data-grid-filter-menu-join label{display:flex;gap:.375rem;align-items:center}.data-grid .data-grid-filter-menu-values{display:flex;flex-direction:column;gap:.25rem;max-height:14rem;overflow-y:auto}.data-grid .data-grid-filter-menu-footer{display:flex;gap:.5rem;justify-content:flex-end}.data-grid .data-grid-column-chooser{position:absolute;z-index:4;display:flex;flex-direction:column;gap:.5rem;min-width:var(--cui-data-grid-menu-min-width);max-width:18rem;max-height:20rem;padding:.75rem;overflow-y:auto;background-color:var(--cui-data-grid-menu-bg);border:var(--cui-border-width,1px) solid var(--cui-data-grid-menu-border-color);border-radius:var(--cui-border-radius,.375rem);box-shadow:var(--cui-data-grid-menu-shadow)}.data-grid .data-grid-column-chooser-option{display:flex;gap:.375rem;align-items:center;margin-bottom:0}.data-grid .data-grid-column-chooser-footer{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.25rem;margin-top:.25rem;border-top:var(--cui-border-width,1px) solid var(--cui-data-grid-menu-border-color)}.data-grid .data-grid-filter-button{position:relative;margin-inline-start:auto}.data-grid .data-grid-filter-button~.data-grid-menu-button{margin-inline-start:0}.data-grid .data-grid-filter-button-filtered::after{position:absolute;inset-block-start:0.125rem;inset-inline-end:0.125rem;width:.375rem;height:.375rem;content:"";background-color:var(--cui-primary,#321fdb);border-radius:50%}.data-grid .data-grid-menu-item-icon{display:inline-flex;opacity:.75}.data-grid .data-grid-menu-item-icon svg{width:1em;height:1em}.data-grid .data-grid-menu-divider{height:var(--cui-border-width,1px);margin:.25rem 0;background-color:var(--cui-data-grid-menu-border-color)}.data-grid .data-grid-dragging{opacity:.5}.data-grid.data-grid-drag-active{cursor:grabbing;-webkit-user-select:none;user-select:none}.data-grid .data-grid-drag-ghost{position:fixed;top:0;left:0;z-index:1080;display:flex;align-items:center;max-width:16rem;padding:0 var(--cui-data-grid-cell-padding-x,.5rem);overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background-color:var(--cui-data-grid-pinned-bg);border:var(--cui-border-width,1px) solid var(--cui-data-grid-drop-indicator);border-radius:var(--cui-border-radius,.375rem);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);transform:translate(-9999px,-9999px);opacity:.9}.data-grid .data-grid-drag-ghost-settle{transition:transform var(--cui-data-grid-drag-transition),opacity var(--cui-data-grid-drag-transition)}.data-grid .data-grid-drop-indicator{position:fixed;z-index:1080;pointer-events:none;background-color:var(--cui-data-grid-drop-indicator);transition:top var(--cui-data-grid-drag-transition),left var(--cui-data-grid-drag-transition)}.data-grid .data-grid-drag-preview{transition:transform var(--cui-data-grid-drag-transition)}@media (prefers-reduced-motion:reduce){.data-grid :is(.data-grid-drop-indicator,.data-grid-drag-preview,.data-grid-drag-ghost-settle){transition:none}}.data-grid .data-grid-drop-indicator-x{width:.125rem}.data-grid .data-grid-drop-indicator-y{height:.125rem}.data-grid .data-grid-cell-selected{position:relative;background-color:var(--cui-data-grid-cell-selected-bg)}.data-grid .data-grid-cell-selected::after{position:absolute;inset:0;pointer-events:none;content:"";border:0 solid var(--cui-data-grid-cell-selected-border-color)}.data-grid .data-grid-cell-selected-top::after{border-top-width:var(--cui-data-grid-cell-selected-border-width)}.data-grid .data-grid-cell-selected-right::after{border-right-width:var(--cui-data-grid-cell-selected-border-width)}.data-grid .data-grid-cell-selected-bottom::after{border-bottom-width:var(--cui-data-grid-cell-selected-border-width)}.data-grid .data-grid-cell-selected-left::after{border-left-width:var(--cui-data-grid-cell-selected-border-width)}.data-grid .data-grid-row-handle-cell{width:var(--cui-data-grid-row-handle-width);padding-inline:0;text-align:center}.data-grid .data-grid-row-handle{display:inline-flex;color:var(--cui-secondary-color,#6c757d);cursor:grab;touch-action:none}.data-grid .data-grid-select-cell{width:var(--cui-data-grid-select-cell-width);text-align:center}.data-grid .data-grid-sort-button{display:inline-flex;align-items:center;gap:var(--cui-data-grid-sorter-margin);padding:0;font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0}.data-grid .data-grid-sort-icon{display:inline-flex;font-size:.875em;opacity:0}.data-grid .data-grid-sort-icon svg{width:1em;height:1em}.data-grid .data-grid-sortable[aria-sort] .data-grid-sort-icon{opacity:1}.data-grid[data-coreui-sorter-visibility=always] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon{opacity:var(--cui-data-grid-sorter-opacity)}.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon,.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon{opacity:var(--cui-data-grid-sorter-opacity)}.data-grid .data-grid-viewport>.table{margin-bottom:0;table-layout:fixed}.data-grid:not(.data-grid-auto-row-height) .data-grid-viewport>.table>tbody>tr:not(.data-grid-empty)>td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-grid.data-grid-pinned .data-grid-viewport,.data-grid.data-grid-resizable .data-grid-viewport{overflow-x:auto}.data-grid.data-grid-pinned .table,.data-grid.data-grid-resizable .table{width:max-content;min-width:100%}.data-grid.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end){position:relative}.data-grid.data-grid-pinned .table{border-collapse:separate;border-spacing:0}.data-grid .data-grid-cell-pinned-end,.data-grid .data-grid-cell-pinned-start{position:sticky;z-index:1;background-color:var(--cui-data-grid-pinned-bg)}.data-grid .data-grid-header .data-grid-cell-pinned-end,.data-grid .data-grid-header .data-grid-cell-pinned-start{z-index:3}.data-grid .data-grid-cell-pinned-end-first,.data-grid .data-grid-cell-pinned-start-last{position:sticky}.data-grid .data-grid-cell-pinned-end-first::after,.data-grid .data-grid-cell-pinned-start-last::after{position:absolute;top:0;bottom:0;width:var(--cui-data-grid-pinned-border-width);pointer-events:none;content:""}.data-grid .data-grid-cell-pinned-start-last::after{inset-inline-end:0;background:var(--cui-data-grid-pinned-border-color)}.data-grid .data-grid-cell-pinned-end-first::after{inset-inline-start:0;background:var(--cui-data-grid-pinned-border-color)}.data-grid .data-grid-resizer{position:absolute;top:0;inset-inline-end:calc(-0.5 * var(--cui-data-grid-resizer-width));z-index:1;display:flex;align-items:center;justify-content:center;width:var(--cui-data-grid-resizer-width);height:100%;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.data-grid .data-grid-resizer::after{width:2px;height:var(--cui-data-grid-resizer-grip-height);content:"";background-color:var(--cui-data-grid-resizer-grip-color);transition:background-color .15s ease}.data-grid .data-grid-resizer.data-grid-resizer-active::after,.data-grid .data-grid-resizer:hover::after{background-color:var(--cui-data-grid-resizer-grip-color-hover)}.data-grid .data-grid-spacer>td{padding:0;border:0}.data-grid .data-grid-viewport>.table-striped>tbody>tr:nth-of-type(odd)>*{--cui-table-color-type:initial;--cui-table-bg-type:initial}.data-grid .data-grid-viewport>.table-striped>tbody>tr.data-grid-row-odd>*{--cui-table-color-type:var(--cui-table-striped-color);--cui-table-bg-type:var(--cui-table-striped-bg)}.data-grid .data-grid-viewport>.table>tbody>tr:last-child>*{border-bottom-width:0}.data-grid .data-grid-loading{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;background-color:var(--cui-data-grid-loading-bg)}.data-grid .data-grid-loading-more{position:sticky;inset-inline:0;bottom:0;z-index:3;display:flex;justify-content:center;padding:var(--cui-data-grid-spacing);background-color:var(--cui-data-grid-loading-bg)}.data-grid .data-grid-tooltip{position:fixed;z-index:1080;max-width:12rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.4;color:var(--cui-body-bg,#fff);text-align:center;pointer-events:none;background-color:var(--cui-emphasis-color,#000);border-radius:var(--cui-border-radius,.375rem)}.data-grid .data-grid-empty>td{padding:2rem 1rem;color:var(--cui-secondary-color,#6c757d);text-align:center}.data-grid .data-grid-pagination{display:flex;flex-wrap:wrap;gap:var(--cui-data-grid-spacing);align-items:center;min-height:48px;padding:var(--cui-data-grid-spacing);border-top:var(--cui-border-width,1px) solid var(--cui-border-color,#dee2e6)}.data-grid .data-grid-pagination.data-grid-pagination-top{border-top:0;border-bottom:var(--cui-border-width,1px) solid var(--cui-border-color,#dee2e6)}.data-grid .data-grid-pagination .pagination{margin-bottom:0}.data-grid .data-grid-pagination .data-grid-pagination-info{margin-inline-start:auto;color:var(--cui-secondary-color,#6c757d)}.data-grid .data-grid-pagination .form-select{width:auto}@media print{.data-grid-print-root{position:absolute;inset:0 0 auto;z-index:2000;background-color:#fff}.data-grid-print-root h1{margin-bottom:1rem;font-size:1.25rem}.data-grid-print-root table{width:100%;border-collapse:collapse}.data-grid-print-root :is(th,td){padding:.25rem .5rem;text-align:start;border:1px solid #000}.data-grid-print-root thead{display:table-header-group}.data-grid-print-root tr{break-inside:avoid}body:has(.data-grid-print-root)>:not(.data-grid-print-root){display:none!important}}
5
+ /*# sourceMappingURL=data-grid.standalone.min.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../scss/data-grid.standalone.scss","../../scss/base/_root.scss","../../scss/base/_reboot.scss","dist/css/data-grid.standalone.css","../../scss/base/_table.scss","../../scss/base/_buttons.scss","../../scss/base/_forms.scss","../../scss/base/_pagination.scss","../../scss/base/_spinner.scss","../../scss/base/_helpers.scss","../../scss/components/_data-grid.scss","../../scss/mixins/_tokens.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n\n// The grid plus the base styles it would otherwise borrow from\n// @coreui/coreui(-pro). Load this INSTEAD of data-grid.css when the CoreUI\n// stylesheet is not on the page.\n\n// scss-docs-start import-stack\n@forward \"config\";\n@forward \"functions\";\n@forward \"mixins\";\n@forward \"base\";\n@forward \"components/data-grid\";\n// scss-docs-end import-stack\n","@use \"../config\" as *;\n\n// Semantic tokens the grid resolves against. Values mirror @coreui/coreui-pro 5.\n// They are emitted unlayered-free: any real CoreUI stylesheet (or app CSS)\n// declaring the same properties outside a layer takes precedence.\n\n// scss-docs-start base-root-variables\n$base-white: #fff !default;\n$base-primary: #5856d6 !default;\n$base-primary-rgb: 88, 86, 214 !default;\n$base-danger: #e55353 !default;\n$base-body-color: rgba(37, 42.92, 54.02, .95) !default;\n$base-body-bg: #fff !default;\n$base-body-bg-rgb: 255, 255, 255 !default;\n$base-emphasis-color: #080a0c !default;\n$base-emphasis-color-rgb: 8, 10, 12 !default;\n$base-secondary-color: rgba(37, 42.92, 54.02, .681) !default;\n$base-secondary-bg: #e7eaee !default;\n$base-tertiary-bg: #f3f4f7 !default;\n$base-border-color: #dbdfe6 !default;\n$base-link-color: #5856d6 !default;\n$base-link-hover-color: #4645ab !default;\n// scss-docs-end base-root-variables\n\n// scss-docs-start base-root-dark-variables\n$base-body-color-dark: rgba(255, 255, 255, .87) !default;\n$base-body-bg-dark: #212631 !default;\n$base-body-bg-rgb-dark: 33, 38, 49 !default;\n$base-emphasis-color-dark: #fff !default;\n$base-emphasis-color-rgb-dark: 255, 255, 255 !default;\n$base-secondary-color-dark: rgba(255, 255, 255, .6) !default;\n$base-secondary-bg-dark: #323a49 !default;\n$base-tertiary-bg-dark: rgb(41.5, 48, 61) !default;\n$base-border-color-dark: #4a566d !default;\n$base-primary-dark: rgb(94.2, 92.4, 207.6) !default;\n$base-link-color-dark: rgb(151.2, 150, 226.8) !default;\n$base-link-hover-color-dark: rgb(171.36, 170.4, 233.04) !default;\n// scss-docs-end base-root-dark-variables\n\n@layer #{$base-layer} {\n :root {\n color-scheme: light;\n\n --#{$prefix}white: #{$base-white};\n --#{$prefix}primary: #{$base-primary};\n --#{$prefix}primary-rgb: #{$base-primary-rgb};\n --#{$prefix}danger: #{$base-danger};\n --#{$prefix}body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --#{$prefix}body-font-size: 1rem;\n --#{$prefix}body-line-height: 1.5;\n --#{$prefix}body-color: #{$base-body-color};\n --#{$prefix}body-bg: #{$base-body-bg};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb};\n --#{$prefix}emphasis-color: #{$base-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb};\n --#{$prefix}secondary-color: #{$base-secondary-color};\n --#{$prefix}secondary-bg: #{$base-secondary-bg};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg};\n --#{$prefix}border-width: 1px;\n --#{$prefix}border-color: #{$base-border-color};\n --#{$prefix}border-radius: .375rem;\n --#{$prefix}border-radius-sm: .25rem;\n --#{$prefix}box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --#{$prefix}focus-ring-color: rgba(#{$base-primary-rgb}, .25);\n --#{$prefix}link-color: #{$base-link-color};\n --#{$prefix}link-hover-color: #{$base-link-hover-color};\n }\n\n [data-coreui-theme=\"dark\"] {\n color-scheme: dark;\n\n --#{$prefix}body-color: #{$base-body-color-dark};\n --#{$prefix}body-bg: #{$base-body-bg-dark};\n --#{$prefix}body-bg-rgb: #{$base-body-bg-rgb-dark};\n --#{$prefix}emphasis-color: #{$base-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{$base-emphasis-color-rgb-dark};\n --#{$prefix}secondary-color: #{$base-secondary-color-dark};\n --#{$prefix}secondary-bg: #{$base-secondary-bg-dark};\n --#{$prefix}tertiary-bg: #{$base-tertiary-bg-dark};\n --#{$prefix}border-color: #{$base-border-color-dark};\n --#{$prefix}primary: #{$base-primary-dark};\n --#{$prefix}link-color: #{$base-link-color-dark};\n --#{$prefix}link-hover-color: #{$base-link-hover-color-dark};\n }\n}\n","@use \"../config\" as *;\n\n// The slice of CoreUI's reboot the grid actually relies on, scoped to the grid\n// so the sheet never restyles the host page.\n\n@layer #{$base-layer} {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--#{$prefix}body-font-family);\n font-size: var(--#{$prefix}body-font-size);\n font-weight: 400;\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: start;\n background-color: var(--#{$prefix}body-bg);\n -webkit-text-size-adjust: 100%;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n\n th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n\n thead,\n tbody,\n tr,\n td,\n th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n\n label {\n display: inline-block;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type=\"button\"]:not(:disabled),\n [type=\"reset\"]:not(:disabled),\n [type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n }\n\n ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n svg {\n vertical-align: middle;\n }\n\n ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n }\n}\n","/*!\n * CoreUI PRO data-grid.standalone.scss v0.1.0\n * License (https://coreui.io/pro/license/)\n */\n@layer data-grid-base {\n :root {\n color-scheme: light;\n --cui-white: #fff;\n --cui-primary: #5856d6;\n --cui-primary-rgb: 88, 86, 214;\n --cui-danger: #e55353;\n --cui-body-font-family: system-ui, -apple-system, \"Segoe UI\", roboto, \"Helvetica Neue\", arial, sans-serif;\n --cui-body-font-size: 1rem;\n --cui-body-line-height: 1.5;\n --cui-body-color: rgba(37, 42.92, 54.02, 0.95);\n --cui-body-bg: #fff;\n --cui-body-bg-rgb: 255, 255, 255;\n --cui-emphasis-color: #080a0c;\n --cui-emphasis-color-rgb: 8, 10, 12;\n --cui-secondary-color: rgba(37, 42.92, 54.02, 0.681);\n --cui-secondary-bg: #e7eaee;\n --cui-tertiary-bg: #f3f4f7;\n --cui-border-width: 1px;\n --cui-border-color: #dbdfe6;\n --cui-border-radius: .375rem;\n --cui-border-radius-sm: .25rem;\n --cui-box-shadow: 0 .5rem 1rem rgba(8, 10, 12, .15);\n --cui-focus-ring-color: rgba(88, 86, 214, .25);\n --cui-link-color: #5856d6;\n --cui-link-hover-color: #4645ab;\n }\n [data-coreui-theme=dark] {\n color-scheme: dark;\n --cui-body-color: rgba(255, 255, 255, 0.87);\n --cui-body-bg: #212631;\n --cui-body-bg-rgb: 33, 38, 49;\n --cui-emphasis-color: #fff;\n --cui-emphasis-color-rgb: 255, 255, 255;\n --cui-secondary-color: rgba(255, 255, 255, 0.6);\n --cui-secondary-bg: #323a49;\n --cui-tertiary-bg: rgb(41.5, 48, 61);\n --cui-border-color: #4a566d;\n --cui-primary: rgb(94.2, 92.4, 207.6);\n --cui-link-color: rgb(151.2, 150, 226.8);\n --cui-link-hover-color: rgb(171.36, 170.4, 233.04);\n }\n}\n@layer data-grid-base {\n .data-grid {\n box-sizing: border-box;\n font-family: var(--cui-body-font-family);\n font-size: var(--cui-body-font-size);\n font-weight: 400;\n line-height: var(--cui-body-line-height);\n color: var(--cui-body-color);\n text-align: start;\n background-color: var(--cui-body-bg);\n -webkit-text-size-adjust: 100%;\n }\n .data-grid *,\n .data-grid *::before,\n .data-grid *::after {\n box-sizing: border-box;\n }\n .data-grid table {\n caption-side: bottom;\n border-collapse: collapse;\n }\n .data-grid th {\n text-align: inherit;\n text-align: -webkit-match-parent;\n }\n .data-grid thead,\n .data-grid tbody,\n .data-grid tr,\n .data-grid td,\n .data-grid th {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n }\n .data-grid label {\n display: inline-block;\n }\n .data-grid button,\n .data-grid input,\n .data-grid optgroup,\n .data-grid select,\n .data-grid textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n .data-grid button,\n .data-grid select {\n text-transform: none;\n }\n .data-grid button,\n .data-grid [type=button],\n .data-grid [type=reset],\n .data-grid [type=submit] {\n -webkit-appearance: button;\n }\n .data-grid button:not(:disabled),\n .data-grid [type=button]:not(:disabled),\n .data-grid [type=reset]:not(:disabled),\n .data-grid [type=submit]:not(:disabled) {\n cursor: pointer;\n }\n .data-grid ::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n .data-grid svg {\n vertical-align: middle;\n }\n .data-grid ul {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n }\n}\n@layer data-grid-base {\n .data-grid .table {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n --cui-table-color-state: initial;\n --cui-table-bg-state: initial;\n --cui-table-color: var(--cui-emphasis-color);\n --cui-table-bg: var(--cui-body-bg);\n --cui-table-border-color: var(--cui-border-color);\n --cui-table-accent-bg: transparent;\n --cui-table-striped-color: var(--cui-emphasis-color);\n --cui-table-striped-bg: rgba(var(--cui-emphasis-color-rgb), 0.05);\n --cui-table-active-color: var(--cui-emphasis-color);\n --cui-table-active-bg: rgba(var(--cui-emphasis-color-rgb), 0.1);\n --cui-table-hover-color: var(--cui-emphasis-color);\n --cui-table-hover-bg: rgba(var(--cui-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--cui-table-border-color);\n }\n .data-grid .table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--cui-table-color-state, var(--cui-table-color-type, var(--cui-table-color)));\n background-color: var(--cui-table-bg);\n border-bottom-width: var(--cui-border-width);\n box-shadow: inset 0 0 0 9999px var(--cui-table-bg-state, var(--cui-table-bg-type, var(--cui-table-accent-bg)));\n }\n .data-grid .table > tbody {\n vertical-align: inherit;\n }\n .data-grid .table > thead {\n vertical-align: bottom;\n }\n .data-grid .table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n }\n .data-grid .table-bordered > :not(caption) > * > * {\n border-width: var(--cui-border-width) 0;\n }\n .data-grid .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n .data-grid .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n }\n .data-grid .table-hover > tbody > tr:hover > * {\n --cui-table-color-state: var(--cui-table-hover-color);\n --cui-table-bg-state: var(--cui-table-hover-bg);\n }\n .data-grid .table-active {\n --cui-table-color-state: var(--cui-table-active-color);\n --cui-table-bg-state: var(--cui-table-active-bg);\n }\n}\n@layer data-grid-base {\n .data-grid .btn {\n --cui-btn-padding-x: 0.75rem;\n --cui-btn-padding-y: 0.375rem;\n --cui-btn-font-size: 1rem;\n --cui-btn-font-weight: 400;\n --cui-btn-line-height: 1.5;\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-bg: transparent;\n --cui-btn-border-width: var(--cui-border-width);\n --cui-btn-border-color: transparent;\n --cui-btn-border-radius: var(--cui-border-radius);\n --cui-btn-hover-color: var(--cui-btn-color);\n --cui-btn-hover-bg: transparent;\n --cui-btn-hover-border-color: transparent;\n --cui-btn-active-color: var(--cui-btn-hover-color);\n --cui-btn-active-bg: var(--cui-btn-hover-bg);\n --cui-btn-active-border-color: var(--cui-btn-hover-border-color);\n --cui-btn-disabled-color: var(--cui-btn-color);\n --cui-btn-disabled-opacity: .65;\n display: inline-block;\n padding: var(--cui-btn-padding-y) var(--cui-btn-padding-x);\n font-size: var(--cui-btn-font-size);\n font-weight: var(--cui-btn-font-weight);\n line-height: var(--cui-btn-line-height);\n color: var(--cui-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background-color: var(--cui-btn-bg);\n border: var(--cui-btn-border-width) solid var(--cui-btn-border-color);\n border-radius: var(--cui-btn-border-radius);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .btn:hover {\n color: var(--cui-btn-hover-color);\n background-color: var(--cui-btn-hover-bg);\n border-color: var(--cui-btn-hover-border-color);\n }\n .data-grid .btn:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .btn:active {\n color: var(--cui-btn-active-color);\n background-color: var(--cui-btn-active-bg);\n border-color: var(--cui-btn-active-border-color);\n }\n .data-grid .btn:disabled {\n color: var(--cui-btn-disabled-color);\n pointer-events: none;\n opacity: var(--cui-btn-disabled-opacity);\n }\n .data-grid .btn-sm {\n --cui-btn-padding-y: 0.25rem;\n --cui-btn-padding-x: 0.5rem;\n --cui-btn-font-size: 0.875rem;\n --cui-btn-border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .btn-primary {\n --cui-btn-color: #fff;\n --cui-btn-bg: var(--cui-primary);\n --cui-btn-border-color: var(--cui-primary);\n --cui-btn-hover-color: #fff;\n --cui-btn-hover-bg: color-mix(in srgb, var(--cui-primary) 85%, #000);\n --cui-btn-hover-border-color: color-mix(in srgb, var(--cui-primary) 80%, #000);\n }\n .data-grid .btn-outline-secondary {\n --cui-btn-color: var(--cui-secondary-color);\n --cui-btn-border-color: var(--cui-border-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-hover-border-color: var(--cui-border-color);\n }\n .data-grid .btn-ghost {\n --cui-btn-color: var(--cui-body-color);\n --cui-btn-hover-color: var(--cui-body-color);\n --cui-btn-hover-bg: var(--cui-tertiary-bg);\n --cui-btn-active-bg: var(--cui-secondary-bg);\n }\n .data-grid .btn-link {\n --cui-btn-color: var(--cui-link-color);\n --cui-btn-hover-color: var(--cui-link-hover-color);\n text-decoration: underline;\n }\n}\n@layer data-grid-base {\n .data-grid .form-control,\n .data-grid .form-select {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--cui-body-color);\n appearance: none;\n background-color: var(--cui-body-bg);\n background-clip: padding-box;\n border: var(--cui-border-width) solid var(--cui-border-color);\n border-radius: var(--cui-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .form-control:focus,\n .data-grid .form-select:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-control:disabled,\n .data-grid .form-select:disabled {\n background-color: var(--cui-secondary-bg);\n opacity: 1;\n }\n .data-grid .form-control::placeholder,\n .data-grid .form-select::placeholder {\n color: var(--cui-secondary-color);\n opacity: 1;\n }\n .data-grid .form-select {\n padding-inline-end: 2.25rem;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n }\n .data-grid .form-control-sm,\n .data-grid .form-select-sm {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--cui-border-radius-sm);\n }\n .data-grid .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n .data-grid .form-control.is-invalid {\n border-color: var(--cui-danger);\n }\n .data-grid .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: 0.125rem;\n }\n .data-grid .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n .data-grid .form-check-input {\n --cui-form-check-bg: var(--cui-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--cui-form-check-bg);\n background-image: var(--cui-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--cui-border-width) solid var(--cui-border-color);\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n .data-grid .form-check-input[type=checkbox] {\n border-radius: 0.25em;\n }\n .data-grid .form-check-input[type=radio] {\n border-radius: 50%;\n }\n .data-grid .form-check-input:focus {\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .form-check-input:checked {\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:checked[type=checkbox] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input:checked[type=radio] {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\");\n }\n .data-grid .form-check-input[type=checkbox]:indeterminate {\n --cui-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n background-color: var(--cui-primary);\n border-color: var(--cui-primary);\n }\n .data-grid .form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n }\n .data-grid .form-check-label {\n cursor: pointer;\n }\n .data-grid .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n }\n [data-coreui-theme=dark] .data-grid .form-select {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n }\n}\n@layer data-grid-base {\n .data-grid .pagination {\n --cui-pagination-padding-x: 0.75rem;\n --cui-pagination-padding-y: 0.375rem;\n --cui-pagination-font-size: 1rem;\n --cui-pagination-color: var(--cui-link-color);\n --cui-pagination-bg: var(--cui-body-bg);\n --cui-pagination-border-width: var(--cui-border-width);\n --cui-pagination-border-color: var(--cui-border-color);\n --cui-pagination-border-radius: var(--cui-border-radius);\n --cui-pagination-hover-color: var(--cui-link-hover-color);\n --cui-pagination-hover-bg: var(--cui-tertiary-bg);\n --cui-pagination-hover-border-color: var(--cui-border-color);\n --cui-pagination-active-color: #fff;\n --cui-pagination-active-bg: var(--cui-primary);\n --cui-pagination-active-border-color: var(--cui-primary);\n --cui-pagination-disabled-color: var(--cui-secondary-color);\n --cui-pagination-disabled-bg: var(--cui-secondary-bg);\n --cui-pagination-disabled-border-color: var(--cui-border-color);\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n .data-grid .page-link {\n position: relative;\n display: block;\n padding: var(--cui-pagination-padding-y) var(--cui-pagination-padding-x);\n font-size: var(--cui-pagination-font-size);\n color: var(--cui-pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--cui-pagination-bg);\n border: var(--cui-pagination-border-width) solid var(--cui-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n }\n .data-grid .page-link:hover {\n z-index: 2;\n color: var(--cui-pagination-hover-color);\n background-color: var(--cui-pagination-hover-bg);\n border-color: var(--cui-pagination-hover-border-color);\n }\n .data-grid .page-link:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.25rem var(--cui-focus-ring-color);\n }\n .data-grid .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--cui-border-width));\n }\n .data-grid .page-item:first-child .page-link {\n border-top-left-radius: var(--cui-pagination-border-radius);\n border-bottom-left-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item:last-child .page-link {\n border-top-right-radius: var(--cui-pagination-border-radius);\n border-bottom-right-radius: var(--cui-pagination-border-radius);\n }\n .data-grid .page-item.active .page-link {\n z-index: 3;\n color: var(--cui-pagination-active-color);\n background-color: var(--cui-pagination-active-bg);\n border-color: var(--cui-pagination-active-border-color);\n }\n .data-grid .page-item.disabled .page-link {\n color: var(--cui-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--cui-pagination-disabled-bg);\n border-color: var(--cui-pagination-disabled-border-color);\n }\n .data-grid .pagination-sm {\n --cui-pagination-padding-x: 0.5rem;\n --cui-pagination-padding-y: 0.25rem;\n --cui-pagination-font-size: 0.875rem;\n --cui-pagination-border-radius: var(--cui-border-radius-sm);\n }\n}\n@layer data-grid-base {\n .data-grid .spinner-border {\n --cui-spinner-width: 2rem;\n --cui-spinner-height: 2rem;\n --cui-spinner-vertical-align: -.125em;\n --cui-spinner-border-width: 0.25em;\n --cui-spinner-animation-speed: 0.75s;\n --cui-spinner-animation-name: data-grid-spinner-border;\n display: inline-block;\n flex-shrink: 0;\n width: var(--cui-spinner-width);\n height: var(--cui-spinner-height);\n vertical-align: var(--cui-spinner-vertical-align);\n border: var(--cui-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--cui-spinner-animation-speed) linear infinite var(--cui-spinner-animation-name);\n }\n .data-grid .spinner-border-sm {\n --cui-spinner-width: 1rem;\n --cui-spinner-height: 1rem;\n --cui-spinner-border-width: .2em;\n }\n}\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n@layer data-grid-base {\n .data-grid .visually-hidden:not(caption) {\n position: absolute !important;\n }\n .data-grid .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n}\n.data-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n --cui-data-grid-viewport-max-height: 30rem;\n --cui-data-grid-header-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-header-shadow: inset 0 calc(-1 * var(--cui-border-width, 1px)) 0 var(--cui-border-color, #dee2e6);\n --cui-data-grid-cell-selected-bg: rgba(var(--cui-primary-rgb, 50, 31, 219), 0.12);\n --cui-data-grid-cell-selected-border-color: var(--cui-primary, #321fdb);\n --cui-data-grid-cell-selected-border-width: 1px;\n --cui-data-grid-row-handle-width: 2rem;\n --cui-data-grid-select-cell-width: 2.5rem;\n --cui-data-grid-sorter-margin: 0.25rem;\n --cui-data-grid-sorter-opacity: 0.3;\n --cui-data-grid-spacing: 0.5rem;\n --cui-data-grid-resizer-width: 0.625rem;\n --cui-data-grid-resizer-grip-height: 60%;\n --cui-data-grid-resizer-grip-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-resizer-grip-color-hover: var(--cui-secondary-color, #6c757d);\n --cui-data-grid-pinned-border-width: var(--cui-border-width);\n --cui-data-grid-pinned-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-drop-indicator: var(--cui-primary, #321fdb);\n --cui-data-grid-drag-transition: 0.15s ease;\n --cui-data-grid-menu-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-menu-border-color: var(--cui-border-color, #dee2e6);\n --cui-data-grid-menu-shadow: var(--cui-box-shadow, 0 0.5rem 1rem rgba(0, 0, 0, 0.15));\n --cui-data-grid-menu-min-width: 10rem;\n --cui-data-grid-menu-item-hover-bg: var(--cui-tertiary-bg, #f8f9fa);\n --cui-data-grid-loading-bg: rgba(var(--cui-body-bg-rgb, 255, 255, 255), 0.6);\n --cui-data-grid-pinned-bg: var(--cui-body-bg, #fff);\n --cui-data-grid-focus-ring-width: 2px;\n --cui-data-grid-focus-ring-color: var(--cui-primary, #321fdb);\n}\n.data-grid .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-toolbar-actions {\n display: flex;\n gap: 0.25rem;\n align-items: center;\n}\n.data-grid .data-grid-toolbar-search {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--cui-data-grid-viewport-max-height);\n overflow-y: auto;\n overflow-anchor: none;\n}\n.data-grid .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n}\n.data-grid .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: 0.25rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid [role=grid] :is(td, th):focus-visible {\n outline: var(--cui-data-grid-focus-ring-width) solid var(--cui-data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--cui-data-grid-focus-ring-width));\n}\n.data-grid .data-grid-viewport:focus-visible {\n outline: 0;\n}\n.data-grid .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--cui-data-grid-header-bg);\n box-shadow: var(--cui-data-grid-header-shadow);\n}\n.data-grid .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: 48px;\n vertical-align: middle;\n}\n.data-grid .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n}\n.data-grid .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n}\n.data-grid .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n.data-grid .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid .btn-ghost {\n --cui-btn-padding-x: var(--cui-btn-padding-y);\n --cui-btn-line-height: 1;\n}\n.data-grid .data-grid-menu-button {\n margin-inline-start: auto;\n}\n.data-grid .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--cui-data-grid-menu-min-width);\n padding: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0.25rem 0.75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-menu-item:hover, .data-grid .data-grid-menu-item:focus-visible {\n background-color: var(--cui-data-grid-menu-item-hover-bg);\n}\n.data-grid .data-grid-menu-item[aria-disabled=true] {\n color: var(--cui-secondary-color, #6c757d);\n cursor: default;\n background: none;\n}\n.data-grid .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n padding: 0.75rem;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-filter-menu > div {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n.data-grid .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n.data-grid .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n}\n.data-grid .data-grid-filter-menu-join label {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n}\n.data-grid .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n max-height: 14rem;\n overflow-y: auto;\n}\n.data-grid .data-grid-filter-menu-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n}\n.data-grid .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n min-width: var(--cui-data-grid-menu-min-width);\n max-width: 18rem;\n max-height: 20rem;\n padding: 0.75rem;\n overflow-y: auto;\n background-color: var(--cui-data-grid-menu-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: var(--cui-data-grid-menu-shadow);\n}\n.data-grid .data-grid-column-chooser-option {\n display: flex;\n gap: 0.375rem;\n align-items: center;\n margin-bottom: 0;\n}\n.data-grid .data-grid-column-chooser-footer {\n display: flex;\n gap: 0.5rem;\n justify-content: flex-end;\n padding-top: 0.25rem;\n margin-top: 0.25rem;\n border-top: var(--cui-border-width, 1px) solid var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-filter-button {\n position: relative;\n margin-inline-start: auto;\n}\n.data-grid .data-grid-filter-button ~ .data-grid-menu-button {\n margin-inline-start: 0;\n}\n.data-grid .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: 0.125rem;\n inset-inline-end: 0.125rem;\n width: 0.375rem;\n height: 0.375rem;\n content: \"\";\n background-color: var(--cui-primary, #321fdb);\n border-radius: 50%;\n}\n.data-grid .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: 0.75;\n}\n.data-grid .data-grid-menu-item-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-menu-divider {\n height: var(--cui-border-width, 1px);\n margin: 0.25rem 0;\n background-color: var(--cui-data-grid-menu-border-color);\n}\n.data-grid .data-grid-dragging {\n opacity: 0.5;\n}\n.data-grid.data-grid-drag-active {\n cursor: grabbing;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1080;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--cui-data-grid-cell-padding-x, 0.5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--cui-data-grid-pinned-bg);\n border: var(--cui-border-width, 1px) solid var(--cui-data-grid-drop-indicator);\n border-radius: var(--cui-border-radius, 0.375rem);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n transform: translate(-9999px, -9999px);\n opacity: 0.9;\n}\n.data-grid .data-grid-drag-ghost-settle {\n transition: transform var(--cui-data-grid-drag-transition), opacity var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drop-indicator {\n position: fixed;\n z-index: 1080;\n pointer-events: none;\n background-color: var(--cui-data-grid-drop-indicator);\n transition: top var(--cui-data-grid-drag-transition), left var(--cui-data-grid-drag-transition);\n}\n.data-grid .data-grid-drag-preview {\n transition: transform var(--cui-data-grid-drag-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .data-grid :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n}\n.data-grid .data-grid-drop-indicator-x {\n width: 0.125rem;\n}\n.data-grid .data-grid-drop-indicator-y {\n height: 0.125rem;\n}\n.data-grid .data-grid-cell-selected {\n position: relative;\n background-color: var(--cui-data-grid-cell-selected-bg);\n}\n.data-grid .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--cui-data-grid-cell-selected-border-color);\n}\n.data-grid .data-grid-cell-selected-top::after {\n border-top-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-right::after {\n border-right-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-cell-selected-left::after {\n border-left-width: var(--cui-data-grid-cell-selected-border-width);\n}\n.data-grid .data-grid-row-handle-cell {\n width: var(--cui-data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n}\n.data-grid .data-grid-row-handle {\n display: inline-flex;\n color: var(--cui-secondary-color, #6c757d);\n cursor: grab;\n touch-action: none;\n}\n.data-grid .data-grid-select-cell {\n width: var(--cui-data-grid-select-cell-width);\n text-align: center;\n}\n.data-grid .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--cui-data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n background: none;\n border: 0;\n}\n.data-grid .data-grid-sort-icon {\n display: inline-flex;\n font-size: 0.875em;\n opacity: 0;\n}\n.data-grid .data-grid-sort-icon svg {\n width: 1em;\n height: 1em;\n}\n.data-grid .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n}\n.data-grid[data-coreui-sorter-visibility=always] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon, .data-grid[data-coreui-sorter-visibility=hover] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--cui-data-grid-sorter-opacity);\n}\n.data-grid .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n}\n.data-grid:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.data-grid.data-grid-resizable .data-grid-viewport, .data-grid.data-grid-pinned .data-grid-viewport {\n overflow-x: auto;\n}\n.data-grid.data-grid-resizable .table, .data-grid.data-grid-pinned .table {\n width: max-content;\n min-width: 100%;\n}\n.data-grid.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n}\n.data-grid.data-grid-pinned .table {\n border-collapse: separate;\n border-spacing: 0;\n}\n.data-grid .data-grid-cell-pinned-start,\n.data-grid .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--cui-data-grid-pinned-bg);\n}\n.data-grid .data-grid-header .data-grid-cell-pinned-start,\n.data-grid .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n}\n.data-grid .data-grid-cell-pinned-start-last,\n.data-grid .data-grid-cell-pinned-end-first {\n position: sticky;\n}\n.data-grid .data-grid-cell-pinned-start-last::after,\n.data-grid .data-grid-cell-pinned-end-first::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--cui-data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n}\n.data-grid .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--cui-data-grid-pinned-border-color);\n}\n.data-grid .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-0.5 * var(--cui-data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cui-data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.data-grid .data-grid-resizer::after {\n width: 2px;\n height: var(--cui-data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--cui-data-grid-resizer-grip-color);\n transition: background-color 0.15s ease;\n}\n.data-grid .data-grid-resizer:hover::after, .data-grid .data-grid-resizer.data-grid-resizer-active::after {\n background-color: var(--cui-data-grid-resizer-grip-color-hover);\n}\n.data-grid .data-grid-spacer > td {\n padding: 0;\n border: 0;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --cui-table-color-type: initial;\n --cui-table-bg-type: initial;\n}\n.data-grid .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --cui-table-color-type: var(--cui-table-striped-color);\n --cui-table-bg-type: var(--cui-table-striped-bg);\n}\n.data-grid .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n}\n.data-grid .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--cui-data-grid-spacing);\n background-color: var(--cui-data-grid-loading-bg);\n}\n.data-grid .data-grid-tooltip {\n position: fixed;\n z-index: 1080;\n max-width: 12rem;\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.4;\n color: var(--cui-body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--cui-emphasis-color, #000);\n border-radius: var(--cui-border-radius, 0.375rem);\n}\n.data-grid .data-grid-empty > td {\n padding: 2rem 1rem;\n color: var(--cui-secondary-color, #6c757d);\n text-align: center;\n}\n.data-grid .data-grid-pagination {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cui-data-grid-spacing);\n align-items: center;\n min-height: 48px;\n padding: var(--cui-data-grid-spacing);\n border-top: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination.data-grid-pagination-top {\n border-top: 0;\n border-bottom: var(--cui-border-width, 1px) solid var(--cui-border-color, #dee2e6);\n}\n.data-grid .data-grid-pagination .pagination {\n margin-bottom: 0;\n}\n.data-grid .data-grid-pagination .data-grid-pagination-info {\n margin-inline-start: auto;\n color: var(--cui-secondary-color, #6c757d);\n}\n.data-grid .data-grid-pagination .form-select {\n width: auto;\n}\n\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n }\n .data-grid-print-root h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n .data-grid-print-root table {\n width: 100%;\n border-collapse: collapse;\n }\n .data-grid-print-root :is(th, td) {\n padding: 0.25rem 0.5rem;\n text-align: start;\n border: 1px solid #000;\n }\n .data-grid-print-root thead {\n display: table-header-group;\n }\n .data-grid-print-root tr {\n break-inside: avoid;\n }\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=data-grid.standalone.css.map */","@use \"../config\" as *;\n\n// scss-docs-start base-table-variables\n$base-table-cell-padding-y: .5rem !default;\n$base-table-cell-padding-x: .5rem !default;\n$base-table-striped-factor: .05 !default;\n$base-table-active-factor: .1 !default;\n$base-table-hover-factor: .075 !default;\n// scss-docs-end base-table-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .table {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n --#{$prefix}table-color-state: initial;\n --#{$prefix}table-bg-state: initial;\n --#{$prefix}table-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-bg: var(--#{$prefix}body-bg);\n --#{$prefix}table-border-color: var(--#{$prefix}border-color);\n --#{$prefix}table-accent-bg: transparent;\n --#{$prefix}table-striped-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-striped-factor});\n --#{$prefix}table-active-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-active-factor});\n --#{$prefix}table-hover-color: var(--#{$prefix}emphasis-color);\n --#{$prefix}table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), #{$base-table-hover-factor});\n\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--#{$prefix}table-border-color);\n\n > :not(caption) > * > * {\n padding: $base-table-cell-padding-y $base-table-cell-padding-x;\n color: var(--#{$prefix}table-color-state, var(--#{$prefix}table-color-type, var(--#{$prefix}table-color)));\n background-color: var(--#{$prefix}table-bg);\n border-bottom-width: var(--#{$prefix}border-width);\n box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-bg-state, var(--#{$prefix}table-bg-type, var(--#{$prefix}table-accent-bg)));\n }\n\n > tbody {\n vertical-align: inherit;\n }\n\n > thead {\n vertical-align: bottom;\n }\n }\n\n .table-sm > :not(caption) > * > * {\n padding: .25rem .25rem;\n }\n\n .table-bordered > :not(caption) > * > * {\n border-width: var(--#{$prefix}border-width) 0;\n }\n\n .table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n }\n\n .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n .table-hover > tbody > tr:hover > * {\n --#{$prefix}table-color-state: var(--#{$prefix}table-hover-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-hover-bg);\n }\n\n .table-active {\n --#{$prefix}table-color-state: var(--#{$prefix}table-active-color);\n --#{$prefix}table-bg-state: var(--#{$prefix}table-active-bg);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-button-variables\n$base-btn-padding-y: .375rem !default;\n$base-btn-padding-x: .75rem !default;\n$base-btn-font-size: 1rem !default;\n$base-btn-padding-y-sm: .25rem !default;\n$base-btn-padding-x-sm: .5rem !default;\n$base-btn-font-size-sm: .875rem !default;\n$base-btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-button-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .btn {\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x};\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y};\n --#{$prefix}btn-font-size: #{$base-btn-font-size};\n --#{$prefix}btn-font-weight: 400;\n --#{$prefix}btn-line-height: 1.5;\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-bg: transparent;\n --#{$prefix}btn-border-width: var(--#{$prefix}border-width);\n --#{$prefix}btn-border-color: transparent;\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}btn-hover-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-hover-bg: transparent;\n --#{$prefix}btn-hover-border-color: transparent;\n --#{$prefix}btn-active-color: var(--#{$prefix}btn-hover-color);\n --#{$prefix}btn-active-bg: var(--#{$prefix}btn-hover-bg);\n --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-hover-border-color);\n --#{$prefix}btn-disabled-color: var(--#{$prefix}btn-color);\n --#{$prefix}btn-disabled-opacity: .65;\n\n display: inline-block;\n padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n font-size: var(--#{$prefix}btn-font-size);\n font-weight: var(--#{$prefix}btn-font-weight);\n line-height: var(--#{$prefix}btn-line-height);\n color: var(--#{$prefix}btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: var(--#{$prefix}btn-bg);\n border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n border-radius: var(--#{$prefix}btn-border-radius);\n transition: $base-btn-transition;\n\n &:hover {\n color: var(--#{$prefix}btn-hover-color);\n background-color: var(--#{$prefix}btn-hover-bg);\n border-color: var(--#{$prefix}btn-hover-border-color);\n }\n\n &:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:active {\n color: var(--#{$prefix}btn-active-color);\n background-color: var(--#{$prefix}btn-active-bg);\n border-color: var(--#{$prefix}btn-active-border-color);\n }\n\n &:disabled {\n color: var(--#{$prefix}btn-disabled-color);\n pointer-events: none;\n opacity: var(--#{$prefix}btn-disabled-opacity);\n }\n }\n\n .btn-sm {\n --#{$prefix}btn-padding-y: #{$base-btn-padding-y-sm};\n --#{$prefix}btn-padding-x: #{$base-btn-padding-x-sm};\n --#{$prefix}btn-font-size: #{$base-btn-font-size-sm};\n --#{$prefix}btn-border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .btn-primary {\n --#{$prefix}btn-color: #fff;\n --#{$prefix}btn-bg: var(--#{$prefix}primary);\n --#{$prefix}btn-border-color: var(--#{$prefix}primary);\n --#{$prefix}btn-hover-color: #fff;\n --#{$prefix}btn-hover-bg: color-mix(in srgb, var(--#{$prefix}primary) 85%, #000);\n --#{$prefix}btn-hover-border-color: color-mix(in srgb, var(--#{$prefix}primary) 80%, #000);\n }\n\n .btn-outline-secondary {\n --#{$prefix}btn-color: var(--#{$prefix}secondary-color);\n --#{$prefix}btn-border-color: var(--#{$prefix}border-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-hover-border-color: var(--#{$prefix}border-color);\n }\n\n .btn-ghost {\n --#{$prefix}btn-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}body-color);\n --#{$prefix}btn-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}btn-active-bg: var(--#{$prefix}secondary-bg);\n }\n\n .btn-link {\n --#{$prefix}btn-color: var(--#{$prefix}link-color);\n --#{$prefix}btn-hover-color: var(--#{$prefix}link-hover-color);\n\n text-decoration: underline;\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-form-variables\n$base-input-padding-y: .375rem !default;\n$base-input-padding-x: .75rem !default;\n$base-input-font-size: 1rem !default;\n$base-input-padding-y-sm: .25rem !default;\n$base-input-padding-x-sm: .5rem !default;\n$base-input-font-size-sm: .875rem !default;\n$base-input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n$base-form-select-indicator: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23323a49' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-select-indicator-dark: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-input-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\") !default;\n$base-form-check-radio-checked-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='rgba%28255, 255, 255, 0.87%29'/%3e%3c/svg%3e\") !default;\n$base-form-check-indeterminate-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='rgba%28255, 255, 255, 0.87%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\") !default;\n// scss-docs-end base-form-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .form-control,\n .form-select {\n display: block;\n width: 100%;\n padding: $base-input-padding-y $base-input-padding-x;\n font-size: $base-input-font-size;\n font-weight: 400;\n line-height: 1.5;\n color: var(--#{$prefix}body-color);\n appearance: none;\n background-color: var(--#{$prefix}body-bg);\n background-clip: padding-box;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n border-radius: var(--#{$prefix}border-radius);\n transition: $base-input-transition;\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:disabled {\n background-color: var(--#{$prefix}secondary-bg);\n opacity: 1;\n }\n\n &::placeholder {\n color: var(--#{$prefix}secondary-color);\n opacity: 1;\n }\n }\n\n .form-select {\n padding-inline-end: 2.25rem;\n background-image: $base-form-select-indicator;\n background-repeat: no-repeat;\n background-position: right .75rem center;\n background-size: 16px 12px;\n }\n\n .form-control-sm,\n .form-select-sm {\n padding: $base-input-padding-y-sm $base-input-padding-x-sm;\n font-size: $base-input-font-size-sm;\n border-radius: var(--#{$prefix}border-radius-sm);\n }\n\n .form-select-sm {\n padding-inline-end: 2.25rem;\n }\n\n .form-control.is-invalid {\n border-color: var(--#{$prefix}danger);\n }\n\n .form-check {\n display: block;\n min-height: 1.5rem;\n padding-inline-start: 1.5em;\n margin-bottom: .125rem;\n }\n\n .form-check .form-check-input {\n float: left;\n margin-inline-start: -1.5em;\n }\n\n .form-check-input {\n --#{$prefix}form-check-bg: var(--#{$prefix}body-bg);\n\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: .25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--#{$prefix}form-check-bg);\n background-image: var(--#{$prefix}form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color);\n print-color-adjust: exact;\n\n &[type=\"checkbox\"] {\n border-radius: .25em;\n }\n\n &[type=\"radio\"] {\n border-radius: 50%;\n }\n\n &:focus {\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n\n &:checked {\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:checked[type=\"checkbox\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-input-checked-bg-image};\n }\n\n &:checked[type=\"radio\"] {\n --#{$prefix}form-check-bg-image: #{$base-form-check-radio-checked-bg-image};\n }\n\n &[type=\"checkbox\"]:indeterminate {\n --#{$prefix}form-check-bg-image: #{$base-form-check-indeterminate-bg-image};\n\n background-color: var(--#{$prefix}primary);\n border-color: var(--#{$prefix}primary);\n }\n\n &:disabled {\n pointer-events: none;\n filter: none;\n opacity: .5;\n }\n }\n\n .form-check-label {\n cursor: pointer;\n }\n\n .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: .5;\n }\n }\n\n [data-coreui-theme=\"dark\"] .data-grid .form-select {\n background-image: $base-form-select-indicator-dark;\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-pagination-variables\n$base-pagination-padding-y: .375rem !default;\n$base-pagination-padding-x: .75rem !default;\n$base-pagination-padding-y-sm: .25rem !default;\n$base-pagination-padding-x-sm: .5rem !default;\n$base-pagination-font-size-sm: .875rem !default;\n$base-pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end base-pagination-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .pagination {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y};\n --#{$prefix}pagination-font-size: 1rem;\n --#{$prefix}pagination-color: var(--#{$prefix}link-color);\n --#{$prefix}pagination-bg: var(--#{$prefix}body-bg);\n --#{$prefix}pagination-border-width: var(--#{$prefix}border-width);\n --#{$prefix}pagination-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius);\n --#{$prefix}pagination-hover-color: var(--#{$prefix}link-hover-color);\n --#{$prefix}pagination-hover-bg: var(--#{$prefix}tertiary-bg);\n --#{$prefix}pagination-hover-border-color: var(--#{$prefix}border-color);\n --#{$prefix}pagination-active-color: #fff;\n --#{$prefix}pagination-active-bg: var(--#{$prefix}primary);\n --#{$prefix}pagination-active-border-color: var(--#{$prefix}primary);\n --#{$prefix}pagination-disabled-color: var(--#{$prefix}secondary-color);\n --#{$prefix}pagination-disabled-bg: var(--#{$prefix}secondary-bg);\n --#{$prefix}pagination-disabled-border-color: var(--#{$prefix}border-color);\n\n display: flex;\n padding-left: 0;\n margin-bottom: 1rem;\n list-style: none;\n }\n\n .page-link {\n position: relative;\n display: block;\n padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n font-size: var(--#{$prefix}pagination-font-size);\n color: var(--#{$prefix}pagination-color);\n text-decoration: none;\n cursor: pointer;\n background-color: var(--#{$prefix}pagination-bg);\n border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n transition: $base-pagination-transition;\n\n &:hover {\n z-index: 2;\n color: var(--#{$prefix}pagination-hover-color);\n background-color: var(--#{$prefix}pagination-hover-bg);\n border-color: var(--#{$prefix}pagination-hover-border-color);\n }\n\n &:focus-visible {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 .25rem var(--#{$prefix}focus-ring-color);\n }\n }\n\n .page-item:not(:first-child) .page-link {\n margin-left: calc(-1 * var(--#{$prefix}border-width));\n }\n\n .page-item:first-child .page-link {\n border-top-left-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-left-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item:last-child .page-link {\n border-top-right-radius: var(--#{$prefix}pagination-border-radius);\n border-bottom-right-radius: var(--#{$prefix}pagination-border-radius);\n }\n\n .page-item.active .page-link {\n z-index: 3;\n color: var(--#{$prefix}pagination-active-color);\n background-color: var(--#{$prefix}pagination-active-bg);\n border-color: var(--#{$prefix}pagination-active-border-color);\n }\n\n .page-item.disabled .page-link {\n color: var(--#{$prefix}pagination-disabled-color);\n pointer-events: none;\n background-color: var(--#{$prefix}pagination-disabled-bg);\n border-color: var(--#{$prefix}pagination-disabled-border-color);\n }\n\n .pagination-sm {\n --#{$prefix}pagination-padding-x: #{$base-pagination-padding-x-sm};\n --#{$prefix}pagination-padding-y: #{$base-pagination-padding-y-sm};\n --#{$prefix}pagination-font-size: #{$base-pagination-font-size-sm};\n --#{$prefix}pagination-border-radius: var(--#{$prefix}border-radius-sm);\n }\n }\n}\n","@use \"../config\" as *;\n\n// scss-docs-start base-spinner-variables\n$base-spinner-width: 2rem !default;\n$base-spinner-height: $base-spinner-width !default;\n$base-spinner-border-width: .25em !default;\n$base-spinner-animation-speed: .75s !default;\n// scss-docs-end base-spinner-variables\n\n@layer #{$base-layer} {\n .data-grid {\n .spinner-border {\n --#{$prefix}spinner-width: #{$base-spinner-width};\n --#{$prefix}spinner-height: #{$base-spinner-height};\n --#{$prefix}spinner-vertical-align: -.125em;\n --#{$prefix}spinner-border-width: #{$base-spinner-border-width};\n --#{$prefix}spinner-animation-speed: #{$base-spinner-animation-speed};\n --#{$prefix}spinner-animation-name: data-grid-spinner-border;\n\n display: inline-block;\n flex-shrink: 0;\n width: var(--#{$prefix}spinner-width);\n height: var(--#{$prefix}spinner-height);\n vertical-align: var(--#{$prefix}spinner-vertical-align);\n border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n }\n\n .spinner-border-sm {\n --#{$prefix}spinner-width: 1rem;\n --#{$prefix}spinner-height: 1rem;\n --#{$prefix}spinner-border-width: .2em;\n }\n }\n}\n\n// Keyframes cannot be scoped; the name is namespaced instead so it can never\n// collide with the host page's own animations.\n@keyframes data-grid-spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","@use \"../config\" as *;\n\n// `!important` declarations invert the layer order — a layered `!important`\n// beats an unlayered one — so this block wins even when CoreUI is loaded.\n// It is byte-for-byte the same rule, so that costs nothing.\n\n@layer #{$base-layer} {\n .data-grid {\n .visually-hidden:not(caption) {\n position: absolute !important;\n }\n\n .visually-hidden {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n }\n }\n}\n","@use \"../functions/defaults\" as *;\n@use \"../mixins/tokens\" as *;\n@use \"../config\" as *;\n\n// stylelint-disable custom-property-no-missing-var-function\n\n// Everything resolves through CoreUI semantic variables, so light/dark theming\n// via [data-coreui-theme] works with no extra rules. The fallbacks keep the grid\n// legible when the CoreUI stylesheet is absent; `data-grid.standalone.css` fills\n// the rest in.\n\n// scss-docs-start data-grid-variables\n$data-grid-viewport-max-height: 30rem !default;\n$data-grid-header-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-header-shadow: inset 0 calc(-1 * var(--#{$prefix}border-width, 1px)) 0 var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-cell-selected-bg: rgba(var(--#{$prefix}primary-rgb, 50, 31, 219), .12) !default;\n$data-grid-cell-selected-border-color: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-cell-selected-border-width: 1px !default;\n$data-grid-row-handle-width: 2rem !default;\n$data-grid-select-cell-width: 2.5rem !default;\n$data-grid-sorter-margin: .25rem !default;\n$data-grid-sorter-opacity: .3 !default;\n$data-grid-spacing: .5rem !default;\n$data-grid-resizer-width: .625rem !default;\n$data-grid-resizer-grip-height: 60% !default;\n$data-grid-resizer-grip-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-resizer-grip-color-hover: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-pinned-border-width: var(--#{$prefix}border-width) !default;\n$data-grid-pinned-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-drop-indicator: var(--#{$prefix}primary, #321fdb) !default;\n$data-grid-drag-transition: .15s ease !default;\n$data-grid-menu-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-menu-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-menu-shadow: var(--#{$prefix}box-shadow, 0 .5rem 1rem rgba(0, 0, 0, .15)) !default;\n$data-grid-menu-min-width: 10rem !default;\n$data-grid-menu-item-hover-bg: var(--#{$prefix}tertiary-bg, #f8f9fa) !default;\n$data-grid-loading-bg: rgba(var(--#{$prefix}body-bg-rgb, 255, 255, 255), .6) !default;\n$data-grid-pinned-bg: var(--#{$prefix}body-bg, #fff) !default;\n$data-grid-focus-ring-width: 2px !default;\n$data-grid-focus-ring-color: var(--#{$prefix}primary, #321fdb) !default;\n// scss-docs-end data-grid-variables\n\n// Values that shape the grid but have no runtime knob. Sass-only on purpose:\n// a token here would be a new public custom property, which is a separate call.\n// scss-docs-start data-grid-layout-variables\n$data-grid-bar-min-height: 48px !default;\n$data-grid-border-width: var(--#{$prefix}border-width, 1px) !default;\n$data-grid-border-color: var(--#{$prefix}border-color, #dee2e6) !default;\n$data-grid-border-radius: var(--#{$prefix}border-radius, .375rem) !default;\n$data-grid-muted-color: var(--#{$prefix}secondary-color, #6c757d) !default;\n$data-grid-popup-max-width: 18rem !default;\n$data-grid-gap-sm: .25rem !default;\n$data-grid-tooltip-z-index: 1080 !default;\n// scss-docs-end data-grid-layout-variables\n\n$data-grid-tokens: () !default;\n\n// scss-docs-start data-grid-css-vars\n// stylelint-disable-next-line scss/dollar-variable-default\n$data-grid-tokens: defaults(\n (\n --#{$prefix}data-grid-viewport-max-height: #{$data-grid-viewport-max-height},\n --#{$prefix}data-grid-header-bg: #{$data-grid-header-bg},\n --#{$prefix}data-grid-header-shadow: #{$data-grid-header-shadow},\n --#{$prefix}data-grid-cell-selected-bg: #{$data-grid-cell-selected-bg},\n --#{$prefix}data-grid-cell-selected-border-color: #{$data-grid-cell-selected-border-color},\n --#{$prefix}data-grid-cell-selected-border-width: #{$data-grid-cell-selected-border-width},\n --#{$prefix}data-grid-row-handle-width: #{$data-grid-row-handle-width},\n --#{$prefix}data-grid-select-cell-width: #{$data-grid-select-cell-width},\n --#{$prefix}data-grid-sorter-margin: #{$data-grid-sorter-margin},\n --#{$prefix}data-grid-sorter-opacity: #{$data-grid-sorter-opacity},\n --#{$prefix}data-grid-spacing: #{$data-grid-spacing},\n --#{$prefix}data-grid-resizer-width: #{$data-grid-resizer-width},\n --#{$prefix}data-grid-resizer-grip-height: #{$data-grid-resizer-grip-height},\n --#{$prefix}data-grid-resizer-grip-color: #{$data-grid-resizer-grip-color},\n --#{$prefix}data-grid-resizer-grip-color-hover: #{$data-grid-resizer-grip-color-hover},\n --#{$prefix}data-grid-pinned-border-width: #{$data-grid-pinned-border-width},\n --#{$prefix}data-grid-pinned-border-color: #{$data-grid-pinned-border-color},\n --#{$prefix}data-grid-drop-indicator: #{$data-grid-drop-indicator},\n --#{$prefix}data-grid-drag-transition: #{$data-grid-drag-transition},\n --#{$prefix}data-grid-menu-bg: #{$data-grid-menu-bg},\n --#{$prefix}data-grid-menu-border-color: #{$data-grid-menu-border-color},\n --#{$prefix}data-grid-menu-shadow: #{$data-grid-menu-shadow},\n --#{$prefix}data-grid-menu-min-width: #{$data-grid-menu-min-width},\n --#{$prefix}data-grid-menu-item-hover-bg: #{$data-grid-menu-item-hover-bg},\n --#{$prefix}data-grid-loading-bg: #{$data-grid-loading-bg},\n --#{$prefix}data-grid-pinned-bg: #{$data-grid-pinned-bg},\n --#{$prefix}data-grid-focus-ring-width: #{$data-grid-focus-ring-width},\n --#{$prefix}data-grid-focus-ring-color: #{$data-grid-focus-ring-color},\n ),\n $data-grid-tokens\n);\n// scss-docs-end data-grid-css-vars\n\n.data-grid {\n // The column menu is positioned against the grid root (it must escape the\n // viewport's overflow while staying inside the token scope).\n position: relative;\n // A column so that a root given an explicit height actually constrains the\n // scroller: the viewport takes what the toolbar and pagination leave, and\n // min-height: 0 lets it shrink below its content instead of overflowing the\n // root. With no height set, this changes nothing — the viewport is sized by\n // its content up to the max-height token.\n display: flex;\n flex-direction: column;\n\n @include tokens($data-grid-tokens);\n\n .data-grid-toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .data-grid-toolbar-actions {\n display: flex;\n gap: $data-grid-gap-sm;\n align-items: center;\n }\n\n .data-grid-toolbar-search {\n margin-inline-start: auto;\n }\n\n .data-grid-viewport {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n max-height: var(--#{$prefix}data-grid-viewport-max-height);\n overflow-y: auto;\n // Windowed rendering resizes the spacer rows and recycles row elements on\n // every frame; browser scroll anchoring chases those mutations and keeps\n // adjusting scrollTop, which turns wheel scrolling into a feedback loop.\n overflow-anchor: none;\n }\n\n // Inline editing: the in-cell editor fills the cell; the popup layer hosts\n // rich editors (date pickers, selects) anchored over the cell.\n .data-grid-cell-editor {\n width: 100%;\n min-width: 4rem;\n }\n\n .data-grid-editor-popup {\n position: absolute;\n z-index: 4;\n padding: $data-grid-gap-sm;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n // cellNavigation: the roving-tabindex active cell. The ring is inset so the\n // sticky header and pinned columns don't clip it.\n [role=\"grid\"] :is(td, th):focus-visible {\n outline: var(--#{$prefix}data-grid-focus-ring-width) solid var(--#{$prefix}data-grid-focus-ring-color);\n outline-offset: calc(-1 * var(--#{$prefix}data-grid-focus-ring-width));\n }\n\n .data-grid-viewport:focus-visible {\n outline: 0;\n }\n\n .data-grid-header {\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: var(--#{$prefix}data-grid-header-bg);\n box-shadow: var(--#{$prefix}data-grid-header-shadow);\n }\n\n // Header label row: fixed 48px with vertically centered content (height on a\n // table cell acts as a min; min-height is ignored on table-cell).\n .data-grid-header tr:not(.data-grid-filter-row) > th {\n height: $data-grid-bar-min-height;\n vertical-align: middle;\n }\n\n .data-grid-filter-row > th {\n padding-top: 0;\n font-weight: normal;\n }\n\n .data-grid-header th[data-coreui-draggable] {\n cursor: grab;\n }\n\n .data-grid-header-cell {\n display: flex;\n align-items: center;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-header-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Icon-only ghost buttons: square them by matching horizontal padding to\n // vertical (follows .btn / .btn-sm automatically) and collapsing the text\n // line-height so height follows the icon, not a 1.5em text line.\n .btn-ghost {\n --#{$prefix}btn-padding-x: var(--#{$prefix}btn-padding-y);\n --#{$prefix}btn-line-height: 1;\n }\n\n .data-grid-menu-button {\n margin-inline-start: auto;\n }\n\n .data-grid-menu {\n position: absolute;\n z-index: 4;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n padding: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-menu-item {\n display: flex;\n align-items: center;\n gap: .5rem;\n width: 100%;\n padding: $data-grid-gap-sm .75rem;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n\n &:hover,\n &:focus-visible {\n background-color: var(--#{$prefix}data-grid-menu-item-hover-bg);\n }\n\n // Disabled items stay focusable (aria-disabled, APG menu pattern) so the\n // roving arrow cycle can reach them.\n &[aria-disabled=\"true\"] {\n color: $data-grid-muted-color;\n cursor: default;\n background: none;\n }\n }\n\n .data-grid-filter-menu {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n padding: .75rem;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n\n > div {\n display: flex;\n flex-direction: column;\n gap: .5rem;\n }\n }\n\n .data-grid-filter-menu-condition {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n }\n\n .data-grid-filter-menu-join {\n display: flex;\n gap: 1rem;\n\n label {\n display: flex;\n gap: .375rem;\n align-items: center;\n }\n }\n\n .data-grid-filter-menu-values {\n display: flex;\n flex-direction: column;\n gap: $data-grid-gap-sm;\n max-height: 14rem;\n overflow-y: auto;\n }\n\n .data-grid-filter-menu-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n }\n\n .data-grid-column-chooser {\n position: absolute;\n z-index: 4;\n display: flex;\n flex-direction: column;\n gap: .5rem;\n min-width: var(--#{$prefix}data-grid-menu-min-width);\n max-width: $data-grid-popup-max-width;\n max-height: 20rem;\n padding: .75rem;\n overflow-y: auto;\n background-color: var(--#{$prefix}data-grid-menu-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n border-radius: $data-grid-border-radius;\n box-shadow: var(--#{$prefix}data-grid-menu-shadow);\n }\n\n .data-grid-column-chooser-option {\n display: flex;\n gap: .375rem;\n align-items: center;\n margin-bottom: 0;\n }\n\n .data-grid-column-chooser-footer {\n display: flex;\n gap: .5rem;\n justify-content: flex-end;\n padding-top: $data-grid-gap-sm;\n margin-top: $data-grid-gap-sm;\n border-top: $data-grid-border-width solid var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-filter-button {\n position: relative;\n // Right-align the trailing controls as a group: the filter button takes the\n // auto margin (menu drops its own below) so filter and menu sit together at\n // the end, matching a menu-only header.\n margin-inline-start: auto;\n\n ~ .data-grid-menu-button {\n margin-inline-start: 0;\n }\n }\n\n // Active-filter indicator dot on the filter button.\n .data-grid-filter-button-filtered::after {\n position: absolute;\n inset-block-start: .125rem;\n inset-inline-end: .125rem;\n width: .375rem;\n height: .375rem;\n content: \"\";\n background-color: var(--#{$prefix}primary, #321fdb);\n border-radius: 50%;\n }\n\n .data-grid-menu-item-icon {\n display: inline-flex;\n opacity: .75;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n .data-grid-menu-divider {\n height: $data-grid-border-width;\n margin: $data-grid-gap-sm 0;\n background-color: var(--#{$prefix}data-grid-menu-border-color);\n }\n\n .data-grid-dragging {\n opacity: .5;\n }\n\n // While a drag is live the whole grid keeps the grabbing cursor and stops\n // painting a text selection under the pointer.\n &.data-grid-drag-active {\n cursor: grabbing;\n user-select: none;\n }\n\n // Both overlays are position: fixed (placed from viewport coordinates in JS)\n // so they escape the viewport's overflow, like the tooltip.\n .data-grid-drag-ghost {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $data-grid-tooltip-z-index;\n display: flex;\n align-items: center;\n max-width: 16rem;\n padding: 0 var(--#{$prefix}data-grid-cell-padding-x, .5rem);\n overflow: hidden;\n font-weight: 600;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n border: $data-grid-border-width solid var(--#{$prefix}data-grid-drop-indicator);\n border-radius: $data-grid-border-radius;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);\n transform: translate(-9999px, -9999px);\n opacity: .9;\n }\n\n // The settling ghost: on release it flies from the pointer to the slot the\n // item landed in (or back home on cancel) and fades out there.\n .data-grid-drag-ghost-settle {\n transition: transform var(--#{$prefix}data-grid-drag-transition), opacity var(--#{$prefix}data-grid-drag-transition);\n }\n\n .data-grid-drop-indicator {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n pointer-events: none;\n background-color: var(--#{$prefix}data-grid-drop-indicator);\n transition: top var(--#{$prefix}data-grid-drag-transition), left var(--#{$prefix}data-grid-drag-transition);\n }\n\n // The live reorder preview: cells slide to the layout the drop will produce.\n // Transform only, so nothing reflows and the real order still changes once.\n .data-grid-drag-preview {\n transition: transform var(--#{$prefix}data-grid-drag-transition);\n }\n\n // Someone who asked the OS to stop moving things still gets the preview —\n // it snaps to the final layout instead of gliding there.\n @media (prefers-reduced-motion: reduce) {\n :is(.data-grid-drop-indicator, .data-grid-drag-preview, .data-grid-drag-ghost-settle) {\n transition: none;\n }\n }\n\n // The line is 2px across its short axis and spans the grid along the other;\n // JS sets the spanning size, the axis class sets the thickness.\n .data-grid-drop-indicator-x {\n width: .125rem;\n }\n\n .data-grid-drop-indicator-y {\n height: .125rem;\n }\n\n // Cell selection: a tinted fill on every selected cell, plus an outline\n // drawn only on the sides that sit on the selection's boundary — so a\n // rectangle reads as one region instead of a grid of boxes. The outline is\n // an overlay rather than a border: a border on a table cell would shift the\n // whole row's layout the moment a range is selected.\n .data-grid-cell-selected {\n position: relative;\n background-color: var(--#{$prefix}data-grid-cell-selected-bg);\n }\n\n .data-grid-cell-selected::after {\n position: absolute;\n inset: 0;\n pointer-events: none;\n content: \"\";\n border: 0 solid var(--#{$prefix}data-grid-cell-selected-border-color);\n }\n\n .data-grid-cell-selected-top::after {\n border-top-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-right::after {\n border-right-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-bottom::after {\n border-bottom-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n .data-grid-cell-selected-left::after {\n border-left-width: var(--#{$prefix}data-grid-cell-selected-border-width);\n }\n\n // The reorder column: as narrow as the grip, and the grip itself is the only\n // thing that starts a row drag (a row is full of interactive content that a\n // whole-row handle would swallow).\n .data-grid-row-handle-cell {\n width: var(--#{$prefix}data-grid-row-handle-width);\n padding-inline: 0;\n text-align: center;\n }\n\n .data-grid-row-handle {\n display: inline-flex;\n color: $data-grid-resizer-grip-color-hover;\n cursor: grab;\n touch-action: none;\n }\n\n .data-grid-select-cell {\n width: var(--#{$prefix}data-grid-select-cell-width);\n text-align: center;\n }\n\n .data-grid-sort-button {\n display: inline-flex;\n align-items: center;\n gap: var(--#{$prefix}data-grid-sorter-margin);\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n user-select: none;\n background: none;\n border: 0;\n }\n\n .data-grid-sort-icon {\n display: inline-flex;\n font-size: .875em;\n opacity: 0;\n\n svg {\n width: 1em;\n height: 1em;\n }\n }\n\n // The active sort direction is always visible; the neutral (unsorted) icon is\n // hidden unless `sorterVisibility` opts it in (steadily via \"always\", or on\n // header hover/focus via \"hover\").\n .data-grid-sortable[aria-sort] .data-grid-sort-icon {\n opacity: 1;\n }\n\n &[data-coreui-sorter-visibility=\"always\"] .data-grid-sortable:not([aria-sort]) .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):hover .data-grid-sort-icon,\n &[data-coreui-sorter-visibility=\"hover\"] .data-grid-sortable:not([aria-sort]):focus-within .data-grid-sort-icon {\n opacity: var(--#{$prefix}data-grid-sorter-opacity);\n }\n\n .data-grid-viewport > .table {\n margin-bottom: 0;\n table-layout: fixed;\n }\n\n // Body cells render on a single line and truncate with an ellipsis instead of\n // spilling their content across the fixed-layout column boundary onto the next\n // column. Matches the default of AG Grid / MUI X Data Grid and TanStack's\n // virtualized-table guidance, and keeps every row a uniform height for the\n // fixed-height virtualizer (wrapping would desync `estimateSize`). Pinned cells\n // are excluded so their shadow pseudo-element (painted outside the box via a\n // translate) isn't clipped; the select cell holds only a checkbox.\n //\n // Auto row height is the deliberate exception: there the virtualizer measures\n // each row, so cells are free to wrap. Scoping the rule out is what keeps the\n // two modes from fighting over specificity.\n &:not(.data-grid-auto-row-height) .data-grid-viewport > .table > tbody > tr:not(.data-grid-empty) > td:not(.data-grid-select-cell):not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n // Widths applied to each header cell drive the column layout; letting the\n // table grow to its content (min-width keeps it filling a wide viewport)\n // turns a resize or a pin into horizontal scroll rather than squeezing\n // neighbours. Both features share this layout mode.\n &.data-grid-resizable,\n &.data-grid-pinned {\n .data-grid-viewport {\n overflow-x: auto;\n }\n\n .table {\n width: max-content;\n min-width: 100%;\n }\n }\n\n // A pinned th is already sticky (a positioned containing block for the\n // resizer), so only non-pinned header cells need explicit relative here.\n &.data-grid-resizable .data-grid-header th:not(.data-grid-cell-pinned-start):not(.data-grid-cell-pinned-end) {\n position: relative;\n }\n\n &.data-grid-pinned .table {\n // position: sticky is unreliable on collapsed-border tables; the grid opts\n // into separate borders so pinned cells stay put on horizontal scroll.\n border-collapse: separate;\n border-spacing: 0;\n }\n\n .data-grid-cell-pinned-start,\n .data-grid-cell-pinned-end {\n position: sticky;\n z-index: 1;\n background-color: var(--#{$prefix}data-grid-pinned-bg);\n }\n\n .data-grid-header .data-grid-cell-pinned-start,\n .data-grid-header .data-grid-cell-pinned-end {\n z-index: 3;\n }\n\n // Edge cells cast a shadow over the scrolling content. A pseudo-element is\n // used because the cell's own box-shadow carries the table striping accent.\n .data-grid-cell-pinned-start-last,\n .data-grid-cell-pinned-end-first {\n position: sticky;\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--#{$prefix}data-grid-pinned-border-width);\n pointer-events: none;\n content: \"\";\n }\n }\n\n .data-grid-cell-pinned-start-last::after {\n inset-inline-end: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-cell-pinned-end-first::after {\n inset-inline-start: 0;\n background: var(--#{$prefix}data-grid-pinned-border-color);\n }\n\n .data-grid-resizer {\n position: absolute;\n top: 0;\n inset-inline-end: calc(-.5 * var(--#{$prefix}data-grid-resizer-width));\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--#{$prefix}data-grid-resizer-width);\n height: 100%;\n cursor: col-resize;\n touch-action: none;\n user-select: none;\n\n // Always-visible grip so the resizable edge is discoverable, not just a\n // bare hover target.\n &::after {\n width: 2px;\n height: var(--#{$prefix}data-grid-resizer-grip-height);\n content: \"\";\n background-color: var(--#{$prefix}data-grid-resizer-grip-color);\n transition: background-color .15s ease;\n }\n\n &:hover::after,\n &.data-grid-resizer-active::after {\n background-color: var(--#{$prefix}data-grid-resizer-grip-color-hover);\n }\n }\n\n .data-grid-spacer > td {\n padding: 0;\n border: 0;\n }\n\n // Spacer rows break `nth-of-type` striping, so striping inside the grid is\n // driven by the absolute row index (.data-grid-row-odd) instead.\n .data-grid-viewport > .table-striped > tbody > tr:nth-of-type(odd) > * {\n --#{$prefix}table-color-type: initial;\n --#{$prefix}table-bg-type: initial;\n }\n\n .data-grid-viewport > .table-striped > tbody > tr.data-grid-row-odd > * {\n --#{$prefix}table-color-type: var(--#{$prefix}table-striped-color);\n --#{$prefix}table-bg-type: var(--#{$prefix}table-striped-bg);\n }\n\n // The last row closes on the viewport edge (or the pagination border), so it\n // doesn't need its own separator line.\n .data-grid-viewport > .table > tbody > tr:last-child > * {\n border-bottom-width: 0;\n }\n\n .data-grid-loading {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Infinite scroll's \"next page arriving\" strip. Sticky, not an overlay: the\n // rows already loaded stay readable while the grid appends to them.\n .data-grid-loading-more {\n position: sticky;\n inset-inline: 0;\n bottom: 0;\n z-index: 3;\n display: flex;\n justify-content: center;\n padding: var(--#{$prefix}data-grid-spacing);\n background-color: var(--#{$prefix}data-grid-loading-bg);\n }\n\n // Shared icon-button tooltip. position: fixed (set in JS) so it escapes the\n // viewport overflow; theme-inverted like CoreUI's own tooltip.\n .data-grid-tooltip {\n position: fixed;\n z-index: $data-grid-tooltip-z-index;\n max-width: 12rem;\n padding: $data-grid-gap-sm .5rem;\n font-size: .875rem;\n line-height: 1.4;\n color: var(--#{$prefix}body-bg, #fff);\n text-align: center;\n pointer-events: none;\n background-color: var(--#{$prefix}emphasis-color, #000);\n border-radius: $data-grid-border-radius;\n }\n\n .data-grid-empty > td {\n padding: 2rem 1rem;\n color: $data-grid-muted-color;\n text-align: center;\n }\n\n .data-grid-pagination {\n display: flex;\n // Wrap the page controls, count and page-size select onto multiple rows on\n // narrow viewports; without this the fixed row overflows and scrolls the page\n // instead of staying inside the grid.\n flex-wrap: wrap;\n gap: var(--#{$prefix}data-grid-spacing);\n align-items: center;\n min-height: $data-grid-bar-min-height;\n padding: var(--#{$prefix}data-grid-spacing);\n border-top: $data-grid-border-width solid $data-grid-border-color;\n\n &.data-grid-pagination-top {\n border-top: 0;\n border-bottom: $data-grid-border-width solid $data-grid-border-color;\n }\n\n .pagination {\n margin-bottom: 0;\n }\n\n .data-grid-pagination-info {\n margin-inline-start: auto;\n color: $data-grid-muted-color;\n }\n\n .form-select {\n width: auto;\n }\n }\n}\n\n// Print: the grid renders a plain, complete table into the document (see\n// util/print.ts) and hides everything else, so a virtualized grid prints all\n// its rows instead of the twenty in the window.\n@media print {\n .data-grid-print-root {\n position: absolute;\n inset: 0 0 auto;\n z-index: 2000;\n background-color: #fff;\n\n h1 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n\n :is(th, td) {\n padding: $data-grid-gap-sm .5rem;\n text-align: start;\n border: 1px solid #000;\n }\n\n thead {\n display: table-header-group;\n }\n\n tr {\n break-inside: avoid;\n }\n }\n\n // :has() is inside the browser floor (.browserslistrc), and scoping to the\n // body's own children keeps the clone's ancestors from being hidden.\n body:has(.data-grid-print-root) > :not(.data-grid-print-root) {\n display: none !important;\n }\n}\n","// Vendored from @coreui/coreui-pro (scss/mixins/_tokens.scss, v6 line).\n// Sync manually — do not diverge.\n\n// Output a token map as CSS custom properties\n\n// scss-docs-start mixin-tokens\n@mixin tokens($map) {\n @each $prop, $value in $map {\n #{$prop}: #{$value};\n }\n}\n// scss-docs-end mixin-tokens\n"]}