.flow-canvas{background:radial-gradient(hsl(var(--border) / .55) 1px, transparent 1px) 0 0 / 22px 22px, hsl(var(--background-surface-75));-webkit-user-select:none;user-select:none;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.flow-canvas.is-panning{cursor:grabbing}.flow-stage{transform-origin:50% 0;pointer-events:none;justify-content:center;align-items:flex-start;padding:40px 32px 120px;display:flex;position:absolute;inset:0}.flow-stage>*{pointer-events:auto}.flow-lane{flex-direction:column;align-items:center;display:flex}.flow-node{border:1px solid hsl(var(--border-strong));background:hsl(var(--background-surface-100));text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;width:252px;padding:10px 12px;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.flow-node:hover{border-color:hsl(var(--foreground-lighter) / .55)}.flow-node.is-selected{border-color:hsl(var(--brand-500));box-shadow:0 0 0 3px hsl(var(--brand-500) / .18)}.flow-node.is-invalid{border-color:hsl(var(--destructive-500));box-shadow:0 0 0 3px hsl(var(--destructive-500) / .14)}.flow-node.is-invalid.is-selected{box-shadow:0 0 0 3px hsl(var(--destructive-500) / .28)}.flow-node.is-run{border-color:hsl(var(--brand-500) / .9);box-shadow:0 0 0 3px hsl(var(--brand-500) / .22)}.flow-node:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:2px}.flow-node-ic{border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:inline-flex}.flow-node-main{flex:1;min-width:0;display:block}.flow-node-title{color:hsl(var(--foreground-default));white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.flow-node-sub{color:hsl(var(--foreground-lighter));white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.flow-node-metric{font-size:10.5px;font-family:var(--font-mono,ui-monospace, monospace);color:hsl(var(--foreground-light));margin-top:2px;display:block}.flow-node-badges{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.flow-badge{letter-spacing:.02em;background:hsl(var(--background-surface-300));color:hsl(var(--foreground-light));border:1px solid hsl(var(--border));border-radius:999px;align-items:center;padding:1px 6px;font-size:9.5px;font-weight:600;display:inline-flex}.flow-badge.is-money{background:hsl(var(--brand-500) / .14);color:hsl(var(--brand-500));border-color:hsl(var(--brand-500) / .35)}.flow-badge.is-fast{background:hsl(var(--warning-500) / .12);color:hsl(var(--warning-600));border-color:hsl(var(--warning-500) / .3)}.flow-badge.is-error{background:hsl(var(--destructive-500) / .12);color:hsl(var(--destructive-500));border-color:hsl(var(--destructive-500) / .3)}.flow-node-menu{width:24px;height:24px;color:hsl(var(--foreground-lighter));opacity:0;border-radius:6px;flex:none;justify-content:center;align-items:center;transition:opacity .1s;display:inline-flex}.flow-node:hover .flow-node-menu,.flow-node-menu:focus-visible,.flow-node.is-selected .flow-node-menu{opacity:1}.flow-node-menu:hover{background:hsl(var(--background-surface-300));color:hsl(var(--foreground-default))}.flow-insert{flex-direction:column;justify-content:center;align-items:center;min-height:30px;display:flex;position:relative}.flow-insert .flow-line{background:hsl(var(--border-strong));width:2px;position:absolute;top:0;bottom:0}.flow-insert-btn{z-index:1;background:hsl(var(--brand-500));width:22px;height:22px;color:hsl(var(--foreground-contrast));opacity:0;border-radius:999px;justify-content:center;align-items:center;transition:opacity .11s,transform .11s;display:inline-flex;position:relative;transform:scale(.6)}.flow-lane:hover .flow-insert-btn,.flow-insert-btn:hover,.flow-insert-btn:focus-visible,.flow-insert.force .flow-insert-btn{opacity:1;transform:scale(1)}.flow-insert-btn:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:2px}.flow-insert-btn[aria-disabled=true]{background:hsl(var(--background-surface-400));color:hsl(var(--foreground-lighter));cursor:not-allowed}.flow-conn{background:hsl(var(--border-strong));width:2px;height:26px}.flow-conn.is-run,.flow-insert .flow-line.is-run{background:hsl(var(--brand-500))}.flow-branchwrap{flex-direction:column;align-items:center;width:100%;display:flex}.flow-buschip{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;margin-top:10px;padding:2px 9px;font-size:10px;font-weight:600;display:inline-flex}.flow-buschip.is-xor{border:1px dashed hsl(var(--foreground-lighter) / .7);background:hsl(var(--background-surface-100));color:hsl(var(--foreground-light))}.flow-buschip.is-fan{border:1px solid hsl(var(--brand-500) / .4);background:hsl(var(--brand-500) / .13);color:hsl(var(--brand-500))}.flow-branches{justify-content:center;align-items:flex-start;gap:34px;padding-top:44px;display:flex;position:relative}.flow-fan{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.flow-fan path{fill:none;stroke:hsl(var(--border-strong));stroke-width:2px;stroke-linecap:round}.flow-fan path.is-fanline{stroke:hsl(var(--brand-500) / .65);stroke-width:1.6px}.flow-fan path.is-run{stroke:hsl(var(--brand-500));stroke-width:2.4px}.flow-branchcol{flex-direction:column;align-items:center;min-width:120px;display:flex}.flow-legpill{border:1px solid hsl(var(--border-strong));background:hsl(var(--background-surface-200));max-width:230px;color:hsl(var(--foreground-light));cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.flow-legpill:hover{border-color:hsl(var(--brand-500) / .6);color:hsl(var(--foreground-default))}.flow-legpill:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:2px}.flow-legpill.is-default{border-style:dashed}.flow-legpill.is-run{border-color:hsl(var(--brand-500));color:hsl(var(--brand-500))}.flow-condchip{border:1px dashed hsl(var(--border-strong));background:hsl(var(--background-surface-100));max-width:220px;color:hsl(var(--foreground-lighter));white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:999px;align-items:center;margin-top:6px;padding:2px 8px;font-size:10px;display:inline-flex;overflow:hidden}.flow-condchip:hover{color:hsl(var(--foreground-default));border-color:hsl(var(--foreground-lighter))}.flow-condchip:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:2px}.flow-needs-outcome{border:1px dashed hsl(var(--warning-500) / .65);background:hsl(var(--warning-500) / .08);color:hsl(var(--warning-600));border-radius:999px;align-items:center;gap:5px;margin-top:2px;padding:3px 10px;font-size:10.5px;font-weight:600;display:inline-flex}.flow-loose{border:1px dashed hsl(var(--warning-500) / .55);background:hsl(var(--warning-500) / .05);border-radius:12px;flex-direction:column;align-items:center;gap:8px;margin-top:46px;padding:14px;display:flex}.flow-loose-title{color:hsl(var(--warning-600));font-size:11px;font-weight:600}.flow-loose-hint{color:hsl(var(--foreground-lighter));text-align:center;max-width:320px;font-size:10.5px}.flow-loose-row{align-items:center;gap:8px;display:flex}.flow-zoom{z-index:4;border:1px solid hsl(var(--border));background:hsl(var(--background-surface-100) / .92);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:8px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;bottom:14px;right:14px}.flow-zoom button{width:26px;height:26px;color:hsl(var(--foreground-light));border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.flow-zoom button:hover{background:hsl(var(--background-surface-300));color:hsl(var(--foreground-default))}.flow-zoom button:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:-2px}.flow-zoom-val{text-align:center;min-width:40px;font-size:11px;font-family:var(--font-mono,ui-monospace, monospace);color:hsl(var(--foreground-light))}.flow-refusal{border:1px solid hsl(var(--destructive-500) / .4);background:hsl(var(--destructive-500) / .06);border-radius:12px;max-width:440px;margin:48px auto;padding:20px}.flow-refusal h3{color:hsl(var(--foreground-default));margin-bottom:6px;font-size:13px;font-weight:600}.flow-refusal p{color:hsl(var(--foreground-light));margin-bottom:8px;font-size:12px}.flow-refusal li{color:hsl(var(--foreground-lighter));margin-left:16px;font-size:11.5px;list-style:outside}.flow-list{background:hsl(var(--background-surface-75));flex:1;min-width:0;min-height:0;padding:18px 22px 80px;overflow:auto}.flow-list-inner{flex-direction:column;max-width:640px;margin:0 auto;display:flex}.flow-list-row{text-align:left;cursor:pointer;border:1px solid #0000;border-radius:9px;align-items:center;gap:9px;width:100%;padding:7px 10px;display:flex}.flow-list-row:hover{background:hsl(var(--background-surface-100))}.flow-list-row.is-selected{background:hsl(var(--background-surface-100));border-color:hsl(var(--brand-500))}.flow-list-row.is-invalid{border-color:hsl(var(--destructive-500) / .6)}.flow-list-row.is-run{border-color:hsl(var(--brand-500) / .5)}.flow-list-row.is-dim{opacity:.38}.flow-list-row:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:1px}.flow-list-ic{border-radius:7px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.flow-list-main{flex:1;min-width:0;display:block}.flow-list-t{color:hsl(var(--foreground-default));white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;display:block;overflow:hidden}.flow-list-d{color:hsl(var(--foreground-lighter));white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.flow-list-cond{border:1px dashed hsl(var(--border-strong));max-width:180px;color:hsl(var(--foreground-lighter));white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex:none;padding:1px 8px;font-size:10px;overflow:hidden}.flow-list-actions{opacity:0;flex:none;gap:2px;display:flex}.flow-list-row:hover .flow-list-actions,.flow-list-row.is-selected .flow-list-actions,.flow-list-actions:focus-within{opacity:1}.flow-list-actions button{width:24px;height:24px;color:hsl(var(--foreground-lighter));border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.flow-list-actions button:hover{background:hsl(var(--background-surface-300));color:hsl(var(--foreground-default))}.flow-list-actions button:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:-2px}.flow-list-leg{color:hsl(var(--foreground-lighter));align-items:center;gap:7px;padding:7px 10px 2px;font-size:10.5px;font-weight:600;display:flex}.flow-list-leg .flow-buschip{margin-top:0}.flow-list-legname{text-transform:uppercase;letter-spacing:.04em}.flow-list-add{border:1px dashed hsl(var(--border-strong));color:hsl(var(--brand-500));cursor:pointer;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin:2px 0 2px 10px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.flow-list-add:hover{border-color:hsl(var(--brand-500) / .6);background:hsl(var(--brand-500) / .06)}.flow-list-add:focus-visible{outline:2px solid hsl(var(--brand-500));outline-offset:2px}.flow-list-empty{text-align:center;color:hsl(var(--foreground-lighter));padding:32px 12px;font-size:12px}
