@auditcore/ui-core 0.3.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 (186) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1326 -0
  3. package/dist/account/camera.d.ts +8 -0
  4. package/dist/account/controller.d.ts +30 -0
  5. package/dist/account/index.d.ts +7 -0
  6. package/dist/account/messages.d.ts +2 -0
  7. package/dist/account/port.d.ts +10 -0
  8. package/dist/account/presentation.d.ts +9 -0
  9. package/dist/account/types.d.ts +42 -0
  10. package/dist/account/view.d.ts +12 -0
  11. package/dist/attributes/controller.d.ts +26 -0
  12. package/dist/attributes/index.d.ts +5 -0
  13. package/dist/attributes/messages.d.ts +3 -0
  14. package/dist/attributes/port.d.ts +4 -0
  15. package/dist/attributes/types.d.ts +60 -0
  16. package/dist/attributes/view.d.ts +49 -0
  17. package/dist/base/icons.d.ts +38 -0
  18. package/dist/base/index.d.ts +3 -0
  19. package/dist/base/types.d.ts +3 -0
  20. package/dist/batchchecks/controller.d.ts +60 -0
  21. package/dist/batchchecks/index.d.ts +7 -0
  22. package/dist/batchchecks/messages.d.ts +3 -0
  23. package/dist/batchchecks/model.d.ts +38 -0
  24. package/dist/batchchecks/port.d.ts +6 -0
  25. package/dist/batchchecks/rest-port.d.ts +4 -0
  26. package/dist/batchchecks/types.d.ts +121 -0
  27. package/dist/batchchecks/view.d.ts +58 -0
  28. package/dist/benford/chart.d.ts +49 -0
  29. package/dist/benford/controller.d.ts +48 -0
  30. package/dist/benford/index.d.ts +7 -0
  31. package/dist/benford/messages.d.ts +3 -0
  32. package/dist/benford/model.d.ts +32 -0
  33. package/dist/benford/rest-port.d.ts +4 -0
  34. package/dist/benford/types.d.ts +144 -0
  35. package/dist/benford/view.d.ts +45 -0
  36. package/dist/dataprotection/dsfa.d.ts +55 -0
  37. package/dist/dataprotection/dsfaView.d.ts +45 -0
  38. package/dist/dataprotection/exporters.d.ts +33 -0
  39. package/dist/dataprotection/index.d.ts +10 -0
  40. package/dist/dataprotection/messages.d.ts +5 -0
  41. package/dist/dataprotection/registerView.d.ts +47 -0
  42. package/dist/dataprotection/requests.d.ts +16 -0
  43. package/dist/dataprotection/rest-port.d.ts +4 -0
  44. package/dist/dataprotection/types.d.ts +291 -0
  45. package/dist/dataprotection/vvt.d.ts +69 -0
  46. package/dist/dbkanban/controller.d.ts +54 -0
  47. package/dist/dbkanban/index.d.ts +3 -0
  48. package/dist/dbkanban/messages.d.ts +5 -0
  49. package/dist/dbkanban/view.d.ts +39 -0
  50. package/dist/documents/controller.d.ts +63 -0
  51. package/dist/documents/form.d.ts +52 -0
  52. package/dist/documents/importing.d.ts +12 -0
  53. package/dist/documents/index.d.ts +6 -0
  54. package/dist/documents/list.d.ts +21 -0
  55. package/dist/documents/messages.d.ts +8 -0
  56. package/dist/documents/view.d.ts +36 -0
  57. package/dist/download.d.ts +14 -0
  58. package/dist/extraction/controller.d.ts +34 -0
  59. package/dist/extraction/index.d.ts +5 -0
  60. package/dist/extraction/messages.d.ts +3 -0
  61. package/dist/extraction/rest-port.d.ts +4 -0
  62. package/dist/extraction/types.d.ts +115 -0
  63. package/dist/extraction/view.d.ts +35 -0
  64. package/dist/extrapolation/controller-subsample.d.ts +20 -0
  65. package/dist/extrapolation/controller.d.ts +72 -0
  66. package/dist/extrapolation/index.d.ts +9 -0
  67. package/dist/extrapolation/messages.d.ts +3 -0
  68. package/dist/extrapolation/model-design.d.ts +28 -0
  69. package/dist/extrapolation/model-subsample.d.ts +40 -0
  70. package/dist/extrapolation/model.d.ts +92 -0
  71. package/dist/extrapolation/rest-port.d.ts +4 -0
  72. package/dist/extrapolation/types.d.ts +255 -0
  73. package/dist/extrapolation/view-details.d.ts +46 -0
  74. package/dist/extrapolation/view.d.ts +50 -0
  75. package/dist/focus.d.ts +10 -0
  76. package/dist/geo/controller.d.ts +87 -0
  77. package/dist/geo/index.d.ts +6 -0
  78. package/dist/geo/mapView.d.ts +30 -0
  79. package/dist/geo/messages.d.ts +3 -0
  80. package/dist/geo/model.d.ts +43 -0
  81. package/dist/geo/rest-port.d.ts +12 -0
  82. package/dist/geo/types.d.ts +195 -0
  83. package/dist/i18n.d.ts +29 -0
  84. package/dist/identifiers/controller.d.ts +63 -0
  85. package/dist/identifiers/index.d.ts +5 -0
  86. package/dist/identifiers/messages.d.ts +3 -0
  87. package/dist/identifiers/model.d.ts +87 -0
  88. package/dist/identifiers/rest-port.d.ts +4 -0
  89. package/dist/identifiers/types.d.ts +101 -0
  90. package/dist/index.d.ts +33 -0
  91. package/dist/index.js +10676 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/kanban/index.d.ts +2 -0
  94. package/dist/kanban/messages.d.ts +6 -0
  95. package/dist/messages.d.ts +2 -0
  96. package/dist/reporting/controller.d.ts +46 -0
  97. package/dist/reporting/index.d.ts +5 -0
  98. package/dist/reporting/messages.d.ts +3 -0
  99. package/dist/reporting/rest-port.d.ts +4 -0
  100. package/dist/reporting/types.d.ts +72 -0
  101. package/dist/reporting/view.d.ts +12 -0
  102. package/dist/reporttemplates/controller.d.ts +46 -0
  103. package/dist/reporttemplates/index.d.ts +5 -0
  104. package/dist/reporttemplates/messages.d.ts +3 -0
  105. package/dist/reporttemplates/port.d.ts +4 -0
  106. package/dist/reporttemplates/types.d.ts +92 -0
  107. package/dist/reporttemplates/view.d.ts +27 -0
  108. package/dist/risk/controller.d.ts +54 -0
  109. package/dist/risk/format.d.ts +13 -0
  110. package/dist/risk/index.d.ts +7 -0
  111. package/dist/risk/labels.d.ts +9 -0
  112. package/dist/risk/messages.d.ts +3 -0
  113. package/dist/risk/port.d.ts +41 -0
  114. package/dist/risk/state.d.ts +61 -0
  115. package/dist/risk/types.d.ts +107 -0
  116. package/dist/runner/aktionen.d.ts +16 -0
  117. package/dist/runner/controller.d.ts +72 -0
  118. package/dist/runner/eingabe.d.ts +5 -0
  119. package/dist/runner/index.d.ts +9 -0
  120. package/dist/runner/messages.d.ts +3 -0
  121. package/dist/runner/port.d.ts +20 -0
  122. package/dist/runner/profil.d.ts +39 -0
  123. package/dist/runner/types.d.ts +109 -0
  124. package/dist/runner/view-listen.d.ts +32 -0
  125. package/dist/runner/view.d.ts +95 -0
  126. package/dist/samplesize/controller.d.ts +33 -0
  127. package/dist/samplesize/index.d.ts +7 -0
  128. package/dist/samplesize/messages.d.ts +3 -0
  129. package/dist/samplesize/model.d.ts +40 -0
  130. package/dist/samplesize/port.d.ts +9 -0
  131. package/dist/samplesize/types.d.ts +92 -0
  132. package/dist/samplesize/view.d.ts +39 -0
  133. package/dist/sampling/controller.d.ts +62 -0
  134. package/dist/sampling/index.d.ts +6 -0
  135. package/dist/sampling/messages.d.ts +3 -0
  136. package/dist/sampling/model.d.ts +63 -0
  137. package/dist/sampling/rest-port.d.ts +4 -0
  138. package/dist/sampling/types.d.ts +136 -0
  139. package/dist/sampling/view.d.ts +45 -0
  140. package/dist/screening/controller.d.ts +52 -0
  141. package/dist/screening/index.d.ts +8 -0
  142. package/dist/screening/messages.d.ts +7 -0
  143. package/dist/screening/rest-port.d.ts +4 -0
  144. package/dist/screening/runForm.d.ts +22 -0
  145. package/dist/screening/types.d.ts +295 -0
  146. package/dist/screening/view.d.ts +84 -0
  147. package/dist/store.d.ts +30 -0
  148. package/dist/synopsis/controller.d.ts +68 -0
  149. package/dist/synopsis/exporters.d.ts +16 -0
  150. package/dist/synopsis/index.d.ts +8 -0
  151. package/dist/synopsis/messages.d.ts +3 -0
  152. package/dist/synopsis/navigation.d.ts +5 -0
  153. package/dist/synopsis/port.d.ts +38 -0
  154. package/dist/synopsis/types.d.ts +121 -0
  155. package/dist/synopsis/viewModel.d.ts +74 -0
  156. package/dist/synopsis/wordDiff.d.ts +31 -0
  157. package/dist/table/index.d.ts +6 -0
  158. package/dist/tabular/index.d.ts +2 -0
  159. package/dist/tabular/messages.d.ts +3 -0
  160. package/dist/tabular/tableImport.d.ts +40 -0
  161. package/package.json +55 -0
  162. package/styles/account.css +37 -0
  163. package/styles/attributes.css +18 -0
  164. package/styles/base.css +116 -0
  165. package/styles/batchchecks.css +26 -0
  166. package/styles/benford.css +39 -0
  167. package/styles/dataprotection.css +68 -0
  168. package/styles/dbkanban.css +38 -0
  169. package/styles/documents.css +51 -0
  170. package/styles/extraction.css +25 -0
  171. package/styles/extrapolation.css +34 -0
  172. package/styles/geo.css +54 -0
  173. package/styles/identifiers.css +38 -0
  174. package/styles/index.css +24 -0
  175. package/styles/kanban.css +115 -0
  176. package/styles/reporting.css +22 -0
  177. package/styles/reporttemplates.css +21 -0
  178. package/styles/risk.css +92 -0
  179. package/styles/runner.css +54 -0
  180. package/styles/samplesize.css +27 -0
  181. package/styles/sampling.css +31 -0
  182. package/styles/screening.css +86 -0
  183. package/styles/synopsis.css +83 -0
  184. package/styles/table.css +17 -0
  185. package/styles/tabular.css +11 -0
  186. package/styles/tokens.css +121 -0
@@ -0,0 +1,51 @@
1
+ /* Vergleichsverwaltung (<flowaudit-comparisons>) – gemeinsam für Vue und React. */
2
+
3
+ .fa-comparisons { display: flex; flex-direction: column; gap: var(--fa-space-4); color: var(--fa-color-text); font: var(--fa-font-size-md) / var(--fa-line-height) var(--fa-font-sans); }
4
+ .fa-comparisons__head { display: flex; flex-direction: column; gap: var(--fa-space-1); }
5
+ .fa-comparisons__heading { margin: 0; font-size: var(--fa-font-size-lg); line-height: 1.3; }
6
+ .fa-comparisons__subheading { margin: 0; font-size: var(--fa-font-size-md); }
7
+ .fa-comparisons__note { margin: 0; font-size: var(--fa-font-size-sm); color: var(--fa-color-text-muted); }
8
+ .fa-comparisons__state { margin: 0; padding: var(--fa-space-4); border: 1px dashed var(--fa-color-border-strong); border-radius: var(--fa-radius); color: var(--fa-color-text-muted); text-align: center; }
9
+ .fa-comparisons__state--error { border-style: solid; border-color: var(--fa-color-danger); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); text-align: left; }
10
+ .fa-comparisons__layout { display: grid; grid-template-columns: minmax(18rem, 2fr) minmax(18rem, 3fr); gap: var(--fa-space-5); align-items: start; }
11
+ .fa-comparisons__layout--single { grid-template-columns: 1fr; }
12
+ .fa-comparisons__open { display: flex; flex-direction: column; align-items: flex-start; gap: var(--fa-space-3); }
13
+ .fa-comparisons__open > .fa-synopsis { align-self: stretch; }
14
+ .fa-comparisons__confirm { margin: 0; }
15
+ .fa-comparisons button:focus-visible, .fa-comparisons input:focus-visible, .fa-comparisons select:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
16
+ @media (max-width: 52rem) { .fa-comparisons__layout { grid-template-columns: 1fr; } }
17
+
18
+ /* ComparisonForm / ComparisonOptions */
19
+ .fa-comparisons-form { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface-raised); }
20
+ .fa-comparisons-form__options { display: flex; flex-direction: column; gap: var(--fa-space-3); }
21
+ .fa-comparisons-form__row { display: flex; flex-wrap: wrap; gap: var(--fa-space-3); }
22
+ .fa-comparisons-form__row > * { flex: 1 1 12rem; }
23
+ .fa-comparisons-form__field { display: flex; flex-direction: column; gap: var(--fa-space-1); min-width: 0; }
24
+ .fa-comparisons-form__field label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
25
+ .fa-comparisons-form__field select, .fa-comparisons-form__field input[type='number'], .fa-comparisons-form__file input { padding: var(--fa-space-2); border: 1px solid var(--fa-color-border-strong); border-radius: var(--fa-radius-sm); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; font-size: var(--fa-font-size-sm); }
26
+ .fa-comparisons-form__field--error select, .fa-comparisons-form__field--error input { border-color: var(--fa-color-danger); }
27
+ .fa-comparisons-form__group { display: flex; flex-wrap: wrap; gap: var(--fa-space-2) var(--fa-space-4); margin: 0; padding: var(--fa-space-2) 0 0; border: 0; border-top: 1px solid var(--fa-color-border); font-size: var(--fa-font-size-sm); }
28
+ .fa-comparisons-form__group legend { padding: 0 var(--fa-space-1) 0 0; font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
29
+ .fa-comparisons-form__group label { display: inline-flex; align-items: center; gap: var(--fa-space-1); cursor: pointer; }
30
+ .fa-comparisons-form__group input { accent-color: var(--fa-color-accent); width: 1rem; height: 1rem; }
31
+ .fa-comparisons-form__group--kind { border-top: 0; padding-top: 0; }
32
+ .fa-comparisons-form__hint { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); overflow-wrap: anywhere; }
33
+ .fa-comparisons-form__error { flex-basis: 100%; margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
34
+ .fa-comparisons-form__problems { padding: var(--fa-space-2) var(--fa-space-3); border-left: 4px solid var(--fa-color-danger); border-radius: var(--fa-radius-sm); background: var(--fa-color-danger-soft); font-size: var(--fa-font-size-sm); }
35
+ .fa-comparisons-form__problems p { margin: 0; font-weight: 600; }
36
+ .fa-comparisons-form__problems ul { margin: var(--fa-space-1) 0 0; padding-left: var(--fa-space-5); }
37
+ .fa-comparisons-form__actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); }
38
+
39
+ /* ComparisonList */
40
+ .fa-comparisons-list { display: flex; flex-direction: column; gap: var(--fa-space-3); }
41
+ .fa-comparisons-list__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fa-space-2); }
42
+ .fa-comparisons-list__count { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
43
+ .fa-comparisons-list__items { display: flex; flex-direction: column; gap: var(--fa-space-2); margin: 0; padding: 0; list-style: none; }
44
+ .fa-comparisons-list__item { display: flex; gap: var(--fa-space-3); align-items: flex-start; justify-content: space-between; padding: var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); }
45
+ .fa-comparisons-list__main { display: flex; flex-direction: column; gap: var(--fa-space-1); min-width: 0; }
46
+ .fa-comparisons-list__main p { margin: 0; }
47
+ .fa-comparisons-list__title { font-weight: 600; overflow-wrap: anywhere; }
48
+ .fa-comparisons-list__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-2); font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
49
+ .fa-comparisons-list__files { font-size: var(--fa-font-size-sm); overflow-wrap: anywhere; }
50
+ .fa-comparisons-list__counts { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); font-variant-numeric: tabular-nums; }
51
+ .fa-comparisons-list__actions { display: flex; flex: none; gap: var(--fa-space-1); }
@@ -0,0 +1,25 @@
1
+ /* Belegerkennung – FaExtraction (Vue) und FlowauditExtraction (React). */
2
+ .fa-extraction { display: flex; flex-direction: column; gap: var(--fa-space-4); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-extraction__card { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); min-width: 0; }
4
+ .fa-extraction__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
5
+ .fa-extraction__form { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--fa-space-3); align-items: end; }
6
+ .fa-extraction__field { display: flex; flex-direction: column; gap: var(--fa-space-1); min-width: 0; }
7
+ .fa-extraction__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
8
+ .fa-extraction__input { min-height: 2.25rem; padding: 0 var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
9
+ .fa-extraction__file { font: inherit; color: var(--fa-color-text); }
10
+ .fa-extraction__input:focus-visible, .fa-extraction__file:focus-visible, .fa-extraction__passed summary:focus-visible, .fa-extraction__pages summary:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
11
+ .fa-extraction__muted { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
12
+ .fa-extraction__error { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
13
+ .fa-extraction__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
14
+ .fa-extraction__notice { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-left: 3px solid var(--fa-color-accent); background: var(--fa-color-accent-soft); border-radius: var(--fa-radius-sm); }
15
+ .fa-extraction__summary { display: grid; grid-template-columns: max-content 1fr; gap: var(--fa-space-1) var(--fa-space-3); margin: 0; }
16
+ .fa-extraction__summary dt { font-weight: 600; color: var(--fa-color-text-muted); }
17
+ .fa-extraction__summary dd { margin: 0; overflow-wrap: anywhere; }
18
+ .fa-extraction__table { width: 100%; border-collapse: collapse; }
19
+ .fa-extraction__table th, .fa-extraction__table td { padding: var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: left; vertical-align: top; }
20
+ .fa-extraction__table th { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); font-weight: 600; }
21
+ .fa-extraction__table td.fa-extraction__number { font-variant-numeric: tabular-nums; white-space: nowrap; }
22
+ .fa-extraction__scroll { overflow-x: auto; }
23
+ .fa-extraction__flags { display: flex; flex-wrap: wrap; gap: var(--fa-space-1); margin: 0; padding: 0; list-style: none; }
24
+ .fa-extraction__passed summary, .fa-extraction__pages summary { cursor: pointer; font-weight: 600; }
25
+ .fa-extraction__text { margin: var(--fa-space-1) 0 0; padding: var(--fa-space-2); white-space: pre-wrap; overflow-wrap: anywhere; background: var(--fa-color-surface-raised); border-radius: var(--fa-radius); font: var(--fa-font-size-xs) / 1.5 var(--fa-font-mono, monospace); }
@@ -0,0 +1,34 @@
1
+ /* Hochrechnung und Fehlerquoten – ExtrapolationPanel (Vue) und FlowauditExtrapolation (React). */
2
+ .fa-extrapolation { display: flex; flex-direction: column; gap: var(--fa-space-4); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-extrapolation__card { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); min-width: 0; }
4
+ .fa-extrapolation__card--result { border-color: var(--fa-color-accent); }
5
+ .fa-extrapolation__card--residual { border-style: dashed; }
6
+ .fa-extrapolation__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
7
+ .fa-extrapolation__settings { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--fa-space-3); align-items: start; }
8
+ .fa-extrapolation__field { display: flex; flex-direction: column; gap: var(--fa-space-1); }
9
+ .fa-extrapolation__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
10
+ .fa-extrapolation__input, .fa-extrapolation__select { min-height: 2.25rem; width: 100%; box-sizing: border-box; padding: 0 var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
11
+ .fa-extrapolation__input--number { text-align: end; font-variant-numeric: tabular-nums; }
12
+ .fa-extrapolation__input:focus-visible, .fa-extrapolation__select:focus-visible, .fa-extrapolation__check:focus-visible { outline: none; border-color: var(--fa-color-accent); box-shadow: var(--fa-focus-ring); }
13
+ .fa-extrapolation__input[aria-invalid="true"], .fa-extrapolation__select[aria-invalid="true"] { border-color: var(--fa-color-danger); }
14
+ .fa-extrapolation__hint, .fa-extrapolation__muted { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
15
+ .fa-extrapolation__error { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
16
+ .fa-extrapolation__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
17
+ .fa-extrapolation__scroll { overflow-x: auto; }
18
+ .fa-extrapolation__grid { width: 100%; border-collapse: collapse; }
19
+ .fa-extrapolation__grid th { padding: var(--fa-space-1) var(--fa-space-2); text-align: start; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); white-space: nowrap; }
20
+ .fa-extrapolation__grid td { padding: var(--fa-space-1); vertical-align: top; }
21
+ .fa-extrapolation__grid td .fa-extrapolation__input { min-width: 7rem; }
22
+ .fa-extrapolation__grid td .fa-extrapolation__select { min-width: 9rem; }
23
+ .fa-extrapolation__actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: center; }
24
+ .fa-extrapolation__source code { display: block; margin-top: var(--fa-space-1); font-size: var(--fa-font-size-xs); overflow-wrap: anywhere; }
25
+ .fa-extrapolation__metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--fa-space-3); margin: 0; }
26
+ .fa-extrapolation__metric { display: flex; flex-direction: column; gap: var(--fa-space-1); padding: var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-surface-raised); border: 1px solid var(--fa-color-border); }
27
+ .fa-extrapolation__metric dt { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
28
+ .fa-extrapolation__metric dd { margin: 0; }
29
+ .fa-extrapolation__value { font-size: var(--fa-font-size-md); font-weight: 600; font-variant-numeric: tabular-nums; }
30
+ .fa-extrapolation__conclusion { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: center; margin: 0; }
31
+ .fa-extrapolation__list { margin: 0; padding-left: var(--fa-space-5); }
32
+ .fa-extrapolation__warnings { margin: 0; padding: var(--fa-space-2) var(--fa-space-3) var(--fa-space-2) var(--fa-space-5); border-radius: var(--fa-radius); background: var(--fa-color-warning-soft); color: var(--fa-color-warning); }
33
+ .fa-extrapolation__fingerprint { font-family: var(--fa-font-mono); font-size: var(--fa-font-size-xs); overflow-wrap: anywhere; color: var(--fa-color-text-muted); }
34
+ .fa-extrapolation__nowrap { white-space: nowrap; }
package/styles/geo.css ADDED
@@ -0,0 +1,54 @@
1
+ /* Leaflet (BSD-2-Clause, © Volodymyr Agafonkin) – Grundstile der Karte. */
2
+ @import 'leaflet/dist/leaflet.css';
3
+
4
+ .fa-geo { display: flex; flex-direction: column; gap: var(--fa-space-3); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
5
+ .fa-geo__layout { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(18rem, 24rem); gap: var(--fa-space-4); align-items: start; }
6
+ @media (max-width: 52rem) { .fa-geo__layout { grid-template-columns: 1fr; } }
7
+ .fa-geo__canvas-wrap { display: flex; flex-direction: column; gap: var(--fa-space-2); min-width: 0; position: sticky; top: var(--fa-space-3); }
8
+ .fa-geo__canvas { height: min(70vh, 36rem); min-height: 20rem; border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface-sunken); overflow: hidden; }
9
+ .fa-geo__canvas:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
10
+ .fa-geo__map-bar { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: center; justify-content: space-between; }
11
+ .fa-geo__panel { display: flex; flex-direction: column; gap: var(--fa-space-3); min-width: 0; }
12
+ .fa-geo__card { display: flex; flex-direction: column; gap: var(--fa-space-2); padding: var(--fa-space-3) var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); }
13
+ .fa-geo__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
14
+ .fa-geo__row { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: flex-end; }
15
+ .fa-geo__stack { display: flex; flex-direction: column; gap: var(--fa-space-2); }
16
+ .fa-geo__row > .fa-geo__grow { flex: 1 1 10rem; }
17
+ .fa-geo__field { display: flex; flex-direction: column; gap: var(--fa-space-1); min-width: 0; }
18
+ .fa-geo__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
19
+ .fa-geo__input { min-height: 2.25rem; width: 100%; min-width: 6.5rem; padding: 0 var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; box-sizing: border-box; }
20
+ .fa-geo__input--short { width: 4.5rem; min-width: 4rem; }
21
+ .fa-geo__utm summary { cursor: pointer; font-weight: 600; }
22
+ .fa-geo__utm[open] summary { margin-bottom: var(--fa-space-2); }
23
+ .fa-geo__input[aria-invalid='true'] { border-color: var(--fa-color-danger); }
24
+ .fa-geo__input:focus-visible, .fa-geo__range:focus-visible, .fa-geo__check input:focus-visible, .fa-geo__file:focus-visible, .fa-geo__link:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
25
+ .fa-geo__range { width: 100%; accent-color: var(--fa-color-accent); }
26
+ .fa-geo__check { display: inline-flex; gap: var(--fa-space-2); align-items: center; }
27
+ .fa-geo__fieldset { display: flex; flex-wrap: wrap; gap: var(--fa-space-3); margin: 0; padding: var(--fa-space-1) var(--fa-space-3) var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); }
28
+ .fa-geo__muted { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
29
+ .fa-geo__summary { margin: 0; display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: center; }
30
+ .fa-geo__error { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
31
+ .fa-geo__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
32
+ .fa-geo__notice { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-left: 3px solid var(--fa-color-warning); background: var(--fa-color-warning-soft); border-radius: var(--fa-radius-sm); }
33
+ .fa-geo__facts { display: grid; grid-template-columns: max-content 1fr; gap: var(--fa-space-1) var(--fa-space-3); margin: 0; }
34
+ .fa-geo__facts dt { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
35
+ .fa-geo__facts dd { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
36
+ .fa-geo__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
37
+ .fa-geo__table th, .fa-geo__table td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: left; }
38
+ .fa-geo__table th { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
39
+ .fa-geo__num { text-align: right !important; white-space: nowrap; }
40
+ .fa-geo__list { margin: 0; padding-left: var(--fa-space-4); }
41
+ .fa-geo__link { padding: 0; border: 0; background: none; color: var(--fa-color-accent); font: inherit; text-align: left; cursor: pointer; text-decoration: underline; }
42
+ .fa-geo__details summary { cursor: pointer; font-weight: 600; }
43
+
44
+ /* Kartenobjekte (Leaflet-SVG): Farben ausschließlich aus Token. */
45
+ .fa-geo .leaflet-container { font: inherit; background: var(--fa-color-surface-sunken); }
46
+ .fa-geo .leaflet-control-attribution { font-size: var(--fa-font-size-xs); }
47
+ .fa-geo__area { stroke: var(--fa-color-accent); stroke-width: 2; fill: var(--fa-color-accent); fill-opacity: 0.12; }
48
+ .fa-geo__area--selected { stroke-width: 3; fill-opacity: 0.25; }
49
+ .fa-geo__simplified { stroke: var(--fa-color-warning); stroke-width: 2; stroke-dasharray: 6 4; fill: none; }
50
+ .fa-geo__point { stroke: var(--fa-color-surface); stroke-width: 1.5; fill: var(--fa-color-text-muted); fill-opacity: 0.9; }
51
+ .fa-geo__point--hit { fill: var(--fa-color-success); }
52
+ .fa-geo__radius { stroke: var(--fa-color-success); stroke-width: 1.5; stroke-dasharray: 4 3; fill: var(--fa-color-success); fill-opacity: 0.06; }
53
+ .fa-geo__reference { stroke: var(--fa-color-surface); stroke-width: 2; fill: var(--fa-color-danger); fill-opacity: 1; }
54
+ @media (prefers-reduced-motion: reduce) { .fa-geo .leaflet-zoom-anim .leaflet-zoom-animated { transition: none !important; } }
@@ -0,0 +1,38 @@
1
+ /* Kennung prüfen – IdentifierCheck (Vue) und FlowauditIdentifierCheck (React). */
2
+ .fa-ident { display: flex; flex-direction: column; gap: var(--fa-space-4); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-ident__head { display: flex; flex-wrap: wrap; gap: var(--fa-space-3); align-items: flex-end; }
4
+ .fa-ident__columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: var(--fa-space-4); align-items: start; }
5
+ .fa-ident__card { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); min-width: 0; }
6
+ .fa-ident__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
7
+ .fa-ident__form { display: flex; flex-direction: column; gap: var(--fa-space-3); align-items: flex-start; }
8
+ .fa-ident__form > .fa-ident__field { align-self: stretch; }
9
+ .fa-ident__field { display: flex; flex-direction: column; gap: var(--fa-space-1); min-width: 14rem; }
10
+ .fa-ident__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
11
+ .fa-ident__select, .fa-ident__input { min-height: 2.25rem; padding: 0 var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
12
+ .fa-ident__input { font-family: var(--fa-font-mono); }
13
+ .fa-ident__input--short { max-width: 6rem; text-transform: uppercase; }
14
+ .fa-ident__select:focus-visible, .fa-ident__input:focus-visible, .fa-ident__file:focus-visible, .fa-ident__check input:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
15
+ .fa-ident__check { display: inline-flex; gap: var(--fa-space-2); align-items: center; }
16
+ .fa-ident__muted, .fa-ident__source { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
17
+ .fa-ident__source { flex: 1 1 20rem; }
18
+ .fa-ident__source p { margin: var(--fa-space-1) 0 0; overflow-wrap: anywhere; }
19
+ .fa-ident__error { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
20
+ .fa-ident__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
21
+ .fa-ident__result, .fa-ident__batch { display: flex; flex-direction: column; gap: var(--fa-space-2); padding-top: var(--fa-space-3); border-top: 1px solid var(--fa-color-border); }
22
+ .fa-ident__status { display: flex; gap: var(--fa-space-2); align-items: center; margin: 0; font-weight: 600; }
23
+ .fa-ident__badge { display: inline-block; padding: 0 var(--fa-space-2); border-radius: var(--fa-radius-sm); font-size: var(--fa-font-size-xs); font-weight: 600; white-space: nowrap; background: var(--fa-color-surface-sunken); color: var(--fa-color-text-muted); }
24
+ .fa-ident__badge--success { background: var(--fa-color-success-soft); color: var(--fa-color-success); }
25
+ .fa-ident__badge--danger { background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
26
+ .fa-ident__badge--warning { background: var(--fa-color-warning-soft); color: var(--fa-color-warning); }
27
+ .fa-ident__facts { display: grid; grid-template-columns: max-content 1fr; gap: var(--fa-space-1) var(--fa-space-3); margin: 0; }
28
+ .fa-ident__facts dt { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
29
+ .fa-ident__facts dd { margin: 0; overflow-wrap: anywhere; }
30
+ .fa-ident__details summary { cursor: pointer; font-weight: 600; margin-bottom: var(--fa-space-2); }
31
+ .fa-ident__summary { margin: 0; font-weight: 600; }
32
+ .fa-ident__actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-3); align-items: center; justify-content: space-between; }
33
+ .fa-ident__scroll { overflow-x: auto; }
34
+ .fa-ident__table { width: 100%; border-collapse: collapse; font-size: var(--fa-font-size-xs); }
35
+ .fa-ident__table th, .fa-ident__table td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: left; vertical-align: top; }
36
+ .fa-ident__table th { color: var(--fa-color-text-muted); font-weight: 600; }
37
+ .fa-ident__table code { white-space: nowrap; }
38
+ .fa-ident__facts code { overflow-wrap: anywhere; }
@@ -0,0 +1,24 @@
1
+ @import './tokens.css';
2
+ @import './base.css';
3
+ @import './table.css';
4
+ @import './synopsis.css';
5
+ @import './dataprotection.css';
6
+ @import './geo.css';
7
+ @import './risk.css';
8
+ @import './screening.css';
9
+ @import './tabular.css';
10
+ @import './sampling.css';
11
+ @import './benford.css';
12
+ @import './extrapolation.css';
13
+ @import './documents.css';
14
+ @import './reporting.css';
15
+ @import './identifiers.css';
16
+ @import './extraction.css';
17
+ @import './kanban.css';
18
+ @import './dbkanban.css';
19
+ @import './batchchecks.css';
20
+ @import './samplesize.css';
21
+ @import './attributes.css';
22
+ @import './reporttemplates.css';
23
+ @import './runner.css';
24
+ @import './account.css';
@@ -0,0 +1,115 @@
1
+ /* Kanban-Komponenten: nur Designtoken; eigene Variablen mit Präfix --fa-kanban-. */
2
+ .fa-kanban { --fa-kanban-column-width: 17.5rem; min-width: 0; display: flex; flex-direction: column; gap: var(--fa-space-3); min-height: 0; font-family: var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-kanban__banner { display: flex; align-items: center; gap: var(--fa-space-2); padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-warning-soft); color: var(--fa-color-warning); font-size: var(--fa-font-size-sm); }
4
+ .fa-kanban__error { display: flex; align-items: center; gap: var(--fa-space-2); padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); font-size: var(--fa-font-size-sm); }
5
+ .fa-kanban__columns { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(var(--fa-kanban-column-width), 1fr); gap: var(--fa-space-3); overflow-x: auto; padding-bottom: var(--fa-space-2); align-items: start; }
6
+ .fa-kanban__loading { padding: var(--fa-space-6); text-align: center; color: var(--fa-color-text-muted); }
7
+
8
+ .fa-kanban-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fa-space-3); }
9
+ .fa-kanban-toolbar__title { display: flex; align-items: center; gap: var(--fa-space-3); min-width: 0; }
10
+ .fa-kanban-toolbar__heading { margin: 0; font-size: var(--fa-font-size-lg); font-weight: 650; letter-spacing: -0.01em; }
11
+ .fa-kanban-toolbar__rename { border: 0; padding: 0; background: none; font: inherit; color: inherit; cursor: text; border-bottom: 1px dashed transparent; }
12
+ .fa-kanban-toolbar__rename:hover, .fa-kanban-toolbar__rename:focus-visible { border-bottom-color: var(--fa-color-border-strong); outline: none; }
13
+ .fa-kanban-toolbar__title-input { font: 650 var(--fa-font-size-lg) var(--fa-font-sans); border: 0; border-bottom: 2px solid var(--fa-color-accent); background: transparent; color: var(--fa-color-text); outline: none; min-width: 12rem; }
14
+ .fa-kanban-toolbar__progress { display: flex; align-items: center; gap: var(--fa-space-2); font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); font-variant-numeric: tabular-nums; }
15
+ .fa-kanban-toolbar__bar { width: 6rem; height: 6px; border-radius: 999px; background: var(--fa-color-surface-sunken); overflow: hidden; }
16
+ .fa-kanban-toolbar__bar > span { display: block; height: 100%; background: var(--fa-color-success); transition: width var(--fa-transition); }
17
+ .fa-kanban-toolbar__tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-2); }
18
+ .fa-kanban-toolbar__search { width: 13rem; }
19
+ .fa-kanban-select { min-height: 2.25rem; padding: 0 var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: var(--fa-font-size-sm) var(--fa-font-sans); }
20
+ .fa-kanban-select:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-color: var(--fa-color-accent); }
21
+
22
+ .fa-kanban-column { display: flex; flex-direction: column; min-height: 8rem; max-height: calc(100vh - 12rem); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface-sunken); border-top: 3px solid var(--fa-kanban-column-color, var(--fa-color-border-strong)); }
23
+ .fa-kanban-column--over-limit { box-shadow: inset 0 0 0 2px var(--fa-color-danger); }
24
+ .fa-kanban-column__head { display: flex; align-items: center; justify-content: space-between; gap: var(--fa-space-2); padding: var(--fa-space-3) var(--fa-space-3) var(--fa-space-2); }
25
+ .fa-kanban-column__name { display: flex; align-items: center; gap: var(--fa-space-2); margin: 0; font-size: var(--fa-font-size-sm); font-weight: 650; }
26
+ .fa-kanban-column__dot { width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--fa-kanban-column-color); }
27
+ .fa-kanban-column__count { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); font-variant-numeric: tabular-nums; }
28
+ .fa-kanban-column__count.is-full { color: var(--fa-color-warning); }
29
+ .fa-kanban-column__count.is-over { color: var(--fa-color-danger); }
30
+ .fa-kanban-column__list { display: flex; flex-direction: column; gap: var(--fa-space-2); padding: var(--fa-space-1) var(--fa-space-2) var(--fa-space-2); overflow-y: auto; min-height: 3rem; flex: 1; }
31
+ .fa-kanban-column__empty { margin: var(--fa-space-2); padding: var(--fa-space-3); border: 1px dashed var(--fa-color-border-strong); border-radius: var(--fa-radius); text-align: center; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
32
+ .fa-kanban-column__add { margin: 0 var(--fa-space-2) var(--fa-space-2); justify-content: flex-start; }
33
+
34
+ .fa-kanban-card { --fa-kanban-card-bg: var(--fa-color-surface); --fa-kanban-card-fg: var(--fa-color-text); position: relative; display: flex; flex-direction: column; gap: var(--fa-space-2); padding: var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-kanban-card-bg) center / cover; color: var(--fa-kanban-card-fg); border: 1px solid var(--fa-color-border); border-left: 3px solid var(--fa-kanban-priority, var(--fa-color-border-strong)); box-shadow: var(--fa-shadow-sm); cursor: grab; user-select: none; touch-action: manipulation; transition: box-shadow var(--fa-transition), transform var(--fa-transition); }
35
+ .fa-kanban-card:hover { box-shadow: var(--fa-shadow); }
36
+ .fa-kanban-card:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
37
+ .fa-kanban-card--hoch { --fa-kanban-priority: var(--fa-color-danger); }
38
+ .fa-kanban-card--mittel { --fa-kanban-priority: var(--fa-color-warning); }
39
+ .fa-kanban-card--niedrig { --fa-kanban-priority: var(--fa-color-success); }
40
+ .fa-kanban-card--styled { border-color: transparent; }
41
+ .fa-kanban-card--grabbed { box-shadow: var(--fa-focus-ring), var(--fa-shadow-lg); transform: rotate(-1deg); }
42
+ .fa-kanban-card--dragging { opacity: 0.45; border-style: dashed; }
43
+ .fa-kanban-card--ghost { position: fixed; z-index: 1100; pointer-events: none; box-shadow: var(--fa-shadow-lg); transform: rotate(2deg); opacity: 0.95; }
44
+ .fa-kanban-card--done .fa-kanban-card__title { text-decoration: line-through; opacity: 0.6; }
45
+ .fa-kanban-card__head { display: flex; align-items: flex-start; gap: var(--fa-space-2); }
46
+ .fa-kanban-card__title { flex: 1; margin: 0; font-size: var(--fa-font-size-sm); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
47
+ .fa-kanban-card__grip { color: var(--fa-color-text-muted); opacity: 0; touch-action: none; }
48
+ .fa-kanban-card:hover .fa-kanban-card__grip, .fa-kanban-card:focus-visible .fa-kanban-card__grip { opacity: 1; }
49
+ .fa-kanban-card__check { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.125rem; height: 1.125rem; margin-top: 1px; padding: 0; border: 2px solid var(--fa-color-border-strong); border-radius: var(--fa-radius-sm); background: transparent; color: #fff; cursor: pointer; }
50
+ .fa-kanban-card__check[aria-pressed='true'] { background: var(--fa-color-success); border-color: var(--fa-color-success); }
51
+ .fa-kanban-card__check:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
52
+ .fa-kanban-card__badge { flex: none; padding: 0.0625rem var(--fa-space-2); border-radius: 999px; font: 700 0.6875rem / 1.4 var(--fa-font-mono); letter-spacing: 0.02em; }
53
+ .fa-kanban-card__text { margin: 0; font-size: var(--fa-font-size-xs); line-height: 1.45; opacity: 0.8; }
54
+ .fa-kanban-card__chips { display: flex; flex-wrap: wrap; gap: var(--fa-space-1); }
55
+ .fa-kanban-card__tag { display: inline-flex; align-items: center; gap: 2px; padding: 0 var(--fa-space-2); border-radius: var(--fa-radius-sm); background: color-mix(in srgb, currentColor 10%, transparent); font-size: 0.6875rem; font-weight: 600; line-height: 1.6; }
56
+ .fa-kanban-card__tag.is-complete { color: var(--fa-color-success); }
57
+ .fa-kanban-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-3); font-size: 0.6875rem; opacity: 0.85; }
58
+ .fa-kanban-card__meta > span { display: inline-flex; align-items: center; gap: 3px; }
59
+ .fa-kanban-card__priority { font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
60
+ .fa-kanban-card__priority.is-danger { color: var(--fa-color-danger); }
61
+ .fa-kanban-card__priority.is-warning { color: var(--fa-color-warning); }
62
+ .fa-kanban-card__priority.is-success { color: var(--fa-color-success); }
63
+ .fa-kanban-card--styled .fa-kanban-card__priority { color: inherit; }
64
+ .fa-kanban-card__due.is-overdue { color: var(--fa-color-danger); font-weight: 700; }
65
+ .fa-kanban-card__due.is-due_soon { color: var(--fa-color-warning); font-weight: 600; }
66
+ .fa-kanban-card__age { margin-left: auto; }
67
+
68
+ .fa-kanban-detail { display: flex; flex-direction: column; gap: var(--fa-space-4); }
69
+ .fa-kanban-detail__section { display: flex; flex-direction: column; gap: var(--fa-space-2); }
70
+ .fa-kanban-detail__label { font-size: var(--fa-font-size-xs); font-weight: 650; color: var(--fa-color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
71
+ .fa-kanban-detail__row { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); align-items: center; }
72
+ .fa-kanban-detail__textarea { min-height: 6rem; padding: var(--fa-space-2) var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: var(--fa-font-size-sm) / 1.5 var(--fa-font-sans); resize: vertical; }
73
+ .fa-kanban-detail__textarea:focus-visible { outline: none; border-color: var(--fa-color-accent); box-shadow: var(--fa-focus-ring); }
74
+ .fa-kanban-detail__swatch { width: 1.75rem; height: 1.75rem; border-radius: var(--fa-radius-sm); border: 2px solid transparent; cursor: pointer; }
75
+ .fa-kanban-detail__swatch[aria-pressed='true'] { border-color: var(--fa-color-text); box-shadow: var(--fa-focus-ring); }
76
+ .fa-kanban-detail__swatch:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
77
+ .fa-kanban-detail__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--fa-space-1); }
78
+ .fa-kanban-detail__item { display: flex; align-items: center; gap: var(--fa-space-2); padding: var(--fa-space-1) var(--fa-space-2); border-radius: var(--fa-radius-sm); background: var(--fa-color-surface-raised); }
79
+ .fa-kanban-detail__item input[type='text'] { flex: 1; border: 0; background: transparent; color: inherit; font: inherit; }
80
+ .fa-kanban-detail__item.is-done input[type='text'] { text-decoration: line-through; color: var(--fa-color-text-muted); }
81
+ .fa-kanban-detail__meta { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); border-top: 1px solid var(--fa-color-border); padding-top: var(--fa-space-3); }
82
+ .fa-kanban-detail__image { width: 100%; height: 5rem; object-fit: cover; border-radius: var(--fa-radius); }
83
+
84
+ .fa-kanban-settings__row { display: grid; grid-template-columns: auto 1fr 5.5rem auto auto; gap: var(--fa-space-2); align-items: end; padding: var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface-raised); }
85
+ .fa-kanban-settings__colors { display: flex; flex-wrap: wrap; gap: var(--fa-space-1); grid-column: 1 / -1; align-items: center; }
86
+ .fa-kanban-settings__list { display: flex; flex-direction: column; gap: var(--fa-space-2); margin: 0; padding: 0; list-style: none; }
87
+ .fa-kanban-settings__check { display: inline-flex; align-items: center; gap: var(--fa-space-1); font-size: var(--fa-font-size-xs); }
88
+ .fa-kanban-settings__hint { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
89
+
90
+ .fa-kanban-share__results { list-style: none; margin: 0; padding: 0; border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); max-height: 12rem; overflow-y: auto; }
91
+ .fa-kanban-share__results button { width: 100%; text-align: start; padding: var(--fa-space-2) var(--fa-space-3); border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
92
+ .fa-kanban-share__results button:hover, .fa-kanban-share__results button:focus-visible { background: var(--fa-color-accent-soft); outline: none; }
93
+ .fa-kanban-share__person { display: flex; align-items: center; gap: var(--fa-space-3); padding: var(--fa-space-2) 0; border-bottom: 1px solid var(--fa-color-border); }
94
+ .fa-kanban-share__avatar { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--fa-color-accent-soft); color: var(--fa-color-accent); font-size: var(--fa-font-size-xs); font-weight: 700; }
95
+ .fa-kanban-share__name { flex: 1; font-size: var(--fa-font-size-sm); }
96
+
97
+ .fa-kanban-boards { display: flex; flex-direction: column; gap: var(--fa-space-3); font-family: var(--fa-font-sans); color: var(--fa-color-text); }
98
+ .fa-kanban-boards__group { margin: 0; font-size: var(--fa-font-size-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--fa-color-text-muted); }
99
+ .fa-kanban-boards__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--fa-space-1); }
100
+ .fa-kanban-boards__item { display: grid; grid-template-columns: auto 1fr auto; gap: var(--fa-space-2); align-items: center; padding: var(--fa-space-2); border-radius: var(--fa-radius); }
101
+ .fa-kanban-boards__item.is-active { background: var(--fa-color-accent-soft); }
102
+ .fa-kanban-boards__open { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: start; cursor: pointer; }
103
+ .fa-kanban-boards__open:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-radius: var(--fa-radius-sm); }
104
+ .fa-kanban-boards__name { font-size: var(--fa-font-size-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
105
+ .fa-kanban-boards__sub { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
106
+ .fa-kanban-boards__templates { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: var(--fa-space-2); }
107
+ .fa-kanban-boards__template { display: flex; flex-direction: column; gap: 2px; padding: var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: inherit; font: inherit; text-align: start; cursor: pointer; }
108
+ .fa-kanban-boards__template[aria-pressed='true'] { border-color: var(--fa-color-accent); box-shadow: var(--fa-focus-ring); }
109
+
110
+ @media (prefers-reduced-motion: reduce) {
111
+ .fa-kanban-card, .fa-kanban-card--grabbed, .fa-kanban-card--ghost { transform: none; transition: none; }
112
+ }
113
+ .fa-kanban-detail__chip-remove { display: inline-flex; padding: 0; margin-left: 2px; border: 0; background: none; color: inherit; cursor: pointer; opacity: 0.7; }
114
+ .fa-kanban-detail__chip-remove:hover, .fa-kanban-detail__chip-remove:focus-visible { opacity: 1; outline: none; }
115
+ .fa-kanban-detail__meta-inline { margin-left: auto; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
@@ -0,0 +1,22 @@
1
+ /* Tabellenexport (Excel) – ReportExportPanel (Vue) und FlowauditReportExport (React). */
2
+ .fa-report { display: flex; flex-direction: column; gap: var(--fa-space-4); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-report__card { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); min-width: 0; }
4
+ .fa-report__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
5
+ .fa-report__form { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--fa-space-3); align-items: end; }
6
+ .fa-report__field { display: flex; flex-direction: column; gap: var(--fa-space-1); }
7
+ .fa-report__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
8
+ .fa-report__input { min-height: 2.25rem; padding: 0 var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
9
+ .fa-report__input:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
10
+ .fa-report__actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); }
11
+ .fa-report__muted, .fa-report__source { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
12
+ .fa-report__source p { margin: var(--fa-space-1) 0 0; overflow-wrap: anywhere; }
13
+ .fa-report__error { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-danger); }
14
+ .fa-report__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
15
+ .fa-report__notice { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-left: 3px solid var(--fa-color-accent); background: var(--fa-color-accent-soft); border-radius: var(--fa-radius-sm); }
16
+ .fa-report__sheet { display: flex; flex-direction: column; gap: var(--fa-space-2); }
17
+ .fa-report__scroll { overflow-x: auto; }
18
+ .fa-report__table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; }
19
+ .fa-report__table caption { text-align: left; font-weight: 600; padding-bottom: var(--fa-space-1); }
20
+ .fa-report__table th, .fa-report__table td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: left; white-space: nowrap; }
21
+ .fa-report__table th { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
22
+ .fa-report__table code { font-family: var(--fa-font-mono, monospace); }
@@ -0,0 +1,21 @@
1
+ /* Berichtsvorlagen – ReportTemplates (Vue) und FlowauditReportTemplates (React). Farben nur aus --fa-*-Variablen. */
2
+ .fa-reporttemplates { display: flex; flex-direction: column; gap: var(--fa-space-4); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-reporttemplates__card { display: flex; flex-direction: column; gap: var(--fa-space-3); padding: var(--fa-space-4); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius-lg); background: var(--fa-color-surface); box-shadow: var(--fa-shadow-sm); min-width: 0; }
4
+ .fa-reporttemplates__heading { margin: 0; font-size: var(--fa-font-size-md); font-weight: 600; }
5
+ .fa-reporttemplates__form { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: var(--fa-space-3); align-items: end; }
6
+ .fa-reporttemplates__field { display: flex; flex-direction: column; gap: var(--fa-space-1); }
7
+ .fa-reporttemplates__label { font-size: var(--fa-font-size-xs); font-weight: 600; color: var(--fa-color-text-muted); }
8
+ .fa-reporttemplates__input { min-height: 2.25rem; padding: 0 var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
9
+ .fa-reporttemplates__input:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
10
+ .fa-reporttemplates__actions { display: flex; flex-wrap: wrap; gap: var(--fa-space-2); }
11
+ .fa-reporttemplates__muted { margin: 0; color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
12
+ .fa-reporttemplates__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
13
+ .fa-reporttemplates__notice { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-left: 3px solid var(--fa-color-accent); background: var(--fa-color-accent-soft); border-radius: var(--fa-radius-sm); }
14
+ .fa-reporttemplates__scroll { overflow-x: auto; }
15
+ .fa-reporttemplates__table { border-collapse: collapse; width: 100%; }
16
+ .fa-reporttemplates__table th, .fa-reporttemplates__table td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: left; vertical-align: top; }
17
+ .fa-reporttemplates__table th { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
18
+ .fa-reporttemplates__table code, .fa-reporttemplates__issues code { font-family: var(--fa-font-mono, monospace); }
19
+ .fa-reporttemplates__blocks, .fa-reporttemplates__issues { margin: 0; padding-left: var(--fa-space-4); display: flex; flex-direction: column; gap: var(--fa-space-1); }
20
+ .fa-reporttemplates__issues { color: var(--fa-color-danger); }
21
+ .fa-reporttemplates__frame { width: 100%; min-height: 24rem; border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: #fff; }
@@ -0,0 +1,92 @@
1
+ /* Risiko-Merkmale (<flowaudit-risk-flags>): Vue und React. */
2
+
3
+ /* RiskFlags */
4
+ .fa-risk { display: grid; gap: var(--fa-space-4); font-family: var(--fa-font-sans); color: var(--fa-color-text); }
5
+ .fa-risk__head h2 { margin: 0; font-size: var(--fa-font-size-lg); }
6
+ .fa-risk__profile { margin: var(--fa-space-1) 0 0; font-size: var(--fa-font-size-sm); color: var(--fa-color-text-muted); }
7
+ .fa-risk__hint { margin: var(--fa-space-2) 0 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius-sm); background: var(--fa-color-warning-soft); color: var(--fa-color-warning); font-size: var(--fa-font-size-sm); font-weight: 600; }
8
+ .fa-risk__body { display: grid; gap: var(--fa-space-4); align-items: start; }
9
+ @media (min-width: 72rem) { .fa-risk__body { grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem); } }
10
+ .fa-risk__profile-info summary { cursor: pointer; font-weight: 600; color: var(--fa-color-accent); padding: var(--fa-space-2) 0; }
11
+ .fa-risk__profile-info summary:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-radius: var(--fa-radius-sm); }
12
+ @media (prefers-reduced-motion: reduce) { .fa-risk * { transition: none !important; } }
13
+
14
+ /* RiskFlagSummary */
15
+ .fa-risk-summary { display: grid; gap: var(--fa-space-3); }
16
+ .fa-risk-summary__totals { display: flex; flex-wrap: wrap; gap: var(--fa-space-4); margin: 0; padding: 0; list-style: none; font-size: var(--fa-font-size-sm); color: var(--fa-color-text); }
17
+ .fa-risk-summary__totals li { display: inline-flex; align-items: center; gap: var(--fa-space-1); }
18
+ .fa-risk-summary__code { padding: 0; border: 0; background: none; color: var(--fa-color-accent); font: 600 var(--fa-font-size-sm) var(--fa-font-mono); cursor: pointer; text-decoration: underline dotted; }
19
+ .fa-risk-summary__code:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-radius: var(--fa-radius-sm); }
20
+ .fa-risk-summary__skipped { display: block; margin-top: var(--fa-space-1); font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
21
+ .fa-risk-summary__count { display: inline-flex; align-items: center; gap: var(--fa-space-1); white-space: nowrap; }
22
+ .fa-risk-summary__bar { display: inline-block; width: 4rem; height: 0.4rem; margin-inline-end: var(--fa-space-2); border-radius: 999px; background: var(--fa-color-surface-sunken); vertical-align: middle; overflow: hidden; }
23
+ .fa-risk-summary__bar span { display: block; height: 100%; background: var(--fa-color-danger); }
24
+ .fa-risk-summary__undetermined { display: inline-grid; justify-items: end; gap: 2px; }
25
+ .fa-risk-summary__undetermined small { font-size: var(--fa-font-size-xs); color: var(--fa-color-warning); }
26
+ .fa-risk-summary__dataset h3 { margin: 0 0 var(--fa-space-2); font-size: var(--fa-font-size-md); }
27
+ .fa-risk-summary__dataset p { margin: 0; font-size: var(--fa-font-size-sm); }
28
+
29
+ /* RiskFlagFilter */
30
+ .fa-risk-filter { display: grid; grid-template-columns: auto minmax(10rem, 1fr); gap: var(--fa-space-2) var(--fa-space-3); align-items: center; font-size: var(--fa-font-size-sm); color: var(--fa-color-text); }
31
+ .fa-risk-filter label { color: var(--fa-color-text-muted); font-weight: 600; }
32
+ .fa-risk-filter select, .fa-risk-filter input { min-width: 0; padding: var(--fa-space-1) var(--fa-space-2); border: 1px solid var(--fa-color-border-strong); border-radius: var(--fa-radius-sm); background: var(--fa-color-surface); color: var(--fa-color-text); font: inherit; }
33
+ .fa-risk-filter select:focus-visible, .fa-risk-filter input:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
34
+ .fa-risk-filter__result { grid-column: 1 / -1; color: var(--fa-color-text-muted); }
35
+ @media (min-width: 60rem) { .fa-risk-filter { grid-template-columns: auto minmax(12rem, 1fr) auto minmax(10rem, 14rem) auto minmax(10rem, 1fr); } }
36
+
37
+ /* RiskFlagTable */
38
+ .fa-risk-table .fa-table td { padding-block: var(--fa-space-1); }
39
+ .fa-risk-table__record { font-family: var(--fa-font-mono); font-size: var(--fa-font-size-sm); }
40
+ .fa-risk-table__record[aria-current='true'] { font-weight: 700; color: var(--fa-color-accent); }
41
+ .fa-risk-table__record[aria-current='true']::before { content: '▸ '; }
42
+
43
+ /* RiskFlagState */
44
+ .fa-risk-state { display: inline-flex; align-items: center; gap: var(--fa-space-1); padding: 0.0625rem var(--fa-space-2); border-radius: 999px; border: 1px solid transparent; font: 600 var(--fa-font-size-xs) / 1.3 var(--fa-font-sans); white-space: nowrap; }
45
+ .fa-risk-state__icon { display: inline-grid; place-items: center; width: 1.1em; height: 1.1em; font-weight: 700; }
46
+ .fa-risk-state--compact { padding: 0.0625rem; min-width: 1.6em; justify-content: center; }
47
+ .fa-risk-state--danger { background: var(--fa-color-danger-soft); color: var(--fa-color-danger); border-color: var(--fa-color-danger); }
48
+ .fa-risk-state--warning { background: var(--fa-color-warning-soft); color: var(--fa-color-warning); border: 1px dashed var(--fa-color-warning); }
49
+ .fa-risk-state--neutral { color: var(--fa-color-text-muted); }
50
+ .fa-risk-state--skipped { border: 1px dotted var(--fa-color-border-strong); }
51
+
52
+ /* RiskRecordDetail */
53
+ .fa-risk-detail { display: grid; gap: var(--fa-space-3); align-content: start; }
54
+ .fa-risk-detail h3 { margin: 0; font-size: var(--fa-font-size-lg); color: var(--fa-color-text); }
55
+ .fa-risk-detail__empty { margin: 0; padding: var(--fa-space-4); border: 1px dashed var(--fa-color-border-strong); border-radius: var(--fa-radius); color: var(--fa-color-text-muted); font-size: var(--fa-font-size-sm); }
56
+ .fa-risk-detail__assessment { display: grid; grid-template-columns: max-content 1fr; gap: 2px var(--fa-space-3); margin: 0; font-size: var(--fa-font-size-sm); }
57
+ .fa-risk-detail__assessment dt { color: var(--fa-color-text-muted); }
58
+ .fa-risk-detail__assessment dd { margin: 0; }
59
+
60
+ /* RiskFlagCard */
61
+ .fa-risk-card { display: grid; gap: var(--fa-space-2); padding: var(--fa-space-3) var(--fa-space-4); border: 1px solid var(--fa-color-border); border-inline-start: 4px solid var(--fa-color-danger); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: var(--fa-color-text); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); }
62
+ .fa-risk-card--undetermined { border-style: dashed; border-inline-start: 4px dashed var(--fa-color-warning); background: var(--fa-color-surface-raised); }
63
+ .fa-risk-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-2); }
64
+ .fa-risk-card__head h4 { flex: 1 1 16rem; margin: 0; font-size: var(--fa-font-size-md); }
65
+ .fa-risk-card code { font-family: var(--fa-font-mono); font-size: 0.95em; }
66
+ .fa-risk-card__profile { margin: 0; font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
67
+ .fa-risk-card__reason, .fa-risk-card__note { margin: 0; }
68
+ .fa-risk-card__note { color: var(--fa-color-text-muted); }
69
+ .fa-risk-card__grid { display: grid; gap: var(--fa-space-3); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
70
+ .fa-risk-card__pairs { border-collapse: collapse; width: 100%; }
71
+ .fa-risk-card__pairs caption { text-align: start; font-weight: 600; padding-bottom: var(--fa-space-1); }
72
+ .fa-risk-card__pairs th, .fa-risk-card__pairs td { padding: 2px var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: start; vertical-align: top; }
73
+ .fa-risk-card__pairs thead th { font-size: var(--fa-font-size-xs); color: var(--fa-color-text-muted); }
74
+ .fa-risk-card__pairs tbody th { font-weight: 400; color: var(--fa-color-text-muted); }
75
+ .fa-risk-card__empty { color: var(--fa-color-warning); font-style: italic; font-weight: 600; }
76
+ .fa-risk-card__more summary { cursor: pointer; color: var(--fa-color-accent); }
77
+ .fa-risk-card__more summary:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-radius: var(--fa-radius-sm); }
78
+ .fa-risk-card__more dl { display: grid; grid-template-columns: max-content 1fr; gap: 2px var(--fa-space-3); margin: var(--fa-space-2) 0 0; }
79
+ .fa-risk-card__more dt { color: var(--fa-color-text-muted); }
80
+ .fa-risk-card__more dd { margin: 0; word-break: break-word; }
81
+
82
+ /* RiskProfileInfo */
83
+ .fa-risk-profile { display: grid; gap: var(--fa-space-3); font-size: var(--fa-font-size-sm); color: var(--fa-color-text); }
84
+ .fa-risk-profile__identity { display: grid; grid-template-columns: max-content 1fr; gap: var(--fa-space-1) var(--fa-space-3); margin: 0; }
85
+ .fa-risk-profile__identity dt { color: var(--fa-color-text-muted); font-weight: 600; }
86
+ .fa-risk-profile__identity dd { margin: 0; min-width: 0; }
87
+ .fa-risk-profile__hash { word-break: break-all; font-size: var(--fa-font-size-xs); }
88
+ .fa-risk-profile__hint { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius-sm); background: var(--fa-color-warning-soft); color: var(--fa-color-warning); font-weight: 600; }
89
+ .fa-risk-profile__legal { margin: 0; color: var(--fa-color-text-muted); }
90
+ .fa-risk-profile h4 { margin: 0 0 var(--fa-space-1); }
91
+ .fa-risk-profile__chip { display: inline-block; margin: 0 var(--fa-space-1) 2px 0; padding: 0 var(--fa-space-1); border-radius: var(--fa-radius-sm); background: var(--fa-color-surface-sunken); font-family: var(--fa-font-mono); font-size: var(--fa-font-size-xs); }
92
+ .fa-risk-profile__param, .fa-risk-profile__use { display: block; font-size: var(--fa-font-size-xs); }
@@ -0,0 +1,54 @@
1
+ /* Runner-Konsole – RunnerConsole (Vue) und FlowauditRunnerConsole (React). Farben nur aus --fa-*-Variablen. */
2
+ .fa-runner { display: flex; flex-direction: column; gap: var(--fa-space-3); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-runner__kopf { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--fa-space-2); }
4
+ .fa-runner__titel { margin: 0; font-size: var(--fa-font-size-lg); }
5
+ .fa-runner__meta { margin: 0; color: var(--fa-color-text-muted); }
6
+ .fa-runner__reiter { display: flex; flex-wrap: wrap; gap: var(--fa-space-1); border-bottom: 1px solid var(--fa-color-border); }
7
+ .fa-runner__tab { padding: var(--fa-space-2) var(--fa-space-3); border: 0; border-bottom: 2px solid transparent; background: none; color: var(--fa-color-text-muted); font: inherit; cursor: pointer; }
8
+ .fa-runner__tab[aria-selected="true"] { border-bottom-color: var(--fa-color-accent); color: var(--fa-color-text); font-weight: 600; }
9
+ .fa-runner__tab:focus-visible, .fa-runner__panel:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); border-radius: var(--fa-radius-sm); }
10
+ .fa-runner__panel { display: flex; flex-direction: column; gap: var(--fa-space-3); }
11
+ .fa-runner__zwischen { display: flex; align-items: center; gap: var(--fa-space-2); margin: 0; font-size: var(--fa-font-size-md); }
12
+ .fa-runner__muted { margin: 0; color: var(--fa-color-text-muted); }
13
+ .fa-runner__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
14
+ .fa-runner__meldung { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); }
15
+ .fa-runner__meldung--success { background: var(--fa-color-success-soft); color: var(--fa-color-success); }
16
+ .fa-runner__meldung--warning { background: var(--fa-color-warning-soft); color: var(--fa-color-warning); }
17
+ .fa-runner__hinweise { display: flex; flex-direction: column; gap: var(--fa-space-1); margin: 0; padding: 0; list-style: none; }
18
+ .fa-runner__hinweis { padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); border-left: 3px solid var(--fa-color-border-strong); background: var(--fa-color-surface-sunken); }
19
+ .fa-runner__hinweis--danger { border-left-color: var(--fa-color-danger); background: var(--fa-color-danger-soft); }
20
+ .fa-runner__hinweis--warning { border-left-color: var(--fa-color-warning); background: var(--fa-color-warning-soft); }
21
+ .fa-runner__hinweis--info { border-left-color: var(--fa-color-accent); background: var(--fa-color-accent-soft); }
22
+ .fa-runner__daten { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: var(--fa-space-2); margin: 0; }
23
+ .fa-runner__datum { padding: var(--fa-space-2) var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); }
24
+ .fa-runner__datum dt { color: var(--fa-color-text-muted); font-size: var(--fa-font-size-xs); }
25
+ .fa-runner__datum dd { margin: 0; overflow-wrap: anywhere; }
26
+ .fa-runner__tabelle { width: 100%; border-collapse: collapse; }
27
+ .fa-runner__tabelle caption { padding-bottom: var(--fa-space-1); text-align: start; font-weight: 600; }
28
+ .fa-runner__tabelle th, .fa-runner__tabelle td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: start; vertical-align: top; }
29
+ .fa-runner__tabelle thead th { color: var(--fa-color-text-muted); font-weight: 600; }
30
+ .fa-runner__formular { display: flex; flex-direction: column; gap: var(--fa-space-3); }
31
+ .fa-runner__abschnitt { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: var(--fa-space-2) var(--fa-space-4); margin: 0; padding: var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); }
32
+ .fa-runner__abschnitt legend { padding: 0 var(--fa-space-1); font-weight: 600; }
33
+ .fa-runner__feld { display: flex; flex-direction: column; gap: var(--fa-space-1); }
34
+ .fa-runner__feld--schalter { flex-direction: row; align-items: center; }
35
+ .fa-runner__eingabe { padding: var(--fa-space-1) var(--fa-space-2); border: 1px solid var(--fa-color-border-strong); border-radius: var(--fa-radius-sm); background: var(--fa-color-surface); color: inherit; font: inherit; }
36
+ .fa-runner__eingabe:focus-visible, .fa-runner__feld input[type="checkbox"]:focus-visible { outline: none; box-shadow: var(--fa-focus-ring); }
37
+ .fa-runner__eingabe[aria-invalid="true"] { border-color: var(--fa-color-danger); }
38
+ .fa-runner__eingabe:disabled { opacity: 0.7; }
39
+ .fa-runner__feldfehler { margin: 0; color: var(--fa-color-danger); font-size: var(--fa-font-size-xs); }
40
+ .fa-runner__probleme { margin: 0; padding: var(--fa-space-2) var(--fa-space-3) var(--fa-space-2) var(--fa-space-6); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }
41
+ .fa-runner__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-2); }
42
+ .fa-runner__vorschau, .fa-runner__konflikt { display: flex; flex-direction: column; gap: var(--fa-space-2); padding: var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface-raised); }
43
+ .fa-runner__konflikt { border-color: var(--fa-color-warning); }
44
+ .fa-runner__diff summary { cursor: pointer; font-family: var(--fa-font-mono); }
45
+ .fa-runner__diff pre, .fa-runner__befehl { margin: 0; padding: var(--fa-space-2); overflow-x: auto; border-radius: var(--fa-radius-sm); background: var(--fa-color-surface-sunken); font: var(--fa-font-size-xs) / var(--fa-line-height) var(--fa-font-mono); }
46
+ .fa-runner__befehl { user-select: all; }
47
+ .fa-runner__schritte { margin: 0; padding-left: var(--fa-space-5); font-family: var(--fa-font-mono); font-size: var(--fa-font-size-xs); }
48
+ .fa-runner__prioritaeten { display: flex; flex-direction: column; gap: var(--fa-space-1); margin: 0; padding: 0; list-style: none; }
49
+ .fa-runner__prioritaet { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fa-space-2) var(--fa-space-3); padding: var(--fa-space-2) var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); }
50
+ .fa-runner__rang { min-width: 4.5rem; color: var(--fa-color-text-muted); }
51
+ .fa-runner__klasse { flex: 1 1 8rem; }
52
+ .fa-runner__schmal { width: 6rem; }
53
+ .fa-runner__klassenname { grid-column: 1 / -1; }
54
+ .fa-runner__klassenname .fa-runner__eingabe { flex: 1 1 12rem; }
@@ -0,0 +1,27 @@
1
+ /* SampleSizePlanner (Vue) und FlowauditSampleSizePlanner (React). Farben nur aus --fa-*-Variablen. */
2
+ .fa-samplesize { display: flex; flex-direction: column; gap: var(--fa-space-3); font: var(--fa-font-size-sm) / var(--fa-line-height) var(--fa-font-sans); color: var(--fa-color-text); }
3
+ .fa-samplesize__form, .fa-samplesize__result { display: flex; flex-direction: column; gap: var(--fa-space-3); }
4
+ .fa-samplesize__fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: var(--fa-space-3); }
5
+ .fa-samplesize__field { display: flex; flex-direction: column; gap: var(--fa-space-1); }
6
+ .fa-samplesize__label { font-weight: 600; }
7
+ .fa-samplesize__input, .fa-samplesize__select { padding: var(--fa-space-1) var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: inherit; font: inherit; }
8
+ .fa-samplesize__input:focus-visible, .fa-samplesize__select:focus-visible, .fa-samplesize__submit:focus-visible, .fa-samplesize__add:focus-visible, .fa-samplesize__remove:focus-visible { outline: none; border-color: var(--fa-color-accent); box-shadow: var(--fa-focus-ring); }
9
+ .fa-samplesize__input[aria-invalid='true'], .fa-samplesize__select[aria-invalid='true'] { border-color: var(--fa-color-danger); }
10
+ .fa-samplesize__error { color: var(--fa-color-danger); }
11
+ .fa-samplesize__check { display: flex; gap: var(--fa-space-2); align-items: center; }
12
+ .fa-samplesize__strata { margin: 0; padding: var(--fa-space-2); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); }
13
+ .fa-samplesize__table { width: 100%; border-collapse: collapse; }
14
+ .fa-samplesize__table caption { text-align: start; font-weight: 600; padding-block: var(--fa-space-1); }
15
+ .fa-samplesize__table th, .fa-samplesize__table td { padding: var(--fa-space-1) var(--fa-space-2); border-bottom: 1px solid var(--fa-color-border); text-align: start; vertical-align: top; }
16
+ .fa-samplesize__submit, .fa-samplesize__add, .fa-samplesize__remove { align-self: flex-start; padding: var(--fa-space-2) var(--fa-space-3); border: 1px solid var(--fa-color-border); border-radius: var(--fa-radius); background: var(--fa-color-surface); color: inherit; font: inherit; cursor: pointer; }
17
+ .fa-samplesize__submit { border-color: var(--fa-color-accent); }
18
+ .fa-samplesize__submit:disabled { cursor: not-allowed; opacity: 0.6; }
19
+ .fa-samplesize__source code { font-family: var(--fa-font-mono, monospace); }
20
+ .fa-samplesize__heading { margin: 0; font-size: var(--fa-font-size-md, 1rem); }
21
+ .fa-samplesize__badge { margin-inline-start: var(--fa-space-2); padding: 0 var(--fa-space-2); border: 1px solid var(--fa-color-accent); border-radius: var(--fa-radius); font-size: var(--fa-font-size-sm); font-weight: 400; }
22
+ .fa-samplesize__summary { display: flex; flex-wrap: wrap; gap: var(--fa-space-4); margin: 0; }
23
+ .fa-samplesize__summary dt { color: var(--fa-color-text-muted); }
24
+ .fa-samplesize__summary dd { margin: 0; font-size: var(--fa-font-size-lg, 1.25rem); font-weight: 600; }
25
+ .fa-samplesize__warnings { margin: 0; padding-inline-start: var(--fa-space-4); color: var(--fa-color-text-muted); }
26
+ .fa-samplesize__muted { margin: 0; color: var(--fa-color-text-muted); }
27
+ .fa-samplesize__failure { margin: 0; padding: var(--fa-space-2) var(--fa-space-3); border-radius: var(--fa-radius); background: var(--fa-color-danger-soft); color: var(--fa-color-danger); }