.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.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__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray: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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.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:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{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:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.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.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@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;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.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:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.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-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.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:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}*{box-sizing:border-box;margin:0;padding:0}html,body,#root,.canvas-root{height:100%;width:100%}body{background:#212230;color:#e8eaf0;font-family:-apple-system,SF Pro Text,Segoe UI,sans-serif;overflow:hidden}.react-flow{background:#212230}.align-bar{position:fixed;top:42px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:3px;background:#2a2c3a;border:1px solid #454a5c;border-radius:10px;padding:5px 8px;box-shadow:0 10px 30px #00000080}.align-bar button{background:none;border:1px solid transparent;border-radius:6px;color:#c9cede;cursor:pointer;display:grid;place-items:center;padding:5px}.align-bar button:hover{border-color:#ff6d5a;color:#ff6d5a}.align-sep{width:1px;height:16px;background:#454a5c;margin:0 4px}.align-count{font-size:10.5px;color:#767e92;margin-left:5px}.topbar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;padding:10px 16px;pointer-events:none;font-size:12.5px;color:#8b93a7}.topbar .brand{color:#c9cede;font-weight:600;pointer-events:auto;cursor:text}.topbar .brand:hover{color:#eceef5}.brand-edit{pointer-events:auto;background:#212330;border:1px solid #ff6d5a;border-radius:7px;color:#eceef5;font-size:13px;font-weight:600;padding:4px 9px;outline:none;width:260px}.topbar .toolbar{display:flex;gap:12px;align-items:center;pointer-events:auto}.tb-btn{background:#383d4d;border:1px solid #565d73;color:#eceef5;border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer}.tb-btn:hover{border-color:#ff6d5a}.board-sel{max-width:360px}.add-menu{position:fixed;z-index:40;background:#2a2c3a;border:1px solid #454a5c;border-radius:10px;padding:10px;box-shadow:0 12px 40px #0000008c;width:240px}.add-menu input{width:100%;background:#212330;border:1px solid #454a5c;border-radius:7px;color:#eceef5;font-size:13px;padding:7px 10px;outline:none;margin-bottom:8px}.add-menu input:focus{border-color:#ff6d5a}.add-row{display:flex;gap:6px}.add-row button{flex:1;background:#323548;border:1px solid #454a5c;border-radius:7px;color:#d5dae6;font-size:12px;padding:6px 4px;cursor:pointer;white-space:nowrap}.add-row button:hover:not(:disabled){border-color:#ff6d5a}.add-row button:disabled{opacity:.4;cursor:default}.edge-menu{width:250px}.edge-menu .menu-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#767e92;margin-bottom:6px}.edge-menu .add-row button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px}.edge-menu .add-row button small{font-size:9px;color:#8b93a7}.edge-menu .add-row button.danger:hover{border-color:#e05252;color:#e08585}.panel-title{cursor:text}.panel-title .pencil{opacity:0;font-size:12px;color:#8b93a7}.panel-title:hover .pencil{opacity:1}.rename-input{width:100%;background:#212330;border:1px solid #ff6d5a;border-radius:7px;color:#eceef5;font-size:15px;font-weight:600;padding:6px 9px;outline:none;margin-bottom:6px}.cluster-x{margin-left:auto;opacity:.6}.cluster-x:hover{opacity:1}.cat-process .step-node{border-radius:999px;padding:0 18px}.cat-data-artifact .step-node{border-radius:4px}.cat-engine .step-node{border-width:2px;border-radius:10px;outline:1.5px solid color-mix(in srgb,var(--accent, #6f9fe8) 45%,transparent);outline-offset:3px}.cat-data-source .resource-circle{border-radius:12px;border:1.6px solid color-mix(in srgb,var(--accent, #57c9bd) 75%,#565d73);background:color-mix(in srgb,var(--accent, #57c9bd) 14%,#383d4d)}.cat-decision .step-node{border:none;background:#a8623f;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);padding:0 22px}.cat-decision .step-node:before{content:"";position:absolute;top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;z-index:0;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%);background:#383d4d}.cat-decision .step-node>*{position:relative;z-index:1}.cat-trigger .step-node{border-radius:999px 12px 12px 999px;padding-left:10px}.cat-external-system .step-node{border-style:dashed;border-radius:10px}.cat-trigger .badge-node{border-radius:8px}.cat-section .step-node{width:72px;min-width:72px;height:72px;border-radius:8px;flex-direction:column;justify-content:center;gap:4px;padding:6px;text-align:center}.cat-section .step-node .step-icon{width:22px;height:22px;border-radius:6px}.cat-section .step-node .step-icon svg{width:13px;height:13px}.cat-section .step-node .step-label{white-space:normal;font-size:9.5px;line-height:1.15}.cat-state .badge-node{background:transparent;border-style:dashed}.badge-node.state{border-color:#7a5f96;color:#d3b8ee}.badge-node.state .badge-ico{background:color-mix(in srgb,#c9a3e8 16%,#2c303d);color:#c9a3e8}.cat-action .badge-node{border-radius:8px;border-color:#4a7891}.cat-conversation .badge-node{border-radius:12px 12px 12px 3px}.cat-signal .badge-node{border:none;background:#a8873f;clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%);padding-left:16px;border-radius:0 6px 6px 0}.cat-signal .badge-node:before{content:"";position:absolute;top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;z-index:0;clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%);background:#383d4d;border-radius:0 5px 5px 0}.cat-signal .badge-node>*{position:relative;z-index:1}.legend{position:fixed;left:60px;bottom:12px;z-index:8;display:flex;flex-wrap:wrap;gap:5px 12px;max-width:460px;background:#1e1f2ab3;border:1px solid #3a3f52;border-radius:9px;padding:8px 26px 8px 11px;font-size:10.5px;color:#aab2c4;pointer-events:none}.legend-x{position:absolute;top:2px;right:4px;pointer-events:auto;background:none;border:none;color:#767e92;font-size:13px;cursor:pointer}.legend-x:hover{color:#ff6d5a}.legend-inline{position:static;max-width:none;background:none;border:0;padding:0 0 10px;margin-bottom:8px;border-bottom:1px solid #3a3f52;border-radius:0;pointer-events:auto}.legend-item{display:inline-flex;align-items:center;gap:5px}.legend-item i{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.legend-item.l-process i{border-radius:999px;width:14px;height:8px}.legend-item.l-field i{border-radius:50%}.legend-item.l-actor i{clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%);border-radius:0;width:10px;height:10px}.legend-item.l-data-source i{border-radius:3px;outline:1px solid currentColor;outline-offset:-3px}.legend-item.l-action i{border-radius:3px;width:13px;height:8px;border-bottom:2.5px solid currentColor;box-sizing:border-box}.legend-item.l-signal i{clip-path:polygon(30% 0,100% 0,100% 100%,30% 100%,0 50%);border-radius:0;width:12px}.legend-item.l-conversation i{border-radius:5px 5px 5px 1px}.legend-item.l-data-artifact i{border-radius:1.5px}.legend-item.l-engine i{outline:1.5px solid currentColor;outline-offset:1.5px}.legend-item.l-decision i{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border-radius:0;width:13px}.legend-item.l-trigger i{border-radius:5px 2px 2px 5px;width:12px}.legend-item.l-external-system i{background:transparent!important;border:1.5px dashed currentColor;box-sizing:border-box}.legend-item.l-state i{background:transparent!important;border:1.5px dashed currentColor;border-radius:999px;box-sizing:border-box;width:13px}.legend-item.l-sub-system i{border-radius:50%}.groups-pop{line-height:1.5;cursor:default}.group-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:3px 0}.node-edit{flex:1;min-width:0;background:#212330;border:1px solid #ff6d5a;border-radius:6px;color:#eceef5;font-size:12.5px;font-weight:600;padding:5px 8px;outline:none}.node-edit.small{font-size:10.5px;font-weight:500;max-width:120px}.step-collapse{position:absolute;top:4px;right:4px;background:none;border:none;color:#8b93a7;cursor:pointer;display:grid;place-items:center;padding:2px;opacity:0;transition:opacity .12s ease}.step-node:hover .step-collapse{opacity:1}.step-collapse:hover{color:#ff6d5a}.help-pop{position:fixed;top:44px;right:16px;z-index:40;background:#2a2c3a;border:1px solid #454a5c;border-radius:10px;padding:12px 14px;box-shadow:0 12px 40px #0000008c;font-size:12px;color:#b9c0d0;line-height:1.9;cursor:pointer}.help-pop b{color:#eceef5}.quick-pick{width:240px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.quick-grid button{display:flex;align-items:center;gap:7px;background:#323548;border:1px solid #454a5c;border-radius:7px;color:#d5dae6;font-size:11px;padding:6px 8px;cursor:pointer;text-align:left}.quick-grid button:hover{border-color:#ff6d5a}.quick-grid i{width:9px;height:9px;border-radius:3px;flex:none}.quick-del{position:absolute;left:-9px;top:-17px;width:22px;height:22px;border-radius:50%;background:#2e3140;border:1.5px solid #c96a6a;color:#e09999;font-size:11px;line-height:1;cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:6}.react-flow__node:hover .quick-del,.canvas-root:not(.sel-multi) .react-flow__node.selected .quick-del{opacity:1}.quick-del:hover{transform:scale(1.15);border-color:#e05252;color:#e05252}.resource-node .quick-del{left:-14px;right:auto;top:-14px}.port{opacity:0!important}.resource-node .quick-add,.resource-node .quick-del{pointer-events:none}.resource-node .resource-circle:hover~.quick-add,.resource-node .resource-circle:hover~.quick-del,.resource-node .quick-add:hover,.resource-node .quick-del:hover,.canvas-root:not(.sel-multi) .react-flow__node.selected .resource-node .quick-add,.canvas-root:not(.sel-multi) .react-flow__node.selected .resource-node .quick-del{opacity:1;pointer-events:auto}.badge-node .quick-add{right:-8px;top:-16px}.badge-node .quick-del{left:-8px;right:auto;top:-16px}.quick-add{position:absolute;right:-9px;top:-17px;transform:none;z-index:6;width:22px;height:22px;border-radius:50%;background:#2e3140;border:1.5px solid #57a9c9;color:#9ac8dc;font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center;opacity:0;transition:opacity .12s ease,transform .12s ease}.react-flow__node:hover .quick-add,.canvas-root:not(.sel-multi) .react-flow__node.selected .quick-add{opacity:1}.quick-add:hover{transform:translateY(-50%) scale(1.15);border-color:#ff6d5a;color:#ff6d5a}.resource-node .quick-add{right:-14px;top:-14px}.step-node,.resource-node,.badge-node{position:relative}.sig-dock{position:absolute;top:-11px;right:-9px;z-index:5}.sig-chip{display:inline-flex;align-items:center;gap:3px;background:#3a3324;border:1px solid #8a6f3a;border-radius:999px;color:#e8b34b;font-size:10px;font-weight:700;padding:2px 7px;cursor:pointer}.sig-chip:hover{border-color:#e8b34b}.sig-pop-fixed{position:fixed;width:340px;z-index:40;background:#23242f;border:1px solid #8a6f3a;border-radius:10px;padding:6px;box-shadow:0 14px 40px #0000008c}.sig-pop-head{display:flex;align-items:center;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#b08d45;padding:4px 7px 7px}.sig-row+.sig-row{border-top:1px solid #31323e}.sig-row:before{content:"●";color:#e8b34b;font-size:8px;flex:none}.sig-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:#e8c887;padding:5px 7px;border-radius:6px}.sig-row:hover{background:#323548}.sig-row span{cursor:pointer;line-height:1.45}.sig-actions{display:inline-flex;gap:2px;flex:none}.sig-row button{background:#2e3140;border:1px solid #454a5c;border-radius:6px;color:#9aa3b5;cursor:pointer;flex:none;font-size:11px;padding:2px 6px}.sig-row button:hover{border-color:#ff6d5a;color:#e8c887;color:#ff6d5a}.es-solid .react-flow__edge-path{stroke-dasharray:none!important;animation:none!important}.es-dashed .react-flow__edge-path{stroke-dasharray:6 5!important;animation:none!important}.es-anim .react-flow__edge-path{stroke-dasharray:6 5!important}.es-anim-rev .react-flow__edge-path{stroke-dasharray:6 5!important;animation-direction:reverse!important}.step-node{width:180px;height:72px;background:color-mix(in srgb,var(--accent, #565d73) 11%,#343846);border:1.5px solid color-mix(in srgb,var(--accent, #565d73) 90%,#565d73);border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 14px;box-shadow:0 3px 12px #00000059;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.raised .step-node,.step-node:hover{transform:translateY(-2px) scale(1.02);border-color:#ff6d5a;box-shadow:0 8px 24px #00000080}.react-flow__node.selected .step-node{border-color:#ff6d5a}.step-icon{width:42px;height:42px;flex:none;border-radius:9px;background:color-mix(in srgb,var(--accent, #8b93a7) 30%,#2c303d);display:grid;place-items:center;color:var(--accent, #d8dce8)}.step-label{font-size:13px;font-weight:600;line-height:1.25;color:#eceef5}.sockets{position:absolute;left:0;right:0;bottom:0;height:0}.socket{position:absolute;bottom:-3px;transform:translate(-50%);text-align:center}.socket-label{position:absolute;top:15px;left:50%;transform:translate(-50%);font-size:9px;letter-spacing:.04em;color:#8b93a7;white-space:nowrap;background:#212330d9;padding:1px 5px;border-radius:5px}.port{width:9px;height:9px;background:#a7b0c5;border:2px solid #212230;border-radius:50%}.port.side{top:50%}.port.side.multi{opacity:.5;width:7px;height:7px}.port.sock{position:relative;display:inline-block;width:7px;height:7px}.port.dim{opacity:.35}.resource-node{width:52px;display:flex;flex-direction:column;align-items:center}.resource-circle{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--accent, #565d73) 16%,#383d4d);border:1.5px solid color-mix(in srgb,var(--accent, #565d73) 92%,#565d73);display:grid;place-items:center;color:color-mix(in srgb,var(--accent, #cfd5e4) 70%,#cfd5e4);box-shadow:0 2px 8px #0000004d;transition:transform .12s ease,border-color .12s ease}.raised .resource-circle,.resource-node:hover .resource-circle{transform:scale(1.07);border-color:#ff6d5a}.resource-label{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:5px;width:110px;pointer-events:all;font-size:10.5px;font-weight:500;color:#c3c9d6;text-align:center;line-height:1.25;background:#14151ec7;border-radius:5px;padding:1px 5px;width:-moz-max-content;width:max-content;max-width:120px}.badge-node{display:inline-flex;align-items:center;gap:7px;max-width:150px;padding:4px 10px 4px 5px;border-radius:999px;background:color-mix(in srgb,var(--accent, #4a5061) 12%,#343846);border:1.5px solid color-mix(in srgb,var(--accent, #4a5061) 88%,#4a5061);font-size:11px;font-weight:500;color:#d5dae6;white-space:nowrap;box-shadow:0 2px 8px #0000004d}.badge-node .badge-ico{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:6px;background:#2c303d}.badge-node.amber .badge-ico{background:color-mix(in srgb,#e8b34b 18%,#2c303d);color:#e8b34b}.badge-node.cyan .badge-ico{background:color-mix(in srgb,#57c9bd 18%,#2c303d);color:#57c9bd}.badge-node.action .badge-ico{background:color-mix(in srgb,#57a9c9 18%,#2c303d);color:#57a9c9}.badge-node .badge-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-node.amber{border-color:#6d5a33;color:#e8c887}.badge-node.cyan{border-color:#35635e;color:#9adcd5}.badge-node.action{border-color:#365a6d;color:#9ac8dc}.cluster-node{border-radius:18px;background:color-mix(in srgb,var(--tint) 7%,transparent);border:1.5px dashed color-mix(in srgb,var(--tint) 38%,transparent);transition:width .15s ease,height .15s ease}.cluster-head{display:flex;align-items:center;gap:8px;padding:10px 14px;color:var(--tint);font-size:13px;font-weight:700}.cluster-toggle{background:none;border:none;color:var(--tint);cursor:pointer;display:grid;place-items:center}.cluster-title-btn{background:none;border:none;color:var(--tint);cursor:pointer;font-size:13px;font-weight:700;padding:0}.cluster-title-btn:hover{text-decoration:underline}.swatch{width:22px;height:22px;border-radius:6px;border:1px solid #454a5c;cursor:pointer;flex:none}.swatch:hover{border-color:#fff}.cluster-count{font-size:10.5px;font-weight:500;opacity:.7;border:1px solid currentColor;border-radius:999px;padding:0 7px}.react-flow__edge-path{stroke-width:1.6}.edge-main .react-flow__edge-path{stroke:#7a869c;stroke-width:2}.edge-res .react-flow__edge-path{stroke:#6f7890}.edge-dep .react-flow__edge-path{stroke:#c97a57;opacity:.75}.lit .react-flow__edge-path{stroke:#ff6d5a!important;stroke-width:2.6!important;opacity:1!important}.react-flow__edge-text{fill:#c9cede;font-size:10px}.react-flow__edge-textbg{fill:#2a2c3a}.panel{position:fixed;top:44px;right:12px;bottom:12px;width:360px;z-index:20;background:#2a2c3a;border:1px solid #454a5c;border-radius:12px;padding:18px;overflow-y:auto;box-shadow:0 12px 40px #00000080}.panel h2{font-size:16px;margin-bottom:6px}.panel-meta{font-size:12px;color:#8b93a7;margin-bottom:12px}.cat-select{background:#323548;border:1px solid #454a5c;border-radius:6px;color:#d5dae6;font-size:11.5px;padding:3px 6px;outline:none;cursor:pointer}.cat-select:focus{border-color:#ff6d5a}.panel-desc{font-size:12.5px;line-height:1.55;color:#b9c0d0;margin-bottom:14px;white-space:pre-wrap}.panel-desc.editable{cursor:text;border-radius:6px;padding:4px;margin:-4px -4px 10px}.panel-desc.editable:hover{background:#323548}.desc-empty{color:#6d7488;font-style:normal}.desc-edit{width:100%;background:#212330;border:1px solid #ff6d5a;border-radius:7px;color:#d5dae6;font-size:12.5px;line-height:1.5;padding:8px 10px;outline:none;resize:vertical;margin-bottom:12px;font-family:inherit}.panel h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#767e92;margin:12px 0 6px}.panel-link{display:block;width:100%;text-align:left;background:#323548;border:1px solid #454a5c;border-radius:8px;color:#d5dae6;font-size:12px;padding:7px 10px;margin-bottom:5px;cursor:pointer}.panel-link:hover{border-color:#ff6d5a}.panel-link em{color:#8b93a7;font-style:normal}.panel-close{position:absolute;top:10px;right:12px;background:none;border:none;color:#8b93a7;font-size:18px;cursor:pointer}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0a0a108c;display:flex;justify-content:center;padding-top:14vh}.search-box{width:480px;max-height:420px;overflow-y:auto;background:#2a2c3a;border:1px solid #454a5c;border-radius:12px;padding:10px;box-shadow:0 16px 60px #0009;height:-moz-fit-content;height:fit-content}.search-box input{width:100%;background:#212330;border:1px solid #454a5c;border-radius:8px;color:#eceef5;font-size:14px;padding:10px 12px;outline:none;margin-bottom:8px}.search-box input:focus{border-color:#ff6d5a}.search-hit{display:flex;justify-content:space-between;gap:10px;width:100%;background:none;border:none;color:#d5dae6;font-size:12.5px;padding:7px 10px;border-radius:7px;cursor:pointer;text-align:left}.search-hit:hover{background:#323548}.search-hit em{font-style:normal;font-size:11px}.react-flow__minimap{background:#1a1b26;border-radius:10px}.react-flow__controls{border-radius:10px;overflow:hidden}.react-flow__controls button{background:#2a2c3a;border-bottom:1px solid #454a5c;color:#c9cede;fill:#c9cede}.react-flow__controls button:hover{background:#323548}.edge-dot{fill:#a7b0c5;stroke:#212230;stroke-width:2px}.dep-chip{position:absolute;pointer-events:none;z-index:5;background:#2a2c3a;border:1px solid #6d4a3a;border-radius:999px;color:#e8a583;font-size:10px;padding:2px 9px;white-space:nowrap}.dep-chip.editable{pointer-events:auto;cursor:text}.flow-chip{border-color:#4a5061;color:#c9cede}.dep-chip.editable:hover{border-color:#ff6d5a}.react-flow__edge.faded{opacity:.22}.react-flow__edge.trace .react-flow__edge-path{stroke:#7fdcb4!important;stroke-width:2!important;stroke-dasharray:7 5;animation:trace-flow .8s linear infinite;opacity:1}.react-flow__edge.trace .edge-dot{fill:#7fdcb4!important}@keyframes trace-flow{to{stroke-dashoffset:-12}}.guide-line{position:absolute;background:#ff6d5a;opacity:.85;pointer-events:none;z-index:1200}.guide-v{top:-100000px;height:200000px;width:1px}.guide-h{left:-100000px;width:200000px;height:1px}.empty-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;pointer-events:none;color:#8b90a8;font-size:14px;text-align:center}.empty-hint b{font-size:17px;color:#c9cde0;letter-spacing:.02em}.empty-hint i{font-style:normal;color:#c9cde0}.react-flow__edge.selected .react-flow__edge-path{stroke:#ff6d5a!important;stroke-width:2.4!important}.react-flow__edge.selected .edge-dot{fill:#ff6d5a!important}.bend-handle{position:absolute;width:22px;height:9px;border-radius:5px;background:#4c9ffe;border:1.5px solid #dfeeff;box-shadow:0 1px 6px #00000080;pointer-events:all;z-index:1300}.bh-h{cursor:ew-resize;width:9px;height:22px}.bh-v{cursor:ns-resize}.socket{pointer-events:none}.react-flow__edgelabel-renderer{z-index:6}.line-edit{position:fixed;transform:translate(-50%,-50%);z-index:1500;width:150px;padding:5px 9px;background:#23252f;color:#e8eaf2;border:1.5px solid #4c9ffe;border-radius:6px;font-size:12.5px;outline:none;box-shadow:0 4px 16px #00000080}.align-group{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:4px 10px!important}.group-dot{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:7px;flex:none}.group-name{display:inline-flex;align-items:center}.group-count{margin-left:7px;font-style:normal;opacity:.55;font-size:11px}.group-actions{display:inline-flex;gap:6px}.cat-area .step-node{border-radius:0}.cat-module .step-node{border-radius:14px}.cat-screen .step-node{border-radius:30px}.cat-object .step-node{border-radius:999px;padding:0 20px}.cat-source .step-node{border-radius:999px;padding:0 20px;border-style:dashed;border-width:2.2px}.cat-process .step-node{width:96px;height:96px;border-radius:50%;padding:0;display:grid;place-items:center;position:relative}.cat-process .step-node .step-icon{width:46px;height:46px}.cat-process .step-node .step-label{position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);width:160px;text-align:center;font-size:12px;pointer-events:all}.cat-process .step-node>input{position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)}.fam-behavior .badge-node{border-radius:9px;transform:none}.cat-state .badge-node{border-style:dashed;background:color-mix(in srgb,#383d4d 55%,transparent)}.cat-actor .resource-circle{clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%);border:none;border-radius:0;transform:none;background:color-mix(in srgb,var(--accent, #565d73) 55%,#565d73);position:relative}.cat-actor .resource-circle:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;clip-path:polygon(50% 0,100% 26%,100% 74%,50% 100%,0 74%,0 26%);background:color-mix(in srgb,var(--accent, #565d73) 9%,#383d4d)}.cat-actor .resource-circle svg{transform:none;position:relative;z-index:1}.cat-note .badge-node{clip-path:none;border-radius:2px;background:color-mix(in srgb,#e8d27a 16%,#34302a);border:1px solid #e8d27a99;transform:rotate(-1.3deg);padding:6px 12px}.flag-badges{position:absolute;top:-8px;right:-8px;display:flex;flex-direction:column;align-items:flex-end;gap:3px;z-index:3}.step-node:has(.sig-dock) .flag-badges,.badge-node:has(.sig-dock) .flag-badges,.note-node:has(.sig-dock) .flag-badges{right:46px}.resource-node:has(.sig-dock) .flag-badges{top:auto;bottom:calc(100% + 11px);right:-8px}.fbadge{height:16px;padding:0 6px;border-radius:5px;font-size:9px;letter-spacing:.02em;white-space:nowrap;font-weight:700;font-style:normal;display:flex;align-items:center;justify-content:center;background:#2a2c3a;border:1px solid #6a7188;color:#cdd2e4}.panel-flags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}.flag-chip{background:#2a2c3a;border:1px solid #454a5c;color:#9aa0b5;border-radius:999px;padding:3px 11px;font-size:11.5px;cursor:pointer}.flag-chip.on{border-color:#7fa6e8;color:#cfe0ff;background:#2c3550}.legend-fams{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.legend-fam{display:flex;align-items:center;gap:10px}.legend-fam>b{width:76px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#7c8299;font-weight:600}.edge-dot-hit{position:absolute;width:20px;height:20px;border-radius:50%;cursor:grab;pointer-events:all;z-index:1250}.edge-dot-hit:active{cursor:grabbing}.react-flow__handle.port.side{width:1px;height:1px;background:transparent;border:none;opacity:0!important;pointer-events:none}.react-flow__handle-right.port.side{right:-16px}.react-flow__handle-left.port.side{left:-16px}.react-flow__node:hover .react-flow__handle-right.port.side.source{right:-20px}.resource-node>.react-flow__handle.port,.badge-node>.react-flow__handle.port{width:1px;height:1px;background:transparent;border:none;opacity:0!important;pointer-events:none}.resource-node>.react-flow__handle-top.port,.badge-node>.react-flow__handle-top.port{top:-14px}.resource-node>.react-flow__handle-bottom.port,.badge-node>.react-flow__handle-bottom.port{bottom:-14px}.react-flow__connection-path{stroke:#4c9ffe!important;stroke-width:2.5!important;stroke-dasharray:7 5}.edge-dot.pinned{fill:#e6eaf6;stroke:#2a2c3a;stroke-width:1.5px}.react-flow__handle.side-dot{width:26px;height:26px;background:transparent;border:none;border-radius:50%;opacity:1!important;cursor:crosshair;z-index:4}.react-flow__handle-left.side-dot{left:-15px;top:50%}.react-flow__handle-right.side-dot{right:-15px;top:50%}.react-flow__handle-top.side-dot{top:-15px;left:50%}.react-flow__handle-bottom.side-dot{bottom:-15px;left:50%}.react-flow__handle.side-dot:after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-50%);border-radius:50%;background:#4c9ffe;border:2px solid #dfeeff;box-shadow:0 2px 7px #00000073;opacity:0;transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease}.react-flow__node:hover .react-flow__handle.side-dot:after,.canvas-root:not(.sel-multi) .react-flow__node.selected .react-flow__handle.side-dot:after{opacity:1}.react-flow__handle.side-dot:hover:after{transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 0 6px #4c9ffe40}.react-flow.connecting .react-flow__handle.side-dot:after{opacity:1}.react-flow__handle.side-dot{pointer-events:none}.react-flow__node:hover .react-flow__handle.side-dot,.canvas-root:not(.sel-multi) .react-flow__node.selected .react-flow__handle.side-dot,.react-flow.connecting .react-flow__handle.side-dot{pointer-events:all}.type-badge{height:16px;padding:0 6px;border-radius:5px;display:flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.02em;white-space:nowrap;background:#2a2c3a;border:1px solid #6a7188;color:#cdd2e4;pointer-events:none;z-index:3}.edge-menu{cursor:grab}.edge-menu:active{cursor:grabbing}.edge-menu input,.edge-menu button{cursor:auto}.edge-menu button{cursor:pointer}.multi-menu{position:fixed;z-index:40}.board-admin{left:14px;top:56px;right:auto;width:330px}.board-admin .add-row{flex-wrap:wrap}.board-admin .add-row button{flex:1 1 auto}.cat-step .badge-node,.cat-trigger .badge-node{max-width:none}.cat-step .badge-node .badge-text,.cat-trigger .badge-node .badge-text{overflow:visible;text-overflow:clip}.note-node{position:relative;display:flex;flex-direction:column;gap:6px;padding:11px 14px 13px;border-radius:10px;background:color-mix(in srgb,var(--accent, #565d73) 10%,#343846);border:1.5px solid color-mix(in srgb,var(--accent, #565d73) 72%,#565d73);box-shadow:0 3px 12px #00000059}.note-title{font-size:13px;font-weight:600;line-height:1.3;color:#eceef5;overflow-wrap:anywhere}.note-body{font-size:11.5px;line-height:1.5;color:#c3c9d6;white-space:pre-wrap;overflow-wrap:anywhere}.note-body.empty{color:#767e93;font-style:italic}.note-body-edit{font:inherit;font-size:11.5px;line-height:1.5;color:#eceef5;background:#14151e8c;border:1px solid #4a5061;border-radius:6px;padding:5px 7px;width:100%;resize:none;outline:none}.note-resize{position:absolute;right:2px;bottom:2px;width:15px;height:15px;cursor:ew-resize}.note-resize:after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid #7c8598;border-bottom:2px solid #7c8598;border-bottom-right-radius:3px;opacity:0;transition:opacity .12s ease}.note-node:hover .note-resize:after{opacity:.85}.react-flow__node.selected .note-node{border-color:#ff6d5a}.mode-switch{display:inline-flex;border:1px solid #454a5c;border-radius:8px;overflow:hidden}.mode-switch button{background:#2a2c3a;color:#8b93a7;border:0;font-size:12px;padding:6px 12px;cursor:pointer}.mode-switch button.on{background:#3b3f52;color:#eceef5}.jdots-toggle.on{border-color:#ff6d5a;color:#ff6d5a}.jdim .react-flow__node:not(.jstop):not(.jrel){opacity:.35}.jrel .step-node,.jrel .badge-node,.jrel .note-node,.jrel .resource-circle{border-color:var(--jstop);border-style:dashed;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--jstop) 25%,transparent)}.journey-layer.passive .journey-note,.journey-layer.passive .journey-add,.journey-layer.passive .journey-origin{pointer-events:none}.jp-mark,.jp-mark.on{border-style:dashed}.jp-related{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:2px 0 4px}.jp-related-title{font-size:10px;color:#6f7389;text-transform:uppercase;letter-spacing:.04em;margin-right:2px}.jp-rel-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;border:1px dashed var(--jc, #6f9fe8);color:#c9cbd8;border-radius:999px;padding:2px 4px 2px 8px}.jp-rel-x{border:0;background:none;color:#8b90a5;cursor:pointer;font-size:13px;line-height:1;padding:0 3px}.jp-rel-x:hover{color:#e08585}.jdim .react-flow__edge{opacity:.35}.mode-journeys .quick-add,.mode-journeys .quick-del,.mode-journeys .side-dot,.mode-journeys .sig-dock,.mode-journeys .note-resize,.mode-journeys .step-collapse,.mode-journeys .port{display:none!important}.journey-layer{position:absolute;left:0;top:0;pointer-events:none;z-index:7}.journey-svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible}.journey-path{fill:none;stroke-width:3;opacity:.9}.journey-path.back{stroke-width:2.5;stroke-dasharray:9 8;stroke-linecap:round;opacity:.7}.journey-layer.anim .journey-path{stroke-dasharray:15 10;stroke-linecap:round;animation:journey-flow 1.1s linear infinite}.journey-layer.anim .journey-path.back{stroke-dasharray:9 8;animation:journey-retrace .9s linear infinite}@keyframes journey-flow{to{stroke-dashoffset:-25}}@keyframes journey-retrace{to{stroke-dashoffset:-17}}.journey-badge{position:absolute;transform:translate(-55%,-55%);min-width:20px;height:20px;padding:0 4px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:#14151e;background:var(--jc);border:2px solid var(--jc);border-radius:50%;box-shadow:0 1px 6px #0000008c}.journey-badge.jb-outline{background:#14151e;color:var(--jc)}.journey-badge.jb-square{border-radius:5px}.journey-badge.jb-bolt{border-radius:50%;font-size:9px;letter-spacing:-.5px}.journey-badge.jb-pass{min-width:10px;width:10px;height:10px;padding:0;border-width:0}.journey-dot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000080}.journeys-panel{position:fixed;top:0;right:0;bottom:0;width:300px;z-index:30;background:#20222e;border-left:1px solid #383b4c;padding:16px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;color:#d5dae6;font-size:13px}.journeys-panel>*{flex-shrink:0}.jp-title{font-size:15px;font-weight:700;color:#eceef5;margin-bottom:4px}.jp-empty{color:#767e93;font-style:italic;font-size:12px;line-height:1.45}.jp-row{display:flex;align-items:center;gap:8px;padding:8px 9px;background:#272935;border:1px solid #3a3d4e;border-radius:8px;cursor:pointer}.jp-row:hover{border-color:#4a5061}.jp-swatch{width:12px;height:12px;border-radius:4px;flex:none}.jp-name{font-weight:600;color:#eceef5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jp-actor{color:#8b93a7;font-size:11.5px;margin-left:auto;white-space:nowrap}.jp-eye{background:none;border:0;color:#8b93a7;cursor:pointer;flex:none;display:grid;place-items:center;padding:3px}.jp-eye:hover{color:#eceef5}.jp-new{display:flex;align-items:center;gap:6px;justify-content:center;background:#2a2c3a;border:1px dashed #4a5061;border-radius:8px;color:#9ac8dc;padding:8px;cursor:pointer;font-size:12.5px}.jp-form{display:flex;flex-direction:column;gap:6px}.jp-form input,.jp-form textarea,.jp-actor-edit,.jp-jtbd,.jp-name-edit{background:#212330;border:1px solid #454a5c;border-radius:7px;color:#eceef5;font-size:12.5px;padding:6px 9px;outline:none;resize:none;font-family:inherit}.jp-form input:focus,.jp-form textarea:focus,.jp-actor-edit:focus,.jp-jtbd:focus,.jp-name-edit:focus{border-color:#ff6d5a}.jp-form-row{display:flex;gap:6px;align-items:center}.jp-form-row button,.jp-create{background:#2a2c3a;border:1px solid #454a5c;border-radius:7px;color:#d5dae6;padding:6px 12px;cursor:pointer;font-size:12px}.jp-create{border-color:#57a9c9;color:#9ac8dc;flex:1}.jp-create:disabled{opacity:.4;cursor:default}.jp-color{width:26px;height:26px;padding:0;border:0;background:none;cursor:pointer;flex:none}.jp-head{display:flex;align-items:center;gap:7px}.jp-back{background:none;border:0;color:#8b93a7;font-size:19px;cursor:pointer;padding:0 3px}.jp-name-edit{flex:1;font-weight:600;min-width:0}.jp-record{background:#2a2c3a;border:1px solid #4a5061;border-radius:8px;color:#d5dae6;padding:8px;cursor:pointer;font-size:12px}.jp-record.on{border-color:#e05252;color:#e08585;background:#322632}.jp-stops{display:flex;flex-direction:column;gap:5px}.jp-insert{position:relative;height:14px;margin:-7px 0;z-index:1;background:none;border:0;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s ease}.jp-insert:before{content:"";position:absolute;left:10px;right:10px;top:50%;height:1px;background:#ff6d5a;opacity:.6}.jp-insert span{position:relative;font-size:10px;font-weight:700;color:#14151e;background:#ff6d5a;border-radius:999px;padding:1px 8px;line-height:14px}.jp-insert:hover,.jp-insert.on{opacity:1}.jp-stops:first-child .jp-insert:first-child{margin-top:0}.jp-stop{background:#272935;border:1px solid #3a3d4e;border-radius:8px}.jp-stop.broken{border-color:#7a3a3a}.jp-stop.editing{border-color:#4a5061}.jp-stop-row{display:flex;align-items:center;gap:6px;padding:6px 7px;cursor:pointer}.jp-grip{color:#565d73;flex:none}.jp-grip-hit{display:grid;place-items:center;cursor:grab;touch-action:none;padding:2px;margin:-2px}.jp-grip-hit:active{cursor:grabbing}.jp-stop.drop-here{border-color:#57a9c9}.jp-stop.drag-source{opacity:.45}.jp-stop.hidden-stop{opacity:.5}.jp-x,.jp-stop-eye{margin-left:0}.jp-stop-row .jp-stop-eye{margin-left:0;flex:none}.jp-stop-row .jp-x{margin-left:12px;flex:none}body.jp-dragging{cursor:grabbing;-webkit-user-select:none;-moz-user-select:none;user-select:none}.jp-stop-row{touch-action:none}.jp-num{width:17px;height:17px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:9.5px;font-weight:700;font-style:normal;color:#14151e}.jp-stop-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.mode-journeys .react-flow__node.raised{filter:drop-shadow(0 0 3px #6f9fe8) drop-shadow(0 0 10px rgba(111,159,232,.75))}.jp-stop.hover{border-color:#6f9fe8}.jp-stop.hover .jp-stop-row{background:#6f9fe824}.jp-stop.broken .jp-stop-label{color:#e08585;text-decoration:line-through}.jp-pass-ico{color:#767e93;flex:none}.jp-x{margin-left:auto;background:none;border:0;color:#767e93;cursor:pointer;display:grid;place-items:center;padding:2px;flex:none}.jp-x:hover{color:#e08585}.jp-note-preview{color:#8b93a7;font-size:11px;padding:0 8px 6px 30px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.jp-stop-edit{padding:0 8px 8px;display:flex;flex-direction:column;gap:6px}.jp-note{background:#212330;border:1px solid #454a5c;border-radius:6px;color:#eceef5;font-size:11.5px;padding:5px 7px;outline:none;resize:none;font-family:inherit}.jp-passthrough{display:flex;align-items:center;gap:6px;font-size:11px;color:#8b93a7;cursor:pointer}.jp-delete{margin-top:auto;background:none;border:1px solid #513;border-radius:7px;color:#b96a6a;padding:7px;cursor:pointer;font-size:11.5px}.jp-delete:hover{border-color:#7a3a3a;color:#e08585}.jstop .step-node,.jstop .badge-node,.jstop .note-node{border-color:var(--jstop);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--jstop) 35%,transparent),0 3px 12px #00000059}.jstop .resource-circle{border-color:var(--jstop);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--jstop) 35%,transparent),0 2px 8px #0000004d}.jp-note-save{align-self:flex-end;background:#2a2c3a;border:1px solid #57a9c9;border-radius:6px;color:#9ac8dc;padding:5px 12px;cursor:pointer;font-size:11.5px}.journey-note{position:absolute;box-sizing:border-box;padding:6px 9px;border-radius:7px;background:#eef0f6d1;border:1.5px solid var(--jc);color:#23242e;font-size:11px;font-weight:500;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 3px 10px #00000073}.journey-note:before{content:"";position:absolute;top:-9px;left:16px;width:2px;height:9px;background:var(--jc)}.jn-title{display:block;font-weight:700;font-size:11.5px;margin-bottom:2px}.journey-note,.journey-badge{pointer-events:all;cursor:pointer}.journey-note.editing{cursor:auto;display:flex;flex-direction:column;gap:5px;background:#eef0f6f2}.jn-title-edit,.jn-note-edit{font:inherit;font-size:11px;color:#23242e;background:#fff;border:1px solid #b9bfd0;border-radius:5px;padding:4px 7px;outline:none;resize:none;width:100%;box-sizing:border-box}.jn-title-edit{font-weight:700}.jn-title-edit:focus,.jn-note-edit:focus{border-color:var(--jc)}.journey-add{position:absolute;pointer-events:all;cursor:pointer;padding:3px 9px;border-radius:999px;background:#eef0f6eb;border:1.5px solid var(--jc);color:#23242e;font-size:10.5px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #0006}.jp-stop-title{font-weight:600}.flag-chip.custom{display:inline-flex;align-items:center;gap:5px;padding-right:6px}.flag-chip.custom .flag-name{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}.flag-chip.custom .flag-x{background:none;border:0;color:#767e93;font-size:9px;cursor:pointer;padding:0 1px}.flag-chip.custom .flag-x:hover{color:#e08585}.flag-chip.flag-add{border-style:dashed;color:#9ac8dc}.flag-chip.type-flag:not(.on){border-style:dashed}.flag-edit{background:#212330;border:1px solid #57a9c9;border-radius:999px;color:#eceef5;font-size:11px;padding:3px 10px;outline:none;width:92px}.jp-jtbd,.jp-note,.jn-note-edit{field-sizing:content;min-height:3.2em;max-height:14em}.jp-actor-row{display:flex;gap:6px}.jp-actor-row .jp-actor-edit{flex:1;min-width:0}.jp-actor-pick{background:#2a2c3a;border:1px solid #454a5c;border-radius:7px;color:#9ac8dc;cursor:pointer;padding:0 9px;display:grid;place-items:center}.jp-actor-pick:hover{border-color:#57a9c9}.actors-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a0b1099;display:grid;place-items:center}.actors-modal{width:min(860px,92vw);max-height:84vh;overflow-y:auto;background:#20222e;border:1px solid #454a5c;border-radius:12px;padding:16px;color:#d5dae6;box-shadow:0 24px 80px #0009}.am-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.am-head b{font-size:15px;color:#eceef5}.am-close{background:none;border:0;color:#8b93a7;cursor:pointer}.am-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.am-card{background:#272935;border:1px solid #3a3d4e;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px;position:relative}.am-img{position:relative;aspect-ratio:1;width:100%;border-radius:8px;overflow:hidden;background:#1c1e28}.am-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.am-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#565d73}.am-img-tools{position:absolute;right:6px;bottom:6px;display:flex;gap:4px}.am-img-tools button{background:#14151ecc;border:1px solid #454a5c;border-radius:6px;color:#cdd2e4;cursor:pointer;padding:4px;display:grid;place-items:center}.am-kind{align-self:flex-start;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9ac8dc;background:#253243;border-radius:999px;padding:2px 8px}.am-name{font-size:15px;font-weight:700;color:#eceef5}.am-fields{display:flex;flex-direction:column;gap:3px;font-size:11.5px}.am-fields i{display:block;font-style:normal;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#767e93}.am-actions{margin-top:auto;display:flex;gap:6px;align-items:center}.am-use{flex:1;background:#2a2c3a;border:1px solid #57a9c9;border-radius:7px;color:#9ac8dc;padding:6px;cursor:pointer;font-size:12px}.am-use:disabled{opacity:.4}.am-del{background:none;border:0;color:#767e93;cursor:pointer}.am-del:hover{color:#e08585}.am-new{border-style:dashed;align-items:center;justify-content:center;flex-direction:row;gap:6px;color:#9ac8dc;cursor:pointer;min-height:120px;font-size:13px}.am-form input{background:#212330;border:1px solid #454a5c;border-radius:6px;color:#eceef5;font-size:11.5px;padding:5px 8px;outline:none}.am-form input:focus{border-color:#57a9c9}.am-form-row{display:flex;gap:6px}.journey-origin{position:absolute;box-sizing:border-box;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:8px;background:#eef0f6e6;border:1.5px solid var(--jc);color:#23242e;font-size:11px;line-height:1.45;pointer-events:all;cursor:pointer;box-shadow:0 3px 10px #00000073}.journey-origin.editing{cursor:auto;background:#eef0f6f5}.jo-head{display:flex;align-items:center;gap:7px;font-size:12px}.jo-avatar{width:26px;height:26px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex:none}.jo-ph{background:#d4d7e2;color:#767e93;display:grid;place-items:center}.jo-role{font-size:10px;color:#565d73}.jo-jtbd{white-space:pre-wrap;overflow-wrap:anywhere}.user-chrome{display:inline-flex;align-items:center;gap:8px;margin-left:6px}.user-avatar{width:24px;height:24px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:1px solid #454a5c;display:inline-grid;place-items:center}.user-avatar-ph{background:#2a2c3a;color:#9ac8dc;font-size:11px;font-weight:700}.user-chrome a.tb-btn{text-decoration:none;line-height:1}.teams-wrap{min-height:100vh;background:#14151e;padding:20px 24px}.teams-back{display:inline-block;margin-bottom:14px;color:#9ac8dc;text-decoration:none;font-size:13px}.signin-screen{min-height:100vh;display:grid;place-items:center;background:#14151e;background-image:radial-gradient(#2a2d3f 1.1px,transparent 1.1px);background-size:26px 26px}.signin-card{width:min(400px,92vw);background:#20222e;border:1px solid #383b4c;border-radius:14px;padding:28px 26px;box-shadow:0 24px 80px #0000008c;font-family:Inter,-apple-system,sans-serif}.signin-brand{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9ac8dc;margin-bottom:14px}.signin-dot{width:8px;height:8px;border-radius:50%;background:#ff6d5a}.signin-title{font-family:Inter,-apple-system,sans-serif;font-size:24px;font-weight:700;letter-spacing:-.01em;color:#eceef5;margin:0 0 8px;line-height:1.2}.signin-sub{color:#8b93a7;font-size:13.5px;line-height:1.55;margin:0 0 20px}.signin-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#2a2c3a;border:1px solid #565d73;border-radius:9px;color:#eceef5;font-size:13.5px;font-weight:600;padding:11px 14px;cursor:pointer}.signin-google:hover{border-color:#ff6d5a;background:#30323f}.signin-foot{color:#6b7288;font-size:11px;margin:14px 0 0;text-align:center}.boot-screen{min-height:100vh;display:grid;place-items:center;background:#14151e}.boot-dot{width:12px;height:12px;border-radius:50%;background:#ff6d5a;animation:bootpulse .9s ease-in-out infinite alternate}@keyframes bootpulse{0%{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.topbar{justify-content:space-between;align-items:flex-start;padding:12px 14px}.tb-file,.tb-account{display:flex;gap:6px;align-items:center;pointer-events:auto;background:#20222e;border:1px solid #3a3d4e;border-radius:12px;padding:6px 8px;box-shadow:0 8px 30px #00000073}.tb-file .tb-btn,.tb-account .tb-btn,.tb-file .board-sel,.tb-account a.tb-btn{height:26px;padding:0 10px;font-size:12px;display:inline-flex;align-items:center;border-radius:7px}.tb-file .brand{padding:0 6px 0 4px;font-size:12.5px}.tb-file .brand-edit{height:26px;padding:0 8px;width:180px}.tb-file .board-sel{max-width:170px}.tb-account .user-avatar{width:26px;height:26px}.tb-account .user-chrome{margin-left:0;gap:6px}.bottombar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:30;display:flex;gap:8px;align-items:center;background:#20222e;border:1px solid #3a3d4e;border-radius:14px;padding:8px 10px;box-shadow:0 12px 44px #0000008c}.bb-sep{width:1px;height:20px;background:#3a3d4e}.bottombar .tb-btn{height:27px;display:inline-flex;align-items:center}.bottombar .tb-btn svg{display:block}.groups-pop{top:auto;right:auto;bottom:74px;left:50%;transform:translate(-50%)}.signin-denied{margin:12px 0 0;padding:8px 10px;border-radius:8px;background:#e052521f;border:1px solid #7a3a3a;color:#e08585;font-size:12px;line-height:1.5}.legend-chip{position:fixed;left:64px;bottom:18px;z-index:20;background:#20222e;border:1px solid #3a3d4e;border-radius:999px;color:#8b93a7;font-size:11px;padding:6px 12px;cursor:pointer;box-shadow:0 6px 24px #0006}.legend-chip:hover{color:#eceef5;border-color:#565d73}.teams-modal{width:min(680px,92vw)}.tp-hint{color:#8b93a7;font-size:12px;line-height:1.5;margin:-4px 0 12px}.tp-cols{display:grid;grid-template-columns:200px 1fr;gap:12px}.tp-teams{display:flex;flex-direction:column;gap:6px}.tp-team{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#272935;border:1px solid #3a3d4e;border-radius:8px;color:#d5dae6;font-size:12.5px;padding:8px 10px;cursor:pointer;text-align:left}.tp-team.on{border-color:#57a9c9}.tp-team i{font-style:normal;color:#767e93;font-size:11px}.tp-team.tp-new{justify-content:flex-start;border-style:dashed;color:#9ac8dc}.tp-detail{background:#272935;border:1px solid #3a3d4e;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:200px}.tp-detail-head{display:flex;align-items:center;justify-content:space-between;color:#eceef5}.tp-empty{color:#767e93;font-style:italic;font-size:12px;margin:auto}.tp-member{display:flex;align-items:center;gap:9px}.tp-member.tp-pending{opacity:.75}.tp-m-name{display:flex;flex-direction:column;font-size:12.5px;color:#eceef5;min-width:0}.tp-m-name small{color:#8b93a7;font-size:11px}.tp-role{margin-left:auto;font-style:normal;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#9ac8dc}.tp-member .am-del{flex:none}.tp-member .tp-role+.am-del{margin-left:8px}.tp-invite{display:flex;gap:6px;margin-top:auto;padding-top:8px}.tp-invite-btn{flex:none;display:inline-flex;align-items:center;gap:6px}.tp-input{flex:1;background:#212330;border:1px solid #454a5c;border-radius:7px;color:#eceef5;font-size:12px;padding:7px 9px;outline:none;min-width:0}.tp-input:focus{border-color:#57a9c9}.share-sel{max-width:170px}.board-admin .menu-title,.add-menu .menu-title{display:flex;align-items:center;justify-content:space-between}.menu-x{background:none;border:0;color:#767e93;font-size:15px;cursor:pointer;padding:0 2px;line-height:1}.menu-x:hover{color:#eceef5}.tp-rename{display:flex;gap:6px;flex:1;margin-right:8px}.tp-save{flex:none;padding:4px 12px}.tp-name-editable{cursor:text;display:inline-flex;align-items:center;gap:6px}.tp-name-editable .tp-pencil{color:#565d73}.tp-name-editable:hover .tp-pencil{color:#9ac8dc}.board-owner-note{color:#767e93;font-size:11px;align-self:center;padding:0 4px}.cat-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:3px 30px 3px 10px;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='M1 1l4 4 4-4' fill='none' stroke='%238b93a7' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.tb-file .board-sel,.share-sel{padding-right:30px}.people-strip{display:inline-flex;align-items:center;gap:4px;margin-right:6px}.person{width:26px;height:26px;border-radius:50%;padding:0;overflow:hidden;border:2px solid transparent;background:#2a2c3a;cursor:default;display:inline-grid;place-items:center;opacity:.45}.person img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:50%}.person i{font-style:normal;font-size:11px;font-weight:700;color:#9ac8dc}.person.live{opacity:1;cursor:pointer}.person.live:hover{transform:translateY(-1px)}.person.followed{box-shadow:0 0 0 2px #212230,0 0 0 4px currentColor}.person-more{font-size:10px;color:#8b90a5;border-color:#383b4c;opacity:1;display:inline-grid;place-items:center}.follow-pill{margin-left:6px;border:0;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:700;color:#14151e;cursor:pointer}.canvas-root{position:relative}.cm-toggle.on{background:#ff6d5a;color:#14151e;border-color:#ff6d5a}.cm-catcher{position:absolute;top:0;right:0;bottom:0;left:0;z-index:24;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M2 22 V11 a9 9 0 0 1 9-9 h2 a9 9 0 0 1 9 9 v0 a9 9 0 0 1-9 9 z' fill='%23ff6d5a' stroke='%2314151e' stroke-width='1.6'/%3E%3C/svg%3E") 2 22,crosshair}.cm-pins{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;pointer-events:none;overflow:hidden}.cm-pins>*{pointer-events:auto}.cm-pin{position:absolute;width:30px;height:30px;padding:2px;transform:translateY(-100%);border-radius:15px 15px 15px 3px;background:#ff6d5a;border:2px solid #fff2;box-shadow:0 3px 10px #0007;cursor:pointer;display:grid;place-items:center}.cm-pin.on{border-color:#fff}.cm-pin.resolved{background:#4a4e63;opacity:.75}.cm-pin em{position:absolute;top:-5px;right:-6px;font-style:normal;background:#e8eaf0;color:#14151e;border-radius:999px;font-size:9px;font-weight:800;padding:1px 4px}.cm-ava{width:22px;height:22px;border-radius:50%;-o-object-fit:cover;object-fit:cover;display:inline-grid;place-items:center}.cm-ava-ph{font-style:normal;background:#2a2c3a;color:#9ac8dc;font-size:10px;font-weight:700}.cm-anchor{position:absolute}.cm-anchor .cm-pin{left:0;top:0}.cm-pop{width:264px;background:#20222e;border:1px solid #383b4c;border-radius:12px;box-shadow:0 10px 30px #000a;padding:8px;display:flex;flex-direction:column;gap:6px}.cm-pop-draft{position:absolute;left:36px;top:-34px;width:240px}.cm-pop-head{display:flex;justify-content:flex-end;gap:2px}.cm-icon{border:0;background:none;color:#8b90a5;cursor:pointer;padding:3px;border-radius:6px;display:inline-grid;place-items:center}.cm-icon:hover{background:#2a2c3a;color:#e8eaf0}.cm-msg{display:flex;gap:8px;align-items:flex-start;padding:2px 4px}.cm-msg-body{min-width:0;flex:1}.cm-msg-meta{display:flex;align-items:center;gap:6px;font-size:11px}.cm-msg-meta b{font-size:11.5px}.cm-msg-meta span{color:#6f7389}.cm-msg-meta .cm-del{margin-left:auto;opacity:.5}.cm-msg:hover .cm-del{opacity:1}.cm-msg p{margin:2px 0 0;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.cm-input{display:flex;align-items:center;gap:6px}.cm-input input{flex:1;min-width:0;background:#191a24;color:#e8eaf0;border:1px solid #383b4c;border-radius:999px;padding:7px 12px;font-size:12px}.cm-input input:focus{outline:none;border-color:#6f9fe8}.cm-send{width:28px;height:28px;border-radius:50%;border:0;cursor:pointer;background:#ff6d5a;color:#14151e;font-weight:800;flex:none}.cm-send:disabled{background:#383b4c;color:#6f7389;cursor:default}.cm-panel{position:fixed;top:52px;right:14px;bottom:66px;width:272px;z-index:30;background:#20222e;border:1px solid #383b4c;border-radius:12px;box-shadow:0 10px 30px #000a;padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.cm-panel-head{display:flex;align-items:center;gap:8px;padding:0 2px 6px;border-bottom:1px solid #2c2e3d}.cm-panel-head b{font-size:12.5px;flex:1}.cm-show-resolved{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:#8b90a5;cursor:pointer}.cm-empty{color:#6f7389;font-size:11.5px;padding:10px 4px}.cm-row{display:flex;gap:8px;align-items:flex-start;text-align:left;background:none;border:0;border-radius:8px;padding:7px 6px;cursor:pointer;color:inherit}.cm-row-acts{display:inline-flex;gap:1px;margin-left:auto;opacity:.35}.cm-row:hover .cm-row-acts,.cm-row.on .cm-row-acts{opacity:1}.cm-row:hover,.cm-row.on{background:#262838}.cm-row.resolved{opacity:.55}.cm-row-body{min-width:0;flex:1}.cm-row-meta{display:flex;align-items:center;gap:6px;font-size:11px}.cm-row-meta small{color:#6f7389}.cm-row-check{color:#5fbf9e}.cm-row p{margin:2px 0 0;font-size:11.5px;color:#c9cbd8;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cm-replies{color:#6f9fe8;font-size:10.5px}.boot-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#14151e;color:#8b90a5}.boot-dot{width:10px;height:10px;background:#ff6d5a;border-radius:50%;animation:boot-pulse 1s infinite}@keyframes boot-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.4);opacity:1}}.hist-toggle svg{display:block}.hist-toggle.on{background:#ff6d5a;color:#14151e;border-color:#ff6d5a}.hist-panel{z-index:31}.hist-hint{color:#6f7389;font-size:10.5px;line-height:1.45;margin:2px 2px 6px}.hist-row{display:flex;flex-direction:column;gap:2px;padding:7px 8px;border-radius:8px;font-size:12px}.hist-row:hover{background:#262838}.hist-line{display:flex;align-items:center;gap:6px}.hist-when{font-size:12px}.hist-meta{color:#8b90a5;font-size:11px}.hist-badge{font-style:normal;padding:1px 6px;border-radius:999px;background:#3a3324;color:#e8c25a;font-size:10px}.hist-restore{display:inline-flex;align-items:center;gap:5px;opacity:0;align-self:flex-start;margin-top:3px}.hist-row:hover .hist-restore{opacity:1}.hist-confirm{display:inline-flex;align-items:center;gap:4px;margin-top:3px}.hist-confirm .am-use{font-size:11.5px}.jp-stop.cursor .jp-stop-row{box-shadow:inset 3px 0 #ff6d5a}.jp-stop.cursor .jp-stop-row:after{content:"next stops go here ▾";margin-left:0;padding-left:6px;font-size:9.5px;color:#ff6d5a;white-space:nowrap;opacity:.85}.jp-stop.cursor .jp-stop-row .jp-x,.jp-stop.cursor .jp-stop-row .jp-eye{order:2;margin-left:0}
