@bpmnkit/plugins 0.0.18 → 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.
- package/dist/ai-bridge/css.js +40 -0
- package/dist/ai-bridge/index.d.ts +4 -1
- package/dist/ai-bridge/index.js +1 -0
- package/dist/ai-bridge/panel.d.ts +2 -3
- package/dist/ai-bridge/panel.js +246 -3
- package/dist/config-panel/css.d.ts +1 -1
- package/dist/config-panel/css.js +25 -0
- package/dist/config-panel/renderer.js +19 -4
- package/dist/presentation/index.d.ts +24 -0
- package/dist/presentation/index.js +680 -0
- package/package.json +9 -5
package/dist/ai-bridge/css.js
CHANGED
|
@@ -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
|
|
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 */
|
package/dist/ai-bridge/index.js
CHANGED
|
@@ -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
|
package/dist/ai-bridge/panel.js
CHANGED
|
@@ -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
|
|
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
|
package/dist/config-panel/css.js
CHANGED
|
@@ -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); }
|