@conduction/nextcloud-vue 2.56.0-beta.65 → 2.56.0-beta.67

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 (153) hide show
  1. package/dist/esm/components/CnActionButtons/CnActionButtons.vue.js +1 -1
  2. package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js +4 -6
  3. package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
  4. package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
  5. package/dist/esm/components/CnActionDialog/CnActionDialog.vue.js +1 -1
  6. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js +3 -2
  7. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js.map +1 -1
  8. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js +4 -2
  9. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js.map +1 -1
  10. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue.js +1 -1
  11. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue2.js +3 -2
  12. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue2.js.map +1 -1
  13. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue3.js +2 -1
  14. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue3.js.map +1 -1
  15. package/dist/esm/components/CnBoardView/CnBoardView.vue.js +1 -1
  16. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +54 -5
  17. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
  18. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +16 -2
  19. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
  20. package/dist/esm/components/CnCardGrid/CnCardGrid.vue.js +1 -1
  21. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js +10 -0
  22. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js.map +1 -1
  23. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js +2 -1
  24. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js.map +1 -1
  25. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue.js +1 -1
  26. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +22 -2
  27. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
  28. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +17 -3
  29. package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
  30. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  31. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  32. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  33. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue.js +1 -1
  34. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
  35. package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
  36. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  37. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +18 -3
  38. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  39. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
  40. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  41. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +52 -13
  42. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  43. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +31 -3
  44. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  45. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  46. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +48 -11
  47. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  48. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +160 -97
  49. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  50. package/dist/esm/components/CnFormDialog/CnFormDialog.vue.js +1 -1
  51. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  52. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +2 -2
  53. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  54. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +222 -15
  55. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  56. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +24 -7
  57. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  58. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue.js +1 -1
  59. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue2.js +21 -1
  60. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue2.js.map +1 -1
  61. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue3.js.map +1 -1
  62. package/dist/esm/components/CnObjectCard/CnObjectCard.vue.js +1 -1
  63. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js +36 -2
  64. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js.map +1 -1
  65. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js +44 -5
  66. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js.map +1 -1
  67. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue.js +1 -0
  68. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue.js.map +1 -1
  69. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue2.js +22 -2
  70. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue2.js.map +1 -1
  71. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue3.js +36 -16
  72. package/dist/esm/components/CnPartyPicker/CnPartyPicker.vue3.js.map +1 -1
  73. package/dist/esm/components/CnReportsPage/CnReportsPage.vue.js +1 -1
  74. package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js +29 -12
  75. package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js.map +1 -1
  76. package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js +3 -1
  77. package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js.map +1 -1
  78. package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue.js +1 -1
  79. package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue2.js.map +1 -1
  80. package/dist/esm/components/CnSearchSelect/CnSearchSelect.vue3.js.map +1 -1
  81. package/dist/esm/composables/useRefLabels.js +26 -6
  82. package/dist/esm/composables/useRefLabels.js.map +1 -1
  83. package/dist/esm/integrations/registry.js +4 -0
  84. package/dist/esm/integrations/registry.js.map +1 -1
  85. package/dist/esm/l10n/en.json.js +3 -1
  86. package/dist/esm/l10n/en.json.js.map +1 -1
  87. package/dist/esm/l10n/nl.json.js +3 -1
  88. package/dist/esm/l10n/nl.json.js.map +1 -1
  89. package/dist/esm/library-style.js +1 -1
  90. package/dist/esm/nextcloud-vue.css +680 -449
  91. package/dist/esm/store/plugins/liveUpdates.js +3 -1
  92. package/dist/esm/store/plugins/liveUpdates.js.map +1 -1
  93. package/dist/esm/store/plugins/logs.js +2 -1
  94. package/dist/esm/store/plugins/logs.js.map +1 -1
  95. package/dist/esm/utils/actionLink.js +104 -1
  96. package/dist/esm/utils/actionLink.js.map +1 -1
  97. package/dist/esm/utils/detailActionModel.js +28 -1
  98. package/dist/esm/utils/detailActionModel.js.map +1 -1
  99. package/dist/esm/utils/fillTemplate.js +13 -5
  100. package/dist/esm/utils/fillTemplate.js.map +1 -1
  101. package/dist/esm/utils/headerFieldChips.js +21 -2
  102. package/dist/esm/utils/headerFieldChips.js.map +1 -1
  103. package/dist/esm/utils/mapList.js +26 -11
  104. package/dist/esm/utils/mapList.js.map +1 -1
  105. package/dist/esm/utils/savedViewMenu.js +12 -5
  106. package/dist/esm/utils/savedViewMenu.js.map +1 -1
  107. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  108. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  109. package/dist/nextcloud-vue.cjs.js +2800 -1933
  110. package/dist/nextcloud-vue.cjs.js.map +2 -2
  111. package/dist/nextcloud-vue.css +680 -449
  112. package/l10n/en.json +3 -1
  113. package/l10n/nl.json +3 -1
  114. package/package.json +1 -1
  115. package/src/components/CnActionButtons/CnActionButtons.vue +4 -6
  116. package/src/components/CnActionDialog/CnActionDialog.vue +32 -9
  117. package/src/components/CnAssignDialog/CnAssignDialog.vue +4 -2
  118. package/src/components/CnBoardView/CnBoardView.vue +58 -5
  119. package/src/components/CnCardGrid/CnCardGrid.md +1 -0
  120. package/src/components/CnCardGrid/CnCardGrid.vue +11 -0
  121. package/src/components/CnCellRenderer/CnCellRenderer.vue +27 -3
  122. package/src/components/CnChartWidget/CnChartWidget.vue +6 -0
  123. package/src/components/CnChoiceCards/CnChoiceCards.vue +0 -3
  124. package/src/components/CnDashboardPage/CnDashboardPage.vue +20 -5
  125. package/src/components/CnDetailPage/CnDetailPage.vue +62 -14
  126. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +100 -5
  127. package/src/components/CnFormDialog/CnFormDialog.vue +1 -1
  128. package/src/components/CnIndexPage/CnIndexPage.vue +233 -18
  129. package/src/components/CnNcDashboardList/CnNcDashboardList.vue +21 -1
  130. package/src/components/CnObjectCard/CnObjectCard.md +1 -0
  131. package/src/components/CnObjectCard/CnObjectCard.vue +51 -5
  132. package/src/components/CnPartyPicker/CnPartyPicker.vue +62 -16
  133. package/src/components/CnReportsPage/CnReportsPage.vue +31 -12
  134. package/src/components/CnSearchSelect/CnSearchSelect.vue +8 -0
  135. package/src/composables/useRefLabels.js +25 -5
  136. package/src/css/badge.css +15 -13
  137. package/src/css/board.css +0 -1
  138. package/src/css/dialog.css +53 -3
  139. package/src/css/index-page.css +26 -1
  140. package/src/css/look-board-detail.css +36 -15
  141. package/src/css/look-board-index.css +67 -15
  142. package/src/css/look-board.css +32 -18
  143. package/src/integrations/registry.js +4 -0
  144. package/src/schemas/app-manifest-v2.schema.json +61 -13
  145. package/src/store/plugins/liveUpdates.js +3 -1
  146. package/src/store/plugins/logs.js +2 -1
  147. package/src/utils/actionLink.js +103 -0
  148. package/src/utils/detailActionModel.js +27 -0
  149. package/src/utils/fillTemplate.js +13 -5
  150. package/src/utils/headerFieldChips.js +21 -2
  151. package/src/utils/mapList.js +26 -11
  152. package/src/utils/savedViewMenu.js +12 -5
  153. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -286,6 +286,16 @@
286
286
  height: 16px;
287
287
  }
288
288
 
289
+ /* ---- A single select -------------------------------------------------- */
290
+ /* NcSelect draws a single select as its search field with the clear and
291
+ open buttons laid over its end. A legacy vue-select rule that Nextcloud
292
+ still loads caps the field at the width less one clickable area, which
293
+ left those buttons outside the field's border (DqNieuweZaak "Zaaktype",
294
+ "Intakekanaal"). */
295
+ .cn-look-board .nc-select.v-select.select.vs--single .vs__selected-options {
296
+ max-width: none;
297
+ }
298
+
289
299
  /* ---- The header button ------------------------------------------------- */
290
300
  .cn-look-board .cn-index-page__header-buttons:not(.cn-look-nextcloud *),
291
301
  .cn-look-board .cn-detail-page__header-actions:not(.cn-look-nextcloud *),
@@ -410,11 +420,8 @@
410
420
  end of a tab strip) is the board's neutral control: the main background, a
411
421
  grey border, the main text at 600 (DqZaak), not Nextcloud's primary tint.
412
422
  NcActions marks a secondary menu `action-item--secondary` on its root and
413
- keeps a class given to it off, so the rule reads that marker. The label
414
- hands its ink to --nldesign-color-on-surface for a theme that forces the
415
- body ink onto every span (thematiq). */
423
+ keeps a class given to it off, so the rule reads that marker. */
416
424
  .cn-look-board .action-item.action-item--secondary .action-item__menutoggle.button-vue--secondary:not(.cn-look-nextcloud *) {
417
- --nldesign-color-on-surface: var(--color-main-text);
418
425
  border: 1px solid var(--cn-board-control-border);
419
426
  border-radius: var(--cn-board-control-radius);
420
427
  background: var(--color-main-background);
@@ -1221,14 +1228,6 @@
1221
1228
  color: var(--cn-status-badge-ink);
1222
1229
  }
1223
1230
 
1224
- /* A pill paints its own pairing of ink and fill. A theme that forces the body
1225
- ink onto every span (thematiq's text rule, `!important` at id level) reads
1226
- that ink from --nldesign-color-on-surface when the surface sets it, so the
1227
- pill hands it its own ink: "In behandeling" stays purple on purple. */
1228
- .cn-look-board .cn-status-badge:not(.cn-look-nextcloud *) {
1229
- --nldesign-color-on-surface: var(--cn-status-badge-ink);
1230
- }
1231
-
1232
1231
  /* ---- Info notes (NcNoteCard type="info") -------------------------------- */
1233
1232
  /* The board's info note is a light-blue rounded box: no edge bar, 12px 14px
1234
1233
  of padding, radius 8, an 18px icon 10px before the text, 14px text in the
@@ -1280,9 +1279,7 @@
1280
1279
  hairline under each pair (DqZaak "Zaakgegevens"), the horizontal layout as
1281
1280
  two columns of 14px text, the label column as wide as its longest label
1282
1281
  (the side cards). Both at the board's line height, 1.2, not Nextcloud's 1.5:
1283
- a pair is 47px tall on the board. The muted label also hands its ink to
1284
- --nldesign-color-on-surface, which a theme that forces the body ink onto
1285
- every div (thematiq) reads. */
1282
+ a pair is 47px tall on the board. */
1286
1283
  .cn-look-board .cn-detail-grid.cn-detail-grid--grid:not(.cn-look-nextcloud *) {
1287
1284
  gap: 12px 24px;
1288
1285
  font-size: 15px;
@@ -1313,7 +1310,6 @@
1313
1310
  }
1314
1311
 
1315
1312
  .cn-look-board .cn-detail-grid .cn-detail-grid__label:not(.cn-look-nextcloud *) {
1316
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
1317
1313
  min-width: 0;
1318
1314
  color: var(--color-text-maxcontrast);
1319
1315
  font-size: 13px;
@@ -1345,7 +1341,7 @@
1345
1341
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--nc-dashboard) .cn-widget-wrapper__title {
1346
1342
  font-size: var(--cn-board-heading-size, 17px);
1347
1343
  font-weight: 700;
1348
- line-height: 1.3;
1344
+ line-height: normal;
1349
1345
  }
1350
1346
 
1351
1347
  /* The board draws no rule under a dashboard card's title (DqMijnWerk,
@@ -1359,7 +1355,7 @@
1359
1355
  }
1360
1356
 
1361
1357
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--nc-dashboard):not(.cn-widget-wrapper--borderless) .cn-widget-wrapper__header {
1362
- padding: 20px var(--cn-board-dashboard-card-inset) 12px;
1358
+ padding: 20px var(--cn-board-dashboard-card-inset) calc(12px - var(--cn-board-first-line-leading, 0.15em));
1363
1359
  }
1364
1360
 
1365
1361
  /* ---- Record list on a dashboard card (PtDashboard) ---------------------- */
@@ -1554,6 +1550,24 @@
1554
1550
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-stats-block-widget--tiles-box {
1555
1551
  padding: 14px 22px 20px;
1556
1552
  }
1553
+
1554
+ /* ---- Matrix chart (DqProcesanalyse "Dagen per fase") -------------------- */
1555
+ /* The board sets the matrix at 14px and the font's normal line height: the
1556
+ column heads and the cell figures at 600, a cell 37px with its 10px
1557
+ padding. Nextcloud's 15px at 1.5 made each row 42.5px.
1558
+ @spec openspec/changes/board-matrix-cells/specs/board-matrix-cells/spec.md#requirement-a-board-matrix-takes-the-boards-type */
1559
+ .cn-look-board .cn-chart-widget__matrix:not(.cn-look-nextcloud *) {
1560
+ font-size: 14px;
1561
+ line-height: normal;
1562
+ }
1563
+
1564
+ .cn-look-board .cn-chart-widget__matrix:not(.cn-look-nextcloud *) .cn-chart-widget__matrix-head {
1565
+ font-weight: 600;
1566
+ }
1567
+
1568
+ .cn-look-board .cn-chart-widget__matrix:not(.cn-look-nextcloud *) .cn-chart-widget__matrix-cell:not(.cn-chart-widget__matrix-cell--current) {
1569
+ font-weight: 600;
1570
+ }
1557
1571
  /*
1558
1572
  * The board dialog (screens-dialog-parity, canon section 5).
1559
1573
  *
@@ -1576,7 +1590,7 @@
1576
1590
  --nldesign-component-dialog-border-radius: var(--cn-board-card-radius, 12px);
1577
1591
  --cn-dialog-width: 640px;
1578
1592
  --cn-dialog-danger: var(--color-error);
1579
- --cn-dialog-eyebrow-color: var(--color-primary-element-text, var(--color-main-text));
1593
+ --cn-dialog-eyebrow-color: var(--color-primary-element-light-text, var(--color-main-text));
1580
1594
  --cn-dialog-eyebrow-transform: none;
1581
1595
  --cn-dialog-eyebrow-tracking: 0;
1582
1596
  }
@@ -1642,6 +1656,7 @@
1642
1656
  }
1643
1657
 
1644
1658
  .cn-dialog-header__eyebrow {
1659
+ --nldesign-color-on-surface: var(--cn-dialog-eyebrow-color, var(--color-main-text));
1645
1660
  margin-bottom: 4px;
1646
1661
  font-size: 13px;
1647
1662
  font-weight: 700;
@@ -1657,13 +1672,24 @@
1657
1672
  color: var(--color-main-text);
1658
1673
  }
1659
1674
 
1675
+ /* The subtitle is a <p>, which the nldesign theme sizes and inks with
1676
+ `!important` through its paragraph tokens: the board's 14px muted line
1677
+ goes to those tokens too (DqOverdragen, DqDocumentGenereren). */
1660
1678
  .cn-dialog-header__subtitle {
1679
+ --nldesign-component-paragraph-font-size: 14px;
1680
+ --nldesign-component-paragraph-color: var(--color-text-maxcontrast);
1681
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
1661
1682
  margin: 4px 0 0;
1662
1683
  font-size: 14px;
1663
1684
  color: var(--color-text-maxcontrast);
1664
1685
  }
1665
1686
 
1666
- .cn-dialog-header__close {
1687
+ /* The close button is a 36px circle. NcButton sizes an icon-only button by
1688
+ --button-size with `!important`, so the size goes through that; the radius
1689
+ also goes to the nldesign theme's button radius token. */
1690
+ .cn-dialog-header .cn-dialog-header__close.button-vue {
1691
+ --button-size: 36px;
1692
+ --nldesign-component-button-border-radius: 50%;
1667
1693
  flex: 0 0 auto;
1668
1694
  width: 36px;
1669
1695
  min-width: 36px;
@@ -1703,6 +1729,28 @@
1703
1729
  border-radius: var(--cn-board-control-radius, 8px);
1704
1730
  }
1705
1731
 
1732
+ /* The footer buttons set 14px text, 16px in at both sides, and 18px when
1733
+ they carry an icon (DqOverdragen "Annuleren" and "Overdragen"). The padding
1734
+ goes through NcButton's --button-padding. The mask class and the doubled
1735
+ class outrank NcButton's text-only rule, `.button-vue[data-v-…]:has(…:empty)`
1736
+ (four classes, in a stylesheet a spawned dialog loads later), and the board
1737
+ look's general icon-and-label rule.
1738
+ @spec openspec/changes/board-dialog-controls/specs/board-dialog-controls/spec.md#requirement-a-board-dialog-draws-its-controls-as-the-boards-do */
1739
+ .modal-mask.cn-dialog-board .dialog__actions .button-vue.button-vue {
1740
+ --button-padding: 16px;
1741
+ font-size: 14px;
1742
+ }
1743
+
1744
+ .modal-mask.cn-dialog-board .dialog__actions .button-vue.button-vue:has(> .button-vue__wrapper > .button-vue__icon:not(:empty)):has(> .button-vue__wrapper > .button-vue__text:not(:empty)) {
1745
+ --button-padding: 18px;
1746
+ }
1747
+
1748
+ /* NcButton pads a text-only label 4px a side inside the button's own padding;
1749
+ the board's 16px is the whole inset. */
1750
+ .modal-mask.cn-dialog-board .dialog__actions .button-vue .button-vue__text.button-vue__text {
1751
+ padding-inline: 0;
1752
+ }
1753
+
1706
1754
  /* Cancel is an outlined secondary, never a text link. */
1707
1755
  .cn-dialog-board .dialog__actions .button-vue--vue-secondary,
1708
1756
  .cn-dialog-board .dialog__actions .button-vue--secondary {
@@ -1779,15 +1827,31 @@
1779
1827
  height: calc(var(--cn-field-height, 40px) + 2 * var(--border-width-input-focused, 2px));
1780
1828
  }
1781
1829
 
1830
+ /* The board draws the control's edge as a 1px border (DqOverdragen "Waarom de
1831
+ zaak verhuist", DqBesluit); NcInputField and NcTextArea draw it as a shadow.
1832
+ The colour is the one that meets WCAG's 3:1 for a control's edge, as the
1833
+ footer's secondary button. Focus keeps NcInputField's own ring, which
1834
+ carries `!important`. */
1782
1835
  .cn-dialog-board .dialog__content .input-field__input,
1783
1836
  .cn-dialog-board .dialog__content .input-field__input:hover:not([disabled]),
1784
1837
  .cn-dialog-board .dialog__content .textarea__input,
1785
1838
  .cn-dialog-board .dialog__content .textarea__input:hover:not([disabled]) {
1839
+ border: 1px solid var(--color-border-maxcontrast);
1786
1840
  border-radius: 8px;
1787
- box-shadow: 0 0 0 1px var(--color-border-dark);
1841
+ box-shadow: none;
1788
1842
  font-size: var(--cn-field-text-size, 15px);
1789
1843
  }
1790
1844
 
1845
+ /* A plain input an app puts in a board dialog (a date, a number) is the same
1846
+ 40px control; Nextcloud's core stylesheet makes it 34px. */
1847
+ .cn-dialog-board .dialog__content input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=color]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not(.input-field__input) {
1848
+ box-sizing: border-box;
1849
+ height: var(--cn-field-height, 40px);
1850
+ min-height: var(--cn-field-height, 40px);
1851
+ border: 1px solid var(--color-border-maxcontrast);
1852
+ border-radius: 8px;
1853
+ }
1854
+
1791
1855
  .cn-dialog-board .dialog__content .input-field:has(.input-field__label) .input-field__input:not(:focus)::placeholder,
1792
1856
  .cn-dialog-board .dialog__content .textarea__input:not(:focus)::placeholder {
1793
1857
  opacity: 1 !important;
@@ -2144,7 +2208,6 @@
2144
2208
  margin-inline-start: auto;
2145
2209
  padding: 1px 8px;
2146
2210
  border-radius: 10px;
2147
- --nldesign-color-on-surface: var(--cn-board-text-soft, var(--color-main-text));
2148
2211
  background-color: var(--color-main-background);
2149
2212
  color: var(--cn-board-text-soft, var(--color-main-text));
2150
2213
  font-size: 12px;
@@ -2667,15 +2730,11 @@
2667
2730
  outline-offset: 2px;
2668
2731
  }
2669
2732
 
2670
- /* The selected chip is light on dark, so it hands its ink to
2671
- --nldesign-color-on-surface: thematiq forces the body ink onto every span
2672
- with `!important` and reads it from that property, which left the label
2673
- dark on dark. */
2733
+ /* The selected chip is light on dark. */
2674
2734
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected,
2675
2735
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected:hover,
2676
2736
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active,
2677
2737
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active:hover {
2678
- --nldesign-color-on-surface: var(--color-main-background);
2679
2738
  border-color: transparent;
2680
2739
  background: var(--color-main-text);
2681
2740
  color: var(--color-main-background);
@@ -2688,7 +2747,6 @@
2688
2747
  padding: 1px 7px;
2689
2748
  border: 0;
2690
2749
  border-radius: 10px;
2691
- --nldesign-color-on-surface: var(--cn-board-text-soft);
2692
2750
  background: var(--color-border);
2693
2751
  color: var(--cn-board-text-soft);
2694
2752
  font-size: 12px;
@@ -2702,14 +2760,15 @@
2702
2760
  /* On the selected chip the count is the soft ink as a lighter bubble on the
2703
2761
  dark chip (DqZaken: #3d4047 on #1b1c1d). */
2704
2762
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active .cn-quick-filter-bar__count {
2705
- --nldesign-color-on-surface: var(--color-primary-element-text);
2706
2763
  background: var(--cn-board-text-soft);
2707
2764
  color: var(--color-primary-element-text);
2708
2765
  }
2709
2766
 
2710
2767
  /* Save view: a ghost button, 34px, radius 17, no border, on the light primary
2711
- tint, a 14px icon 6px before the label, on one line. */
2768
+ tint, a 14px icon 6px before the label, on one line. The label is a span,
2769
+ so its ink also goes to --nldesign-color-on-surface. */
2712
2770
  .cn-look-board .cn-saved-views__save .button-vue {
2771
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
2713
2772
  min-height: 34px;
2714
2773
  height: 34px;
2715
2774
  padding: 0 12px;
@@ -2750,6 +2809,7 @@
2750
2809
  @spec openspec/changes/board-toolbar-buttons-theme/specs/board-toolbar-buttons-theme/spec.md#requirement-board-toolbar-buttons-are-neutral-under-a-theme */
2751
2810
  .cn-look-board .cn-actions-bar:not(.cn-look-nextcloud *) {
2752
2811
  --nldesign-component-button-font-weight: 600;
2812
+ --nldesign-component-button-color: var(--color-main-text);
2753
2813
  --nldesign-component-button-secondary-action-color: var(--color-main-text);
2754
2814
  --nldesign-component-button-secondary-action-background-color: var(--color-main-background);
2755
2815
  --nldesign-component-button-secondary-action-border-color: var(--cn-board-control-border);
@@ -2779,8 +2839,6 @@
2779
2839
  margin-inline-start: 6px;
2780
2840
  padding: 0 6px;
2781
2841
  border-radius: 10px;
2782
- /* A theme that forces the body ink onto every span reads it from here. */
2783
- --nldesign-color-on-surface: var(--color-primary-element-text);
2784
2842
  background: var(--color-primary-element);
2785
2843
  color: var(--color-primary-element-text);
2786
2844
  font-size: 12px;
@@ -2899,7 +2957,10 @@
2899
2957
  font-size: 14px;
2900
2958
  }
2901
2959
 
2960
+ /* An active filter: the light primary tint, its label (a span) in the tint's
2961
+ ink through --nldesign-color-on-surface too. */
2902
2962
  .cn-look-board .cn-actions-bar--board .cn-actions-bar__filter-chip {
2963
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
2903
2964
  display: inline-flex;
2904
2965
  align-items: center;
2905
2966
  gap: 6px;
@@ -3007,15 +3068,13 @@
3007
3068
  }
3008
3069
 
3009
3070
  /* The header row is near-white on the boards (#fafbfc), not the hover grey,
3010
- its labels 14px muted. The ink also goes to --nldesign-color-on-surface,
3011
- which a theme that forces the body ink onto every span (thematiq) reads.
3071
+ its labels 14px muted.
3012
3072
  The nldesign theme paints every `th` with `!important` through its table
3013
3073
  header tokens, and the sort button in it through its button weight token
3014
3074
  (bold), so the cell hands the board's ground, ink and weight to those
3015
3075
  tokens too.
3016
3076
  @spec openspec/changes/board-table-head-theme/specs/board-table-head-theme/spec.md#requirement-a-board-table-header-keeps-the-boards-ground-ink-and-weight-under-a-theme */
3017
3077
  .cn-look-board .cn-table-container--board .cn-data-table th {
3018
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
3019
3078
  --nldesign-component-table-header-background-color: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
3020
3079
  --nldesign-component-table-header-color: var(--color-text-maxcontrast);
3021
3080
  --nldesign-component-table-header-font-weight: 600;
@@ -3043,9 +3102,13 @@
3043
3102
  line-height: normal;
3044
3103
  }
3045
3104
 
3105
+ /* The sort button is the bare label, square (the boards draw no box round
3106
+ it); the funnel after it is a 22px button with a 4px radius. Both outrank
3107
+ the 8px element radius the table and Nextcloud's `button` rule give them. */
3046
3108
  .cn-look-board .cn-table-container--board .cn-data-table th .cn-table-header__sort {
3047
3109
  min-height: 0;
3048
3110
  height: auto;
3111
+ border-radius: 0;
3049
3112
  line-height: inherit;
3050
3113
  }
3051
3114
 
@@ -3101,6 +3164,7 @@
3101
3164
  min-width: 22px;
3102
3165
  height: 22px;
3103
3166
  min-height: 22px;
3167
+ border-radius: 4px;
3104
3168
  margin-inline-start: 4px;
3105
3169
  }
3106
3170
 
@@ -3144,7 +3208,6 @@
3144
3208
  }
3145
3209
 
3146
3210
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-table-cell__secondary {
3147
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
3148
3211
  color: var(--color-text-maxcontrast);
3149
3212
  font-size: 14px;
3150
3213
  font-weight: 400;
@@ -3189,7 +3252,6 @@
3189
3252
  /* The initials sit on the light primary tint in the primary ink, the board's
3190
3253
  person chip (DqZaken's Behandelaar, and most boards' people). */
3191
3254
  .cn-look-board .cn-table-container--board .cn-data-table .cn-cell-renderer__avatar-initials {
3192
- --nldesign-color-on-surface: var(--color-primary-element-light-text);
3193
3255
  background: var(--color-primary-element-light);
3194
3256
  color: var(--color-primary-element-light-text);
3195
3257
  font-size: 12px;
@@ -3309,6 +3371,8 @@
3309
3371
  margin-inline-start: auto;
3310
3372
  }
3311
3373
 
3374
+ /* A page link is a <button>: Nextcloud's `button` rule sets it bold, the
3375
+ boards set the links at the regular weight and only the current page at 600. */
3312
3376
  .cn-look-board .cn-pagination--board .cn-pagination__board-link {
3313
3377
  box-sizing: border-box;
3314
3378
  min-width: 34px;
@@ -3321,6 +3385,7 @@
3321
3385
  background: var(--color-main-background);
3322
3386
  color: var(--color-main-text);
3323
3387
  font-size: 14px;
3388
+ font-weight: 400;
3324
3389
  cursor: pointer;
3325
3390
  }
3326
3391
 
@@ -3741,6 +3806,56 @@
3741
3806
  font-size: 20px;
3742
3807
  font-weight: 700;
3743
3808
  }
3809
+
3810
+ /* ---- Side panel cards --------------------------------------------------- */
3811
+ /* A card beside the list is the board's side card (DqTeamwachtrij "Team
3812
+ vandaag", "Werkvoorraad per zaaktype"): no rule under the header, the
3813
+ title a 15px muted label on the card's 20px 22px inset, 12px above the
3814
+ body, 20px between cards. The wrapper drew the Nextcloud panel: a 14px
3815
+ dark title on a 12px 16px header over a rule, 16px between cards. The
3816
+ tone carries `!important` against a theme that colours every h3.
3817
+ @spec openspec/changes/board-index-side-panel-cards/specs/board-index-side-panel-cards/spec.md#requirement-a-board-index-side-panel-card-is-the-boards-side-card */
3818
+ .cn-look-board .cn-index-page-widgets--side-panel:not(.cn-look-nextcloud *) {
3819
+ gap: var(--cn-board-section-gap, 20px);
3820
+ }
3821
+
3822
+ .cn-look-board .cn-index-page-widgets--side-panel:not(.cn-look-nextcloud *) .cn-widget-wrapper__header {
3823
+ border-bottom: none;
3824
+ padding: 20px 22px 0;
3825
+ }
3826
+
3827
+ .cn-look-board .cn-index-page-widgets--side-panel:not(.cn-look-nextcloud *) .cn-widget-wrapper__title {
3828
+ color: var(--color-text-maxcontrast) !important;
3829
+ font-size: var(--cn-board-side-heading-size, 15px);
3830
+ font-weight: 600;
3831
+ line-height: normal;
3832
+ }
3833
+
3834
+ .cn-look-board .cn-index-page-widgets--side-panel:not(.cn-look-nextcloud *) .cn-widget-wrapper__content {
3835
+ padding: calc(12px - var(--cn-board-first-line-leading, 0.15em)) 22px 20px;
3836
+ }
3837
+
3838
+ .cn-look-board .cn-index-page-widgets--side-panel:not(.cn-look-nextcloud *) .cn-index-page-widgets__note {
3839
+ font-size: 13px;
3840
+ }
3841
+
3842
+ /* A record list drawn as a table (DqTeamwachtrij "Werkvoorraad per
3843
+ zaaktype") is the board's compact grid: a 13px muted header at regular
3844
+ weight, rows 8px apart, no rules between them. Line heights differ from
3845
+ the board's normal ones, so the cell padding sets the board's row pitch.
3846
+ One class more than the component's scoped rules, which load later.
3847
+ @spec openspec/changes/board-index-side-panel-cards/specs/board-index-side-panel-cards/spec.md#requirement-a-board-record-list-table-is-the-boards-compact-grid */
3848
+ .cn-look-board .cn-record-list--table .cn-record-list__table th {
3849
+ border-bottom: none;
3850
+ font-size: 13px;
3851
+ font-weight: 400;
3852
+ padding-block: 0 2px;
3853
+ }
3854
+
3855
+ .cn-look-board .cn-record-list--table .cn-record-list__table td {
3856
+ border-bottom: none;
3857
+ padding-block: 2px;
3858
+ }
3744
3859
  /* ========================================
3745
3860
  @conduction/nextcloud-vue — Table Styles
3746
3861
  ======================================== */
@@ -5598,12 +5713,14 @@ a.cn-kpi-card--board * {
5598
5713
  ======================================== */
5599
5714
 
5600
5715
  /* The two board tones without a Nextcloud colour role (screens-cell-pill-parity).
5601
- A theme may redefine them; the six role variants below use Nextcloud's own. */
5716
+ A theme may redefine them, or name the NL Design System hue tint and pill
5717
+ text (`--nl-color-<hue>-light`, `--nl-color-<hue>-text`), which the tones
5718
+ and the four role variants below read first (status-badge-hue-tokens). */
5602
5719
  :root {
5603
- --cn-status-purple-bg: #e8e6f6;
5604
- --cn-status-purple-text: #4a3f8f;
5605
- --cn-status-teal-bg: #e3f1f3;
5606
- --cn-status-teal-text: #1d5e66;
5720
+ --cn-status-purple-bg: var(--nl-color-purple-light, #e8e6f6);
5721
+ --cn-status-purple-text: var(--nl-color-purple-text, #4a3f8f);
5722
+ --cn-status-teal-bg: var(--nl-color-teal-light, #e3f1f3);
5723
+ --cn-status-teal-text: var(--nl-color-teal-text, #1d5e66);
5607
5724
  }
5608
5725
 
5609
5726
  .cn-status-badge {
@@ -5638,26 +5755,26 @@ a.cn-kpi-card--board * {
5638
5755
  }
5639
5756
 
5640
5757
  .cn-status-badge--success {
5641
- --cn-status-badge-ink: var(--color-success-text, var(--color-success));
5642
- background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
5758
+ --cn-status-badge-ink: var(--nl-color-green-text, var(--color-success-text, var(--color-success)));
5759
+ background-color: var(--nl-color-green-light, var(--color-success-light, rgba(70, 186, 97, 0.15)));
5643
5760
  color: var(--cn-status-badge-ink);
5644
5761
  }
5645
5762
 
5646
5763
  .cn-status-badge--warning {
5647
- --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
5648
- background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
5764
+ --cn-status-badge-ink: var(--nl-color-orange-text, var(--color-warning-text, var(--color-warning)));
5765
+ background-color: var(--nl-color-orange-light, var(--color-warning-light, rgba(232, 163, 39, 0.15)));
5649
5766
  color: var(--cn-status-badge-ink);
5650
5767
  }
5651
5768
 
5652
5769
  .cn-status-badge--error {
5653
- --cn-status-badge-ink: var(--color-error-text, var(--color-error));
5654
- background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
5770
+ --cn-status-badge-ink: var(--nl-color-red-text, var(--color-error-text, var(--color-error)));
5771
+ background-color: var(--nl-color-red-light, var(--color-error-light, rgba(224, 68, 68, 0.15)));
5655
5772
  color: var(--cn-status-badge-ink);
5656
5773
  }
5657
5774
 
5658
5775
  .cn-status-badge--info {
5659
- --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
5660
- background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
5776
+ --cn-status-badge-ink: var(--nl-color-blue-text, var(--color-info-text, var(--color-info, #0082c9)));
5777
+ background-color: var(--nl-color-blue-light, var(--color-info-light, rgba(0, 130, 201, 0.15)));
5661
5778
  color: var(--cn-status-badge-ink);
5662
5779
  }
5663
5780
 
@@ -6473,11 +6590,17 @@ a.cn-kpi-card--board * {
6473
6590
  overflow-y: auto;
6474
6591
  }
6475
6592
 
6593
+ /* The list scrolls inside the side column and the card for the rows without
6594
+ a place stays under it, as the board draws it (DqZakenKaart). Scrolling the
6595
+ column as a whole pushed that card below a page's worth of rows. */
6476
6596
  .cn-index-page__map-list {
6477
6597
  display: flex;
6598
+ flex: 0 1 auto;
6478
6599
  flex-direction: column;
6600
+ min-height: 0;
6479
6601
  margin: 0;
6480
6602
  padding: 0;
6603
+ overflow-y: auto;
6481
6604
  border: 1px solid var(--color-border);
6482
6605
  border-radius: 10px;
6483
6606
  list-style: none;
@@ -6485,6 +6608,7 @@ a.cn-kpi-card--board * {
6485
6608
 
6486
6609
  .cn-index-page__map-item {
6487
6610
  display: flex;
6611
+ flex: none;
6488
6612
  gap: 12px;
6489
6613
  padding: 12px 14px;
6490
6614
  }
@@ -6523,11 +6647,22 @@ a.cn-kpi-card--board * {
6523
6647
  min-width: 0;
6524
6648
  }
6525
6649
 
6526
- .cn-index-page__map-title {
6650
+ /* The title is a button for the keyboard but reads as the row's title text.
6651
+ Nextcloud styles every `button:not(.button-vue, ...)` (specificity 0,2,1)
6652
+ as a 34px tinted pill with a 3px margin, which outranked a single class and
6653
+ turned each title into a blue block (DqZakenKaart rows 111px against 89).
6654
+ Three classes outrank it, and the box properties it sets are reset.
6655
+ @spec openspec/changes/map-list-title-button/specs/map-list-title-button/spec.md#requirement-a-map-list-title-reads-as-text-not-as-a-button */
6656
+ .cn-index-page__map-list .cn-index-page__map-item .cn-index-page__map-title {
6657
+ width: auto;
6658
+ height: auto;
6659
+ min-height: 0;
6527
6660
  margin: 0;
6528
6661
  padding: 0;
6529
6662
  border: 0;
6663
+ border-radius: 0;
6530
6664
  background: none;
6665
+ box-shadow: none;
6531
6666
  color: var(--color-main-text);
6532
6667
  font: inherit;
6533
6668
  font-size: 15px;
@@ -6537,6 +6672,12 @@ a.cn-kpi-card--board * {
6537
6672
  cursor: pointer;
6538
6673
  }
6539
6674
 
6675
+ .cn-index-page__map-list .cn-index-page__map-item .cn-index-page__map-title:hover,
6676
+ .cn-index-page__map-list .cn-index-page__map-item .cn-index-page__map-title:focus {
6677
+ background: none;
6678
+ color: var(--color-main-text);
6679
+ }
6680
+
6540
6681
  .cn-index-page__map-sub,
6541
6682
  .cn-index-page__map-due {
6542
6683
  color: var(--color-text-maxcontrast);
@@ -6552,6 +6693,7 @@ a.cn-kpi-card--board * {
6552
6693
 
6553
6694
  .cn-index-page__map-missing {
6554
6695
  display: flex;
6696
+ flex: none;
6555
6697
  flex-direction: column;
6556
6698
  align-items: flex-start;
6557
6699
  gap: 8px;
@@ -7997,6 +8139,12 @@ a.cn-kpi-card--board * {
7997
8139
  /* Card h2 and side heading. */
7998
8140
  --cn-board-heading-size: 17px;
7999
8141
  --cn-board-side-heading-size: 15px;
8142
+ /* The boards set text at the font's normal line height (1.2 for Fira
8143
+ Sans), Nextcloud at 1.5: a card body's first line carries this much
8144
+ half-leading above its glyphs that a board does not draw. A gap the
8145
+ boards measure from a title to the text under it is the board's value
8146
+ minus this. Resolved in the element that uses it. */
8147
+ --cn-board-first-line-leading: 0.15em;
8000
8148
  }
8001
8149
 
8002
8150
  /* ---- The header: two rows on the ground ------------------------------- */
@@ -8189,24 +8337,27 @@ a.cn-kpi-card--board * {
8189
8337
  widget's 4px pad is room for the 32px circles, which the bars variant does
8190
8338
  not draw), the label 8px under its bar and the date 8px under the label at
8191
8339
  the normal line height, open steps muted and the done and current ones in
8192
- the main text. Each hands its ink to --nldesign-color-on-surface, which a
8193
- theme that forces the body ink onto every span (thematiq) reads instead. */
8340
+ the main text. Each sets its ink as `color`, and also hands it to
8341
+ --nldesign-color-on-surface for a theme that still forces the body ink. */
8194
8342
  .cn-look-board .cn-stages-widget:has(> .cn-stages-widget__bars):not(.cn-look-nextcloud *) {
8195
8343
  padding: 0;
8196
8344
  }
8197
8345
 
8198
8346
  .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
8199
8347
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
8348
+ color: var(--color-text-maxcontrast);
8200
8349
  line-height: normal;
8201
8350
  }
8202
8351
 
8203
8352
  .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--done .cn-stages-widget__bar-label:not(.cn-look-nextcloud *),
8204
8353
  .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--current .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
8205
8354
  --nldesign-color-on-surface: var(--color-main-text);
8355
+ color: var(--color-main-text);
8206
8356
  }
8207
8357
 
8208
8358
  .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-date:not(.cn-look-nextcloud *) {
8209
8359
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
8360
+ color: var(--color-text-maxcontrast);
8210
8361
  line-height: normal;
8211
8362
  }
8212
8363
 
@@ -8344,13 +8495,15 @@ a.cn-kpi-card--board * {
8344
8495
  The nldesign theme sets every button's weight and radius with `!important`
8345
8496
  through its button tokens, which drew every tab bold with four rounded
8346
8497
  corners; the tab hands the board's values to those tokens. A tab is 37px
8347
- with or without a count (DqZaak), not 34px without one.
8498
+ with or without a count (DqZaak), not 34px without one. Its outline is
8499
+ the widget card's border, so tab and card meet in one line.
8500
+ @spec openspec/changes/board-tabs-widget-border/specs/board-tabs-widget-border/spec.md#requirement-board-folder-tabs-draw-the-widget-card-border
8348
8501
  @spec openspec/changes/board-tabs-theme/specs/board-tabs-theme/spec.md#requirement-board-folder-tabs-keep-the-boards-weight-shape-and-height-under-a-theme */
8349
8502
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item {
8350
8503
  --nldesign-component-button-font-weight: 400;
8351
8504
  --nldesign-component-button-border-radius: 8px 8px 0 0;
8352
8505
  background-color: var(--color-background-dark);
8353
- border: 1px solid var(--color-border-dark);
8506
+ border: 1px solid var(--color-border);
8354
8507
  border-bottom: none;
8355
8508
  border-radius: 8px 8px 0 0;
8356
8509
  font-size: 14px;
@@ -8365,7 +8518,7 @@ a.cn-kpi-card--board * {
8365
8518
  --nldesign-component-button-font-weight: 700;
8366
8519
  background-color: var(--color-main-background);
8367
8520
  border-bottom: 1px solid var(--color-main-background);
8368
- border-top: 1px solid var(--color-border-dark);
8521
+ border-top: 1px solid var(--color-border);
8369
8522
  font-weight: 700;
8370
8523
  min-height: 38px;
8371
8524
  padding-bottom: 9px;
@@ -8476,15 +8629,17 @@ a.cn-kpi-card--board * {
8476
8629
  .cn-look-board .cn-detail-card .cn-detail-card__title {
8477
8630
  font-size: var(--cn-board-heading-size);
8478
8631
  font-weight: 700;
8479
- line-height: 1.3;
8632
+ line-height: normal;
8480
8633
  }
8481
8634
 
8635
+ /* 12px from the title's glyphs to the first line's glyphs, as drawn.
8636
+ @spec openspec/changes/board-card-title-gap/specs/board-card-title-gap/spec.md#requirement-a-board-cards-body-starts-the-boards-gap-below-its-title */
8482
8637
  .cn-look-board .cn-detail-page .cn-widget-wrapper__content {
8483
- padding: 12px 22px 20px;
8638
+ padding: calc(12px - var(--cn-board-first-line-leading)) 22px 20px;
8484
8639
  }
8485
8640
 
8486
8641
  .cn-look-board .cn-detail-card .cn-detail-card__content {
8487
- padding: 12px 22px 20px;
8642
+ padding: calc(12px - var(--cn-board-first-line-leading)) 22px 20px;
8488
8643
  }
8489
8644
 
8490
8645
  /* A header-less card keeps the full 20px 22px. */
@@ -8492,13 +8647,18 @@ a.cn-kpi-card--board * {
8492
8647
  padding: var(--cn-board-card-padding);
8493
8648
  }
8494
8649
 
8495
- /* The data card: 200px columns, a 12px 24px gap, label over value, hairline. */
8496
- .cn-look-board .cn-object-data-widget__grid {
8650
+ /* The data card: 200px columns, a 12px 24px gap, label over value, hairline.
8651
+ Each selector holds one class more than the component's scoped rule
8652
+ (`.cn-object-data-widget__cell[data-v-...]`), which loads after this sheet:
8653
+ at equal specificity the cell kept its 8px top padding and the grid its 8px
8654
+ gap, so the first label sat 8px further below the card's title.
8655
+ @spec openspec/changes/board-card-title-gap/specs/board-card-title-gap/spec.md#requirement-the-data-cards-grid-keeps-the-boards-gap-and-cell-padding */
8656
+ .cn-look-board .cn-object-data-widget__grid-wrap .cn-object-data-widget__grid {
8497
8657
  font-size: 15px;
8498
8658
  gap: 12px 24px;
8499
8659
  }
8500
8660
 
8501
- .cn-look-board .cn-object-data-widget__cell {
8661
+ .cn-look-board .cn-object-data-widget__grid .cn-object-data-widget__cell {
8502
8662
  border-bottom: 1px solid var(--cn-board-hairline);
8503
8663
  gap: 2px;
8504
8664
  padding: 0 0 10px;
@@ -8546,7 +8706,7 @@ a.cn-kpi-card--board * {
8546
8706
  }
8547
8707
 
8548
8708
  .cn-look-board .cn-detail-page__side .cn-widget-wrapper__content {
8549
- padding: 10px 22px 20px;
8709
+ padding: calc(10px - var(--cn-board-first-line-leading)) 22px 20px;
8550
8710
  }
8551
8711
 
8552
8712
  /* A stat tile in a side card (DqZaak "Termijn") sits on the card's inset as
@@ -8663,21 +8823,24 @@ a.cn-kpi-card--board * {
8663
8823
  font-size: 13px;
8664
8824
  }
8665
8825
 
8666
- /* Done and open steps are muted, the current one in the main text. Each hands
8667
- its ink to --nldesign-color-on-surface, which a theme that forces the body
8668
- ink onto every li and span (thematiq) reads instead. */
8826
+ /* Done and open steps are muted, the current one in the main text. Each sets
8827
+ its ink as `color`, and also hands it to --nldesign-color-on-surface for a
8828
+ theme that still forces the body ink. */
8669
8829
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__item,
8670
8830
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__hint,
8671
8831
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__after {
8672
8832
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
8833
+ color: var(--color-text-maxcontrast);
8673
8834
  }
8674
8835
 
8675
8836
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current {
8676
8837
  --nldesign-color-on-surface: var(--color-main-text);
8838
+ color: var(--color-main-text);
8677
8839
  }
8678
8840
 
8679
8841
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current .cn-next-step-card__hint {
8680
8842
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
8843
+ color: var(--color-text-maxcontrast);
8681
8844
  }
8682
8845
 
8683
8846
  /* ---- History: the activity tab ------------------------------------------ */
@@ -10539,7 +10702,7 @@ a.cn-kpi-card--board * {
10539
10702
  }
10540
10703
 
10541
10704
 
10542
- .cn-chart-widget[data-v-1c17a450] {
10705
+ .cn-chart-widget[data-v-784af9ea] {
10543
10706
  width: 100%;
10544
10707
  /* A chart FITS its container — it is never a scroll region. apexcharts
10545
10708
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -10561,13 +10724,13 @@ a.cn-kpi-card--board * {
10561
10724
  takes what is left, so the chart is sized by the box rather than sizing it.
10562
10725
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
10563
10726
  the thing that produces the overflow it was meant to prevent. */
10564
- .cn-chart-widget--fit[data-v-1c17a450] {
10727
+ .cn-chart-widget--fit[data-v-784af9ea] {
10565
10728
  height: 100%;
10566
10729
  min-height: 0;
10567
10730
  display: flex;
10568
10731
  flex-direction: column;
10569
10732
  }
10570
- .cn-chart-widget__canvas[data-v-1c17a450] {
10733
+ .cn-chart-widget__canvas[data-v-784af9ea] {
10571
10734
  min-width: 0;
10572
10735
  max-width: 100%;
10573
10736
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -10580,14 +10743,14 @@ a.cn-kpi-card--board * {
10580
10743
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
10581
10744
  minimum, which beats the container when the container is narrower. Cap the
10582
10745
  painted box so the inline width cannot push past the widget's border. */
10583
- .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas,
10584
- .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas svg {
10746
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-canvas,
10747
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-canvas svg {
10585
10748
  max-width: 100%;
10586
10749
  }
10587
10750
 
10588
10751
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
10589
10752
  descender space under the chart. */
10590
- .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas svg {
10753
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-canvas svg {
10591
10754
  display: block;
10592
10755
  }
10593
10756
 
@@ -10595,24 +10758,24 @@ a.cn-kpi-card--board * {
10595
10758
  would grow to its content, i.e. to the chart, and the percentage height would
10596
10759
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
10597
10760
  sub-pixel rounding difference from reintroducing a scrollbar. */
10598
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-1c17a450] {
10761
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-784af9ea] {
10599
10762
  flex: 1 1 0;
10600
10763
  min-height: 0;
10601
10764
  overflow: hidden;
10602
10765
  }
10603
- .cn-chart-widget__fallback[data-v-1c17a450] {
10766
+ .cn-chart-widget__fallback[data-v-784af9ea] {
10604
10767
  display: flex;
10605
10768
  align-items: center;
10606
10769
  justify-content: center;
10607
10770
  min-height: 150px;
10608
10771
  color: var(--color-text-maxcontrast);
10609
10772
  }
10610
- .cn-chart-widget__html[data-v-1c17a450] {
10773
+ .cn-chart-widget__html[data-v-784af9ea] {
10611
10774
  display: flex;
10612
10775
  flex-direction: column;
10613
10776
  gap: 12px;
10614
10777
  }
10615
- .cn-chart-widget__bar-list[data-v-1c17a450] {
10778
+ .cn-chart-widget__bar-list[data-v-784af9ea] {
10616
10779
  display: flex;
10617
10780
  flex-direction: column;
10618
10781
  gap: 10px;
@@ -10620,7 +10783,7 @@ a.cn-kpi-card--board * {
10620
10783
  margin: 0;
10621
10784
  padding: 0;
10622
10785
  }
10623
- .cn-chart-widget__bar-line[data-v-1c17a450] {
10786
+ .cn-chart-widget__bar-line[data-v-784af9ea] {
10624
10787
  align-items: center;
10625
10788
  background: none;
10626
10789
  border: 0;
@@ -10635,100 +10798,107 @@ a.cn-kpi-card--board * {
10635
10798
  text-align: start;
10636
10799
  width: 100%;
10637
10800
  }
10638
- .cn-chart-widget__bar-line--drill[data-v-1c17a450] {
10801
+ .cn-chart-widget__bar-line--drill[data-v-784af9ea] {
10639
10802
  border-radius: var(--border-radius-small, 4px);
10640
10803
  cursor: pointer;
10641
10804
  }
10642
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-1c17a450],
10643
- .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-1c17a450] {
10805
+ .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-784af9ea],
10806
+ .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-784af9ea] {
10644
10807
  text-decoration: underline;
10645
10808
  }
10646
- .cn-chart-widget__bar-label[data-v-1c17a450] {
10809
+ .cn-chart-widget__bar-label[data-v-784af9ea] {
10647
10810
  overflow: hidden;
10648
10811
  text-overflow: ellipsis;
10649
10812
  white-space: nowrap;
10650
10813
  }
10651
- .cn-chart-widget__bar-track[data-v-1c17a450] {
10814
+ .cn-chart-widget__bar-track[data-v-784af9ea] {
10652
10815
  background: var(--color-background-dark);
10653
10816
  border-radius: 4px;
10654
10817
  display: block;
10655
10818
  height: 14px;
10656
10819
  overflow: hidden;
10657
10820
  }
10658
- .cn-chart-widget__bar-fill[data-v-1c17a450] {
10821
+ .cn-chart-widget__bar-fill[data-v-784af9ea] {
10659
10822
  background: var(--color-primary-element);
10660
10823
  display: block;
10661
10824
  height: 100%;
10662
10825
  }
10663
- .cn-chart-widget__bar-value[data-v-1c17a450] {
10826
+ .cn-chart-widget__bar-value[data-v-784af9ea] {
10664
10827
  font-weight: 600;
10665
10828
  text-align: end;
10666
10829
  white-space: nowrap;
10667
10830
  }
10668
- .cn-chart-widget__footnote[data-v-1c17a450] {
10831
+ .cn-chart-widget__footnote[data-v-784af9ea] {
10669
10832
  color: var(--color-text-maxcontrast);
10670
10833
  margin: 0;
10671
10834
  }
10672
10835
 
10673
10836
  /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
10674
10837
  its own line height while the canvas takes the rest of a fitted column. */
10675
- .cn-chart-widget > .cn-chart-widget__footnote[data-v-1c17a450] {
10838
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-784af9ea] {
10676
10839
  flex: 0 0 auto;
10677
10840
  margin-top: 8px;
10678
10841
  }
10679
- .cn-chart-widget__matrix[data-v-1c17a450] {
10842
+ .cn-chart-widget__matrix[data-v-784af9ea] {
10680
10843
  display: grid;
10681
10844
  gap: 4px;
10682
10845
  }
10683
- .cn-chart-widget__matrix-row[data-v-1c17a450] {
10846
+ .cn-chart-widget__matrix-row[data-v-784af9ea] {
10684
10847
  display: contents;
10685
10848
  }
10686
- .cn-chart-widget__matrix-head[data-v-1c17a450] {
10849
+ .cn-chart-widget__matrix-head[data-v-784af9ea] {
10850
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
10687
10851
  color: var(--color-text-maxcontrast);
10688
10852
  padding: 6px;
10689
10853
  }
10690
- .cn-chart-widget__matrix-label[data-v-1c17a450] {
10854
+ .cn-chart-widget__matrix-label[data-v-784af9ea] {
10691
10855
  padding: 10px 6px;
10692
10856
  }
10693
- .cn-chart-widget__matrix-cell[data-v-1c17a450] {
10857
+ .cn-chart-widget__matrix-cell[data-v-784af9ea] {
10694
10858
  border-radius: 6px;
10695
10859
  padding: 10px;
10696
10860
  text-align: center;
10697
10861
  }
10698
- .cn-chart-widget__matrix-cell--success[data-v-1c17a450] {
10862
+ .cn-chart-widget__matrix-cell--success[data-v-784af9ea] {
10699
10863
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
10700
10864
  }
10701
- .cn-chart-widget__matrix-cell--warning[data-v-1c17a450] {
10865
+ .cn-chart-widget__matrix-cell--warning[data-v-784af9ea] {
10702
10866
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
10703
10867
  }
10704
- .cn-chart-widget__matrix-cell--error[data-v-1c17a450] {
10868
+ .cn-chart-widget__matrix-cell--error[data-v-784af9ea] {
10705
10869
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
10706
10870
  }
10707
- .cn-chart-widget__matrix-cell--danger[data-v-1c17a450] {
10871
+ .cn-chart-widget__matrix-cell--danger[data-v-784af9ea] {
10708
10872
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
10709
10873
  }
10710
- .cn-chart-widget__matrix-cell--current[data-v-1c17a450] {
10874
+ .cn-chart-widget__matrix-cell--current[data-v-784af9ea] {
10711
10875
  font-weight: 700;
10712
10876
  outline: 3px solid var(--color-primary-element);
10713
10877
  outline-offset: -3px;
10714
10878
  }
10715
- .cn-chart-widget__matrix-cell--1[data-v-1c17a450] {
10879
+
10880
+ /* A cell is a span: its ink also goes to --nldesign-color-on-surface, which a
10881
+ theme that forces the body ink onto every span (thematiq) reads. Level 3
10882
+ leaves the theme's body ink in place: white on its tint is below 4.5:1. */
10883
+ .cn-chart-widget__matrix-cell--1[data-v-784af9ea] {
10884
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
10716
10885
  background: var(--color-primary-element-light);
10717
10886
  color: var(--color-primary-element-light-text);
10718
10887
  }
10719
- .cn-chart-widget__matrix-cell--2[data-v-1c17a450] {
10888
+ .cn-chart-widget__matrix-cell--2[data-v-784af9ea] {
10720
10889
  background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
10721
10890
  color: var(--color-main-text);
10722
10891
  }
10723
- .cn-chart-widget__matrix-cell--3[data-v-1c17a450] {
10892
+ .cn-chart-widget__matrix-cell--3[data-v-784af9ea] {
10724
10893
  background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
10725
10894
  color: var(--color-primary-element-text);
10726
10895
  }
10727
- .cn-chart-widget__matrix-cell--4[data-v-1c17a450] {
10896
+ .cn-chart-widget__matrix-cell--4[data-v-784af9ea] {
10897
+ --nldesign-color-on-surface: var(--color-primary-element-text);
10728
10898
  background: var(--color-primary-element);
10729
10899
  color: var(--color-primary-element-text);
10730
10900
  }
10731
- .cn-chart-widget__empty[data-v-1c17a450] {
10901
+ .cn-chart-widget__empty[data-v-784af9ea] {
10732
10902
  display: flex;
10733
10903
  align-items: center;
10734
10904
  justify-content: center;
@@ -10743,25 +10913,25 @@ a.cn-kpi-card--board * {
10743
10913
  content-sized case; in fit mode they take the leftover space and centre in it
10744
10914
  instead, since the floor would overflow a short tile. Declared after the base
10745
10915
  rules so the cascade order matches specificity (no-descending-specificity). */
10746
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-1c17a450],
10747
- .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-1c17a450] {
10916
+ .cn-chart-widget--fit .cn-chart-widget__empty[data-v-784af9ea],
10917
+ .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-784af9ea] {
10748
10918
  flex: 1 1 0;
10749
10919
  min-height: 0;
10750
10920
  }
10751
- .cn-chart-widget__error[data-v-1c17a450] {
10921
+ .cn-chart-widget__error[data-v-784af9ea] {
10752
10922
  font-size: 14px;
10753
10923
  margin: 0;
10754
10924
  }
10755
10925
 
10756
10926
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
10757
10927
  mirroring the dashboard date-range pill styling. */
10758
- .cn-chart-widget__views[data-v-1c17a450] {
10928
+ .cn-chart-widget__views[data-v-784af9ea] {
10759
10929
  display: flex;
10760
10930
  gap: 4px;
10761
10931
  margin-bottom: 6px;
10762
10932
  justify-content: flex-end;
10763
10933
  }
10764
- .cn-chart-widget__view-pill[data-v-1c17a450] {
10934
+ .cn-chart-widget__view-pill[data-v-784af9ea] {
10765
10935
  padding: 2px 10px;
10766
10936
  border: 1px solid var(--color-border);
10767
10937
  border-radius: 999px;
@@ -10770,7 +10940,7 @@ a.cn-kpi-card--board * {
10770
10940
  font-size: 12px;
10771
10941
  cursor: pointer;
10772
10942
  }
10773
- .cn-chart-widget__view-pill--active[data-v-1c17a450] {
10943
+ .cn-chart-widget__view-pill--active[data-v-784af9ea] {
10774
10944
  background: var(--color-primary-element-light, #aad2ed);
10775
10945
  color: var(--color-main-text);
10776
10946
  border-color: var(--color-primary-element, #0082c9);
@@ -10799,8 +10969,8 @@ a.cn-kpi-card--board * {
10799
10969
  each override below therefore carries one more class than the apexcharts rule
10800
10970
  it replaces, and holds even without the scope attribute this block compiles
10801
10971
  with. */
10802
- .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-light,
10803
- .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-dark {
10972
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-tooltip.apexcharts-theme-light,
10973
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-tooltip.apexcharts-theme-dark {
10804
10974
  background: var(--color-main-background);
10805
10975
  border: 1px solid var(--color-border);
10806
10976
  color: var(--color-main-text);
@@ -10809,8 +10979,8 @@ a.cn-kpi-card--board * {
10809
10979
 
10810
10980
  /* The title row is the date/category header ("Aug 26"). Its own background is
10811
10981
  what made it unreadable rather than merely off-theme. */
10812
- .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10813
- .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10982
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10983
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10814
10984
  background: var(--color-background-hover);
10815
10985
  border-bottom: 1px solid var(--color-border);
10816
10986
  color: var(--color-main-text);
@@ -10819,8 +10989,8 @@ a.cn-kpi-card--board * {
10819
10989
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
10820
10990
  here and only overrides them for its dark theme, so the base rule has to be
10821
10991
  replaced too — not just the theme variants. */
10822
- .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip,
10823
- .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip {
10992
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-xaxistooltip,
10993
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-yaxistooltip {
10824
10994
  background: var(--color-main-background);
10825
10995
  border: 1px solid var(--color-border);
10826
10996
  color: var(--color-main-text);
@@ -10829,55 +10999,55 @@ a.cn-kpi-card--board * {
10829
10999
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
10830
11000
  edge, `::after` the fill. Both need the tokens the box above uses, or the
10831
11001
  arrow keeps the old palette and reads as a stray light wedge. */
10832
- .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-bottom::after,
10833
- .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-top::after {
11002
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-xaxistooltip-bottom::after,
11003
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-xaxistooltip-top::after {
10834
11004
  border-bottom-color: var(--color-main-background);
10835
11005
  border-top-color: var(--color-main-background);
10836
11006
  }
10837
- .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-bottom::before,
10838
- .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-top::before {
11007
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-xaxistooltip-bottom::before,
11008
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-xaxistooltip-top::before {
10839
11009
  border-bottom-color: var(--color-border);
10840
11010
  border-top-color: var(--color-border);
10841
11011
  }
10842
- .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-left::after,
10843
- .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-right::after {
11012
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-yaxistooltip-left::after,
11013
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-yaxistooltip-right::after {
10844
11014
  border-left-color: var(--color-main-background);
10845
11015
  border-right-color: var(--color-main-background);
10846
11016
  }
10847
- .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-left::before,
10848
- .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-right::before {
11017
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-yaxistooltip-left::before,
11018
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-yaxistooltip-right::before {
10849
11019
  border-left-color: var(--color-border);
10850
11020
  border-right-color: var(--color-border);
10851
11021
  }
10852
11022
 
10853
11023
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
10854
11024
  hardcoded `#fff` panel under inherited near-white text. */
10855
- .cn-chart-widget[data-v-1c17a450] .apexcharts-menu {
11025
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-menu {
10856
11026
  background: var(--color-main-background);
10857
11027
  border: 1px solid var(--color-border);
10858
11028
  color: var(--color-main-text);
10859
11029
  }
10860
- .cn-chart-widget[data-v-1c17a450] .apexcharts-menu .apexcharts-menu-item:hover {
11030
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-menu .apexcharts-menu-item:hover {
10861
11031
  background: var(--color-background-hover);
10862
11032
  }
10863
11033
 
10864
11034
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
10865
11035
  vanishes against a dark background. One selector per icon class, matching
10866
11036
  apexcharts' own list, to clear its (0,3,1) hover rules. */
10867
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-menu-icon svg,
10868
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-reset-icon svg,
10869
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-selection-icon svg,
10870
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10871
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10872
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
11037
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-menu-icon svg,
11038
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-reset-icon svg,
11039
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-selection-icon svg,
11040
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoom-icon svg,
11041
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
11042
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
10873
11043
  fill: var(--color-text-maxcontrast);
10874
11044
  }
10875
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10876
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10877
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10878
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10879
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10880
- .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
11045
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
11046
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
11047
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
11048
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
11049
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
11050
+ .cn-chart-widget[data-v-784af9ea] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
10881
11051
  fill: var(--color-main-text);
10882
11052
  }
10883
11053
 
@@ -12473,57 +12643,57 @@ svg.leaflet-image-layer.leaflet-interactive path {
12473
12643
  }
12474
12644
 
12475
12645
 
12476
- .cn-cell-renderer__actions[data-v-2d766cc2] {
12646
+ .cn-cell-renderer__actions[data-v-c1ba202c] {
12477
12647
  display: inline-flex;
12478
12648
  flex-wrap: wrap;
12479
12649
  gap: 8px;
12480
12650
  }
12481
- .cn-cell-renderer__icon-label[data-v-2d766cc2] {
12651
+ .cn-cell-renderer__icon-label[data-v-c1ba202c] {
12482
12652
  display: inline-flex;
12483
12653
  align-items: center;
12484
12654
  gap: 6px;
12485
12655
  font-weight: 600;
12486
12656
  }
12487
- .cn-cell-renderer__switch[data-v-2d766cc2] {
12657
+ .cn-cell-renderer__switch[data-v-c1ba202c] {
12488
12658
  display: inline-flex;
12489
12659
  }
12490
- .cn-cell-renderer__mono[data-v-2d766cc2] {
12660
+ .cn-cell-renderer__mono[data-v-c1ba202c] {
12491
12661
  font-family: monospace;
12492
12662
  font-size: 13px;
12493
12663
  color: var(--color-text-maxcontrast);
12494
12664
  }
12495
- .cn-cell-renderer--uuid[data-v-2d766cc2] {
12665
+ .cn-cell-renderer--uuid[data-v-c1ba202c] {
12496
12666
  font-family: monospace;
12497
12667
  font-size: 13px;
12498
12668
  color: var(--color-text-maxcontrast);
12499
12669
  }
12500
- .cn-cell-renderer--number[data-v-2d766cc2] {
12670
+ .cn-cell-renderer--number[data-v-c1ba202c] {
12501
12671
  font-variant-numeric: tabular-nums;
12502
12672
  }
12503
- .cn-cell-renderer--date[data-v-2d766cc2] {
12673
+ .cn-cell-renderer--date[data-v-c1ba202c] {
12504
12674
  white-space: nowrap;
12505
12675
  }
12506
- .cn-cell-renderer__dash[data-v-2d766cc2] {
12676
+ .cn-cell-renderer__dash[data-v-c1ba202c] {
12507
12677
  color: var(--color-text-maxcontrast);
12508
12678
  }
12509
- .cn-cell-renderer__avatar[data-v-2d766cc2] {
12679
+ .cn-cell-renderer__avatar[data-v-c1ba202c] {
12510
12680
  display: inline-flex;
12511
12681
  align-items: center;
12512
12682
  gap: 8px;
12513
12683
  max-width: 100%;
12514
12684
  vertical-align: middle;
12515
12685
  }
12516
- .cn-cell-renderer__avatar-picture[data-v-2d766cc2] {
12686
+ .cn-cell-renderer__avatar-picture[data-v-c1ba202c] {
12517
12687
  display: inline-flex;
12518
12688
  flex: none;
12519
12689
  }
12520
- .cn-cell-renderer__date-block[data-v-2d766cc2] {
12690
+ .cn-cell-renderer__date-block[data-v-c1ba202c] {
12521
12691
  display: inline-flex;
12522
12692
  align-items: center;
12523
12693
  gap: 12px;
12524
12694
  white-space: nowrap;
12525
12695
  }
12526
- .cn-cell-renderer__date-tile[data-v-2d766cc2] {
12696
+ .cn-cell-renderer__date-tile[data-v-c1ba202c] {
12527
12697
  display: flex;
12528
12698
  flex: 0 0 46px;
12529
12699
  flex-direction: column;
@@ -12533,26 +12703,26 @@ svg.leaflet-image-layer.leaflet-interactive path {
12533
12703
  border-radius: 8px;
12534
12704
  background-color: var(--color-background-dark);
12535
12705
  }
12536
- .cn-cell-renderer__date-day[data-v-2d766cc2] {
12706
+ .cn-cell-renderer__date-day[data-v-c1ba202c] {
12537
12707
  font-size: 17px;
12538
12708
  line-height: 1;
12539
12709
  }
12540
- .cn-cell-renderer__date-month[data-v-2d766cc2],
12541
- .cn-cell-renderer__date-time[data-v-2d766cc2] {
12710
+ .cn-cell-renderer__date-month[data-v-c1ba202c],
12711
+ .cn-cell-renderer__date-time[data-v-c1ba202c] {
12542
12712
  color: var(--color-text-maxcontrast);
12543
12713
  }
12544
- .cn-cell-renderer__date-month[data-v-2d766cc2] {
12714
+ .cn-cell-renderer__date-month[data-v-c1ba202c] {
12545
12715
  font-size: 12px;
12546
12716
  }
12547
- .cn-cell-renderer__date-lines[data-v-2d766cc2] {
12717
+ .cn-cell-renderer__date-lines[data-v-c1ba202c] {
12548
12718
  display: flex;
12549
12719
  flex-direction: column;
12550
12720
  gap: 2px;
12551
12721
  }
12552
- .cn-cell-renderer__date-weekday[data-v-2d766cc2] {
12722
+ .cn-cell-renderer__date-weekday[data-v-c1ba202c] {
12553
12723
  font-weight: 600;
12554
12724
  }
12555
- .cn-cell-renderer__avatar-initials[data-v-2d766cc2] {
12725
+ .cn-cell-renderer__avatar-initials[data-v-c1ba202c] {
12556
12726
  display: inline-flex;
12557
12727
  flex: none;
12558
12728
  align-items: center;
@@ -12564,12 +12734,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
12564
12734
  font-weight: 700;
12565
12735
  line-height: 1;
12566
12736
  }
12567
- .cn-cell-renderer__avatar-text[data-v-2d766cc2] {
12737
+ .cn-cell-renderer__avatar-text[data-v-c1ba202c] {
12568
12738
  display: flex;
12569
12739
  flex-direction: column;
12570
12740
  min-width: 0;
12571
12741
  }
12572
- .cn-cell-renderer__avatar-name[data-v-2d766cc2] {
12742
+ .cn-cell-renderer__avatar-name[data-v-c1ba202c] {
12573
12743
  min-width: 0;
12574
12744
  overflow: hidden;
12575
12745
  text-overflow: ellipsis;
@@ -12579,7 +12749,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
12579
12749
  font: inherit;
12580
12750
  color: inherit;
12581
12751
  }
12582
- .cn-cell-renderer__avatar-secondary[data-v-2d766cc2] {
12752
+ .cn-cell-renderer__avatar-secondary[data-v-c1ba202c] {
12583
12753
  min-width: 0;
12584
12754
  overflow: hidden;
12585
12755
  color: var(--color-text-maxcontrast);
@@ -12593,34 +12763,34 @@ svg.leaflet-image-layer.leaflet-interactive path {
12593
12763
 
12594
12764
  /* A date that matched a rule is also set in a heavier weight, so the signal
12595
12765
  does not rest on colour alone. */
12596
- .cn-cell-renderer__date--success[data-v-2d766cc2],
12597
- .cn-cell-renderer__date--warning[data-v-2d766cc2],
12598
- .cn-cell-renderer__date--error[data-v-2d766cc2],
12599
- .cn-cell-renderer__age--success[data-v-2d766cc2],
12600
- .cn-cell-renderer__age--warning[data-v-2d766cc2],
12601
- .cn-cell-renderer__age--error[data-v-2d766cc2] {
12766
+ .cn-cell-renderer__date--success[data-v-c1ba202c],
12767
+ .cn-cell-renderer__date--warning[data-v-c1ba202c],
12768
+ .cn-cell-renderer__date--error[data-v-c1ba202c],
12769
+ .cn-cell-renderer__age--success[data-v-c1ba202c],
12770
+ .cn-cell-renderer__age--warning[data-v-c1ba202c],
12771
+ .cn-cell-renderer__age--error[data-v-c1ba202c] {
12602
12772
  font-weight: 600;
12603
12773
  }
12604
- .cn-cell-renderer__age[data-v-2d766cc2] {
12774
+ .cn-cell-renderer__age[data-v-c1ba202c] {
12605
12775
  white-space: nowrap;
12606
12776
  }
12607
12777
 
12608
12778
  /* The progress cell (abstract-progress-cell): a 56 x 8 bar, the percentage
12609
12779
  8px beside it in the bar's tone, and an optional age badge after them, as
12610
12780
  PqLeads' Winkans column. The value is bold, so the tone is not the only signal. */
12611
- .cn-cell-renderer__progress[data-v-2d766cc2] {
12781
+ .cn-cell-renderer__progress[data-v-c1ba202c] {
12612
12782
  display: inline-flex;
12613
12783
  flex-wrap: wrap;
12614
12784
  align-items: center;
12615
12785
  gap: 4px 8px;
12616
12786
  }
12617
- .cn-cell-renderer__progress-line[data-v-2d766cc2] {
12787
+ .cn-cell-renderer__progress-line[data-v-c1ba202c] {
12618
12788
  display: inline-flex;
12619
12789
  align-items: center;
12620
12790
  gap: 8px;
12621
12791
  white-space: nowrap;
12622
12792
  }
12623
- .cn-cell-renderer__progress-bar[data-v-2d766cc2] {
12793
+ .cn-cell-renderer__progress-bar[data-v-c1ba202c] {
12624
12794
  display: inline-block;
12625
12795
  width: 56px;
12626
12796
  height: 8px;
@@ -12628,33 +12798,33 @@ svg.leaflet-image-layer.leaflet-interactive path {
12628
12798
  background: var(--color-background-dark);
12629
12799
  overflow: hidden;
12630
12800
  }
12631
- .cn-cell-renderer__progress-fill[data-v-2d766cc2] {
12801
+ .cn-cell-renderer__progress-fill[data-v-c1ba202c] {
12632
12802
  display: block;
12633
12803
  height: 100%;
12634
12804
  }
12635
- .cn-cell-renderer__progress-fill--success[data-v-2d766cc2] {
12805
+ .cn-cell-renderer__progress-fill--success[data-v-c1ba202c] {
12636
12806
  background: var(--color-element-success, var(--color-success));
12637
12807
  }
12638
- .cn-cell-renderer__progress-fill--warning[data-v-2d766cc2] {
12808
+ .cn-cell-renderer__progress-fill--warning[data-v-c1ba202c] {
12639
12809
  background: var(--color-element-warning, var(--color-warning));
12640
12810
  }
12641
- .cn-cell-renderer__progress-fill--error[data-v-2d766cc2] {
12811
+ .cn-cell-renderer__progress-fill--error[data-v-c1ba202c] {
12642
12812
  background: var(--color-element-error, var(--color-error));
12643
12813
  }
12644
- .cn-cell-renderer__progress-value[data-v-2d766cc2] {
12814
+ .cn-cell-renderer__progress-value[data-v-c1ba202c] {
12645
12815
  font-size: 14px;
12646
12816
  font-weight: 700;
12647
12817
  }
12648
- .cn-cell-renderer__progress-value--success[data-v-2d766cc2] {
12818
+ .cn-cell-renderer__progress-value--success[data-v-c1ba202c] {
12649
12819
  color: var(--color-text-success, var(--color-success-text));
12650
12820
  }
12651
- .cn-cell-renderer__progress-value--warning[data-v-2d766cc2] {
12821
+ .cn-cell-renderer__progress-value--warning[data-v-c1ba202c] {
12652
12822
  color: var(--color-text-warning, var(--color-warning-text));
12653
12823
  }
12654
- .cn-cell-renderer__progress-value--error[data-v-2d766cc2] {
12824
+ .cn-cell-renderer__progress-value--error[data-v-c1ba202c] {
12655
12825
  color: var(--color-text-error, var(--color-error-text));
12656
12826
  }
12657
- .cn-cell-renderer__progress-badge[data-v-2d766cc2] {
12827
+ .cn-cell-renderer__progress-badge[data-v-c1ba202c] {
12658
12828
  display: inline-block;
12659
12829
  padding: 3px 10px;
12660
12830
  border-radius: 12px;
@@ -12662,52 +12832,52 @@ svg.leaflet-image-layer.leaflet-interactive path {
12662
12832
  font-weight: 600;
12663
12833
  white-space: nowrap;
12664
12834
  }
12665
- .cn-cell-renderer__progress-badge--error[data-v-2d766cc2] {
12835
+ .cn-cell-renderer__progress-badge--error[data-v-c1ba202c] {
12666
12836
  color: var(--color-text-error, var(--color-error-text));
12667
12837
  background: var(--color-error-hover, var(--color-background-dark));
12668
12838
  background: color-mix(in srgb, var(--color-error) 12%, transparent);
12669
12839
  }
12670
- .cn-cell-renderer__progress-badge--warning[data-v-2d766cc2] {
12840
+ .cn-cell-renderer__progress-badge--warning[data-v-c1ba202c] {
12671
12841
  color: var(--color-text-warning, var(--color-warning-text));
12672
12842
  background: color-mix(in srgb, var(--color-warning) 14%, transparent);
12673
12843
  }
12674
- .cn-cell-renderer__progress-badge--success[data-v-2d766cc2] {
12844
+ .cn-cell-renderer__progress-badge--success[data-v-c1ba202c] {
12675
12845
  color: var(--color-text-success, var(--color-success-text));
12676
12846
  background: color-mix(in srgb, var(--color-success) 12%, transparent);
12677
12847
  }
12678
- .cn-cell-renderer__age--success[data-v-2d766cc2] {
12848
+ .cn-cell-renderer__age--success[data-v-c1ba202c] {
12679
12849
  color: var(--color-text-success, var(--color-success-text));
12680
12850
  }
12681
- .cn-cell-renderer__age--warning[data-v-2d766cc2] {
12851
+ .cn-cell-renderer__age--warning[data-v-c1ba202c] {
12682
12852
  color: var(--color-text-warning, var(--color-warning-text));
12683
12853
  }
12684
- .cn-cell-renderer__age--error[data-v-2d766cc2] {
12854
+ .cn-cell-renderer__age--error[data-v-c1ba202c] {
12685
12855
  color: var(--color-text-error, var(--color-error-text));
12686
12856
  }
12687
- .cn-cell-renderer__due--empty[data-v-2d766cc2] {
12857
+ .cn-cell-renderer__due--empty[data-v-c1ba202c] {
12688
12858
  color: var(--color-text-maxcontrast);
12689
12859
  }
12690
- .cn-cell-renderer__date--success[data-v-2d766cc2] {
12860
+ .cn-cell-renderer__date--success[data-v-c1ba202c] {
12691
12861
  color: var(--color-text-success, var(--color-success-text));
12692
12862
  }
12693
- .cn-cell-renderer__date--warning[data-v-2d766cc2] {
12863
+ .cn-cell-renderer__date--warning[data-v-c1ba202c] {
12694
12864
  color: var(--color-text-warning, var(--color-warning-text));
12695
12865
  }
12696
- .cn-cell-renderer__date--error[data-v-2d766cc2] {
12866
+ .cn-cell-renderer__date--error[data-v-c1ba202c] {
12697
12867
  color: var(--color-text-error, var(--color-error-text));
12698
12868
  }
12699
12869
 
12700
12870
  /* The text variant, not the fill: from Nextcloud 32 `--color-success` is a
12701
12871
  background colour and too pale for a 16px glyph on a light theme. */
12702
- .cn-cell-renderer__icon--success[data-v-2d766cc2] {
12872
+ .cn-cell-renderer__icon--success[data-v-c1ba202c] {
12703
12873
  color: var(--color-text-success, var(--color-success-text, var(--color-success)));
12704
12874
  }
12705
- .cn-cell-renderer__swatch-wrap[data-v-2d766cc2] {
12875
+ .cn-cell-renderer__swatch-wrap[data-v-c1ba202c] {
12706
12876
  display: inline-flex;
12707
12877
  align-items: center;
12708
12878
  gap: 8px;
12709
12879
  }
12710
- .cn-cell-renderer__swatch-dot[data-v-2d766cc2] {
12880
+ .cn-cell-renderer__swatch-dot[data-v-c1ba202c] {
12711
12881
  display: inline-block;
12712
12882
  width: 12px;
12713
12883
  height: 12px;
@@ -14062,29 +14232,37 @@ svg.leaflet-image-layer.leaflet-interactive path {
14062
14232
  }
14063
14233
 
14064
14234
 
14065
- .cn-search-select[data-v-6cd354af] {
14235
+ .cn-search-select[data-v-aaa45660] {
14066
14236
  position: relative;
14067
14237
  }
14068
14238
 
14239
+ /* The field takes the row: NcSelect is an inline block of at least 260px,
14240
+ which left the magnifier, placed at the row's end, outside the field
14241
+ (DqOverdragen "Nieuw team"). */
14242
+ .cn-search-select[data-v-aaa45660] .v-select {
14243
+ width: 100%;
14244
+ }
14245
+
14069
14246
  /* The magnifier sits where the chevron was: in the field, at its end. */
14070
- .cn-search-select__magnifier[data-v-6cd354af] {
14247
+ .cn-search-select__magnifier[data-v-aaa45660] {
14071
14248
  position: absolute;
14072
14249
  inset-inline-end: 12px;
14073
14250
  bottom: 0;
14074
14251
  height: var(--default-clickable-area, 34px);
14075
14252
  display: flex;
14076
14253
  align-items: center;
14254
+ z-index: 1;
14077
14255
  color: var(--color-text-maxcontrast);
14078
14256
  pointer-events: none;
14079
14257
  }
14080
- .cn-search-select[data-v-6cd354af] .vs__open-indicator,
14081
- .cn-search-select[data-v-6cd354af] .vs__open-indicator-button {
14258
+ .cn-search-select[data-v-aaa45660] .vs__open-indicator,
14259
+ .cn-search-select[data-v-aaa45660] .vs__open-indicator-button {
14082
14260
  display: none;
14083
14261
  }
14084
- .cn-search-select[data-v-6cd354af] .vs__actions {
14262
+ .cn-search-select[data-v-aaa45660] .vs__actions {
14085
14263
  padding-inline-end: 36px;
14086
14264
  }
14087
- .cn-search-select__row[data-v-6cd354af] {
14265
+ .cn-search-select__row[data-v-aaa45660] {
14088
14266
  display: flex;
14089
14267
  align-items: center;
14090
14268
  gap: 10px;
@@ -14092,7 +14270,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
14092
14270
  min-width: 0;
14093
14271
  padding: 4px 0;
14094
14272
  }
14095
- .cn-search-select__lead[data-v-6cd354af] {
14273
+ .cn-search-select__lead[data-v-aaa45660] {
14096
14274
  flex: 0 0 32px;
14097
14275
  width: 32px;
14098
14276
  height: 32px;
@@ -14105,22 +14283,22 @@ svg.leaflet-image-layer.leaflet-interactive path {
14105
14283
  font-size: 13px;
14106
14284
  font-weight: 600;
14107
14285
  }
14108
- .cn-search-select__text[data-v-6cd354af] {
14286
+ .cn-search-select__text[data-v-aaa45660] {
14109
14287
  display: flex;
14110
14288
  flex-direction: column;
14111
14289
  flex: 1 1 auto;
14112
14290
  min-width: 0;
14113
14291
  }
14114
- .cn-search-select__name[data-v-6cd354af] {
14292
+ .cn-search-select__name[data-v-aaa45660] {
14115
14293
  font-weight: 600;
14116
14294
  overflow-wrap: anywhere;
14117
14295
  }
14118
- .cn-search-select__secondary[data-v-6cd354af] {
14296
+ .cn-search-select__secondary[data-v-aaa45660] {
14119
14297
  font-size: 13px;
14120
14298
  color: var(--color-text-maxcontrast);
14121
14299
  overflow-wrap: anywhere;
14122
14300
  }
14123
- .cn-search-select__check[data-v-6cd354af] {
14301
+ .cn-search-select__check[data-v-aaa45660] {
14124
14302
  flex: 0 0 auto;
14125
14303
  color: var(--color-primary-element);
14126
14304
  }
@@ -22848,7 +23026,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22848
23026
 
22849
23027
 
22850
23028
  /* A select option breaks between words only, never inside one. */
22851
- .cn-form-dialog__option-swatch[data-v-699550cc] {
23029
+ .cn-form-dialog__option-swatch[data-v-5b0fdc60] {
22852
23030
  display: inline-block;
22853
23031
  width: 12px;
22854
23032
  height: 12px;
@@ -22857,10 +23035,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22857
23035
  vertical-align: middle;
22858
23036
  box-shadow: inset 0 0 0 1px var(--color-border);
22859
23037
  }
22860
- .cn-form-dialog__option-group[data-v-699550cc] {
23038
+ .cn-form-dialog__option-group[data-v-5b0fdc60] {
22861
23039
  color: var(--color-text-maxcontrast);
22862
23040
  }
22863
- .cn-form-dialog__warning[data-v-699550cc] {
23041
+ .cn-form-dialog__warning[data-v-5b0fdc60] {
22864
23042
  grid-column: 1 / -1;
22865
23043
  margin: 4px 0 0;
22866
23044
  padding: 6px 10px;
@@ -22868,22 +23046,22 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22868
23046
  background: var(--color-background-hover);
22869
23047
  color: var(--color-main-text);
22870
23048
  }
22871
- .cn-form-dialog__section-toggle[data-v-699550cc] {
23049
+ .cn-form-dialog__section-toggle[data-v-5b0fdc60] {
22872
23050
  all: unset;
22873
23051
  cursor: pointer;
22874
23052
  font: inherit;
22875
23053
  }
22876
- .cn-form-dialog__section-toggle[data-v-699550cc]::after {
23054
+ .cn-form-dialog__section-toggle[data-v-5b0fdc60]::after {
22877
23055
  content: ' ▾';
22878
23056
  }
22879
- .cn-form-dialog__section-toggle[aria-expanded='false'][data-v-699550cc]::after {
23057
+ .cn-form-dialog__section-toggle[aria-expanded='false'][data-v-5b0fdc60]::after {
22880
23058
  content: ' ▸';
22881
23059
  }
22882
- .cn-form-dialog__section-toggle[data-v-699550cc]:focus-visible {
23060
+ .cn-form-dialog__section-toggle[data-v-5b0fdc60]:focus-visible {
22883
23061
  outline: 2px solid var(--color-primary-element);
22884
23062
  outline-offset: 2px;
22885
23063
  }
22886
- .cn-form-dialog__option[data-v-699550cc] {
23064
+ .cn-form-dialog__option[data-v-5b0fdc60] {
22887
23065
  display: block;
22888
23066
  min-width: 0;
22889
23067
  white-space: normal;
@@ -22891,7 +23069,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22891
23069
  word-break: normal;
22892
23070
  hyphens: manual;
22893
23071
  }
22894
- .cn-form-dialog__draft-actions[data-v-699550cc] {
23072
+ .cn-form-dialog__draft-actions[data-v-5b0fdc60] {
22895
23073
  display: flex;
22896
23074
  gap: 8px;
22897
23075
  margin-top: 8px;
@@ -22899,22 +23077,22 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22899
23077
 
22900
23078
  /* The state is announced in WORDS, and the colour only repeats them. A
22901
23079
  reader who cannot see it still hears "Draft saved" (WCAG 2.2 SC 1.4.1). */
22902
- .cn-form-dialog__draft-state[data-v-699550cc] {
23080
+ .cn-form-dialog__draft-state[data-v-5b0fdc60] {
22903
23081
  align-self: center;
22904
23082
  color: var(--color-text-maxcontrast);
22905
23083
  font-size: 0.9em;
22906
23084
  margin-inline-end: auto;
22907
23085
  }
22908
- .cn-form-dialog__switch-wrapper[data-v-699550cc] {
23086
+ .cn-form-dialog__switch-wrapper[data-v-5b0fdc60] {
22909
23087
  display: flex;
22910
23088
  flex-direction: column;
22911
23089
  }
22912
- .cn-form-dialog__form[data-v-699550cc] {
23090
+ .cn-form-dialog__form[data-v-5b0fdc60] {
22913
23091
  display: flex;
22914
23092
  flex-direction: column;
22915
23093
  gap: 4px;
22916
23094
  }
22917
- .cn-form-dialog__field[data-v-699550cc] {
23095
+ .cn-form-dialog__field[data-v-5b0fdc60] {
22918
23096
  margin-bottom: 8px;
22919
23097
  }
22920
23098
 
@@ -22926,7 +23104,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22926
23104
  from pushing its column past its share: a grid item's default `auto`
22927
23105
  minimum is its content, so without it one long option label widens the
22928
23106
  whole column and the two stop being equal. */
22929
- .cn-form-dialog__section[data-v-699550cc] {
23107
+ .cn-form-dialog__section[data-v-5b0fdc60] {
22930
23108
  margin: 12px 0 0;
22931
23109
  padding-top: 12px;
22932
23110
  border-top: 1px solid var(--color-border);
@@ -22935,44 +23113,44 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22935
23113
  }
22936
23114
 
22937
23115
  /* The first heading opens the form: no rule above it. */
22938
- .cn-form-dialog__form .cn-form-dialog__section[data-v-699550cc]:first-of-type {
23116
+ .cn-form-dialog__form .cn-form-dialog__section[data-v-5b0fdc60]:first-of-type {
22939
23117
  margin-top: 0;
22940
23118
  padding-top: 0;
22941
23119
  border-top: 0;
22942
23120
  }
22943
- .cn-form-dialog__form--two-column[data-v-699550cc] {
23121
+ .cn-form-dialog__form--two-column[data-v-5b0fdc60] {
22944
23122
  display: grid;
22945
23123
  grid-template-columns: 1fr 1fr;
22946
23124
  column-gap: 16px;
22947
23125
  align-items: start;
22948
23126
  }
22949
- .cn-form-dialog__form--two-column[data-v-699550cc] > * {
23127
+ .cn-form-dialog__form--two-column[data-v-5b0fdc60] > * {
22950
23128
  min-width: 0;
22951
23129
  }
22952
23130
 
22953
23131
  /* Anything that is not a field (the form-level error note, the slots above
22954
23132
  and below the fields) spans the full width, so a note card never sits in
22955
23133
  a half-width column beside an input. */
22956
- .cn-form-dialog__form--two-column[data-v-699550cc] > :not(.cn-form-dialog__field),
22957
- .cn-form-dialog__form--two-column > .cn-form-dialog__field--wide[data-v-699550cc] {
23134
+ .cn-form-dialog__form--two-column[data-v-5b0fdc60] > :not(.cn-form-dialog__field),
23135
+ .cn-form-dialog__form--two-column > .cn-form-dialog__field--wide[data-v-5b0fdc60] {
22958
23136
  grid-column: 1 / -1;
22959
23137
  }
22960
23138
 
22961
23139
  /* A narrow viewport gets the single column back. Two columns of roughly
22962
23140
  150px each are worse than one readable one. */
22963
23141
  @media (max-width: 700px) {
22964
- .cn-form-dialog__form--two-column[data-v-699550cc] {
23142
+ .cn-form-dialog__form--two-column[data-v-5b0fdc60] {
22965
23143
  display: block;
22966
23144
  }
22967
23145
  }
22968
- .cn-form-dialog__textarea-wrapper[data-v-699550cc],
22969
- .cn-form-dialog__select-wrapper[data-v-699550cc],
22970
- .cn-form-dialog__json-wrapper[data-v-699550cc] {
23146
+ .cn-form-dialog__textarea-wrapper[data-v-5b0fdc60],
23147
+ .cn-form-dialog__select-wrapper[data-v-5b0fdc60],
23148
+ .cn-form-dialog__json-wrapper[data-v-5b0fdc60] {
22971
23149
  display: flex;
22972
23150
  flex-direction: column;
22973
23151
  gap: 4px;
22974
23152
  }
22975
- .cn-form-dialog__label[data-v-699550cc] {
23153
+ .cn-form-dialog__label[data-v-5b0fdc60] {
22976
23154
  font-weight: 600;
22977
23155
  font-size: 0.9em;
22978
23156
  color: var(--color-main-text);
@@ -22980,10 +23158,10 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22980
23158
 
22981
23159
  /* Cross-app semantic reference (ADR-048) whose provider isn't installed —
22982
23160
  rendered disabled; the wrapper carries the mouse-over tooltip. */
22983
- .cn-form-dialog__semantic-unresolved[data-v-699550cc] {
23161
+ .cn-form-dialog__semantic-unresolved[data-v-5b0fdc60] {
22984
23162
  cursor: not-allowed;
22985
23163
  }
22986
- .cn-form-dialog__textarea[data-v-699550cc] {
23164
+ .cn-form-dialog__textarea[data-v-5b0fdc60] {
22987
23165
  width: 100%;
22988
23166
  min-height: 80px;
22989
23167
  padding: 8px;
@@ -22995,22 +23173,22 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
22995
23173
  font-size: inherit;
22996
23174
  resize: vertical;
22997
23175
  }
22998
- .cn-form-dialog__textarea[data-v-699550cc]:focus {
23176
+ .cn-form-dialog__textarea[data-v-5b0fdc60]:focus {
22999
23177
  border-color: var(--color-primary-element);
23000
23178
  outline: none;
23001
23179
  }
23002
- .cn-form-dialog__textarea[data-v-699550cc]:disabled {
23180
+ .cn-form-dialog__textarea[data-v-5b0fdc60]:disabled {
23003
23181
  opacity: 0.5;
23004
23182
  cursor: not-allowed;
23005
23183
  }
23006
- .cn-form-dialog__helper[data-v-699550cc] {
23184
+ .cn-form-dialog__helper[data-v-5b0fdc60] {
23007
23185
  font-size: 0.85em;
23008
23186
  color: var(--color-text-maxcontrast);
23009
23187
  }
23010
- .cn-form-dialog__helper--error[data-v-699550cc] {
23188
+ .cn-form-dialog__helper--error[data-v-5b0fdc60] {
23011
23189
  color: var(--color-error);
23012
23190
  }
23013
- .cn-form-dialog__dynamic-loading[data-v-699550cc] {
23191
+ .cn-form-dialog__dynamic-loading[data-v-5b0fdc60] {
23014
23192
  display: flex;
23015
23193
  align-items: center;
23016
23194
  gap: 8px;
@@ -25268,12 +25446,14 @@ a.cn-kpi-card--board * {
25268
25446
  ======================================== */
25269
25447
 
25270
25448
  /* The two board tones without a Nextcloud colour role (screens-cell-pill-parity).
25271
- A theme may redefine them; the six role variants below use Nextcloud's own. */
25449
+ A theme may redefine them, or name the NL Design System hue tint and pill
25450
+ text (`--nl-color-<hue>-light`, `--nl-color-<hue>-text`), which the tones
25451
+ and the four role variants below read first (status-badge-hue-tokens). */
25272
25452
  :root {
25273
- --cn-status-purple-bg: #e8e6f6;
25274
- --cn-status-purple-text: #4a3f8f;
25275
- --cn-status-teal-bg: #e3f1f3;
25276
- --cn-status-teal-text: #1d5e66;
25453
+ --cn-status-purple-bg: var(--nl-color-purple-light, #e8e6f6);
25454
+ --cn-status-purple-text: var(--nl-color-purple-text, #4a3f8f);
25455
+ --cn-status-teal-bg: var(--nl-color-teal-light, #e3f1f3);
25456
+ --cn-status-teal-text: var(--nl-color-teal-text, #1d5e66);
25277
25457
  }
25278
25458
 
25279
25459
  .cn-status-badge {
@@ -25308,26 +25488,26 @@ a.cn-kpi-card--board * {
25308
25488
  }
25309
25489
 
25310
25490
  .cn-status-badge--success {
25311
- --cn-status-badge-ink: var(--color-success-text, var(--color-success));
25312
- background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
25491
+ --cn-status-badge-ink: var(--nl-color-green-text, var(--color-success-text, var(--color-success)));
25492
+ background-color: var(--nl-color-green-light, var(--color-success-light, rgba(70, 186, 97, 0.15)));
25313
25493
  color: var(--cn-status-badge-ink);
25314
25494
  }
25315
25495
 
25316
25496
  .cn-status-badge--warning {
25317
- --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
25318
- background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
25497
+ --cn-status-badge-ink: var(--nl-color-orange-text, var(--color-warning-text, var(--color-warning)));
25498
+ background-color: var(--nl-color-orange-light, var(--color-warning-light, rgba(232, 163, 39, 0.15)));
25319
25499
  color: var(--cn-status-badge-ink);
25320
25500
  }
25321
25501
 
25322
25502
  .cn-status-badge--error {
25323
- --cn-status-badge-ink: var(--color-error-text, var(--color-error));
25324
- background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
25503
+ --cn-status-badge-ink: var(--nl-color-red-text, var(--color-error-text, var(--color-error)));
25504
+ background-color: var(--nl-color-red-light, var(--color-error-light, rgba(224, 68, 68, 0.15)));
25325
25505
  color: var(--cn-status-badge-ink);
25326
25506
  }
25327
25507
 
25328
25508
  .cn-status-badge--info {
25329
- --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
25330
- background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
25509
+ --cn-status-badge-ink: var(--nl-color-blue-text, var(--color-info-text, var(--color-info, #0082c9)));
25510
+ background-color: var(--nl-color-blue-light, var(--color-info-light, rgba(0, 130, 201, 0.15)));
25331
25511
  color: var(--cn-status-badge-ink);
25332
25512
  }
25333
25513
 
@@ -27117,7 +27297,7 @@ to { background-position: -200% 0;
27117
27297
  }
27118
27298
 
27119
27299
 
27120
- .cn-object-card[data-v-b7ffa14e] {
27300
+ .cn-object-card[data-v-56a9e471] {
27121
27301
  display: flex;
27122
27302
  gap: 12px;
27123
27303
  padding: 16px;
@@ -27127,80 +27307,80 @@ to { background-position: -200% 0;
27127
27307
  cursor: pointer;
27128
27308
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
27129
27309
  }
27130
- .cn-object-card[data-v-b7ffa14e]:hover {
27310
+ .cn-object-card[data-v-56a9e471]:hover {
27131
27311
  border-color: var(--color-primary-element);
27132
27312
  box-shadow: 0 2px 8px var(--color-box-shadow);
27133
27313
  }
27134
- .cn-object-card--selected[data-v-b7ffa14e] {
27314
+ .cn-object-card--selected[data-v-56a9e471] {
27135
27315
  border-color: var(--color-primary-element);
27136
27316
  background: var(--color-primary-element-light);
27137
27317
  }
27138
27318
 
27139
27319
  /* The 4px start border takes 3px of padding, so the content stays put. */
27140
- .cn-object-card.cn-object-card--accent[data-v-b7ffa14e] {
27320
+ .cn-object-card.cn-object-card--accent[data-v-56a9e471] {
27141
27321
  border-inline-start-width: 4px;
27142
27322
  padding-inline-start: 13px;
27143
27323
  }
27144
- .cn-object-card.cn-object-card--accent-success[data-v-b7ffa14e] {
27324
+ .cn-object-card.cn-object-card--accent-success[data-v-56a9e471] {
27145
27325
  border-inline-start-color: var(--color-element-success);
27146
27326
  }
27147
- .cn-object-card.cn-object-card--accent-warning[data-v-b7ffa14e] {
27327
+ .cn-object-card.cn-object-card--accent-warning[data-v-56a9e471] {
27148
27328
  border-inline-start-color: var(--color-element-warning);
27149
27329
  }
27150
- .cn-object-card.cn-object-card--accent-error[data-v-b7ffa14e] {
27330
+ .cn-object-card.cn-object-card--accent-error[data-v-56a9e471] {
27151
27331
  border-inline-start-color: var(--color-element-error);
27152
27332
  }
27153
- .cn-object-card.cn-object-card--accent-info[data-v-b7ffa14e] {
27333
+ .cn-object-card.cn-object-card--accent-info[data-v-56a9e471] {
27154
27334
  border-inline-start-color: var(--color-element-info);
27155
27335
  }
27156
- .cn-object-card.cn-object-card--accent-primary[data-v-b7ffa14e] {
27336
+ .cn-object-card.cn-object-card--accent-primary[data-v-56a9e471] {
27157
27337
  border-inline-start-color: var(--color-primary-element);
27158
27338
  }
27159
- .cn-object-card__accent-icon[data-v-b7ffa14e] {
27339
+ .cn-object-card__accent-icon[data-v-56a9e471] {
27160
27340
  display: inline-flex;
27161
27341
  vertical-align: -2px;
27162
27342
  margin-inline-end: 4px;
27163
27343
  }
27164
- .cn-object-card--accent-success .cn-object-card__accent-icon[data-v-b7ffa14e] {
27344
+ .cn-object-card--accent-success .cn-object-card__accent-icon[data-v-56a9e471] {
27165
27345
  color: var(--color-text-success);
27166
27346
  }
27167
- .cn-object-card--accent-warning .cn-object-card__accent-icon[data-v-b7ffa14e] {
27347
+ .cn-object-card--accent-warning .cn-object-card__accent-icon[data-v-56a9e471] {
27168
27348
  color: var(--color-text-warning);
27169
27349
  }
27170
- .cn-object-card--accent-error .cn-object-card__accent-icon[data-v-b7ffa14e] {
27350
+ .cn-object-card--accent-error .cn-object-card__accent-icon[data-v-56a9e471] {
27171
27351
  color: var(--color-text-error);
27172
27352
  }
27173
- .cn-object-card--accent-info .cn-object-card__accent-icon[data-v-b7ffa14e] {
27353
+ .cn-object-card--accent-info .cn-object-card__accent-icon[data-v-56a9e471] {
27174
27354
  color: var(--color-element-info);
27175
27355
  }
27176
- .cn-object-card--accent-primary .cn-object-card__accent-icon[data-v-b7ffa14e] {
27356
+ .cn-object-card--accent-primary .cn-object-card__accent-icon[data-v-56a9e471] {
27177
27357
  color: var(--color-primary-element);
27178
27358
  }
27179
- .cn-object-card__checkbox[data-v-b7ffa14e] {
27359
+ .cn-object-card__checkbox[data-v-56a9e471] {
27180
27360
  flex-shrink: 0;
27181
27361
  padding-top: 2px;
27182
27362
  }
27183
- .cn-object-card__content[data-v-b7ffa14e] {
27363
+ .cn-object-card__content[data-v-56a9e471] {
27184
27364
  flex: 1;
27185
27365
  min-width: 0;
27186
27366
  }
27187
- .cn-object-card__header[data-v-b7ffa14e] {
27367
+ .cn-object-card__header[data-v-56a9e471] {
27188
27368
  display: flex;
27189
27369
  gap: 12px;
27190
27370
  align-items: flex-start;
27191
27371
  }
27192
- .cn-object-card__image[data-v-b7ffa14e] {
27372
+ .cn-object-card__image[data-v-56a9e471] {
27193
27373
  width: 48px;
27194
27374
  height: 48px;
27195
27375
  border-radius: var(--border-radius);
27196
27376
  object-fit: cover;
27197
27377
  flex-shrink: 0;
27198
27378
  }
27199
- .cn-object-card__title-area[data-v-b7ffa14e] {
27379
+ .cn-object-card__title-area[data-v-56a9e471] {
27200
27380
  flex: 1;
27201
27381
  min-width: 0;
27202
27382
  }
27203
- .cn-object-card__title[data-v-b7ffa14e] {
27383
+ .cn-object-card__title[data-v-56a9e471] {
27204
27384
  margin: 0;
27205
27385
  font-size: 16px;
27206
27386
  font-weight: 600;
@@ -27209,16 +27389,16 @@ to { background-position: -200% 0;
27209
27389
  text-overflow: ellipsis;
27210
27390
  white-space: nowrap;
27211
27391
  }
27212
- .cn-object-card__description[data-v-b7ffa14e] {
27392
+ .cn-object-card__description[data-v-56a9e471] {
27213
27393
  margin: 4px 0 0;
27214
27394
  font-size: 13px;
27215
27395
  color: var(--color-text-maxcontrast);
27216
27396
  line-height: 1.4;
27217
27397
  }
27218
- .cn-object-card__badges[data-v-b7ffa14e] {
27398
+ .cn-object-card__badges[data-v-56a9e471] {
27219
27399
  margin-top: 8px;
27220
27400
  }
27221
- .cn-object-card__metadata[data-v-b7ffa14e] {
27401
+ .cn-object-card__metadata[data-v-56a9e471] {
27222
27402
  display: grid;
27223
27403
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
27224
27404
  gap: 8px;
@@ -27226,19 +27406,19 @@ to { background-position: -200% 0;
27226
27406
  padding-top: 12px;
27227
27407
  border-top: 1px solid var(--color-border);
27228
27408
  }
27229
- .cn-object-card__meta-item[data-v-b7ffa14e] {
27409
+ .cn-object-card__meta-item[data-v-56a9e471] {
27230
27410
  display: flex;
27231
27411
  flex-direction: column;
27232
27412
  gap: 2px;
27233
27413
  }
27234
- .cn-object-card__meta-label[data-v-b7ffa14e] {
27414
+ .cn-object-card__meta-label[data-v-56a9e471] {
27235
27415
  font-size: 11px;
27236
27416
  font-weight: 500;
27237
27417
  color: var(--color-text-maxcontrast);
27238
27418
  text-transform: uppercase;
27239
27419
  letter-spacing: 0.3px;
27240
27420
  }
27241
- .cn-object-card__actions[data-v-b7ffa14e] {
27421
+ .cn-object-card__actions[data-v-56a9e471] {
27242
27422
  flex-shrink: 0;
27243
27423
  }
27244
27424
 
@@ -27614,7 +27794,7 @@ button.cn-stepper__step[data-v-776581d4] {
27614
27794
  }
27615
27795
 
27616
27796
 
27617
- .cn-detail-page__catalog-action[data-v-40e8f009] {
27797
+ .cn-detail-page__catalog-action[data-v-5b39e961] {
27618
27798
  align-items: center;
27619
27799
  background: var(--color-primary-element-light);
27620
27800
  border: 0;
@@ -27630,19 +27810,43 @@ button.cn-stepper__step[data-v-776581d4] {
27630
27810
  padding: 0 14px;
27631
27811
  white-space: nowrap;
27632
27812
  }
27633
- .cn-detail-page__catalog-note[data-v-40e8f009] {
27813
+
27814
+ /* A leaf card in a narrow cell keeps its title and count: the title row
27815
+ wraps and the actions move under it instead of squeezing the title out. */
27816
+ .cn-detail-page__leaf-card[data-v-5b39e961] .cn-widget-wrapper__header {
27817
+ flex-wrap: wrap;
27818
+ }
27819
+ .cn-detail-page__leaf-card[data-v-5b39e961] .cn-widget-wrapper__header-left {
27820
+ flex: 1 0 auto;
27821
+ }
27822
+
27823
+ /* The count beside a card title: the grey 20px badge of the tab strip. */
27824
+ .cn-detail-page__catalog-count[data-v-5b39e961] {
27825
+ background-color: var(--color-border);
27826
+ border-radius: 10px;
27827
+ box-sizing: border-box;
27828
+ color: var(--color-main-text);
27829
+ display: inline-block;
27830
+ font-size: 12px;
27831
+ font-weight: 600;
27832
+ line-height: 20px;
27833
+ min-width: 20px;
27834
+ padding: 0 6px;
27835
+ text-align: center;
27836
+ }
27837
+ .cn-detail-page__catalog-note[data-v-5b39e961] {
27634
27838
  color: var(--color-text-maxcontrast);
27635
27839
  font-size: 14px;
27636
27840
  white-space: nowrap;
27637
27841
  }
27638
- .cn-detail-widget-host[data-v-40e8f009],
27639
- .cn-detail-widget-host[data-v-40e8f009] > * {
27842
+ .cn-detail-widget-host[data-v-5b39e961],
27843
+ .cn-detail-widget-host[data-v-5b39e961] > * {
27640
27844
  height: 100%;
27641
27845
  }
27642
27846
 
27643
27847
  /* A bare host is a tab panel's body: it fills the panel and lets the panel
27644
27848
  scroll, rather than growing a second scroll region of its own. */
27645
- .cn-detail-widget-host--bare[data-v-40e8f009] {
27849
+ .cn-detail-widget-host--bare[data-v-5b39e961] {
27646
27850
  min-height: 0;
27647
27851
  }
27648
27852
 
@@ -33479,7 +33683,7 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
33479
33683
  }
33480
33684
 
33481
33685
 
33482
- .cn-action-buttons[data-v-49607313] {
33686
+ .cn-action-buttons[data-v-0f9733ca] {
33483
33687
  display: inline-flex;
33484
33688
  align-items: center;
33485
33689
  gap: 8px;
@@ -33489,7 +33693,7 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
33489
33693
  /* In menu mode the only children are dialogs, so the wrapper must not be a
33490
33694
  box: an empty inline-flex child still eats one of the header's flex gaps
33491
33695
  and pushes the Actions menu away from the Edit button beside it. */
33492
- .cn-action-buttons--menu[data-v-49607313] {
33696
+ .cn-action-buttons--menu[data-v-0f9733ca] {
33493
33697
  display: contents;
33494
33698
  }
33495
33699
 
@@ -38707,26 +38911,26 @@ to {
38707
38911
  text-decoration: underline;
38708
38912
  }
38709
38913
  @charset "UTF-8";
38710
- .cn-choice-cards[data-v-22c5fe42] {
38914
+ .cn-choice-cards[data-v-59d71736] {
38711
38915
  border: none;
38712
38916
  padding: 0;
38713
38917
  margin: 0;
38714
38918
  min-inline-size: 0;
38715
38919
  }
38716
38920
 
38717
- .cn-choice-cards__legend[data-v-22c5fe42] {
38921
+ .cn-choice-cards__legend[data-v-59d71736] {
38718
38922
  padding: 0;
38719
38923
  margin-block-end: 8px;
38720
38924
  font-weight: bold;
38721
38925
  }
38722
38926
 
38723
- .cn-choice-cards__loading[data-v-22c5fe42] {
38927
+ .cn-choice-cards__loading[data-v-59d71736] {
38724
38928
  display: flex;
38725
38929
  justify-content: center;
38726
38930
  padding: 24px 0;
38727
38931
  }
38728
38932
 
38729
- .cn-choice-cards__grid[data-v-22c5fe42] {
38933
+ .cn-choice-cards__grid[data-v-59d71736] {
38730
38934
  display: grid;
38731
38935
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
38732
38936
  gap: 12px;
@@ -38738,26 +38942,26 @@ to {
38738
38942
  padding: 12px;
38739
38943
  }
38740
38944
 
38741
- .cn-choice-cards__cell[data-v-22c5fe42] {
38945
+ .cn-choice-cards__cell[data-v-59d71736] {
38742
38946
  display: flex;
38743
38947
  flex-direction: column;
38744
38948
  gap: 8px;
38745
38949
  min-inline-size: 0;
38746
38950
  }
38747
38951
 
38748
- .cn-choice-cards__actions[data-v-22c5fe42] {
38952
+ .cn-choice-cards__actions[data-v-59d71736] {
38749
38953
  display: flex;
38750
38954
  flex-direction: column;
38751
38955
  gap: 4px;
38752
38956
  }
38753
38957
 
38754
- .cn-choice-cards__option[data-v-22c5fe42] {
38958
+ .cn-choice-cards__option[data-v-59d71736] {
38755
38959
  position: relative;
38756
38960
  display: block;
38757
38961
  cursor: pointer;
38758
38962
  }
38759
38963
 
38760
- .cn-choice-cards__input[data-v-22c5fe42] {
38964
+ .cn-choice-cards__input[data-v-59d71736] {
38761
38965
  position: absolute;
38762
38966
  inset-block-start: 16px;
38763
38967
  inset-inline-end: 14px;
@@ -38767,7 +38971,7 @@ to {
38767
38971
  }
38768
38972
 
38769
38973
  /* Room for the input, so a long title never runs underneath it. */
38770
- .cn-choice-cards__option[data-v-22c5fe42] .cn-card {
38974
+ .cn-choice-cards__option[data-v-59d71736] .cn-card {
38771
38975
  padding-inline-end: 44px;
38772
38976
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
38773
38977
  }
@@ -38778,33 +38982,33 @@ to {
38778
38982
  touches a card, and the grid twitches. The border colour below already
38779
38983
  carries hover, so the scale is dropped: at (0,3,0) this beats the global
38780
38984
  `.cn-card:hover` at (0,2,0). */
38781
- .cn-choice-cards__option[data-v-22c5fe42]:hover .cn-card {
38985
+ .cn-choice-cards__option[data-v-59d71736]:hover .cn-card {
38782
38986
  border-color: var(--color-primary-element);
38783
38987
  transform: none;
38784
38988
  }
38785
38989
 
38786
38990
  /* The focus ring belongs on the card, not on the small input inside it. */
38787
- .cn-choice-cards__input[data-v-22c5fe42]:focus-visible + .cn-card {
38991
+ .cn-choice-cards__input[data-v-59d71736]:focus-visible + .cn-card {
38788
38992
  outline: 2px solid var(--color-primary-element);
38789
38993
  outline-offset: 2px;
38790
38994
  }
38791
38995
 
38792
- .cn-choice-cards__input[data-v-22c5fe42]:disabled {
38996
+ .cn-choice-cards__input[data-v-59d71736]:disabled {
38793
38997
  cursor: default;
38794
38998
  }
38795
38999
 
38796
- .cn-choice-cards__option--disabled .cn-choice-cards__input[data-v-22c5fe42] + .cn-card {
39000
+ .cn-choice-cards__option--disabled .cn-choice-cards__input[data-v-59d71736] + .cn-card {
38797
39001
  opacity: 0.6;
38798
39002
  }
38799
39003
 
38800
- .cn-choice-cards__rows[data-v-22c5fe42] {
39004
+ .cn-choice-cards__rows[data-v-59d71736] {
38801
39005
  display: flex;
38802
39006
  flex-direction: column;
38803
39007
  gap: 8px;
38804
39008
  }
38805
39009
 
38806
39010
  /* 12px 14px, as the boards draw an option row (DqVolgendeStap, DqBesluit). */
38807
- .cn-choice-cards__row[data-v-22c5fe42] {
39011
+ .cn-choice-cards__row[data-v-59d71736] {
38808
39012
  display: flex;
38809
39013
  align-items: flex-start;
38810
39014
  gap: 12px;
@@ -38815,12 +39019,12 @@ to {
38815
39019
  cursor: pointer;
38816
39020
  }
38817
39021
 
38818
- .cn-choice-cards__row[data-v-22c5fe42]:hover {
39022
+ .cn-choice-cards__row[data-v-59d71736]:hover {
38819
39023
  border-color: var(--color-border-dark);
38820
39024
  }
38821
39025
 
38822
- .cn-choice-cards__row--selected[data-v-22c5fe42],
38823
- .cn-choice-cards__row--selected[data-v-22c5fe42]:hover {
39026
+ .cn-choice-cards__row--selected[data-v-59d71736],
39027
+ .cn-choice-cards__row--selected[data-v-59d71736]:hover {
38824
39028
  border-color: var(--color-primary-element);
38825
39029
  /* The second pixel of the 2px selected border, without moving the content. */
38826
39030
  box-shadow: inset 0 0 0 1px var(--color-primary-element);
@@ -38829,9 +39033,8 @@ to {
38829
39033
 
38830
39034
  /* An option this record does not allow: the grey ground and the muted ink,
38831
39035
  still legible (DqVolgendeStap), not faded. */
38832
- .cn-choice-cards__row--disabled[data-v-22c5fe42],
38833
- .cn-choice-cards__row--disabled[data-v-22c5fe42]:hover {
38834
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
39036
+ .cn-choice-cards__row--disabled[data-v-59d71736],
39037
+ .cn-choice-cards__row--disabled[data-v-59d71736]:hover {
38835
39038
  border-color: var(--color-border);
38836
39039
  background: var(--color-background-hover);
38837
39040
  color: var(--color-text-maxcontrast);
@@ -38840,82 +39043,80 @@ to {
38840
39043
 
38841
39044
  /* The title takes the muted ink itself: a theme that colours every label
38842
39045
  with `!important` (thematiq) would otherwise hand it the label colour. */
38843
- .cn-choice-cards__row--disabled .cn-choice-cards__row-title[data-v-22c5fe42] {
38844
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
39046
+ .cn-choice-cards__row--disabled .cn-choice-cards__row-title[data-v-59d71736] {
38845
39047
  color: var(--color-text-maxcontrast);
38846
39048
  }
38847
39049
 
38848
39050
  /* The chosen option's fields share the selected row's frame: the cell draws
38849
39051
  the 2px primary border and the ground, the row inside it draws none, and
38850
39052
  the fields sit under the text, indented to it (DqVolgendeStap). */
38851
- .cn-choice-cards__cell--with-details[data-v-22c5fe42] {
39053
+ .cn-choice-cards__cell--with-details[data-v-59d71736] {
38852
39054
  border: 1px solid var(--color-primary-element);
38853
39055
  border-radius: var(--border-radius-large, 8px);
38854
39056
  box-shadow: inset 0 0 0 1px var(--color-primary-element);
38855
39057
  background: var(--color-primary-element-light);
38856
39058
  }
38857
39059
 
38858
- .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42],
38859
- .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-22c5fe42]:hover {
39060
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-59d71736],
39061
+ .cn-choice-cards__cell--with-details .cn-choice-cards__row[data-v-59d71736]:hover {
38860
39062
  border-color: transparent;
38861
39063
  box-shadow: none;
38862
39064
  background: transparent;
38863
39065
  }
38864
39066
 
38865
- .cn-choice-cards__details[data-v-22c5fe42] {
39067
+ .cn-choice-cards__details[data-v-59d71736] {
38866
39068
  display: flex;
38867
39069
  flex-direction: column;
38868
39070
  gap: 14px;
38869
39071
  padding: 0 14px 14px 44px;
38870
39072
  }
38871
39073
 
38872
- .cn-choice-cards__row--readonly[data-v-22c5fe42] {
39074
+ .cn-choice-cards__row--readonly[data-v-59d71736] {
38873
39075
  cursor: default;
38874
39076
  }
38875
39077
 
38876
- .cn-choice-cards__row--readonly[data-v-22c5fe42]:not(.cn-choice-cards__row--selected):hover {
39078
+ .cn-choice-cards__row--readonly[data-v-59d71736]:not(.cn-choice-cards__row--selected):hover {
38877
39079
  border-color: var(--color-border);
38878
39080
  }
38879
39081
 
38880
- .cn-choice-cards__row[data-v-22c5fe42]:has(.cn-choice-cards__row-input:focus-visible) {
39082
+ .cn-choice-cards__row[data-v-59d71736]:has(.cn-choice-cards__row-input:focus-visible) {
38881
39083
  outline: 2px solid var(--color-primary-element);
38882
39084
  outline-offset: 2px;
38883
39085
  }
38884
39086
 
38885
- .cn-choice-cards__row-input[data-v-22c5fe42] {
39087
+ .cn-choice-cards__row-input[data-v-59d71736] {
38886
39088
  flex: none;
38887
39089
  margin: 2px 0 0;
38888
39090
  accent-color: var(--color-primary-element);
38889
39091
  cursor: inherit;
38890
39092
  }
38891
39093
 
38892
- .cn-choice-cards__row-icon[data-v-22c5fe42] {
39094
+ .cn-choice-cards__row-icon[data-v-59d71736] {
38893
39095
  flex: none;
38894
39096
  }
38895
39097
 
38896
- .cn-choice-cards__row-text[data-v-22c5fe42] {
39098
+ .cn-choice-cards__row-text[data-v-59d71736] {
38897
39099
  display: flex;
38898
39100
  flex-direction: column;
38899
39101
  gap: 2px;
38900
39102
  min-width: 0;
38901
39103
  }
38902
39104
 
38903
- .cn-choice-cards__row-title[data-v-22c5fe42] {
39105
+ .cn-choice-cards__row-title[data-v-59d71736] {
38904
39106
  font-size: 15px;
38905
39107
  font-weight: 600;
38906
39108
  }
38907
39109
 
38908
39110
  /* Regular weight on the span itself: a theme that sets every label bold
38909
39111
  with `!important` (thematiq) reaches a span that only inherits. */
38910
- .cn-choice-cards__row-description[data-v-22c5fe42],
38911
- .cn-choice-cards__reason[data-v-22c5fe42] {
38912
- --nldesign-color-on-surface: var(--color-text-maxcontrast);
39112
+ .cn-choice-cards__row-description[data-v-59d71736],
39113
+ .cn-choice-cards__reason[data-v-59d71736] {
38913
39114
  font-size: 13px;
38914
39115
  font-weight: 400;
38915
39116
  color: var(--color-text-maxcontrast);
38916
39117
  }
38917
39118
 
38918
- .cn-choice-cards__reason--card[data-v-22c5fe42] {
39119
+ .cn-choice-cards__reason--card[data-v-59d71736] {
38919
39120
  display: block;
38920
39121
  margin-block-start: 4px;
38921
39122
  }
@@ -39091,7 +39292,6 @@ to {
39091
39292
  margin-inline-start: auto;
39092
39293
  padding: 1px 8px;
39093
39294
  border-radius: 10px;
39094
- --nldesign-color-on-surface: var(--cn-board-text-soft, var(--color-main-text));
39095
39295
  background-color: var(--color-main-background);
39096
39296
  color: var(--cn-board-text-soft, var(--color-main-text));
39097
39297
  font-size: 12px;
@@ -39408,21 +39608,21 @@ to {
39408
39608
  opacity: 0.45;
39409
39609
  }
39410
39610
 
39411
- .cn-board-view__columns[data-v-4b0d3015] {
39611
+ .cn-board-view__columns[data-v-45db9bd1] {
39412
39612
  display: flex;
39413
39613
  gap: 12px;
39414
39614
  overflow-x: auto;
39415
39615
  align-items: flex-start;
39416
39616
  }
39417
39617
 
39418
- .cn-board-view__column[data-v-4b0d3015] {
39618
+ .cn-board-view__column[data-v-45db9bd1] {
39419
39619
  flex: 0 0 260px;
39420
39620
  background-color: var(--color-background-hover);
39421
39621
  border-radius: var(--border-radius-large);
39422
39622
  padding: 8px;
39423
39623
  }
39424
39624
 
39425
- .cn-board-view__column-header[data-v-4b0d3015] {
39625
+ .cn-board-view__column-header[data-v-45db9bd1] {
39426
39626
  display: flex;
39427
39627
  justify-content: space-between;
39428
39628
  gap: 8px;
@@ -39430,13 +39630,13 @@ to {
39430
39630
  margin: 0 0 8px;
39431
39631
  }
39432
39632
 
39433
- .cn-board-view__count[data-v-4b0d3015],
39434
- .cn-board-view__empty[data-v-4b0d3015],
39435
- .cn-board-view__unusable[data-v-4b0d3015] {
39633
+ .cn-board-view__count[data-v-45db9bd1],
39634
+ .cn-board-view__empty[data-v-45db9bd1],
39635
+ .cn-board-view__unusable[data-v-45db9bd1] {
39436
39636
  color: var(--color-text-maxcontrast);
39437
39637
  }
39438
39638
 
39439
- .cn-board-view__card[data-v-4b0d3015] {
39639
+ .cn-board-view__card[data-v-45db9bd1] {
39440
39640
  display: block;
39441
39641
  background-color: var(--color-main-background);
39442
39642
  border: 1px solid var(--color-border);
@@ -39445,29 +39645,29 @@ to {
39445
39645
  margin-bottom: 8px;
39446
39646
  }
39447
39647
 
39448
- .cn-board-view__card-field[data-v-4b0d3015] {
39648
+ .cn-board-view__card-field[data-v-45db9bd1] {
39449
39649
  display: block;
39450
39650
  }
39451
39651
 
39452
39652
  /* A late card: an edge in the error colour, drawn as an inset shadow so the
39453
39653
  card keeps its size and its rounded corners. The label below carries the
39454
39654
  meaning; the edge only helps a sighted reader find it. */
39455
- .cn-board-view__card--overdue[data-v-4b0d3015] {
39655
+ .cn-board-view__card--overdue[data-v-45db9bd1] {
39456
39656
  border-color: var(--color-error);
39457
39657
  box-shadow: inset 3px 0 0 var(--color-error);
39458
39658
  }
39459
39659
 
39460
- .cn-board-view__due[data-v-4b0d3015] {
39660
+ .cn-board-view__due[data-v-45db9bd1] {
39461
39661
  display: block;
39462
39662
  font-size: 0.85em;
39463
39663
  font-weight: 700;
39464
39664
  }
39465
39665
 
39466
- .cn-board-view__due--overdue[data-v-4b0d3015] {
39666
+ .cn-board-view__due--overdue[data-v-45db9bd1] {
39467
39667
  color: var(--color-error-text, var(--color-error));
39468
39668
  }
39469
39669
 
39470
- .cn-board-view__due--soon[data-v-4b0d3015] {
39670
+ .cn-board-view__due--soon[data-v-45db9bd1] {
39471
39671
  color: var(--color-warning-text, var(--color-main-text));
39472
39672
  font-weight: 600;
39473
39673
  }
@@ -39476,7 +39676,7 @@ to {
39476
39676
  * The card's opening control. The cursor and the focus ring live here now,
39477
39677
  * on the thing that actually does something, rather than on the box.
39478
39678
  */
39479
- .cn-board-view__card-open[data-v-4b0d3015] {
39679
+ .cn-board-view__card-open[data-v-45db9bd1] {
39480
39680
  background: none;
39481
39681
  border: none;
39482
39682
  padding: 0;
@@ -39485,12 +39685,12 @@ to {
39485
39685
  font-size: 0.8rem;
39486
39686
  }
39487
39687
 
39488
- .cn-board-view__card-open[data-v-4b0d3015]:focus-visible {
39688
+ .cn-board-view__card-open[data-v-45db9bd1]:focus-visible {
39489
39689
  outline: 2px solid var(--color-primary-element);
39490
39690
  outline-offset: 2px;
39491
39691
  }
39492
39692
 
39493
- .cn-board-view__lane-header[data-v-4b0d3015] {
39693
+ .cn-board-view__lane-header[data-v-45db9bd1] {
39494
39694
  background: none;
39495
39695
  border: none;
39496
39696
  font-weight: bold;
@@ -39499,21 +39699,21 @@ to {
39499
39699
  color: var(--color-main-text);
39500
39700
  }
39501
39701
 
39502
- .cn-board-view__move-label[data-v-4b0d3015] {
39702
+ .cn-board-view__move-label[data-v-45db9bd1] {
39503
39703
  color: var(--color-text-maxcontrast);
39504
39704
  font-size: 0.8rem;
39505
39705
  }
39506
39706
 
39507
- .cn-board-view__refusal[data-v-4b0d3015] {
39707
+ .cn-board-view__refusal[data-v-45db9bd1] {
39508
39708
  color: var(--color-error);
39509
39709
  }
39510
39710
 
39511
- .cn-board-view__count--full[data-v-4b0d3015] {
39711
+ .cn-board-view__count--full[data-v-45db9bd1] {
39512
39712
  color: var(--color-error-text, var(--color-error));
39513
39713
  font-weight: 600;
39514
39714
  }
39515
39715
 
39516
- .cn-card-grid__grid[data-v-1c5a3f43] {
39716
+ .cn-card-grid__grid[data-v-57518930] {
39517
39717
  display: grid;
39518
39718
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
39519
39719
  gap: 16px;
@@ -39525,15 +39725,15 @@ to {
39525
39725
  down with a large blank gap above them. Collapse those empty cells so the
39526
39726
  remaining cards start at the top. A comment-only node (`v-if` false) still
39527
39727
  matches `:empty` per the CSS spec, so this catches the v-if-hidden case. */
39528
- .cn-card-grid__item[data-v-1c5a3f43]:empty {
39728
+ .cn-card-grid__item[data-v-57518930]:empty {
39529
39729
  display: none;
39530
39730
  }
39531
- .cn-card-grid__loading[data-v-1c5a3f43] {
39731
+ .cn-card-grid__loading[data-v-57518930] {
39532
39732
  display: flex;
39533
39733
  justify-content: center;
39534
39734
  padding: 40px;
39535
39735
  }
39536
- .cn-card-grid__empty[data-v-1c5a3f43] {
39736
+ .cn-card-grid__empty[data-v-57518930] {
39537
39737
  padding: 40px 20px;
39538
39738
  text-align: center;
39539
39739
  }
@@ -41884,12 +42084,12 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41884
42084
  }
41885
42085
 
41886
42086
 
41887
- .cn-action-dialog[data-v-0bb28fd1] {
42087
+ .cn-action-dialog[data-v-5293ec77] {
41888
42088
  display: flex;
41889
42089
  flex-direction: column;
41890
42090
  gap: 16px;
41891
42091
  }
41892
- .cn-action-dialog__summary[data-v-0bb28fd1] {
42092
+ .cn-action-dialog__summary[data-v-5293ec77] {
41893
42093
  display: flex;
41894
42094
  align-items: center;
41895
42095
  gap: 10px;
@@ -41897,13 +42097,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41897
42097
  border: 1px solid var(--color-border);
41898
42098
  border-radius: var(--border-radius-large, 8px);
41899
42099
  }
41900
- .cn-action-dialog__summary-text[data-v-0bb28fd1] {
42100
+ .cn-action-dialog__summary-text[data-v-5293ec77] {
41901
42101
  display: flex;
41902
42102
  flex: 1 1 auto;
41903
42103
  flex-direction: column;
41904
42104
  min-width: 0;
41905
42105
  }
41906
- .cn-action-dialog__badge[data-v-0bb28fd1] {
42106
+ .cn-action-dialog__badge[data-v-5293ec77] {
41907
42107
  padding: 3px 10px;
41908
42108
  border-radius: 12px;
41909
42109
  background: var(--color-background-dark);
@@ -41911,74 +42111,95 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41911
42111
  font-weight: 600;
41912
42112
  white-space: nowrap;
41913
42113
  }
41914
- .cn-action-dialog__title[data-v-0bb28fd1] {
42114
+ .cn-action-dialog__title[data-v-5293ec77] {
41915
42115
  margin: 0 0 8px;
41916
- font-size: 15px;
41917
- font-weight: 700;
42116
+ font-size: 14px;
42117
+ font-weight: 600;
41918
42118
  }
41919
- .cn-action-dialog__facts[data-v-0bb28fd1] {
42119
+
42120
+ /* Facts in columns of at least 200px, each a label over its value above a
42121
+ hairline (DqArchiveren "Bewaring volgens het zaaktype"). */
42122
+ .cn-action-dialog__facts[data-v-5293ec77] {
41920
42123
  display: grid;
41921
- grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
41922
- gap: 8px 16px;
42124
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
42125
+ gap: 12px 24px;
41923
42126
  margin: 0;
41924
42127
  }
41925
- .cn-action-dialog__facts dt[data-v-0bb28fd1] {
42128
+ .cn-action-dialog__fact[data-v-5293ec77] {
42129
+ display: flex;
42130
+ flex-direction: column;
42131
+ gap: 3px;
42132
+ padding-bottom: 10px;
42133
+ border-bottom: 1px solid var(--color-border);
42134
+ }
42135
+ .cn-action-dialog__facts dt[data-v-5293ec77] {
41926
42136
  color: var(--color-text-maxcontrast);
41927
42137
  font-size: 13px;
41928
42138
  }
41929
- .cn-action-dialog__facts dd[data-v-0bb28fd1] {
42139
+ .cn-action-dialog__facts dd[data-v-5293ec77] {
41930
42140
  margin: 0;
42141
+ font-size: 15px;
42142
+ font-weight: 500;
41931
42143
  }
41932
- .cn-action-dialog__checks[data-v-0bb28fd1] {
42144
+
42145
+ /* Checklist rows divided by hairlines, the detail at the row's end
42146
+ (DqArchiveren "Klaar om te archiveren"). */
42147
+ .cn-action-dialog__checks[data-v-5293ec77] {
41933
42148
  display: flex;
41934
42149
  flex-direction: column;
41935
- gap: 8px;
41936
42150
  margin: 0;
41937
42151
  padding: 0;
41938
42152
  list-style: none;
41939
42153
  }
41940
- .cn-action-dialog__check[data-v-0bb28fd1] {
42154
+ .cn-action-dialog__check[data-v-5293ec77] {
41941
42155
  display: flex;
41942
42156
  flex-wrap: wrap;
41943
42157
  align-items: center;
41944
- gap: 8px;
42158
+ gap: 2px 12px;
42159
+ padding: 10px 0;
42160
+ border-top: 1px solid var(--color-border);
42161
+ font-size: 15px;
41945
42162
  }
41946
- .cn-action-dialog__check-icon[data-v-0bb28fd1] {
42163
+ .cn-action-dialog__check-label[data-v-5293ec77] {
42164
+ flex: 1 1 auto;
42165
+ font-weight: 600;
42166
+ }
42167
+ .cn-action-dialog__check-icon[data-v-5293ec77] {
41947
42168
  color: var(--color-text-maxcontrast);
41948
42169
  }
41949
- .cn-action-dialog__check-icon--met[data-v-0bb28fd1] {
42170
+ .cn-action-dialog__check-icon--met[data-v-5293ec77] {
41950
42171
  color: var(--color-success-text, var(--color-success));
41951
42172
  }
41952
- .cn-action-dialog__muted[data-v-0bb28fd1] {
42173
+ .cn-action-dialog__muted[data-v-5293ec77] {
41953
42174
  color: var(--color-text-maxcontrast);
41954
42175
  font-size: 14px;
41955
42176
  }
41956
- .cn-action-dialog__field[data-v-0bb28fd1] {
42177
+ .cn-action-dialog__field[data-v-5293ec77] {
41957
42178
  display: flex;
41958
42179
  flex-direction: column;
41959
42180
  gap: 4px;
41960
42181
  }
41961
- .cn-action-dialog__error[data-v-0bb28fd1] {
42182
+ .cn-action-dialog__error[data-v-5293ec77] {
41962
42183
  margin: 0;
41963
42184
  color: var(--color-error-text, var(--color-error));
41964
42185
  }
41965
42186
 
41966
42187
 
41967
- .cn-assign-dialog[data-v-9921b726] {
42188
+ .cn-assign-dialog[data-v-45153be8] {
41968
42189
  display: flex;
41969
42190
  flex-direction: column;
41970
42191
  gap: 18px;
41971
42192
  }
41972
- .cn-assign-dialog__field[data-v-9921b726] {
42193
+ .cn-assign-dialog__field[data-v-45153be8] {
41973
42194
  display: flex;
41974
42195
  flex-direction: column;
41975
42196
  gap: 6px;
41976
42197
  }
41977
- .cn-assign-dialog__hint[data-v-9921b726] {
42198
+ .cn-assign-dialog__hint[data-v-45153be8] {
41978
42199
  font-size: 13px;
41979
42200
  color: var(--color-text-maxcontrast);
41980
42201
  }
41981
- .cn-assign-dialog__toggle[data-v-9921b726] {
42202
+ .cn-assign-dialog__toggle[data-v-45153be8] {
41982
42203
  display: flex;
41983
42204
  flex-direction: column;
41984
42205
  gap: 2px;
@@ -41986,17 +42207,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41986
42207
  border: 1px solid var(--color-border-dark);
41987
42208
  border-radius: var(--border-radius-large, 8px);
41988
42209
  }
41989
- .cn-assign-dialog__toggle--on[data-v-9921b726] {
42210
+ .cn-assign-dialog__toggle--on[data-v-45153be8] {
41990
42211
  border: 2px solid var(--color-primary-element);
41991
42212
  background: var(--color-primary-element-light);
41992
42213
  }
41993
- .cn-assign-dialog__toggle-title[data-v-9921b726] {
42214
+ .cn-assign-dialog__toggle-title[data-v-45153be8] {
41994
42215
  font-weight: 600;
41995
42216
  }
41996
- .cn-assign-dialog__toggle-note[data-v-9921b726] {
42217
+ .cn-assign-dialog__toggle-note[data-v-45153be8] {
41997
42218
  padding-inline-start: 44px;
41998
42219
  }
41999
- .cn-assign-dialog__error[data-v-9921b726] {
42220
+ .cn-assign-dialog__error[data-v-45153be8] {
42000
42221
  margin: 0;
42001
42222
  color: var(--color-error-text, var(--color-error));
42002
42223
  }
@@ -42435,7 +42656,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42435
42656
  }
42436
42657
 
42437
42658
 
42438
- .cn-dashboard-page[data-v-347a8f78] {
42659
+ .cn-dashboard-page[data-v-0270abf8] {
42439
42660
  padding: 20px;
42440
42661
  max-width: 1800px;
42441
42662
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -42449,7 +42670,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42449
42670
  overflow-y: auto;
42450
42671
  box-sizing: border-box;
42451
42672
  }
42452
- .cn-dashboard-page__header[data-v-347a8f78] {
42673
+ .cn-dashboard-page__header[data-v-0270abf8] {
42453
42674
  display: flex;
42454
42675
  justify-content: space-between;
42455
42676
  align-items: flex-start;
@@ -42461,21 +42682,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42461
42682
  room. Only the HEADER shifts right — body widgets keep full width. */
42462
42683
  padding-inline-start: 56px;
42463
42684
  }
42464
- .cn-dashboard-page__header-left[data-v-347a8f78] {
42685
+ .cn-dashboard-page__header-left[data-v-0270abf8] {
42465
42686
  min-width: 0;
42466
42687
  }
42467
- .cn-dashboard-page__title-row[data-v-347a8f78] {
42688
+ .cn-dashboard-page__title-row[data-v-0270abf8] {
42468
42689
  display: flex;
42469
42690
  align-items: center;
42470
42691
  flex-wrap: wrap;
42471
42692
  gap: 12px;
42472
42693
  }
42473
- .cn-dashboard-page__title[data-v-347a8f78] {
42694
+ .cn-dashboard-page__title[data-v-0270abf8] {
42474
42695
  margin: 0;
42475
42696
  font-size: 20px;
42476
42697
  font-weight: 700;
42477
42698
  }
42478
- .cn-dashboard-page__description[data-v-347a8f78] {
42699
+ .cn-dashboard-page__description[data-v-0270abf8] {
42479
42700
  margin: 4px 0 0;
42480
42701
  font-size: 14px;
42481
42702
  color: var(--color-text-maxcontrast);
@@ -42483,19 +42704,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42483
42704
 
42484
42705
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
42485
42706
  under it, and 40px buttons with a 10px gap. */
42486
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-347a8f78] {
42707
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-0270abf8] {
42487
42708
  font-size: 28px;
42488
42709
  font-weight: 700;
42489
42710
  line-height: 1.2;
42490
42711
  }
42491
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-347a8f78] {
42712
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-0270abf8] {
42492
42713
  margin: 6px 0 0;
42493
42714
  font-size: 15px;
42494
42715
  }
42495
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-347a8f78] {
42716
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-0270abf8] {
42496
42717
  gap: 10px;
42497
42718
  }
42498
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-347a8f78] .button-vue {
42719
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-0270abf8] .button-vue {
42499
42720
  min-height: var(--cn-board-control-height, 40px);
42500
42721
  height: var(--cn-board-control-height, 40px);
42501
42722
  }
@@ -42503,17 +42724,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42503
42724
  /* The switch row under the header (screens-dashboard-greeting-header): the
42504
42725
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
42505
42726
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
42506
- .cn-dashboard-page__switch-row[data-v-347a8f78] {
42727
+ .cn-dashboard-page__switch-row[data-v-0270abf8] {
42507
42728
  display: flex;
42508
42729
  flex-wrap: wrap;
42509
42730
  align-items: center;
42510
42731
  gap: 10px;
42511
42732
  margin-bottom: var(--cn-board-section-gap, 20px);
42512
42733
  }
42513
- .cn-dashboard-page__switch-row-spacer[data-v-347a8f78] {
42734
+ .cn-dashboard-page__switch-row-spacer[data-v-0270abf8] {
42514
42735
  flex: 1 1 auto;
42515
42736
  }
42516
- .cn-dashboard-page__view-link[data-v-347a8f78] {
42737
+ .cn-dashboard-page__view-link[data-v-0270abf8] {
42517
42738
  display: inline-flex;
42518
42739
  align-items: center;
42519
42740
  gap: 6px;
@@ -42527,37 +42748,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42527
42748
  white-space: nowrap;
42528
42749
  text-decoration: none !important;
42529
42750
  }
42530
- .cn-dashboard-page__view-link[data-v-347a8f78]:hover {
42751
+ .cn-dashboard-page__view-link[data-v-0270abf8]:hover {
42531
42752
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
42532
42753
  }
42533
- .cn-dashboard-page__view-link[data-v-347a8f78]:focus-visible {
42754
+ .cn-dashboard-page__view-link[data-v-0270abf8]:focus-visible {
42534
42755
  outline: 2px solid var(--color-main-text);
42535
42756
  outline-offset: 2px;
42536
42757
  }
42537
- .cn-dashboard-page__view-link-icon[data-v-347a8f78] {
42758
+ .cn-dashboard-page__view-link-icon[data-v-0270abf8] {
42538
42759
  display: inline-flex;
42539
42760
  }
42540
42761
 
42541
42762
  /* The period group, in a row of its own between the header and the KPI row. */
42542
- .cn-dashboard-page__date-range--segmented[data-v-347a8f78] {
42763
+ .cn-dashboard-page__date-range--segmented[data-v-0270abf8] {
42543
42764
  margin-bottom: 16px;
42544
42765
  }
42545
42766
 
42546
42767
  /* The period group at the end of the description line. */
42547
- .cn-dashboard-page__description--with-period[data-v-347a8f78] {
42768
+ .cn-dashboard-page__description--with-period[data-v-0270abf8] {
42548
42769
  align-items: center;
42549
42770
  display: flex;
42550
42771
  flex-wrap: wrap;
42551
42772
  gap: 8px;
42552
42773
  }
42553
- .cn-dashboard-page__date-segmented[data-v-347a8f78] {
42774
+ .cn-dashboard-page__date-segmented[data-v-0270abf8] {
42554
42775
  display: flex;
42555
42776
  align-items: center;
42556
42777
  gap: 8px;
42557
42778
  }
42558
42779
 
42559
42780
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
42560
- .cn-dashboard-page__kpi-row[data-v-347a8f78] {
42781
+ .cn-dashboard-page__kpi-row[data-v-0270abf8] {
42561
42782
  margin-bottom: var(--cn-board-section-gap, 16px);
42562
42783
  }
42563
42784
 
@@ -42565,15 +42786,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42565
42786
  the cards started a margin to the right of the KPI row and the header. The
42566
42787
  grid reaches out by that margin, so the card edges line up with the page's
42567
42788
  (dashboard-grid-flush). */
42568
- .cn-dashboard-page--board[data-v-347a8f78] .cn-dashboard-grid {
42789
+ .cn-dashboard-page--board[data-v-0270abf8] .cn-dashboard-grid {
42569
42790
  width: auto;
42570
42791
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
42571
42792
  }
42572
- .cn-dashboard-page__kpi-cell[data-v-347a8f78] {
42793
+ .cn-dashboard-page__kpi-cell[data-v-0270abf8] {
42573
42794
  display: flex;
42574
42795
  min-width: 0;
42575
42796
  }
42576
- .cn-dashboard-page__kpi-cell[data-v-347a8f78] > * {
42797
+ .cn-dashboard-page__kpi-cell[data-v-0270abf8] > * {
42577
42798
  flex: 1 1 auto;
42578
42799
  min-width: 0;
42579
42800
  }
@@ -42586,7 +42807,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42586
42807
  scoped chip rules then silently don't match and the chip collapses into
42587
42808
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
42588
42809
  data-testid is stable across chunks, so those rules match regardless. */
42589
- .cn-dashboard-page__header-actions[data-v-347a8f78] {
42810
+ .cn-dashboard-page__header-actions[data-v-0270abf8] {
42590
42811
  display: flex;
42591
42812
  align-items: center;
42592
42813
  gap: 8px;
@@ -42602,19 +42823,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42602
42823
 
42603
42824
  /* Date-range header band. Kept compact so it doesn't open a tall gap
42604
42825
  above the grid; the pills variant is a single tidy toggle row. */
42605
- .cn-dashboard-page__date-range[data-v-347a8f78] {
42826
+ .cn-dashboard-page__date-range[data-v-0270abf8] {
42606
42827
  margin-bottom: 12px;
42607
42828
  }
42608
- .cn-dashboard-page__date-range--pills[data-v-347a8f78] {
42829
+ .cn-dashboard-page__date-range--pills[data-v-0270abf8] {
42609
42830
  margin-bottom: 8px;
42610
42831
  }
42611
- .cn-dashboard-page__date-pills[data-v-347a8f78] {
42832
+ .cn-dashboard-page__date-pills[data-v-0270abf8] {
42612
42833
  display: flex;
42613
42834
  align-items: center;
42614
42835
  flex-wrap: wrap;
42615
42836
  gap: 6px;
42616
42837
  }
42617
- .cn-dashboard-page__date-pill[data-v-347a8f78] {
42838
+ .cn-dashboard-page__date-pill[data-v-0270abf8] {
42618
42839
  display: inline-flex;
42619
42840
  align-items: center;
42620
42841
  padding: 5px 14px;
@@ -42629,77 +42850,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42629
42850
  cursor: pointer;
42630
42851
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
42631
42852
  }
42632
- .cn-dashboard-page__date-pill[data-v-347a8f78]:hover {
42853
+ .cn-dashboard-page__date-pill[data-v-0270abf8]:hover {
42633
42854
  background: var(--color-background-hover);
42634
42855
  }
42635
- .cn-dashboard-page__date-pill[data-v-347a8f78]:focus-visible {
42856
+ .cn-dashboard-page__date-pill[data-v-0270abf8]:focus-visible {
42636
42857
  outline: 2px solid var(--color-primary-element);
42637
42858
  outline-offset: 2px;
42638
42859
  }
42639
- .cn-dashboard-page__date-pill--active[data-v-347a8f78] {
42860
+ .cn-dashboard-page__date-pill--active[data-v-0270abf8] {
42640
42861
  background: var(--color-primary-element);
42641
42862
  border-color: var(--color-primary-element);
42642
42863
  color: var(--color-primary-element-text);
42643
42864
  }
42644
- .cn-dashboard-page__date-pill--active[data-v-347a8f78]:hover {
42865
+ .cn-dashboard-page__date-pill--active[data-v-0270abf8]:hover {
42645
42866
  background: var(--color-primary-element-hover, var(--color-primary-element));
42646
42867
  }
42647
42868
 
42648
42869
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
42649
42870
  so it reads as an escape hatch rather than a primary option. */
42650
- .cn-dashboard-page__date-pill--custom[data-v-347a8f78] {
42871
+ .cn-dashboard-page__date-pill--custom[data-v-0270abf8] {
42651
42872
  border-style: dashed;
42652
42873
  color: var(--color-text-maxcontrast);
42653
42874
  }
42654
- .cn-dashboard-page__date-pill-custom[data-v-347a8f78] .action-item__menutoggle {
42875
+ .cn-dashboard-page__date-pill-custom[data-v-0270abf8] .action-item__menutoggle {
42655
42876
  min-width: 0;
42656
42877
  min-height: 0;
42657
42878
  padding: 0;
42658
42879
  background: transparent;
42659
42880
  border: none;
42660
42881
  }
42661
- .cn-dashboard-page__date-pill-custom[data-v-347a8f78] .button-vue,
42662
- .cn-dashboard-page__date-pill-custom[data-v-347a8f78] .button-vue__wrapper,
42663
- .cn-dashboard-page__date-pill-custom[data-v-347a8f78] .button-vue__icon {
42882
+ .cn-dashboard-page__date-pill-custom[data-v-0270abf8] .button-vue,
42883
+ .cn-dashboard-page__date-pill-custom[data-v-0270abf8] .button-vue__wrapper,
42884
+ .cn-dashboard-page__date-pill-custom[data-v-0270abf8] .button-vue__icon {
42664
42885
  width: auto !important;
42665
42886
  min-width: 0 !important;
42666
42887
  overflow: visible !important;
42667
42888
  }
42668
- .cn-dashboard-page__empty[data-v-347a8f78] {
42889
+ .cn-dashboard-page__empty[data-v-0270abf8] {
42669
42890
  padding: 60px 20px;
42670
42891
  }
42671
42892
 
42672
42893
  /* The page's view switch on a page without a header row: at the end of its
42673
42894
  own row, above the grids, where the header would have put it. */
42674
- .cn-dashboard-page__view-switch[data-v-347a8f78] {
42895
+ .cn-dashboard-page__view-switch[data-v-0270abf8] {
42675
42896
  display: flex;
42676
42897
  justify-content: flex-end;
42677
42898
  margin-bottom: 12px;
42678
42899
  }
42679
42900
 
42680
42901
  /* A view the switch shows with nothing to draw. */
42681
- .cn-page-view-region--empty[data-v-347a8f78] {
42902
+ .cn-page-view-region--empty[data-v-0270abf8] {
42682
42903
  padding: 40px 20px;
42683
42904
  }
42684
- .cn-dashboard-page__page-filters[data-v-347a8f78] {
42905
+ .cn-dashboard-page__page-filters[data-v-0270abf8] {
42685
42906
  display: flex;
42686
42907
  flex-wrap: wrap;
42687
42908
  gap: 16px;
42688
42909
  align-items: flex-end;
42689
42910
  margin-bottom: 12px;
42690
42911
  }
42691
- .cn-dashboard-page__page-filter[data-v-347a8f78] {
42912
+ .cn-dashboard-page__page-filter[data-v-0270abf8] {
42692
42913
  display: flex;
42693
42914
  flex-direction: column;
42694
42915
  gap: 4px;
42695
42916
  min-width: 200px;
42696
42917
  }
42697
- .cn-dashboard-page__page-filter-label[data-v-347a8f78] {
42918
+ .cn-dashboard-page__page-filter-label[data-v-0270abf8] {
42698
42919
  font-size: 0.85em;
42699
42920
  font-weight: 600;
42700
42921
  color: var(--color-text-maxcontrast);
42701
42922
  }
42702
- .cn-dashboard-page__widget-edit[data-v-347a8f78] {
42923
+ .cn-dashboard-page__widget-edit[data-v-0270abf8] {
42703
42924
  position: absolute;
42704
42925
  top: 4px;
42705
42926
  inset-inline-end: 4px;
@@ -42718,8 +42939,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42718
42939
  and centre the card. */
42719
42940
  /* `safe` centre so an overflowing tile does not spill out of the top, where
42720
42941
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
42721
- .cn-dashboard-page__card-fit[data-v-347a8f78] .cn-widget-wrapper__content,
42722
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-347a8f78] .cn-widget-wrapper__content {
42942
+ .cn-dashboard-page__card-fit[data-v-0270abf8] .cn-widget-wrapper__content,
42943
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-0270abf8] .cn-widget-wrapper__content {
42723
42944
  overflow: hidden;
42724
42945
  display: flex;
42725
42946
  flex-direction: column;
@@ -42735,7 +42956,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42735
42956
  shows up as a scrollbar the user has to drag to see the whole graph. Same
42736
42957
  shape as the card-fit rule above, minus the padding: chart tiles render
42737
42958
  `flush`, and apexcharts already draws its own margins. */
42738
- .cn-dashboard-page__chart-fit[data-v-347a8f78] .cn-widget-wrapper__content {
42959
+ .cn-dashboard-page__chart-fit[data-v-0270abf8] .cn-widget-wrapper__content {
42739
42960
  overflow: hidden;
42740
42961
  display: flex;
42741
42962
  flex-direction: column;
@@ -42745,13 +42966,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42745
42966
  /* Card content (stat / gauge / delta) must fit the tile width: let the
42746
42967
  widget shrink and its value/label truncate instead of pushing past the
42747
42968
  tile edge (the horizontal clip on long currency values). */
42748
- .cn-dashboard-page__card-fit[data-v-347a8f78] .cn-stat-widget,
42749
- .cn-dashboard-page__card-fit[data-v-347a8f78] .cn-gauge-widget,
42750
- .cn-dashboard-page__card-fit[data-v-347a8f78] .cn-delta-widget {
42969
+ .cn-dashboard-page__card-fit[data-v-0270abf8] .cn-stat-widget,
42970
+ .cn-dashboard-page__card-fit[data-v-0270abf8] .cn-gauge-widget,
42971
+ .cn-dashboard-page__card-fit[data-v-0270abf8] .cn-delta-widget {
42751
42972
  min-width: 0;
42752
42973
  max-width: 100%;
42753
42974
  }
42754
- .cn-dashboard-page__unknown[data-v-347a8f78] {
42975
+ .cn-dashboard-page__unknown[data-v-0270abf8] {
42755
42976
  display: flex;
42756
42977
  align-items: center;
42757
42978
  justify-content: center;
@@ -42762,31 +42983,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42762
42983
  }
42763
42984
 
42764
42985
  /* widget-ref content items */
42765
- .cn-dashboard-page__content[data-v-347a8f78] {
42986
+ .cn-dashboard-page__content[data-v-0270abf8] {
42766
42987
  display: flex;
42767
42988
  flex-direction: column;
42768
42989
  gap: 16px;
42769
42990
  }
42770
- .cn-dashboard-page__content-item[data-v-347a8f78] {
42991
+ .cn-dashboard-page__content-item[data-v-0270abf8] {
42771
42992
  width: 100%;
42772
42993
  }
42773
42994
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
42774
42995
  are 44px: the widget Actions menu and the KPI tiles. */
42775
42996
  @media (max-width: 640px) {
42776
- .cn-dashboard-page--board[data-v-347a8f78] .cn-widget-wrapper__actions .action-item__menutoggle,
42777
- .cn-dashboard-page--board[data-v-347a8f78] .cn-widget-wrapper__actions .button-vue {
42997
+ .cn-dashboard-page--board[data-v-0270abf8] .cn-widget-wrapper__actions .action-item__menutoggle,
42998
+ .cn-dashboard-page--board[data-v-0270abf8] .cn-widget-wrapper__actions .button-vue {
42778
42999
  min-height: 44px;
42779
43000
  }
42780
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-347a8f78] {
43001
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-0270abf8] {
42781
43002
  min-height: 44px;
42782
43003
  }
42783
43004
 
42784
43005
  /* The widget Actions menu shows its icon only, so the card title keeps
42785
43006
  the room; the name stays for assistive tech. */
42786
- .cn-dashboard-page--board[data-v-347a8f78] .cn-widget-wrapper__actions .action-item__menutoggle {
43007
+ .cn-dashboard-page--board[data-v-0270abf8] .cn-widget-wrapper__actions .action-item__menutoggle {
42787
43008
  min-width: 44px;
42788
43009
  }
42789
- .cn-dashboard-page--board[data-v-347a8f78] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
43010
+ .cn-dashboard-page--board[data-v-0270abf8] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
42790
43011
  position: absolute;
42791
43012
  width: 1px;
42792
43013
  height: 1px;
@@ -42798,7 +43019,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42798
43019
 
42799
43020
  /* What a registry widget reports for its card header (`header` event): the
42800
43021
  note beside the link ("3 in total") and one action, as on a detail page. */
42801
- .cn-dashboard-page__widget-count[data-v-347a8f78] {
43022
+ .cn-dashboard-page__widget-count[data-v-0270abf8] {
42802
43023
  align-self: center;
42803
43024
  padding: 1px 8px;
42804
43025
  border-radius: 10px;
@@ -42807,13 +43028,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42807
43028
  font-size: 13px;
42808
43029
  font-weight: 600;
42809
43030
  }
42810
- .cn-dashboard-page__widget-note[data-v-347a8f78] {
43031
+ .cn-dashboard-page__widget-note[data-v-0270abf8] {
42811
43032
  align-self: center;
42812
43033
  color: var(--color-text-maxcontrast);
42813
43034
  font-size: 14px;
42814
43035
  white-space: nowrap;
42815
43036
  }
42816
- .cn-dashboard-page__widget-action[data-v-347a8f78] {
43037
+ .cn-dashboard-page__widget-action[data-v-0270abf8] {
42817
43038
  display: inline-flex;
42818
43039
  align-items: center;
42819
43040
  align-self: center;
@@ -42829,7 +43050,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
42829
43050
  white-space: nowrap;
42830
43051
  cursor: pointer;
42831
43052
  }
42832
- .cn-dashboard-page__widget-action[data-v-347a8f78]:focus-visible {
43053
+ .cn-dashboard-page__widget-action[data-v-0270abf8]:focus-visible {
42833
43054
  outline: 2px solid var(--color-primary-element);
42834
43055
  outline-offset: 2px;
42835
43056
  }
@@ -43965,6 +44186,16 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
43965
44186
  }
43966
44187
 
43967
44188
 
44189
+ .cn-party-picker__refusal[data-v-7202e5ff] {
44190
+ margin: 4px 0 0;
44191
+ color: var(--color-error-text, var(--color-error));
44192
+ }
44193
+ .cn-party-picker__unavailable[data-v-7202e5ff] {
44194
+ margin: 4px 0 0;
44195
+ color: var(--color-text-maxcontrast);
44196
+ }
44197
+
44198
+
43968
44199
  .cn-address-search[data-v-5c8ae3f1] {
43969
44200
  width: 100%;
43970
44201
  }
@@ -44501,7 +44732,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44501
44732
  }
44502
44733
 
44503
44734
 
44504
- .cn-nc-dashboard-list__error[data-v-3c7adfed] {
44735
+ .cn-nc-dashboard-list__error[data-v-0cba0c1a] {
44505
44736
  margin: 0;
44506
44737
  padding: 8px 0;
44507
44738
  color: var(--color-text-maxcontrast);
@@ -45578,51 +45809,51 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45578
45809
  }
45579
45810
 
45580
45811
 
45581
- .cn-reports-page[data-v-327b60f8] {
45812
+ .cn-reports-page[data-v-6feca28f] {
45582
45813
  padding: 16px;
45583
45814
  }
45584
45815
 
45585
45816
  /* Clear the Nextcloud navigation toggle button (44px wide, absolutely
45586
45817
  positioned at the left edge of .app-content) plus 12px breathing room, as
45587
45818
  CnPageHeader does. Only the header shifts; the body keeps the full width. */
45588
- .cn-reports-page__header[data-v-327b60f8] {
45819
+ .cn-reports-page__header[data-v-6feca28f] {
45589
45820
  padding-inline-start: 56px;
45590
45821
  }
45591
- .cn-reports-page__title[data-v-327b60f8] {
45822
+ .cn-reports-page__title[data-v-6feca28f] {
45592
45823
  margin: 0 0 4px;
45593
45824
  }
45594
- .cn-reports-page__heading-row[data-v-327b60f8] {
45825
+ .cn-reports-page__heading-row[data-v-6feca28f] {
45595
45826
  display: flex;
45596
45827
  flex-wrap: wrap;
45597
45828
  align-items: flex-start;
45598
45829
  justify-content: space-between;
45599
45830
  gap: 12px 24px;
45600
45831
  }
45601
- .cn-reports-page__heading-row .cn-reports-page__title[data-v-327b60f8] {
45832
+ .cn-reports-page__heading-row .cn-reports-page__title[data-v-6feca28f] {
45602
45833
  flex: 1 1 320px;
45603
45834
  min-width: 0;
45604
45835
  }
45605
- .cn-reports-page__header-buttons[data-v-327b60f8] {
45836
+ .cn-reports-page__header-buttons[data-v-6feca28f] {
45606
45837
  display: flex;
45607
45838
  flex: none;
45608
45839
  flex-wrap: wrap;
45609
45840
  align-items: center;
45610
45841
  gap: 10px;
45611
45842
  }
45612
- .cn-reports-page__description[data-v-327b60f8] {
45843
+ .cn-reports-page__description[data-v-6feca28f] {
45613
45844
  margin: 0 0 16px;
45614
45845
  color: var(--color-text-maxcontrast);
45615
45846
  }
45616
- .cn-reports-page__filter[data-v-327b60f8] {
45847
+ .cn-reports-page__filter[data-v-6feca28f] {
45617
45848
  display: flex;
45618
45849
  align-items: center;
45619
45850
  gap: 8px;
45620
45851
  margin-bottom: 16px;
45621
45852
  }
45622
- .cn-reports-page__filter-select[data-v-327b60f8] {
45853
+ .cn-reports-page__filter-select[data-v-6feca28f] {
45623
45854
  min-width: 220px;
45624
45855
  }
45625
- .cn-reports-page__grid[data-v-327b60f8] {
45856
+ .cn-reports-page__grid[data-v-6feca28f] {
45626
45857
  display: grid;
45627
45858
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
45628
45859
  gap: 12px;
@@ -45630,7 +45861,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45630
45861
  margin: 0;
45631
45862
  padding: 0;
45632
45863
  }
45633
- .cn-reports-page__card[data-v-327b60f8] {
45864
+ .cn-reports-page__card[data-v-6feca28f] {
45634
45865
  display: flex;
45635
45866
  flex-direction: column;
45636
45867
  gap: 4px;
@@ -45641,22 +45872,22 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45641
45872
  color: inherit;
45642
45873
  text-decoration: none;
45643
45874
  }
45644
- .cn-reports-page__card[data-v-327b60f8]:hover,
45645
- .cn-reports-page__card[data-v-327b60f8]:focus {
45875
+ .cn-reports-page__card[data-v-6feca28f]:hover,
45876
+ .cn-reports-page__card[data-v-6feca28f]:focus {
45646
45877
  background-color: var(--color-background-hover);
45647
45878
  }
45648
- .cn-reports-page__card-title[data-v-327b60f8] {
45879
+ .cn-reports-page__card-title[data-v-6feca28f] {
45649
45880
  font-weight: bold;
45650
45881
  }
45651
- .cn-reports-page__card-description[data-v-327b60f8],
45652
- .cn-reports-page__card-category[data-v-327b60f8] {
45882
+ .cn-reports-page__card-description[data-v-6feca28f],
45883
+ .cn-reports-page__card-category[data-v-6feca28f] {
45653
45884
  color: var(--color-text-maxcontrast);
45654
45885
  font-size: 0.9em;
45655
45886
  }
45656
- .cn-reports-page__empty[data-v-327b60f8] {
45887
+ .cn-reports-page__empty[data-v-6feca28f] {
45657
45888
  color: var(--color-text-maxcontrast);
45658
45889
  }
45659
- .cn-reports-page__widgets[data-v-327b60f8] {
45890
+ .cn-reports-page__widgets[data-v-6feca28f] {
45660
45891
  margin-top: 20px;
45661
45892
  }
45662
45893