@conduction/nextcloud-vue 2.104.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 (110) hide show
  1. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  2. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  3. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +1 -1
  4. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  5. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  6. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +93 -1
  7. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  8. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  9. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  10. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +6 -3
  11. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  12. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +3 -3
  13. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  14. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +59 -1
  15. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  16. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  17. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
  18. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +1 -1
  19. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  20. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  21. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +1 -1
  22. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +2 -0
  23. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -1
  24. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +32 -29
  25. package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -1
  26. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
  27. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +73 -4
  28. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
  29. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +74 -27
  30. package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
  31. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +54 -1
  32. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  33. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  34. package/dist/esm/components/CnIndexPage/useSelfFetchList.js +3 -2
  35. package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
  36. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js +9 -0
  37. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js.map +1 -0
  38. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js +88 -0
  39. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js.map +1 -0
  40. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js +39 -0
  41. package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js.map +1 -0
  42. package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +1 -1
  43. package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -1
  44. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +3 -3
  45. package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -1
  46. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
  47. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
  48. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +16 -4
  49. package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
  50. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
  51. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +11 -0
  52. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
  53. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +4 -4
  54. package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
  55. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +16 -14
  56. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  57. package/dist/esm/index.js +1 -0
  58. package/dist/esm/index.js.map +1 -1
  59. package/dist/esm/l10n/en.json.js +4 -1
  60. package/dist/esm/l10n/en.json.js.map +1 -1
  61. package/dist/esm/l10n/nl.json.js +4 -1
  62. package/dist/esm/l10n/nl.json.js.map +1 -1
  63. package/dist/esm/library-style.js +1 -1
  64. package/dist/esm/nextcloud-vue.css +566 -295
  65. package/dist/esm/utils/libraryWidgetKeys.js +1 -0
  66. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  67. package/dist/esm/utils/nextcloudApps.js +45 -0
  68. package/dist/esm/utils/nextcloudApps.js.map +1 -0
  69. package/dist/esm/utils/scopeListLayout.js +9 -2
  70. package/dist/esm/utils/scopeListLayout.js.map +1 -1
  71. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  72. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  73. package/dist/esm/utils/visibleWhen.js +12 -4
  74. package/dist/esm/utils/visibleWhen.js.map +1 -1
  75. package/dist/nextcloud-vue.cjs.js +3054 -2517
  76. package/dist/nextcloud-vue.cjs.js.map +2 -2
  77. package/dist/nextcloud-vue.css +566 -295
  78. package/l10n/en.json +4 -1
  79. package/l10n/nl.json +4 -1
  80. package/package.json +1 -1
  81. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +1 -1
  82. package/src/components/CnChartWidget/CnChartWidget.md +2 -0
  83. package/src/components/CnChartWidget/CnChartWidget.vue +93 -1
  84. package/src/components/CnDashboardPage/CnDashboardPage.vue +9 -6
  85. package/src/components/CnDetailPage/CnDetailPage.md +1 -0
  86. package/src/components/CnDetailPage/CnDetailPage.vue +59 -1
  87. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +1 -1
  88. package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +4 -1
  89. package/src/components/CnFlowsPage/CnFlowBoard.vue +132 -8
  90. package/src/components/CnIndexPage/CnIndexPage.md +1 -0
  91. package/src/components/CnIndexPage/CnIndexPage.vue +54 -1
  92. package/src/components/CnIndexPage/useSelfFetchList.js +3 -2
  93. package/src/components/CnNoticeWidget/CnNoticeWidget.vue +153 -0
  94. package/src/components/CnNoticeWidget/index.js +12 -0
  95. package/src/components/CnSettingsField/CnSettingsField.vue +4 -1
  96. package/src/components/CnSetupWizard/CnSetupWizard.vue +9 -1
  97. package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +15 -4
  98. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  99. package/src/components/index.js +1 -0
  100. package/src/css/dialog.css +20 -2
  101. package/src/css/look-board-detail.css +77 -4
  102. package/src/css/look-board-index.css +36 -2
  103. package/src/css/look-board.css +97 -12
  104. package/src/index.js +1 -0
  105. package/src/schemas/app-manifest-v2.schema.json +36 -3
  106. package/src/utils/libraryWidgetKeys.js +1 -0
  107. package/src/utils/nextcloudApps.js +50 -0
  108. package/src/utils/scopeListLayout.js +9 -2
  109. package/src/utils/validateManifestV2.compiled.js +3 -3
  110. 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
 
@@ -2786,9 +2914,18 @@
2786
2914
 
2787
2915
  /* The header row is near-white on the boards (#fafbfc), not the hover grey,
2788
2916
  its labels 14px muted. The ink also goes to --nldesign-color-on-surface,
2789
- 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 */
2790
2923
  .cn-look-board .cn-table-container--board .cn-data-table th {
2791
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;
2792
2929
  padding: 12px 16px;
2793
2930
  border-bottom: 0;
2794
2931
  background: var(--cn-board-table-head-bg, color-mix(in srgb, var(--color-background-hover) 40%, var(--color-main-background)));
@@ -7802,6 +7939,58 @@ a.cn-kpi-card--board * {
7802
7939
  width: auto;
7803
7940
  }
7804
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
+
7805
7994
  /* ---- Folder tabs ------------------------------------------------------- */
7806
7995
 
7807
7996
  /* The strip draws no line of its own (design-system pull request 147). The card under it
@@ -7821,7 +8010,7 @@ a.cn-kpi-card--board * {
7821
8010
  }
7822
8011
 
7823
8012
  /* Tabs sit on the card's top edge; only the open tab reaches 1px further
7824
- 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
7825
8014
  the inactive tabs do not stretch to the open tab's height. */
7826
8015
  .cn-look-board .cn-tabs--board .cn-tabs__nav {
7827
8016
  align-items: flex-start;
@@ -7855,8 +8044,15 @@ a.cn-kpi-card--board * {
7855
8044
 
7856
8045
  /* `margin: 0`: a tab is a <button>, and Nextcloud's core stylesheet gives
7857
8046
  every `button:not(.button-vue)` `margin: 3px 3px 3px 0`, which put the strip
7858
- 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 */
7859
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;
7860
8056
  background-color: var(--color-background-dark);
7861
8057
  border: 1px solid var(--color-border-dark);
7862
8058
  border-bottom: none;
@@ -7864,17 +8060,18 @@ a.cn-kpi-card--board * {
7864
8060
  font-size: 14px;
7865
8061
  font-weight: 400;
7866
8062
  margin: 0;
7867
- min-height: 34px;
8063
+ min-height: 37px;
7868
8064
  padding: 8px 12px;
7869
8065
  }
7870
8066
 
7871
8067
  /* The open tab: the panel's colour, bold, and no coloured top edge. */
7872
8068
  .cn-look-board .cn-tabs--board .cn-tabs__nav-item.cn-tabs__nav-item--active {
8069
+ --nldesign-component-button-font-weight: 700;
7873
8070
  background-color: var(--color-main-background);
7874
8071
  border-bottom: 1px solid var(--color-main-background);
7875
8072
  border-top: 1px solid var(--color-border-dark);
7876
8073
  font-weight: 700;
7877
- min-height: 35px;
8074
+ min-height: 38px;
7878
8075
  padding-bottom: 9px;
7879
8076
  padding-top: 8px;
7880
8077
  position: relative;
@@ -8055,6 +8252,19 @@ a.cn-kpi-card--board * {
8055
8252
  padding: 10px 22px 20px;
8056
8253
  }
8057
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
+
8058
8268
  /* No Actions menu on a side card. */
8059
8269
  .cn-look-board .cn-detail-page__side .cn-widget-wrapper__actions {
8060
8270
  display: none;
@@ -10032,7 +10242,7 @@ a.cn-kpi-card--board * {
10032
10242
  }
10033
10243
 
10034
10244
 
10035
- .cn-chart-widget[data-v-7d7200f4] {
10245
+ .cn-chart-widget[data-v-1c17a450] {
10036
10246
  width: 100%;
10037
10247
  /* A chart FITS its container — it is never a scroll region. apexcharts
10038
10248
  sizes its SVG from the element it is mounted in, but it also enforces
@@ -10054,13 +10264,13 @@ a.cn-kpi-card--board * {
10054
10264
  takes what is left, so the chart is sized by the box rather than sizing it.
10055
10265
  `min-height: 0` drops the 100px floor — on a fixed-height surface a floor is
10056
10266
  the thing that produces the overflow it was meant to prevent. */
10057
- .cn-chart-widget--fit[data-v-7d7200f4] {
10267
+ .cn-chart-widget--fit[data-v-1c17a450] {
10058
10268
  height: 100%;
10059
10269
  min-height: 0;
10060
10270
  display: flex;
10061
10271
  flex-direction: column;
10062
10272
  }
10063
- .cn-chart-widget__canvas[data-v-7d7200f4] {
10273
+ .cn-chart-widget__canvas[data-v-1c17a450] {
10064
10274
  min-width: 0;
10065
10275
  max-width: 100%;
10066
10276
  /* Never a scroll region (see the root). `overflow-x: hidden` alone made
@@ -10073,14 +10283,14 @@ a.cn-kpi-card--board * {
10073
10283
  /* apexcharts writes an inline `width` onto its own wrapper from its measured
10074
10284
  minimum, which beats the container when the container is narrower. Cap the
10075
10285
  painted box so the inline width cannot push past the widget's border. */
10076
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas,
10077
- .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 {
10078
10288
  max-width: 100%;
10079
10289
  }
10080
10290
 
10081
10291
  /* The SVG is a block: as an inline box it sits on a line and adds the line's
10082
10292
  descender space under the chart. */
10083
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-canvas svg {
10293
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-canvas svg {
10084
10294
  display: block;
10085
10295
  }
10086
10296
 
@@ -10088,24 +10298,24 @@ a.cn-kpi-card--board * {
10088
10298
  would grow to its content, i.e. to the chart, and the percentage height would
10089
10299
  resolve against a box the chart itself defined. `overflow: hidden` keeps a
10090
10300
  sub-pixel rounding difference from reintroducing a scrollbar. */
10091
- .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-7d7200f4] {
10301
+ .cn-chart-widget--fit .cn-chart-widget__canvas[data-v-1c17a450] {
10092
10302
  flex: 1 1 0;
10093
10303
  min-height: 0;
10094
10304
  overflow: hidden;
10095
10305
  }
10096
- .cn-chart-widget__fallback[data-v-7d7200f4] {
10306
+ .cn-chart-widget__fallback[data-v-1c17a450] {
10097
10307
  display: flex;
10098
10308
  align-items: center;
10099
10309
  justify-content: center;
10100
10310
  min-height: 150px;
10101
10311
  color: var(--color-text-maxcontrast);
10102
10312
  }
10103
- .cn-chart-widget__html[data-v-7d7200f4] {
10313
+ .cn-chart-widget__html[data-v-1c17a450] {
10104
10314
  display: flex;
10105
10315
  flex-direction: column;
10106
10316
  gap: 12px;
10107
10317
  }
10108
- .cn-chart-widget__bar-list[data-v-7d7200f4] {
10318
+ .cn-chart-widget__bar-list[data-v-1c17a450] {
10109
10319
  display: flex;
10110
10320
  flex-direction: column;
10111
10321
  gap: 10px;
@@ -10113,7 +10323,7 @@ a.cn-kpi-card--board * {
10113
10323
  margin: 0;
10114
10324
  padding: 0;
10115
10325
  }
10116
- .cn-chart-widget__bar-line[data-v-7d7200f4] {
10326
+ .cn-chart-widget__bar-line[data-v-1c17a450] {
10117
10327
  align-items: center;
10118
10328
  background: none;
10119
10329
  border: 0;
@@ -10128,100 +10338,100 @@ a.cn-kpi-card--board * {
10128
10338
  text-align: start;
10129
10339
  width: 100%;
10130
10340
  }
10131
- .cn-chart-widget__bar-line--drill[data-v-7d7200f4] {
10341
+ .cn-chart-widget__bar-line--drill[data-v-1c17a450] {
10132
10342
  border-radius: var(--border-radius-small, 4px);
10133
10343
  cursor: pointer;
10134
10344
  }
10135
- .cn-chart-widget__bar-line--drill:hover .cn-chart-widget__bar-label[data-v-7d7200f4],
10136
- .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] {
10137
10347
  text-decoration: underline;
10138
10348
  }
10139
- .cn-chart-widget__bar-label[data-v-7d7200f4] {
10349
+ .cn-chart-widget__bar-label[data-v-1c17a450] {
10140
10350
  overflow: hidden;
10141
10351
  text-overflow: ellipsis;
10142
10352
  white-space: nowrap;
10143
10353
  }
10144
- .cn-chart-widget__bar-track[data-v-7d7200f4] {
10354
+ .cn-chart-widget__bar-track[data-v-1c17a450] {
10145
10355
  background: var(--color-background-dark);
10146
10356
  border-radius: 4px;
10147
10357
  display: block;
10148
10358
  height: 14px;
10149
10359
  overflow: hidden;
10150
10360
  }
10151
- .cn-chart-widget__bar-fill[data-v-7d7200f4] {
10361
+ .cn-chart-widget__bar-fill[data-v-1c17a450] {
10152
10362
  background: var(--color-primary-element);
10153
10363
  display: block;
10154
10364
  height: 100%;
10155
10365
  }
10156
- .cn-chart-widget__bar-value[data-v-7d7200f4] {
10366
+ .cn-chart-widget__bar-value[data-v-1c17a450] {
10157
10367
  font-weight: 600;
10158
10368
  text-align: end;
10159
10369
  white-space: nowrap;
10160
10370
  }
10161
- .cn-chart-widget__footnote[data-v-7d7200f4] {
10371
+ .cn-chart-widget__footnote[data-v-1c17a450] {
10162
10372
  color: var(--color-text-maxcontrast);
10163
10373
  margin: 0;
10164
10374
  }
10165
10375
 
10166
10376
  /* Under an ApexCharts plot the footnote is a sibling of the canvas, so it keeps
10167
10377
  its own line height while the canvas takes the rest of a fitted column. */
10168
- .cn-chart-widget > .cn-chart-widget__footnote[data-v-7d7200f4] {
10378
+ .cn-chart-widget > .cn-chart-widget__footnote[data-v-1c17a450] {
10169
10379
  flex: 0 0 auto;
10170
10380
  margin-top: 8px;
10171
10381
  }
10172
- .cn-chart-widget__matrix[data-v-7d7200f4] {
10382
+ .cn-chart-widget__matrix[data-v-1c17a450] {
10173
10383
  display: grid;
10174
10384
  gap: 4px;
10175
10385
  }
10176
- .cn-chart-widget__matrix-row[data-v-7d7200f4] {
10386
+ .cn-chart-widget__matrix-row[data-v-1c17a450] {
10177
10387
  display: contents;
10178
10388
  }
10179
- .cn-chart-widget__matrix-head[data-v-7d7200f4] {
10389
+ .cn-chart-widget__matrix-head[data-v-1c17a450] {
10180
10390
  color: var(--color-text-maxcontrast);
10181
10391
  padding: 6px;
10182
10392
  }
10183
- .cn-chart-widget__matrix-label[data-v-7d7200f4] {
10393
+ .cn-chart-widget__matrix-label[data-v-1c17a450] {
10184
10394
  padding: 10px 6px;
10185
10395
  }
10186
- .cn-chart-widget__matrix-cell[data-v-7d7200f4] {
10396
+ .cn-chart-widget__matrix-cell[data-v-1c17a450] {
10187
10397
  border-radius: 6px;
10188
10398
  padding: 10px;
10189
10399
  text-align: center;
10190
10400
  }
10191
- .cn-chart-widget__matrix-cell--success[data-v-7d7200f4] {
10401
+ .cn-chart-widget__matrix-cell--success[data-v-1c17a450] {
10192
10402
  background: var(--color-success-light, color-mix(in srgb, var(--color-success) 15%, var(--color-main-background)));
10193
10403
  }
10194
- .cn-chart-widget__matrix-cell--warning[data-v-7d7200f4] {
10404
+ .cn-chart-widget__matrix-cell--warning[data-v-1c17a450] {
10195
10405
  background: var(--color-warning-light, color-mix(in srgb, var(--color-warning) 15%, var(--color-main-background)));
10196
10406
  }
10197
- .cn-chart-widget__matrix-cell--error[data-v-7d7200f4] {
10407
+ .cn-chart-widget__matrix-cell--error[data-v-1c17a450] {
10198
10408
  background: var(--color-error-light, color-mix(in srgb, var(--color-error) 12%, var(--color-main-background)));
10199
10409
  }
10200
- .cn-chart-widget__matrix-cell--danger[data-v-7d7200f4] {
10410
+ .cn-chart-widget__matrix-cell--danger[data-v-1c17a450] {
10201
10411
  background: color-mix(in srgb, var(--color-error) 25%, var(--color-main-background));
10202
10412
  }
10203
- .cn-chart-widget__matrix-cell--current[data-v-7d7200f4] {
10413
+ .cn-chart-widget__matrix-cell--current[data-v-1c17a450] {
10204
10414
  font-weight: 700;
10205
10415
  outline: 3px solid var(--color-primary-element);
10206
10416
  outline-offset: -3px;
10207
10417
  }
10208
- .cn-chart-widget__matrix-cell--1[data-v-7d7200f4] {
10418
+ .cn-chart-widget__matrix-cell--1[data-v-1c17a450] {
10209
10419
  background: var(--color-primary-element-light);
10210
10420
  color: var(--color-primary-element-light-text);
10211
10421
  }
10212
- .cn-chart-widget__matrix-cell--2[data-v-7d7200f4] {
10422
+ .cn-chart-widget__matrix-cell--2[data-v-1c17a450] {
10213
10423
  background: color-mix(in srgb, var(--color-primary-element) 30%, var(--color-main-background));
10214
10424
  color: var(--color-main-text);
10215
10425
  }
10216
- .cn-chart-widget__matrix-cell--3[data-v-7d7200f4] {
10426
+ .cn-chart-widget__matrix-cell--3[data-v-1c17a450] {
10217
10427
  background: color-mix(in srgb, var(--color-primary-element) 65%, var(--color-main-background));
10218
10428
  color: var(--color-primary-element-text);
10219
10429
  }
10220
- .cn-chart-widget__matrix-cell--4[data-v-7d7200f4] {
10430
+ .cn-chart-widget__matrix-cell--4[data-v-1c17a450] {
10221
10431
  background: var(--color-primary-element);
10222
10432
  color: var(--color-primary-element-text);
10223
10433
  }
10224
- .cn-chart-widget__empty[data-v-7d7200f4] {
10434
+ .cn-chart-widget__empty[data-v-1c17a450] {
10225
10435
  display: flex;
10226
10436
  align-items: center;
10227
10437
  justify-content: center;
@@ -10236,25 +10446,25 @@ a.cn-kpi-card--board * {
10236
10446
  content-sized case; in fit mode they take the leftover space and centre in it
10237
10447
  instead, since the floor would overflow a short tile. Declared after the base
10238
10448
  rules so the cascade order matches specificity (no-descending-specificity). */
10239
- .cn-chart-widget--fit .cn-chart-widget__empty[data-v-7d7200f4],
10240
- .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] {
10241
10451
  flex: 1 1 0;
10242
10452
  min-height: 0;
10243
10453
  }
10244
- .cn-chart-widget__error[data-v-7d7200f4] {
10454
+ .cn-chart-widget__error[data-v-1c17a450] {
10245
10455
  font-size: 14px;
10246
10456
  margin: 0;
10247
10457
  }
10248
10458
 
10249
10459
  /* In-widget view switcher pills (views[] prop) — compact segmented row,
10250
10460
  mirroring the dashboard date-range pill styling. */
10251
- .cn-chart-widget__views[data-v-7d7200f4] {
10461
+ .cn-chart-widget__views[data-v-1c17a450] {
10252
10462
  display: flex;
10253
10463
  gap: 4px;
10254
10464
  margin-bottom: 6px;
10255
10465
  justify-content: flex-end;
10256
10466
  }
10257
- .cn-chart-widget__view-pill[data-v-7d7200f4] {
10467
+ .cn-chart-widget__view-pill[data-v-1c17a450] {
10258
10468
  padding: 2px 10px;
10259
10469
  border: 1px solid var(--color-border);
10260
10470
  border-radius: 999px;
@@ -10263,7 +10473,7 @@ a.cn-kpi-card--board * {
10263
10473
  font-size: 12px;
10264
10474
  cursor: pointer;
10265
10475
  }
10266
- .cn-chart-widget__view-pill--active[data-v-7d7200f4] {
10476
+ .cn-chart-widget__view-pill--active[data-v-1c17a450] {
10267
10477
  background: var(--color-primary-element-light, #aad2ed);
10268
10478
  color: var(--color-main-text);
10269
10479
  border-color: var(--color-primary-element, #0082c9);
@@ -10292,8 +10502,8 @@ a.cn-kpi-card--board * {
10292
10502
  each override below therefore carries one more class than the apexcharts rule
10293
10503
  it replaces, and holds even without the scope attribute this block compiles
10294
10504
  with. */
10295
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light,
10296
- .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 {
10297
10507
  background: var(--color-main-background);
10298
10508
  border: 1px solid var(--color-border);
10299
10509
  color: var(--color-main-text);
@@ -10302,8 +10512,8 @@ a.cn-kpi-card--board * {
10302
10512
 
10303
10513
  /* The title row is the date/category header ("Aug 26"). Its own background is
10304
10514
  what made it unreadable rather than merely off-theme. */
10305
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
10306
- .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 {
10307
10517
  background: var(--color-background-hover);
10308
10518
  border-bottom: 1px solid var(--color-border);
10309
10519
  color: var(--color-main-text);
@@ -10312,8 +10522,8 @@ a.cn-kpi-card--board * {
10312
10522
  /* Crosshair axis tooltips. apexcharts puts light hex values on the BASE class
10313
10523
  here and only overrides them for its dark theme, so the base rule has to be
10314
10524
  replaced too — not just the theme variants. */
10315
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip,
10316
- .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 {
10317
10527
  background: var(--color-main-background);
10318
10528
  border: 1px solid var(--color-border);
10319
10529
  color: var(--color-main-text);
@@ -10322,55 +10532,55 @@ a.cn-kpi-card--board * {
10322
10532
  /* Their pointer arrows are two stacked triangles: `::before` paints the border
10323
10533
  edge, `::after` the fill. Both need the tokens the box above uses, or the
10324
10534
  arrow keeps the old palette and reads as a stray light wedge. */
10325
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::after,
10326
- .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 {
10327
10537
  border-bottom-color: var(--color-main-background);
10328
10538
  border-top-color: var(--color-main-background);
10329
10539
  }
10330
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-xaxistooltip-bottom::before,
10331
- .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 {
10332
10542
  border-bottom-color: var(--color-border);
10333
10543
  border-top-color: var(--color-border);
10334
10544
  }
10335
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::after,
10336
- .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 {
10337
10547
  border-left-color: var(--color-main-background);
10338
10548
  border-right-color: var(--color-main-background);
10339
10549
  }
10340
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-yaxistooltip-left::before,
10341
- .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 {
10342
10552
  border-left-color: var(--color-border);
10343
10553
  border-right-color: var(--color-border);
10344
10554
  }
10345
10555
 
10346
10556
  /* Toolbar menu — only reachable with `toolbar: true`, but the same defect: a
10347
10557
  hardcoded `#fff` panel under inherited near-white text. */
10348
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-menu {
10558
+ .cn-chart-widget[data-v-1c17a450] .apexcharts-menu {
10349
10559
  background: var(--color-main-background);
10350
10560
  border: 1px solid var(--color-border);
10351
10561
  color: var(--color-main-text);
10352
10562
  }
10353
- .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 {
10354
10564
  background: var(--color-background-hover);
10355
10565
  }
10356
10566
 
10357
10567
  /* Toolbar icons: `#6e8192` at rest and `#333` on hover, i.e. the hover state
10358
10568
  vanishes against a dark background. One selector per icon class, matching
10359
10569
  apexcharts' own list, to clear its (0,3,1) hover rules. */
10360
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon svg,
10361
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon svg,
10362
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon svg,
10363
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon svg,
10364
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon svg,
10365
- .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 {
10366
10576
  fill: var(--color-text-maxcontrast);
10367
10577
  }
10368
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-menu-icon:hover svg,
10369
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-reset-icon:hover svg,
10370
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-selection-icon:hover svg,
10371
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoom-icon:hover svg,
10372
- .cn-chart-widget[data-v-7d7200f4] .apexcharts-toolbar .apexcharts-zoomin-icon:hover svg,
10373
- .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 {
10374
10584
  fill: var(--color-main-text);
10375
10585
  }
10376
10586
 
@@ -26093,6 +26303,42 @@ to { background-position: -200% 0;
26093
26303
  }
26094
26304
 
26095
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
+
26096
26342
  .cn-saved-view-alert[data-v-4439a3f3] {
26097
26343
  display: flex;
26098
26344
  flex-direction: column;
@@ -34132,33 +34378,33 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34132
34378
  }
34133
34379
 
34134
34380
 
34135
- .cn-settings-field[data-v-d2218996] {
34381
+ .cn-settings-field[data-v-7acf5300] {
34136
34382
  display: flex;
34137
34383
  flex-direction: column;
34138
34384
  gap: 4px;
34139
34385
  min-width: 0;
34140
34386
  }
34141
- .cn-settings-field__hint[data-v-d2218996],
34142
- .cn-settings-field__error[data-v-d2218996] {
34387
+ .cn-settings-field__hint[data-v-7acf5300],
34388
+ .cn-settings-field__error[data-v-7acf5300] {
34143
34389
  margin: 0;
34144
34390
  font-size: 13px;
34145
34391
  line-height: 1.4;
34146
34392
  }
34147
- .cn-settings-field__image[data-v-d2218996] {
34393
+ .cn-settings-field__image[data-v-7acf5300] {
34148
34394
  display: flex;
34149
34395
  flex-direction: column;
34150
34396
  gap: 6px;
34151
34397
  }
34152
- .cn-settings-field__image-label[data-v-d2218996] {
34398
+ .cn-settings-field__image-label[data-v-7acf5300] {
34153
34399
  font-weight: 600;
34154
34400
  }
34155
- .cn-settings-field__image-row[data-v-d2218996] {
34401
+ .cn-settings-field__image-row[data-v-7acf5300] {
34156
34402
  display: flex;
34157
34403
  flex-wrap: wrap;
34158
34404
  align-items: center;
34159
34405
  gap: 12px;
34160
34406
  }
34161
- .cn-settings-field__image-tile[data-v-d2218996] {
34407
+ .cn-settings-field__image-tile[data-v-7acf5300] {
34162
34408
  display: inline-flex;
34163
34409
  align-items: center;
34164
34410
  justify-content: center;
@@ -34169,20 +34415,20 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34169
34415
  border-radius: var(--border-radius-large);
34170
34416
  background: var(--color-primary-element-light);
34171
34417
  }
34172
- .cn-settings-field__image-tile img[data-v-d2218996] {
34418
+ .cn-settings-field__image-tile img[data-v-7acf5300] {
34173
34419
  max-width: 100%;
34174
34420
  max-height: 100%;
34175
34421
  object-fit: contain;
34176
34422
  }
34177
- .cn-settings-field__image-initials[data-v-d2218996] {
34423
+ .cn-settings-field__image-initials[data-v-7acf5300] {
34178
34424
  font-size: 20px;
34179
34425
  font-weight: 700;
34180
34426
  color: var(--color-primary-element-light-text, var(--color-primary-element));
34181
34427
  }
34182
- .cn-settings-field__hint[data-v-d2218996] {
34428
+ .cn-settings-field__hint[data-v-7acf5300] {
34183
34429
  color: var(--color-text-maxcontrast);
34184
34430
  }
34185
- .cn-settings-field__error[data-v-d2218996] {
34431
+ .cn-settings-field__error[data-v-7acf5300] {
34186
34432
  color: var(--color-error-text, var(--color-error));
34187
34433
  }
34188
34434
 
@@ -34498,40 +34744,40 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34498
34744
  }
34499
34745
 
34500
34746
 
34501
- .cn-version-info__card[data-v-f0527aa2] {
34747
+ .cn-version-info__card[data-v-61e98520] {
34502
34748
  background: var(--color-background-hover);
34503
34749
  border: 1px solid var(--color-border);
34504
34750
  border-radius: var(--border-radius-large);
34505
34751
  padding: 20px;
34506
34752
  margin-bottom: 20px;
34507
34753
  }
34508
- .cn-version-info__card h4[data-v-f0527aa2] {
34754
+ .cn-version-info__card h4[data-v-61e98520] {
34509
34755
  margin: 0 0 16px 0;
34510
34756
  font-size: 16px;
34511
34757
  font-weight: 600;
34512
34758
  color: var(--color-main-text);
34513
34759
  }
34514
- .cn-version-info__details[data-v-f0527aa2] {
34760
+ .cn-version-info__details[data-v-61e98520] {
34515
34761
  display: flex;
34516
34762
  flex-direction: column;
34517
34763
  gap: 12px;
34518
34764
  }
34519
- .cn-version-info__item[data-v-f0527aa2] {
34765
+ .cn-version-info__item[data-v-61e98520] {
34520
34766
  display: flex;
34521
34767
  justify-content: space-between;
34522
34768
  align-items: center;
34523
34769
  padding: 8px 0;
34524
34770
  border-bottom: 1px solid var(--color-border);
34525
34771
  }
34526
- .cn-version-info__item[data-v-f0527aa2]:last-child {
34772
+ .cn-version-info__item[data-v-61e98520]:last-child {
34527
34773
  border-bottom: none;
34528
34774
  }
34529
- .cn-version-info__label[data-v-f0527aa2] {
34775
+ .cn-version-info__label[data-v-61e98520] {
34530
34776
  font-weight: 500;
34531
34777
  color: var(--color-text-maxcontrast);
34532
34778
  font-size: 14px;
34533
34779
  }
34534
- .cn-version-info__value[data-v-f0527aa2] {
34780
+ .cn-version-info__value[data-v-61e98520] {
34535
34781
  font-family: 'Courier New', Courier, monospace;
34536
34782
  font-weight: 600;
34537
34783
  color: var(--color-main-text);
@@ -34539,28 +34785,28 @@ a.cn-record-list__inline-title[data-v-7d1cc1e6] {
34539
34785
  }
34540
34786
 
34541
34787
  /* Status classes for values */
34542
- .cn-version-info__status--ok[data-v-f0527aa2] {
34788
+ .cn-version-info__status--ok[data-v-61e98520] {
34543
34789
  color: var(--color-success);
34544
34790
  font-weight: 600;
34545
34791
  }
34546
- .cn-version-info__status--warning[data-v-f0527aa2] {
34792
+ .cn-version-info__status--warning[data-v-61e98520] {
34547
34793
  color: var(--color-warning);
34548
34794
  font-weight: 600;
34549
34795
  }
34550
- .cn-version-info__status--error[data-v-f0527aa2] {
34796
+ .cn-version-info__status--error[data-v-61e98520] {
34551
34797
  color: var(--color-error);
34552
34798
  font-weight: 600;
34553
34799
  }
34554
34800
  @media (max-width: 768px) {
34555
- .cn-version-info__item[data-v-f0527aa2] {
34801
+ .cn-version-info__item[data-v-61e98520] {
34556
34802
  flex-direction: column;
34557
34803
  align-items: flex-start;
34558
34804
  gap: 4px;
34559
34805
  }
34560
- .cn-version-info__label[data-v-f0527aa2] {
34806
+ .cn-version-info__label[data-v-61e98520] {
34561
34807
  font-weight: 600;
34562
34808
  }
34563
- .cn-version-info__value[data-v-f0527aa2] {
34809
+ .cn-version-info__value[data-v-61e98520] {
34564
34810
  word-break: break-all;
34565
34811
  }
34566
34812
  }
@@ -37882,28 +38128,28 @@ to {
37882
38128
  }
37883
38129
 
37884
38130
 
37885
- .cn-setup-step[data-v-130330d9] {
38131
+ .cn-setup-step[data-v-dd2d6164] {
37886
38132
  display: flex;
37887
38133
  flex-direction: column;
37888
38134
  gap: 12px;
37889
38135
  }
37890
- .cn-setup-step__intro[data-v-130330d9] {
38136
+ .cn-setup-step__intro[data-v-dd2d6164] {
37891
38137
  margin: 0;
37892
38138
  font-size: 15px;
37893
38139
  line-height: 1.5;
37894
38140
  }
37895
- .cn-setup-step__note[data-v-130330d9] {
38141
+ .cn-setup-step__note[data-v-dd2d6164] {
37896
38142
  margin: 0;
37897
38143
  font-size: 13px;
37898
38144
  color: var(--color-text-maxcontrast);
37899
38145
  }
37900
- .cn-setup-step__nav[data-v-130330d9] {
38146
+ .cn-setup-step__nav[data-v-dd2d6164] {
37901
38147
  display: flex;
37902
38148
  justify-content: flex-end;
37903
38149
  gap: 8px;
37904
38150
  margin-top: 8px;
37905
38151
  }
37906
- .cn-setup-step__running[data-v-130330d9] {
38152
+ .cn-setup-step__running[data-v-dd2d6164] {
37907
38153
  display: flex;
37908
38154
  align-items: center;
37909
38155
  justify-content: center;
@@ -37911,43 +38157,43 @@ to {
37911
38157
  padding: 24px 0;
37912
38158
  color: var(--color-text-maxcontrast);
37913
38159
  }
37914
- .cn-setup-load-result[data-v-130330d9] {
38160
+ .cn-setup-load-result[data-v-dd2d6164] {
37915
38161
  margin: 0;
37916
38162
  font-size: var(--font-size-small, 13px);
37917
38163
  }
37918
- .cn-setup-load-result--success[data-v-130330d9] {
38164
+ .cn-setup-load-result--success[data-v-dd2d6164] {
37919
38165
  color: var(--color-success-text, var(--color-success));
37920
38166
  }
37921
- .cn-setup-load-result--error[data-v-130330d9] {
38167
+ .cn-setup-load-result--error[data-v-dd2d6164] {
37922
38168
  color: var(--color-error-text, var(--color-error));
37923
38169
  }
37924
- .cn-setup-field[data-v-130330d9] {
38170
+ .cn-setup-field[data-v-dd2d6164] {
37925
38171
  display: flex;
37926
38172
  flex-direction: column;
37927
38173
  }
37928
- .cn-setup-summary[data-v-130330d9] {
38174
+ .cn-setup-summary[data-v-dd2d6164] {
37929
38175
  list-style: none;
37930
38176
  padding: 0;
37931
38177
  margin: 0;
37932
38178
  }
37933
- .cn-setup-summary__item[data-v-130330d9] {
38179
+ .cn-setup-summary__item[data-v-dd2d6164] {
37934
38180
  display: flex;
37935
38181
  align-items: center;
37936
38182
  gap: 8px;
37937
38183
  padding: 4px 0;
37938
38184
  color: var(--color-text-maxcontrast);
37939
38185
  }
37940
- .cn-setup-summary__item--done[data-v-130330d9] {
38186
+ .cn-setup-summary__item--done[data-v-dd2d6164] {
37941
38187
  color: var(--color-main-text);
37942
38188
  }
37943
- .cn-setup-summary__mark[data-v-130330d9] {
38189
+ .cn-setup-summary__mark[data-v-dd2d6164] {
37944
38190
  font-weight: bold;
37945
38191
  color: var(--color-success);
37946
38192
  }
37947
- .cn-setup-summary__label[data-v-130330d9] {
38193
+ .cn-setup-summary__label[data-v-dd2d6164] {
37948
38194
  flex: 0 0 auto;
37949
38195
  }
37950
- .cn-setup-summary__value[data-v-130330d9] {
38196
+ .cn-setup-summary__value[data-v-dd2d6164] {
37951
38197
  margin-inline-start: auto;
37952
38198
  font-weight: 600;
37953
38199
  color: var(--color-main-text);
@@ -37955,34 +38201,34 @@ to {
37955
38201
 
37956
38202
  /* An on-demand step that did not run says so quietly: it is a choice the
37957
38203
  user did not make, not a failure. */
37958
- .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] {
37959
38205
  font-weight: normal;
37960
38206
  color: var(--color-text-maxcontrast);
37961
38207
  }
37962
38208
 
37963
38209
 
37964
- .cn-admin-settings-shell[data-v-b8d7f6c6] {
38210
+ .cn-admin-settings-shell[data-v-3b6d7cbb] {
37965
38211
  max-width: 900px;
37966
38212
  }
37967
38213
 
37968
38214
  /* The board look lifts the width and lays the header and cards on a grid (look-board.css). */
37969
- .cn-support-info[data-v-b8d7f6c6] {
38215
+ .cn-support-info[data-v-3b6d7cbb] {
37970
38216
  margin-top: 16px;
37971
38217
  padding-top: 16px;
37972
38218
  border-top: 1px solid var(--color-border);
37973
38219
  }
37974
- .cn-support-info h4[data-v-b8d7f6c6] {
38220
+ .cn-support-info h4[data-v-3b6d7cbb] {
37975
38221
  margin: 0 0 8px 0;
37976
38222
  font-size: 14px;
37977
38223
  font-weight: 600;
37978
38224
  color: var(--color-main-text);
37979
38225
  }
37980
- .cn-support-info p[data-v-b8d7f6c6] {
38226
+ .cn-support-info p[data-v-3b6d7cbb] {
37981
38227
  margin: 4px 0;
37982
38228
  color: var(--color-text-maxcontrast);
37983
38229
  font-size: 14px;
37984
38230
  }
37985
- .cn-support-info a[data-v-b8d7f6c6] {
38231
+ .cn-support-info a[data-v-3b6d7cbb] {
37986
38232
  color: var(--color-primary-element);
37987
38233
  }
37988
38234
 
@@ -41149,7 +41395,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41149
41395
  }
41150
41396
 
41151
41397
 
41152
- .cn-dashboard-page[data-v-5b9ebdc3] {
41398
+ .cn-dashboard-page[data-v-61decc06] {
41153
41399
  padding: 20px;
41154
41400
  max-width: 1800px;
41155
41401
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -41163,7 +41409,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41163
41409
  overflow-y: auto;
41164
41410
  box-sizing: border-box;
41165
41411
  }
41166
- .cn-dashboard-page__header[data-v-5b9ebdc3] {
41412
+ .cn-dashboard-page__header[data-v-61decc06] {
41167
41413
  display: flex;
41168
41414
  justify-content: space-between;
41169
41415
  align-items: flex-start;
@@ -41175,21 +41421,21 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41175
41421
  room. Only the HEADER shifts right — body widgets keep full width. */
41176
41422
  padding-inline-start: 56px;
41177
41423
  }
41178
- .cn-dashboard-page__header-left[data-v-5b9ebdc3] {
41424
+ .cn-dashboard-page__header-left[data-v-61decc06] {
41179
41425
  min-width: 0;
41180
41426
  }
41181
- .cn-dashboard-page__title-row[data-v-5b9ebdc3] {
41427
+ .cn-dashboard-page__title-row[data-v-61decc06] {
41182
41428
  display: flex;
41183
41429
  align-items: center;
41184
41430
  flex-wrap: wrap;
41185
41431
  gap: 12px;
41186
41432
  }
41187
- .cn-dashboard-page__title[data-v-5b9ebdc3] {
41433
+ .cn-dashboard-page__title[data-v-61decc06] {
41188
41434
  margin: 0;
41189
41435
  font-size: 20px;
41190
41436
  font-weight: 700;
41191
41437
  }
41192
- .cn-dashboard-page__description[data-v-5b9ebdc3] {
41438
+ .cn-dashboard-page__description[data-v-61decc06] {
41193
41439
  margin: 4px 0 0;
41194
41440
  font-size: 14px;
41195
41441
  color: var(--color-text-maxcontrast);
@@ -41197,19 +41443,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41197
41443
 
41198
41444
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
41199
41445
  under it, and 40px buttons with a 10px gap. */
41200
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-5b9ebdc3] {
41446
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-61decc06] {
41201
41447
  font-size: 28px;
41202
41448
  font-weight: 700;
41203
41449
  line-height: 1.2;
41204
41450
  }
41205
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-5b9ebdc3] {
41451
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-61decc06] {
41206
41452
  margin: 6px 0 0;
41207
41453
  font-size: 15px;
41208
41454
  }
41209
- .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] {
41210
41456
  gap: 10px;
41211
41457
  }
41212
- .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 {
41213
41459
  min-height: var(--cn-board-control-height, 40px);
41214
41460
  height: var(--cn-board-control-height, 40px);
41215
41461
  }
@@ -41217,17 +41463,17 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41217
41463
  /* The switch row under the header (screens-dashboard-greeting-header): the
41218
41464
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
41219
41465
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
41220
- .cn-dashboard-page__switch-row[data-v-5b9ebdc3] {
41466
+ .cn-dashboard-page__switch-row[data-v-61decc06] {
41221
41467
  display: flex;
41222
41468
  flex-wrap: wrap;
41223
41469
  align-items: center;
41224
41470
  gap: 10px;
41225
41471
  margin-bottom: var(--cn-board-section-gap, 20px);
41226
41472
  }
41227
- .cn-dashboard-page__switch-row-spacer[data-v-5b9ebdc3] {
41473
+ .cn-dashboard-page__switch-row-spacer[data-v-61decc06] {
41228
41474
  flex: 1 1 auto;
41229
41475
  }
41230
- .cn-dashboard-page__view-link[data-v-5b9ebdc3] {
41476
+ .cn-dashboard-page__view-link[data-v-61decc06] {
41231
41477
  display: inline-flex;
41232
41478
  align-items: center;
41233
41479
  gap: 6px;
@@ -41241,37 +41487,37 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41241
41487
  white-space: nowrap;
41242
41488
  text-decoration: none !important;
41243
41489
  }
41244
- .cn-dashboard-page__view-link[data-v-5b9ebdc3]:hover {
41490
+ .cn-dashboard-page__view-link[data-v-61decc06]:hover {
41245
41491
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
41246
41492
  }
41247
- .cn-dashboard-page__view-link[data-v-5b9ebdc3]:focus-visible {
41493
+ .cn-dashboard-page__view-link[data-v-61decc06]:focus-visible {
41248
41494
  outline: 2px solid var(--color-main-text);
41249
41495
  outline-offset: 2px;
41250
41496
  }
41251
- .cn-dashboard-page__view-link-icon[data-v-5b9ebdc3] {
41497
+ .cn-dashboard-page__view-link-icon[data-v-61decc06] {
41252
41498
  display: inline-flex;
41253
41499
  }
41254
41500
 
41255
41501
  /* The period group, in a row of its own between the header and the KPI row. */
41256
- .cn-dashboard-page__date-range--segmented[data-v-5b9ebdc3] {
41502
+ .cn-dashboard-page__date-range--segmented[data-v-61decc06] {
41257
41503
  margin-bottom: 16px;
41258
41504
  }
41259
41505
 
41260
41506
  /* The period group at the end of the description line. */
41261
- .cn-dashboard-page__description--with-period[data-v-5b9ebdc3] {
41507
+ .cn-dashboard-page__description--with-period[data-v-61decc06] {
41262
41508
  align-items: center;
41263
41509
  display: flex;
41264
41510
  flex-wrap: wrap;
41265
41511
  gap: 8px;
41266
41512
  }
41267
- .cn-dashboard-page__date-segmented[data-v-5b9ebdc3] {
41513
+ .cn-dashboard-page__date-segmented[data-v-61decc06] {
41268
41514
  display: flex;
41269
41515
  align-items: center;
41270
41516
  gap: 8px;
41271
41517
  }
41272
41518
 
41273
41519
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
41274
- .cn-dashboard-page__kpi-row[data-v-5b9ebdc3] {
41520
+ .cn-dashboard-page__kpi-row[data-v-61decc06] {
41275
41521
  margin-bottom: var(--cn-board-section-gap, 16px);
41276
41522
  }
41277
41523
 
@@ -41279,15 +41525,15 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41279
41525
  the cards started a margin to the right of the KPI row and the header. The
41280
41526
  grid reaches out by that margin, so the card edges line up with the page's
41281
41527
  (dashboard-grid-flush). */
41282
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-dashboard-grid {
41528
+ .cn-dashboard-page--board[data-v-61decc06] .cn-dashboard-grid {
41283
41529
  width: auto;
41284
41530
  margin-inline: calc(-1 * var(--cn-dashboard-grid-margin, 12px));
41285
41531
  }
41286
- .cn-dashboard-page__kpi-cell[data-v-5b9ebdc3] {
41532
+ .cn-dashboard-page__kpi-cell[data-v-61decc06] {
41287
41533
  display: flex;
41288
41534
  min-width: 0;
41289
41535
  }
41290
- .cn-dashboard-page__kpi-cell[data-v-5b9ebdc3] > * {
41536
+ .cn-dashboard-page__kpi-cell[data-v-61decc06] > * {
41291
41537
  flex: 1 1 auto;
41292
41538
  min-width: 0;
41293
41539
  }
@@ -41300,7 +41546,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41300
41546
  scoped chip rules then silently don't match and the chip collapses into
41301
41547
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
41302
41548
  data-testid is stable across chunks, so those rules match regardless. */
41303
- .cn-dashboard-page__header-actions[data-v-5b9ebdc3] {
41549
+ .cn-dashboard-page__header-actions[data-v-61decc06] {
41304
41550
  display: flex;
41305
41551
  align-items: center;
41306
41552
  gap: 8px;
@@ -41316,19 +41562,19 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41316
41562
 
41317
41563
  /* Date-range header band. Kept compact so it doesn't open a tall gap
41318
41564
  above the grid; the pills variant is a single tidy toggle row. */
41319
- .cn-dashboard-page__date-range[data-v-5b9ebdc3] {
41565
+ .cn-dashboard-page__date-range[data-v-61decc06] {
41320
41566
  margin-bottom: 12px;
41321
41567
  }
41322
- .cn-dashboard-page__date-range--pills[data-v-5b9ebdc3] {
41568
+ .cn-dashboard-page__date-range--pills[data-v-61decc06] {
41323
41569
  margin-bottom: 8px;
41324
41570
  }
41325
- .cn-dashboard-page__date-pills[data-v-5b9ebdc3] {
41571
+ .cn-dashboard-page__date-pills[data-v-61decc06] {
41326
41572
  display: flex;
41327
41573
  align-items: center;
41328
41574
  flex-wrap: wrap;
41329
41575
  gap: 6px;
41330
41576
  }
41331
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3] {
41577
+ .cn-dashboard-page__date-pill[data-v-61decc06] {
41332
41578
  display: inline-flex;
41333
41579
  align-items: center;
41334
41580
  padding: 5px 14px;
@@ -41343,77 +41589,77 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41343
41589
  cursor: pointer;
41344
41590
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
41345
41591
  }
41346
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3]:hover {
41592
+ .cn-dashboard-page__date-pill[data-v-61decc06]:hover {
41347
41593
  background: var(--color-background-hover);
41348
41594
  }
41349
- .cn-dashboard-page__date-pill[data-v-5b9ebdc3]:focus-visible {
41595
+ .cn-dashboard-page__date-pill[data-v-61decc06]:focus-visible {
41350
41596
  outline: 2px solid var(--color-primary-element);
41351
41597
  outline-offset: 2px;
41352
41598
  }
41353
- .cn-dashboard-page__date-pill--active[data-v-5b9ebdc3] {
41599
+ .cn-dashboard-page__date-pill--active[data-v-61decc06] {
41354
41600
  background: var(--color-primary-element);
41355
41601
  border-color: var(--color-primary-element);
41356
41602
  color: var(--color-primary-element-text);
41357
41603
  }
41358
- .cn-dashboard-page__date-pill--active[data-v-5b9ebdc3]:hover {
41604
+ .cn-dashboard-page__date-pill--active[data-v-61decc06]:hover {
41359
41605
  background: var(--color-primary-element-hover, var(--color-primary-element));
41360
41606
  }
41361
41607
 
41362
41608
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
41363
41609
  so it reads as an escape hatch rather than a primary option. */
41364
- .cn-dashboard-page__date-pill--custom[data-v-5b9ebdc3] {
41610
+ .cn-dashboard-page__date-pill--custom[data-v-61decc06] {
41365
41611
  border-style: dashed;
41366
41612
  color: var(--color-text-maxcontrast);
41367
41613
  }
41368
- .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 {
41369
41615
  min-width: 0;
41370
41616
  min-height: 0;
41371
41617
  padding: 0;
41372
41618
  background: transparent;
41373
41619
  border: none;
41374
41620
  }
41375
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .button-vue,
41376
- .cn-dashboard-page__date-pill-custom[data-v-5b9ebdc3] .button-vue__wrapper,
41377
- .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 {
41378
41624
  width: auto !important;
41379
41625
  min-width: 0 !important;
41380
41626
  overflow: visible !important;
41381
41627
  }
41382
- .cn-dashboard-page__empty[data-v-5b9ebdc3] {
41628
+ .cn-dashboard-page__empty[data-v-61decc06] {
41383
41629
  padding: 60px 20px;
41384
41630
  }
41385
41631
 
41386
41632
  /* The page's view switch on a page without a header row: at the end of its
41387
41633
  own row, above the grids, where the header would have put it. */
41388
- .cn-dashboard-page__view-switch[data-v-5b9ebdc3] {
41634
+ .cn-dashboard-page__view-switch[data-v-61decc06] {
41389
41635
  display: flex;
41390
41636
  justify-content: flex-end;
41391
41637
  margin-bottom: 12px;
41392
41638
  }
41393
41639
 
41394
41640
  /* A view the switch shows with nothing to draw. */
41395
- .cn-page-view-region--empty[data-v-5b9ebdc3] {
41641
+ .cn-page-view-region--empty[data-v-61decc06] {
41396
41642
  padding: 40px 20px;
41397
41643
  }
41398
- .cn-dashboard-page__page-filters[data-v-5b9ebdc3] {
41644
+ .cn-dashboard-page__page-filters[data-v-61decc06] {
41399
41645
  display: flex;
41400
41646
  flex-wrap: wrap;
41401
41647
  gap: 16px;
41402
41648
  align-items: flex-end;
41403
41649
  margin-bottom: 12px;
41404
41650
  }
41405
- .cn-dashboard-page__page-filter[data-v-5b9ebdc3] {
41651
+ .cn-dashboard-page__page-filter[data-v-61decc06] {
41406
41652
  display: flex;
41407
41653
  flex-direction: column;
41408
41654
  gap: 4px;
41409
41655
  min-width: 200px;
41410
41656
  }
41411
- .cn-dashboard-page__page-filter-label[data-v-5b9ebdc3] {
41657
+ .cn-dashboard-page__page-filter-label[data-v-61decc06] {
41412
41658
  font-size: 0.85em;
41413
41659
  font-weight: 600;
41414
41660
  color: var(--color-text-maxcontrast);
41415
41661
  }
41416
- .cn-dashboard-page__widget-edit[data-v-5b9ebdc3] {
41662
+ .cn-dashboard-page__widget-edit[data-v-61decc06] {
41417
41663
  position: absolute;
41418
41664
  top: 4px;
41419
41665
  inset-inline-end: 4px;
@@ -41432,8 +41678,8 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41432
41678
  and centre the card. */
41433
41679
  /* `safe` centre so an overflowing tile does not spill out of the top, where
41434
41680
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
41435
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-widget-wrapper__content,
41436
- .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 {
41437
41683
  overflow: hidden;
41438
41684
  display: flex;
41439
41685
  flex-direction: column;
@@ -41449,7 +41695,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41449
41695
  shows up as a scrollbar the user has to drag to see the whole graph. Same
41450
41696
  shape as the card-fit rule above, minus the padding: chart tiles render
41451
41697
  `flush`, and apexcharts already draws its own margins. */
41452
- .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 {
41453
41699
  overflow: hidden;
41454
41700
  display: flex;
41455
41701
  flex-direction: column;
@@ -41459,13 +41705,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41459
41705
  /* Card content (stat / gauge / delta) must fit the tile width: let the
41460
41706
  widget shrink and its value/label truncate instead of pushing past the
41461
41707
  tile edge (the horizontal clip on long currency values). */
41462
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-stat-widget,
41463
- .cn-dashboard-page__card-fit[data-v-5b9ebdc3] .cn-gauge-widget,
41464
- .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 {
41465
41711
  min-width: 0;
41466
41712
  max-width: 100%;
41467
41713
  }
41468
- .cn-dashboard-page__unknown[data-v-5b9ebdc3] {
41714
+ .cn-dashboard-page__unknown[data-v-61decc06] {
41469
41715
  display: flex;
41470
41716
  align-items: center;
41471
41717
  justify-content: center;
@@ -41476,31 +41722,31 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41476
41722
  }
41477
41723
 
41478
41724
  /* widget-ref content items */
41479
- .cn-dashboard-page__content[data-v-5b9ebdc3] {
41725
+ .cn-dashboard-page__content[data-v-61decc06] {
41480
41726
  display: flex;
41481
41727
  flex-direction: column;
41482
41728
  gap: 16px;
41483
41729
  }
41484
- .cn-dashboard-page__content-item[data-v-5b9ebdc3] {
41730
+ .cn-dashboard-page__content-item[data-v-61decc06] {
41485
41731
  width: 100%;
41486
41732
  }
41487
41733
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
41488
41734
  are 44px: the widget Actions menu and the KPI tiles. */
41489
41735
  @media (max-width: 640px) {
41490
- .cn-dashboard-page--board[data-v-5b9ebdc3] .cn-widget-wrapper__actions .action-item__menutoggle,
41491
- .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 {
41492
41738
  min-height: 44px;
41493
41739
  }
41494
- .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] {
41495
41741
  min-height: 44px;
41496
41742
  }
41497
41743
 
41498
41744
  /* The widget Actions menu shows its icon only, so the card title keeps
41499
41745
  the room; the name stays for assistive tech. */
41500
- .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 {
41501
41747
  min-width: 44px;
41502
41748
  }
41503
- .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 {
41504
41750
  position: absolute;
41505
41751
  width: 1px;
41506
41752
  height: 1px;
@@ -41512,7 +41758,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41512
41758
 
41513
41759
  /* What a registry widget reports for its card header (`header` event): the
41514
41760
  note beside the link ("3 in total") and one action, as on a detail page. */
41515
- .cn-dashboard-page__widget-count[data-v-5b9ebdc3] {
41761
+ .cn-dashboard-page__widget-count[data-v-61decc06] {
41516
41762
  align-self: center;
41517
41763
  padding: 1px 8px;
41518
41764
  border-radius: 10px;
@@ -41521,13 +41767,13 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41521
41767
  font-size: 13px;
41522
41768
  font-weight: 600;
41523
41769
  }
41524
- .cn-dashboard-page__widget-note[data-v-5b9ebdc3] {
41770
+ .cn-dashboard-page__widget-note[data-v-61decc06] {
41525
41771
  align-self: center;
41526
41772
  color: var(--color-text-maxcontrast);
41527
41773
  font-size: 14px;
41528
41774
  white-space: nowrap;
41529
41775
  }
41530
- .cn-dashboard-page__widget-action[data-v-5b9ebdc3] {
41776
+ .cn-dashboard-page__widget-action[data-v-61decc06] {
41531
41777
  display: inline-flex;
41532
41778
  align-items: center;
41533
41779
  align-self: center;
@@ -41543,7 +41789,7 @@ button.cn-object-calendar__overflow[data-v-e1c69ee2] {
41543
41789
  white-space: nowrap;
41544
41790
  cursor: pointer;
41545
41791
  }
41546
- .cn-dashboard-page__widget-action[data-v-5b9ebdc3]:focus-visible {
41792
+ .cn-dashboard-page__widget-action[data-v-61decc06]:focus-visible {
41547
41793
  outline: 2px solid var(--color-primary-element);
41548
41794
  outline-offset: 2px;
41549
41795
  }
@@ -43946,7 +44192,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43946
44192
  }
43947
44193
 
43948
44194
 
43949
- .cn-flow-board[data-v-5c5d3119] {
44195
+ .cn-flow-board[data-v-72119172] {
43950
44196
  display: flex;
43951
44197
  flex-direction: column;
43952
44198
  gap: 12px;
@@ -43954,53 +44200,53 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
43954
44200
  min-height: 100%;
43955
44201
  box-sizing: border-box;
43956
44202
  }
43957
- .cn-flow-board__header[data-v-5c5d3119] {
44203
+ .cn-flow-board__header[data-v-72119172] {
43958
44204
  display: flex;
43959
44205
  flex-wrap: wrap;
43960
44206
  align-items: center;
43961
44207
  justify-content: space-between;
43962
44208
  gap: 12px;
43963
44209
  }
43964
- .cn-flow-board__heading[data-v-5c5d3119] {
44210
+ .cn-flow-board__heading[data-v-72119172] {
43965
44211
  display: flex;
43966
44212
  align-items: center;
43967
44213
  gap: 10px;
43968
44214
  min-width: 0;
43969
44215
  }
43970
- .cn-flow-board__title[data-v-5c5d3119] {
44216
+ .cn-flow-board__title[data-v-72119172] {
43971
44217
  margin: 0;
43972
44218
  font-size: 24px;
43973
44219
  font-weight: 600;
43974
44220
  }
43975
- .cn-flow-board__actions[data-v-5c5d3119] {
44221
+ .cn-flow-board__actions[data-v-72119172] {
43976
44222
  display: flex;
43977
44223
  flex-wrap: wrap;
43978
44224
  align-items: center;
43979
44225
  gap: 8px;
43980
44226
  }
43981
- .cn-flow-board__test-intro[data-v-5c5d3119] {
44227
+ .cn-flow-board__test-intro[data-v-72119172] {
43982
44228
  margin: 0 0 12px;
43983
44229
  color: var(--color-text-maxcontrast);
43984
44230
  }
43985
- .cn-flow-board__path[data-v-5c5d3119] {
44231
+ .cn-flow-board__path[data-v-72119172] {
43986
44232
  margin: 0;
43987
44233
  color: var(--color-text-maxcontrast);
43988
44234
  }
43989
- .cn-flow-board__crumb[data-v-5c5d3119] {
44235
+ .cn-flow-board__crumb[data-v-72119172] {
43990
44236
  color: var(--color-main-text);
43991
44237
  text-decoration: underline;
43992
44238
  }
43993
- .cn-flow-board__body[data-v-5c5d3119] {
44239
+ .cn-flow-board__body[data-v-72119172] {
43994
44240
  display: grid;
43995
44241
  grid-template-columns: minmax(0, 1fr) 340px;
43996
44242
  gap: 16px;
43997
44243
  flex: 1 1 auto;
43998
44244
  min-height: 520px;
43999
44245
  }
44000
- .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] {
44001
44247
  grid-template-columns: 240px minmax(0, 1fr) 340px;
44002
44248
  }
44003
- .cn-flow-board__card[data-v-5c5d3119] {
44249
+ .cn-flow-board__card[data-v-72119172] {
44004
44250
  display: flex;
44005
44251
  flex-direction: column;
44006
44252
  gap: 12px;
@@ -44010,34 +44256,34 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44010
44256
  border-radius: 12px;
44011
44257
  background: var(--color-main-background);
44012
44258
  }
44013
- .cn-flow-board__canvas[data-v-5c5d3119] {
44259
+ .cn-flow-board__canvas[data-v-72119172] {
44014
44260
  padding: 0;
44015
44261
  overflow: hidden;
44016
44262
  background-color: var(--color-background-hover);
44017
44263
  background-image: radial-gradient(var(--color-border-dark) 1px, transparent 1px);
44018
44264
  background-size: 16px 16px;
44019
44265
  }
44020
- .cn-flow-board__canvas[data-v-5c5d3119] > :first-child {
44266
+ .cn-flow-board__canvas[data-v-72119172] > :first-child {
44021
44267
  flex: 1 1 auto;
44022
44268
  min-height: 0;
44023
44269
  }
44024
- .cn-flow-board__card-title[data-v-5c5d3119] {
44270
+ .cn-flow-board__card-title[data-v-72119172] {
44025
44271
  margin: 0;
44026
44272
  font-size: 16px;
44027
44273
  font-weight: 600;
44028
44274
  }
44029
- .cn-flow-board__subtitle[data-v-5c5d3119] {
44275
+ .cn-flow-board__subtitle[data-v-72119172] {
44030
44276
  margin: 4px 0 0;
44031
44277
  font-size: 14px;
44032
44278
  font-weight: 600;
44033
44279
  }
44034
- .cn-flow-board__eyebrow[data-v-5c5d3119] {
44280
+ .cn-flow-board__eyebrow[data-v-72119172] {
44035
44281
  margin: 0;
44036
44282
  color: var(--color-text-maxcontrast);
44037
44283
  font-size: 13px;
44038
44284
  }
44039
- .cn-flow-board__validity[data-v-5c5d3119],
44040
- .cn-flow-board__legend[data-v-5c5d3119] {
44285
+ .cn-flow-board__validity[data-v-72119172],
44286
+ .cn-flow-board__legend[data-v-72119172] {
44041
44287
  display: flex;
44042
44288
  flex-wrap: wrap;
44043
44289
  gap: 8px;
@@ -44046,27 +44292,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44046
44292
  border-top: 1px solid var(--color-border);
44047
44293
  background: var(--color-main-background);
44048
44294
  }
44049
- .cn-flow-board__validity--success[data-v-5c5d3119] {
44295
+ .cn-flow-board__validity--success[data-v-72119172] {
44050
44296
  color: var(--color-success-text);
44051
44297
  }
44052
- .cn-flow-board__validity--warning[data-v-5c5d3119] {
44298
+ .cn-flow-board__validity--warning[data-v-72119172] {
44053
44299
  color: var(--color-warning-text);
44054
44300
  }
44055
- .cn-flow-board__validity--error[data-v-5c5d3119] {
44301
+ .cn-flow-board__validity--error[data-v-72119172] {
44056
44302
  color: var(--color-error-text);
44057
44303
  }
44058
- .cn-flow-board__palette-group[data-v-5c5d3119] {
44304
+ .cn-flow-board__palette-group[data-v-72119172] {
44059
44305
  display: flex;
44060
44306
  flex-direction: column;
44061
44307
  gap: 4px;
44062
44308
  }
44063
- .cn-flow-board__palette-app[data-v-5c5d3119] {
44309
+ .cn-flow-board__palette-app[data-v-72119172] {
44064
44310
  margin: 0;
44065
44311
  color: var(--color-text-maxcontrast);
44066
44312
  font-size: 13px;
44067
44313
  font-weight: 600;
44068
44314
  }
44069
- .cn-flow-board__palette-list[data-v-5c5d3119] {
44315
+ .cn-flow-board__palette-list[data-v-72119172] {
44070
44316
  display: flex;
44071
44317
  flex-direction: column;
44072
44318
  gap: 4px;
@@ -44074,7 +44320,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44074
44320
  padding: 0;
44075
44321
  list-style: none;
44076
44322
  }
44077
- .cn-flow-board__palette-step[data-v-5c5d3119] {
44323
+ .cn-flow-board__palette-step[data-v-72119172] {
44078
44324
  width: 100%;
44079
44325
  min-height: 34px;
44080
44326
  padding: 6px 10px;
@@ -44085,20 +44331,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44085
44331
  text-align: start;
44086
44332
  cursor: pointer;
44087
44333
  }
44088
- .cn-flow-board__palette-step[data-v-5c5d3119]:hover {
44334
+ .cn-flow-board__palette-step[data-v-72119172]:hover {
44089
44335
  background: var(--color-background-hover);
44090
44336
  }
44091
- .cn-flow-board__palette-note[data-v-5c5d3119] {
44337
+ .cn-flow-board__palette-note[data-v-72119172] {
44092
44338
  margin: 0;
44093
44339
  color: var(--color-text-maxcontrast);
44094
44340
  font-size: 13px;
44095
44341
  }
44096
- .cn-flow-board__tabs[data-v-5c5d3119] {
44342
+ .cn-flow-board__tabs[data-v-72119172] {
44097
44343
  display: flex;
44098
44344
  gap: 4px;
44099
44345
  border-bottom: 1px solid var(--color-border);
44100
44346
  }
44101
- .cn-flow-board__tab[data-v-5c5d3119] {
44347
+ .cn-flow-board__tab[data-v-72119172] {
44102
44348
  display: inline-flex;
44103
44349
  align-items: center;
44104
44350
  gap: 6px;
@@ -44110,12 +44356,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44110
44356
  color: var(--color-main-text);
44111
44357
  cursor: pointer;
44112
44358
  }
44113
- .cn-flow-board__tab--active[data-v-5c5d3119] {
44359
+ .cn-flow-board__tab--active[data-v-72119172] {
44114
44360
  border-color: var(--color-border);
44115
44361
  border-bottom-color: var(--color-main-background);
44116
44362
  font-weight: 600;
44117
44363
  }
44118
- .cn-flow-board__tab-count[data-v-5c5d3119] {
44364
+ .cn-flow-board__tab-count[data-v-72119172] {
44119
44365
  min-width: 18px;
44120
44366
  padding: 0 5px;
44121
44367
  border-radius: 9px;
@@ -44124,19 +44370,44 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
44124
44370
  line-height: 18px;
44125
44371
  text-align: center;
44126
44372
  }
44127
- .cn-flow-board__step-actions[data-v-5c5d3119],
44128
- .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] {
44129
44400
  display: flex;
44130
44401
  flex-wrap: wrap;
44131
44402
  gap: 8px;
44132
44403
  }
44133
- .cn-flow-board__step-footer[data-v-5c5d3119] {
44404
+ .cn-flow-board__step-footer[data-v-72119172] {
44134
44405
  justify-content: space-between;
44135
44406
  margin-top: auto;
44136
44407
  }
44137
44408
  @media (max-width: 1024px) {
44138
- .cn-flow-board__body[data-v-5c5d3119],
44139
- .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] {
44140
44411
  grid-template-columns: minmax(0, 1fr);
44141
44412
  }
44142
44413
  }
@@ -46882,7 +47153,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46882
47153
  }
46883
47154
 
46884
47155
 
46885
- .cn-features-board[data-v-ed367d64] {
47156
+ .cn-features-board[data-v-022166a7] {
46886
47157
  box-sizing: border-box;
46887
47158
  display: flex;
46888
47159
  flex-direction: column;
@@ -46891,20 +47162,20 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46891
47162
  max-width: 1240px;
46892
47163
  width: 100%;
46893
47164
  }
46894
- .cn-features-board__header[data-v-ed367d64] {
47165
+ .cn-features-board__header[data-v-022166a7] {
46895
47166
  display: flex;
46896
47167
  flex-direction: column;
46897
47168
  gap: 6px;
46898
47169
  padding: 4px 0 8px;
46899
47170
  }
46900
- .cn-features-board__title-row[data-v-ed367d64] {
47171
+ .cn-features-board__title-row[data-v-022166a7] {
46901
47172
  display: flex;
46902
47173
  flex-wrap: wrap;
46903
47174
  justify-content: space-between;
46904
47175
  align-items: flex-start;
46905
47176
  gap: 12px 24px;
46906
47177
  }
46907
- .cn-features-board__title[data-v-ed367d64] {
47178
+ .cn-features-board__title[data-v-022166a7] {
46908
47179
  flex: 1 1 320px;
46909
47180
  min-width: 0;
46910
47181
  margin: 0;
@@ -46912,32 +47183,32 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46912
47183
  font-weight: 700;
46913
47184
  line-height: 1.2;
46914
47185
  }
46915
- .cn-features-board__header-actions[data-v-ed367d64] {
47186
+ .cn-features-board__header-actions[data-v-022166a7] {
46916
47187
  flex: none;
46917
47188
  display: flex;
46918
47189
  flex-wrap: wrap;
46919
47190
  align-items: center;
46920
47191
  gap: 10px;
46921
47192
  }
46922
- .cn-features-board__subtitle[data-v-ed367d64] {
47193
+ .cn-features-board__subtitle[data-v-022166a7] {
46923
47194
  margin: 0;
46924
47195
  font-size: 15px;
46925
47196
  color: var(--color-text-maxcontrast);
46926
47197
  }
46927
- .cn-features-board__tab-row[data-v-ed367d64] {
47198
+ .cn-features-board__tab-row[data-v-022166a7] {
46928
47199
  display: flex;
46929
47200
  align-items: flex-end;
46930
47201
  gap: 8px;
46931
47202
  margin-bottom: calc(-1 * var(--cn-board-section-gap, 20px));
46932
47203
  }
46933
- .cn-features-board__tabs[data-v-ed367d64] {
47204
+ .cn-features-board__tabs[data-v-022166a7] {
46934
47205
  display: flex;
46935
47206
  flex-wrap: wrap;
46936
47207
  gap: 4px;
46937
47208
  flex: 1 1 auto;
46938
47209
  min-width: 0;
46939
47210
  }
46940
- .cn-features-board__tab[data-v-ed367d64] {
47211
+ .cn-features-board__tab[data-v-022166a7] {
46941
47212
  display: inline-flex;
46942
47213
  align-items: center;
46943
47214
  box-sizing: border-box;
@@ -46954,35 +47225,35 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46954
47225
  cursor: pointer;
46955
47226
  white-space: nowrap;
46956
47227
  }
46957
- .cn-features-board__tab--active[data-v-ed367d64] {
47228
+ .cn-features-board__tab--active[data-v-022166a7] {
46958
47229
  position: relative;
46959
47230
  background: var(--color-main-background);
46960
47231
  border-bottom: 1px solid var(--color-main-background);
46961
47232
  font-weight: 700;
46962
47233
  }
46963
- .cn-features-board__tab-actions[data-v-ed367d64] {
47234
+ .cn-features-board__tab-actions[data-v-022166a7] {
46964
47235
  flex: none;
46965
47236
  align-self: flex-start;
46966
47237
  margin: 0 8px 8px 0;
46967
47238
  }
46968
- .cn-features-board__panel[data-v-ed367d64] {
47239
+ .cn-features-board__panel[data-v-022166a7] {
46969
47240
  display: flex;
46970
47241
  flex-direction: column;
46971
47242
  gap: 22px;
46972
47243
  }
46973
- .cn-features-board__panel--tabbed[data-v-ed367d64] {
47244
+ .cn-features-board__panel--tabbed[data-v-022166a7] {
46974
47245
  padding: 22px;
46975
47246
  border: 1px solid var(--color-border);
46976
47247
  border-radius: 0 var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px) var(--cn-board-card-radius, 12px);
46977
47248
  background: var(--color-main-background);
46978
47249
  }
46979
- .cn-features-board__filter[data-v-ed367d64] {
47250
+ .cn-features-board__filter[data-v-022166a7] {
46980
47251
  display: flex;
46981
47252
  flex-wrap: wrap;
46982
47253
  align-items: center;
46983
47254
  gap: 8px;
46984
47255
  }
46985
- .cn-features-board__filter-option[data-v-ed367d64] {
47256
+ .cn-features-board__filter-option[data-v-022166a7] {
46986
47257
  display: inline-flex;
46987
47258
  align-items: center;
46988
47259
  gap: 8px;
@@ -46991,7 +47262,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46991
47262
  font-weight: 600;
46992
47263
  cursor: pointer;
46993
47264
  }
46994
- .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] {
46995
47266
  height: 36px;
46996
47267
  padding: 0 14px;
46997
47268
  border: 1px solid var(--color-border-dark);
@@ -46999,19 +47270,19 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
46999
47270
  background: var(--color-main-background);
47000
47271
  color: var(--color-main-text);
47001
47272
  }
47002
- .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] {
47003
47274
  border-color: var(--color-main-text);
47004
47275
  background: var(--color-main-text);
47005
47276
  color: var(--color-main-background);
47006
47277
  }
47007
- .cn-features-board__filter-count[data-v-ed367d64] {
47278
+ .cn-features-board__filter-count[data-v-022166a7] {
47008
47279
  font-weight: 400;
47009
47280
  color: var(--color-text-maxcontrast);
47010
47281
  }
47011
- .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] {
47012
47283
  color: var(--color-border-dark);
47013
47284
  }
47014
- .cn-features-board__filter--segmented[data-v-ed367d64] {
47285
+ .cn-features-board__filter--segmented[data-v-022166a7] {
47015
47286
  display: inline-flex;
47016
47287
  align-self: flex-start;
47017
47288
  gap: 2px;
@@ -47019,7 +47290,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47019
47290
  border-radius: 8px;
47020
47291
  background: var(--color-background-dark);
47021
47292
  }
47022
- .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] {
47023
47294
  height: 34px;
47024
47295
  padding: 0 14px;
47025
47296
  border: 0;
@@ -47027,65 +47298,65 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47027
47298
  background: transparent;
47028
47299
  color: var(--color-main-text);
47029
47300
  }
47030
- .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] {
47031
47302
  background: var(--color-main-background);
47032
47303
  box-shadow: 0 1px 2px rgba(27, 28, 29, 0.12);
47033
47304
  }
47034
- .cn-features-board__body[data-v-ed367d64] {
47305
+ .cn-features-board__body[data-v-022166a7] {
47035
47306
  display: flex;
47036
47307
  flex-wrap: wrap;
47037
47308
  align-items: flex-start;
47038
47309
  gap: 24px;
47039
47310
  }
47040
- .cn-features-board__groups[data-v-ed367d64] {
47311
+ .cn-features-board__groups[data-v-022166a7] {
47041
47312
  flex: 999 1 520px;
47042
47313
  min-width: 0;
47043
47314
  display: flex;
47044
47315
  flex-direction: column;
47045
47316
  gap: 26px;
47046
47317
  }
47047
- .cn-features-board__groups--rows[data-v-ed367d64] {
47318
+ .cn-features-board__groups--rows[data-v-022166a7] {
47048
47319
  display: grid;
47049
47320
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
47050
47321
  gap: 20px;
47051
47322
  }
47052
- .cn-features-board__group[data-v-ed367d64] {
47323
+ .cn-features-board__group[data-v-022166a7] {
47053
47324
  display: flex;
47054
47325
  flex-direction: column;
47055
47326
  gap: 12px;
47056
47327
  max-width: none;
47057
47328
  margin: 0;
47058
47329
  }
47059
- .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] {
47060
47331
  padding: var(--cn-board-card-padding, 20px 22px);
47061
47332
  border: 1px solid var(--color-border);
47062
47333
  border-radius: var(--cn-board-card-radius, 12px);
47063
47334
  background: var(--color-main-background);
47064
47335
  }
47065
- .cn-features-board__group-head[data-v-ed367d64] {
47336
+ .cn-features-board__group-head[data-v-022166a7] {
47066
47337
  display: flex;
47067
47338
  flex-wrap: wrap;
47068
47339
  align-items: baseline;
47069
47340
  gap: 10px;
47070
47341
  }
47071
- .cn-features-board__group-title[data-v-ed367d64] {
47342
+ .cn-features-board__group-title[data-v-022166a7] {
47072
47343
  margin: 0;
47073
47344
  font-size: 18px;
47074
47345
  font-weight: 700;
47075
47346
  }
47076
- .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] {
47077
47348
  font-size: 17px;
47078
47349
  }
47079
- .cn-features-board__group-caption[data-v-ed367d64] {
47350
+ .cn-features-board__group-caption[data-v-022166a7] {
47080
47351
  font-size: 13px;
47081
47352
  color: var(--color-text-maxcontrast);
47082
47353
  }
47083
- .cn-features-board__cards[data-v-ed367d64] {
47354
+ .cn-features-board__cards[data-v-022166a7] {
47084
47355
  display: grid;
47085
47356
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
47086
47357
  gap: 16px;
47087
47358
  }
47088
- .cn-features-board__card[data-v-ed367d64] {
47359
+ .cn-features-board__card[data-v-022166a7] {
47089
47360
  display: flex;
47090
47361
  flex-direction: column;
47091
47362
  gap: 10px;
@@ -47094,24 +47365,24 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47094
47365
  border-radius: var(--cn-board-card-radius, 12px);
47095
47366
  background: var(--color-main-background);
47096
47367
  }
47097
- .cn-features-board__card-head[data-v-ed367d64] {
47368
+ .cn-features-board__card-head[data-v-022166a7] {
47098
47369
  display: flex;
47099
47370
  flex-direction: column;
47100
47371
  align-items: flex-start;
47101
47372
  gap: 4px;
47102
47373
  }
47103
- .cn-features-board__card-title[data-v-ed367d64] {
47374
+ .cn-features-board__card-title[data-v-022166a7] {
47104
47375
  margin: 0;
47105
47376
  font-size: 17px;
47106
47377
  font-weight: 700;
47107
47378
  line-height: 1.3;
47108
47379
  }
47109
- .cn-features-board__card-summary[data-v-ed367d64] {
47380
+ .cn-features-board__card-summary[data-v-022166a7] {
47110
47381
  margin: 0;
47111
47382
  font-size: 14px;
47112
47383
  color: var(--color-main-text);
47113
47384
  }
47114
- .cn-features-board__card-footer[data-v-ed367d64] {
47385
+ .cn-features-board__card-footer[data-v-022166a7] {
47115
47386
  display: flex;
47116
47387
  justify-content: flex-end;
47117
47388
  align-items: center;
@@ -47120,7 +47391,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47120
47391
  padding-top: 10px;
47121
47392
  border-top: 1px solid var(--color-background-dark);
47122
47393
  }
47123
- .cn-features-board__read-more[data-v-ed367d64] {
47394
+ .cn-features-board__read-more[data-v-022166a7] {
47124
47395
  display: inline-flex;
47125
47396
  align-items: center;
47126
47397
  height: 34px;
@@ -47133,14 +47404,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47133
47404
  font-weight: 600;
47134
47405
  text-decoration: none;
47135
47406
  }
47136
- .cn-features-board__rows[data-v-ed367d64] {
47407
+ .cn-features-board__rows[data-v-022166a7] {
47137
47408
  display: flex;
47138
47409
  flex-direction: column;
47139
47410
  margin: 0;
47140
47411
  padding: 0;
47141
47412
  list-style: none;
47142
47413
  }
47143
- .cn-features-board__row[data-v-ed367d64] {
47414
+ .cn-features-board__row[data-v-022166a7] {
47144
47415
  display: flex;
47145
47416
  flex-wrap: wrap;
47146
47417
  align-items: center;
@@ -47148,27 +47419,27 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47148
47419
  padding: 10px 0;
47149
47420
  border-top: 1px solid var(--color-background-dark);
47150
47421
  }
47151
- .cn-features-board__row-text[data-v-ed367d64] {
47422
+ .cn-features-board__row-text[data-v-022166a7] {
47152
47423
  flex: 1 1 240px;
47153
47424
  min-width: 0;
47154
47425
  display: flex;
47155
47426
  flex-direction: column;
47156
47427
  gap: 2px;
47157
47428
  }
47158
- .cn-features-board__row-title[data-v-ed367d64] {
47429
+ .cn-features-board__row-title[data-v-022166a7] {
47159
47430
  font-size: 15px;
47160
47431
  font-weight: 500;
47161
47432
  }
47162
- .cn-features-board__row-summary[data-v-ed367d64] {
47433
+ .cn-features-board__row-summary[data-v-022166a7] {
47163
47434
  font-size: 13px;
47164
47435
  color: var(--color-text-maxcontrast);
47165
47436
  }
47166
- .cn-features-board__next[data-v-ed367d64] {
47437
+ .cn-features-board__next[data-v-022166a7] {
47167
47438
  flex: 1 1 280px;
47168
47439
  min-width: 0;
47169
47440
  max-width: 340px;
47170
47441
  }
47171
- .cn-features-board__next-card[data-v-ed367d64] {
47442
+ .cn-features-board__next-card[data-v-022166a7] {
47172
47443
  display: flex;
47173
47444
  flex-direction: column;
47174
47445
  gap: 12px;
@@ -47177,22 +47448,22 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47177
47448
  border-radius: var(--cn-board-card-radius, 12px);
47178
47449
  background: var(--color-background-hover);
47179
47450
  }
47180
- .cn-features-board__next-head[data-v-ed367d64] {
47451
+ .cn-features-board__next-head[data-v-022166a7] {
47181
47452
  display: flex;
47182
47453
  align-items: center;
47183
47454
  gap: 8px;
47184
47455
  }
47185
- .cn-features-board__next-title[data-v-ed367d64] {
47456
+ .cn-features-board__next-title[data-v-022166a7] {
47186
47457
  margin: 0;
47187
47458
  font-size: 18px;
47188
47459
  font-weight: 700;
47189
47460
  }
47190
- .cn-features-board__next-lead[data-v-ed367d64] {
47461
+ .cn-features-board__next-lead[data-v-022166a7] {
47191
47462
  margin: 0;
47192
47463
  font-size: 14px;
47193
47464
  color: var(--color-text-maxcontrast);
47194
47465
  }
47195
- .cn-features-board__next-list[data-v-ed367d64] {
47466
+ .cn-features-board__next-list[data-v-022166a7] {
47196
47467
  display: flex;
47197
47468
  flex-direction: column;
47198
47469
  gap: 10px;
@@ -47200,7 +47471,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47200
47471
  padding: 0;
47201
47472
  list-style: none;
47202
47473
  }
47203
- .cn-features-board__next-item[data-v-ed367d64] {
47474
+ .cn-features-board__next-item[data-v-022166a7] {
47204
47475
  display: flex;
47205
47476
  flex-direction: column;
47206
47477
  gap: 6px;
@@ -47209,14 +47480,14 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47209
47480
  border-radius: 10px;
47210
47481
  background: var(--color-main-background);
47211
47482
  }
47212
- .cn-features-board__next-link[data-v-ed367d64] {
47483
+ .cn-features-board__next-link[data-v-022166a7] {
47213
47484
  font-size: 15px;
47214
47485
  font-weight: 600;
47215
47486
  line-height: 1.3;
47216
47487
  color: var(--color-main-text);
47217
47488
  text-decoration: none;
47218
47489
  }
47219
- .cn-features-board__next-meta[data-v-ed367d64] {
47490
+ .cn-features-board__next-meta[data-v-022166a7] {
47220
47491
  display: flex;
47221
47492
  flex-wrap: wrap;
47222
47493
  align-items: center;
@@ -47224,23 +47495,23 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47224
47495
  font-size: 13px;
47225
47496
  color: var(--color-text-maxcontrast);
47226
47497
  }
47227
- .cn-features-board__next-opened[data-v-ed367d64] {
47498
+ .cn-features-board__next-opened[data-v-022166a7] {
47228
47499
  display: inline-flex;
47229
47500
  align-items: center;
47230
47501
  gap: 4px;
47231
47502
  }
47232
- .cn-features-board__next-more[data-v-ed367d64] {
47503
+ .cn-features-board__next-more[data-v-022166a7] {
47233
47504
  display: inline-flex;
47234
47505
  align-items: center;
47235
47506
  gap: 4px;
47236
47507
  font-size: 14px;
47237
47508
  font-weight: 600;
47238
47509
  }
47239
- .cn-features-board__empty[data-v-ed367d64] {
47510
+ .cn-features-board__empty[data-v-022166a7] {
47240
47511
  margin: 0;
47241
47512
  color: var(--color-text-maxcontrast);
47242
47513
  }
47243
- .cn-features-board__notice[data-v-ed367d64] {
47514
+ .cn-features-board__notice[data-v-022166a7] {
47244
47515
  margin: 0;
47245
47516
  }
47246
47517
 
@@ -47290,12 +47561,12 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47290
47561
  }
47291
47562
 
47292
47563
 
47293
- .cn-features-and-roadmap-view[data-v-3db485a4] {
47564
+ .cn-features-and-roadmap-view[data-v-2dd578ca] {
47294
47565
  max-width: 1200px;
47295
47566
  margin: 0 auto;
47296
47567
  padding: 24px 16px;
47297
47568
  }
47298
- .cn-features-and-roadmap-view__header[data-v-3db485a4] {
47569
+ .cn-features-and-roadmap-view__header[data-v-2dd578ca] {
47299
47570
  display: flex;
47300
47571
  align-items: center;
47301
47572
  justify-content: space-between;
@@ -47307,29 +47578,29 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
47307
47578
  room. Only the HEADER shifts right — the panel below keeps full width. */
47308
47579
  padding-inline-start: 56px;
47309
47580
  }
47310
- .cn-features-and-roadmap-view__title[data-v-3db485a4] {
47581
+ .cn-features-and-roadmap-view__title[data-v-2dd578ca] {
47311
47582
  font-size: 1.4em;
47312
47583
  margin: 0;
47313
47584
  color: var(--color-main-text);
47314
47585
  }
47315
- .cn-features-and-roadmap-view__actions[data-v-3db485a4] {
47586
+ .cn-features-and-roadmap-view__actions[data-v-2dd578ca] {
47316
47587
  display: flex;
47317
47588
  gap: 8px;
47318
47589
  align-items: center;
47319
47590
  flex-wrap: wrap;
47320
47591
  }
47321
- .cn-features-and-roadmap-view__panel[data-v-3db485a4] {
47592
+ .cn-features-and-roadmap-view__panel[data-v-2dd578ca] {
47322
47593
  min-height: 320px;
47323
47594
  }
47324
47595
 
47325
47596
  /* Underline the inline docs URL so it reads as a link inside the note
47326
47597
  body — NcNoteCard's default link styling drops the underline by
47327
47598
  inheriting from the host theme. */
47328
- .cn-features-and-roadmap-view__docs-note[data-v-3db485a4] a {
47599
+ .cn-features-and-roadmap-view__docs-note[data-v-2dd578ca] a {
47329
47600
  color: var(--color-primary-element);
47330
47601
  text-decoration: underline;
47331
47602
  }
47332
- .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 {
47333
47604
  text-decoration: underline;
47334
47605
  opacity: 0.85;
47335
47606
  }