@conduction/nextcloud-vue 2.98.0 → 2.100.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 (141) 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/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  6. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +6 -1
  7. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  8. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +2 -1
  9. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  10. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue.js +1 -1
  11. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js.map +1 -1
  12. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js +1 -1
  13. package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js.map +1 -1
  14. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +25 -8
  15. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  16. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +7 -4
  17. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  18. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  19. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +11 -8
  20. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  21. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +13 -4
  22. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  23. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
  24. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +54 -3
  25. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
  26. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +16 -2
  27. package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
  28. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
  29. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +42 -7
  30. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
  31. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +121 -57
  32. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
  33. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js +10 -0
  34. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js.map +1 -1
  35. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js +2 -1
  36. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js.map +1 -1
  37. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +136 -7
  38. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  39. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  40. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue.js +1 -1
  41. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js +26 -7
  42. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue2.js.map +1 -1
  43. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js +78 -17
  44. package/dist/esm/components/CnOrderedListField/CnOrderedListField.vue3.js.map +1 -1
  45. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
  46. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +68 -7
  47. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
  48. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +256 -240
  49. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
  50. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +9 -0
  51. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js.map +1 -0
  52. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js +265 -0
  53. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -0
  54. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +191 -0
  55. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -0
  56. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js +9 -0
  57. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue.js.map +1 -0
  58. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js +537 -0
  59. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue2.js.map +1 -0
  60. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js +99 -0
  61. package/dist/esm/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue3.js.map +1 -0
  62. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
  63. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +18 -70
  64. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
  65. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js +6 -44
  66. package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
  67. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  68. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +16 -2
  69. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  70. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +40 -25
  71. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  72. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  73. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  74. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue.js +1 -1
  75. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +7 -7
  76. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
  77. package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
  78. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js +9 -0
  79. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js.map +1 -0
  80. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js +472 -0
  81. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue2.js.map +1 -0
  82. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js +231 -0
  83. package/dist/esm/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue3.js.map +1 -0
  84. package/dist/esm/components/CnWorkingCalendarWidget/index.js +27 -0
  85. package/dist/esm/components/CnWorkingCalendarWidget/index.js.map +1 -0
  86. package/dist/esm/composables/useFlowStore.js +2 -1
  87. package/dist/esm/composables/useFlowStore.js.map +1 -1
  88. package/dist/esm/index.js +3 -0
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/l10n/en.json.js +101 -1
  91. package/dist/esm/l10n/en.json.js.map +1 -1
  92. package/dist/esm/l10n/nl.json.js +115 -1
  93. package/dist/esm/l10n/nl.json.js.map +1 -1
  94. package/dist/esm/library-style.js +1 -1
  95. package/dist/esm/nextcloud-vue.css +999 -233
  96. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  97. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  98. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  99. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  100. package/dist/esm/utils/workingCalendarMonth.js +85 -0
  101. package/dist/esm/utils/workingCalendarMonth.js.map +1 -0
  102. package/dist/nextcloud-vue.cjs.js +10314 -7778
  103. package/dist/nextcloud-vue.cjs.js.map +2 -2
  104. package/dist/nextcloud-vue.css +999 -233
  105. package/l10n/en.json +101 -1
  106. package/l10n/nl.json +115 -1
  107. package/package.json +1 -1
  108. package/src/components/CnActionsMenu/CnActionsMenu.vue +14 -1
  109. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +7 -1
  110. package/src/components/CnBreadcrumbs/CnBreadcrumbs.vue +1 -0
  111. package/src/components/CnDetailPage/CnDetailPage.vue +29 -9
  112. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +13 -4
  113. package/src/components/CnFactsWidget/CnFactsWidget.vue +65 -3
  114. package/src/components/CnFlowsPage/CnFlowBoard.vue +77 -2
  115. package/src/components/CnFlowsPage/CnFlowEditorPage.vue +11 -0
  116. package/src/components/CnIndexPage/CnIndexPage.vue +136 -7
  117. package/src/components/CnOrderedListField/CnOrderedListField.vue +81 -9
  118. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +114 -7
  119. package/src/components/CnSettingsField/CnSettingsField.vue +449 -0
  120. package/src/components/CnSettingsField/index.js +4 -0
  121. package/src/components/CnSettingsFieldsSection/CnSettingsFieldsSection.vue +642 -0
  122. package/src/components/CnSettingsFieldsSection/index.js +4 -0
  123. package/src/components/CnSettingsPage/CnSettingsPage.vue +6 -86
  124. package/src/components/CnSetupWizard/CnSetupWizard.vue +37 -3
  125. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
  126. package/src/components/CnWizardDialog/CnWizardDialog.vue +7 -7
  127. package/src/components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue +725 -0
  128. package/src/components/CnWorkingCalendarWidget/index.js +26 -0
  129. package/src/components/index.js +3 -0
  130. package/src/composables/useFlowStore.js +2 -1
  131. package/src/css/badge.css +32 -16
  132. package/src/css/detail-page.css +15 -0
  133. package/src/css/dialog.css +48 -0
  134. package/src/css/look-board-detail.css +80 -8
  135. package/src/css/look-board-index.css +52 -8
  136. package/src/css/look-board.css +301 -1
  137. package/src/index.js +3 -0
  138. package/src/schemas/app-manifest-v2.schema.json +25 -1
  139. package/src/utils/libraryWidgetKeys.js +1 -0
  140. package/src/utils/validateManifestV2.compiled.js +3 -3
  141. 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;
@@ -297,6 +369,40 @@
297
369
  color: inherit;
298
370
  }
299
371
 
372
+ /* A caption's edit pencil ("Mijn zaaktypen") sits on the caption's line at
373
+ its end, 4px in: a 28px round muted button with a 16px icon that adds no
374
+ height (DqZijbalk). It is placed absolutely because a theme may force the
375
+ caption to `display: block` at id strength (thematiq's Zuiddrecht sheet),
376
+ which put the pencil on a line of its own. */
377
+ .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-caption:has(.app-navigation-caption__actions) {
378
+ position: relative;
379
+ padding-inline-end: 36px;
380
+ }
381
+
382
+ .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-caption .app-navigation-caption__actions {
383
+ --default-clickable-area: 28px;
384
+ position: absolute;
385
+ inset-block-start: -6px;
386
+ inset-inline-end: 4px;
387
+ margin: 0;
388
+ }
389
+
390
+ .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-caption .app-navigation-caption__actions .button-vue {
391
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
392
+ width: 28px;
393
+ min-width: 28px;
394
+ height: 28px;
395
+ min-height: 28px;
396
+ padding: 0;
397
+ border-radius: 14px;
398
+ color: var(--color-text-maxcontrast);
399
+ }
400
+
401
+ .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-caption .app-navigation-caption__actions .button-vue svg {
402
+ width: 16px;
403
+ height: 16px;
404
+ }
405
+
300
406
  .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-entry,
301
407
  .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-entry-link {
302
408
  min-height: 42px;
@@ -311,7 +417,15 @@
311
417
  color: var(--color-main-text);
312
418
  }
313
419
 
420
+ /* The open entry sits on the tonal primary. NcAppNavigationItem paints an
421
+ active entry with a 16% (22% hovered) primary mix at `!important`, so the
422
+ board value needs `!important` too; the selector is the more specific one.
423
+ The link carries the same ground. */
314
424
  .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-entry.active,
425
+ .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-entry.active:hover {
426
+ background-color: var(--color-primary-element-light) !important;
427
+ }
428
+
315
429
  .cn-look-board .app-navigation[data-testid="cn-nav"] .app-navigation-entry.active .app-navigation-entry-link {
316
430
  background: var(--color-primary-element-light);
317
431
  color: var(--color-primary-element-light-text);
@@ -357,9 +471,11 @@
357
471
  font-weight: 700;
358
472
  }
359
473
 
474
+ /* White on the error colour: --color-error-text is the error colour for text on
475
+ a light ground (#8A0000 under thematiq), not the text on an error pill. */
360
476
  .cn-look-board .cn-app-nav__count--attention {
361
477
  background: var(--color-error);
362
- color: var(--color-error-text, var(--color-primary-element-text));
478
+ color: var(--color-primary-element-text);
363
479
  }
364
480
 
365
481
  /* The footer: Help, then Advanced, whatever the declared order. */
@@ -441,6 +557,71 @@
441
557
  font-weight: 600;
442
558
  }
443
559
 
560
+ /* ---- Breadcrumbs (CnBreadcrumbs) ----------------------------------------- */
561
+ /* The board draws a trail as a line of 14px text, 8px apart: the crumbs that
562
+ lead somewhere as underlined links in the primary colour, the current one
563
+ as plain muted text (DqZaak "Alle zaken / 2026-0082"). NcBreadcrumbs draws
564
+ each crumb as a 34px tertiary button. The doubled classes outrank its
565
+ scoped rules; the ink goes through --nldesign-color-on-surface as well, for
566
+ a theme that forces the body ink onto every link and span (thematiq). */
567
+ .cn-look-board .cn-breadcrumbs.cn-breadcrumbs:not(.cn-look-nextcloud *) {
568
+ min-height: 0;
569
+ height: auto;
570
+ color: var(--color-text-maxcontrast);
571
+ font-size: 14px;
572
+ line-height: normal;
573
+ }
574
+
575
+ .cn-look-board .cn-breadcrumbs .breadcrumb__crumbs:not(.cn-look-nextcloud *) {
576
+ gap: 8px;
577
+ min-height: 0;
578
+ margin: 0;
579
+ padding: 0;
580
+ }
581
+
582
+ .cn-look-board .cn-breadcrumbs .vue-crumb.vue-crumb:not(.cn-look-nextcloud *) {
583
+ gap: 8px;
584
+ min-width: 0;
585
+ min-height: 0;
586
+ height: auto;
587
+ }
588
+
589
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue:not(.cn-look-nextcloud *) {
590
+ --nldesign-color-on-surface: var(--color-primary-element);
591
+ min-width: 0;
592
+ min-height: 0;
593
+ height: auto;
594
+ padding: 0;
595
+ border: 0;
596
+ background: transparent;
597
+ color: var(--color-primary-element);
598
+ font-size: 14px;
599
+ font-weight: 400;
600
+ line-height: inherit;
601
+ }
602
+
603
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue:not(.cn-look-nextcloud *) .button-vue__text {
604
+ padding: 0;
605
+ font-weight: inherit;
606
+ line-height: inherit;
607
+ text-decoration: underline;
608
+ }
609
+
610
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue[aria-current='page']:not(.cn-look-nextcloud *) {
611
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
612
+ color: var(--color-text-maxcontrast);
613
+ cursor: default;
614
+ }
615
+
616
+ .cn-look-board .cn-breadcrumbs .vue-crumb .button-vue.button-vue[aria-current='page']:not(.cn-look-nextcloud *) .button-vue__text {
617
+ text-decoration: none;
618
+ }
619
+
620
+ .cn-look-board .cn-breadcrumbs .vue-crumb__separator:not(.cn-look-nextcloud *) {
621
+ margin: 0;
622
+ color: var(--color-text-maxcontrast);
623
+ }
624
+
444
625
  /* ---- Settings: header, cards in a grid, version card ------------------- */
445
626
  .cn-look-board .cn-admin-settings-shell__header:not(.cn-look-nextcloud *),
446
627
  .cn-look-board .cn-settings-page__header:not(.cn-look-nextcloud *) {
@@ -859,6 +1040,63 @@
859
1040
  ground ("Verzoek", "Nieuw"); the default look keeps the brighter
860
1041
  primary-element text. The other tones already match the board. */
861
1042
  .cn-look-board .cn-status-badge--primary:not(.cn-status-badge--solid):not(.cn-look-nextcloud *) {
1043
+ --cn-status-badge-ink: var(--color-primary-element-light-text);
1044
+ color: var(--cn-status-badge-ink);
1045
+ }
1046
+
1047
+ /* Every board pill is 13px at 600 on a 3px 10px pad with a 12px corner
1048
+ (DqZaak's header pills, DqZaken's status column). */
1049
+ .cn-look-board .cn-status-badge:not(.cn-status-badge--small):not(.cn-look-nextcloud *) {
1050
+ padding: 3px 10px;
1051
+ border-radius: 12px;
1052
+ font-size: 13px;
1053
+ font-weight: 600;
1054
+ line-height: normal;
1055
+ }
1056
+
1057
+ /* A pill paints its own pairing of ink and fill. A theme that forces the body
1058
+ ink onto every span (thematiq's text rule, `!important` at id level) reads
1059
+ that ink from --nldesign-color-on-surface when the surface sets it, so the
1060
+ pill hands it its own ink: "In behandeling" stays purple on purple. */
1061
+ .cn-look-board .cn-status-badge:not(.cn-look-nextcloud *) {
1062
+ --nldesign-color-on-surface: var(--cn-status-badge-ink);
1063
+ }
1064
+
1065
+ /* ---- Info notes (NcNoteCard type="info") -------------------------------- */
1066
+ /* The board's info note is a light-blue rounded box: no edge bar, 12px 14px
1067
+ of padding, radius 8, an 18px icon 10px before the text, 14px text in the
1068
+ deep primary ink at 1.5, and a bold heading line (DqBesluit and 13 other
1069
+ boards). NcNoteCard paints its ground and ink with `!important`, and a
1070
+ theme forces the body ink onto every p and span (thematiq), so the ground,
1071
+ the ink and the paragraph colour carry `!important` here too, scoped to
1072
+ the board look; the ink also goes to --nldesign-color-on-surface. */
1073
+ .cn-look-board .notecard.notecard--info:not(.cn-look-nextcloud *) {
1074
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
1075
+ --note-card-icon-size: 18px;
1076
+ --note-theme: var(--color-primary-element-light-text);
1077
+ gap: 10px;
1078
+ padding: 12px 14px;
1079
+ border-inline-start: 0;
1080
+ border-radius: 8px;
1081
+ background-color: var(--color-primary-element-light) !important;
1082
+ color: var(--color-primary-element-light-text) !important;
1083
+ font-size: 14px;
1084
+ line-height: 1.5;
1085
+ }
1086
+
1087
+ .cn-look-board .notecard.notecard--info:not(.cn-look-nextcloud *) p {
1088
+ color: var(--color-primary-element-light-text) !important;
1089
+ font-size: inherit;
1090
+ line-height: inherit;
1091
+ }
1092
+
1093
+ .cn-look-board .notecard.notecard--info:not(.cn-look-nextcloud *) .notecard__heading {
1094
+ font-size: inherit;
1095
+ font-weight: 700 !important;
1096
+ }
1097
+
1098
+ .cn-look-board .notecard.notecard--info:not(.cn-look-nextcloud *) .notecard__icon {
1099
+ padding-top: 1px;
862
1100
  color: var(--color-primary-element-light-text);
863
1101
  }
864
1102
 
@@ -869,6 +1107,68 @@
869
1107
  font-weight: 600;
870
1108
  }
871
1109
 
1110
+ /* ---- Label and value pairs (CnDetailGrid) -------------------------------- */
1111
+ /* The board draws pairs as plain text, not as grey cards with an accent bar:
1112
+ the grid as a 13px muted label over a 15px value at weight 500 with a
1113
+ hairline under each pair (DqZaak "Zaakgegevens"), the horizontal layout as
1114
+ two columns of 14px text, the label column as wide as its longest label
1115
+ (the side cards). Both at the board's line height, 1.2, not Nextcloud's 1.5:
1116
+ a pair is 47px tall on the board. The muted label also hands its ink to
1117
+ --nldesign-color-on-surface, which a theme that forces the body ink onto
1118
+ every div (thematiq) reads. */
1119
+ .cn-look-board .cn-detail-grid.cn-detail-grid--grid:not(.cn-look-nextcloud *) {
1120
+ gap: 12px 24px;
1121
+ font-size: 15px;
1122
+ }
1123
+
1124
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal:not(.cn-look-nextcloud *) {
1125
+ display: grid;
1126
+ grid-template-columns: max-content 1fr;
1127
+ gap: 8px 16px;
1128
+ font-size: 14px;
1129
+ }
1130
+
1131
+ .cn-look-board .cn-detail-grid .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1132
+ gap: 3px;
1133
+ padding: 0;
1134
+ border-inline-start: none;
1135
+ border-radius: 0;
1136
+ background: none;
1137
+ }
1138
+
1139
+ .cn-look-board .cn-detail-grid.cn-detail-grid--grid .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1140
+ padding-bottom: 10px;
1141
+ border-bottom: 1px solid var(--cn-board-hairline);
1142
+ }
1143
+
1144
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__item:not(.cn-look-nextcloud *) {
1145
+ display: contents;
1146
+ }
1147
+
1148
+ .cn-look-board .cn-detail-grid .cn-detail-grid__label:not(.cn-look-nextcloud *) {
1149
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
1150
+ min-width: 0;
1151
+ color: var(--color-text-maxcontrast);
1152
+ font-size: 13px;
1153
+ font-weight: 400;
1154
+ line-height: 1.2;
1155
+ }
1156
+
1157
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__label:not(.cn-look-nextcloud *) {
1158
+ font-size: inherit;
1159
+ }
1160
+
1161
+ .cn-look-board .cn-detail-grid .cn-detail-grid__value:not(.cn-look-nextcloud *) {
1162
+ margin: 0;
1163
+ font-size: inherit;
1164
+ font-weight: 500;
1165
+ line-height: 1.2;
1166
+ }
1167
+
1168
+ .cn-look-board .cn-detail-grid.cn-detail-grid--horizontal .cn-detail-grid__value:not(.cn-look-nextcloud *) {
1169
+ font-weight: 400;
1170
+ }
1171
+
872
1172
  /* ---- Dashboard card titles --------------------------------------------- */
873
1173
  /* A card's title on a dashboard (and on the widgets under a reports page) is
874
1174
  the board's card h2: 17px weight 700 (boards PqMijnWerk, DcRapportages and
@@ -1217,6 +1517,54 @@
1217
1517
  color: var(--color-main-text);
1218
1518
  }
1219
1519
 
1520
+ /* A Nextcloud text field or text area in a board dialog is the board's field:
1521
+ its label above the control at 14px/600, the control 40px with a 1px grey
1522
+ border and radius 8 (PlanItemDialog, DqWerkvoorraad). NcInputField draws
1523
+ its border as a 65%-transparent shadow, which on the white dialog read as
1524
+ an empty band, and floats its label inside the border. A field with
1525
+ `labelOutside` keeps the app's own label and takes the same control. */
1526
+ .cn-dialog-board .dialog__content .input-field:has(.input-field__label),
1527
+ .cn-dialog-board .dialog__content .textarea:has(.textarea__label) {
1528
+ margin-block-start: 26px;
1529
+ }
1530
+
1531
+ /* The doubled class outranks NcInputField's raised-label rule (focused or
1532
+ filled), which would pin the label's top as well and squash it. */
1533
+ .cn-dialog-board .dialog__content .input-field__input + .input-field__label.input-field__label,
1534
+ .cn-dialog-board .dialog__content .textarea__input + .textarea__label.textarea__label {
1535
+ inset-block-start: auto;
1536
+ inset-block-end: calc(100% + 4px);
1537
+ inset-inline: 0 auto;
1538
+ max-width: 100%;
1539
+ margin: 0;
1540
+ padding: 0;
1541
+ background: none;
1542
+ color: var(--color-main-text);
1543
+ font-size: var(--cn-field-label-size, 14px);
1544
+ font-weight: 600;
1545
+ line-height: 20px;
1546
+ pointer-events: auto;
1547
+ transition: none;
1548
+ }
1549
+
1550
+ .cn-dialog-board .dialog__content .input-field__main-wrapper {
1551
+ height: calc(var(--cn-field-height, 40px) + 2 * var(--border-width-input-focused, 2px));
1552
+ }
1553
+
1554
+ .cn-dialog-board .dialog__content .input-field__input,
1555
+ .cn-dialog-board .dialog__content .input-field__input:hover:not([disabled]),
1556
+ .cn-dialog-board .dialog__content .textarea__input,
1557
+ .cn-dialog-board .dialog__content .textarea__input:hover:not([disabled]) {
1558
+ border-radius: 8px;
1559
+ box-shadow: 0 0 0 1px var(--color-border-dark);
1560
+ font-size: var(--cn-field-text-size, 15px);
1561
+ }
1562
+
1563
+ .cn-dialog-board .dialog__content .input-field:has(.input-field__label) .input-field__input:not(:focus)::placeholder,
1564
+ .cn-dialog-board .dialog__content .textarea__input:not(:focus)::placeholder {
1565
+ opacity: 1 !important;
1566
+ }
1567
+
1220
1568
  /* Type-to-confirm: a labelled 40px field with a monospace value and a hint. */
1221
1569
  .cn-dialog__confirm-field {
1222
1570
  display: flex;
@@ -2063,10 +2411,15 @@
2063
2411
  outline-offset: 2px;
2064
2412
  }
2065
2413
 
2414
+ /* The selected chip is light on dark, so it hands its ink to
2415
+ --nldesign-color-on-surface: thematiq forces the body ink onto every span
2416
+ with `!important` and reads it from that property, which left the label
2417
+ dark on dark. */
2066
2418
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected,
2067
2419
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip--selected:hover,
2068
2420
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active,
2069
2421
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab--active:hover {
2422
+ --nldesign-color-on-surface: var(--color-main-background);
2070
2423
  border-color: transparent;
2071
2424
  background: var(--color-main-text);
2072
2425
  color: var(--color-main-background);
@@ -2087,8 +2440,12 @@
2087
2440
  }
2088
2441
 
2089
2442
  .cn-look-board .cn-saved-views__chip--selected .cn-saved-views__chip-count,
2443
+ /* On the selected chip the count is a lighter bubble on the dark chip
2444
+ (DqZaken: #3d4047 on #1b1c1d); --cn-board-text-soft resolves to the main
2445
+ text, the chip's own colour, which hid the bubble. */
2090
2446
  .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);
2447
+ --nldesign-color-on-surface: var(--color-primary-element-text);
2448
+ background: color-mix(in srgb, var(--color-main-background) 15%, var(--color-main-text));
2092
2449
  color: var(--color-primary-element-text);
2093
2450
  }
2094
2451
 
@@ -2360,12 +2717,16 @@
2360
2717
  border-radius: 0;
2361
2718
  }
2362
2719
 
2363
- /* The header row is near-white on the boards (#fafbfc), not the hover grey. */
2720
+ /* The header row is near-white on the boards (#fafbfc), not the hover grey,
2721
+ its labels 14px muted. The ink also goes to --nldesign-color-on-surface,
2722
+ which a theme that forces the body ink onto every span (thematiq) reads. */
2364
2723
  .cn-look-board .cn-table-container--board .cn-data-table th {
2724
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
2365
2725
  padding: 12px 16px;
2366
2726
  border-bottom: 0;
2367
2727
  background: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
2368
2728
  color: var(--color-text-maxcontrast);
2729
+ font-size: 14px;
2369
2730
  font-weight: 600;
2370
2731
  }
2371
2732
 
@@ -2376,6 +2737,20 @@
2376
2737
  font-size: 14px;
2377
2738
  }
2378
2739
 
2740
+ /* The board sets its table at the normal line height: a row with a title and
2741
+ a secondary line is 66px and the header row 50px (DqZaken). Nextcloud's 1.5
2742
+ made them 71px and 67px, and the header's sort button kept the 34px
2743
+ clickable area. */
2744
+ .cn-look-board .cn-table-container--board .cn-data-table {
2745
+ line-height: normal;
2746
+ }
2747
+
2748
+ .cn-look-board .cn-table-container--board .cn-data-table th .cn-table-header__sort {
2749
+ min-height: 0;
2750
+ height: auto;
2751
+ line-height: inherit;
2752
+ }
2753
+
2379
2754
  .cn-look-board .cn-table-container--board .cn-data-table .cn-table-row {
2380
2755
  border-bottom: 0;
2381
2756
  }
@@ -2431,7 +2806,9 @@
2431
2806
  margin-inline-start: 4px;
2432
2807
  }
2433
2808
 
2434
- /* The selection column: 18px checkboxes, 28px of content after 16px of padding.
2809
+ /* The selection column: 18px checkboxes, 28px of content between 16px of
2810
+ padding either side, 60px in all (DqZaken and 130 other boards; the title
2811
+ column starts 77px in).
2435
2812
  The box model is set with `!important` and the widths include the padding:
2436
2813
  Nextcloud's server.css sets `box-sizing: border-box` on everything under
2437
2814
  `#content[class*="app-"]`, an id selector no class rule outranks, so a plain
@@ -2439,9 +2816,9 @@
2439
2816
  header's checkbox showed as a stray bracket). */
2440
2817
  .cn-look-board .cn-table-container--board .cn-data-table .cn-table-col--checkbox {
2441
2818
  box-sizing: border-box !important;
2442
- width: 44px;
2443
- min-width: 44px;
2444
- padding-inline: 16px 0;
2819
+ width: 60px;
2820
+ min-width: 60px;
2821
+ padding-inline: 16px;
2445
2822
  text-align: start;
2446
2823
  }
2447
2824
 
@@ -2449,6 +2826,16 @@
2449
2826
  --icon-size: 18px;
2450
2827
  }
2451
2828
 
2829
+ /* The checkbox is the 18px box alone, as the board draws it: NcCheckboxRadioSwitch
2830
+ wraps it in a 34px clickable area with 4px 7px of padding, a 42px block that
2831
+ set every row's height (71px where DqZaken's rows are 66). The cell around it
2832
+ stays the click target's room: 44px wide, a full row high. */
2833
+ .cn-look-board .cn-table-container--board .cn-data-table .checkbox-radio-switch .checkbox-radio-switch__content {
2834
+ min-height: 0;
2835
+ height: auto;
2836
+ padding: 0;
2837
+ }
2838
+
2452
2839
  /* The title column: a 15px weight 600 link, the secondary line under it. */
2453
2840
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title {
2454
2841
  color: var(--color-main-text);
@@ -2459,6 +2846,7 @@
2459
2846
  }
2460
2847
 
2461
2848
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-table-cell__secondary {
2849
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
2462
2850
  color: var(--color-text-maxcontrast);
2463
2851
  font-size: 14px;
2464
2852
  font-weight: 400;
@@ -2500,10 +2888,14 @@
2500
2888
  gap: 10px;
2501
2889
  }
2502
2890
 
2891
+ /* The initials sit on the light primary tint in the primary ink, the board's
2892
+ person chip (DqZaken's Behandelaar, and most boards' people). */
2503
2893
  .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);
2894
+ --nldesign-color-on-surface: var(--color-primary-element-light-text);
2895
+ background: var(--color-primary-element-light);
2896
+ color: var(--color-primary-element-light-text);
2506
2897
  font-size: 12px;
2898
+ font-weight: 700;
2507
2899
  }
2508
2900
 
2509
2901
  .cn-look-board .cn-table-container--board .cn-data-table td.cn-table-col--title .cn-cell-renderer__avatar-name {
@@ -4810,86 +5202,102 @@ a.cn-kpi-card--board * {
4810
5202
 
4811
5203
  /* Color variants */
4812
5204
  .cn-status-badge--default {
5205
+ --cn-status-badge-ink: var(--color-main-text);
4813
5206
  background-color: var(--color-background-dark);
4814
- color: var(--color-main-text);
5207
+ color: var(--cn-status-badge-ink);
4815
5208
  }
4816
5209
 
4817
5210
  .cn-status-badge--primary {
5211
+ --cn-status-badge-ink: var(--color-primary-element);
4818
5212
  background-color: var(--color-primary-element-light);
4819
- color: var(--color-primary-element);
5213
+ color: var(--cn-status-badge-ink);
4820
5214
  }
4821
5215
 
4822
5216
  .cn-status-badge--success {
5217
+ --cn-status-badge-ink: var(--color-success-text, var(--color-success));
4823
5218
  background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
4824
- color: var(--color-success-text, var(--color-success));
5219
+ color: var(--cn-status-badge-ink);
4825
5220
  }
4826
5221
 
4827
5222
  .cn-status-badge--warning {
5223
+ --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
4828
5224
  background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
4829
- color: var(--color-warning-text, var(--color-warning));
5225
+ color: var(--cn-status-badge-ink);
4830
5226
  }
4831
5227
 
4832
5228
  .cn-status-badge--error {
5229
+ --cn-status-badge-ink: var(--color-error-text, var(--color-error));
4833
5230
  background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
4834
- color: var(--color-error-text, var(--color-error));
5231
+ color: var(--cn-status-badge-ink);
4835
5232
  }
4836
5233
 
4837
5234
  .cn-status-badge--info {
5235
+ --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
4838
5236
  background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
4839
- color: var(--color-info-text, var(--color-info, #0082c9));
5237
+ color: var(--cn-status-badge-ink);
4840
5238
  }
4841
5239
 
4842
5240
  /* Work in progress ("In behandeling"), a board tone. */
4843
5241
  .cn-status-badge--purple {
5242
+ --cn-status-badge-ink: var(--cn-status-purple-text);
4844
5243
  background-color: var(--cn-status-purple-bg);
4845
- color: var(--cn-status-purple-text);
5244
+ color: var(--cn-status-badge-ink);
4846
5245
  }
4847
5246
 
4848
5247
  /* Handed on ("Omgezet naar een zaak"), a board tone. */
4849
5248
  .cn-status-badge--teal {
5249
+ --cn-status-badge-ink: var(--cn-status-teal-text);
4850
5250
  background-color: var(--cn-status-teal-bg);
4851
- color: var(--cn-status-teal-text);
5251
+ color: var(--cn-status-badge-ink);
4852
5252
  }
4853
5253
 
4854
5254
  /* Solid variants — solid background with white text for use on colored backgrounds */
4855
5255
  .cn-status-badge--solid.cn-status-badge--default {
5256
+ --cn-status-badge-ink: var(--color-main-text);
4856
5257
  background-color: var(--color-background-dark);
4857
- color: var(--color-main-text);
5258
+ color: var(--cn-status-badge-ink);
4858
5259
  }
4859
5260
 
4860
5261
  .cn-status-badge--solid.cn-status-badge--primary {
5262
+ --cn-status-badge-ink: white;
4861
5263
  background-color: var(--color-primary-element);
4862
- color: white;
5264
+ color: var(--cn-status-badge-ink);
4863
5265
  }
4864
5266
 
4865
5267
  .cn-status-badge--solid.cn-status-badge--success {
5268
+ --cn-status-badge-ink: white;
4866
5269
  background-color: var(--color-success);
4867
- color: white;
5270
+ color: var(--cn-status-badge-ink);
4868
5271
  }
4869
5272
 
4870
5273
  .cn-status-badge--solid.cn-status-badge--warning {
5274
+ --cn-status-badge-ink: var(--color-primary-text);
4871
5275
  background-color: var(--color-warning);
4872
- color: var(--color-primary-text);
5276
+ color: var(--cn-status-badge-ink);
4873
5277
  }
4874
5278
 
4875
5279
  .cn-status-badge--solid.cn-status-badge--error {
5280
+ --cn-status-badge-ink: white;
4876
5281
  background-color: var(--color-error);
4877
- color: white;
5282
+ color: var(--cn-status-badge-ink);
4878
5283
  }
4879
5284
 
4880
5285
  .cn-status-badge--solid.cn-status-badge--info {
5286
+ --cn-status-badge-ink: white;
4881
5287
  background-color: var(--color-info, #0082c9);
4882
- color: white;
5288
+ color: var(--cn-status-badge-ink);
4883
5289
  }
4884
5290
 
4885
5291
  .cn-status-badge--solid.cn-status-badge--purple {
5292
+ --cn-status-badge-ink: white;
4886
5293
  background-color: var(--cn-status-purple-text);
4887
- color: white;
5294
+ color: var(--cn-status-badge-ink);
4888
5295
  }
4889
5296
 
4890
5297
  .cn-status-badge--solid.cn-status-badge--teal {
5298
+ --cn-status-badge-ink: white;
4891
5299
  background-color: var(--cn-status-teal-text);
4892
- color: white;
5300
+ color: var(--cn-status-badge-ink);
4893
5301
  }
4894
5302
  /* ========================================
4895
5303
  @conduction/nextcloud-vue — Layout & Filter Utility Styles
@@ -6934,6 +7342,21 @@ a.cn-kpi-card--board * {
6934
7342
  align-items: center;
6935
7343
  gap: 4px;
6936
7344
  }
7345
+
7346
+ /* The tag after an admin-only entry in a board detail page's Actions menu
7347
+ ("beheerder", DqZaakMeer): 12px muted text at the end of the row. The menu
7348
+ opens outside the page, so the rule keys on the attribute CnDetailPage sets
7349
+ only in the board look. */
7350
+ .action-button[data-cn-admin-tag]::after,
7351
+ .action-link[data-cn-admin-tag]::after {
7352
+ content: attr(data-cn-admin-tag);
7353
+ margin-inline-start: auto;
7354
+ padding-inline: 12px 4px;
7355
+ color: var(--color-text-maxcontrast);
7356
+ font-size: 12px;
7357
+ font-weight: 400;
7358
+ white-space: nowrap;
7359
+ }
6937
7360
  /*
6938
7361
  * The detail page in the board look (screens-detail-page-parity).
6939
7362
  *
@@ -7088,6 +7511,32 @@ a.cn-kpi-card--board * {
7088
7511
  margin-top: 16px;
7089
7512
  }
7090
7513
 
7514
+ /* ---- The stages bars (CnStagesWidget `variant: "bars"`) ---------------- */
7515
+ /* DqZaak's "Voortgang": the bars sit flush with the content edge (the
7516
+ widget's 4px pad is room for the 32px circles, which the bars variant does
7517
+ not draw), the label 8px under its bar and the date 8px under the label at
7518
+ the normal line height, open steps muted and the done and current ones in
7519
+ the main text. Each hands its ink to --nldesign-color-on-surface, which a
7520
+ theme that forces the body ink onto every span (thematiq) reads instead. */
7521
+ .cn-look-board .cn-stages-widget:has(> .cn-stages-widget__bars):not(.cn-look-nextcloud *) {
7522
+ padding: 0;
7523
+ }
7524
+
7525
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
7526
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7527
+ line-height: normal;
7528
+ }
7529
+
7530
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--done .cn-stages-widget__bar-label:not(.cn-look-nextcloud *),
7531
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-step--current .cn-stages-widget__bar-label:not(.cn-look-nextcloud *) {
7532
+ --nldesign-color-on-surface: var(--color-main-text);
7533
+ }
7534
+
7535
+ .cn-look-board .cn-stages-widget__bars .cn-stages-widget__bar-date:not(.cn-look-nextcloud *) {
7536
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7537
+ line-height: normal;
7538
+ }
7539
+
7091
7540
  /* ---- The body and the side column ------------------------------------- */
7092
7541
 
7093
7542
  .cn-look-board.cn-detail-page--with-side {
@@ -7121,6 +7570,7 @@ a.cn-kpi-card--board * {
7121
7570
  The open tab overlaps that top border by 1px (the nav's -1px margin) and
7122
7571
  paints over it, so it flows into the card as a folder tab. */
7123
7572
  .cn-look-board .cn-tabs--board .cn-tabs__bar {
7573
+ align-items: flex-end;
7124
7574
  border-bottom: none;
7125
7575
  gap: 4px;
7126
7576
  position: relative;
@@ -7163,6 +7613,9 @@ a.cn-kpi-card--board * {
7163
7613
  row-gap: 4px;
7164
7614
  }
7165
7615
 
7616
+ /* `margin: 0`: a tab is a <button>, and Nextcloud's core stylesheet gives
7617
+ every `button:not(.button-vue)` `margin: 3px 3px 3px 0`, which put the strip
7618
+ 3px low and the tabs 7px apart instead of 4 (DqZaak "Zaakonderdelen"). */
7166
7619
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item {
7167
7620
  background-color: var(--color-background-dark);
7168
7621
  border: 1px solid var(--color-border-dark);
@@ -7170,6 +7623,7 @@ a.cn-kpi-card--board * {
7170
7623
  border-radius: 8px 8px 0 0;
7171
7624
  font-size: 14px;
7172
7625
  font-weight: 400;
7626
+ margin: 0;
7173
7627
  min-height: 34px;
7174
7628
  padding: 8px 12px;
7175
7629
  }
@@ -7203,9 +7657,12 @@ a.cn-kpi-card--board * {
7203
7657
  padding: 0 6px;
7204
7658
  }
7205
7659
 
7206
- /* The Actions button at the end of the strip, level with the tabs. */
7660
+ /* The Actions button at the end of the strip: at the top, 8px in from the
7661
+ end and 8px clear of the card, so the tabs, aligned to the bottom, sit 6px
7662
+ lower than the button (DqZaak "Acties"). */
7207
7663
  .cn-look-board .cn-tabs--board .cn-tabs__nav-end {
7208
7664
  align-self: flex-start;
7665
+ margin: 0 8px 8px 0;
7209
7666
  }
7210
7667
 
7211
7668
  .cn-look-board .cn-tabs--board .cn-tabs__nav-end .button-vue {
@@ -7263,21 +7720,26 @@ a.cn-kpi-card--board * {
7263
7720
 
7264
7721
  /* ---- Body cards and side cards ----------------------------------------- */
7265
7722
 
7723
+ /* A CnDetailCard takes the board card wherever it sits, not only on a detail
7724
+ page: a dashboard or a custom page that mounts one drew the Nextcloud card
7725
+ (a 12px 16px header over a rule). The doubled class keeps the specificity
7726
+ the page-scoped rule had. */
7727
+
7266
7728
  .cn-look-board .cn-detail-page .cn-widget-wrapper,
7267
- .cn-look-board .cn-detail-page .cn-detail-card {
7729
+ .cn-look-board .cn-detail-card.cn-detail-card:not(.cn-detail-card--chromeless) {
7268
7730
  background: var(--color-main-background);
7269
7731
  border: 1px solid var(--color-border);
7270
7732
  border-radius: var(--cn-board-card-radius);
7271
7733
  }
7272
7734
 
7273
7735
  .cn-look-board .cn-detail-page .cn-widget-wrapper__header,
7274
- .cn-look-board .cn-detail-page .cn-detail-card__header {
7736
+ .cn-look-board .cn-detail-card .cn-detail-card__header {
7275
7737
  border-bottom: none;
7276
7738
  padding: 20px 22px 0;
7277
7739
  }
7278
7740
 
7279
7741
  .cn-look-board .cn-detail-page .cn-widget-wrapper__title,
7280
- .cn-look-board .cn-detail-page .cn-detail-card__title {
7742
+ .cn-look-board .cn-detail-card .cn-detail-card__title {
7281
7743
  font-size: var(--cn-board-heading-size);
7282
7744
  font-weight: 700;
7283
7745
  line-height: 1.3;
@@ -7287,7 +7749,7 @@ a.cn-kpi-card--board * {
7287
7749
  padding: 12px 22px 20px;
7288
7750
  }
7289
7751
 
7290
- .cn-look-board .cn-detail-page .cn-detail-card__content {
7752
+ .cn-look-board .cn-detail-card .cn-detail-card__content {
7291
7753
  padding: 12px 22px 20px;
7292
7754
  }
7293
7755
 
@@ -7334,10 +7796,12 @@ a.cn-kpi-card--board * {
7334
7796
  font-weight: 500;
7335
7797
  }
7336
7798
 
7337
- /* Side cards: the heading is a 15px muted label, not a title. */
7799
+ /* Side cards: the heading is a 15px muted label, not a title. The tone
7800
+ carries `!important` against a theme that colours every h3 that way
7801
+ (thematiq's heading colour). */
7338
7802
  .cn-look-board .cn-detail-page__side .cn-widget-wrapper__title,
7339
7803
  .cn-look-board .cn-detail-page__side .cn-detail-card__title {
7340
- color: var(--color-text-maxcontrast);
7804
+ color: var(--color-text-maxcontrast) !important;
7341
7805
  font-size: var(--cn-board-side-heading-size);
7342
7806
  font-weight: 600;
7343
7807
  }
@@ -7392,17 +7856,23 @@ a.cn-kpi-card--board * {
7392
7856
 
7393
7857
  /* ---- The next-step card ------------------------------------------------- */
7394
7858
 
7859
+ /* The board sets the card at the browser's normal line height: a step row is
7860
+ the 20px marker, 28px apart (DqZaak "Wat nu?"). */
7395
7861
  .cn-look-board .cn-next-step-card--board {
7396
7862
  border-radius: 12px;
7397
7863
  gap: 16px 32px;
7864
+ line-height: normal;
7398
7865
  padding: 20px 24px 20px 28px;
7399
7866
  }
7400
7867
 
7868
+ /* The kicker keeps its tone under a theme that colours every h3 with
7869
+ `!important` (thematiq's heading colour); only `!important` beats it. */
7401
7870
  .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);
7871
+ color: var(--color-primary-element-light-text) !important;
7403
7872
  font-size: 13px !important;
7404
7873
  font-weight: 700;
7405
7874
  letter-spacing: 0.06em;
7875
+ line-height: normal;
7406
7876
  text-transform: uppercase;
7407
7877
  }
7408
7878
 
@@ -7433,11 +7903,36 @@ a.cn-kpi-card--board * {
7433
7903
  padding: 0 20px;
7434
7904
  }
7435
7905
 
7906
+ /* The label alone sets the width (DqZaak: 198px for "Verder met beoordelen"):
7907
+ NcButton pads its text 4px a side inside the button's own padding, from a
7908
+ rule that reaches it through `:has()`, hence the doubled class. */
7909
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__side .button-vue .button-vue__text.button-vue__text {
7910
+ margin-inline: 0;
7911
+ padding-inline: 0;
7912
+ }
7913
+
7436
7914
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__after {
7437
7915
  color: var(--color-text-maxcontrast);
7438
7916
  font-size: 13px;
7439
7917
  }
7440
7918
 
7919
+ /* Done and open steps are muted, the current one in the main text. Each hands
7920
+ its ink to --nldesign-color-on-surface, which a theme that forces the body
7921
+ ink onto every li and span (thematiq) reads instead. */
7922
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item,
7923
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__hint,
7924
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__after {
7925
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7926
+ }
7927
+
7928
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current {
7929
+ --nldesign-color-on-surface: var(--color-main-text);
7930
+ }
7931
+
7932
+ .cn-look-board .cn-next-step-card--board .cn-next-step-card__item--current .cn-next-step-card__hint {
7933
+ --nldesign-color-on-surface: var(--color-text-maxcontrast);
7934
+ }
7935
+
7441
7936
  /* ---- History: the activity tab ------------------------------------------ */
7442
7937
 
7443
7938
  .cn-look-board .cn-activity-tab--board .cn-activity-tab__board-head {
@@ -23528,86 +24023,102 @@ a.cn-kpi-card--board * {
23528
24023
 
23529
24024
  /* Color variants */
23530
24025
  .cn-status-badge--default {
24026
+ --cn-status-badge-ink: var(--color-main-text);
23531
24027
  background-color: var(--color-background-dark);
23532
- color: var(--color-main-text);
24028
+ color: var(--cn-status-badge-ink);
23533
24029
  }
23534
24030
 
23535
24031
  .cn-status-badge--primary {
24032
+ --cn-status-badge-ink: var(--color-primary-element);
23536
24033
  background-color: var(--color-primary-element-light);
23537
- color: var(--color-primary-element);
24034
+ color: var(--cn-status-badge-ink);
23538
24035
  }
23539
24036
 
23540
24037
  .cn-status-badge--success {
24038
+ --cn-status-badge-ink: var(--color-success-text, var(--color-success));
23541
24039
  background-color: var(--color-success-light, rgba(70, 186, 97, 0.15));
23542
- color: var(--color-success-text, var(--color-success));
24040
+ color: var(--cn-status-badge-ink);
23543
24041
  }
23544
24042
 
23545
24043
  .cn-status-badge--warning {
24044
+ --cn-status-badge-ink: var(--color-warning-text, var(--color-warning));
23546
24045
  background-color: var(--color-warning-light, rgba(232, 163, 39, 0.15));
23547
- color: var(--color-warning-text, var(--color-warning));
24046
+ color: var(--cn-status-badge-ink);
23548
24047
  }
23549
24048
 
23550
24049
  .cn-status-badge--error {
24050
+ --cn-status-badge-ink: var(--color-error-text, var(--color-error));
23551
24051
  background-color: var(--color-error-light, rgba(224, 68, 68, 0.15));
23552
- color: var(--color-error-text, var(--color-error));
24052
+ color: var(--cn-status-badge-ink);
23553
24053
  }
23554
24054
 
23555
24055
  .cn-status-badge--info {
24056
+ --cn-status-badge-ink: var(--color-info-text, var(--color-info, #0082c9));
23556
24057
  background-color: var(--color-info-light, rgba(0, 130, 201, 0.15));
23557
- color: var(--color-info-text, var(--color-info, #0082c9));
24058
+ color: var(--cn-status-badge-ink);
23558
24059
  }
23559
24060
 
23560
24061
  /* Work in progress ("In behandeling"), a board tone. */
23561
24062
  .cn-status-badge--purple {
24063
+ --cn-status-badge-ink: var(--cn-status-purple-text);
23562
24064
  background-color: var(--cn-status-purple-bg);
23563
- color: var(--cn-status-purple-text);
24065
+ color: var(--cn-status-badge-ink);
23564
24066
  }
23565
24067
 
23566
24068
  /* Handed on ("Omgezet naar een zaak"), a board tone. */
23567
24069
  .cn-status-badge--teal {
24070
+ --cn-status-badge-ink: var(--cn-status-teal-text);
23568
24071
  background-color: var(--cn-status-teal-bg);
23569
- color: var(--cn-status-teal-text);
24072
+ color: var(--cn-status-badge-ink);
23570
24073
  }
23571
24074
 
23572
24075
  /* Solid variants — solid background with white text for use on colored backgrounds */
23573
24076
  .cn-status-badge--solid.cn-status-badge--default {
24077
+ --cn-status-badge-ink: var(--color-main-text);
23574
24078
  background-color: var(--color-background-dark);
23575
- color: var(--color-main-text);
24079
+ color: var(--cn-status-badge-ink);
23576
24080
  }
23577
24081
 
23578
24082
  .cn-status-badge--solid.cn-status-badge--primary {
24083
+ --cn-status-badge-ink: white;
23579
24084
  background-color: var(--color-primary-element);
23580
- color: white;
24085
+ color: var(--cn-status-badge-ink);
23581
24086
  }
23582
24087
 
23583
24088
  .cn-status-badge--solid.cn-status-badge--success {
24089
+ --cn-status-badge-ink: white;
23584
24090
  background-color: var(--color-success);
23585
- color: white;
24091
+ color: var(--cn-status-badge-ink);
23586
24092
  }
23587
24093
 
23588
24094
  .cn-status-badge--solid.cn-status-badge--warning {
24095
+ --cn-status-badge-ink: var(--color-primary-text);
23589
24096
  background-color: var(--color-warning);
23590
- color: var(--color-primary-text);
24097
+ color: var(--cn-status-badge-ink);
23591
24098
  }
23592
24099
 
23593
24100
  .cn-status-badge--solid.cn-status-badge--error {
24101
+ --cn-status-badge-ink: white;
23594
24102
  background-color: var(--color-error);
23595
- color: white;
24103
+ color: var(--cn-status-badge-ink);
23596
24104
  }
23597
24105
 
23598
24106
  .cn-status-badge--solid.cn-status-badge--info {
24107
+ --cn-status-badge-ink: white;
23599
24108
  background-color: var(--color-info, #0082c9);
23600
- color: white;
24109
+ color: var(--cn-status-badge-ink);
23601
24110
  }
23602
24111
 
23603
24112
  .cn-status-badge--solid.cn-status-badge--purple {
24113
+ --cn-status-badge-ink: white;
23604
24114
  background-color: var(--cn-status-purple-text);
23605
- color: white;
24115
+ color: var(--cn-status-badge-ink);
23606
24116
  }
23607
24117
 
23608
24118
  .cn-status-badge--solid.cn-status-badge--teal {
24119
+ --cn-status-badge-ink: white;
23609
24120
  background-color: var(--cn-status-teal-text);
23610
- color: white;
24121
+ color: var(--cn-status-badge-ink);
23611
24122
  }
23612
24123
 
23613
24124
 
@@ -25512,10 +26023,10 @@ button.cn-stepper__step[data-v-776581d4] {
25512
26023
  /* `separator`: a text separator in place of the chevron. The chevron's own
25513
26024
  element stays (it carries NcBreadcrumbs' spacing and its "no separator after
25514
26025
  the last crumb" rule); only its icon gives way to the text. */
25515
- .cn-breadcrumbs--text-separator[data-v-54c3381a] .vue-crumb__separator svg {
26026
+ .cn-breadcrumbs--text-separator[data-v-4bee2493] .vue-crumb__separator svg {
25516
26027
  display: none;
25517
26028
  }
25518
- .cn-breadcrumbs--text-separator[data-v-54c3381a] .vue-crumb__separator::before {
26029
+ .cn-breadcrumbs--text-separator[data-v-4bee2493] .vue-crumb__separator::before {
25519
26030
  content: var(--cn-breadcrumbs-separator);
25520
26031
  padding-inline: var(--cn-breadcrumbs-separator-gap, 0);
25521
26032
  color: var(--color-text-maxcontrast);
@@ -25665,7 +26176,7 @@ button.cn-stepper__step[data-v-776581d4] {
25665
26176
  }
25666
26177
 
25667
26178
 
25668
- .cn-detail-page__catalog-action[data-v-4cfef9d1] {
26179
+ .cn-detail-page__catalog-action[data-v-7d004b4e] {
25669
26180
  align-items: center;
25670
26181
  background: var(--color-primary-element-light);
25671
26182
  border: 0;
@@ -25681,19 +26192,19 @@ button.cn-stepper__step[data-v-776581d4] {
25681
26192
  padding: 0 14px;
25682
26193
  white-space: nowrap;
25683
26194
  }
25684
- .cn-detail-page__catalog-note[data-v-4cfef9d1] {
26195
+ .cn-detail-page__catalog-note[data-v-7d004b4e] {
25685
26196
  color: var(--color-text-maxcontrast);
25686
26197
  font-size: 14px;
25687
26198
  white-space: nowrap;
25688
26199
  }
25689
- .cn-detail-widget-host[data-v-4cfef9d1],
25690
- .cn-detail-widget-host[data-v-4cfef9d1] > * {
26200
+ .cn-detail-widget-host[data-v-7d004b4e],
26201
+ .cn-detail-widget-host[data-v-7d004b4e] > * {
25691
26202
  height: 100%;
25692
26203
  }
25693
26204
 
25694
26205
  /* A bare host is a tab panel's body: it fills the panel and lets the panel
25695
26206
  scroll, rather than growing a second scroll region of its own. */
25696
- .cn-detail-widget-host--bare[data-v-4cfef9d1] {
26207
+ .cn-detail-widget-host--bare[data-v-7d004b4e] {
25697
26208
  min-height: 0;
25698
26209
  }
25699
26210
 
@@ -30097,13 +30608,13 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30097
30608
  }
30098
30609
 
30099
30610
 
30100
- .cn-facts-widget[data-v-34d72512] {
30611
+ .cn-facts-widget[data-v-7f141540] {
30101
30612
  display: flex;
30102
30613
  flex-direction: column;
30103
30614
  gap: 10px;
30104
30615
  min-width: 0;
30105
30616
  }
30106
- .cn-facts-widget__rows[data-v-34d72512] {
30617
+ .cn-facts-widget__rows[data-v-7f141540] {
30107
30618
  display: grid;
30108
30619
  grid-template-columns: max-content 1fr;
30109
30620
  gap: 8px 16px;
@@ -30112,7 +30623,7 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30112
30623
  }
30113
30624
 
30114
30625
  /* Each row is a grid of its own children: the wrapper takes no box. */
30115
- .cn-facts-widget__row[data-v-34d72512] {
30626
+ .cn-facts-widget__row[data-v-7f141540] {
30116
30627
  display: contents;
30117
30628
  }
30118
30629
 
@@ -30120,13 +30631,13 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30120
30631
  pushed the label to the right of its column and added 12px around both. The
30121
30632
  class is doubled so these resets outrank that rule, and a dossiq-style
30122
30633
  `:deep()` override in an app is not needed. */
30123
- .cn-facts-widget__label.cn-facts-widget__label[data-v-34d72512] {
30634
+ .cn-facts-widget__label.cn-facts-widget__label[data-v-7f141540] {
30124
30635
  margin: 0;
30125
30636
  padding: 0;
30126
30637
  text-align: start;
30127
30638
  color: var(--color-text-maxcontrast);
30128
30639
  }
30129
- .cn-facts-widget__value.cn-facts-widget__value[data-v-34d72512] {
30640
+ .cn-facts-widget__value.cn-facts-widget__value[data-v-7f141540] {
30130
30641
  margin: 0;
30131
30642
  padding: 0;
30132
30643
  text-align: start;
@@ -30134,56 +30645,56 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30134
30645
  min-width: 0;
30135
30646
  overflow-wrap: anywhere;
30136
30647
  }
30137
- .cn-facts-widget__title[data-v-34d72512] {
30648
+ .cn-facts-widget__title[data-v-7f141540] {
30138
30649
  font-size: 15px;
30139
30650
  font-weight: 600;
30140
30651
  color: var(--color-main-text);
30141
30652
  }
30142
- .cn-facts-widget__line[data-v-34d72512] {
30653
+ .cn-facts-widget__line[data-v-7f141540] {
30143
30654
  font-size: 13px;
30144
30655
  color: var(--color-text-maxcontrast);
30145
30656
  }
30146
- .cn-facts-widget__meter[data-v-34d72512] {
30657
+ .cn-facts-widget__meter[data-v-7f141540] {
30147
30658
  display: flex;
30148
30659
  flex-direction: column;
30149
30660
  gap: 4px;
30150
30661
  font-size: 14px;
30151
30662
  }
30152
- .cn-facts-widget__meter-head[data-v-34d72512] {
30663
+ .cn-facts-widget__meter-head[data-v-7f141540] {
30153
30664
  display: flex;
30154
30665
  justify-content: space-between;
30155
30666
  gap: 16px;
30156
30667
  }
30157
- .cn-facts-widget__meter-label[data-v-34d72512] {
30668
+ .cn-facts-widget__meter-label[data-v-7f141540] {
30158
30669
  color: var(--color-text-maxcontrast);
30159
30670
  }
30160
- .cn-facts-widget__meter-value[data-v-34d72512] {
30671
+ .cn-facts-widget__meter-value[data-v-7f141540] {
30161
30672
  font-weight: 500;
30162
30673
  text-align: end;
30163
30674
  }
30164
- .cn-facts-widget__meter-track[data-v-34d72512] {
30675
+ .cn-facts-widget__meter-track[data-v-7f141540] {
30165
30676
  height: 6px;
30166
30677
  border-radius: 3px;
30167
30678
  background: var(--color-background-darker);
30168
30679
  overflow: hidden;
30169
30680
  }
30170
- .cn-facts-widget__meter-bar[data-v-34d72512] {
30681
+ .cn-facts-widget__meter-bar[data-v-7f141540] {
30171
30682
  display: block;
30172
30683
  height: 100%;
30173
30684
  border-radius: inherit;
30174
30685
  background: var(--color-primary-element);
30175
30686
  }
30176
- .cn-facts-widget__meter--over .cn-facts-widget__meter-value[data-v-34d72512] {
30687
+ .cn-facts-widget__meter--over .cn-facts-widget__meter-value[data-v-7f141540] {
30177
30688
  color: var(--color-error-text);
30178
30689
  }
30179
- .cn-facts-widget__meter--over .cn-facts-widget__meter-bar[data-v-34d72512] {
30690
+ .cn-facts-widget__meter--over .cn-facts-widget__meter-bar[data-v-7f141540] {
30180
30691
  background: var(--color-error);
30181
30692
  }
30182
- .cn-facts-widget__muted[data-v-34d72512] {
30693
+ .cn-facts-widget__muted[data-v-7f141540] {
30183
30694
  margin: 0;
30184
30695
  color: var(--color-text-maxcontrast);
30185
30696
  }
30186
- .cn-facts-widget__label .hidden-visually[data-v-34d72512] {
30697
+ .cn-facts-widget__label .hidden-visually[data-v-7f141540] {
30187
30698
  clip-path: inset(50%);
30188
30699
  height: 1px;
30189
30700
  overflow: hidden;
@@ -30191,23 +30702,23 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30191
30702
  white-space: nowrap;
30192
30703
  width: 1px;
30193
30704
  }
30194
- .cn-facts-widget__label--icon[data-v-34d72512] {
30705
+ .cn-facts-widget__label--icon[data-v-7f141540] {
30195
30706
  align-items: center;
30196
30707
  display: flex;
30197
30708
  }
30198
- .cn-facts-widget__value-link[data-v-34d72512] {
30709
+ .cn-facts-widget__value-link[data-v-7f141540] {
30199
30710
  color: var(--color-primary-element);
30200
30711
  text-decoration: underline;
30201
30712
  }
30202
- .cn-facts-widget__inline-button[data-v-34d72512],
30203
- .cn-facts-widget__icon-button[data-v-34d72512],
30204
- .cn-facts-widget__action[data-v-34d72512] {
30713
+ .cn-facts-widget__inline-button[data-v-7f141540],
30714
+ .cn-facts-widget__icon-button[data-v-7f141540],
30715
+ .cn-facts-widget__action[data-v-7f141540] {
30205
30716
  align-items: center;
30206
30717
  cursor: pointer;
30207
30718
  display: inline-flex;
30208
30719
  font: inherit;
30209
30720
  }
30210
- .cn-facts-widget__inline-button[data-v-34d72512] {
30721
+ .cn-facts-widget__inline-button[data-v-7f141540] {
30211
30722
  background: var(--color-main-background);
30212
30723
  border: 1px solid var(--color-border-dark);
30213
30724
  border-radius: 16px;
@@ -30218,7 +30729,7 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30218
30729
  min-height: 28px;
30219
30730
  padding: 0 10px;
30220
30731
  }
30221
- .cn-facts-widget__icon-button[data-v-34d72512] {
30732
+ .cn-facts-widget__icon-button[data-v-7f141540] {
30222
30733
  background: transparent;
30223
30734
  border: 0;
30224
30735
  border-radius: 6px;
@@ -30227,23 +30738,23 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30227
30738
  padding: 2px;
30228
30739
  vertical-align: middle;
30229
30740
  }
30230
- .cn-facts-widget__icon-button[data-v-34d72512]:hover,
30231
- .cn-facts-widget__icon-button[data-v-34d72512]:focus-visible {
30741
+ .cn-facts-widget__icon-button[data-v-7f141540]:hover,
30742
+ .cn-facts-widget__icon-button[data-v-7f141540]:focus-visible {
30232
30743
  background: var(--color-background-hover);
30233
30744
  color: var(--color-main-text);
30234
30745
  }
30235
- .cn-facts-widget__text[data-v-34d72512] {
30746
+ .cn-facts-widget__text[data-v-7f141540] {
30236
30747
  color: var(--color-main-text);
30237
30748
  font-size: 15px;
30238
30749
  }
30239
30750
 
30240
30751
  /* A lead: an icon tile or initials beside a bold title and a muted subtitle. */
30241
- .cn-facts-widget__lead[data-v-34d72512] {
30752
+ .cn-facts-widget__lead[data-v-7f141540] {
30242
30753
  align-items: center;
30243
30754
  display: flex;
30244
30755
  gap: 12px;
30245
30756
  }
30246
- .cn-facts-widget__lead-tile[data-v-34d72512] {
30757
+ .cn-facts-widget__lead-tile[data-v-7f141540] {
30247
30758
  align-items: center;
30248
30759
  background: var(--color-background-dark);
30249
30760
  border-radius: 8px;
@@ -30256,29 +30767,29 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30256
30767
  justify-content: center;
30257
30768
  width: 40px;
30258
30769
  }
30259
- .cn-facts-widget__lead-tile--success[data-v-34d72512] {
30770
+ .cn-facts-widget__lead-tile--success[data-v-7f141540] {
30260
30771
  background: color-mix(in srgb, var(--color-success) 14%, var(--color-main-background));
30261
30772
  border-radius: 50%;
30262
30773
  color: var(--color-success-text, var(--color-success));
30263
30774
  }
30264
- .cn-facts-widget__lead-tile--info[data-v-34d72512] {
30775
+ .cn-facts-widget__lead-tile--info[data-v-7f141540] {
30265
30776
  background: var(--color-primary-element-light);
30266
30777
  border-radius: 50%;
30267
30778
  color: var(--color-primary-element-light-text, var(--color-primary-element));
30268
30779
  }
30269
- .cn-facts-widget__lead-text[data-v-34d72512] {
30780
+ .cn-facts-widget__lead-text[data-v-7f141540] {
30270
30781
  display: flex;
30271
30782
  flex-direction: column;
30272
30783
  min-width: 0;
30273
30784
  }
30274
- .cn-facts-widget__lead-title[data-v-34d72512] {
30785
+ .cn-facts-widget__lead-title[data-v-7f141540] {
30275
30786
  font-size: 15px;
30276
30787
  }
30277
- .cn-facts-widget__lead-subtitle[data-v-34d72512] {
30788
+ .cn-facts-widget__lead-subtitle[data-v-7f141540] {
30278
30789
  color: var(--color-text-maxcontrast);
30279
30790
  font-size: 13px;
30280
30791
  }
30281
- .cn-facts-widget__action[data-v-34d72512] {
30792
+ .cn-facts-widget__action[data-v-7f141540] {
30282
30793
  align-self: flex-start;
30283
30794
  background: var(--color-primary-element-light);
30284
30795
  border: 0;
@@ -30290,11 +30801,14 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30290
30801
  min-height: 32px;
30291
30802
  padding: 0 14px;
30292
30803
  }
30293
- .cn-facts-widget__action[data-v-34d72512]:hover,
30294
- .cn-facts-widget__action[data-v-34d72512]:focus-visible {
30804
+ .cn-facts-widget__action[data-v-7f141540]:hover,
30805
+ .cn-facts-widget__action[data-v-7f141540]:focus-visible {
30295
30806
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
30296
30807
  }
30297
- .cn-facts-widget__link[data-v-34d72512] {
30808
+ .cn-facts-widget__notice[data-v-7f141540] {
30809
+ margin: 4px 0 0;
30810
+ }
30811
+ .cn-facts-widget__link[data-v-7f141540] {
30298
30812
  font-size: 14px;
30299
30813
  font-weight: 600;
30300
30814
  color: var(--color-primary-element);
@@ -30303,12 +30817,12 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30303
30817
 
30304
30818
  /* `columns: 2` (board DqContact): two columns, the label above the value, a
30305
30819
  hairline under each fact; one column on a phone. */
30306
- .cn-facts-widget__rows--columns[data-v-34d72512] {
30820
+ .cn-facts-widget__rows--columns[data-v-7f141540] {
30307
30821
  grid-template-columns: repeat(2, minmax(0, 1fr));
30308
30822
  gap: 14px 24px;
30309
30823
  font-size: 15px;
30310
30824
  }
30311
- .cn-facts-widget__rows--columns .cn-facts-widget__row[data-v-34d72512] {
30825
+ .cn-facts-widget__rows--columns .cn-facts-widget__row[data-v-7f141540] {
30312
30826
  display: flex;
30313
30827
  flex-direction: column;
30314
30828
  gap: 3px;
@@ -30316,11 +30830,11 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30316
30830
  padding-bottom: 10px;
30317
30831
  border-bottom: 1px solid var(--color-border);
30318
30832
  }
30319
- .cn-facts-widget__rows--columns .cn-facts-widget__label.cn-facts-widget__label[data-v-34d72512] {
30833
+ .cn-facts-widget__rows--columns .cn-facts-widget__label.cn-facts-widget__label[data-v-7f141540] {
30320
30834
  font-size: 13px;
30321
30835
  }
30322
30836
  @media (max-width: 640px) {
30323
- .cn-facts-widget__rows--columns[data-v-34d72512] {
30837
+ .cn-facts-widget__rows--columns[data-v-7f141540] {
30324
30838
  grid-template-columns: minmax(0, 1fr);
30325
30839
  }
30326
30840
  }
@@ -30506,6 +31020,99 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
30506
31020
  }
30507
31021
 
30508
31022
 
31023
+ .cn-working-calendar[data-v-03ee459c] {
31024
+ display: flex;
31025
+ flex-direction: column;
31026
+ gap: 12px;
31027
+ }
31028
+ .cn-working-calendar__head[data-v-03ee459c] {
31029
+ align-items: center;
31030
+ display: flex;
31031
+ gap: 4px;
31032
+ }
31033
+ .cn-working-calendar__title[data-v-03ee459c] {
31034
+ font-size: 15px;
31035
+ min-width: 9em;
31036
+ text-align: center;
31037
+ }
31038
+ .cn-working-calendar__add[data-v-03ee459c] {
31039
+ margin-inline-start: auto;
31040
+ }
31041
+ .cn-working-calendar__grid[data-v-03ee459c] {
31042
+ display: flex;
31043
+ flex-direction: column;
31044
+ gap: 4px;
31045
+ }
31046
+ .cn-working-calendar__row[data-v-03ee459c] {
31047
+ display: grid;
31048
+ gap: 4px;
31049
+ grid-template-columns: repeat(7, minmax(0, 1fr));
31050
+ }
31051
+ .cn-working-calendar__weekday[data-v-03ee459c] {
31052
+ color: var(--color-text-maxcontrast);
31053
+ font-size: 12px;
31054
+ text-align: center;
31055
+ }
31056
+ .cn-working-calendar__day[data-v-03ee459c] {
31057
+ align-items: center;
31058
+ background: var(--color-main-background);
31059
+ border: 1px solid var(--color-border);
31060
+ border-radius: 6px;
31061
+ cursor: default;
31062
+ display: flex;
31063
+ font-size: 13px;
31064
+ height: 34px;
31065
+ justify-content: center;
31066
+ }
31067
+ .cn-working-calendar__day[data-v-03ee459c]:focus-visible {
31068
+ outline: 2px solid var(--color-primary-element);
31069
+ outline-offset: 1px;
31070
+ }
31071
+ .cn-working-calendar__day--off[data-v-03ee459c] {
31072
+ background: var(--color-background-dark);
31073
+ }
31074
+ .cn-working-calendar__day--closed[data-v-03ee459c] {
31075
+ background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
31076
+ border-color: var(--color-error);
31077
+ color: var(--color-error-text, var(--color-main-text));
31078
+ font-weight: 600;
31079
+ }
31080
+ .cn-working-calendar__day--today[data-v-03ee459c] {
31081
+ box-shadow: inset 0 0 0 2px var(--color-primary-element);
31082
+ }
31083
+ .cn-working-calendar__live[data-v-03ee459c] {
31084
+ clip-path: inset(50%);
31085
+ height: 1px;
31086
+ overflow: hidden;
31087
+ position: absolute;
31088
+ white-space: nowrap;
31089
+ width: 1px;
31090
+ }
31091
+ .cn-working-calendar__note[data-v-03ee459c] {
31092
+ color: var(--color-text-maxcontrast);
31093
+ margin: 0;
31094
+ }
31095
+ .cn-working-calendar__form[data-v-03ee459c] {
31096
+ display: flex;
31097
+ flex-wrap: wrap;
31098
+ gap: 8px 12px;
31099
+ }
31100
+ .cn-working-calendar__field[data-v-03ee459c] {
31101
+ display: flex;
31102
+ flex-direction: column;
31103
+ gap: 4px;
31104
+ }
31105
+ .cn-working-calendar__form-actions[data-v-03ee459c] {
31106
+ align-items: flex-end;
31107
+ display: flex;
31108
+ gap: 8px;
31109
+ }
31110
+ .cn-working-calendar__error[data-v-03ee459c] {
31111
+ color: var(--color-error-text, var(--color-error));
31112
+ margin: 0;
31113
+ }
31114
+
31115
+
30509
31116
  .cn-run-node-dialog__form[data-v-2d7cb7f5] {
30510
31117
  display: flex;
30511
31118
  flex-direction: column;
@@ -31817,27 +32424,52 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31817
32424
  }
31818
32425
 
31819
32426
 
31820
- .cn-record-list__list[data-v-b768fcd6] {
32427
+ .cn-record-list__list[data-v-03e67618] {
31821
32428
  list-style: none;
31822
32429
  margin: 0;
31823
32430
  padding: 0;
31824
32431
  }
31825
- .cn-record-list__empty[data-v-b768fcd6],
31826
- .cn-record-list__error[data-v-b768fcd6] {
32432
+ .cn-record-list__empty[data-v-03e67618],
32433
+ .cn-record-list__error[data-v-03e67618] {
31827
32434
  color: var(--color-text-maxcontrast);
31828
32435
  margin: 0;
31829
32436
  }
31830
- .cn-record-list__loading[data-v-b768fcd6] {
32437
+ .cn-record-list__notice[data-v-03e67618] {
32438
+ display: flex;
32439
+ gap: 10px;
32440
+ align-items: flex-start;
32441
+ padding: 12px 14px;
32442
+ border-radius: var(--border-radius-large, 10px);
32443
+ background: var(--color-primary-element-light, var(--color-background-dark));
32444
+ color: var(--color-main-text);
32445
+ }
32446
+ .cn-record-list__notice--warning[data-v-03e67618] {
32447
+ background: var(--color-warning-light, rgba(255, 196, 0, 0.12));
32448
+ color: var(--color-warning-text, var(--color-main-text));
32449
+ }
32450
+ .cn-record-list__notice--error[data-v-03e67618] {
32451
+ background: var(--color-error-light, rgba(219, 0, 0, 0.08));
32452
+ color: var(--color-error-text, var(--color-main-text));
32453
+ }
32454
+ .cn-record-list__notice-icon[data-v-03e67618] {
32455
+ flex: 0 0 auto;
32456
+ margin-top: 1px;
32457
+ }
32458
+ .cn-record-list__notice-text[data-v-03e67618] {
32459
+ margin: 0;
32460
+ line-height: 1.5;
32461
+ }
32462
+ .cn-record-list__loading[data-v-03e67618] {
31831
32463
  display: flex;
31832
32464
  justify-content: center;
31833
32465
  padding: 8px 0;
31834
32466
  }
31835
32467
 
31836
32468
  /* rows */
31837
- .cn-record-list--rows .cn-record-list__item + .cn-record-list__item[data-v-b768fcd6] {
32469
+ .cn-record-list--rows .cn-record-list__item + .cn-record-list__item[data-v-03e67618] {
31838
32470
  border-top: 1px solid var(--color-border);
31839
32471
  }
31840
- .cn-record-list__bar[data-v-b768fcd6] {
32472
+ .cn-record-list__bar[data-v-03e67618] {
31841
32473
  background: var(--color-border);
31842
32474
  border-radius: 3px;
31843
32475
  display: block;
@@ -31845,15 +32477,15 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31845
32477
  margin: -6px 0 12px;
31846
32478
  overflow: hidden;
31847
32479
  }
31848
- .cn-record-list__bar-fill[data-v-b768fcd6] {
32480
+ .cn-record-list__bar-fill[data-v-03e67618] {
31849
32481
  background: var(--color-primary-element);
31850
32482
  display: block;
31851
32483
  height: 100%;
31852
32484
  }
31853
- .cn-record-list__bar--over .cn-record-list__bar-fill[data-v-b768fcd6] {
32485
+ .cn-record-list__bar--over .cn-record-list__bar-fill[data-v-03e67618] {
31854
32486
  background: var(--color-error);
31855
32487
  }
31856
- .cn-record-list__row[data-v-b768fcd6] {
32488
+ .cn-record-list__row[data-v-03e67618] {
31857
32489
  align-items: center;
31858
32490
  color: var(--color-main-text);
31859
32491
  display: flex;
@@ -31861,11 +32493,11 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31861
32493
  padding: 12px 0;
31862
32494
  text-decoration: none;
31863
32495
  }
31864
- .cn-record-list__row--link:hover .cn-record-list__title[data-v-b768fcd6],
31865
- .cn-record-list__row--link:focus-visible .cn-record-list__title[data-v-b768fcd6] {
32496
+ .cn-record-list__row--link:hover .cn-record-list__title[data-v-03e67618],
32497
+ .cn-record-list__row--link:focus-visible .cn-record-list__title[data-v-03e67618] {
31866
32498
  text-decoration: underline;
31867
32499
  }
31868
- .cn-record-list__avatar[data-v-b768fcd6] {
32500
+ .cn-record-list__avatar[data-v-03e67618] {
31869
32501
  align-items: center;
31870
32502
  background: var(--color-background-hover);
31871
32503
  border-radius: 50%;
@@ -31878,67 +32510,67 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31878
32510
  justify-content: center;
31879
32511
  width: 36px;
31880
32512
  }
31881
- .cn-record-list__main[data-v-b768fcd6] {
32513
+ .cn-record-list__main[data-v-03e67618] {
31882
32514
  display: flex;
31883
32515
  flex: 1 1 auto;
31884
32516
  flex-direction: column;
31885
32517
  gap: 2px;
31886
32518
  min-width: 0;
31887
32519
  }
31888
- .cn-record-list__title[data-v-b768fcd6] {
32520
+ .cn-record-list__title[data-v-03e67618] {
31889
32521
  font-size: 15px;
31890
32522
  font-weight: 700;
31891
32523
  }
31892
- .cn-record-list__meta[data-v-b768fcd6] {
32524
+ .cn-record-list__meta[data-v-03e67618] {
31893
32525
  color: var(--color-text-maxcontrast);
31894
32526
  font-size: 13px;
31895
32527
  }
31896
- .cn-record-list__aside[data-v-b768fcd6] {
32528
+ .cn-record-list__aside[data-v-03e67618] {
31897
32529
  align-items: center;
31898
32530
  display: flex;
31899
32531
  flex: none;
31900
32532
  gap: 16px;
31901
32533
  }
31902
- .cn-record-list__trailing[data-v-b768fcd6] {
32534
+ .cn-record-list__trailing[data-v-03e67618] {
31903
32535
  font-size: 14px;
31904
32536
  white-space: nowrap;
31905
32537
  }
31906
- .cn-record-list__due[data-v-b768fcd6] {
32538
+ .cn-record-list__due[data-v-03e67618] {
31907
32539
  font-size: 14px;
31908
32540
  white-space: nowrap;
31909
32541
  }
31910
- .cn-record-list__due--danger[data-v-b768fcd6] {
32542
+ .cn-record-list__due--danger[data-v-03e67618] {
31911
32543
  color: var(--color-text-error, var(--color-error-text));
31912
32544
  font-weight: 600;
31913
32545
  }
31914
- .cn-record-list__due--empty[data-v-b768fcd6] {
32546
+ .cn-record-list__due--empty[data-v-03e67618] {
31915
32547
  color: var(--color-text-maxcontrast);
31916
32548
  }
31917
- .cn-record-list__row--action[data-v-b768fcd6] {
32549
+ .cn-record-list__row--action[data-v-03e67618] {
31918
32550
  flex-wrap: wrap;
31919
32551
  gap: 8px 16px;
31920
32552
  padding: 14px 0;
31921
32553
  }
31922
- .cn-record-list__row--action .cn-record-list__main[data-v-b768fcd6] {
32554
+ .cn-record-list__row--action .cn-record-list__main[data-v-03e67618] {
31923
32555
  flex: 1 1 280px;
31924
32556
  gap: 3px;
31925
32557
  }
31926
- .cn-record-list__title--link[data-v-b768fcd6] {
32558
+ .cn-record-list__title--link[data-v-03e67618] {
31927
32559
  color: var(--color-main-text);
31928
32560
  text-decoration: underline;
31929
32561
  }
31930
- .cn-record-list__pills[data-v-b768fcd6] {
32562
+ .cn-record-list__pills[data-v-03e67618] {
31931
32563
  display: flex;
31932
32564
  flex: 0 0 120px;
31933
32565
  gap: 6px;
31934
32566
  justify-content: flex-end;
31935
32567
  }
31936
- .cn-record-list__due--column[data-v-b768fcd6] {
32568
+ .cn-record-list__due--column[data-v-03e67618] {
31937
32569
  flex: 0 0 96px;
31938
32570
  font-size: 13px;
31939
32571
  text-align: end;
31940
32572
  }
31941
- .cn-record-list__action[data-v-b768fcd6] {
32573
+ .cn-record-list__action[data-v-03e67618] {
31942
32574
  align-items: center;
31943
32575
  background: var(--color-primary-element-light);
31944
32576
  border: 0;
@@ -31955,23 +32587,23 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31955
32587
  padding: 0 14px;
31956
32588
  text-decoration: none;
31957
32589
  }
31958
- .cn-record-list__action[data-v-b768fcd6]:hover,
31959
- .cn-record-list__action[data-v-b768fcd6]:focus-visible {
32590
+ .cn-record-list__action[data-v-03e67618]:hover,
32591
+ .cn-record-list__action[data-v-03e67618]:focus-visible {
31960
32592
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
31961
32593
  }
31962
- .cn-record-list__chevron[data-v-b768fcd6] {
32594
+ .cn-record-list__chevron[data-v-03e67618] {
31963
32595
  color: var(--color-text-maxcontrast);
31964
32596
  flex: none;
31965
32597
  }
31966
32598
 
31967
32599
  /* cards (board ShBank): a grid of framed cards, 240px at the least. */
31968
- .cn-record-list--cards .cn-record-list__list[data-v-b768fcd6] {
32600
+ .cn-record-list--cards .cn-record-list__list[data-v-03e67618] {
31969
32601
  align-items: start;
31970
32602
  display: grid;
31971
32603
  gap: 16px;
31972
32604
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
31973
32605
  }
31974
- .cn-record-list__card[data-v-b768fcd6] {
32606
+ .cn-record-list__card[data-v-03e67618] {
31975
32607
  background: var(--color-main-background);
31976
32608
  border: 1px solid var(--color-border);
31977
32609
  border-radius: 12px;
@@ -31983,51 +32615,51 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
31983
32615
  padding: 16px 18px;
31984
32616
  text-decoration: none;
31985
32617
  }
31986
- .cn-record-list__card--link[data-v-b768fcd6]:hover,
31987
- .cn-record-list__card--link[data-v-b768fcd6]:focus-visible {
32618
+ .cn-record-list__card--link[data-v-03e67618]:hover,
32619
+ .cn-record-list__card--link[data-v-03e67618]:focus-visible {
31988
32620
  border-color: var(--color-border-dark, var(--color-border));
31989
32621
  }
31990
- .cn-record-list__card--link:hover .cn-record-list__title[data-v-b768fcd6],
31991
- .cn-record-list__card--link:focus-visible .cn-record-list__title[data-v-b768fcd6] {
32622
+ .cn-record-list__card--link:hover .cn-record-list__title[data-v-03e67618],
32623
+ .cn-record-list__card--link:focus-visible .cn-record-list__title[data-v-03e67618] {
31992
32624
  text-decoration: underline;
31993
32625
  }
31994
- .cn-record-list__card-head[data-v-b768fcd6] {
32626
+ .cn-record-list__card-head[data-v-03e67618] {
31995
32627
  align-items: center;
31996
32628
  display: flex;
31997
32629
  gap: 8px;
31998
32630
  justify-content: space-between;
31999
32631
  }
32000
- .cn-record-list__card-title[data-v-b768fcd6] {
32632
+ .cn-record-list__card-title[data-v-03e67618] {
32001
32633
  align-items: center;
32002
32634
  display: flex;
32003
32635
  gap: 8px;
32004
32636
  min-width: 0;
32005
32637
  }
32006
- .cn-record-list__card-icon[data-v-b768fcd6] {
32638
+ .cn-record-list__card-icon[data-v-03e67618] {
32007
32639
  color: var(--color-primary-element);
32008
32640
  flex: none;
32009
32641
  }
32010
- .cn-record-list__card-pills[data-v-b768fcd6] {
32642
+ .cn-record-list__card-pills[data-v-03e67618] {
32011
32643
  display: flex;
32012
32644
  flex: none;
32013
32645
  gap: 6px;
32014
32646
  }
32015
- .cn-record-list__card-value[data-v-b768fcd6] {
32647
+ .cn-record-list__card-value[data-v-03e67618] {
32016
32648
  font-size: 24px;
32017
32649
  font-weight: 700;
32018
32650
  }
32019
32651
 
32020
32652
  /* feed */
32021
- .cn-record-list--feed .cn-record-list__item + .cn-record-list__item[data-v-b768fcd6] {
32653
+ .cn-record-list--feed .cn-record-list__item + .cn-record-list__item[data-v-03e67618] {
32022
32654
  border-top: 1px solid var(--color-border);
32023
32655
  }
32024
- .cn-record-list__feed-row[data-v-b768fcd6] {
32656
+ .cn-record-list__feed-row[data-v-03e67618] {
32025
32657
  align-items: flex-start;
32026
32658
  display: flex;
32027
32659
  gap: 14px;
32028
32660
  padding: 12px 0;
32029
32661
  }
32030
- .cn-record-list__feed-icon[data-v-b768fcd6] {
32662
+ .cn-record-list__feed-icon[data-v-03e67618] {
32031
32663
  align-items: center;
32032
32664
  background: var(--color-primary-element-light);
32033
32665
  border-radius: 50%;
@@ -32038,25 +32670,25 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
32038
32670
  justify-content: center;
32039
32671
  width: 36px;
32040
32672
  }
32041
- .cn-record-list__text[data-v-b768fcd6] {
32673
+ .cn-record-list__text[data-v-03e67618] {
32042
32674
  font-size: 15px;
32043
32675
  }
32044
- .cn-record-list--feed .cn-record-list__main[data-v-b768fcd6] {
32676
+ .cn-record-list--feed .cn-record-list__main[data-v-03e67618] {
32045
32677
  color: var(--color-main-text);
32046
32678
  text-decoration: none;
32047
32679
  }
32048
32680
 
32049
32681
  /* inline */
32050
- .cn-record-list__inline-row[data-v-b768fcd6] {
32682
+ .cn-record-list__inline-row[data-v-03e67618] {
32051
32683
  padding: 4px 0;
32052
32684
  }
32053
- .cn-record-list__label[data-v-b768fcd6] {
32685
+ .cn-record-list__label[data-v-03e67618] {
32054
32686
  margin-inline-end: 4px;
32055
32687
  }
32056
- .cn-record-list__inline-title[data-v-b768fcd6] {
32688
+ .cn-record-list__inline-title[data-v-03e67618] {
32057
32689
  color: var(--color-main-text);
32058
32690
  }
32059
- a.cn-record-list__inline-title[data-v-b768fcd6] {
32691
+ a.cn-record-list__inline-title[data-v-03e67618] {
32060
32692
  color: var(--color-primary-element);
32061
32693
  text-decoration: underline;
32062
32694
  }
@@ -32732,6 +33364,101 @@ a.cn-record-list__inline-title[data-v-b768fcd6] {
32732
33364
  }
32733
33365
 
32734
33366
 
33367
+ .cn-settings-field[data-v-d2218996] {
33368
+ display: flex;
33369
+ flex-direction: column;
33370
+ gap: 4px;
33371
+ min-width: 0;
33372
+ }
33373
+ .cn-settings-field__hint[data-v-d2218996],
33374
+ .cn-settings-field__error[data-v-d2218996] {
33375
+ margin: 0;
33376
+ font-size: 13px;
33377
+ line-height: 1.4;
33378
+ }
33379
+ .cn-settings-field__image[data-v-d2218996] {
33380
+ display: flex;
33381
+ flex-direction: column;
33382
+ gap: 6px;
33383
+ }
33384
+ .cn-settings-field__image-label[data-v-d2218996] {
33385
+ font-weight: 600;
33386
+ }
33387
+ .cn-settings-field__image-row[data-v-d2218996] {
33388
+ display: flex;
33389
+ flex-wrap: wrap;
33390
+ align-items: center;
33391
+ gap: 12px;
33392
+ }
33393
+ .cn-settings-field__image-tile[data-v-d2218996] {
33394
+ display: inline-flex;
33395
+ align-items: center;
33396
+ justify-content: center;
33397
+ width: 64px;
33398
+ height: 64px;
33399
+ overflow: hidden;
33400
+ border: 1px solid var(--color-border);
33401
+ border-radius: var(--border-radius-large);
33402
+ background: var(--color-primary-element-light);
33403
+ }
33404
+ .cn-settings-field__image-tile img[data-v-d2218996] {
33405
+ max-width: 100%;
33406
+ max-height: 100%;
33407
+ object-fit: contain;
33408
+ }
33409
+ .cn-settings-field__image-initials[data-v-d2218996] {
33410
+ font-size: 20px;
33411
+ font-weight: 700;
33412
+ color: var(--color-primary-element-light-text, var(--color-primary-element));
33413
+ }
33414
+ .cn-settings-field__hint[data-v-d2218996] {
33415
+ color: var(--color-text-maxcontrast);
33416
+ }
33417
+ .cn-settings-field__error[data-v-d2218996] {
33418
+ color: var(--color-error-text, var(--color-error));
33419
+ }
33420
+
33421
+
33422
+ .cn-settings-fields[data-v-090828e4] {
33423
+ display: flex;
33424
+ flex-direction: column;
33425
+ gap: 16px;
33426
+ container-type: inline-size;
33427
+ }
33428
+ .cn-settings-fields__grid[data-v-090828e4] {
33429
+ display: grid;
33430
+ grid-template-columns: minmax(0, 1fr);
33431
+ gap: 16px 20px;
33432
+ }
33433
+
33434
+ /* Two or three columns where the card is wide enough; stacked otherwise. */
33435
+ @container (min-width: 520px) {
33436
+ .cn-settings-fields__grid--2[data-v-090828e4],
33437
+ .cn-settings-fields__grid--3[data-v-090828e4] {
33438
+ grid-template-columns: repeat(2, minmax(0, 1fr));
33439
+ }
33440
+ }
33441
+ @container (min-width: 780px) {
33442
+ .cn-settings-fields__grid--3[data-v-090828e4] {
33443
+ grid-template-columns: repeat(3, minmax(0, 1fr));
33444
+ }
33445
+ }
33446
+ .cn-settings-fields__field--wide[data-v-090828e4] {
33447
+ grid-column: 1 / -1;
33448
+ }
33449
+ .cn-settings-fields__save[data-v-090828e4] {
33450
+ display: flex;
33451
+ flex-wrap: wrap;
33452
+ align-items: center;
33453
+ justify-content: flex-end;
33454
+ gap: 12px;
33455
+ }
33456
+ .cn-settings-fields__dirty[data-v-090828e4] {
33457
+ font-size: 14px;
33458
+ color: var(--color-text-maxcontrast);
33459
+ }
33460
+
33461
+
32735
33462
  ._passwordDialog_joix2_2 {
32736
33463
  display: flex;
32737
33464
  flex-direction: column;
@@ -36332,28 +37059,38 @@ to {
36332
37059
  margin-block-start: 4px;
36333
37060
  }
36334
37061
 
36335
- .cn-wizard-dialog__step-body[data-v-4a9bf6d1] {
37062
+ .cn-wizard-dialog__step-body[data-v-547e7819] {
36336
37063
  min-height: 200px;
36337
37064
  }
36338
- .cn-wizard-dialog__result[data-v-4a9bf6d1] {
37065
+ .cn-wizard-dialog__result[data-v-547e7819] {
36339
37066
  display: flex;
36340
37067
  flex-direction: column;
36341
37068
  gap: 12px;
36342
37069
  }
36343
37070
 
36344
37071
 
36345
- .cn-setup-step[data-v-5670b06f] {
37072
+ .cn-setup-step[data-v-32874a44] {
36346
37073
  display: flex;
36347
37074
  flex-direction: column;
36348
37075
  gap: 12px;
36349
37076
  }
36350
- .cn-setup-step__nav[data-v-5670b06f] {
37077
+ .cn-setup-step__intro[data-v-32874a44] {
37078
+ margin: 0;
37079
+ font-size: 15px;
37080
+ line-height: 1.5;
37081
+ }
37082
+ .cn-setup-step__note[data-v-32874a44] {
37083
+ margin: 0;
37084
+ font-size: 13px;
37085
+ color: var(--color-text-maxcontrast);
37086
+ }
37087
+ .cn-setup-step__nav[data-v-32874a44] {
36351
37088
  display: flex;
36352
37089
  justify-content: flex-end;
36353
37090
  gap: 8px;
36354
37091
  margin-top: 8px;
36355
37092
  }
36356
- .cn-setup-step__running[data-v-5670b06f] {
37093
+ .cn-setup-step__running[data-v-32874a44] {
36357
37094
  display: flex;
36358
37095
  align-items: center;
36359
37096
  justify-content: center;
@@ -36361,43 +37098,43 @@ to {
36361
37098
  padding: 24px 0;
36362
37099
  color: var(--color-text-maxcontrast);
36363
37100
  }
36364
- .cn-setup-load-result[data-v-5670b06f] {
37101
+ .cn-setup-load-result[data-v-32874a44] {
36365
37102
  margin: 0;
36366
37103
  font-size: var(--font-size-small, 13px);
36367
37104
  }
36368
- .cn-setup-load-result--success[data-v-5670b06f] {
37105
+ .cn-setup-load-result--success[data-v-32874a44] {
36369
37106
  color: var(--color-success-text, var(--color-success));
36370
37107
  }
36371
- .cn-setup-load-result--error[data-v-5670b06f] {
37108
+ .cn-setup-load-result--error[data-v-32874a44] {
36372
37109
  color: var(--color-error-text, var(--color-error));
36373
37110
  }
36374
- .cn-setup-field[data-v-5670b06f] {
37111
+ .cn-setup-field[data-v-32874a44] {
36375
37112
  display: flex;
36376
37113
  flex-direction: column;
36377
37114
  }
36378
- .cn-setup-summary[data-v-5670b06f] {
37115
+ .cn-setup-summary[data-v-32874a44] {
36379
37116
  list-style: none;
36380
37117
  padding: 0;
36381
37118
  margin: 0;
36382
37119
  }
36383
- .cn-setup-summary__item[data-v-5670b06f] {
37120
+ .cn-setup-summary__item[data-v-32874a44] {
36384
37121
  display: flex;
36385
37122
  align-items: center;
36386
37123
  gap: 8px;
36387
37124
  padding: 4px 0;
36388
37125
  color: var(--color-text-maxcontrast);
36389
37126
  }
36390
- .cn-setup-summary__item--done[data-v-5670b06f] {
37127
+ .cn-setup-summary__item--done[data-v-32874a44] {
36391
37128
  color: var(--color-main-text);
36392
37129
  }
36393
- .cn-setup-summary__mark[data-v-5670b06f] {
37130
+ .cn-setup-summary__mark[data-v-32874a44] {
36394
37131
  font-weight: bold;
36395
37132
  color: var(--color-success);
36396
37133
  }
36397
- .cn-setup-summary__label[data-v-5670b06f] {
37134
+ .cn-setup-summary__label[data-v-32874a44] {
36398
37135
  flex: 0 0 auto;
36399
37136
  }
36400
- .cn-setup-summary__value[data-v-5670b06f] {
37137
+ .cn-setup-summary__value[data-v-32874a44] {
36401
37138
  margin-inline-start: auto;
36402
37139
  font-weight: 600;
36403
37140
  color: var(--color-main-text);
@@ -36405,34 +37142,34 @@ to {
36405
37142
 
36406
37143
  /* An on-demand step that did not run says so quietly: it is a choice the
36407
37144
  user did not make, not a failure. */
36408
- .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-5670b06f] {
37145
+ .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-32874a44] {
36409
37146
  font-weight: normal;
36410
37147
  color: var(--color-text-maxcontrast);
36411
37148
  }
36412
37149
 
36413
37150
 
36414
- .cn-admin-settings-shell[data-v-73ed7e9c] {
37151
+ .cn-admin-settings-shell[data-v-b8d7f6c6] {
36415
37152
  max-width: 900px;
36416
37153
  }
36417
37154
 
36418
37155
  /* The board look lifts the width and lays the header and cards on a grid (look-board.css). */
36419
- .cn-support-info[data-v-73ed7e9c] {
37156
+ .cn-support-info[data-v-b8d7f6c6] {
36420
37157
  margin-top: 16px;
36421
37158
  padding-top: 16px;
36422
37159
  border-top: 1px solid var(--color-border);
36423
37160
  }
36424
- .cn-support-info h4[data-v-73ed7e9c] {
37161
+ .cn-support-info h4[data-v-b8d7f6c6] {
36425
37162
  margin: 0 0 8px 0;
36426
37163
  font-size: 14px;
36427
37164
  font-weight: 600;
36428
37165
  color: var(--color-main-text);
36429
37166
  }
36430
- .cn-support-info p[data-v-73ed7e9c] {
37167
+ .cn-support-info p[data-v-b8d7f6c6] {
36431
37168
  margin: 4px 0;
36432
37169
  color: var(--color-text-maxcontrast);
36433
37170
  font-size: 14px;
36434
37171
  }
36435
- .cn-support-info a[data-v-73ed7e9c] {
37172
+ .cn-support-info a[data-v-b8d7f6c6] {
36436
37173
  color: var(--color-primary-element);
36437
37174
  }
36438
37175
 
@@ -37061,16 +37798,16 @@ to {
37061
37798
  }
37062
37799
 
37063
37800
 
37064
- .cn-ordered-list-field[data-v-81cf425a] {
37801
+ .cn-ordered-list-field[data-v-3ab313d4] {
37065
37802
  display: flex;
37066
37803
  flex-direction: column;
37067
37804
  gap: 10px;
37068
37805
  }
37069
- .cn-ordered-list-field__label[data-v-81cf425a] {
37806
+ .cn-ordered-list-field__label[data-v-3ab313d4] {
37070
37807
  margin: 0;
37071
37808
  font-weight: 600;
37072
37809
  }
37073
- .cn-ordered-list-field__rows[data-v-81cf425a] {
37810
+ .cn-ordered-list-field__rows[data-v-3ab313d4] {
37074
37811
  display: flex;
37075
37812
  flex-direction: column;
37076
37813
  margin: 0;
@@ -37079,34 +37816,34 @@ to {
37079
37816
  border-radius: var(--border-radius-element, 8px);
37080
37817
  list-style: none;
37081
37818
  }
37082
- .cn-ordered-list-field__row[data-v-81cf425a] {
37819
+ .cn-ordered-list-field__row[data-v-3ab313d4] {
37083
37820
  display: flex;
37084
37821
  align-items: center;
37085
37822
  gap: 10px;
37086
37823
  min-height: 44px;
37087
37824
  padding: 2px 6px 2px 12px;
37088
37825
  }
37089
- .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-81cf425a] {
37826
+ .cn-ordered-list-field__row + .cn-ordered-list-field__row[data-v-3ab313d4] {
37090
37827
  border-top: 1px solid var(--color-border);
37091
37828
  }
37092
- .cn-ordered-list-field__position[data-v-81cf425a] {
37829
+ .cn-ordered-list-field__position[data-v-3ab313d4] {
37093
37830
  flex: none;
37094
37831
  min-width: 18px;
37095
37832
  color: var(--color-text-maxcontrast);
37096
37833
  font-size: 13px;
37097
37834
  font-variant-numeric: tabular-nums;
37098
37835
  }
37099
- .cn-ordered-list-field__text[data-v-81cf425a] {
37836
+ .cn-ordered-list-field__text[data-v-3ab313d4] {
37100
37837
  flex: 1 1 auto;
37101
37838
  min-width: 0;
37102
37839
  overflow-wrap: anywhere;
37103
37840
  }
37104
- .cn-ordered-list-field__actions[data-v-81cf425a] {
37841
+ .cn-ordered-list-field__actions[data-v-3ab313d4] {
37105
37842
  display: flex;
37106
37843
  flex: none;
37107
37844
  gap: 2px;
37108
37845
  }
37109
- .cn-ordered-list-field__button[data-v-81cf425a] {
37846
+ .cn-ordered-list-field__button[data-v-3ab313d4] {
37110
37847
  display: inline-flex;
37111
37848
  align-items: center;
37112
37849
  justify-content: center;
@@ -37122,21 +37859,46 @@ to {
37122
37859
  color: var(--color-main-text);
37123
37860
  cursor: pointer;
37124
37861
  }
37125
- .cn-ordered-list-field__button[data-v-81cf425a]:hover:not(:disabled) {
37862
+ .cn-ordered-list-field__button[data-v-3ab313d4]:hover:not(:disabled) {
37126
37863
  background: var(--color-background-hover);
37127
37864
  }
37128
- .cn-ordered-list-field__button[data-v-81cf425a]:focus-visible {
37865
+ .cn-ordered-list-field__button[data-v-3ab313d4]:focus-visible {
37129
37866
  outline: 2px solid var(--color-primary-element);
37130
37867
  outline-offset: 1px;
37131
37868
  }
37132
- .cn-ordered-list-field__button[data-v-81cf425a]:disabled {
37869
+ .cn-ordered-list-field__button[data-v-3ab313d4]:disabled {
37133
37870
  opacity: 0.4;
37134
37871
  cursor: default;
37135
37872
  }
37136
- .cn-ordered-list-field__empty[data-v-81cf425a] {
37873
+ .cn-ordered-list-field__empty[data-v-3ab313d4] {
37137
37874
  margin: 0;
37138
37875
  color: var(--color-text-maxcontrast);
37139
37876
  }
37877
+ .cn-ordered-list-field__tile[data-v-3ab313d4] {
37878
+ display: inline-flex;
37879
+ flex: none;
37880
+ align-items: center;
37881
+ justify-content: center;
37882
+ width: 32px;
37883
+ height: 32px;
37884
+ border-radius: var(--border-radius-element, 8px);
37885
+ background: var(--color-background-dark);
37886
+ color: var(--color-main-text);
37887
+ }
37888
+ .cn-ordered-list-field__name[data-v-3ab313d4] {
37889
+ display: block;
37890
+ }
37891
+ .cn-ordered-list-field__description[data-v-3ab313d4] {
37892
+ display: block;
37893
+ color: var(--color-text-maxcontrast);
37894
+ font-size: 13px;
37895
+ }
37896
+ .cn-ordered-list-field__option[data-v-3ab313d4] {
37897
+ display: flex;
37898
+ align-items: center;
37899
+ gap: 10px;
37900
+ min-width: 0;
37901
+ }
37140
37902
 
37141
37903
 
37142
37904
  .cn-object-kanban__loading[data-v-1ba5f05c],
@@ -42106,21 +42868,21 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42106
42868
 
42107
42869
 
42108
42870
  /* The section wrapper draws no box; the board look makes it the card grid. */
42109
- .cn-settings-page__sections[data-v-50865bde] {
42871
+ .cn-settings-page__sections[data-v-0b4a7625] {
42110
42872
  display: contents;
42111
42873
  }
42112
- .cn-settings-page__header-buttons[data-v-50865bde] {
42874
+ .cn-settings-page__header-buttons[data-v-0b4a7625] {
42113
42875
  display: flex;
42114
42876
  align-items: center;
42115
42877
  gap: 10px;
42116
42878
  margin-inline-start: auto;
42117
42879
  }
42118
- .cn-settings-page[data-v-50865bde] {
42880
+ .cn-settings-page[data-v-0b4a7625] {
42119
42881
  display: flex;
42120
42882
  flex-direction: column;
42121
42883
  gap: 16px;
42122
42884
  }
42123
- .cn-settings-page__actions[data-v-50865bde] {
42885
+ .cn-settings-page__actions[data-v-0b4a7625] {
42124
42886
  display: flex;
42125
42887
  justify-content: flex-end;
42126
42888
  gap: 8px;
@@ -42131,7 +42893,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42131
42893
  * orchestration REQ-MSO-5). Uses Nextcloud CSS variables only — no
42132
42894
  * hex literals, no rgba overrides on the elements themselves.
42133
42895
  */
42134
- .cn-settings-page__tabs[data-v-50865bde] {
42896
+ .cn-settings-page__tabs[data-v-0b4a7625] {
42135
42897
  display: flex;
42136
42898
  flex-wrap: wrap;
42137
42899
  gap: 4px;
@@ -42139,7 +42901,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42139
42901
  padding-bottom: 0;
42140
42902
  margin-bottom: 8px;
42141
42903
  }
42142
- .cn-settings-page__tab[data-v-50865bde] {
42904
+ .cn-settings-page__tab[data-v-0b4a7625] {
42143
42905
  background: transparent;
42144
42906
  border: 0;
42145
42907
  border-bottom: 3px solid transparent;
@@ -42151,52 +42913,52 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42151
42913
  border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
42152
42914
  transition: background-color 0.1s ease-in-out, color 0.1s ease-in-out, border-color 0.1s ease-in-out;
42153
42915
  }
42154
- .cn-settings-page__tab[data-v-50865bde]:hover,
42155
- .cn-settings-page__tab[data-v-50865bde]:focus-visible {
42916
+ .cn-settings-page__tab[data-v-0b4a7625]:hover,
42917
+ .cn-settings-page__tab[data-v-0b4a7625]:focus-visible {
42156
42918
  background-color: var(--color-background-hover);
42157
42919
  color: var(--color-main-text);
42158
42920
  outline: none;
42159
42921
  }
42160
- .cn-settings-page__tab--active[data-v-50865bde] {
42922
+ .cn-settings-page__tab--active[data-v-0b4a7625] {
42161
42923
  color: var(--color-primary-element);
42162
42924
  border-bottom-color: var(--color-primary-element);
42163
42925
  font-weight: bold;
42164
42926
  }
42165
42927
  @media (max-width: 768px) {
42166
- .cn-settings-page__tabs[data-v-50865bde] {
42928
+ .cn-settings-page__tabs[data-v-0b4a7625] {
42167
42929
  flex-direction: column;
42168
42930
  gap: 0;
42169
42931
  border-bottom: 0;
42170
42932
  }
42171
- .cn-settings-page__tab[data-v-50865bde] {
42933
+ .cn-settings-page__tab[data-v-0b4a7625] {
42172
42934
  border-bottom: 1px solid var(--color-border);
42173
42935
  border-radius: 0;
42174
42936
  text-align: left;
42175
42937
  }
42176
- .cn-settings-page__tab--active[data-v-50865bde] {
42938
+ .cn-settings-page__tab--active[data-v-0b4a7625] {
42177
42939
  border-bottom-width: 1px;
42178
42940
  background-color: var(--color-background-hover);
42179
42941
  }
42180
42942
  }
42181
- .cn-settings-page__fields[data-v-50865bde] {
42943
+ .cn-settings-page__fields[data-v-0b4a7625] {
42182
42944
  display: flex;
42183
42945
  flex-direction: column;
42184
42946
  gap: 12px;
42185
42947
  }
42186
- .cn-settings-page__field[data-v-50865bde] {
42948
+ .cn-settings-page__field[data-v-0b4a7625] {
42187
42949
  display: flex;
42188
42950
  flex-direction: column;
42189
42951
  gap: 4px;
42190
42952
  }
42191
- .cn-settings-page__field-help[data-v-50865bde] {
42953
+ .cn-settings-page__field-help[data-v-0b4a7625] {
42192
42954
  color: var(--color-text-maxcontrast);
42193
42955
  }
42194
- .cn-settings-page__save-bar[data-v-50865bde] {
42956
+ .cn-settings-page__save-bar[data-v-0b4a7625] {
42195
42957
  display: flex;
42196
42958
  gap: 8px;
42197
42959
  margin-top: 16px;
42198
42960
  }
42199
- .cn-settings-page__error[data-v-50865bde] {
42961
+ .cn-settings-page__error[data-v-0b4a7625] {
42200
42962
  color: var(--color-error);
42201
42963
  background: var(--color-error-light, var(--color-background-hover));
42202
42964
  padding: 8px 12px;
@@ -42457,7 +43219,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42457
43219
  }
42458
43220
 
42459
43221
 
42460
- .cn-flow-board[data-v-b3c586ae] {
43222
+ .cn-flow-board[data-v-5c5d3119] {
42461
43223
  display: flex;
42462
43224
  flex-direction: column;
42463
43225
  gap: 12px;
@@ -42465,49 +43227,53 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42465
43227
  min-height: 100%;
42466
43228
  box-sizing: border-box;
42467
43229
  }
42468
- .cn-flow-board__header[data-v-b3c586ae] {
43230
+ .cn-flow-board__header[data-v-5c5d3119] {
42469
43231
  display: flex;
42470
43232
  flex-wrap: wrap;
42471
43233
  align-items: center;
42472
43234
  justify-content: space-between;
42473
43235
  gap: 12px;
42474
43236
  }
42475
- .cn-flow-board__heading[data-v-b3c586ae] {
43237
+ .cn-flow-board__heading[data-v-5c5d3119] {
42476
43238
  display: flex;
42477
43239
  align-items: center;
42478
43240
  gap: 10px;
42479
43241
  min-width: 0;
42480
43242
  }
42481
- .cn-flow-board__title[data-v-b3c586ae] {
43243
+ .cn-flow-board__title[data-v-5c5d3119] {
42482
43244
  margin: 0;
42483
43245
  font-size: 24px;
42484
43246
  font-weight: 600;
42485
43247
  }
42486
- .cn-flow-board__actions[data-v-b3c586ae] {
43248
+ .cn-flow-board__actions[data-v-5c5d3119] {
42487
43249
  display: flex;
42488
43250
  flex-wrap: wrap;
42489
43251
  align-items: center;
42490
43252
  gap: 8px;
42491
43253
  }
42492
- .cn-flow-board__path[data-v-b3c586ae] {
43254
+ .cn-flow-board__test-intro[data-v-5c5d3119] {
43255
+ margin: 0 0 12px;
43256
+ color: var(--color-text-maxcontrast);
43257
+ }
43258
+ .cn-flow-board__path[data-v-5c5d3119] {
42493
43259
  margin: 0;
42494
43260
  color: var(--color-text-maxcontrast);
42495
43261
  }
42496
- .cn-flow-board__crumb[data-v-b3c586ae] {
43262
+ .cn-flow-board__crumb[data-v-5c5d3119] {
42497
43263
  color: var(--color-main-text);
42498
43264
  text-decoration: underline;
42499
43265
  }
42500
- .cn-flow-board__body[data-v-b3c586ae] {
43266
+ .cn-flow-board__body[data-v-5c5d3119] {
42501
43267
  display: grid;
42502
43268
  grid-template-columns: minmax(0, 1fr) 340px;
42503
43269
  gap: 16px;
42504
43270
  flex: 1 1 auto;
42505
43271
  min-height: 520px;
42506
43272
  }
42507
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-b3c586ae] {
43273
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-5c5d3119] {
42508
43274
  grid-template-columns: 240px minmax(0, 1fr) 340px;
42509
43275
  }
42510
- .cn-flow-board__card[data-v-b3c586ae] {
43276
+ .cn-flow-board__card[data-v-5c5d3119] {
42511
43277
  display: flex;
42512
43278
  flex-direction: column;
42513
43279
  gap: 12px;
@@ -42517,34 +43283,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42517
43283
  border-radius: 12px;
42518
43284
  background: var(--color-main-background);
42519
43285
  }
42520
- .cn-flow-board__canvas[data-v-b3c586ae] {
43286
+ .cn-flow-board__canvas[data-v-5c5d3119] {
42521
43287
  padding: 0;
42522
43288
  overflow: hidden;
42523
43289
  background-color: var(--color-background-hover);
42524
43290
  background-image: radial-gradient(var(--color-border-dark) 1px, transparent 1px);
42525
43291
  background-size: 16px 16px;
42526
43292
  }
42527
- .cn-flow-board__canvas[data-v-b3c586ae] > :first-child {
43293
+ .cn-flow-board__canvas[data-v-5c5d3119] > :first-child {
42528
43294
  flex: 1 1 auto;
42529
43295
  min-height: 0;
42530
43296
  }
42531
- .cn-flow-board__card-title[data-v-b3c586ae] {
43297
+ .cn-flow-board__card-title[data-v-5c5d3119] {
42532
43298
  margin: 0;
42533
43299
  font-size: 16px;
42534
43300
  font-weight: 600;
42535
43301
  }
42536
- .cn-flow-board__subtitle[data-v-b3c586ae] {
43302
+ .cn-flow-board__subtitle[data-v-5c5d3119] {
42537
43303
  margin: 4px 0 0;
42538
43304
  font-size: 14px;
42539
43305
  font-weight: 600;
42540
43306
  }
42541
- .cn-flow-board__eyebrow[data-v-b3c586ae] {
43307
+ .cn-flow-board__eyebrow[data-v-5c5d3119] {
42542
43308
  margin: 0;
42543
43309
  color: var(--color-text-maxcontrast);
42544
43310
  font-size: 13px;
42545
43311
  }
42546
- .cn-flow-board__validity[data-v-b3c586ae],
42547
- .cn-flow-board__legend[data-v-b3c586ae] {
43312
+ .cn-flow-board__validity[data-v-5c5d3119],
43313
+ .cn-flow-board__legend[data-v-5c5d3119] {
42548
43314
  display: flex;
42549
43315
  flex-wrap: wrap;
42550
43316
  gap: 8px;
@@ -42553,27 +43319,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42553
43319
  border-top: 1px solid var(--color-border);
42554
43320
  background: var(--color-main-background);
42555
43321
  }
42556
- .cn-flow-board__validity--success[data-v-b3c586ae] {
43322
+ .cn-flow-board__validity--success[data-v-5c5d3119] {
42557
43323
  color: var(--color-success-text);
42558
43324
  }
42559
- .cn-flow-board__validity--warning[data-v-b3c586ae] {
43325
+ .cn-flow-board__validity--warning[data-v-5c5d3119] {
42560
43326
  color: var(--color-warning-text);
42561
43327
  }
42562
- .cn-flow-board__validity--error[data-v-b3c586ae] {
43328
+ .cn-flow-board__validity--error[data-v-5c5d3119] {
42563
43329
  color: var(--color-error-text);
42564
43330
  }
42565
- .cn-flow-board__palette-group[data-v-b3c586ae] {
43331
+ .cn-flow-board__palette-group[data-v-5c5d3119] {
42566
43332
  display: flex;
42567
43333
  flex-direction: column;
42568
43334
  gap: 4px;
42569
43335
  }
42570
- .cn-flow-board__palette-app[data-v-b3c586ae] {
43336
+ .cn-flow-board__palette-app[data-v-5c5d3119] {
42571
43337
  margin: 0;
42572
43338
  color: var(--color-text-maxcontrast);
42573
43339
  font-size: 13px;
42574
43340
  font-weight: 600;
42575
43341
  }
42576
- .cn-flow-board__palette-list[data-v-b3c586ae] {
43342
+ .cn-flow-board__palette-list[data-v-5c5d3119] {
42577
43343
  display: flex;
42578
43344
  flex-direction: column;
42579
43345
  gap: 4px;
@@ -42581,7 +43347,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42581
43347
  padding: 0;
42582
43348
  list-style: none;
42583
43349
  }
42584
- .cn-flow-board__palette-step[data-v-b3c586ae] {
43350
+ .cn-flow-board__palette-step[data-v-5c5d3119] {
42585
43351
  width: 100%;
42586
43352
  min-height: 34px;
42587
43353
  padding: 6px 10px;
@@ -42592,20 +43358,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42592
43358
  text-align: start;
42593
43359
  cursor: pointer;
42594
43360
  }
42595
- .cn-flow-board__palette-step[data-v-b3c586ae]:hover {
43361
+ .cn-flow-board__palette-step[data-v-5c5d3119]:hover {
42596
43362
  background: var(--color-background-hover);
42597
43363
  }
42598
- .cn-flow-board__palette-note[data-v-b3c586ae] {
43364
+ .cn-flow-board__palette-note[data-v-5c5d3119] {
42599
43365
  margin: 0;
42600
43366
  color: var(--color-text-maxcontrast);
42601
43367
  font-size: 13px;
42602
43368
  }
42603
- .cn-flow-board__tabs[data-v-b3c586ae] {
43369
+ .cn-flow-board__tabs[data-v-5c5d3119] {
42604
43370
  display: flex;
42605
43371
  gap: 4px;
42606
43372
  border-bottom: 1px solid var(--color-border);
42607
43373
  }
42608
- .cn-flow-board__tab[data-v-b3c586ae] {
43374
+ .cn-flow-board__tab[data-v-5c5d3119] {
42609
43375
  display: inline-flex;
42610
43376
  align-items: center;
42611
43377
  gap: 6px;
@@ -42617,12 +43383,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42617
43383
  color: var(--color-main-text);
42618
43384
  cursor: pointer;
42619
43385
  }
42620
- .cn-flow-board__tab--active[data-v-b3c586ae] {
43386
+ .cn-flow-board__tab--active[data-v-5c5d3119] {
42621
43387
  border-color: var(--color-border);
42622
43388
  border-bottom-color: var(--color-main-background);
42623
43389
  font-weight: 600;
42624
43390
  }
42625
- .cn-flow-board__tab-count[data-v-b3c586ae] {
43391
+ .cn-flow-board__tab-count[data-v-5c5d3119] {
42626
43392
  min-width: 18px;
42627
43393
  padding: 0 5px;
42628
43394
  border-radius: 9px;
@@ -42631,19 +43397,19 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
42631
43397
  line-height: 18px;
42632
43398
  text-align: center;
42633
43399
  }
42634
- .cn-flow-board__step-actions[data-v-b3c586ae],
42635
- .cn-flow-board__step-footer[data-v-b3c586ae] {
43400
+ .cn-flow-board__step-actions[data-v-5c5d3119],
43401
+ .cn-flow-board__step-footer[data-v-5c5d3119] {
42636
43402
  display: flex;
42637
43403
  flex-wrap: wrap;
42638
43404
  gap: 8px;
42639
43405
  }
42640
- .cn-flow-board__step-footer[data-v-b3c586ae] {
43406
+ .cn-flow-board__step-footer[data-v-5c5d3119] {
42641
43407
  justify-content: space-between;
42642
43408
  margin-top: auto;
42643
43409
  }
42644
43410
  @media (max-width: 1024px) {
42645
- .cn-flow-board__body[data-v-b3c586ae],
42646
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-b3c586ae] {
43411
+ .cn-flow-board__body[data-v-5c5d3119],
43412
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-5c5d3119] {
42647
43413
  grid-template-columns: minmax(0, 1fr);
42648
43414
  }
42649
43415
  }