@conduction/nextcloud-vue 2.122.0 → 2.123.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 (98) hide show
  1. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +1 -0
  2. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  3. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  4. package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue.js +1 -1
  5. package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue2.js +18 -4
  6. package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue2.js.map +1 -1
  7. package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue3.js +63 -32
  8. package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue3.js.map +1 -1
  9. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  10. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  11. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  12. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +35 -0
  13. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  14. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +11 -5
  15. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  16. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  17. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +13 -0
  18. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  19. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +37 -5
  20. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  21. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  22. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +40 -0
  23. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  24. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +71 -65
  25. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  26. package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue.js +1 -1
  27. package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue2.js +20 -0
  28. package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue2.js.map +1 -1
  29. package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue3.js +2 -1
  30. package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue3.js.map +1 -1
  31. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
  32. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +2 -0
  33. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
  34. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +49 -44
  35. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
  36. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js +10 -0
  37. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js.map +1 -1
  38. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js +2 -1
  39. package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js.map +1 -1
  40. package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue2.js +31 -0
  41. package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue2.js.map +1 -1
  42. package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue3.js +4 -3
  43. package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue3.js.map +1 -1
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +34 -2
  45. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  46. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  47. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  48. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +2 -0
  49. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  50. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +2 -1
  51. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  52. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +1 -1
  53. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +31 -1
  54. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -1
  55. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +14 -4
  56. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -1
  57. package/dist/esm/composables/flowGraphLayout.js +36 -7
  58. package/dist/esm/composables/flowGraphLayout.js.map +1 -1
  59. package/dist/esm/composables/useFlowStore.js +7 -3
  60. package/dist/esm/composables/useFlowStore.js.map +1 -1
  61. package/dist/esm/l10n/en.json.js +3 -1
  62. package/dist/esm/l10n/en.json.js.map +1 -1
  63. package/dist/esm/l10n/nl.json.js +3 -1
  64. package/dist/esm/l10n/nl.json.js.map +1 -1
  65. package/dist/esm/library-style.js +1 -1
  66. package/dist/esm/nextcloud-vue.css +508 -303
  67. package/dist/esm/utils/manifestTranslate.js +12 -3
  68. package/dist/esm/utils/manifestTranslate.js.map +1 -1
  69. package/dist/esm/utils/routeFilters.js +3 -3
  70. package/dist/esm/utils/routeFilters.js.map +1 -1
  71. package/dist/nextcloud-vue.cjs.js +1217 -847
  72. package/dist/nextcloud-vue.cjs.js.map +2 -2
  73. package/dist/nextcloud-vue.css +508 -303
  74. package/l10n/en.json +3 -1
  75. package/l10n/nl.json +3 -1
  76. package/package.json +1 -1
  77. package/src/components/CnAppRoot/CnAppRoot.vue +1 -0
  78. package/src/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue +50 -5
  79. package/src/components/CnChartWidget/CnChartWidget.vue +10 -8
  80. package/src/components/CnDetailPage/CnDetailPage.md +10 -0
  81. package/src/components/CnDetailPage/CnDetailPage.vue +42 -1
  82. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +39 -0
  83. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +95 -37
  84. package/src/components/CnFlowDetail/CnFlowDetail.vue +21 -0
  85. package/src/components/CnFlowsPage/CnFlowBoard.vue +35 -18
  86. package/src/components/CnFlowsPage/CnFlowEditorPage.vue +11 -0
  87. package/src/components/CnGraphCanvas/CnGraphCanvas.vue +34 -2
  88. package/src/components/CnIndexPage/CnIndexPage.vue +34 -2
  89. package/src/components/CnObjectSidebar/CnFilesTab.vue +3 -0
  90. package/src/components/CnSectionsWidget/CnSectionsWidget.vue +53 -2
  91. package/src/composables/flowGraphLayout.js +35 -6
  92. package/src/composables/useFlowStore.js +7 -3
  93. package/src/css/detail-page.css +6 -0
  94. package/src/css/look-board-detail.css +26 -6
  95. package/src/css/look-board-index.css +43 -0
  96. package/src/css/look-board.css +89 -3
  97. package/src/utils/manifestTranslate.js +12 -3
  98. package/src/utils/routeFilters.js +3 -3
@@ -254,8 +254,8 @@
254
254
  /* ---- Dashboard switch row --------------------------------------------- */
255
255
  /* The switch row under a board dashboard's header (DqMijnWerk, DqMijnTeam).
256
256
  The link pills take the deep primary ink of the boards' primary pills: the
257
- light primary text mixed toward the main text, which only raises its
258
- contrast on the light primary ground. A theme that forces the link ink onto
257
+ light primary text, the ink a theme pairs with the light primary ground
258
+ (DqMijnWerk #234a78 on #eaf0f7, 8:1). A theme that forces the link ink onto
259
259
  every `a` reads it from --nldesign-color-on-surface, so the pill hands it
260
260
  its own. The view switch is the board's segmented control: 14px labels, the
261
261
  others in the soft ink, the chosen one raised on white without an edge;
@@ -263,7 +263,7 @@
263
263
  @spec openspec/changes/board-dashboard-switch-row/specs/board-dashboard-switch-row/spec.md#requirement-the-link-pills-take-the-deep-primary-ink
264
264
  @spec openspec/changes/board-dashboard-switch-row/specs/board-dashboard-switch-row/spec.md#requirement-the-view-switch-is-the-boards-segmented-control */
265
265
  .cn-look-board .cn-dashboard-page__switch-row .cn-dashboard-page__view-link:not(.cn-look-nextcloud *) {
266
- --cn-view-link-ink: color-mix(in srgb, var(--color-primary-element-light-text) 60%, var(--color-main-text));
266
+ --cn-view-link-ink: var(--color-primary-element-light-text);
267
267
  --nldesign-color-on-surface: var(--cn-view-link-ink);
268
268
  color: var(--cn-view-link-ink);
269
269
  }
@@ -288,6 +288,25 @@
288
288
  }
289
289
  }
290
290
 
291
+ /* ---- Period group ------------------------------------------------------- */
292
+ /* The boards' compact segmented group (the period switch on DqDoorlooptijd
293
+ and DqTermijnen, Gemiddeld / Mediaan on DqProcesanalyse) pads a label 14px
294
+ on each side and draws the options not chosen in the soft ink; the chosen
295
+ one is raised on white in the main ink. An icon-only option stays square.
296
+ @spec openspec/changes/board-period-group-soft-ink/specs/board-period-group-soft-ink/spec.md#requirement-a-board-period-group-draws-the-options-not-chosen-in-the-soft-ink */
297
+ .cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option:not(.cn-look-nextcloud *) {
298
+ padding: 0 14px;
299
+ color: var(--cn-board-text-soft);
300
+ }
301
+
302
+ .cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option--checked:not(.cn-look-nextcloud *) {
303
+ color: var(--color-main-text);
304
+ }
305
+
306
+ .cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option--icon-only:not(.cn-look-nextcloud *) {
307
+ padding: 0;
308
+ }
309
+
291
310
  /* ---- Button weight ------------------------------------------------------ */
292
311
  /* The boards draw a labelled button at 600 (DqZaken "Downloaden", DqZaak's
293
312
  header, dialog footers, toolbar and row actions). An NcButton reads its
@@ -1704,6 +1723,11 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1704
1723
  padding: 0 var(--cn-board-dashboard-card-inset) 10px;
1705
1724
  }
1706
1725
 
1726
+ /* DqMijnWerk "Mijn archiefbeoordelingen": its rows and its empty line. */
1727
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-decision-list {
1728
+ padding: 0 var(--cn-board-dashboard-card-inset) 20px;
1729
+ }
1730
+
1707
1731
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-stacked-bar,
1708
1732
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-week-strip {
1709
1733
  box-sizing: border-box;
@@ -1749,6 +1773,29 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1749
1773
  padding-inline-end: var(--cn-board-dashboard-card-inset);
1750
1774
  }
1751
1775
 
1776
+ /* ---- A card of cards (DqDoorlooptijd "Naleving") ------------------------- */
1777
+ /* A sections widget laid out in columns on a dashboard card keeps the card's
1778
+ side inset and 20px below. Each section is a small card: a hairline edge,
1779
+ a 10px corner, 14px 16px of padding and its heading at 15px 700, 10px above
1780
+ the content.
1781
+ @spec openspec/changes/sections-card-grid/specs/sections-card-grid/spec.md#requirement-a-board-card-of-cards-draws-the-boards-small-cards */
1782
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-sections-widget--grid {
1783
+ padding: 0 var(--cn-board-dashboard-card-inset) 20px;
1784
+ }
1785
+
1786
+ .cn-look-board .cn-sections-widget--grid.cn-sections-widget--cards .cn-sections-widget__section:not(.cn-look-nextcloud *) {
1787
+ padding: 14px 16px;
1788
+ border: 1px solid var(--cn-board-hairline);
1789
+ border-radius: 10px;
1790
+ }
1791
+
1792
+ .cn-look-board .cn-sections-widget--grid.cn-sections-widget--cards .cn-sections-widget__heading:not(.cn-look-nextcloud *) {
1793
+ margin: 0 0 10px;
1794
+ font-size: 15px;
1795
+ font-weight: 700;
1796
+ line-height: normal;
1797
+ }
1798
+
1752
1799
  /* ---- Week strip (DqMijnWerk "Termijnen deze week") ---------------------- */
1753
1800
  /* The days wrap inside the card instead of scrolling sideways: a row holds
1754
1801
  as many days of at least 120px as the card fits, and the rest go to the
@@ -1766,6 +1813,45 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1766
1813
 
1767
1814
  .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__head {
1768
1815
  flex-wrap: wrap;
1816
+ font-size: 13px;
1817
+ font-weight: 700;
1818
+ color: var(--cn-board-text-soft);
1819
+ }
1820
+
1821
+ /* A board day is a tinted box without an edge, at least 132px high so a week
1822
+ of empty days still reads as a week (DqMijnWerk "Termijnen deze week"): the
1823
+ workspace grey, and today the light primary ground in its own ink. Forced
1824
+ colours drop the grounds, so the box keeps an edge there. */
1825
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day {
1826
+ min-height: 132px;
1827
+ padding: 12px;
1828
+ border-color: transparent;
1829
+ border-radius: 10px;
1830
+ background: var(--nldesign-component-content-surface-background-color, var(--color-background-hover));
1831
+ }
1832
+
1833
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day--today {
1834
+ background: var(--color-primary-element-light);
1835
+ }
1836
+
1837
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day--today .cn-week-strip__head {
1838
+ color: var(--color-primary-element-light-text);
1839
+ }
1840
+
1841
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__today {
1842
+ border-radius: 10px;
1843
+ font-size: 11px;
1844
+ line-height: 13px;
1845
+ }
1846
+
1847
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__empty {
1848
+ font-size: 13px;
1849
+ }
1850
+
1851
+ @media (forced-colors: active) {
1852
+ .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day {
1853
+ border-color: CanvasText;
1854
+ }
1769
1855
  }
1770
1856
 
1771
1857
  /* ---- A card of boxed stat tiles (DcRapportages "Vergaderingen en efficiëntie") -- */
@@ -3169,6 +3255,29 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
3169
3255
  font-weight: 600;
3170
3256
  }
3171
3257
 
3258
+ /* With the sidebar open the Filter button is pressed: the board draws it on
3259
+ the light primary ground with a primary edge and the main ink, not as a
3260
+ filled primary button (DqFilterBeheren). Its count badge stays the filled
3261
+ primary pill. NcButton redefines the main text inside the button, so the ink is taken
3262
+ on the bar; the theme's forced primary ink and edge read the button's own
3263
+ properties.
3264
+ @spec openspec/changes/board-index-sidebar/specs/board-index-sidebar/spec.md#requirement-the-pressed-filter-button-is-the-boards-light-toggle */
3265
+ .cn-look-board .cn-actions-bar {
3266
+ --cn-filter-pressed-ink: var(--color-main-text);
3267
+ }
3268
+
3269
+ .cn-look-board .cn-actions-bar__filter-button.button-vue[aria-pressed='true'] {
3270
+ --nldesign-component-button-primary-action-color: var(--cn-filter-pressed-ink);
3271
+ --nldesign-component-button-primary-action-border-color: var(--color-primary-element);
3272
+ border-color: var(--color-primary-element);
3273
+ background-color: var(--color-primary-element-light);
3274
+ color: var(--cn-filter-pressed-ink);
3275
+ }
3276
+
3277
+ .cn-look-board .cn-actions-bar__filter-button.button-vue[aria-pressed='true']:hover {
3278
+ background-color: var(--color-primary-element-light-hover);
3279
+ }
3280
+
3172
3281
  .cn-look-board .cn-actions-bar__filter-badge {
3173
3282
  display: inline-flex;
3174
3283
  align-items: center;
@@ -4145,6 +4254,26 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
4145
4254
  display: none;
4146
4255
  }
4147
4256
 
4257
+ /* The index sidebar as the board draws it (IndexZijpaneel, DqFilterBeheren):
4258
+ 360px wide, the line under the title 14px muted, and a round close button.
4259
+ The title and the tab row are the `.cn-index-sidebar-panel` rules.
4260
+ NcAppSidebar renders as the root's direct child, so the rules reach it
4261
+ through the root, as the toggle rule above does.
4262
+ @spec openspec/changes/board-index-sidebar/specs/board-index-sidebar/spec.md#requirement-the-board-index-sidebar-draws-the-boards-side-panel */
4263
+ .cn-look-board:has(.cn-index-page) > .app-sidebar {
4264
+ --app-sidebar-width: 360px;
4265
+ }
4266
+
4267
+ .cn-look-board:has(.cn-index-page) > .app-sidebar .app-sidebar-header__subname {
4268
+ color: var(--color-text-maxcontrast);
4269
+ font-size: 14px;
4270
+ }
4271
+
4272
+ .cn-look-board:has(.cn-index-page) > .app-sidebar .app-sidebar__close {
4273
+ border-radius: 50%;
4274
+ color: var(--cn-board-text-soft);
4275
+ }
4276
+
4148
4277
  /* The folder pane as a card (DqAfdelingen): 280px, a hairline border, 12px
4149
4278
  corners, with each folder's count in a grey pill. */
4150
4279
  .cn-look-board .cn-index-page__folder-pane {
@@ -8558,6 +8687,12 @@ a.cn-kpi-card--board * {
8558
8687
  gap: calc(5 * var(--default-grid-baseline));
8559
8688
  }
8560
8689
 
8690
+ /* A body widget's own cards (`cnDetailSideColumn`) stand in the column's
8691
+ flow, at its gap, and the slot takes no room while it is empty. */
8692
+ .cn-detail-page__side-takeover {
8693
+ display: contents;
8694
+ }
8695
+
8561
8696
  /* The record as a place (case-page-and-list-as-a-place) */
8562
8697
 
8563
8698
  /* A skip link that reaches the page's declared primary action. Off screen
@@ -9283,9 +9418,10 @@ li[data-cn-admin-tag] > .action-link::after {
9283
9418
  display: flex;
9284
9419
  }
9285
9420
 
9286
- /* The notice at the top of the side column: radius 12, padding 14px 16px. */
9287
- .cn-look-board .cn-detail-page__side-item--notice .cn-widget-wrapper,
9288
- .cn-look-board .cn-detail-page__side-item--notice .cn-banner-widget,
9421
+ /* The notice at the top of the side column: one tinted block, radius 12,
9422
+ padding 14px 16px. Only the outer layer paints; the card wrapper, the
9423
+ banner and its note card inside it stay flat, so the notice is not drawn
9424
+ as a box in a box. */
9289
9425
  .cn-look-board .cn-detail-page__side-item--notice > * {
9290
9426
  background: var(--cn-board-notice-bg);
9291
9427
  border: none;
@@ -9294,6 +9430,23 @@ li[data-cn-admin-tag] > .action-link::after {
9294
9430
  padding: 14px 16px;
9295
9431
  }
9296
9432
 
9433
+ .cn-look-board .cn-detail-page__side-item--notice > * .cn-widget-wrapper,
9434
+ .cn-look-board .cn-detail-page__side-item--notice > * .cn-widget-wrapper__content,
9435
+ .cn-look-board .cn-detail-page__side-item--notice .cn-banner-widget,
9436
+ .cn-look-board .cn-detail-page__side-item--notice .cn-banner-widget__card {
9437
+ background: transparent;
9438
+ border: none;
9439
+ border-radius: 0;
9440
+ margin: 0;
9441
+ padding: 0;
9442
+ }
9443
+
9444
+ /* A notice whose condition does not hold renders no banner; its slot then
9445
+ takes no room instead of standing as an empty tinted block. */
9446
+ .cn-look-board .cn-detail-page__side-item--notice:not(:has(.cn-banner-widget)) {
9447
+ display: none;
9448
+ }
9449
+
9297
9450
  /* The History card ends with the record's identifier. */
9298
9451
  .cn-look-board .cn-detail-page__side-item--with-identifier .cn-widget-wrapper {
9299
9452
  border-bottom: none;
@@ -9323,14 +9476,16 @@ li[data-cn-admin-tag] > .action-link::after {
9323
9476
  }
9324
9477
 
9325
9478
  /* The kicker keeps its tone under a theme that colours every h3 with
9326
- `!important` (thematiq's heading colour); only `!important` beats it. */
9479
+ `!important` (thematiq's heading colour); only `!important` beats it. The
9480
+ boards set it in sentence case ("Wat nu? Stap 2: in behandeling", DqZaak,
9481
+ DqSociaalDomein), not as the plain look's spaced capitals. */
9327
9482
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__title.cn-next-step-card__title {
9328
9483
  color: var(--color-primary-element-light-text) !important;
9329
9484
  font-size: 13px !important;
9330
9485
  font-weight: 700;
9331
- letter-spacing: 0.06em;
9486
+ letter-spacing: 0;
9332
9487
  line-height: normal;
9333
- text-transform: uppercase;
9488
+ text-transform: none;
9334
9489
  }
9335
9490
 
9336
9491
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__list {
@@ -12398,7 +12553,7 @@ li[data-cn-admin-tag] > .action-link::after {
12398
12553
  }
12399
12554
 
12400
12555
 
12401
- .cn-chart-widget[data-v-5335921f] {
12556
+ .cn-chart-widget[data-v-7636430b] {
12402
12557
  width: 100%;
12403
12558
  /* A chart FITS its container — it is never a scroll region. apexcharts
12404
12559
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -12420,13 +12575,13 @@ li[data-cn-admin-tag] > .action-link::after {
12420
12575
  takes what is left, so the chart is sized by the box rather than sizing it.
12421
12576
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
12422
12577
  the thing that produces the overflow it was meant to prevent. */
12423
- .cn-chart-widget--fit[data-v-5335921f] {
12578
+ .cn-chart-widget--fit[data-v-7636430b] {
12424
12579
  height: 100%;
12425
12580
  min-height: 0;
12426
12581
  display: flex;
12427
12582
  flex-direction: column;
12428
12583
  }
12429
- .cn-chart-widget__canvas[data-v-5335921f] {
12584
+ .cn-chart-widget__canvas[data-v-7636430b] {
12430
12585
  min-width: 0;
12431
12586
  max-width: 100%;
12432
12587
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -12439,14 +12594,14 @@ li[data-cn-admin-tag] > .action-link::after {
12439
12594
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
12440
12595
  minimum, which beats the container when the container is narrower. Cap the
12441
12596
  painted box so the inline width cannot push past the widget's border. */
12442
- .cn-chart-widget[data-v-5335921f] .apexcharts-canvas,
12443
- .cn-chart-widget[data-v-5335921f] .apexcharts-canvas svg {
12597
+ .cn-chart-widget[data-v-7636430b] .apexcharts-canvas,
12598
+ .cn-chart-widget[data-v-7636430b] .apexcharts-canvas svg {
12444
12599
  max-width: 100%;
12445
12600
  }
12446
12601
 
12447
12602
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
12448
12603
  descender space under the chart. */
12449
- .cn-chart-widget[data-v-5335921f] .apexcharts-canvas svg {
12604
+ .cn-chart-widget[data-v-7636430b] .apexcharts-canvas svg {
12450
12605
  display: block;
12451
12606
  }
12452
12607
 
@@ -12454,24 +12609,24 @@ li[data-cn-admin-tag] > .action-link::after {
12454
12609
  would grow to its content, i.e. to the chart, and the percentage height would
12455
12610
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
12456
12611
  sub-pixel rounding difference from reintroducing a scrollbar. */
12457
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-5335921f] {
12612
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-7636430b] {
12458
12613
  flex: 1 1 0;
12459
12614
  min-height: 0;
12460
12615
  overflow: hidden;
12461
12616
  }
12462
- .cn-chart-widget__fallback[data-v-5335921f] {
12617
+ .cn-chart-widget__fallback[data-v-7636430b] {
12463
12618
  display: flex;
12464
12619
  align-items: center;
12465
12620
  justify-content: center;
12466
12621
  min-height: 150px;
12467
12622
  color: var(--color-text-maxcontrast);
12468
12623
  }
12469
- .cn-chart-widget__html[data-v-5335921f] {
12624
+ .cn-chart-widget__html[data-v-7636430b] {
12470
12625
  display: flex;
12471
12626
  flex-direction: column;
12472
12627
  gap: 12px;
12473
12628
  }
12474
- .cn-chart-widget__bar-list[data-v-5335921f] {
12629
+ .cn-chart-widget__bar-list[data-v-7636430b] {
12475
12630
  display: flex;
12476
12631
  flex-direction: column;
12477
12632
  gap: 10px;
@@ -12479,7 +12634,7 @@ li[data-cn-admin-tag] > .action-link::after {
12479
12634
  margin: 0;
12480
12635
  padding: 0;
12481
12636
  }
12482
- .cn-chart-widget__bar-line[data-v-5335921f] {
12637
+ .cn-chart-widget__bar-line[data-v-7636430b] {
12483
12638
  align-items: center;
12484
12639
  background: none;
12485
12640
  border: 0;
@@ -12494,109 +12649,111 @@ li[data-cn-admin-tag] > .action-link::after {
12494
12649
  text-align: start;
12495
12650
  width: 100%;
12496
12651
  }
12497
- .cn-chart-widget__bar-line--drill[data-v-5335921f] {
12652
+ .cn-chart-widget__bar-line--drill[data-v-7636430b] {
12498
12653
  border-radius: var(--border-radius-small, 4px);
12499
12654
  cursor: pointer;
12500
12655
  }
12501
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-5335921f],
12502
- .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-5335921f] {
12656
+ .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-7636430b],
12657
+ .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-7636430b] {
12503
12658
  text-decoration: underline;
12504
12659
  }
12505
- .cn-chart-widget__bar-label[data-v-5335921f] {
12660
+ .cn-chart-widget__bar-label[data-v-7636430b] {
12506
12661
  overflow: hidden;
12507
12662
  text-overflow: ellipsis;
12508
12663
  white-space: nowrap;
12509
12664
  }
12510
- .cn-chart-widget__bar-track[data-v-5335921f] {
12665
+ .cn-chart-widget__bar-track[data-v-7636430b] {
12511
12666
  background: var(--color-background-dark);
12512
12667
  border-radius: 4px;
12513
12668
  display: block;
12514
12669
  height: 14px;
12515
12670
  overflow: hidden;
12516
12671
  }
12517
- .cn-chart-widget__bar-fill[data-v-5335921f] {
12672
+ .cn-chart-widget__bar-fill[data-v-7636430b] {
12518
12673
  background: var(--color-primary-element);
12519
12674
  display: block;
12520
12675
  height: 100%;
12521
12676
  }
12522
- .cn-chart-widget__bar-value[data-v-5335921f] {
12677
+ .cn-chart-widget__bar-value[data-v-7636430b] {
12523
12678
  font-weight: 600;
12524
12679
  text-align: end;
12525
12680
  white-space: nowrap;
12526
12681
  }
12527
- .cn-chart-widget__footnote[data-v-5335921f] {
12682
+ .cn-chart-widget__footnote[data-v-7636430b] {
12528
12683
  color: var(--color-text-maxcontrast);
12529
12684
  margin: 0;
12530
12685
  }
12531
12686
 
12532
12687
  /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
12533
12688
  its own line height while the canvas takes the rest of a fitted column. */
12534
- .cn-chart-widget > .cn-chart-widget__footnote[data-v-5335921f] {
12689
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-7636430b] {
12535
12690
  flex: 0 0 auto;
12536
12691
  margin-top: 8px;
12537
12692
  }
12538
- .cn-chart-widget__matrix[data-v-5335921f] {
12693
+ .cn-chart-widget__matrix[data-v-7636430b] {
12539
12694
  display: grid;
12540
12695
  gap: 4px;
12541
12696
  }
12542
- .cn-chart-widget__matrix-row[data-v-5335921f] {
12697
+ .cn-chart-widget__matrix-row[data-v-7636430b] {
12543
12698
  display: contents;
12544
12699
  }
12545
- .cn-chart-widget__matrix-head[data-v-5335921f] {
12700
+ .cn-chart-widget__matrix-head[data-v-7636430b] {
12546
12701
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
12547
12702
  color: var(--color-text-maxcontrast);
12548
12703
  padding: 6px;
12549
12704
  }
12550
- .cn-chart-widget__matrix-label[data-v-5335921f] {
12705
+ .cn-chart-widget__matrix-label[data-v-7636430b] {
12551
12706
  padding: 10px 6px;
12552
12707
  }
12553
- .cn-chart-widget__matrix-cell[data-v-5335921f] {
12708
+ .cn-chart-widget__matrix-cell[data-v-7636430b] {
12554
12709
  border-radius: 6px;
12555
12710
  padding: 10px;
12556
12711
  text-align: center;
12557
12712
  }
12558
- .cn-chart-widget__matrix-cell--success[data-v-5335921f] {
12713
+ .cn-chart-widget__matrix-cell--success[data-v-7636430b] {
12559
12714
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
12560
12715
  }
12561
- .cn-chart-widget__matrix-cell--warning[data-v-5335921f] {
12716
+ .cn-chart-widget__matrix-cell--warning[data-v-7636430b] {
12562
12717
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
12563
12718
  }
12564
- .cn-chart-widget__matrix-cell--error[data-v-5335921f] {
12719
+ .cn-chart-widget__matrix-cell--error[data-v-7636430b] {
12565
12720
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
12566
12721
  }
12567
- .cn-chart-widget__matrix-cell--danger[data-v-5335921f] {
12722
+ .cn-chart-widget__matrix-cell--danger[data-v-7636430b] {
12568
12723
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
12569
12724
  }
12570
- .cn-chart-widget__matrix-cell--current[data-v-5335921f] {
12725
+ .cn-chart-widget__matrix-cell--current[data-v-7636430b] {
12571
12726
  font-weight: 700;
12572
12727
  outline: 3px solid var(--color-primary-element);
12573
12728
  outline-offset: -3px;
12574
12729
  }
12575
12730
 
12576
12731
  /* A cell is a span: its ink also goes to --nldesign-color-on-surface, which a
12577
- theme that forces the body ink onto every span (thematiq) reads. The light
12578
- levels (1 to 3) take a dark ink; white only on level 4, the full primary,
12579
- where it reaches 4.5:1 (on level 3's 65% tint it is about 2.9:1). */
12580
- .cn-chart-widget__matrix-cell--1[data-v-5335921f] {
12732
+ theme that forces the body ink onto every span (thematiq) reads. The four
12733
+ levels are the boards' tones (DqProcesanalyse): the light primary, the
12734
+ primary at 35% and at 70%, and level 1 inverted. Levels 1 to 3 take a dark
12735
+ ink; the board's white on level 3 is about 3.1:1, and 70% is as deep as the
12736
+ dark ink stays at 4.5:1 in Nextcloud's dark theme. */
12737
+ .cn-chart-widget__matrix-cell--1[data-v-7636430b] {
12581
12738
  --nldesign-color-on-surface: var(--color-primary-element-light-text);
12582
12739
  background: var(--color-primary-element-light);
12583
12740
  color: var(--color-primary-element-light-text);
12584
12741
  }
12585
- .cn-chart-widget__matrix-cell--2[data-v-5335921f] {
12586
- background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
12742
+ .cn-chart-widget__matrix-cell--2[data-v-7636430b] {
12743
+ background: color-mix(in srgb, var(--color-primary-element) 35%, var(--color-main-background));
12587
12744
  color: var(--color-main-text);
12588
12745
  }
12589
- .cn-chart-widget__matrix-cell--3[data-v-5335921f] {
12746
+ .cn-chart-widget__matrix-cell--3[data-v-7636430b] {
12590
12747
  --nldesign-color-on-surface: var(--color-main-text);
12591
- background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
12748
+ background: color-mix(in srgb, var(--color-primary-element) 70%, var(--color-main-background));
12592
12749
  color: var(--color-main-text);
12593
12750
  }
12594
- .cn-chart-widget__matrix-cell--4[data-v-5335921f] {
12595
- --nldesign-color-on-surface: var(--color-primary-element-text);
12596
- background: var(--color-primary-element);
12597
- color: var(--color-primary-element-text);
12751
+ .cn-chart-widget__matrix-cell--4[data-v-7636430b] {
12752
+ --nldesign-color-on-surface: var(--color-primary-element-light);
12753
+ background: var(--color-primary-element-light-text);
12754
+ color: var(--color-primary-element-light);
12598
12755
  }
12599
- .cn-chart-widget__empty[data-v-5335921f] {
12756
+ .cn-chart-widget__empty[data-v-7636430b] {
12600
12757
  display: flex;
12601
12758
  align-items: center;
12602
12759
  justify-content: center;
@@ -12611,25 +12768,25 @@ li[data-cn-admin-tag] > .action-link::after {
12611
12768
  content-sized case; in fit mode they take the leftover space and centre in it
12612
12769
  instead, since the floor would overflow a short tile. Declared after the base
12613
12770
  rules so the cascade order matches specificity (no-descending-specificity). */
12614
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-5335921f],
12615
- .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-5335921f] {
12771
+ .cn-chart-widget--fit .cn-chart-widget__empty[data-v-7636430b],
12772
+ .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-7636430b] {
12616
12773
  flex: 1 1 0;
12617
12774
  min-height: 0;
12618
12775
  }
12619
- .cn-chart-widget__error[data-v-5335921f] {
12776
+ .cn-chart-widget__error[data-v-7636430b] {
12620
12777
  font-size: 14px;
12621
12778
  margin: 0;
12622
12779
  }
12623
12780
 
12624
12781
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
12625
12782
  mirroring the dashboard date-range pill styling. */
12626
- .cn-chart-widget__views[data-v-5335921f] {
12783
+ .cn-chart-widget__views[data-v-7636430b] {
12627
12784
  display: flex;
12628
12785
  gap: 4px;
12629
12786
  margin-bottom: 6px;
12630
12787
  justify-content: flex-end;
12631
12788
  }
12632
- .cn-chart-widget__view-pill[data-v-5335921f] {
12789
+ .cn-chart-widget__view-pill[data-v-7636430b] {
12633
12790
  padding: 2px 10px;
12634
12791
  border: 1px solid var(--color-border);
12635
12792
  border-radius: 999px;
@@ -12638,7 +12795,7 @@ li[data-cn-admin-tag] > .action-link::after {
12638
12795
  font-size: 12px;
12639
12796
  cursor: pointer;
12640
12797
  }
12641
- .cn-chart-widget__view-pill--active[data-v-5335921f] {
12798
+ .cn-chart-widget__view-pill--active[data-v-7636430b] {
12642
12799
  background: var(--color-primary-element-light, #aad2ed);
12643
12800
  color: var(--color-main-text);
12644
12801
  border-color: var(--color-primary-element, #0082c9);
@@ -12667,8 +12824,8 @@ li[data-cn-admin-tag] > .action-link::after {
12667
12824
  each override below therefore carries one more class than the apexcharts rule
12668
12825
  it replaces, and holds even without the scope attribute this block compiles
12669
12826
  with. */
12670
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-light,
12671
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-dark {
12827
+ .cn-chart-widget[data-v-7636430b] .apexcharts-tooltip.apexcharts-theme-light,
12828
+ .cn-chart-widget[data-v-7636430b] .apexcharts-tooltip.apexcharts-theme-dark {
12672
12829
  background: var(--color-main-background);
12673
12830
  border: 1px solid var(--color-border);
12674
12831
  color: var(--color-main-text);
@@ -12677,8 +12834,8 @@ li[data-cn-admin-tag] > .action-link::after {
12677
12834
 
12678
12835
  /* The title row is the date/category header ("Aug 26"). Its own background is
12679
12836
  what made it unreadable rather than merely off-theme. */
12680
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
12681
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
12837
+ .cn-chart-widget[data-v-7636430b] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
12838
+ .cn-chart-widget[data-v-7636430b] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
12682
12839
  background: var(--color-background-hover);
12683
12840
  border-bottom: 1px solid var(--color-border);
12684
12841
  color: var(--color-main-text);
@@ -12687,8 +12844,8 @@ li[data-cn-admin-tag] > .action-link::after {
12687
12844
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
12688
12845
  here and only overrides them for its dark theme, so the base rule has to be
12689
12846
  replaced too — not just the theme variants. */
12690
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip,
12691
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip {
12847
+ .cn-chart-widget[data-v-7636430b] .apexcharts-xaxistooltip,
12848
+ .cn-chart-widget[data-v-7636430b] .apexcharts-yaxistooltip {
12692
12849
  background: var(--color-main-background);
12693
12850
  border: 1px solid var(--color-border);
12694
12851
  color: var(--color-main-text);
@@ -12697,55 +12854,55 @@ li[data-cn-admin-tag] > .action-link::after {
12697
12854
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
12698
12855
  edge, `::after` the fill. Both need the tokens the box above uses, or the
12699
12856
  arrow keeps the old palette and reads as a stray light wedge. */
12700
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-bottom::after,
12701
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-top::after {
12857
+ .cn-chart-widget[data-v-7636430b] .apexcharts-xaxistooltip-bottom::after,
12858
+ .cn-chart-widget[data-v-7636430b] .apexcharts-xaxistooltip-top::after {
12702
12859
  border-bottom-color: var(--color-main-background);
12703
12860
  border-top-color: var(--color-main-background);
12704
12861
  }
12705
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-bottom::before,
12706
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-top::before {
12862
+ .cn-chart-widget[data-v-7636430b] .apexcharts-xaxistooltip-bottom::before,
12863
+ .cn-chart-widget[data-v-7636430b] .apexcharts-xaxistooltip-top::before {
12707
12864
  border-bottom-color: var(--color-border);
12708
12865
  border-top-color: var(--color-border);
12709
12866
  }
12710
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-left::after,
12711
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-right::after {
12867
+ .cn-chart-widget[data-v-7636430b] .apexcharts-yaxistooltip-left::after,
12868
+ .cn-chart-widget[data-v-7636430b] .apexcharts-yaxistooltip-right::after {
12712
12869
  border-left-color: var(--color-main-background);
12713
12870
  border-right-color: var(--color-main-background);
12714
12871
  }
12715
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-left::before,
12716
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-right::before {
12872
+ .cn-chart-widget[data-v-7636430b] .apexcharts-yaxistooltip-left::before,
12873
+ .cn-chart-widget[data-v-7636430b] .apexcharts-yaxistooltip-right::before {
12717
12874
  border-left-color: var(--color-border);
12718
12875
  border-right-color: var(--color-border);
12719
12876
  }
12720
12877
 
12721
12878
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
12722
12879
  hardcoded `#fff` panel under inherited near-white text. */
12723
- .cn-chart-widget[data-v-5335921f] .apexcharts-menu {
12880
+ .cn-chart-widget[data-v-7636430b] .apexcharts-menu {
12724
12881
  background: var(--color-main-background);
12725
12882
  border: 1px solid var(--color-border);
12726
12883
  color: var(--color-main-text);
12727
12884
  }
12728
- .cn-chart-widget[data-v-5335921f] .apexcharts-menu .apexcharts-menu-item:hover {
12885
+ .cn-chart-widget[data-v-7636430b] .apexcharts-menu .apexcharts-menu-item:hover {
12729
12886
  background: var(--color-background-hover);
12730
12887
  }
12731
12888
 
12732
12889
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
12733
12890
  vanishes against a dark background. One selector per icon class, matching
12734
12891
  apexcharts' own list, to clear its (0,3,1) hover rules. */
12735
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-menu-icon svg,
12736
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-reset-icon svg,
12737
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-selection-icon svg,
12738
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoom-icon svg,
12739
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
12740
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
12892
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-menu-icon svg,
12893
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-reset-icon svg,
12894
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-selection-icon svg,
12895
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoom-icon svg,
12896
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
12897
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
12741
12898
  fill: var(--color-text-maxcontrast);
12742
12899
  }
12743
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
12744
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
12745
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
12746
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
12747
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
12748
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
12900
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
12901
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
12902
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
12903
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
12904
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
12905
+ .cn-chart-widget[data-v-7636430b] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
12749
12906
  fill: var(--color-main-text);
12750
12907
  }
12751
12908
 
@@ -20074,7 +20231,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20074
20231
  }
20075
20232
 
20076
20233
 
20077
- .cn-files-browser[data-v-534c5e47] {
20234
+ .cn-files-browser[data-v-61d912e6] {
20078
20235
  display: flex;
20079
20236
  flex-direction: column;
20080
20237
  gap: 8px;
@@ -20082,22 +20239,22 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20082
20239
  position: relative;
20083
20240
  border-radius: var(--border-radius-large, 8px);
20084
20241
  }
20085
- .cn-files-browser--dragging[data-v-534c5e47] {
20242
+ .cn-files-browser--dragging[data-v-61d912e6] {
20086
20243
  outline: 2px dashed var(--color-primary-element);
20087
20244
  outline-offset: 4px;
20088
20245
  }
20089
20246
 
20090
20247
  /* With a `dropDetail` the drop state fills the panel it sits in, as the
20091
20248
  board draws it (DqZaakDocumentenSlepen), not only the list's own height. */
20092
- .cn-files-browser--dragging.cn-files-browser--drop-panel[data-v-534c5e47] {
20249
+ .cn-files-browser--dragging.cn-files-browser--drop-panel[data-v-61d912e6] {
20093
20250
  min-height: max(320px, 100%);
20094
20251
  }
20095
- .cn-files-browser__drop-detail[data-v-534c5e47] {
20252
+ .cn-files-browser__drop-detail[data-v-61d912e6] {
20096
20253
  max-width: 520px;
20097
20254
  font-size: 14px;
20098
20255
  color: var(--color-main-text);
20099
20256
  }
20100
- .cn-files-browser__drop-overlay[data-v-534c5e47] {
20257
+ .cn-files-browser__drop-overlay[data-v-61d912e6] {
20101
20258
  position: absolute;
20102
20259
  inset: 0;
20103
20260
  z-index: 2;
@@ -20115,7 +20272,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20115
20272
  text-align: center;
20116
20273
  pointer-events: none;
20117
20274
  }
20118
- .cn-files-browser__drop-icon[data-v-534c5e47] {
20275
+ .cn-files-browser__drop-icon[data-v-61d912e6] {
20119
20276
  display: flex;
20120
20277
  align-items: center;
20121
20278
  justify-content: center;
@@ -20125,11 +20282,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20125
20282
  background: var(--color-main-background);
20126
20283
  color: var(--color-primary-element);
20127
20284
  }
20128
- .cn-files-browser__drop-label[data-v-534c5e47] {
20285
+ .cn-files-browser__drop-label[data-v-61d912e6] {
20129
20286
  font-size: 20px;
20130
20287
  font-weight: 700;
20131
20288
  }
20132
- .cn-files-browser__drop-hint[data-v-534c5e47] {
20289
+ .cn-files-browser__drop-hint[data-v-61d912e6] {
20133
20290
  display: flex;
20134
20291
  align-items: center;
20135
20292
  gap: 8px;
@@ -20139,14 +20296,14 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20139
20296
  font-size: 13px;
20140
20297
  color: var(--color-text-maxcontrast);
20141
20298
  }
20142
- .cn-files-browser__bar[data-v-534c5e47] {
20299
+ .cn-files-browser__bar[data-v-61d912e6] {
20143
20300
  display: flex;
20144
20301
  align-items: center;
20145
20302
  justify-content: space-between;
20146
20303
  gap: 8px;
20147
20304
  min-width: 0;
20148
20305
  }
20149
- .cn-files-browser__crumbs[data-v-534c5e47] {
20306
+ .cn-files-browser__crumbs[data-v-61d912e6] {
20150
20307
  min-width: 0;
20151
20308
  flex: 1 1 auto;
20152
20309
  }
@@ -20154,13 +20311,13 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20154
20311
  /* The crumbs give way, the controls do not: a long crumb (a folder named
20155
20312
  after a uuid) shrank the upload button to "Bestanden..." while the crumbs
20156
20313
  kept their width. */
20157
- .cn-files-browser__bar[data-v-534c5e47] > :not(.cn-files-browser__crumbs) {
20314
+ .cn-files-browser__bar[data-v-61d912e6] > :not(.cn-files-browser__crumbs) {
20158
20315
  flex-shrink: 0;
20159
20316
  }
20160
- .cn-files-browser__file-input[data-v-534c5e47] {
20317
+ .cn-files-browser__file-input[data-v-61d912e6] {
20161
20318
  display: none;
20162
20319
  }
20163
- .cn-files-browser__uploads[data-v-534c5e47] {
20320
+ .cn-files-browser__uploads[data-v-61d912e6] {
20164
20321
  list-style: none;
20165
20322
  margin: 0;
20166
20323
  padding: 0;
@@ -20168,40 +20325,50 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20168
20325
  flex-direction: column;
20169
20326
  gap: 4px;
20170
20327
  }
20171
- .cn-files-browser__upload[data-v-534c5e47] {
20328
+ .cn-files-browser__upload[data-v-61d912e6] {
20172
20329
  display: flex;
20173
20330
  flex-direction: column;
20174
20331
  gap: 2px;
20175
20332
  }
20176
- .cn-files-browser__upload-name[data-v-534c5e47] {
20333
+ .cn-files-browser__upload-name[data-v-61d912e6] {
20177
20334
  font-size: 13px;
20178
20335
  }
20179
- .cn-files-browser__upload-error[data-v-534c5e47] {
20336
+ .cn-files-browser__upload-error[data-v-61d912e6] {
20180
20337
  color: var(--color-error);
20181
20338
  font-size: 13px;
20182
20339
  }
20183
- .cn-files-browser__loading[data-v-534c5e47] {
20340
+ .cn-files-browser__loading[data-v-61d912e6] {
20184
20341
  padding: 24px 0;
20185
20342
  }
20186
20343
 
20187
20344
  /* `sideCards`: the list and, while a file is selected, a column of cards. */
20188
- .cn-files-browser__body--with-side[data-v-534c5e47] {
20345
+ .cn-files-browser__body--with-side[data-v-61d912e6] {
20189
20346
  display: grid;
20190
20347
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
20191
20348
  align-items: start;
20192
20349
  gap: 16px;
20193
20350
  }
20194
20351
  @media (max-width: 900px) {
20195
- .cn-files-browser__body--with-side[data-v-534c5e47] {
20352
+ .cn-files-browser__body--with-side[data-v-61d912e6] {
20196
20353
  grid-template-columns: minmax(0, 1fr);
20197
20354
  }
20198
20355
  }
20199
- .cn-files-browser__side[data-v-534c5e47] {
20356
+ .cn-files-browser__side[data-v-61d912e6] {
20200
20357
  display: flex;
20201
20358
  flex-direction: column;
20202
20359
  gap: 12px;
20203
20360
  }
20204
- .cn-files-browser__side-card[data-v-534c5e47] {
20361
+
20362
+ /* In the detail page's side column the cards take its gap and its card
20363
+ anatomy, as the page's own side cards are drawn. */
20364
+ .cn-files-browser__side--in-page[data-v-61d912e6] {
20365
+ gap: calc(5 * var(--default-grid-baseline));
20366
+ }
20367
+ .cn-files-browser__side--in-page .cn-files-browser__side-card[data-v-61d912e6] {
20368
+ padding: var(--cn-board-card-padding, 16px 18px);
20369
+ border-radius: var(--cn-board-card-radius, var(--border-radius-large));
20370
+ }
20371
+ .cn-files-browser__side-card[data-v-61d912e6] {
20205
20372
  display: flex;
20206
20373
  flex-direction: column;
20207
20374
  gap: 10px;
@@ -20210,27 +20377,27 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20210
20377
  border-radius: var(--border-radius-large);
20211
20378
  background: var(--color-main-background);
20212
20379
  }
20213
- .cn-files-browser__side-title[data-v-534c5e47] {
20380
+ .cn-files-browser__side-title[data-v-61d912e6] {
20214
20381
  margin: 0;
20215
20382
  font-size: 15px;
20216
20383
  font-weight: 700;
20217
20384
  overflow-wrap: anywhere;
20218
20385
  }
20219
- .cn-files-browser__side-facts[data-v-534c5e47] {
20386
+ .cn-files-browser__side-facts[data-v-61d912e6] {
20220
20387
  display: grid;
20221
20388
  grid-template-columns: max-content minmax(0, 1fr);
20222
20389
  gap: 6px 12px;
20223
20390
  margin: 0;
20224
20391
  font-size: 14px;
20225
20392
  }
20226
- .cn-files-browser__side-facts dt[data-v-534c5e47] {
20393
+ .cn-files-browser__side-facts dt[data-v-61d912e6] {
20227
20394
  color: var(--color-text-maxcontrast);
20228
20395
  }
20229
- .cn-files-browser__side-facts dd[data-v-534c5e47] {
20396
+ .cn-files-browser__side-facts dd[data-v-61d912e6] {
20230
20397
  margin: 0;
20231
20398
  overflow-wrap: anywhere;
20232
20399
  }
20233
- .cn-files-browser__side-actions[data-v-534c5e47] {
20400
+ .cn-files-browser__side-actions[data-v-61d912e6] {
20234
20401
  display: flex;
20235
20402
  flex-wrap: wrap;
20236
20403
  gap: 8px;
@@ -20238,35 +20405,35 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20238
20405
 
20239
20406
  /* A value drawn in a tone (`colorMap` on a column that is not a badge): the
20240
20407
  text in the tone's colour, as the boards write a restricted level. */
20241
- .cn-files-browser__tone[data-v-534c5e47] {
20408
+ .cn-files-browser__tone[data-v-61d912e6] {
20242
20409
  font-weight: 600;
20243
20410
  }
20244
- .cn-files-browser__tone--success[data-v-534c5e47] {
20411
+ .cn-files-browser__tone--success[data-v-61d912e6] {
20245
20412
  color: var(--color-success-text, var(--color-success));
20246
20413
  }
20247
- .cn-files-browser__tone--warning[data-v-534c5e47] {
20414
+ .cn-files-browser__tone--warning[data-v-61d912e6] {
20248
20415
  color: var(--color-warning-text, var(--color-warning));
20249
20416
  }
20250
- .cn-files-browser__tone--error[data-v-534c5e47] {
20417
+ .cn-files-browser__tone--error[data-v-61d912e6] {
20251
20418
  color: var(--color-error-text, var(--color-error));
20252
20419
  }
20253
- .cn-files-browser__tone--primary[data-v-534c5e47],
20254
- .cn-files-browser__tone--info[data-v-534c5e47] {
20420
+ .cn-files-browser__tone--primary[data-v-61d912e6],
20421
+ .cn-files-browser__tone--info[data-v-61d912e6] {
20255
20422
  color: var(--color-primary-element-light-text, var(--color-primary-element));
20256
20423
  }
20257
- .cn-files-browser__table[data-v-534c5e47] {
20424
+ .cn-files-browser__table[data-v-61d912e6] {
20258
20425
  width: 100%;
20259
20426
  border-collapse: collapse;
20260
20427
  table-layout: fixed;
20261
20428
  }
20262
- .cn-files-browser__table th[data-v-534c5e47] {
20429
+ .cn-files-browser__table th[data-v-61d912e6] {
20263
20430
  text-align: start;
20264
20431
  font-weight: normal;
20265
20432
  color: var(--color-text-maxcontrast);
20266
20433
  padding: 4px 8px;
20267
20434
  border-bottom: 1px solid var(--color-border);
20268
20435
  }
20269
- .cn-files-browser__sort[data-v-534c5e47] {
20436
+ .cn-files-browser__sort[data-v-61d912e6] {
20270
20437
  background: none;
20271
20438
  border: none;
20272
20439
  padding: 0;
@@ -20277,46 +20444,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20277
20444
  align-items: center;
20278
20445
  gap: 2px;
20279
20446
  }
20280
- .cn-files-browser__sort[data-v-534c5e47]:hover,
20281
- .cn-files-browser__sort[data-v-534c5e47]:focus-visible {
20447
+ .cn-files-browser__sort[data-v-61d912e6]:hover,
20448
+ .cn-files-browser__sort[data-v-61d912e6]:focus-visible {
20282
20449
  color: var(--color-main-text);
20283
20450
  }
20284
- .cn-files-browser__row[data-v-534c5e47] {
20451
+ .cn-files-browser__row[data-v-61d912e6] {
20285
20452
  cursor: pointer;
20286
20453
  }
20287
- .cn-files-browser__row[data-v-534c5e47]:hover,
20288
- .cn-files-browser__row[data-v-534c5e47]:focus-within {
20454
+ .cn-files-browser__row[data-v-61d912e6]:hover,
20455
+ .cn-files-browser__row[data-v-61d912e6]:focus-within {
20289
20456
  background-color: var(--color-background-hover);
20290
20457
  }
20291
- .cn-files-browser__table td[data-v-534c5e47] {
20458
+ .cn-files-browser__table td[data-v-61d912e6] {
20292
20459
  padding: 4px 8px;
20293
20460
  border-bottom: 1px solid var(--color-border);
20294
20461
  vertical-align: middle;
20295
20462
  }
20296
- .cn-files-browser__col-icon[data-v-534c5e47] {
20463
+ .cn-files-browser__col-icon[data-v-61d912e6] {
20297
20464
  width: 48px;
20298
20465
  }
20299
- .cn-files-browser__col-size[data-v-534c5e47] {
20466
+ .cn-files-browser__col-size[data-v-61d912e6] {
20300
20467
  width: 96px;
20301
20468
  white-space: nowrap;
20302
20469
  color: var(--color-text-maxcontrast);
20303
20470
  }
20304
- .cn-files-browser__col-mtime[data-v-534c5e47] {
20471
+ .cn-files-browser__col-mtime[data-v-61d912e6] {
20305
20472
  width: 140px;
20306
20473
  white-space: nowrap;
20307
20474
  color: var(--color-text-maxcontrast);
20308
20475
  }
20309
- .cn-files-browser__col-select[data-v-534c5e47] {
20476
+ .cn-files-browser__col-select[data-v-61d912e6] {
20310
20477
  width: 36px;
20311
20478
  text-align: center;
20312
20479
  }
20313
- .cn-files-browser__select[data-v-534c5e47] {
20480
+ .cn-files-browser__select[data-v-61d912e6] {
20314
20481
  width: 18px;
20315
20482
  height: 18px;
20316
20483
  margin: 0;
20317
20484
  accent-color: var(--color-primary-element);
20318
20485
  }
20319
- .cn-files-browser__bulk-bar[data-v-534c5e47] {
20486
+ .cn-files-browser__bulk-bar[data-v-61d912e6] {
20320
20487
  display: flex;
20321
20488
  flex-wrap: wrap;
20322
20489
  align-items: center;
@@ -20325,11 +20492,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20325
20492
  border-radius: var(--border-radius-large);
20326
20493
  background: var(--color-primary-element-light);
20327
20494
  }
20328
- .cn-files-browser__bulk-count[data-v-534c5e47] {
20495
+ .cn-files-browser__bulk-count[data-v-61d912e6] {
20329
20496
  font-weight: 600;
20330
20497
  margin-inline-end: 8px;
20331
20498
  }
20332
- .cn-files-browser__review[data-v-534c5e47] {
20499
+ .cn-files-browser__review[data-v-61d912e6] {
20333
20500
  display: flex;
20334
20501
  flex-direction: column;
20335
20502
  gap: 10px;
@@ -20338,28 +20505,28 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20338
20505
  border-radius: 10px;
20339
20506
  background: var(--color-background-hover);
20340
20507
  }
20341
- .cn-files-browser__review-head[data-v-534c5e47] {
20508
+ .cn-files-browser__review-head[data-v-61d912e6] {
20342
20509
  display: flex;
20343
20510
  flex-wrap: wrap;
20344
20511
  align-items: baseline;
20345
20512
  justify-content: space-between;
20346
20513
  gap: 8px;
20347
20514
  }
20348
- .cn-files-browser__review-title[data-v-534c5e47] {
20515
+ .cn-files-browser__review-title[data-v-61d912e6] {
20349
20516
  font-size: 15px;
20350
20517
  }
20351
- .cn-files-browser__review-sub[data-v-534c5e47] {
20518
+ .cn-files-browser__review-sub[data-v-61d912e6] {
20352
20519
  color: var(--color-text-maxcontrast);
20353
20520
  font-size: 13px;
20354
20521
  }
20355
- .cn-files-browser__review-bar[data-v-534c5e47] {
20522
+ .cn-files-browser__review-bar[data-v-61d912e6] {
20356
20523
  display: flex;
20357
20524
  height: 8px;
20358
20525
  overflow: hidden;
20359
20526
  border-radius: 4px;
20360
20527
  background: var(--color-border);
20361
20528
  }
20362
- .cn-files-browser__review-legend[data-v-534c5e47] {
20529
+ .cn-files-browser__review-legend[data-v-61d912e6] {
20363
20530
  display: flex;
20364
20531
  flex-wrap: wrap;
20365
20532
  gap: 8px 18px;
@@ -20368,48 +20535,48 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20368
20535
  font-size: 14px;
20369
20536
  list-style: none;
20370
20537
  }
20371
- .cn-files-browser__review-legend li[data-v-534c5e47] {
20538
+ .cn-files-browser__review-legend li[data-v-61d912e6] {
20372
20539
  display: inline-flex;
20373
20540
  align-items: center;
20374
20541
  gap: 8px;
20375
20542
  }
20376
- .cn-files-browser__review-dot[data-v-534c5e47] {
20543
+ .cn-files-browser__review-dot[data-v-61d912e6] {
20377
20544
  width: 10px;
20378
20545
  height: 10px;
20379
20546
  border-radius: 5px;
20380
20547
  }
20381
- .cn-files-browser__review-part--success[data-v-534c5e47] {
20548
+ .cn-files-browser__review-part--success[data-v-61d912e6] {
20382
20549
  background: var(--color-success-text, var(--color-success));
20383
20550
  }
20384
- .cn-files-browser__review-part--warning[data-v-534c5e47] {
20551
+ .cn-files-browser__review-part--warning[data-v-61d912e6] {
20385
20552
  background: var(--color-warning);
20386
20553
  }
20387
- .cn-files-browser__review-part--error[data-v-534c5e47] {
20554
+ .cn-files-browser__review-part--error[data-v-61d912e6] {
20388
20555
  background: var(--color-error-text, var(--color-error));
20389
20556
  }
20390
- .cn-files-browser__review-part--info[data-v-534c5e47] {
20557
+ .cn-files-browser__review-part--info[data-v-61d912e6] {
20391
20558
  background: var(--color-primary-element);
20392
20559
  }
20393
- .cn-files-browser__review-part--default[data-v-534c5e47] {
20560
+ .cn-files-browser__review-part--default[data-v-61d912e6] {
20394
20561
  background: var(--color-border-dark);
20395
20562
  }
20396
- .cn-files-browser__row-button[data-v-534c5e47] {
20563
+ .cn-files-browser__row-button[data-v-61d912e6] {
20397
20564
  display: inline-flex;
20398
20565
  margin-inline-end: 8px;
20399
20566
  vertical-align: middle;
20400
20567
  }
20401
- .cn-files-browser__facets[data-v-534c5e47] {
20568
+ .cn-files-browser__facets[data-v-61d912e6] {
20402
20569
  display: flex;
20403
20570
  flex-wrap: wrap;
20404
20571
  align-items: center;
20405
20572
  gap: 8px 16px;
20406
20573
  }
20407
- .cn-files-browser__facet[data-v-534c5e47] {
20574
+ .cn-files-browser__facet[data-v-61d912e6] {
20408
20575
  display: flex;
20409
20576
  flex-wrap: wrap;
20410
20577
  gap: 6px;
20411
20578
  }
20412
- .cn-files-browser__facet-chip[data-v-534c5e47] {
20579
+ .cn-files-browser__facet-chip[data-v-61d912e6] {
20413
20580
  display: inline-flex;
20414
20581
  align-items: center;
20415
20582
  gap: 6px;
@@ -20421,41 +20588,41 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20421
20588
  color: var(--color-main-text);
20422
20589
  cursor: pointer;
20423
20590
  }
20424
- .cn-files-browser__facet-chip--active[data-v-534c5e47] {
20591
+ .cn-files-browser__facet-chip--active[data-v-61d912e6] {
20425
20592
  border-color: var(--color-primary-element);
20426
20593
  background: var(--color-primary-element-light);
20427
20594
  }
20428
- .cn-files-browser__group-heading[data-v-534c5e47] {
20595
+ .cn-files-browser__group-heading[data-v-61d912e6] {
20429
20596
  padding: 12px 8px 4px;
20430
20597
  text-align: start;
20431
20598
  font-weight: 700;
20432
20599
  }
20433
- .cn-files-browser__group-count[data-v-534c5e47] {
20600
+ .cn-files-browser__group-count[data-v-61d912e6] {
20434
20601
  margin-inline-start: 6px;
20435
20602
  font-weight: 400;
20436
20603
  color: var(--color-text-maxcontrast);
20437
20604
  }
20438
- .cn-files-browser__no-match[data-v-534c5e47] {
20605
+ .cn-files-browser__no-match[data-v-61d912e6] {
20439
20606
  padding: 16px 8px;
20440
20607
  color: var(--color-text-maxcontrast);
20441
20608
  }
20442
- .cn-files-browser__col-actions[data-v-534c5e47] {
20609
+ .cn-files-browser__col-actions[data-v-61d912e6] {
20443
20610
  width: 48px;
20444
20611
  white-space: nowrap;
20445
20612
  }
20446
- .cn-files-browser__col-actions[data-v-534c5e47]:has(.cn-files-browser__row-button) {
20613
+ .cn-files-browser__col-actions[data-v-61d912e6]:has(.cn-files-browser__row-button) {
20447
20614
  width: auto;
20448
20615
  }
20449
- .cn-files-browser__col-name[data-v-534c5e47] {
20616
+ .cn-files-browser__col-name[data-v-61d912e6] {
20450
20617
  min-width: 0;
20451
20618
  }
20452
- .cn-files-browser__name[data-v-534c5e47] {
20619
+ .cn-files-browser__name[data-v-61d912e6] {
20453
20620
  display: block;
20454
20621
  overflow: hidden;
20455
20622
  text-overflow: ellipsis;
20456
20623
  white-space: nowrap;
20457
20624
  }
20458
- .cn-files-browser__name-secondary[data-v-534c5e47] {
20625
+ .cn-files-browser__name-secondary[data-v-61d912e6] {
20459
20626
  display: block;
20460
20627
  overflow: hidden;
20461
20628
  color: var(--color-text-maxcontrast);
@@ -20463,41 +20630,41 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20463
20630
  text-overflow: ellipsis;
20464
20631
  white-space: nowrap;
20465
20632
  }
20466
- .cn-files-browser__footnote[data-v-534c5e47] {
20633
+ .cn-files-browser__footnote[data-v-61d912e6] {
20467
20634
  margin: 0;
20468
20635
  padding-top: 12px;
20469
20636
  color: var(--color-text-maxcontrast);
20470
20637
  font-size: 13px;
20471
20638
  }
20472
- .cn-files-browser__row--linked[data-v-534c5e47] {
20639
+ .cn-files-browser__row--linked[data-v-61d912e6] {
20473
20640
  color: var(--color-text-maxcontrast);
20474
20641
  }
20475
- .cn-files-browser__note[data-v-534c5e47] {
20642
+ .cn-files-browser__note[data-v-61d912e6] {
20476
20643
  color: var(--color-text-maxcontrast);
20477
20644
  display: block;
20478
20645
  font-size: var(--font-size-small, 13px);
20479
20646
  }
20480
- .cn-files-browser__note-link[data-v-534c5e47] {
20647
+ .cn-files-browser__note-link[data-v-61d912e6] {
20481
20648
  color: inherit;
20482
20649
  text-decoration: underline;
20483
20650
  }
20484
- .cn-files-browser__row--folder .cn-files-browser__name[data-v-534c5e47] {
20651
+ .cn-files-browser__row--folder .cn-files-browser__name[data-v-61d912e6] {
20485
20652
  font-weight: 600;
20486
20653
  }
20487
- .cn-files-browser__mime[data-v-534c5e47],
20488
- .cn-files-browser__thumb[data-v-534c5e47] {
20654
+ .cn-files-browser__mime[data-v-61d912e6],
20655
+ .cn-files-browser__thumb[data-v-61d912e6] {
20489
20656
  width: 32px;
20490
20657
  height: 32px;
20491
20658
  display: block;
20492
20659
  }
20493
- .cn-files-browser__thumb[data-v-534c5e47] {
20660
+ .cn-files-browser__thumb[data-v-61d912e6] {
20494
20661
  object-fit: cover;
20495
20662
  border-radius: var(--border-radius, 4px);
20496
20663
  }
20497
- .cn-files-browser__new-folder[data-v-534c5e47] {
20664
+ .cn-files-browser__new-folder[data-v-61d912e6] {
20498
20665
  padding: 8px 0;
20499
20666
  }
20500
- .hidden-visually[data-v-534c5e47] {
20667
+ .hidden-visually[data-v-61d912e6] {
20501
20668
  position: absolute;
20502
20669
  width: 1px;
20503
20670
  height: 1px;
@@ -20507,9 +20674,9 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20507
20674
  }
20508
20675
 
20509
20676
 
20510
- .cn-sidebar-tab[data-v-fe12141e] { padding: 12px;
20677
+ .cn-sidebar-tab[data-v-76386af6] { padding: 12px;
20511
20678
  }
20512
- .cn-sidebar-tab__upload-error[data-v-fe12141e] {
20679
+ .cn-sidebar-tab__upload-error[data-v-76386af6] {
20513
20680
  padding: 8px 12px;
20514
20681
  margin-bottom: 8px;
20515
20682
  border-radius: var(--border-radius, 4px);
@@ -20517,7 +20684,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20517
20684
  color: var(--color-error, #e53935);
20518
20685
  font-size: 13px;
20519
20686
  }
20520
- .cn-sidebar-tab__dropzone[data-v-fe12141e] {
20687
+ .cn-sidebar-tab__dropzone[data-v-76386af6] {
20521
20688
  display: flex;
20522
20689
  flex-direction: column;
20523
20690
  align-items: center;
@@ -20530,46 +20697,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20530
20697
  cursor: pointer;
20531
20698
  transition: border-color 0.15s ease, background-color 0.15s ease;
20532
20699
  }
20533
- .cn-sidebar-tab__dropzone[data-v-fe12141e]:hover {
20700
+ .cn-sidebar-tab__dropzone[data-v-76386af6]:hover {
20534
20701
  border-color: var(--color-primary-element);
20535
20702
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.08));
20536
20703
  }
20537
- .cn-sidebar-tab__dropzone--active[data-v-fe12141e] {
20704
+ .cn-sidebar-tab__dropzone--active[data-v-76386af6] {
20538
20705
  border-color: var(--color-primary-element);
20539
20706
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.12));
20540
20707
  }
20541
- .cn-sidebar-tab__share[data-v-fe12141e] { margin-bottom: 12px;
20708
+ .cn-sidebar-tab__share[data-v-76386af6] { margin-bottom: 12px;
20542
20709
  }
20543
- .cn-sidebar-tab__dropzone-icon[data-v-fe12141e] { color: var(--color-text-maxcontrast);
20710
+ .cn-sidebar-tab__dropzone-icon[data-v-76386af6] { color: var(--color-text-maxcontrast);
20544
20711
  }
20545
- .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-fe12141e],
20546
- .cn-sidebar-tab__dropzone:hover .cn-sidebar-tab__dropzone-icon[data-v-fe12141e] { color: var(--color-primary-element);
20712
+ .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-76386af6],
20713
+ .cn-sidebar-tab__dropzone:hover .cn-sidebar-tab__dropzone-icon[data-v-76386af6] { color: var(--color-primary-element);
20547
20714
  }
20548
- .cn-sidebar-tab__dropzone-text[data-v-fe12141e] { font-size: 13px; color: var(--color-text-maxcontrast);
20715
+ .cn-sidebar-tab__dropzone-text[data-v-76386af6] { font-size: 13px; color: var(--color-text-maxcontrast);
20549
20716
  }
20550
- .cn-sidebar-tab__file-input[data-v-fe12141e] { display: none;
20717
+ .cn-sidebar-tab__file-input[data-v-76386af6] { display: none;
20551
20718
  }
20552
- .cn-sidebar-tab__empty[data-v-fe12141e] {
20719
+ .cn-sidebar-tab__empty[data-v-76386af6] {
20553
20720
  text-align: center;
20554
20721
  padding: 24px 12px;
20555
20722
  color: var(--color-text-maxcontrast);
20556
20723
  font-size: 13px;
20557
20724
  }
20558
- .cn-sidebar-tab__list[data-v-fe12141e] { display: flex; flex-direction: column; gap: 2px;
20725
+ .cn-sidebar-tab__list[data-v-76386af6] { display: flex; flex-direction: column; gap: 2px;
20559
20726
  }
20560
- .cn-sidebar-tab__mime[data-v-fe12141e],
20561
- .cn-sidebar-tab__thumb[data-v-fe12141e] {
20727
+ .cn-sidebar-tab__mime[data-v-76386af6],
20728
+ .cn-sidebar-tab__thumb[data-v-76386af6] {
20562
20729
  width: 32px;
20563
20730
  height: 32px;
20564
20731
  display: block;
20565
20732
  }
20566
- .cn-sidebar-tab__thumb[data-v-fe12141e] {
20733
+ .cn-sidebar-tab__thumb[data-v-76386af6] {
20567
20734
  object-fit: cover;
20568
20735
  border-radius: var(--border-radius, 4px);
20569
20736
  }
20570
- .cn-sidebar-tab__meta[data-v-fe12141e] { color: var(--color-text-maxcontrast);
20737
+ .cn-sidebar-tab__meta[data-v-76386af6] { color: var(--color-text-maxcontrast);
20571
20738
  }
20572
- .cn-sidebar-tab__load-more[data-v-fe12141e] { margin-top: 8px;
20739
+ .cn-sidebar-tab__load-more[data-v-76386af6] { margin-top: 8px;
20573
20740
  }
20574
20741
 
20575
20742
 
@@ -29996,7 +30163,7 @@ button.cn-stepper__step[data-v-3cab4d7d] {
29996
30163
  }
29997
30164
 
29998
30165
 
29999
- .cn-detail-page__catalog-action[data-v-7dc610c5] {
30166
+ .cn-detail-page__catalog-action[data-v-2993ba72] {
30000
30167
  align-items: center;
30001
30168
  background: var(--color-primary-element-light);
30002
30169
  border: 0;
@@ -30015,15 +30182,15 @@ button.cn-stepper__step[data-v-3cab4d7d] {
30015
30182
 
30016
30183
  /* A leaf card in a narrow cell keeps its title and count: the title row
30017
30184
  wraps and the actions move under it instead of squeezing the title out. */
30018
- .cn-detail-page__leaf-card[data-v-7dc610c5] .cn-widget-wrapper__header {
30185
+ .cn-detail-page__leaf-card[data-v-2993ba72] .cn-widget-wrapper__header {
30019
30186
  flex-wrap: wrap;
30020
30187
  }
30021
- .cn-detail-page__leaf-card[data-v-7dc610c5] .cn-widget-wrapper__header-left {
30188
+ .cn-detail-page__leaf-card[data-v-2993ba72] .cn-widget-wrapper__header-left {
30022
30189
  flex: 1 0 auto;
30023
30190
  }
30024
30191
 
30025
30192
  /* The count beside a card title: the grey 20px badge of the tab strip. */
30026
- .cn-detail-page__catalog-count[data-v-7dc610c5] {
30193
+ .cn-detail-page__catalog-count[data-v-2993ba72] {
30027
30194
  background-color: var(--color-border);
30028
30195
  border-radius: 10px;
30029
30196
  box-sizing: border-box;
@@ -30036,19 +30203,19 @@ button.cn-stepper__step[data-v-3cab4d7d] {
30036
30203
  padding: 0 6px;
30037
30204
  text-align: center;
30038
30205
  }
30039
- .cn-detail-page__catalog-note[data-v-7dc610c5] {
30206
+ .cn-detail-page__catalog-note[data-v-2993ba72] {
30040
30207
  color: var(--color-text-maxcontrast);
30041
30208
  font-size: 14px;
30042
30209
  white-space: nowrap;
30043
30210
  }
30044
- .cn-detail-widget-host[data-v-7dc610c5],
30045
- .cn-detail-widget-host[data-v-7dc610c5] > * {
30211
+ .cn-detail-widget-host[data-v-2993ba72],
30212
+ .cn-detail-widget-host[data-v-2993ba72] > * {
30046
30213
  height: 100%;
30047
30214
  }
30048
30215
 
30049
30216
  /* A bare host is a tab panel's body: it fills the panel and lets the panel
30050
30217
  scroll, rather than growing a second scroll region of its own. */
30051
- .cn-detail-widget-host--bare[data-v-7dc610c5] {
30218
+ .cn-detail-widget-host--bare[data-v-2993ba72] {
30052
30219
  min-height: 0;
30053
30220
  }
30054
30221
 
@@ -34764,10 +34931,10 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34764
34931
  }
34765
34932
 
34766
34933
 
34767
- .cn-sections-widget[data-v-1bba4b0c] {
34934
+ .cn-sections-widget[data-v-28baf01e] {
34768
34935
  min-width: 0;
34769
34936
  }
34770
- .cn-sections-widget__column[data-v-1bba4b0c] {
34937
+ .cn-sections-widget__column[data-v-28baf01e] {
34771
34938
  display: flex;
34772
34939
  flex-direction: column;
34773
34940
  gap: calc(var(--default-grid-baseline, 4px) * 4);
@@ -34775,35 +34942,50 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34775
34942
  }
34776
34943
 
34777
34944
  /* A main and a side column (the settings boards: 1fr and 418px, 20px apart). */
34778
- .cn-sections-widget--two-column[data-v-1bba4b0c] {
34945
+ .cn-sections-widget--two-column[data-v-28baf01e] {
34779
34946
  display: grid;
34780
34947
  grid-template-columns: minmax(0, 1fr) minmax(280px, 418px);
34781
34948
  gap: 20px;
34782
34949
  align-items: start;
34783
34950
  }
34784
34951
  @media (max-width: 1024px) {
34785
- .cn-sections-widget--two-column[data-v-1bba4b0c] {
34952
+ .cn-sections-widget--two-column[data-v-28baf01e] {
34786
34953
  grid-template-columns: minmax(0, 1fr);
34787
34954
  }
34788
34955
  }
34789
34956
 
34957
+ /* Sections side by side (`columns`): at most that many to a row, each at
34958
+ least 240px wide, so a narrow cell wraps them onto more rows. */
34959
+ .cn-sections-widget.cn-sections-widget--grid .cn-sections-widget__column[data-v-28baf01e] {
34960
+ --cn-sections-gap: 14px;
34961
+ display: grid;
34962
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, max(240px, calc((100% - (var(--cn-sections-columns, 2) - 1) * var(--cn-sections-gap)) / var(--cn-sections-columns, 2)))), 1fr));
34963
+ gap: var(--cn-sections-gap);
34964
+ align-items: start;
34965
+ }
34966
+ .cn-sections-widget__footnote[data-v-28baf01e] {
34967
+ margin: calc(var(--default-grid-baseline, 4px) * 3) 0 0;
34968
+ color: var(--color-text-maxcontrast);
34969
+ font-size: 13px;
34970
+ }
34971
+
34790
34972
  /* A host page may space every <section>; these sections are spaced by the column gap only. */
34791
- .cn-sections-widget__section[data-v-1bba4b0c] {
34973
+ .cn-sections-widget__section[data-v-28baf01e] {
34792
34974
  margin: 0;
34793
34975
  min-width: 0;
34794
34976
  }
34795
34977
 
34796
34978
  /* A rule above a section that follows a shown one. */
34797
- .cn-sections-widget:not(.cn-sections-widget--cards) .cn-sections-widget__section:not(.cn-sections-widget__section--empty) ~ .cn-sections-widget__section[data-v-1bba4b0c] {
34979
+ .cn-sections-widget:not(.cn-sections-widget--cards) .cn-sections-widget__section:not(.cn-sections-widget__section--empty) ~ .cn-sections-widget__section[data-v-28baf01e] {
34798
34980
  padding-top: calc(var(--default-grid-baseline, 4px) * 4);
34799
34981
  border-top: 1px solid var(--color-border);
34800
34982
  }
34801
34983
 
34802
34984
  /* No rule: strips that each say one thing, 8px apart. */
34803
- .cn-sections-widget--plain .cn-sections-widget__column[data-v-1bba4b0c] {
34985
+ .cn-sections-widget--plain .cn-sections-widget__column[data-v-28baf01e] {
34804
34986
  gap: calc(var(--default-grid-baseline, 4px) * 2);
34805
34987
  }
34806
- .cn-sections-widget.cn-sections-widget--plain .cn-sections-widget__section:not(.cn-sections-widget__section--empty) ~ .cn-sections-widget__section[data-v-1bba4b0c] {
34988
+ .cn-sections-widget.cn-sections-widget--plain .cn-sections-widget__section:not(.cn-sections-widget__section--empty) ~ .cn-sections-widget__section[data-v-28baf01e] {
34807
34989
  padding-top: 0;
34808
34990
  border-top: 0;
34809
34991
  }
@@ -34812,31 +34994,31 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34812
34994
  * An empty section keeps its host mounted (display: none still mounts it, so
34813
34995
  * the widget fetches and can fill later) but takes no space, gap or rule.
34814
34996
  */
34815
- .cn-sections-widget__section--empty[data-v-1bba4b0c] {
34997
+ .cn-sections-widget__section--empty[data-v-28baf01e] {
34816
34998
  display: none;
34817
34999
  }
34818
- .cn-sections-widget__heading[data-v-1bba4b0c] {
35000
+ .cn-sections-widget__heading[data-v-28baf01e] {
34819
35001
  margin: 0 0 calc(var(--default-grid-baseline, 4px) * 2);
34820
35002
  font-size: 16px;
34821
35003
  font-weight: 600;
34822
35004
  color: var(--color-main-text);
34823
35005
  }
34824
- .cn-sections-widget__description[data-v-1bba4b0c] {
35006
+ .cn-sections-widget__description[data-v-28baf01e] {
34825
35007
  margin: calc(var(--default-grid-baseline, 4px) * -1) 0 calc(var(--default-grid-baseline, 4px) * 3);
34826
35008
  color: var(--color-text-maxcontrast);
34827
35009
  }
34828
35010
 
34829
35011
  /* One card per section. */
34830
- .cn-sections-widget--cards .cn-sections-widget__column[data-v-1bba4b0c] {
35012
+ .cn-sections-widget--cards .cn-sections-widget__column[data-v-28baf01e] {
34831
35013
  gap: 20px;
34832
35014
  }
34833
- .cn-sections-widget--cards .cn-sections-widget__section[data-v-1bba4b0c] {
35015
+ .cn-sections-widget--cards .cn-sections-widget__section[data-v-28baf01e] {
34834
35016
  background: var(--color-main-background);
34835
35017
  border: 1px solid var(--color-border);
34836
35018
  border-radius: var(--cn-board-card-radius, var(--border-radius-large, 12px));
34837
35019
  padding: var(--cn-board-card-padding, 16px 20px);
34838
35020
  }
34839
- .cn-sections-widget--cards .cn-sections-widget__heading[data-v-1bba4b0c] {
35021
+ .cn-sections-widget--cards .cn-sections-widget__heading[data-v-28baf01e] {
34840
35022
  font-size: 18px;
34841
35023
  margin-bottom: 12px;
34842
35024
  }
@@ -37671,21 +37853,21 @@ a.cn-record-list__inline-title[data-v-0dc228b6] {
37671
37853
  }
37672
37854
 
37673
37855
 
37674
- .cn-attention-flag[data-v-21e92a64] {
37856
+ .cn-attention-flag[data-v-7e3434fc] {
37675
37857
  display: flex;
37676
37858
  flex-direction: column;
37677
37859
  gap: 4px;
37678
37860
  padding: 4px 0;
37679
37861
  }
37680
- .cn-attention-flag__line[data-v-21e92a64],
37681
- .cn-attention-flag__act[data-v-21e92a64] {
37862
+ .cn-attention-flag__line[data-v-7e3434fc],
37863
+ .cn-attention-flag__act[data-v-7e3434fc] {
37682
37864
  display: flex;
37683
37865
  flex-wrap: wrap;
37684
37866
  align-items: center;
37685
37867
  gap: 8px;
37686
37868
  margin: 0;
37687
37869
  }
37688
- .cn-attention-flag__list[data-v-21e92a64] {
37870
+ .cn-attention-flag__list[data-v-7e3434fc] {
37689
37871
  display: flex;
37690
37872
  flex-direction: column;
37691
37873
  gap: 2px;
@@ -37693,21 +37875,31 @@ a.cn-record-list__inline-title[data-v-0dc228b6] {
37693
37875
  padding: 0;
37694
37876
  list-style: none;
37695
37877
  }
37696
- .cn-attention-flag__list li[data-v-21e92a64] {
37878
+ .cn-attention-flag__list li[data-v-7e3434fc] {
37697
37879
  display: flex;
37698
37880
  flex-wrap: wrap;
37699
37881
  gap: 8px;
37700
37882
  }
37701
- .cn-attention-flag__lead[data-v-21e92a64] {
37883
+ .cn-attention-flag__lead[data-v-7e3434fc] {
37702
37884
  font-weight: bold;
37703
37885
  }
37704
- .cn-attention-flag__muted[data-v-21e92a64] {
37886
+ .cn-attention-flag__heading[data-v-7e3434fc] {
37887
+ margin: 0;
37888
+ font-size: 14px;
37889
+ font-weight: bold;
37890
+ }
37891
+ .cn-attention-flag__hint[data-v-7e3434fc] {
37892
+ margin: 0 0 8px;
37893
+ color: var(--color-text-maxcontrast);
37894
+ font-size: 13px;
37895
+ }
37896
+ .cn-attention-flag__muted[data-v-7e3434fc] {
37705
37897
  color: var(--color-text-maxcontrast);
37706
37898
  }
37707
- .cn-attention-flag__due[data-v-21e92a64] {
37899
+ .cn-attention-flag__due[data-v-7e3434fc] {
37708
37900
  color: var(--color-warning-text, var(--color-main-text));
37709
37901
  }
37710
- .cn-attention-flag__refusal[data-v-21e92a64] {
37902
+ .cn-attention-flag__refusal[data-v-7e3434fc] {
37711
37903
  margin: 0;
37712
37904
  color: var(--color-error-text, var(--color-error));
37713
37905
  }
@@ -40640,7 +40832,7 @@ to {
40640
40832
  }
40641
40833
 
40642
40834
 
40643
- .cn-flow-detail[data-v-05e8747a] {
40835
+ .cn-flow-detail[data-v-0226122e] {
40644
40836
  position: relative;
40645
40837
  block-size: 100%;
40646
40838
  inline-size: 100%;
@@ -40653,10 +40845,10 @@ to {
40653
40845
  /* The canvas paints an opaque main-background of its own, which sat exactly
40654
40846
  on top of the grid above. Cleared here, for flow editors only — other
40655
40847
  CnGraphCanvas consumers keep their solid ground. */
40656
- .cn-flow-detail[data-v-05e8747a] .cn-graph-canvas {
40848
+ .cn-flow-detail[data-v-0226122e] .cn-graph-canvas {
40657
40849
  background: transparent;
40658
40850
  }
40659
- .cn-flow-detail__toolbar[data-v-05e8747a] {
40851
+ .cn-flow-detail__toolbar[data-v-0226122e] {
40660
40852
  position: absolute;
40661
40853
  inset-block-start: 12px;
40662
40854
  inset-inline-end: 12px;
@@ -40674,14 +40866,14 @@ to {
40674
40866
  /* The toolbar while a run is being opened: the spinner and its sentence sit
40675
40867
  where the editor's buttons were, so the strip keeps its height and the zoom
40676
40868
  controls do not jump sideways when the run arrives. */
40677
- .cn-flow-detail__toolbar-status[data-v-05e8747a] {
40869
+ .cn-flow-detail__toolbar-status[data-v-0226122e] {
40678
40870
  display: flex;
40679
40871
  gap: 6px;
40680
40872
  align-items: center;
40681
40873
  padding-inline: 8px;
40682
40874
  color: var(--color-text-maxcontrast);
40683
40875
  }
40684
- .cn-flow-detail__toolbar-group[data-v-05e8747a] {
40876
+ .cn-flow-detail__toolbar-group[data-v-0226122e] {
40685
40877
  display: flex;
40686
40878
  align-items: center;
40687
40879
  margin-inline-start: 4px;
@@ -40706,7 +40898,7 @@ to {
40706
40898
  So the rule states the absence, and `.cn-flow-detail` in front of it raises
40707
40899
  the specificity above any same-name copy, which makes this independent of
40708
40900
  which bundle a page happens to inject last. */
40709
- .cn-flow-detail .cn-flow-detail__node[data-v-05e8747a] {
40901
+ .cn-flow-detail .cn-flow-detail__node[data-v-0226122e] {
40710
40902
  display: flex;
40711
40903
  flex-direction: column;
40712
40904
  gap: 2px;
@@ -40760,7 +40952,7 @@ to {
40760
40952
  selector stops matching does not warn, it just silently stops painting. The
40761
40953
  class kept appearing in the shipped stylesheet and source maps, so it read
40762
40954
  as present while unknown nodes quietly lost their error border. */
40763
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--unknown) {
40955
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--unknown) {
40764
40956
  border-color: var(--color-error);
40765
40957
  }
40766
40958
 
@@ -40779,33 +40971,33 @@ to {
40779
40971
  sideways, which is a layout change rather than a fix for one. `:has()` is how
40780
40972
  a rule on the body reaches the wrapper — the same mechanism the unknown-step
40781
40973
  border below already uses. */
40782
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--role-trigger) {
40974
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--role-trigger) {
40783
40975
  box-shadow: inset 4px 0 0 0 var(--color-success);
40784
40976
  }
40785
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--role-step) {
40977
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--role-step) {
40786
40978
  box-shadow: inset 4px 0 0 0 var(--color-primary-element);
40787
40979
  }
40788
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--role-end) {
40980
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--role-end) {
40789
40981
  box-shadow: inset 4px 0 0 0 var(--color-error);
40790
40982
  }
40791
- .cn-flow-detail__node-type[data-v-05e8747a] {
40983
+ .cn-flow-detail__node-type[data-v-0226122e] {
40792
40984
  font-weight: 600;
40793
40985
  white-space: nowrap;
40794
40986
  overflow: hidden;
40795
40987
  text-overflow: ellipsis;
40796
40988
  }
40797
- .cn-flow-detail__node-label[data-v-05e8747a],
40798
- .cn-flow-detail__node-warning[data-v-05e8747a] {
40989
+ .cn-flow-detail__node-label[data-v-0226122e],
40990
+ .cn-flow-detail__node-warning[data-v-0226122e] {
40799
40991
  font-size: 0.85em;
40800
40992
  color: var(--color-text-maxcontrast);
40801
40993
  white-space: nowrap;
40802
40994
  overflow: hidden;
40803
40995
  text-overflow: ellipsis;
40804
40996
  }
40805
- .cn-flow-detail__node-warning[data-v-05e8747a] {
40997
+ .cn-flow-detail__node-warning[data-v-0226122e] {
40806
40998
  color: var(--color-error-text);
40807
40999
  }
40808
- .cn-flow-detail__empty[data-v-05e8747a] {
41000
+ .cn-flow-detail__empty[data-v-0226122e] {
40809
41001
  position: absolute;
40810
41002
  inset: 0;
40811
41003
  pointer-events: none;
@@ -40823,31 +41015,31 @@ to {
40823
41015
  rule setting it would silently erase whichever loses the cascade. `outline`
40824
41016
  is a separate channel: run state and role accent paint together. It also
40825
41017
  costs no layout — an outline never moves the node's body. */
40826
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-done) {
41018
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-done) {
40827
41019
  outline: 2px solid var(--color-success);
40828
41020
  outline-offset: 1px;
40829
41021
  }
40830
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-active) {
41022
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-active) {
40831
41023
  outline: 3px solid var(--color-success);
40832
41024
  outline-offset: 1px;
40833
- animation: cn-flow-detail-run-halo-05e8747a 1.1s ease-in-out infinite;
41025
+ animation: cn-flow-detail-run-halo-0226122e 1.1s ease-in-out infinite;
40834
41026
  }
40835
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-failed) {
41027
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-failed) {
40836
41028
  outline: 3px solid var(--color-error);
40837
41029
  outline-offset: 1px;
40838
41030
  }
40839
41031
 
40840
41032
  /* Visibly WAITING: dashed (a different shape from executing and from failed,
40841
41033
  so the states differ by more than hue) and pulsing slowly. */
40842
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-hold) {
41034
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-hold) {
40843
41035
  outline: 3px dashed var(--color-warning);
40844
41036
  outline-offset: 1px;
40845
- animation: cn-flow-detail-run-hold-05e8747a 2.4s ease-in-out infinite;
41037
+ animation: cn-flow-detail-run-hold-0226122e 2.4s ease-in-out infinite;
40846
41038
  }
40847
41039
 
40848
41040
  /* The halo: the outline breathes outwards and fades — a pulse with no layout
40849
41041
  cost, on the wrapper the role accents already reach through `:has()`. */
40850
- @keyframes cn-flow-detail-run-halo-05e8747a {
41042
+ @keyframes cn-flow-detail-run-halo-0226122e {
40851
41043
  0%,
40852
41044
  100% {
40853
41045
  outline-offset: 1px;
@@ -40858,7 +41050,7 @@ to {
40858
41050
  outline-color: transparent;
40859
41051
  }
40860
41052
  }
40861
- @keyframes cn-flow-detail-run-hold-05e8747a {
41053
+ @keyframes cn-flow-detail-run-hold-0226122e {
40862
41054
  0%,
40863
41055
  100% {
40864
41056
  outline-color: var(--color-warning);
@@ -40869,7 +41061,7 @@ to {
40869
41061
  }
40870
41062
 
40871
41063
  /* The state in words — never colour alone (WCAG 1.4.1). */
40872
- .cn-flow-detail__node-run[data-v-05e8747a] {
41064
+ .cn-flow-detail__node-run[data-v-0226122e] {
40873
41065
  font-size: 0.75em;
40874
41066
  font-weight: 600;
40875
41067
  text-transform: uppercase;
@@ -40879,18 +41071,18 @@ to {
40879
41071
  text-overflow: ellipsis;
40880
41072
  color: var(--color-success-text, var(--color-success));
40881
41073
  }
40882
- .cn-flow-detail__node-run--failed[data-v-05e8747a] {
41074
+ .cn-flow-detail__node-run--failed[data-v-0226122e] {
40883
41075
  color: var(--color-error-text, var(--color-error));
40884
41076
  }
40885
- .cn-flow-detail__node-run--hold[data-v-05e8747a] {
41077
+ .cn-flow-detail__node-run--hold[data-v-0226122e] {
40886
41078
  color: var(--color-warning-text, var(--color-warning));
40887
41079
  }
40888
41080
 
40889
41081
  /* ---- Run state on the edges ------------------------------------------- */
40890
41082
 
40891
41083
  /* Lines already walked keep a quiet success stroke for the rest of the run. */
40892
- .cn-flow-detail[data-v-05e8747a] .vue-flow__edge.cn-flow-detail__edge--run-traced .vue-flow__edge-path,
40893
- .cn-flow-detail[data-v-05e8747a] .vue-flow__edge.cn-flow-detail__edge--run-tracing .vue-flow__edge-path {
41084
+ .cn-flow-detail[data-v-0226122e] .vue-flow__edge.cn-flow-detail__edge--run-traced .vue-flow__edge-path,
41085
+ .cn-flow-detail[data-v-0226122e] .vue-flow__edge.cn-flow-detail__edge--run-tracing .vue-flow__edge-path {
40894
41086
  stroke: var(--color-success);
40895
41087
  }
40896
41088
 
@@ -40905,13 +41097,13 @@ to {
40905
41097
  for the hop being animated: denser, thicker, faster, and in the success
40906
41098
  colour. When the hop ends the class leaves and the pulse returns to its
40907
41099
  quiet self. */
40908
- .cn-flow-detail[data-v-05e8747a] .vue-flow__edge.cn-flow-detail__edge--run-tracing .cn-flow-edge__pulse {
41100
+ .cn-flow-detail[data-v-0226122e] .vue-flow__edge.cn-flow-detail__edge--run-tracing .cn-flow-edge__pulse {
40909
41101
  stroke: var(--color-success);
40910
41102
  stroke-width: 4;
40911
41103
  stroke-dasharray: 10 22;
40912
- animation: cn-flow-detail-run-trace-05e8747a 0.4s linear infinite;
41104
+ animation: cn-flow-detail-run-trace-0226122e 0.4s linear infinite;
40913
41105
  }
40914
- @keyframes cn-flow-detail-run-trace-05e8747a {
41106
+ @keyframes cn-flow-detail-run-trace-0226122e {
40915
41107
  from {
40916
41108
  stroke-dashoffset: 32;
40917
41109
  }
@@ -40926,8 +41118,8 @@ to {
40926
41118
  CnFlowEdge already hides its pulse path entirely under this query, which
40927
41119
  takes the trace's travel with it. */
40928
41120
  @media (prefers-reduced-motion: reduce) {
40929
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-active),
40930
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-hold) {
41121
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-active),
41122
+ .cn-flow-detail[data-v-0226122e] .cn-flow-node:has(.cn-flow-detail__node--run-hold) {
40931
41123
  animation: none;
40932
41124
  }
40933
41125
  }
@@ -49065,7 +49257,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49065
49257
 
49066
49258
 
49067
49259
  /* The board page's padding, so the title stands where every board page puts it (DqFlow). */
49068
- .cn-flow-board[data-v-d3a5e726] {
49260
+ .cn-flow-board[data-v-4510ff10] {
49069
49261
  display: flex;
49070
49262
  flex-direction: column;
49071
49263
  gap: 12px;
@@ -49073,53 +49265,55 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49073
49265
  min-height: 100%;
49074
49266
  box-sizing: border-box;
49075
49267
  }
49076
- .cn-flow-board__header[data-v-d3a5e726] {
49268
+ .cn-flow-board__header[data-v-4510ff10] {
49077
49269
  display: flex;
49078
49270
  flex-wrap: wrap;
49079
49271
  align-items: center;
49080
49272
  justify-content: space-between;
49081
49273
  gap: 12px;
49082
49274
  }
49083
- .cn-flow-board__heading[data-v-d3a5e726] {
49275
+ .cn-flow-board__heading[data-v-4510ff10] {
49084
49276
  display: flex;
49085
49277
  align-items: center;
49086
49278
  gap: 10px;
49087
49279
  min-width: 0;
49088
49280
  }
49089
- .cn-flow-board__title[data-v-d3a5e726] {
49281
+ .cn-flow-board__title[data-v-4510ff10] {
49090
49282
  margin: 0;
49091
49283
  font-size: 24px;
49092
49284
  font-weight: 600;
49093
49285
  }
49094
- .cn-flow-board__actions[data-v-d3a5e726] {
49286
+ .cn-flow-board__actions[data-v-4510ff10] {
49095
49287
  display: flex;
49096
49288
  flex-wrap: wrap;
49097
49289
  align-items: center;
49098
49290
  gap: 8px;
49099
49291
  }
49100
- .cn-flow-board__test-intro[data-v-d3a5e726] {
49292
+ .cn-flow-board__test-intro[data-v-4510ff10] {
49101
49293
  margin: 0 0 12px;
49102
49294
  color: var(--color-text-maxcontrast);
49103
49295
  }
49104
- .cn-flow-board__path[data-v-d3a5e726] {
49296
+ .cn-flow-board__path[data-v-4510ff10] {
49105
49297
  margin: 0;
49106
49298
  color: var(--color-text-maxcontrast);
49107
49299
  }
49108
- .cn-flow-board__crumb[data-v-d3a5e726] {
49300
+ .cn-flow-board__crumb[data-v-4510ff10] {
49109
49301
  color: var(--color-main-text);
49110
49302
  text-decoration: underline;
49111
49303
  }
49112
- .cn-flow-board__body[data-v-d3a5e726] {
49304
+ .cn-flow-board__body[data-v-4510ff10] {
49113
49305
  display: grid;
49114
49306
  grid-template-columns: minmax(0, 1fr) 340px;
49115
49307
  gap: 16px;
49116
49308
  flex: 1 1 auto;
49117
49309
  min-height: 520px;
49118
49310
  }
49119
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-d3a5e726] {
49120
- grid-template-columns: 240px minmax(0, 1fr) 340px;
49311
+
49312
+ /* Palette, canvas and inspector at 220 / rest / 280 (DqFlow). */
49313
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-4510ff10] {
49314
+ grid-template-columns: 220px minmax(0, 1fr) 280px;
49121
49315
  }
49122
- .cn-flow-board__card[data-v-d3a5e726] {
49316
+ .cn-flow-board__card[data-v-4510ff10] {
49123
49317
  display: flex;
49124
49318
  flex-direction: column;
49125
49319
  gap: 12px;
@@ -49129,34 +49323,40 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49129
49323
  border-radius: 12px;
49130
49324
  background: var(--color-main-background);
49131
49325
  }
49132
- .cn-flow-board__canvas[data-v-d3a5e726] {
49326
+
49327
+ /* The canvas is the white card with the dot grid; the palette beside it sits
49328
+ on the page ground (DqFlow). */
49329
+ .cn-flow-board__canvas[data-v-4510ff10] {
49133
49330
  padding: 0;
49134
49331
  overflow: hidden;
49135
- background-color: var(--color-background-hover);
49136
- background-image: radial-gradient(var(--color-border-dark) 1px, transparent 1px);
49332
+ background-color: var(--color-main-background);
49333
+ background-image: radial-gradient(var(--color-border) 1px, transparent 1px);
49137
49334
  background-size: 16px 16px;
49138
49335
  }
49139
- .cn-flow-board__canvas[data-v-d3a5e726] > :first-child {
49336
+ .cn-flow-board__palette[data-v-4510ff10] {
49337
+ gap: 14px;
49338
+ padding: 14px;
49339
+ background: transparent;
49340
+ }
49341
+ .cn-flow-board__canvas[data-v-4510ff10] > :first-child {
49140
49342
  flex: 1 1 auto;
49141
49343
  min-height: 0;
49142
49344
  }
49143
- .cn-flow-board__card-title[data-v-d3a5e726] {
49345
+ .cn-flow-board__card-title[data-v-4510ff10] {
49144
49346
  margin: 0;
49145
49347
  font-size: 16px;
49146
49348
  font-weight: 600;
49147
49349
  }
49148
- .cn-flow-board__subtitle[data-v-d3a5e726] {
49350
+ .cn-flow-board__subtitle[data-v-4510ff10] {
49149
49351
  margin: 4px 0 0;
49150
49352
  font-size: 14px;
49151
49353
  font-weight: 600;
49152
49354
  }
49153
- .cn-flow-board__eyebrow[data-v-d3a5e726] {
49154
- margin: 0;
49155
- color: var(--color-text-maxcontrast);
49156
- font-size: 13px;
49355
+ .cn-flow-board__step-type[data-v-4510ff10] {
49356
+ align-self: flex-start;
49157
49357
  }
49158
- .cn-flow-board__validity[data-v-d3a5e726],
49159
- .cn-flow-board__legend[data-v-d3a5e726] {
49358
+ .cn-flow-board__validity[data-v-4510ff10],
49359
+ .cn-flow-board__legend[data-v-4510ff10] {
49160
49360
  display: flex;
49161
49361
  flex-wrap: wrap;
49162
49362
  gap: 8px;
@@ -49165,30 +49365,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49165
49365
  border-top: 1px solid var(--color-border);
49166
49366
  background: var(--color-main-background);
49167
49367
  }
49168
- .cn-flow-board__validity--success[data-v-d3a5e726] {
49368
+ .cn-flow-board__validity--success[data-v-4510ff10] {
49169
49369
  color: var(--color-success-text);
49170
49370
  }
49171
- .cn-flow-board__validity--warning[data-v-d3a5e726] {
49371
+ .cn-flow-board__validity--warning[data-v-4510ff10] {
49172
49372
  color: var(--color-warning-text);
49173
49373
  }
49174
- .cn-flow-board__validity--error[data-v-d3a5e726] {
49374
+ .cn-flow-board__validity--error[data-v-4510ff10] {
49175
49375
  color: var(--color-error-text);
49176
49376
  }
49177
- .cn-flow-board__palette-group[data-v-d3a5e726] {
49377
+ .cn-flow-board__palette-group[data-v-4510ff10] {
49178
49378
  display: flex;
49179
49379
  flex-direction: column;
49180
- gap: 4px;
49380
+ gap: 6px;
49181
49381
  }
49182
- .cn-flow-board__palette-app[data-v-d3a5e726] {
49382
+
49383
+ /* The providing app as a small caps label, no title row above the groups. */
49384
+ .cn-flow-board__palette-app[data-v-4510ff10] {
49183
49385
  margin: 0;
49184
49386
  color: var(--color-text-maxcontrast);
49185
- font-size: 13px;
49387
+ font-size: 12px;
49186
49388
  font-weight: 600;
49389
+ letter-spacing: 0.06em;
49390
+ text-transform: uppercase;
49187
49391
  }
49188
- .cn-flow-board__palette-list[data-v-d3a5e726] {
49392
+ .cn-flow-board__palette-list[data-v-4510ff10] {
49189
49393
  display: flex;
49190
49394
  flex-direction: column;
49191
- gap: 4px;
49395
+ gap: 6px;
49192
49396
  margin: 0;
49193
49397
  padding: 0;
49194
49398
  list-style: none;
@@ -49196,33 +49400,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49196
49400
 
49197
49401
  /* A step is a plain 400 label (DqFlow "Status zetten"); the nldesign theme
49198
49402
  sets every button's weight with `!important` through its token. */
49199
- .cn-flow-board__palette-step[data-v-d3a5e726] {
49403
+ .cn-flow-board__palette-step[data-v-4510ff10] {
49200
49404
  --nldesign-component-button-font-weight: 400;
49201
49405
  width: 100%;
49202
49406
  min-height: 34px;
49203
- padding: 6px 10px;
49407
+ padding: 8px 10px;
49204
49408
  border: 1px solid var(--color-border);
49205
49409
  border-radius: 8px;
49206
49410
  background: var(--color-main-background);
49207
49411
  color: var(--color-main-text);
49412
+ font-size: 14px;
49208
49413
  font-weight: 400;
49209
49414
  text-align: start;
49210
49415
  cursor: pointer;
49211
49416
  }
49212
- .cn-flow-board__palette-step[data-v-d3a5e726]:hover {
49417
+ .cn-flow-board__palette-step[data-v-4510ff10]:hover {
49213
49418
  background: var(--color-background-hover);
49214
49419
  }
49215
- .cn-flow-board__palette-note[data-v-d3a5e726] {
49420
+ .cn-flow-board__palette-note[data-v-4510ff10] {
49216
49421
  margin: 0;
49217
49422
  color: var(--color-text-maxcontrast);
49218
49423
  font-size: 13px;
49219
49424
  }
49220
- .cn-flow-board__tabs[data-v-d3a5e726] {
49425
+ .cn-flow-board__tabs[data-v-4510ff10] {
49221
49426
  display: flex;
49222
49427
  gap: 4px;
49223
49428
  border-bottom: 1px solid var(--color-border);
49224
49429
  }
49225
- .cn-flow-board__tab[data-v-d3a5e726] {
49430
+ .cn-flow-board__tab[data-v-4510ff10] {
49226
49431
  display: inline-flex;
49227
49432
  align-items: center;
49228
49433
  gap: 6px;
@@ -49234,12 +49439,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49234
49439
  color: var(--color-main-text);
49235
49440
  cursor: pointer;
49236
49441
  }
49237
- .cn-flow-board__tab--active[data-v-d3a5e726] {
49442
+ .cn-flow-board__tab--active[data-v-4510ff10] {
49238
49443
  border-color: var(--color-border);
49239
49444
  border-bottom-color: var(--color-main-background);
49240
49445
  font-weight: 600;
49241
49446
  }
49242
- .cn-flow-board__tab-count[data-v-d3a5e726] {
49447
+ .cn-flow-board__tab-count[data-v-4510ff10] {
49243
49448
  min-width: 18px;
49244
49449
  padding: 0 5px;
49245
49450
  border-radius: 9px;
@@ -49248,44 +49453,44 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49248
49453
  line-height: 18px;
49249
49454
  text-align: center;
49250
49455
  }
49251
- .cn-flow-board__settings[data-v-d3a5e726] {
49456
+ .cn-flow-board__settings[data-v-4510ff10] {
49252
49457
  display: flex;
49253
49458
  flex-direction: column;
49254
49459
  gap: 10px;
49255
49460
  margin: 0;
49256
49461
  }
49257
- .cn-flow-board__setting dt[data-v-d3a5e726] {
49462
+ .cn-flow-board__setting dt[data-v-4510ff10] {
49258
49463
  font-size: 13px;
49259
49464
  color: var(--color-text-maxcontrast);
49260
49465
  }
49261
- .cn-flow-board__setting dd[data-v-d3a5e726] {
49466
+ .cn-flow-board__setting dd[data-v-4510ff10] {
49262
49467
  margin: 2px 0 0;
49263
49468
  font-weight: 600;
49264
49469
  overflow-wrap: anywhere;
49265
49470
  }
49266
- .cn-flow-board__inspector-empty[data-v-d3a5e726] {
49471
+ .cn-flow-board__inspector-empty[data-v-4510ff10] {
49267
49472
  display: flex;
49268
49473
  flex-direction: column;
49269
49474
  align-items: flex-start;
49270
49475
  gap: 12px;
49271
49476
  color: var(--color-text-maxcontrast);
49272
49477
  }
49273
- .cn-flow-board__inspector-empty p[data-v-d3a5e726] {
49478
+ .cn-flow-board__inspector-empty p[data-v-4510ff10] {
49274
49479
  margin: 0;
49275
49480
  }
49276
- .cn-flow-board__step-actions[data-v-d3a5e726],
49277
- .cn-flow-board__step-footer[data-v-d3a5e726] {
49481
+ .cn-flow-board__step-actions[data-v-4510ff10],
49482
+ .cn-flow-board__step-footer[data-v-4510ff10] {
49278
49483
  display: flex;
49279
49484
  flex-wrap: wrap;
49280
49485
  gap: 8px;
49281
49486
  }
49282
- .cn-flow-board__step-footer[data-v-d3a5e726] {
49487
+ .cn-flow-board__step-footer[data-v-4510ff10] {
49283
49488
  justify-content: space-between;
49284
49489
  margin-top: auto;
49285
49490
  }
49286
49491
  @media (max-width: 1024px) {
49287
- .cn-flow-board__body[data-v-d3a5e726],
49288
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-d3a5e726] {
49492
+ .cn-flow-board__body[data-v-4510ff10],
49493
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-4510ff10] {
49289
49494
  grid-template-columns: minmax(0, 1fr);
49290
49495
  }
49291
49496
  }