.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--brand: #4f46e5;--brand-dark: #4338ca;--brand-100: #eef2ff;--brand-50: #f5f7ff;--sidebar: #0f172a;--sidebar-hover: #1e293b;--sidebar-text: #94a3b8;--sidebar-active: #ffffff;--bg: #f1f5f9;--card: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #475569;--muted: #94a3b8;--green: #059669;--green-bg: #ecfdf5;--amber: #d97706;--amber-bg: #fffbeb;--red: #dc2626;--red-bg: #fef2f2;--blue: #2563eb;--blue-bg: #eff6ff;--purple: #7c3aed;--purple-bg: #f5f3ff;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 25px rgba(15, 23, 42, .1);--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}.layout{display:flex;min-height:100vh}.sidebar{width:244px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:20px 20px 18px;color:#fff;font-weight:700;letter-spacing:.3px}.sidebar .brand .logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--brand),#7c3aed);display:grid;place-items:center;color:#fff;font-size:15px;font-weight:800}.sidebar .brand .name{font-size:15px;line-height:1.1}.sidebar .brand .sub{font-size:11px;color:var(--sidebar-text);font-weight:500}.nav-group{padding:8px 12px}.nav-group .label{font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:#64748b;padding:10px 12px 6px;font-weight:600}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:var(--sidebar-text);font-weight:500;cursor:pointer;margin-bottom:2px;transition:all .12s}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-item:hover{background:var(--sidebar-hover);color:#e2e8f0}.nav-item.active{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}.sidebar .foot{margin-top:auto;padding:14px;border-top:1px solid #1e293b}.sidebar .foot .who{color:#cbd5e1;font-size:13px;font-weight:600}.sidebar .foot .role{color:#64748b;font-size:11px;text-transform:capitalize}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:60px;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:0;z-index:20}.topbar .page-title{font-size:17px;font-weight:700}.topbar .spacer{flex:1}.topbar .search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:7px 12px;width:260px}.topbar .search input{border:none;background:transparent;outline:none;width:100%;font-size:13px}.topbar .chip{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 5px;border-radius:999px;background:var(--bg);border:1px solid var(--border)}.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#7c3aed);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px}.content{padding:24px;max-width:1280px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}.page-head h1{font-size:22px;margin:0 0 3px;font-weight:700}.page-head .sub{color:var(--text-2);font-size:13px}.page-head .spacer{flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow-sm)}.card>h2{font-size:15px;margin:0 0 14px;font-weight:700}.card-head{display:flex;align-items:center;margin:-2px 0 14px}.card-head h2{font-size:15px;margin:0;font-weight:700}.card-head .spacer{flex:1}.grid{display:grid;gap:18px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);display:flex;gap:14px;align-items:flex-start}.stat-card .ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex-shrink:0}.stat-card .ic svg{width:21px;height:21px}.stat-card .num{font-size:25px;font-weight:800;line-height:1.1;letter-spacing:-.5px}.stat-card .label{color:var(--text-2);font-size:12.5px;margin-top:3px;font-weight:500}.ic.blue{background:var(--blue-bg);color:var(--blue)}.ic.green{background:var(--green-bg);color:var(--green)}.ic.amber{background:var(--amber-bg);color:var(--amber)}.ic.red{background:var(--red-bg);color:var(--red)}.ic.purple{background:var(--purple-bg);color:var(--purple)}.ic.brand{background:var(--brand-100);color:var(--brand)}h2{font-size:16px;margin:0 0 12px;font-weight:700}h3{font-size:14px;margin:18px 0 8px;font-weight:600}.muted{color:var(--muted)}.error{color:var(--red);font-size:13px}.small{font-size:12px}label{display:block;font-size:12.5px;color:var(--text-2);margin:12px 0 5px;font-weight:600}input,select,textarea{width:100%;padding:9px 11px;font-size:14px;color:var(--text);border:1px solid var(--border-strong);border-radius:9px;background:#fff;outline:none;transition:border .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}textarea{min-height:72px;resize:vertical}button{background:var(--brand);color:#fff;border:none;font-weight:600;padding:9px 15px;font-size:13.5px;border-radius:9px;cursor:pointer;transition:background .12s,opacity .12s;white-space:nowrap}button:hover{background:var(--brand-dark)}button.secondary{background:#fff;color:var(--text);border:1px solid var(--border-strong)}button.secondary:hover{background:var(--bg)}button.ghost{background:transparent;color:var(--brand);padding:6px 10px}button.ghost:hover{background:var(--brand-100)}button.danger{background:var(--red)}button:disabled{opacity:.45;cursor:not-allowed}.table-wrap{overflow-x:auto;margin:0 -20px -20px}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{text-align:left;padding:11px 16px;color:var(--text-2);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:var(--bg);border-bottom:1px solid var(--border)}tbody td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text)}tbody tr:last-child td{border-bottom:none}tbody tr.click{cursor:pointer;transition:background .1s}tbody tr.click:hover{background:var(--brand-50)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.pill.plain:before{display:none}.pill.new{background:#f1f5f9;color:#64748b}.pill.progress{background:var(--amber-bg);color:var(--amber)}.pill.stock{background:var(--red-bg);color:var(--red)}.pill.ready{background:var(--blue-bg);color:var(--blue)}.pill.done{background:var(--green-bg);color:var(--green)}.pill.lost{background:#f1f5f9;color:#94a3b8}.pill.purple{background:var(--purple-bg);color:var(--purple)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;align-items:center}.toolbar input,.toolbar select{width:auto;flex:0 1 200px}.seg{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px}.seg button{background:transparent;color:var(--text-2);padding:6px 12px;border-radius:7px;font-size:13px}.seg button.on{background:#fff;color:var(--brand);box-shadow:var(--shadow-sm)}.list-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.bar-track{background:var(--bg);border-radius:6px;height:8px;flex:1;overflow:hidden}.bar-fill{height:8px;border-radius:6px;background:var(--brand)}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:#fff;width:100%;max-width:560px;border-radius:16px;padding:22px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal h2{font-size:17px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#1e293b);padding:20px}.login-card{background:#fff;width:100%;max-width:400px;border-radius:16px;padding:32px;box-shadow:var(--shadow-lg)}.login-card .logo{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--brand),#7c3aed);display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;margin-bottom:16px}.empty{text-align:center;color:var(--muted);padding:32px 16px;font-size:13.5px}.wf-tree{display:flex;flex-direction:column;align-items:stretch}.wf-node{border:1px solid var(--border);border-radius:11px;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden}.wf-node.action{border-left:3px solid var(--brand)}.wf-node.condition{border-left:3px solid var(--amber)}.wf-node.parallel{border-left:3px solid var(--purple)}.wf-node .wf-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--bg);border-bottom:1px solid var(--border);font-size:12px;font-weight:700}.wf-node .wf-head .tag{text-transform:uppercase;letter-spacing:.5px;font-size:10.5px}.wf-node .wf-body{padding:12px}.wf-connector{width:2px;height:14px;background:var(--border-strong);align-self:center}.addrow{display:flex;justify-content:center;padding:3px 0}.addbtn{width:26px;height:26px;border-radius:50%;background:#fff;color:var(--brand);border:1px dashed var(--border-strong);font-size:16px;line-height:1;padding:0;display:grid;place-items:center}.addbtn:hover{background:var(--brand-100);border-color:var(--brand)}.addmenu{display:flex;gap:6px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:4px;box-shadow:var(--shadow)}.addmenu button{padding:5px 10px;font-size:12px}.wf-lanes{display:flex;gap:12px;margin-top:10px}.wf-lane{flex:1;min-width:0;border:1px dashed var(--border-strong);border-radius:10px;padding:10px;background:#fbfcfe}.wf-lane .lane-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:inline-block;padding:2px 8px;border-radius:6px}.lane-label.yes{background:var(--green-bg);color:var(--green)}.lane-label.no{background:var(--red-bg);color:var(--red)}.lane-label.par{background:var(--purple-bg);color:var(--purple)}.cond-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:8px}@media (max-width: 720px){.cond-grid{grid-template-columns:1fr}.wf-lanes{flex-direction:column}}.rf-wrap{height:600px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#f8fafc}.rf-node{width:214px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);font-size:12.5px}.rf-node.trigger{border-top:3px solid #0f172a}.rf-node.action{border-top:3px solid var(--brand)}.rf-node.condition{border-top:3px solid var(--amber)}.rf-node.selected,.react-flow__node.selected .rf-node{outline:2px solid var(--brand)}.rf-head{display:flex;align-items:center;gap:6px;padding:6px 10px;font-weight:700;font-size:10.5px;letter-spacing:.5px;color:var(--text-2);border-bottom:1px solid var(--border)}.rf-x{margin-left:auto;background:transparent;color:var(--muted);padding:0 4px;font-size:13px;line-height:1}.rf-x:hover{color:var(--red);background:transparent}.rf-body{padding:8px 10px;display:flex;flex-direction:column;gap:6px}.rf-body select,.rf-body input,.rf-body textarea{font-size:12px;padding:6px 8px;width:100%}.rf-body textarea{min-height:46px}.rf-handles{display:flex;justify-content:space-between;padding:0 22px 5px}.rf-htag{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.rf-htag.yes{color:var(--green)}.rf-htag.no{color:var(--red)}.react-flow__handle{width:10px;height:10px;background:var(--brand);border:2px solid #fff}.react-flow__handle-bottom{bottom:-6px}.react-flow__attribution{display:none}.rf-palette{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
