/* Graph editor and execution inspector; shares the CREMA LAB color system. */
#crema-console .cl-main.wf-wide{max-width:none}
.wf-editor{border:1px solid var(--cl-line);border-radius:14px;overflow:hidden;background:var(--cl-panel);font-size:12px}
.wf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--cl-line);flex-wrap:wrap}
.wf-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.wf-title{display:flex;align-items:center;gap:9px;font-weight:500;font-size:13px}
.wf-dirty{font-size:10px;color:var(--cl-warn);background:var(--cl-warn-bg);border-radius:5px;padding:4px 6px;font-weight:400}
.wf-tools button,.wf-add button,.wf-inspector button{cursor:pointer}
.wf-tools button{font-size:11px!important;min-height:33px}.wf-tools select{padding:7px;border:1px solid var(--cl-line);border-radius:7px;background:var(--cl-panel);font-size:11px!important;max-width:180px}
.wf-layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;min-height:560px}
.wf-board{position:relative;min-width:0;display:flex;flex-direction:column;background:var(--cl-bg)}
.wf-canvas{height:560px;overflow:auto;overscroll-behavior:contain;background-image:radial-gradient(var(--cl-line) 1.1px,transparent 1.1px);background-size:18px 18px;position:relative;touch-action:pan-x pan-y}
.wf-sizer{position:relative}.wf-world{position:absolute;transform-origin:top left;top:0;left:0}.wf-svg{position:absolute;inset:0;overflow:visible;pointer-events:none}
.wf-edge{fill:none;stroke:var(--cl-sub);stroke-width:1.6;opacity:.6;pointer-events:stroke;cursor:pointer}.wf-edge.selected{stroke:var(--cl-accent);stroke-width:3;opacity:1}.wf-edge.taken{stroke:var(--cl-ok);stroke-width:2.6;opacity:1}.wf-edge.error{stroke:var(--cl-danger)}
.wf-node{position:absolute;width:220px;min-height:100px;background:var(--cl-panel);border:1px solid var(--cl-line);border-radius:12px;box-shadow:0 2px 6px #00000005;user-select:none;outline:none}
.wf-node.selected{border-color:var(--cl-accent);box-shadow:0 0 0 2px var(--cl-tint)}.wf-node.completed{border-color:var(--cl-ok)}.wf-node.failed,.wf-node.handled_error{border-color:var(--cl-danger)}.wf-node.skipped{opacity:.62}.wf-node.running{border-color:var(--cl-warn);box-shadow:0 0 0 3px var(--cl-warn-bg)}
.wf-node-drag{padding:14px 15px 10px;cursor:grab;touch-action:none;display:flex;align-items:flex-start;gap:11px;min-height:73px}.wf-node-drag:active{cursor:grabbing}.wf-node-info{min-width:0;flex:1}.wf-node-title{font-size:12px;font-weight:500;line-height:1.35;overflow-wrap:anywhere;display:block}.wf-node-sub{font-size:10px;color:var(--cl-sub);display:block;line-height:1.5;margin-top:4px}.wf-node-icon{height:31px;width:31px;display:grid;place-items:center;background:var(--cl-soft);border-radius:9px;flex:none;color:var(--cl-ink)}
.wf-node[data-type="condition"] .wf-node-icon{color:var(--cl-warn);background:var(--cl-warn-bg)}.wf-node[data-type="ai"] .wf-node-icon{color:var(--cl-accent);background:var(--cl-tint)}.wf-node[data-type="alert"] .wf-node-icon{color:var(--cl-ok);background:var(--cl-ok-bg)}
.wf-node-foot{border-top:1px solid var(--cl-line);padding:6px 13px;font-size:9px;color:var(--cl-sub);display:flex;justify-content:space-between;gap:6px}
.wf-port{position:absolute;width:15px;height:15px;border:2px solid var(--cl-sub);border-radius:50%;background:var(--cl-panel);padding:0;display:block;z-index:2;cursor:crosshair;touch-action:manipulation}
.wf-port:hover,.wf-port.connecting{background:var(--cl-accent);border-color:var(--cl-accent);box-shadow:0 0 0 4px var(--cl-tint)}.wf-port.input{left:-8px;top:42px}.wf-port.output{right:-8px}.wf-port-label{position:absolute;right:12px;font-size:8px;line-height:15px;background:var(--cl-panel);padding:0 3px;color:var(--cl-sub);pointer-events:none}.wf-port-label.true{color:var(--cl-ok)}.wf-port-label.false,.wf-port-label.error{color:var(--cl-danger)}
.wf-add{display:flex;gap:6px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--cl-line);flex-wrap:wrap;background:var(--cl-panel)}.wf-add>span{color:var(--cl-sub);font-size:10px;margin-right:3px}.wf-add button{display:flex;align-items:center;gap:5px;border:1px solid var(--cl-line);border-radius:7px;background:var(--cl-panel);padding:7px 9px;font-size:10px!important}.wf-add button:hover{border-color:var(--cl-accent);color:var(--cl-accent)}
.wf-inspector{border-left:1px solid var(--cl-line);padding:18px 16px;min-width:0;height:560px;max-height:560px;overflow:auto;background:var(--cl-panel)}.wf-inspector h3{font-size:14px!important;margin:8px 0 16px!important}.wf-inspector .cl-field{margin:12px 0}.wf-inspector input,.wf-inspector select,.wf-inspector textarea{width:100%;min-width:0;font-size:12px!important}.wf-inspector textarea{min-height:85px;resize:vertical}.wf-inspector p{font-size:11px;color:var(--cl-sub);line-height:1.7}.wf-inspector .cl-tool{font-size:11px;padding:10px 0}.wf-inspector .cl-tool input{width:16px;flex:none}.wf-inspector .wf-caption{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--cl-sub)}
.wf-inspector .wf-connection{display:flex;align-items:center;justify-content:space-between;gap:7px;border-top:1px solid var(--cl-line);padding:10px 0;font-size:11px}.wf-connection span{overflow-wrap:anywhere}.wf-icon-button{background:transparent;border:0;color:var(--cl-sub);display:grid;place-items:center;min-width:30px;min-height:30px}.wf-icon-button:hover{color:var(--cl-danger)}
.wf-footer{padding:10px 14px;border-top:1px solid var(--cl-line);display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--cl-sub);font-size:10px;flex-wrap:wrap}.wf-footer.error{color:var(--cl-danger);background:var(--cl-danger-bg)}
.wf-input-output{margin-top:17px;border-top:1px solid var(--cl-line);padding-top:13px}.wf-input-output summary{font-size:11px;padding:7px 0;cursor:pointer}.wf-input-output pre{font:10px/1.6 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;padding:10px;background:var(--cl-bg);border-radius:7px;margin:5px 0 12px}.wf-inspector .wf-node-remove{margin-top:16px;border-color:var(--cl-line);color:var(--cl-danger)}
.wf-hint{padding:15px;border-radius:10px;background:var(--cl-soft);color:var(--cl-sub);font-size:11px;line-height:1.7}.wf-readonly .wf-canvas{height:460px}.wf-readonly .wf-layout{min-height:460px}.wf-readonly .wf-inspector{height:460px;max-height:460px}.wf-readonly .wf-node-drag{cursor:pointer}.wf-readonly .wf-port{pointer-events:none}
.wf-run-graph{margin-bottom:24px}.wf-empty-inspector{display:grid;gap:14px;align-content:start}.wf-stat{display:flex;gap:7px;align-items:center;font-size:11px;padding:8px 0}
@media(max-width:1050px){.wf-layout{grid-template-columns:minmax(0,1fr) 240px}.wf-inspector{padding:15px 12px}}
@media(max-width:750px){.wf-layout{grid-template-columns:minmax(0,1fr)}.wf-inspector{border-left:0;border-top:1px solid var(--cl-line);height:auto;max-height:none}.wf-canvas{height:400px}.wf-toolbar{padding:12px}.wf-editor .wf-tools{gap:5px}.wf-readonly .wf-inspector{height:auto;max-height:none}}
@media(pointer:coarse){.wf-port{width:23px;height:23px;margin-top:-4px}.wf-port.input{left:-12px}.wf-port.output{right:-12px}.wf-add button,.wf-icon-button{min-height:40px}.wf-tools button{min-height:40px}}

.wf-node.waiting_approval,.wf-node.waiting_timer,.wf-node.needs_review,.wf-node.paused{border-color:#cfa45f;box-shadow:0 0 0 2px #cfa45f25}.wf-node[data-type="approval"] .wf-node-icon,.wf-node[data-type="wait"] .wf-node-icon{color:#cfa45f}.wf-add{flex-wrap:wrap}
