@miragon/context-maps-renderer 0.5.0 → 0.6.1

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 (42) hide show
  1. package/README.md +49 -27
  2. package/dist/connect-handles/CmConnectHandles.d.ts +3 -1
  3. package/dist/connect-handles/CmConnectHandles.d.ts.map +1 -1
  4. package/dist/context-maps.css +1 -1
  5. package/dist/context-pad/CmContextPadProvider.d.ts +4 -2
  6. package/dist/context-pad/CmContextPadProvider.d.ts.map +1 -1
  7. package/dist/draw/ContextMapsRenderer.d.ts +5 -3
  8. package/dist/draw/ContextMapsRenderer.d.ts.map +1 -1
  9. package/dist/draw/contextColours.d.ts +22 -0
  10. package/dist/draw/contextColours.d.ts.map +1 -0
  11. package/dist/draw/contextLayout.d.ts +1 -1
  12. package/dist/draw/contextLayout.d.ts.map +1 -1
  13. package/dist/draw/lucide.d.ts +10 -3
  14. package/dist/draw/lucide.d.ts.map +1 -1
  15. package/dist/draw/markup.d.ts +20 -0
  16. package/dist/draw/markup.d.ts.map +1 -0
  17. package/dist/draw/palette-icons.d.ts +4 -1
  18. package/dist/draw/palette-icons.d.ts.map +1 -1
  19. package/dist/draw/relationshipColours.d.ts +17 -0
  20. package/dist/draw/relationshipColours.d.ts.map +1 -0
  21. package/dist/draw/styles.d.ts +12 -6
  22. package/dist/draw/styles.d.ts.map +1 -1
  23. package/dist/draw/subdomainGlyphs.d.ts +12 -0
  24. package/dist/draw/subdomainGlyphs.d.ts.map +1 -0
  25. package/dist/index.js +746 -618
  26. package/dist/index.js.map +1 -1
  27. package/dist/keyboard/CmKeyboard.d.ts.map +1 -1
  28. package/dist/keyboard/canvasFocus.d.ts +11 -0
  29. package/dist/keyboard/canvasFocus.d.ts.map +1 -0
  30. package/dist/keyboard/index.d.ts +1 -1
  31. package/dist/keyboard/index.d.ts.map +1 -1
  32. package/dist/label-editing/CmLabelEditing.d.ts.map +1 -1
  33. package/dist/legend/CmLegend.d.ts +0 -4
  34. package/dist/legend/CmLegend.d.ts.map +1 -1
  35. package/dist/palette/CmPaletteProvider.d.ts.map +1 -1
  36. package/dist/theme/index.d.ts +0 -1
  37. package/dist/theme/index.d.ts.map +1 -1
  38. package/dist/theme/palette.d.ts +4 -0
  39. package/dist/theme/palette.d.ts.map +1 -1
  40. package/package.json +7 -7
  41. package/dist/theme/sizes.d.ts +0 -13
  42. package/dist/theme/sizes.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @miragon/context-maps-renderer
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@miragon/context-maps-renderer)](https://www.npmjs.com/package/@miragon/context-maps-renderer)
4
- [![License: MIT](https://img.shields.io/github/license/Miragon/context-maps-modeler)](https://github.com/Miragon/context-maps-modeler/blob/main/LICENSE)
4
+ [![License: MIT](https://img.shields.io/github/license/Miragon/modeler-suite)](https://github.com/Miragon/modeler-suite/blob/main/modelers/context-maps/LICENSE)
5
5
 
6
6
  The **browser layer** of the [Context Maps Modeler](../../README.md): a framework-agnostic viewer
7
7
  and full editor for strategic Domain-Driven Design [Context Maps](https://contextmapper.org/)
@@ -9,7 +9,7 @@ diagrams, built on [diagram-js](https://github.com/bpmn-io/diagram-js) (MIT).
9
9
 
10
10
  It renders the canonical document from
11
11
  [`@miragon/context-maps-schema-model`](../schema-model) and gives you palette, move,
12
- connect-by-relationship, context pad, inline label editing and undo/redo — with no UI framework
12
+ connect-by-relationship, context pad, inline label editing and undo/redo, with no UI framework
13
13
  required. Mount it into any `<div>`; the web app and the VS Code extension both wrap this
14
14
  exact package. It implements the collaborative-modeler contract of
15
15
  [`@miragon/modeler-api`](https://www.npmjs.com/package/@miragon/modeler-api), and it hands a chrome
@@ -56,12 +56,12 @@ modeler.redo();
56
56
  ```
57
57
 
58
58
  > **The CSS is required.** Import `@miragon/context-maps-renderer/assets/context-maps.css`
59
- > (it also pulls in `diagram-js`'s own stylesheet) — without it the palette, context pad and label
59
+ > (it also pulls in `diagram-js`'s own stylesheet). Without it the palette, context pad and label
60
60
  > editor are unstyled.
61
61
 
62
62
  ## API
63
63
 
64
- ### Constructor — `CmViewerOptions`
64
+ ### Constructor: `CmViewerOptions`
65
65
 
66
66
  ```ts
67
67
  new Modeler({
@@ -102,7 +102,7 @@ new Modeler({
102
102
  | `exportText()` | `string` | The canonical `.cm` text (ends in a line break). |
103
103
  | `saveSVG()` | `{ svg: string }` | Self-contained SVG snapshot (fitted viewBox). |
104
104
  | `contentBounds()` | `ElementBounds` or `undefined` | The content's box for a host's fit (see below). |
105
- | `setMeta(partial)` / `getMeta()` | — / `RootBusinessObject` | Rename the map (an undoable command) / read it. |
105
+ | `setMeta(partial)` / `getMeta()` | `void` / `RootBusinessObject` | Rename the map (an undoable command) / read it. |
106
106
  | `attachTo(el)` / `detach()` | `void` | Move the canvas in/out of the DOM (keeps state). |
107
107
  | `clear()` / `destroy()` | `void` | Empty the canvas / tear it down. |
108
108
  | `on(event, cb)` / `off(event, cb)` | `void` | Subscribe to diagram-js events. |
@@ -164,9 +164,9 @@ What a chrome around the canvas shows, typed structurally (a `@miragon/modeler-s
164
164
 
165
165
  - `renderLegend(body, { tooltip })` renders the notation legend (subdomain types, integration roles,
166
166
  relationship patterns) into a chrome's legend card, each row explained in the chrome's tooltip.
167
- Hosts without such a chrome add `cmLegendModule`, a legend card on the canvas. Like the shell's,
168
- it starts open, but closed on a canvas at most 440px wide or 820px high (guide §5.10); the
169
- `cmLegend` service's `setOpen(open)` restores a state the host stored.
167
+ Hosts without such a chrome add `cmLegendModule`, a legend card on the canvas. It starts closed
168
+ on every canvas size, so it never covers the map unasked; the user opens it with its button, and
169
+ the `cmLegend` service's `setOpen(open)` restores a state the host stored.
170
170
  - `contextMapMenu({ exports, showKeyboardShortcuts, editTitle })` builds the Model group's "Map
171
171
  title…" (with `editTitle`), the Export group (PNG, SVG, JSON, CML; an export's `shortcut` shows as
172
172
  its chip) and the Help group's "Keyboard shortcuts…". `createShortcutsDialog(chrome, { fileKeys })`
@@ -179,16 +179,29 @@ What a chrome around the canvas shows, typed structurally (a `@miragon/modeler-s
179
179
  - `cmReadOnly` (part of the `Modeler`) locks every edit while a host cannot take edits from the
180
180
  canvas, an invalid file in an IDE: no context pad, move, create, connect, delete or label editor;
181
181
  selection, zoom, pan, select all and export stay.
182
- - The keyboard listens on the document but only acts on keys aimed at the canvas: keys someone
183
- already handled (`defaultPrevented`) and keys from outside the canvas container pass. `Cmd/Ctrl+A`
184
- selects every element.
182
+ - The keyboard acts only while the canvas itself has the focus, as diagram-js 15's own keyboard
183
+ does: on keys whose target is the canvas `<svg>` or inside it. Keys with nothing focused
184
+ (`<body>`), on a host's chrome, on the palette, the context pad or an editor in the canvas
185
+ container pass, and so do keys someone already handled (`defaultPrevented`) and keys of an IME
186
+ composition. `Cmd/Ctrl+A` selects every element. A pointer on a palette entry, on the context
187
+ pad's connect, swap ends or delete, or on a connect handle of `cmConnectHandlesModule` hands the
188
+ focus to the canvas, so Delete and `Cmd/Ctrl+Z` act at once; Enter or Space leave it on the entry,
189
+ unless the entry goes away with its action. Append opens the subdomain-type menu, which takes the
190
+ focus and hands it to the canvas when it closes.
191
+ - A host that hides the canvas without destroying the modeler makes its container `inert` or
192
+ `display: none`, not only transparent: a hidden or inert canvas cannot hold the focus, so no key
193
+ reaches it. There is no separate switch to pause the keyboard.
185
194
 
186
195
  ### Helpers & types
187
196
 
188
197
  - **Type guards:** `isCmElement`, `isCmContext`, `isCmRelationship`.
189
198
  - **Runtime element types:** `CmContext`, `CmRelationship`, `CmElement`.
190
- - **Palette icon generators:** `contextIconSvg(type)`, `relationshipIconSvg(pattern)` —
191
- WYSIWYG SVG glyphs matching what the canvas draws.
199
+ - **Palette icon generators:** `contextIconSvg(type)`, `subdomainIconSvg(type, size)`,
200
+ `roleChipSvg(role)`, `relationshipIconSvg(pattern, size)`: WYSIWYG SVG glyphs matching what the
201
+ canvas draws, as markup for `innerHTML`. They take values read from an unvalidated document: an
202
+ unknown type draws the unclassified box (`contextIconSvg`) or the neutral dotted circle
203
+ (`subdomainIconSvg`), an unknown pattern the upstream-downstream line, a size that is not a finite
204
+ positive number the default size, and a role becomes escaped text.
192
205
  - **Other:** `CmViewerOptions`, `ImportWarning`, `RootBusinessObject`, `ROOT_ID`, `saveSVG`.
193
206
 
194
207
  ## How it's built
@@ -202,9 +215,9 @@ viewer via `additionalModules`:
202
215
  | `cmModelModule` | Element factory with notation defaults (`CmElementFactory`). |
203
216
  | `cmDrawModule` | Custom SVG rendering of contexts and relationships (`ContextMapsRenderer`). |
204
217
  | `ioModule` | Document ↔ canvas bridge (`CmImporter`, `CmExporter`, `saveSVG`). |
205
- | `cmModelingModule` | High-level mutations — label, subdomain type, relationship pattern, roles, colours. |
218
+ | `cmModelingModule` | High-level mutations: label, subdomain type, relationship pattern, roles, colours. |
206
219
  | `cmRulesModule` | Editing rules (what can move / be created / connected; no resize). |
207
- | `cmBehaviorsModule` | Keeps the model **flat** — shapes never nest. |
220
+ | `cmBehaviorsModule` | Keeps the model **flat**: shapes never nest. |
208
221
  | `cmPaletteModule` | The tool palette: lasso tool + create contexts (drag, click, or Enter/Space into the free rectangle). |
209
222
  | `cmConnectHandlesModule` | Opt-in (not in the default `Modeler`): four outward connect arrows around the selected context. |
210
223
  | `cmContextPadModule` | Per-element quick actions: append a connected context, connect, subdomain-type / pattern / integration-role menus, owning team, description, in-place rename, swap ends, delete. |
@@ -212,7 +225,7 @@ viewer via `additionalModules`:
212
225
  | `cmHoverTooltipModule` | An element's own data (description, team, technology) on hover, inside the canvas container. |
213
226
  | `cmReadOnlyModule` | The canvas lock (`cmReadOnly`) every editing feature consults. |
214
227
  | `cmLabelEditingModule` | In-place direct name editing (double-click / pad), bpmn.io style. |
215
- | `cmKeyboardModule` | Select all / undo / redo / delete for keys aimed at the canvas (`undoRedoKeys` option). |
228
+ | `cmKeyboardModule` | Select all / undo / redo / delete while the canvas has the focus (`undoRedoKeys` option). |
216
229
  | `cmZOrderModule` | Fixed stacking order (relationships behind, contexts on top). |
217
230
 
218
231
  ### Rendering
@@ -223,7 +236,12 @@ coloured by subdomain type (core / supporting / generic) with their glyphs; and
223
236
  as lines styled per context-mapping pattern (partnership, shared kernel, customer-supplier,
224
237
  upstream-downstream, separate ways), carrying the pattern abbreviation, U/D end markers and the
225
238
  OHS/PL/ACL/CF integration-role badges. Labels are word-wrapped and centred. Per-element `fill`/`stroke`
226
- overrides win over the spec defaults.
239
+ overrides win over the spec defaults. Every text keeps 4.5:1 on what it sits on; the box outlines,
240
+ the relationship lines and the borders of the symmetric patterns' chips keep 3:1 on the canvas
241
+ ground. The subdomain badge and the team caption are `--cd-text-leise`, and a context's name, a role
242
+ badge's text and any text on a fill the author set are black or white, whichever has more contrast.
243
+ A role badge is one filled chip named by its text; the frame around the badges is the decorative
244
+ `--cd-linie`. A symmetric pattern's chip writes black on paper, bordered in the pattern's colour.
227
245
 
228
246
  ## Import / export
229
247
 
@@ -234,20 +252,24 @@ rasterisation those formats need.
234
252
 
235
253
  ## Development
236
254
 
237
- Part of the [Context Maps Modeler](../../README.md) monorepo; consumed from source by the apps.
238
- From the repo root:
255
+ Part of the [Context Maps Modeler](../../README.md) in the
256
+ [Miragon modeler suite](https://github.com/Miragon/modeler-suite); consumed from source by the
257
+ apps. From the suite's root:
239
258
 
240
259
  ```bash
241
- npm run build -w packages/renderer # Vite library build → dist/ (publish build)
242
- npm test # Vitest unit tests
243
- npm run test:browser # renderer integration tests in real Chromium
244
- npm run typecheck
260
+ npm run build -w @miragon/context-maps-renderer # Vite library build → dist/ (publish build)
261
+ npm run context-maps test # Vitest unit tests
262
+ npm run context-maps test:browser # renderer integration tests in real Chromium
263
+ npm run context-maps typecheck
245
264
  ```
246
265
 
247
266
  ## License
248
267
 
249
268
  [MIT](../../LICENSE). diagram-js and its dependencies are MIT / ISC / Apache-2.0. The icons of the
250
- context pad, the connect handles, the validation markers, the lasso and the shortcuts dialog are
251
- [Lucide](https://lucide.dev) icons (lucide-static 1.59.0, ISC, © Lucide Icons and Contributors),
252
- copied into `src/draw/lucide.ts`; `arrow-right`, `circle-x`, `trash`, `triangle-alert` and `x` derive
253
- from [Feather](https://feathericons.com) (MIT, © Cole Bemis).
269
+ context pad, the connect handles, the validation markers, the lasso, the shortcuts dialog and the
270
+ team glyph on the canvas are [Lucide](https://lucide.dev) icons (lucide-static 1.59.0, ISC, © Lucide
271
+ Icons and Contributors), copied into `src/draw/lucide.ts`; `arrow-right`, `circle-x`, `trash`,
272
+ `triangle-alert` and `x` derive from [Feather](https://feathericons.com) (MIT, © Cole Bemis). The
273
+ star and the open hand that mark core and supporting subdomains are notation glyphs, the paths of
274
+ [Material Icons](https://github.com/google/material-design-icons) `star` and `pan_tool` (Apache-2.0,
275
+ © Google LLC), copied into `src/draw/subdomainGlyphs.ts`.
@@ -1,3 +1,4 @@
1
+ import { default as Canvas } from 'diagram-js/lib/core/Canvas';
1
2
  import { default as EventBus } from 'diagram-js/lib/core/EventBus';
2
3
  import { default as Overlays } from 'diagram-js/lib/features/overlays/Overlays';
3
4
  import { default as Selection } from 'diagram-js/lib/features/selection/Selection';
@@ -10,8 +11,9 @@ export default class CmConnectHandles {
10
11
  private readonly overlays;
11
12
  private readonly dragging;
12
13
  private readonly readOnly;
14
+ private readonly canvas;
13
15
  static $inject: string[];
14
- constructor(eventBus: EventBus, selection: Selection, overlays: Overlays, connect: Connect, dragging: Dragging, readOnly: Pick<CmReadOnly, "isReadOnly">);
16
+ constructor(eventBus: EventBus, selection: Selection, overlays: Overlays, connect: Connect, dragging: Dragging, readOnly: Pick<CmReadOnly, "isReadOnly">, canvas: Canvas);
15
17
  private refresh;
16
18
  }
17
19
  //# sourceMappingURL=CmConnectHandles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CmConnectHandles.d.ts","sourceRoot":"","sources":["../../src/connect-handles/CmConnectHandles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAKtE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAmCjF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAIjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,MAAM,CAAC,OAAO,WAA8E;gBAGzE,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IAa3D,OAAO,CAAC,OAAO;CAoDhB"}
1
+ {"version":3,"file":"CmConnectHandles.d.ts","sourceRoot":"","sources":["../../src/connect-handles/CmConnectHandles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AAKtE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAmCjF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAYjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAjBzB,MAAM,CAAC,OAAO,WAQZ;gBAGiB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACxC,MAAM,EAAE,MAAM;IAajC,OAAO,CAAC,OAAO;CAuDhB"}
@@ -1,2 +1,2 @@
1
- @layer context-maps-tokens{:root{--cd-blau:#335de5;--cd-gruen:#00e676;--cd-grau:#f9f7f7;--cd-schwarz:#1d1d1d;--cd-weiss:#fff;--cd-blau-link:#2b50d4;--cd-blau-hell:#6b8aff;--cd-success:#00e676;--cd-success-soft:#dafbeb;--cd-success-hell:#00e676;--cd-warning:#ffb000;--cd-warning-soft:#fff1d2;--cd-warning-hell:#ffb000;--cd-danger:#cd1839;--cd-danger-soft:#fbeef0;--cd-danger-hell:#fb6d73;--cd-info:#335de5;--cd-info-soft:#eef1fd;--cd-info-hell:#6b8aff;--cd-linie:#e6e2e2;--cd-kontur:#8f8a8a;--cd-text-leise:#6b6666;--cd-gradient-brand:linear-gradient(120deg, #335de5 30%, #00e676);--cd-gradient-format:linear-gradient(135deg, #335de5 0%, #00e676 140%);--cd-space-1:4px;--cd-space-2:8px;--cd-space-3:16px;--cd-space-4:24px;--cd-space-5:32px;--cd-space-6:48px;--cd-space-7:64px;--cd-space-8:96px;--cd-radius-sm:6px;--cd-radius-md:12px;--cd-radius-lg:16px;--cd-radius-pill:999px;--cd-shadow-1:0 1px 2px #1d1d1d0f, 0 1px 3px #1d1d1d1a;--cd-shadow-2:0 4px 12px #1d1d1d1a;--cd-shadow-3:0 12px 32px #1d1d1d29;--cd-motion-fast:.15s;--cd-motion-base:.25s;--cd-motion-slow:.4s;--cd-ease:cubic-bezier(.4, 0, .2, 1);--cd-ease-out:cubic-bezier(0, 0, .2, 1);--cd-shell-rand:12px;--cd-shell-luecke:8px;--cd-shell-zeile:40px;--cd-shell-ziel:32px;--cd-shell-eintrag:36px;--cd-shell-frei:64px;--cd-shell-menue-breite:248px;--cd-shell-inspector-breite:288px;--cd-shell-einpassen-oben:88px;--cd-shell-einpassen-oben-schmal:140px;--cd-shell-einpassen-seite:24px;--cd-shell-einpassen-unten:64px;--cd-shell-einpassen-unten-web:92px;--cd-shell-schmal:760px;--cd-shell-sehr-schmal:440px;--cd-shell-niedrig:820px;--cd-shell-ebene-inseln:20;--cd-shell-ebene-inspector:25;--cd-shell-ebene-reihe:30;--cd-shell-ebene-aufklapper:40;--cd-shell-ebene-dialog:50;--cd-shell-ebene-toast:60;--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%}[data-cd-theme=light],[data-cd-theme=system]{--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media screen{[data-cd-theme=dark]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=dark] ::selection{color:#fff;background-color:#383838}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=system] ::selection{color:#fff;background-color:#383838}}:root:not([data-cd-theme=dark]):not([data-cd-theme=system]) .cd-nur-dunkel{display:none!important}@media print{:root .cd-nur-dunkel{display:none!important}}@media (prefers-color-scheme:light){:root[data-cd-theme=system] .cd-nur-dunkel{display:none!important}}@media screen{:root[data-cd-theme=dark] .cd-nur-hell{display:none!important}}@media screen and (prefers-color-scheme:dark){:root[data-cd-theme=system] .cd-nur-hell{display:none!important}}[data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#1d1d1d;--cd-ui-text-leise:#1d1d1d;--cd-ui-chrome-deckkraft:100%}@media screen{[data-cd-theme=dark][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media (forced-colors:active){[data-cd-theme],[data-cd-theme][data-cd-kontrast=hoch]{--cd-ui-grund:Canvas;--cd-ui-flaeche:Canvas;--cd-ui-flaeche-hoch:Canvas;--cd-ui-hover:Canvas;--cd-ui-plot:Canvas;--cd-ui-seite:Canvas;--cd-ui-abschnitt:Canvas;--cd-ui-linie:CanvasText;--cd-ui-kontur:CanvasText;--cd-ui-text:CanvasText;--cd-ui-text-leise:CanvasText;--cd-ui-link:LinkText;--cd-ui-icon-akzent:CanvasText;--cd-ui-fokus:Highlight;--cd-ui-interaktion:Highlight;--cd-ui-success:CanvasText;--cd-ui-warning:CanvasText;--cd-ui-danger:CanvasText;--cd-ui-info:CanvasText;--cd-ui-success-flaeche:Canvas;--cd-ui-warning-flaeche:Canvas;--cd-ui-danger-flaeche:Canvas;--cd-ui-info-flaeche:Canvas;--cd-ui-wortmarke:CanvasText;--cd-ui-chrome-deckkraft:100%}}}.bio-theme-parent{--bio-surface:#fff;--bio-surface-overlay:#fff;--bio-surface-subtle:#f7f7f8;--bio-surface-medium:#f1f2f4;--bio-surface-inverted:#383838;--bio-surface-inverted-subtle:#505562;--bio-text:#22242a;--bio-text-subtle:#505562;--bio-text-subtlest:#818798;--bio-text-on-inverted:#fff;--bio-border:#b9bcc6;--bio-border-disabled:#e3e4e8;--bio-primary:#07c;--bio-primary-surface:#e6f4ff;--bio-danger:#e60000;--bio-danger-surface-subtle:#fff0f0;--bio-selected-surface:var(--bio-surface-medium);--bio-selected-text:var(--bio-text);--bio-focus:#07c;--bio-focus-surface:#e6f4ff;--bio-canvas-accent:#07c;--bio-canvas-accent-subtle:#80caff;--bio-shadow:#0000004d;--bio-shadow-subtle:#0000001a;--bio-radius-sm:2px;--bio-radius-md:3px;--bio-radius-lg:4px}.djs-parent{--button-border-radius:var(--bio-radius-md);--input-border-radius:var(--bio-radius-sm);--surface-border-radius:var(--bio-radius-lg);--canvas-fill-color:var(--bio-surface);--accent-color:var(--bio-canvas-accent);--bendpoint-fill-color:var(--bio-canvas-accent);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--bio-surface);--context-pad-entry-hover-background-color:var(--bio-surface-medium);--element-dragger-color:var(--accent-color);--element-selected-outline-stroke-color:var(--accent-color);--element-selected-outline-secondary-stroke-color:var(--bio-canvas-accent-subtle);--lasso-fill-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--bio-text);--palette-entry-hover-color:var(--bio-primary);--palette-entry-selected-color:var(--bio-primary);--palette-separator-color:var(--bio-border);--palette-toggle-hover-background-color:var(--bio-surface-medium);--palette-background-color:var(--bio-surface-subtle);--palette-border-color:var(--bio-border);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--bio-primary);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--bio-border);--popup-background-color:var(--bio-surface-overlay);--popup-border-color:transparent;--popup-shadow-color:var(--bio-shadow);--popup-scrollbar-thumb-color:#0003;--popup-button-background-color:var(--bio-surface-overlay);--popup-button-hover-background-color:var(--bio-surface-medium);--popup-disabled-color:var(--bio-text-subtle);--popup-description-color:var(--bio-text-subtle);--popup-no-results-color:var(--bio-text-subtlest);--popup-entry-title-color:var(--bio-text-subtlest);--popup-entry-selected-background-color:var(--bio-selected-surface);--popup-entry-selected-color:var(--bio-selected-text);--popup-search-border-color:var(--bio-border);--popup-search-focus-border-color:var(--bio-focus);--popup-search-focus-background-color:var(--bio-focus-surface);--popup-tab-color:var(--bio-text-subtlest);--popup-tab-hover-color:var(--bio-text);--popup-tab-active-color:var(--bio-text);--popup-tab-active-border-color:var(--bio-primary);--popup-tab-strip-border-color:var(--bio-border-disabled);--popup-tab-focus-border-color:var(--bio-focus);--resizer-fill-color:var(--bio-canvas-accent);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--bio-surface-overlay);--search-shadow-color:var(--bio-shadow);--search-input-border-color:var(--bio-border);--search-input-focus-border-color:var(--bio-focus);--search-input-focus-background-color:var(--bio-primary-surface);--search-result-hover-background-color:var(--bio-surface-medium);--search-result-secondary-color:var(--bio-text-subtlest);--search-preselected-background-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--shape-attach-allowed-stroke-color:var(--accent-color);--shape-connect-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-not-allowed-fill-color:var(--bio-danger-surface-subtle);--shape-resize-preview-stroke-color:var(--accent-color);--snap-line-stroke-color:color-mix(in srgb, var(--bio-canvas-accent) 30%, transparent);--space-tool-crosshair-stroke-color:var(--bio-text);--tooltip-error-background-color:var(--bio-danger-surface-subtle);--tooltip-error-border-color:var(--bio-danger);--tooltip-error-color:var(--bio-danger);--hover-tooltip-font-family:"IBM Plex Sans", sans-serif;--hover-tooltip-font-size:12px;--hover-tooltip-secondary-font-size:11px;--hover-tooltip-background-color:var(--bio-surface-inverted);--hover-tooltip-color:var(--bio-text-on-inverted);--hover-tooltip-shadow-color:var(--bio-shadow-subtle);--palette-tooltip-shortcut-background-color:var(--bio-surface-inverted-subtle)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-outline-hidden .djs-outline{display:none!important}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-hover-tooltip{z-index:1000;border-radius:var(--surface-border-radius);background-color:var(--hover-tooltip-background-color);color:var(--hover-tooltip-color);font-family:var(--hover-tooltip-font-family);font-size:var(--hover-tooltip-font-size);white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px var(--hover-tooltip-shadow-color);align-items:center;gap:6px;padding:6px 10px;line-height:1.2;display:flex;position:fixed}.djs-hover-tooltip--right{transform:translateY(-50%)}.djs-hover-tooltip--top{transform:translate(-50%,-100%)}.djs-palette-tooltip-shortcut{border-radius:var(--button-border-radius);background-color:var(--palette-tooltip-shortcut-background-color);font-family:monospace;font-size:var(--hover-tooltip-secondary-font-size);padding:1px 5px;line-height:1.2}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;max-width:300px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border-radius:var(--input-border-radius);border:solid 1px var(--popup-search-border-color);padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-tabs-container{border-bottom:solid 1px var(--popup-tab-strip-border-color);position:relative}.djs-popup-tabs-scroll{appearance:none;width:28px;color:var(--popup-tab-color);cursor:pointer;border:none;border-radius:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:1px}.djs-popup-tabs-scroll:hover{color:var(--popup-tab-hover-color)}.djs-popup-tabs-scroll-start{background:linear-gradient(to left, transparent, var(--popup-background-color) 60%);justify-content:flex-start;left:0}.djs-popup-tabs-scroll-end{background:linear-gradient(to right, transparent, var(--popup-background-color) 60%);justify-content:flex-end;right:0}.djs-popup-tabs-scroll-start svg{transform:rotate(180deg)}.djs-popup-tabs{scrollbar-width:none;flex-wrap:nowrap;gap:2px;padding:0 12px;scroll-padding:0 28px;display:flex;overflow:auto hidden}.djs-popup-tabs::-webkit-scrollbar{display:none}.djs-popup-tab{appearance:none;font:inherit;font-size:var(--popup-font-size);color:var(--popup-tab-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:6px 10px}.djs-popup-tab:hover{color:var(--popup-tab-hover-color)}.djs-popup-tab:focus-visible{outline:solid 1px var(--popup-tab-focus-border-color);outline-offset:-2px}.djs-popup-tab[aria-selected=true]{color:var(--popup-tab-active-color);border-bottom-color:var(--popup-tab-active-border-color);font-weight:var(--popup-header-font-weight)}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:var(--popup-button-hover-background-color)}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:6px;display:flex}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin:0 12px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-results:focus{outline:none}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{color:var(--popup-entry-selected-color);background-color:var(--popup-entry-selected-background-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin-top:.25em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:var(--popup-scrollbar-thumb-color);border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-footer{border-top:solid 1px var(--popup-border-color);padding:5px 12px 7px;display:flex}.djs-popup--pointer .djs-popup-footer{display:none}.djs-popup-entry-docs{visibility:hidden;color:var(--popup-description-color);background:var(--popup-button-background-color);border:1px solid var(--popup-search-border-color);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 3px;transition:background-color .12s,border-color .12s,color .12s;display:flex}.djs-popup--pointer .djs-popup-body .entry:hover .djs-popup-entry-docs{visibility:visible}.djs-popup-body .entry .djs-popup-entry-docs:hover{background:var(--popup-button-hover-background-color)}.djs-popup-entry-docs svg{vertical-align:middle}.djs-popup-footer-docs{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);align-items:center;gap:3px;text-decoration:none;display:inline-flex}.djs-popup-footer-docs:hover{text-decoration:underline}.djs-popup-footer-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:var(--surface-border-radius)}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating,.djs-bendpoint.floating:not(.positioned){display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);border-radius:var(--surface-border-radius);width:160px;color:var(--tooltip-error-color);opacity:.75;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);border-radius:var(--surface-border-radius);box-shadow:0px 2px 6px var(--search-shadow-color);margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);border-radius:var(--input-border-radius);box-sizing:border-box;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}.cd-c-fill-grund{fill:var(--cd-ui-grund)!important}.cd-c-fill-plot{fill:var(--cd-ui-plot)!important}.cd-c-stroke-plot{stroke:var(--cd-ui-plot)!important}.cd-c-stroke-grund{stroke:var(--cd-ui-grund)!important}.cd-c-fill-flaeche-hoch{fill:var(--cd-ui-flaeche-hoch)!important}.cd-c-stroke-text{stroke:var(--cd-ui-text)!important}.cd-c-fill-text{fill:var(--cd-ui-text)!important}.cd-c-fill-text-leise{fill:var(--cd-ui-text-leise)!important}.cd-c-stroke-kontur{stroke:var(--cd-ui-kontur)!important}.cd-c-stroke-linie{stroke:var(--cd-ui-linie)!important}.cd-c-fill-linie{fill:var(--cd-ui-linie)!important}.cd-c-stroke-interaktion{stroke:var(--cd-ui-interaktion)!important}.cd-c-stroke-danger{stroke:var(--cd-ui-danger)!important}.cd-c-fill-danger{fill:var(--cd-ui-danger)!important}.cd-c-stroke-info{stroke:var(--cd-ui-info)!important}@media screen{[data-cd-theme=dark] .cd-c-bereich{fill:none!important}[data-cd-theme=dark] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=dark] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=dark] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=dark] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system] .cd-c-bereich{fill:none!important}[data-cd-theme=system] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=system] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=system] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=system] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}:root,[data-cd-theme],.bio-theme-parent.bio-theme-parent{--bio-surface:var(--cd-ui-flaeche-hoch);--bio-surface-overlay:var(--cd-ui-flaeche-hoch);--bio-surface-subtle:var(--cd-ui-flaeche-hoch);--bio-surface-medium:var(--cd-ui-hover);--bio-surface-inverted:var(--cd-ui-flaeche-hoch);--bio-surface-inverted-subtle:var(--cd-ui-hover);--bio-text:var(--cd-ui-text);--bio-text-subtle:var(--cd-ui-text-leise);--bio-text-subtlest:var(--cd-ui-text-leise);--bio-text-on-inverted:var(--cd-ui-text);--bio-border:var(--cd-ui-linie);--bio-border-disabled:var(--cd-ui-linie);--bio-primary:var(--cd-ui-interaktion);--bio-primary-surface:var(--cd-ui-hover);--bio-text-on-primary:var(--cd-weiss);--bio-danger:var(--cd-ui-danger);--bio-danger-surface-subtle:var(--cd-ui-danger-flaeche);--bio-selected-surface:var(--cd-ui-hover);--bio-selected-text:var(--cd-ui-text);--bio-focus:var(--cd-ui-fokus);--bio-focus-surface:var(--cd-ui-hover);--bio-canvas-accent:var(--cd-ui-interaktion);--bio-canvas-accent-subtle:var(--cd-ui-interaktion);--bio-shadow:color-mix(in srgb, var(--cd-schwarz) 30%, transparent);--bio-shadow-subtle:color-mix(in srgb, var(--cd-schwarz) 10%, transparent);--bio-radius-sm:var(--cd-radius-sm);--bio-radius-md:var(--cd-radius-md);--bio-radius-lg:var(--cd-radius-lg)}.djs-parent.djs-parent{--canvas-fill-color:var(--cd-ui-grund);--lasso-fill-color:transparent;--search-preselected-background-color:var(--cd-ui-hover);--snap-line-stroke-color:var(--cd-ui-kontur);--resizer-fill-color:var(--cd-ui-plot);--resizer-stroke-color:var(--cd-ui-interaktion);--bendpoint-fill-color:var(--cd-ui-plot);--bendpoint-stroke-color:var(--cd-ui-interaktion);--shape-connect-allowed-fill-color:var(--cd-ui-hover);--shape-drop-allowed-fill-color:var(--cd-ui-hover);--popup-border-color:var(--cd-ui-linie);--popup-scrollbar-thumb-color:var(--cd-ui-linie);--popup-font-family:"Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--search-font-family:var(--popup-font-family);--hover-tooltip-font-family:var(--popup-font-family)}.djs-parent.djs-parent .djs-shape.drop-not-ok .djs-visual>:first-child,.djs-parent.djs-parent .djs-shape.connect-not-ok .djs-visual>:first-child{stroke:var(--cd-ui-danger)!important;stroke-dasharray:6 4!important}.djs-parent.djs-parent svg.drop-not-ok{outline:2px dashed var(--cd-ui-danger);outline-offset:-2px}.djs-parent.djs-parent .djs-tooltip-error{opacity:1}.bjs-container.bjs-container{--accent-color:var(--cd-ui-interaktion);--breadcrumbs-item-color:var(--cd-ui-link);--breadcrumbs-background-color:var(--cd-ui-flaeche-hoch);--breadcrumbs-border-color:var(--cd-ui-linie);--drilldown-background-color:var(--cd-blau);--drilldown-fill-color:var(--cd-weiss)}.cm-djs-container{background-color:var(--cd-ui-grund);background-image:radial-gradient(var(--cd-ui-linie) 1px, transparent 1px);background-size:22px 22px;width:100%;height:100%;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.cm-djs-container:focus,.cm-djs-container svg:focus:not(:focus-visible){outline:none}.cm-djs-container .djs-element text{-webkit-user-select:none;user-select:none}.cm-djs-container .djs-element.hover .djs-visual>:first-child:not(text),.cm-djs-container .djs-element.selected .djs-visual>:first-child:not(text){stroke:var(--cd-ui-interaktion)!important}.cm-djs-container .djs-outline{stroke:var(--cd-ui-interaktion);stroke-dasharray:3 3}.djs-palette:not([data-chrome=palette]){z-index:110;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-1);align-items:center;padding:3px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette:not([data-chrome=palette]) .djs-palette-entries,.djs-palette:not([data-chrome=palette]) .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette:not([data-chrome=palette]) .entry{float:none;border-radius:var(--cd-radius-sm);width:32px;height:32px;color:var(--cd-ui-text);transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease);line-height:normal;position:relative}.djs-palette:not([data-chrome=palette]) .entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-palette:not([data-chrome=palette]) .group+.group{margin-left:8px;padding-left:9px;position:relative}.djs-palette:not([data-chrome=palette]) .group+.group:before{content:"";background:var(--cd-ui-linie);width:1px;position:absolute;top:4px;bottom:4px;left:0}.djs-palette:not([data-chrome=palette]) .cm-palette-entry{justify-content:center;align-items:center;display:flex}.djs-palette:not([data-chrome=palette]) .entry.highlighted-entry{background:var(--cd-ui-hover);box-shadow:inset 0 0 0 2px var(--cd-ui-interaktion);color:var(--cd-ui-text)!important}.cm-palette-svg{pointer-events:none;display:block}.cm-connect-handle{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);justify-content:center;align-items:center;display:flex}.cm-connect-handle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-connect-handle__arrow{display:flex}.djs-context-pad.open{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);flex-direction:column;align-items:stretch;gap:2px;padding:3px;display:flex}.djs-context-pad.open:not(:has(.entry)){display:none}.djs-context-pad.cm-pad-flip-x{transform:translate(calc(-100% - 16px),14px)}.djs-context-pad.cm-pad-flip-y{transform:translateY(calc(-100% - 16px))}.djs-context-pad .group{flex-direction:column;align-items:stretch;gap:2px;display:flex}.djs-context-pad .group+.group{border-top:1px solid var(--cd-ui-linie);margin-top:1px;padding-top:3px}.djs-context-pad .entry.cm-pad-entry{box-sizing:border-box;border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:none;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex}.djs-context-pad .entry.cm-pad-entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-context-pad .entry.cm-pad-entry--danger:hover{background:var(--cd-ui-danger-flaeche);color:var(--cd-ui-danger)}.djs-context-pad .cm-palette-svg{pointer-events:none}.cm-dragging .djs-context-pad,.cm-dragging .djs-context-pad *{pointer-events:none!important}.djs-popup{border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);animation:cm-popup-in var(--cd-motion-fast) var(--cd-ease-out)}.djs-popup .djs-popup-results{padding:4px 6px 6px}.djs-popup .djs-popup-entry-icon{width:24px;height:24px;font-size:1em}.djs-popup .djs-popup-entry-icon .cm-palette-svg{width:100%;height:100%;display:block}.djs-popup .entry.disabled,.djs-popup .entry.disabled.selected{background-color:#0000}.djs-popup .entry.disabled .djs-popup-entry-name{color:var(--cd-ui-text-leise)}.djs-popup .djs-popup-entry-name.cm-popup-active{color:var(--cd-ui-interaktion);font-weight:600}.djs-popup .djs-popup-entry-name.cm-popup-active .djs-popup-label:after{content:" ✓"}@keyframes cm-popup-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.djs-popup{animation:none}}.cm-legend{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);max-height:calc(100% - 32px);box-shadow:var(--cd-shadow-2);z-index:20;min-width:184px;color:var(--cd-ui-text);flex-direction:column;padding:8px 12px 12px 16px;display:flex;position:absolute;bottom:12px;left:12px}.cm-legend__body{min-height:0;overflow-y:auto}.cm-legend__head{flex:none;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.cm-legend__close{border-radius:var(--cd-radius-sm);width:28px;height:28px;color:var(--cd-ui-text);font:inherit;cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid}.cm-legend__close:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend__group{flex-direction:column;gap:4px;display:flex}.cm-legend__row{min-height:24px;color:var(--cd-ui-text);align-items:center;gap:8px;font-size:13px;display:flex}.cm-legend__divider{background:var(--cd-ui-linie);height:1px;margin:8px 0}.cm-legend__icon{place-items:center;width:24px;height:24px;display:inline-grid}.cm-legend-toggle{z-index:20;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);height:40px;box-shadow:var(--cd-shadow-1);font:inherit;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex;position:absolute;bottom:12px;left:12px}.cm-legend-toggle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend-item{white-space:nowrap;cursor:help;position:relative}.cm-legend-tip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);white-space:normal;pointer-events:none;padding:3px 8px;font-size:13px;font-weight:400;line-height:20px;display:none;position:fixed;transform:translateY(-50%)}.cm-legend-item:hover .cm-legend-tip{display:block}.cm-legend__close:focus-visible,.cm-legend-toggle:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-dragging .cm-legend,.cm-dragging .cm-legend-toggle{pointer-events:none}.cm-legend-group{flex-direction:column;gap:4px;display:flex}:has(>.cm-djs-container>.cm-dragging)>[data-chrome=legend]{pointer-events:none}.cm-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cm-direct-editing .djs-visual text.cm-name,.cm-direct-editing-team .djs-visual .cm-team{display:none}.cm-djs-container .djs-direct-editing-parent{z-index:100;color:var(--cd-ui-text)}.cm-djs-container .djs-direct-editing-content{caret-color:var(--cd-ui-interaktion);overflow-wrap:break-word}.cm-pad-prompt{z-index:210;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);min-width:240px;box-shadow:var(--cd-shadow-3);color:var(--cd-ui-text);padding:8px;position:fixed}.cm-pad-prompt__field{box-sizing:border-box;width:100%;color:var(--cd-ui-text);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);background:var(--cd-ui-flaeche);resize:vertical;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;display:block}.cm-pad-prompt__field:focus-visible,.cm-pad-prompt__field:focus{border-color:var(--cd-ui-interaktion);outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-pad-prompt__hint{color:var(--cd-ui-text-leise);margin-top:6px;font-size:12px}.cm-validation-marker{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-pill);width:22px;height:22px;box-shadow:var(--cd-shadow-1);cursor:help;place-items:center;display:grid;position:relative}.cm-validation-marker[data-severity=error]{color:var(--cd-ui-danger)}.cm-validation-marker[data-severity=warning]{color:var(--cd-ui-warning)}.cm-validation-tooltip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;z-index:200;padding:3px 8px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:20px;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid var(--cd-ui-linie);margin-top:4px;padding-top:4px}.cm-hover-tooltip{z-index:200;box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);max-width:min(280px,100% - 24px);box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;flex-direction:column;gap:2px;padding:3px 8px;font-size:13px;line-height:20px;display:flex;position:absolute}.cm-hover-tooltip[hidden]{display:none}.cm-hover-tooltip strong{font-weight:600}.cm-hover-tooltip span{color:var(--cd-ui-text-leise)}.cm-hover-tooltip span[hidden]{display:none}.cm-dialog{box-sizing:border-box;width:min(560px,100cqw - 32px);max-width:none;max-height:calc(100cqh - 32px);color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);margin:auto;padding:0;overflow:hidden}.cm-dialog[open]{display:flex}.cm-dialog::backdrop{background:var(--cd-ui-backdrop);-webkit-backdrop-filter:blur(3px)grayscale();backdrop-filter:blur(3px)grayscale()}.cm-dialog-panel,.cm-dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.cm-dialog-header{justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 8px 24px;display:flex}.cm-dialog-title{margin:0;font-size:21px;font-weight:600;line-height:1.3}.cm-dialog-close{width:32px;height:32px;color:var(--cd-ui-text);cursor:pointer;border-radius:var(--cd-radius-sm);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cm-dialog-close:hover{color:var(--cd-ui-interaktion);background:var(--cd-ui-hover)}.cm-dialog-close svg{display:block}.cm-dialog-body{flex-direction:column;min-height:0;padding:8px 24px 24px;font-size:13px;line-height:1.5;display:flex;overflow:auto}.cm-dialog-footer{border-top:1px solid var(--cd-ui-linie);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.cm-dialog-label{margin-bottom:4px;font-size:13px;font-weight:600}.cm-dialog-input{box-sizing:border-box;width:100%;min-height:36px;font:inherit;color:var(--cd-ui-text);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);padding:8px 12px;font-size:13px;line-height:1.5}.cm-dialog-input::placeholder{color:var(--cd-ui-text-leise)}.cm-dialog-input:focus{border-color:var(--cd-ui-interaktion)}.cm-dialog-button{box-sizing:border-box;min-height:36px;font:inherit;cursor:pointer;border-radius:var(--cd-radius-md);transition:background-color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease), transform var(--cd-motion-fast) var(--cd-ease);padding:0 16px;font-size:13px;font-weight:600;line-height:1}.cm-dialog-button[data-variant=secondary]{color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie)}.cm-dialog-button[data-variant=secondary]:hover{color:var(--cd-ui-link);background:var(--cd-ui-hover);border-color:var(--cd-ui-interaktion)}.cm-dialog-button[data-variant=primary]{color:var(--cd-weiss);background:var(--cd-blau);box-shadow:var(--cd-shadow-1);border:1px solid #0000}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{background:var(--cd-blau-link);box-shadow:var(--cd-shadow-2);transform:translateY(-1px)}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.cm-dialog-button{transition:none}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{transform:none}}.cm-title-dialog{width:min(440px,100cqw - 32px)}.cm-shortcuts-body{gap:16px}.cm-shortcuts-group-title{color:var(--cd-ui-text-leise);margin:0 0 4px;font-size:13px;font-weight:600}.cm-shortcuts-table{border-collapse:collapse;width:100%}.cm-shortcuts-table tr+tr{border-top:1px solid var(--cd-ui-linie)}.cm-shortcuts-action{text-align:left;padding:6px 12px 6px 0;font-weight:400}.cm-shortcuts-keys{text-align:right;white-space:nowrap;padding:6px 0}.cm-shortcuts-key{color:var(--cd-ui-text-leise);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);box-shadow:none;vertical-align:baseline;padding:1px 6px;font-family:Geist Mono Variable,Geist Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:400;line-height:18px;display:inline-block}.cm-shortcuts-key+.cm-shortcuts-key{margin-left:6px}:root[data-cd-kontrast=hoch] .cm-dialog{border-color:var(--cd-ui-kontur);box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-button{box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-close:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-button:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-input:focus-visible{outline-width:3px}@media (forced-colors:active){.cm-dialog{border-color:canvastext}.cm-dialog-button{border-color:buttontext}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline-color:highlight}}.cm-dragging .djs-overlay-container,.cm-dragging .djs-overlay-container *{pointer-events:none!important}.cm-djs-container .djs-element.connect-ok,.cm-djs-container svg.connect-ok{cursor:crosshair}.cm-djs-container .djs-element.connect-not-ok,.cm-djs-container svg.connect-not-ok{cursor:not-allowed}
1
+ @layer context-maps-tokens{:root{--cd-blau:#335de5;--cd-gruen:#00e676;--cd-grau:#f9f7f7;--cd-schwarz:#1d1d1d;--cd-weiss:#fff;--cd-blau-link:#2b50d4;--cd-blau-hell:#6b8aff;--cd-success:#00e676;--cd-success-soft:#dafbeb;--cd-success-hell:#00e676;--cd-warning:#ffb000;--cd-warning-soft:#fff1d2;--cd-warning-hell:#ffb000;--cd-danger:#cd1839;--cd-danger-soft:#fbeef0;--cd-danger-hell:#fb6d73;--cd-info:#335de5;--cd-info-soft:#eef1fd;--cd-info-hell:#6b8aff;--cd-linie:#e6e2e2;--cd-kontur:#8f8a8a;--cd-text-leise:#6b6666;--cd-gradient-brand:linear-gradient(120deg, #335de5 30%, #00e676);--cd-gradient-format:linear-gradient(135deg, #335de5 0%, #00e676 140%);--cd-space-1:4px;--cd-space-2:8px;--cd-space-3:16px;--cd-space-4:24px;--cd-space-5:32px;--cd-space-6:48px;--cd-space-7:64px;--cd-space-8:96px;--cd-radius-sm:6px;--cd-radius-md:12px;--cd-radius-lg:16px;--cd-radius-pill:999px;--cd-shadow-1:0 1px 2px #1d1d1d0f, 0 1px 3px #1d1d1d1a;--cd-shadow-2:0 4px 12px #1d1d1d1a;--cd-shadow-3:0 12px 32px #1d1d1d29;--cd-motion-fast:.15s;--cd-motion-base:.25s;--cd-motion-slow:.4s;--cd-ease:cubic-bezier(.4, 0, .2, 1);--cd-ease-out:cubic-bezier(0, 0, .2, 1);--cd-shell-rand:12px;--cd-shell-luecke:8px;--cd-shell-zeile:40px;--cd-shell-ziel:32px;--cd-shell-eintrag:36px;--cd-shell-frei:64px;--cd-shell-menue-breite:248px;--cd-shell-inspector-breite:288px;--cd-shell-einpassen-oben:88px;--cd-shell-einpassen-oben-schmal:140px;--cd-shell-einpassen-seite:24px;--cd-shell-einpassen-unten:64px;--cd-shell-einpassen-unten-web:92px;--cd-shell-schmal:760px;--cd-shell-sehr-schmal:440px;--cd-shell-niedrig:820px;--cd-shell-ebene-inseln:20;--cd-shell-ebene-inspector:25;--cd-shell-ebene-reihe:30;--cd-shell-ebene-aufklapper:40;--cd-shell-ebene-dialog:50;--cd-shell-ebene-toast:60;--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%}[data-cd-theme=light],[data-cd-theme=system]{--cd-ui-grund:#f9f7f7;--cd-ui-flaeche:#fff;--cd-ui-flaeche-hoch:#fff;--cd-ui-hover:#eef1fd;--cd-ui-plot:#fff;--cd-ui-seite:#fff;--cd-ui-abschnitt:#f9f7f7;--cd-ui-linie:#e6e2e2;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#1d1d1d;--cd-ui-text-leise:#6b6666;--cd-ui-link:#2b50d4;--cd-ui-icon-akzent:#335de5;--cd-ui-fokus:#2b50d4;--cd-ui-interaktion:#335de5;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#cd1839;--cd-ui-info:#335de5;--cd-ui-success-flaeche:#dafbeb;--cd-ui-warning-flaeche:#fff1d2;--cd-ui-danger-flaeche:#fbeef0;--cd-ui-info-flaeche:#eef1fd;--cd-ui-wortmarke:#00e676;--cd-ui-backdrop:#1d1d1d6b;--cd-ui-chrome-deckkraft:84%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media screen{[data-cd-theme=dark]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=dark] ::selection{color:#fff;background-color:#383838}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system]{--cd-ui-grund:#1d1d1d;--cd-ui-flaeche:#282828;--cd-ui-flaeche-hoch:#2f2f2f;--cd-ui-hover:#383838;--cd-ui-plot:#1d1d1d;--cd-ui-seite:#1d1d1d;--cd-ui-abschnitt:#282828;--cd-ui-linie:#464646;--cd-ui-kontur:#8f8a8a;--cd-ui-text:#fff;--cd-ui-text-leise:#bbb;--cd-ui-link:#00e676;--cd-ui-icon-akzent:#00e676;--cd-ui-fokus:#6b8aff;--cd-ui-interaktion:#6b8aff;--cd-ui-success:#00e676;--cd-ui-warning:#ffb000;--cd-ui-danger:#fb6d73;--cd-ui-info:#6b8aff;--cd-ui-success-flaeche:#282828;--cd-ui-warning-flaeche:#282828;--cd-ui-danger-flaeche:#282828;--cd-ui-info-flaeche:#282828;--cd-ui-wortmarke:#fff;--cd-ui-backdrop:#1d1d1d99;--cd-ui-chrome-deckkraft:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-cd-theme=system] ::selection{color:#fff;background-color:#383838}}:root:not([data-cd-theme=dark]):not([data-cd-theme=system]) .cd-nur-dunkel{display:none!important}@media print{:root .cd-nur-dunkel{display:none!important}}@media (prefers-color-scheme:light){:root[data-cd-theme=system] .cd-nur-dunkel{display:none!important}}@media screen{:root[data-cd-theme=dark] .cd-nur-hell{display:none!important}}@media screen and (prefers-color-scheme:dark){:root[data-cd-theme=system] .cd-nur-hell{display:none!important}}[data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#1d1d1d;--cd-ui-text-leise:#1d1d1d;--cd-ui-chrome-deckkraft:100%}@media screen{[data-cd-theme=dark][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system][data-cd-kontrast=hoch]{--cd-ui-linie:#8f8a8a;--cd-ui-kontur:#fff;--cd-ui-text-leise:#fff;--cd-ui-chrome-deckkraft:100%}}@media (forced-colors:active){[data-cd-theme],[data-cd-theme][data-cd-kontrast=hoch]{--cd-ui-grund:Canvas;--cd-ui-flaeche:Canvas;--cd-ui-flaeche-hoch:Canvas;--cd-ui-hover:Canvas;--cd-ui-plot:Canvas;--cd-ui-seite:Canvas;--cd-ui-abschnitt:Canvas;--cd-ui-linie:CanvasText;--cd-ui-kontur:CanvasText;--cd-ui-text:CanvasText;--cd-ui-text-leise:CanvasText;--cd-ui-link:LinkText;--cd-ui-icon-akzent:CanvasText;--cd-ui-fokus:Highlight;--cd-ui-interaktion:Highlight;--cd-ui-success:CanvasText;--cd-ui-warning:CanvasText;--cd-ui-danger:CanvasText;--cd-ui-info:CanvasText;--cd-ui-success-flaeche:Canvas;--cd-ui-warning-flaeche:Canvas;--cd-ui-danger-flaeche:Canvas;--cd-ui-info-flaeche:Canvas;--cd-ui-wortmarke:CanvasText;--cd-ui-chrome-deckkraft:100%}}}.bio-theme-parent{--bio-surface:#fff;--bio-surface-overlay:#fff;--bio-surface-subtle:#f7f7f8;--bio-surface-medium:#f1f2f4;--bio-surface-inverted:#383838;--bio-surface-inverted-subtle:#505562;--bio-text:#22242a;--bio-text-subtle:#505562;--bio-text-subtlest:#818798;--bio-text-on-inverted:#fff;--bio-border:#b9bcc6;--bio-border-disabled:#e3e4e8;--bio-primary:#07c;--bio-primary-surface:#e6f4ff;--bio-danger:#e60000;--bio-danger-surface-subtle:#fff0f0;--bio-selected-surface:var(--bio-surface-medium);--bio-selected-text:var(--bio-text);--bio-focus:#07c;--bio-focus-surface:#e6f4ff;--bio-canvas-accent:#07c;--bio-canvas-accent-subtle:#80caff;--bio-shadow:#0000004d;--bio-shadow-subtle:#0000001a;--bio-radius-sm:2px;--bio-radius-md:3px;--bio-radius-lg:4px}.djs-parent{--button-border-radius:var(--bio-radius-md);--input-border-radius:var(--bio-radius-sm);--surface-border-radius:var(--bio-radius-lg);--canvas-fill-color:var(--bio-surface);--accent-color:var(--bio-canvas-accent);--bendpoint-fill-color:var(--bio-canvas-accent);--bendpoint-stroke-color:var(--canvas-fill-color);--context-pad-entry-background-color:var(--bio-surface);--context-pad-entry-hover-background-color:var(--bio-surface-medium);--element-dragger-color:var(--accent-color);--element-selected-outline-stroke-color:var(--accent-color);--element-selected-outline-secondary-stroke-color:var(--bio-canvas-accent-subtle);--lasso-fill-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--lasso-stroke-color:var(--element-selected-outline-stroke-color);--palette-entry-color:var(--bio-text);--palette-entry-hover-color:var(--bio-primary);--palette-entry-selected-color:var(--bio-primary);--palette-separator-color:var(--bio-border);--palette-toggle-hover-background-color:var(--bio-surface-medium);--palette-background-color:var(--bio-surface-subtle);--palette-border-color:var(--bio-border);--popup-font-family:"IBM Plex Sans", sans-serif;--popup-font-size:14px;--popup-secondary-font-size:.9em;--popup-header-entry-selected-color:var(--bio-primary);--popup-header-font-weight:bolder;--popup-header-group-divider-color:var(--bio-border);--popup-background-color:var(--bio-surface-overlay);--popup-border-color:transparent;--popup-shadow-color:var(--bio-shadow);--popup-scrollbar-thumb-color:#0003;--popup-button-background-color:var(--bio-surface-overlay);--popup-button-hover-background-color:var(--bio-surface-medium);--popup-disabled-color:var(--bio-text-subtle);--popup-description-color:var(--bio-text-subtle);--popup-no-results-color:var(--bio-text-subtlest);--popup-entry-title-color:var(--bio-text-subtlest);--popup-entry-selected-background-color:var(--bio-selected-surface);--popup-entry-selected-color:var(--bio-selected-text);--popup-search-border-color:var(--bio-border);--popup-search-focus-border-color:var(--bio-focus);--popup-search-focus-background-color:var(--bio-focus-surface);--popup-tab-color:var(--bio-text-subtlest);--popup-tab-hover-color:var(--bio-text);--popup-tab-active-color:var(--bio-text);--popup-tab-active-border-color:var(--bio-primary);--popup-tab-strip-border-color:var(--bio-border-disabled);--popup-tab-focus-border-color:var(--bio-focus);--resizer-fill-color:var(--bio-canvas-accent);--resizer-stroke-color:var(--canvas-fill-color);--search-font-family:"IBM Plex Sans", sans-serif;--search-font-size:14px;--search-container-background-color:var(--bio-surface-overlay);--search-shadow-color:var(--bio-shadow);--search-input-border-color:var(--bio-border);--search-input-focus-border-color:var(--bio-focus);--search-input-focus-background-color:var(--bio-primary-surface);--search-result-hover-background-color:var(--bio-surface-medium);--search-result-secondary-color:var(--bio-text-subtlest);--search-preselected-background-color:color-mix(in srgb, var(--bio-canvas-accent) 15%, transparent);--shape-attach-allowed-stroke-color:var(--accent-color);--shape-connect-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-allowed-fill-color:var(--bio-surface-subtle);--shape-drop-not-allowed-fill-color:var(--bio-danger-surface-subtle);--shape-resize-preview-stroke-color:var(--accent-color);--snap-line-stroke-color:color-mix(in srgb, var(--bio-canvas-accent) 30%, transparent);--space-tool-crosshair-stroke-color:var(--bio-text);--tooltip-error-background-color:var(--bio-danger-surface-subtle);--tooltip-error-border-color:var(--bio-danger);--tooltip-error-color:var(--bio-danger);--hover-tooltip-font-family:"IBM Plex Sans", sans-serif;--hover-tooltip-font-size:12px;--hover-tooltip-secondary-font-size:11px;--hover-tooltip-background-color:var(--bio-surface-inverted);--hover-tooltip-color:var(--bio-text-on-inverted);--hover-tooltip-shadow-color:var(--bio-shadow-subtle);--palette-tooltip-shortcut-background-color:var(--bio-surface-inverted-subtle)}.djs-container svg.drop-not-ok{background:var(--shape-drop-not-allowed-fill-color)!important}.djs-container svg.new-parent{background:var(--shape-drop-allowed-fill-color)!important}.djs-container svg:focus{outline-offset:-1px}.djs-outline,.djs-selection-outline{fill:none;shape-rendering:geometricprecision;stroke-width:2px}.djs-outline{visibility:hidden}.djs-selection-outline{stroke:var(--element-selected-outline-stroke-color)}.djs-element.selected .djs-outline{visibility:visible;stroke:var(--element-selected-outline-stroke-color)}.djs-connection.selected .djs-outline{display:none}.djs-multi-select .djs-element.selected .djs-outline,.djs-dragging-active-lasso .djs-element.selected .djs-outline{stroke:var(--element-selected-outline-secondary-stroke-color);display:block}.djs-outline-hidden .djs-outline{display:none!important}.djs-shape.connect-ok .djs-visual>:first-child{fill:var(--shape-connect-allowed-fill-color)!important}.djs-shape.connect-not-ok .djs-visual>:first-child,.djs-shape.drop-not-ok .djs-visual>:first-child{fill:var(--shape-drop-not-allowed-fill-color)!important}.djs-shape.new-parent .djs-visual>:first-child{fill:var(--shape-drop-allowed-fill-color)!important}.drop-not-ok,.connect-not-ok,.drop-not-ok *,.connect-not-ok *{cursor:not-allowed!important}.drop-ok,.connect-ok,.drop-ok *,.connect-ok *{cursor:default!important}.djs-element.attach-ok .djs-visual>:first-child{stroke-width:5px!important;stroke:var(--shape-attach-allowed-stroke-color)!important}.djs-frame.connect-not-ok .djs-visual>:first-child,.djs-frame.drop-not-ok .djs-visual>:first-child{stroke-width:3px!important;stroke:var(--shape-drop-not-allowed-fill-color)!important;fill:none!important}.djs-lasso-overlay{fill:var(--lasso-fill-color);stroke:var(--lasso-stroke-color);stroke-width:2px;shape-rendering:geometricprecision;pointer-events:none}.djs-resize-overlay{fill:none;stroke-dasharray:5 1 3 1;stroke:var(--shape-resize-preview-stroke-color);pointer-events:none}.djs-resizer-hit{fill:none;pointer-events:all}.djs-resizer-visual{fill:var(--resizer-fill-color);stroke-width:1px;stroke:var(--resizer-stroke-color);shape-rendering:geometricprecision}.djs-resizer:hover .djs-resizer-visual{stroke:var(--resizer-stroke-color);stroke-opacity:1}.djs-cursor-resize-ns,.djs-resizer-n,.djs-resizer-s{cursor:ns-resize}.djs-cursor-resize-ew,.djs-resizer-e,.djs-resizer-w{cursor:ew-resize}.djs-cursor-resize-nwse,.djs-resizer-nw,.djs-resizer-se{cursor:nwse-resize}.djs-cursor-resize-nesw,.djs-resizer-ne,.djs-resizer-sw{cursor:nesw-resize}.djs-shape.djs-resizing>.djs-outline{visibility:hidden!important}.djs-shape.djs-resizing>.djs-resizer,.djs-dragger>.djs-resizer{visibility:hidden}.djs-dragger *{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragger tspan,.djs-dragger text,.djs-dragger marker circle,.djs-dragger marker path,.djs-dragger marker polygon,.djs-dragger marker polyline,.djs-dragger marker rect{fill:var(--element-dragger-color)!important;stroke:none!important}.djs-dragger marker text,.djs-dragger marker tspan{fill:none!important;stroke:var(--element-dragger-color)!important}.djs-dragging,.djs-dragging>*{opacity:.3!important;pointer-events:none!important}.djs-visual,.djs-outline{pointer-events:none}.djs-element.attach-ok .djs-hit{stroke-width:60px!important}.djs-element>.djs-hit-all,.djs-element>.djs-hit-no-move{pointer-events:all}.djs-element>.djs-hit-stroke,.djs-element>.djs-hit-click-stroke{pointer-events:stroke}.djs-connection .djs-visual{stroke-width:2px;fill:none}.djs-cursor-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.djs-cursor-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.djs-cursor-crosshair{cursor:crosshair}.djs-cursor-move{cursor:move}.djs-cursor-resize-ns{cursor:ns-resize}.djs-cursor-resize-ew{cursor:ew-resize}.djs-snap-line{stroke:var(--snap-line-stroke-color);stroke-linecap:round;stroke-width:2px;pointer-events:none}.djs-crosshair{stroke:var(--space-tool-crosshair-stroke-color);stroke-linecap:round;stroke-width:1px;pointer-events:none;shape-rendering:geometricprecision;stroke-dasharray:5 5}.djs-palette{box-sizing:border-box;width:48px;position:absolute;top:20px;left:20px}.djs-palette .separator{border:none;border-bottom:solid 1px var(--palette-separator-color);clear:both;margin:5px;padding-top:5px}.djs-palette .entry:before{vertical-align:initial}.djs-palette .djs-palette-toggle{cursor:pointer}.djs-palette .entry,.djs-palette .djs-palette-toggle{color:var(--palette-entry-color);text-align:center;font-size:30px}.djs-palette .entry{float:left}.djs-palette .entry img{max-width:100%}.djs-palette .djs-palette-entries:after{content:"";clear:both;display:table}.djs-palette .djs-palette-toggle:hover{background:var(--palette-toggle-hover-background-color)}.djs-palette .entry:hover{color:var(--palette-entry-hover-color)}.djs-palette .highlighted-entry{color:var(--palette-entry-selected-color)!important}.djs-palette .entry,.djs-palette .djs-palette-toggle{cursor:default;width:46px;height:46px;line-height:46px}.djs-palette.two-column.open{width:94px}.djs-palette:not(.open) .djs-palette-entries{display:none}.djs-palette:not(.open){overflow:hidden}.djs-palette.open .djs-palette-toggle{display:none}.djs-hover-tooltip{z-index:1000;border-radius:var(--surface-border-radius);background-color:var(--hover-tooltip-background-color);color:var(--hover-tooltip-color);font-family:var(--hover-tooltip-font-family);font-size:var(--hover-tooltip-font-size);white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px var(--hover-tooltip-shadow-color);align-items:center;gap:6px;padding:6px 10px;line-height:1.2;display:flex;position:fixed}.djs-hover-tooltip--right{transform:translateY(-50%)}.djs-hover-tooltip--top{transform:translate(-50%,-100%)}.djs-palette-tooltip-shortcut{border-radius:var(--button-border-radius);background-color:var(--palette-tooltip-shortcut-background-color);font-family:monospace;font-size:var(--hover-tooltip-secondary-font-size);padding:1px 5px;line-height:1.2}.djs-context-pad{pointer-events:none;z-index:100;width:72px;line-height:1;display:none;position:absolute}.djs-context-pad .entry{text-align:center;cursor:default;background-color:var(--context-pad-entry-background-color);width:22px;height:22px;box-shadow:0 0 2px 1px var(--context-pad-entry-background-color);pointer-events:all;vertical-align:middle;border-radius:3px;margin:0 2px 2px 0;font-size:22px;display:inline-block}.djs-context-pad .entry:hover{background:var(--context-pad-entry-hover-background-color)}.djs-context-pad.open{display:block}.djs-popup{box-sizing:border-box;background:var(--popup-background-color);z-index:200;box-shadow:0px 2px 6px var(--popup-shadow-color);border:solid 1px var(--popup-border-color);min-width:120px;max-width:300px;line-height:1;font-size:var(--popup-font-size);font-family:var(--popup-font-family);outline:none;position:fixed;overflow:hidden}.djs-popup-search input{box-sizing:border-box;width:100%;font-size:var(--popup-font-size);border-radius:var(--input-border-radius);border:solid 1px var(--popup-search-border-color);padding:3px 6px 3px 28px;line-height:21px}.djs-popup-search input:focus{background-color:var(--popup-search-focus-background-color);border:solid 1px var(--popup-search-focus-border-color);outline:none}.djs-popup-header{align-items:stretch;margin:10px 12px;line-height:20px;display:flex}.djs-popup-header .entry{border-radius:2px}.djs-popup button.entry{background:0 0;border:0;padding:0}.djs-popup-header .entry.active{color:var(--popup-header-entry-selected-color)}.djs-popup-header .entry.disabled{color:inherit}.djs-popup-header-group{flex-direction:row;align-items:center;margin:0;padding:0;list-style:none;display:flex}.djs-popup-header-group .entry{flex-direction:row;align-items:center;display:flex}.djs-popup-header-group+.djs-popup-header-group:before{content:"";background:var(--popup-header-group-divider-color);width:1px;height:20px;margin:0 5px}.djs-popup-search{width:auto;margin:10px 12px;position:relative}.djs-popup-tabs-container{border-bottom:solid 1px var(--popup-tab-strip-border-color);position:relative}.djs-popup-tabs-scroll{appearance:none;width:28px;color:var(--popup-tab-color);cursor:pointer;border:none;border-radius:0;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:1px}.djs-popup-tabs-scroll:hover{color:var(--popup-tab-hover-color)}.djs-popup-tabs-scroll-start{background:linear-gradient(to left, transparent, var(--popup-background-color) 60%);justify-content:flex-start;left:0}.djs-popup-tabs-scroll-end{background:linear-gradient(to right, transparent, var(--popup-background-color) 60%);justify-content:flex-end;right:0}.djs-popup-tabs-scroll-start svg{transform:rotate(180deg)}.djs-popup-tabs{scrollbar-width:none;flex-wrap:nowrap;gap:2px;padding:0 12px;scroll-padding:0 28px;display:flex;overflow:auto hidden}.djs-popup-tabs::-webkit-scrollbar{display:none}.djs-popup-tab{appearance:none;font:inherit;font-size:var(--popup-font-size);color:var(--popup-tab-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:6px 10px}.djs-popup-tab:hover{color:var(--popup-tab-hover-color)}.djs-popup-tab:focus-visible{outline:solid 1px var(--popup-tab-focus-border-color);outline-offset:-2px}.djs-popup-tab[aria-selected=true]{color:var(--popup-tab-active-color);border-bottom-color:var(--popup-tab-active-border-color);font-weight:var(--popup-header-font-weight)}.djs-popup-title{font-size:var(--popup-font-size);font-weight:var(--popup-header-font-weight);flex:1;margin:0}.djs-popup-breadcrumbs{margin:10px 12px;line-height:20px;display:flex}.djs-popup-breadcrumbs-item{appearance:none;min-width:0;color:var(--popup-description-color);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-flex;overflow:hidden}.djs-popup-breadcrumbs-item--separator:before{content:"/";color:var(--popup-description-color);margin:0 4px;display:inline-block}.djs-popup-breadcrumbs-item:hover{color:inherit;text-decoration:underline}.djs-popup-breadcrumbs-item:focus-visible{outline:1px solid var(--popup-search-focus-border-color);outline-offset:2px}.djs-popup-breadcrumbs-item--back{border:1px solid var(--popup-search-border-color);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:6px;padding:2px 3px}.djs-popup-breadcrumbs-item--back:hover{background:var(--popup-button-hover-background-color)}.djs-popup-breadcrumbs-item--current{font-weight:var(--popup-header-font-weight);color:inherit;cursor:default}.djs-popup-breadcrumbs-item--current:hover{text-decoration:none}.djs-popup-entry-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:6px;display:flex}.djs-popup-entry-chevron{color:var(--popup-description-color);align-items:center;display:flex}.djs-popup-search-icon{position:absolute;top:7px;left:8px}.djs-popup-search-count{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin:0 12px}.djs-popup-results{max-height:280px;margin:7px 3px 7px 12px;padding-right:9px;list-style:none;overflow:auto}.djs-popup-results:focus{outline:none}.djs-popup-group{width:100%;margin:0;padding:0}.djs-popup-body .entry,.djs-popup-body .entry-header{cursor:default;border-radius:4px;padding:5px 7px}.djs-popup-body .entry-header{font-weight:var(--popup-header-font-weight);color:var(--popup-entry-title-color);padding-left:0}.djs-popup [class*=icon] .djs-popup-label,.djs-popup-label:not(:first-child){margin-left:.5em}.djs-popup [class*=icon]:before,.djs-popup-entry-icon{vertical-align:middle;width:1em;height:1em;font-size:1.4em;display:inline-block}.djs-popup-body .entry-header:not(:first-child){margin-top:8px;margin-bottom:2px}.djs-popup-body .entry{flex-direction:row;align-items:stretch;height:min-content;display:flex}.djs-popup .entry.selected{color:var(--popup-entry-selected-color);background-color:var(--popup-entry-selected-background-color)}.djs-popup .entry.disabled{color:var(--popup-disabled-color);cursor:not-allowed}.djs-popup-body .entry:not(:first-child){margin-top:2px}.djs-popup-entry-content{flex-direction:column;flex:1;display:flex}.djs-popup-entry-description{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);margin-top:.25em}.djs-popup-label,.djs-popup-entry-description{line-height:1.4em}.djs-popup .entry,.djs-popup .entry-header{margin:1px}.djs-popup-body{flex-direction:column;width:auto}.djs-popup ::-webkit-scrollbar{width:6px}.djs-popup ::-webkit-scrollbar-thumb{background-color:var(--popup-scrollbar-thumb-color);border-radius:3px}.djs-popup ::-webkit-scrollbar-track{box-shadow:none;background:0 0;margin:0;padding:5px}.djs-popup-no-results{color:var(--popup-no-results-color);padding:0 12px 12px}.djs-popup-footer{border-top:solid 1px var(--popup-border-color);padding:5px 12px 7px;display:flex}.djs-popup--pointer .djs-popup-footer{display:none}.djs-popup-entry-docs{visibility:hidden;color:var(--popup-description-color);background:var(--popup-button-background-color);border:1px solid var(--popup-search-border-color);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 3px;transition:background-color .12s,border-color .12s,color .12s;display:flex}.djs-popup--pointer .djs-popup-body .entry:hover .djs-popup-entry-docs{visibility:visible}.djs-popup-body .entry .djs-popup-entry-docs:hover{background:var(--popup-button-hover-background-color)}.djs-popup-entry-docs svg{vertical-align:middle}.djs-popup-footer-docs{font-size:var(--popup-secondary-font-size);color:var(--popup-description-color);align-items:center;gap:3px;text-decoration:none;display:inline-flex}.djs-popup-footer-docs:hover{text-decoration:underline}.djs-popup-footer-docs svg{vertical-align:middle;margin:2px}.djs-palette{background:var(--palette-background-color);border:solid 1px var(--palette-border-color);border-radius:var(--surface-border-radius)}.djs-segment-dragger,.djs-bendpoint{display:none}.djs-segment-dragger .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px;stroke-opacity:1;display:none}.djs-segment-dragger:hover .djs-visual{display:block}.djs-bendpoint .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-width:1px}.djs-segment-dragger:hover,.djs-bendpoints.hover .djs-segment-dragger,.djs-bendpoints.selected .djs-segment-dragger,.djs-bendpoint:hover,.djs-bendpoints.hover .djs-bendpoint,.djs-bendpoints.selected .djs-bendpoint{display:block}.djs-drag-active .djs-bendpoints *,.djs-bendpoints:not(.hover) .floating,.djs-bendpoint.floating:not(.positioned){display:none}.djs-segment-dragger:hover .djs-visual,.djs-segment-dragger.djs-dragging .djs-visual,.djs-bendpoint:hover .djs-visual,.djs-bendpoint.floating .djs-visual{fill:var(--bendpoint-fill-color);stroke:var(--bendpoint-stroke-color);stroke-opacity:1}.djs-bendpoint.floating .djs-hit{pointer-events:none}.djs-segment-dragger .djs-hit,.djs-bendpoint .djs-hit{fill:none;pointer-events:all}.djs-segment-dragger.horizontal .djs-hit{cursor:ns-resize}.djs-segment-dragger.vertical .djs-hit{cursor:ew-resize}.djs-segment-dragger.djs-dragging .djs-hit{pointer-events:none}.djs-updating,.djs-updating>*{pointer-events:none!important}.djs-updating .djs-context-pad,.djs-updating .djs-outline,.djs-updating .djs-bendpoint,.djs-multi-select .djs-bendpoint,.djs-multi-select .djs-segment-dragger,.connect-ok .djs-bendpoint,.connect-not-ok .djs-bendpoint,.drop-ok .djs-bendpoint,.drop-not-ok .djs-bendpoint{display:none!important}.djs-segment-dragger.djs-dragging,.djs-bendpoint.djs-dragging{opacity:1;display:block}.djs-tooltip-error{background:var(--tooltip-error-background-color);border:solid 1px var(--tooltip-error-border-color);border-radius:var(--surface-border-radius);width:160px;color:var(--tooltip-error-color);opacity:.75;padding:6px;font-size:12px;line-height:16px}.djs-tooltip-error:hover{opacity:1}.djs-search-open .djs-context-pad{display:none}.djs-search-open .djs-connection.selected .djs-outline{display:block}.djs-search-container{z-index:10;width:25%;min-width:300px;max-width:400px;font-family:var(--search-font-family);font-size:var(--search-font-size);border-radius:var(--surface-border-radius);box-shadow:0px 2px 6px var(--search-shadow-color);margin-left:auto;margin-right:auto;position:absolute;top:20px;left:0;right:0}.djs-search-container:not(.open){display:none}.djs-search-input{position:relative}.djs-search-input svg{position:absolute;top:7px;left:8px}.djs-search-input input{font-size:var(--search-font-size);border:1px solid var(--search-input-border-color);border-radius:var(--input-border-radius);box-sizing:border-box;width:100%;padding:3px 6px 3px 28px;line-height:21px}.djs-search-input input:focus{background-color:var(--search-input-focus-background-color);border:solid 1px var(--search-input-focus-border-color);outline:none}.djs-search-results{background:var(--search-container-background-color);max-height:200px;position:relative;overflow-y:auto}.djs-search-result{padding:6px 8px}.djs-search-result-primary{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;overflow:hidden}.djs-search-result-secondary{text-overflow:ellipsis;white-space:nowrap;color:var(--search-result-secondary-color);margin:0;font-family:monospace;overflow:hidden}.djs-search-result:hover,.djs-search-result-selected,.djs-search-result-selected:hover{background:var(--search-result-hover-background-color)}.djs-search-open .djs-element .djs-outline{fill:var(--search-preselected-background-color)!important}.djs-element-hidden,.djs-element-hidden .djs-hit,.djs-element-hidden .djs-outline,.djs-label-hidden .djs-label{display:none!important}.djs-element .djs-hit-stroke,.djs-element .djs-hit-click-stroke,.djs-element .djs-hit-all{cursor:move}.cd-c-fill-grund{fill:var(--cd-ui-grund)!important}.cd-c-fill-plot{fill:var(--cd-ui-plot)!important}.cd-c-stroke-plot{stroke:var(--cd-ui-plot)!important}.cd-c-stroke-grund{stroke:var(--cd-ui-grund)!important}.cd-c-fill-flaeche-hoch{fill:var(--cd-ui-flaeche-hoch)!important}.cd-c-stroke-text{stroke:var(--cd-ui-text)!important}.cd-c-fill-text{fill:var(--cd-ui-text)!important}.cd-c-fill-text-leise{fill:var(--cd-ui-text-leise)!important}.cd-c-stroke-kontur{stroke:var(--cd-ui-kontur)!important}.cd-c-stroke-linie{stroke:var(--cd-ui-linie)!important}.cd-c-fill-linie{fill:var(--cd-ui-linie)!important}.cd-c-stroke-interaktion{stroke:var(--cd-ui-interaktion)!important}.cd-c-stroke-danger{stroke:var(--cd-ui-danger)!important}.cd-c-fill-danger{fill:var(--cd-ui-danger)!important}.cd-c-stroke-info{stroke:var(--cd-ui-info)!important}@media screen{[data-cd-theme=dark] .cd-c-bereich{fill:none!important}[data-cd-theme=dark] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=dark] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=dark] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=dark] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}@media screen and (prefers-color-scheme:dark){[data-cd-theme=system] .cd-c-bereich{fill:none!important}[data-cd-theme=system] .cd-c-bereich-success{stroke:var(--cd-ui-success)!important}[data-cd-theme=system] .cd-c-bereich-warning{stroke:var(--cd-ui-warning)!important}[data-cd-theme=system] .cd-c-bereich-info{stroke:var(--cd-ui-info)!important}[data-cd-theme=system] .cd-c-unterleger{stroke:var(--cd-ui-kontur)!important}}:root,[data-cd-theme],.bio-theme-parent.bio-theme-parent{--bio-surface:var(--cd-ui-flaeche-hoch);--bio-surface-overlay:var(--cd-ui-flaeche-hoch);--bio-surface-subtle:var(--cd-ui-flaeche-hoch);--bio-surface-medium:var(--cd-ui-hover);--bio-surface-inverted:var(--cd-ui-flaeche-hoch);--bio-surface-inverted-subtle:var(--cd-ui-hover);--bio-text:var(--cd-ui-text);--bio-text-subtle:var(--cd-ui-text-leise);--bio-text-subtlest:var(--cd-ui-text-leise);--bio-text-on-inverted:var(--cd-ui-text);--bio-border:var(--cd-ui-linie);--bio-border-disabled:var(--cd-ui-linie);--bio-primary:var(--cd-ui-interaktion);--bio-primary-surface:var(--cd-ui-hover);--bio-text-on-primary:var(--cd-weiss);--bio-danger:var(--cd-ui-danger);--bio-danger-surface-subtle:var(--cd-ui-danger-flaeche);--bio-selected-surface:var(--cd-ui-hover);--bio-selected-text:var(--cd-ui-text);--bio-focus:var(--cd-ui-fokus);--bio-focus-surface:var(--cd-ui-hover);--bio-canvas-accent:var(--cd-ui-interaktion);--bio-canvas-accent-subtle:var(--cd-ui-interaktion);--bio-shadow:color-mix(in srgb, var(--cd-schwarz) 30%, transparent);--bio-shadow-subtle:color-mix(in srgb, var(--cd-schwarz) 10%, transparent);--bio-radius-sm:var(--cd-radius-sm);--bio-radius-md:var(--cd-radius-md);--bio-radius-lg:var(--cd-radius-lg)}.djs-parent.djs-parent{--canvas-fill-color:var(--cd-ui-grund);--lasso-fill-color:transparent;--search-preselected-background-color:var(--cd-ui-hover);--snap-line-stroke-color:var(--cd-ui-kontur);--resizer-fill-color:var(--cd-ui-plot);--resizer-stroke-color:var(--cd-ui-interaktion);--bendpoint-fill-color:var(--cd-ui-plot);--bendpoint-stroke-color:var(--cd-ui-interaktion);--shape-connect-allowed-fill-color:var(--cd-ui-hover);--shape-drop-allowed-fill-color:var(--cd-ui-hover);--popup-border-color:var(--cd-ui-linie);--popup-scrollbar-thumb-color:var(--cd-ui-linie);--popup-font-family:"Geist Variable", "Geist", ui-sans-serif, system-ui, sans-serif;--search-font-family:var(--popup-font-family);--hover-tooltip-font-family:var(--popup-font-family)}.djs-parent.djs-parent .djs-shape.drop-not-ok .djs-visual>:first-child,.djs-parent.djs-parent .djs-shape.connect-not-ok .djs-visual>:first-child{stroke:var(--cd-ui-danger)!important;stroke-dasharray:6 4!important}.djs-parent.djs-parent svg.drop-not-ok{outline:2px dashed var(--cd-ui-danger);outline-offset:-2px}.djs-parent.djs-parent .djs-tooltip-error{opacity:1}.bjs-container.bjs-container{--accent-color:var(--cd-ui-interaktion);--breadcrumbs-item-color:var(--cd-ui-link);--breadcrumbs-background-color:var(--cd-ui-flaeche-hoch);--breadcrumbs-border-color:var(--cd-ui-linie);--drilldown-background-color:var(--cd-blau);--drilldown-fill-color:var(--cd-weiss)}.cm-djs-container{background-color:var(--cd-ui-grund);background-image:radial-gradient(var(--cd-ui-linie) 1px, transparent 1px);background-size:22px 22px;width:100%;height:100%;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.cm-djs-container:focus,.cm-djs-container svg:focus:not(:focus-visible){outline:none}.cm-djs-container .djs-element text{-webkit-user-select:none;user-select:none}.cm-djs-container .djs-element.hover .djs-visual>:first-child:not(text),.cm-djs-container .djs-element.selected .djs-visual>:first-child:not(text){stroke:var(--cd-ui-interaktion)!important}.cm-djs-container .djs-outline{stroke:var(--cd-ui-interaktion);stroke-dasharray:3 3}.djs-palette:not([data-chrome=palette]){z-index:110;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-1);align-items:center;padding:3px;display:flex;top:12px;left:50%;transform:translate(-50%)}.djs-palette:not([data-chrome=palette]) .djs-palette-entries,.djs-palette:not([data-chrome=palette]) .group{flex-direction:row;align-items:center;gap:2px;display:flex}.djs-palette:not([data-chrome=palette]) .entry{float:none;border-radius:var(--cd-radius-sm);width:32px;height:32px;color:var(--cd-ui-text);transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease);line-height:normal;position:relative}.djs-palette:not([data-chrome=palette]) .entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-palette:not([data-chrome=palette]) .group+.group{margin-left:8px;padding-left:9px;position:relative}.djs-palette:not([data-chrome=palette]) .group+.group:before{content:"";background:var(--cd-ui-linie);width:1px;position:absolute;top:4px;bottom:4px;left:0}.djs-palette:not([data-chrome=palette]) .cm-palette-entry{justify-content:center;align-items:center;display:flex}.djs-palette:not([data-chrome=palette]) .entry.highlighted-entry{background:var(--cd-ui-hover);box-shadow:inset 0 0 0 2px var(--cd-ui-interaktion);color:var(--cd-ui-text)!important}.cm-palette-svg{pointer-events:none;display:block}.cm-connect-handle{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:var(--cd-shadow-1);color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);justify-content:center;align-items:center;display:flex}.cm-connect-handle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-connect-handle__arrow{display:flex}.djs-context-pad.open{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);width:auto;box-shadow:var(--cd-shadow-2);flex-direction:column;align-items:stretch;gap:2px;padding:3px;display:flex}.djs-context-pad.open:not(:has(.entry)){display:none}.djs-context-pad.cm-pad-flip-x{transform:translate(calc(-100% - 16px),14px)}.djs-context-pad.cm-pad-flip-y{transform:translateY(calc(-100% - 16px))}.djs-context-pad .group{flex-direction:column;align-items:stretch;gap:2px;display:flex}.djs-context-pad .group+.group{border-top:1px solid var(--cd-ui-linie);margin-top:1px;padding-top:3px}.djs-context-pad .entry.cm-pad-entry{box-sizing:border-box;border-radius:var(--cd-radius-sm);width:28px;height:28px;box-shadow:none;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);background:0 0;border:0;justify-content:center;align-items:center;margin:0;display:flex}.djs-context-pad .entry.cm-pad-entry:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.djs-context-pad .entry.cm-pad-entry--danger:hover{background:var(--cd-ui-danger-flaeche);color:var(--cd-ui-danger)}.djs-context-pad .cm-palette-svg{pointer-events:none}.cm-dragging .djs-context-pad,.cm-dragging .djs-context-pad *{pointer-events:none!important}.djs-popup{border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);animation:cm-popup-in var(--cd-motion-fast) var(--cd-ease-out)}.djs-popup .djs-popup-results{padding:4px 6px 6px}.djs-popup .djs-popup-entry-icon{width:24px;height:24px;font-size:1em}.djs-popup .djs-popup-entry-icon .cm-palette-svg{width:100%;height:100%;display:block}.djs-popup .entry.disabled,.djs-popup .entry.disabled.selected{background-color:#0000}.djs-popup .entry.disabled .djs-popup-entry-name{color:var(--cd-ui-text-leise)}.djs-popup .djs-popup-entry-name.cm-popup-active{color:var(--cd-ui-interaktion);font-weight:600}.djs-popup .djs-popup-entry-name.cm-popup-active .djs-popup-label:after{content:" ✓"}@keyframes cm-popup-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.djs-popup{animation:none}}.cm-legend{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);max-height:calc(100% - 32px);box-shadow:var(--cd-shadow-2);z-index:20;min-width:184px;color:var(--cd-ui-text);flex-direction:column;padding:8px 12px 12px 16px;display:flex;position:absolute;bottom:12px;left:12px}.cm-legend__body{min-height:0;overflow-y:auto}.cm-legend__head{flex:none;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px;display:flex}.cm-legend__close{border-radius:var(--cd-radius-sm);width:28px;height:28px;color:var(--cd-ui-text);font:inherit;cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid}.cm-legend__close:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend__group{flex-direction:column;gap:4px;display:flex}.cm-legend__row{min-height:24px;color:var(--cd-ui-text);align-items:center;gap:8px;font-size:13px;display:flex}.cm-legend__divider{background:var(--cd-ui-linie);height:1px;margin:8px 0}.cm-legend__icon{place-items:center;width:24px;height:24px;display:inline-grid}.cm-legend-toggle{z-index:20;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);height:40px;box-shadow:var(--cd-shadow-1);font:inherit;color:var(--cd-ui-text);cursor:pointer;transition:background-color var(--cd-motion-fast) var(--cd-ease), color var(--cd-motion-fast) var(--cd-ease);align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;display:inline-flex;position:absolute;bottom:12px;left:12px}.cm-legend-toggle:hover{background:var(--cd-ui-hover);color:var(--cd-ui-interaktion)}.cm-legend-item{white-space:nowrap;cursor:help;position:relative}.cm-legend-tip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);white-space:normal;pointer-events:none;padding:3px 8px;font-size:13px;font-weight:400;line-height:20px;display:none;position:fixed;transform:translateY(-50%)}.cm-legend-item:hover .cm-legend-tip{display:block}.cm-legend__close:focus-visible,.cm-legend-toggle:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-dragging .cm-legend,.cm-dragging .cm-legend-toggle{pointer-events:none}.cm-legend-group{flex-direction:column;gap:4px;display:flex}:has(>.cm-djs-container>.cm-dragging)>[data-chrome=legend]{pointer-events:none}.cm-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cm-direct-editing .djs-visual text.cm-name,.cm-direct-editing-team .djs-visual .cm-team{display:none}.cm-djs-container .djs-direct-editing-parent{z-index:100;color:var(--cd-ui-text)}.cm-djs-container .djs-direct-editing-content{caret-color:var(--cd-ui-interaktion);overflow-wrap:break-word}.cm-pad-prompt{z-index:100;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);min-width:240px;box-shadow:var(--cd-shadow-3);color:var(--cd-ui-text);padding:8px;position:fixed}.cm-pad-prompt__field{box-sizing:border-box;width:100%;color:var(--cd-ui-text);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);background:var(--cd-ui-flaeche);resize:vertical;outline:none;padding:6px 8px;font-family:inherit;font-size:13px;display:block}.cm-pad-prompt__field:focus-visible,.cm-pad-prompt__field:focus{border-color:var(--cd-ui-interaktion);outline:2px solid var(--cd-ui-fokus);outline-offset:2px}.cm-pad-prompt__hint{color:var(--cd-ui-text-leise);margin-top:6px;font-size:12px}.cm-validation-marker{box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-pill);width:22px;height:22px;box-shadow:var(--cd-shadow-1);cursor:help;place-items:center;display:grid;position:relative}.cm-validation-marker[data-severity=error]{color:var(--cd-ui-danger)}.cm-validation-marker[data-severity=warning]{color:var(--cd-ui-warning)}.cm-validation-tooltip{background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);width:max-content;max-width:280px;box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;z-index:200;padding:3px 8px;font-family:Geist Variable,Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px;line-height:20px;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.cm-validation-marker:hover .cm-validation-tooltip{display:block}.cm-validation-tooltip__message+.cm-validation-tooltip__message{border-top:1px solid var(--cd-ui-linie);margin-top:4px;padding-top:4px}.cm-hover-tooltip{z-index:200;box-sizing:border-box;background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);max-width:min(280px,100% - 24px);box-shadow:var(--cd-shadow-2);color:var(--cd-ui-text);pointer-events:none;flex-direction:column;gap:2px;padding:3px 8px;font-size:13px;line-height:20px;display:flex;position:absolute}.cm-hover-tooltip[hidden]{display:none}.cm-hover-tooltip strong{font-weight:600}.cm-hover-tooltip span{color:var(--cd-ui-text-leise)}.cm-hover-tooltip span[hidden]{display:none}.cm-dialog{box-sizing:border-box;width:min(560px,100cqw - 32px);max-width:none;max-height:calc(100cqh - 32px);color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-md);box-shadow:var(--cd-shadow-3);margin:auto;padding:0;overflow:hidden}.cm-dialog[open]{display:flex}.cm-dialog::backdrop{background:var(--cd-ui-backdrop);-webkit-backdrop-filter:blur(3px)grayscale();backdrop-filter:blur(3px)grayscale()}.cm-dialog-panel,.cm-dialog-form{flex-direction:column;flex:1;min-height:0;display:flex}.cm-dialog-header{justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 8px 24px;display:flex}.cm-dialog-title{margin:0;font-size:21px;font-weight:600;line-height:1.3}.cm-dialog-close{width:32px;height:32px;color:var(--cd-ui-text);cursor:pointer;border-radius:var(--cd-radius-sm);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cm-dialog-close:hover{color:var(--cd-ui-interaktion);background:var(--cd-ui-hover)}.cm-dialog-close svg{display:block}.cm-dialog-body{flex-direction:column;min-height:0;padding:8px 24px 24px;font-size:13px;line-height:1.5;display:flex;overflow:auto}.cm-dialog-footer{border-top:1px solid var(--cd-ui-linie);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.cm-dialog-label{margin-bottom:4px;font-size:13px;font-weight:600}.cm-dialog-input{box-sizing:border-box;width:100%;min-height:36px;font:inherit;color:var(--cd-ui-text);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-kontur);border-radius:var(--cd-radius-sm);padding:8px 12px;font-size:13px;line-height:1.5}.cm-dialog-input::placeholder{color:var(--cd-ui-text-leise)}.cm-dialog-input:focus{border-color:var(--cd-ui-interaktion)}.cm-dialog-button{box-sizing:border-box;min-height:36px;font:inherit;cursor:pointer;border-radius:var(--cd-radius-md);transition:background-color var(--cd-motion-fast) var(--cd-ease), box-shadow var(--cd-motion-fast) var(--cd-ease), transform var(--cd-motion-fast) var(--cd-ease);padding:0 16px;font-size:13px;font-weight:600;line-height:1}.cm-dialog-button[data-variant=secondary]{color:var(--cd-ui-text);background:var(--cd-ui-flaeche-hoch);border:1px solid var(--cd-ui-linie)}.cm-dialog-button[data-variant=secondary]:hover{color:var(--cd-ui-link);background:var(--cd-ui-hover);border-color:var(--cd-ui-interaktion)}.cm-dialog-button[data-variant=primary]{color:var(--cd-weiss);background:var(--cd-blau);box-shadow:var(--cd-shadow-1);border:1px solid #0000}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{background:var(--cd-blau-link);box-shadow:var(--cd-shadow-2);transform:translateY(-1px)}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline:2px solid var(--cd-ui-fokus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.cm-dialog-button{transition:none}.cm-dialog-button[data-variant=primary]:hover,.cm-dialog-button[data-variant=primary]:active{transform:none}}.cm-title-dialog{width:min(440px,100cqw - 32px)}.cm-shortcuts-body{gap:16px}.cm-shortcuts-group-title{color:var(--cd-ui-text-leise);margin:0 0 4px;font-size:13px;font-weight:600}.cm-shortcuts-table{border-collapse:collapse;width:100%}.cm-shortcuts-table tr+tr{border-top:1px solid var(--cd-ui-linie)}.cm-shortcuts-action{text-align:left;padding:6px 12px 6px 0;font-weight:400}.cm-shortcuts-keys{text-align:right;white-space:nowrap;padding:6px 0}.cm-shortcuts-key{color:var(--cd-ui-text-leise);background:var(--cd-ui-grund);border:1px solid var(--cd-ui-linie);border-radius:var(--cd-radius-sm);box-shadow:none;vertical-align:baseline;padding:1px 6px;font-family:Geist Mono Variable,Geist Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;font-weight:400;line-height:18px;display:inline-block}.cm-shortcuts-key+.cm-shortcuts-key{margin-left:6px}:root[data-cd-kontrast=hoch] .cm-dialog{border-color:var(--cd-ui-kontur);box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-button{box-shadow:none}:root[data-cd-kontrast=hoch] .cm-dialog-close:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-button:focus-visible,:root[data-cd-kontrast=hoch] .cm-dialog-input:focus-visible{outline-width:3px}@media (forced-colors:active){.cm-dialog{border-color:canvastext}.cm-dialog-button{border-color:buttontext}.cm-dialog-close:focus-visible,.cm-dialog-button:focus-visible,.cm-dialog-input:focus-visible{outline-color:highlight}}.cm-dragging .djs-overlay-container,.cm-dragging .djs-overlay-container *{pointer-events:none!important}.cm-djs-container .djs-element.connect-ok,.cm-djs-container svg.connect-ok{cursor:crosshair}.cm-djs-container .djs-element.connect-not-ok,.cm-djs-container svg.connect-not-ok{cursor:not-allowed}
2
2
  /*$vite$:1*/
@@ -59,8 +59,10 @@ export default class CmContextPadProvider implements ContextPadProvider {
59
59
  */
60
60
  private appendContext;
61
61
  private startAppend;
62
- /** Open the subdomain-type menu for a freshly appended context, anchored to
63
- * its pad entry — deferred one task so the pad has been positioned first. */
62
+ /**
63
+ * Open the subdomain-type menu for a freshly appended context, anchored to
64
+ * its pad entry — deferred one task so the pad has been positioned first.
65
+ */
64
66
  private openTypeMenu;
65
67
  private relationshipEntries;
66
68
  private editLabelEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"CmContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/CmContextPadProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAG1E,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,4BAA4B,CAAC;AA+BjE,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAuDjF,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,kBAAkB;IAwBnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtC3B,MAAM,CAAC,OAAO,WAiBZ;IAEF,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAC,CAAyE;gBAG1E,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,cAAc,EAC5B,cAAc,EAAE,gBAAgB,EAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IA8E3D,OAAO,CAAC,gBAAgB;IAgCxB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAOzD,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB;IASxE,OAAO,CAAC,cAAc;IAiDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAiCpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IAUnB;kFAC8E;IAC9E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C,4FAA4F;IAC5F,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,UAAU;IAyFlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,QAAQ;IAMhB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAiBtB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;CA4DzB"}
1
+ {"version":3,"file":"CmContextPadProvider.d.ts","sourceRoot":"","sources":["../../src/context-pad/CmContextPadProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,UAAU,MAAM,gDAAgD,CAAC;AAC7E,OAAO,KAAK,EACV,iBAAiB,EAEjB,OAAO,IAAI,kBAAkB,EAC9B,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAG1E,OAAO,KAAK,OAAO,MAAM,yCAAyC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,uCAAuC,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,8CAA8C,CAAC;AAC1E,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,2CAA2C,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,6CAA6C,CAAC;AACzE,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,4BAA4B,CAAC;AA+BjE,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAiDjF,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,kBAAkB;IAwBnE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAtC3B,MAAM,CAAC,OAAO,WAiBZ;IAEF,2EAA2E;IAC3E,OAAO,CAAC,WAAW,CAAC,CAAyE;gBAG1E,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EACnC,OAAO,EAAE,OAAO,EACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,cAAc,EAC5B,cAAc,EAAE,gBAAgB,EAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IA8E3D,OAAO,CAAC,gBAAgB;IAgCxB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB;IAOzD,gCAAgC,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB;IASxE,OAAO,CAAC,cAAc;IAiDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IAkCpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAiBxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAC,CAAqB;IAE1C,4FAA4F;IAC5F,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,UAAU;IAyFlB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,QAAQ;IAMhB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAiBtB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;CA4DzB"}
@@ -17,14 +17,16 @@ export default class ContextMapsRenderer extends BaseRenderer {
17
17
  * by side inside a single axis-aligned parent box.
18
18
  */
19
19
  private endMarkers;
20
- /** A fixed-size coloured sub-label (own colour + border) inside a parent box. */
20
+ /** A fixed-size coloured sub-label inside a parent box. */
21
21
  private miniChip;
22
22
  /** A single small filled, bordered box (background, text colour, border colour). */
23
23
  private chip;
24
- /** The name starts at the FIXED offset below the type header — the gap
24
+ /**
25
+ * The name starts at the FIXED offset below the type header — the gap
25
26
  * between header and name never varies with box size or line count. Lines
26
27
  * that would run past the (fixed-size) box are dropped, the last kept line
27
- * gets an ellipsis. */
28
+ * gets an ellipsis.
29
+ */
28
30
  private appendLabel;
29
31
  }
30
32
  //# sourceMappingURL=ContextMapsRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMapsRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/ContextMapsRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAO5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAiCzF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;IAC3D,MAAM,CAAC,OAAO,WAAgB;gBAElB,QAAQ,EAAE,QAAQ;IAIrB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAc9D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,GAAG,UAAU;IAY3E,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAQ9D,OAAO,CAAC,WAAW;IAkEnB,OAAO,CAAC,gBAAgB;IAuCxB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA8DlB,iFAAiF;IACjF,OAAO,CAAC,QAAQ;IAmChB,oFAAoF;IACpF,OAAO,CAAC,IAAI;IA2CZ;;;4BAGwB;IACxB,OAAO,CAAC,WAAW;CAsCpB"}
1
+ {"version":3,"file":"ContextMapsRenderer.d.ts","sourceRoot":"","sources":["../../src/draw/ContextMapsRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAO5D,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA4CzF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;IAC3D,MAAM,CAAC,OAAO,WAAgB;gBAElB,QAAQ,EAAE,QAAQ;IAIrB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIxC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,UAAU;IAc9D,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,GAAG,UAAU;IAY3E,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAKtC,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM;IAQ9D,OAAO,CAAC,WAAW;IAqEnB,OAAO,CAAC,gBAAgB;IAwCxB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA8DlB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ;IAoChB,oFAAoF;IACpF,OAAO,CAAC,IAAI;IA4CZ;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAsCpB"}
@@ -0,0 +1,22 @@
1
+ import { CmContext } from '../model/di-types.js';
2
+ type ContextColouring = Pick<CmContext, "subdomainType" | "fill" | "stroke">;
3
+ /** The WCAG contrast ratio of two hex colours, or `undefined` when one is no hex colour. */
4
+ export declare function contrastRatio(first: string, second: string): number | undefined;
5
+ /** Text on `fill` is schwarz or weiss, whichever has more contrast (guide §10.6). */
6
+ export declare function readableTextColour(fill: string): string;
7
+ export declare function contextFill(context: ContextColouring): string;
8
+ export declare function contextStroke(context: ContextColouring): string;
9
+ /** The context's name, on whatever fill it has. */
10
+ export declare function contextNameColour(context: ContextColouring): string;
11
+ /**
12
+ * The team caption and its glyph: quiet text on the notation's own fills, where it keeps 4.5:1,
13
+ * and the name's black or white on a fill the author set, which may be any colour.
14
+ */
15
+ export declare function contextTeamColour(context: ContextColouring): string;
16
+ /**
17
+ * The subdomain badge, its type name and glyph, reads like the team caption: the type's own stroke
18
+ * colour stays below 3:1 on its fill. The box keeps the type's fill and stroke as the colour cue.
19
+ */
20
+ export declare function contextBadgeColour(context: ContextColouring): string;
21
+ export {};
22
+ //# sourceMappingURL=contextColours.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextColours.d.ts","sourceRoot":"","sources":["../../src/draw/contextColours.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,KAAK,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;AAmB7E,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAG7D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAG/D;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEpE"}
@@ -8,7 +8,7 @@ export declare const TYPE_LABEL: {
8
8
  readonly letterSpacingEm: 0.03;
9
9
  };
10
10
  export declare const TEAM_ICON_SIZE = 14;
11
- /** The people icon and the team's name at the bottom of a context, in context coordinates. */
11
+ /** The team glyph and the team's name at the bottom of a context, in context coordinates. */
12
12
  export interface TeamRowLayout {
13
13
  /** The icon's left edge, where the row starts. */
14
14
  left: number;
@@ -1 +1 @@
1
- {"version":3,"file":"contextLayout.d.ts","sourceRoot":"","sources":["../../src/draw/contextLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,gGAAgG;AAChG,eAAO,MAAM,UAAU;;;;;CAAsE,CAAC;AAE9F,eAAO,MAAM,cAAc,KAAK,CAAC;AAIjC,8FAA8F;AAC9F,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,aAAa,CAaf;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAQ1D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC,GACjE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYjC"}
1
+ {"version":3,"file":"contextLayout.d.ts","sourceRoot":"","sources":["../../src/draw/contextLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,gGAAgG;AAChG,eAAO,MAAM,UAAU;;;;;CAAsE,CAAC;AAE9F,eAAO,MAAM,cAAc,KAAK,CAAC;AAIjC,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,aAAa,CAaf;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAQ1D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC,GACjE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYjC"}
@@ -1,8 +1,13 @@
1
+ /*! @miragon/context-maps-renderer icon geometry
2
+ * Lucide (lucide-static 1.59.0) @license ISC
3
+ * Copyright (c) 2026 Lucide Icons and Contributors
4
+ * Derived from Feather, as Lucide's LICENSE lists them: arrow-right, circle-x, trash,
5
+ * triangle-alert and x. Feather @license MIT
6
+ * Copyright (c) 2013-present Cole Bemis */
1
7
  /**
2
8
  * The Lucide icons of the in-canvas chrome (context pad, connect handles, the lasso tool, the
3
- * shortcuts dialog), inlined so the renderer has no icon runtime dependency. Copied unchanged from
4
- * lucide-static 1.59.0 (`icon-nodes.json`; ISC, © Lucide Icons and Contributors; `arrow-right`,
5
- * `circle-x`, `trash`, `triangle-alert` and `x` derive from Feather, MIT, © Cole Bemis).
9
+ * shortcuts dialog) and of the team glyph on the canvas, inlined so the renderer has no icon
10
+ * runtime dependency. Copied unchanged from lucide-static 1.59.0 (`icon-nodes.json`).
6
11
  */
7
12
  export declare const LUCIDE: {
8
13
  readonly "arrow-left-right": "<path d=\"M8 3 4 7l4 4\"/><path d=\"M4 7h16\"/><path d=\"m16 21 4-4-4-4\"/><path d=\"M20 17H4\"/>";
@@ -19,6 +24,8 @@ export declare const LUCIDE: {
19
24
  readonly x: "<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>";
20
25
  };
21
26
  export type LucideIconName = keyof typeof LUCIDE;
27
+ /** Guide §11: stroke 2.5 in units of the 24 grid, so the line grows with the icon's size. */
28
+ export declare const LUCIDE_STROKE_WIDTH = 2.5;
22
29
  /**
23
30
  * A chrome icon (guide §5.14, §11): 16px with stroke 2.5 on the 24 grid, so the stroke matches the
24
31
  * shell's chrome icons; `currentColor`, so the surrounding role decides the colour.
@@ -1 +1 @@
1
- {"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAqBT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAMjD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEvD;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAErD"}
1
+ {"version":3,"file":"lucide.d.ts","sourceRoot":"","sources":["../../src/draw/lucide.ts"],"names":[],"mappings":"AAAA;;;;;2CAK2C;AAE3C;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAqBT,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,MAAM,CAAC;AAEjD,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAMvC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEvD;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAErD"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Markup strings for the slots diagram-js and the hosts fill with `innerHTML` (palette and pad
3
+ * entries, popup menu images, legend previews). Every attribute value and every text passes
4
+ * `escapeMarkup`, so a value a host or a document hands in stays a value and never becomes markup.
5
+ */
6
+ declare const markupBrand: unique symbol;
7
+ /** Markup built here: only escaped values, so it may be nested as it is. */
8
+ export type Markup = string & {
9
+ readonly [markupBrand]: true;
10
+ };
11
+ export type MarkupAttributes = Readonly<Record<string, string | number | undefined>>;
12
+ export declare function escapeMarkup(value: string): string;
13
+ export declare function markupText(text: string): Markup;
14
+ /**
15
+ * Skips `undefined` attributes, so an optional value such as a solid line's dash writes no
16
+ * attribute rather than "undefined".
17
+ */
18
+ export declare function markupElement(name: string, attributes: MarkupAttributes, ...children: Markup[]): Markup;
19
+ export {};
20
+ //# sourceMappingURL=markup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markup.d.ts","sourceRoot":"","sources":["../../src/draw/markup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,4EAA4E;AAC5E,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAUrF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,GAAG,QAAQ,EAAE,MAAM,EAAE,GACpB,MAAM,CAUR"}
@@ -1,7 +1,10 @@
1
1
  import { DownstreamRole, RelationshipPattern, SubdomainType, UpstreamRole } from '@miragon/context-maps-schema-model';
2
2
  /** No (or unknown) type → the neutral box an unclassified context gets on the canvas. */
3
3
  export declare function contextIconSvg(type?: SubdomainType): string;
4
- /** The bare subdomain glyph (star / hand / dotted circle) without the box — legend rows. */
4
+ /**
5
+ * The bare subdomain glyph (star / hand / dotted circle) without the box — legend rows. With no box
6
+ * around it, it keeps the type's outline colour as its colour cue; each outline holds 3:1.
7
+ */
5
8
  export declare function subdomainIconSvg(type: SubdomainType, size?: number): string;
6
9
  /** The same coloured role chip (OHS/PL/ACL/CF) the canvas draws at relationship ends. */
7
10
  export declare function roleChipSvg(role: UpstreamRole | DownstreamRole): string;
@@ -1 +1 @@
1
- {"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EAEb,YAAY,EACb,MAAM,oCAAoC,CAAC;AA6B5C,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAW3D;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,SAAK,GAAG,MAAM,CAQvE;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAKvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,mBAA2C,EACpD,IAAI,SAAK,GACR,MAAM,CAYR"}
1
+ {"version":3,"file":"palette-icons.d.ts","sourceRoot":"","sources":["../../src/draw/palette-icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EAEnB,aAAa,EAEb,YAAY,EACb,MAAM,oCAAoC,CAAC;AA4E5C,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAS3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,SAAkB,GAAG,MAAM,CAkBpF;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAmBvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,mBAAqC,EAC9C,IAAI,SAAY,GACf,MAAM,CAyBR"}