@conduction/nextcloud-vue 2.121.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 (102) 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/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
  48. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js +1 -0
  49. package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
  50. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
  51. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +2 -0
  52. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  53. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +2 -1
  54. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  55. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +1 -1
  56. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +31 -1
  57. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -1
  58. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +14 -4
  59. package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -1
  60. package/dist/esm/composables/flowGraphLayout.js +36 -7
  61. package/dist/esm/composables/flowGraphLayout.js.map +1 -1
  62. package/dist/esm/composables/useFlowStore.js +7 -3
  63. package/dist/esm/composables/useFlowStore.js.map +1 -1
  64. package/dist/esm/l10n/en.json.js +3 -1
  65. package/dist/esm/l10n/en.json.js.map +1 -1
  66. package/dist/esm/l10n/nl.json.js +3 -1
  67. package/dist/esm/l10n/nl.json.js.map +1 -1
  68. package/dist/esm/library-style.js +1 -1
  69. package/dist/esm/nextcloud-vue.css +670 -316
  70. package/dist/esm/utils/manifestTranslate.js +12 -3
  71. package/dist/esm/utils/manifestTranslate.js.map +1 -1
  72. package/dist/esm/utils/routeFilters.js +3 -3
  73. package/dist/esm/utils/routeFilters.js.map +1 -1
  74. package/dist/nextcloud-vue.cjs.js +1218 -847
  75. package/dist/nextcloud-vue.cjs.js.map +2 -2
  76. package/dist/nextcloud-vue.css +670 -316
  77. package/l10n/en.json +3 -1
  78. package/l10n/nl.json +3 -1
  79. package/package.json +1 -1
  80. package/src/components/CnAppRoot/CnAppRoot.vue +1 -0
  81. package/src/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue +50 -5
  82. package/src/components/CnChartWidget/CnChartWidget.vue +10 -8
  83. package/src/components/CnDetailPage/CnDetailPage.md +10 -0
  84. package/src/components/CnDetailPage/CnDetailPage.vue +42 -1
  85. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +39 -0
  86. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +95 -37
  87. package/src/components/CnFlowDetail/CnFlowDetail.vue +21 -0
  88. package/src/components/CnFlowsPage/CnFlowBoard.vue +35 -18
  89. package/src/components/CnFlowsPage/CnFlowEditorPage.vue +11 -0
  90. package/src/components/CnGraphCanvas/CnGraphCanvas.vue +34 -2
  91. package/src/components/CnIndexPage/CnIndexPage.vue +34 -2
  92. package/src/components/CnIndexSidebar/CnIndexSidebar.vue +1 -0
  93. package/src/components/CnObjectSidebar/CnFilesTab.vue +3 -0
  94. package/src/components/CnSectionsWidget/CnSectionsWidget.vue +53 -2
  95. package/src/composables/flowGraphLayout.js +35 -6
  96. package/src/composables/useFlowStore.js +7 -3
  97. package/src/css/detail-page.css +6 -0
  98. package/src/css/look-board-detail.css +53 -6
  99. package/src/css/look-board-index.css +151 -12
  100. package/src/css/look-board.css +116 -4
  101. package/src/utils/manifestTranslate.js +12 -3
  102. 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
@@ -295,9 +314,15 @@
295
314
  look sets 600 on each button, so every NcButton on a board page draws the
296
315
  board's weight without a rule per surface. Breadcrumb buttons keep the
297
316
  crumb weight.
298
- @spec openspec/changes/board-button-weight/specs/board-button-weight/spec.md#requirement-a-board-button-draws-at-600 */
317
+ The boards also draw a button's text at 14px, against Nextcloud's 15px.
318
+ NcButton reads its size from --default-font-size, so the look sets that
319
+ variable on the button: a surface that sets its own `font-size` (the next
320
+ step card's 15px) keeps it.
321
+ @spec openspec/changes/board-button-weight/specs/board-button-weight/spec.md#requirement-a-board-button-draws-at-600
322
+ @spec openspec/changes/board-control-text/specs/board-control-text/spec.md#requirement-a-board-button-draws-its-text-at-14px */
299
323
  .cn-look-board .button-vue:not(.cn-look-nextcloud *):not(.vue-crumb *) {
300
324
  --font-weight-element: 600;
325
+ --default-font-size: 14px;
301
326
  }
302
327
 
303
328
  /* ---- A button with an icon and a label --------------------------------- */
@@ -460,6 +485,26 @@
460
485
  background: var(--color-background-hover);
461
486
  }
462
487
 
488
+ /* ---- A secondary button --------------------------------------------------- */
489
+ /* The boards draw every secondary button neutral: the main background, a 1px
490
+ control border, the main text, the hover ground on hover (DqFlow "Testen
491
+ met een zaak", DqFunctionaliteiten "Documentatie", DqTaak "Afronden").
492
+ NcButton draws its secondary from the primary-light variables, on a 2px
493
+ bottom edge; the look points those variables at the neutral colours on the
494
+ button itself. The selector weighs (0,3,0): it outranks NcButton's border
495
+ (0,2,0), and a surface rule of the same weight later in the cascade (a
496
+ dialog's cancel) still decides for its surface.
497
+ @spec openspec/changes/board-secondary-neutral/specs/board-secondary-neutral/spec.md#requirement-a-board-secondary-button-is-neutral */
498
+ .cn-look-board .button-vue.button-vue--secondary:where(:not(.cn-look-nextcloud *):not(.vue-crumb *)),
499
+ .cn-look-board .button-vue.button-vue--vue-secondary:where(:not(.cn-look-nextcloud *):not(.vue-crumb *)) {
500
+ --color-primary-element-light: var(--color-main-background);
501
+ --color-primary-element-light-hover: var(--color-background-hover);
502
+ --color-primary-element-light-text: var(--color-main-text);
503
+ --nldesign-color-on-surface: var(--color-main-text);
504
+ border: 1px solid var(--cn-board-control-border);
505
+ color: var(--color-main-text);
506
+ }
507
+
463
508
  /* ---- Header action buttons (CnActionButtons) ----------------------------- */
464
509
  /* The board draws a page's secondary actions as neutral 40px buttons: the
465
510
  main background, a grey border, the main text at 600 (DqZaak "Bericht",
@@ -1678,6 +1723,11 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1678
1723
  padding: 0 var(--cn-board-dashboard-card-inset) 10px;
1679
1724
  }
1680
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
+
1681
1731
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-stacked-bar,
1682
1732
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-week-strip {
1683
1733
  box-sizing: border-box;
@@ -1723,6 +1773,29 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1723
1773
  padding-inline-end: var(--cn-board-dashboard-card-inset);
1724
1774
  }
1725
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
+
1726
1799
  /* ---- Week strip (DqMijnWerk "Termijnen deze week") ---------------------- */
1727
1800
  /* The days wrap inside the card instead of scrolling sideways: a row holds
1728
1801
  as many days of at least 120px as the card fits, and the rest go to the
@@ -1740,6 +1813,45 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
1740
1813
 
1741
1814
  .cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__head {
1742
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
+ }
1743
1855
  }
1744
1856
 
1745
1857
  /* ---- A card of boxed stat tiles (DcRapportages "Vergaderingen en efficiëntie") -- */
@@ -3143,6 +3255,29 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
3143
3255
  font-weight: 600;
3144
3256
  }
3145
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
+
3146
3281
  .cn-look-board .cn-actions-bar__filter-badge {
3147
3282
  display: inline-flex;
3148
3283
  align-items: center;
@@ -3456,16 +3591,36 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
3456
3591
  width: 18%;
3457
3592
  }
3458
3593
 
3459
- /* The board's data cells sit 12px apart (PqTickets), the first one 18px from
3460
- the selection column; the selection and menu columns keep 16px. */
3461
- .cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon),
3462
- .cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon) {
3594
+ /* An index table pads every cell 16px at the sides (DqZaken). The plain-title
3595
+ table (`rowTitle: "plain"`: PqTickets, OcPublicaties) sets its data cells
3596
+ 12px apart and its title column 18px from the selection column; the
3597
+ selection and menu columns keep 16px. The title column is left out of the
3598
+ 12px rule, which would otherwise outrank the 18px one.
3599
+ @spec openspec/changes/board-table-density/specs/board-table-density/spec.md#requirement-a-board-table-pads-its-cells-as-the-boards-draw-them */
3600
+ .cn-look-board .cn-index-page__main--table .cn-table-container--board.cn-table-container--title-plain .cn-data-table th:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon):not(.cn-table-head--title),
3601
+ .cn-look-board .cn-index-page__main--table .cn-table-container--board.cn-table-container--title-plain .cn-data-table td:not(.cn-table-col--checkbox):not(.cn-table-col--actions):not(.cn-table-col--icon):not(.cn-table-col--title) {
3463
3602
  padding-inline: 12px;
3464
3603
  }
3465
3604
 
3466
- .cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table th.cn-table-head--title,
3467
- .cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td.cn-table-col--title {
3468
- padding-inline-start: 18px;
3605
+ .cn-look-board .cn-index-page__main--table .cn-table-container--board.cn-table-container--title-plain .cn-data-table th.cn-table-head--title,
3606
+ .cn-look-board .cn-index-page__main--table .cn-table-container--board.cn-table-container--title-plain .cn-data-table td.cn-table-col--title {
3607
+ padding-inline: 18px 12px;
3608
+ }
3609
+
3610
+ /* A table that is not an index page's main list sits in a card and is the
3611
+ compact one: 10px 12px in the header, 11px 12px in the cells
3612
+ (DqInstellingen, DqVthInstellingen, DqZaaktype, DqTermijnen). The selection
3613
+ column keeps its 16px, so it stays 60px wide. */
3614
+ .cn-look-board .cn-table-container--board:not(.cn-index-page__main--table > *) .cn-data-table th {
3615
+ padding: 10px 12px;
3616
+ }
3617
+
3618
+ .cn-look-board .cn-table-container--board:not(.cn-index-page__main--table > *) .cn-data-table td {
3619
+ padding: 11px 12px;
3620
+ }
3621
+
3622
+ .cn-look-board .cn-table-container--board:not(.cn-index-page__main--table > *) .cn-data-table .cn-table-col--checkbox {
3623
+ padding-inline: 16px;
3469
3624
  }
3470
3625
 
3471
3626
  .cn-look-board .cn-index-page__main--table .cn-table-container--board .cn-data-table td > .cn-cell-renderer {
@@ -3695,12 +3850,15 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
3695
3850
  }
3696
3851
 
3697
3852
  /* A page link is a <button>: Nextcloud's `button` rule sets it bold, the
3698
- boards set the links at the regular weight and only the current page at 600. */
3853
+ boards set the links at the regular weight and only the current page at 600.
3854
+ The boards size a link's content box at 34px, so a bordered link is 36px
3855
+ and the borderless current page 34px (DqZaken "2", "Volgende", "1").
3856
+ @spec openspec/changes/board-pagination-links/specs/board-pagination-links/spec.md#requirement-a-board-page-link-is-sized-as-the-boards-draw-it */
3699
3857
  .cn-look-board .cn-pagination--board .cn-pagination__board-link {
3700
3858
  box-sizing: border-box;
3701
- min-width: 34px;
3702
- height: 34px;
3703
- min-height: 34px;
3859
+ min-width: 36px;
3860
+ height: 36px;
3861
+ min-height: 36px;
3704
3862
  margin: 0;
3705
3863
  padding: 0 8px;
3706
3864
  border: 1px solid var(--color-border);
@@ -3725,7 +3883,10 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
3725
3883
  }
3726
3884
 
3727
3885
  .cn-look-board .cn-pagination--board .cn-pagination__board-link--current {
3728
- border-color: var(--color-primary-element);
3886
+ min-width: 34px;
3887
+ height: 34px;
3888
+ min-height: 34px;
3889
+ border: 0;
3729
3890
  background: var(--color-primary-element);
3730
3891
  color: var(--color-primary-element-text);
3731
3892
  font-weight: 600;
@@ -4093,6 +4254,26 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
4093
4254
  display: none;
4094
4255
  }
4095
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
+
4096
4277
  /* The folder pane as a card (DqAfdelingen): 280px, a hairline border, 12px
4097
4278
  corners, with each folder's count in a grey pill. */
4098
4279
  .cn-look-board .cn-index-page__folder-pane {
@@ -4228,6 +4409,76 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
4228
4409
  border-bottom: none;
4229
4410
  padding-block: 2px;
4230
4411
  }
4412
+
4413
+ /* ---- The index side panel (CnIndexSidebar, board IndexZijpaneel) -------- */
4414
+ /* The panel's title is 20px bold without the schema icon, and its tabs are
4415
+ one row of 40px labels, 14px weight 600 in the soft ink, the open one in
4416
+ the deep primary ink and underlined 2px in the primary colour on the
4417
+ strip's rule (DqFilterBeheren). NcAppSidebar stacks the icon over the
4418
+ label in a 54px tile with a highlight bar; the board does neither. The
4419
+ header rule repeats NcAppSidebar's own chain to outrank it.
4420
+ @spec openspec/changes/board-index-sidebar-tabs/specs/board-index-sidebar-tabs/spec.md#requirement-the-board-index-side-panel-draws-the-boards-header-and-tab-row */
4421
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container h2.app-sidebar-header__mainname {
4422
+ font-size: 20px;
4423
+ font-weight: 700;
4424
+ line-height: 1.2;
4425
+ min-height: 0;
4426
+ }
4427
+
4428
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-header__figure:has(> .cn-index-sidebar__header-icon) {
4429
+ display: none;
4430
+ }
4431
+
4432
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__nav[role="tablist"] {
4433
+ justify-content: flex-start;
4434
+ gap: 4px;
4435
+ margin: 0;
4436
+ padding: 14px 12px 0;
4437
+ border-bottom: 1px solid var(--color-border);
4438
+ }
4439
+
4440
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__highlight {
4441
+ display: none;
4442
+ }
4443
+
4444
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__tab[role="tab"] {
4445
+ flex: 0 0 auto;
4446
+ flex-direction: row;
4447
+ align-items: center;
4448
+ gap: 6px;
4449
+ box-sizing: border-box;
4450
+ height: 40px;
4451
+ min-height: 40px;
4452
+ margin: 0 0 -1px;
4453
+ padding: 0 10px;
4454
+ border: 0;
4455
+ border-bottom: 2px solid transparent;
4456
+ border-radius: 0;
4457
+ background: transparent;
4458
+ color: var(--cn-board-text-soft);
4459
+ font-size: 14px;
4460
+ font-weight: 600;
4461
+ }
4462
+
4463
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__tab[role="tab"] * {
4464
+ font-weight: inherit;
4465
+ }
4466
+
4467
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__tab[role="tab"]::after {
4468
+ content: none;
4469
+ }
4470
+
4471
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__tab[role="tab"]:hover {
4472
+ background: transparent;
4473
+ border-bottom-color: var(--color-border-dark);
4474
+ color: var(--color-main-text);
4475
+ }
4476
+
4477
+ .cn-look-board .cn-index-sidebar-panel .app-sidebar-tabs__tab[role="tab"][aria-selected="true"] {
4478
+ background: transparent;
4479
+ border-bottom-color: var(--color-primary-element);
4480
+ color: var(--color-primary-element-light-text);
4481
+ }
4231
4482
  /* ========================================
4232
4483
  @conduction/nextcloud-vue — Table Styles
4233
4484
  ======================================== */
@@ -8436,6 +8687,12 @@ a.cn-kpi-card--board * {
8436
8687
  gap: calc(5 * var(--default-grid-baseline));
8437
8688
  }
8438
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
+
8439
8696
  /* The record as a place (case-page-and-list-as-a-place) */
8440
8697
 
8441
8698
  /* A skip link that reaches the page's declared primary action. Off screen
@@ -9161,9 +9418,10 @@ li[data-cn-admin-tag] > .action-link::after {
9161
9418
  display: flex;
9162
9419
  }
9163
9420
 
9164
- /* The notice at the top of the side column: radius 12, padding 14px 16px. */
9165
- .cn-look-board .cn-detail-page__side-item--notice .cn-widget-wrapper,
9166
- .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. */
9167
9425
  .cn-look-board .cn-detail-page__side-item--notice > * {
9168
9426
  background: var(--cn-board-notice-bg);
9169
9427
  border: none;
@@ -9172,6 +9430,23 @@ li[data-cn-admin-tag] > .action-link::after {
9172
9430
  padding: 14px 16px;
9173
9431
  }
9174
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
+
9175
9450
  /* The History card ends with the record's identifier. */
9176
9451
  .cn-look-board .cn-detail-page__side-item--with-identifier .cn-widget-wrapper {
9177
9452
  border-bottom: none;
@@ -9201,14 +9476,16 @@ li[data-cn-admin-tag] > .action-link::after {
9201
9476
  }
9202
9477
 
9203
9478
  /* The kicker keeps its tone under a theme that colours every h3 with
9204
- `!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. */
9205
9482
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__title.cn-next-step-card__title {
9206
9483
  color: var(--color-primary-element-light-text) !important;
9207
9484
  font-size: 13px !important;
9208
9485
  font-weight: 700;
9209
- letter-spacing: 0.06em;
9486
+ letter-spacing: 0;
9210
9487
  line-height: normal;
9211
- text-transform: uppercase;
9488
+ text-transform: none;
9212
9489
  }
9213
9490
 
9214
9491
  .cn-look-board .cn-next-step-card--board .cn-next-step-card__list {
@@ -9483,6 +9760,33 @@ li[data-cn-admin-tag] > .action-link::after {
9483
9760
  .cn-look-board .cn-tasks-widget .cn-tasks-widget__cell-actions .button-vue .button-vue__text.button-vue__text {
9484
9761
  padding-inline: 0;
9485
9762
  }
9763
+
9764
+ /* ---- Grouped cards (CnGroupedCardsWidget, DqZaaktype "Fasen en taken") --- */
9765
+ /* Groups 14px apart, each padded 14px with a 10px radius and a bold title; a
9766
+ card in a group is padded 9px 12px with the 8px control radius, its title
9767
+ 15px. The doubled class outranks the widget's scoped rules.
9768
+ @spec openspec/changes/board-grouped-cards/specs/board-grouped-cards/spec.md#requirement-board-grouped-cards-take-the-boards-group-and-card-shape */
9769
+ .cn-look-board .cn-grouped-cards__grid.cn-grouped-cards__grid {
9770
+ gap: 14px;
9771
+ }
9772
+
9773
+ .cn-look-board .cn-grouped-cards__group.cn-grouped-cards__group {
9774
+ padding: 14px;
9775
+ border-radius: 10px;
9776
+ }
9777
+
9778
+ .cn-look-board .cn-grouped-cards__group-title.cn-grouped-cards__group-title {
9779
+ font-weight: 700;
9780
+ }
9781
+
9782
+ .cn-look-board .cn-grouped-cards__item.cn-grouped-cards__item {
9783
+ padding: 9px 12px;
9784
+ border-radius: var(--cn-board-control-radius, 8px);
9785
+ }
9786
+
9787
+ .cn-look-board .cn-grouped-cards__item-title.cn-grouped-cards__item-title {
9788
+ font-size: 15px;
9789
+ }
9486
9790
  /*
9487
9791
  * The reports page under the board look (screens-reports-page-board-look,
9488
9792
  * board DcRapportages): a 28px title over a muted lead, one section per
@@ -12249,7 +12553,7 @@ li[data-cn-admin-tag] > .action-link::after {
12249
12553
  }
12250
12554
 
12251
12555
 
12252
- .cn-chart-widget[data-v-5335921f] {
12556
+ .cn-chart-widget[data-v-7636430b] {
12253
12557
  width: 100%;
12254
12558
  /* A chart FITS its container — it is never a scroll region. apexcharts
12255
12559
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -12271,13 +12575,13 @@ li[data-cn-admin-tag] > .action-link::after {
12271
12575
  takes what is left, so the chart is sized by the box rather than sizing it.
12272
12576
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
12273
12577
  the thing that produces the overflow it was meant to prevent. */
12274
- .cn-chart-widget--fit[data-v-5335921f] {
12578
+ .cn-chart-widget--fit[data-v-7636430b] {
12275
12579
  height: 100%;
12276
12580
  min-height: 0;
12277
12581
  display: flex;
12278
12582
  flex-direction: column;
12279
12583
  }
12280
- .cn-chart-widget__canvas[data-v-5335921f] {
12584
+ .cn-chart-widget__canvas[data-v-7636430b] {
12281
12585
  min-width: 0;
12282
12586
  max-width: 100%;
12283
12587
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -12290,14 +12594,14 @@ li[data-cn-admin-tag] > .action-link::after {
12290
12594
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
12291
12595
  minimum, which beats the container when the container is narrower. Cap the
12292
12596
  painted box so the inline width cannot push past the widget's border. */
12293
- .cn-chart-widget[data-v-5335921f] .apexcharts-canvas,
12294
- .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 {
12295
12599
  max-width: 100%;
12296
12600
  }
12297
12601
 
12298
12602
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
12299
12603
  descender space under the chart. */
12300
- .cn-chart-widget[data-v-5335921f] .apexcharts-canvas svg {
12604
+ .cn-chart-widget[data-v-7636430b] .apexcharts-canvas svg {
12301
12605
  display: block;
12302
12606
  }
12303
12607
 
@@ -12305,24 +12609,24 @@ li[data-cn-admin-tag] > .action-link::after {
12305
12609
  would grow to its content, i.e. to the chart, and the percentage height would
12306
12610
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
12307
12611
  sub-pixel rounding difference from reintroducing a scrollbar. */
12308
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-5335921f] {
12612
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-7636430b] {
12309
12613
  flex: 1 1 0;
12310
12614
  min-height: 0;
12311
12615
  overflow: hidden;
12312
12616
  }
12313
- .cn-chart-widget__fallback[data-v-5335921f] {
12617
+ .cn-chart-widget__fallback[data-v-7636430b] {
12314
12618
  display: flex;
12315
12619
  align-items: center;
12316
12620
  justify-content: center;
12317
12621
  min-height: 150px;
12318
12622
  color: var(--color-text-maxcontrast);
12319
12623
  }
12320
- .cn-chart-widget__html[data-v-5335921f] {
12624
+ .cn-chart-widget__html[data-v-7636430b] {
12321
12625
  display: flex;
12322
12626
  flex-direction: column;
12323
12627
  gap: 12px;
12324
12628
  }
12325
- .cn-chart-widget__bar-list[data-v-5335921f] {
12629
+ .cn-chart-widget__bar-list[data-v-7636430b] {
12326
12630
  display: flex;
12327
12631
  flex-direction: column;
12328
12632
  gap: 10px;
@@ -12330,7 +12634,7 @@ li[data-cn-admin-tag] > .action-link::after {
12330
12634
  margin: 0;
12331
12635
  padding: 0;
12332
12636
  }
12333
- .cn-chart-widget__bar-line[data-v-5335921f] {
12637
+ .cn-chart-widget__bar-line[data-v-7636430b] {
12334
12638
  align-items: center;
12335
12639
  background: none;
12336
12640
  border: 0;
@@ -12345,109 +12649,111 @@ li[data-cn-admin-tag] > .action-link::after {
12345
12649
  text-align: start;
12346
12650
  width: 100%;
12347
12651
  }
12348
- .cn-chart-widget__bar-line--drill[data-v-5335921f] {
12652
+ .cn-chart-widget__bar-line--drill[data-v-7636430b] {
12349
12653
  border-radius: var(--border-radius-small, 4px);
12350
12654
  cursor: pointer;
12351
12655
  }
12352
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-5335921f],
12353
- .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] {
12354
12658
  text-decoration: underline;
12355
12659
  }
12356
- .cn-chart-widget__bar-label[data-v-5335921f] {
12660
+ .cn-chart-widget__bar-label[data-v-7636430b] {
12357
12661
  overflow: hidden;
12358
12662
  text-overflow: ellipsis;
12359
12663
  white-space: nowrap;
12360
12664
  }
12361
- .cn-chart-widget__bar-track[data-v-5335921f] {
12665
+ .cn-chart-widget__bar-track[data-v-7636430b] {
12362
12666
  background: var(--color-background-dark);
12363
12667
  border-radius: 4px;
12364
12668
  display: block;
12365
12669
  height: 14px;
12366
12670
  overflow: hidden;
12367
12671
  }
12368
- .cn-chart-widget__bar-fill[data-v-5335921f] {
12672
+ .cn-chart-widget__bar-fill[data-v-7636430b] {
12369
12673
  background: var(--color-primary-element);
12370
12674
  display: block;
12371
12675
  height: 100%;
12372
12676
  }
12373
- .cn-chart-widget__bar-value[data-v-5335921f] {
12677
+ .cn-chart-widget__bar-value[data-v-7636430b] {
12374
12678
  font-weight: 600;
12375
12679
  text-align: end;
12376
12680
  white-space: nowrap;
12377
12681
  }
12378
- .cn-chart-widget__footnote[data-v-5335921f] {
12682
+ .cn-chart-widget__footnote[data-v-7636430b] {
12379
12683
  color: var(--color-text-maxcontrast);
12380
12684
  margin: 0;
12381
12685
  }
12382
12686
 
12383
12687
  /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
12384
12688
  its own line height while the canvas takes the rest of a fitted column. */
12385
- .cn-chart-widget > .cn-chart-widget__footnote[data-v-5335921f] {
12689
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-7636430b] {
12386
12690
  flex: 0 0 auto;
12387
12691
  margin-top: 8px;
12388
12692
  }
12389
- .cn-chart-widget__matrix[data-v-5335921f] {
12693
+ .cn-chart-widget__matrix[data-v-7636430b] {
12390
12694
  display: grid;
12391
12695
  gap: 4px;
12392
12696
  }
12393
- .cn-chart-widget__matrix-row[data-v-5335921f] {
12697
+ .cn-chart-widget__matrix-row[data-v-7636430b] {
12394
12698
  display: contents;
12395
12699
  }
12396
- .cn-chart-widget__matrix-head[data-v-5335921f] {
12700
+ .cn-chart-widget__matrix-head[data-v-7636430b] {
12397
12701
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
12398
12702
  color: var(--color-text-maxcontrast);
12399
12703
  padding: 6px;
12400
12704
  }
12401
- .cn-chart-widget__matrix-label[data-v-5335921f] {
12705
+ .cn-chart-widget__matrix-label[data-v-7636430b] {
12402
12706
  padding: 10px 6px;
12403
12707
  }
12404
- .cn-chart-widget__matrix-cell[data-v-5335921f] {
12708
+ .cn-chart-widget__matrix-cell[data-v-7636430b] {
12405
12709
  border-radius: 6px;
12406
12710
  padding: 10px;
12407
12711
  text-align: center;
12408
12712
  }
12409
- .cn-chart-widget__matrix-cell--success[data-v-5335921f] {
12713
+ .cn-chart-widget__matrix-cell--success[data-v-7636430b] {
12410
12714
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
12411
12715
  }
12412
- .cn-chart-widget__matrix-cell--warning[data-v-5335921f] {
12716
+ .cn-chart-widget__matrix-cell--warning[data-v-7636430b] {
12413
12717
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
12414
12718
  }
12415
- .cn-chart-widget__matrix-cell--error[data-v-5335921f] {
12719
+ .cn-chart-widget__matrix-cell--error[data-v-7636430b] {
12416
12720
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
12417
12721
  }
12418
- .cn-chart-widget__matrix-cell--danger[data-v-5335921f] {
12722
+ .cn-chart-widget__matrix-cell--danger[data-v-7636430b] {
12419
12723
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
12420
12724
  }
12421
- .cn-chart-widget__matrix-cell--current[data-v-5335921f] {
12725
+ .cn-chart-widget__matrix-cell--current[data-v-7636430b] {
12422
12726
  font-weight: 700;
12423
12727
  outline: 3px solid var(--color-primary-element);
12424
12728
  outline-offset: -3px;
12425
12729
  }
12426
12730
 
12427
12731
  /* A cell is a span: its ink also goes to --nldesign-color-on-surface, which a
12428
- theme that forces the body ink onto every span (thematiq) reads. The light
12429
- levels (1 to 3) take a dark ink; white only on level 4, the full primary,
12430
- where it reaches 4.5:1 (on level 3's 65% tint it is about 2.9:1). */
12431
- .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] {
12432
12738
  --nldesign-color-on-surface: var(--color-primary-element-light-text);
12433
12739
  background: var(--color-primary-element-light);
12434
12740
  color: var(--color-primary-element-light-text);
12435
12741
  }
12436
- .cn-chart-widget__matrix-cell--2[data-v-5335921f] {
12437
- 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));
12438
12744
  color: var(--color-main-text);
12439
12745
  }
12440
- .cn-chart-widget__matrix-cell--3[data-v-5335921f] {
12746
+ .cn-chart-widget__matrix-cell--3[data-v-7636430b] {
12441
12747
  --nldesign-color-on-surface: var(--color-main-text);
12442
- 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));
12443
12749
  color: var(--color-main-text);
12444
12750
  }
12445
- .cn-chart-widget__matrix-cell--4[data-v-5335921f] {
12446
- --nldesign-color-on-surface: var(--color-primary-element-text);
12447
- background: var(--color-primary-element);
12448
- 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);
12449
12755
  }
12450
- .cn-chart-widget__empty[data-v-5335921f] {
12756
+ .cn-chart-widget__empty[data-v-7636430b] {
12451
12757
  display: flex;
12452
12758
  align-items: center;
12453
12759
  justify-content: center;
@@ -12462,25 +12768,25 @@ li[data-cn-admin-tag] > .action-link::after {
12462
12768
  content-sized case; in fit mode they take the leftover space and centre in it
12463
12769
  instead, since the floor would overflow a short tile. Declared after the base
12464
12770
  rules so the cascade order matches specificity (no-descending-specificity). */
12465
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-5335921f],
12466
- .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] {
12467
12773
  flex: 1 1 0;
12468
12774
  min-height: 0;
12469
12775
  }
12470
- .cn-chart-widget__error[data-v-5335921f] {
12776
+ .cn-chart-widget__error[data-v-7636430b] {
12471
12777
  font-size: 14px;
12472
12778
  margin: 0;
12473
12779
  }
12474
12780
 
12475
12781
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
12476
12782
  mirroring the dashboard date-range pill styling. */
12477
- .cn-chart-widget__views[data-v-5335921f] {
12783
+ .cn-chart-widget__views[data-v-7636430b] {
12478
12784
  display: flex;
12479
12785
  gap: 4px;
12480
12786
  margin-bottom: 6px;
12481
12787
  justify-content: flex-end;
12482
12788
  }
12483
- .cn-chart-widget__view-pill[data-v-5335921f] {
12789
+ .cn-chart-widget__view-pill[data-v-7636430b] {
12484
12790
  padding: 2px 10px;
12485
12791
  border: 1px solid var(--color-border);
12486
12792
  border-radius: 999px;
@@ -12489,7 +12795,7 @@ li[data-cn-admin-tag] > .action-link::after {
12489
12795
  font-size: 12px;
12490
12796
  cursor: pointer;
12491
12797
  }
12492
- .cn-chart-widget__view-pill--active[data-v-5335921f] {
12798
+ .cn-chart-widget__view-pill--active[data-v-7636430b] {
12493
12799
  background: var(--color-primary-element-light, #aad2ed);
12494
12800
  color: var(--color-main-text);
12495
12801
  border-color: var(--color-primary-element, #0082c9);
@@ -12518,8 +12824,8 @@ li[data-cn-admin-tag] > .action-link::after {
12518
12824
  each override below therefore carries one more class than the apexcharts rule
12519
12825
  it replaces, and holds even without the scope attribute this block compiles
12520
12826
  with. */
12521
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-light,
12522
- .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 {
12523
12829
  background: var(--color-main-background);
12524
12830
  border: 1px solid var(--color-border);
12525
12831
  color: var(--color-main-text);
@@ -12528,8 +12834,8 @@ li[data-cn-admin-tag] > .action-link::after {
12528
12834
 
12529
12835
  /* The title row is the date/category header ("Aug 26"). Its own background is
12530
12836
  what made it unreadable rather than merely off-theme. */
12531
- .cn-chart-widget[data-v-5335921f] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
12532
- .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 {
12533
12839
  background: var(--color-background-hover);
12534
12840
  border-bottom: 1px solid var(--color-border);
12535
12841
  color: var(--color-main-text);
@@ -12538,8 +12844,8 @@ li[data-cn-admin-tag] > .action-link::after {
12538
12844
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
12539
12845
  here and only overrides them for its dark theme, so the base rule has to be
12540
12846
  replaced too — not just the theme variants. */
12541
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip,
12542
- .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 {
12543
12849
  background: var(--color-main-background);
12544
12850
  border: 1px solid var(--color-border);
12545
12851
  color: var(--color-main-text);
@@ -12548,55 +12854,55 @@ li[data-cn-admin-tag] > .action-link::after {
12548
12854
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
12549
12855
  edge, `::after` the fill. Both need the tokens the box above uses, or the
12550
12856
  arrow keeps the old palette and reads as a stray light wedge. */
12551
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-bottom::after,
12552
- .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 {
12553
12859
  border-bottom-color: var(--color-main-background);
12554
12860
  border-top-color: var(--color-main-background);
12555
12861
  }
12556
- .cn-chart-widget[data-v-5335921f] .apexcharts-xaxistooltip-bottom::before,
12557
- .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 {
12558
12864
  border-bottom-color: var(--color-border);
12559
12865
  border-top-color: var(--color-border);
12560
12866
  }
12561
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-left::after,
12562
- .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 {
12563
12869
  border-left-color: var(--color-main-background);
12564
12870
  border-right-color: var(--color-main-background);
12565
12871
  }
12566
- .cn-chart-widget[data-v-5335921f] .apexcharts-yaxistooltip-left::before,
12567
- .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 {
12568
12874
  border-left-color: var(--color-border);
12569
12875
  border-right-color: var(--color-border);
12570
12876
  }
12571
12877
 
12572
12878
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
12573
12879
  hardcoded `#fff` panel under inherited near-white text. */
12574
- .cn-chart-widget[data-v-5335921f] .apexcharts-menu {
12880
+ .cn-chart-widget[data-v-7636430b] .apexcharts-menu {
12575
12881
  background: var(--color-main-background);
12576
12882
  border: 1px solid var(--color-border);
12577
12883
  color: var(--color-main-text);
12578
12884
  }
12579
- .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 {
12580
12886
  background: var(--color-background-hover);
12581
12887
  }
12582
12888
 
12583
12889
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
12584
12890
  vanishes against a dark background. One selector per icon class, matching
12585
12891
  apexcharts' own list, to clear its (0,3,1) hover rules. */
12586
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-menu-icon svg,
12587
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-reset-icon svg,
12588
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-selection-icon svg,
12589
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoom-icon svg,
12590
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
12591
- .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 {
12592
12898
  fill: var(--color-text-maxcontrast);
12593
12899
  }
12594
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
12595
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
12596
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
12597
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
12598
- .cn-chart-widget[data-v-5335921f] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
12599
- .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 {
12600
12906
  fill: var(--color-main-text);
12601
12907
  }
12602
12908
 
@@ -19925,7 +20231,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
19925
20231
  }
19926
20232
 
19927
20233
 
19928
- .cn-files-browser[data-v-534c5e47] {
20234
+ .cn-files-browser[data-v-61d912e6] {
19929
20235
  display: flex;
19930
20236
  flex-direction: column;
19931
20237
  gap: 8px;
@@ -19933,22 +20239,22 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
19933
20239
  position: relative;
19934
20240
  border-radius: var(--border-radius-large, 8px);
19935
20241
  }
19936
- .cn-files-browser--dragging[data-v-534c5e47] {
20242
+ .cn-files-browser--dragging[data-v-61d912e6] {
19937
20243
  outline: 2px dashed var(--color-primary-element);
19938
20244
  outline-offset: 4px;
19939
20245
  }
19940
20246
 
19941
20247
  /* With a `dropDetail` the drop state fills the panel it sits in, as the
19942
20248
  board draws it (DqZaakDocumentenSlepen), not only the list's own height. */
19943
- .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] {
19944
20250
  min-height: max(320px, 100%);
19945
20251
  }
19946
- .cn-files-browser__drop-detail[data-v-534c5e47] {
20252
+ .cn-files-browser__drop-detail[data-v-61d912e6] {
19947
20253
  max-width: 520px;
19948
20254
  font-size: 14px;
19949
20255
  color: var(--color-main-text);
19950
20256
  }
19951
- .cn-files-browser__drop-overlay[data-v-534c5e47] {
20257
+ .cn-files-browser__drop-overlay[data-v-61d912e6] {
19952
20258
  position: absolute;
19953
20259
  inset: 0;
19954
20260
  z-index: 2;
@@ -19966,7 +20272,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
19966
20272
  text-align: center;
19967
20273
  pointer-events: none;
19968
20274
  }
19969
- .cn-files-browser__drop-icon[data-v-534c5e47] {
20275
+ .cn-files-browser__drop-icon[data-v-61d912e6] {
19970
20276
  display: flex;
19971
20277
  align-items: center;
19972
20278
  justify-content: center;
@@ -19976,11 +20282,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
19976
20282
  background: var(--color-main-background);
19977
20283
  color: var(--color-primary-element);
19978
20284
  }
19979
- .cn-files-browser__drop-label[data-v-534c5e47] {
20285
+ .cn-files-browser__drop-label[data-v-61d912e6] {
19980
20286
  font-size: 20px;
19981
20287
  font-weight: 700;
19982
20288
  }
19983
- .cn-files-browser__drop-hint[data-v-534c5e47] {
20289
+ .cn-files-browser__drop-hint[data-v-61d912e6] {
19984
20290
  display: flex;
19985
20291
  align-items: center;
19986
20292
  gap: 8px;
@@ -19990,14 +20296,14 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
19990
20296
  font-size: 13px;
19991
20297
  color: var(--color-text-maxcontrast);
19992
20298
  }
19993
- .cn-files-browser__bar[data-v-534c5e47] {
20299
+ .cn-files-browser__bar[data-v-61d912e6] {
19994
20300
  display: flex;
19995
20301
  align-items: center;
19996
20302
  justify-content: space-between;
19997
20303
  gap: 8px;
19998
20304
  min-width: 0;
19999
20305
  }
20000
- .cn-files-browser__crumbs[data-v-534c5e47] {
20306
+ .cn-files-browser__crumbs[data-v-61d912e6] {
20001
20307
  min-width: 0;
20002
20308
  flex: 1 1 auto;
20003
20309
  }
@@ -20005,13 +20311,13 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20005
20311
  /* The crumbs give way, the controls do not: a long crumb (a folder named
20006
20312
  after a uuid) shrank the upload button to "Bestanden..." while the crumbs
20007
20313
  kept their width. */
20008
- .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) {
20009
20315
  flex-shrink: 0;
20010
20316
  }
20011
- .cn-files-browser__file-input[data-v-534c5e47] {
20317
+ .cn-files-browser__file-input[data-v-61d912e6] {
20012
20318
  display: none;
20013
20319
  }
20014
- .cn-files-browser__uploads[data-v-534c5e47] {
20320
+ .cn-files-browser__uploads[data-v-61d912e6] {
20015
20321
  list-style: none;
20016
20322
  margin: 0;
20017
20323
  padding: 0;
@@ -20019,40 +20325,50 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20019
20325
  flex-direction: column;
20020
20326
  gap: 4px;
20021
20327
  }
20022
- .cn-files-browser__upload[data-v-534c5e47] {
20328
+ .cn-files-browser__upload[data-v-61d912e6] {
20023
20329
  display: flex;
20024
20330
  flex-direction: column;
20025
20331
  gap: 2px;
20026
20332
  }
20027
- .cn-files-browser__upload-name[data-v-534c5e47] {
20333
+ .cn-files-browser__upload-name[data-v-61d912e6] {
20028
20334
  font-size: 13px;
20029
20335
  }
20030
- .cn-files-browser__upload-error[data-v-534c5e47] {
20336
+ .cn-files-browser__upload-error[data-v-61d912e6] {
20031
20337
  color: var(--color-error);
20032
20338
  font-size: 13px;
20033
20339
  }
20034
- .cn-files-browser__loading[data-v-534c5e47] {
20340
+ .cn-files-browser__loading[data-v-61d912e6] {
20035
20341
  padding: 24px 0;
20036
20342
  }
20037
20343
 
20038
20344
  /* `sideCards`: the list and, while a file is selected, a column of cards. */
20039
- .cn-files-browser__body--with-side[data-v-534c5e47] {
20345
+ .cn-files-browser__body--with-side[data-v-61d912e6] {
20040
20346
  display: grid;
20041
20347
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
20042
20348
  align-items: start;
20043
20349
  gap: 16px;
20044
20350
  }
20045
20351
  @media (max-width: 900px) {
20046
- .cn-files-browser__body--with-side[data-v-534c5e47] {
20352
+ .cn-files-browser__body--with-side[data-v-61d912e6] {
20047
20353
  grid-template-columns: minmax(0, 1fr);
20048
20354
  }
20049
20355
  }
20050
- .cn-files-browser__side[data-v-534c5e47] {
20356
+ .cn-files-browser__side[data-v-61d912e6] {
20051
20357
  display: flex;
20052
20358
  flex-direction: column;
20053
20359
  gap: 12px;
20054
20360
  }
20055
- .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] {
20056
20372
  display: flex;
20057
20373
  flex-direction: column;
20058
20374
  gap: 10px;
@@ -20061,27 +20377,27 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20061
20377
  border-radius: var(--border-radius-large);
20062
20378
  background: var(--color-main-background);
20063
20379
  }
20064
- .cn-files-browser__side-title[data-v-534c5e47] {
20380
+ .cn-files-browser__side-title[data-v-61d912e6] {
20065
20381
  margin: 0;
20066
20382
  font-size: 15px;
20067
20383
  font-weight: 700;
20068
20384
  overflow-wrap: anywhere;
20069
20385
  }
20070
- .cn-files-browser__side-facts[data-v-534c5e47] {
20386
+ .cn-files-browser__side-facts[data-v-61d912e6] {
20071
20387
  display: grid;
20072
20388
  grid-template-columns: max-content minmax(0, 1fr);
20073
20389
  gap: 6px 12px;
20074
20390
  margin: 0;
20075
20391
  font-size: 14px;
20076
20392
  }
20077
- .cn-files-browser__side-facts dt[data-v-534c5e47] {
20393
+ .cn-files-browser__side-facts dt[data-v-61d912e6] {
20078
20394
  color: var(--color-text-maxcontrast);
20079
20395
  }
20080
- .cn-files-browser__side-facts dd[data-v-534c5e47] {
20396
+ .cn-files-browser__side-facts dd[data-v-61d912e6] {
20081
20397
  margin: 0;
20082
20398
  overflow-wrap: anywhere;
20083
20399
  }
20084
- .cn-files-browser__side-actions[data-v-534c5e47] {
20400
+ .cn-files-browser__side-actions[data-v-61d912e6] {
20085
20401
  display: flex;
20086
20402
  flex-wrap: wrap;
20087
20403
  gap: 8px;
@@ -20089,35 +20405,35 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20089
20405
 
20090
20406
  /* A value drawn in a tone (`colorMap` on a column that is not a badge): the
20091
20407
  text in the tone's colour, as the boards write a restricted level. */
20092
- .cn-files-browser__tone[data-v-534c5e47] {
20408
+ .cn-files-browser__tone[data-v-61d912e6] {
20093
20409
  font-weight: 600;
20094
20410
  }
20095
- .cn-files-browser__tone--success[data-v-534c5e47] {
20411
+ .cn-files-browser__tone--success[data-v-61d912e6] {
20096
20412
  color: var(--color-success-text, var(--color-success));
20097
20413
  }
20098
- .cn-files-browser__tone--warning[data-v-534c5e47] {
20414
+ .cn-files-browser__tone--warning[data-v-61d912e6] {
20099
20415
  color: var(--color-warning-text, var(--color-warning));
20100
20416
  }
20101
- .cn-files-browser__tone--error[data-v-534c5e47] {
20417
+ .cn-files-browser__tone--error[data-v-61d912e6] {
20102
20418
  color: var(--color-error-text, var(--color-error));
20103
20419
  }
20104
- .cn-files-browser__tone--primary[data-v-534c5e47],
20105
- .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] {
20106
20422
  color: var(--color-primary-element-light-text, var(--color-primary-element));
20107
20423
  }
20108
- .cn-files-browser__table[data-v-534c5e47] {
20424
+ .cn-files-browser__table[data-v-61d912e6] {
20109
20425
  width: 100%;
20110
20426
  border-collapse: collapse;
20111
20427
  table-layout: fixed;
20112
20428
  }
20113
- .cn-files-browser__table th[data-v-534c5e47] {
20429
+ .cn-files-browser__table th[data-v-61d912e6] {
20114
20430
  text-align: start;
20115
20431
  font-weight: normal;
20116
20432
  color: var(--color-text-maxcontrast);
20117
20433
  padding: 4px 8px;
20118
20434
  border-bottom: 1px solid var(--color-border);
20119
20435
  }
20120
- .cn-files-browser__sort[data-v-534c5e47] {
20436
+ .cn-files-browser__sort[data-v-61d912e6] {
20121
20437
  background: none;
20122
20438
  border: none;
20123
20439
  padding: 0;
@@ -20128,46 +20444,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20128
20444
  align-items: center;
20129
20445
  gap: 2px;
20130
20446
  }
20131
- .cn-files-browser__sort[data-v-534c5e47]:hover,
20132
- .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 {
20133
20449
  color: var(--color-main-text);
20134
20450
  }
20135
- .cn-files-browser__row[data-v-534c5e47] {
20451
+ .cn-files-browser__row[data-v-61d912e6] {
20136
20452
  cursor: pointer;
20137
20453
  }
20138
- .cn-files-browser__row[data-v-534c5e47]:hover,
20139
- .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 {
20140
20456
  background-color: var(--color-background-hover);
20141
20457
  }
20142
- .cn-files-browser__table td[data-v-534c5e47] {
20458
+ .cn-files-browser__table td[data-v-61d912e6] {
20143
20459
  padding: 4px 8px;
20144
20460
  border-bottom: 1px solid var(--color-border);
20145
20461
  vertical-align: middle;
20146
20462
  }
20147
- .cn-files-browser__col-icon[data-v-534c5e47] {
20463
+ .cn-files-browser__col-icon[data-v-61d912e6] {
20148
20464
  width: 48px;
20149
20465
  }
20150
- .cn-files-browser__col-size[data-v-534c5e47] {
20466
+ .cn-files-browser__col-size[data-v-61d912e6] {
20151
20467
  width: 96px;
20152
20468
  white-space: nowrap;
20153
20469
  color: var(--color-text-maxcontrast);
20154
20470
  }
20155
- .cn-files-browser__col-mtime[data-v-534c5e47] {
20471
+ .cn-files-browser__col-mtime[data-v-61d912e6] {
20156
20472
  width: 140px;
20157
20473
  white-space: nowrap;
20158
20474
  color: var(--color-text-maxcontrast);
20159
20475
  }
20160
- .cn-files-browser__col-select[data-v-534c5e47] {
20476
+ .cn-files-browser__col-select[data-v-61d912e6] {
20161
20477
  width: 36px;
20162
20478
  text-align: center;
20163
20479
  }
20164
- .cn-files-browser__select[data-v-534c5e47] {
20480
+ .cn-files-browser__select[data-v-61d912e6] {
20165
20481
  width: 18px;
20166
20482
  height: 18px;
20167
20483
  margin: 0;
20168
20484
  accent-color: var(--color-primary-element);
20169
20485
  }
20170
- .cn-files-browser__bulk-bar[data-v-534c5e47] {
20486
+ .cn-files-browser__bulk-bar[data-v-61d912e6] {
20171
20487
  display: flex;
20172
20488
  flex-wrap: wrap;
20173
20489
  align-items: center;
@@ -20176,11 +20492,11 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20176
20492
  border-radius: var(--border-radius-large);
20177
20493
  background: var(--color-primary-element-light);
20178
20494
  }
20179
- .cn-files-browser__bulk-count[data-v-534c5e47] {
20495
+ .cn-files-browser__bulk-count[data-v-61d912e6] {
20180
20496
  font-weight: 600;
20181
20497
  margin-inline-end: 8px;
20182
20498
  }
20183
- .cn-files-browser__review[data-v-534c5e47] {
20499
+ .cn-files-browser__review[data-v-61d912e6] {
20184
20500
  display: flex;
20185
20501
  flex-direction: column;
20186
20502
  gap: 10px;
@@ -20189,28 +20505,28 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20189
20505
  border-radius: 10px;
20190
20506
  background: var(--color-background-hover);
20191
20507
  }
20192
- .cn-files-browser__review-head[data-v-534c5e47] {
20508
+ .cn-files-browser__review-head[data-v-61d912e6] {
20193
20509
  display: flex;
20194
20510
  flex-wrap: wrap;
20195
20511
  align-items: baseline;
20196
20512
  justify-content: space-between;
20197
20513
  gap: 8px;
20198
20514
  }
20199
- .cn-files-browser__review-title[data-v-534c5e47] {
20515
+ .cn-files-browser__review-title[data-v-61d912e6] {
20200
20516
  font-size: 15px;
20201
20517
  }
20202
- .cn-files-browser__review-sub[data-v-534c5e47] {
20518
+ .cn-files-browser__review-sub[data-v-61d912e6] {
20203
20519
  color: var(--color-text-maxcontrast);
20204
20520
  font-size: 13px;
20205
20521
  }
20206
- .cn-files-browser__review-bar[data-v-534c5e47] {
20522
+ .cn-files-browser__review-bar[data-v-61d912e6] {
20207
20523
  display: flex;
20208
20524
  height: 8px;
20209
20525
  overflow: hidden;
20210
20526
  border-radius: 4px;
20211
20527
  background: var(--color-border);
20212
20528
  }
20213
- .cn-files-browser__review-legend[data-v-534c5e47] {
20529
+ .cn-files-browser__review-legend[data-v-61d912e6] {
20214
20530
  display: flex;
20215
20531
  flex-wrap: wrap;
20216
20532
  gap: 8px 18px;
@@ -20219,48 +20535,48 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20219
20535
  font-size: 14px;
20220
20536
  list-style: none;
20221
20537
  }
20222
- .cn-files-browser__review-legend li[data-v-534c5e47] {
20538
+ .cn-files-browser__review-legend li[data-v-61d912e6] {
20223
20539
  display: inline-flex;
20224
20540
  align-items: center;
20225
20541
  gap: 8px;
20226
20542
  }
20227
- .cn-files-browser__review-dot[data-v-534c5e47] {
20543
+ .cn-files-browser__review-dot[data-v-61d912e6] {
20228
20544
  width: 10px;
20229
20545
  height: 10px;
20230
20546
  border-radius: 5px;
20231
20547
  }
20232
- .cn-files-browser__review-part--success[data-v-534c5e47] {
20548
+ .cn-files-browser__review-part--success[data-v-61d912e6] {
20233
20549
  background: var(--color-success-text, var(--color-success));
20234
20550
  }
20235
- .cn-files-browser__review-part--warning[data-v-534c5e47] {
20551
+ .cn-files-browser__review-part--warning[data-v-61d912e6] {
20236
20552
  background: var(--color-warning);
20237
20553
  }
20238
- .cn-files-browser__review-part--error[data-v-534c5e47] {
20554
+ .cn-files-browser__review-part--error[data-v-61d912e6] {
20239
20555
  background: var(--color-error-text, var(--color-error));
20240
20556
  }
20241
- .cn-files-browser__review-part--info[data-v-534c5e47] {
20557
+ .cn-files-browser__review-part--info[data-v-61d912e6] {
20242
20558
  background: var(--color-primary-element);
20243
20559
  }
20244
- .cn-files-browser__review-part--default[data-v-534c5e47] {
20560
+ .cn-files-browser__review-part--default[data-v-61d912e6] {
20245
20561
  background: var(--color-border-dark);
20246
20562
  }
20247
- .cn-files-browser__row-button[data-v-534c5e47] {
20563
+ .cn-files-browser__row-button[data-v-61d912e6] {
20248
20564
  display: inline-flex;
20249
20565
  margin-inline-end: 8px;
20250
20566
  vertical-align: middle;
20251
20567
  }
20252
- .cn-files-browser__facets[data-v-534c5e47] {
20568
+ .cn-files-browser__facets[data-v-61d912e6] {
20253
20569
  display: flex;
20254
20570
  flex-wrap: wrap;
20255
20571
  align-items: center;
20256
20572
  gap: 8px 16px;
20257
20573
  }
20258
- .cn-files-browser__facet[data-v-534c5e47] {
20574
+ .cn-files-browser__facet[data-v-61d912e6] {
20259
20575
  display: flex;
20260
20576
  flex-wrap: wrap;
20261
20577
  gap: 6px;
20262
20578
  }
20263
- .cn-files-browser__facet-chip[data-v-534c5e47] {
20579
+ .cn-files-browser__facet-chip[data-v-61d912e6] {
20264
20580
  display: inline-flex;
20265
20581
  align-items: center;
20266
20582
  gap: 6px;
@@ -20272,41 +20588,41 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20272
20588
  color: var(--color-main-text);
20273
20589
  cursor: pointer;
20274
20590
  }
20275
- .cn-files-browser__facet-chip--active[data-v-534c5e47] {
20591
+ .cn-files-browser__facet-chip--active[data-v-61d912e6] {
20276
20592
  border-color: var(--color-primary-element);
20277
20593
  background: var(--color-primary-element-light);
20278
20594
  }
20279
- .cn-files-browser__group-heading[data-v-534c5e47] {
20595
+ .cn-files-browser__group-heading[data-v-61d912e6] {
20280
20596
  padding: 12px 8px 4px;
20281
20597
  text-align: start;
20282
20598
  font-weight: 700;
20283
20599
  }
20284
- .cn-files-browser__group-count[data-v-534c5e47] {
20600
+ .cn-files-browser__group-count[data-v-61d912e6] {
20285
20601
  margin-inline-start: 6px;
20286
20602
  font-weight: 400;
20287
20603
  color: var(--color-text-maxcontrast);
20288
20604
  }
20289
- .cn-files-browser__no-match[data-v-534c5e47] {
20605
+ .cn-files-browser__no-match[data-v-61d912e6] {
20290
20606
  padding: 16px 8px;
20291
20607
  color: var(--color-text-maxcontrast);
20292
20608
  }
20293
- .cn-files-browser__col-actions[data-v-534c5e47] {
20609
+ .cn-files-browser__col-actions[data-v-61d912e6] {
20294
20610
  width: 48px;
20295
20611
  white-space: nowrap;
20296
20612
  }
20297
- .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) {
20298
20614
  width: auto;
20299
20615
  }
20300
- .cn-files-browser__col-name[data-v-534c5e47] {
20616
+ .cn-files-browser__col-name[data-v-61d912e6] {
20301
20617
  min-width: 0;
20302
20618
  }
20303
- .cn-files-browser__name[data-v-534c5e47] {
20619
+ .cn-files-browser__name[data-v-61d912e6] {
20304
20620
  display: block;
20305
20621
  overflow: hidden;
20306
20622
  text-overflow: ellipsis;
20307
20623
  white-space: nowrap;
20308
20624
  }
20309
- .cn-files-browser__name-secondary[data-v-534c5e47] {
20625
+ .cn-files-browser__name-secondary[data-v-61d912e6] {
20310
20626
  display: block;
20311
20627
  overflow: hidden;
20312
20628
  color: var(--color-text-maxcontrast);
@@ -20314,41 +20630,41 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20314
20630
  text-overflow: ellipsis;
20315
20631
  white-space: nowrap;
20316
20632
  }
20317
- .cn-files-browser__footnote[data-v-534c5e47] {
20633
+ .cn-files-browser__footnote[data-v-61d912e6] {
20318
20634
  margin: 0;
20319
20635
  padding-top: 12px;
20320
20636
  color: var(--color-text-maxcontrast);
20321
20637
  font-size: 13px;
20322
20638
  }
20323
- .cn-files-browser__row--linked[data-v-534c5e47] {
20639
+ .cn-files-browser__row--linked[data-v-61d912e6] {
20324
20640
  color: var(--color-text-maxcontrast);
20325
20641
  }
20326
- .cn-files-browser__note[data-v-534c5e47] {
20642
+ .cn-files-browser__note[data-v-61d912e6] {
20327
20643
  color: var(--color-text-maxcontrast);
20328
20644
  display: block;
20329
20645
  font-size: var(--font-size-small, 13px);
20330
20646
  }
20331
- .cn-files-browser__note-link[data-v-534c5e47] {
20647
+ .cn-files-browser__note-link[data-v-61d912e6] {
20332
20648
  color: inherit;
20333
20649
  text-decoration: underline;
20334
20650
  }
20335
- .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] {
20336
20652
  font-weight: 600;
20337
20653
  }
20338
- .cn-files-browser__mime[data-v-534c5e47],
20339
- .cn-files-browser__thumb[data-v-534c5e47] {
20654
+ .cn-files-browser__mime[data-v-61d912e6],
20655
+ .cn-files-browser__thumb[data-v-61d912e6] {
20340
20656
  width: 32px;
20341
20657
  height: 32px;
20342
20658
  display: block;
20343
20659
  }
20344
- .cn-files-browser__thumb[data-v-534c5e47] {
20660
+ .cn-files-browser__thumb[data-v-61d912e6] {
20345
20661
  object-fit: cover;
20346
20662
  border-radius: var(--border-radius, 4px);
20347
20663
  }
20348
- .cn-files-browser__new-folder[data-v-534c5e47] {
20664
+ .cn-files-browser__new-folder[data-v-61d912e6] {
20349
20665
  padding: 8px 0;
20350
20666
  }
20351
- .hidden-visually[data-v-534c5e47] {
20667
+ .hidden-visually[data-v-61d912e6] {
20352
20668
  position: absolute;
20353
20669
  width: 1px;
20354
20670
  height: 1px;
@@ -20358,9 +20674,9 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20358
20674
  }
20359
20675
 
20360
20676
 
20361
- .cn-sidebar-tab[data-v-fe12141e] { padding: 12px;
20677
+ .cn-sidebar-tab[data-v-76386af6] { padding: 12px;
20362
20678
  }
20363
- .cn-sidebar-tab__upload-error[data-v-fe12141e] {
20679
+ .cn-sidebar-tab__upload-error[data-v-76386af6] {
20364
20680
  padding: 8px 12px;
20365
20681
  margin-bottom: 8px;
20366
20682
  border-radius: var(--border-radius, 4px);
@@ -20368,7 +20684,7 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20368
20684
  color: var(--color-error, #e53935);
20369
20685
  font-size: 13px;
20370
20686
  }
20371
- .cn-sidebar-tab__dropzone[data-v-fe12141e] {
20687
+ .cn-sidebar-tab__dropzone[data-v-76386af6] {
20372
20688
  display: flex;
20373
20689
  flex-direction: column;
20374
20690
  align-items: center;
@@ -20381,46 +20697,46 @@ button.cn-files-card__open[data-v-4968f31c]:hover {
20381
20697
  cursor: pointer;
20382
20698
  transition: border-color 0.15s ease, background-color 0.15s ease;
20383
20699
  }
20384
- .cn-sidebar-tab__dropzone[data-v-fe12141e]:hover {
20700
+ .cn-sidebar-tab__dropzone[data-v-76386af6]:hover {
20385
20701
  border-color: var(--color-primary-element);
20386
20702
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.08));
20387
20703
  }
20388
- .cn-sidebar-tab__dropzone--active[data-v-fe12141e] {
20704
+ .cn-sidebar-tab__dropzone--active[data-v-76386af6] {
20389
20705
  border-color: var(--color-primary-element);
20390
20706
  background-color: var(--color-primary-element-light, rgba(0, 130, 201, 0.12));
20391
20707
  }
20392
- .cn-sidebar-tab__share[data-v-fe12141e] { margin-bottom: 12px;
20708
+ .cn-sidebar-tab__share[data-v-76386af6] { margin-bottom: 12px;
20393
20709
  }
20394
- .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);
20395
20711
  }
20396
- .cn-sidebar-tab__dropzone--active .cn-sidebar-tab__dropzone-icon[data-v-fe12141e],
20397
- .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);
20398
20714
  }
20399
- .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);
20400
20716
  }
20401
- .cn-sidebar-tab__file-input[data-v-fe12141e] { display: none;
20717
+ .cn-sidebar-tab__file-input[data-v-76386af6] { display: none;
20402
20718
  }
20403
- .cn-sidebar-tab__empty[data-v-fe12141e] {
20719
+ .cn-sidebar-tab__empty[data-v-76386af6] {
20404
20720
  text-align: center;
20405
20721
  padding: 24px 12px;
20406
20722
  color: var(--color-text-maxcontrast);
20407
20723
  font-size: 13px;
20408
20724
  }
20409
- .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;
20410
20726
  }
20411
- .cn-sidebar-tab__mime[data-v-fe12141e],
20412
- .cn-sidebar-tab__thumb[data-v-fe12141e] {
20727
+ .cn-sidebar-tab__mime[data-v-76386af6],
20728
+ .cn-sidebar-tab__thumb[data-v-76386af6] {
20413
20729
  width: 32px;
20414
20730
  height: 32px;
20415
20731
  display: block;
20416
20732
  }
20417
- .cn-sidebar-tab__thumb[data-v-fe12141e] {
20733
+ .cn-sidebar-tab__thumb[data-v-76386af6] {
20418
20734
  object-fit: cover;
20419
20735
  border-radius: var(--border-radius, 4px);
20420
20736
  }
20421
- .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);
20422
20738
  }
20423
- .cn-sidebar-tab__load-more[data-v-fe12141e] { margin-top: 8px;
20739
+ .cn-sidebar-tab__load-more[data-v-76386af6] { margin-top: 8px;
20424
20740
  }
20425
20741
 
20426
20742
 
@@ -29847,7 +30163,7 @@ button.cn-stepper__step[data-v-3cab4d7d] {
29847
30163
  }
29848
30164
 
29849
30165
 
29850
- .cn-detail-page__catalog-action[data-v-7dc610c5] {
30166
+ .cn-detail-page__catalog-action[data-v-2993ba72] {
29851
30167
  align-items: center;
29852
30168
  background: var(--color-primary-element-light);
29853
30169
  border: 0;
@@ -29866,15 +30182,15 @@ button.cn-stepper__step[data-v-3cab4d7d] {
29866
30182
 
29867
30183
  /* A leaf card in a narrow cell keeps its title and count: the title row
29868
30184
  wraps and the actions move under it instead of squeezing the title out. */
29869
- .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 {
29870
30186
  flex-wrap: wrap;
29871
30187
  }
29872
- .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 {
29873
30189
  flex: 1 0 auto;
29874
30190
  }
29875
30191
 
29876
30192
  /* The count beside a card title: the grey 20px badge of the tab strip. */
29877
- .cn-detail-page__catalog-count[data-v-7dc610c5] {
30193
+ .cn-detail-page__catalog-count[data-v-2993ba72] {
29878
30194
  background-color: var(--color-border);
29879
30195
  border-radius: 10px;
29880
30196
  box-sizing: border-box;
@@ -29887,19 +30203,19 @@ button.cn-stepper__step[data-v-3cab4d7d] {
29887
30203
  padding: 0 6px;
29888
30204
  text-align: center;
29889
30205
  }
29890
- .cn-detail-page__catalog-note[data-v-7dc610c5] {
30206
+ .cn-detail-page__catalog-note[data-v-2993ba72] {
29891
30207
  color: var(--color-text-maxcontrast);
29892
30208
  font-size: 14px;
29893
30209
  white-space: nowrap;
29894
30210
  }
29895
- .cn-detail-widget-host[data-v-7dc610c5],
29896
- .cn-detail-widget-host[data-v-7dc610c5] > * {
30211
+ .cn-detail-widget-host[data-v-2993ba72],
30212
+ .cn-detail-widget-host[data-v-2993ba72] > * {
29897
30213
  height: 100%;
29898
30214
  }
29899
30215
 
29900
30216
  /* A bare host is a tab panel's body: it fills the panel and lets the panel
29901
30217
  scroll, rather than growing a second scroll region of its own. */
29902
- .cn-detail-widget-host--bare[data-v-7dc610c5] {
30218
+ .cn-detail-widget-host--bare[data-v-2993ba72] {
29903
30219
  min-height: 0;
29904
30220
  }
29905
30221
 
@@ -34615,10 +34931,10 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34615
34931
  }
34616
34932
 
34617
34933
 
34618
- .cn-sections-widget[data-v-1bba4b0c] {
34934
+ .cn-sections-widget[data-v-28baf01e] {
34619
34935
  min-width: 0;
34620
34936
  }
34621
- .cn-sections-widget__column[data-v-1bba4b0c] {
34937
+ .cn-sections-widget__column[data-v-28baf01e] {
34622
34938
  display: flex;
34623
34939
  flex-direction: column;
34624
34940
  gap: calc(var(--default-grid-baseline, 4px) * 4);
@@ -34626,35 +34942,50 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34626
34942
  }
34627
34943
 
34628
34944
  /* A main and a side column (the settings boards: 1fr and 418px, 20px apart). */
34629
- .cn-sections-widget--two-column[data-v-1bba4b0c] {
34945
+ .cn-sections-widget--two-column[data-v-28baf01e] {
34630
34946
  display: grid;
34631
34947
  grid-template-columns: minmax(0, 1fr) minmax(280px, 418px);
34632
34948
  gap: 20px;
34633
34949
  align-items: start;
34634
34950
  }
34635
34951
  @media (max-width: 1024px) {
34636
- .cn-sections-widget--two-column[data-v-1bba4b0c] {
34952
+ .cn-sections-widget--two-column[data-v-28baf01e] {
34637
34953
  grid-template-columns: minmax(0, 1fr);
34638
34954
  }
34639
34955
  }
34640
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
+
34641
34972
  /* A host page may space every <section>; these sections are spaced by the column gap only. */
34642
- .cn-sections-widget__section[data-v-1bba4b0c] {
34973
+ .cn-sections-widget__section[data-v-28baf01e] {
34643
34974
  margin: 0;
34644
34975
  min-width: 0;
34645
34976
  }
34646
34977
 
34647
34978
  /* A rule above a section that follows a shown one. */
34648
- .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] {
34649
34980
  padding-top: calc(var(--default-grid-baseline, 4px) * 4);
34650
34981
  border-top: 1px solid var(--color-border);
34651
34982
  }
34652
34983
 
34653
34984
  /* No rule: strips that each say one thing, 8px apart. */
34654
- .cn-sections-widget--plain .cn-sections-widget__column[data-v-1bba4b0c] {
34985
+ .cn-sections-widget--plain .cn-sections-widget__column[data-v-28baf01e] {
34655
34986
  gap: calc(var(--default-grid-baseline, 4px) * 2);
34656
34987
  }
34657
- .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] {
34658
34989
  padding-top: 0;
34659
34990
  border-top: 0;
34660
34991
  }
@@ -34663,31 +34994,31 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-76cc4
34663
34994
  * An empty section keeps its host mounted (display: none still mounts it, so
34664
34995
  * the widget fetches and can fill later) but takes no space, gap or rule.
34665
34996
  */
34666
- .cn-sections-widget__section--empty[data-v-1bba4b0c] {
34997
+ .cn-sections-widget__section--empty[data-v-28baf01e] {
34667
34998
  display: none;
34668
34999
  }
34669
- .cn-sections-widget__heading[data-v-1bba4b0c] {
35000
+ .cn-sections-widget__heading[data-v-28baf01e] {
34670
35001
  margin: 0 0 calc(var(--default-grid-baseline, 4px) * 2);
34671
35002
  font-size: 16px;
34672
35003
  font-weight: 600;
34673
35004
  color: var(--color-main-text);
34674
35005
  }
34675
- .cn-sections-widget__description[data-v-1bba4b0c] {
35006
+ .cn-sections-widget__description[data-v-28baf01e] {
34676
35007
  margin: calc(var(--default-grid-baseline, 4px) * -1) 0 calc(var(--default-grid-baseline, 4px) * 3);
34677
35008
  color: var(--color-text-maxcontrast);
34678
35009
  }
34679
35010
 
34680
35011
  /* One card per section. */
34681
- .cn-sections-widget--cards .cn-sections-widget__column[data-v-1bba4b0c] {
35012
+ .cn-sections-widget--cards .cn-sections-widget__column[data-v-28baf01e] {
34682
35013
  gap: 20px;
34683
35014
  }
34684
- .cn-sections-widget--cards .cn-sections-widget__section[data-v-1bba4b0c] {
35015
+ .cn-sections-widget--cards .cn-sections-widget__section[data-v-28baf01e] {
34685
35016
  background: var(--color-main-background);
34686
35017
  border: 1px solid var(--color-border);
34687
35018
  border-radius: var(--cn-board-card-radius, var(--border-radius-large, 12px));
34688
35019
  padding: var(--cn-board-card-padding, 16px 20px);
34689
35020
  }
34690
- .cn-sections-widget--cards .cn-sections-widget__heading[data-v-1bba4b0c] {
35021
+ .cn-sections-widget--cards .cn-sections-widget__heading[data-v-28baf01e] {
34691
35022
  font-size: 18px;
34692
35023
  margin-bottom: 12px;
34693
35024
  }
@@ -37522,21 +37853,21 @@ a.cn-record-list__inline-title[data-v-0dc228b6] {
37522
37853
  }
37523
37854
 
37524
37855
 
37525
- .cn-attention-flag[data-v-21e92a64] {
37856
+ .cn-attention-flag[data-v-7e3434fc] {
37526
37857
  display: flex;
37527
37858
  flex-direction: column;
37528
37859
  gap: 4px;
37529
37860
  padding: 4px 0;
37530
37861
  }
37531
- .cn-attention-flag__line[data-v-21e92a64],
37532
- .cn-attention-flag__act[data-v-21e92a64] {
37862
+ .cn-attention-flag__line[data-v-7e3434fc],
37863
+ .cn-attention-flag__act[data-v-7e3434fc] {
37533
37864
  display: flex;
37534
37865
  flex-wrap: wrap;
37535
37866
  align-items: center;
37536
37867
  gap: 8px;
37537
37868
  margin: 0;
37538
37869
  }
37539
- .cn-attention-flag__list[data-v-21e92a64] {
37870
+ .cn-attention-flag__list[data-v-7e3434fc] {
37540
37871
  display: flex;
37541
37872
  flex-direction: column;
37542
37873
  gap: 2px;
@@ -37544,21 +37875,31 @@ a.cn-record-list__inline-title[data-v-0dc228b6] {
37544
37875
  padding: 0;
37545
37876
  list-style: none;
37546
37877
  }
37547
- .cn-attention-flag__list li[data-v-21e92a64] {
37878
+ .cn-attention-flag__list li[data-v-7e3434fc] {
37548
37879
  display: flex;
37549
37880
  flex-wrap: wrap;
37550
37881
  gap: 8px;
37551
37882
  }
37552
- .cn-attention-flag__lead[data-v-21e92a64] {
37883
+ .cn-attention-flag__lead[data-v-7e3434fc] {
37553
37884
  font-weight: bold;
37554
37885
  }
37555
- .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;
37556
37893
  color: var(--color-text-maxcontrast);
37894
+ font-size: 13px;
37557
37895
  }
37558
- .cn-attention-flag__due[data-v-21e92a64] {
37896
+ .cn-attention-flag__muted[data-v-7e3434fc] {
37897
+ color: var(--color-text-maxcontrast);
37898
+ }
37899
+ .cn-attention-flag__due[data-v-7e3434fc] {
37559
37900
  color: var(--color-warning-text, var(--color-main-text));
37560
37901
  }
37561
- .cn-attention-flag__refusal[data-v-21e92a64] {
37902
+ .cn-attention-flag__refusal[data-v-7e3434fc] {
37562
37903
  margin: 0;
37563
37904
  color: var(--color-error-text, var(--color-error));
37564
37905
  }
@@ -40491,7 +40832,7 @@ to {
40491
40832
  }
40492
40833
 
40493
40834
 
40494
- .cn-flow-detail[data-v-05e8747a] {
40835
+ .cn-flow-detail[data-v-0226122e] {
40495
40836
  position: relative;
40496
40837
  block-size: 100%;
40497
40838
  inline-size: 100%;
@@ -40504,10 +40845,10 @@ to {
40504
40845
  /* The canvas paints an opaque main-background of its own, which sat exactly
40505
40846
  on top of the grid above. Cleared here, for flow editors only — other
40506
40847
  CnGraphCanvas consumers keep their solid ground. */
40507
- .cn-flow-detail[data-v-05e8747a] .cn-graph-canvas {
40848
+ .cn-flow-detail[data-v-0226122e] .cn-graph-canvas {
40508
40849
  background: transparent;
40509
40850
  }
40510
- .cn-flow-detail__toolbar[data-v-05e8747a] {
40851
+ .cn-flow-detail__toolbar[data-v-0226122e] {
40511
40852
  position: absolute;
40512
40853
  inset-block-start: 12px;
40513
40854
  inset-inline-end: 12px;
@@ -40525,14 +40866,14 @@ to {
40525
40866
  /* The toolbar while a run is being opened: the spinner and its sentence sit
40526
40867
  where the editor's buttons were, so the strip keeps its height and the zoom
40527
40868
  controls do not jump sideways when the run arrives. */
40528
- .cn-flow-detail__toolbar-status[data-v-05e8747a] {
40869
+ .cn-flow-detail__toolbar-status[data-v-0226122e] {
40529
40870
  display: flex;
40530
40871
  gap: 6px;
40531
40872
  align-items: center;
40532
40873
  padding-inline: 8px;
40533
40874
  color: var(--color-text-maxcontrast);
40534
40875
  }
40535
- .cn-flow-detail__toolbar-group[data-v-05e8747a] {
40876
+ .cn-flow-detail__toolbar-group[data-v-0226122e] {
40536
40877
  display: flex;
40537
40878
  align-items: center;
40538
40879
  margin-inline-start: 4px;
@@ -40557,7 +40898,7 @@ to {
40557
40898
  So the rule states the absence, and `.cn-flow-detail` in front of it raises
40558
40899
  the specificity above any same-name copy, which makes this independent of
40559
40900
  which bundle a page happens to inject last. */
40560
- .cn-flow-detail .cn-flow-detail__node[data-v-05e8747a] {
40901
+ .cn-flow-detail .cn-flow-detail__node[data-v-0226122e] {
40561
40902
  display: flex;
40562
40903
  flex-direction: column;
40563
40904
  gap: 2px;
@@ -40611,7 +40952,7 @@ to {
40611
40952
  selector stops matching does not warn, it just silently stops painting. The
40612
40953
  class kept appearing in the shipped stylesheet and source maps, so it read
40613
40954
  as present while unknown nodes quietly lost their error border. */
40614
- .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) {
40615
40956
  border-color: var(--color-error);
40616
40957
  }
40617
40958
 
@@ -40630,33 +40971,33 @@ to {
40630
40971
  sideways, which is a layout change rather than a fix for one. `:has()` is how
40631
40972
  a rule on the body reaches the wrapper — the same mechanism the unknown-step
40632
40973
  border below already uses. */
40633
- .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) {
40634
40975
  box-shadow: inset 4px 0 0 0 var(--color-success);
40635
40976
  }
40636
- .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) {
40637
40978
  box-shadow: inset 4px 0 0 0 var(--color-primary-element);
40638
40979
  }
40639
- .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) {
40640
40981
  box-shadow: inset 4px 0 0 0 var(--color-error);
40641
40982
  }
40642
- .cn-flow-detail__node-type[data-v-05e8747a] {
40983
+ .cn-flow-detail__node-type[data-v-0226122e] {
40643
40984
  font-weight: 600;
40644
40985
  white-space: nowrap;
40645
40986
  overflow: hidden;
40646
40987
  text-overflow: ellipsis;
40647
40988
  }
40648
- .cn-flow-detail__node-label[data-v-05e8747a],
40649
- .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] {
40650
40991
  font-size: 0.85em;
40651
40992
  color: var(--color-text-maxcontrast);
40652
40993
  white-space: nowrap;
40653
40994
  overflow: hidden;
40654
40995
  text-overflow: ellipsis;
40655
40996
  }
40656
- .cn-flow-detail__node-warning[data-v-05e8747a] {
40997
+ .cn-flow-detail__node-warning[data-v-0226122e] {
40657
40998
  color: var(--color-error-text);
40658
40999
  }
40659
- .cn-flow-detail__empty[data-v-05e8747a] {
41000
+ .cn-flow-detail__empty[data-v-0226122e] {
40660
41001
  position: absolute;
40661
41002
  inset: 0;
40662
41003
  pointer-events: none;
@@ -40674,31 +41015,31 @@ to {
40674
41015
  rule setting it would silently erase whichever loses the cascade. `outline`
40675
41016
  is a separate channel: run state and role accent paint together. It also
40676
41017
  costs no layout — an outline never moves the node's body. */
40677
- .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) {
40678
41019
  outline: 2px solid var(--color-success);
40679
41020
  outline-offset: 1px;
40680
41021
  }
40681
- .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) {
40682
41023
  outline: 3px solid var(--color-success);
40683
41024
  outline-offset: 1px;
40684
- 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;
40685
41026
  }
40686
- .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) {
40687
41028
  outline: 3px solid var(--color-error);
40688
41029
  outline-offset: 1px;
40689
41030
  }
40690
41031
 
40691
41032
  /* Visibly WAITING: dashed (a different shape from executing and from failed,
40692
41033
  so the states differ by more than hue) and pulsing slowly. */
40693
- .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) {
40694
41035
  outline: 3px dashed var(--color-warning);
40695
41036
  outline-offset: 1px;
40696
- 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;
40697
41038
  }
40698
41039
 
40699
41040
  /* The halo: the outline breathes outwards and fades — a pulse with no layout
40700
41041
  cost, on the wrapper the role accents already reach through `:has()`. */
40701
- @keyframes cn-flow-detail-run-halo-05e8747a {
41042
+ @keyframes cn-flow-detail-run-halo-0226122e {
40702
41043
  0%,
40703
41044
  100% {
40704
41045
  outline-offset: 1px;
@@ -40709,7 +41050,7 @@ to {
40709
41050
  outline-color: transparent;
40710
41051
  }
40711
41052
  }
40712
- @keyframes cn-flow-detail-run-hold-05e8747a {
41053
+ @keyframes cn-flow-detail-run-hold-0226122e {
40713
41054
  0%,
40714
41055
  100% {
40715
41056
  outline-color: var(--color-warning);
@@ -40720,7 +41061,7 @@ to {
40720
41061
  }
40721
41062
 
40722
41063
  /* The state in words — never colour alone (WCAG 1.4.1). */
40723
- .cn-flow-detail__node-run[data-v-05e8747a] {
41064
+ .cn-flow-detail__node-run[data-v-0226122e] {
40724
41065
  font-size: 0.75em;
40725
41066
  font-weight: 600;
40726
41067
  text-transform: uppercase;
@@ -40730,18 +41071,18 @@ to {
40730
41071
  text-overflow: ellipsis;
40731
41072
  color: var(--color-success-text, var(--color-success));
40732
41073
  }
40733
- .cn-flow-detail__node-run--failed[data-v-05e8747a] {
41074
+ .cn-flow-detail__node-run--failed[data-v-0226122e] {
40734
41075
  color: var(--color-error-text, var(--color-error));
40735
41076
  }
40736
- .cn-flow-detail__node-run--hold[data-v-05e8747a] {
41077
+ .cn-flow-detail__node-run--hold[data-v-0226122e] {
40737
41078
  color: var(--color-warning-text, var(--color-warning));
40738
41079
  }
40739
41080
 
40740
41081
  /* ---- Run state on the edges ------------------------------------------- */
40741
41082
 
40742
41083
  /* Lines already walked keep a quiet success stroke for the rest of the run. */
40743
- .cn-flow-detail[data-v-05e8747a] .vue-flow__edge.cn-flow-detail__edge--run-traced .vue-flow__edge-path,
40744
- .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 {
40745
41086
  stroke: var(--color-success);
40746
41087
  }
40747
41088
 
@@ -40756,13 +41097,13 @@ to {
40756
41097
  for the hop being animated: denser, thicker, faster, and in the success
40757
41098
  colour. When the hop ends the class leaves and the pulse returns to its
40758
41099
  quiet self. */
40759
- .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 {
40760
41101
  stroke: var(--color-success);
40761
41102
  stroke-width: 4;
40762
41103
  stroke-dasharray: 10 22;
40763
- animation: cn-flow-detail-run-trace-05e8747a 0.4s linear infinite;
41104
+ animation: cn-flow-detail-run-trace-0226122e 0.4s linear infinite;
40764
41105
  }
40765
- @keyframes cn-flow-detail-run-trace-05e8747a {
41106
+ @keyframes cn-flow-detail-run-trace-0226122e {
40766
41107
  from {
40767
41108
  stroke-dashoffset: 32;
40768
41109
  }
@@ -40777,8 +41118,8 @@ to {
40777
41118
  CnFlowEdge already hides its pulse path entirely under this query, which
40778
41119
  takes the trace's travel with it. */
40779
41120
  @media (prefers-reduced-motion: reduce) {
40780
- .cn-flow-detail[data-v-05e8747a] .cn-flow-node:has(.cn-flow-detail__node--run-active),
40781
- .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) {
40782
41123
  animation: none;
40783
41124
  }
40784
41125
  }
@@ -48916,7 +49257,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
48916
49257
 
48917
49258
 
48918
49259
  /* The board page's padding, so the title stands where every board page puts it (DqFlow). */
48919
- .cn-flow-board[data-v-d3a5e726] {
49260
+ .cn-flow-board[data-v-4510ff10] {
48920
49261
  display: flex;
48921
49262
  flex-direction: column;
48922
49263
  gap: 12px;
@@ -48924,53 +49265,55 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
48924
49265
  min-height: 100%;
48925
49266
  box-sizing: border-box;
48926
49267
  }
48927
- .cn-flow-board__header[data-v-d3a5e726] {
49268
+ .cn-flow-board__header[data-v-4510ff10] {
48928
49269
  display: flex;
48929
49270
  flex-wrap: wrap;
48930
49271
  align-items: center;
48931
49272
  justify-content: space-between;
48932
49273
  gap: 12px;
48933
49274
  }
48934
- .cn-flow-board__heading[data-v-d3a5e726] {
49275
+ .cn-flow-board__heading[data-v-4510ff10] {
48935
49276
  display: flex;
48936
49277
  align-items: center;
48937
49278
  gap: 10px;
48938
49279
  min-width: 0;
48939
49280
  }
48940
- .cn-flow-board__title[data-v-d3a5e726] {
49281
+ .cn-flow-board__title[data-v-4510ff10] {
48941
49282
  margin: 0;
48942
49283
  font-size: 24px;
48943
49284
  font-weight: 600;
48944
49285
  }
48945
- .cn-flow-board__actions[data-v-d3a5e726] {
49286
+ .cn-flow-board__actions[data-v-4510ff10] {
48946
49287
  display: flex;
48947
49288
  flex-wrap: wrap;
48948
49289
  align-items: center;
48949
49290
  gap: 8px;
48950
49291
  }
48951
- .cn-flow-board__test-intro[data-v-d3a5e726] {
49292
+ .cn-flow-board__test-intro[data-v-4510ff10] {
48952
49293
  margin: 0 0 12px;
48953
49294
  color: var(--color-text-maxcontrast);
48954
49295
  }
48955
- .cn-flow-board__path[data-v-d3a5e726] {
49296
+ .cn-flow-board__path[data-v-4510ff10] {
48956
49297
  margin: 0;
48957
49298
  color: var(--color-text-maxcontrast);
48958
49299
  }
48959
- .cn-flow-board__crumb[data-v-d3a5e726] {
49300
+ .cn-flow-board__crumb[data-v-4510ff10] {
48960
49301
  color: var(--color-main-text);
48961
49302
  text-decoration: underline;
48962
49303
  }
48963
- .cn-flow-board__body[data-v-d3a5e726] {
49304
+ .cn-flow-board__body[data-v-4510ff10] {
48964
49305
  display: grid;
48965
49306
  grid-template-columns: minmax(0, 1fr) 340px;
48966
49307
  gap: 16px;
48967
49308
  flex: 1 1 auto;
48968
49309
  min-height: 520px;
48969
49310
  }
48970
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-d3a5e726] {
48971
- 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;
48972
49315
  }
48973
- .cn-flow-board__card[data-v-d3a5e726] {
49316
+ .cn-flow-board__card[data-v-4510ff10] {
48974
49317
  display: flex;
48975
49318
  flex-direction: column;
48976
49319
  gap: 12px;
@@ -48980,34 +49323,40 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
48980
49323
  border-radius: 12px;
48981
49324
  background: var(--color-main-background);
48982
49325
  }
48983
- .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] {
48984
49330
  padding: 0;
48985
49331
  overflow: hidden;
48986
- background-color: var(--color-background-hover);
48987
- 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);
48988
49334
  background-size: 16px 16px;
48989
49335
  }
48990
- .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 {
48991
49342
  flex: 1 1 auto;
48992
49343
  min-height: 0;
48993
49344
  }
48994
- .cn-flow-board__card-title[data-v-d3a5e726] {
49345
+ .cn-flow-board__card-title[data-v-4510ff10] {
48995
49346
  margin: 0;
48996
49347
  font-size: 16px;
48997
49348
  font-weight: 600;
48998
49349
  }
48999
- .cn-flow-board__subtitle[data-v-d3a5e726] {
49350
+ .cn-flow-board__subtitle[data-v-4510ff10] {
49000
49351
  margin: 4px 0 0;
49001
49352
  font-size: 14px;
49002
49353
  font-weight: 600;
49003
49354
  }
49004
- .cn-flow-board__eyebrow[data-v-d3a5e726] {
49005
- margin: 0;
49006
- color: var(--color-text-maxcontrast);
49007
- font-size: 13px;
49355
+ .cn-flow-board__step-type[data-v-4510ff10] {
49356
+ align-self: flex-start;
49008
49357
  }
49009
- .cn-flow-board__validity[data-v-d3a5e726],
49010
- .cn-flow-board__legend[data-v-d3a5e726] {
49358
+ .cn-flow-board__validity[data-v-4510ff10],
49359
+ .cn-flow-board__legend[data-v-4510ff10] {
49011
49360
  display: flex;
49012
49361
  flex-wrap: wrap;
49013
49362
  gap: 8px;
@@ -49016,30 +49365,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49016
49365
  border-top: 1px solid var(--color-border);
49017
49366
  background: var(--color-main-background);
49018
49367
  }
49019
- .cn-flow-board__validity--success[data-v-d3a5e726] {
49368
+ .cn-flow-board__validity--success[data-v-4510ff10] {
49020
49369
  color: var(--color-success-text);
49021
49370
  }
49022
- .cn-flow-board__validity--warning[data-v-d3a5e726] {
49371
+ .cn-flow-board__validity--warning[data-v-4510ff10] {
49023
49372
  color: var(--color-warning-text);
49024
49373
  }
49025
- .cn-flow-board__validity--error[data-v-d3a5e726] {
49374
+ .cn-flow-board__validity--error[data-v-4510ff10] {
49026
49375
  color: var(--color-error-text);
49027
49376
  }
49028
- .cn-flow-board__palette-group[data-v-d3a5e726] {
49377
+ .cn-flow-board__palette-group[data-v-4510ff10] {
49029
49378
  display: flex;
49030
49379
  flex-direction: column;
49031
- gap: 4px;
49380
+ gap: 6px;
49032
49381
  }
49033
- .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] {
49034
49385
  margin: 0;
49035
49386
  color: var(--color-text-maxcontrast);
49036
- font-size: 13px;
49387
+ font-size: 12px;
49037
49388
  font-weight: 600;
49389
+ letter-spacing: 0.06em;
49390
+ text-transform: uppercase;
49038
49391
  }
49039
- .cn-flow-board__palette-list[data-v-d3a5e726] {
49392
+ .cn-flow-board__palette-list[data-v-4510ff10] {
49040
49393
  display: flex;
49041
49394
  flex-direction: column;
49042
- gap: 4px;
49395
+ gap: 6px;
49043
49396
  margin: 0;
49044
49397
  padding: 0;
49045
49398
  list-style: none;
@@ -49047,33 +49400,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49047
49400
 
49048
49401
  /* A step is a plain 400 label (DqFlow "Status zetten"); the nldesign theme
49049
49402
  sets every button's weight with `!important` through its token. */
49050
- .cn-flow-board__palette-step[data-v-d3a5e726] {
49403
+ .cn-flow-board__palette-step[data-v-4510ff10] {
49051
49404
  --nldesign-component-button-font-weight: 400;
49052
49405
  width: 100%;
49053
49406
  min-height: 34px;
49054
- padding: 6px 10px;
49407
+ padding: 8px 10px;
49055
49408
  border: 1px solid var(--color-border);
49056
49409
  border-radius: 8px;
49057
49410
  background: var(--color-main-background);
49058
49411
  color: var(--color-main-text);
49412
+ font-size: 14px;
49059
49413
  font-weight: 400;
49060
49414
  text-align: start;
49061
49415
  cursor: pointer;
49062
49416
  }
49063
- .cn-flow-board__palette-step[data-v-d3a5e726]:hover {
49417
+ .cn-flow-board__palette-step[data-v-4510ff10]:hover {
49064
49418
  background: var(--color-background-hover);
49065
49419
  }
49066
- .cn-flow-board__palette-note[data-v-d3a5e726] {
49420
+ .cn-flow-board__palette-note[data-v-4510ff10] {
49067
49421
  margin: 0;
49068
49422
  color: var(--color-text-maxcontrast);
49069
49423
  font-size: 13px;
49070
49424
  }
49071
- .cn-flow-board__tabs[data-v-d3a5e726] {
49425
+ .cn-flow-board__tabs[data-v-4510ff10] {
49072
49426
  display: flex;
49073
49427
  gap: 4px;
49074
49428
  border-bottom: 1px solid var(--color-border);
49075
49429
  }
49076
- .cn-flow-board__tab[data-v-d3a5e726] {
49430
+ .cn-flow-board__tab[data-v-4510ff10] {
49077
49431
  display: inline-flex;
49078
49432
  align-items: center;
49079
49433
  gap: 6px;
@@ -49085,12 +49439,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49085
49439
  color: var(--color-main-text);
49086
49440
  cursor: pointer;
49087
49441
  }
49088
- .cn-flow-board__tab--active[data-v-d3a5e726] {
49442
+ .cn-flow-board__tab--active[data-v-4510ff10] {
49089
49443
  border-color: var(--color-border);
49090
49444
  border-bottom-color: var(--color-main-background);
49091
49445
  font-weight: 600;
49092
49446
  }
49093
- .cn-flow-board__tab-count[data-v-d3a5e726] {
49447
+ .cn-flow-board__tab-count[data-v-4510ff10] {
49094
49448
  min-width: 18px;
49095
49449
  padding: 0 5px;
49096
49450
  border-radius: 9px;
@@ -49099,44 +49453,44 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
49099
49453
  line-height: 18px;
49100
49454
  text-align: center;
49101
49455
  }
49102
- .cn-flow-board__settings[data-v-d3a5e726] {
49456
+ .cn-flow-board__settings[data-v-4510ff10] {
49103
49457
  display: flex;
49104
49458
  flex-direction: column;
49105
49459
  gap: 10px;
49106
49460
  margin: 0;
49107
49461
  }
49108
- .cn-flow-board__setting dt[data-v-d3a5e726] {
49462
+ .cn-flow-board__setting dt[data-v-4510ff10] {
49109
49463
  font-size: 13px;
49110
49464
  color: var(--color-text-maxcontrast);
49111
49465
  }
49112
- .cn-flow-board__setting dd[data-v-d3a5e726] {
49466
+ .cn-flow-board__setting dd[data-v-4510ff10] {
49113
49467
  margin: 2px 0 0;
49114
49468
  font-weight: 600;
49115
49469
  overflow-wrap: anywhere;
49116
49470
  }
49117
- .cn-flow-board__inspector-empty[data-v-d3a5e726] {
49471
+ .cn-flow-board__inspector-empty[data-v-4510ff10] {
49118
49472
  display: flex;
49119
49473
  flex-direction: column;
49120
49474
  align-items: flex-start;
49121
49475
  gap: 12px;
49122
49476
  color: var(--color-text-maxcontrast);
49123
49477
  }
49124
- .cn-flow-board__inspector-empty p[data-v-d3a5e726] {
49478
+ .cn-flow-board__inspector-empty p[data-v-4510ff10] {
49125
49479
  margin: 0;
49126
49480
  }
49127
- .cn-flow-board__step-actions[data-v-d3a5e726],
49128
- .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] {
49129
49483
  display: flex;
49130
49484
  flex-wrap: wrap;
49131
49485
  gap: 8px;
49132
49486
  }
49133
- .cn-flow-board__step-footer[data-v-d3a5e726] {
49487
+ .cn-flow-board__step-footer[data-v-4510ff10] {
49134
49488
  justify-content: space-between;
49135
49489
  margin-top: auto;
49136
49490
  }
49137
49491
  @media (max-width: 1024px) {
49138
- .cn-flow-board__body[data-v-d3a5e726],
49139
- .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] {
49140
49494
  grid-template-columns: minmax(0, 1fr);
49141
49495
  }
49142
49496
  }