@conduction/nextcloud-vue 2.103.0 → 2.105.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 (154) hide show
  1. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +23 -0
  2. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +94 -72
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  5. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  6. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  7. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +1 -1
  8. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  9. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +18 -1
  10. package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
  11. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +3 -3
  12. package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
  13. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  14. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +93 -1
  15. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  16. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  17. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +6 -3
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  20. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +3 -3
  21. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  22. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +39 -2
  23. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  24. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +14 -0
  25. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  26. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +99 -3
  27. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  28. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  29. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
  30. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +1 -1
  31. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  32. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  33. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +1 -1
  34. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +2 -0
  35. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -1
  36. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +32 -29
  37. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -1
  38. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
  39. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +73 -4
  40. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
  41. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +74 -27
  42. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
  43. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +213 -4
  44. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  45. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +105 -85
  46. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  47. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +10 -4
  48. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  49. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js +9 -0
  50. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js.map +1 -0
  51. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js +88 -0
  52. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js.map +1 -0
  53. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js +39 -0
  54. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js.map +1 -0
  55. package/dist/esm/components/CnObjectRow/CnObjectRow.vue.js +1 -1
  56. package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js +57 -5
  57. package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js.map +1 -1
  58. package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js +37 -4
  59. package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js.map +1 -1
  60. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +1 -1
  61. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -1
  62. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +3 -3
  63. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -1
  64. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  65. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  66. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +16 -4
  67. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  68. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue.js +1 -1
  69. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue2.js.map +1 -1
  70. package/dist/esm/components/CnUserSettingsDialog/CnUserSettingsDialog.vue3.js.map +1 -1
  71. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
  72. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +11 -0
  73. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
  74. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +4 -4
  75. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
  76. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +16 -14
  77. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  78. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
  79. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +18 -2
  80. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
  81. package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
  82. package/dist/esm/composables/indexSources.js +7 -7
  83. package/dist/esm/composables/indexSources.js.map +1 -1
  84. package/dist/esm/index.js +1 -0
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/l10n/en.json.js +8 -1
  87. package/dist/esm/l10n/en.json.js.map +1 -1
  88. package/dist/esm/l10n/nl.json.js +8 -1
  89. package/dist/esm/l10n/nl.json.js.map +1 -1
  90. package/dist/esm/library-style.js +1 -1
  91. package/dist/esm/nextcloud-vue.css +680 -328
  92. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  93. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  94. package/dist/esm/utils/nextcloudApps.js +45 -0
  95. package/dist/esm/utils/nextcloudApps.js.map +1 -0
  96. package/dist/esm/utils/nextcloudDirectory.js +18 -1
  97. package/dist/esm/utils/nextcloudDirectory.js.map +1 -1
  98. package/dist/esm/utils/scopeListLayout.js +9 -2
  99. package/dist/esm/utils/scopeListLayout.js.map +1 -1
  100. package/dist/esm/utils/sortOrder.js +61 -0
  101. package/dist/esm/utils/sortOrder.js.map +1 -0
  102. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  103. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  104. package/dist/esm/utils/visibleWhen.js +12 -4
  105. package/dist/esm/utils/visibleWhen.js.map +1 -1
  106. package/dist/nextcloud-vue.cjs.js +4046 -2999
  107. package/dist/nextcloud-vue.cjs.js.map +2 -2
  108. package/dist/nextcloud-vue.css +680 -328
  109. package/l10n/en.json +8 -1
  110. package/l10n/nl.json +8 -1
  111. package/package.json +1 -1
  112. package/src/components/CnActionsBar/CnActionsBar.md +1 -0
  113. package/src/components/CnActionsBar/CnActionsBar.vue +39 -2
  114. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +1 -1
  115. package/src/components/CnAppRoot/CnAppRoot.md +1 -1
  116. package/src/components/CnAppRoot/CnAppRoot.vue +21 -4
  117. package/src/components/CnChartWidget/CnChartWidget.md +2 -0
  118. package/src/components/CnChartWidget/CnChartWidget.vue +93 -1
  119. package/src/components/CnDashboardPage/CnDashboardPage.vue +9 -6
  120. package/src/components/CnDataTable/CnDataTable.md +1 -0
  121. package/src/components/CnDataTable/CnDataTable.vue +49 -0
  122. package/src/components/CnDetailPage/CnDetailPage.md +2 -0
  123. package/src/components/CnDetailPage/CnDetailPage.vue +99 -3
  124. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +1 -1
  125. package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +4 -1
  126. package/src/components/CnFlowsPage/CnFlowBoard.vue +132 -8
  127. package/src/components/CnIndexPage/CnIndexPage.md +5 -2
  128. package/src/components/CnIndexPage/CnIndexPage.vue +228 -9
  129. package/src/components/CnIndexPage/useSelfFetchList.js +9 -3
  130. package/src/components/CnNoticeWidget/CnNoticeWidget.vue +153 -0
  131. package/src/components/CnNoticeWidget/index.js +12 -0
  132. package/src/components/CnObjectRow/CnObjectRow.vue +95 -1
  133. package/src/components/CnSettingsField/CnSettingsField.vue +4 -1
  134. package/src/components/CnSetupWizard/CnSetupWizard.vue +9 -1
  135. package/src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue +7 -2
  136. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +15 -4
  137. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  138. package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +18 -2
  139. package/src/components/index.js +1 -0
  140. package/src/composables/indexSources.js +7 -7
  141. package/src/css/dialog.css +20 -2
  142. package/src/css/index-page.css +19 -0
  143. package/src/css/look-board-detail.css +77 -4
  144. package/src/css/look-board-index.css +84 -2
  145. package/src/css/look-board.css +97 -12
  146. package/src/index.js +1 -0
  147. package/src/schemas/app-manifest-v2.schema.json +58 -3
  148. package/src/utils/libraryWidgetKeys.js +1 -0
  149. package/src/utils/nextcloudApps.js +50 -0
  150. package/src/utils/nextcloudDirectory.js +17 -0
  151. package/src/utils/scopeListLayout.js +9 -2
  152. package/src/utils/sortOrder.js +58 -0
  153. package/src/utils/validateManifestV2.compiled.js +3 -3
  154. package/src/utils/visibleWhen.js +12 -4
@@ -94,6 +94,8 @@
94
94
  /* Cards. */
95
95
  --cn-board-card-radius: 12px;
96
96
  --cn-board-card-padding: 20px 22px;
97
+ /* The side inset of a dashboard card: its title and its rows. */
98
+ --cn-board-dashboard-card-inset: 24px;
97
99
  /* Hairline inside a card, and the soft secondary text. */
98
100
  --cn-board-hairline: var(--color-border);
99
101
  --cn-board-text-soft: var(--color-main-text);
@@ -123,6 +125,23 @@
123
125
  margin-inline: 0;
124
126
  }
125
127
 
128
+ /* The page shows the content area's ground (the theme's content surface,
129
+ light grey on the boards) and draws none of its own; only its cards are
130
+ white. A theme rule that paints every `[class*="panel"]` with the main
131
+ background (the nldesign theme's element overrides) caught an index page
132
+ with a side panel (`cn-index-page--with-side-panel`) and drew the whole
133
+ page white (DqTeamwachtrij). That rule carries an id through
134
+ `:not(#header *)`, so this one names an id in `:not()` to outrank it.
135
+ @spec openspec/changes/board-page-ground/specs/board-page-ground/spec.md#requirement-a-board-page-draws-no-ground-of-its-own */
136
+ .cn-look-board .cn-index-page:not(#cn-board-page-ground):not(.cn-look-nextcloud *),
137
+ .cn-look-board .cn-detail-page:not(#cn-board-page-ground):not(.cn-look-nextcloud *),
138
+ .cn-look-board .cn-dashboard-page:not(#cn-board-page-ground):not(.cn-look-nextcloud *),
139
+ .cn-look-board .cn-settings-page:not(#cn-board-page-ground):not(.cn-look-nextcloud *),
140
+ .cn-look-board .cn-store-page:not(#cn-board-page-ground):not(.cn-look-nextcloud *),
141
+ .cn-look-board .cn-admin-settings-shell:not(#cn-board-page-ground):not(.cn-look-nextcloud *) {
142
+ background-color: transparent;
143
+ }
144
+
126
145
  .cn-look-board .cn-index-page:not(.cn-look-nextcloud *),
127
146
  .cn-look-board .cn-settings-page:not(.cn-look-nextcloud *) {
128
147
  gap: var(--cn-board-section-gap);
@@ -222,6 +241,27 @@
222
241
  gap: 10px;
223
242
  }
224
243
 
244
+ /* The nldesign theme paints every primary and secondary button with
245
+ `!important` through its button tokens: weight 700, and a secondary in
246
+ the primary colour with a primary border on no ground. The board draws
247
+ header buttons at 600, the secondary on the main background with a grey
248
+ border (DqMijnWerk, DqZaak, DqZaken). The look hands the theme those values
249
+ through the same tokens, so the theme's own rules draw the board's button.
250
+ @spec openspec/changes/board-header-buttons-theme/specs/board-header-buttons-theme/spec.md#requirement-board-header-buttons-keep-the-boards-weight-and-ground-under-a-theme */
251
+ .cn-look-board .cn-index-page__header-buttons:not(.cn-look-nextcloud *),
252
+ .cn-look-board .cn-detail-page__header-actions:not(.cn-look-nextcloud *),
253
+ .cn-look-board .cn-dashboard-page__header-actions:not(.cn-look-nextcloud *),
254
+ .cn-look-board .cn-settings-page__header-buttons:not(.cn-look-nextcloud *),
255
+ .cn-look-board .cn-admin-settings-shell__header-buttons:not(.cn-look-nextcloud *),
256
+ .cn-look-board .cn-action-buttons:not(.cn-look-nextcloud *) {
257
+ --nldesign-component-button-font-weight: 600;
258
+ --nldesign-component-button-primary-action-font-weight: 600;
259
+ --nldesign-component-button-secondary-action-color: var(--color-main-text);
260
+ --nldesign-component-button-secondary-action-background-color: var(--color-main-background);
261
+ --nldesign-component-button-secondary-action-border-color: var(--color-border-dark);
262
+ --nldesign-component-button-secondary-action-hover-background-color: var(--color-background-hover);
263
+ }
264
+
225
265
  .cn-look-board .cn-index-page__header-buttons:not(.cn-look-nextcloud *) .button-vue,
226
266
  .cn-look-board .cn-detail-page__header-actions:not(.cn-look-nextcloud *) .button-vue,
227
267
  .cn-look-board .cn-dashboard-page__header-actions:not(.cn-look-nextcloud *) .button-vue,
@@ -1225,6 +1265,20 @@
1225
1265
  line-height: 1.3;
1226
1266
  }
1227
1267
 
1268
+ /* The board draws no rule under a dashboard card's title (DqMijnWerk,
1269
+ DqDashboard, PqMijnWerk): the title sits 20px from the card's top and on
1270
+ the card's 24px side inset, the line its rows start on, 12px above the
1271
+ content. A borderless card has no edge to inset from and keeps the
1272
+ wrapper's padding.
1273
+ @spec openspec/changes/board-dashboard-card-header/specs/board-dashboard-card-header/spec.md#requirement-a-board-dashboard-card-draws-no-header-rule */
1274
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--nc-dashboard) .cn-widget-wrapper__header {
1275
+ border-bottom: none;
1276
+ }
1277
+
1278
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--nc-dashboard):not(.cn-widget-wrapper--borderless) .cn-widget-wrapper__header {
1279
+ padding: 20px var(--cn-board-dashboard-card-inset) 12px;
1280
+ }
1281
+
1228
1282
  /* ---- Record list on a dashboard card (PtDashboard) ---------------------- */
1229
1283
  /* The dashboard's card body is flush, so the rows carry their own inset: the
1230
1284
  board's card pads 24px at the sides and each row 14px, a soft hairline
@@ -1341,6 +1395,47 @@
1341
1395
  display: none;
1342
1396
  }
1343
1397
 
1398
+ /* ---- Widgets that drew their rows on the card's edge -------------------- */
1399
+ /* The card body is flush, so a widget carries the card's side inset itself,
1400
+ as the record list and saved views do. Without it the task list's
1401
+ checkboxes, the step bar and its legend, the week strip's days, the bar
1402
+ list and the activity items started on the card's edge, and a table's
1403
+ first column 16px in (DqMijnWerk "Mijn taken", "Mijn 14 zaken per stap",
1404
+ "Termijnen deze week", "Recente activiteit"; DqDashboard "Zaken per
1405
+ status", "Vastgelopen zaken"). The top inset is 4px: with the header's
1406
+ 12px it is the board's 16px from title to bar. This also replaces the
1407
+ step bar's and week strip's opt-in `content.inset` on a board dashboard.
1408
+ A borderless card stands on the page ground and keeps its rows flush.
1409
+ @spec openspec/changes/board-dashboard-widget-inset/specs/board-dashboard-widget-inset/spec.md#requirement-a-board-dashboard-widget-keeps-the-cards-side-inset */
1410
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-tasks-widget {
1411
+ padding: 0 var(--cn-board-dashboard-card-inset) 10px;
1412
+ }
1413
+
1414
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-stacked-bar,
1415
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-week-strip {
1416
+ box-sizing: border-box;
1417
+ padding: 4px var(--cn-board-dashboard-card-inset) 22px;
1418
+ }
1419
+
1420
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-chart-widget__html {
1421
+ padding: 4px var(--cn-board-dashboard-card-inset) 20px;
1422
+ }
1423
+
1424
+ /* An activity item pads itself 4px, so the body takes 4px less. */
1425
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-nc-widget-widget__body {
1426
+ padding: 0 calc(var(--cn-board-dashboard-card-inset) - 4px) 16px;
1427
+ }
1428
+
1429
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-widget-object-table .cn-data-table th:first-child,
1430
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-widget-object-table .cn-data-table td:first-child {
1431
+ padding-inline-start: var(--cn-board-dashboard-card-inset);
1432
+ }
1433
+
1434
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-widget-object-table .cn-data-table th:last-child,
1435
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-widget-object-table .cn-data-table td:last-child {
1436
+ padding-inline-end: var(--cn-board-dashboard-card-inset);
1437
+ }
1438
+
1344
1439
  /* ---- Week strip (DqMijnWerk "Termijnen deze week") ---------------------- */
1345
1440
  /* The days wrap inside the card instead of scrolling sideways: a row holds
1346
1441
  as many days of at least 120px as the card fits, and the rest go to the
@@ -1360,23 +1455,13 @@
1360
1455
  flex-wrap: wrap;
1361
1456
  }
1362
1457
 
1363
- /* ---- Bar-list and matrix cards (DqDashboard) ----------------------------- */
1364
- /* The board draws no rule under the title of a card holding a bar list or a
1365
- matrix. Other cards, plain stat tiles among them, keep theirs.
1366
- @spec openspec/changes/chart-bar-list-and-matrix/specs/chart-bar-list-and-matrix/spec.md#requirement-board-bar-list-and-matrix-cards-draw-no-header-rule */
1367
- .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:has(.cn-chart-widget__html) .cn-widget-wrapper__header {
1368
- border-bottom: none;
1369
- }
1370
-
1371
1458
  /* ---- A card of boxed stat tiles (DcRapportages "Vergaderingen en efficiëntie") -- */
1372
1459
  /* The board draws this card 22px from its edge on every side but the bottom
1373
- (20px), the header 14px above the tiles, and no rule under the header. The
1374
- card-fit cell padding (8px 14px) plus the grid's own 24px came to 38px at
1375
- the sides, with the wrapper's divider under the title.
1460
+ (20px) and the header 14px above the tiles. The card-fit cell padding
1461
+ (8px 14px) plus the grid's own 24px came to 38px at the sides.
1376
1462
  @spec openspec/changes/stats-box-card-inset/specs/stats-box-card-inset/spec.md#requirement-a-card-of-boxed-stat-tiles-keeps-the-boards-inset */
1377
1463
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:has(.cn-stats-block-widget--tiles-box) .cn-widget-wrapper__header {
1378
1464
  padding: 20px 22px 0;
1379
- border-bottom: none;
1380
1465
  }
1381
1466
 
1382
1467
  .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:has(.cn-stats-block-widget--tiles-box) .cn-widget-wrapper__content {
@@ -1401,7 +1486,11 @@
1401
1486
  * --cn-dialog-eyebrow-tracking letter spacing; 0 by default, 0.06em suits capitals
1402
1487
  */
1403
1488
 
1489
+ /* The nldesign theme sets a dialog's radius with `!important` through its
1490
+ dialog radius token, so the board's 12px goes to that token.
1491
+ @spec openspec/changes/board-dialog-theme/specs/board-dialog-theme/spec.md#requirement-a-board-dialog-keeps-its-frame-and-inset-under-a-theme */
1404
1492
  .cn-dialog-board {
1493
+ --nldesign-component-dialog-border-radius: var(--cn-board-card-radius, 12px);
1405
1494
  --cn-dialog-width: 640px;
1406
1495
  --cn-dialog-danger: var(--color-error);
1407
1496
  --cn-dialog-eyebrow-color: var(--color-primary-element-text, var(--color-main-text));
@@ -1414,16 +1503,26 @@
1414
1503
  background-color: color-mix(in srgb, var(--color-main-text) 45%, transparent);
1415
1504
  }
1416
1505
 
1417
- /* Width by role, capped at the viewport minus a 16px gutter each side. */
1506
+ /* Width by role, capped at the viewport minus a 16px gutter each side. The
1507
+ shadow carries `!important`: the nldesign theme removes every
1508
+ `.modal-container`'s shadow with `!important` and offers no token for it. */
1418
1509
  .modal-mask.cn-dialog-board .modal-wrapper--normal > .modal-container,
1419
1510
  .modal-mask.cn-dialog-board .modal-wrapper .modal-container {
1420
1511
  width: var(--cn-dialog-width);
1421
1512
  max-width: min(var(--cn-dialog-width), calc(100% - 32px));
1422
1513
  border-radius: var(--cn-board-card-radius, 12px);
1423
- box-shadow: 0 12px 40px color-mix(in srgb, var(--color-main-text) 28%, transparent);
1514
+ box-shadow: 0 12px 40px color-mix(in srgb, var(--color-main-text) 28%, transparent) !important;
1424
1515
  overflow: hidden;
1425
1516
  }
1426
1517
 
1518
+ /* The board's header and body carry their own 24px inset. NcDialog pads its
1519
+ container 4px at the top and 12px at the start, which put the title and
1520
+ the fields 36px in; its rule outranked the one above through the scoped
1521
+ `.dialog__modal[data-v-…]`, so this one names the class too. */
1522
+ .modal-mask.cn-dialog-board.dialog__modal .modal-wrapper .modal-container {
1523
+ padding: 0;
1524
+ }
1525
+
1427
1526
  /* The header is ours: NcModal's own close button and NcDialog's heading give
1428
1527
  way (the heading stays as the accessible name, visually hidden). The mask
1429
1528
  class raises the rule above NcButton's `.button-vue[data-v-…]`, whose
@@ -1657,6 +1756,10 @@
1657
1756
  border-radius: 16px 16px 0 0;
1658
1757
  }
1659
1758
 
1759
+ .cn-dialog-board {
1760
+ --nldesign-component-dialog-border-radius: 16px 16px 0 0;
1761
+ }
1762
+
1660
1763
  .modal-mask.cn-dialog-board .modal-container::before {
1661
1764
  content: '';
1662
1765
  display: block;
@@ -2436,8 +2539,15 @@
2436
2539
  gap: 8px;
2437
2540
  }
2438
2541
 
2542
+ /* A chip is a <button>: the nldesign theme sets every button's radius and
2543
+ weight with `!important` through its button tokens, which drew the chips
2544
+ as 8px boxes at 700 (DqTeamwachtrij), so the chip hands its pill radius and
2545
+ 600 to those tokens.
2546
+ @spec openspec/changes/board-chips-theme/specs/board-chips-theme/spec.md#requirement-board-chips-stay-pills-under-a-theme */
2439
2547
  .cn-look-board .cn-saved-views__chips .cn-saved-views__chip,
2440
2548
  .cn-look-board .cn-quick-filter-bar .cn-quick-filter-bar__tab {
2549
+ --nldesign-component-button-border-radius: 19px;
2550
+ --nldesign-component-button-font-weight: 600;
2441
2551
  display: inline-flex;
2442
2552
  align-items: center;
2443
2553
  gap: 8px;
@@ -2540,12 +2650,30 @@
2540
2650
  padding: 0;
2541
2651
  }
2542
2652
 
2543
- /* Filter: a labelled secondary button, 36px, radius 8, with the active count. */
2653
+ /* The toolbar's buttons are the board's neutral control (DqTeamwachtrij
2654
+ "Filter"): the main text at 600 on the main background with a grey border.
2655
+ The nldesign theme paints a secondary button in the primary colour with
2656
+ `!important` through its button tokens, so the bar hands the board's values
2657
+ to those tokens.
2658
+ @spec openspec/changes/board-toolbar-buttons-theme/specs/board-toolbar-buttons-theme/spec.md#requirement-board-toolbar-buttons-are-neutral-under-a-theme */
2659
+ .cn-look-board .cn-actions-bar:not(.cn-look-nextcloud *) {
2660
+ --nldesign-component-button-font-weight: 600;
2661
+ --nldesign-component-button-secondary-action-color: var(--color-main-text);
2662
+ --nldesign-component-button-secondary-action-background-color: var(--color-main-background);
2663
+ --nldesign-component-button-secondary-action-border-color: var(--color-border-dark);
2664
+ --nldesign-component-button-secondary-action-hover-background-color: var(--color-background-hover);
2665
+ }
2666
+
2667
+ /* Filter: a labelled secondary button, 36px, radius 8, 12px at both sides
2668
+ and 14px text, with the active count. NcButton with an icon pads its start
2669
+ 4px and sets 15px. */
2544
2670
  .cn-look-board .cn-actions-bar__filter-button.button-vue,
2545
2671
  .cn-look-board .cn-actions-bar__filter-menu .button-vue {
2546
2672
  min-height: 36px;
2547
2673
  height: 36px;
2674
+ padding: 0 12px;
2548
2675
  border-radius: 8px;
2676
+ font-size: 14px;
2549
2677
  font-weight: 600;
2550
2678
  }
2551
2679
 
@@ -2645,6 +2773,17 @@
2645
2773
  cursor: not-allowed;
2646
2774
  }
2647
2775
 
2776
+ /* `searchPlacement: "toolbar"`: the search field on row 1 takes the room
2777
+ before Filter and the view switch, which keep the end of the row. */
2778
+ .cn-look-board .cn-actions-bar--board > .cn-actions-bar__row--views > .cn-actions-bar__search--toolbar {
2779
+ flex: 1 1 220px;
2780
+ min-width: 180px;
2781
+ }
2782
+
2783
+ .cn-look-board .cn-actions-bar--board > .cn-actions-bar__row--views > .cn-actions-bar__search--toolbar ~ .cn-actions-bar__view-controls {
2784
+ margin-inline-start: 0;
2785
+ }
2786
+
2648
2787
  /* The search field: 40px, radius 8, not a pill. */
2649
2788
  .cn-look-board .cn-actions-bar--board .cn-actions-bar__search {
2650
2789
  flex: 1 1 260px;
@@ -2775,9 +2914,18 @@
2775
2914
 
2776
2915
  /* The header row is near-white on the boards (#fafbfc), not the hover grey,
2777
2916
  its labels 14px muted. The ink also goes to --nldesign-color-on-surface,
2778
- which a theme that forces the body ink onto every span (thematiq) reads. */
2917
+ which a theme that forces the body ink onto every span (thematiq) reads.
2918
+ The nldesign theme paints every `th` with `!important` through its table
2919
+ header tokens, and the sort button in it through its button weight token
2920
+ (bold), so the cell hands the board's ground, ink and weight to those
2921
+ tokens too.
2922
+ @spec openspec/changes/board-table-head-theme/specs/board-table-head-theme/spec.md#requirement-a-board-table-header-keeps-the-boards-ground-ink-and-weight-under-a-theme */
2779
2923
  .cn-look-board .cn-table-container--board .cn-data-table th {
2780
2924
  --nldesign-color-on-surface: var(--color-text-maxcontrast);
2925
+ --nldesign-component-table-header-background-color: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
2926
+ --nldesign-component-table-header-color: var(--color-text-maxcontrast);
2927
+ --nldesign-component-table-header-font-weight: 600;
2928
+ --nldesign-component-button-font-weight: 600;
2781
2929
  padding: 12px 16px;
2782
2930
  border-bottom: 0;
2783
2931
  background: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
@@ -3381,6 +3529,43 @@
3381
3529
  .cn-look-board:has(.cn-index-page) > .app-sidebar__toggle {
3382
3530
  display: none;
3383
3531
  }
3532
+
3533
+ /* The folder pane as a card (DqAfdelingen): 280px, a hairline border, 12px
3534
+ corners, with each folder's count in a grey pill. */
3535
+ .cn-look-board .cn-index-page__folder-pane {
3536
+ flex: 0 0 280px;
3537
+ align-self: flex-start;
3538
+ margin-inline-end: 20px;
3539
+ padding: 14px;
3540
+ border: 1px solid var(--cn-board-hairline);
3541
+ border-radius: var(--cn-board-card-radius, 12px);
3542
+ background: var(--color-main-background);
3543
+ }
3544
+
3545
+ .cn-look-board .cn-index-page__folder-pane .cn-folder-tree__count {
3546
+ display: inline-flex;
3547
+ align-items: center;
3548
+ justify-content: center;
3549
+ min-width: 20px;
3550
+ height: 20px;
3551
+ padding: 0 6px;
3552
+ box-sizing: border-box;
3553
+ border-radius: 10px;
3554
+ background: var(--color-background-dark);
3555
+ color: var(--color-main-text);
3556
+ font-size: 12px;
3557
+ font-weight: 600;
3558
+ }
3559
+
3560
+ /* The selected folder's heading above the list: a 20px title over a soft line. */
3561
+ .cn-look-board .cn-index-page__scope-heading {
3562
+ margin-bottom: 16px;
3563
+ }
3564
+
3565
+ .cn-look-board .cn-index-page__scope-title {
3566
+ font-size: 20px;
3567
+ font-weight: 700;
3568
+ }
3384
3569
  /* ========================================
3385
3570
  @conduction/nextcloud-vue — Table Styles
3386
3571
  ======================================== */
@@ -6193,6 +6378,25 @@ a.cn-kpi-card--board * {
6193
6378
  font-size: 14px;
6194
6379
  }
6195
6380
 
6381
+ /* The selected folder's heading above the list. */
6382
+ .cn-index-page__scope-heading {
6383
+ display: flex;
6384
+ flex-direction: column;
6385
+ gap: 4px;
6386
+ margin-bottom: 12px;
6387
+ }
6388
+
6389
+ .cn-index-page__scope-title {
6390
+ margin: 0;
6391
+ font-size: 1.25em;
6392
+ font-weight: 700;
6393
+ }
6394
+
6395
+ .cn-index-page__scope-subtitle {
6396
+ font-size: 14px;
6397
+ color: var(--color-text-maxcontrast);
6398
+ }
6399
+
6196
6400
  /* Opt-in folder navigation pane (left of the list). */
6197
6401
  .cn-index-page__folder-pane {
6198
6402
  flex: 0 0 240px;
@@ -7735,6 +7939,58 @@ a.cn-kpi-card--board * {
7735
7939
  width: auto;
7736
7940
  }
7737
7941
 
7942
+ /* ---- The follow pill (DqZaak "Volgen") ---------------------------------- */
7943
+ /* The board draws the follow control under the title as a 28px pill: 13px
7944
+ text at 600 on the main background, a grey border, a 14px icon 6px from its
7945
+ label. Live it was Nextcloud's 34px tertiary button, 15px bold in the
7946
+ primary colour. The theme tokens carry the weight and radius past the
7947
+ nldesign theme's `!important`; the follower count takes the same pill.
7948
+ @spec openspec/changes/board-follow-pill/specs/board-follow-pill/spec.md#requirement-the-board-follow-control-is-a-pill */
7949
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue {
7950
+ --nldesign-component-button-font-weight: 600;
7951
+ --nldesign-component-button-border-radius: 14px;
7952
+ --nldesign-component-button-secondary-action-color: var(--color-main-text);
7953
+ --nldesign-component-button-secondary-action-background-color: var(--color-main-background);
7954
+ --nldesign-component-button-secondary-action-border-color: var(--color-border-dark);
7955
+ --nldesign-component-button-secondary-action-hover-background-color: var(--color-background-hover);
7956
+ box-sizing: border-box;
7957
+ height: 28px;
7958
+ min-height: 28px;
7959
+ min-width: 0;
7960
+ padding: 0 10px;
7961
+ border: 1px solid var(--color-border-dark);
7962
+ border-radius: 14px;
7963
+ background: var(--color-main-background);
7964
+ color: var(--color-main-text);
7965
+ font-size: 13px;
7966
+ }
7967
+
7968
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue:hover {
7969
+ background: var(--color-background-hover);
7970
+ }
7971
+
7972
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue .button-vue__wrapper {
7973
+ gap: 6px;
7974
+ }
7975
+
7976
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue .button-vue__icon {
7977
+ width: 14px;
7978
+ min-width: 14px;
7979
+ height: 14px;
7980
+ min-height: 14px;
7981
+ color: var(--color-main-text);
7982
+ }
7983
+
7984
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue .button-vue__icon svg {
7985
+ width: 14px;
7986
+ height: 14px;
7987
+ }
7988
+
7989
+ .cn-look-board .cn-detail-page .cn-follow-toggle .button-vue .button-vue__text {
7990
+ margin: 0;
7991
+ padding: 0;
7992
+ }
7993
+
7738
7994
  /* ---- Folder tabs ------------------------------------------------------- */
7739
7995
 
7740
7996
  /* The strip draws no line of its own (design-system pull request 147). The card under it
@@ -7754,7 +8010,7 @@ a.cn-kpi-card--board * {
7754
8010
  }
7755
8011
 
7756
8012
  /* Tabs sit on the card's top edge; only the open tab reaches 1px further
7757
- down (min-height 35px below), over the card's top border. Top-aligned so
8013
+ down (min-height 38px below), over the card's top border. Top-aligned so
7758
8014
  the inactive tabs do not stretch to the open tab's height. */
7759
8015
  .cn-look-board .cn-tabs--board .cn-tabs__nav {
7760
8016
  align-items: flex-start;
@@ -7788,8 +8044,15 @@ a.cn-kpi-card--board * {
7788
8044
 
7789
8045
  /* `margin: 0`: a tab is a <button>, and Nextcloud's core stylesheet gives
7790
8046
  every `button:not(.button-vue)` `margin: 3px 3px 3px 0`, which put the strip
7791
- 3px low and the tabs 7px apart instead of 4 (DqZaak "Zaakonderdelen"). */
8047
+ 3px low and the tabs 7px apart instead of 4 (DqZaak "Zaakonderdelen").
8048
+ The nldesign theme sets every button's weight and radius with `!important`
8049
+ through its button tokens, which drew every tab bold with four rounded
8050
+ corners; the tab hands the board's values to those tokens. A tab is 37px
8051
+ with or without a count (DqZaak), not 34px without one.
8052
+ @spec openspec/changes/board-tabs-theme/specs/board-tabs-theme/spec.md#requirement-board-folder-tabs-keep-the-boards-weight-shape-and-height-under-a-theme */
7792
8053
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item {
8054
+ --nldesign-component-button-font-weight: 400;
8055
+ --nldesign-component-button-border-radius: 8px 8px 0 0;
7793
8056
  background-color: var(--color-background-dark);
7794
8057
  border: 1px solid var(--color-border-dark);
7795
8058
  border-bottom: none;
@@ -7797,17 +8060,18 @@ a.cn-kpi-card--board * {
7797
8060
  font-size: 14px;
7798
8061
  font-weight: 400;
7799
8062
  margin: 0;
7800
- min-height: 34px;
8063
+ min-height: 37px;
7801
8064
  padding: 8px 12px;
7802
8065
  }
7803
8066
 
7804
8067
  /* The open tab: the panel's colour, bold, and no coloured top edge. */
7805
8068
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item.cn-tabs__nav-item--active {
8069
+ --nldesign-component-button-font-weight: 700;
7806
8070
  background-color: var(--color-main-background);
7807
8071
  border-bottom: 1px solid var(--color-main-background);
7808
8072
  border-top: 1px solid var(--color-border-dark);
7809
8073
  font-weight: 700;
7810
- min-height: 35px;
8074
+ min-height: 38px;
7811
8075
  padding-bottom: 9px;
7812
8076
  padding-top: 8px;
7813
8077
  position: relative;
@@ -7988,6 +8252,19 @@ a.cn-kpi-card--board * {
7988
8252
  padding: 10px 22px 20px;
7989
8253
  }
7990
8254
 
8255
+ /* A stat tile in a side card (DqZaak "Termijn") sits on the card's inset as
8256
+ the board draws it. The card-fit wrapper is flush, and the wrapper's own
8257
+ flush rule loads after this sheet and outranked the side card's padding,
8258
+ so the value sat 11px from the card's edge instead of 23px.
8259
+ @spec openspec/changes/board-dashboard-widget-inset/specs/board-dashboard-widget-inset/spec.md#requirement-a-stat-tile-in-a-detail-side-card-keeps-the-cards-inset */
8260
+ .cn-look-board .cn-detail-page__side .cn-detail-page__card-fit > .cn-widget-wrapper__content:has(> .cn-kpi-card--board) {
8261
+ padding: 10px 22px 20px;
8262
+ }
8263
+
8264
+ .cn-look-board .cn-detail-page__side .cn-detail-page__card-fit > .cn-widget-wrapper__content > .cn-kpi-card--board {
8265
+ padding: 0;
8266
+ }
8267
+
7991
8268
  /* No Actions menu on a side card. */
7992
8269
  .cn-look-board .cn-detail-page__side .cn-widget-wrapper__actions {
7993
8270
  display: none;
@@ -9965,7 +10242,7 @@ a.cn-kpi-card--board * {
9965
10242
  }
9966
10243
 
9967
10244
 
9968
- .cn-chart-widget[data-v-7d7200f4] {
10245
+ .cn-chart-widget[data-v-1c17a450] {
9969
10246
  width: 100%;
9970
10247
  /* A chart FITS its container — it is never a scroll region. apexcharts
9971
10248
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -9987,13 +10264,13 @@ a.cn-kpi-card--board * {
9987
10264
  takes what is left, so the chart is sized by the box rather than sizing it.
9988
10265
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
9989
10266
  the thing that produces the overflow it was meant to prevent. */
9990
- .cn-chart-widget--fit[data-v-7d7200f4] {
10267
+ .cn-chart-widget--fit[data-v-1c17a450] {
9991
10268
  height: 100%;
9992
10269
  min-height: 0;
9993
10270
  display: flex;
9994
10271
  flex-direction: column;
9995
10272
  }
9996
- .cn-chart-widget__canvas[data-v-7d7200f4] {
10273
+ .cn-chart-widget__canvas[data-v-1c17a450] {
9997
10274
  min-width: 0;
9998
10275
  max-width: 100%;
9999
10276
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -10006,14 +10283,14 @@ a.cn-kpi-card--board * {
10006
10283
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
10007
10284
  minimum, which beats the container when the container is narrower. Cap the
10008
10285
  painted box so the inline width cannot push past the widget's border. */
10009
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas,
10010
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas svg {
10286
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas,
10287
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas svg {
10011
10288
  max-width: 100%;
10012
10289
  }
10013
10290
 
10014
10291
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
10015
10292
  descender space under the chart. */
10016
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas svg {
10293
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas svg {
10017
10294
  display: block;
10018
10295
  }
10019
10296
 
@@ -10021,24 +10298,24 @@ a.cn-kpi-card--board * {
10021
10298
  would grow to its content, i.e. to the chart, and the percentage height would
10022
10299
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
10023
10300
  sub-pixel rounding difference from reintroducing a scrollbar. */
10024
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-7d7200f4] {
10301
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-1c17a450] {
10025
10302
  flex: 1 1 0;
10026
10303
  min-height: 0;
10027
10304
  overflow: hidden;
10028
10305
  }
10029
- .cn-chart-widget__fallback[data-v-7d7200f4] {
10306
+ .cn-chart-widget__fallback[data-v-1c17a450] {
10030
10307
  display: flex;
10031
10308
  align-items: center;
10032
10309
  justify-content: center;
10033
10310
  min-height: 150px;
10034
10311
  color: var(--color-text-maxcontrast);
10035
10312
  }
10036
- .cn-chart-widget__html[data-v-7d7200f4] {
10313
+ .cn-chart-widget__html[data-v-1c17a450] {
10037
10314
  display: flex;
10038
10315
  flex-direction: column;
10039
10316
  gap: 12px;
10040
10317
  }
10041
- .cn-chart-widget__bar-list[data-v-7d7200f4] {
10318
+ .cn-chart-widget__bar-list[data-v-1c17a450] {
10042
10319
  display: flex;
10043
10320
  flex-direction: column;
10044
10321
  gap: 10px;
@@ -10046,7 +10323,7 @@ a.cn-kpi-card--board * {
10046
10323
  margin: 0;
10047
10324
  padding: 0;
10048
10325
  }
10049
- .cn-chart-widget__bar-line[data-v-7d7200f4] {
10326
+ .cn-chart-widget__bar-line[data-v-1c17a450] {
10050
10327
  align-items: center;
10051
10328
  background: none;
10052
10329
  border: 0;
@@ -10061,100 +10338,100 @@ a.cn-kpi-card--board * {
10061
10338
  text-align: start;
10062
10339
  width: 100%;
10063
10340
  }
10064
- .cn-chart-widget__bar-line--drill[data-v-7d7200f4] {
10341
+ .cn-chart-widget__bar-line--drill[data-v-1c17a450] {
10065
10342
  border-radius: var(--border-radius-small, 4px);
10066
10343
  cursor: pointer;
10067
10344
  }
10068
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-7d7200f4],
10069
- .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-7d7200f4] {
10345
+ .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-1c17a450],
10346
+ .cn-chart-widget__bar-line--drill:focus-visible .cn-chart-widget__bar-label[data-v-1c17a450] {
10070
10347
  text-decoration: underline;
10071
10348
  }
10072
- .cn-chart-widget__bar-label[data-v-7d7200f4] {
10349
+ .cn-chart-widget__bar-label[data-v-1c17a450] {
10073
10350
  overflow: hidden;
10074
10351
  text-overflow: ellipsis;
10075
10352
  white-space: nowrap;
10076
10353
  }
10077
- .cn-chart-widget__bar-track[data-v-7d7200f4] {
10354
+ .cn-chart-widget__bar-track[data-v-1c17a450] {
10078
10355
  background: var(--color-background-dark);
10079
10356
  border-radius: 4px;
10080
10357
  display: block;
10081
10358
  height: 14px;
10082
10359
  overflow: hidden;
10083
10360
  }
10084
- .cn-chart-widget__bar-fill[data-v-7d7200f4] {
10361
+ .cn-chart-widget__bar-fill[data-v-1c17a450] {
10085
10362
  background: var(--color-primary-element);
10086
10363
  display: block;
10087
10364
  height: 100%;
10088
10365
  }
10089
- .cn-chart-widget__bar-value[data-v-7d7200f4] {
10366
+ .cn-chart-widget__bar-value[data-v-1c17a450] {
10090
10367
  font-weight: 600;
10091
10368
  text-align: end;
10092
10369
  white-space: nowrap;
10093
10370
  }
10094
- .cn-chart-widget__footnote[data-v-7d7200f4] {
10371
+ .cn-chart-widget__footnote[data-v-1c17a450] {
10095
10372
  color: var(--color-text-maxcontrast);
10096
10373
  margin: 0;
10097
10374
  }
10098
10375
 
10099
10376
  /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
10100
10377
  its own line height while the canvas takes the rest of a fitted column. */
10101
- .cn-chart-widget > .cn-chart-widget__footnote[data-v-7d7200f4] {
10378
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-1c17a450] {
10102
10379
  flex: 0 0 auto;
10103
10380
  margin-top: 8px;
10104
10381
  }
10105
- .cn-chart-widget__matrix[data-v-7d7200f4] {
10382
+ .cn-chart-widget__matrix[data-v-1c17a450] {
10106
10383
  display: grid;
10107
10384
  gap: 4px;
10108
10385
  }
10109
- .cn-chart-widget__matrix-row[data-v-7d7200f4] {
10386
+ .cn-chart-widget__matrix-row[data-v-1c17a450] {
10110
10387
  display: contents;
10111
10388
  }
10112
- .cn-chart-widget__matrix-head[data-v-7d7200f4] {
10389
+ .cn-chart-widget__matrix-head[data-v-1c17a450] {
10113
10390
  color: var(--color-text-maxcontrast);
10114
10391
  padding: 6px;
10115
10392
  }
10116
- .cn-chart-widget__matrix-label[data-v-7d7200f4] {
10393
+ .cn-chart-widget__matrix-label[data-v-1c17a450] {
10117
10394
  padding: 10px 6px;
10118
10395
  }
10119
- .cn-chart-widget__matrix-cell[data-v-7d7200f4] {
10396
+ .cn-chart-widget__matrix-cell[data-v-1c17a450] {
10120
10397
  border-radius: 6px;
10121
10398
  padding: 10px;
10122
10399
  text-align: center;
10123
10400
  }
10124
- .cn-chart-widget__matrix-cell--success[data-v-7d7200f4] {
10401
+ .cn-chart-widget__matrix-cell--success[data-v-1c17a450] {
10125
10402
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
10126
10403
  }
10127
- .cn-chart-widget__matrix-cell--warning[data-v-7d7200f4] {
10404
+ .cn-chart-widget__matrix-cell--warning[data-v-1c17a450] {
10128
10405
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
10129
10406
  }
10130
- .cn-chart-widget__matrix-cell--error[data-v-7d7200f4] {
10407
+ .cn-chart-widget__matrix-cell--error[data-v-1c17a450] {
10131
10408
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
10132
10409
  }
10133
- .cn-chart-widget__matrix-cell--danger[data-v-7d7200f4] {
10410
+ .cn-chart-widget__matrix-cell--danger[data-v-1c17a450] {
10134
10411
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
10135
10412
  }
10136
- .cn-chart-widget__matrix-cell--current[data-v-7d7200f4] {
10413
+ .cn-chart-widget__matrix-cell--current[data-v-1c17a450] {
10137
10414
  font-weight: 700;
10138
10415
  outline: 3px solid var(--color-primary-element);
10139
10416
  outline-offset: -3px;
10140
10417
  }
10141
- .cn-chart-widget__matrix-cell--1[data-v-7d7200f4] {
10418
+ .cn-chart-widget__matrix-cell--1[data-v-1c17a450] {
10142
10419
  background: var(--color-primary-element-light);
10143
10420
  color: var(--color-primary-element-light-text);
10144
10421
  }
10145
- .cn-chart-widget__matrix-cell--2[data-v-7d7200f4] {
10422
+ .cn-chart-widget__matrix-cell--2[data-v-1c17a450] {
10146
10423
  background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
10147
10424
  color: var(--color-main-text);
10148
10425
  }
10149
- .cn-chart-widget__matrix-cell--3[data-v-7d7200f4] {
10426
+ .cn-chart-widget__matrix-cell--3[data-v-1c17a450] {
10150
10427
  background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
10151
10428
  color: var(--color-primary-element-text);
10152
10429
  }
10153
- .cn-chart-widget__matrix-cell--4[data-v-7d7200f4] {
10430
+ .cn-chart-widget__matrix-cell--4[data-v-1c17a450] {
10154
10431
  background: var(--color-primary-element);
10155
10432
  color: var(--color-primary-element-text);
10156
10433
  }
10157
- .cn-chart-widget__empty[data-v-7d7200f4] {
10434
+ .cn-chart-widget__empty[data-v-1c17a450] {
10158
10435
  display: flex;
10159
10436
  align-items: center;
10160
10437
  justify-content: center;
@@ -10169,25 +10446,25 @@ a.cn-kpi-card--board * {
10169
10446
  content-sized case; in fit mode they take the leftover space and centre in it
10170
10447
  instead, since the floor would overflow a short tile. Declared after the base
10171
10448
  rules so the cascade order matches specificity (no-descending-specificity). */
10172
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-7d7200f4],
10173
- .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-7d7200f4] {
10449
+ .cn-chart-widget--fit .cn-chart-widget__empty[data-v-1c17a450],
10450
+ .cn-chart-widget--fit .cn-chart-widget__fallback[data-v-1c17a450] {
10174
10451
  flex: 1 1 0;
10175
10452
  min-height: 0;
10176
10453
  }
10177
- .cn-chart-widget__error[data-v-7d7200f4] {
10454
+ .cn-chart-widget__error[data-v-1c17a450] {
10178
10455
  font-size: 14px;
10179
10456
  margin: 0;
10180
10457
  }
10181
10458
 
10182
10459
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
10183
10460
  mirroring the dashboard date-range pill styling. */
10184
- .cn-chart-widget__views[data-v-7d7200f4] {
10461
+ .cn-chart-widget__views[data-v-1c17a450] {
10185
10462
  display: flex;
10186
10463
  gap: 4px;
10187
10464
  margin-bottom: 6px;
10188
10465
  justify-content: flex-end;
10189
10466
  }
10190
- .cn-chart-widget__view-pill[data-v-7d7200f4] {
10467
+ .cn-chart-widget__view-pill[data-v-1c17a450] {
10191
10468
  padding: 2px 10px;
10192
10469
  border: 1px solid var(--color-border);
10193
10470
  border-radius: 999px;
@@ -10196,7 +10473,7 @@ a.cn-kpi-card--board * {
10196
10473
  font-size: 12px;
10197
10474
  cursor: pointer;
10198
10475
  }
10199
- .cn-chart-widget__view-pill--active[data-v-7d7200f4] {
10476
+ .cn-chart-widget__view-pill--active[data-v-1c17a450] {
10200
10477
  background: var(--color-primary-element-light, #aad2ed);
10201
10478
  color: var(--color-main-text);
10202
10479
  border-color: var(--color-primary-element, #0082c9);
@@ -10225,8 +10502,8 @@ a.cn-kpi-card--board * {
10225
10502
  each override below therefore carries one more class than the apexcharts rule
10226
10503
  it replaces, and holds even without the scope attribute this block compiles
10227
10504
  with. */
10228
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light,
10229
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-dark {
10505
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-light,
10506
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-dark {
10230
10507
  background: var(--color-main-background);
10231
10508
  border: 1px solid var(--color-border);
10232
10509
  color: var(--color-main-text);
@@ -10235,8 +10512,8 @@ a.cn-kpi-card--board * {
10235
10512
 
10236
10513
  /* The title row is the date/category header ("Aug 26"). Its own background is
10237
10514
  what made it unreadable rather than merely off-theme. */
10238
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10239
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10515
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10516
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
10240
10517
  background: var(--color-background-hover);
10241
10518
  border-bottom: 1px solid var(--color-border);
10242
10519
  color: var(--color-main-text);
@@ -10245,8 +10522,8 @@ a.cn-kpi-card--board * {
10245
10522
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
10246
10523
  here and only overrides them for its dark theme, so the base rule has to be
10247
10524
  replaced too — not just the theme variants. */
10248
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip,
10249
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip {
10525
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip,
10526
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip {
10250
10527
  background: var(--color-main-background);
10251
10528
  border: 1px solid var(--color-border);
10252
10529
  color: var(--color-main-text);
@@ -10255,55 +10532,55 @@ a.cn-kpi-card--board * {
10255
10532
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
10256
10533
  edge, `::after` the fill. Both need the tokens the box above uses, or the
10257
10534
  arrow keeps the old palette and reads as a stray light wedge. */
10258
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::after,
10259
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-top::after {
10535
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-bottom::after,
10536
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-top::after {
10260
10537
  border-bottom-color: var(--color-main-background);
10261
10538
  border-top-color: var(--color-main-background);
10262
10539
  }
10263
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::before,
10264
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-top::before {
10540
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-bottom::before,
10541
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-xaxistooltip-top::before {
10265
10542
  border-bottom-color: var(--color-border);
10266
10543
  border-top-color: var(--color-border);
10267
10544
  }
10268
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::after,
10269
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-right::after {
10545
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-left::after,
10546
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-right::after {
10270
10547
  border-left-color: var(--color-main-background);
10271
10548
  border-right-color: var(--color-main-background);
10272
10549
  }
10273
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::before,
10274
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-right::before {
10550
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-left::before,
10551
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-yaxistooltip-right::before {
10275
10552
  border-left-color: var(--color-border);
10276
10553
  border-right-color: var(--color-border);
10277
10554
  }
10278
10555
 
10279
10556
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
10280
10557
  hardcoded `#fff` panel under inherited near-white text. */
10281
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-menu {
10558
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-menu {
10282
10559
  background: var(--color-main-background);
10283
10560
  border: 1px solid var(--color-border);
10284
10561
  color: var(--color-main-text);
10285
10562
  }
10286
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-menu .apexcharts-menu-item:hover {
10563
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-menu .apexcharts-menu-item:hover {
10287
10564
  background: var(--color-background-hover);
10288
10565
  }
10289
10566
 
10290
10567
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
10291
10568
  vanishes against a dark background. One selector per icon class, matching
10292
10569
  apexcharts' own list, to clear its (0,3,1) hover rules. */
10293
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon svg,
10294
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon svg,
10295
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon svg,
10296
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10297
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10298
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
10570
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-menu-icon svg,
10571
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-reset-icon svg,
10572
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-selection-icon svg,
10573
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10574
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10575
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomout-icon svg {
10299
10576
  fill: var(--color-text-maxcontrast);
10300
10577
  }
10301
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10302
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10303
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10304
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10305
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10306
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
10578
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10579
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10580
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10581
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10582
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10583
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-toolbar .apexcharts-zoomout-icon:hover svg {
10307
10584
  fill: var(--color-main-text);
10308
10585
  }
10309
10586
 
@@ -26026,6 +26303,42 @@ to { background-position: -200% 0;
26026
26303
  }
26027
26304
 
26028
26305
 
26306
+ .cn-notice-widget[data-v-74287902] {
26307
+ display: flex;
26308
+ align-items: flex-start;
26309
+ gap: 10px;
26310
+ padding: 14px 16px;
26311
+ border-radius: var(--cn-board-card-radius, 12px);
26312
+ font-size: 14px;
26313
+ line-height: 1.5;
26314
+ background: color-mix(in srgb, var(--color-info, #0071ad) 10%, var(--color-main-background));
26315
+ color: var(--color-main-text);
26316
+ }
26317
+ .cn-notice-widget--warning[data-v-74287902] {
26318
+ background: var(--color-warning-light, #fff4de);
26319
+ color: var(--color-warning-text, #7a4f00);
26320
+ }
26321
+ .cn-notice-widget--error[data-v-74287902] {
26322
+ background: color-mix(in srgb, var(--color-error, #db0606) 10%, var(--color-main-background));
26323
+ color: var(--color-error-text, var(--color-main-text));
26324
+ }
26325
+ .cn-notice-widget--success[data-v-74287902] {
26326
+ background: color-mix(in srgb, var(--color-success, #2d7b41) 10%, var(--color-main-background));
26327
+ color: var(--color-success-text, var(--color-main-text));
26328
+ }
26329
+ .cn-notice-widget__icon[data-v-74287902] {
26330
+ flex: 0 0 auto;
26331
+ margin-top: 2px;
26332
+ }
26333
+ .cn-notice-widget__text[data-v-74287902] {
26334
+ margin: 0;
26335
+ overflow-wrap: anywhere;
26336
+ }
26337
+ .cn-notice-widget__title[data-v-74287902] {
26338
+ font-weight: 700;
26339
+ }
26340
+
26341
+
26029
26342
  .cn-saved-view-alert[data-v-4439a3f3] {
26030
26343
  display: flex;
26031
26344
  flex-direction: column;
@@ -26771,16 +27084,16 @@ button.cn-stepper__step[data-v-776581d4] {
26771
27084
  }
26772
27085
 
26773
27086
 
26774
- .cn-widget-object-table[data-v-dfdcad2a] {
27087
+ .cn-widget-object-table[data-v-d628ab02] {
26775
27088
  width: 100%;
26776
27089
  }
26777
- .cn-widget-object-table__footer[data-v-dfdcad2a] {
27090
+ .cn-widget-object-table__footer[data-v-d628ab02] {
26778
27091
  display: flex;
26779
27092
  gap: 4px;
26780
27093
  padding: 4px 8px;
26781
27094
  border-top: 1px solid var(--color-border);
26782
27095
  }
26783
- .cn-widget-object-table__error[data-v-dfdcad2a] {
27096
+ .cn-widget-object-table__error[data-v-d628ab02] {
26784
27097
  color: var(--color-text-error, var(--color-error-text));
26785
27098
  font-size: 0.85em;
26786
27099
  margin: 4px 8px 0;
@@ -34065,33 +34378,33 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34065
34378
  }
34066
34379
 
34067
34380
 
34068
- .cn-settings-field[data-v-d2218996] {
34381
+ .cn-settings-field[data-v-7acf5300] {
34069
34382
  display: flex;
34070
34383
  flex-direction: column;
34071
34384
  gap: 4px;
34072
34385
  min-width: 0;
34073
34386
  }
34074
- .cn-settings-field__hint[data-v-d2218996],
34075
- .cn-settings-field__error[data-v-d2218996] {
34387
+ .cn-settings-field__hint[data-v-7acf5300],
34388
+ .cn-settings-field__error[data-v-7acf5300] {
34076
34389
  margin: 0;
34077
34390
  font-size: 13px;
34078
34391
  line-height: 1.4;
34079
34392
  }
34080
- .cn-settings-field__image[data-v-d2218996] {
34393
+ .cn-settings-field__image[data-v-7acf5300] {
34081
34394
  display: flex;
34082
34395
  flex-direction: column;
34083
34396
  gap: 6px;
34084
34397
  }
34085
- .cn-settings-field__image-label[data-v-d2218996] {
34398
+ .cn-settings-field__image-label[data-v-7acf5300] {
34086
34399
  font-weight: 600;
34087
34400
  }
34088
- .cn-settings-field__image-row[data-v-d2218996] {
34401
+ .cn-settings-field__image-row[data-v-7acf5300] {
34089
34402
  display: flex;
34090
34403
  flex-wrap: wrap;
34091
34404
  align-items: center;
34092
34405
  gap: 12px;
34093
34406
  }
34094
- .cn-settings-field__image-tile[data-v-d2218996] {
34407
+ .cn-settings-field__image-tile[data-v-7acf5300] {
34095
34408
  display: inline-flex;
34096
34409
  align-items: center;
34097
34410
  justify-content: center;
@@ -34102,20 +34415,20 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34102
34415
  border-radius: var(--border-radius-large);
34103
34416
  background: var(--color-primary-element-light);
34104
34417
  }
34105
- .cn-settings-field__image-tile img[data-v-d2218996] {
34418
+ .cn-settings-field__image-tile img[data-v-7acf5300] {
34106
34419
  max-width: 100%;
34107
34420
  max-height: 100%;
34108
34421
  object-fit: contain;
34109
34422
  }
34110
- .cn-settings-field__image-initials[data-v-d2218996] {
34423
+ .cn-settings-field__image-initials[data-v-7acf5300] {
34111
34424
  font-size: 20px;
34112
34425
  font-weight: 700;
34113
34426
  color: var(--color-primary-element-light-text, var(--color-primary-element));
34114
34427
  }
34115
- .cn-settings-field__hint[data-v-d2218996] {
34428
+ .cn-settings-field__hint[data-v-7acf5300] {
34116
34429
  color: var(--color-text-maxcontrast);
34117
34430
  }
34118
- .cn-settings-field__error[data-v-d2218996] {
34431
+ .cn-settings-field__error[data-v-7acf5300] {
34119
34432
  color: var(--color-error-text, var(--color-error));
34120
34433
  }
34121
34434
 
@@ -34431,40 +34744,40 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34431
34744
  }
34432
34745
 
34433
34746
 
34434
- .cn-version-info__card[data-v-f0527aa2] {
34747
+ .cn-version-info__card[data-v-61e98520] {
34435
34748
  background: var(--color-background-hover);
34436
34749
  border: 1px solid var(--color-border);
34437
34750
  border-radius: var(--border-radius-large);
34438
34751
  padding: 20px;
34439
34752
  margin-bottom: 20px;
34440
34753
  }
34441
- .cn-version-info__card h4[data-v-f0527aa2] {
34754
+ .cn-version-info__card h4[data-v-61e98520] {
34442
34755
  margin: 0 0 16px 0;
34443
34756
  font-size: 16px;
34444
34757
  font-weight: 600;
34445
34758
  color: var(--color-main-text);
34446
34759
  }
34447
- .cn-version-info__details[data-v-f0527aa2] {
34760
+ .cn-version-info__details[data-v-61e98520] {
34448
34761
  display: flex;
34449
34762
  flex-direction: column;
34450
34763
  gap: 12px;
34451
34764
  }
34452
- .cn-version-info__item[data-v-f0527aa2] {
34765
+ .cn-version-info__item[data-v-61e98520] {
34453
34766
  display: flex;
34454
34767
  justify-content: space-between;
34455
34768
  align-items: center;
34456
34769
  padding: 8px 0;
34457
34770
  border-bottom: 1px solid var(--color-border);
34458
34771
  }
34459
- .cn-version-info__item[data-v-f0527aa2]:last-child {
34772
+ .cn-version-info__item[data-v-61e98520]:last-child {
34460
34773
  border-bottom: none;
34461
34774
  }
34462
- .cn-version-info__label[data-v-f0527aa2] {
34775
+ .cn-version-info__label[data-v-61e98520] {
34463
34776
  font-weight: 500;
34464
34777
  color: var(--color-text-maxcontrast);
34465
34778
  font-size: 14px;
34466
34779
  }
34467
- .cn-version-info__value[data-v-f0527aa2] {
34780
+ .cn-version-info__value[data-v-61e98520] {
34468
34781
  font-family: 'Courier New', Courier, monospace;
34469
34782
  font-weight: 600;
34470
34783
  color: var(--color-main-text);
@@ -34472,28 +34785,28 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34472
34785
  }
34473
34786
 
34474
34787
  /* Status classes for values */
34475
- .cn-version-info__status--ok[data-v-f0527aa2] {
34788
+ .cn-version-info__status--ok[data-v-61e98520] {
34476
34789
  color: var(--color-success);
34477
34790
  font-weight: 600;
34478
34791
  }
34479
- .cn-version-info__status--warning[data-v-f0527aa2] {
34792
+ .cn-version-info__status--warning[data-v-61e98520] {
34480
34793
  color: var(--color-warning);
34481
34794
  font-weight: 600;
34482
34795
  }
34483
- .cn-version-info__status--error[data-v-f0527aa2] {
34796
+ .cn-version-info__status--error[data-v-61e98520] {
34484
34797
  color: var(--color-error);
34485
34798
  font-weight: 600;
34486
34799
  }
34487
34800
  @media (max-width: 768px) {
34488
- .cn-version-info__item[data-v-f0527aa2] {
34801
+ .cn-version-info__item[data-v-61e98520] {
34489
34802
  flex-direction: column;
34490
34803
  align-items: flex-start;
34491
34804
  gap: 4px;
34492
34805
  }
34493
- .cn-version-info__label[data-v-f0527aa2] {
34806
+ .cn-version-info__label[data-v-61e98520] {
34494
34807
  font-weight: 600;
34495
34808
  }
34496
- .cn-version-info__value[data-v-f0527aa2] {
34809
+ .cn-version-info__value[data-v-61e98520] {
34497
34810
  word-break: break-all;
34498
34811
  }
34499
34812
  }
@@ -37815,28 +38128,28 @@ to {
37815
38128
  }
37816
38129
 
37817
38130
 
37818
- .cn-setup-step[data-v-130330d9] {
38131
+ .cn-setup-step[data-v-dd2d6164] {
37819
38132
  display: flex;
37820
38133
  flex-direction: column;
37821
38134
  gap: 12px;
37822
38135
  }
37823
- .cn-setup-step__intro[data-v-130330d9] {
38136
+ .cn-setup-step__intro[data-v-dd2d6164] {
37824
38137
  margin: 0;
37825
38138
  font-size: 15px;
37826
38139
  line-height: 1.5;
37827
38140
  }
37828
- .cn-setup-step__note[data-v-130330d9] {
38141
+ .cn-setup-step__note[data-v-dd2d6164] {
37829
38142
  margin: 0;
37830
38143
  font-size: 13px;
37831
38144
  color: var(--color-text-maxcontrast);
37832
38145
  }
37833
- .cn-setup-step__nav[data-v-130330d9] {
38146
+ .cn-setup-step__nav[data-v-dd2d6164] {
37834
38147
  display: flex;
37835
38148
  justify-content: flex-end;
37836
38149
  gap: 8px;
37837
38150
  margin-top: 8px;
37838
38151
  }
37839
- .cn-setup-step__running[data-v-130330d9] {
38152
+ .cn-setup-step__running[data-v-dd2d6164] {
37840
38153
  display: flex;
37841
38154
  align-items: center;
37842
38155
  justify-content: center;
@@ -37844,43 +38157,43 @@ to {
37844
38157
  padding: 24px 0;
37845
38158
  color: var(--color-text-maxcontrast);
37846
38159
  }
37847
- .cn-setup-load-result[data-v-130330d9] {
38160
+ .cn-setup-load-result[data-v-dd2d6164] {
37848
38161
  margin: 0;
37849
38162
  font-size: var(--font-size-small, 13px);
37850
38163
  }
37851
- .cn-setup-load-result--success[data-v-130330d9] {
38164
+ .cn-setup-load-result--success[data-v-dd2d6164] {
37852
38165
  color: var(--color-success-text, var(--color-success));
37853
38166
  }
37854
- .cn-setup-load-result--error[data-v-130330d9] {
38167
+ .cn-setup-load-result--error[data-v-dd2d6164] {
37855
38168
  color: var(--color-error-text, var(--color-error));
37856
38169
  }
37857
- .cn-setup-field[data-v-130330d9] {
38170
+ .cn-setup-field[data-v-dd2d6164] {
37858
38171
  display: flex;
37859
38172
  flex-direction: column;
37860
38173
  }
37861
- .cn-setup-summary[data-v-130330d9] {
38174
+ .cn-setup-summary[data-v-dd2d6164] {
37862
38175
  list-style: none;
37863
38176
  padding: 0;
37864
38177
  margin: 0;
37865
38178
  }
37866
- .cn-setup-summary__item[data-v-130330d9] {
38179
+ .cn-setup-summary__item[data-v-dd2d6164] {
37867
38180
  display: flex;
37868
38181
  align-items: center;
37869
38182
  gap: 8px;
37870
38183
  padding: 4px 0;
37871
38184
  color: var(--color-text-maxcontrast);
37872
38185
  }
37873
- .cn-setup-summary__item--done[data-v-130330d9] {
38186
+ .cn-setup-summary__item--done[data-v-dd2d6164] {
37874
38187
  color: var(--color-main-text);
37875
38188
  }
37876
- .cn-setup-summary__mark[data-v-130330d9] {
38189
+ .cn-setup-summary__mark[data-v-dd2d6164] {
37877
38190
  font-weight: bold;
37878
38191
  color: var(--color-success);
37879
38192
  }
37880
- .cn-setup-summary__label[data-v-130330d9] {
38193
+ .cn-setup-summary__label[data-v-dd2d6164] {
37881
38194
  flex: 0 0 auto;
37882
38195
  }
37883
- .cn-setup-summary__value[data-v-130330d9] {
38196
+ .cn-setup-summary__value[data-v-dd2d6164] {
37884
38197
  margin-inline-start: auto;
37885
38198
  font-weight: 600;
37886
38199
  color: var(--color-main-text);
@@ -37888,34 +38201,34 @@ to {
37888
38201
 
37889
38202
  /* An on-demand step that did not run says so quietly: it is a choice the
37890
38203
  user did not make, not a failure. */
37891
- .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-130330d9] {
38204
+ .cn-setup-summary__item--not-run .cn-setup-summary__value[data-v-dd2d6164] {
37892
38205
  font-weight: normal;
37893
38206
  color: var(--color-text-maxcontrast);
37894
38207
  }
37895
38208
 
37896
38209
 
37897
- .cn-admin-settings-shell[data-v-b8d7f6c6] {
38210
+ .cn-admin-settings-shell[data-v-3b6d7cbb] {
37898
38211
  max-width: 900px;
37899
38212
  }
37900
38213
 
37901
38214
  /* The board look lifts the width and lays the header and cards on a grid (look-board.css). */
37902
- .cn-support-info[data-v-b8d7f6c6] {
38215
+ .cn-support-info[data-v-3b6d7cbb] {
37903
38216
  margin-top: 16px;
37904
38217
  padding-top: 16px;
37905
38218
  border-top: 1px solid var(--color-border);
37906
38219
  }
37907
- .cn-support-info h4[data-v-b8d7f6c6] {
38220
+ .cn-support-info h4[data-v-3b6d7cbb] {
37908
38221
  margin: 0 0 8px 0;
37909
38222
  font-size: 14px;
37910
38223
  font-weight: 600;
37911
38224
  color: var(--color-main-text);
37912
38225
  }
37913
- .cn-support-info p[data-v-b8d7f6c6] {
38226
+ .cn-support-info p[data-v-3b6d7cbb] {
37914
38227
  margin: 4px 0;
37915
38228
  color: var(--color-text-maxcontrast);
37916
38229
  font-size: 14px;
37917
38230
  }
37918
- .cn-support-info a[data-v-b8d7f6c6] {
38231
+ .cn-support-info a[data-v-3b6d7cbb] {
37919
38232
  color: var(--color-primary-element);
37920
38233
  }
37921
38234
 
@@ -38455,7 +38768,7 @@ to {
38455
38768
  color: var(--color-text-maxcontrast);
38456
38769
  }
38457
38770
 
38458
- .cn-object-row[data-v-a4a78a68] {
38771
+ .cn-object-row[data-v-6e2b35c2] {
38459
38772
  display: flex;
38460
38773
  align-items: center;
38461
38774
  gap: 12px;
@@ -38463,18 +38776,26 @@ to {
38463
38776
  border-bottom: 1px solid var(--color-border);
38464
38777
  cursor: pointer;
38465
38778
  }
38466
- .cn-object-row[data-v-a4a78a68]:hover {
38779
+ .cn-object-row[data-v-6e2b35c2]:hover {
38467
38780
  background-color: var(--color-background-hover);
38468
38781
  }
38469
- .cn-object-row--selected[data-v-a4a78a68] {
38782
+ .cn-object-row--selected[data-v-6e2b35c2] {
38470
38783
  /* Inset accent — never border-left (would shift cell content). */
38471
38784
  box-shadow: inset 3px 0 0 0 var(--color-primary-element);
38472
38785
  background-color: var(--color-primary-element-light);
38473
38786
  }
38474
- .cn-object-row__checkbox[data-v-a4a78a68] {
38787
+ .cn-object-row__lead[data-v-6e2b35c2],
38788
+ .cn-object-row__trail[data-v-6e2b35c2] {
38789
+ flex: 0 0 auto;
38790
+ min-width: 0;
38791
+ }
38792
+ .cn-object-row__lead[data-v-6e2b35c2] {
38793
+ font-weight: 600;
38794
+ }
38795
+ .cn-object-row__checkbox[data-v-6e2b35c2] {
38475
38796
  flex-shrink: 0;
38476
38797
  }
38477
- .cn-object-row__icon[data-v-a4a78a68] {
38798
+ .cn-object-row__icon[data-v-6e2b35c2] {
38478
38799
  flex-shrink: 0;
38479
38800
  display: flex;
38480
38801
  align-items: center;
@@ -38483,38 +38804,38 @@ to {
38483
38804
  height: 24px;
38484
38805
  color: var(--color-text-maxcontrast);
38485
38806
  }
38486
- .cn-object-row__image[data-v-a4a78a68] {
38807
+ .cn-object-row__image[data-v-6e2b35c2] {
38487
38808
  width: 24px;
38488
38809
  height: 24px;
38489
38810
  object-fit: contain;
38490
38811
  border-radius: var(--border-radius);
38491
38812
  }
38492
- .cn-object-row__main[data-v-a4a78a68] {
38813
+ .cn-object-row__main[data-v-6e2b35c2] {
38493
38814
  display: flex;
38494
38815
  flex-direction: column;
38495
38816
  min-width: 0;
38496
38817
  flex: 1;
38497
38818
  }
38498
- .cn-object-row__title[data-v-a4a78a68] {
38819
+ .cn-object-row__title[data-v-6e2b35c2] {
38499
38820
  font-weight: 600;
38500
38821
  overflow: hidden;
38501
38822
  text-overflow: ellipsis;
38502
38823
  white-space: nowrap;
38503
38824
  }
38504
- .cn-object-row__subtitle[data-v-a4a78a68] {
38825
+ .cn-object-row__subtitle[data-v-6e2b35c2] {
38505
38826
  font-size: 13px;
38506
38827
  color: var(--color-text-maxcontrast);
38507
38828
  overflow: hidden;
38508
38829
  text-overflow: ellipsis;
38509
38830
  white-space: nowrap;
38510
38831
  }
38511
- .cn-object-row__badges[data-v-a4a78a68] {
38832
+ .cn-object-row__badges[data-v-6e2b35c2] {
38512
38833
  flex-shrink: 0;
38513
38834
  display: flex;
38514
38835
  align-items: center;
38515
38836
  gap: 6px;
38516
38837
  }
38517
- .cn-object-row__actions[data-v-a4a78a68] {
38838
+ .cn-object-row__actions[data-v-6e2b35c2] {
38518
38839
  flex-shrink: 0;
38519
38840
  display: flex;
38520
38841
  align-items: center;
@@ -41074,7 +41395,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41074
41395
  }
41075
41396
 
41076
41397
 
41077
- .cn-dashboard-page[data-v-5b9ebdc3] {
41398
+ .cn-dashboard-page[data-v-61decc06] {
41078
41399
  padding: 20px;
41079
41400
  max-width: 1800px;
41080
41401
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -41088,7 +41409,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41088
41409
  overflow-y: auto;
41089
41410
  box-sizing: border-box;
41090
41411
  }
41091
- .cn-dashboard-page__header[data-v-5b9ebdc3] {
41412
+ .cn-dashboard-page__header[data-v-61decc06] {
41092
41413
  display: flex;
41093
41414
  justify-content: space-between;
41094
41415
  align-items: flex-start;
@@ -41100,21 +41421,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41100
41421
  room. Only the HEADER shifts right — body widgets keep full width. */
41101
41422
  padding-inline-start: 56px;
41102
41423
  }
41103
- .cn-dashboard-page__header-left[data-v-5b9ebdc3] {
41424
+ .cn-dashboard-page__header-left[data-v-61decc06] {
41104
41425
  min-width: 0;
41105
41426
  }
41106
- .cn-dashboard-page__title-row[data-v-5b9ebdc3] {
41427
+ .cn-dashboard-page__title-row[data-v-61decc06] {
41107
41428
  display: flex;
41108
41429
  align-items: center;
41109
41430
  flex-wrap: wrap;
41110
41431
  gap: 12px;
41111
41432
  }
41112
- .cn-dashboard-page__title[data-v-5b9ebdc3] {
41433
+ .cn-dashboard-page__title[data-v-61decc06] {
41113
41434
  margin: 0;
41114
41435
  font-size: 20px;
41115
41436
  font-weight: 700;
41116
41437
  }
41117
- .cn-dashboard-page__description[data-v-5b9ebdc3] {
41438
+ .cn-dashboard-page__description[data-v-61decc06] {
41118
41439
  margin: 4px 0 0;
41119
41440
  font-size: 14px;
41120
41441
  color: var(--color-text-maxcontrast);
@@ -41122,19 +41443,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41122
41443
 
41123
41444
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
41124
41445
  under it, and 40px buttons with a 10px gap. */
41125
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-5b9ebdc3] {
41446
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-61decc06] {
41126
41447
  font-size: 28px;
41127
41448
  font-weight: 700;
41128
41449
  line-height: 1.2;
41129
41450
  }
41130
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-5b9ebdc3] {
41451
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-61decc06] {
41131
41452
  margin: 6px 0 0;
41132
41453
  font-size: 15px;
41133
41454
  }
41134
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-5b9ebdc3] {
41455
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-61decc06] {
41135
41456
  gap: 10px;
41136
41457
  }
41137
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-5b9ebdc3] .button-vue {
41458
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-61decc06] .button-vue {
41138
41459
  min-height: var(--cn-board-control-height, 40px);
41139
41460
  height: var(--cn-board-control-height, 40px);
41140
41461
  }
@@ -41142,17 +41463,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41142
41463
  /* The switch row under the header (screens-dashboard-greeting-header): the
41143
41464
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
41144
41465
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
41145
- .cn-dashboard-page__switch-row[data-v-5b9ebdc3] {
41466
+ .cn-dashboard-page__switch-row[data-v-61decc06] {
41146
41467
  display: flex;
41147
41468
  flex-wrap: wrap;
41148
41469
  align-items: center;
41149
41470
  gap: 10px;
41150
41471
  margin-bottom: var(--cn-board-section-gap, 20px);
41151
41472
  }
41152
- .cn-dashboard-page__switch-row-spacer[data-v-5b9ebdc3] {
41473
+ .cn-dashboard-page__switch-row-spacer[data-v-61decc06] {
41153
41474
  flex: 1 1 auto;
41154
41475
  }
41155
- .cn-dashboard-page__view-link[data-v-5b9ebdc3] {
41476
+ .cn-dashboard-page__view-link[data-v-61decc06] {
41156
41477
  display: inline-flex;
41157
41478
  align-items: center;
41158
41479
  gap: 6px;
@@ -41166,37 +41487,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41166
41487
  white-space: nowrap;
41167
41488
  text-decoration: none !important;
41168
41489
  }
41169
- .cn-dashboard-page__view-link[data-v-5b9ebdc3]:hover {
41490
+ .cn-dashboard-page__view-link[data-v-61decc06]:hover {
41170
41491
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
41171
41492
  }
41172
- .cn-dashboard-page__view-link[data-v-5b9ebdc3]:focus-visible {
41493
+ .cn-dashboard-page__view-link[data-v-61decc06]:focus-visible {
41173
41494
  outline: 2px solid var(--color-main-text);
41174
41495
  outline-offset: 2px;
41175
41496
  }
41176
- .cn-dashboard-page__view-link-icon[data-v-5b9ebdc3] {
41497
+ .cn-dashboard-page__view-link-icon[data-v-61decc06] {
41177
41498
  display: inline-flex;
41178
41499
  }
41179
41500
 
41180
41501
  /* The period group, in a row of its own between the header and the KPI row. */
41181
- .cn-dashboard-page__date-range--segmented[data-v-5b9ebdc3] {
41502
+ .cn-dashboard-page__date-range--segmented[data-v-61decc06] {
41182
41503
  margin-bottom: 16px;
41183
41504
  }
41184
41505
 
41185
41506
  /* The period group at the end of the description line. */
41186
- .cn-dashboard-page__description--with-period[data-v-5b9ebdc3] {
41507
+ .cn-dashboard-page__description--with-period[data-v-61decc06] {
41187
41508
  align-items: center;
41188
41509
  display: flex;
41189
41510
  flex-wrap: wrap;
41190
41511
  gap: 8px;
41191
41512
  }
41192
- .cn-dashboard-page__date-segmented[data-v-5b9ebdc3] {
41513
+ .cn-dashboard-page__date-segmented[data-v-61decc06] {
41193
41514
  display: flex;
41194
41515
  align-items: center;
41195
41516
  gap: 8px;
41196
41517
  }
41197
41518
 
41198
41519
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
41199
- .cn-dashboard-page__kpi-row[data-v-5b9ebdc3] {
41520
+ .cn-dashboard-page__kpi-row[data-v-61decc06] {
41200
41521
  margin-bottom: var(--cn-board-section-gap, 16px);
41201
41522
  }
41202
41523
 
@@ -41204,15 +41525,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41204
41525
  the cards started a margin to the right of the KPI row and the header. The
41205
41526
  grid reaches out by that margin, so the card edges line up with the page's
41206
41527
  (dashboard-grid-flush). */
41207
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-dashboard-grid {
41528
+ .cn-dashboard-page--board[data-v-61decc06] .cn-dashboard-grid {
41208
41529
  width: auto;
41209
41530
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
41210
41531
  }
41211
- .cn-dashboard-page__kpi-cell[data-v-5b9ebdc3] {
41532
+ .cn-dashboard-page__kpi-cell[data-v-61decc06] {
41212
41533
  display: flex;
41213
41534
  min-width: 0;
41214
41535
  }
41215
- .cn-dashboard-page__kpi-cell[data-v-5b9ebdc3] > * {
41536
+ .cn-dashboard-page__kpi-cell[data-v-61decc06] > * {
41216
41537
  flex: 1 1 auto;
41217
41538
  min-width: 0;
41218
41539
  }
@@ -41225,7 +41546,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41225
41546
  scoped chip rules then silently don't match and the chip collapses into
41226
41547
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
41227
41548
  data-testid is stable across chunks, so those rules match regardless. */
41228
- .cn-dashboard-page__header-actions[data-v-5b9ebdc3] {
41549
+ .cn-dashboard-page__header-actions[data-v-61decc06] {
41229
41550
  display: flex;
41230
41551
  align-items: center;
41231
41552
  gap: 8px;
@@ -41241,19 +41562,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41241
41562
 
41242
41563
  /* Date-range header band. Kept compact so it doesn't open a tall gap
41243
41564
  above the grid; the pills variant is a single tidy toggle row. */
41244
- .cn-dashboard-page__date-range[data-v-5b9ebdc3] {
41565
+ .cn-dashboard-page__date-range[data-v-61decc06] {
41245
41566
  margin-bottom: 12px;
41246
41567
  }
41247
- .cn-dashboard-page__date-range--pills[data-v-5b9ebdc3] {
41568
+ .cn-dashboard-page__date-range--pills[data-v-61decc06] {
41248
41569
  margin-bottom: 8px;
41249
41570
  }
41250
- .cn-dashboard-page__date-pills[data-v-5b9ebdc3] {
41571
+ .cn-dashboard-page__date-pills[data-v-61decc06] {
41251
41572
  display: flex;
41252
41573
  align-items: center;
41253
41574
  flex-wrap: wrap;
41254
41575
  gap: 6px;
41255
41576
  }
41256
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3] {
41577
+ .cn-dashboard-page__date-pill[data-v-61decc06] {
41257
41578
  display: inline-flex;
41258
41579
  align-items: center;
41259
41580
  padding: 5px 14px;
@@ -41268,77 +41589,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41268
41589
  cursor: pointer;
41269
41590
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
41270
41591
  }
41271
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3]:hover {
41592
+ .cn-dashboard-page__date-pill[data-v-61decc06]:hover {
41272
41593
  background: var(--color-background-hover);
41273
41594
  }
41274
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3]:focus-visible {
41595
+ .cn-dashboard-page__date-pill[data-v-61decc06]:focus-visible {
41275
41596
  outline: 2px solid var(--color-primary-element);
41276
41597
  outline-offset: 2px;
41277
41598
  }
41278
- .cn-dashboard-page__date-pill--active[data-v-5b9ebdc3] {
41599
+ .cn-dashboard-page__date-pill--active[data-v-61decc06] {
41279
41600
  background: var(--color-primary-element);
41280
41601
  border-color: var(--color-primary-element);
41281
41602
  color: var(--color-primary-element-text);
41282
41603
  }
41283
- .cn-dashboard-page__date-pill--active[data-v-5b9ebdc3]:hover {
41604
+ .cn-dashboard-page__date-pill--active[data-v-61decc06]:hover {
41284
41605
  background: var(--color-primary-element-hover, var(--color-primary-element));
41285
41606
  }
41286
41607
 
41287
41608
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
41288
41609
  so it reads as an escape hatch rather than a primary option. */
41289
- .cn-dashboard-page__date-pill--custom[data-v-5b9ebdc3] {
41610
+ .cn-dashboard-page__date-pill--custom[data-v-61decc06] {
41290
41611
  border-style: dashed;
41291
41612
  color: var(--color-text-maxcontrast);
41292
41613
  }
41293
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .action-item__menutoggle {
41614
+ .cn-dashboard-page__date-pill-custom[data-v-61decc06] .action-item__menutoggle {
41294
41615
  min-width: 0;
41295
41616
  min-height: 0;
41296
41617
  padding: 0;
41297
41618
  background: transparent;
41298
41619
  border: none;
41299
41620
  }
41300
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .button-vue,
41301
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .button-vue__wrapper,
41302
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .button-vue__icon {
41621
+ .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue,
41622
+ .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue__wrapper,
41623
+ .cn-dashboard-page__date-pill-custom[data-v-61decc06] .button-vue__icon {
41303
41624
  width: auto !important;
41304
41625
  min-width: 0 !important;
41305
41626
  overflow: visible !important;
41306
41627
  }
41307
- .cn-dashboard-page__empty[data-v-5b9ebdc3] {
41628
+ .cn-dashboard-page__empty[data-v-61decc06] {
41308
41629
  padding: 60px 20px;
41309
41630
  }
41310
41631
 
41311
41632
  /* The page's view switch on a page without a header row: at the end of its
41312
41633
  own row, above the grids, where the header would have put it. */
41313
- .cn-dashboard-page__view-switch[data-v-5b9ebdc3] {
41634
+ .cn-dashboard-page__view-switch[data-v-61decc06] {
41314
41635
  display: flex;
41315
41636
  justify-content: flex-end;
41316
41637
  margin-bottom: 12px;
41317
41638
  }
41318
41639
 
41319
41640
  /* A view the switch shows with nothing to draw. */
41320
- .cn-page-view-region--empty[data-v-5b9ebdc3] {
41641
+ .cn-page-view-region--empty[data-v-61decc06] {
41321
41642
  padding: 40px 20px;
41322
41643
  }
41323
- .cn-dashboard-page__page-filters[data-v-5b9ebdc3] {
41644
+ .cn-dashboard-page__page-filters[data-v-61decc06] {
41324
41645
  display: flex;
41325
41646
  flex-wrap: wrap;
41326
41647
  gap: 16px;
41327
41648
  align-items: flex-end;
41328
41649
  margin-bottom: 12px;
41329
41650
  }
41330
- .cn-dashboard-page__page-filter[data-v-5b9ebdc3] {
41651
+ .cn-dashboard-page__page-filter[data-v-61decc06] {
41331
41652
  display: flex;
41332
41653
  flex-direction: column;
41333
41654
  gap: 4px;
41334
41655
  min-width: 200px;
41335
41656
  }
41336
- .cn-dashboard-page__page-filter-label[data-v-5b9ebdc3] {
41657
+ .cn-dashboard-page__page-filter-label[data-v-61decc06] {
41337
41658
  font-size: 0.85em;
41338
41659
  font-weight: 600;
41339
41660
  color: var(--color-text-maxcontrast);
41340
41661
  }
41341
- .cn-dashboard-page__widget-edit[data-v-5b9ebdc3] {
41662
+ .cn-dashboard-page__widget-edit[data-v-61decc06] {
41342
41663
  position: absolute;
41343
41664
  top: 4px;
41344
41665
  inset-inline-end: 4px;
@@ -41357,8 +41678,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41357
41678
  and centre the card. */
41358
41679
  /* `safe` centre so an overflowing tile does not spill out of the top, where
41359
41680
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
41360
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-widget-wrapper__content,
41361
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-5b9ebdc3] .cn-widget-wrapper__content {
41681
+ .cn-dashboard-page__card-fit[data-v-61decc06] .cn-widget-wrapper__content,
41682
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-61decc06] .cn-widget-wrapper__content {
41362
41683
  overflow: hidden;
41363
41684
  display: flex;
41364
41685
  flex-direction: column;
@@ -41374,7 +41695,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41374
41695
  shows up as a scrollbar the user has to drag to see the whole graph. Same
41375
41696
  shape as the card-fit rule above, minus the padding: chart tiles render
41376
41697
  `flush`, and apexcharts already draws its own margins. */
41377
- .cn-dashboard-page__chart-fit[data-v-5b9ebdc3] .cn-widget-wrapper__content {
41698
+ .cn-dashboard-page__chart-fit[data-v-61decc06] .cn-widget-wrapper__content {
41378
41699
  overflow: hidden;
41379
41700
  display: flex;
41380
41701
  flex-direction: column;
@@ -41384,13 +41705,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41384
41705
  /* Card content (stat / gauge / delta) must fit the tile width: let the
41385
41706
  widget shrink and its value/label truncate instead of pushing past the
41386
41707
  tile edge (the horizontal clip on long currency values). */
41387
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-stat-widget,
41388
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-gauge-widget,
41389
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-delta-widget {
41708
+ .cn-dashboard-page__card-fit[data-v-61decc06] .cn-stat-widget,
41709
+ .cn-dashboard-page__card-fit[data-v-61decc06] .cn-gauge-widget,
41710
+ .cn-dashboard-page__card-fit[data-v-61decc06] .cn-delta-widget {
41390
41711
  min-width: 0;
41391
41712
  max-width: 100%;
41392
41713
  }
41393
- .cn-dashboard-page__unknown[data-v-5b9ebdc3] {
41714
+ .cn-dashboard-page__unknown[data-v-61decc06] {
41394
41715
  display: flex;
41395
41716
  align-items: center;
41396
41717
  justify-content: center;
@@ -41401,31 +41722,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41401
41722
  }
41402
41723
 
41403
41724
  /* widget-ref content items */
41404
- .cn-dashboard-page__content[data-v-5b9ebdc3] {
41725
+ .cn-dashboard-page__content[data-v-61decc06] {
41405
41726
  display: flex;
41406
41727
  flex-direction: column;
41407
41728
  gap: 16px;
41408
41729
  }
41409
- .cn-dashboard-page__content-item[data-v-5b9ebdc3] {
41730
+ .cn-dashboard-page__content-item[data-v-61decc06] {
41410
41731
  width: 100%;
41411
41732
  }
41412
41733
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
41413
41734
  are 44px: the widget Actions menu and the KPI tiles. */
41414
41735
  @media (max-width: 640px) {
41415
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-widget-wrapper__actions .action-item__menutoggle,
41416
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-widget-wrapper__actions .button-vue {
41736
+ .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle,
41737
+ .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .button-vue {
41417
41738
  min-height: 44px;
41418
41739
  }
41419
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-5b9ebdc3] {
41740
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-61decc06] {
41420
41741
  min-height: 44px;
41421
41742
  }
41422
41743
 
41423
41744
  /* The widget Actions menu shows its icon only, so the card title keeps
41424
41745
  the room; the name stays for assistive tech. */
41425
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-widget-wrapper__actions .action-item__menutoggle {
41746
+ .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle {
41426
41747
  min-width: 44px;
41427
41748
  }
41428
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
41749
+ .cn-dashboard-page--board[data-v-61decc06] .cn-widget-wrapper__actions .action-item__menutoggle .button-vue__text {
41429
41750
  position: absolute;
41430
41751
  width: 1px;
41431
41752
  height: 1px;
@@ -41437,7 +41758,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41437
41758
 
41438
41759
  /* What a registry widget reports for its card header (`header` event): the
41439
41760
  note beside the link ("3 in total") and one action, as on a detail page. */
41440
- .cn-dashboard-page__widget-count[data-v-5b9ebdc3] {
41761
+ .cn-dashboard-page__widget-count[data-v-61decc06] {
41441
41762
  align-self: center;
41442
41763
  padding: 1px 8px;
41443
41764
  border-radius: 10px;
@@ -41446,13 +41767,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41446
41767
  font-size: 13px;
41447
41768
  font-weight: 600;
41448
41769
  }
41449
- .cn-dashboard-page__widget-note[data-v-5b9ebdc3] {
41770
+ .cn-dashboard-page__widget-note[data-v-61decc06] {
41450
41771
  align-self: center;
41451
41772
  color: var(--color-text-maxcontrast);
41452
41773
  font-size: 14px;
41453
41774
  white-space: nowrap;
41454
41775
  }
41455
- .cn-dashboard-page__widget-action[data-v-5b9ebdc3] {
41776
+ .cn-dashboard-page__widget-action[data-v-61decc06] {
41456
41777
  display: inline-flex;
41457
41778
  align-items: center;
41458
41779
  align-self: center;
@@ -41468,7 +41789,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41468
41789
  white-space: nowrap;
41469
41790
  cursor: pointer;
41470
41791
  }
41471
- .cn-dashboard-page__widget-action[data-v-5b9ebdc3]:focus-visible {
41792
+ .cn-dashboard-page__widget-action[data-v-61decc06]:focus-visible {
41472
41793
  outline: 2px solid var(--color-primary-element);
41473
41794
  outline-offset: 2px;
41474
41795
  }
@@ -43871,7 +44192,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43871
44192
  }
43872
44193
 
43873
44194
 
43874
- .cn-flow-board[data-v-5c5d3119] {
44195
+ .cn-flow-board[data-v-72119172] {
43875
44196
  display: flex;
43876
44197
  flex-direction: column;
43877
44198
  gap: 12px;
@@ -43879,53 +44200,53 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43879
44200
  min-height: 100%;
43880
44201
  box-sizing: border-box;
43881
44202
  }
43882
- .cn-flow-board__header[data-v-5c5d3119] {
44203
+ .cn-flow-board__header[data-v-72119172] {
43883
44204
  display: flex;
43884
44205
  flex-wrap: wrap;
43885
44206
  align-items: center;
43886
44207
  justify-content: space-between;
43887
44208
  gap: 12px;
43888
44209
  }
43889
- .cn-flow-board__heading[data-v-5c5d3119] {
44210
+ .cn-flow-board__heading[data-v-72119172] {
43890
44211
  display: flex;
43891
44212
  align-items: center;
43892
44213
  gap: 10px;
43893
44214
  min-width: 0;
43894
44215
  }
43895
- .cn-flow-board__title[data-v-5c5d3119] {
44216
+ .cn-flow-board__title[data-v-72119172] {
43896
44217
  margin: 0;
43897
44218
  font-size: 24px;
43898
44219
  font-weight: 600;
43899
44220
  }
43900
- .cn-flow-board__actions[data-v-5c5d3119] {
44221
+ .cn-flow-board__actions[data-v-72119172] {
43901
44222
  display: flex;
43902
44223
  flex-wrap: wrap;
43903
44224
  align-items: center;
43904
44225
  gap: 8px;
43905
44226
  }
43906
- .cn-flow-board__test-intro[data-v-5c5d3119] {
44227
+ .cn-flow-board__test-intro[data-v-72119172] {
43907
44228
  margin: 0 0 12px;
43908
44229
  color: var(--color-text-maxcontrast);
43909
44230
  }
43910
- .cn-flow-board__path[data-v-5c5d3119] {
44231
+ .cn-flow-board__path[data-v-72119172] {
43911
44232
  margin: 0;
43912
44233
  color: var(--color-text-maxcontrast);
43913
44234
  }
43914
- .cn-flow-board__crumb[data-v-5c5d3119] {
44235
+ .cn-flow-board__crumb[data-v-72119172] {
43915
44236
  color: var(--color-main-text);
43916
44237
  text-decoration: underline;
43917
44238
  }
43918
- .cn-flow-board__body[data-v-5c5d3119] {
44239
+ .cn-flow-board__body[data-v-72119172] {
43919
44240
  display: grid;
43920
44241
  grid-template-columns: minmax(0, 1fr) 340px;
43921
44242
  gap: 16px;
43922
44243
  flex: 1 1 auto;
43923
44244
  min-height: 520px;
43924
44245
  }
43925
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-5c5d3119] {
44246
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-72119172] {
43926
44247
  grid-template-columns: 240px minmax(0, 1fr) 340px;
43927
44248
  }
43928
- .cn-flow-board__card[data-v-5c5d3119] {
44249
+ .cn-flow-board__card[data-v-72119172] {
43929
44250
  display: flex;
43930
44251
  flex-direction: column;
43931
44252
  gap: 12px;
@@ -43935,34 +44256,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43935
44256
  border-radius: 12px;
43936
44257
  background: var(--color-main-background);
43937
44258
  }
43938
- .cn-flow-board__canvas[data-v-5c5d3119] {
44259
+ .cn-flow-board__canvas[data-v-72119172] {
43939
44260
  padding: 0;
43940
44261
  overflow: hidden;
43941
44262
  background-color: var(--color-background-hover);
43942
44263
  background-image: radial-gradient(var(--color-border-dark) 1px, transparent 1px);
43943
44264
  background-size: 16px 16px;
43944
44265
  }
43945
- .cn-flow-board__canvas[data-v-5c5d3119] > :first-child {
44266
+ .cn-flow-board__canvas[data-v-72119172] > :first-child {
43946
44267
  flex: 1 1 auto;
43947
44268
  min-height: 0;
43948
44269
  }
43949
- .cn-flow-board__card-title[data-v-5c5d3119] {
44270
+ .cn-flow-board__card-title[data-v-72119172] {
43950
44271
  margin: 0;
43951
44272
  font-size: 16px;
43952
44273
  font-weight: 600;
43953
44274
  }
43954
- .cn-flow-board__subtitle[data-v-5c5d3119] {
44275
+ .cn-flow-board__subtitle[data-v-72119172] {
43955
44276
  margin: 4px 0 0;
43956
44277
  font-size: 14px;
43957
44278
  font-weight: 600;
43958
44279
  }
43959
- .cn-flow-board__eyebrow[data-v-5c5d3119] {
44280
+ .cn-flow-board__eyebrow[data-v-72119172] {
43960
44281
  margin: 0;
43961
44282
  color: var(--color-text-maxcontrast);
43962
44283
  font-size: 13px;
43963
44284
  }
43964
- .cn-flow-board__validity[data-v-5c5d3119],
43965
- .cn-flow-board__legend[data-v-5c5d3119] {
44285
+ .cn-flow-board__validity[data-v-72119172],
44286
+ .cn-flow-board__legend[data-v-72119172] {
43966
44287
  display: flex;
43967
44288
  flex-wrap: wrap;
43968
44289
  gap: 8px;
@@ -43971,27 +44292,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43971
44292
  border-top: 1px solid var(--color-border);
43972
44293
  background: var(--color-main-background);
43973
44294
  }
43974
- .cn-flow-board__validity--success[data-v-5c5d3119] {
44295
+ .cn-flow-board__validity--success[data-v-72119172] {
43975
44296
  color: var(--color-success-text);
43976
44297
  }
43977
- .cn-flow-board__validity--warning[data-v-5c5d3119] {
44298
+ .cn-flow-board__validity--warning[data-v-72119172] {
43978
44299
  color: var(--color-warning-text);
43979
44300
  }
43980
- .cn-flow-board__validity--error[data-v-5c5d3119] {
44301
+ .cn-flow-board__validity--error[data-v-72119172] {
43981
44302
  color: var(--color-error-text);
43982
44303
  }
43983
- .cn-flow-board__palette-group[data-v-5c5d3119] {
44304
+ .cn-flow-board__palette-group[data-v-72119172] {
43984
44305
  display: flex;
43985
44306
  flex-direction: column;
43986
44307
  gap: 4px;
43987
44308
  }
43988
- .cn-flow-board__palette-app[data-v-5c5d3119] {
44309
+ .cn-flow-board__palette-app[data-v-72119172] {
43989
44310
  margin: 0;
43990
44311
  color: var(--color-text-maxcontrast);
43991
44312
  font-size: 13px;
43992
44313
  font-weight: 600;
43993
44314
  }
43994
- .cn-flow-board__palette-list[data-v-5c5d3119] {
44315
+ .cn-flow-board__palette-list[data-v-72119172] {
43995
44316
  display: flex;
43996
44317
  flex-direction: column;
43997
44318
  gap: 4px;
@@ -43999,7 +44320,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43999
44320
  padding: 0;
44000
44321
  list-style: none;
44001
44322
  }
44002
- .cn-flow-board__palette-step[data-v-5c5d3119] {
44323
+ .cn-flow-board__palette-step[data-v-72119172] {
44003
44324
  width: 100%;
44004
44325
  min-height: 34px;
44005
44326
  padding: 6px 10px;
@@ -44010,20 +44331,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44010
44331
  text-align: start;
44011
44332
  cursor: pointer;
44012
44333
  }
44013
- .cn-flow-board__palette-step[data-v-5c5d3119]:hover {
44334
+ .cn-flow-board__palette-step[data-v-72119172]:hover {
44014
44335
  background: var(--color-background-hover);
44015
44336
  }
44016
- .cn-flow-board__palette-note[data-v-5c5d3119] {
44337
+ .cn-flow-board__palette-note[data-v-72119172] {
44017
44338
  margin: 0;
44018
44339
  color: var(--color-text-maxcontrast);
44019
44340
  font-size: 13px;
44020
44341
  }
44021
- .cn-flow-board__tabs[data-v-5c5d3119] {
44342
+ .cn-flow-board__tabs[data-v-72119172] {
44022
44343
  display: flex;
44023
44344
  gap: 4px;
44024
44345
  border-bottom: 1px solid var(--color-border);
44025
44346
  }
44026
- .cn-flow-board__tab[data-v-5c5d3119] {
44347
+ .cn-flow-board__tab[data-v-72119172] {
44027
44348
  display: inline-flex;
44028
44349
  align-items: center;
44029
44350
  gap: 6px;
@@ -44035,12 +44356,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44035
44356
  color: var(--color-main-text);
44036
44357
  cursor: pointer;
44037
44358
  }
44038
- .cn-flow-board__tab--active[data-v-5c5d3119] {
44359
+ .cn-flow-board__tab--active[data-v-72119172] {
44039
44360
  border-color: var(--color-border);
44040
44361
  border-bottom-color: var(--color-main-background);
44041
44362
  font-weight: 600;
44042
44363
  }
44043
- .cn-flow-board__tab-count[data-v-5c5d3119] {
44364
+ .cn-flow-board__tab-count[data-v-72119172] {
44044
44365
  min-width: 18px;
44045
44366
  padding: 0 5px;
44046
44367
  border-radius: 9px;
@@ -44049,19 +44370,44 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44049
44370
  line-height: 18px;
44050
44371
  text-align: center;
44051
44372
  }
44052
- .cn-flow-board__step-actions[data-v-5c5d3119],
44053
- .cn-flow-board__step-footer[data-v-5c5d3119] {
44373
+ .cn-flow-board__settings[data-v-72119172] {
44374
+ display: flex;
44375
+ flex-direction: column;
44376
+ gap: 10px;
44377
+ margin: 0;
44378
+ }
44379
+ .cn-flow-board__setting dt[data-v-72119172] {
44380
+ font-size: 13px;
44381
+ color: var(--color-text-maxcontrast);
44382
+ }
44383
+ .cn-flow-board__setting dd[data-v-72119172] {
44384
+ margin: 2px 0 0;
44385
+ font-weight: 600;
44386
+ overflow-wrap: anywhere;
44387
+ }
44388
+ .cn-flow-board__inspector-empty[data-v-72119172] {
44389
+ display: flex;
44390
+ flex-direction: column;
44391
+ align-items: flex-start;
44392
+ gap: 12px;
44393
+ color: var(--color-text-maxcontrast);
44394
+ }
44395
+ .cn-flow-board__inspector-empty p[data-v-72119172] {
44396
+ margin: 0;
44397
+ }
44398
+ .cn-flow-board__step-actions[data-v-72119172],
44399
+ .cn-flow-board__step-footer[data-v-72119172] {
44054
44400
  display: flex;
44055
44401
  flex-wrap: wrap;
44056
44402
  gap: 8px;
44057
44403
  }
44058
- .cn-flow-board__step-footer[data-v-5c5d3119] {
44404
+ .cn-flow-board__step-footer[data-v-72119172] {
44059
44405
  justify-content: space-between;
44060
44406
  margin-top: auto;
44061
44407
  }
44062
44408
  @media (max-width: 1024px) {
44063
- .cn-flow-board__body[data-v-5c5d3119],
44064
- .cn-flow-board--with-palette .cn-flow-board__body[data-v-5c5d3119] {
44409
+ .cn-flow-board__body[data-v-72119172],
44410
+ .cn-flow-board--with-palette .cn-flow-board__body[data-v-72119172] {
44065
44411
  grid-template-columns: minmax(0, 1fr);
44066
44412
  }
44067
44413
  }
@@ -46285,17 +46631,17 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46285
46631
  }
46286
46632
 
46287
46633
 
46288
- .cn-user-settings-dialog__body[data-v-e537e50a] {
46634
+ .cn-user-settings-dialog__body[data-v-6d3e749e] {
46289
46635
  display: flex;
46290
46636
  flex-wrap: wrap;
46291
46637
  gap: 0 24px;
46292
46638
  }
46293
- .cn-user-settings-dialog__nav[data-v-e537e50a] {
46639
+ .cn-user-settings-dialog__nav[data-v-6d3e749e] {
46294
46640
  flex: 0 0 200px;
46295
46641
  width: 200px;
46296
46642
  padding-top: 18px;
46297
46643
  }
46298
- .cn-user-settings-dialog__nav ul[data-v-e537e50a] {
46644
+ .cn-user-settings-dialog__nav ul[data-v-6d3e749e] {
46299
46645
  display: flex;
46300
46646
  flex-direction: column;
46301
46647
  gap: 2px;
@@ -46303,7 +46649,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46303
46649
  padding: 0;
46304
46650
  list-style: none;
46305
46651
  }
46306
- .cn-user-settings-dialog__nav-link[data-v-e537e50a] {
46652
+
46653
+ /* A navigation entry, not a link in running text: no underline, also not
46654
+ on hover. `!important` because a theme's `a { text-decoration }` carries
46655
+ it (thematiq), and a bare `a` with `!important` beats any class. */
46656
+ .cn-user-settings-dialog__nav-link[data-v-6d3e749e],
46657
+ .cn-user-settings-dialog__nav-link[data-v-6d3e749e]:visited {
46307
46658
  display: flex;
46308
46659
  align-items: center;
46309
46660
  gap: 10px;
@@ -46312,22 +46663,23 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46312
46663
  border-radius: var(--border-radius-element, 8px);
46313
46664
  font-size: 15px;
46314
46665
  color: var(--color-main-text);
46315
- text-decoration: none;
46666
+ text-decoration: none !important;
46316
46667
  }
46317
- .cn-user-settings-dialog__nav-link[data-v-e537e50a]:hover {
46668
+ .cn-user-settings-dialog__nav-link[data-v-6d3e749e]:hover {
46318
46669
  background: var(--color-background-hover);
46670
+ text-decoration: none !important;
46319
46671
  }
46320
- .cn-user-settings-dialog__nav-link[data-v-e537e50a]:focus-visible {
46672
+ .cn-user-settings-dialog__nav-link[data-v-6d3e749e]:focus-visible {
46321
46673
  outline: 2px solid var(--color-primary-element);
46322
46674
  outline-offset: 2px;
46323
46675
  }
46324
- .cn-user-settings-dialog__nav-link--active[data-v-e537e50a],
46325
- .cn-user-settings-dialog__nav-link--active[data-v-e537e50a]:hover {
46676
+ .cn-user-settings-dialog__nav-link--active[data-v-6d3e749e],
46677
+ .cn-user-settings-dialog__nav-link--active[data-v-6d3e749e]:hover {
46326
46678
  background: var(--color-primary-element-light);
46327
46679
  color: var(--color-primary-element-light-text);
46328
46680
  font-weight: 600;
46329
46681
  }
46330
- .cn-user-settings-dialog__nav-icon[data-v-e537e50a] {
46682
+ .cn-user-settings-dialog__nav-icon[data-v-6d3e749e] {
46331
46683
  display: inline-flex;
46332
46684
  flex: none;
46333
46685
  width: 18px;
@@ -46335,18 +46687,18 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46335
46687
  align-items: center;
46336
46688
  justify-content: center;
46337
46689
  }
46338
- .cn-user-settings-dialog__sections[data-v-e537e50a] {
46690
+ .cn-user-settings-dialog__sections[data-v-6d3e749e] {
46339
46691
  display: flex;
46340
46692
  flex: 1 1 380px;
46341
46693
  flex-direction: column;
46342
46694
  min-width: 0;
46343
46695
  }
46344
- .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section {
46696
+ .cn-user-settings-dialog__sections[data-v-6d3e749e] .app-settings-section {
46345
46697
  margin: 0;
46346
46698
  padding: 18px 0;
46347
46699
  border-top: 1px solid var(--color-border);
46348
46700
  }
46349
- .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section__name {
46701
+ .cn-user-settings-dialog__sections[data-v-6d3e749e] .app-settings-section__name {
46350
46702
  margin: 0 0 12px;
46351
46703
  font-size: 17px;
46352
46704
  font-weight: 700;
@@ -46354,33 +46706,33 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46354
46706
  align-items: center;
46355
46707
  gap: 10px;
46356
46708
  }
46357
- .cn-user-settings-dialog__note[data-v-e537e50a] {
46709
+ .cn-user-settings-dialog__note[data-v-6d3e749e] {
46358
46710
  flex: 1 1 auto;
46359
46711
  margin: 0;
46360
46712
  font-size: 14px;
46361
46713
  color: var(--color-text-maxcontrast);
46362
46714
  }
46363
- .cn-user-settings-dialog__nc-links[data-v-e537e50a] {
46715
+ .cn-user-settings-dialog__nc-links[data-v-6d3e749e] {
46364
46716
  margin-bottom: 2px;
46365
46717
  }
46366
- .cn-user-settings-dialog__group[data-v-e537e50a] {
46718
+ .cn-user-settings-dialog__group[data-v-6d3e749e] {
46367
46719
  margin: 10px 0 2px;
46368
46720
  padding: 0 12px;
46369
46721
  font-size: 15px;
46370
46722
  font-weight: 600;
46371
46723
  color: var(--color-main-text);
46372
46724
  }
46373
- .cn-user-settings-dialog__group-sections[data-v-e537e50a] {
46725
+ .cn-user-settings-dialog__group-sections[data-v-6d3e749e] {
46374
46726
  padding-inline-start: 12px;
46375
46727
  }
46376
- .cn-user-settings-dialog__heading-icon[data-v-e537e50a] {
46728
+ .cn-user-settings-dialog__heading-icon[data-v-6d3e749e] {
46377
46729
  display: inline-flex;
46378
46730
  order: -1;
46379
46731
  color: var(--color-text-maxcontrast);
46380
46732
  }
46381
46733
 
46382
46734
  /* One section at a time: the others are mounted but hidden. */
46383
- .cn-user-settings-dialog__sections[data-v-e537e50a] .app-settings-section[hidden] {
46735
+ .cn-user-settings-dialog__sections[data-v-6d3e749e] .app-settings-section[hidden] {
46384
46736
  display: none;
46385
46737
  }
46386
46738
 
@@ -46801,7 +47153,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46801
47153
  }
46802
47154
 
46803
47155
 
46804
- .cn-features-board[data-v-ed367d64] {
47156
+ .cn-features-board[data-v-022166a7] {
46805
47157
  box-sizing: border-box;
46806
47158
  display: flex;
46807
47159
  flex-direction: column;
@@ -46810,20 +47162,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46810
47162
  max-width: 1240px;
46811
47163
  width: 100%;
46812
47164
  }
46813
- .cn-features-board__header[data-v-ed367d64] {
47165
+ .cn-features-board__header[data-v-022166a7] {
46814
47166
  display: flex;
46815
47167
  flex-direction: column;
46816
47168
  gap: 6px;
46817
47169
  padding: 4px 0 8px;
46818
47170
  }
46819
- .cn-features-board__title-row[data-v-ed367d64] {
47171
+ .cn-features-board__title-row[data-v-022166a7] {
46820
47172
  display: flex;
46821
47173
  flex-wrap: wrap;
46822
47174
  justify-content: space-between;
46823
47175
  align-items: flex-start;
46824
47176
  gap: 12px 24px;
46825
47177
  }
46826
- .cn-features-board__title[data-v-ed367d64] {
47178
+ .cn-features-board__title[data-v-022166a7] {
46827
47179
  flex: 1 1 320px;
46828
47180
  min-width: 0;
46829
47181
  margin: 0;
@@ -46831,32 +47183,32 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46831
47183
  font-weight: 700;
46832
47184
  line-height: 1.2;
46833
47185
  }
46834
- .cn-features-board__header-actions[data-v-ed367d64] {
47186
+ .cn-features-board__header-actions[data-v-022166a7] {
46835
47187
  flex: none;
46836
47188
  display: flex;
46837
47189
  flex-wrap: wrap;
46838
47190
  align-items: center;
46839
47191
  gap: 10px;
46840
47192
  }
46841
- .cn-features-board__subtitle[data-v-ed367d64] {
47193
+ .cn-features-board__subtitle[data-v-022166a7] {
46842
47194
  margin: 0;
46843
47195
  font-size: 15px;
46844
47196
  color: var(--color-text-maxcontrast);
46845
47197
  }
46846
- .cn-features-board__tab-row[data-v-ed367d64] {
47198
+ .cn-features-board__tab-row[data-v-022166a7] {
46847
47199
  display: flex;
46848
47200
  align-items: flex-end;
46849
47201
  gap: 8px;
46850
47202
  margin-bottom: calc(-1 * var(--cn-board-section-gap, 20px));
46851
47203
  }
46852
- .cn-features-board__tabs[data-v-ed367d64] {
47204
+ .cn-features-board__tabs[data-v-022166a7] {
46853
47205
  display: flex;
46854
47206
  flex-wrap: wrap;
46855
47207
  gap: 4px;
46856
47208
  flex: 1 1 auto;
46857
47209
  min-width: 0;
46858
47210
  }
46859
- .cn-features-board__tab[data-v-ed367d64] {
47211
+ .cn-features-board__tab[data-v-022166a7] {
46860
47212
  display: inline-flex;
46861
47213
  align-items: center;
46862
47214
  box-sizing: border-box;
@@ -46873,35 +47225,35 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46873
47225
  cursor: pointer;
46874
47226
  white-space: nowrap;
46875
47227
  }
46876
- .cn-features-board__tab--active[data-v-ed367d64] {
47228
+ .cn-features-board__tab--active[data-v-022166a7] {
46877
47229
  position: relative;
46878
47230
  background: var(--color-main-background);
46879
47231
  border-bottom: 1px solid var(--color-main-background);
46880
47232
  font-weight: 700;
46881
47233
  }
46882
- .cn-features-board__tab-actions[data-v-ed367d64] {
47234
+ .cn-features-board__tab-actions[data-v-022166a7] {
46883
47235
  flex: none;
46884
47236
  align-self: flex-start;
46885
47237
  margin: 0 8px 8px 0;
46886
47238
  }
46887
- .cn-features-board__panel[data-v-ed367d64] {
47239
+ .cn-features-board__panel[data-v-022166a7] {
46888
47240
  display: flex;
46889
47241
  flex-direction: column;
46890
47242
  gap: 22px;
46891
47243
  }
46892
- .cn-features-board__panel--tabbed[data-v-ed367d64] {
47244
+ .cn-features-board__panel--tabbed[data-v-022166a7] {
46893
47245
  padding: 22px;
46894
47246
  border: 1px solid var(--color-border);
46895
47247
  border-radius: 0 var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px);
46896
47248
  background: var(--color-main-background);
46897
47249
  }
46898
- .cn-features-board__filter[data-v-ed367d64] {
47250
+ .cn-features-board__filter[data-v-022166a7] {
46899
47251
  display: flex;
46900
47252
  flex-wrap: wrap;
46901
47253
  align-items: center;
46902
47254
  gap: 8px;
46903
47255
  }
46904
- .cn-features-board__filter-option[data-v-ed367d64] {
47256
+ .cn-features-board__filter-option[data-v-022166a7] {
46905
47257
  display: inline-flex;
46906
47258
  align-items: center;
46907
47259
  gap: 8px;
@@ -46910,7 +47262,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46910
47262
  font-weight: 600;
46911
47263
  cursor: pointer;
46912
47264
  }
46913
- .cn-features-board__filter--chips .cn-features-board__filter-option[data-v-ed367d64] {
47265
+ .cn-features-board__filter--chips .cn-features-board__filter-option[data-v-022166a7] {
46914
47266
  height: 36px;
46915
47267
  padding: 0 14px;
46916
47268
  border: 1px solid var(--color-border-dark);
@@ -46918,19 +47270,19 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46918
47270
  background: var(--color-main-background);
46919
47271
  color: var(--color-main-text);
46920
47272
  }
46921
- .cn-features-board__filter--chips .cn-features-board__filter-option--active[data-v-ed367d64] {
47273
+ .cn-features-board__filter--chips .cn-features-board__filter-option--active[data-v-022166a7] {
46922
47274
  border-color: var(--color-main-text);
46923
47275
  background: var(--color-main-text);
46924
47276
  color: var(--color-main-background);
46925
47277
  }
46926
- .cn-features-board__filter-count[data-v-ed367d64] {
47278
+ .cn-features-board__filter-count[data-v-022166a7] {
46927
47279
  font-weight: 400;
46928
47280
  color: var(--color-text-maxcontrast);
46929
47281
  }
46930
- .cn-features-board__filter--chips .cn-features-board__filter-option--active .cn-features-board__filter-count[data-v-ed367d64] {
47282
+ .cn-features-board__filter--chips .cn-features-board__filter-option--active .cn-features-board__filter-count[data-v-022166a7] {
46931
47283
  color: var(--color-border-dark);
46932
47284
  }
46933
- .cn-features-board__filter--segmented[data-v-ed367d64] {
47285
+ .cn-features-board__filter--segmented[data-v-022166a7] {
46934
47286
  display: inline-flex;
46935
47287
  align-self: flex-start;
46936
47288
  gap: 2px;
@@ -46938,7 +47290,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46938
47290
  border-radius: 8px;
46939
47291
  background: var(--color-background-dark);
46940
47292
  }
46941
- .cn-features-board__filter--segmented .cn-features-board__filter-option[data-v-ed367d64] {
47293
+ .cn-features-board__filter--segmented .cn-features-board__filter-option[data-v-022166a7] {
46942
47294
  height: 34px;
46943
47295
  padding: 0 14px;
46944
47296
  border: 0;
@@ -46946,65 +47298,65 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46946
47298
  background: transparent;
46947
47299
  color: var(--color-main-text);
46948
47300
  }
46949
- .cn-features-board__filter--segmented .cn-features-board__filter-option--active[data-v-ed367d64] {
47301
+ .cn-features-board__filter--segmented .cn-features-board__filter-option--active[data-v-022166a7] {
46950
47302
  background: var(--color-main-background);
46951
47303
  box-shadow: 0 1px 2px rgba(27, 28, 29, 0.12);
46952
47304
  }
46953
- .cn-features-board__body[data-v-ed367d64] {
47305
+ .cn-features-board__body[data-v-022166a7] {
46954
47306
  display: flex;
46955
47307
  flex-wrap: wrap;
46956
47308
  align-items: flex-start;
46957
47309
  gap: 24px;
46958
47310
  }
46959
- .cn-features-board__groups[data-v-ed367d64] {
47311
+ .cn-features-board__groups[data-v-022166a7] {
46960
47312
  flex: 999 1 520px;
46961
47313
  min-width: 0;
46962
47314
  display: flex;
46963
47315
  flex-direction: column;
46964
47316
  gap: 26px;
46965
47317
  }
46966
- .cn-features-board__groups--rows[data-v-ed367d64] {
47318
+ .cn-features-board__groups--rows[data-v-022166a7] {
46967
47319
  display: grid;
46968
47320
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
46969
47321
  gap: 20px;
46970
47322
  }
46971
- .cn-features-board__group[data-v-ed367d64] {
47323
+ .cn-features-board__group[data-v-022166a7] {
46972
47324
  display: flex;
46973
47325
  flex-direction: column;
46974
47326
  gap: 12px;
46975
47327
  max-width: none;
46976
47328
  margin: 0;
46977
47329
  }
46978
- .cn-features-board__groups--rows .cn-features-board__group[data-v-ed367d64] {
47330
+ .cn-features-board__groups--rows .cn-features-board__group[data-v-022166a7] {
46979
47331
  padding: var(--cn-board-card-padding, 20px 22px);
46980
47332
  border: 1px solid var(--color-border);
46981
47333
  border-radius: var(--cn-board-card-radius, 12px);
46982
47334
  background: var(--color-main-background);
46983
47335
  }
46984
- .cn-features-board__group-head[data-v-ed367d64] {
47336
+ .cn-features-board__group-head[data-v-022166a7] {
46985
47337
  display: flex;
46986
47338
  flex-wrap: wrap;
46987
47339
  align-items: baseline;
46988
47340
  gap: 10px;
46989
47341
  }
46990
- .cn-features-board__group-title[data-v-ed367d64] {
47342
+ .cn-features-board__group-title[data-v-022166a7] {
46991
47343
  margin: 0;
46992
47344
  font-size: 18px;
46993
47345
  font-weight: 700;
46994
47346
  }
46995
- .cn-features-board__groups--rows .cn-features-board__group-title[data-v-ed367d64] {
47347
+ .cn-features-board__groups--rows .cn-features-board__group-title[data-v-022166a7] {
46996
47348
  font-size: 17px;
46997
47349
  }
46998
- .cn-features-board__group-caption[data-v-ed367d64] {
47350
+ .cn-features-board__group-caption[data-v-022166a7] {
46999
47351
  font-size: 13px;
47000
47352
  color: var(--color-text-maxcontrast);
47001
47353
  }
47002
- .cn-features-board__cards[data-v-ed367d64] {
47354
+ .cn-features-board__cards[data-v-022166a7] {
47003
47355
  display: grid;
47004
47356
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
47005
47357
  gap: 16px;
47006
47358
  }
47007
- .cn-features-board__card[data-v-ed367d64] {
47359
+ .cn-features-board__card[data-v-022166a7] {
47008
47360
  display: flex;
47009
47361
  flex-direction: column;
47010
47362
  gap: 10px;
@@ -47013,24 +47365,24 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47013
47365
  border-radius: var(--cn-board-card-radius, 12px);
47014
47366
  background: var(--color-main-background);
47015
47367
  }
47016
- .cn-features-board__card-head[data-v-ed367d64] {
47368
+ .cn-features-board__card-head[data-v-022166a7] {
47017
47369
  display: flex;
47018
47370
  flex-direction: column;
47019
47371
  align-items: flex-start;
47020
47372
  gap: 4px;
47021
47373
  }
47022
- .cn-features-board__card-title[data-v-ed367d64] {
47374
+ .cn-features-board__card-title[data-v-022166a7] {
47023
47375
  margin: 0;
47024
47376
  font-size: 17px;
47025
47377
  font-weight: 700;
47026
47378
  line-height: 1.3;
47027
47379
  }
47028
- .cn-features-board__card-summary[data-v-ed367d64] {
47380
+ .cn-features-board__card-summary[data-v-022166a7] {
47029
47381
  margin: 0;
47030
47382
  font-size: 14px;
47031
47383
  color: var(--color-main-text);
47032
47384
  }
47033
- .cn-features-board__card-footer[data-v-ed367d64] {
47385
+ .cn-features-board__card-footer[data-v-022166a7] {
47034
47386
  display: flex;
47035
47387
  justify-content: flex-end;
47036
47388
  align-items: center;
@@ -47039,7 +47391,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47039
47391
  padding-top: 10px;
47040
47392
  border-top: 1px solid var(--color-background-dark);
47041
47393
  }
47042
- .cn-features-board__read-more[data-v-ed367d64] {
47394
+ .cn-features-board__read-more[data-v-022166a7] {
47043
47395
  display: inline-flex;
47044
47396
  align-items: center;
47045
47397
  height: 34px;
@@ -47052,14 +47404,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47052
47404
  font-weight: 600;
47053
47405
  text-decoration: none;
47054
47406
  }
47055
- .cn-features-board__rows[data-v-ed367d64] {
47407
+ .cn-features-board__rows[data-v-022166a7] {
47056
47408
  display: flex;
47057
47409
  flex-direction: column;
47058
47410
  margin: 0;
47059
47411
  padding: 0;
47060
47412
  list-style: none;
47061
47413
  }
47062
- .cn-features-board__row[data-v-ed367d64] {
47414
+ .cn-features-board__row[data-v-022166a7] {
47063
47415
  display: flex;
47064
47416
  flex-wrap: wrap;
47065
47417
  align-items: center;
@@ -47067,27 +47419,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47067
47419
  padding: 10px 0;
47068
47420
  border-top: 1px solid var(--color-background-dark);
47069
47421
  }
47070
- .cn-features-board__row-text[data-v-ed367d64] {
47422
+ .cn-features-board__row-text[data-v-022166a7] {
47071
47423
  flex: 1 1 240px;
47072
47424
  min-width: 0;
47073
47425
  display: flex;
47074
47426
  flex-direction: column;
47075
47427
  gap: 2px;
47076
47428
  }
47077
- .cn-features-board__row-title[data-v-ed367d64] {
47429
+ .cn-features-board__row-title[data-v-022166a7] {
47078
47430
  font-size: 15px;
47079
47431
  font-weight: 500;
47080
47432
  }
47081
- .cn-features-board__row-summary[data-v-ed367d64] {
47433
+ .cn-features-board__row-summary[data-v-022166a7] {
47082
47434
  font-size: 13px;
47083
47435
  color: var(--color-text-maxcontrast);
47084
47436
  }
47085
- .cn-features-board__next[data-v-ed367d64] {
47437
+ .cn-features-board__next[data-v-022166a7] {
47086
47438
  flex: 1 1 280px;
47087
47439
  min-width: 0;
47088
47440
  max-width: 340px;
47089
47441
  }
47090
- .cn-features-board__next-card[data-v-ed367d64] {
47442
+ .cn-features-board__next-card[data-v-022166a7] {
47091
47443
  display: flex;
47092
47444
  flex-direction: column;
47093
47445
  gap: 12px;
@@ -47096,22 +47448,22 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47096
47448
  border-radius: var(--cn-board-card-radius, 12px);
47097
47449
  background: var(--color-background-hover);
47098
47450
  }
47099
- .cn-features-board__next-head[data-v-ed367d64] {
47451
+ .cn-features-board__next-head[data-v-022166a7] {
47100
47452
  display: flex;
47101
47453
  align-items: center;
47102
47454
  gap: 8px;
47103
47455
  }
47104
- .cn-features-board__next-title[data-v-ed367d64] {
47456
+ .cn-features-board__next-title[data-v-022166a7] {
47105
47457
  margin: 0;
47106
47458
  font-size: 18px;
47107
47459
  font-weight: 700;
47108
47460
  }
47109
- .cn-features-board__next-lead[data-v-ed367d64] {
47461
+ .cn-features-board__next-lead[data-v-022166a7] {
47110
47462
  margin: 0;
47111
47463
  font-size: 14px;
47112
47464
  color: var(--color-text-maxcontrast);
47113
47465
  }
47114
- .cn-features-board__next-list[data-v-ed367d64] {
47466
+ .cn-features-board__next-list[data-v-022166a7] {
47115
47467
  display: flex;
47116
47468
  flex-direction: column;
47117
47469
  gap: 10px;
@@ -47119,7 +47471,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47119
47471
  padding: 0;
47120
47472
  list-style: none;
47121
47473
  }
47122
- .cn-features-board__next-item[data-v-ed367d64] {
47474
+ .cn-features-board__next-item[data-v-022166a7] {
47123
47475
  display: flex;
47124
47476
  flex-direction: column;
47125
47477
  gap: 6px;
@@ -47128,14 +47480,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47128
47480
  border-radius: 10px;
47129
47481
  background: var(--color-main-background);
47130
47482
  }
47131
- .cn-features-board__next-link[data-v-ed367d64] {
47483
+ .cn-features-board__next-link[data-v-022166a7] {
47132
47484
  font-size: 15px;
47133
47485
  font-weight: 600;
47134
47486
  line-height: 1.3;
47135
47487
  color: var(--color-main-text);
47136
47488
  text-decoration: none;
47137
47489
  }
47138
- .cn-features-board__next-meta[data-v-ed367d64] {
47490
+ .cn-features-board__next-meta[data-v-022166a7] {
47139
47491
  display: flex;
47140
47492
  flex-wrap: wrap;
47141
47493
  align-items: center;
@@ -47143,23 +47495,23 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47143
47495
  font-size: 13px;
47144
47496
  color: var(--color-text-maxcontrast);
47145
47497
  }
47146
- .cn-features-board__next-opened[data-v-ed367d64] {
47498
+ .cn-features-board__next-opened[data-v-022166a7] {
47147
47499
  display: inline-flex;
47148
47500
  align-items: center;
47149
47501
  gap: 4px;
47150
47502
  }
47151
- .cn-features-board__next-more[data-v-ed367d64] {
47503
+ .cn-features-board__next-more[data-v-022166a7] {
47152
47504
  display: inline-flex;
47153
47505
  align-items: center;
47154
47506
  gap: 4px;
47155
47507
  font-size: 14px;
47156
47508
  font-weight: 600;
47157
47509
  }
47158
- .cn-features-board__empty[data-v-ed367d64] {
47510
+ .cn-features-board__empty[data-v-022166a7] {
47159
47511
  margin: 0;
47160
47512
  color: var(--color-text-maxcontrast);
47161
47513
  }
47162
- .cn-features-board__notice[data-v-ed367d64] {
47514
+ .cn-features-board__notice[data-v-022166a7] {
47163
47515
  margin: 0;
47164
47516
  }
47165
47517
 
@@ -47209,12 +47561,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47209
47561
  }
47210
47562
 
47211
47563
 
47212
- .cn-features-and-roadmap-view[data-v-3db485a4] {
47564
+ .cn-features-and-roadmap-view[data-v-2dd578ca] {
47213
47565
  max-width: 1200px;
47214
47566
  margin: 0 auto;
47215
47567
  padding: 24px 16px;
47216
47568
  }
47217
- .cn-features-and-roadmap-view__header[data-v-3db485a4] {
47569
+ .cn-features-and-roadmap-view__header[data-v-2dd578ca] {
47218
47570
  display: flex;
47219
47571
  align-items: center;
47220
47572
  justify-content: space-between;
@@ -47226,29 +47578,29 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47226
47578
  room. Only the HEADER shifts right — the panel below keeps full width. */
47227
47579
  padding-inline-start: 56px;
47228
47580
  }
47229
- .cn-features-and-roadmap-view__title[data-v-3db485a4] {
47581
+ .cn-features-and-roadmap-view__title[data-v-2dd578ca] {
47230
47582
  font-size: 1.4em;
47231
47583
  margin: 0;
47232
47584
  color: var(--color-main-text);
47233
47585
  }
47234
- .cn-features-and-roadmap-view__actions[data-v-3db485a4] {
47586
+ .cn-features-and-roadmap-view__actions[data-v-2dd578ca] {
47235
47587
  display: flex;
47236
47588
  gap: 8px;
47237
47589
  align-items: center;
47238
47590
  flex-wrap: wrap;
47239
47591
  }
47240
- .cn-features-and-roadmap-view__panel[data-v-3db485a4] {
47592
+ .cn-features-and-roadmap-view__panel[data-v-2dd578ca] {
47241
47593
  min-height: 320px;
47242
47594
  }
47243
47595
 
47244
47596
  /* Underline the inline docs URL so it reads as a link inside the note
47245
47597
  body — NcNoteCard's default link styling drops the underline by
47246
47598
  inheriting from the host theme. */
47247
- .cn-features-and-roadmap-view__docs-note[data-v-3db485a4] a {
47599
+ .cn-features-and-roadmap-view__docs-note[data-v-2dd578ca] a {
47248
47600
  color: var(--color-primary-element);
47249
47601
  text-decoration: underline;
47250
47602
  }
47251
- .cn-features-and-roadmap-view__docs-note[data-v-3db485a4] a:hover {
47603
+ .cn-features-and-roadmap-view__docs-note[data-v-2dd578ca] a:hover {
47252
47604
  text-decoration: underline;
47253
47605
  opacity: 0.85;
47254
47606
  }