@conduction/nextcloud-vue 2.83.0 → 2.84.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 (136) hide show
  1. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
  2. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +1 -1
  3. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
  4. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
  5. package/dist/esm/components/CnBodySections/CnBodySections.vue.js +1 -1
  6. package/dist/esm/components/CnBodySections/CnBodySections.vue2.js +22 -1
  7. package/dist/esm/components/CnBodySections/CnBodySections.vue2.js.map +1 -1
  8. package/dist/esm/components/CnBodySections/CnBodySections.vue3.js.map +1 -1
  9. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue.js +1 -1
  10. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js +47 -4
  11. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js.map +1 -1
  12. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue3.js.map +1 -1
  13. package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue.js +1 -1
  14. package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js +125 -3
  15. package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js.map +1 -1
  16. package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js +3 -3
  17. package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js.map +1 -1
  18. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  19. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +5 -0
  20. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  21. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  22. package/dist/esm/components/CnDeltaWidget/CnDeltaWidget.vue.js +1 -1
  23. package/dist/esm/components/CnDeltaWidget/CnDeltaWidget.vue2.js +1 -1
  24. package/dist/esm/components/CnDeltaWidget/CnDeltaWidget.vue2.js.map +1 -1
  25. package/dist/esm/components/CnDeltaWidget/CnDeltaWidget.vue3.js.map +1 -1
  26. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +203 -4
  27. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  28. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  29. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +1 -1
  30. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +38 -1
  31. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -1
  32. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +45 -5
  33. package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -1
  34. package/dist/esm/components/CnGaugeWidget/CnGaugeWidget.vue.js +1 -1
  35. package/dist/esm/components/CnGaugeWidget/CnGaugeWidget.vue2.js +1 -1
  36. package/dist/esm/components/CnGaugeWidget/CnGaugeWidget.vue2.js.map +1 -1
  37. package/dist/esm/components/CnGaugeWidget/CnGaugeWidget.vue3.js.map +1 -1
  38. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue2.js +29 -6
  39. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue2.js.map +1 -1
  40. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue3.js.map +1 -1
  41. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
  42. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +31 -2
  43. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
  44. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
  45. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
  46. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +37 -2
  47. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
  48. package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
  49. package/dist/esm/components/CnReportsPage/CnReportsPage.vue.js +1 -1
  50. package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js +135 -2
  51. package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js.map +1 -1
  52. package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js +95 -43
  53. package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js.map +1 -1
  54. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue.js +1 -1
  55. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +72 -5
  56. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
  57. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js +33 -8
  58. package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
  59. package/dist/esm/components/CnStatWidget/CnStatWidget.vue.js +1 -1
  60. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +1 -1
  61. package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
  62. package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
  63. package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue.js +1 -1
  64. package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js +17 -2
  65. package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js.map +1 -1
  66. package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js +1 -1
  67. package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js.map +1 -1
  68. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
  69. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +33 -3
  70. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
  71. package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
  72. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue.js +1 -1
  73. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +16 -0
  74. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
  75. package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
  76. package/dist/esm/dialogs/CnTransitionInputDialog.vue.js +1 -1
  77. package/dist/esm/dialogs/CnTransitionInputDialog.vue2.js +68 -6
  78. package/dist/esm/dialogs/CnTransitionInputDialog.vue2.js.map +1 -1
  79. package/dist/esm/dialogs/CnTransitionInputDialog.vue3.js +133 -105
  80. package/dist/esm/dialogs/CnTransitionInputDialog.vue3.js.map +1 -1
  81. package/dist/esm/l10n/en.json.js +16 -1
  82. package/dist/esm/l10n/en.json.js.map +1 -1
  83. package/dist/esm/l10n/nl.json.js +38 -1
  84. package/dist/esm/l10n/nl.json.js.map +1 -1
  85. package/dist/esm/library-style.js +1 -1
  86. package/dist/esm/nextcloud-vue.css +448 -296
  87. package/dist/esm/utils/buildManifest.js +37 -3
  88. package/dist/esm/utils/buildManifest.js.map +1 -1
  89. package/dist/esm/utils/detailWidgetVisibility.js +149 -0
  90. package/dist/esm/utils/detailWidgetVisibility.js.map +1 -0
  91. package/dist/esm/utils/formatMetric.js +39 -3
  92. package/dist/esm/utils/formatMetric.js.map +1 -1
  93. package/dist/esm/utils/resolveManifestTokens.js +1 -0
  94. package/dist/esm/utils/resolveManifestTokens.js.map +1 -1
  95. package/dist/esm/utils/sentinelTokens.js +9 -0
  96. package/dist/esm/utils/sentinelTokens.js.map +1 -1
  97. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  98. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  99. package/dist/nextcloud-vue.cjs.js +1706 -454
  100. package/dist/nextcloud-vue.cjs.js.map +2 -2
  101. package/dist/nextcloud-vue.css +448 -296
  102. package/l10n/en.json +16 -1
  103. package/l10n/nl.json +38 -1
  104. package/package.json +1 -1
  105. package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +1 -1
  106. package/src/components/CnBodySections/CnBodySections.vue +22 -1
  107. package/src/components/CnCountdownWidget/CnCountdownWidget.vue +47 -4
  108. package/src/components/CnDashboardGrid/CnDashboardGrid.vue +128 -6
  109. package/src/components/CnDashboardPage/CnDashboardPage.vue +5 -0
  110. package/src/components/CnDeltaWidget/CnDeltaWidget.vue +1 -1
  111. package/src/components/CnDetailPage/CnDetailPage.md +2 -0
  112. package/src/components/CnDetailPage/CnDetailPage.vue +203 -4
  113. package/src/components/CnFieldListWidget/CnFieldListWidget.vue +63 -1
  114. package/src/components/CnGaugeWidget/CnGaugeWidget.vue +1 -1
  115. package/src/components/CnInteractionFormWidget/CnInteractionFormWidget.vue +29 -6
  116. package/src/components/CnObjectDataWidget/CnObjectDataWidget.md +1 -1
  117. package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +31 -2
  118. package/src/components/CnRecordListWidget/CnRecordListWidget.vue +37 -2
  119. package/src/components/CnReportsPage/CnReportsPage.vue +179 -1
  120. package/src/components/CnStagesWidget/CnStagesWidget.vue +103 -6
  121. package/src/components/CnStatWidget/CnStatWidget.vue +1 -1
  122. package/src/components/CnStatsBlockWidget/CnStatsBlockWidget.vue +34 -3
  123. package/src/components/CnTabsWidget/CnTabsWidget.vue +33 -3
  124. package/src/components/CnWalkthrough/CnWalkthrough.vue +16 -0
  125. package/src/css/form-field.css +14 -0
  126. package/src/css/form-widget.css +11 -0
  127. package/src/css/look-board-reports.css +58 -0
  128. package/src/css/look-board.css +12 -0
  129. package/src/dialogs/CnTransitionInputDialog.vue +87 -7
  130. package/src/schemas/app-manifest-v2.schema.json +23 -2
  131. package/src/utils/buildManifest.js +36 -2
  132. package/src/utils/detailWidgetVisibility.js +145 -0
  133. package/src/utils/formatMetric.js +38 -2
  134. package/src/utils/resolveManifestTokens.js +1 -0
  135. package/src/utils/sentinelTokens.js +9 -0
  136. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -683,6 +683,18 @@
683
683
  font-weight: 600;
684
684
  }
685
685
 
686
+ /* ---- Dashboard card titles --------------------------------------------- */
687
+ /* A card's title on a dashboard (and on the widgets under a reports page) is
688
+ the board's card h2: 17px weight 700 (boards PqMijnWerk, DcRapportages and
689
+ the app dashboards; `--cn-board-heading-size`, as on a detail page's cards).
690
+ The wrapper's own 14px weight 600 stays for the Nextcloud look, and the
691
+ native-dashboard chrome keeps its 20px. */
692
+ .cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--nc-dashboard) .cn-widget-wrapper__title {
693
+ font-size: var(--cn-board-heading-size, 17px);
694
+ font-weight: 700;
695
+ line-height: 1.3;
696
+ }
697
+
686
698
  /* ---- Record list on a dashboard card (PtDashboard) ---------------------- */
687
699
  /* The dashboard's card body is flush, so the rows carry their own inset: the
688
700
  board's card pads 24px at the sides and each row 14px, a soft hairline
@@ -1157,6 +1169,20 @@
1157
1169
  .cn-look-board .cn-form-page__footer .cn-form-page__primary {
1158
1170
  margin-inline-start: auto;
1159
1171
  }
1172
+
1173
+ /* A Nextcloud text area or text field with its label inside the field hides
1174
+ its placeholder until the field takes focus, so the label and the
1175
+ placeholder are never drawn over each other. A theme that forces every
1176
+ placeholder visible (thematiq's nldesign system sets
1177
+ `::placeholder { opacity: 1 !important }`) drew both: the dossiq DqTaak
1178
+ notes field read "Een notitie toevoegen" over "Wat heb je gevonden, wie heb
1179
+ je gebeld?". Under the board look the placeholder stays hidden at rest, as
1180
+ Nextcloud intends; a field with its label outside keeps its placeholder.
1181
+ @spec openspec/changes/board-field-label-over-placeholder/specs/form-field-board-look/spec.md#requirement-a-field-label-and-its-placeholder-are-never-drawn-over-each-other */
1182
+ .cn-look-board .textarea__input:not(:focus, .textarea__input--label-outside)::placeholder,
1183
+ .cn-look-board .input-field:not(.input-field--label-outside) .input-field__input:not(:focus)::placeholder {
1184
+ opacity: 0 !important;
1185
+ }
1160
1186
  /*
1161
1187
  * The board (screens-kanban-parity, canon section 8).
1162
1188
  *
@@ -4176,6 +4202,7 @@ a.cn-kpi-card--board * {
4176
4202
  }
4177
4203
 
4178
4204
  .cn-form-widget__textarea {
4205
+ box-sizing: border-box;
4179
4206
  width: 100%;
4180
4207
  min-height: 80px;
4181
4208
  padding: 8px;
@@ -4197,6 +4224,16 @@ a.cn-kpi-card--board * {
4197
4224
  color: var(--color-error);
4198
4225
  margin: 0;
4199
4226
  }
4227
+
4228
+ /* A select takes its field's width, however narrow the card. NcSelect is at
4229
+ least 260px wide on its own, so in pipelinq's 234px "Nieuw contactmoment"
4230
+ card at 1100 wide the channel and client selects ran 40px past the card's
4231
+ edge. The client picker (CnResourceSelect) is an NcSelect too.
4232
+ @spec openspec/changes/interaction-form-fits-and-reads-dutch/specs/interaction-form-widget/spec.md#requirement-the-interaction-form-fits-its-card-and-reads-in-the-readers-language */
4233
+ .cn-form-widget .v-select.select {
4234
+ min-width: 0;
4235
+ width: 100%;
4236
+ }
4200
4237
  /* ========================================
4201
4238
  @conduction/nextcloud-vue — Detail Grid & Layout Utility Styles
4202
4239
  ======================================== */
@@ -7086,6 +7123,64 @@ a.cn-kpi-card--board * {
7086
7123
  .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-dashboard-page {
7087
7124
  padding: 0;
7088
7125
  }
7126
+
7127
+ /* The widget area draws no panel of its own (board DcRapportages: the
7128
+ highlighted report's card sits straight on the page ground). A theme's
7129
+ catch-all for anything named like a widget (nldesign's element overrides:
7130
+ `[class*="widget"]:not([class*="widget__"]):not(#header *)`, an id
7131
+ specificity no class rule outranks) painted `__widgets` white, hence the
7132
+ `!important`. */
7133
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__widgets {
7134
+ background: transparent !important;
7135
+ }
7136
+
7137
+ /* The grid insets every card by its 12px margin (CnDashboardPage's default
7138
+ `gridMargin`); the page padding already places the area, so the card's
7139
+ edges line up with the report cards above it. */
7140
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__widgets .cn-dashboard-grid {
7141
+ width: calc(100% + 24px);
7142
+ margin: -12px;
7143
+ }
7144
+
7145
+ /* A report card is a link, but its title and description read as text, as on
7146
+ the board: no underline, whatever a theme does to links. */
7147
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__card,
7148
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__card * {
7149
+ text-decoration: none !important;
7150
+ }
7151
+
7152
+ /* The header buttons beside the title (screens-reports-header-buttons, board
7153
+ DcRapportages "Downloaden"): the board's 40px button with a grey border on
7154
+ the main background, the primary one in the primary fill, as on the index
7155
+ header. `!important` holds them under a theme that restyles every button
7156
+ (nldesign). The buildiq square keeps its own rule. */
7157
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__header-buttons > .button-vue--secondary {
7158
+ height: var(--cn-board-control-height) !important;
7159
+ min-height: var(--cn-board-control-height) !important;
7160
+ padding: 0 14px !important;
7161
+ border: 1px solid var(--color-border-dark) !important;
7162
+ border-radius: var(--cn-board-control-radius) !important;
7163
+ background: var(--color-main-background) !important;
7164
+ color: var(--color-main-text) !important;
7165
+ }
7166
+
7167
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__header-buttons > .button-vue--secondary:hover {
7168
+ background: var(--color-background-hover) !important;
7169
+ }
7170
+
7171
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__header-buttons > .button-vue--primary {
7172
+ height: var(--cn-board-control-height) !important;
7173
+ min-height: var(--cn-board-control-height) !important;
7174
+ padding: 0 16px !important;
7175
+ border: 0 !important;
7176
+ border-radius: var(--cn-board-control-radius) !important;
7177
+ background: var(--color-primary-element) !important;
7178
+ color: var(--color-primary-element-text) !important;
7179
+ }
7180
+
7181
+ .cn-look-board .cn-reports-page:not(.cn-look-nextcloud *) .cn-reports-page__header-buttons > .button-vue--primary:hover {
7182
+ background: var(--color-primary-element-hover) !important;
7183
+ }
7089
7184
  /* CnReferencePreview — a reference that shows what it points at. */
7090
7185
 
7091
7186
  .cn-reference-preview {
@@ -9006,10 +9101,10 @@ a.cn-kpi-card--board * {
9006
9101
  }
9007
9102
 
9008
9103
 
9009
- .cn-countdown-widget__value[data-v-17598258] {
9104
+ .cn-countdown-widget__value[data-v-5546e71c] {
9010
9105
  white-space: nowrap;
9011
9106
  }
9012
- .cn-countdown-widget__sub[data-v-17598258] {
9107
+ .cn-countdown-widget__sub[data-v-5546e71c] {
9013
9108
  color: var(--color-text-maxcontrast);
9014
9109
  font-size: 0.85em;
9015
9110
  }
@@ -12478,41 +12573,41 @@ a.cn-analytics-card__title[data-v-f3ca7b06]:hover {
12478
12573
  }
12479
12574
 
12480
12575
 
12481
- .cn-audit-card__list[data-v-b6134724] {
12576
+ .cn-audit-card__list[data-v-280a5ace] {
12482
12577
  list-style: none;
12483
12578
  margin: 0;
12484
12579
  padding: 0;
12485
12580
  }
12486
- .cn-audit-card__row[data-v-b6134724] {
12581
+ .cn-audit-card__row[data-v-280a5ace] {
12487
12582
  padding: 6px 0;
12488
12583
  border-bottom: 1px solid var(--color-border);
12489
12584
  }
12490
- .cn-audit-card__row[data-v-b6134724]:last-child {
12585
+ .cn-audit-card__row[data-v-280a5ace]:last-child {
12491
12586
  border-bottom: none;
12492
12587
  }
12493
- .cn-audit-card__row-head[data-v-b6134724] {
12588
+ .cn-audit-card__row-head[data-v-280a5ace] {
12494
12589
  display: flex;
12495
12590
  justify-content: space-between;
12496
12591
  gap: 8px;
12497
12592
  }
12498
- .cn-audit-card__action[data-v-b6134724] {
12593
+ .cn-audit-card__action[data-v-280a5ace] {
12499
12594
  color: var(--color-main-text);
12500
12595
  }
12501
- .cn-audit-card__when[data-v-b6134724] {
12596
+ .cn-audit-card__when[data-v-280a5ace] {
12502
12597
  color: var(--color-text-maxcontrast);
12503
12598
  font-size: 0.85em;
12504
12599
  white-space: nowrap;
12505
12600
  }
12506
- .cn-audit-card__row-body[data-v-b6134724] {
12601
+ .cn-audit-card__row-body[data-v-280a5ace] {
12507
12602
  color: var(--color-text-maxcontrast);
12508
12603
  font-size: 0.9em;
12509
12604
  }
12510
- .cn-audit-card__empty[data-v-b6134724] {
12605
+ .cn-audit-card__empty[data-v-280a5ace] {
12511
12606
  color: var(--color-text-maxcontrast);
12512
12607
  text-align: center;
12513
12608
  padding: 12px 0;
12514
12609
  }
12515
- .cn-audit-card__show-all[data-v-b6134724] {
12610
+ .cn-audit-card__show-all[data-v-280a5ace] {
12516
12611
  background: none;
12517
12612
  border: none;
12518
12613
  color: var(--color-primary-element);
@@ -12520,7 +12615,7 @@ a.cn-analytics-card__title[data-v-f3ca7b06]:hover {
12520
12615
  padding: 4px 0;
12521
12616
  font: inherit;
12522
12617
  }
12523
- .cn-audit-card__show-all[data-v-b6134724]:hover {
12618
+ .cn-audit-card__show-all[data-v-280a5ace]:hover {
12524
12619
  text-decoration: underline;
12525
12620
  }
12526
12621
 
@@ -21221,22 +21316,22 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21221
21316
  }
21222
21317
 
21223
21318
 
21224
- .cn-transition-input[data-v-ac83f832] {
21319
+ .cn-transition-input[data-v-457532e4] {
21225
21320
  display: flex;
21226
21321
  flex-direction: column;
21227
21322
  gap: 12px;
21228
21323
  padding: 4px 0;
21229
21324
  }
21230
- .cn-transition-input__error[data-v-ac83f832] {
21325
+ .cn-transition-input__error[data-v-457532e4] {
21231
21326
  margin: 0;
21232
21327
  color: var(--color-error-text, var(--color-error));
21233
21328
  }
21234
- .cn-transition-input__field-error[data-v-ac83f832] {
21329
+ .cn-transition-input__field-error[data-v-457532e4] {
21235
21330
  margin: 4px 0 0;
21236
21331
  font-size: 0.9em;
21237
21332
  color: var(--color-error-text, var(--color-error));
21238
21333
  }
21239
- .cn-transition-input__object[data-v-ac83f832] {
21334
+ .cn-transition-input__object[data-v-457532e4] {
21240
21335
  border: 1px solid var(--color-border);
21241
21336
  border-radius: var(--border-radius);
21242
21337
  padding: 8px 12px;
@@ -21244,11 +21339,11 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21244
21339
  flex-direction: column;
21245
21340
  gap: 8px;
21246
21341
  }
21247
- .cn-transition-input__label[data-v-ac83f832] {
21342
+ .cn-transition-input__label[data-v-457532e4] {
21248
21343
  display: block;
21249
21344
  margin-bottom: 4px;
21250
21345
  }
21251
- .cn-transition-input__field--refused[data-v-ac83f832] {
21346
+ .cn-transition-input__field--refused[data-v-457532e4] {
21252
21347
  border-inline-start: 2px solid var(--color-error);
21253
21348
  padding-inline-start: 8px;
21254
21349
  }
@@ -21590,7 +21685,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21590
21685
  }
21591
21686
 
21592
21687
 
21593
- .cn-stages-widget[data-v-a394760a] {
21688
+ .cn-stages-widget[data-v-3946def5] {
21594
21689
  display: flex;
21595
21690
  flex-direction: column;
21596
21691
  gap: 8px;
@@ -21600,12 +21695,19 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21600
21695
  tile rather than a strip of 32px circles. */
21601
21696
  padding: 4px;
21602
21697
  }
21603
- .cn-stages-widget__loading[data-v-a394760a] {
21698
+ .cn-stages-widget__loading[data-v-3946def5] {
21604
21699
  display: flex;
21605
21700
  justify-content: center;
21606
21701
  padding: 8px 0;
21607
21702
  }
21608
- .cn-stages-widget__notice[data-v-a394760a] {
21703
+
21704
+ /* The stage a running move leads to: a small spinner before its label. */
21705
+ .cn-stages-widget__moving[data-v-3946def5] {
21706
+ display: inline-flex;
21707
+ vertical-align: middle;
21708
+ margin-inline-end: 4px;
21709
+ }
21710
+ .cn-stages-widget__notice[data-v-3946def5] {
21609
21711
  margin: 0;
21610
21712
  color: var(--color-text-maxcontrast);
21611
21713
  }
@@ -21614,7 +21716,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21614
21716
  REFUSALS no longer come through here: they are a tooltip, a note card and a
21615
21717
  screen-reader node, which is why there is no colour variant of this rule.
21616
21718
  The rules for the two coloured states are NcNoteCard's own. */
21617
- .cn-stages-widget__reason[data-v-a394760a] {
21719
+ .cn-stages-widget__reason[data-v-3946def5] {
21618
21720
  display: block;
21619
21721
  margin-top: 2px;
21620
21722
  font-size: 0.8em;
@@ -21625,7 +21727,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21625
21727
  /* The bars variant: equal columns, a thin bar per step. Theme hooks:
21626
21728
  --cn-stages-bar-height, --cn-stages-bar-radius, --cn-stages-bar-done,
21627
21729
  --cn-stages-bar-current, --cn-stages-bar-todo. */
21628
- .cn-stages-widget__bars[data-v-a394760a] {
21730
+ .cn-stages-widget__bars[data-v-3946def5] {
21629
21731
  display: grid;
21630
21732
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
21631
21733
  grid-auto-flow: column;
@@ -21634,25 +21736,25 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21634
21736
  padding: 0;
21635
21737
  list-style: none;
21636
21738
  }
21637
- .cn-stages-widget__bar-step[data-v-a394760a] {
21739
+ .cn-stages-widget__bar-step[data-v-3946def5] {
21638
21740
  display: flex;
21639
21741
  flex-direction: column;
21640
21742
  gap: 8px;
21641
21743
  min-width: 0;
21642
21744
  }
21643
- .cn-stages-widget__bar[data-v-a394760a] {
21745
+ .cn-stages-widget__bar[data-v-3946def5] {
21644
21746
  display: block;
21645
21747
  height: var(--cn-stages-bar-height, 6px);
21646
21748
  border-radius: var(--cn-stages-bar-radius, 3px);
21647
21749
  background: var(--cn-stages-bar-todo, var(--color-border));
21648
21750
  }
21649
- .cn-stages-widget__bar-step--done .cn-stages-widget__bar[data-v-a394760a] {
21751
+ .cn-stages-widget__bar-step--done .cn-stages-widget__bar[data-v-3946def5] {
21650
21752
  background: var(--cn-stages-bar-done, var(--color-primary-element));
21651
21753
  }
21652
- .cn-stages-widget__bar-step--current .cn-stages-widget__bar[data-v-a394760a] {
21754
+ .cn-stages-widget__bar-step--current .cn-stages-widget__bar[data-v-3946def5] {
21653
21755
  background: var(--cn-stages-bar-current, var(--color-error));
21654
21756
  }
21655
- .cn-stages-widget__bar-label[data-v-a394760a] {
21757
+ .cn-stages-widget__bar-label[data-v-3946def5] {
21656
21758
  display: block;
21657
21759
  margin: 0;
21658
21760
  padding: 0;
@@ -21673,7 +21775,7 @@ a.cn-xwiki-card__title[data-v-1a6b61fd]:hover {
21673
21775
  about 12px below the current one, which is a <span>. Zeroed here so all
21674
21776
  labels sit 8px under their bar, as the board draws them. The visually
21675
21777
  hidden "(current step)" is absolutely positioned and takes no space. */
21676
- button.cn-stages-widget__bar-label[data-v-a394760a] {
21778
+ button.cn-stages-widget__bar-label[data-v-3946def5] {
21677
21779
  min-height: 0;
21678
21780
  height: auto;
21679
21781
  line-height: inherit;
@@ -21689,7 +21791,7 @@ button.cn-stages-widget__bar-label[data-v-a394760a] {
21689
21791
  of ending in an ellipsis. Only !important beats !important; this selector is
21690
21792
  the more specific of the two. Without such a theme nothing changes: these
21691
21793
  are the values the base rule already sets. */
21692
- button.cn-stages-widget__bar-label.cn-stages-widget__bar-label[data-v-a394760a] {
21794
+ button.cn-stages-widget__bar-label.cn-stages-widget__bar-label[data-v-3946def5] {
21693
21795
  min-width: 0 !important;
21694
21796
  margin: 0 !important;
21695
21797
  padding: 0 !important;
@@ -21698,29 +21800,29 @@ button.cn-stages-widget__bar-label.cn-stages-widget__bar-label[data-v-a394760a]
21698
21800
  text-overflow: ellipsis !important;
21699
21801
  white-space: nowrap !important;
21700
21802
  }
21701
- button.cn-stages-widget__bar-label[aria-disabled="true"][data-v-a394760a] {
21803
+ button.cn-stages-widget__bar-label[aria-disabled="true"][data-v-3946def5] {
21702
21804
  cursor: not-allowed;
21703
21805
  }
21704
- button.cn-stages-widget__bar-label[data-v-a394760a]:focus-visible {
21806
+ button.cn-stages-widget__bar-label[data-v-3946def5]:focus-visible {
21705
21807
  outline: 2px solid var(--color-primary-element);
21706
21808
  outline-offset: 2px;
21707
21809
  border-radius: var(--border-radius-small, 4px);
21708
21810
  }
21709
- .cn-stages-widget__bar-step--done .cn-stages-widget__bar-label[data-v-a394760a] {
21811
+ .cn-stages-widget__bar-step--done .cn-stages-widget__bar-label[data-v-3946def5] {
21710
21812
  color: var(--color-main-text);
21711
21813
  font-weight: 600;
21712
21814
  }
21713
- .cn-stages-widget__bar-step--current .cn-stages-widget__bar-label[data-v-a394760a] {
21815
+ .cn-stages-widget__bar-step--current .cn-stages-widget__bar-label[data-v-3946def5] {
21714
21816
  color: var(--color-main-text);
21715
21817
  font-weight: 700;
21716
21818
  }
21717
- .cn-stages-widget__bar-date[data-v-a394760a] {
21819
+ .cn-stages-widget__bar-date[data-v-3946def5] {
21718
21820
  font-size: 12px;
21719
21821
  color: var(--color-text-maxcontrast);
21720
21822
  }
21721
21823
 
21722
21824
  /* Text for screen readers only. */
21723
- .cn-stages-widget__sr-only[data-v-a394760a] {
21825
+ .cn-stages-widget__sr-only[data-v-3946def5] {
21724
21826
  position: absolute;
21725
21827
  width: 1px;
21726
21828
  height: 1px;
@@ -22629,7 +22731,7 @@ a.cn-kpi-card--board * {
22629
22731
 
22630
22732
  /* The title row carries an optional range select beside the label, which the
22631
22733
  canonical `__title` (a plain truncating heading) does not account for. */
22632
- .cn-stat-widget__label[data-v-644c38a1] {
22734
+ .cn-stat-widget__label[data-v-6f90b30c] {
22633
22735
  display: flex;
22634
22736
  align-items: center;
22635
22737
  justify-content: space-between;
@@ -22639,14 +22741,14 @@ a.cn-kpi-card--board * {
22639
22741
 
22640
22742
  /* Stacked tile: the label and its range select centre over the number rather
22641
22743
  than spreading to the card's edges. */
22642
- .cn-kpi-card--vertical .cn-stat-widget__label[data-v-644c38a1] {
22744
+ .cn-kpi-card--vertical .cn-stat-widget__label[data-v-6f90b30c] {
22643
22745
  justify-content: center;
22644
22746
  width: auto;
22645
22747
  }
22646
22748
 
22647
22749
  /* Sized down to sit inside the label row without pushing the tile taller —
22648
22750
  the tile's height is fixed by its grid cell (ADR-062). */
22649
- .cn-stat-widget__range[data-v-644c38a1] {
22751
+ .cn-stat-widget__range[data-v-6f90b30c] {
22650
22752
  flex: 0 0 auto;
22651
22753
  max-width: 50%;
22652
22754
  padding: 0 4px;
@@ -22658,15 +22760,15 @@ a.cn-kpi-card--board * {
22658
22760
  font-weight: normal;
22659
22761
  cursor: pointer;
22660
22762
  }
22661
- .cn-stat-widget__range[data-v-644c38a1]:hover,
22662
- .cn-stat-widget__range[data-v-644c38a1]:focus-visible {
22763
+ .cn-stat-widget__range[data-v-6f90b30c]:hover,
22764
+ .cn-stat-widget__range[data-v-6f90b30c]:focus-visible {
22663
22765
  background: var(--color-background-hover);
22664
22766
  color: var(--color-main-text);
22665
22767
  }
22666
22768
 
22667
22769
  /* Badge mode: the pill takes the value's place in the row. Sized to the
22668
22770
  card's label scale so it sits in the row without pushing the tile taller. */
22669
- .cn-stat-widget__badge[data-v-644c38a1] {
22771
+ .cn-stat-widget__badge[data-v-6f90b30c] {
22670
22772
  flex: 0 1 auto;
22671
22773
  min-width: 0;
22672
22774
  max-width: 100%;
@@ -22678,7 +22780,7 @@ a.cn-kpi-card--board * {
22678
22780
  /* The denominator of a "value / limit" pair. Deliberately quieter and smaller
22679
22781
  than the value: the tile's subject is what the number IS, not what it is
22680
22782
  allowed to reach. Shares the value's `nowrap` so the pair never breaks. */
22681
- .cn-stat-widget__limit[data-v-644c38a1] {
22783
+ .cn-stat-widget__limit[data-v-6f90b30c] {
22682
22784
  flex: 0 0 auto;
22683
22785
  font-size: var(--cn-kpi-value-size-compact, 1.25rem);
22684
22786
  font-weight: var(--cn-kpi-title-weight, 600);
@@ -22686,7 +22788,7 @@ a.cn-kpi-card--board * {
22686
22788
  color: var(--cn-kpi-label-color, var(--color-text-maxcontrast));
22687
22789
  white-space: nowrap;
22688
22790
  }
22689
- .cn-stat-widget__trend[data-v-644c38a1] {
22791
+ .cn-stat-widget__trend[data-v-6f90b30c] {
22690
22792
  display: inline-flex;
22691
22793
  align-items: center;
22692
22794
  gap: 2px;
@@ -22699,7 +22801,7 @@ a.cn-kpi-card--board * {
22699
22801
  error dash is literally a `cn-kpi-card__value`, and two components showing
22700
22802
  the same failure at two different sizes is the drift this consolidation
22701
22803
  exists to remove. Only the colour differs: a failure is not a number. */
22702
- .cn-stat-widget__error[data-v-644c38a1] {
22804
+ .cn-stat-widget__error[data-v-6f90b30c] {
22703
22805
  font-size: var(--cn-kpi-value-size, 2rem);
22704
22806
  font-weight: var(--cn-kpi-value-weight, 700);
22705
22807
  line-height: var(--cn-kpi-value-line, 1.1);
@@ -22739,81 +22841,97 @@ a.cn-kpi-card--board * {
22739
22841
  * modes render this root, so both collapse. The bug was found on a
22740
22842
  * single-entry stats-block.
22741
22843
  */
22742
- .cn-stats-block-widget[data-v-c1220134] {
22844
+ .cn-stats-block-widget[data-v-4341e971] {
22743
22845
  flex: 1 1 auto;
22744
22846
  min-width: 0;
22745
22847
  width: 100%;
22746
22848
  }
22747
- .cn-stats-block-widget--multi[data-v-c1220134] {
22849
+ .cn-stats-block-widget--multi[data-v-4341e971] {
22748
22850
  display: flex;
22749
22851
  flex-direction: column;
22750
22852
  gap: var(--cn-kpi-stack-gap, 12px);
22751
22853
  }
22752
22854
 
22753
22855
  /* Rows layout: the board's "label left, number right" card body. */
22754
- .cn-stats-block-widget--rows[data-v-c1220134] {
22856
+ .cn-stats-block-widget--rows[data-v-4341e971] {
22755
22857
  display: flex;
22756
22858
  flex-direction: column;
22757
22859
  gap: 12px;
22758
22860
  box-sizing: border-box;
22759
22861
  padding: 20px 22px;
22760
22862
  }
22761
- .cn-stats-block-widget__rows-title[data-v-c1220134] {
22863
+ .cn-stats-block-widget__rows-title[data-v-4341e971] {
22762
22864
  margin: 0;
22763
22865
  font-size: 15px;
22764
22866
  font-weight: 600;
22765
22867
  color: var(--color-text-maxcontrast);
22766
22868
  }
22767
- .cn-stats-block-widget--grid[data-v-c1220134] {
22869
+
22870
+ /* `width: 100%` plus this padding overflowed the card by 48px: the last
22871
+ column ran past the card's right edge (visible once the tiles have a box). */
22872
+ .cn-stats-block-widget--grid[data-v-4341e971] {
22873
+ box-sizing: border-box;
22768
22874
  padding: 4px 24px 20px;
22769
22875
  }
22770
- .cn-stats-block-widget__grid[data-v-c1220134] {
22876
+ .cn-stats-block-widget__grid[data-v-4341e971] {
22771
22877
  display: grid;
22772
22878
  grid-template-columns: repeat(var(--cn-stats-block-columns, 2), minmax(0, 1fr));
22773
22879
  gap: 16px 20px;
22774
22880
  }
22775
22881
 
22776
22882
  /* A tile in the grid is a part of the card, not a card: no box, no inset. */
22777
- .cn-stats-block-widget__grid-stat[data-v-c1220134] {
22883
+ .cn-stats-block-widget__grid-stat[data-v-4341e971] {
22778
22884
  padding: 0;
22779
22885
  min-width: 0;
22780
22886
  }
22781
- .cn-stats-block-widget__rows[data-v-c1220134] {
22887
+
22888
+ /* `tiles: "box"`: each tile on a grey ground of its own (board DcRapportages,
22889
+ "Vergaderingen en efficiëntie"), 12px apart. */
22890
+ .cn-stats-block-widget--tiles-box .cn-stats-block-widget__grid[data-v-4341e971] {
22891
+ gap: 12px;
22892
+ }
22893
+ .cn-stats-block-widget--tiles-box .cn-stats-block-widget__grid-stat[data-v-4341e971] {
22894
+ box-sizing: border-box;
22895
+ padding: 14px 16px;
22896
+ border-radius: 10px;
22897
+ background: var(--color-background-hover);
22898
+ }
22899
+ .cn-stats-block-widget__rows[data-v-4341e971] {
22782
22900
  display: flex;
22783
22901
  flex-direction: column;
22784
22902
  gap: 8px;
22785
22903
  margin: 0;
22786
22904
  font-size: 14px;
22787
22905
  }
22788
- .cn-stats-block-widget__row[data-v-c1220134] {
22906
+ .cn-stats-block-widget__row[data-v-4341e971] {
22789
22907
  display: flex;
22790
22908
  align-items: baseline;
22791
22909
  justify-content: space-between;
22792
22910
  gap: 16px;
22793
22911
  }
22794
- .cn-stats-block-widget__row-label[data-v-c1220134] {
22912
+ .cn-stats-block-widget__row-label[data-v-4341e971] {
22795
22913
  min-width: 0;
22796
22914
  margin: 0;
22797
22915
  overflow: hidden;
22798
22916
  text-overflow: ellipsis;
22799
22917
  }
22800
- .cn-stats-block-widget__row-value[data-v-c1220134] {
22918
+ .cn-stats-block-widget__row-value[data-v-4341e971] {
22801
22919
  flex: none;
22802
22920
  margin: 0;
22803
22921
  font-size: 17px;
22804
22922
  font-weight: 700;
22805
22923
  text-align: right;
22806
22924
  }
22807
- .cn-stats-block-widget__row-value--success[data-v-c1220134] {
22925
+ .cn-stats-block-widget__row-value--success[data-v-4341e971] {
22808
22926
  color: var(--color-text-success, var(--color-success-text));
22809
22927
  }
22810
- .cn-stats-block-widget__row-value--warning[data-v-c1220134] {
22928
+ .cn-stats-block-widget__row-value--warning[data-v-4341e971] {
22811
22929
  color: var(--color-text-warning, var(--color-warning-text));
22812
22930
  }
22813
- .cn-stats-block-widget__row-value--error[data-v-c1220134] {
22931
+ .cn-stats-block-widget__row-value--error[data-v-4341e971] {
22814
22932
  color: var(--color-text-error, var(--color-error-text));
22815
22933
  }
22816
- .cn-stats-block-widget__row-value--primary[data-v-c1220134] {
22934
+ .cn-stats-block-widget__row-value--primary[data-v-4341e971] {
22817
22935
  color: var(--color-primary-element);
22818
22936
  }
22819
22937
 
@@ -23018,7 +23136,7 @@ a.cn-kpi-card--board * {
23018
23136
  }
23019
23137
 
23020
23138
 
23021
- .cn-object-data-widget__image[data-v-59ab12e6] {
23139
+ .cn-object-data-widget__image[data-v-76edf75d] {
23022
23140
  max-width: 100%;
23023
23141
  max-height: 160px;
23024
23142
  border-radius: 8px;
@@ -23026,33 +23144,33 @@ a.cn-kpi-card--board * {
23026
23144
  }
23027
23145
 
23028
23146
  /* Shimmering placeholder while a relation's display name resolves. */
23029
- .cn-object-data-widget__skeleton[data-v-59ab12e6] {
23147
+ .cn-object-data-widget__skeleton[data-v-76edf75d] {
23030
23148
  display: inline-block;
23031
23149
  width: 90px;
23032
23150
  height: 1em;
23033
23151
  border-radius: 4px;
23034
23152
  background: linear-gradient(90deg, var(--color-background-dark) 25%, var(--color-background-hover) 50%, var(--color-background-dark) 75%);
23035
23153
  background-size: 200% 100%;
23036
- animation: cn-odw-shimmer-59ab12e6 1.2s ease-in-out infinite;
23154
+ animation: cn-odw-shimmer-76edf75d 1.2s ease-in-out infinite;
23037
23155
  }
23038
- @keyframes cn-odw-shimmer-59ab12e6 {
23156
+ @keyframes cn-odw-shimmer-76edf75d {
23039
23157
  from { background-position: 200% 0;
23040
23158
  }
23041
23159
  to { background-position: -200% 0;
23042
23160
  }
23043
23161
  }
23044
23162
  @media (prefers-reduced-motion: reduce) {
23045
- .cn-object-data-widget__skeleton[data-v-59ab12e6] { animation: none;
23163
+ .cn-object-data-widget__skeleton[data-v-76edf75d] { animation: none;
23046
23164
  }
23047
23165
  }
23048
- .cn-object-data-widget__grid[data-v-59ab12e6] {
23166
+ .cn-object-data-widget__grid[data-v-76edf75d] {
23049
23167
  display: grid;
23050
23168
  gap: calc(2 * var(--default-grid-baseline, 4px)) calc(4 * var(--default-grid-baseline, 4px));
23051
23169
  }
23052
- .cn-object-data-widget__toggle[data-v-59ab12e6] {
23170
+ .cn-object-data-widget__toggle[data-v-76edf75d] {
23053
23171
  margin-top: 4px;
23054
23172
  }
23055
- .cn-object-data-widget__cell[data-v-59ab12e6] {
23173
+ .cn-object-data-widget__cell[data-v-76edf75d] {
23056
23174
  display: flex;
23057
23175
  flex-direction: column;
23058
23176
  gap: 2px;
@@ -23060,12 +23178,12 @@ to { background-position: -200% 0;
23060
23178
  border-bottom: 1px solid var(--color-border-dark);
23061
23179
  min-width: 0;
23062
23180
  }
23063
- .cn-object-data-widget__label[data-v-59ab12e6] {
23181
+ .cn-object-data-widget__label[data-v-76edf75d] {
23064
23182
  font-size: 0.85em;
23065
23183
  color: var(--color-text-maxcontrast);
23066
23184
  font-weight: 500;
23067
23185
  }
23068
- .cn-object-data-widget__value[data-v-59ab12e6] {
23186
+ .cn-object-data-widget__value[data-v-76edf75d] {
23069
23187
  font-size: 1em;
23070
23188
  color: var(--color-main-text);
23071
23189
  overflow-wrap: anywhere;
@@ -23079,24 +23197,24 @@ to { background-position: -200% 0;
23079
23197
  which drew a horizontal scrollbar under every data widget in a tab (dossiq's
23080
23198
  case page, Data tab). The end padding drops by the same 4px so the text and
23081
23199
  the edit icon sit where they sat. */
23082
- .cn-object-data-widget__value--editable[data-v-59ab12e6] {
23200
+ .cn-object-data-widget__value--editable[data-v-76edf75d] {
23083
23201
  cursor: pointer;
23084
23202
  border-radius: var(--border-radius);
23085
23203
  padding: 4px 20px 4px 4px;
23086
23204
  margin: -4px 0 -4px -4px;
23087
23205
  }
23088
- .cn-object-data-widget__value--editable[data-v-59ab12e6]:hover {
23206
+ .cn-object-data-widget__value--editable[data-v-76edf75d]:hover {
23089
23207
  background: var(--color-background-dark);
23090
23208
  }
23091
- .cn-object-data-widget__value--editable[data-v-59ab12e6]:focus-visible {
23209
+ .cn-object-data-widget__value--editable[data-v-76edf75d]:focus-visible {
23092
23210
  outline: 2px solid var(--color-primary-element);
23093
23211
  outline-offset: 2px;
23094
23212
  }
23095
- .cn-object-data-widget__value--empty[data-v-59ab12e6] {
23213
+ .cn-object-data-widget__value--empty[data-v-76edf75d] {
23096
23214
  color: var(--color-text-maxcontrast);
23097
23215
  font-style: italic;
23098
23216
  }
23099
- .cn-object-data-widget__edit-icon[data-v-59ab12e6] {
23217
+ .cn-object-data-widget__edit-icon[data-v-76edf75d] {
23100
23218
  position: absolute;
23101
23219
  right: 4px;
23102
23220
  top: 50%;
@@ -23105,21 +23223,21 @@ to { background-position: -200% 0;
23105
23223
  opacity: 0;
23106
23224
  transition: opacity 0.15s ease;
23107
23225
  }
23108
- .cn-object-data-widget__value--editable:hover .cn-object-data-widget__edit-icon[data-v-59ab12e6],
23109
- .cn-object-data-widget__value--editable:focus-visible .cn-object-data-widget__edit-icon[data-v-59ab12e6] {
23226
+ .cn-object-data-widget__value--editable:hover .cn-object-data-widget__edit-icon[data-v-76edf75d],
23227
+ .cn-object-data-widget__value--editable:focus-visible .cn-object-data-widget__edit-icon[data-v-76edf75d] {
23110
23228
  opacity: 1;
23111
23229
  }
23112
- .cn-object-data-widget__editor[data-v-59ab12e6] {
23230
+ .cn-object-data-widget__editor[data-v-76edf75d] {
23113
23231
  display: flex;
23114
23232
  flex-direction: column;
23115
23233
  gap: 4px;
23116
23234
  }
23117
- .cn-object-data-widget__editor-actions[data-v-59ab12e6] {
23235
+ .cn-object-data-widget__editor-actions[data-v-76edf75d] {
23118
23236
  display: flex;
23119
23237
  gap: 2px;
23120
23238
  justify-content: flex-end;
23121
23239
  }
23122
- .cn-object-data-widget__textarea[data-v-59ab12e6] {
23240
+ .cn-object-data-widget__textarea[data-v-76edf75d] {
23123
23241
  width: 100%;
23124
23242
  min-height: 80px;
23125
23243
  padding: 8px;
@@ -23131,11 +23249,11 @@ to { background-position: -200% 0;
23131
23249
  font-size: inherit;
23132
23250
  resize: vertical;
23133
23251
  }
23134
- .cn-object-data-widget__textarea[data-v-59ab12e6]:focus {
23252
+ .cn-object-data-widget__textarea[data-v-76edf75d]:focus {
23135
23253
  border-color: var(--color-primary-element);
23136
23254
  outline: none;
23137
23255
  }
23138
- .cn-object-data-widget__empty[data-v-59ab12e6] {
23256
+ .cn-object-data-widget__empty[data-v-76edf75d] {
23139
23257
  color: var(--color-text-maxcontrast);
23140
23258
  font-style: italic;
23141
23259
  padding: calc(2 * var(--default-grid-baseline, 4px));
@@ -23143,16 +23261,16 @@ to { background-position: -200% 0;
23143
23261
 
23144
23262
  /* Compact inline table for array-of-objects values. Dense + unstyled-simple;
23145
23263
  fits the card and participates in the whole-row overflow handling. */
23146
- .cn-object-data-widget__mini-table-wrap[data-v-59ab12e6] {
23264
+ .cn-object-data-widget__mini-table-wrap[data-v-76edf75d] {
23147
23265
  max-width: 100%;
23148
23266
  }
23149
- .cn-object-data-widget__mini-table[data-v-59ab12e6] {
23267
+ .cn-object-data-widget__mini-table[data-v-76edf75d] {
23150
23268
  width: 100%;
23151
23269
  border-collapse: collapse;
23152
23270
  font-size: 0.9em;
23153
23271
  }
23154
- .cn-object-data-widget__mini-table th[data-v-59ab12e6],
23155
- .cn-object-data-widget__mini-table td[data-v-59ab12e6] {
23272
+ .cn-object-data-widget__mini-table th[data-v-76edf75d],
23273
+ .cn-object-data-widget__mini-table td[data-v-76edf75d] {
23156
23274
  text-align: start;
23157
23275
  padding: 2px 8px 2px 0;
23158
23276
  border-bottom: 1px solid var(--color-border);
@@ -23163,23 +23281,23 @@ to { background-position: -200% 0;
23163
23281
  cell, and the card 8px wider than its cell (pipelinq's ticket page). */
23164
23282
  white-space: normal;
23165
23283
  }
23166
- .cn-object-data-widget__mini-table th[data-v-59ab12e6] {
23284
+ .cn-object-data-widget__mini-table th[data-v-76edf75d] {
23167
23285
  color: var(--color-text-maxcontrast);
23168
23286
  font-weight: 500;
23169
23287
  }
23170
- .cn-object-data-widget__more[data-v-59ab12e6] {
23288
+ .cn-object-data-widget__more[data-v-76edf75d] {
23171
23289
  margin-top: 2px;
23172
23290
  font-size: 0.85em;
23173
23291
  color: var(--color-text-maxcontrast);
23174
23292
  }
23175
23293
 
23176
23294
  /* Comma-less chip row for array-of-scalars values. */
23177
- .cn-object-data-widget__chips[data-v-59ab12e6] {
23295
+ .cn-object-data-widget__chips[data-v-76edf75d] {
23178
23296
  display: flex;
23179
23297
  flex-wrap: wrap;
23180
23298
  gap: 4px;
23181
23299
  }
23182
- .cn-object-data-widget__chip[data-v-59ab12e6] {
23300
+ .cn-object-data-widget__chip[data-v-76edf75d] {
23183
23301
  padding: 1px 8px;
23184
23302
  border-radius: 12px;
23185
23303
  background: var(--color-background-dark);
@@ -23187,27 +23305,27 @@ to { background-position: -200% 0;
23187
23305
  }
23188
23306
 
23189
23307
  /* Key: value definition list for a single plain-object value. */
23190
- .cn-object-data-widget__deflist[data-v-59ab12e6] {
23308
+ .cn-object-data-widget__deflist[data-v-76edf75d] {
23191
23309
  display: grid;
23192
23310
  grid-template-columns: auto 1fr;
23193
23311
  gap: 2px 8px;
23194
23312
  margin: 0;
23195
23313
  }
23196
- .cn-object-data-widget__deflist dt[data-v-59ab12e6] {
23314
+ .cn-object-data-widget__deflist dt[data-v-76edf75d] {
23197
23315
  color: var(--color-text-maxcontrast);
23198
23316
  font-size: 0.9em;
23199
23317
  }
23200
- .cn-object-data-widget__deflist dd[data-v-59ab12e6] {
23318
+ .cn-object-data-widget__deflist dd[data-v-76edf75d] {
23201
23319
  margin: 0;
23202
23320
  overflow-wrap: anywhere;
23203
23321
  }
23204
23322
 
23205
23323
  /* Responsive: collapse to single column on narrow widths */
23206
23324
  @media (max-width: 600px) {
23207
- .cn-object-data-widget__grid[data-v-59ab12e6] {
23325
+ .cn-object-data-widget__grid[data-v-76edf75d] {
23208
23326
  grid-template-columns: 1fr !important;
23209
23327
  }
23210
- .cn-object-data-widget__cell[data-v-59ab12e6] {
23328
+ .cn-object-data-widget__cell[data-v-76edf75d] {
23211
23329
  grid-column: span 1 !important;
23212
23330
  grid-row: span 1 !important;
23213
23331
  }
@@ -24919,7 +25037,7 @@ button.cn-stepper__step[data-v-776581d4] {
24919
25037
 
24920
25038
 
24921
25039
  /* A stack (`widgetIds`): the panel's widget, then cards 20px apart. */
24922
- .cn-tabs-widget__stack[data-v-9ccd8dee] {
25040
+ .cn-tabs-widget__stack[data-v-0ad78042] {
24923
25041
  display: flex;
24924
25042
  flex-direction: column;
24925
25043
  gap: 20px;
@@ -24928,19 +25046,19 @@ button.cn-stepper__step[data-v-776581d4] {
24928
25046
  /* A gridded stack (`columns` / `layout` on the tab): 12 columns, widgets wrap
24929
25047
  onto the next row, a row's cards as tall as the tallest. Narrow, it is the
24930
25048
  plain stack again. */
24931
- .cn-tabs-widget__stack--grid[data-v-9ccd8dee] {
25049
+ .cn-tabs-widget__stack--grid[data-v-0ad78042] {
24932
25050
  display: grid;
24933
25051
  grid-template-columns: repeat(12, minmax(0, 1fr));
24934
25052
  align-items: stretch;
24935
25053
  }
24936
- .cn-tabs-widget__stack--grid[data-v-9ccd8dee] > * {
25054
+ .cn-tabs-widget__stack--grid[data-v-0ad78042] > * {
24937
25055
  min-width: 0;
24938
25056
  }
24939
25057
  @media (max-width: 700px) {
24940
- .cn-tabs-widget__stack--grid[data-v-9ccd8dee] {
25058
+ .cn-tabs-widget__stack--grid[data-v-0ad78042] {
24941
25059
  grid-template-columns: minmax(0, 1fr);
24942
25060
  }
24943
- .cn-tabs-widget__stack--grid[data-v-9ccd8dee] > * {
25061
+ .cn-tabs-widget__stack--grid[data-v-0ad78042] > * {
24944
25062
  grid-column: auto !important;
24945
25063
  }
24946
25064
  }
@@ -24974,7 +25092,7 @@ button.cn-stepper__step[data-v-776581d4] {
24974
25092
  `!important` or on load order this library does not control. The same
24975
25093
  technique, for the same reason, is used on `.cn-tabs__nav .cn-tabs__nav-item`
24976
25094
  in CnTabs to beat Nextcloud's own button margin. */
24977
- .cn-tabs-widget.cn-tabs-widget[data-v-9ccd8dee] {
25095
+ .cn-tabs-widget.cn-tabs-widget[data-v-0ad78042] {
24978
25096
  background-color: transparent;
24979
25097
  border: 0;
24980
25098
  border-radius: 0;
@@ -24998,12 +25116,12 @@ button.cn-stepper__step[data-v-776581d4] {
24998
25116
  below it: the rule ran straight on to the widget's edge and read as a
24999
25117
  border sticking out past a rounded corner (Ruben, 2026-09-13). Ending it
25000
25118
  where the curve begins makes the rule and the curve one continuous edge. */
25001
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tabs__bar {
25119
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tabs__bar {
25002
25120
  border-bottom: none;
25003
25121
  padding: 0;
25004
25122
  position: relative;
25005
25123
  }
25006
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tabs__bar::after {
25124
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tabs__bar::after {
25007
25125
  border-bottom: 1px solid var(--color-border);
25008
25126
  content: '';
25009
25127
  inset-block-end: 0;
@@ -25016,11 +25134,11 @@ button.cn-stepper__step[data-v-776581d4] {
25016
25134
  own background-coloured bottom edge, which only works if it paints ABOVE the
25017
25135
  pseudo-element: a positioned pseudo-element otherwise paints over every
25018
25136
  in-flow sibling, rule included. */
25019
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tabs__nav-item--active {
25137
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tabs__nav-item--active {
25020
25138
  position: relative;
25021
25139
  z-index: 1;
25022
25140
  }
25023
- .cn-tabs-widget__tabs[data-v-9ccd8dee] {
25141
+ .cn-tabs-widget__tabs[data-v-0ad78042] {
25024
25142
  display: flex;
25025
25143
  flex-direction: column;
25026
25144
  /* Grow to the widget's height, so the panel fills the grid cell the
@@ -25038,7 +25156,7 @@ button.cn-stepper__step[data-v-776581d4] {
25038
25156
  the open tab, but padding sits inside the painted box — only a margin would
25039
25157
  have opened that gap, and a zero top put every panel's content against the
25040
25158
  strip. */
25041
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tabs__content {
25159
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tabs__content {
25042
25160
  background-color: var(--color-main-background);
25043
25161
  /* Three sides only: the bar's rule (redrawn above, stopping at the corner)
25044
25162
  is this sheet's top edge, and the open tab erases the slice of it
@@ -25058,7 +25176,7 @@ button.cn-stepper__step[data-v-776581d4] {
25058
25176
  overflow: auto;
25059
25177
  padding: 12px;
25060
25178
  }
25061
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tab {
25179
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tab {
25062
25180
  height: 100%;
25063
25181
  }
25064
25182
 
@@ -25066,15 +25184,15 @@ button.cn-stepper__step[data-v-776581d4] {
25066
25184
  (margin 0 -16px -16px). The panel of a tab pads 12px, so on a tab that
25067
25185
  holds the list directly the footer stuck out 4px on the right and at the
25068
25186
  bottom and made the panel scroll. It bleeds exactly the panel's padding. */
25069
- .cn-tabs-widget__tabs[data-v-9ccd8dee] .cn-tabs__content > .cn-tab > .cn-detail-widget-host--bare .cn-object-list-widget__add {
25187
+ .cn-tabs-widget__tabs[data-v-0ad78042] .cn-tabs__content > .cn-tab > .cn-detail-widget-host--bare .cn-object-list-widget__add {
25070
25188
  margin: auto -12px -12px;
25071
25189
  }
25072
- .cn-tabs-widget__title[data-v-9ccd8dee] {
25190
+ .cn-tabs-widget__title[data-v-0ad78042] {
25073
25191
  align-items: center;
25074
25192
  display: inline-flex;
25075
25193
  gap: 6px;
25076
25194
  }
25077
- .cn-tabs-widget__title-icon[data-v-9ccd8dee] {
25195
+ .cn-tabs-widget__title-icon[data-v-0ad78042] {
25078
25196
  flex: 0 0 auto;
25079
25197
  }
25080
25198
 
@@ -28483,7 +28601,7 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
28483
28601
 
28484
28602
  /* The percentage-change chip beside the value. Tinted good/bad at runtime from
28485
28603
  * `goodDirection`, so the colour is an inline style, not a class. */
28486
- .cn-delta-widget__delta[data-v-66680dc6] {
28604
+ .cn-delta-widget__delta[data-v-ee481872] {
28487
28605
  display: inline-flex;
28488
28606
  align-items: center;
28489
28607
  gap: 2px;
@@ -28494,7 +28612,7 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
28494
28612
  /* The dash shown when the number could not be fetched. It stands where the
28495
28613
  * value stands, so it takes the value's size and weight — only the colour
28496
28614
  * differs, because a failure is not a number. */
28497
- .cn-delta-widget__error[data-v-66680dc6] {
28615
+ .cn-delta-widget__error[data-v-ee481872] {
28498
28616
  font-size: var(--cn-kpi-value-size, 2rem);
28499
28617
  font-weight: var(--cn-kpi-value-weight, 700);
28500
28618
  line-height: var(--cn-kpi-value-line, 1.1);
@@ -28525,7 +28643,7 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
28525
28643
  }
28526
28644
 
28527
28645
 
28528
- .cn-gauge-widget[data-v-0ac8e0e8] {
28646
+ .cn-gauge-widget[data-v-006ab8f8] {
28529
28647
  display: flex;
28530
28648
  flex-direction: column;
28531
28649
  gap: 8px;
@@ -28533,58 +28651,58 @@ tr.file-picker__row td.row-name[data-v-1f96131b] {
28533
28651
  }
28534
28652
 
28535
28653
  /* Whole-tile click target when the widget declares a `route`/`link`. */
28536
- .cn-gauge-widget--linked[data-v-0ac8e0e8] {
28654
+ .cn-gauge-widget--linked[data-v-006ab8f8] {
28537
28655
  cursor: pointer;
28538
28656
  text-decoration: none;
28539
28657
  color: inherit;
28540
28658
  border-radius: var(--border-radius-large, 8px);
28541
28659
  transition: background-color 0.1s ease-in-out;
28542
28660
  }
28543
- .cn-gauge-widget--linked[data-v-0ac8e0e8]:hover {
28661
+ .cn-gauge-widget--linked[data-v-006ab8f8]:hover {
28544
28662
  background-color: var(--color-background-hover);
28545
28663
  }
28546
- .cn-gauge-widget--linked[data-v-0ac8e0e8]:focus-visible {
28664
+ .cn-gauge-widget--linked[data-v-006ab8f8]:focus-visible {
28547
28665
  outline: 2px solid var(--color-primary-element);
28548
28666
  outline-offset: 2px;
28549
28667
  }
28550
- .cn-gauge-widget__head[data-v-0ac8e0e8] {
28668
+ .cn-gauge-widget__head[data-v-006ab8f8] {
28551
28669
  display: flex;
28552
28670
  align-items: baseline;
28553
28671
  justify-content: space-between;
28554
28672
  gap: 8px;
28555
28673
  }
28556
- .cn-gauge-widget__label[data-v-0ac8e0e8] {
28674
+ .cn-gauge-widget__label[data-v-006ab8f8] {
28557
28675
  font-size: 0.95em;
28558
28676
  font-weight: 600;
28559
28677
  color: var(--color-main-text);
28560
28678
  }
28561
- .cn-gauge-widget__pct[data-v-0ac8e0e8] {
28679
+ .cn-gauge-widget__pct[data-v-006ab8f8] {
28562
28680
  font-size: 1.2em;
28563
28681
  font-weight: 700;
28564
28682
  }
28565
- .cn-gauge-widget__track[data-v-0ac8e0e8] {
28683
+ .cn-gauge-widget__track[data-v-006ab8f8] {
28566
28684
  width: 100%;
28567
28685
  height: 10px;
28568
28686
  border-radius: 5px;
28569
28687
  background: var(--color-background-dark);
28570
28688
  overflow: hidden;
28571
28689
  }
28572
- .cn-gauge-widget__fill[data-v-0ac8e0e8] {
28690
+ .cn-gauge-widget__fill[data-v-006ab8f8] {
28573
28691
  height: 100%;
28574
28692
  border-radius: 5px;
28575
28693
  transition: width 0.3s ease;
28576
28694
  }
28577
- .cn-gauge-widget__foot[data-v-0ac8e0e8] {
28695
+ .cn-gauge-widget__foot[data-v-006ab8f8] {
28578
28696
  display: flex;
28579
28697
  align-items: baseline;
28580
28698
  gap: 6px;
28581
28699
  font-size: 0.9em;
28582
28700
  }
28583
- .cn-gauge-widget__value[data-v-0ac8e0e8] {
28701
+ .cn-gauge-widget__value[data-v-006ab8f8] {
28584
28702
  font-weight: 700;
28585
28703
  color: var(--color-main-text);
28586
28704
  }
28587
- .cn-gauge-widget__target[data-v-0ac8e0e8] {
28705
+ .cn-gauge-widget__target[data-v-006ab8f8] {
28588
28706
  color: var(--color-text-maxcontrast);
28589
28707
  }
28590
28708
 
@@ -29144,34 +29262,34 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29144
29262
  }
29145
29263
 
29146
29264
 
29147
- .cn-field-list-widget[data-v-7d90316d] {
29265
+ .cn-field-list-widget[data-v-643f1dd6] {
29148
29266
  display: flex;
29149
29267
  flex-direction: column;
29150
29268
  gap: 12px;
29151
29269
  min-width: 0;
29152
29270
  }
29153
- .cn-field-list-widget__rows[data-v-7d90316d] {
29271
+ .cn-field-list-widget__rows[data-v-643f1dd6] {
29154
29272
  list-style: none;
29155
29273
  margin: 0;
29156
29274
  padding: 0;
29157
29275
  display: flex;
29158
29276
  flex-direction: column;
29159
29277
  }
29160
- .cn-field-list-widget__row[data-v-7d90316d] {
29278
+ .cn-field-list-widget__row[data-v-643f1dd6] {
29161
29279
  padding: 10px 0;
29162
29280
  border-top: 1px solid var(--color-border);
29163
29281
  }
29164
- .cn-field-list-widget__row[data-v-7d90316d]:first-child {
29282
+ .cn-field-list-widget__row[data-v-643f1dd6]:first-child {
29165
29283
  border-top: none;
29166
29284
  padding-top: 0;
29167
29285
  }
29168
- .cn-field-list-widget__line[data-v-7d90316d] {
29286
+ .cn-field-list-widget__line[data-v-643f1dd6] {
29169
29287
  display: flex;
29170
29288
  align-items: center;
29171
29289
  gap: 12px;
29172
29290
  min-width: 0;
29173
29291
  }
29174
- .cn-field-list-widget__avatar[data-v-7d90316d] {
29292
+ .cn-field-list-widget__avatar[data-v-643f1dd6] {
29175
29293
  flex: 0 0 auto;
29176
29294
  display: inline-flex;
29177
29295
  align-items: center;
@@ -29184,64 +29302,69 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29184
29302
  font-size: 12px;
29185
29303
  font-weight: 700;
29186
29304
  }
29187
- .cn-field-list-widget__main[data-v-7d90316d] {
29305
+ .cn-field-list-widget__main[data-v-643f1dd6] {
29188
29306
  display: flex;
29189
29307
  flex-direction: column;
29190
29308
  flex: 1 1 auto;
29191
29309
  min-width: 0;
29192
29310
  }
29193
- .cn-field-list-widget__title[data-v-7d90316d] {
29311
+ .cn-field-list-widget__title[data-v-643f1dd6] {
29194
29312
  font-weight: 600;
29195
29313
  overflow-wrap: anywhere;
29196
29314
  }
29197
- .cn-field-list-widget__meta[data-v-7d90316d],
29198
- .cn-field-list-widget__aside[data-v-7d90316d],
29199
- .cn-field-list-widget__detail[data-v-7d90316d],
29200
- .cn-field-list-widget__hint[data-v-7d90316d],
29201
- .cn-field-list-widget__empty[data-v-7d90316d] {
29315
+ .cn-field-list-widget__meta[data-v-643f1dd6],
29316
+ .cn-field-list-widget__aside[data-v-643f1dd6],
29317
+ .cn-field-list-widget__detail[data-v-643f1dd6],
29318
+ .cn-field-list-widget__hint[data-v-643f1dd6],
29319
+ .cn-field-list-widget__empty[data-v-643f1dd6] {
29202
29320
  color: var(--color-text-maxcontrast);
29203
29321
  }
29204
- .cn-field-list-widget__meta[data-v-7d90316d],
29205
- .cn-field-list-widget__aside[data-v-7d90316d],
29206
- .cn-field-list-widget__detail[data-v-7d90316d] {
29322
+ .cn-field-list-widget__meta[data-v-643f1dd6],
29323
+ .cn-field-list-widget__aside[data-v-643f1dd6],
29324
+ .cn-field-list-widget__copies[data-v-643f1dd6] {
29325
+ display: flex;
29326
+ flex-wrap: wrap;
29327
+ gap: 4px;
29328
+ }
29329
+ .cn-field-list-widget__detail[data-v-643f1dd6] {
29207
29330
  font-size: 13px;
29208
29331
  }
29209
- .cn-field-list-widget__aside[data-v-7d90316d] {
29332
+ .cn-field-list-widget__aside[data-v-643f1dd6] {
29210
29333
  white-space: nowrap;
29211
29334
  }
29212
- .cn-field-list-widget__detail[data-v-7d90316d],
29213
- .cn-field-list-widget__hint[data-v-7d90316d],
29214
- .cn-field-list-widget__empty[data-v-7d90316d] {
29335
+ .cn-field-list-widget__detail[data-v-643f1dd6],
29336
+ .cn-field-list-widget__hint[data-v-643f1dd6],
29337
+ .cn-field-list-widget__empty[data-v-643f1dd6] {
29215
29338
  margin: 4px 0 0;
29216
29339
  overflow-wrap: anywhere;
29217
29340
  }
29218
- .cn-field-list-widget__add[data-v-7d90316d] {
29341
+ .cn-field-list-widget__add[data-v-643f1dd6] {
29219
29342
  display: flex;
29220
29343
  flex-wrap: wrap;
29221
29344
  align-items: flex-end;
29222
29345
  gap: 8px 12px;
29223
29346
  }
29224
- .cn-field-list-widget__add[data-v-7d90316d] > * {
29347
+ .cn-field-list-widget__add[data-v-643f1dd6] > * {
29225
29348
  flex: 1 1 180px;
29226
29349
  }
29227
- .cn-field-list-widget__add > button[data-v-7d90316d] {
29350
+ .cn-field-list-widget__add > button[data-v-643f1dd6] {
29228
29351
  flex: 0 0 auto;
29229
29352
  }
29230
- .cn-field-list-widget__toolbar[data-v-7d90316d] {
29353
+ .cn-field-list-widget__toolbar[data-v-643f1dd6] {
29231
29354
  display: flex;
29232
29355
  justify-content: flex-end;
29233
29356
  }
29234
- .cn-field-list-widget__table-wrap[data-v-7d90316d] {
29357
+ .cn-field-list-widget__table-wrap[data-v-643f1dd6] {
29235
29358
  display: flex;
29236
29359
  flex-direction: column;
29237
29360
  gap: 12px;
29238
29361
  overflow-x: auto;
29239
29362
  }
29240
- .cn-field-list-widget__table[data-v-7d90316d] {
29363
+ .cn-field-list-widget__table[data-v-643f1dd6] {
29241
29364
  width: 100%;
29242
29365
  border-collapse: collapse;
29243
29366
  }
29244
- .cn-field-list-widget__th[data-v-7d90316d] {
29367
+ .cn-field-list-widget__th[data-v-643f1dd6] {
29245
29368
  padding: 8px 12px;
29246
29369
  text-align: start;
29247
29370
  font-size: 13px;
@@ -29250,27 +29373,27 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29250
29373
  color: var(--color-text-maxcontrast);
29251
29374
  background: var(--color-background-hover);
29252
29375
  }
29253
- .cn-field-list-widget__th--menu[data-v-7d90316d],
29254
- .cn-field-list-widget__td--menu[data-v-7d90316d] {
29376
+ .cn-field-list-widget__th--menu[data-v-643f1dd6],
29377
+ .cn-field-list-widget__td--menu[data-v-643f1dd6] {
29255
29378
  width: 1%;
29256
29379
  text-align: end;
29257
29380
  }
29258
- .cn-field-list-widget__tr[data-v-7d90316d] {
29381
+ .cn-field-list-widget__tr[data-v-643f1dd6] {
29259
29382
  border-top: 1px solid var(--cn-board-hairline, var(--color-border));
29260
29383
  }
29261
- .cn-field-list-widget__td[data-v-7d90316d] {
29384
+ .cn-field-list-widget__td[data-v-643f1dd6] {
29262
29385
  padding: 10px 12px;
29263
29386
  vertical-align: middle;
29264
29387
  overflow-wrap: anywhere;
29265
29388
  }
29266
- .cn-field-list-widget__sr[data-v-7d90316d] {
29389
+ .cn-field-list-widget__sr[data-v-643f1dd6] {
29267
29390
  position: absolute;
29268
29391
  width: 1px;
29269
29392
  height: 1px;
29270
29393
  overflow: hidden;
29271
29394
  clip-path: inset(50%);
29272
29395
  }
29273
- .cn-field-list-widget__band[data-v-7d90316d] {
29396
+ .cn-field-list-widget__band[data-v-643f1dd6] {
29274
29397
  display: flex;
29275
29398
  flex-wrap: wrap;
29276
29399
  align-items: center;
@@ -29757,27 +29880,27 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29757
29880
  }
29758
29881
 
29759
29882
 
29760
- .cn-record-list__list[data-v-519e7f1c] {
29883
+ .cn-record-list__list[data-v-bc186ef8] {
29761
29884
  list-style: none;
29762
29885
  margin: 0;
29763
29886
  padding: 0;
29764
29887
  }
29765
- .cn-record-list__empty[data-v-519e7f1c],
29766
- .cn-record-list__error[data-v-519e7f1c] {
29888
+ .cn-record-list__empty[data-v-bc186ef8],
29889
+ .cn-record-list__error[data-v-bc186ef8] {
29767
29890
  color: var(--color-text-maxcontrast);
29768
29891
  margin: 0;
29769
29892
  }
29770
- .cn-record-list__loading[data-v-519e7f1c] {
29893
+ .cn-record-list__loading[data-v-bc186ef8] {
29771
29894
  display: flex;
29772
29895
  justify-content: center;
29773
29896
  padding: 8px 0;
29774
29897
  }
29775
29898
 
29776
29899
  /* rows */
29777
- .cn-record-list--rows .cn-record-list__item + .cn-record-list__item[data-v-519e7f1c] {
29900
+ .cn-record-list--rows .cn-record-list__item + .cn-record-list__item[data-v-bc186ef8] {
29778
29901
  border-top: 1px solid var(--color-border);
29779
29902
  }
29780
- .cn-record-list__row[data-v-519e7f1c] {
29903
+ .cn-record-list__row[data-v-bc186ef8] {
29781
29904
  align-items: center;
29782
29905
  color: var(--color-main-text);
29783
29906
  display: flex;
@@ -29785,11 +29908,11 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29785
29908
  padding: 12px 0;
29786
29909
  text-decoration: none;
29787
29910
  }
29788
- .cn-record-list__row--link:hover .cn-record-list__title[data-v-519e7f1c],
29789
- .cn-record-list__row--link:focus-visible .cn-record-list__title[data-v-519e7f1c] {
29911
+ .cn-record-list__row--link:hover .cn-record-list__title[data-v-bc186ef8],
29912
+ .cn-record-list__row--link:focus-visible .cn-record-list__title[data-v-bc186ef8] {
29790
29913
  text-decoration: underline;
29791
29914
  }
29792
- .cn-record-list__avatar[data-v-519e7f1c] {
29915
+ .cn-record-list__avatar[data-v-bc186ef8] {
29793
29916
  align-items: center;
29794
29917
  background: var(--color-background-hover);
29795
29918
  border-radius: 50%;
@@ -29802,67 +29925,67 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29802
29925
  justify-content: center;
29803
29926
  width: 36px;
29804
29927
  }
29805
- .cn-record-list__main[data-v-519e7f1c] {
29928
+ .cn-record-list__main[data-v-bc186ef8] {
29806
29929
  display: flex;
29807
29930
  flex: 1 1 auto;
29808
29931
  flex-direction: column;
29809
29932
  gap: 2px;
29810
29933
  min-width: 0;
29811
29934
  }
29812
- .cn-record-list__title[data-v-519e7f1c] {
29935
+ .cn-record-list__title[data-v-bc186ef8] {
29813
29936
  font-size: 15px;
29814
29937
  font-weight: 700;
29815
29938
  }
29816
- .cn-record-list__meta[data-v-519e7f1c] {
29939
+ .cn-record-list__meta[data-v-bc186ef8] {
29817
29940
  color: var(--color-text-maxcontrast);
29818
29941
  font-size: 13px;
29819
29942
  }
29820
- .cn-record-list__aside[data-v-519e7f1c] {
29943
+ .cn-record-list__aside[data-v-bc186ef8] {
29821
29944
  align-items: center;
29822
29945
  display: flex;
29823
29946
  flex: none;
29824
29947
  gap: 16px;
29825
29948
  }
29826
- .cn-record-list__trailing[data-v-519e7f1c] {
29949
+ .cn-record-list__trailing[data-v-bc186ef8] {
29827
29950
  font-size: 14px;
29828
29951
  white-space: nowrap;
29829
29952
  }
29830
- .cn-record-list__due[data-v-519e7f1c] {
29953
+ .cn-record-list__due[data-v-bc186ef8] {
29831
29954
  font-size: 14px;
29832
29955
  white-space: nowrap;
29833
29956
  }
29834
- .cn-record-list__due--danger[data-v-519e7f1c] {
29957
+ .cn-record-list__due--danger[data-v-bc186ef8] {
29835
29958
  color: var(--color-text-error, var(--color-error-text));
29836
29959
  font-weight: 600;
29837
29960
  }
29838
- .cn-record-list__due--empty[data-v-519e7f1c] {
29961
+ .cn-record-list__due--empty[data-v-bc186ef8] {
29839
29962
  color: var(--color-text-maxcontrast);
29840
29963
  }
29841
- .cn-record-list__row--action[data-v-519e7f1c] {
29964
+ .cn-record-list__row--action[data-v-bc186ef8] {
29842
29965
  flex-wrap: wrap;
29843
29966
  gap: 8px 16px;
29844
29967
  padding: 14px 0;
29845
29968
  }
29846
- .cn-record-list__row--action .cn-record-list__main[data-v-519e7f1c] {
29969
+ .cn-record-list__row--action .cn-record-list__main[data-v-bc186ef8] {
29847
29970
  flex: 1 1 280px;
29848
29971
  gap: 3px;
29849
29972
  }
29850
- .cn-record-list__title--link[data-v-519e7f1c] {
29973
+ .cn-record-list__title--link[data-v-bc186ef8] {
29851
29974
  color: var(--color-main-text);
29852
29975
  text-decoration: underline;
29853
29976
  }
29854
- .cn-record-list__pills[data-v-519e7f1c] {
29977
+ .cn-record-list__pills[data-v-bc186ef8] {
29855
29978
  display: flex;
29856
29979
  flex: 0 0 120px;
29857
29980
  gap: 6px;
29858
29981
  justify-content: flex-end;
29859
29982
  }
29860
- .cn-record-list__due--column[data-v-519e7f1c] {
29983
+ .cn-record-list__due--column[data-v-bc186ef8] {
29861
29984
  flex: 0 0 96px;
29862
29985
  font-size: 13px;
29863
29986
  text-align: end;
29864
29987
  }
29865
- .cn-record-list__action[data-v-519e7f1c] {
29988
+ .cn-record-list__action[data-v-bc186ef8] {
29866
29989
  align-items: center;
29867
29990
  background: var(--color-primary-element-light);
29868
29991
  border: 0;
@@ -29879,26 +30002,26 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29879
30002
  padding: 0 14px;
29880
30003
  text-decoration: none;
29881
30004
  }
29882
- .cn-record-list__action[data-v-519e7f1c]:hover,
29883
- .cn-record-list__action[data-v-519e7f1c]:focus-visible {
30005
+ .cn-record-list__action[data-v-bc186ef8]:hover,
30006
+ .cn-record-list__action[data-v-bc186ef8]:focus-visible {
29884
30007
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
29885
30008
  }
29886
- .cn-record-list__chevron[data-v-519e7f1c] {
30009
+ .cn-record-list__chevron[data-v-bc186ef8] {
29887
30010
  color: var(--color-text-maxcontrast);
29888
30011
  flex: none;
29889
30012
  }
29890
30013
 
29891
30014
  /* feed */
29892
- .cn-record-list--feed .cn-record-list__item + .cn-record-list__item[data-v-519e7f1c] {
30015
+ .cn-record-list--feed .cn-record-list__item + .cn-record-list__item[data-v-bc186ef8] {
29893
30016
  border-top: 1px solid var(--color-border);
29894
30017
  }
29895
- .cn-record-list__feed-row[data-v-519e7f1c] {
30018
+ .cn-record-list__feed-row[data-v-bc186ef8] {
29896
30019
  align-items: flex-start;
29897
30020
  display: flex;
29898
30021
  gap: 14px;
29899
30022
  padding: 12px 0;
29900
30023
  }
29901
- .cn-record-list__feed-icon[data-v-519e7f1c] {
30024
+ .cn-record-list__feed-icon[data-v-bc186ef8] {
29902
30025
  align-items: center;
29903
30026
  background: var(--color-primary-element-light);
29904
30027
  border-radius: 50%;
@@ -29909,25 +30032,25 @@ a.cn-flow-runs-widget__row-content:hover .cn-flow-runs-widget__name[data-v-33d38
29909
30032
  justify-content: center;
29910
30033
  width: 36px;
29911
30034
  }
29912
- .cn-record-list__text[data-v-519e7f1c] {
30035
+ .cn-record-list__text[data-v-bc186ef8] {
29913
30036
  font-size: 15px;
29914
30037
  }
29915
- .cn-record-list--feed .cn-record-list__main[data-v-519e7f1c] {
30038
+ .cn-record-list--feed .cn-record-list__main[data-v-bc186ef8] {
29916
30039
  color: var(--color-main-text);
29917
30040
  text-decoration: none;
29918
30041
  }
29919
30042
 
29920
30043
  /* inline */
29921
- .cn-record-list__inline-row[data-v-519e7f1c] {
30044
+ .cn-record-list__inline-row[data-v-bc186ef8] {
29922
30045
  padding: 4px 0;
29923
30046
  }
29924
- .cn-record-list__label[data-v-519e7f1c] {
30047
+ .cn-record-list__label[data-v-bc186ef8] {
29925
30048
  margin-inline-end: 4px;
29926
30049
  }
29927
- .cn-record-list__inline-title[data-v-519e7f1c] {
30050
+ .cn-record-list__inline-title[data-v-bc186ef8] {
29928
30051
  color: var(--color-main-text);
29929
30052
  }
29930
- a.cn-record-list__inline-title[data-v-519e7f1c] {
30053
+ a.cn-record-list__inline-title[data-v-bc186ef8] {
29931
30054
  color: var(--color-primary-element);
29932
30055
  text-decoration: underline;
29933
30056
  }
@@ -30247,6 +30370,7 @@ a.cn-record-list__inline-title[data-v-519e7f1c] {
30247
30370
  }
30248
30371
 
30249
30372
  .cn-form-widget__textarea {
30373
+ box-sizing: border-box;
30250
30374
  width: 100%;
30251
30375
  min-height: 80px;
30252
30376
  padding: 8px;
@@ -30269,6 +30393,16 @@ a.cn-record-list__inline-title[data-v-519e7f1c] {
30269
30393
  margin: 0;
30270
30394
  }
30271
30395
 
30396
+ /* A select takes its field's width, however narrow the card. NcSelect is at
30397
+ least 260px wide on its own, so in pipelinq's 234px "Nieuw contactmoment"
30398
+ card at 1100 wide the channel and client selects ran 40px past the card's
30399
+ edge. The client picker (CnResourceSelect) is an NcSelect too.
30400
+ @spec openspec/changes/interaction-form-fits-and-reads-dutch/specs/interaction-form-widget/spec.md#requirement-the-interaction-form-fits-its-card-and-reads-in-the-readers-language */
30401
+ .cn-form-widget .v-select.select {
30402
+ min-width: 0;
30403
+ width: 100%;
30404
+ }
30405
+
30272
30406
 
30273
30407
  .cn-banner-form[data-v-0c839173] {
30274
30408
  display: flex;
@@ -36684,24 +36818,24 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
36684
36818
  }
36685
36819
 
36686
36820
 
36687
- .cn-walkthrough[data-v-165ee49b] {
36821
+ .cn-walkthrough[data-v-34991bbf] {
36688
36822
  position: fixed;
36689
36823
  inset: 0;
36690
36824
  pointer-events: none;
36691
36825
  }
36692
- .cn-walkthrough__live[data-v-165ee49b] {
36826
+ .cn-walkthrough__live[data-v-34991bbf] {
36693
36827
  position: absolute;
36694
36828
  width: 1px;
36695
36829
  height: 1px;
36696
36830
  overflow: hidden;
36697
36831
  clip-path: inset(50%);
36698
36832
  }
36699
- .cn-walkthrough__dim[data-v-165ee49b] {
36833
+ .cn-walkthrough__dim[data-v-34991bbf] {
36700
36834
  position: fixed;
36701
36835
  background: var(--color-modal-background, rgba(0, 0, 0, 0.5));
36702
36836
  pointer-events: auto;
36703
36837
  }
36704
- .cn-walkthrough__dim--full[data-v-165ee49b] {
36838
+ .cn-walkthrough__dim--full[data-v-34991bbf] {
36705
36839
  inset: 0;
36706
36840
  }
36707
36841
 
@@ -36710,16 +36844,16 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
36710
36844
  underneath (see the template comment). */
36711
36845
  /* Lets the step's own task through — and therefore cannot be clicked to
36712
36846
  dismiss; ESC, the close button and Back/Finish remain (see the template). */
36713
- .cn-walkthrough__dim--passthrough[data-v-165ee49b] {
36847
+ .cn-walkthrough__dim--passthrough[data-v-34991bbf] {
36714
36848
  pointer-events: none;
36715
36849
  }
36716
- .cn-walkthrough__ring[data-v-165ee49b] {
36850
+ .cn-walkthrough__ring[data-v-34991bbf] {
36717
36851
  position: fixed;
36718
36852
  border-radius: var(--border-radius-large, 8px);
36719
36853
  box-shadow: 0 0 0 2px var(--color-primary-element, #0082c9);
36720
36854
  pointer-events: none;
36721
36855
  }
36722
- .cn-walkthrough__card[data-v-165ee49b] {
36856
+ .cn-walkthrough__card[data-v-34991bbf] {
36723
36857
  position: fixed;
36724
36858
  width: 320px;
36725
36859
  max-width: calc(100vw - 24px);
@@ -36730,11 +36864,11 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
36730
36864
  padding: 16px;
36731
36865
  pointer-events: auto;
36732
36866
  }
36733
- .cn-walkthrough__card--docked[data-v-165ee49b] {
36867
+ .cn-walkthrough__card--docked[data-v-34991bbf] {
36734
36868
  inset-block-end: 16px;
36735
36869
  inset-inline-start: 16px;
36736
36870
  }
36737
- .cn-walkthrough__close[data-v-165ee49b] {
36871
+ .cn-walkthrough__close[data-v-34991bbf] {
36738
36872
  /* !important beats NcButton's own `position: relative`, which would otherwise
36739
36873
  leave the close button in-flow at the card's top-left. */
36740
36874
  position: absolute !important;
@@ -36743,37 +36877,37 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
36743
36877
  inset-inline-start: auto;
36744
36878
  z-index: 1;
36745
36879
  }
36746
- .cn-walkthrough__counter[data-v-165ee49b] {
36880
+ .cn-walkthrough__counter[data-v-34991bbf] {
36747
36881
  font-size: 0.8125rem;
36748
36882
  color: var(--color-text-maxcontrast);
36749
36883
  margin-bottom: 4px;
36750
36884
  /* Keep the counter/title clear of the absolutely-positioned close button. */
36751
36885
  padding-inline-end: 32px;
36752
36886
  }
36753
- .cn-walkthrough__title[data-v-165ee49b] {
36887
+ .cn-walkthrough__title[data-v-34991bbf] {
36754
36888
  margin: 0 0 6px;
36755
36889
  font-size: 1.1rem;
36756
36890
  }
36757
- .cn-walkthrough__body[data-v-165ee49b] {
36891
+ .cn-walkthrough__body[data-v-34991bbf] {
36758
36892
  margin: 0 0 8px;
36759
36893
  }
36760
- .cn-walkthrough__task[data-v-165ee49b] {
36894
+ .cn-walkthrough__task[data-v-34991bbf] {
36761
36895
  margin: 0 0 8px;
36762
36896
  padding: 8px;
36763
36897
  background: var(--color-primary-element-light, var(--color-background-hover));
36764
36898
  border-radius: var(--border-radius, 4px);
36765
36899
  font-weight: 600;
36766
36900
  }
36767
- .cn-walkthrough__task-icon[data-v-165ee49b] {
36901
+ .cn-walkthrough__task-icon[data-v-34991bbf] {
36768
36902
  margin-inline-end: 4px;
36769
36903
  }
36770
- .cn-walkthrough__actions[data-v-165ee49b] {
36904
+ .cn-walkthrough__actions[data-v-34991bbf] {
36771
36905
  display: flex;
36772
36906
  align-items: center;
36773
36907
  gap: 8px;
36774
36908
  margin-top: 8px;
36775
36909
  }
36776
- .cn-walkthrough__spacer[data-v-165ee49b] {
36910
+ .cn-walkthrough__spacer[data-v-34991bbf] {
36777
36911
  flex: 1 1 auto;
36778
36912
  }
36779
36913
 
@@ -37355,41 +37489,41 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37355
37489
  }
37356
37490
 
37357
37491
 
37358
- .cn-body-sections[data-v-19a0caa4] {
37492
+ .cn-body-sections[data-v-44324dca] {
37359
37493
  display: flex;
37360
37494
  flex-direction: column;
37361
37495
  gap: 16px;
37362
37496
  width: 100%;
37363
37497
  }
37364
- .cn-body-sections--grid[data-v-19a0caa4] {
37498
+ .cn-body-sections--grid[data-v-44324dca] {
37365
37499
  display: grid;
37366
37500
  grid-template-columns: repeat(12, 1fr);
37367
37501
  gap: 16px;
37368
37502
  }
37369
- .cn-body-sections__section[data-v-19a0caa4] {
37503
+ .cn-body-sections__section[data-v-44324dca] {
37370
37504
  min-width: 0;
37371
37505
  }
37372
37506
 
37373
37507
  /* Same card as the grid's widgets, so a section reads as one of them. */
37374
- .cn-body-sections__section--card[data-v-19a0caa4] {
37508
+ .cn-body-sections__section--card[data-v-44324dca] {
37375
37509
  padding: 12px 16px 16px;
37376
37510
  background: var(--color-main-background);
37377
37511
  border: 1px solid var(--color-border);
37378
37512
  border-radius: var(--border-radius-large, 8px);
37379
37513
  }
37380
- .cn-body-sections__section--card > .cn-body-sections__title[data-v-19a0caa4] {
37514
+ .cn-body-sections__section--card > .cn-body-sections__title[data-v-44324dca] {
37381
37515
  margin: 0 -16px 12px;
37382
37516
  padding: 0 16px 12px;
37383
37517
  font-size: 14px;
37384
37518
  border-bottom: 1px solid var(--color-border);
37385
37519
  }
37386
- .cn-body-sections__title[data-v-19a0caa4] {
37520
+ .cn-body-sections__title[data-v-44324dca] {
37387
37521
  margin: 0 0 8px;
37388
37522
  font-size: 16px;
37389
37523
  font-weight: 600;
37390
37524
  color: var(--color-main-text);
37391
37525
  }
37392
- .cn-body-sections__error[data-v-19a0caa4] {
37526
+ .cn-body-sections__error[data-v-44324dca] {
37393
37527
  padding: 12px 16px;
37394
37528
  border: 1px solid var(--color-border);
37395
37529
  border-radius: var(--border-radius-large, 12px);
@@ -37399,17 +37533,17 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37399
37533
  }
37400
37534
 
37401
37535
 
37402
- .cn-dashboard-grid[data-v-29653a76] {
37536
+ .cn-dashboard-grid[data-v-ca2ae49c] {
37403
37537
  width: 100%;
37404
37538
  min-height: 200px;
37405
37539
  }
37406
- .grid-stack[data-v-29653a76] {
37540
+ .grid-stack[data-v-ca2ae49c] {
37407
37541
  background: transparent;
37408
37542
  }
37409
37543
 
37410
37544
  /* Screen-reader-only text: the keyboard key map and the live region. Kept in
37411
37545
  the layout (not `display: none`) so assistive tech still reads it. */
37412
- .cn-dashboard-grid__sr-only[data-v-29653a76] {
37546
+ .cn-dashboard-grid__sr-only[data-v-ca2ae49c] {
37413
37547
  position: absolute;
37414
37548
  width: 1px;
37415
37549
  height: 1px;
@@ -37424,7 +37558,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37424
37558
  /* Grid items become tab stops in edit mode — give them a visible focus ring
37425
37559
  that satisfies WCAG 2.1 SC 2.4.7 without relying on the widget's own
37426
37560
  styling. `outline-offset` keeps the ring outside the rounded card. */
37427
- .grid-stack-item[data-v-29653a76]:focus-visible {
37561
+ .grid-stack-item[data-v-ca2ae49c]:focus-visible {
37428
37562
  outline: 2px solid var(--color-primary-element, #0082c9);
37429
37563
  outline-offset: 2px;
37430
37564
  border-radius: var(--border-radius-container-large, 16px);
@@ -37436,19 +37570,19 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37436
37570
  cell never shrank: "Waiting for me" stayed a tall card around one row. In
37437
37571
  such a cell the child takes its own height. A cell without the key keeps
37438
37572
  the filling child. */
37439
- .cn-dashboard-grid__item--fit[data-v-29653a76] > .grid-stack-item-content > * {
37573
+ .cn-dashboard-grid__item--fit[data-v-ca2ae49c] > .grid-stack-item-content > * {
37440
37574
  height: auto;
37441
37575
  }
37442
- [data-v-29653a76] .grid-stack-item-content {
37576
+ [data-v-ca2ae49c] .grid-stack-item-content {
37443
37577
  background: var(--color-main-background);
37444
37578
  border: none;
37445
37579
  box-shadow: none;
37446
37580
  overflow: hidden;
37447
37581
  }
37448
- [data-v-29653a76] .grid-stack-item-content:has(.cn-widget-wrapper--borderless) {
37582
+ [data-v-ca2ae49c] .grid-stack-item-content:has(.cn-widget-wrapper--borderless) {
37449
37583
  background: transparent;
37450
37584
  }
37451
- [data-v-29653a76] .grid-stack-placeholder > .placeholder-content {
37585
+ [data-v-ca2ae49c] .grid-stack-placeholder > .placeholder-content {
37452
37586
  background: var(--color-primary-element-light);
37453
37587
  border: 2px dashed var(--color-primary-element);
37454
37588
  border-radius: var(--border-radius-large);
@@ -37716,7 +37850,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37716
37850
  }
37717
37851
 
37718
37852
 
37719
- .cn-dashboard-page[data-v-4475ac48] {
37853
+ .cn-dashboard-page[data-v-4abdd0ae] {
37720
37854
  padding: 20px;
37721
37855
  max-width: 1800px;
37722
37856
  /* Centre the leftover space once the cap engages, so a wide screen shows
@@ -37730,7 +37864,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37730
37864
  overflow-y: auto;
37731
37865
  box-sizing: border-box;
37732
37866
  }
37733
- .cn-dashboard-page__header[data-v-4475ac48] {
37867
+ .cn-dashboard-page__header[data-v-4abdd0ae] {
37734
37868
  display: flex;
37735
37869
  justify-content: space-between;
37736
37870
  align-items: flex-start;
@@ -37742,21 +37876,21 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37742
37876
  room. Only the HEADER shifts right — body widgets keep full width. */
37743
37877
  padding-inline-start: 56px;
37744
37878
  }
37745
- .cn-dashboard-page__header-left[data-v-4475ac48] {
37879
+ .cn-dashboard-page__header-left[data-v-4abdd0ae] {
37746
37880
  min-width: 0;
37747
37881
  }
37748
- .cn-dashboard-page__title-row[data-v-4475ac48] {
37882
+ .cn-dashboard-page__title-row[data-v-4abdd0ae] {
37749
37883
  display: flex;
37750
37884
  align-items: center;
37751
37885
  flex-wrap: wrap;
37752
37886
  gap: 12px;
37753
37887
  }
37754
- .cn-dashboard-page__title[data-v-4475ac48] {
37888
+ .cn-dashboard-page__title[data-v-4abdd0ae] {
37755
37889
  margin: 0;
37756
37890
  font-size: 20px;
37757
37891
  font-weight: 700;
37758
37892
  }
37759
- .cn-dashboard-page__description[data-v-4475ac48] {
37893
+ .cn-dashboard-page__description[data-v-4abdd0ae] {
37760
37894
  margin: 4px 0 0;
37761
37895
  font-size: 14px;
37762
37896
  color: var(--color-text-maxcontrast);
@@ -37764,19 +37898,19 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37764
37898
 
37765
37899
  /* Board look (screens-dashboard-parity): h1 28/700, a 15px grey subtitle 6px
37766
37900
  under it, and 40px buttons with a 10px gap. */
37767
- .cn-dashboard-page--board .cn-dashboard-page__title[data-v-4475ac48] {
37901
+ .cn-dashboard-page--board .cn-dashboard-page__title[data-v-4abdd0ae] {
37768
37902
  font-size: 28px;
37769
37903
  font-weight: 700;
37770
37904
  line-height: 1.2;
37771
37905
  }
37772
- .cn-dashboard-page--board .cn-dashboard-page__description[data-v-4475ac48] {
37906
+ .cn-dashboard-page--board .cn-dashboard-page__description[data-v-4abdd0ae] {
37773
37907
  margin: 6px 0 0;
37774
37908
  font-size: 15px;
37775
37909
  }
37776
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-4475ac48] {
37910
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-4abdd0ae] {
37777
37911
  gap: 10px;
37778
37912
  }
37779
- .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-4475ac48] .button-vue {
37913
+ .cn-dashboard-page--board .cn-dashboard-page__header-actions[data-v-4abdd0ae] .button-vue {
37780
37914
  min-height: var(--cn-board-control-height, 40px);
37781
37915
  height: var(--cn-board-control-height, 40px);
37782
37916
  }
@@ -37784,17 +37918,17 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37784
37918
  /* The switch row under the header (screens-dashboard-greeting-header): the
37785
37919
  view switch left, the `viewLinks` pills right (DqMijnWerk: pills 34px high,
37786
37920
  radius 17, 13px/600, a 14px icon, primary light on primary deep). */
37787
- .cn-dashboard-page__switch-row[data-v-4475ac48] {
37921
+ .cn-dashboard-page__switch-row[data-v-4abdd0ae] {
37788
37922
  display: flex;
37789
37923
  flex-wrap: wrap;
37790
37924
  align-items: center;
37791
37925
  gap: 10px;
37792
37926
  margin-bottom: var(--cn-board-section-gap, 20px);
37793
37927
  }
37794
- .cn-dashboard-page__switch-row-spacer[data-v-4475ac48] {
37928
+ .cn-dashboard-page__switch-row-spacer[data-v-4abdd0ae] {
37795
37929
  flex: 1 1 auto;
37796
37930
  }
37797
- .cn-dashboard-page__view-link[data-v-4475ac48] {
37931
+ .cn-dashboard-page__view-link[data-v-4abdd0ae] {
37798
37932
  display: inline-flex;
37799
37933
  align-items: center;
37800
37934
  gap: 6px;
@@ -37808,36 +37942,36 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37808
37942
  white-space: nowrap;
37809
37943
  text-decoration: none !important;
37810
37944
  }
37811
- .cn-dashboard-page__view-link[data-v-4475ac48]:hover {
37945
+ .cn-dashboard-page__view-link[data-v-4abdd0ae]:hover {
37812
37946
  background: var(--color-primary-element-light-hover, var(--color-primary-element-light));
37813
37947
  }
37814
- .cn-dashboard-page__view-link[data-v-4475ac48]:focus-visible {
37948
+ .cn-dashboard-page__view-link[data-v-4abdd0ae]:focus-visible {
37815
37949
  outline: 2px solid var(--color-main-text);
37816
37950
  outline-offset: 2px;
37817
37951
  }
37818
- .cn-dashboard-page__view-link-icon[data-v-4475ac48] {
37952
+ .cn-dashboard-page__view-link-icon[data-v-4abdd0ae] {
37819
37953
  display: inline-flex;
37820
37954
  }
37821
37955
 
37822
37956
  /* The period group, in a row of its own between the header and the KPI row. */
37823
- .cn-dashboard-page__date-range--segmented[data-v-4475ac48] {
37957
+ .cn-dashboard-page__date-range--segmented[data-v-4abdd0ae] {
37824
37958
  margin-bottom: 16px;
37825
37959
  }
37826
- .cn-dashboard-page__date-segmented[data-v-4475ac48] {
37960
+ .cn-dashboard-page__date-segmented[data-v-4abdd0ae] {
37827
37961
  display: flex;
37828
37962
  align-items: center;
37829
37963
  gap: 8px;
37830
37964
  }
37831
37965
 
37832
37966
  /* The KPI row above the grid: tiles are cells of the auto-fit grid. */
37833
- .cn-dashboard-page__kpi-row[data-v-4475ac48] {
37967
+ .cn-dashboard-page__kpi-row[data-v-4abdd0ae] {
37834
37968
  margin-bottom: var(--cn-board-section-gap, 16px);
37835
37969
  }
37836
- .cn-dashboard-page__kpi-cell[data-v-4475ac48] {
37970
+ .cn-dashboard-page__kpi-cell[data-v-4abdd0ae] {
37837
37971
  display: flex;
37838
37972
  min-width: 0;
37839
37973
  }
37840
- .cn-dashboard-page__kpi-cell[data-v-4475ac48] > * {
37974
+ .cn-dashboard-page__kpi-cell[data-v-4abdd0ae] > * {
37841
37975
  flex: 1 1 auto;
37842
37976
  min-width: 0;
37843
37977
  }
@@ -37850,7 +37984,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37850
37984
  scoped chip rules then silently don't match and the chip collapses into
37851
37985
  NcActions' ~30px icon slot (text wraps to "Last / 30 / days"). The
37852
37986
  data-testid is stable across chunks, so those rules match regardless. */
37853
- .cn-dashboard-page__header-actions[data-v-4475ac48] {
37987
+ .cn-dashboard-page__header-actions[data-v-4abdd0ae] {
37854
37988
  display: flex;
37855
37989
  align-items: center;
37856
37990
  gap: 8px;
@@ -37866,19 +38000,19 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37866
38000
 
37867
38001
  /* Date-range header band. Kept compact so it doesn't open a tall gap
37868
38002
  above the grid; the pills variant is a single tidy toggle row. */
37869
- .cn-dashboard-page__date-range[data-v-4475ac48] {
38003
+ .cn-dashboard-page__date-range[data-v-4abdd0ae] {
37870
38004
  margin-bottom: 12px;
37871
38005
  }
37872
- .cn-dashboard-page__date-range--pills[data-v-4475ac48] {
38006
+ .cn-dashboard-page__date-range--pills[data-v-4abdd0ae] {
37873
38007
  margin-bottom: 8px;
37874
38008
  }
37875
- .cn-dashboard-page__date-pills[data-v-4475ac48] {
38009
+ .cn-dashboard-page__date-pills[data-v-4abdd0ae] {
37876
38010
  display: flex;
37877
38011
  align-items: center;
37878
38012
  flex-wrap: wrap;
37879
38013
  gap: 6px;
37880
38014
  }
37881
- .cn-dashboard-page__date-pill[data-v-4475ac48] {
38015
+ .cn-dashboard-page__date-pill[data-v-4abdd0ae] {
37882
38016
  display: inline-flex;
37883
38017
  align-items: center;
37884
38018
  padding: 5px 14px;
@@ -37893,77 +38027,77 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37893
38027
  cursor: pointer;
37894
38028
  transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease;
37895
38029
  }
37896
- .cn-dashboard-page__date-pill[data-v-4475ac48]:hover {
38030
+ .cn-dashboard-page__date-pill[data-v-4abdd0ae]:hover {
37897
38031
  background: var(--color-background-hover);
37898
38032
  }
37899
- .cn-dashboard-page__date-pill[data-v-4475ac48]:focus-visible {
38033
+ .cn-dashboard-page__date-pill[data-v-4abdd0ae]:focus-visible {
37900
38034
  outline: 2px solid var(--color-primary-element);
37901
38035
  outline-offset: 2px;
37902
38036
  }
37903
- .cn-dashboard-page__date-pill--active[data-v-4475ac48] {
38037
+ .cn-dashboard-page__date-pill--active[data-v-4abdd0ae] {
37904
38038
  background: var(--color-primary-element);
37905
38039
  border-color: var(--color-primary-element);
37906
38040
  color: var(--color-primary-element-text);
37907
38041
  }
37908
- .cn-dashboard-page__date-pill--active[data-v-4475ac48]:hover {
38042
+ .cn-dashboard-page__date-pill--active[data-v-4abdd0ae]:hover {
37909
38043
  background: var(--color-primary-element-hover, var(--color-primary-element));
37910
38044
  }
37911
38045
 
37912
38046
  /* The custom-range pill is de-emphasised — dashed outline, muted text —
37913
38047
  so it reads as an escape hatch rather than a primary option. */
37914
- .cn-dashboard-page__date-pill--custom[data-v-4475ac48] {
38048
+ .cn-dashboard-page__date-pill--custom[data-v-4abdd0ae] {
37915
38049
  border-style: dashed;
37916
38050
  color: var(--color-text-maxcontrast);
37917
38051
  }
37918
- .cn-dashboard-page__date-pill-custom[data-v-4475ac48] .action-item__menutoggle {
38052
+ .cn-dashboard-page__date-pill-custom[data-v-4abdd0ae] .action-item__menutoggle {
37919
38053
  min-width: 0;
37920
38054
  min-height: 0;
37921
38055
  padding: 0;
37922
38056
  background: transparent;
37923
38057
  border: none;
37924
38058
  }
37925
- .cn-dashboard-page__date-pill-custom[data-v-4475ac48] .button-vue,
37926
- .cn-dashboard-page__date-pill-custom[data-v-4475ac48] .button-vue__wrapper,
37927
- .cn-dashboard-page__date-pill-custom[data-v-4475ac48] .button-vue__icon {
38059
+ .cn-dashboard-page__date-pill-custom[data-v-4abdd0ae] .button-vue,
38060
+ .cn-dashboard-page__date-pill-custom[data-v-4abdd0ae] .button-vue__wrapper,
38061
+ .cn-dashboard-page__date-pill-custom[data-v-4abdd0ae] .button-vue__icon {
37928
38062
  width: auto !important;
37929
38063
  min-width: 0 !important;
37930
38064
  overflow: visible !important;
37931
38065
  }
37932
- .cn-dashboard-page__empty[data-v-4475ac48] {
38066
+ .cn-dashboard-page__empty[data-v-4abdd0ae] {
37933
38067
  padding: 60px 20px;
37934
38068
  }
37935
38069
 
37936
38070
  /* The page's view switch on a page without a header row: at the end of its
37937
38071
  own row, above the grids, where the header would have put it. */
37938
- .cn-dashboard-page__view-switch[data-v-4475ac48] {
38072
+ .cn-dashboard-page__view-switch[data-v-4abdd0ae] {
37939
38073
  display: flex;
37940
38074
  justify-content: flex-end;
37941
38075
  margin-bottom: 12px;
37942
38076
  }
37943
38077
 
37944
38078
  /* A view the switch shows with nothing to draw. */
37945
- .cn-page-view-region--empty[data-v-4475ac48] {
38079
+ .cn-page-view-region--empty[data-v-4abdd0ae] {
37946
38080
  padding: 40px 20px;
37947
38081
  }
37948
- .cn-dashboard-page__page-filters[data-v-4475ac48] {
38082
+ .cn-dashboard-page__page-filters[data-v-4abdd0ae] {
37949
38083
  display: flex;
37950
38084
  flex-wrap: wrap;
37951
38085
  gap: 16px;
37952
38086
  align-items: flex-end;
37953
38087
  margin-bottom: 12px;
37954
38088
  }
37955
- .cn-dashboard-page__page-filter[data-v-4475ac48] {
38089
+ .cn-dashboard-page__page-filter[data-v-4abdd0ae] {
37956
38090
  display: flex;
37957
38091
  flex-direction: column;
37958
38092
  gap: 4px;
37959
38093
  min-width: 200px;
37960
38094
  }
37961
- .cn-dashboard-page__page-filter-label[data-v-4475ac48] {
38095
+ .cn-dashboard-page__page-filter-label[data-v-4abdd0ae] {
37962
38096
  font-size: 0.85em;
37963
38097
  font-weight: 600;
37964
38098
  color: var(--color-text-maxcontrast);
37965
38099
  }
37966
- .cn-dashboard-page__widget-edit[data-v-4475ac48] {
38100
+ .cn-dashboard-page__widget-edit[data-v-4abdd0ae] {
37967
38101
  position: absolute;
37968
38102
  top: 4px;
37969
38103
  inset-inline-end: 4px;
@@ -37982,8 +38116,8 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37982
38116
  and centre the card. */
37983
38117
  /* `safe` centre so an overflowing tile does not spill out of the top, where
37984
38118
  flex overflow cannot be scrolled back to. Same as detail-page.css. */
37985
- .cn-dashboard-page__card-fit[data-v-4475ac48] .cn-widget-wrapper__content,
37986
- .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-4475ac48] .cn-widget-wrapper__content {
38119
+ .cn-dashboard-page__card-fit[data-v-4abdd0ae] .cn-widget-wrapper__content,
38120
+ .cn-dashboard-page__card-fit.cn-widget-wrapper--flush[data-v-4abdd0ae] .cn-widget-wrapper__content {
37987
38121
  overflow: hidden;
37988
38122
  display: flex;
37989
38123
  flex-direction: column;
@@ -37999,7 +38133,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
37999
38133
  shows up as a scrollbar the user has to drag to see the whole graph. Same
38000
38134
  shape as the card-fit rule above, minus the padding: chart tiles render
38001
38135
  `flush`, and apexcharts already draws its own margins. */
38002
- .cn-dashboard-page__chart-fit[data-v-4475ac48] .cn-widget-wrapper__content {
38136
+ .cn-dashboard-page__chart-fit[data-v-4abdd0ae] .cn-widget-wrapper__content {
38003
38137
  overflow: hidden;
38004
38138
  display: flex;
38005
38139
  flex-direction: column;
@@ -38009,13 +38143,13 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
38009
38143
  /* Card content (stat / gauge / delta) must fit the tile width: let the
38010
38144
  widget shrink and its value/label truncate instead of pushing past the
38011
38145
  tile edge (the horizontal clip on long currency values). */
38012
- .cn-dashboard-page__card-fit[data-v-4475ac48] .cn-stat-widget,
38013
- .cn-dashboard-page__card-fit[data-v-4475ac48] .cn-gauge-widget,
38014
- .cn-dashboard-page__card-fit[data-v-4475ac48] .cn-delta-widget {
38146
+ .cn-dashboard-page__card-fit[data-v-4abdd0ae] .cn-stat-widget,
38147
+ .cn-dashboard-page__card-fit[data-v-4abdd0ae] .cn-gauge-widget,
38148
+ .cn-dashboard-page__card-fit[data-v-4abdd0ae] .cn-delta-widget {
38015
38149
  min-width: 0;
38016
38150
  max-width: 100%;
38017
38151
  }
38018
- .cn-dashboard-page__unknown[data-v-4475ac48] {
38152
+ .cn-dashboard-page__unknown[data-v-4abdd0ae] {
38019
38153
  display: flex;
38020
38154
  align-items: center;
38021
38155
  justify-content: center;
@@ -38026,29 +38160,29 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
38026
38160
  }
38027
38161
 
38028
38162
  /* widget-ref content items */
38029
- .cn-dashboard-page__content[data-v-4475ac48] {
38163
+ .cn-dashboard-page__content[data-v-4abdd0ae] {
38030
38164
  display: flex;
38031
38165
  flex-direction: column;
38032
38166
  gap: 16px;
38033
38167
  }
38034
- .cn-dashboard-page__content-item[data-v-4475ac48] {
38168
+ .cn-dashboard-page__content-item[data-v-4abdd0ae] {
38035
38169
  width: 100%;
38036
38170
  }
38037
38171
  /* On a phone (screens-dashboard-phone) the touch targets of a board dashboard
38038
38172
  are 44px: the widget Actions menu and the KPI tiles. */
38039
38173
  @media (max-width: 640px) {
38040
- .cn-dashboard-page--board[data-v-4475ac48] .cn-widget-wrapper__actions .action-item__menutoggle,
38041
- .cn-dashboard-page--board[data-v-4475ac48] .cn-widget-wrapper__actions .button-vue {
38174
+ .cn-dashboard-page--board[data-v-4abdd0ae] .cn-widget-wrapper__actions .action-item__menutoggle,
38175
+ .cn-dashboard-page--board[data-v-4abdd0ae] .cn-widget-wrapper__actions .button-vue {
38042
38176
  min-height: 44px;
38043
38177
  }
38044
- .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-4475ac48] {
38178
+ .cn-dashboard-page--board .cn-dashboard-page__kpi-cell[data-v-4abdd0ae] {
38045
38179
  min-height: 44px;
38046
38180
  }
38047
38181
  }
38048
38182
 
38049
38183
  /* What a registry widget reports for its card header (`header` event): the
38050
38184
  note beside the link ("3 in total") and one action, as on a detail page. */
38051
- .cn-dashboard-page__widget-count[data-v-4475ac48] {
38185
+ .cn-dashboard-page__widget-count[data-v-4abdd0ae] {
38052
38186
  align-self: center;
38053
38187
  padding: 1px 8px;
38054
38188
  border-radius: 10px;
@@ -38057,13 +38191,13 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
38057
38191
  font-size: 13px;
38058
38192
  font-weight: 600;
38059
38193
  }
38060
- .cn-dashboard-page__widget-note[data-v-4475ac48] {
38194
+ .cn-dashboard-page__widget-note[data-v-4abdd0ae] {
38061
38195
  align-self: center;
38062
38196
  color: var(--color-text-maxcontrast);
38063
38197
  font-size: 14px;
38064
38198
  white-space: nowrap;
38065
38199
  }
38066
- .cn-dashboard-page__widget-action[data-v-4475ac48] {
38200
+ .cn-dashboard-page__widget-action[data-v-4abdd0ae] {
38067
38201
  display: inline-flex;
38068
38202
  align-items: center;
38069
38203
  align-self: center;
@@ -38079,7 +38213,7 @@ button.cn-object-calendar__overflow[data-v-2735e5ef] {
38079
38213
  white-space: nowrap;
38080
38214
  cursor: pointer;
38081
38215
  }
38082
- .cn-dashboard-page__widget-action[data-v-4475ac48]:focus-visible {
38216
+ .cn-dashboard-page__widget-action[data-v-4abdd0ae]:focus-visible {
38083
38217
  outline: 2px solid var(--color-primary-element);
38084
38218
  outline-offset: 2px;
38085
38219
  }
@@ -40413,33 +40547,51 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
40413
40547
  }
40414
40548
 
40415
40549
 
40416
- .cn-reports-page[data-v-7629715a] {
40550
+ .cn-reports-page[data-v-327b60f8] {
40417
40551
  padding: 16px;
40418
40552
  }
40419
40553
 
40420
40554
  /* Clear the Nextcloud navigation toggle button (44px wide, absolutely
40421
40555
  positioned at the left edge of .app-content) plus 12px breathing room, as
40422
40556
  CnPageHeader does. Only the header shifts; the body keeps the full width. */
40423
- .cn-reports-page__header[data-v-7629715a] {
40557
+ .cn-reports-page__header[data-v-327b60f8] {
40424
40558
  padding-inline-start: 56px;
40425
40559
  }
40426
- .cn-reports-page__title[data-v-7629715a] {
40560
+ .cn-reports-page__title[data-v-327b60f8] {
40427
40561
  margin: 0 0 4px;
40428
40562
  }
40429
- .cn-reports-page__description[data-v-7629715a] {
40563
+ .cn-reports-page__heading-row[data-v-327b60f8] {
40564
+ display: flex;
40565
+ flex-wrap: wrap;
40566
+ align-items: flex-start;
40567
+ justify-content: space-between;
40568
+ gap: 12px 24px;
40569
+ }
40570
+ .cn-reports-page__heading-row .cn-reports-page__title[data-v-327b60f8] {
40571
+ flex: 1 1 320px;
40572
+ min-width: 0;
40573
+ }
40574
+ .cn-reports-page__header-buttons[data-v-327b60f8] {
40575
+ display: flex;
40576
+ flex: none;
40577
+ flex-wrap: wrap;
40578
+ align-items: center;
40579
+ gap: 10px;
40580
+ }
40581
+ .cn-reports-page__description[data-v-327b60f8] {
40430
40582
  margin: 0 0 16px;
40431
40583
  color: var(--color-text-maxcontrast);
40432
40584
  }
40433
- .cn-reports-page__filter[data-v-7629715a] {
40585
+ .cn-reports-page__filter[data-v-327b60f8] {
40434
40586
  display: flex;
40435
40587
  align-items: center;
40436
40588
  gap: 8px;
40437
40589
  margin-bottom: 16px;
40438
40590
  }
40439
- .cn-reports-page__filter-select[data-v-7629715a] {
40591
+ .cn-reports-page__filter-select[data-v-327b60f8] {
40440
40592
  min-width: 220px;
40441
40593
  }
40442
- .cn-reports-page__grid[data-v-7629715a] {
40594
+ .cn-reports-page__grid[data-v-327b60f8] {
40443
40595
  display: grid;
40444
40596
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
40445
40597
  gap: 12px;
@@ -40447,7 +40599,7 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
40447
40599
  margin: 0;
40448
40600
  padding: 0;
40449
40601
  }
40450
- .cn-reports-page__card[data-v-7629715a] {
40602
+ .cn-reports-page__card[data-v-327b60f8] {
40451
40603
  display: flex;
40452
40604
  flex-direction: column;
40453
40605
  gap: 4px;
@@ -40458,22 +40610,22 @@ a.cn-integration-card__title[data-v-093a874d]:hover {
40458
40610
  color: inherit;
40459
40611
  text-decoration: none;
40460
40612
  }
40461
- .cn-reports-page__card[data-v-7629715a]:hover,
40462
- .cn-reports-page__card[data-v-7629715a]:focus {
40613
+ .cn-reports-page__card[data-v-327b60f8]:hover,
40614
+ .cn-reports-page__card[data-v-327b60f8]:focus {
40463
40615
  background-color: var(--color-background-hover);
40464
40616
  }
40465
- .cn-reports-page__card-title[data-v-7629715a] {
40617
+ .cn-reports-page__card-title[data-v-327b60f8] {
40466
40618
  font-weight: bold;
40467
40619
  }
40468
- .cn-reports-page__card-description[data-v-7629715a],
40469
- .cn-reports-page__card-category[data-v-7629715a] {
40620
+ .cn-reports-page__card-description[data-v-327b60f8],
40621
+ .cn-reports-page__card-category[data-v-327b60f8] {
40470
40622
  color: var(--color-text-maxcontrast);
40471
40623
  font-size: 0.9em;
40472
40624
  }
40473
- .cn-reports-page__empty[data-v-7629715a] {
40625
+ .cn-reports-page__empty[data-v-327b60f8] {
40474
40626
  color: var(--color-text-maxcontrast);
40475
40627
  }
40476
- .cn-reports-page__widgets[data-v-7629715a] {
40628
+ .cn-reports-page__widgets[data-v-327b60f8] {
40477
40629
  margin-top: 20px;
40478
40630
  }
40479
40631