.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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--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;touch-action:none}.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))}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#253047;background:#f7f8fa;font-size:14px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;background:#fff;border:1px solid #dce1e9;border-radius:6px;color:#364258;padding:8px 12px;white-space:nowrap}button:hover{background:#f0f4fb;border-color:#b4c2dd}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #456cd0;outline-offset:2px}input,textarea,select{width:100%;min-width:0;border:1px solid #dce1e9;border-radius:6px;padding:9px 10px;background:#fff;color:#253047}input::placeholder,textarea::placeholder{color:#70798a}textarea{resize:vertical;min-height:70px;line-height:1.6}.app{height:100dvh;display:flex;flex-direction:column}header{min-height:65px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid #e2e6ed;background:#fff;gap:16px}.brand,.actions{display:flex;align-items:center;gap:10px}.brand b{font-size:17px}.logo{font-size:25px;background:#355bc0;color:#fff;width:32px;height:32px;display:grid;place-items:center;border-radius:8px}.divider{color:#a2aab6;margin:0 5px}.demo{font-size:11px;background:#f0f3f7;border-radius:4px;padding:4px 7px;color:#616b7c}.saved{font-size:12px;color:#52715d;margin-right:12px}.heading{display:flex;align-items:center;justify-content:space-between;padding:25px 30px 23px;background:#fff}h1{font-size:25px;letter-spacing:-.6px;margin:0 0 8px}.heading p{margin:0;color:#697386;font-size:13px}.primary{background:#355bc0;color:#fff;border-color:#355bc0;padding:11px 17px}.primary:hover{background:#294ca8;color:#fff}nav{padding:0 28px 13px;display:flex;justify-content:space-between;gap:12px;background:#fff;border-bottom:1px solid #dce1e9}.tabs{display:flex;gap:4px;align-items:center}.tabs button{border-color:transparent;background:transparent;font-size:13px;padding:8px 10px}.tabs .active{background:#edf2fc;color:#294eaa}.tabs b{margin-left:5px;font-weight:500}.tabs i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:#427353}.tabs i.blocked{background:#b87427}.tabs i.doing{background:#426ad0}.tabs i.done{background:#8a96a3}nav input{width:175px;font-size:12px}main{display:flex;flex:1;min-height:0}.canvas{position:relative;flex:1;min-width:0;background:#fff}.canvas-note{position:absolute;top:19px;left:22px;z-index:4;font-size:12px;color:#647187;background:#fff;padding:5px}.canvas-help{position:absolute;bottom:21px;left:66px;font-size:11px;color:#647187;pointer-events:none;background:#fff;padding:5px}.task{width:240px;border:1px solid #cbd4df;border-radius:9px;background:#fff;padding:16px}.task.selected{outline:2px solid #4c70ca;outline-offset:3px}.task-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#657084;margin-bottom:14px}.badge{display:inline-block;font-size:11px;border-radius:4px;padding:4px 7px;white-space:nowrap}.badge.ready{background:#edf6ef;color:#3f6f4c}.badge.doing{background:#edf2fd;color:#345ab3}.badge.blocked{background:#fff2df;color:#906024}.badge.done{background:#edf0f3;color:#5f6c7c}.task strong{font-size:15px;display:block;overflow-wrap:anywhere}.task p{font-size:11px;color:#697386;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px;margin:9px 0 14px}.task footer{display:flex;justify-content:space-between;border-top:1px solid #edf0f5;padding-top:11px;font-size:10px;color:#637086}.task.blocked{border-color:#d8bc92}.react-flow__handle{width:10px;height:10px;background:#8197bd;border:2px solid white}.react-flow__minimap{width:130px!important;height:85px!important}.react-flow__attribution{font-size:9px}aside{width:322px;flex-shrink:0;padding:23px 22px;overflow-y:auto;border-left:1px solid #dce1e9;background:#fff}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h2{font-size:15px;margin:0}label{display:block;font-size:12px;color:#556175;margin:0 0 15px}label input,label select,label textarea{margin-top:7px}.form-row{display:flex;gap:12px}.form-row label{width:50%}.hint{font-size:11px;color:#6c7789;line-height:1.7;margin:0 0 16px}.section-title{border-top:1px solid #e8ebf0;padding-top:17px;margin-top:20px;margin-bottom:10px;font-size:12px;font-weight:600}.section-title span{float:right;color:#6b778a}.relation{display:flex;justify-content:space-between;gap:4px}.relation button{border:0;padding:8px 3px;font-size:12px;text-align:left;white-space:normal}.relation button:first-child{flex:1}.relation span{color:#64815a}.dependency{display:flex;gap:7px;margin-top:9px}.dependency select{font-size:12px}.downstream{margin-bottom:19px}.downstream button{font-size:12px;border:0;text-align:left;display:block;width:100%;white-space:normal;padding-left:0}.danger{color:#ab4242;font-size:12px;border-color:#e9d7d7}.statusbar{height:32px;border-top:1px solid #dce1e9;display:flex;align-items:center;justify-content:space-between;padding:0 23px;font-size:10px;color:#647187;background:#fff}.toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);background:#253047;color:#fff;padding:12px 20px;border-radius:8px;z-index:10;font-size:13px}.empty p{font-size:13px;line-height:1.7;color:#647187}@media(max-width:1050px){header{padding:0 16px}.saved,.demo{display:none}nav{flex-wrap:wrap;padding:0 16px 12px}.heading{padding:20px 18px}aside{width:285px;padding:18px}h1{font-size:22px}.canvas-help{display:none}}@media(max-width:700px){header{flex-wrap:wrap;padding:12px;gap:8px}.brand{font-size:12px}.brand b{font-size:15px}.heading p{max-width:230px;line-height:1.6}h1{font-size:19px}.tabs{flex-wrap:wrap}.tabs button{padding:6px;font-size:12px}main{flex-direction:column;overflow:auto}.canvas{min-height:430px;flex-shrink:0}aside{width:100%;overflow:visible;border-left:0;border-top:1px solid #dce1e9}.statusbar span:last-child{display:none}.react-flow__minimap{display:none}}header{min-height:52px;padding:0 20px}.heading{padding:10px 20px}.heading h1{font-size:18px;margin:0}.heading p{display:none}.heading .primary{padding:8px 14px}nav{padding:0 20px 9px}.statusbar{height:25px;flex-shrink:0}aside[hidden]{display:none}.actions{flex-wrap:wrap}html[data-theme=dark]{color-scheme:dark;background:#15191f}.app[data-theme=dark]{color:#e1e7f0;background:#15191f}.app[data-theme=dark] :is(header,.heading,nav,aside,.statusbar){background:#1c222b;border-color:#343e4c}.app[data-theme=dark] :is(.canvas,.canvas-note,.canvas-help){background:#15191f;color:#aab8cc}.app[data-theme=dark] :is(button,input,textarea,select){background:#252e3a;color:#e1e7f0;border-color:#414e60}.app[data-theme=dark] button:hover{background:#313e50}.app[data-theme=dark] :is(input,textarea)::placeholder{color:#a5b1c3}.app[data-theme=dark] :is(.task){background:#222b37;border-color:#53637a}.app[data-theme=dark] .task.blocked{border-color:#927440}.app[data-theme=dark] :is(.task p,.task footer,.task-top,label,.hint,.section-title span,.heading p,.statusbar,.empty p){color:#b2bed0}.app[data-theme=dark] :is(.task footer,.section-title){border-color:#3c485a}.app[data-theme=dark] .demo{background:#2b3543;color:#bdc9da}.app[data-theme=dark] .saved{color:#a3cdb1}.app[data-theme=dark] .tabs button{background:transparent;border-color:transparent;color:#c7d2e4}.app[data-theme=dark] .tabs .active{background:#324467;color:#e3ebff}.app[data-theme=dark] .primary{background:#456bce;border-color:#456bce;color:#fff}.app[data-theme=dark] .badge.ready{background:#284635;color:#b8e3c3}.app[data-theme=dark] .badge.doing{background:#2d426c;color:#c3d5ff}.app[data-theme=dark] .badge.blocked{background:#513f25;color:#f0d095}.app[data-theme=dark] .badge.done{background:#3a4656;color:#d1dbe8}.app[data-theme=dark] .danger{color:#ffb7b7;border-color:#785357}.app[data-theme=dark] .relation span{color:#b7d5b6}.app[data-theme=dark] .react-flow__handle{background:#a6b5ce;border-color:#222b37}.app[data-theme=dark] .react-flow__attribution{background:#1c222b;color:#b2bed0}.app[data-theme=dark] .react-flow__attribution a{color:#b2bed0}.app[data-theme=dark] .react-flow__controls button{fill:#e1e7f0}.app[data-theme=dark] .toast{background:#dce6f6;color:#1c222b}@media(max-width:1100px){nav{flex-wrap:wrap}}@media(max-width:700px){header{padding:10px 12px}.heading{padding:10px 12px}nav{padding:0 12px 10px}.brand .divider,.brand .divider+span{display:none}}.app .task{background-color:#fff;background-image:radial-gradient(ellipse at 0% 0%,var(--state-tint) 0%,transparent 66%)}.app .task.blocked{--state-tint:rgba(240,88,131,.25);border-color:#dfa5b5}.app .task.done{--state-tint:rgba(58,181,117,.24);border-color:#99c7ad}.app .task.doing{--state-tint:rgba(235,190,51,.27);border-color:#d8c28b}.app .task.ready{--state-tint:rgba(135,146,162,.18);border-color:#bcc3ce}.app[data-theme] .badge.blocked{background:linear-gradient(135deg,#f058833b,#f058830f);color:#a92c51}.app[data-theme] .badge.done{background:linear-gradient(135deg,#3ab57540,#3ab5750f);color:#256a43}.app[data-theme] .badge.doing{background:linear-gradient(135deg,#ebbe334d,#ebbe3312);color:#76590c}.app[data-theme] .badge.ready{background:linear-gradient(135deg,#8792a23b,#8792a20f);color:#536071}.app .tabs i.blocked{background:#df527f}.app .tabs i.done{background:#3dab72}.app .tabs i.doing{background:#d4a923}.app .tabs i.ready{background:#8b96a7}.app[data-theme=dark] .task{background-color:#222b37}.app[data-theme=dark] .task.blocked{--state-tint:rgba(240,88,131,.3);border-color:#8a5069}.app[data-theme=dark] .task.done{--state-tint:rgba(58,181,117,.28);border-color:#426f5b}.app[data-theme=dark] .task.doing{--state-tint:rgba(235,190,51,.27);border-color:#807047}.app[data-theme=dark] .task.ready{--state-tint:rgba(158,170,188,.17);border-color:#536071}.app[data-theme=dark] .badge.blocked{color:#ffafc7}.app[data-theme=dark] .badge.done{color:#a2e5ba}.app[data-theme=dark] .badge.doing{color:#f4d878}.app[data-theme=dark] .badge.ready{color:#c3cbd8}.app[data-theme] .task{background-image:radial-gradient(ellipse at 0% 0%,var(--state-tint) 0%,transparent 66%)}.app[data-theme] .task{border-color:#bcc3ce;background-image:radial-gradient(ellipse at left top,var(--state-tint) 0%,transparent 72%)}.app[data-theme=dark] .task{border-color:#536071}.app[data-theme] .task.blocked{--state-tint:rgba(240,88,131,.38)}.app[data-theme] .task.done{--state-tint:rgba(58,181,117,.36)}.app[data-theme] .task.doing{--state-tint:rgba(235,190,51,.38)}.app[data-theme] .task.ready{--state-tint:rgba(158,170,188,.22)}.app[data-theme] .task:is(.blocked,.waiting,.done,.doing,.ready){border-color:#bcc3ce}.app[data-theme=dark] .task:is(.blocked,.waiting,.done,.doing,.ready){border-color:#536071}:root{--font-0:10.24px;--font-1:12.8px;--font-2:16px;--font-3:20px;--font-4:25px;--space-1:4px;--space-2:16px;--space-3:64px;font-size:var(--font-2)}.app{font-size:var(--font-2);--card-shadow:rgba(27,39,57,.16)}.app[data-theme=dark]{--card-shadow:rgba(0,0,0,.4)}.app header{min-height:var(--space-3);padding:var(--space-1) var(--space-2);gap:var(--space-2)}.app .brand,.app .actions{gap:var(--space-1)}.app .brand b{font-size:var(--font-3)}.app .brand{font-size:var(--font-2)}.app .logo{font-size:var(--font-4)}.app .divider{margin:0 var(--space-1)}.app :is(button,input,textarea,select){font-size:var(--font-1);padding:var(--space-1) var(--space-2);min-height:36px;line-height:1.5}.app nav{padding:var(--space-1) var(--space-2);gap:var(--space-2);align-items:center}.app .tabs{gap:var(--space-1)}.app .tabs button{font-size:var(--font-1);padding:var(--space-1) var(--space-2)}.app .tabs b{margin-left:var(--space-1)}.app .tabs i{margin-right:var(--space-1)}.app .demo{font-size:var(--font-0);padding:var(--space-1)}.app .saved{font-size:var(--font-1);margin-right:var(--space-2)}.app aside{padding:var(--space-2);width:336px}.sidebar-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-1);padding-bottom:var(--space-2);margin-bottom:var(--space-2);border-bottom:1px solid #dce1e9}.app[data-theme=dark] .sidebar-actions{border-color:#343e4c}.app .sidebar-actions .primary{font-size:var(--font-2);padding:var(--space-1) var(--space-2)}.app .panel-title{margin-bottom:var(--space-2);gap:var(--space-1)}.app h2{font-size:var(--font-3)}.app label{font-size:var(--font-1);margin:0 0 var(--space-2)}.app label :is(input,select,textarea){margin-top:var(--space-1)}.app .form-row{gap:var(--space-2)}.app textarea{min-height:var(--space-3)}.app .hint{font-size:var(--font-1);line-height:1.5;margin:0 0 var(--space-2)}.app .section-title{font-size:var(--font-1);padding-top:var(--space-2);margin-top:var(--space-2);margin-bottom:var(--space-1)}.app .relation{gap:var(--space-1)}.app .relation button{font-size:var(--font-1);padding:var(--space-1)}.app .dependency{gap:var(--space-1);margin-top:var(--space-1)}.app .dependency select{font-size:var(--font-1)}.app .downstream{margin-bottom:var(--space-2)}.app .downstream button{font-size:var(--font-1);padding:var(--space-1)}.app .badge{font-size:var(--font-0);padding:var(--space-1)}.app[data-theme] .task:is(.blocked,.waiting,.done,.doing,.ready){border:0;box-shadow:0 4px 16px var(--card-shadow);padding:var(--space-2)}.app[data-theme] .task.selected{outline:2px solid #456cd0;outline-offset:0}.app[data-theme=dark] .task.selected{outline-color:#86a5ff}.app .task strong{font-size:var(--font-2);line-height:1.5}.app .task-top{font-size:var(--font-0);margin-bottom:var(--space-2)}.app .task p{font-size:var(--font-1);line-height:1.5;min-height:38.4px;margin:var(--space-1) 0 var(--space-2)}.app .task footer{font-size:var(--font-0);padding-top:var(--space-2)}.app .canvas-note{font-size:var(--font-1);top:var(--space-2);left:var(--space-2);padding:var(--space-1)}.app .canvas-help{font-size:var(--font-0);bottom:var(--space-2);left:var(--space-3);padding:var(--space-1)}.app .statusbar{font-size:var(--font-0);padding:var(--space-1) var(--space-2);height:auto}.app .toast{font-size:var(--font-1);padding:var(--space-2)}.app .empty p{font-size:var(--font-1)}.app .react-flow__controls button{padding:var(--space-1);min-height:0}@media(max-width:700px){.app aside{width:100%}.app header{padding:var(--space-1) var(--space-2)}.app .brand b{font-size:var(--font-2)}.app nav{gap:var(--space-1)}.app .tabs button{padding:var(--space-1)}.app .actions{gap:var(--space-1)}}.app[data-theme] .task{border-radius:16px}.app[data-theme=dark]{--card-shadow:rgba(196,212,238,.18)}@supports (corner-shape: superellipse(2)){.app[data-theme] .task{border-radius:24px;corner-shape:superellipse(2)}}.app[data-theme] .task{border-radius:24px}@supports (corner-shape: superellipse(2)){.app[data-theme] .task{border-radius:40px;corner-shape:superellipse(2)}}.app[data-theme] header{background:#edf0f5;border-bottom:1px solid #d4dbe5;min-height:56px}.app[data-theme] header .actions>button{background:transparent;border-color:transparent;color:#536071}.app[data-theme] header .actions>button:hover{background:#dce3ec;color:#253047}.app[data-theme] header .brand b{font-size:var(--font-2)}.app[data-theme] header .brand .divider+span{color:#637086;font-size:var(--font-1)}.app[data-theme] nav{background:#fff;border-bottom:1px solid #cbd4e2;min-height:52px}.app[data-theme] nav .tabs button{border-radius:0;background:transparent;border:0;border-bottom:2px solid transparent}.app[data-theme] nav .tabs .active{border-bottom-color:#456bce;color:#294da2;background:transparent}.app[data-theme] aside{background:#f3f5f9;border-left:1px solid #c6d0df}.app[data-theme] aside :is(input,textarea,select){background:#fff;border-color:#ccd5e2}.app[data-theme] .sidebar-actions{justify-content:space-between;padding-bottom:var(--space-1);margin-bottom:var(--space-2);border:0}.app[data-theme] .sidebar-actions>span{font-size:var(--font-1);color:#68758a}.app[data-theme] .sidebar-actions>button{border:0;background:transparent;min-height:0;padding:var(--space-1)}.app[data-theme] .panel-title{padding-bottom:var(--space-2);border-bottom:1px solid #d4dce8}.app[data-theme=dark] header{background:#11151c;border-color:#2a3340}.app[data-theme=dark] header .actions>button{color:#aebbd0}.app[data-theme=dark] header .actions>button:hover{background:#252e3a;color:#eef3fb}.app[data-theme=dark] header .brand .divider+span{color:#98a7bd}.app[data-theme=dark] nav{background:#1b2431;border-color:#3a485c}.app[data-theme=dark] nav .tabs .active{color:#d7e4ff;border-bottom-color:#8daeff}.app[data-theme=dark] aside{background:#252e3a;border-left-color:#47556a}.app[data-theme=dark] aside :is(input,textarea,select){background:#19212c;border-color:#435269}.app[data-theme=dark] .sidebar-actions>span{color:#aab8cd}.app[data-theme=dark] .panel-title{border-bottom-color:#435065}.app[data-theme=dark]>header{background-color:#11151c}.app[data-theme=dark]>nav{background-color:#1b2431}.app[data-theme=dark]>main>aside{background-color:#293443}.app[data-theme=light]>header{background-color:#edf0f5}.app[data-theme=light]>nav{background-color:#fff}.app[data-theme=light]>main>aside{background-color:#f0f3f8}.app.app[data-theme=dark]>header{background:#10141b;border-color:#283140}.app.app[data-theme=dark]>nav{background:#202b3b;border-color:#46536a}.app.app[data-theme=light]>header{background:#e7ecf3;border-color:#cad3e0}.app.app[data-theme=light]>nav{background:#fff;border-color:#cbd4e2}.app>main{position:relative}.app #task-details{position:absolute;z-index:6;right:var(--space-2);top:var(--space-2);bottom:var(--space-2);width:336px;border-radius:28px;corner-shape:superellipse(2);border:1px solid rgba(255,255,255,.38);background:linear-gradient(135deg,#fff9,#f2f7ff4d 45%,#dfe9f966);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);box-shadow:inset 0 1px #fffc,inset 1px 0 #ffffff73,0 12px 40px #1b2a432e;padding:var(--space-2)}.app[data-theme=dark] #task-details{background:linear-gradient(135deg,#7086a861,#273346a3 42%,#3b49607a);border-color:#dae9ff47;box-shadow:inset 0 1px #f3f9ff66,inset 1px 0 #e6f3ff29,0 12px 40px #00000052;color:#eef4ff}.app #task-details :is(input,textarea,select){background:#ffffff8c;border-color:#63769440;border-radius:12px}.app[data-theme=dark] #task-details :is(input,textarea,select){background:#0b142266;border-color:#c2d4f233;color:#edf3ff}.app[data-theme=dark] #task-details :is(label,.hint,.sidebar-actions>span){color:#d0dced}.app #task-details .relation button,.app #task-details .downstream button{background:transparent}.app #task-details .panel-title,.app #task-details .section-title{border-color:#92a5c247}.app #task-details select option{background:#edf2f9;color:#253047}.app[data-theme=dark] #task-details select option{background:#253247;color:#edf3ff}@media(max-width:700px){.app #task-details{position:relative;top:auto;right:auto;bottom:auto;width:calc(100% - 32px);margin:var(--space-2);flex-shrink:0;max-height:65dvh;overflow:auto}}@media(prefers-reduced-transparency:reduce){.app #task-details{background:#eef3fa}.app[data-theme=dark] #task-details{background:#2d3b50}}.app{position:relative}.app>main{position:absolute;inset:0;min-height:0}.app.app[data-theme]>header,.app.app[data-theme]>nav{position:absolute;left:var(--space-2);right:var(--space-2);z-index:8;background:transparent;border:0;min-height:0;padding:0;pointer-events:none}.app.app[data-theme]>header{top:var(--space-2);align-items:flex-start}.app.app[data-theme]>nav{top:80px;align-items:flex-start;gap:var(--space-2)}.app>header>.brand,.app>header>.actions,.app>nav>.tabs,.app>nav>.actions{pointer-events:auto;padding:var(--space-1);border-radius:16px;corner-shape:superellipse(2);background:linear-gradient(135deg,#ffffffd1,#e5eefb9e);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border:1px solid rgba(255,255,255,.65);box-shadow:inset 0 1px #ffffffe6,0 4px 16px #2a395224}.app[data-theme=dark]>header>.brand,.app[data-theme=dark]>header>.actions,.app[data-theme=dark]>nav>.tabs,.app[data-theme=dark]>nav>.actions{background:linear-gradient(135deg,#5c708f73,#1a2331a8);border-color:#dae9ff3b;box-shadow:inset 0 1px #f3f9ff4d,0 4px 16px #0003}.app>header>.brand{padding:var(--space-1) var(--space-2);min-height:46px;gap:var(--space-1)}.app>header>.actions .saved{padding-left:var(--space-1)}.app.app[data-theme]>nav .tabs button{border:0;border-radius:12px}.app.app[data-theme]>nav .tabs button.active{background:#4f74bf33}.app.app[data-theme]>nav>.actions>button:not(.primary){background:transparent;border-color:transparent}.app>nav>.actions>input{background:#fff6}.app[data-theme=dark]>nav>.actions>input{background:#09121e4d}.app .canvas-note{top:144px;background:transparent;pointer-events:none}.app #task-details{top:144px;bottom:48px}.app>.statusbar{position:absolute;bottom:var(--space-1);left:var(--space-3);right:var(--space-2);z-index:5;background:transparent!important;border:0;pointer-events:none}.app .canvas-help{bottom:32px;background:transparent!important}.app .react-flow__controls{bottom:var(--space-2)}.app[data-theme] .task:is(.blocked,.waiting,.done,.doing,.ready){background-color:#f6faff8c;background-image:radial-gradient(ellipse at left top,var(--state-tint) 0%,transparent 72%),linear-gradient(135deg,#ffffff73,#ffffff0a);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);box-shadow:inset 0 1px #ffffffbf,0 4px 16px var(--card-shadow)}.app[data-theme=dark] .task:is(.blocked,.waiting,.done,.doing,.ready){background-color:#222b3b8c;background-image:radial-gradient(ellipse at left top,var(--state-tint) 0%,transparent 72%),linear-gradient(135deg,#b5ccf31f,#b5ccf305);box-shadow:inset 0 1px #e6f3ff33,0 4px 16px var(--card-shadow)}@media(max-width:1200px){.app>header .saved{display:none}.app.app[data-theme]>nav{flex-wrap:wrap}.app.app[data-theme]>nav>.actions{margin-left:auto}.app #task-details,.app .canvas-note{top:192px}}@media(max-width:700px){.app>main{position:relative;flex:1;margin-top:224px}.app.app[data-theme]>header{left:var(--space-1);right:var(--space-1);flex-wrap:wrap;gap:var(--space-1)}.app>header>.actions{margin-left:auto}.app.app[data-theme]>nav{top:120px;left:var(--space-1);right:var(--space-1);gap:var(--space-1)}.app>nav>.actions{justify-content:flex-end}.app>nav>.actions>input{width:140px}.app #task-details{position:relative;top:auto;bottom:auto}.app .canvas-note{top:var(--space-2)}.app>.statusbar{display:none}}.app.app[data-theme]>header>.brand,.app.app[data-theme]>header>.actions,.app.app[data-theme]>nav>.tabs{background:none;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.app.app[data-theme]>header .demo{background:none;padding:0;color:#68758a}.app.app[data-theme=dark]>header .demo{color:#a3b1c5}.app.app[data-theme]>nav>.tabs button{background:none;border-radius:0;border-bottom:2px solid transparent}.app.app[data-theme]>nav>.tabs button.active{background:none;border-bottom-color:#456bce;color:#294da2}.app.app[data-theme=dark]>nav>.tabs button.active{border-bottom-color:#9ab9ff;color:#e0eaff}.app.app[data-theme]>nav>.tabs button:hover{background:#7389aa1a}.app.app[data-theme]>header .saved{background:none;border:0;box-shadow:none}.app.app[data-theme] .brand .project-name{background:transparent;border:0;padding:var(--space-1);font-size:var(--font-1);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.app.app[data-theme] .brand .project-name:hover{background:#8297b826}.project-name span{opacity:.6;margin-left:var(--space-1)}.app .brand .project-name-input{width:200px;max-width:40vw;font-size:var(--font-1)}@media(max-width:700px){.app .brand .project-name{max-width:150px}}.app .canvas-tools-toggle{position:absolute;left:16px;bottom:16px;z-index:5;border-radius:12px;box-shadow:0 4px 16px #0000001f}.app .react-flow__controls{bottom:64px;left:16px;margin:0}.app .task{width:256px}.app .task-deliverable{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;margin:0 0 12px;padding:9px 10px;border-radius:12px;background:#5b749a1a;font-size:var(--font-0);color:#66748a}.app .task-deliverable b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334158;font-size:var(--font-1);font-weight:600}.app .task footer{align-items:center;gap:8px}.app .task-dates{display:grid;gap:2px;text-align:right}.app .task-dates i{font-style:normal;white-space:nowrap}.app[data-theme=dark] .task-deliverable{background:#a7bee41a;color:#9eabc0}.app[data-theme=dark] .task-deliverable b{color:#e0e9f7}.react-flow__edge-path.edge-base{transition:stroke .2s cubic-bezier(.25,1,.5,1),stroke-width .2s cubic-bezier(.25,1,.5,1)}.energy-flow{fill:none;stroke:#65bbff;stroke-width:4;stroke-linecap:round;stroke-dasharray:3 22;animation:energy-travel .9s linear infinite;filter:drop-shadow(0 0 4px rgba(49,152,255,.9));pointer-events:none}@keyframes energy-travel{to{stroke-dashoffset:-25}}.edge-deliverable{position:absolute;z-index:2;max-width:154px;padding:5px 9px;border:1px solid rgba(111,128,153,.32);border-radius:999px;background:#f5f8fdeb;box-shadow:0 3px 12px #1f2e461f;color:#5f6c80;font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.edge-deliverable.connected{border-color:#3198ff80;background:#e6f4fff5;color:#176fbd;box-shadow:0 0 14px #3198ff33}.app[data-theme=dark] .edge-deliverable{background:#1c2533ed;border-color:#a7b7cf47;color:#b4c0d2;box-shadow:0 3px 12px #00000040}.app[data-theme=dark] .edge-deliverable.connected{background:#143753f2;border-color:#53b0ff8c;color:#a9d9ff}.relation-block{margin:0 0 12px;padding:8px;border:1px solid rgba(132,151,180,.22);border-radius:14px;background:#ffffff29}.relation-block .relation{margin:0 0 8px}.edge-deliverable-field{margin:0!important;color:#6b788d!important;font-size:var(--font-0)!important}.edge-deliverable-field input{min-height:32px!important;margin-top:4px!important;padding:4px 9px!important;font-size:var(--font-1)!important}.app[data-theme=dark] .relation-block{border-color:#bed1ef29;background:#0d16241f}.app[data-theme=dark] .edge-deliverable-field{color:#b6c3d6!important}@media(prefers-reduced-motion:reduce){.energy-flow{animation:none;stroke-dasharray:none;opacity:.75}}.app.app[data-theme]>nav{justify-content:flex-start;column-gap:var(--space-1)}.app.app[data-theme]>nav>.actions{margin-left:auto}.app.app[data-theme]>nav>.filter-toggle{pointer-events:auto;align-self:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border:1px solid rgba(133,151,180,.22);border-radius:10px;background:#ffffff57;color:#66748a;box-shadow:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app.app[data-theme]>nav>.filter-toggle:hover{background:#5d779e24;color:#294da2}.app[data-theme=dark]>nav>.filter-toggle{background:#1c273759;border-color:#c2d4f22e;color:#b8c5d8}.app.app[data-theme]>nav>.panel-toggle{position:absolute;pointer-events:auto;right:0;top:56px;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border-radius:14px;border:1px solid rgba(255,255,255,.55);background:linear-gradient(135deg,#fffc,#e1ebf994);box-shadow:inset 0 1px #ffffffe0,0 4px 16px #2a395224;font-size:24px;color:#4d5b70;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.app[data-theme=dark]>nav>.panel-toggle{background:linear-gradient(135deg,#5c708f73,#1a2331b3);border-color:#dae9ff3b;box-shadow:inset 0 1px #f3f9ff40,0 4px 16px #0000003d;color:#e1eaf8}.app #task-details{scrollbar-width:none;-ms-overflow-style:none}.app #task-details::-webkit-scrollbar{width:0;height:0;display:none}.edge-blocked-mark{position:absolute;z-index:3;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#ffeff6f2;box-shadow:0 0 0 3px #11161eb8;color:#df527f;font-size:18px;font-weight:700;line-height:1;pointer-events:none}.app[data-theme=light] .edge-blocked-mark{box-shadow:0 0 0 3px #ffffffe0}.react-flow__edge-path.edge-base.selected{filter:drop-shadow(0 0 5px rgba(68,163,255,.9))}.edge-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-bottom:18px}.edge-route>button{min-width:0;padding:12px;text-align:left;border-radius:14px;background:#ffffff52}.edge-route>button span{display:block;margin-bottom:4px;color:#718096;font-size:var(--font-0)}.edge-route>button b{display:block;overflow:hidden;text-overflow:ellipsis;color:inherit;font-size:var(--font-1);white-space:nowrap}.edge-route>i{font-style:normal;color:#4f91dd;font-size:18px}.app[data-theme=dark] .edge-route>button{background:#0a142238;border-color:#c2d4f22e}.app .relation .edge-edit{flex:0 0 auto;color:#4f91dd;font-size:16px}@media(max-width:700px){.app.app[data-theme]>nav>.panel-toggle{top:92px}.app.app[data-theme]>nav>.filter-toggle{align-self:flex-start}}.app[data-theme] .task.waiting{--state-tint:rgba(103,133,174,.28)}.app[data-theme] .badge.waiting{background:linear-gradient(135deg,#6785ae40,#6785ae0f);color:#4d6482}.app .tabs i.waiting{background:#7890b2}.app[data-theme=dark] .task.waiting{--state-tint:rgba(111,143,189,.24)}.app[data-theme=dark] .badge.waiting{color:#bed0e9}.app .task{width:280px;min-height:0;display:flex;flex-direction:column}.app .task-top{justify-content:space-between;margin-bottom:var(--space-2)}.app .task strong{font-size:17px;line-height:1.35;letter-spacing:-.15px}.app .task-owner{display:flex;align-items:baseline;gap:7px;margin-top:5px;color:#68768b;font-size:10px}.app .task-owner b{color:#9aa7ba;font-size:11px;font-weight:600}.app .task-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:3px;color:#7d8a9d;font-size:10px;text-align:left}.app .task p{min-height:30px;margin:7px 0 9px;font-size:12px;line-height:1.4}.app .task-deliverable{margin-top:0;margin-bottom:0;padding:8px 10px;border-radius:14px}.app .task-deliverable b{font-size:12px}.app .task footer{justify-content:flex-start;min-height:26px;padding-top:8px;font-size:10.5px}.app .task-dates{column-gap:8px;row-gap:3px;line-height:1.35}.app[data-theme=light] .task-owner b{color:#45536a}.app[data-theme=dark] .task-owner{color:#8f9db1}.app[data-theme=dark] .task-owner b{color:#d6e0ef}.app.app[data-theme] .brand .project-switcher{width:auto;min-width:160px;max-width:240px;min-height:32px;padding:var(--space-1) 28px var(--space-1) var(--space-1);border:1px solid transparent;border-radius:10px;background-color:transparent;color:inherit;font-size:var(--font-1);font-weight:600;text-overflow:ellipsis}.app.app[data-theme] .brand .project-switcher:hover{border-color:#8094b43d;background-color:#8297b81f}.app.app[data-theme] .brand .project-action{display:grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border-color:transparent;background:transparent;color:inherit;font-size:var(--font-1)}.app.app[data-theme] .brand .project-action:hover{background:#8297b826}.app[data-theme=dark] .brand .project-switcher option{background:#202b3b;color:#e1e7f0}@media(max-width:700px){.app.app[data-theme] .brand .project-switcher{min-width:120px;max-width:160px}.app.app[data-theme] .brand .demo{display:none}}.app.app[data-theme]>nav>.tabs,.app.app[data-theme]>nav>.actions,.app.app[data-theme] #task-details{border:0;border-radius:24px;background-color:#f6faff8c;background-image:radial-gradient(ellipse at left top,rgba(91,132,196,.16) 0%,transparent 72%),linear-gradient(135deg,#ffffff73,#ffffff0a);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);box-shadow:inset 0 1px #ffffffbf,0 4px 16px var(--card-shadow)}.app.app[data-theme=dark]>nav>.tabs,.app.app[data-theme=dark]>nav>.actions,.app.app[data-theme=dark] #task-details{background-color:#222b3b8c;background-image:radial-gradient(ellipse at left top,rgba(111,151,214,.18) 0%,transparent 72%),linear-gradient(135deg,#b5ccf31f,#b5ccf305);box-shadow:inset 0 1px #e6f3ff33,0 4px 16px var(--card-shadow)}@supports (corner-shape:superellipse(2)){.app.app[data-theme]>nav>.tabs,.app.app[data-theme]>nav>.actions,.app.app[data-theme] #task-details{border-radius:40px;corner-shape:superellipse(2)}}@media(prefers-reduced-transparency:reduce){.app.app[data-theme]>nav>.tabs,.app.app[data-theme]>nav>.actions,.app.app[data-theme] #task-details{background:#eef3fa}.app.app[data-theme=dark]>nav>.tabs,.app.app[data-theme=dark]>nav>.actions,.app.app[data-theme=dark] #task-details{background:#2d3b50}}.app .canvas-tools{position:absolute;left:var(--space-2);bottom:var(--space-2);z-index:7;display:flex;align-items:center;gap:var(--space-1)}.app .canvas-tools .canvas-tools-toggle{position:static;box-shadow:0 4px 16px #0000001f}.app .canvas-tools-menu{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:16px;background-color:#f6faffb8;background-image:radial-gradient(ellipse at left top,rgba(91,132,196,.16),transparent 72%),linear-gradient(135deg,#ffffff73,#ffffff0a);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);box-shadow:inset 0 1px #ffffffbf,0 4px 16px var(--card-shadow)}.app[data-theme=dark] .canvas-tools-menu{background-color:#222b3bb8;background-image:radial-gradient(ellipse at left top,rgba(111,151,214,.18),transparent 72%),linear-gradient(135deg,#b5ccf31f,#b5ccf305);box-shadow:inset 0 1px #e6f3ff33,0 4px 16px var(--card-shadow)}.app .canvas-tools-menu button{min-height:32px;padding:var(--space-1) var(--space-2);border-color:transparent;background:transparent;font-size:var(--font-1)}.app .canvas-tools-menu button.active{background:#456cd02e;color:#294da2}.app[data-theme=dark] .canvas-tools-menu button.active{background:#7299f238;color:#e2ebff}.app .canvas.mode-select .react-flow__pane{cursor:crosshair}.app .canvas.mode-select .react-flow__node-section{pointer-events:none}.app .react-flow__selection{border:1px solid #6f9eff;background:#5b8bec1f}.app .react-flow__node-section{z-index:0!important}.app .react-flow__node-task{z-index:1!important}.app .color-blue{--section-hue:250;--section-chroma:.1;--section-soft:.05}.app .color-teal{--section-hue:175;--section-chroma:.085;--section-soft:.045}.app .color-amber{--section-hue:82;--section-chroma:.1;--section-soft:.05}.app .color-coral{--section-hue:28;--section-chroma:.1;--section-soft:.05}.app .color-violet{--section-hue:305;--section-chroma:.09;--section-soft:.045}.app .color-slate{--section-hue:250;--section-chroma:.025;--section-soft:.015}.app .section-frame{width:100%;height:100%;border:1px solid oklch(64% var(--section-chroma) var(--section-hue)/.55);border-radius:24px;background:oklch(72% var(--section-chroma) var(--section-hue)/.085);box-shadow:inset 0 1px #ffffff1f;transition:border-color .18s cubic-bezier(.25,1,.5,1),background .18s cubic-bezier(.25,1,.5,1)}.app[data-theme=dark] .section-frame{border-color:oklch(78% var(--section-chroma) var(--section-hue)/.5);background:oklch(64% var(--section-chroma) var(--section-hue)/.12)}.app .section-frame.selected{border-color:oklch(62% calc(var(--section-chroma) + .04) var(--section-hue));background:oklch(70% var(--section-chroma) var(--section-hue)/.14);box-shadow:0 0 0 1px oklch(65% var(--section-chroma) var(--section-hue)/.22),inset 0 1px #ffffff2e}.app[data-theme=dark] .section-frame.selected{border-color:oklch(82% calc(var(--section-chroma) + .02) var(--section-hue));background:oklch(66% var(--section-chroma) var(--section-hue)/.18)}.app .section-frame.drop-target{border-width:2px;border-color:oklch(60% calc(var(--section-chroma) + .05) var(--section-hue));background:oklch(70% var(--section-chroma) var(--section-hue)/.2);box-shadow:0 0 0 4px oklch(68% var(--section-chroma) var(--section-hue)/.12),inset 0 1px #fff3}.app[data-theme=dark] .section-frame.drop-target{border-color:oklch(84% calc(var(--section-chroma) + .025) var(--section-hue));background:oklch(66% var(--section-chroma) var(--section-hue)/.24);box-shadow:0 0 0 4px oklch(76% var(--section-chroma) var(--section-hue)/.12),inset 0 1px #fff3}.app .section-frame.drop-target .section-frame-title i{font-weight:700}.app .section-frame-title{position:absolute;top:var(--space-2);left:var(--space-2);right:var(--space-2);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:oklch(43% var(--section-chroma) var(--section-hue));font-size:var(--font-1);font-weight:700;pointer-events:none}.app .section-frame-title i{color:oklch(52% var(--section-soft) var(--section-hue));font-size:var(--font-0);font-style:normal;font-weight:500}.app[data-theme=dark] .section-frame-title{color:oklch(88% var(--section-soft) var(--section-hue))}.app[data-theme=dark] .section-frame-title i{color:oklch(72% var(--section-soft) var(--section-hue))}.app .section-frame .react-flow__resize-control.line{border-color:oklch(62% calc(var(--section-chroma) + .04) var(--section-hue))}.app .section-frame .react-flow__resize-control.handle{width:10px;height:10px;border-color:oklch(62% calc(var(--section-chroma) + .04) var(--section-hue));border-radius:3px;background:oklch(92% var(--section-soft) var(--section-hue))}.app .section-count{color:#75849a;font-size:var(--font-1)}.app .section-color-field{margin:0 0 var(--space-2);color:#556175;font-size:var(--font-1)}.app .section-color-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1);margin-top:var(--space-1)}.app .section-color-choice{display:flex;align-items:center;gap:var(--space-1);min-width:0;padding:var(--space-1);border:1px solid transparent;background:transparent;color:inherit;font-size:var(--font-0)}.app .section-color-choice:hover{background:#7389aa1a}.app .section-color-choice.active{border-color:oklch(62% calc(var(--section-chroma) + .03) var(--section-hue)/.65);background:oklch(72% var(--section-chroma) var(--section-hue)/.12)}.app .section-color-choice i{width:16px;height:16px;flex:0 0 16px;border:1px solid oklch(62% var(--section-chroma) var(--section-hue)/.7);border-radius:50%;background:oklch(72% var(--section-chroma) var(--section-hue)/.5)}.app .section-color-choice b{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:500}.app[data-theme=dark] .section-color-field{color:#d0dced}.app[data-theme=dark] .section-color-choice.active{border-color:oklch(80% var(--section-chroma) var(--section-hue)/.65);background:oklch(62% var(--section-chroma) var(--section-hue)/.18)}.app[data-theme=dark] .section-color-choice i{border-color:oklch(82% var(--section-chroma) var(--section-hue)/.72);background:oklch(68% var(--section-chroma) var(--section-hue)/.62)}@supports (corner-shape:superellipse(2)){.app .section-frame{border-radius:40px;corner-shape:superellipse(2)}}@media(max-width:700px){.app .canvas-tools{left:var(--space-1);bottom:var(--space-1);align-items:flex-end}.app .canvas-tools-menu{flex-direction:column;align-items:stretch}.app .canvas-tools-menu button{padding:var(--space-1)}}.app .view-switcher{pointer-events:auto;display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:16px;background:#f6faffb8;box-shadow:inset 0 1px #ffffffbf,0 4px 16px var(--card-shadow);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%)}.app[data-theme=dark] .view-switcher{background:#222b3bb8;box-shadow:inset 0 1px #e6f3ff33,0 4px 16px var(--card-shadow)}.app .view-switcher button{min-height:32px;padding:var(--space-1) 10px;border:0;border-radius:10px;background:transparent;color:#66758a;font-size:var(--font-1)}.app .view-switcher button:hover{background:#57739e1f;color:#294da2}.app .view-switcher button.active{background:#456bce;color:#fff}.app[data-theme=dark] .view-switcher button{color:#b9c7da}.app[data-theme=dark] .view-switcher button:hover{background:#97b3e121;color:#eef4ff}.app[data-theme=dark] .view-switcher button.active{background:#6386df;color:#fff}.app .workspace-view{position:relative;flex:1;min-width:0;height:100%;padding:160px var(--space-2) var(--space-2);overflow:auto;background-color:#f5f7fa;background-image:radial-gradient(circle at 1px 1px,rgba(87,105,132,.16) 1px,transparent 1.2px);background-size:24px 24px;color:#29364b}.app main.panel-open .workspace-view{padding-right:368px}.app[data-theme=dark] .workspace-view{background-color:#15191f;background-image:radial-gradient(circle at 1px 1px,rgba(173,191,219,.2) 1px,transparent 1.2px);color:#e6edf8}.app .view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-2);max-width:1440px;margin:0 auto var(--space-2);padding:0 var(--space-1)}.app .view-heading h2{margin-bottom:var(--space-1);font-size:var(--font-3);letter-spacing:-.2px}.app .view-heading p{margin:0;color:#66758a;font-size:var(--font-1)}.app[data-theme=dark] .view-heading p{color:#aab8cc}.app .view-heading>span,.app .calendar-heading-actions>span{color:#66758a;font-size:var(--font-1);white-space:nowrap}.app[data-theme=dark] .view-heading>span,.app[data-theme=dark] .calendar-heading-actions>span{color:#adbbcf}.app .table-scroll{max-width:1440px;max-height:calc(100dvh - 220px);margin:auto;overflow:auto;border-radius:16px;background:#ffffffe0;box-shadow:0 4px 12px #23344e1f}.app[data-theme=dark] .table-scroll{background:#1e2735e6;box-shadow:0 4px 12px #00000047}.app table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;font-size:var(--font-1)}.app th,.app td{height:48px;padding:10px var(--space-2);border-right:1px solid #e5eaf1;border-bottom:1px solid #e5eaf1;text-align:left;vertical-align:middle;white-space:nowrap}.app th{position:sticky;top:0;z-index:2;height:44px;background:#edf1f6;color:#637187;font-size:var(--font-0);font-weight:600}.app th:first-child{min-width:220px}.app th:nth-child(2){min-width:104px}.app th:nth-child(6),.app th:nth-child(7){min-width:180px}.app td{max-width:260px;overflow:hidden;color:#435168;text-overflow:ellipsis}.app td:last-child,.app th:last-child{border-right:0}.app tbody tr:last-child td{border-bottom:0}.app tbody tr{cursor:pointer;transition:background .16s cubic-bezier(.25,1,.5,1)}.app tbody tr:hover{background:#456cd011}.app tbody tr.selected{background:#456cd01f}.app tbody tr:focus-visible{outline:2px solid #456cd0;outline-offset:-2px}.app[data-theme=dark] th,.app[data-theme=dark] td{border-color:#38465a}.app[data-theme=dark] th{background:#263246;color:#afbdd1}.app[data-theme=dark] td{color:#d5deec}.app[data-theme=dark] tbody tr:hover{background:#799de817}.app[data-theme=dark] tbody tr.selected{background:#799de829}.app .table-task-name{color:#273a5a;font-weight:650}.app[data-theme=dark] .table-task-name{color:#edf4ff}.app .table-status{display:inline-flex;align-items:center;gap:7px;padding:4px 8px;border-radius:999px;background:#7d8fa91f;font-size:var(--font-0)}.app .table-status i{width:7px;height:7px;border-radius:50%;background:#8b96a7}.app .table-status.waiting i{background:#7890b2}.app .table-status.doing i{background:#d4a923}.app .table-status.blocked i{background:#df527f}.app .table-status.done i{background:#3dab72}.app .table-milestone{color:#2f61c7;font-weight:650}.app[data-theme=dark] .table-milestone{color:#a9c3ff}.app .empty-value{color:#8995a7}.app[data-theme=dark] .empty-value{color:#7f8da2}.app .view-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);color:#718096}.app .view-empty b{color:#435168;font-size:var(--font-2)}.app[data-theme=dark] .view-empty b{color:#dce5f3}.app .calendar-heading{align-items:center}.app .calendar-heading-actions{display:flex;align-items:center;gap:var(--space-2)}.app .calendar-heading-actions>span b{color:#2f61c7;font-size:var(--font-2)}.app[data-theme=dark] .calendar-heading-actions>span b{color:#a9c3ff}.app .calendar-nav{display:flex;gap:var(--space-1)}.app .calendar-nav button{min-height:32px;padding:var(--space-1) 10px;border:0;border-radius:8px;background:#fffc;box-shadow:0 2px 6px #26354d1a}.app[data-theme=dark] .calendar-nav button{background:#263246;box-shadow:none}.app .calendar-legend{display:flex;justify-content:flex-end;gap:var(--space-2);max-width:1440px;margin:0 auto var(--space-1);padding:0 var(--space-1);color:#68768b;font-size:var(--font-0)}.app .calendar-legend span{display:flex;align-items:center;gap:6px}.app .legend-start{width:12px;height:4px;border-radius:2px;background:#8696ac}.app .legend-milestone{color:#4775dc;font-style:normal}.app[data-theme=dark] .calendar-legend{color:#acb9cc}.app[data-theme=dark] .legend-milestone{color:#98b6ff}.app .calendar-scroll{max-width:1440px;margin:auto;overflow:auto;border-radius:16px;background:#ffffffe6;box-shadow:0 4px 12px #23344e1f}.app[data-theme=dark] .calendar-scroll{background:#1d2634eb;box-shadow:0 4px 12px #00000047}.app .calendar-grid{min-width:920px}.app .calendar-weekdays,.app .calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.app .calendar-weekdays{position:sticky;top:0;z-index:3;background:#edf1f6}.app .calendar-weekdays span{padding:10px var(--space-2);border-right:1px solid #e1e7ef;color:#69778b;font-size:var(--font-0);font-weight:600}.app .calendar-weekdays span:last-child{border-right:0}.app .calendar-day{min-height:112px;padding:8px;border-top:1px solid #e1e7ef;border-right:1px solid #e1e7ef;background:#ffffff40}.app .calendar-day:nth-child(7n){border-right:0}.app .calendar-day time{display:grid;place-items:center;width:24px;height:24px;margin-bottom:5px;border-radius:50%;color:#4f5f76;font-size:var(--font-0)}.app .calendar-day.outside{background:#e2e8f152}.app .calendar-day.outside time{color:#a4adba}.app .calendar-day.today time{background:#456bce;color:#fff;font-weight:700}.app[data-theme=dark] .calendar-weekdays{background:#263246}.app[data-theme=dark] .calendar-weekdays span,.app[data-theme=dark] .calendar-day{border-color:#38465a}.app[data-theme=dark] .calendar-weekdays span{color:#b1bfd3}.app[data-theme=dark] .calendar-day{background:#1c26346b}.app[data-theme=dark] .calendar-day.outside{background:#0f151d59}.app[data-theme=dark] .calendar-day time{color:#bcc8d8}.app[data-theme=dark] .calendar-day.outside time{color:#657389}.app .day-events{display:flex;flex-direction:column;gap:4px}.app .day-events button{display:flex;align-items:center;gap:5px;width:100%;min-height:24px;padding:3px 7px;border:0;border-radius:6px;text-align:left;font-size:var(--font-0);overflow:hidden}.app .day-events button span{overflow:hidden;text-overflow:ellipsis}.app .day-events button.start{background:#7890b224;color:#526781}.app .day-events button.milestone{background:#e9efff;color:#2e59b3;font-weight:650}.app .day-events button.milestone i{color:#4775dc;font-size:9px;font-style:normal}.app .day-events button.selected{outline:2px solid #456cd0;outline-offset:-1px}.app[data-theme=dark] .day-events button.start{background:#879ec229;color:#c0cce0}.app[data-theme=dark] .day-events button.milestone{background:#4f75cf4d;color:#d6e3ff}.app[data-theme=dark] .day-events button.milestone i{color:#9ab8ff}.app .calendar-note{display:flex;align-items:center;justify-content:center;gap:var(--space-2);max-width:1440px;margin:var(--space-2) auto 0;padding:var(--space-2);border-radius:12px;background:#ffffffc2;color:#6b788d;font-size:var(--font-1)}.app[data-theme=dark] .calendar-note{background:#242f40c2;color:#afbdd1}@media(max-width:1450px){.app .workspace-view{padding-top:208px}}@media(max-width:900px){.app main.panel-open .workspace-view{padding-right:var(--space-2)}.app .calendar-heading{align-items:flex-start;flex-direction:column}.app .calendar-heading-actions{width:100%;justify-content:space-between}}@media(max-width:700px){.app .workspace-view{height:auto;min-height:620px;padding:var(--space-2)}.app .view-heading{align-items:flex-start;flex-direction:column}.app .table-scroll{max-height:none}.app .calendar-heading-actions,.app .calendar-note{align-items:flex-start;flex-direction:column}.app .view-switcher{order:-1}.app.app[data-theme]>nav{top:120px}.app>main{margin-top:264px}}@media(prefers-reduced-transparency:reduce){.app .view-switcher,.app .table-scroll,.app .calendar-scroll{background:#fff}.app[data-theme=dark] .view-switcher,.app[data-theme=dark] .table-scroll,.app[data-theme=dark] .calendar-scroll{background:#202a39}}.app.app[data-theme]>nav>.filter-toggle{width:32px;min-width:32px;height:32px;min-height:32px;border:0;border-radius:10px;background:#456bce24;box-shadow:inset 0 1px #ffffff80;color:#315ab8;font-size:var(--font-1);font-weight:700;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.app.app[data-theme]>nav>.filter-toggle:hover{background:#456bce38;color:#244b9f}.app.app[data-theme=dark]>nav>.filter-toggle{background:#678bda38;box-shadow:inset 0 1px #e0edff29;color:#c8d8ff}.app.app[data-theme=dark]>nav>.filter-toggle:hover{background:#7097ef52;color:#fff}.app.app[data-theme]>nav>.panel-toggle{right:4px;top:56px;width:36px;height:36px;min-height:36px;border:1px solid rgba(100,123,158,.18);border-radius:12px;background:#dae4f2e0;box-shadow:inset 0 1px #ffffff9e,0 3px 8px #2030491f;color:#52647d;font-size:18px;font-weight:650;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.app.app[data-theme]>nav>.panel-toggle:hover{background:#c7d7eef5;border-color:#4c6ca440;color:#315ab8}.app.app[data-theme=dark]>nav>.panel-toggle{background:#384860e6;border-color:#bccfee29;box-shadow:inset 0 1px #e2eeff29,0 3px 8px #00000038;color:#c5d2e6}.app.app[data-theme=dark]>nav>.panel-toggle:hover{background:#455b7ff5;border-color:#9db9e842;color:#edf4ff}.app .task-milestone{color:#416ccf;font-size:var(--font-0);font-style:normal;font-weight:700}.app[data-theme=dark] .task-milestone{color:#a8c0ff}.app .milestone-field{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#456bce14;cursor:pointer}.app .milestone-field>input{width:16px;min-width:16px;height:16px;min-height:16px;margin:0;accent-color:#456bce}.app .milestone-field>span{display:flex;flex-direction:column;gap:2px}.app .milestone-field b{color:#435168;font-size:var(--font-1)}.app .milestone-field small{color:#78869a;font-size:var(--font-0)}.app[data-theme=dark] .milestone-field{background:#6e94e61c}.app[data-theme=dark] .milestone-field b{color:#e2eaff}.app[data-theme=dark] .milestone-field small{color:#adbbcf}.app .table-view table{min-width:1320px}.app .table-view th:first-child{min-width:230px}.app .table-view th:nth-child(3){min-width:130px}.app .table-view th:nth-child(4),.app .table-view th:nth-child(5){min-width:150px}.app .table-view th:nth-child(7){min-width:210px}.app .table-view th:nth-child(8){min-width:190px}.app .table-view tbody tr{cursor:default}.app .table-view td:has(.cell-editor){padding:4px}.app .table-view .cell-editor{width:100%;min-height:34px;margin:0;padding:5px 10px;border:1px solid transparent;border-radius:7px;background:transparent;box-shadow:none;color:#435168;font-size:var(--font-1)}.app .table-view .cell-editor:hover{background:#516b9412}.app .table-view .cell-editor:focus{border-color:#6f91df;background:#fff;outline:2px solid rgba(69,108,208,.14);outline-offset:0}.app .table-view .task-name-editor{color:#273a5a;font-weight:650}.app .table-view .status-editor{padding-right:28px;background-color:#7d8fa91f;font-size:var(--font-0)}.app .table-view .status-editor.doing{background-color:#d4a92326}.app .table-view .status-editor.blocked{background-color:#df527f24}.app .table-view .status-editor.done{background-color:#3dab7224}.app .table-view .status-editor.waiting{background-color:#7890b224}.app[data-theme=dark] .table-view .cell-editor{background-color:transparent;border-color:transparent;color:#d5deec}.app[data-theme=dark] .table-view .cell-editor:hover{background-color:#9cb4dc12}.app[data-theme=dark] .table-view .cell-editor:focus{border-color:#83a4ee;background-color:#1b2533;outline-color:#82a4ee2e}.app[data-theme=dark] .table-view .task-name-editor{color:#edf4ff}.app[data-theme=dark] .table-view .status-editor{background-color:#8297b826}.app[data-theme=dark] .table-view .status-editor.doing{background-color:#d4a92329}.app[data-theme=dark] .table-view .status-editor.blocked{background-color:#df527f2b}.app[data-theme=dark] .table-view .status-editor.done{background-color:#3dab722b}.app .table-view .date-editor{font-variant-numeric:tabular-nums}.app .milestone-column,.app .milestone-cell{text-align:center}.app .milestone-cell{padding:4px 10px}.app .milestone-cell label{display:grid;place-items:center;width:100%;height:34px;margin:0;cursor:pointer}.app .milestone-cell input{position:absolute;width:1px;height:1px;opacity:0}.app .milestone-cell span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;color:#a3adbb;font-size:12px;transition:background .16s cubic-bezier(.25,1,.5,1),color .16s cubic-bezier(.25,1,.5,1)}.app .milestone-cell label:hover span{background:#456bce1a;color:#6684c7}.app .milestone-cell input:checked+span{background:#456bce;color:#fff}.app .milestone-cell input:focus-visible+span{outline:2px solid #7598e8;outline-offset:2px}.app[data-theme=dark] .milestone-cell span{color:#718198}.app[data-theme=dark] .milestone-cell label:hover span{background:#799de824;color:#a9bfff}.app[data-theme=dark] .milestone-cell input:checked+span{background:#6386df;color:#fff}.app .readonly-cell{color:#718096}.app[data-theme=dark] .readonly-cell{color:#aab7c9}.app .row-actions{width:44px;padding:4px!important;text-align:center}.app .row-actions button{width:30px;height:30px;min-height:30px;padding:0;border:0;background:transparent;color:#9aa5b5;font-size:17px;opacity:0}.app .table-view tr:hover .row-actions button,.app .row-actions button:focus-visible{opacity:1}.app .row-actions button:hover{background:#c445571a;color:#b53d50}.app .add-row td{height:44px;padding:4px 8px;border-bottom:0}.app .add-row button{width:100%;min-height:34px;padding:5px 10px;border:0;background:transparent;color:#61718a;text-align:left}.app .add-row button:hover{background:#456bce12;color:#315ab8}.app[data-theme=dark] .add-row button{color:#aebcd0}.app[data-theme=dark] .add-row button:hover{background:#799de81a;color:#dce6ff}.app .task-milestone-line{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px 8px;border-radius:9px;background:#456bce14;color:#4a6599;font-size:var(--font-0)}.app .task-milestone-line i{color:#456bce;font-style:normal}.app .task-milestone-line b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app .task-milestone-line span{margin-left:auto;white-space:nowrap;color:#74829a}.app[data-theme=dark] .task-milestone-line{background:#6f94e51f;color:#c8d7f4}.app[data-theme=dark] .task-milestone-line i{color:#9bb7ff}.app[data-theme=dark] .task-milestone-line span{color:#9dacbf}.app .table-view table{min-width:2020px}.app .table-view th:first-child{min-width:112px}.app .table-view th:nth-child(2){min-width:230px}.app .table-view th:nth-child(3){min-width:160px}.app .table-view th:nth-child(4){min-width:150px}.app .table-view th:nth-child(5){min-width:120px}.app .table-view th:nth-child(6){min-width:130px}.app .table-view th:nth-child(7),.app .table-view th:nth-child(8),.app .table-view th:nth-child(10){min-width:150px}.app .table-view th:nth-child(9){min-width:190px}.app .table-view th:nth-child(11){min-width:210px}.app .table-view th:nth-child(12){min-width:190px}.app .table-view th:last-child{width:44px;min-width:44px}.app .table-view .number-editor{color:#65758e;font-variant-numeric:tabular-nums}.app[data-theme=dark] .table-view .number-editor{color:#aebdd2}.app .table-view .milestone-name-editor{color:#315ab8;font-weight:600}.app[data-theme=dark] .table-view .milestone-name-editor{color:#b9ccff}.app .business-cell span{display:inline-flex;max-width:100%;padding:4px 8px;border-radius:7px;background:#456bce1a;color:#3e5f9f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app[data-theme=dark] .business-cell span{background:#6f94e524;color:#c2d2f5}.app #task-details input[readonly]{background:#7589a714;color:#718096;cursor:default}.app[data-theme=dark] #task-details input[readonly]{background:#08101c33;color:#a9b7ca}.app .milestone-fields{padding:10px 12px 0;border-radius:12px;background:#456bce14}.app .milestone-fields label{margin-bottom:10px}.app .milestone-hint{margin-top:-8px;padding:0 12px 10px;border-radius:0 0 12px 12px;background:#456bce14}.app[data-theme=dark] .milestone-fields,.app[data-theme=dark] .milestone-hint{background:#6e94e61c}.app .primary-view{position:absolute;left:50%;transform:translate(-50%);pointer-events:auto;display:flex;align-items:center;gap:10px}.app .level-label{color:#748197;font-size:var(--font-0);white-space:nowrap}.app[data-theme=dark] .level-label{color:#94a4bb}.app .primary-view .view-switcher{background:#f6faffb8}.app[data-theme=dark] .primary-view .view-switcher{background:#222b3bb8}.app .project-context{pointer-events:auto;display:flex;align-items:center;gap:var(--space-1);min-height:44px;padding:var(--space-1) 10px;border-radius:16px;background:#f6faff80;box-shadow:inset 0 1px #ffffffa8;backdrop-filter:blur(16px) saturate(135%);-webkit-backdrop-filter:blur(16px) saturate(135%)}.app[data-theme=dark] .project-context{background:#222b3b80;box-shadow:inset 0 1px #e6f3ff24}.app.app[data-theme] .project-context .project-switcher{width:auto;min-width:160px;max-width:240px;min-height:32px;padding:var(--space-1) 28px var(--space-1) var(--space-1);border:0;border-radius:9px;background-color:#7088ab14;color:inherit;font-size:var(--font-1);font-weight:600;text-overflow:ellipsis}.app.app[data-theme] .project-context .project-switcher:hover{background-color:#5977a624}.app.app[data-theme] .project-context .project-action{display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;border:0;background:transparent;color:inherit;font-size:var(--font-1)}.app.app[data-theme] .project-context .project-action:hover{background:#6681aa24}.app .project-context .project-name-input{width:200px;max-width:34vw;min-height:32px;font-size:var(--font-1)}.app .project-context .demo{font-size:var(--font-0);background:none;padding:0 4px;color:#758297}.app[data-theme=dark] .project-context .project-switcher option{background:#202b3b;color:#e1e7f0}.app[data-theme=dark] .project-context .demo{color:#9eadc1}@media(max-width:1100px){.app .primary-view{left:42%}.app .project-context .demo{display:none}.app.app[data-theme] .project-context .project-switcher{min-width:130px;max-width:180px}}@media(max-width:700px){.app .primary-view{position:static;transform:none;order:3;width:100%;gap:var(--space-1)}.app .primary-view .level-label{display:none}.app .primary-view .view-switcher{width:100%;justify-content:center}.app.app[data-theme]>nav{top:124px}.app>main{margin-top:268px}.app .project-context{max-width:100%}.app.app[data-theme] .project-context .project-switcher{min-width:110px;max-width:145px}}.app .workspace-view{scrollbar-width:none;-ms-overflow-style:none}.app .workspace-view::-webkit-scrollbar{display:none;width:0;height:0}.app :is(.table-scroll,.calendar-scroll){scrollbar-width:thin;scrollbar-color:rgba(91,111,143,.38) transparent}.app[data-theme=dark] :is(.table-scroll,.calendar-scroll){scrollbar-color:rgba(151,174,210,.34) transparent}.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar{width:10px;height:10px}.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-track,.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-corner{background:transparent}.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-thumb{min-width:48px;min-height:48px;border:3px solid transparent;border-radius:999px;background:#5b6f8f61;background-clip:content-box}.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-thumb:hover{background:#456bae94;background-clip:content-box}.app[data-theme=dark] :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-thumb{background:#97aed257;background-clip:content-box}.app[data-theme=dark] :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar-thumb:hover{background:#a9c2eb8a;background-clip:content-box}.app :is(.table-scroll,.calendar-scroll){scrollbar-width:none;-ms-overflow-style:none}.app :is(.table-scroll,.calendar-scroll)::-webkit-scrollbar{display:none;width:0;height:0}html,body,#root,.app,.app>main{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,#root::-webkit-scrollbar,.app::-webkit-scrollbar,.app>main::-webkit-scrollbar{display:none;width:0;height:0}.app .table-view .view-heading,.app .table-view .table-scroll{width:100%;max-width:none}.app .table-view table{width:100%;min-width:1220px;table-layout:fixed}.app .table-view th{min-width:0!important;padding:8px 9px;white-space:nowrap}.app .table-view th:nth-child(1){width:68px}.app .table-view th:nth-child(2){width:132px}.app .table-view th:nth-child(3){width:92px}.app .table-view th:nth-child(4){width:96px}.app .table-view th:nth-child(5){width:84px}.app .table-view th:nth-child(6){width:80px}.app .table-view th:nth-child(7),.app .table-view th:nth-child(8),.app .table-view th:nth-child(10){width:100px}.app .table-view th:nth-child(9){width:116px}.app .table-view th:nth-child(11){width:112px}.app .table-view th:nth-child(12){width:122px}.app .table-view th:last-child{width:36px}.app .table-view td{height:46px;padding:6px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app .table-view .cell-editor{min-width:0;padding:5px 7px;text-overflow:ellipsis;white-space:nowrap}.app .table-view .date-editor{font-size:var(--font-0)}.app .table-view .cell-editor:disabled{opacity:.48;cursor:not-allowed}.app .table-view .readonly-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app .milestone-create{min-height:32px;padding:6px 10px;border:1px solid rgba(69,107,206,.2);border-radius:9px;background:#456bce1f;color:#315ab8;font-size:var(--font-0);font-weight:650}.app .milestone-create:hover{background:#456bce33}.app[data-theme=dark] .milestone-create{border-color:#8babee33;background:#698fe22e;color:#d1deff}.app .milestone-object-badge{padding:4px 8px;border-radius:999px;background:#456bce1a;color:#3f61a5;font-size:var(--font-0)}.app[data-theme=dark] .milestone-object-badge{background:#6c92e62b;color:#c8d8ff}.app .milestone-projects{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-2);padding:10px 12px;border-radius:12px;background:#456bce12}.app .milestone-projects>span{color:#6d7b90;font-size:var(--font-0)}.app .milestone-projects label{display:flex;align-items:center;gap:8px;margin:0;padding:6px 7px;border-radius:8px;cursor:pointer}.app .milestone-projects label:hover{background:#456bce14}.app .milestone-projects input{width:16px;height:16px;margin:0;accent-color:#456bce}.app .milestone-projects b{font-size:var(--font-1);font-weight:600}.app[data-theme=dark] .milestone-projects{background:#6e94e61a}.app[data-theme=dark] .milestone-projects>span{color:#aebbd0}.app .task.zoom-summary{min-height:150px;padding:18px 20px;justify-content:center}.app .task.zoom-summary>:not(strong):not(.react-flow__handle){display:none}.app .task.zoom-summary>strong{display:-webkit-box;margin:0;color:#263b5b;font-size:21px;font-weight:500;line-height:1.32;letter-spacing:0;text-align:center;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.app[data-theme=dark] .task.zoom-summary>strong{color:#f0f5ff}.app .table-view-heading{overflow:visible}.app .table-heading-actions{display:flex;align-items:center;gap:var(--space-2)}.app .table-filter-wrap{position:relative}.app .table-filter-button{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 10px;border-color:#62789a2e;background:#ffffffb8;color:#516178;font-size:var(--font-0)}.app .table-filter-button:hover,.app .table-filter-button.active{border-color:#456bce47;background:#456bce1a;color:#315ab8}.app .table-filter-button b{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#456bce;color:#fff;font-size:10px}.app .table-filter-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(620px,calc(100vw - 40px));padding:12px;border:1px solid rgba(100,123,158,.18);border-radius:14px;background:#fafcfffa;box-shadow:0 14px 38px #1a2a442e;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.app .filter-popover-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;color:#364761;font-size:var(--font-1)}.app .filter-popover-title button,.app .remove-condition{display:grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;border:0;background:transparent;color:#8290a4;font-size:17px}.app .filter-condition{display:grid;grid-template-columns:124px 90px minmax(140px,1fr) 28px;gap:7px;align-items:center;margin:6px 0}.app .filter-condition select,.app .filter-condition input{height:34px;min-height:34px;margin:0;padding:5px 8px;border-radius:8px;font-size:var(--font-0)}.app .filter-condition:has(>select:nth-child(2):last-of-type){grid-template-columns:124px 90px 28px}.app .filter-empty{margin:18px 0;color:#8693a6;font-size:var(--font-1);text-align:center}.app .filter-footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(112,132,162,.16)}.app .filter-footer button{min-height:30px;padding:5px 8px;border:0;background:transparent;color:#536883;font-size:var(--font-0)}.app .filter-footer button:hover{background:#456bce14;color:#315ab8}.app[data-theme=dark] .table-filter-button{border-color:#9fb5da1f;background:#273345c2;color:#b8c5d8}.app[data-theme=dark] .table-filter-button:hover,.app[data-theme=dark] .table-filter-button.active{border-color:#86a7eb47;background:#658bdf2e;color:#d5e1ff}.app[data-theme=dark] .table-filter-popover{border-color:#a8bee229;background:#1f2938fa;box-shadow:0 16px 42px #0000005c}.app[data-theme=dark] .filter-popover-title{color:#e1e9f6}.app[data-theme=dark] .filter-footer{border-color:#a6bad91f}.app[data-theme=dark] .filter-footer button{color:#b8c6d9}@media(max-width:700px){.app .table-view-heading{flex-direction:row}.app .table-view-heading>div:first-child p{display:none}.app .table-heading-actions>span{display:none}.app .table-filter-popover{position:fixed;top:150px;left:12px;right:12px;width:auto}.app .filter-condition{grid-template-columns:1fr 90px 28px}.app .filter-condition>*:nth-child(3){grid-column:1/3}.app .filter-condition .remove-condition{grid-column:3;grid-row:1}}
