@bpmnkit/plugins 0.0.17 → 0.0.19

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.
@@ -437,6 +437,46 @@ export function injectAiBridgeStyles() {
437
437
  color: oklch(75% 0.16 280);
438
438
  }
439
439
  [data-bpmnkit-hud-theme="neon"] .ai-companion-create:hover:not(:disabled) { background: oklch(65% 0.28 280 / 0.2); }
440
+ /* ── Improve diff ── */
441
+ .ai-improve-diff {
442
+ margin-top: 10px;
443
+ border: 1px solid rgba(255,255,255,0.1);
444
+ border-radius: 6px;
445
+ overflow: hidden;
446
+ font-size: 12px;
447
+ }
448
+ .ai-improve-autofix {
449
+ padding: 5px 10px;
450
+ background: rgba(22,163,74,0.12);
451
+ color: rgba(120,220,120,0.9);
452
+ border-bottom: 1px solid rgba(255,255,255,0.06);
453
+ }
454
+ .ai-improve-ops {
455
+ margin: 0; padding: 4px 0;
456
+ list-style: none;
457
+ }
458
+ .ai-improve-op {
459
+ padding: 4px 10px 4px 26px;
460
+ position: relative;
461
+ color: rgba(255,255,255,0.75);
462
+ line-height: 1.4;
463
+ }
464
+ .ai-improve-op::before {
465
+ content: "•";
466
+ position: absolute; left: 10px;
467
+ color: rgba(255,255,255,0.3);
468
+ }
469
+ .ai-improve-op--insert::before { content: "+"; color: rgba(120,220,120,0.8); }
470
+ .ai-improve-op--delete::before { content: "−"; color: rgba(220,80,80,0.8); }
471
+ .ai-improve-op--delete_flow::before { content: "−"; color: rgba(220,80,80,0.8); }
472
+ .ai-improve-op--rename::before,
473
+ .ai-improve-op--update::before,
474
+ .ai-improve-op--redirect_flow::before,
475
+ .ai-improve-op--add_flow::before { content: "~"; color: rgba(220,160,60,0.8); }
476
+ [data-bpmnkit-hud-theme="light"] .ai-improve-diff { border-color: rgba(0,0,0,0.1); }
477
+ [data-bpmnkit-hud-theme="light"] .ai-improve-autofix { color: rgba(22,120,60,0.9); }
478
+ [data-bpmnkit-hud-theme="light"] .ai-improve-op { color: rgba(0,0,0,0.7); }
479
+ [data-bpmnkit-hud-theme="light"] .ai-improve-op::before { color: rgba(0,0,0,0.25); }
440
480
  `;
441
481
  document.head.appendChild(style);
442
482
  }
@@ -1,5 +1,8 @@
1
1
  import type { BpmnDefinitions } from "@bpmnkit/core";
2
- import type { NodeContext } from "./panel.js";
2
+ import { DEFAULT_SERVER, createAiPanel } from "./panel.js";
3
+ import type { NodeContext, PanelOptions } from "./panel.js";
4
+ export { createAiPanel, DEFAULT_SERVER };
5
+ export type { PanelOptions };
3
6
  export type { NodeContext };
4
7
  export interface AiBridgePluginOptions {
5
8
  /** URL of the local AI server. Defaults to http://localhost:3033 */
@@ -1,4 +1,5 @@
1
1
  import { DEFAULT_SERVER, createAiPanel } from "./panel.js";
2
+ export { createAiPanel, DEFAULT_SERVER };
2
3
  function searchContainer(container, id) {
3
4
  for (const el of container.flowElements) {
4
5
  if (el.id === id)
@@ -1,11 +1,11 @@
1
1
  import type { BpmnDefinitions } from "@bpmnkit/core";
2
- declare const DEFAULT_SERVER = "http://localhost:3033";
2
+ export declare const DEFAULT_SERVER = "http://localhost:3033";
3
3
  export interface NodeContext {
4
4
  id: string;
5
5
  type: string;
6
6
  name?: string;
7
7
  }
8
- interface PanelOptions {
8
+ export interface PanelOptions {
9
9
  serverUrl: string;
10
10
  getDefinitions(): BpmnDefinitions | null;
11
11
  loadXml(xml: string): void;
@@ -24,5 +24,4 @@ export declare function createAiPanel(options: PanelOptions): {
24
24
  setContext(node: NodeContext | null): void;
25
25
  submit(prompt: string): void;
26
26
  };
27
- export { DEFAULT_SERVER };
28
27
  //# sourceMappingURL=panel.d.ts.map
@@ -2,7 +2,7 @@ import { BpmnCanvas } from "@bpmnkit/canvas";
2
2
  import { Bpmn, Dmn, Form, compactify, optimize } from "@bpmnkit/core";
3
3
  import { saveCheckpoint } from "../history/index.js";
4
4
  import { injectAiBridgeStyles } from "./css.js";
5
- const DEFAULT_SERVER = "http://localhost:3033";
5
+ export const DEFAULT_SERVER = "http://localhost:3033";
6
6
  // ── SSE streaming ─────────────────────────────────────────────────────────────
7
7
  async function* streamChat(serverUrl, messages, context, backend, signal, action, onXml) {
8
8
  let res;
@@ -65,6 +65,68 @@ async function* streamChat(serverUrl, messages, context, backend, signal, action
65
65
  reader.releaseLock();
66
66
  }
67
67
  }
68
+ async function* streamImprove(serverUrl, compactDiagram, backend, signal, onOps, onXml) {
69
+ let res;
70
+ try {
71
+ res = await fetch(`${serverUrl}/improve`, {
72
+ method: "POST",
73
+ headers: { "Content-Type": "application/json" },
74
+ body: JSON.stringify({
75
+ context: compactDiagram,
76
+ instruction: null,
77
+ backend: backend === "auto" ? null : backend,
78
+ }),
79
+ signal,
80
+ });
81
+ }
82
+ catch (err) {
83
+ if (err instanceof Error && err.name === "AbortError")
84
+ return;
85
+ throw err;
86
+ }
87
+ if (!res.ok || !res.body)
88
+ throw new Error(`Server returned ${res.status}`);
89
+ const reader = res.body.getReader();
90
+ const decoder = new TextDecoder();
91
+ let buf = "";
92
+ try {
93
+ while (!signal.aborted) {
94
+ const { done, value } = await reader.read();
95
+ if (done || signal.aborted)
96
+ break;
97
+ buf += decoder.decode(value, { stream: true });
98
+ const parts = buf.split("\n\n");
99
+ buf = parts.pop() ?? "";
100
+ for (const part of parts) {
101
+ const line = part.startsWith("data: ") ? part.slice(6) : part;
102
+ const trimmed = line.trim();
103
+ if (!trimmed)
104
+ continue;
105
+ try {
106
+ const event = JSON.parse(trimmed);
107
+ if (event.type === "token" && event.text)
108
+ yield event.text;
109
+ if (event.type === "ops")
110
+ onOps?.(event.ops ?? [], event.autoFixCount ?? 0);
111
+ if (event.type === "xml" && event.xml)
112
+ onXml?.(event.xml);
113
+ if (event.type === "done")
114
+ return;
115
+ if (event.type === "error")
116
+ throw new Error(event.message ?? event.text ?? "AI error");
117
+ }
118
+ catch (e) {
119
+ if (e instanceof SyntaxError)
120
+ continue;
121
+ throw e;
122
+ }
123
+ }
124
+ }
125
+ }
126
+ finally {
127
+ reader.releaseLock();
128
+ }
129
+ }
68
130
  // ── Approval-request detection ────────────────────────────────────────────────
69
131
  const APPROVAL_PATTERNS = [
70
132
  /\bapprove\b/i,
@@ -173,6 +235,40 @@ function renderMarkdown(text) {
173
235
  }
174
236
  return frag;
175
237
  }
238
+ // ── Improve diff helpers ──────────────────────────────────────────────────────
239
+ function describeOp(op) {
240
+ switch (op.op) {
241
+ case "rename":
242
+ return `Rename to "${op.name}"`;
243
+ case "update":
244
+ return "Update element properties";
245
+ case "delete":
246
+ return "Remove element";
247
+ case "insert":
248
+ return `Add ${op.element.type}${op.element.name ? ` "${op.element.name}"` : ""}`;
249
+ case "add_flow":
250
+ return `Add flow: ${op.from} → ${op.to}`;
251
+ case "delete_flow":
252
+ return "Remove flow";
253
+ case "redirect_flow":
254
+ return "Redirect flow";
255
+ }
256
+ }
257
+ function classifyOps(ops) {
258
+ const changedIds = [];
259
+ const newIds = [];
260
+ for (const op of ops) {
261
+ if (op.op === "rename" || op.op === "update")
262
+ changedIds.push(op.id);
263
+ else if (op.op === "delete_flow" || op.op === "redirect_flow")
264
+ changedIds.push(op.id);
265
+ else if (op.op === "insert")
266
+ newIds.push(op.element.id);
267
+ else if (op.op === "add_flow" && op.id)
268
+ newIds.push(op.id);
269
+ }
270
+ return { changedIds, newIds };
271
+ }
176
272
  // ── Panel ─────────────────────────────────────────────────────────────────────
177
273
  const NEW_ICON = `<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M8 3H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V8"/><path d="M12 2l2 2-6 6H6v-2l6-6z"/></svg>`;
178
274
  const EXAMPLE_PROMPTS = [
@@ -627,6 +723,112 @@ export function createAiPanel(options) {
627
723
  msgEl.append(actionRow);
628
724
  messagesEl.scrollTop = messagesEl.scrollHeight;
629
725
  }
726
+ // ── Finalize improve message (diff view + preview + apply) ──
727
+ function finalizeImproveMessage(msgEl, fullText, ops, autoFixCount, resultXml) {
728
+ msgEl.classList.remove("ai-msg-cursor");
729
+ while (msgEl.firstChild)
730
+ msgEl.removeChild(msgEl.firstChild);
731
+ msgEl.append(renderMarkdown(fullText));
732
+ // Diff section: auto-fix summary + AI-suggested operations
733
+ if (autoFixCount > 0 || ops.length > 0) {
734
+ const diffEl = document.createElement("div");
735
+ diffEl.className = "ai-improve-diff";
736
+ if (autoFixCount > 0) {
737
+ const autoFixNote = document.createElement("div");
738
+ autoFixNote.className = "ai-improve-autofix";
739
+ autoFixNote.textContent = `✓ ${autoFixCount} issue${autoFixCount === 1 ? "" : "s"} auto-fixed`;
740
+ diffEl.append(autoFixNote);
741
+ }
742
+ if (ops.length > 0) {
743
+ const opsList = document.createElement("ul");
744
+ opsList.className = "ai-improve-ops";
745
+ for (const op of ops) {
746
+ const li = document.createElement("li");
747
+ li.className = `ai-improve-op ai-improve-op--${op.op}`;
748
+ li.textContent = describeOp(op);
749
+ opsList.append(li);
750
+ }
751
+ diffEl.append(opsList);
752
+ }
753
+ msgEl.append(diffEl);
754
+ }
755
+ // Canvas preview with highlights for changed/new elements
756
+ if (resultXml !== undefined) {
757
+ const previewEl = document.createElement("div");
758
+ previewEl.className = "ai-msg-preview";
759
+ const canvas = new BpmnCanvas({
760
+ container: previewEl,
761
+ xml: resultXml,
762
+ grid: false,
763
+ fit: "contain",
764
+ theme: options.getTheme?.() ?? "dark",
765
+ });
766
+ _previewCanvases.push(canvas);
767
+ if (ops.length > 0) {
768
+ const { changedIds, newIds } = classifyOps(ops);
769
+ requestAnimationFrame(() => {
770
+ if (changedIds.length > 0)
771
+ canvas.highlight(changedIds, "changed");
772
+ if (newIds.length > 0)
773
+ canvas.highlight(newIds, "new");
774
+ });
775
+ }
776
+ msgEl.append(previewEl);
777
+ }
778
+ // Action row: copy + apply
779
+ const actionRow = document.createElement("div");
780
+ actionRow.className = "ai-msg-actions";
781
+ const copyBtn = document.createElement("button");
782
+ copyBtn.className = "ai-msg-copy";
783
+ copyBtn.textContent = "Copy";
784
+ copyBtn.addEventListener("click", () => {
785
+ void navigator.clipboard
786
+ .writeText(fullText)
787
+ .then(() => {
788
+ copyBtn.textContent = "Copied!";
789
+ setTimeout(() => {
790
+ copyBtn.textContent = "Copy";
791
+ }, 2000);
792
+ })
793
+ .catch(() => {
794
+ copyBtn.textContent = "Failed";
795
+ setTimeout(() => {
796
+ copyBtn.textContent = "Copy";
797
+ }, 2000);
798
+ });
799
+ });
800
+ actionRow.append(copyBtn);
801
+ if (resultXml !== undefined) {
802
+ const applyBtn = document.createElement("button");
803
+ applyBtn.className = "ai-msg-apply";
804
+ applyBtn.textContent = "Apply to diagram";
805
+ applyBtn.addEventListener("click", async () => {
806
+ applyBtn.disabled = true;
807
+ applyBtn.textContent = "Applying…";
808
+ try {
809
+ const currentDefs = options.getDefinitions();
810
+ if (currentDefs) {
811
+ const ctx = options.getCurrentContext?.();
812
+ if (ctx) {
813
+ await saveCheckpoint(ctx.projectId, ctx.fileId, Bpmn.export(currentDefs));
814
+ }
815
+ }
816
+ options.loadXml(resultXml);
817
+ applyBtn.textContent = "Applied ✓";
818
+ if (options.createCompanionFile) {
819
+ showCompanionOffer(msgEl, resultXml, options.createCompanionFile);
820
+ }
821
+ }
822
+ catch (err) {
823
+ applyBtn.disabled = false;
824
+ applyBtn.textContent = `Apply failed: ${String(err)}`;
825
+ }
826
+ });
827
+ actionRow.append(applyBtn);
828
+ }
829
+ msgEl.append(actionRow);
830
+ messagesEl.scrollTop = messagesEl.scrollHeight;
831
+ }
630
832
  // ── Clear conversation ──
631
833
  function clearConversation() {
632
834
  history.length = 0;
@@ -715,8 +917,50 @@ export function createAiPanel(options) {
715
917
  setUiBusy(false);
716
918
  textarea.focus();
717
919
  }
920
+ // ── Improve with /improve endpoint ──
921
+ async function sendImprove() {
922
+ if (sending)
923
+ return;
924
+ const defs = options.getDefinitions();
925
+ if (!defs)
926
+ return;
927
+ _abortCtrl = new AbortController();
928
+ const signal = _abortCtrl.signal;
929
+ setUiBusy(true);
930
+ history.push({ role: "user", content: "Improve this diagram" });
931
+ addMessage("user", "Improve this diagram");
932
+ const aiMsgEl = addMessage("ai", "");
933
+ aiMsgEl.classList.add("ai-msg-cursor");
934
+ const compactDiagram = compactify(defs);
935
+ let capturedOps = [];
936
+ let capturedAutoFixCount = 0;
937
+ let capturedXml;
938
+ let fullText = "";
939
+ try {
940
+ for await (const token of streamImprove(options.serverUrl, compactDiagram, backendSelect.value, signal, (ops, autoFixCount) => {
941
+ capturedOps = ops;
942
+ capturedAutoFixCount = autoFixCount;
943
+ }, (xml) => {
944
+ capturedXml = xml;
945
+ })) {
946
+ fullText += token;
947
+ aiMsgEl.textContent = fullText;
948
+ messagesEl.scrollTop = messagesEl.scrollHeight;
949
+ }
950
+ }
951
+ catch (err) {
952
+ if (!signal.aborted) {
953
+ fullText = `${fullText ? `${fullText}\n\n` : ""}Error: ${err instanceof Error ? err.message : String(err)}`;
954
+ }
955
+ }
956
+ finalizeImproveMessage(aiMsgEl, fullText, capturedOps, capturedAutoFixCount, capturedXml);
957
+ history.push({ role: "ai", content: fullText });
958
+ _abortCtrl = null;
959
+ setUiBusy(false);
960
+ textarea.focus();
961
+ }
718
962
  // ── Event wiring ──
719
- improveBtn.addEventListener("click", () => void sendAction("Improve this diagram", "improve"));
963
+ improveBtn.addEventListener("click", () => void sendImprove());
720
964
  explainBtn.addEventListener("click", () => void sendAction("Explain this diagram", "explain"));
721
965
  explainElementBtn.addEventListener("click", () => void sendAction("Explain this element", "explain", true));
722
966
  sendBtn.addEventListener("click", () => void send());
@@ -744,5 +988,4 @@ export function createAiPanel(options) {
744
988
  }
745
989
  return { panel, open, close, setContext, submit };
746
990
  }
747
- export { DEFAULT_SERVER };
748
991
  //# sourceMappingURL=panel.js.map
@@ -1,4 +1,4 @@
1
1
  export declare const CONFIG_PANEL_STYLE_ID = "bpmnkit-config-panel-styles-v1";
2
- export declare const CONFIG_PANEL_CSS = "\n/* \u2500\u2500 Inspector panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/*\n * top: 36px matches the height of the .bpmnkit-tabs bar from canvas-plugin-tabs,\n * so the inspector panel does not overlap the tab bar.\n */\n.bpmnkit-cfg-full {\n position: fixed;\n right: 0;\n top: 36px;\n bottom: 0;\n width: 320px;\n background: var(--bpmnkit-panel-bg, rgba(13,13,22,0.92));\n backdrop-filter: blur(16px);\n border-left: 1px solid var(--bpmnkit-panel-border, rgba(255,255,255,0.08));\n box-shadow: -8px 0 40px rgba(0,0,0,0.6);\n display: flex;\n flex-direction: column;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 13px;\n color: rgba(255,255,255,0.85);\n z-index: 9999;\n transition: width 0.2s ease;\n}\n.bpmnkit-cfg-full--collapsed {\n width: 40px;\n}\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-info,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-close,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-docs-link,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-search-bar,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-guide-bar,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-tabs-area,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-body,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-search-results {\n display: none;\n}\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-header {\n justify-content: center;\n padding: 14px 0;\n}\n\n/* Hosted mode \u2014 renders inside a dock pane instead of as a fixed overlay */\n.bpmnkit-cfg-full--hosted {\n position: static !important;\n width: auto !important;\n top: auto; right: auto; bottom: auto;\n box-shadow: none; border-left: none; backdrop-filter: none;\n flex: 1; min-height: 0;\n}\n/* suppress controls that the dock replaces */\n.bpmnkit-cfg-full--hosted .bpmnkit-cfg-resize-handle,\n.bpmnkit-cfg-full--hosted .bpmnkit-cfg-collapse-btn { display: none; }\n\n/* Resize handle \u2014 a thin grab zone along the left edge */\n.bpmnkit-cfg-resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 5px;\n cursor: ew-resize;\n z-index: 1;\n}\n.bpmnkit-cfg-resize-handle:hover {\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-full-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px 10px;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-full-info {\n flex: 1;\n min-width: 0;\n}\n.bpmnkit-cfg-full-type {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.35);\n margin-bottom: 2px;\n}\n.bpmnkit-cfg-full-template {\n font-size: 11px;\n font-weight: 600;\n color: var(--bpmnkit-accent, #6b9df7);\n margin-bottom: 1px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-full-name {\n font-size: 14px;\n font-weight: 600;\n color: #fff;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n/* Docs link \u2014 ? button shown when the schema has a documentationRef */\n.bpmnkit-cfg-docs-link {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n border: 1px solid rgba(255,255,255,0.2);\n color: rgba(255,255,255,0.45);\n font-size: 11px;\n font-weight: 700;\n text-decoration: none;\n flex-shrink: 0;\n transition: border-color 0.1s, color 0.1s, background 0.1s;\n}\n.bpmnkit-cfg-docs-link:hover {\n color: var(--bpmnkit-accent, #6b9df7);\n border-color: var(--bpmnkit-accent, #6b9df7);\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n}\n.bpmnkit-cfg-collapse-btn {\n width: 28px;\n height: 28px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 18px;\n line-height: 1;\n flex-shrink: 0;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-collapse-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }\n.bpmnkit-cfg-full-close {\n width: 28px;\n height: 28px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 20px;\n line-height: 1;\n flex-shrink: 0;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-full-close:hover { background: rgba(255,255,255,0.08); color: #fff; }\n\n/* \u2500\u2500 Search bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-search-bar {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-search-input {\n flex: 1;\n height: 28px;\n padding: 0 8px;\n background: rgba(255,255,255,0.07);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 5px;\n color: rgba(255,255,255,0.85);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n}\n.bpmnkit-cfg-search-input::placeholder { color: rgba(255,255,255,0.28); }\n.bpmnkit-cfg-search-input:focus {\n border-color: var(--bpmnkit-accent, #6b9df7);\n background: rgba(255,255,255,0.1);\n}\n.bpmnkit-cfg-search-clear {\n width: 22px;\n height: 22px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.35);\n cursor: pointer;\n padding: 0;\n /* display toggled via JS */\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n font-size: 14px;\n flex-shrink: 0;\n transition: color 0.1s, background 0.1s;\n}\n.bpmnkit-cfg-search-clear:hover { color: #fff; background: rgba(255,255,255,0.08); }\n\n/* \u2500\u2500 Guide bar (field assistant) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-guide-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 7px 14px;\n background: rgba(248, 113, 113, 0.09);\n border-bottom: 1px solid rgba(248, 113, 113, 0.18);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-guide-info {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n.bpmnkit-cfg-guide-icon {\n width: 16px;\n height: 16px;\n background: var(--bpmnkit-danger, #f87171);\n border-radius: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 800;\n color: #fff;\n flex-shrink: 0;\n line-height: 1;\n}\n.bpmnkit-cfg-guide-text {\n font-size: 11px;\n font-weight: 500;\n color: rgba(248, 113, 113, 0.9);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-guide-btn {\n flex-shrink: 0;\n padding: 3px 10px;\n border-radius: 4px;\n border: 1px solid rgba(248, 113, 113, 0.4);\n background: rgba(248, 113, 113, 0.12);\n color: var(--bpmnkit-danger, #f87171);\n font-size: 11px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.1s, border-color 0.1s;\n white-space: nowrap;\n}\n.bpmnkit-cfg-guide-btn:hover {\n background: rgba(248, 113, 113, 0.22);\n border-color: rgba(248, 113, 113, 0.6);\n}\n\n/* \u2500\u2500 Search results \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-search-results {\n flex: 1;\n overflow-y: auto;\n padding: 4px 22px 32px;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n.bpmnkit-cfg-search-group-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.3);\n margin: 16px 0 10px;\n padding-bottom: 5px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n}\n.bpmnkit-cfg-search-group-label:first-child { margin-top: 10px; }\n.bpmnkit-cfg-search-empty {\n font-size: 12px;\n color: rgba(255,255,255,0.3);\n text-align: center;\n padding: 28px 0;\n}\n\n/* \u2500\u2500 Tabs area (wrapper + scroll buttons) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-tabs-area {\n display: flex;\n align-items: stretch;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n flex-shrink: 0;\n overflow: hidden;\n}\n.bpmnkit-cfg-tabs {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-end;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.bpmnkit-cfg-tabs::-webkit-scrollbar { display: none; }\n.bpmnkit-cfg-tab-btn {\n padding: 10px 14px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n transition: color 0.1s, border-color 0.1s;\n margin-bottom: -1px;\n flex-shrink: 0;\n}\n.bpmnkit-cfg-tab-btn:hover { color: rgba(255,255,255,0.75); }\n.bpmnkit-cfg-tab-btn.active { color: var(--bpmnkit-accent, #6b9df7); border-bottom-color: var(--bpmnkit-accent, #6b9df7); }\n/* Red dot shown after tab label when the group has required-empty fields */\n.bpmnkit-cfg-tab-btn.has-error::after {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--bpmnkit-danger, #f87171);\n margin-left: 5px;\n vertical-align: middle;\n flex-shrink: 0;\n}\n\n/* Arrow buttons for overflowing tabs */\n.bpmnkit-cfg-tabs-scroll-btn {\n flex-shrink: 0;\n width: 26px;\n background: none;\n border: none;\n border-radius: 0;\n color: rgba(255,255,255,0.5);\n cursor: pointer;\n font-size: 16px;\n line-height: 1;\n padding: 0;\n /* display toggled via JS */\n align-items: center;\n justify-content: center;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-tabs-scroll-btn:hover { color: #fff; background: rgba(255,255,255,0.08); }\n.bpmnkit-cfg-tabs-scroll-btn--prev { border-right: 1px solid rgba(255,255,255,0.06); }\n.bpmnkit-cfg-tabs-scroll-btn--next { border-left: 1px solid rgba(255,255,255,0.06); }\n\n/* \u2500\u2500 Scrollable body \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-full-body {\n flex: 1;\n overflow-y: auto;\n padding: 22px 22px 32px;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n\n/* \u2500\u2500 Groups & Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-group-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.3);\n margin-bottom: 14px;\n padding-bottom: 6px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n}\n.bpmnkit-cfg-field {\n margin-bottom: 14px;\n}\n.bpmnkit-cfg-field-label {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: rgba(255,255,255,0.55);\n margin-bottom: 5px;\n cursor: default;\n}\n.bpmnkit-cfg-field-label[title] { cursor: help; }\n.bpmnkit-cfg-field-docs {\n font-size: 10px;\n color: var(--bpmnkit-accent, #6b9df7);\n text-decoration: none;\n opacity: 0.7;\n transition: opacity 0.1s;\n}\n.bpmnkit-cfg-field-docs:hover { opacity: 1; }\n.bpmnkit-cfg-required-star {\n color: var(--bpmnkit-danger, #f87171);\n font-weight: 700;\n margin-left: 2px;\n}\n.bpmnkit-cfg-field--invalid {\n border-left: 2px solid var(--bpmnkit-danger, #f87171);\n padding-left: 8px;\n}\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-input,\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-select,\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-textarea {\n border-color: var(--bpmnkit-danger, #f87171);\n}\n\n.bpmnkit-cfg-input,\n.bpmnkit-cfg-select,\n.bpmnkit-cfg-textarea {\n width: 100%;\n padding: 7px 10px;\n background: rgba(255,255,255,0.06);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n}\n.bpmnkit-cfg-input:focus,\n.bpmnkit-cfg-select:focus,\n.bpmnkit-cfg-textarea:focus {\n border-color: var(--bpmnkit-accent, #6b9df7);\n background-color: rgba(255,255,255,0.09);\n}\n.bpmnkit-cfg-select {\n appearance: none;\n cursor: pointer;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n padding-right: 28px;\n}\n.bpmnkit-cfg-textarea {\n resize: vertical;\n min-height: 68px;\n line-height: 1.5;\n font-family: var(--bpmnkit-font-mono, ui-monospace, \"SF Mono\", monospace);\n font-size: 11px;\n}\n.bpmnkit-cfg-field-hint {\n font-size: 11px;\n color: rgba(255,255,255,0.3);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n/* \u2500\u2500 Field error message \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-field-error {\n font-size: 11px;\n color: var(--bpmnkit-danger, #f87171);\n margin-top: 3px;\n line-height: 1.3;\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-error { color: var(--bpmnkit-danger, #dc2626); }\n\n/* \u2500\u2500 FEEL expression field \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* FEEL/string mode toggle \u2014 appears at the right end of a feel-expression label row */\n.bpmnkit-cfg-feel-mode-btn {\n margin-left: auto;\n flex-shrink: 0;\n padding: 1px 6px;\n border-radius: 3px;\n border: 1px solid rgba(255,255,255,0.12);\n background: none;\n color: rgba(255,255,255,0.3);\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n cursor: pointer;\n transition: background 0.1s, color 0.1s, border-color 0.1s;\n}\n.bpmnkit-cfg-feel-mode-btn:hover {\n background: rgba(255,255,255,0.06);\n color: rgba(255,255,255,0.55);\n}\n.bpmnkit-cfg-feel-mode-btn--active {\n border-color: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n color: var(--bpmnkit-accent, #6b9df7);\n}\n.bpmnkit-cfg-feel-mode-btn--active:hover { background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15)); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn {\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.3);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn:hover {\n background: rgba(0,0,0,0.05);\n color: rgba(0,0,0,0.55);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn--active {\n border-color: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n color: var(--bpmnkit-accent, #1a56db);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn--active:hover { background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n\n.bpmnkit-cfg-feel-ta {\n width: 100%;\n min-height: 68px;\n padding: 7px 10px;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n font-size: 11px;\n font-family: var(--bpmnkit-font-mono, ui-monospace, \"SF Mono\", monospace);\n line-height: 1.5;\n resize: vertical;\n outline: none;\n transition: border-color 0.15s;\n box-sizing: border-box;\n}\n\n.bpmnkit-cfg-feel-playground-btn {\n display: inline-flex;\n margin-top: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n border: 1px solid rgba(255,255,255,0.12);\n background: none;\n color: var(--bpmnkit-accent, #6b9df7);\n font-size: 11px;\n cursor: pointer;\n transition: background 0.1s;\n}\n.bpmnkit-cfg-feel-playground-btn:hover { background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15)); }\n\n/* Light theme overrides */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-playground-btn {\n border-color: rgba(0,0,0,0.12);\n color: var(--bpmnkit-accent, #1a56db);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-playground-btn:hover { background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n\n/* \u2500\u2500 Toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-toggle-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmnkit-cfg-toggle-label {\n font-size: 12px;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n}\n.bpmnkit-cfg-toggle-label[title] { cursor: help; }\n.bpmnkit-cfg-toggle {\n position: relative;\n display: inline-flex;\n width: 34px;\n height: 18px;\n flex-shrink: 0;\n cursor: pointer;\n}\n.bpmnkit-cfg-toggle input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n}\n.bpmnkit-cfg-toggle-track {\n position: absolute;\n inset: 0;\n background: rgba(255,255,255,0.15);\n border-radius: 9px;\n transition: background 0.2s;\n}\n.bpmnkit-cfg-toggle input:checked + .bpmnkit-cfg-toggle-track { background: var(--bpmnkit-accent, #6b9df7); }\n.bpmnkit-cfg-toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 50%;\n transition: transform 0.2s;\n pointer-events: none;\n}\n.bpmnkit-cfg-toggle input:checked ~ .bpmnkit-cfg-toggle-thumb { transform: translateX(16px); }\n\n/* \u2500\u2500 Action button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border-radius: 4px;\n border: 1px solid rgba(255,255,255,0.15);\n background: rgba(255,255,255,0.07);\n color: rgba(255,255,255,0.85);\n font-size: 12px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.bpmnkit-cfg-action-btn:hover {\n background: rgba(255,255,255,0.13);\n border-color: rgba(255,255,255,0.25);\n}\n\n/* \u2500\u2500 Light theme overrides \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full {\n background: var(--bpmnkit-panel-bg, rgba(255,255,255,0.92));\n border-left-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));\n box-shadow: -8px 0 40px rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-header { border-bottom-color: rgba(0,0,0,0.07); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-type { color: rgba(0,0,0,0.35); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-template { color: var(--bpmnkit-accent, #1a56db); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-name { color: rgba(0,0,0,0.9); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-docs-link { color: rgba(0,0,0,0.4); border-color: rgba(0,0,0,0.2); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-docs-link:hover { color: var(--bpmnkit-accent, #1a56db); border-color: var(--bpmnkit-accent, #1a56db); background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-collapse-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-collapse-btn:hover { background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.9); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-close { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-close:hover { background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.9); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-bar { border-bottom-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-input {\n background: rgba(0,0,0,0.04);\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-input::placeholder { color: rgba(0,0,0,0.3); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-clear { color: rgba(0,0,0,0.35); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-clear:hover { color: rgba(0,0,0,0.9); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-results { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-group-label { color: rgba(0,0,0,0.35); border-bottom-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-empty { color: rgba(0,0,0,0.35); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-area { border-bottom-color: rgba(0,0,0,0.07); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tab-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tab-btn:hover { color: rgba(0,0,0,0.7); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn:hover { color: rgba(0,0,0,0.9); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn--prev { border-right-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn--next { border-left-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-body { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-group-label {\n color: rgba(0,0,0,0.35);\n border-bottom-color: rgba(0,0,0,0.06);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-label { color: rgba(0,0,0,0.55); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-hint { color: rgba(0,0,0,0.4); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-input,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-textarea {\n background-color: rgba(0,0,0,0.04);\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-input:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-textarea:focus {\n background-color: rgba(0,0,0,0.06);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(0,0,0,0.45)' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-toggle-label { color: rgba(0,0,0,0.7); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-toggle-track { background: rgba(0,0,0,0.12); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-action-btn {\n border-color: rgba(0,0,0,0.15);\n background: rgba(0,0,0,0.04);\n color: rgba(0,0,0,0.75);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-action-btn:hover {\n background: rgba(0,0,0,0.08);\n border-color: rgba(0,0,0,0.2);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-resize-handle:hover {\n background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-bar {\n background: rgba(248, 113, 113, 0.06);\n border-bottom-color: rgba(248, 113, 113, 0.15);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-text { color: var(--bpmnkit-danger, #dc2626); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-btn {\n color: var(--bpmnkit-danger, #dc2626);\n border-color: rgba(220, 38, 38, 0.3);\n background: rgba(220, 38, 38, 0.07);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-btn:hover {\n background: rgba(220, 38, 38, 0.14);\n border-color: rgba(220, 38, 38, 0.5);\n}\n\n/* \u2500\u2500 Neon theme overrides \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full {\n background: oklch(8% 0.03 270 / 0.96);\n border-left-color: oklch(65% 0.28 280 / 0.2);\n box-shadow: -8px 0 40px oklch(0% 0 0 / 0.7), 0 0 0 1px oklch(65% 0.28 280 / 0.05);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-header { border-bottom-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-type { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-template { color: oklch(73% 0.16 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-name { color: oklch(88% 0.02 270); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-docs-link { color: oklch(55% 0.06 280); border-color: oklch(65% 0.28 280 / 0.25); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-docs-link:hover { color: oklch(73% 0.16 280); border-color: oklch(65% 0.28 280 / 0.5); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-collapse-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-collapse-btn:hover { background: oklch(65% 0.28 280 / 0.1); color: oklch(88% 0.02 270); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-close { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-close:hover { background: oklch(65% 0.28 280 / 0.1); color: oklch(88% 0.02 270); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-bar { border-bottom-color: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input {\n background: oklch(65% 0.28 280 / 0.05);\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(88% 0.02 270);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input::placeholder { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input:focus { border-color: oklch(65% 0.28 280 / 0.45); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-clear { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-clear:hover { color: oklch(88% 0.02 270); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-results { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-group-label { color: oklch(50% 0.06 280); border-bottom-color: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-empty { color: oklch(50% 0.06 280); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-area { border-bottom-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn:hover { color: oklch(73% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn.active { color: oklch(73% 0.16 280); border-bottom-color: oklch(73% 0.16 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn:hover { color: oklch(88% 0.02 270); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn--prev { border-right-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn--next { border-left-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-body { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-group-label {\n color: oklch(50% 0.06 280);\n border-bottom-color: oklch(65% 0.28 280 / 0.1);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-label { color: oklch(55% 0.08 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-hint { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-error { color: oklch(70% 0.18 20); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-input,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-textarea {\n background: oklch(65% 0.28 280 / 0.05);\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(88% 0.02 270);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-input:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-textarea:focus {\n border-color: oklch(65% 0.28 280 / 0.45);\n background: oklch(65% 0.28 280 / 0.08);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%238080c0' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn {\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(50% 0.06 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn:hover {\n background: oklch(65% 0.28 280 / 0.08);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn--active {\n border-color: oklch(65% 0.28 280 / 0.3);\n background: oklch(65% 0.28 280 / 0.12);\n color: oklch(73% 0.16 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-playground-btn {\n border-color: oklch(65% 0.28 280 / 0.2);\n color: oklch(73% 0.16 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-playground-btn:hover { background: oklch(65% 0.28 280 / 0.1); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle-label { color: oklch(65% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle-track { background: oklch(65% 0.28 280 / 0.15); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle input:checked + .bpmnkit-cfg-toggle-track { background: oklch(65% 0.28 280 / 0.7); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-action-btn {\n border-color: oklch(65% 0.28 280 / 0.2);\n background: oklch(65% 0.28 280 / 0.06);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-action-btn:hover {\n background: oklch(65% 0.28 280 / 0.12);\n border-color: oklch(65% 0.28 280 / 0.35);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-resize-handle:hover { background: oklch(65% 0.28 280 / 0.1); }\n\n/* \u2500\u2500 Searchable select \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-ss-trigger {\n width: 100%;\n padding: 7px 10px;\n background: rgba(255,255,255,0.06);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n text-align: left;\n cursor: pointer;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.bpmnkit-cfg-ss-trigger:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.18); }\n.bpmnkit-cfg-ss-trigger:focus,\n.bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: var(--bpmnkit-accent, #6b9df7); background: rgba(255,255,255,0.09); }\n.bpmnkit-cfg-ss-trigger-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.bpmnkit-cfg-ss-arrow {\n flex-shrink: 0;\n width: 10px; height: 6px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-size: contain;\n}\n/* Dropdown panel \u2014 appended to document.body, positioned fixed */\n.bpmnkit-cfg-ss-dropdown {\n background: #1a1a2e;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.6);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.bpmnkit-cfg-ss-search {\n padding: 8px 10px;\n background: rgba(255,255,255,0.05);\n border: none;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n.bpmnkit-cfg-ss-search::placeholder { color: rgba(255,255,255,0.3); }\n.bpmnkit-cfg-ss-list {\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n.bpmnkit-cfg-ss-option {\n padding: 7px 10px;\n font-size: 12px;\n color: rgba(255,255,255,0.85);\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-ss-option--focused { background: rgba(255,255,255,0.08); }\n.bpmnkit-cfg-ss-option--selected { color: var(--bpmnkit-accent, #6b9df7); }\n.bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: rgba(107,157,247,0.1); }\n.bpmnkit-cfg-ss-empty { padding: 10px; font-size: 12px; color: rgba(255,255,255,0.3); text-align: center; }\n/* Neon theme \u2014 applied via data-theme=\"neon\" on the dropdown element itself */\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] {\n background: oklch(9% 0.025 270);\n border-color: oklch(65% 0.28 280 / 0.2);\n box-shadow: 0 8px 32px oklch(0% 0 0 / 0.7), 0 0 0 1px oklch(65% 0.28 280 / 0.1);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-search {\n background: oklch(65% 0.28 280 / 0.05);\n border-bottom-color: oklch(65% 0.28 280 / 0.12);\n color: oklch(88% 0.02 270);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-search::placeholder { color: oklch(55% 0.06 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-list { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option { color: oklch(65% 0.1 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--focused { background: oklch(65% 0.28 280 / 0.08); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--selected { color: oklch(73% 0.16 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: oklch(65% 0.28 280 / 0.12); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-empty { color: oklch(50% 0.06 280); }\n/* Neon theme trigger */\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger { background: oklch(65% 0.28 280 / 0.06); border-color: oklch(65% 0.28 280 / 0.2); color: oklch(65% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger:hover { background: oklch(65% 0.28 280 / 0.1); border-color: oklch(65% 0.28 280 / 0.3); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: oklch(65% 0.28 280 / 0.5); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-arrow {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%238080c0' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n/* Light theme \u2014 applied via data-theme=\"light\" on the dropdown element itself */\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] {\n background: #ffffff;\n border-color: rgba(0,0,0,0.12);\n box-shadow: 0 4px 20px rgba(0,0,0,0.15);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-search {\n background: rgba(0,0,0,0.03);\n border-bottom-color: rgba(0,0,0,0.08);\n color: rgba(0,0,0,0.85);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-search::placeholder { color: rgba(0,0,0,0.3); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-list { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option { color: rgba(0,0,0,0.85); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--focused { background: rgba(0,0,0,0.05); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--selected { color: var(--bpmnkit-accent, #1a56db); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: rgba(26,86,219,0.08); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-empty { color: rgba(0,0,0,0.35); }\n/* Light theme trigger */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.12); color: rgba(0,0,0,0.85); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger:hover { background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.2); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: var(--bpmnkit-accent, #1a56db); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-arrow {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(0,0,0,0.45)' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n";
2
+ export declare const CONFIG_PANEL_CSS = "\n/* \u2500\u2500 Inspector panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/*\n * top: 36px matches the height of the .bpmnkit-tabs bar from canvas-plugin-tabs,\n * so the inspector panel does not overlap the tab bar.\n */\n.bpmnkit-cfg-full {\n position: fixed;\n right: 0;\n top: 36px;\n bottom: 0;\n width: 320px;\n background: var(--bpmnkit-panel-bg, rgba(13,13,22,0.92));\n backdrop-filter: blur(16px);\n border-left: 1px solid var(--bpmnkit-panel-border, rgba(255,255,255,0.08));\n box-shadow: -8px 0 40px rgba(0,0,0,0.6);\n display: flex;\n flex-direction: column;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 13px;\n color: rgba(255,255,255,0.85);\n z-index: 9999;\n transition: width 0.2s ease;\n}\n.bpmnkit-cfg-full--collapsed {\n width: 40px;\n}\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-info,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-close,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-docs-link,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-search-bar,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-guide-bar,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-tabs-area,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-body,\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-search-results {\n display: none;\n}\n.bpmnkit-cfg-full--collapsed .bpmnkit-cfg-full-header {\n justify-content: center;\n padding: 14px 0;\n}\n\n/* Hosted mode \u2014 renders inside a dock pane instead of as a fixed overlay */\n.bpmnkit-cfg-full--hosted {\n position: static !important;\n width: auto !important;\n top: auto; right: auto; bottom: auto;\n box-shadow: none; border-left: none; backdrop-filter: none;\n flex: 1; min-height: 0;\n}\n/* suppress controls that the dock replaces */\n.bpmnkit-cfg-full--hosted .bpmnkit-cfg-resize-handle,\n.bpmnkit-cfg-full--hosted .bpmnkit-cfg-collapse-btn { display: none; }\n\n/* Resize handle \u2014 a thin grab zone along the left edge */\n.bpmnkit-cfg-resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 5px;\n cursor: ew-resize;\n z-index: 1;\n}\n.bpmnkit-cfg-resize-handle:hover {\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-full-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 14px 10px;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-full-info {\n flex: 1;\n min-width: 0;\n}\n.bpmnkit-cfg-full-type {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.35);\n margin-bottom: 2px;\n}\n.bpmnkit-cfg-full-template {\n font-size: 11px;\n font-weight: 600;\n color: var(--bpmnkit-accent, #6b9df7);\n margin-bottom: 1px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-full-name {\n display: block;\n width: 100%;\n font-size: 14px;\n font-weight: 600;\n color: #fff;\n background: transparent;\n border: none;\n border-bottom: 1px solid transparent;\n outline: none;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: inherit;\n cursor: text;\n border-radius: 0;\n}\n.bpmnkit-cfg-full-name:not([readonly]):hover {\n border-bottom-color: rgba(255,255,255,0.2);\n}\n.bpmnkit-cfg-full-name:not([readonly]):focus {\n border-bottom-color: var(--bpmnkit-accent, #6b9df7);\n}\n.bpmnkit-cfg-full-name::placeholder {\n color: rgba(255,255,255,0.3);\n font-weight: 400;\n}\n/* Docs link \u2014 ? button shown when the schema has a documentationRef */\n.bpmnkit-cfg-docs-link {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n border: 1px solid rgba(255,255,255,0.2);\n color: rgba(255,255,255,0.45);\n font-size: 11px;\n font-weight: 700;\n text-decoration: none;\n flex-shrink: 0;\n transition: border-color 0.1s, color 0.1s, background 0.1s;\n}\n.bpmnkit-cfg-docs-link:hover {\n color: var(--bpmnkit-accent, #6b9df7);\n border-color: var(--bpmnkit-accent, #6b9df7);\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n}\n.bpmnkit-cfg-collapse-btn {\n width: 28px;\n height: 28px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 18px;\n line-height: 1;\n flex-shrink: 0;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-collapse-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }\n.bpmnkit-cfg-full-close {\n width: 28px;\n height: 28px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n font-size: 20px;\n line-height: 1;\n flex-shrink: 0;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-full-close:hover { background: rgba(255,255,255,0.08); color: #fff; }\n\n/* \u2500\u2500 Search bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-search-bar {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px 12px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-search-input {\n flex: 1;\n height: 28px;\n padding: 0 8px;\n background: rgba(255,255,255,0.07);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 5px;\n color: rgba(255,255,255,0.85);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n}\n.bpmnkit-cfg-search-input::placeholder { color: rgba(255,255,255,0.28); }\n.bpmnkit-cfg-search-input:focus {\n border-color: var(--bpmnkit-accent, #6b9df7);\n background: rgba(255,255,255,0.1);\n}\n.bpmnkit-cfg-search-clear {\n width: 22px;\n height: 22px;\n background: none;\n border: none;\n color: rgba(255,255,255,0.35);\n cursor: pointer;\n padding: 0;\n /* display toggled via JS */\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n font-size: 14px;\n flex-shrink: 0;\n transition: color 0.1s, background 0.1s;\n}\n.bpmnkit-cfg-search-clear:hover { color: #fff; background: rgba(255,255,255,0.08); }\n\n/* \u2500\u2500 Guide bar (field assistant) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-guide-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 7px 14px;\n background: rgba(248, 113, 113, 0.09);\n border-bottom: 1px solid rgba(248, 113, 113, 0.18);\n flex-shrink: 0;\n}\n.bpmnkit-cfg-guide-info {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n.bpmnkit-cfg-guide-icon {\n width: 16px;\n height: 16px;\n background: var(--bpmnkit-danger, #f87171);\n border-radius: 50%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 800;\n color: #fff;\n flex-shrink: 0;\n line-height: 1;\n}\n.bpmnkit-cfg-guide-text {\n font-size: 11px;\n font-weight: 500;\n color: rgba(248, 113, 113, 0.9);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-guide-btn {\n flex-shrink: 0;\n padding: 3px 10px;\n border-radius: 4px;\n border: 1px solid rgba(248, 113, 113, 0.4);\n background: rgba(248, 113, 113, 0.12);\n color: var(--bpmnkit-danger, #f87171);\n font-size: 11px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.1s, border-color 0.1s;\n white-space: nowrap;\n}\n.bpmnkit-cfg-guide-btn:hover {\n background: rgba(248, 113, 113, 0.22);\n border-color: rgba(248, 113, 113, 0.6);\n}\n\n/* \u2500\u2500 Search results \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-search-results {\n flex: 1;\n overflow-y: auto;\n padding: 4px 22px 32px;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n.bpmnkit-cfg-search-group-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.3);\n margin: 16px 0 10px;\n padding-bottom: 5px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n}\n.bpmnkit-cfg-search-group-label:first-child { margin-top: 10px; }\n.bpmnkit-cfg-search-empty {\n font-size: 12px;\n color: rgba(255,255,255,0.3);\n text-align: center;\n padding: 28px 0;\n}\n\n/* \u2500\u2500 Tabs area (wrapper + scroll buttons) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-tabs-area {\n display: flex;\n align-items: stretch;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n flex-shrink: 0;\n overflow: hidden;\n}\n.bpmnkit-cfg-tabs {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: flex-end;\n overflow-x: auto;\n scrollbar-width: none;\n}\n.bpmnkit-cfg-tabs::-webkit-scrollbar { display: none; }\n.bpmnkit-cfg-tab-btn {\n padding: 10px 14px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n color: rgba(255,255,255,0.4);\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n white-space: nowrap;\n transition: color 0.1s, border-color 0.1s;\n margin-bottom: -1px;\n flex-shrink: 0;\n}\n.bpmnkit-cfg-tab-btn:hover { color: rgba(255,255,255,0.75); }\n.bpmnkit-cfg-tab-btn.active { color: var(--bpmnkit-accent, #6b9df7); border-bottom-color: var(--bpmnkit-accent, #6b9df7); }\n/* Red dot shown after tab label when the group has required-empty fields */\n.bpmnkit-cfg-tab-btn.has-error::after {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--bpmnkit-danger, #f87171);\n margin-left: 5px;\n vertical-align: middle;\n flex-shrink: 0;\n}\n\n/* Arrow buttons for overflowing tabs */\n.bpmnkit-cfg-tabs-scroll-btn {\n flex-shrink: 0;\n width: 26px;\n background: none;\n border: none;\n border-radius: 0;\n color: rgba(255,255,255,0.5);\n cursor: pointer;\n font-size: 16px;\n line-height: 1;\n padding: 0;\n /* display toggled via JS */\n align-items: center;\n justify-content: center;\n transition: background 0.1s, color 0.1s;\n}\n.bpmnkit-cfg-tabs-scroll-btn:hover { color: #fff; background: rgba(255,255,255,0.08); }\n.bpmnkit-cfg-tabs-scroll-btn--prev { border-right: 1px solid rgba(255,255,255,0.06); }\n.bpmnkit-cfg-tabs-scroll-btn--next { border-left: 1px solid rgba(255,255,255,0.06); }\n\n/* \u2500\u2500 Scrollable body \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-full-body {\n flex: 1;\n overflow-y: auto;\n padding: 22px 22px 32px;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n\n/* \u2500\u2500 Groups & Fields \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-group-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: rgba(255,255,255,0.3);\n margin-bottom: 14px;\n padding-bottom: 6px;\n border-bottom: 1px solid rgba(255,255,255,0.06);\n}\n.bpmnkit-cfg-field {\n margin-bottom: 14px;\n}\n.bpmnkit-cfg-field-label {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: rgba(255,255,255,0.55);\n margin-bottom: 5px;\n cursor: default;\n}\n.bpmnkit-cfg-field-label[title] { cursor: help; }\n.bpmnkit-cfg-field-docs {\n font-size: 10px;\n color: var(--bpmnkit-accent, #6b9df7);\n text-decoration: none;\n opacity: 0.7;\n transition: opacity 0.1s;\n}\n.bpmnkit-cfg-field-docs:hover { opacity: 1; }\n.bpmnkit-cfg-required-star {\n color: var(--bpmnkit-danger, #f87171);\n font-weight: 700;\n margin-left: 2px;\n}\n.bpmnkit-cfg-field--invalid {\n border-left: 2px solid var(--bpmnkit-danger, #f87171);\n padding-left: 8px;\n}\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-input,\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-select,\n.bpmnkit-cfg-field--invalid .bpmnkit-cfg-textarea {\n border-color: var(--bpmnkit-danger, #f87171);\n}\n\n.bpmnkit-cfg-input,\n.bpmnkit-cfg-select,\n.bpmnkit-cfg-textarea {\n width: 100%;\n padding: 7px 10px;\n background: rgba(255,255,255,0.06);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n}\n.bpmnkit-cfg-input:focus,\n.bpmnkit-cfg-select:focus,\n.bpmnkit-cfg-textarea:focus {\n border-color: var(--bpmnkit-accent, #6b9df7);\n background-color: rgba(255,255,255,0.09);\n}\n.bpmnkit-cfg-select {\n appearance: none;\n cursor: pointer;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 10px center;\n padding-right: 28px;\n}\n.bpmnkit-cfg-textarea {\n resize: vertical;\n min-height: 68px;\n line-height: 1.5;\n font-family: var(--bpmnkit-font-mono, ui-monospace, \"SF Mono\", monospace);\n font-size: 11px;\n}\n.bpmnkit-cfg-field-hint {\n font-size: 11px;\n color: rgba(255,255,255,0.3);\n margin-top: 4px;\n line-height: 1.4;\n}\n\n/* \u2500\u2500 Field error message \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-field-error {\n font-size: 11px;\n color: var(--bpmnkit-danger, #f87171);\n margin-top: 3px;\n line-height: 1.3;\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-error { color: var(--bpmnkit-danger, #dc2626); }\n\n/* \u2500\u2500 FEEL expression field \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* FEEL/string mode toggle \u2014 appears at the right end of a feel-expression label row */\n.bpmnkit-cfg-feel-mode-btn {\n margin-left: auto;\n flex-shrink: 0;\n padding: 1px 6px;\n border-radius: 3px;\n border: 1px solid rgba(255,255,255,0.12);\n background: none;\n color: rgba(255,255,255,0.3);\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n cursor: pointer;\n transition: background 0.1s, color 0.1s, border-color 0.1s;\n}\n.bpmnkit-cfg-feel-mode-btn:hover {\n background: rgba(255,255,255,0.06);\n color: rgba(255,255,255,0.55);\n}\n.bpmnkit-cfg-feel-mode-btn--active {\n border-color: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15));\n color: var(--bpmnkit-accent, #6b9df7);\n}\n.bpmnkit-cfg-feel-mode-btn--active:hover { background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15)); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn {\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.3);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn:hover {\n background: rgba(0,0,0,0.05);\n color: rgba(0,0,0,0.55);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn--active {\n border-color: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n color: var(--bpmnkit-accent, #1a56db);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-mode-btn--active:hover { background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n\n.bpmnkit-cfg-feel-ta {\n width: 100%;\n min-height: 68px;\n padding: 7px 10px;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n font-size: 11px;\n font-family: var(--bpmnkit-font-mono, ui-monospace, \"SF Mono\", monospace);\n line-height: 1.5;\n resize: vertical;\n outline: none;\n transition: border-color 0.15s;\n box-sizing: border-box;\n}\n\n.bpmnkit-cfg-feel-playground-btn {\n display: inline-flex;\n margin-top: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n border: 1px solid rgba(255,255,255,0.12);\n background: none;\n color: var(--bpmnkit-accent, #6b9df7);\n font-size: 11px;\n cursor: pointer;\n transition: background 0.1s;\n}\n.bpmnkit-cfg-feel-playground-btn:hover { background: var(--bpmnkit-accent-subtle, rgba(107,157,247,0.15)); }\n\n/* Light theme overrides */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-playground-btn {\n border-color: rgba(0,0,0,0.12);\n color: var(--bpmnkit-accent, #1a56db);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-feel-playground-btn:hover { background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n\n/* \u2500\u2500 Toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-toggle-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.bpmnkit-cfg-toggle-label {\n font-size: 12px;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n}\n.bpmnkit-cfg-toggle-label[title] { cursor: help; }\n.bpmnkit-cfg-toggle {\n position: relative;\n display: inline-flex;\n width: 34px;\n height: 18px;\n flex-shrink: 0;\n cursor: pointer;\n}\n.bpmnkit-cfg-toggle input {\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n}\n.bpmnkit-cfg-toggle-track {\n position: absolute;\n inset: 0;\n background: rgba(255,255,255,0.15);\n border-radius: 9px;\n transition: background 0.2s;\n}\n.bpmnkit-cfg-toggle input:checked + .bpmnkit-cfg-toggle-track { background: var(--bpmnkit-accent, #6b9df7); }\n.bpmnkit-cfg-toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n background: #fff;\n border-radius: 50%;\n transition: transform 0.2s;\n pointer-events: none;\n}\n.bpmnkit-cfg-toggle input:checked ~ .bpmnkit-cfg-toggle-thumb { transform: translateX(16px); }\n\n/* \u2500\u2500 Action button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border-radius: 4px;\n border: 1px solid rgba(255,255,255,0.15);\n background: rgba(255,255,255,0.07);\n color: rgba(255,255,255,0.85);\n font-size: 12px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.bpmnkit-cfg-action-btn:hover {\n background: rgba(255,255,255,0.13);\n border-color: rgba(255,255,255,0.25);\n}\n\n/* \u2500\u2500 Light theme overrides \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full {\n background: var(--bpmnkit-panel-bg, rgba(255,255,255,0.92));\n border-left-color: var(--bpmnkit-panel-border, rgba(0,0,0,0.08));\n box-shadow: -8px 0 40px rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-header { border-bottom-color: rgba(0,0,0,0.07); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-type { color: rgba(0,0,0,0.35); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-template { color: var(--bpmnkit-accent, #1a56db); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-name { color: rgba(0,0,0,0.9); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-name:not([readonly]):hover { border-bottom-color: rgba(0,0,0,0.2); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-name::placeholder { color: rgba(0,0,0,0.3); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-docs-link { color: rgba(0,0,0,0.4); border-color: rgba(0,0,0,0.2); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-docs-link:hover { color: var(--bpmnkit-accent, #1a56db); border-color: var(--bpmnkit-accent, #1a56db); background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-collapse-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-collapse-btn:hover { background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.9); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-close { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-close:hover { background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.9); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-bar { border-bottom-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-input {\n background: rgba(0,0,0,0.04);\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-input::placeholder { color: rgba(0,0,0,0.3); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-clear { color: rgba(0,0,0,0.35); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-clear:hover { color: rgba(0,0,0,0.9); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-results { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-group-label { color: rgba(0,0,0,0.35); border-bottom-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-search-empty { color: rgba(0,0,0,0.35); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-area { border-bottom-color: rgba(0,0,0,0.07); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tab-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tab-btn:hover { color: rgba(0,0,0,0.7); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn { color: rgba(0,0,0,0.4); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn:hover { color: rgba(0,0,0,0.9); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn--prev { border-right-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-tabs-scroll-btn--next { border-left-color: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-full-body { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-group-label {\n color: rgba(0,0,0,0.35);\n border-bottom-color: rgba(0,0,0,0.06);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-label { color: rgba(0,0,0,0.55); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-field-hint { color: rgba(0,0,0,0.4); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-input,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-textarea {\n background-color: rgba(0,0,0,0.04);\n border-color: rgba(0,0,0,0.12);\n color: rgba(0,0,0,0.85);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-input:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-textarea:focus {\n background-color: rgba(0,0,0,0.06);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(0,0,0,0.45)' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-toggle-label { color: rgba(0,0,0,0.7); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-toggle-track { background: rgba(0,0,0,0.12); }\n\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-action-btn {\n border-color: rgba(0,0,0,0.15);\n background: rgba(0,0,0,0.04);\n color: rgba(0,0,0,0.75);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-action-btn:hover {\n background: rgba(0,0,0,0.08);\n border-color: rgba(0,0,0,0.2);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-resize-handle:hover {\n background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12));\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-bar {\n background: rgba(248, 113, 113, 0.06);\n border-bottom-color: rgba(248, 113, 113, 0.15);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-text { color: var(--bpmnkit-danger, #dc2626); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-btn {\n color: var(--bpmnkit-danger, #dc2626);\n border-color: rgba(220, 38, 38, 0.3);\n background: rgba(220, 38, 38, 0.07);\n}\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-guide-btn:hover {\n background: rgba(220, 38, 38, 0.14);\n border-color: rgba(220, 38, 38, 0.5);\n}\n\n/* \u2500\u2500 Neon theme overrides \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full {\n background: oklch(8% 0.03 270 / 0.96);\n border-left-color: oklch(65% 0.28 280 / 0.2);\n box-shadow: -8px 0 40px oklch(0% 0 0 / 0.7), 0 0 0 1px oklch(65% 0.28 280 / 0.05);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-header { border-bottom-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-type { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-template { color: oklch(73% 0.16 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-name { color: oklch(88% 0.02 270); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-name:not([readonly]):hover { border-bottom-color: oklch(65% 0.28 280 / 0.3); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-name::placeholder { color: oklch(60% 0.04 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-docs-link { color: oklch(55% 0.06 280); border-color: oklch(65% 0.28 280 / 0.25); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-docs-link:hover { color: oklch(73% 0.16 280); border-color: oklch(65% 0.28 280 / 0.5); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-collapse-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-collapse-btn:hover { background: oklch(65% 0.28 280 / 0.1); color: oklch(88% 0.02 270); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-close { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-close:hover { background: oklch(65% 0.28 280 / 0.1); color: oklch(88% 0.02 270); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-bar { border-bottom-color: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input {\n background: oklch(65% 0.28 280 / 0.05);\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(88% 0.02 270);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input::placeholder { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-input:focus { border-color: oklch(65% 0.28 280 / 0.45); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-clear { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-clear:hover { color: oklch(88% 0.02 270); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-results { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-group-label { color: oklch(50% 0.06 280); border-bottom-color: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-search-empty { color: oklch(50% 0.06 280); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-area { border-bottom-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn:hover { color: oklch(73% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tab-btn.active { color: oklch(73% 0.16 280); border-bottom-color: oklch(73% 0.16 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn:hover { color: oklch(88% 0.02 270); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn--prev { border-right-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-tabs-scroll-btn--next { border-left-color: oklch(65% 0.28 280 / 0.12); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-full-body { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-group-label {\n color: oklch(50% 0.06 280);\n border-bottom-color: oklch(65% 0.28 280 / 0.1);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-label { color: oklch(55% 0.08 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-hint { color: oklch(50% 0.06 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-field-error { color: oklch(70% 0.18 20); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-input,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-textarea {\n background: oklch(65% 0.28 280 / 0.05);\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(88% 0.02 270);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-input:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-textarea:focus {\n border-color: oklch(65% 0.28 280 / 0.45);\n background: oklch(65% 0.28 280 / 0.08);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%238080c0' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn {\n border-color: oklch(65% 0.28 280 / 0.15);\n color: oklch(50% 0.06 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn:hover {\n background: oklch(65% 0.28 280 / 0.08);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-mode-btn--active {\n border-color: oklch(65% 0.28 280 / 0.3);\n background: oklch(65% 0.28 280 / 0.12);\n color: oklch(73% 0.16 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-playground-btn {\n border-color: oklch(65% 0.28 280 / 0.2);\n color: oklch(73% 0.16 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-feel-playground-btn:hover { background: oklch(65% 0.28 280 / 0.1); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle-label { color: oklch(65% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle-track { background: oklch(65% 0.28 280 / 0.15); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-toggle input:checked + .bpmnkit-cfg-toggle-track { background: oklch(65% 0.28 280 / 0.7); }\n\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-action-btn {\n border-color: oklch(65% 0.28 280 / 0.2);\n background: oklch(65% 0.28 280 / 0.06);\n color: oklch(65% 0.1 280);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-action-btn:hover {\n background: oklch(65% 0.28 280 / 0.12);\n border-color: oklch(65% 0.28 280 / 0.35);\n}\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-resize-handle:hover { background: oklch(65% 0.28 280 / 0.1); }\n\n/* \u2500\u2500 Searchable select \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.bpmnkit-cfg-ss-trigger {\n width: 100%;\n padding: 7px 10px;\n background: rgba(255,255,255,0.06);\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n text-align: left;\n cursor: pointer;\n outline: none;\n transition: border-color 0.15s, background 0.15s;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.bpmnkit-cfg-ss-trigger:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.18); }\n.bpmnkit-cfg-ss-trigger:focus,\n.bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: var(--bpmnkit-accent, #6b9df7); background: rgba(255,255,255,0.09); }\n.bpmnkit-cfg-ss-trigger-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.bpmnkit-cfg-ss-arrow {\n flex-shrink: 0;\n width: 10px; height: 6px;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(255,255,255,0.4)' stroke-width='1.5'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-size: contain;\n}\n/* Dropdown panel \u2014 appended to document.body, positioned fixed */\n.bpmnkit-cfg-ss-dropdown {\n background: #1a1a2e;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.6);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.bpmnkit-cfg-ss-search {\n padding: 8px 10px;\n background: rgba(255,255,255,0.05);\n border: none;\n border-bottom: 1px solid rgba(255,255,255,0.08);\n color: rgba(255,255,255,0.9);\n font-size: 12px;\n font-family: system-ui, -apple-system, sans-serif;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n.bpmnkit-cfg-ss-search::placeholder { color: rgba(255,255,255,0.3); }\n.bpmnkit-cfg-ss-list {\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: rgba(255,255,255,0.15) transparent;\n}\n.bpmnkit-cfg-ss-option {\n padding: 7px 10px;\n font-size: 12px;\n color: rgba(255,255,255,0.85);\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bpmnkit-cfg-ss-option--focused { background: rgba(255,255,255,0.08); }\n.bpmnkit-cfg-ss-option--selected { color: var(--bpmnkit-accent, #6b9df7); }\n.bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: rgba(107,157,247,0.1); }\n.bpmnkit-cfg-ss-empty { padding: 10px; font-size: 12px; color: rgba(255,255,255,0.3); text-align: center; }\n/* Neon theme \u2014 applied via data-theme=\"neon\" on the dropdown element itself */\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] {\n background: oklch(9% 0.025 270);\n border-color: oklch(65% 0.28 280 / 0.2);\n box-shadow: 0 8px 32px oklch(0% 0 0 / 0.7), 0 0 0 1px oklch(65% 0.28 280 / 0.1);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-search {\n background: oklch(65% 0.28 280 / 0.05);\n border-bottom-color: oklch(65% 0.28 280 / 0.12);\n color: oklch(88% 0.02 270);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-search::placeholder { color: oklch(55% 0.06 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-list { scrollbar-color: oklch(65% 0.28 280 / 0.15) transparent; }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option { color: oklch(65% 0.1 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--focused { background: oklch(65% 0.28 280 / 0.08); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--selected { color: oklch(73% 0.16 280); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: oklch(65% 0.28 280 / 0.12); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"neon\"] .bpmnkit-cfg-ss-empty { color: oklch(50% 0.06 280); }\n/* Neon theme trigger */\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger { background: oklch(65% 0.28 280 / 0.06); border-color: oklch(65% 0.28 280 / 0.2); color: oklch(65% 0.1 280); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger:hover { background: oklch(65% 0.28 280 / 0.1); border-color: oklch(65% 0.28 280 / 0.3); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger:focus,\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: oklch(65% 0.28 280 / 0.5); background: oklch(65% 0.28 280 / 0.1); }\n[data-bpmnkit-hud-theme=\"neon\"] .bpmnkit-cfg-ss-arrow {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%238080c0' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n/* Light theme \u2014 applied via data-theme=\"light\" on the dropdown element itself */\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] {\n background: #ffffff;\n border-color: rgba(0,0,0,0.12);\n box-shadow: 0 4px 20px rgba(0,0,0,0.15);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-search {\n background: rgba(0,0,0,0.03);\n border-bottom-color: rgba(0,0,0,0.08);\n color: rgba(0,0,0,0.85);\n}\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-search::placeholder { color: rgba(0,0,0,0.3); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-list { scrollbar-color: rgba(0,0,0,0.15) transparent; }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option { color: rgba(0,0,0,0.85); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--focused { background: rgba(0,0,0,0.05); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--selected { color: var(--bpmnkit-accent, #1a56db); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-option--selected.bpmnkit-cfg-ss-option--focused { background: rgba(26,86,219,0.08); }\n.bpmnkit-cfg-ss-dropdown[data-theme=\"light\"] .bpmnkit-cfg-ss-empty { color: rgba(0,0,0,0.35); }\n/* Light theme trigger */\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.12); color: rgba(0,0,0,0.85); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger:hover { background: rgba(0,0,0,0.06); border-color: rgba(0,0,0,0.2); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger:focus,\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-trigger[aria-expanded=\"true\"] { border-color: var(--bpmnkit-accent, #1a56db); background: rgba(0,0,0,0.06); }\n[data-bpmnkit-hud-theme=\"light\"] .bpmnkit-cfg-ss-arrow {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='rgba(0,0,0,0.45)' stroke-width='1.5'/%3E%3C/svg%3E\");\n}\n";
3
3
  export declare function injectConfigPanelStyles(): void;
4
4
  //# sourceMappingURL=css.d.ts.map
@@ -98,12 +98,33 @@ export const CONFIG_PANEL_CSS = `
98
98
  text-overflow: ellipsis;
99
99
  }
100
100
  .bpmnkit-cfg-full-name {
101
+ display: block;
102
+ width: 100%;
101
103
  font-size: 14px;
102
104
  font-weight: 600;
103
105
  color: #fff;
106
+ background: transparent;
107
+ border: none;
108
+ border-bottom: 1px solid transparent;
109
+ outline: none;
110
+ padding: 0;
111
+ margin: 0;
104
112
  white-space: nowrap;
105
113
  overflow: hidden;
106
114
  text-overflow: ellipsis;
115
+ font-family: inherit;
116
+ cursor: text;
117
+ border-radius: 0;
118
+ }
119
+ .bpmnkit-cfg-full-name:not([readonly]):hover {
120
+ border-bottom-color: rgba(255,255,255,0.2);
121
+ }
122
+ .bpmnkit-cfg-full-name:not([readonly]):focus {
123
+ border-bottom-color: var(--bpmnkit-accent, #6b9df7);
124
+ }
125
+ .bpmnkit-cfg-full-name::placeholder {
126
+ color: rgba(255,255,255,0.3);
127
+ font-weight: 400;
107
128
  }
108
129
  /* Docs link — ? button shown when the schema has a documentationRef */
109
130
  .bpmnkit-cfg-docs-link {
@@ -624,6 +645,8 @@ export const CONFIG_PANEL_CSS = `
624
645
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-full-type { color: rgba(0,0,0,0.35); }
625
646
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-full-template { color: var(--bpmnkit-accent, #1a56db); }
626
647
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-full-name { color: rgba(0,0,0,0.9); }
648
+ [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-full-name:not([readonly]):hover { border-bottom-color: rgba(0,0,0,0.2); }
649
+ [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-full-name::placeholder { color: rgba(0,0,0,0.3); }
627
650
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-docs-link { color: rgba(0,0,0,0.4); border-color: rgba(0,0,0,0.2); }
628
651
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-docs-link:hover { color: var(--bpmnkit-accent, #1a56db); border-color: var(--bpmnkit-accent, #1a56db); background: var(--bpmnkit-accent-subtle, rgba(26,86,219,0.12)); }
629
652
  [data-bpmnkit-hud-theme="light"] .bpmnkit-cfg-collapse-btn { color: rgba(0,0,0,0.4); }
@@ -717,6 +740,8 @@ export const CONFIG_PANEL_CSS = `
717
740
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-full-type { color: oklch(50% 0.06 280); }
718
741
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-full-template { color: oklch(73% 0.16 280); }
719
742
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-full-name { color: oklch(88% 0.02 270); }
743
+ [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-full-name:not([readonly]):hover { border-bottom-color: oklch(65% 0.28 280 / 0.3); }
744
+ [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-full-name::placeholder { color: oklch(60% 0.04 280); }
720
745
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-docs-link { color: oklch(55% 0.06 280); border-color: oklch(65% 0.28 280 / 0.25); }
721
746
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-docs-link:hover { color: oklch(73% 0.16 280); border-color: oklch(65% 0.28 280 / 0.5); background: oklch(65% 0.28 280 / 0.1); }
722
747
  [data-bpmnkit-hud-theme="neon"] .bpmnkit-cfg-collapse-btn { color: oklch(50% 0.06 280); }