@conduction/nextcloud-vue 2.97.0 → 2.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue2.js +12 -0
  2. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js +11 -2
  4. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js.map +1 -1
  5. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +17 -0
  6. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  7. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  8. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue.js +1 -1
  9. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js.map +1 -1
  10. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js +1 -1
  11. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js.map +1 -1
  12. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  13. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +106 -2
  14. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  15. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  16. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue.js +9 -0
  17. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue.js.map +1 -0
  18. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue2.js +964 -0
  19. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue2.js.map +1 -0
  20. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue3.js +282 -0
  21. package/dist/esm/components/CnChecklistRunWidget/CnChecklistRunWidget.vue3.js.map +1 -0
  22. package/dist/esm/components/CnChecklistRunWidget/index.js +28 -0
  23. package/dist/esm/components/CnChecklistRunWidget/index.js.map +1 -0
  24. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  25. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +1 -0
  26. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  27. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  28. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +26 -8
  29. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  30. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  31. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +188 -5
  32. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  33. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +2 -1
  34. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  35. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
  36. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +3 -3
  37. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  38. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  39. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +1 -1
  40. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +27 -0
  41. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -1
  42. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +16 -2
  43. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -1
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +43 -3
  45. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  46. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  47. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +9 -0
  48. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js.map +1 -0
  49. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +239 -0
  50. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -0
  51. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +182 -0
  52. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -0
  53. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +9 -0
  54. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js.map +1 -0
  55. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js +265 -0
  56. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -0
  57. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +191 -0
  58. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -0
  59. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js +9 -0
  60. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js.map +1 -0
  61. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js +508 -0
  62. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js.map +1 -0
  63. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js +99 -0
  64. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js.map +1 -0
  65. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
  66. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +18 -70
  67. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
  68. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js +6 -44
  69. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
  70. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js +1 -1
  71. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js +83 -9
  72. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js.map +1 -1
  73. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js +80 -11
  74. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js.map +1 -1
  75. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +2 -0
  76. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  77. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js +9 -0
  78. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js.map +1 -0
  79. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js +472 -0
  80. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js.map +1 -0
  81. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js +231 -0
  82. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js.map +1 -0
  83. package/dist/esm/components/CnWorkingCalendarWidget/index.js +27 -0
  84. package/dist/esm/components/CnWorkingCalendarWidget/index.js.map +1 -0
  85. package/dist/esm/composables/indexSources.js +238 -2
  86. package/dist/esm/composables/indexSources.js.map +1 -1
  87. package/dist/esm/composables/useFlowStore.js +2 -1
  88. package/dist/esm/composables/useFlowStore.js.map +1 -1
  89. package/dist/esm/composables/useOrganisationStore.js +115 -0
  90. package/dist/esm/composables/useOrganisationStore.js.map +1 -0
  91. package/dist/esm/index.js +5 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/l10n/en.json.js +109 -1
  94. package/dist/esm/l10n/en.json.js.map +1 -1
  95. package/dist/esm/l10n/nl.json.js +138 -1
  96. package/dist/esm/l10n/nl.json.js.map +1 -1
  97. package/dist/esm/library-style.js +1 -1
  98. package/dist/esm/nextcloud-vue.css +1071 -274
  99. package/dist/esm/utils/builtInFormatters.js +34 -1
  100. package/dist/esm/utils/builtInFormatters.js.map +1 -1
  101. package/dist/esm/utils/libraryWidgetKeys.js +2 -0
  102. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  103. package/dist/esm/utils/matrixCells.js +158 -0
  104. package/dist/esm/utils/matrixCells.js.map +1 -0
  105. package/dist/esm/utils/nextcloudDirectory.js +121 -0
  106. package/dist/esm/utils/nextcloudDirectory.js.map +1 -0
  107. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  108. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  109. package/dist/esm/utils/workingCalendarMonth.js +85 -0
  110. package/dist/esm/utils/workingCalendarMonth.js.map +1 -0
  111. package/dist/nextcloud-vue.cjs.js +14888 -10014
  112. package/dist/nextcloud-vue.cjs.js.map +2 -2
  113. package/dist/nextcloud-vue.css +1071 -274
  114. package/l10n/en.json +109 -1
  115. package/l10n/nl.json +138 -1
  116. package/package.json +2 -2
  117. package/scripts/merge-l10n.js +196 -0
  118. package/src/components/CnActionsMenu/CnActionsMenu.vue +14 -1
  119. package/src/components/CnAppRoot/CnAppRoot.md +1 -0
  120. package/src/components/CnAppRoot/CnAppRoot.vue +17 -0
  121. package/src/components/CnBreadcrumbs/CnBreadcrumbs.vue +1 -0
  122. package/src/components/CnChartWidget/CnChartWidget.md +2 -1
  123. package/src/components/CnChartWidget/CnChartWidget.vue +106 -2
  124. package/src/components/CnChecklistRunWidget/CnChecklistRunWidget.vue +1269 -0
  125. package/src/components/CnChecklistRunWidget/index.js +27 -0
  126. package/src/components/CnDashboardPage/CnDashboardPage.vue +1 -0
  127. package/src/components/CnDataTable/CnDataTable.vue +26 -8
  128. package/src/components/CnDetailPage/CnDetailPage.md +48 -0
  129. package/src/components/CnDetailPage/CnDetailPage.vue +189 -5
  130. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +3 -3
  131. package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +38 -2
  132. package/src/components/CnIndexPage/CnIndexPage.md +28 -0
  133. package/src/components/CnIndexPage/CnIndexPage.vue +43 -3
  134. package/src/components/CnOrderedListField/CnOrderedListField.vue +458 -0
  135. package/src/components/CnOrderedListField/index.js +7 -0
  136. package/src/components/CnSettingsField/CnSettingsField.vue +449 -0
  137. package/src/components/CnSettingsField/index.js +4 -0
  138. package/src/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue +613 -0
  139. package/src/components/CnSettingsFieldsSection/index.js +4 -0
  140. package/src/components/CnSettingsPage/CnSettingsPage.vue +6 -86
  141. package/src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue +139 -10
  142. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +2 -0
  143. package/src/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue +725 -0
  144. package/src/components/CnWorkingCalendarWidget/index.js +26 -0
  145. package/src/components/index.js +5 -0
  146. package/src/composables/indexSources.js +237 -1
  147. package/src/composables/useFlowStore.js +2 -1
  148. package/src/composables/useOrganisationStore.js +111 -0
  149. package/src/css/badge.css +32 -16
  150. package/src/css/look-board-detail.css +80 -8
  151. package/src/css/look-board-index.css +52 -8
  152. package/src/css/look-board.css +219 -1
  153. package/src/index.js +5 -0
  154. package/src/schemas/app-manifest-v2.schema.json +33 -3
  155. package/src/utils/builtInFormatters.js +33 -0
  156. package/src/utils/libraryWidgetKeys.js +2 -0
  157. package/src/utils/matrixCells.js +154 -0
  158. package/src/utils/nextcloudDirectory.js +117 -0
  159. package/src/utils/validateManifestV2.compiled.js +3 -3
  160. package/src/utils/workingCalendarMonth.js +82 -0
@@ -208,6 +208,50 @@
208
208
  color: var(--color-primary-element-text);
209
209
  }
210
210
 
211
+ /* ---- Header action buttons (CnActionButtons) ----------------------------- */
212
+ /* The board draws a page's secondary actions as neutral 40px buttons: the
213
+ main background, a grey border, the main text at 600 (DqZaak "Bericht",
214
+ "Document", "Contact vastleggen", "Bewerken"). Nextcloud's secondary button
215
+ is a primary tint. The label hands its ink to --nldesign-color-on-surface,
216
+ which a theme that forces the body ink onto every span (thematiq) reads. */
217
+ .cn-look-board .cn-action-buttons .button-vue--secondary:not(.cn-look-nextcloud *),
218
+ .cn-look-board .cn-action-buttons .button-vue--vue-secondary:not(.cn-look-nextcloud *) {
219
+ --nldesign-color-on-surface: var(--color-main-text);
220
+ height: var(--cn-board-control-height);
221
+ min-height: var(--cn-board-control-height);
222
+ padding: 0 14px;
223
+ border: 1px solid var(--color-border-dark);
224
+ border-radius: var(--cn-board-control-radius);
225
+ background: var(--color-main-background);
226
+ color: var(--color-main-text);
227
+ font-size: 14px;
228
+ font-weight: 600;
229
+ }
230
+
231
+ /* Buttons 10px apart, each icon 16px with 8px to its label (DqZaak's header,
232
+ DqZaken's "Downloaden"); NcButton draws a 20px icon in a 30px slot. */
233
+ .cn-look-board .cn-action-buttons:not(.cn-look-nextcloud *) {
234
+ gap: 10px;
235
+ }
236
+
237
+ .cn-look-board .cn-action-buttons .button-vue .button-vue__icon:not(.cn-look-nextcloud *) {
238
+ width: 16px;
239
+ min-width: 16px;
240
+ height: 16px;
241
+ min-height: 16px;
242
+ margin-inline-end: 8px;
243
+ }
244
+
245
+ .cn-look-board .cn-action-buttons .button-vue .button-vue__icon:not(.cn-look-nextcloud *) svg {
246
+ width: 16px;
247
+ height: 16px;
248
+ }
249
+
250
+ .cn-look-board .cn-action-buttons .button-vue--secondary:not(.cn-look-nextcloud *):hover,
251
+ .cn-look-board .cn-action-buttons .button-vue--vue-secondary:not(.cn-look-nextcloud *):hover {
252
+ background: var(--color-background-hover);
253
+ }
254
+
211
255
  /* ---- The buildiq square ------------------------------------------------ */
212
256
  .cn-look-board .cn-buildiq-edit .cn-buildiq-edit__actions .button-vue {
213
257
  box-sizing: border-box;
@@ -220,6 +264,34 @@
220
264
  border-radius: var(--cn-board-control-radius);
221
265
  }
222
266
 
267
+ /* ---- The Actions menu trigger (CnActionsMenu) ---------------------------- */
268
+ /* A menu asked for as `secondary` ("Meer" in a detail header, "Acties" at the
269
+ end of a tab strip) is the board's neutral control: the main background, a
270
+ grey border, the main text at 600 (DqZaak), not Nextcloud's primary tint.
271
+ NcActions marks a secondary menu `action-item--secondary` on its root and
272
+ keeps a class given to it off, so the rule reads that marker. The label
273
+ hands its ink to --nldesign-color-on-surface for a theme that forces the
274
+ body ink onto every span (thematiq). */
275
+ .cn-look-board .action-item.action-item--secondary .action-item__menutoggle.button-vue--secondary:not(.cn-look-nextcloud *) {
276
+ --nldesign-color-on-surface: var(--color-main-text);
277
+ border: 1px solid var(--color-border-dark);
278
+ border-radius: var(--cn-board-control-radius);
279
+ background: var(--color-main-background);
280
+ color: var(--color-main-text);
281
+ font-size: 14px;
282
+ font-weight: 600;
283
+ }
284
+
285
+ .cn-look-board .action-item.action-item--secondary .action-item__menutoggle.button-vue--secondary:not(.cn-look-nextcloud *):hover {
286
+ background: var(--color-background-hover);
287
+ }
288
+
289
+ /* A trailing chevron ("Meer ⌄") follows the label, 6px after it. */
290
+ .cn-look-board .action-item.action-item--secondary .action-item__menutoggle:has(.chevron-down-icon) .button-vue__wrapper:not(.cn-look-nextcloud *) {
291
+ flex-direction: row-reverse;
292
+ gap: 6px;
293
+ }
294
+
223
295
  /* ---- The navigation ---------------------------------------------------- */
224
296
  .cn-look-board .app-navigation[data-testid="cn-nav"] {
225
297
  --app-navigation-padding: 0px;
@@ -441,6 +513,71 @@
441
513
  font-weight: 600;
442
514
  }
443
515
 
516
+ /* ---- Breadcrumbs (CnBreadcrumbs) ----------------------------------------- */
517
+ /* The board draws a trail as a line of 14px text, 8px apart: the crumbs that
518
+ lead somewhere as underlined links in the primary colour, the current one
519
+ as plain muted text (DqZaak "Alle zaken / 2026-0082"). NcBreadcrumbs draws
520
+ each crumb as a 34px tertiary button. The doubled classes outrank its
521
+ scoped rules; the ink goes through --nldesign-color-on-surface as well, for
522
+ a theme that forces the body ink onto every link and span (thematiq). */
523
+ .cn-look-board .cn-breadcrumbs.cn-breadcrumbs:not(.cn-look-nextcloud *) {
524
+ min-height: 0;
525
+ height: auto;
526
+ color: var(--color-text-maxcontrast);
527
+ font-size: 14px;
528
+ line-height: normal;
529
+ }
530
+
531
+ .cn-look-board .cn-breadcrumbs .breadcrumb__crumbs:not(.cn-look-nextcloud *) {
532
+ gap: 8px;
533
+ min-height: 0;
534
+ margin: 0;
535
+ padding: 0;
536
+ }
537
+
538
+ .cn-look-board .cn-breadcrumbs .vue-crumb.vue-crumb:not(.cn-look-nextcloud *) {
539
+ gap: 8px;
540
+ min-width: 0;
541
+ min-height: 0;
542
+ height: auto;
543
+ }
544
+
545
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue:not(.cn-look-nextcloud *) {
546
+ --nldesign-color-on-surface: var(--color-primary-element);
547
+ min-width: 0;
548
+ min-height: 0;
549
+ height: auto;
550
+ padding: 0;
551
+ border: 0;
552
+ background: transparent;
553
+ color: var(--color-primary-element);
554
+ font-size: 14px;
555
+ font-weight: 400;
556
+ line-height: inherit;
557
+ }
558
+
559
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue:not(.cn-look-nextcloud *) .button-vue__text {
560
+ padding: 0;
561
+ font-weight: inherit;
562
+ line-height: inherit;
563
+ text-decoration: underline;
564
+ }
565
+
566
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue[aria-current='page']:not(.cn-look-nextcloud *) {
567
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
568
+ color: var(--color-text-maxcontrast);
569
+ cursor: default;
570
+ }
571
+
572
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue[aria-current='page']:not(.cn-look-nextcloud *) .button-vue__text {
573
+ text-decoration: none;
574
+ }
575
+
576
+ .cn-look-board .cn-breadcrumbs .vue-crumb__separator:not(.cn-look-nextcloud *) {
577
+ margin: 0;
578
+ color: var(--color-text-maxcontrast);
579
+ }
580
+
444
581
  /* ---- Settings: header, cards in a grid, version card ------------------- */
445
582
  .cn-look-board .cn-admin-settings-shell__header:not(.cn-look-nextcloud *),
446
583
  .cn-look-board .cn-settings-page__header:not(.cn-look-nextcloud *) {
@@ -859,7 +996,26 @@
859
996
  ground ("Verzoek", "Nieuw"); the default look keeps the brighter
860
997
  primary-element text. The other tones already match the board. */
861
998
  .cn-look-board .cn-status-badge--primary:not(.cn-status-badge--solid):not(.cn-look-nextcloud *) {
862
- color: var(--color-primary-element-light-text);
999
+ --cn-status-badge-ink: var(--color-primary-element-light-text);
1000
+ color: var(--cn-status-badge-ink);
1001
+ }
1002
+
1003
+ /* Every board pill is 13px at 600 on a 3px 10px pad with a 12px corner
1004
+ (DqZaak's header pills, DqZaken's status column). */
1005
+ .cn-look-board .cn-status-badge:not(.cn-status-badge--small):not(.cn-look-nextcloud *) {
1006
+ padding: 3px 10px;
1007
+ border-radius: 12px;
1008
+ font-size: 13px;
1009
+ font-weight: 600;
1010
+ line-height: normal;
1011
+ }
1012
+
1013
+ /* A pill paints its own pairing of ink and fill. A theme that forces the body
1014
+ ink onto every span (thematiq's text rule, `!important` at id level) reads
1015
+ that ink from --nldesign-color-on-surface when the surface sets it, so the
1016
+ pill hands it its own ink: "In behandeling" stays purple on purple. */
1017
+ .cn-look-board .cn-status-badge:not(.cn-look-nextcloud *) {
1018
+ --nldesign-color-on-surface: var(--cn-status-badge-ink);
863
1019
  }
864
1020
 
865
1021
  /* ---- Date and age cells (screens-cell-date-parity) ---------------------- */
@@ -869,6 +1025,68 @@
869
1025
  font-weight: 600;
870
1026
  }
871
1027
 
1028
+ /* ---- Label and value pairs (CnDetailGrid) -------------------------------- */
1029
+ /* The board draws pairs as plain text, not as grey cards with an accent bar:
1030
+ the grid as a 13px muted label over a 15px value at weight 500 with a
1031
+ hairline under each pair (DqZaak "Zaakgegevens"), the horizontal layout as
1032
+ two columns of 14px text, the label column as wide as its longest label
1033
+ (the side cards). Both at the board's line height, 1.2, not Nextcloud's 1.5:
1034
+ a pair is 47px tall on the board. The muted label also hands its ink to
1035
+ --nldesign-color-on-surface, which a theme that forces the body ink onto
1036
+ every div (thematiq) reads. */
1037
+ .cn-look-board .cn-detail-grid.cn-detail-grid--grid:not(.cn-look-nextcloud *) {
1038
+ gap: 12px 24px;
1039
+ font-size: 15px;
1040
+ }
1041
+
1042
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal:not(.cn-look-nextcloud *) {
1043
+ display: grid;
1044
+ grid-template-columns: max-content 1fr;
1045
+ gap: 8px 16px;
1046
+ font-size: 14px;
1047
+ }
1048
+
1049
+ .cn-look-board .cn-detail-grid .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1050
+ gap: 3px;
1051
+ padding: 0;
1052
+ border-inline-start: none;
1053
+ border-radius: 0;
1054
+ background: none;
1055
+ }
1056
+
1057
+ .cn-look-board .cn-detail-grid.cn-detail-grid--grid .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1058
+ padding-bottom: 10px;
1059
+ border-bottom: 1px solid var(--cn-board-hairline);
1060
+ }
1061
+
1062
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1063
+ display: contents;
1064
+ }
1065
+
1066
+ .cn-look-board .cn-detail-grid .cn-detail-grid__label:not(.cn-look-nextcloud *) {
1067
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
1068
+ min-width: 0;
1069
+ color: var(--color-text-maxcontrast);
1070
+ font-size: 13px;
1071
+ font-weight: 400;
1072
+ line-height: 1.2;
1073
+ }
1074
+
1075
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__label:not(.cn-look-nextcloud *) {
1076
+ font-size: inherit;
1077
+ }
1078
+
1079
+ .cn-look-board .cn-detail-grid .cn-detail-grid__value:not(.cn-look-nextcloud *) {
1080
+ margin: 0;
1081
+ font-size: inherit;
1082
+ font-weight: 500;
1083
+ line-height: 1.2;
1084
+ }
1085
+
1086
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__value:not(.cn-look-nextcloud *) {
1087
+ font-weight: 400;
1088
+ }
1089
+
872
1090
  /* ---- Dashboard card titles --------------------------------------------- */
873
1091
  /* A card's title on a dashboard (and on the widgets under a reports page) is
874
1092
  the board's card h2: 17px weight 700 (boards PqMijnWerk, DcRapportages and
@@ -2063,10 +2281,15 @@
2063
2281
  outline-offset: 2px;
2064
2282
  }
2065
2283
 
2284
+ /* The selected chip is light on dark, so it hands its ink to
2285
+ --nldesign-color-on-surface: thematiq forces the body ink onto every span
2286
+ with `!important` and reads it from that property, which left the label
2287
+ dark on dark. */
2066
2288
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected,
2067
2289
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected:hover,
2068
2290
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active,
2069
2291
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active:hover {
2292
+ --nldesign-color-on-surface: var(--color-main-background);
2070
2293
  border-color: transparent;
2071
2294
  background: var(--color-main-text);
2072
2295
  color: var(--color-main-background);
@@ -2087,8 +2310,12 @@
2087
2310
  }
2088
2311
 
2089
2312
  .cn-look-board .cn-saved-views__chip--selected .cn-saved-views__chip-count,
2313
+ /* On the selected chip the count is a lighter bubble on the dark chip
2314
+ (DqZaken: #3d4047 on #1b1c1d); --cn-board-text-soft resolves to the main
2315
+ text, the chip's own colour, which hid the bubble. */
2090
2316
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active .cn-quick-filter-bar__count {
2091
- background: var(--cn-board-text-soft);
2317
+ --nldesign-color-on-surface: var(--color-primary-element-text);
2318
+ background: color-mix(in srgb, var(--color-main-background) 15%, var(--color-main-text));
2092
2319
  color: var(--color-primary-element-text);
2093
2320
  }
2094
2321
 
@@ -2360,12 +2587,16 @@
2360
2587
  border-radius: 0;
2361
2588
  }
2362
2589
 
2363
- /* The header row is near-white on the boards (#fafbfc), not the hover grey. */
2590
+ /* The header row is near-white on the boards (#fafbfc), not the hover grey,
2591
+ its labels 14px muted. The ink also goes to --nldesign-color-on-surface,
2592
+ which a theme that forces the body ink onto every span (thematiq) reads. */
2364
2593
  .cn-look-board .cn-table-container--board .cn-data-table th {
2594
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
2365
2595
  padding: 12px 16px;
2366
2596
  border-bottom: 0;
2367
2597
  background: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
2368
2598
  color: var(--color-text-maxcontrast);
2599
+ font-size: 14px;
2369
2600
  font-weight: 600;
2370
2601
  }
2371
2602
 
@@ -2376,6 +2607,20 @@
2376
2607
  font-size: 14px;
2377
2608
  }
2378
2609
 
2610
+ /* The board sets its table at the normal line height: a row with a title and
2611
+ a secondary line is 66px and the header row 50px (DqZaken). Nextcloud's 1.5
2612
+ made them 71px and 67px, and the header's sort button kept the 34px
2613
+ clickable area. */
2614
+ .cn-look-board .cn-table-container--board .cn-data-table {
2615
+ line-height: normal;
2616
+ }
2617
+
2618
+ .cn-look-board .cn-table-container--board .cn-data-table th .cn-table-header__sort {
2619
+ min-height: 0;
2620
+ height: auto;
2621
+ line-height: inherit;
2622
+ }
2623
+
2379
2624
  .cn-look-board .cn-table-container--board .cn-data-table .cn-table-row {
2380
2625
  border-bottom: 0;
2381
2626
  }
@@ -2431,7 +2676,9 @@
2431
2676
  margin-inline-start: 4px;
2432
2677
  }
2433
2678
 
2434
- /* The selection column: 18px checkboxes, 28px of content after 16px of padding.
2679
+ /* The selection column: 18px checkboxes, 28px of content between 16px of
2680
+ padding either side, 60px in all (DqZaken and 130 other boards; the title
2681
+ column starts 77px in).
2435
2682
  The box model is set with `!important` and the widths include the padding:
2436
2683
  Nextcloud's server.css sets `box-sizing: border-box` on everything under
2437
2684
  `#content[class*="app-"]`, an id selector no class rule outranks, so a plain
@@ -2439,9 +2686,9 @@
2439
2686
  header's checkbox showed as a stray bracket). */
2440
2687
  .cn-look-board .cn-table-container--board .cn-data-table .cn-table-col--checkbox {
2441
2688
  box-sizing: border-box !important;
2442
- width: 44px;
2443
- min-width: 44px;
2444
- padding-inline: 16px 0;
2689
+ width: 60px;
2690
+ min-width: 60px;
2691
+ padding-inline: 16px;
2445
2692
  text-align: start;
2446
2693
  }
2447
2694
 
@@ -2449,6 +2696,16 @@
2449
2696
  --icon-size: 18px;
2450
2697
  }
2451
2698
 
2699
+ /* The checkbox is the 18px box alone, as the board draws it: NcCheckboxRadioSwitch
2700
+ wraps it in a 34px clickable area with 4px 7px of padding, a 42px block that
2701
+ set every row's height (71px where DqZaken's rows are 66). The cell around it
2702
+ stays the click target's room: 44px wide, a full row high. */
2703
+ .cn-look-board .cn-table-container--board .cn-data-table .checkbox-radio-switch .checkbox-radio-switch__content {
2704
+ min-height: 0;
2705
+ height: auto;
2706
+ padding: 0;
2707
+ }
2708
+
2452
2709
  /* The title column: a 15px weight 600 link, the secondary line under it. */
2453
2710
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title {
2454
2711
  color: var(--color-main-text);
@@ -2459,6 +2716,7 @@
2459
2716
  }
2460
2717
 
2461
2718
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-table-cell__secondary {
2719
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
2462
2720
  color: var(--color-text-maxcontrast);
2463
2721
  font-size: 14px;
2464
2722
  font-weight: 400;
@@ -2500,10 +2758,14 @@
2500
2758
  gap: 10px;
2501
2759
  }
2502
2760
 
2761
+ /* The initials sit on the light primary tint in the primary ink, the board's
2762
+ person chip (DqZaken's Behandelaar, and most boards' people). */
2503
2763
  .cn-look-board .cn-table-container--board .cn-data-table .cn-cell-renderer__avatar-initials {
2504
- background: var(--color-background-dark);
2505
- color: var(--color-main-text);
2764
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
2765
+ background: var(--color-primary-element-light);
2766
+ color: var(--color-primary-element-light-text);
2506
2767
  font-size: 12px;
2768
+ font-weight: 700;
2507
2769
  }
2508
2770
 
2509
2771
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-cell-renderer__avatar-name {
@@ -4810,86 +5072,102 @@ a.cn-kpi-card--board * {
4810
5072
 
4811
5073
  /* Color variants */
4812
5074
  .cn-status-badge--default {
5075
+ --cn-status-badge-ink: var(--color-main-text);
4813
5076
  background-color: var(--color-background-dark);
4814
- color: var(--color-main-text);
5077
+ color: var(--cn-status-badge-ink);
4815
5078
  }
4816
5079
 
4817
5080
  .cn-status-badge--primary {
5081
+ --cn-status-badge-ink: var(--color-primary-element);
4818
5082
  background-color: var(--color-primary-element-light);
4819
- color: var(--color-primary-element);
5083
+ color: var(--cn-status-badge-ink);
4820
5084
  }
4821
5085
 
4822
5086
  .cn-status-badge--success {
5087
+ --cn-status-badge-ink: var(--color-success-text, var(--color-success));
4823
5088
  background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
4824
- color: var(--color-success-text, var(--color-success));
5089
+ color: var(--cn-status-badge-ink);
4825
5090
  }
4826
5091
 
4827
5092
  .cn-status-badge--warning {
5093
+ --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
4828
5094
  background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
4829
- color: var(--color-warning-text, var(--color-warning));
5095
+ color: var(--cn-status-badge-ink);
4830
5096
  }
4831
5097
 
4832
5098
  .cn-status-badge--error {
5099
+ --cn-status-badge-ink: var(--color-error-text, var(--color-error));
4833
5100
  background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
4834
- color: var(--color-error-text, var(--color-error));
5101
+ color: var(--cn-status-badge-ink);
4835
5102
  }
4836
5103
 
4837
5104
  .cn-status-badge--info {
5105
+ --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
4838
5106
  background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
4839
- color: var(--color-info-text, var(--color-info, #0082c9));
5107
+ color: var(--cn-status-badge-ink);
4840
5108
  }
4841
5109
 
4842
5110
  /* Work in progress ("In behandeling"), a board tone. */
4843
5111
  .cn-status-badge--purple {
5112
+ --cn-status-badge-ink: var(--cn-status-purple-text);
4844
5113
  background-color: var(--cn-status-purple-bg);
4845
- color: var(--cn-status-purple-text);
5114
+ color: var(--cn-status-badge-ink);
4846
5115
  }
4847
5116
 
4848
5117
  /* Handed on ("Omgezet naar een zaak"), a board tone. */
4849
5118
  .cn-status-badge--teal {
5119
+ --cn-status-badge-ink: var(--cn-status-teal-text);
4850
5120
  background-color: var(--cn-status-teal-bg);
4851
- color: var(--cn-status-teal-text);
5121
+ color: var(--cn-status-badge-ink);
4852
5122
  }
4853
5123
 
4854
5124
  /* Solid variants — solid background with white text for use on colored backgrounds */
4855
5125
  .cn-status-badge--solid.cn-status-badge--default {
5126
+ --cn-status-badge-ink: var(--color-main-text);
4856
5127
  background-color: var(--color-background-dark);
4857
- color: var(--color-main-text);
5128
+ color: var(--cn-status-badge-ink);
4858
5129
  }
4859
5130
 
4860
5131
  .cn-status-badge--solid.cn-status-badge--primary {
5132
+ --cn-status-badge-ink: white;
4861
5133
  background-color: var(--color-primary-element);
4862
- color: white;
5134
+ color: var(--cn-status-badge-ink);
4863
5135
  }
4864
5136
 
4865
5137
  .cn-status-badge--solid.cn-status-badge--success {
5138
+ --cn-status-badge-ink: white;
4866
5139
  background-color: var(--color-success);
4867
- color: white;
5140
+ color: var(--cn-status-badge-ink);
4868
5141
  }
4869
5142
 
4870
5143
  .cn-status-badge--solid.cn-status-badge--warning {
5144
+ --cn-status-badge-ink: var(--color-primary-text);
4871
5145
  background-color: var(--color-warning);
4872
- color: var(--color-primary-text);
5146
+ color: var(--cn-status-badge-ink);
4873
5147
  }
4874
5148
 
4875
5149
  .cn-status-badge--solid.cn-status-badge--error {
5150
+ --cn-status-badge-ink: white;
4876
5151
  background-color: var(--color-error);
4877
- color: white;
5152
+ color: var(--cn-status-badge-ink);
4878
5153
  }
4879
5154
 
4880
5155
  .cn-status-badge--solid.cn-status-badge--info {
5156
+ --cn-status-badge-ink: white;
4881
5157
  background-color: var(--color-info, #0082c9);
4882
- color: white;
5158
+ color: var(--cn-status-badge-ink);
4883
5159
  }
4884
5160
 
4885
5161
  .cn-status-badge--solid.cn-status-badge--purple {
5162
+ --cn-status-badge-ink: white;
4886
5163
  background-color: var(--cn-status-purple-text);
4887
- color: white;
5164
+ color: var(--cn-status-badge-ink);
4888
5165
  }
4889
5166
 
4890
5167
  .cn-status-badge--solid.cn-status-badge--teal {
5168
+ --cn-status-badge-ink: white;
4891
5169
  background-color: var(--cn-status-teal-text);
4892
- color: white;
5170
+ color: var(--cn-status-badge-ink);
4893
5171
  }
4894
5172
  /* ========================================
4895
5173
  @conduction/nextcloud-vue — Layout & Filter Utility Styles
@@ -7088,6 +7366,32 @@ a.cn-kpi-card--board * {
7088
7366
  margin-top: 16px;
7089
7367
  }
7090
7368
 
7369
+ /* ---- The stages bars (CnStagesWidget `variant: "bars"`) ---------------- */
7370
+ /* DqZaak's "Voortgang": the bars sit flush with the content edge (the
7371
+ widget's 4px pad is room for the 32px circles, which the bars variant does
7372
+ not draw), the label 8px under its bar and the date 8px under the label at
7373
+ the normal line height, open steps muted and the done and current ones in
7374
+ the main text. Each hands its ink to --nldesign-color-on-surface, which a
7375
+ theme that forces the body ink onto every span (thematiq) reads instead. */
7376
+ .cn-look-board .cn-stages-widget:has(> .cn-stages-widget__bars):not(.cn-look-nextcloud *) {
7377
+ padding: 0;
7378
+ }
7379
+
7380
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
7381
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7382
+ line-height: normal;
7383
+ }
7384
+
7385
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--done .cn-stages-widget__bar-label:not(.cn-look-nextcloud *),
7386
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--current .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
7387
+ --nldesign-color-on-surface: var(--color-main-text);
7388
+ }
7389
+
7390
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-date:not(.cn-look-nextcloud *) {
7391
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7392
+ line-height: normal;
7393
+ }
7394
+
7091
7395
  /* ---- The body and the side column ------------------------------------- */
7092
7396
 
7093
7397
  .cn-look-board.cn-detail-page--with-side {
@@ -7121,6 +7425,7 @@ a.cn-kpi-card--board * {
7121
7425
  The open tab overlaps that top border by 1px (the nav's -1px margin) and
7122
7426
  paints over it, so it flows into the card as a folder tab. */
7123
7427
  .cn-look-board .cn-tabs--board .cn-tabs__bar {
7428
+ align-items: flex-end;
7124
7429
  border-bottom: none;
7125
7430
  gap: 4px;
7126
7431
  position: relative;
@@ -7163,6 +7468,9 @@ a.cn-kpi-card--board * {
7163
7468
  row-gap: 4px;
7164
7469
  }
7165
7470
 
7471
+ /* `margin: 0`: a tab is a <button>, and Nextcloud's core stylesheet gives
7472
+ every `button:not(.button-vue)` `margin: 3px 3px 3px 0`, which put the strip
7473
+ 3px low and the tabs 7px apart instead of 4 (DqZaak "Zaakonderdelen"). */
7166
7474
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item {
7167
7475
  background-color: var(--color-background-dark);
7168
7476
  border: 1px solid var(--color-border-dark);
@@ -7170,6 +7478,7 @@ a.cn-kpi-card--board * {
7170
7478
  border-radius: 8px 8px 0 0;
7171
7479
  font-size: 14px;
7172
7480
  font-weight: 400;
7481
+ margin: 0;
7173
7482
  min-height: 34px;
7174
7483
  padding: 8px 12px;
7175
7484
  }
@@ -7203,9 +7512,12 @@ a.cn-kpi-card--board * {
7203
7512
  padding: 0 6px;
7204
7513
  }
7205
7514
 
7206
- /* The Actions button at the end of the strip, level with the tabs. */
7515
+ /* The Actions button at the end of the strip: at the top, 8px in from the
7516
+ end and 8px clear of the card, so the tabs, aligned to the bottom, sit 6px
7517
+ lower than the button (DqZaak "Acties"). */
7207
7518
  .cn-look-board .cn-tabs--board .cn-tabs__nav-end {
7208
7519
  align-self: flex-start;
7520
+ margin: 0 8px 8px 0;
7209
7521
  }
7210
7522
 
7211
7523
  .cn-look-board .cn-tabs--board .cn-tabs__nav-end .button-vue {
@@ -7263,21 +7575,26 @@ a.cn-kpi-card--board * {
7263
7575
 
7264
7576
  /* ---- Body cards and side cards ----------------------------------------- */
7265
7577
 
7578
+ /* A CnDetailCard takes the board card wherever it sits, not only on a detail
7579
+ page: a dashboard or a custom page that mounts one drew the Nextcloud card
7580
+ (a 12px 16px header over a rule). The doubled class keeps the specificity
7581
+ the page-scoped rule had. */
7582
+
7266
7583
  .cn-look-board .cn-detail-page .cn-widget-wrapper,
7267
- .cn-look-board .cn-detail-page .cn-detail-card {
7584
+ .cn-look-board .cn-detail-card.cn-detail-card:not(.cn-detail-card--chromeless) {
7268
7585
  background: var(--color-main-background);
7269
7586
  border: 1px solid var(--color-border);
7270
7587
  border-radius: var(--cn-board-card-radius);
7271
7588
  }
7272
7589
 
7273
7590
  .cn-look-board .cn-detail-page .cn-widget-wrapper__header,
7274
- .cn-look-board .cn-detail-page .cn-detail-card__header {
7591
+ .cn-look-board .cn-detail-card .cn-detail-card__header {
7275
7592
  border-bottom: none;
7276
7593
  padding: 20px 22px 0;
7277
7594
  }
7278
7595
 
7279
7596
  .cn-look-board .cn-detail-page .cn-widget-wrapper__title,
7280
- .cn-look-board .cn-detail-page .cn-detail-card__title {
7597
+ .cn-look-board .cn-detail-card .cn-detail-card__title {
7281
7598
  font-size: var(--cn-board-heading-size);
7282
7599
  font-weight: 700;
7283
7600
  line-height: 1.3;
@@ -7287,7 +7604,7 @@ a.cn-kpi-card--board * {
7287
7604
  padding: 12px 22px 20px;
7288
7605
  }
7289
7606
 
7290
- .cn-look-board .cn-detail-page .cn-detail-card__content {
7607
+ .cn-look-board .cn-detail-card .cn-detail-card__content {
7291
7608
  padding: 12px 22px 20px;
7292
7609
  }
7293
7610
 
@@ -7334,10 +7651,12 @@ a.cn-kpi-card--board * {
7334
7651
  font-weight: 500;
7335
7652
  }
7336
7653
 
7337
- /* Side cards: the heading is a 15px muted label, not a title. */
7654
+ /* Side cards: the heading is a 15px muted label, not a title. The tone
7655
+ carries `!important` against a theme that colours every h3 that way
7656
+ (thematiq's heading colour). */
7338
7657
  .cn-look-board .cn-detail-page__side .cn-widget-wrapper__title,
7339
7658
  .cn-look-board .cn-detail-page__side .cn-detail-card__title {
7340
- color: var(--color-text-maxcontrast);
7659
+ color: var(--color-text-maxcontrast) !important;
7341
7660
  font-size: var(--cn-board-side-heading-size);
7342
7661
  font-weight: 600;
7343
7662
  }
@@ -7392,17 +7711,23 @@ a.cn-kpi-card--board * {
7392
7711
 
7393
7712
  /* ---- The next-step card ------------------------------------------------- */
7394
7713
 
7714
+ /* The board sets the card at the browser's normal line height: a step row is
7715
+ the 20px marker, 28px apart (DqZaak "Wat nu?"). */
7395
7716
  .cn-look-board .cn-next-step-card--board {
7396
7717
  border-radius: 12px;
7397
7718
  gap: 16px 32px;
7719
+ line-height: normal;
7398
7720
  padding: 20px 24px 20px 28px;
7399
7721
  }
7400
7722
 
7723
+ /* The kicker keeps its tone under a theme that colours every h3 with
7724
+ `!important` (thematiq's heading colour); only `!important` beats it. */
7401
7725
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__title.cn-next-step-card__title {
7402
- color: var(--color-primary-element-light-text);
7726
+ color: var(--color-primary-element-light-text) !important;
7403
7727
  font-size: 13px !important;
7404
7728
  font-weight: 700;
7405
7729
  letter-spacing: 0.06em;
7730
+ line-height: normal;
7406
7731
  text-transform: uppercase;
7407
7732
  }
7408
7733
 
@@ -7433,11 +7758,36 @@ a.cn-kpi-card--board * {
7433
7758
  padding: 0 20px;
7434
7759
  }
7435
7760
 
7761
+ /* The label alone sets the width (DqZaak: 198px for "Verder met beoordelen"):
7762
+ NcButton pads its text 4px a side inside the button's own padding, from a
7763
+ rule that reaches it through `:has()`, hence the doubled class. */
7764
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__side .button-vue .button-vue__text.button-vue__text {
7765
+ margin-inline: 0;
7766
+ padding-inline: 0;
7767
+ }
7768
+
7436
7769
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__after {
7437
7770
  color: var(--color-text-maxcontrast);
7438
7771
  font-size: 13px;
7439
7772
  }
7440
7773
 
7774
+ /* Done and open steps are muted, the current one in the main text. Each hands
7775
+ its ink to --nldesign-color-on-surface, which a theme that forces the body
7776
+ ink onto every li and span (thematiq) reads instead. */
7777
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item,
7778
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__hint,
7779
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__after {
7780
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7781
+ }
7782
+
7783
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current {
7784
+ --nldesign-color-on-surface: var(--color-main-text);
7785
+ }
7786
+
7787
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current .cn-next-step-card__hint {
7788
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7789
+ }
7790
+
7441
7791
  /* ---- History: the activity tab ------------------------------------------ */
7442
7792
 
7443
7793
  .cn-look-board .cn-activity-tab--board .cn-activity-tab__board-head {
@@ -9297,7 +9647,7 @@ a.cn-kpi-card--board * {
9297
9647
  }
9298
9648
 
9299
9649
 
9300
- .cn-chart-widget[data-v-b7813930] {
9650
+ .cn-chart-widget[data-v-0b737464] {
9301
9651
  width: 100%;
9302
9652
  /* A chart FITS its container — it is never a scroll region. apexcharts
9303
9653
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -9319,13 +9669,13 @@ a.cn-kpi-card--board * {
9319
9669
  takes what is left, so the chart is sized by the box rather than sizing it.
9320
9670
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
9321
9671
  the thing that produces the overflow it was meant to prevent. */
9322
- .cn-chart-widget--fit[data-v-b7813930] {
9672
+ .cn-chart-widget--fit[data-v-0b737464] {
9323
9673
  height: 100%;
9324
9674
  min-height: 0;
9325
9675
  display: flex;
9326
9676
  flex-direction: column;
9327
9677
  }
9328
- .cn-chart-widget__canvas[data-v-b7813930] {
9678
+ .cn-chart-widget__canvas[data-v-0b737464] {
9329
9679
  min-width: 0;
9330
9680
  max-width: 100%;
9331
9681
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -9338,14 +9688,14 @@ a.cn-kpi-card--board * {
9338
9688
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
9339
9689
  minimum, which beats the container when the container is narrower. Cap the
9340
9690
  painted box so the inline width cannot push past the widget's border. */
9341
- .cn-chart-widget[data-v-b7813930] .apexcharts-canvas,
9342
- .cn-chart-widget[data-v-b7813930] .apexcharts-canvas svg {
9691
+ .cn-chart-widget[data-v-0b737464] .apexcharts-canvas,
9692
+ .cn-chart-widget[data-v-0b737464] .apexcharts-canvas svg {
9343
9693
  max-width: 100%;
9344
9694
  }
9345
9695
 
9346
9696
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
9347
9697
  descender space under the chart. */
9348
- .cn-chart-widget[data-v-b7813930] .apexcharts-canvas svg {
9698
+ .cn-chart-widget[data-v-0b737464] .apexcharts-canvas svg {
9349
9699
  display: block;
9350
9700
  }
9351
9701
 
@@ -9353,24 +9703,24 @@ a.cn-kpi-card--board * {
9353
9703
  would grow to its content, i.e. to the chart, and the percentage height would
9354
9704
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
9355
9705
  sub-pixel rounding difference from reintroducing a scrollbar. */
9356
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-b7813930] {
9706
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-0b737464] {
9357
9707
  flex: 1 1 0;
9358
9708
  min-height: 0;
9359
9709
  overflow: hidden;
9360
9710
  }
9361
- .cn-chart-widget__fallback[data-v-b7813930] {
9711
+ .cn-chart-widget__fallback[data-v-0b737464] {
9362
9712
  display: flex;
9363
9713
  align-items: center;
9364
9714
  justify-content: center;
9365
9715
  min-height: 150px;
9366
9716
  color: var(--color-text-maxcontrast);
9367
9717
  }
9368
- .cn-chart-widget__html[data-v-b7813930] {
9718
+ .cn-chart-widget__html[data-v-0b737464] {
9369
9719
  display: flex;
9370
9720
  flex-direction: column;
9371
9721
  gap: 12px;
9372
9722
  }
9373
- .cn-chart-widget__bar-list[data-v-b7813930] {
9723
+ .cn-chart-widget__bar-list[data-v-0b737464] {
9374
9724
  display: flex;
9375
9725
  flex-direction: column;
9376
9726
  gap: 10px;
@@ -9378,7 +9728,7 @@ a.cn-kpi-card--board * {
9378
9728
  margin: 0;
9379
9729
  padding: 0;
9380
9730
  }
9381
- .cn-chart-widget__bar-line[data-v-b7813930] {
9731
+ .cn-chart-widget__bar-line[data-v-0b737464] {
9382
9732
  align-items: center;
9383
9733
  background: none;
9384
9734
  border: 0;
@@ -9393,93 +9743,93 @@ a.cn-kpi-card--board * {
9393
9743
  text-align: start;
9394
9744
  width: 100%;
9395
9745
  }
9396
- .cn-chart-widget__bar-line--drill[data-v-b7813930] {
9746
+ .cn-chart-widget__bar-line--drill[data-v-0b737464] {
9397
9747
  border-radius: var(--border-radius-small, 4px);
9398
9748
  cursor: pointer;
9399
9749
  }
9400
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-b7813930],
9401
- .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-b7813930] {
9750
+ .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-0b737464],
9751
+ .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-0b737464] {
9402
9752
  text-decoration: underline;
9403
9753
  }
9404
- .cn-chart-widget__bar-label[data-v-b7813930] {
9754
+ .cn-chart-widget__bar-label[data-v-0b737464] {
9405
9755
  overflow: hidden;
9406
9756
  text-overflow: ellipsis;
9407
9757
  white-space: nowrap;
9408
9758
  }
9409
- .cn-chart-widget__bar-track[data-v-b7813930] {
9759
+ .cn-chart-widget__bar-track[data-v-0b737464] {
9410
9760
  background: var(--color-background-dark);
9411
9761
  border-radius: 4px;
9412
9762
  display: block;
9413
9763
  height: 14px;
9414
9764
  overflow: hidden;
9415
9765
  }
9416
- .cn-chart-widget__bar-fill[data-v-b7813930] {
9766
+ .cn-chart-widget__bar-fill[data-v-0b737464] {
9417
9767
  background: var(--color-primary-element);
9418
9768
  display: block;
9419
9769
  height: 100%;
9420
9770
  }
9421
- .cn-chart-widget__bar-value[data-v-b7813930] {
9771
+ .cn-chart-widget__bar-value[data-v-0b737464] {
9422
9772
  font-weight: 600;
9423
9773
  text-align: end;
9424
9774
  white-space: nowrap;
9425
9775
  }
9426
- .cn-chart-widget__footnote[data-v-b7813930] {
9776
+ .cn-chart-widget__footnote[data-v-0b737464] {
9427
9777
  color: var(--color-text-maxcontrast);
9428
9778
  margin: 0;
9429
9779
  }
9430
- .cn-chart-widget__matrix[data-v-b7813930] {
9780
+ .cn-chart-widget__matrix[data-v-0b737464] {
9431
9781
  display: grid;
9432
9782
  gap: 4px;
9433
9783
  }
9434
- .cn-chart-widget__matrix-row[data-v-b7813930] {
9784
+ .cn-chart-widget__matrix-row[data-v-0b737464] {
9435
9785
  display: contents;
9436
9786
  }
9437
- .cn-chart-widget__matrix-head[data-v-b7813930] {
9787
+ .cn-chart-widget__matrix-head[data-v-0b737464] {
9438
9788
  color: var(--color-text-maxcontrast);
9439
9789
  padding: 6px;
9440
9790
  }
9441
- .cn-chart-widget__matrix-label[data-v-b7813930] {
9791
+ .cn-chart-widget__matrix-label[data-v-0b737464] {
9442
9792
  padding: 10px 6px;
9443
9793
  }
9444
- .cn-chart-widget__matrix-cell[data-v-b7813930] {
9794
+ .cn-chart-widget__matrix-cell[data-v-0b737464] {
9445
9795
  border-radius: 6px;
9446
9796
  padding: 10px;
9447
9797
  text-align: center;
9448
9798
  }
9449
- .cn-chart-widget__matrix-cell--success[data-v-b7813930] {
9799
+ .cn-chart-widget__matrix-cell--success[data-v-0b737464] {
9450
9800
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
9451
9801
  }
9452
- .cn-chart-widget__matrix-cell--warning[data-v-b7813930] {
9802
+ .cn-chart-widget__matrix-cell--warning[data-v-0b737464] {
9453
9803
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
9454
9804
  }
9455
- .cn-chart-widget__matrix-cell--error[data-v-b7813930] {
9805
+ .cn-chart-widget__matrix-cell--error[data-v-0b737464] {
9456
9806
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
9457
9807
  }
9458
- .cn-chart-widget__matrix-cell--danger[data-v-b7813930] {
9808
+ .cn-chart-widget__matrix-cell--danger[data-v-0b737464] {
9459
9809
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
9460
9810
  }
9461
- .cn-chart-widget__matrix-cell--current[data-v-b7813930] {
9811
+ .cn-chart-widget__matrix-cell--current[data-v-0b737464] {
9462
9812
  font-weight: 700;
9463
9813
  outline: 3px solid var(--color-primary-element);
9464
9814
  outline-offset: -3px;
9465
9815
  }
9466
- .cn-chart-widget__matrix-cell--1[data-v-b7813930] {
9816
+ .cn-chart-widget__matrix-cell--1[data-v-0b737464] {
9467
9817
  background: var(--color-primary-element-light);
9468
9818
  color: var(--color-primary-element-light-text);
9469
9819
  }
9470
- .cn-chart-widget__matrix-cell--2[data-v-b7813930] {
9820
+ .cn-chart-widget__matrix-cell--2[data-v-0b737464] {
9471
9821
  background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
9472
9822
  color: var(--color-main-text);
9473
9823
  }
9474
- .cn-chart-widget__matrix-cell--3[data-v-b7813930] {
9824
+ .cn-chart-widget__matrix-cell--3[data-v-0b737464] {
9475
9825
  background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
9476
9826
  color: var(--color-primary-element-text);
9477
9827
  }
9478
- .cn-chart-widget__matrix-cell--4[data-v-b7813930] {
9828
+ .cn-chart-widget__matrix-cell--4[data-v-0b737464] {
9479
9829
  background: var(--color-primary-element);
9480
9830
  color: var(--color-primary-element-text);
9481
9831
  }
9482
- .cn-chart-widget__empty[data-v-b7813930] {
9832
+ .cn-chart-widget__empty[data-v-0b737464] {
9483
9833
  display: flex;
9484
9834
  align-items: center;
9485
9835
  justify-content: center;
@@ -9494,25 +9844,25 @@ a.cn-kpi-card--board * {
9494
9844
  content-sized case; in fit mode they take the leftover space and centre in it
9495
9845
  instead, since the floor would overflow a short tile. Declared after the base
9496
9846
  rules so the cascade order matches specificity (no-descending-specificity). */
9497
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-b7813930],
9498
- .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-b7813930] {
9847
+ .cn-chart-widget--fit .cn-chart-widget__empty[data-v-0b737464],
9848
+ .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-0b737464] {
9499
9849
  flex: 1 1 0;
9500
9850
  min-height: 0;
9501
9851
  }
9502
- .cn-chart-widget__error[data-v-b7813930] {
9852
+ .cn-chart-widget__error[data-v-0b737464] {
9503
9853
  font-size: 14px;
9504
9854
  margin: 0;
9505
9855
  }
9506
9856
 
9507
9857
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
9508
9858
  mirroring the dashboard date-range pill styling. */
9509
- .cn-chart-widget__views[data-v-b7813930] {
9859
+ .cn-chart-widget__views[data-v-0b737464] {
9510
9860
  display: flex;
9511
9861
  gap: 4px;
9512
9862
  margin-bottom: 6px;
9513
9863
  justify-content: flex-end;
9514
9864
  }
9515
- .cn-chart-widget__view-pill[data-v-b7813930] {
9865
+ .cn-chart-widget__view-pill[data-v-0b737464] {
9516
9866
  padding: 2px 10px;
9517
9867
  border: 1px solid var(--color-border);
9518
9868
  border-radius: 999px;
@@ -9521,7 +9871,7 @@ a.cn-kpi-card--board * {
9521
9871
  font-size: 12px;
9522
9872
  cursor: pointer;
9523
9873
  }
9524
- .cn-chart-widget__view-pill--active[data-v-b7813930] {
9874
+ .cn-chart-widget__view-pill--active[data-v-0b737464] {
9525
9875
  background: var(--color-primary-element-light, #aad2ed);
9526
9876
  color: var(--color-main-text);
9527
9877
  border-color: var(--color-primary-element, #0082c9);
@@ -9550,8 +9900,8 @@ a.cn-kpi-card--board * {
9550
9900
  each override below therefore carries one more class than the apexcharts rule
9551
9901
  it replaces, and holds even without the scope attribute this block compiles
9552
9902
  with. */
9553
- .cn-chart-widget[data-v-b7813930] .apexcharts-tooltip.apexcharts-theme-light,
9554
- .cn-chart-widget[data-v-b7813930] .apexcharts-tooltip.apexcharts-theme-dark {
9903
+ .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-light,
9904
+ .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-dark {
9555
9905
  background: var(--color-main-background);
9556
9906
  border: 1px solid var(--color-border);
9557
9907
  color: var(--color-main-text);
@@ -9560,8 +9910,8 @@ a.cn-kpi-card--board * {
9560
9910
 
9561
9911
  /* The title row is the date/category header ("Aug 26"). Its own background is
9562
9912
  what made it unreadable rather than merely off-theme. */
9563
- .cn-chart-widget[data-v-b7813930] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
9564
- .cn-chart-widget[data-v-b7813930] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
9913
+ .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
9914
+ .cn-chart-widget[data-v-0b737464] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
9565
9915
  background: var(--color-background-hover);
9566
9916
  border-bottom: 1px solid var(--color-border);
9567
9917
  color: var(--color-main-text);
@@ -9570,8 +9920,8 @@ a.cn-kpi-card--board * {
9570
9920
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
9571
9921
  here and only overrides them for its dark theme, so the base rule has to be
9572
9922
  replaced too — not just the theme variants. */
9573
- .cn-chart-widget[data-v-b7813930] .apexcharts-xaxistooltip,
9574
- .cn-chart-widget[data-v-b7813930] .apexcharts-yaxistooltip {
9923
+ .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip,
9924
+ .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip {
9575
9925
  background: var(--color-main-background);
9576
9926
  border: 1px solid var(--color-border);
9577
9927
  color: var(--color-main-text);
@@ -9580,55 +9930,55 @@ a.cn-kpi-card--board * {
9580
9930
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
9581
9931
  edge, `::after` the fill. Both need the tokens the box above uses, or the
9582
9932
  arrow keeps the old palette and reads as a stray light wedge. */
9583
- .cn-chart-widget[data-v-b7813930] .apexcharts-xaxistooltip-bottom::after,
9584
- .cn-chart-widget[data-v-b7813930] .apexcharts-xaxistooltip-top::after {
9933
+ .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-bottom::after,
9934
+ .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-top::after {
9585
9935
  border-bottom-color: var(--color-main-background);
9586
9936
  border-top-color: var(--color-main-background);
9587
9937
  }
9588
- .cn-chart-widget[data-v-b7813930] .apexcharts-xaxistooltip-bottom::before,
9589
- .cn-chart-widget[data-v-b7813930] .apexcharts-xaxistooltip-top::before {
9938
+ .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-bottom::before,
9939
+ .cn-chart-widget[data-v-0b737464] .apexcharts-xaxistooltip-top::before {
9590
9940
  border-bottom-color: var(--color-border);
9591
9941
  border-top-color: var(--color-border);
9592
9942
  }
9593
- .cn-chart-widget[data-v-b7813930] .apexcharts-yaxistooltip-left::after,
9594
- .cn-chart-widget[data-v-b7813930] .apexcharts-yaxistooltip-right::after {
9943
+ .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-left::after,
9944
+ .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-right::after {
9595
9945
  border-left-color: var(--color-main-background);
9596
9946
  border-right-color: var(--color-main-background);
9597
9947
  }
9598
- .cn-chart-widget[data-v-b7813930] .apexcharts-yaxistooltip-left::before,
9599
- .cn-chart-widget[data-v-b7813930] .apexcharts-yaxistooltip-right::before {
9948
+ .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-left::before,
9949
+ .cn-chart-widget[data-v-0b737464] .apexcharts-yaxistooltip-right::before {
9600
9950
  border-left-color: var(--color-border);
9601
9951
  border-right-color: var(--color-border);
9602
9952
  }
9603
9953
 
9604
9954
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
9605
9955
  hardcoded `#fff` panel under inherited near-white text. */
9606
- .cn-chart-widget[data-v-b7813930] .apexcharts-menu {
9956
+ .cn-chart-widget[data-v-0b737464] .apexcharts-menu {
9607
9957
  background: var(--color-main-background);
9608
9958
  border: 1px solid var(--color-border);
9609
9959
  color: var(--color-main-text);
9610
9960
  }
9611
- .cn-chart-widget[data-v-b7813930] .apexcharts-menu .apexcharts-menu-item:hover {
9961
+ .cn-chart-widget[data-v-0b737464] .apexcharts-menu .apexcharts-menu-item:hover {
9612
9962
  background: var(--color-background-hover);
9613
9963
  }
9614
9964
 
9615
9965
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
9616
9966
  vanishes against a dark background. One selector per icon class, matching
9617
9967
  apexcharts' own list, to clear its (0,3,1) hover rules. */
9618
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-menu-icon svg,
9619
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-reset-icon svg,
9620
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-selection-icon svg,
9621
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoom-icon svg,
9622
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
9623
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
9968
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-menu-icon svg,
9969
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-reset-icon svg,
9970
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-selection-icon svg,
9971
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoom-icon svg,
9972
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
9973
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
9624
9974
  fill: var(--color-text-maxcontrast);
9625
9975
  }
9626
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
9627
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
9628
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
9629
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
9630
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
9631
- .cn-chart-widget[data-v-b7813930] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
9976
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
9977
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
9978
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
9979
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
9980
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
9981
+ .cn-chart-widget[data-v-0b737464] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
9632
9982
  fill: var(--color-main-text);
9633
9983
  }
9634
9984
 
@@ -23528,86 +23878,102 @@ a.cn-kpi-card--board * {
23528
23878
 
23529
23879
  /* Color variants */
23530
23880
  .cn-status-badge--default {
23881
+ --cn-status-badge-ink: var(--color-main-text);
23531
23882
  background-color: var(--color-background-dark);
23532
- color: var(--color-main-text);
23883
+ color: var(--cn-status-badge-ink);
23533
23884
  }
23534
23885
 
23535
23886
  .cn-status-badge--primary {
23887
+ --cn-status-badge-ink: var(--color-primary-element);
23536
23888
  background-color: var(--color-primary-element-light);
23537
- color: var(--color-primary-element);
23889
+ color: var(--cn-status-badge-ink);
23538
23890
  }
23539
23891
 
23540
23892
  .cn-status-badge--success {
23893
+ --cn-status-badge-ink: var(--color-success-text, var(--color-success));
23541
23894
  background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
23542
- color: var(--color-success-text, var(--color-success));
23895
+ color: var(--cn-status-badge-ink);
23543
23896
  }
23544
23897
 
23545
23898
  .cn-status-badge--warning {
23899
+ --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
23546
23900
  background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
23547
- color: var(--color-warning-text, var(--color-warning));
23901
+ color: var(--cn-status-badge-ink);
23548
23902
  }
23549
23903
 
23550
23904
  .cn-status-badge--error {
23905
+ --cn-status-badge-ink: var(--color-error-text, var(--color-error));
23551
23906
  background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
23552
- color: var(--color-error-text, var(--color-error));
23907
+ color: var(--cn-status-badge-ink);
23553
23908
  }
23554
23909
 
23555
23910
  .cn-status-badge--info {
23911
+ --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
23556
23912
  background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
23557
- color: var(--color-info-text, var(--color-info, #0082c9));
23913
+ color: var(--cn-status-badge-ink);
23558
23914
  }
23559
23915
 
23560
23916
  /* Work in progress ("In behandeling"), a board tone. */
23561
23917
  .cn-status-badge--purple {
23918
+ --cn-status-badge-ink: var(--cn-status-purple-text);
23562
23919
  background-color: var(--cn-status-purple-bg);
23563
- color: var(--cn-status-purple-text);
23920
+ color: var(--cn-status-badge-ink);
23564
23921
  }
23565
23922
 
23566
23923
  /* Handed on ("Omgezet naar een zaak"), a board tone. */
23567
23924
  .cn-status-badge--teal {
23925
+ --cn-status-badge-ink: var(--cn-status-teal-text);
23568
23926
  background-color: var(--cn-status-teal-bg);
23569
- color: var(--cn-status-teal-text);
23927
+ color: var(--cn-status-badge-ink);
23570
23928
  }
23571
23929
 
23572
23930
  /* Solid variants — solid background with white text for use on colored backgrounds */
23573
23931
  .cn-status-badge--solid.cn-status-badge--default {
23932
+ --cn-status-badge-ink: var(--color-main-text);
23574
23933
  background-color: var(--color-background-dark);
23575
- color: var(--color-main-text);
23934
+ color: var(--cn-status-badge-ink);
23576
23935
  }
23577
23936
 
23578
23937
  .cn-status-badge--solid.cn-status-badge--primary {
23938
+ --cn-status-badge-ink: white;
23579
23939
  background-color: var(--color-primary-element);
23580
- color: white;
23940
+ color: var(--cn-status-badge-ink);
23581
23941
  }
23582
23942
 
23583
23943
  .cn-status-badge--solid.cn-status-badge--success {
23944
+ --cn-status-badge-ink: white;
23584
23945
  background-color: var(--color-success);
23585
- color: white;
23946
+ color: var(--cn-status-badge-ink);
23586
23947
  }
23587
23948
 
23588
23949
  .cn-status-badge--solid.cn-status-badge--warning {
23950
+ --cn-status-badge-ink: var(--color-primary-text);
23589
23951
  background-color: var(--color-warning);
23590
- color: var(--color-primary-text);
23952
+ color: var(--cn-status-badge-ink);
23591
23953
  }
23592
23954
 
23593
23955
  .cn-status-badge--solid.cn-status-badge--error {
23956
+ --cn-status-badge-ink: white;
23594
23957
  background-color: var(--color-error);
23595
- color: white;
23958
+ color: var(--cn-status-badge-ink);
23596
23959
  }
23597
23960
 
23598
23961
  .cn-status-badge--solid.cn-status-badge--info {
23962
+ --cn-status-badge-ink: white;
23599
23963
  background-color: var(--color-info, #0082c9);
23600
- color: white;
23964
+ color: var(--cn-status-badge-ink);
23601
23965
  }
23602
23966
 
23603
23967
  .cn-status-badge--solid.cn-status-badge--purple {
23968
+ --cn-status-badge-ink: white;
23604
23969
  background-color: var(--cn-status-purple-text);
23605
- color: white;
23970
+ color: var(--cn-status-badge-ink);
23606
23971
  }
23607
23972
 
23608
23973
  .cn-status-badge--solid.cn-status-badge--teal {
23974
+ --cn-status-badge-ink: white;
23609
23975
  background-color: var(--cn-status-teal-text);
23610
- color: white;
23976
+ color: var(--cn-status-badge-ink);
23611
23977
  }
23612
23978
 
23613
23979
 
@@ -25512,10 +25878,10 @@ button.cn-stepper__step[data-v-776581d4] {
25512
25878
  /* `separator`: a text separator in place of the chevron. The chevron's own
25513
25879
  element stays (it carries NcBreadcrumbs' spacing and its "no separator after
25514
25880
  the last crumb" rule); only its icon gives way to the text. */
25515
- .cn-breadcrumbs--text-separator[data-v-54c3381a] .vue-crumb__separator svg {
25881
+ .cn-breadcrumbs--text-separator[data-v-4bee2493] .vue-crumb__separator svg {
25516
25882
  display: none;
25517
25883
  }
25518
- .cn-breadcrumbs--text-separator[data-v-54c3381a] .vue-crumb__separator::before {
25884
+ .cn-breadcrumbs--text-separator[data-v-4bee2493] .vue-crumb__separator::before {
25519
25885
  content: var(--cn-breadcrumbs-separator);
25520
25886
  padding-inline: var(--cn-breadcrumbs-separator-gap, 0);
25521
25887
  color: var(--color-text-maxcontrast);
@@ -30392,6 +30758,213 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30392
30758
  }
30393
30759
 
30394
30760
 
30761
+ .cn-checklist-run__form[data-v-56cee1aa] {
30762
+ display: flex;
30763
+ flex-direction: column;
30764
+ gap: 12px;
30765
+ }
30766
+ .cn-checklist-run__position[data-v-56cee1aa] {
30767
+ color: var(--color-text-maxcontrast);
30768
+ margin: 0;
30769
+ }
30770
+ .cn-checklist-run__progress[data-v-56cee1aa] {
30771
+ background: var(--color-border);
30772
+ border-radius: 3px;
30773
+ display: block;
30774
+ height: 6px;
30775
+ overflow: hidden;
30776
+ }
30777
+ .cn-checklist-run__progress-fill[data-v-56cee1aa] {
30778
+ background: var(--color-primary-element);
30779
+ display: block;
30780
+ height: 100%;
30781
+ }
30782
+ .cn-checklist-run__live[data-v-56cee1aa],
30783
+ .cn-checklist-run__sr[data-v-56cee1aa] {
30784
+ clip-path: inset(50%);
30785
+ height: 1px;
30786
+ overflow: hidden;
30787
+ position: absolute;
30788
+ white-space: nowrap;
30789
+ width: 1px;
30790
+ }
30791
+ .cn-checklist-run__question[data-v-56cee1aa],
30792
+ .cn-checklist-run__photos[data-v-56cee1aa] {
30793
+ background: var(--color-main-background);
30794
+ border: 1px solid var(--color-border);
30795
+ border-radius: var(--border-radius-large, 12px);
30796
+ display: flex;
30797
+ flex-direction: column;
30798
+ gap: 8px;
30799
+ margin: 0;
30800
+ padding: 12px 14px;
30801
+ }
30802
+ .cn-checklist-run__legend[data-v-56cee1aa] {
30803
+ font-weight: 600;
30804
+ padding: 0 4px;
30805
+ }
30806
+ .cn-checklist-run__help[data-v-56cee1aa] {
30807
+ color: var(--color-text-maxcontrast);
30808
+ margin: 0;
30809
+ }
30810
+ .cn-checklist-run__choice[data-v-56cee1aa] {
30811
+ align-items: center;
30812
+ display: flex;
30813
+ gap: 10px;
30814
+ min-height: 34px;
30815
+ }
30816
+ .cn-checklist-run__choice input[data-v-56cee1aa] {
30817
+ accent-color: var(--color-primary-element);
30818
+ height: 20px;
30819
+ margin: 0;
30820
+ width: 20px;
30821
+ }
30822
+ .cn-checklist-run__text[data-v-56cee1aa],
30823
+ .cn-checklist-run__number[data-v-56cee1aa] {
30824
+ box-sizing: border-box;
30825
+ width: 100%;
30826
+ }
30827
+ .cn-checklist-run__group[data-v-56cee1aa] {
30828
+ font-weight: 600;
30829
+ margin: 0;
30830
+ }
30831
+ .cn-checklist-run__note-label[data-v-56cee1aa] {
30832
+ display: flex;
30833
+ flex-direction: column;
30834
+ gap: 4px;
30835
+ }
30836
+ .cn-checklist-run__photo-list[data-v-56cee1aa] {
30837
+ margin: 0;
30838
+ padding-inline-start: 18px;
30839
+ }
30840
+ .cn-checklist-run__photo-button[data-v-56cee1aa] {
30841
+ align-items: center;
30842
+ align-self: flex-start;
30843
+ border: 1px solid var(--color-border-dark);
30844
+ border-radius: var(--border-radius-element, 8px);
30845
+ cursor: pointer;
30846
+ display: inline-flex;
30847
+ font-weight: 600;
30848
+ min-height: 34px;
30849
+ padding: 0 14px;
30850
+ }
30851
+ .cn-checklist-run__photo-button[data-v-56cee1aa]:focus-within {
30852
+ outline: 2px solid var(--color-primary-element);
30853
+ outline-offset: 2px;
30854
+ }
30855
+ .cn-checklist-run__photo-input[data-v-56cee1aa] {
30856
+ clip-path: inset(50%);
30857
+ height: 1px;
30858
+ overflow: hidden;
30859
+ position: absolute;
30860
+ width: 1px;
30861
+ }
30862
+ .cn-checklist-run__nav[data-v-56cee1aa] {
30863
+ display: flex;
30864
+ justify-content: space-between;
30865
+ }
30866
+ .cn-checklist-run__error[data-v-56cee1aa] {
30867
+ color: var(--color-error-text, var(--color-error));
30868
+ margin: 0;
30869
+ }
30870
+ .cn-checklist-run__empty[data-v-56cee1aa] {
30871
+ color: var(--color-text-maxcontrast);
30872
+ }
30873
+
30874
+
30875
+ .cn-working-calendar[data-v-03ee459c] {
30876
+ display: flex;
30877
+ flex-direction: column;
30878
+ gap: 12px;
30879
+ }
30880
+ .cn-working-calendar__head[data-v-03ee459c] {
30881
+ align-items: center;
30882
+ display: flex;
30883
+ gap: 4px;
30884
+ }
30885
+ .cn-working-calendar__title[data-v-03ee459c] {
30886
+ font-size: 15px;
30887
+ min-width: 9em;
30888
+ text-align: center;
30889
+ }
30890
+ .cn-working-calendar__add[data-v-03ee459c] {
30891
+ margin-inline-start: auto;
30892
+ }
30893
+ .cn-working-calendar__grid[data-v-03ee459c] {
30894
+ display: flex;
30895
+ flex-direction: column;
30896
+ gap: 4px;
30897
+ }
30898
+ .cn-working-calendar__row[data-v-03ee459c] {
30899
+ display: grid;
30900
+ gap: 4px;
30901
+ grid-template-columns: repeat(7, minmax(0, 1fr));
30902
+ }
30903
+ .cn-working-calendar__weekday[data-v-03ee459c] {
30904
+ color: var(--color-text-maxcontrast);
30905
+ font-size: 12px;
30906
+ text-align: center;
30907
+ }
30908
+ .cn-working-calendar__day[data-v-03ee459c] {
30909
+ align-items: center;
30910
+ background: var(--color-main-background);
30911
+ border: 1px solid var(--color-border);
30912
+ border-radius: 6px;
30913
+ cursor: default;
30914
+ display: flex;
30915
+ font-size: 13px;
30916
+ height: 34px;
30917
+ justify-content: center;
30918
+ }
30919
+ .cn-working-calendar__day[data-v-03ee459c]:focus-visible {
30920
+ outline: 2px solid var(--color-primary-element);
30921
+ outline-offset: 1px;
30922
+ }
30923
+ .cn-working-calendar__day--off[data-v-03ee459c] {
30924
+ background: var(--color-background-dark);
30925
+ }
30926
+ .cn-working-calendar__day--closed[data-v-03ee459c] {
30927
+ background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
30928
+ border-color: var(--color-error);
30929
+ color: var(--color-error-text, var(--color-main-text));
30930
+ font-weight: 600;
30931
+ }
30932
+ .cn-working-calendar__day--today[data-v-03ee459c] {
30933
+ box-shadow: inset 0 0 0 2px var(--color-primary-element);
30934
+ }
30935
+ .cn-working-calendar__live[data-v-03ee459c] {
30936
+ clip-path: inset(50%);
30937
+ height: 1px;
30938
+ overflow: hidden;
30939
+ position: absolute;
30940
+ white-space: nowrap;
30941
+ width: 1px;
30942
+ }
30943
+ .cn-working-calendar__note[data-v-03ee459c] {
30944
+ color: var(--color-text-maxcontrast);
30945
+ margin: 0;
30946
+ }
30947
+ .cn-working-calendar__form[data-v-03ee459c] {
30948
+ display: flex;
30949
+ flex-wrap: wrap;
30950
+ gap: 8px 12px;
30951
+ }
30952
+ .cn-working-calendar__field[data-v-03ee459c] {
30953
+ display: flex;
30954
+ flex-direction: column;
30955
+ gap: 4px;
30956
+ }
30957
+ .cn-working-calendar__form-actions[data-v-03ee459c] {
30958
+ align-items: flex-end;
30959
+ display: flex;
30960
+ gap: 8px;
30961
+ }
30962
+ .cn-working-calendar__error[data-v-03ee459c] {
30963
+ color: var(--color-error-text, var(--color-error));
30964
+ margin: 0;
30965
+ }
30966
+
30967
+
30395
30968
  .cn-run-node-dialog__form[data-v-2d7cb7f5] {
30396
30969
  display: flex;
30397
30970
  flex-direction: column;
@@ -32618,6 +33191,101 @@ a.cn-record-list__inline-title[data-v-b768fcd6] {
32618
33191
  }
32619
33192
 
32620
33193
 
33194
+ .cn-settings-field[data-v-d2218996] {
33195
+ display: flex;
33196
+ flex-direction: column;
33197
+ gap: 4px;
33198
+ min-width: 0;
33199
+ }
33200
+ .cn-settings-field__hint[data-v-d2218996],
33201
+ .cn-settings-field__error[data-v-d2218996] {
33202
+ margin: 0;
33203
+ font-size: 13px;
33204
+ line-height: 1.4;
33205
+ }
33206
+ .cn-settings-field__image[data-v-d2218996] {
33207
+ display: flex;
33208
+ flex-direction: column;
33209
+ gap: 6px;
33210
+ }
33211
+ .cn-settings-field__image-label[data-v-d2218996] {
33212
+ font-weight: 600;
33213
+ }
33214
+ .cn-settings-field__image-row[data-v-d2218996] {
33215
+ display: flex;
33216
+ flex-wrap: wrap;
33217
+ align-items: center;
33218
+ gap: 12px;
33219
+ }
33220
+ .cn-settings-field__image-tile[data-v-d2218996] {
33221
+ display: inline-flex;
33222
+ align-items: center;
33223
+ justify-content: center;
33224
+ width: 64px;
33225
+ height: 64px;
33226
+ overflow: hidden;
33227
+ border: 1px solid var(--color-border);
33228
+ border-radius: var(--border-radius-large);
33229
+ background: var(--color-primary-element-light);
33230
+ }
33231
+ .cn-settings-field__image-tile img[data-v-d2218996] {
33232
+ max-width: 100%;
33233
+ max-height: 100%;
33234
+ object-fit: contain;
33235
+ }
33236
+ .cn-settings-field__image-initials[data-v-d2218996] {
33237
+ font-size: 20px;
33238
+ font-weight: 700;
33239
+ color: var(--color-primary-element-light-text, var(--color-primary-element));
33240
+ }
33241
+ .cn-settings-field__hint[data-v-d2218996] {
33242
+ color: var(--color-text-maxcontrast);
33243
+ }
33244
+ .cn-settings-field__error[data-v-d2218996] {
33245
+ color: var(--color-error-text, var(--color-error));
33246
+ }
33247
+
33248
+
33249
+ .cn-settings-fields[data-v-65c151a8] {
33250
+ display: flex;
33251
+ flex-direction: column;
33252
+ gap: 16px;
33253
+ container-type: inline-size;
33254
+ }
33255
+ .cn-settings-fields__grid[data-v-65c151a8] {
33256
+ display: grid;
33257
+ grid-template-columns: minmax(0, 1fr);
33258
+ gap: 16px 20px;
33259
+ }
33260
+
33261
+ /* Two or three columns where the card is wide enough; stacked otherwise. */
33262
+ @container (min-width: 520px) {
33263
+ .cn-settings-fields__grid--2[data-v-65c151a8],
33264
+ .cn-settings-fields__grid--3[data-v-65c151a8] {
33265
+ grid-template-columns: repeat(2, minmax(0, 1fr));
33266
+ }
33267
+ }
33268
+ @container (min-width: 780px) {
33269
+ .cn-settings-fields__grid--3[data-v-65c151a8] {
33270
+ grid-template-columns: repeat(3, minmax(0, 1fr));
33271
+ }
33272
+ }
33273
+ .cn-settings-fields__field--wide[data-v-65c151a8] {
33274
+ grid-column: 1 / -1;
33275
+ }
33276
+ .cn-settings-fields__save[data-v-65c151a8] {
33277
+ display: flex;
33278
+ flex-wrap: wrap;
33279
+ align-items: center;
33280
+ justify-content: flex-end;
33281
+ gap: 12px;
33282
+ }
33283
+ .cn-settings-fields__dirty[data-v-65c151a8] {
33284
+ font-size: 14px;
33285
+ color: var(--color-text-maxcontrast);
33286
+ }
33287
+
33288
+
32621
33289
  ._passwordDialog_joix2_2 {
32622
33290
  display: flex;
32623
33291
  flex-direction: column;
@@ -36947,6 +37615,109 @@ to {
36947
37615
  }
36948
37616
 
36949
37617
 
37618
+ .cn-ordered-list-field[data-v-3ab313d4] {
37619
+ display: flex;
37620
+ flex-direction: column;
37621
+ gap: 10px;
37622
+ }
37623
+ .cn-ordered-list-field__label[data-v-3ab313d4] {
37624
+ margin: 0;
37625
+ font-weight: 600;
37626
+ }
37627
+ .cn-ordered-list-field__rows[data-v-3ab313d4] {
37628
+ display: flex;
37629
+ flex-direction: column;
37630
+ margin: 0;
37631
+ padding: 0;
37632
+ border: 1px solid var(--color-border);
37633
+ border-radius: var(--border-radius-element, 8px);
37634
+ list-style: none;
37635
+ }
37636
+ .cn-ordered-list-field__row[data-v-3ab313d4] {
37637
+ display: flex;
37638
+ align-items: center;
37639
+ gap: 10px;
37640
+ min-height: 44px;
37641
+ padding: 2px 6px 2px 12px;
37642
+ }
37643
+ .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-3ab313d4] {
37644
+ border-top: 1px solid var(--color-border);
37645
+ }
37646
+ .cn-ordered-list-field__position[data-v-3ab313d4] {
37647
+ flex: none;
37648
+ min-width: 18px;
37649
+ color: var(--color-text-maxcontrast);
37650
+ font-size: 13px;
37651
+ font-variant-numeric: tabular-nums;
37652
+ }
37653
+ .cn-ordered-list-field__text[data-v-3ab313d4] {
37654
+ flex: 1 1 auto;
37655
+ min-width: 0;
37656
+ overflow-wrap: anywhere;
37657
+ }
37658
+ .cn-ordered-list-field__actions[data-v-3ab313d4] {
37659
+ display: flex;
37660
+ flex: none;
37661
+ gap: 2px;
37662
+ }
37663
+ .cn-ordered-list-field__button[data-v-3ab313d4] {
37664
+ display: inline-flex;
37665
+ align-items: center;
37666
+ justify-content: center;
37667
+ width: 40px;
37668
+ min-width: 40px;
37669
+ height: 40px;
37670
+ min-height: 40px;
37671
+ margin: 0;
37672
+ padding: 0;
37673
+ border: 0;
37674
+ border-radius: var(--border-radius-element, 8px);
37675
+ background: transparent;
37676
+ color: var(--color-main-text);
37677
+ cursor: pointer;
37678
+ }
37679
+ .cn-ordered-list-field__button[data-v-3ab313d4]:hover:not(:disabled) {
37680
+ background: var(--color-background-hover);
37681
+ }
37682
+ .cn-ordered-list-field__button[data-v-3ab313d4]:focus-visible {
37683
+ outline: 2px solid var(--color-primary-element);
37684
+ outline-offset: 1px;
37685
+ }
37686
+ .cn-ordered-list-field__button[data-v-3ab313d4]:disabled {
37687
+ opacity: 0.4;
37688
+ cursor: default;
37689
+ }
37690
+ .cn-ordered-list-field__empty[data-v-3ab313d4] {
37691
+ margin: 0;
37692
+ color: var(--color-text-maxcontrast);
37693
+ }
37694
+ .cn-ordered-list-field__tile[data-v-3ab313d4] {
37695
+ display: inline-flex;
37696
+ flex: none;
37697
+ align-items: center;
37698
+ justify-content: center;
37699
+ width: 32px;
37700
+ height: 32px;
37701
+ border-radius: var(--border-radius-element, 8px);
37702
+ background: var(--color-background-dark);
37703
+ color: var(--color-main-text);
37704
+ }
37705
+ .cn-ordered-list-field__name[data-v-3ab313d4] {
37706
+ display: block;
37707
+ }
37708
+ .cn-ordered-list-field__description[data-v-3ab313d4] {
37709
+ display: block;
37710
+ color: var(--color-text-maxcontrast);
37711
+ font-size: 13px;
37712
+ }
37713
+ .cn-ordered-list-field__option[data-v-3ab313d4] {
37714
+ display: flex;
37715
+ align-items: center;
37716
+ gap: 10px;
37717
+ min-width: 0;
37718
+ }
37719
+
37720
+
36950
37721
  .cn-object-kanban__loading[data-v-1ba5f05c],
36951
37722
  .cn-object-kanban__empty[data-v-1ba5f05c] {
36952
37723
  display: flex;
@@ -39468,7 +40239,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39468
40239
  }
39469
40240
 
39470
40241
 
39471
- .cn-dashboard-page[data-v-7557b574] {
40242
+ .cn-dashboard-page[data-v-40c6b068] {
39472
40243
  padding: 20px;
39473
40244
  max-width: 1800px;
39474
40245
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -39482,7 +40253,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39482
40253
  overflow-y: auto;
39483
40254
  box-sizing: border-box;
39484
40255
  }
39485
- .cn-dashboard-page__header[data-v-7557b574] {
40256
+ .cn-dashboard-page__header[data-v-40c6b068] {
39486
40257
  display: flex;
39487
40258
  justify-content: space-between;
39488
40259
  align-items: flex-start;
@@ -39494,21 +40265,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39494
40265
  room. Only the HEADER shifts right — body widgets keep full width. */
39495
40266
  padding-inline-start: 56px;
39496
40267
  }
39497
- .cn-dashboard-page__header-left[data-v-7557b574] {
40268
+ .cn-dashboard-page__header-left[data-v-40c6b068] {
39498
40269
  min-width: 0;
39499
40270
  }
39500
- .cn-dashboard-page__title-row[data-v-7557b574] {
40271
+ .cn-dashboard-page__title-row[data-v-40c6b068] {
39501
40272
  display: flex;
39502
40273
  align-items: center;
39503
40274
  flex-wrap: wrap;
39504
40275
  gap: 12px;
39505
40276
  }
39506
- .cn-dashboard-page__title[data-v-7557b574] {
40277
+ .cn-dashboard-page__title[data-v-40c6b068] {
39507
40278
  margin: 0;
39508
40279
  font-size: 20px;
39509
40280
  font-weight: 700;
39510
40281
  }
39511
- .cn-dashboard-page__description[data-v-7557b574] {
40282
+ .cn-dashboard-page__description[data-v-40c6b068] {
39512
40283
  margin: 4px 0 0;
39513
40284
  font-size: 14px;
39514
40285
  color: var(--color-text-maxcontrast);
@@ -39516,19 +40287,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39516
40287
 
39517
40288
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
39518
40289
  under it, and 40px buttons with a 10px gap. */
39519
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-7557b574] {
40290
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-40c6b068] {
39520
40291
  font-size: 28px;
39521
40292
  font-weight: 700;
39522
40293
  line-height: 1.2;
39523
40294
  }
39524
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-7557b574] {
40295
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-40c6b068] {
39525
40296
  margin: 6px 0 0;
39526
40297
  font-size: 15px;
39527
40298
  }
39528
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-7557b574] {
40299
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] {
39529
40300
  gap: 10px;
39530
40301
  }
39531
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-7557b574] .button-vue {
40302
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-40c6b068] .button-vue {
39532
40303
  min-height: var(--cn-board-control-height, 40px);
39533
40304
  height: var(--cn-board-control-height, 40px);
39534
40305
  }
@@ -39536,17 +40307,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39536
40307
  /* The switch row under the header (screens-dashboard-greeting-header): the
39537
40308
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
39538
40309
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
39539
- .cn-dashboard-page__switch-row[data-v-7557b574] {
40310
+ .cn-dashboard-page__switch-row[data-v-40c6b068] {
39540
40311
  display: flex;
39541
40312
  flex-wrap: wrap;
39542
40313
  align-items: center;
39543
40314
  gap: 10px;
39544
40315
  margin-bottom: var(--cn-board-section-gap, 20px);
39545
40316
  }
39546
- .cn-dashboard-page__switch-row-spacer[data-v-7557b574] {
40317
+ .cn-dashboard-page__switch-row-spacer[data-v-40c6b068] {
39547
40318
  flex: 1 1 auto;
39548
40319
  }
39549
- .cn-dashboard-page__view-link[data-v-7557b574] {
40320
+ .cn-dashboard-page__view-link[data-v-40c6b068] {
39550
40321
  display: inline-flex;
39551
40322
  align-items: center;
39552
40323
  gap: 6px;
@@ -39560,37 +40331,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39560
40331
  white-space: nowrap;
39561
40332
  text-decoration: none !important;
39562
40333
  }
39563
- .cn-dashboard-page__view-link[data-v-7557b574]:hover {
40334
+ .cn-dashboard-page__view-link[data-v-40c6b068]:hover {
39564
40335
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
39565
40336
  }
39566
- .cn-dashboard-page__view-link[data-v-7557b574]:focus-visible {
40337
+ .cn-dashboard-page__view-link[data-v-40c6b068]:focus-visible {
39567
40338
  outline: 2px solid var(--color-main-text);
39568
40339
  outline-offset: 2px;
39569
40340
  }
39570
- .cn-dashboard-page__view-link-icon[data-v-7557b574] {
40341
+ .cn-dashboard-page__view-link-icon[data-v-40c6b068] {
39571
40342
  display: inline-flex;
39572
40343
  }
39573
40344
 
39574
40345
  /* The period group, in a row of its own between the header and the KPI row. */
39575
- .cn-dashboard-page__date-range--segmented[data-v-7557b574] {
40346
+ .cn-dashboard-page__date-range--segmented[data-v-40c6b068] {
39576
40347
  margin-bottom: 16px;
39577
40348
  }
39578
40349
 
39579
40350
  /* The period group at the end of the description line. */
39580
- .cn-dashboard-page__description--with-period[data-v-7557b574] {
40351
+ .cn-dashboard-page__description--with-period[data-v-40c6b068] {
39581
40352
  align-items: center;
39582
40353
  display: flex;
39583
40354
  flex-wrap: wrap;
39584
40355
  gap: 8px;
39585
40356
  }
39586
- .cn-dashboard-page__date-segmented[data-v-7557b574] {
40357
+ .cn-dashboard-page__date-segmented[data-v-40c6b068] {
39587
40358
  display: flex;
39588
40359
  align-items: center;
39589
40360
  gap: 8px;
39590
40361
  }
39591
40362
 
39592
40363
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
39593
- .cn-dashboard-page__kpi-row[data-v-7557b574] {
40364
+ .cn-dashboard-page__kpi-row[data-v-40c6b068] {
39594
40365
  margin-bottom: var(--cn-board-section-gap, 16px);
39595
40366
  }
39596
40367
 
@@ -39598,15 +40369,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39598
40369
  the cards started a margin to the right of the KPI row and the header. The
39599
40370
  grid reaches out by that margin, so the card edges line up with the page's
39600
40371
  (dashboard-grid-flush). */
39601
- .cn-dashboard-page--board[data-v-7557b574] .cn-dashboard-grid {
40372
+ .cn-dashboard-page--board[data-v-40c6b068] .cn-dashboard-grid {
39602
40373
  width: auto;
39603
40374
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
39604
40375
  }
39605
- .cn-dashboard-page__kpi-cell[data-v-7557b574] {
40376
+ .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
39606
40377
  display: flex;
39607
40378
  min-width: 0;
39608
40379
  }
39609
- .cn-dashboard-page__kpi-cell[data-v-7557b574] > * {
40380
+ .cn-dashboard-page__kpi-cell[data-v-40c6b068] > * {
39610
40381
  flex: 1 1 auto;
39611
40382
  min-width: 0;
39612
40383
  }
@@ -39619,7 +40390,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39619
40390
  scoped chip rules then silently don't match and the chip collapses into
39620
40391
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
39621
40392
  data-testid is stable across chunks, so those rules match regardless. */
39622
- .cn-dashboard-page__header-actions[data-v-7557b574] {
40393
+ .cn-dashboard-page__header-actions[data-v-40c6b068] {
39623
40394
  display: flex;
39624
40395
  align-items: center;
39625
40396
  gap: 8px;
@@ -39635,19 +40406,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39635
40406
 
39636
40407
  /* Date-range header band. Kept compact so it doesn't open a tall gap
39637
40408
  above the grid; the pills variant is a single tidy toggle row. */
39638
- .cn-dashboard-page__date-range[data-v-7557b574] {
40409
+ .cn-dashboard-page__date-range[data-v-40c6b068] {
39639
40410
  margin-bottom: 12px;
39640
40411
  }
39641
- .cn-dashboard-page__date-range--pills[data-v-7557b574] {
40412
+ .cn-dashboard-page__date-range--pills[data-v-40c6b068] {
39642
40413
  margin-bottom: 8px;
39643
40414
  }
39644
- .cn-dashboard-page__date-pills[data-v-7557b574] {
40415
+ .cn-dashboard-page__date-pills[data-v-40c6b068] {
39645
40416
  display: flex;
39646
40417
  align-items: center;
39647
40418
  flex-wrap: wrap;
39648
40419
  gap: 6px;
39649
40420
  }
39650
- .cn-dashboard-page__date-pill[data-v-7557b574] {
40421
+ .cn-dashboard-page__date-pill[data-v-40c6b068] {
39651
40422
  display: inline-flex;
39652
40423
  align-items: center;
39653
40424
  padding: 5px 14px;
@@ -39662,77 +40433,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39662
40433
  cursor: pointer;
39663
40434
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
39664
40435
  }
39665
- .cn-dashboard-page__date-pill[data-v-7557b574]:hover {
40436
+ .cn-dashboard-page__date-pill[data-v-40c6b068]:hover {
39666
40437
  background: var(--color-background-hover);
39667
40438
  }
39668
- .cn-dashboard-page__date-pill[data-v-7557b574]:focus-visible {
40439
+ .cn-dashboard-page__date-pill[data-v-40c6b068]:focus-visible {
39669
40440
  outline: 2px solid var(--color-primary-element);
39670
40441
  outline-offset: 2px;
39671
40442
  }
39672
- .cn-dashboard-page__date-pill--active[data-v-7557b574] {
40443
+ .cn-dashboard-page__date-pill--active[data-v-40c6b068] {
39673
40444
  background: var(--color-primary-element);
39674
40445
  border-color: var(--color-primary-element);
39675
40446
  color: var(--color-primary-element-text);
39676
40447
  }
39677
- .cn-dashboard-page__date-pill--active[data-v-7557b574]:hover {
40448
+ .cn-dashboard-page__date-pill--active[data-v-40c6b068]:hover {
39678
40449
  background: var(--color-primary-element-hover, var(--color-primary-element));
39679
40450
  }
39680
40451
 
39681
40452
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
39682
40453
  so it reads as an escape hatch rather than a primary option. */
39683
- .cn-dashboard-page__date-pill--custom[data-v-7557b574] {
40454
+ .cn-dashboard-page__date-pill--custom[data-v-40c6b068] {
39684
40455
  border-style: dashed;
39685
40456
  color: var(--color-text-maxcontrast);
39686
40457
  }
39687
- .cn-dashboard-page__date-pill-custom[data-v-7557b574] .action-item__menutoggle {
40458
+ .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .action-item__menutoggle {
39688
40459
  min-width: 0;
39689
40460
  min-height: 0;
39690
40461
  padding: 0;
39691
40462
  background: transparent;
39692
40463
  border: none;
39693
40464
  }
39694
- .cn-dashboard-page__date-pill-custom[data-v-7557b574] .button-vue,
39695
- .cn-dashboard-page__date-pill-custom[data-v-7557b574] .button-vue__wrapper,
39696
- .cn-dashboard-page__date-pill-custom[data-v-7557b574] .button-vue__icon {
40465
+ .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue,
40466
+ .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue__wrapper,
40467
+ .cn-dashboard-page__date-pill-custom[data-v-40c6b068] .button-vue__icon {
39697
40468
  width: auto !important;
39698
40469
  min-width: 0 !important;
39699
40470
  overflow: visible !important;
39700
40471
  }
39701
- .cn-dashboard-page__empty[data-v-7557b574] {
40472
+ .cn-dashboard-page__empty[data-v-40c6b068] {
39702
40473
  padding: 60px 20px;
39703
40474
  }
39704
40475
 
39705
40476
  /* The page's view switch on a page without a header row: at the end of its
39706
40477
  own row, above the grids, where the header would have put it. */
39707
- .cn-dashboard-page__view-switch[data-v-7557b574] {
40478
+ .cn-dashboard-page__view-switch[data-v-40c6b068] {
39708
40479
  display: flex;
39709
40480
  justify-content: flex-end;
39710
40481
  margin-bottom: 12px;
39711
40482
  }
39712
40483
 
39713
40484
  /* A view the switch shows with nothing to draw. */
39714
- .cn-page-view-region--empty[data-v-7557b574] {
40485
+ .cn-page-view-region--empty[data-v-40c6b068] {
39715
40486
  padding: 40px 20px;
39716
40487
  }
39717
- .cn-dashboard-page__page-filters[data-v-7557b574] {
40488
+ .cn-dashboard-page__page-filters[data-v-40c6b068] {
39718
40489
  display: flex;
39719
40490
  flex-wrap: wrap;
39720
40491
  gap: 16px;
39721
40492
  align-items: flex-end;
39722
40493
  margin-bottom: 12px;
39723
40494
  }
39724
- .cn-dashboard-page__page-filter[data-v-7557b574] {
40495
+ .cn-dashboard-page__page-filter[data-v-40c6b068] {
39725
40496
  display: flex;
39726
40497
  flex-direction: column;
39727
40498
  gap: 4px;
39728
40499
  min-width: 200px;
39729
40500
  }
39730
- .cn-dashboard-page__page-filter-label[data-v-7557b574] {
40501
+ .cn-dashboard-page__page-filter-label[data-v-40c6b068] {
39731
40502
  font-size: 0.85em;
39732
40503
  font-weight: 600;
39733
40504
  color: var(--color-text-maxcontrast);
39734
40505
  }
39735
- .cn-dashboard-page__widget-edit[data-v-7557b574] {
40506
+ .cn-dashboard-page__widget-edit[data-v-40c6b068] {
39736
40507
  position: absolute;
39737
40508
  top: 4px;
39738
40509
  inset-inline-end: 4px;
@@ -39751,8 +40522,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39751
40522
  and centre the card. */
39752
40523
  /* `safe` centre so an overflowing tile does not spill out of the top, where
39753
40524
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
39754
- .cn-dashboard-page__card-fit[data-v-7557b574] .cn-widget-wrapper__content,
39755
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-7557b574] .cn-widget-wrapper__content {
40525
+ .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-widget-wrapper__content,
40526
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-40c6b068] .cn-widget-wrapper__content {
39756
40527
  overflow: hidden;
39757
40528
  display: flex;
39758
40529
  flex-direction: column;
@@ -39768,7 +40539,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39768
40539
  shows up as a scrollbar the user has to drag to see the whole graph. Same
39769
40540
  shape as the card-fit rule above, minus the padding: chart tiles render
39770
40541
  `flush`, and apexcharts already draws its own margins. */
39771
- .cn-dashboard-page__chart-fit[data-v-7557b574] .cn-widget-wrapper__content {
40542
+ .cn-dashboard-page__chart-fit[data-v-40c6b068] .cn-widget-wrapper__content {
39772
40543
  overflow: hidden;
39773
40544
  display: flex;
39774
40545
  flex-direction: column;
@@ -39778,13 +40549,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39778
40549
  /* Card content (stat / gauge / delta) must fit the tile width: let the
39779
40550
  widget shrink and its value/label truncate instead of pushing past the
39780
40551
  tile edge (the horizontal clip on long currency values). */
39781
- .cn-dashboard-page__card-fit[data-v-7557b574] .cn-stat-widget,
39782
- .cn-dashboard-page__card-fit[data-v-7557b574] .cn-gauge-widget,
39783
- .cn-dashboard-page__card-fit[data-v-7557b574] .cn-delta-widget {
40552
+ .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-stat-widget,
40553
+ .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-gauge-widget,
40554
+ .cn-dashboard-page__card-fit[data-v-40c6b068] .cn-delta-widget {
39784
40555
  min-width: 0;
39785
40556
  max-width: 100%;
39786
40557
  }
39787
- .cn-dashboard-page__unknown[data-v-7557b574] {
40558
+ .cn-dashboard-page__unknown[data-v-40c6b068] {
39788
40559
  display: flex;
39789
40560
  align-items: center;
39790
40561
  justify-content: center;
@@ -39795,31 +40566,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39795
40566
  }
39796
40567
 
39797
40568
  /* widget-ref content items */
39798
- .cn-dashboard-page__content[data-v-7557b574] {
40569
+ .cn-dashboard-page__content[data-v-40c6b068] {
39799
40570
  display: flex;
39800
40571
  flex-direction: column;
39801
40572
  gap: 16px;
39802
40573
  }
39803
- .cn-dashboard-page__content-item[data-v-7557b574] {
40574
+ .cn-dashboard-page__content-item[data-v-40c6b068] {
39804
40575
  width: 100%;
39805
40576
  }
39806
40577
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
39807
40578
  are 44px: the widget Actions menu and the KPI tiles. */
39808
40579
  @media (max-width: 640px) {
39809
- .cn-dashboard-page--board[data-v-7557b574] .cn-widget-wrapper__actions .action-item__menutoggle,
39810
- .cn-dashboard-page--board[data-v-7557b574] .cn-widget-wrapper__actions .button-vue {
40580
+ .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle,
40581
+ .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .button-vue {
39811
40582
  min-height: 44px;
39812
40583
  }
39813
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-7557b574] {
40584
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-40c6b068] {
39814
40585
  min-height: 44px;
39815
40586
  }
39816
40587
 
39817
40588
  /* The widget Actions menu shows its icon only, so the card title keeps
39818
40589
  the room; the name stays for assistive tech. */
39819
- .cn-dashboard-page--board[data-v-7557b574] .cn-widget-wrapper__actions .action-item__menutoggle {
40590
+ .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle {
39820
40591
  min-width: 44px;
39821
40592
  }
39822
- .cn-dashboard-page--board[data-v-7557b574] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
40593
+ .cn-dashboard-page--board[data-v-40c6b068] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
39823
40594
  position: absolute;
39824
40595
  width: 1px;
39825
40596
  height: 1px;
@@ -39831,7 +40602,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39831
40602
 
39832
40603
  /* What a registry widget reports for its card header (`header` event): the
39833
40604
  note beside the link ("3 in total") and one action, as on a detail page. */
39834
- .cn-dashboard-page__widget-count[data-v-7557b574] {
40605
+ .cn-dashboard-page__widget-count[data-v-40c6b068] {
39835
40606
  align-self: center;
39836
40607
  padding: 1px 8px;
39837
40608
  border-radius: 10px;
@@ -39840,13 +40611,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39840
40611
  font-size: 13px;
39841
40612
  font-weight: 600;
39842
40613
  }
39843
- .cn-dashboard-page__widget-note[data-v-7557b574] {
40614
+ .cn-dashboard-page__widget-note[data-v-40c6b068] {
39844
40615
  align-self: center;
39845
40616
  color: var(--color-text-maxcontrast);
39846
40617
  font-size: 14px;
39847
40618
  white-space: nowrap;
39848
40619
  }
39849
- .cn-dashboard-page__widget-action[data-v-7557b574] {
40620
+ .cn-dashboard-page__widget-action[data-v-40c6b068] {
39850
40621
  display: inline-flex;
39851
40622
  align-items: center;
39852
40623
  align-self: center;
@@ -39862,7 +40633,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
39862
40633
  white-space: nowrap;
39863
40634
  cursor: pointer;
39864
40635
  }
39865
- .cn-dashboard-page__widget-action[data-v-7557b574]:focus-visible {
40636
+ .cn-dashboard-page__widget-action[data-v-40c6b068]:focus-visible {
39866
40637
  outline: 2px solid var(--color-primary-element);
39867
40638
  outline-offset: 2px;
39868
40639
  }
@@ -41914,21 +42685,21 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
41914
42685
 
41915
42686
 
41916
42687
  /* The section wrapper draws no box; the board look makes it the card grid. */
41917
- .cn-settings-page__sections[data-v-50865bde] {
42688
+ .cn-settings-page__sections[data-v-0b4a7625] {
41918
42689
  display: contents;
41919
42690
  }
41920
- .cn-settings-page__header-buttons[data-v-50865bde] {
42691
+ .cn-settings-page__header-buttons[data-v-0b4a7625] {
41921
42692
  display: flex;
41922
42693
  align-items: center;
41923
42694
  gap: 10px;
41924
42695
  margin-inline-start: auto;
41925
42696
  }
41926
- .cn-settings-page[data-v-50865bde] {
42697
+ .cn-settings-page[data-v-0b4a7625] {
41927
42698
  display: flex;
41928
42699
  flex-direction: column;
41929
42700
  gap: 16px;
41930
42701
  }
41931
- .cn-settings-page__actions[data-v-50865bde] {
42702
+ .cn-settings-page__actions[data-v-0b4a7625] {
41932
42703
  display: flex;
41933
42704
  justify-content: flex-end;
41934
42705
  gap: 8px;
@@ -41939,7 +42710,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
41939
42710
  * orchestration REQ-MSO-5). Uses Nextcloud CSS variables only — no
41940
42711
  * hex literals, no rgba overrides on the elements themselves.
41941
42712
  */
41942
- .cn-settings-page__tabs[data-v-50865bde] {
42713
+ .cn-settings-page__tabs[data-v-0b4a7625] {
41943
42714
  display: flex;
41944
42715
  flex-wrap: wrap;
41945
42716
  gap: 4px;
@@ -41947,7 +42718,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
41947
42718
  padding-bottom: 0;
41948
42719
  margin-bottom: 8px;
41949
42720
  }
41950
- .cn-settings-page__tab[data-v-50865bde] {
42721
+ .cn-settings-page__tab[data-v-0b4a7625] {
41951
42722
  background: transparent;
41952
42723
  border: 0;
41953
42724
  border-bottom: 3px solid transparent;
@@ -41959,52 +42730,52 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
41959
42730
  border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
41960
42731
  transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out, border-color 0.1s ease-in-out;
41961
42732
  }
41962
- .cn-settings-page__tab[data-v-50865bde]:hover,
41963
- .cn-settings-page__tab[data-v-50865bde]:focus-visible {
42733
+ .cn-settings-page__tab[data-v-0b4a7625]:hover,
42734
+ .cn-settings-page__tab[data-v-0b4a7625]:focus-visible {
41964
42735
  background-color: var(--color-background-hover);
41965
42736
  color: var(--color-main-text);
41966
42737
  outline: none;
41967
42738
  }
41968
- .cn-settings-page__tab--active[data-v-50865bde] {
42739
+ .cn-settings-page__tab--active[data-v-0b4a7625] {
41969
42740
  color: var(--color-primary-element);
41970
42741
  border-bottom-color: var(--color-primary-element);
41971
42742
  font-weight: bold;
41972
42743
  }
41973
42744
  @media (max-width: 768px) {
41974
- .cn-settings-page__tabs[data-v-50865bde] {
42745
+ .cn-settings-page__tabs[data-v-0b4a7625] {
41975
42746
  flex-direction: column;
41976
42747
  gap: 0;
41977
42748
  border-bottom: 0;
41978
42749
  }
41979
- .cn-settings-page__tab[data-v-50865bde] {
42750
+ .cn-settings-page__tab[data-v-0b4a7625] {
41980
42751
  border-bottom: 1px solid var(--color-border);
41981
42752
  border-radius: 0;
41982
42753
  text-align: left;
41983
42754
  }
41984
- .cn-settings-page__tab--active[data-v-50865bde] {
42755
+ .cn-settings-page__tab--active[data-v-0b4a7625] {
41985
42756
  border-bottom-width: 1px;
41986
42757
  background-color: var(--color-background-hover);
41987
42758
  }
41988
42759
  }
41989
- .cn-settings-page__fields[data-v-50865bde] {
42760
+ .cn-settings-page__fields[data-v-0b4a7625] {
41990
42761
  display: flex;
41991
42762
  flex-direction: column;
41992
42763
  gap: 12px;
41993
42764
  }
41994
- .cn-settings-page__field[data-v-50865bde] {
42765
+ .cn-settings-page__field[data-v-0b4a7625] {
41995
42766
  display: flex;
41996
42767
  flex-direction: column;
41997
42768
  gap: 4px;
41998
42769
  }
41999
- .cn-settings-page__field-help[data-v-50865bde] {
42770
+ .cn-settings-page__field-help[data-v-0b4a7625] {
42000
42771
  color: var(--color-text-maxcontrast);
42001
42772
  }
42002
- .cn-settings-page__save-bar[data-v-50865bde] {
42773
+ .cn-settings-page__save-bar[data-v-0b4a7625] {
42003
42774
  display: flex;
42004
42775
  gap: 8px;
42005
42776
  margin-top: 16px;
42006
42777
  }
42007
- .cn-settings-page__error[data-v-50865bde] {
42778
+ .cn-settings-page__error[data-v-0b4a7625] {
42008
42779
  color: var(--color-error);
42009
42780
  background: var(--color-error-light, var(--color-background-hover));
42010
42781
  padding: 8px 12px;
@@ -44675,17 +45446,17 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44675
45446
  }
44676
45447
 
44677
45448
 
44678
- .cn-user-settings-dialog__body[data-v-8ebfd3c8] {
45449
+ .cn-user-settings-dialog__body[data-v-e537e50a] {
44679
45450
  display: flex;
44680
45451
  flex-wrap: wrap;
44681
45452
  gap: 0 24px;
44682
45453
  }
44683
- .cn-user-settings-dialog__nav[data-v-8ebfd3c8] {
45454
+ .cn-user-settings-dialog__nav[data-v-e537e50a] {
44684
45455
  flex: 0 0 200px;
44685
45456
  width: 200px;
44686
45457
  padding-top: 18px;
44687
45458
  }
44688
- .cn-user-settings-dialog__nav ul[data-v-8ebfd3c8] {
45459
+ .cn-user-settings-dialog__nav ul[data-v-e537e50a] {
44689
45460
  display: flex;
44690
45461
  flex-direction: column;
44691
45462
  gap: 2px;
@@ -44693,7 +45464,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44693
45464
  padding: 0;
44694
45465
  list-style: none;
44695
45466
  }
44696
- .cn-user-settings-dialog__nav-link[data-v-8ebfd3c8] {
45467
+ .cn-user-settings-dialog__nav-link[data-v-e537e50a] {
44697
45468
  display: flex;
44698
45469
  align-items: center;
44699
45470
  gap: 10px;
@@ -44704,20 +45475,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44704
45475
  color: var(--color-main-text);
44705
45476
  text-decoration: none;
44706
45477
  }
44707
- .cn-user-settings-dialog__nav-link[data-v-8ebfd3c8]:hover {
45478
+ .cn-user-settings-dialog__nav-link[data-v-e537e50a]:hover {
44708
45479
  background: var(--color-background-hover);
44709
45480
  }
44710
- .cn-user-settings-dialog__nav-link[data-v-8ebfd3c8]:focus-visible {
45481
+ .cn-user-settings-dialog__nav-link[data-v-e537e50a]:focus-visible {
44711
45482
  outline: 2px solid var(--color-primary-element);
44712
45483
  outline-offset: 2px;
44713
45484
  }
44714
- .cn-user-settings-dialog__nav-link--active[data-v-8ebfd3c8],
44715
- .cn-user-settings-dialog__nav-link--active[data-v-8ebfd3c8]:hover {
45485
+ .cn-user-settings-dialog__nav-link--active[data-v-e537e50a],
45486
+ .cn-user-settings-dialog__nav-link--active[data-v-e537e50a]:hover {
44716
45487
  background: var(--color-primary-element-light);
44717
45488
  color: var(--color-primary-element-light-text);
44718
45489
  font-weight: 600;
44719
45490
  }
44720
- .cn-user-settings-dialog__nav-icon[data-v-8ebfd3c8] {
45491
+ .cn-user-settings-dialog__nav-icon[data-v-e537e50a] {
44721
45492
  display: inline-flex;
44722
45493
  flex: none;
44723
45494
  width: 18px;
@@ -44725,28 +45496,54 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44725
45496
  align-items: center;
44726
45497
  justify-content: center;
44727
45498
  }
44728
- .cn-user-settings-dialog__sections[data-v-8ebfd3c8] {
45499
+ .cn-user-settings-dialog__sections[data-v-e537e50a] {
44729
45500
  display: flex;
44730
45501
  flex: 1 1 380px;
44731
45502
  flex-direction: column;
44732
45503
  min-width: 0;
44733
45504
  }
44734
- .cn-user-settings-dialog__sections[data-v-8ebfd3c8] .app-settings-section {
45505
+ .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section {
44735
45506
  margin: 0;
44736
45507
  padding: 18px 0;
44737
45508
  border-top: 1px solid var(--color-border);
44738
45509
  }
44739
- .cn-user-settings-dialog__sections[data-v-8ebfd3c8] .app-settings-section__name {
45510
+ .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section__name {
44740
45511
  margin: 0 0 12px;
44741
45512
  font-size: 17px;
44742
45513
  font-weight: 700;
45514
+ display: flex;
45515
+ align-items: center;
45516
+ gap: 10px;
44743
45517
  }
44744
- .cn-user-settings-dialog__note[data-v-8ebfd3c8] {
45518
+ .cn-user-settings-dialog__note[data-v-e537e50a] {
44745
45519
  flex: 1 1 auto;
44746
45520
  margin: 0;
44747
45521
  font-size: 14px;
44748
45522
  color: var(--color-text-maxcontrast);
44749
45523
  }
45524
+ .cn-user-settings-dialog__nc-links[data-v-e537e50a] {
45525
+ margin-bottom: 2px;
45526
+ }
45527
+ .cn-user-settings-dialog__group[data-v-e537e50a] {
45528
+ margin: 10px 0 2px;
45529
+ padding: 0 12px;
45530
+ font-size: 15px;
45531
+ font-weight: 600;
45532
+ color: var(--color-main-text);
45533
+ }
45534
+ .cn-user-settings-dialog__group-sections[data-v-e537e50a] {
45535
+ padding-inline-start: 12px;
45536
+ }
45537
+ .cn-user-settings-dialog__heading-icon[data-v-e537e50a] {
45538
+ display: inline-flex;
45539
+ order: -1;
45540
+ color: var(--color-text-maxcontrast);
45541
+ }
45542
+
45543
+ /* One section at a time: the others are mounted but hidden. */
45544
+ .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section[hidden] {
45545
+ display: none;
45546
+ }
44750
45547
 
44751
45548
 
44752
45549
  /* The environment banner runs along the top of the shell and cannot scroll away; the shell makes room for it. */
@@ -45165,7 +45962,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45165
45962
  }
45166
45963
 
45167
45964
 
45168
- .cn-features-board[data-v-f306c9ee] {
45965
+ .cn-features-board[data-v-ed367d64] {
45169
45966
  box-sizing: border-box;
45170
45967
  display: flex;
45171
45968
  flex-direction: column;
@@ -45174,20 +45971,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45174
45971
  max-width: 1240px;
45175
45972
  width: 100%;
45176
45973
  }
45177
- .cn-features-board__header[data-v-f306c9ee] {
45974
+ .cn-features-board__header[data-v-ed367d64] {
45178
45975
  display: flex;
45179
45976
  flex-direction: column;
45180
45977
  gap: 6px;
45181
45978
  padding: 4px 0 8px;
45182
45979
  }
45183
- .cn-features-board__title-row[data-v-f306c9ee] {
45980
+ .cn-features-board__title-row[data-v-ed367d64] {
45184
45981
  display: flex;
45185
45982
  flex-wrap: wrap;
45186
45983
  justify-content: space-between;
45187
45984
  align-items: flex-start;
45188
45985
  gap: 12px 24px;
45189
45986
  }
45190
- .cn-features-board__title[data-v-f306c9ee] {
45987
+ .cn-features-board__title[data-v-ed367d64] {
45191
45988
  flex: 1 1 320px;
45192
45989
  min-width: 0;
45193
45990
  margin: 0;
@@ -45195,32 +45992,32 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45195
45992
  font-weight: 700;
45196
45993
  line-height: 1.2;
45197
45994
  }
45198
- .cn-features-board__header-actions[data-v-f306c9ee] {
45995
+ .cn-features-board__header-actions[data-v-ed367d64] {
45199
45996
  flex: none;
45200
45997
  display: flex;
45201
45998
  flex-wrap: wrap;
45202
45999
  align-items: center;
45203
46000
  gap: 10px;
45204
46001
  }
45205
- .cn-features-board__subtitle[data-v-f306c9ee] {
46002
+ .cn-features-board__subtitle[data-v-ed367d64] {
45206
46003
  margin: 0;
45207
46004
  font-size: 15px;
45208
46005
  color: var(--color-text-maxcontrast);
45209
46006
  }
45210
- .cn-features-board__tab-row[data-v-f306c9ee] {
46007
+ .cn-features-board__tab-row[data-v-ed367d64] {
45211
46008
  display: flex;
45212
46009
  align-items: flex-end;
45213
46010
  gap: 8px;
45214
46011
  margin-bottom: calc(-1 * var(--cn-board-section-gap, 20px));
45215
46012
  }
45216
- .cn-features-board__tabs[data-v-f306c9ee] {
46013
+ .cn-features-board__tabs[data-v-ed367d64] {
45217
46014
  display: flex;
45218
46015
  flex-wrap: wrap;
45219
46016
  gap: 4px;
45220
46017
  flex: 1 1 auto;
45221
46018
  min-width: 0;
45222
46019
  }
45223
- .cn-features-board__tab[data-v-f306c9ee] {
46020
+ .cn-features-board__tab[data-v-ed367d64] {
45224
46021
  display: inline-flex;
45225
46022
  align-items: center;
45226
46023
  box-sizing: border-box;
@@ -45237,35 +46034,35 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45237
46034
  cursor: pointer;
45238
46035
  white-space: nowrap;
45239
46036
  }
45240
- .cn-features-board__tab--active[data-v-f306c9ee] {
46037
+ .cn-features-board__tab--active[data-v-ed367d64] {
45241
46038
  position: relative;
45242
46039
  background: var(--color-main-background);
45243
46040
  border-bottom: 1px solid var(--color-main-background);
45244
46041
  font-weight: 700;
45245
46042
  }
45246
- .cn-features-board__tab-actions[data-v-f306c9ee] {
46043
+ .cn-features-board__tab-actions[data-v-ed367d64] {
45247
46044
  flex: none;
45248
46045
  align-self: flex-start;
45249
46046
  margin: 0 8px 8px 0;
45250
46047
  }
45251
- .cn-features-board__panel[data-v-f306c9ee] {
46048
+ .cn-features-board__panel[data-v-ed367d64] {
45252
46049
  display: flex;
45253
46050
  flex-direction: column;
45254
46051
  gap: 22px;
45255
46052
  }
45256
- .cn-features-board__panel--tabbed[data-v-f306c9ee] {
46053
+ .cn-features-board__panel--tabbed[data-v-ed367d64] {
45257
46054
  padding: 22px;
45258
46055
  border: 1px solid var(--color-border);
45259
46056
  border-radius: 0 var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px);
45260
46057
  background: var(--color-main-background);
45261
46058
  }
45262
- .cn-features-board__filter[data-v-f306c9ee] {
46059
+ .cn-features-board__filter[data-v-ed367d64] {
45263
46060
  display: flex;
45264
46061
  flex-wrap: wrap;
45265
46062
  align-items: center;
45266
46063
  gap: 8px;
45267
46064
  }
45268
- .cn-features-board__filter-option[data-v-f306c9ee] {
46065
+ .cn-features-board__filter-option[data-v-ed367d64] {
45269
46066
  display: inline-flex;
45270
46067
  align-items: center;
45271
46068
  gap: 8px;
@@ -45274,7 +46071,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45274
46071
  font-weight: 600;
45275
46072
  cursor: pointer;
45276
46073
  }
45277
- .cn-features-board__filter--chips .cn-features-board__filter-option[data-v-f306c9ee] {
46074
+ .cn-features-board__filter--chips .cn-features-board__filter-option[data-v-ed367d64] {
45278
46075
  height: 36px;
45279
46076
  padding: 0 14px;
45280
46077
  border: 1px solid var(--color-border-dark);
@@ -45282,19 +46079,19 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45282
46079
  background: var(--color-main-background);
45283
46080
  color: var(--color-main-text);
45284
46081
  }
45285
- .cn-features-board__filter--chips .cn-features-board__filter-option--active[data-v-f306c9ee] {
46082
+ .cn-features-board__filter--chips .cn-features-board__filter-option--active[data-v-ed367d64] {
45286
46083
  border-color: var(--color-main-text);
45287
46084
  background: var(--color-main-text);
45288
46085
  color: var(--color-main-background);
45289
46086
  }
45290
- .cn-features-board__filter-count[data-v-f306c9ee] {
46087
+ .cn-features-board__filter-count[data-v-ed367d64] {
45291
46088
  font-weight: 400;
45292
46089
  color: var(--color-text-maxcontrast);
45293
46090
  }
45294
- .cn-features-board__filter--chips .cn-features-board__filter-option--active .cn-features-board__filter-count[data-v-f306c9ee] {
46091
+ .cn-features-board__filter--chips .cn-features-board__filter-option--active .cn-features-board__filter-count[data-v-ed367d64] {
45295
46092
  color: var(--color-border-dark);
45296
46093
  }
45297
- .cn-features-board__filter--segmented[data-v-f306c9ee] {
46094
+ .cn-features-board__filter--segmented[data-v-ed367d64] {
45298
46095
  display: inline-flex;
45299
46096
  align-self: flex-start;
45300
46097
  gap: 2px;
@@ -45302,7 +46099,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45302
46099
  border-radius: 8px;
45303
46100
  background: var(--color-background-dark);
45304
46101
  }
45305
- .cn-features-board__filter--segmented .cn-features-board__filter-option[data-v-f306c9ee] {
46102
+ .cn-features-board__filter--segmented .cn-features-board__filter-option[data-v-ed367d64] {
45306
46103
  height: 34px;
45307
46104
  padding: 0 14px;
45308
46105
  border: 0;
@@ -45310,65 +46107,65 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45310
46107
  background: transparent;
45311
46108
  color: var(--color-main-text);
45312
46109
  }
45313
- .cn-features-board__filter--segmented .cn-features-board__filter-option--active[data-v-f306c9ee] {
46110
+ .cn-features-board__filter--segmented .cn-features-board__filter-option--active[data-v-ed367d64] {
45314
46111
  background: var(--color-main-background);
45315
46112
  box-shadow: 0 1px 2px rgba(27, 28, 29, 0.12);
45316
46113
  }
45317
- .cn-features-board__body[data-v-f306c9ee] {
46114
+ .cn-features-board__body[data-v-ed367d64] {
45318
46115
  display: flex;
45319
46116
  flex-wrap: wrap;
45320
46117
  align-items: flex-start;
45321
46118
  gap: 24px;
45322
46119
  }
45323
- .cn-features-board__groups[data-v-f306c9ee] {
46120
+ .cn-features-board__groups[data-v-ed367d64] {
45324
46121
  flex: 999 1 520px;
45325
46122
  min-width: 0;
45326
46123
  display: flex;
45327
46124
  flex-direction: column;
45328
46125
  gap: 26px;
45329
46126
  }
45330
- .cn-features-board__groups--rows[data-v-f306c9ee] {
46127
+ .cn-features-board__groups--rows[data-v-ed367d64] {
45331
46128
  display: grid;
45332
46129
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
45333
46130
  gap: 20px;
45334
46131
  }
45335
- .cn-features-board__group[data-v-f306c9ee] {
46132
+ .cn-features-board__group[data-v-ed367d64] {
45336
46133
  display: flex;
45337
46134
  flex-direction: column;
45338
46135
  gap: 12px;
45339
46136
  max-width: none;
45340
46137
  margin: 0;
45341
46138
  }
45342
- .cn-features-board__groups--rows .cn-features-board__group[data-v-f306c9ee] {
46139
+ .cn-features-board__groups--rows .cn-features-board__group[data-v-ed367d64] {
45343
46140
  padding: var(--cn-board-card-padding, 20px 22px);
45344
46141
  border: 1px solid var(--color-border);
45345
46142
  border-radius: var(--cn-board-card-radius, 12px);
45346
46143
  background: var(--color-main-background);
45347
46144
  }
45348
- .cn-features-board__group-head[data-v-f306c9ee] {
46145
+ .cn-features-board__group-head[data-v-ed367d64] {
45349
46146
  display: flex;
45350
46147
  flex-wrap: wrap;
45351
46148
  align-items: baseline;
45352
46149
  gap: 10px;
45353
46150
  }
45354
- .cn-features-board__group-title[data-v-f306c9ee] {
46151
+ .cn-features-board__group-title[data-v-ed367d64] {
45355
46152
  margin: 0;
45356
46153
  font-size: 18px;
45357
46154
  font-weight: 700;
45358
46155
  }
45359
- .cn-features-board__groups--rows .cn-features-board__group-title[data-v-f306c9ee] {
46156
+ .cn-features-board__groups--rows .cn-features-board__group-title[data-v-ed367d64] {
45360
46157
  font-size: 17px;
45361
46158
  }
45362
- .cn-features-board__group-caption[data-v-f306c9ee] {
46159
+ .cn-features-board__group-caption[data-v-ed367d64] {
45363
46160
  font-size: 13px;
45364
46161
  color: var(--color-text-maxcontrast);
45365
46162
  }
45366
- .cn-features-board__cards[data-v-f306c9ee] {
46163
+ .cn-features-board__cards[data-v-ed367d64] {
45367
46164
  display: grid;
45368
46165
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
45369
46166
  gap: 16px;
45370
46167
  }
45371
- .cn-features-board__card[data-v-f306c9ee] {
46168
+ .cn-features-board__card[data-v-ed367d64] {
45372
46169
  display: flex;
45373
46170
  flex-direction: column;
45374
46171
  gap: 10px;
@@ -45377,24 +46174,24 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45377
46174
  border-radius: var(--cn-board-card-radius, 12px);
45378
46175
  background: var(--color-main-background);
45379
46176
  }
45380
- .cn-features-board__card-head[data-v-f306c9ee] {
46177
+ .cn-features-board__card-head[data-v-ed367d64] {
45381
46178
  display: flex;
45382
46179
  flex-direction: column;
45383
46180
  align-items: flex-start;
45384
46181
  gap: 4px;
45385
46182
  }
45386
- .cn-features-board__card-title[data-v-f306c9ee] {
46183
+ .cn-features-board__card-title[data-v-ed367d64] {
45387
46184
  margin: 0;
45388
46185
  font-size: 17px;
45389
46186
  font-weight: 700;
45390
46187
  line-height: 1.3;
45391
46188
  }
45392
- .cn-features-board__card-summary[data-v-f306c9ee] {
46189
+ .cn-features-board__card-summary[data-v-ed367d64] {
45393
46190
  margin: 0;
45394
46191
  font-size: 14px;
45395
46192
  color: var(--color-main-text);
45396
46193
  }
45397
- .cn-features-board__card-footer[data-v-f306c9ee] {
46194
+ .cn-features-board__card-footer[data-v-ed367d64] {
45398
46195
  display: flex;
45399
46196
  justify-content: flex-end;
45400
46197
  align-items: center;
@@ -45403,7 +46200,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45403
46200
  padding-top: 10px;
45404
46201
  border-top: 1px solid var(--color-background-dark);
45405
46202
  }
45406
- .cn-features-board__read-more[data-v-f306c9ee] {
46203
+ .cn-features-board__read-more[data-v-ed367d64] {
45407
46204
  display: inline-flex;
45408
46205
  align-items: center;
45409
46206
  height: 34px;
@@ -45416,14 +46213,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45416
46213
  font-weight: 600;
45417
46214
  text-decoration: none;
45418
46215
  }
45419
- .cn-features-board__rows[data-v-f306c9ee] {
46216
+ .cn-features-board__rows[data-v-ed367d64] {
45420
46217
  display: flex;
45421
46218
  flex-direction: column;
45422
46219
  margin: 0;
45423
46220
  padding: 0;
45424
46221
  list-style: none;
45425
46222
  }
45426
- .cn-features-board__row[data-v-f306c9ee] {
46223
+ .cn-features-board__row[data-v-ed367d64] {
45427
46224
  display: flex;
45428
46225
  flex-wrap: wrap;
45429
46226
  align-items: center;
@@ -45431,27 +46228,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45431
46228
  padding: 10px 0;
45432
46229
  border-top: 1px solid var(--color-background-dark);
45433
46230
  }
45434
- .cn-features-board__row-text[data-v-f306c9ee] {
46231
+ .cn-features-board__row-text[data-v-ed367d64] {
45435
46232
  flex: 1 1 240px;
45436
46233
  min-width: 0;
45437
46234
  display: flex;
45438
46235
  flex-direction: column;
45439
46236
  gap: 2px;
45440
46237
  }
45441
- .cn-features-board__row-title[data-v-f306c9ee] {
46238
+ .cn-features-board__row-title[data-v-ed367d64] {
45442
46239
  font-size: 15px;
45443
46240
  font-weight: 500;
45444
46241
  }
45445
- .cn-features-board__row-summary[data-v-f306c9ee] {
46242
+ .cn-features-board__row-summary[data-v-ed367d64] {
45446
46243
  font-size: 13px;
45447
46244
  color: var(--color-text-maxcontrast);
45448
46245
  }
45449
- .cn-features-board__next[data-v-f306c9ee] {
46246
+ .cn-features-board__next[data-v-ed367d64] {
45450
46247
  flex: 1 1 280px;
45451
46248
  min-width: 0;
45452
46249
  max-width: 340px;
45453
46250
  }
45454
- .cn-features-board__next-card[data-v-f306c9ee] {
46251
+ .cn-features-board__next-card[data-v-ed367d64] {
45455
46252
  display: flex;
45456
46253
  flex-direction: column;
45457
46254
  gap: 12px;
@@ -45460,22 +46257,22 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45460
46257
  border-radius: var(--cn-board-card-radius, 12px);
45461
46258
  background: var(--color-background-hover);
45462
46259
  }
45463
- .cn-features-board__next-head[data-v-f306c9ee] {
46260
+ .cn-features-board__next-head[data-v-ed367d64] {
45464
46261
  display: flex;
45465
46262
  align-items: center;
45466
46263
  gap: 8px;
45467
46264
  }
45468
- .cn-features-board__next-title[data-v-f306c9ee] {
46265
+ .cn-features-board__next-title[data-v-ed367d64] {
45469
46266
  margin: 0;
45470
46267
  font-size: 18px;
45471
46268
  font-weight: 700;
45472
46269
  }
45473
- .cn-features-board__next-lead[data-v-f306c9ee] {
46270
+ .cn-features-board__next-lead[data-v-ed367d64] {
45474
46271
  margin: 0;
45475
46272
  font-size: 14px;
45476
46273
  color: var(--color-text-maxcontrast);
45477
46274
  }
45478
- .cn-features-board__next-list[data-v-f306c9ee] {
46275
+ .cn-features-board__next-list[data-v-ed367d64] {
45479
46276
  display: flex;
45480
46277
  flex-direction: column;
45481
46278
  gap: 10px;
@@ -45483,7 +46280,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45483
46280
  padding: 0;
45484
46281
  list-style: none;
45485
46282
  }
45486
- .cn-features-board__next-item[data-v-f306c9ee] {
46283
+ .cn-features-board__next-item[data-v-ed367d64] {
45487
46284
  display: flex;
45488
46285
  flex-direction: column;
45489
46286
  gap: 6px;
@@ -45492,14 +46289,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45492
46289
  border-radius: 10px;
45493
46290
  background: var(--color-main-background);
45494
46291
  }
45495
- .cn-features-board__next-link[data-v-f306c9ee] {
46292
+ .cn-features-board__next-link[data-v-ed367d64] {
45496
46293
  font-size: 15px;
45497
46294
  font-weight: 600;
45498
46295
  line-height: 1.3;
45499
46296
  color: var(--color-main-text);
45500
46297
  text-decoration: none;
45501
46298
  }
45502
- .cn-features-board__next-meta[data-v-f306c9ee] {
46299
+ .cn-features-board__next-meta[data-v-ed367d64] {
45503
46300
  display: flex;
45504
46301
  flex-wrap: wrap;
45505
46302
  align-items: center;
@@ -45507,23 +46304,23 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45507
46304
  font-size: 13px;
45508
46305
  color: var(--color-text-maxcontrast);
45509
46306
  }
45510
- .cn-features-board__next-opened[data-v-f306c9ee] {
46307
+ .cn-features-board__next-opened[data-v-ed367d64] {
45511
46308
  display: inline-flex;
45512
46309
  align-items: center;
45513
46310
  gap: 4px;
45514
46311
  }
45515
- .cn-features-board__next-more[data-v-f306c9ee] {
46312
+ .cn-features-board__next-more[data-v-ed367d64] {
45516
46313
  display: inline-flex;
45517
46314
  align-items: center;
45518
46315
  gap: 4px;
45519
46316
  font-size: 14px;
45520
46317
  font-weight: 600;
45521
46318
  }
45522
- .cn-features-board__empty[data-v-f306c9ee] {
46319
+ .cn-features-board__empty[data-v-ed367d64] {
45523
46320
  margin: 0;
45524
46321
  color: var(--color-text-maxcontrast);
45525
46322
  }
45526
- .cn-features-board__notice[data-v-f306c9ee] {
46323
+ .cn-features-board__notice[data-v-ed367d64] {
45527
46324
  margin: 0;
45528
46325
  }
45529
46326
 
@@ -45573,12 +46370,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45573
46370
  }
45574
46371
 
45575
46372
 
45576
- .cn-features-and-roadmap-view[data-v-f19c0cb4] {
46373
+ .cn-features-and-roadmap-view[data-v-3db485a4] {
45577
46374
  max-width: 1200px;
45578
46375
  margin: 0 auto;
45579
46376
  padding: 24px 16px;
45580
46377
  }
45581
- .cn-features-and-roadmap-view__header[data-v-f19c0cb4] {
46378
+ .cn-features-and-roadmap-view__header[data-v-3db485a4] {
45582
46379
  display: flex;
45583
46380
  align-items: center;
45584
46381
  justify-content: space-between;
@@ -45590,29 +46387,29 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
45590
46387
  room. Only the HEADER shifts right — the panel below keeps full width. */
45591
46388
  padding-inline-start: 56px;
45592
46389
  }
45593
- .cn-features-and-roadmap-view__title[data-v-f19c0cb4] {
46390
+ .cn-features-and-roadmap-view__title[data-v-3db485a4] {
45594
46391
  font-size: 1.4em;
45595
46392
  margin: 0;
45596
46393
  color: var(--color-main-text);
45597
46394
  }
45598
- .cn-features-and-roadmap-view__actions[data-v-f19c0cb4] {
46395
+ .cn-features-and-roadmap-view__actions[data-v-3db485a4] {
45599
46396
  display: flex;
45600
46397
  gap: 8px;
45601
46398
  align-items: center;
45602
46399
  flex-wrap: wrap;
45603
46400
  }
45604
- .cn-features-and-roadmap-view__panel[data-v-f19c0cb4] {
46401
+ .cn-features-and-roadmap-view__panel[data-v-3db485a4] {
45605
46402
  min-height: 320px;
45606
46403
  }
45607
46404
 
45608
46405
  /* Underline the inline docs URL so it reads as a link inside the note
45609
46406
  body — NcNoteCard's default link styling drops the underline by
45610
46407
  inheriting from the host theme. */
45611
- .cn-features-and-roadmap-view__docs-note[data-v-f19c0cb4] a {
46408
+ .cn-features-and-roadmap-view__docs-note[data-v-3db485a4] a {
45612
46409
  color: var(--color-primary-element);
45613
46410
  text-decoration: underline;
45614
46411
  }
45615
- .cn-features-and-roadmap-view__docs-note[data-v-f19c0cb4] a:hover {
46412
+ .cn-features-and-roadmap-view__docs-note[data-v-3db485a4] a:hover {
45616
46413
  text-decoration: underline;
45617
46414
  opacity: 0.85;
45618
46415
  }