.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: "DM Sans", Inter, system-ui, sans-serif;--font-display: Manrope, var(--font);--ink: #302b43;--ink-2: #5e5872;--ink-3: #918aa2;--line: #ebe7f3;--bg: #faf9fd;--surface: #fff;--accent: #7658e8;--accent-strong: #6849dc;--accent-soft: #f0ebff;--slate: #2d3a46;--slate-2: #3b4a57;--slate-line: #485563;--ok: #2f9e77;--warn: #b7791f;--bad: #d64560;--radius: 10px;--topbar-h: 52px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;font:400 13px/1.45 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid #927bf0;outline-offset:2px}kbd{font:600 10px var(--font);padding:1px 5px;border-radius:4px;background:#eee9fb;color:var(--ink-2);border:1px solid #ddd5f3}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.muted{color:var(--ink-3)}@media(prefers-reduced-motion:reduce){.spin{animation:none}*{transition:none!important}}.app-shell{height:100dvh;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--line);z-index:5}.topbar-left,.top-actions{display:flex;align-items:center;gap:10px;min-width:0}.brand{display:flex;align-items:center;gap:9px;border:0;background:none;font:800 16px var(--font-display);letter-spacing:-.5px;padding:0}.brand b{color:var(--accent)}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:#fff;background:linear-gradient(145deg,#886af0,#6847d8);box-shadow:0 3px 8px #7959e533}.searchbox{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:#9690a7;width:240px}.searchbox input{border:0;outline:none;width:100%;min-width:0;background:transparent}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#f7dec8;color:#805b42;font-weight:700}.menu-btn{display:none}.layout{flex:1;min-height:0;display:flex}.sidebar{width:216px;flex:none;display:flex;flex-direction:column;padding:18px 12px 14px;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto}.side-label{font-size:10px;letter-spacing:1.2px;font-weight:700;color:#a19aaf;padding:0 10px 8px}.side-label.recent{margin-top:22px}.sidebar nav,.recent-projects{display:grid;gap:2px}.nav-item,.recent-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:8px;text-align:left;background:transparent;color:#777187}.nav-item:hover,.recent-item:hover{background:#f7f5fc}.nav-item.active{background:var(--accent-soft);color:#704fdf;font-weight:600}.recent-item.chosen{background:#f8f6fd;color:#5943b5}.nav-count{margin-left:auto;font-size:10px;color:#a39bb6}.project-dot,.status-dot{width:7px;height:7px;border-radius:50%;background:#a18be9;flex:none}.dot-1{background:#72c9a7}.dot-2{background:#efb283}.local-tag{margin-left:auto;font-size:9px;color:#a39bb6}.sidebar-bottom{margin-top:auto;padding-top:16px}.status-card{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #eee8ff;border-radius:10px;background:#f8f6ff;color:var(--accent)}.status-card div{display:grid;flex:1;min-width:0}.status-card b{color:#49405f;font-size:12px}.status-card small{color:#8d869f;font-size:10px}.status-dot{background:#c7c0d3}.status-dot.online{background:#58bf99}.tagline{margin:14px 8px 0;color:#827a99;font-size:11px;line-height:1.8}.main-content{flex:1;min-width:0;overflow:auto}.main-content.is-workspace{overflow:hidden;position:relative}.scrim{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e8e3f0;border-radius:8px;padding:8px 12px;font-weight:600;white-space:nowrap;background:var(--surface);color:var(--ink-2);transition:border-color .15s,background .15s}.button:hover:not(:disabled){border-color:#c9baf5}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-strong)}.button.sm{padding:6px 10px;font-size:12px}.icon-btn{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--ink-2)}.icon-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.icon-btn.filled{background:var(--accent-soft);color:var(--accent)}.count-pill{padding:1px 6px;border-radius:6px;background:#f2edff;color:#7658df;font-size:10px}.pill{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600}.pill.ok{background:#e5f6ee;color:#25805f}.pill.warn{background:#fff4dc;color:var(--warn)}.page{padding:26px clamp(16px,3vw,40px);max-width:1200px;margin:0 auto}.page-heading h1{font:800 26px var(--font-display);letter-spacing:-1px;margin:0}.page-heading p{color:var(--ink-3);margin:6px 0 0}.eyebrow{font-size:9px;letter-spacing:1.3px;color:#9078e8;font-weight:700;margin-bottom:8px}.create-project{display:flex;gap:8px;margin:22px 0}.create-project input,.add-task input{flex:1;min-width:0;border:1px solid #e9e4f0;border-radius:8px;padding:9px 11px;outline:none;background:var(--surface)}.create-project input:focus,.add-task input:focus{border-color:#a894f0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:20px}.project-card,.template-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:13px;color:var(--ink);transition:border-color .15s,transform .15s}.project-card:hover,.template-card:hover{border-color:#bbaaf2;transform:translateY(-2px)}.card-art{width:100%;height:100px;border-radius:8px;display:grid;place-items:center;margin-bottom:12px;color:#7b5be5;background:#f0eaff}.art-1,.tint-mint{background:#e5f6ee;color:#399773}.art-2,.tint-peach{background:#fff0e5;color:#bd8048}.art-3,.tint-blue{background:#eaf1ff;color:#507bc5}.tint-yellow{background:#fff6d9;color:#a98a34}.project-card small{display:flex;align-items:center;gap:4px;color:var(--ink-3);font-size:11px;margin-top:6px}.template-card p{font-size:11px;color:var(--ink-3);margin:5px 0 12px}.template-card>span{font-size:11px;color:var(--accent);margin-top:auto}.panel{border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:16px;margin-top:18px;max-width:760px}.settings-panel h3{margin:0 0 4px;font-size:14px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #f0edf5}.setting-row>span:first-child{display:grid;gap:3px}.setting-row small{color:var(--ink-3);font-size:11px}.setting-row input[type=checkbox],.task-row input{accent-color:var(--accent);width:16px;height:16px}.shortcuts{margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2px 24px}.shortcuts div{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px solid #f4f1f8}.shortcuts dt{flex:none;min-width:120px}.shortcuts dd{margin:0;color:var(--ink-2)}.about-panel{display:flex;gap:12px;color:var(--accent)}.about-panel b{color:var(--ink)}.about-panel p{margin:3px 0;color:var(--ink-3)}.about-panel small{color:#a09aaf}.workspace{position:relative;height:100%}.board{position:relative;height:100%;width:100%;background:#fff;overflow:hidden}.board-top{position:absolute;z-index:20;top:10px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none}.board-top>*{pointer-events:auto}.board-top h1{margin:0;font:700 14px var(--font-display);padding:7px 12px;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px #3d2b6210}.board-top-actions{display:flex;align-items:center;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px #3d2b6210}.save-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:600;max-width:260px}.save-pill .save-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-pill.ok{color:#25805f;background:#e9f7f1}.save-pill.busy{color:var(--ink-2);background:#f4f1fa}.save-pill.warn{color:var(--warn);background:#fff4dc}.save-pill.bad{color:var(--bad);background:#fde8ec}.save-pill button{border:0;background:none;color:inherit;text-decoration:underline;padding:0;font-weight:700}.banner{position:absolute;z-index:21;top:56px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#fde8ec;color:#8f2b3f;border:1px solid #f5c2cc;border-radius:var(--radius);box-shadow:0 4px 14px #3d2b6218}.banner button{border:1px solid #e9a8b5;background:#fff;border-radius:6px;padding:3px 9px;font-weight:600}.empty-hint,.place-hint{position:absolute;z-index:10;left:50%;transform:translate(-50%);pointer-events:none;text-align:center;color:var(--ink-3)}.empty-hint{bottom:96px;display:grid;gap:3px;padding:10px 16px;background:#ffffffe6;border:1px solid var(--line);border-radius:12px;max-width:min(420px,80%)}.empty-hint b{color:var(--ink);font-family:var(--font-display)}.place-hint{bottom:18px;padding:6px 12px;background:var(--slate);color:#e9edf2;border-radius:8px;font-size:12px}.place-hint kbd{background:#3b4a57;color:#fff;border-color:#53616e}.tasks-drawer{position:absolute;z-index:24;top:58px;right:12px;bottom:12px;width:min(320px,calc(100% - 24px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #3d2b6224;padding:12px}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.task-list{flex:1;overflow-y:auto}.task-row{display:flex;align-items:center;gap:10px;min-height:38px;border-top:1px solid #f2eff6}.task-done{text-decoration:line-through;color:#aaa4b6}.add-task{display:flex;gap:6px;border-top:1px solid #f2eff6;padding-top:10px}.tb-wrap{position:absolute;z-index:25;left:12px;top:56px;bottom:116px;display:flex;align-items:flex-start;pointer-events:none}.toolbar{pointer-events:auto;max-height:100%;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:6px;padding:6px;background:var(--slate);border:1px solid #455462;border-radius:12px;box-shadow:0 8px 24px #11182733}.toolbar::-webkit-scrollbar{display:none}.tb-group{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;border-bottom:1px solid var(--slate-line)}.tb-group:last-child{padding-bottom:0;border-bottom:0}.tb-btn{width:34px;height:34px;flex:none;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#f2f5f8;transition:background .12s}.tb-btn:hover{background:#40515f}.tb-btn.active{background:#8b3ff0;color:#fff;box-shadow:0 2px 7px #170c2d40}.tb-btn:focus-visible{outline-color:#c9b6ff}.tb-tip{position:fixed;z-index:60;transform:translateY(-50%);pointer-events:none;display:flex;align-items:center;gap:8px;padding:5px 9px;background:#1c242c;color:#f4f6fa;border-radius:7px;font-size:12px;white-space:nowrap;box-shadow:0 4px 12px #0003}.tb-tip kbd{background:#3b4a57;color:#fff;border-color:#53616e}.flyout{position:absolute;z-index:30;left:52px;width:236px;max-height:min(460px,100%);display:flex;flex-direction:column;pointer-events:auto;background:var(--slate);color:#f4f6fa;border:1px solid #455462;border-radius:12px;box-shadow:0 12px 32px #11182750;overflow:hidden}.flyout-wide{width:288px}.flyout-head{display:flex;align-items:center;justify-content:space-between;padding:9px 10px 9px 12px;background:var(--slate-2)}.flyout-close{display:grid;place-items:center;border:0;background:transparent;color:#f4f6fa;padding:4px;border-radius:6px}.flyout-close:hover{background:#4a5b69}.flyout-body{padding:8px;overflow-y:auto}.flyout-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.flyout-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 9px;border:0;border-radius:8px;background:transparent;color:#f4f6fa;font-size:11px}.flyout-item:hover,.flyout-row:hover:not(:disabled),.icon-cell:hover{background:#40515f}.flyout-list{display:grid;gap:2px}.flyout-row{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:#f4f6fa;text-align:left}.flyout-row.with-icon{flex-direction:row;align-items:center;gap:10px}.flyout-row small{color:#a9b6c2;font-size:11px}.flyout-row em{margin-left:auto;font-size:10px;font-style:normal;color:#a9b6c2;background:#3b4a57;padding:1px 6px;border-radius:5px}.flyout-search{width:100%;padding:8px 10px;margin-bottom:8px;background:#24303a;color:#fff;border:1px solid #53616e;border-radius:7px;outline:none}.flyout-search:focus{border-color:#a07cf5}.flyout-hint{margin:8px 4px 2px;color:#a9b6c2;font-size:11px}.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}.icon-cell{display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:7px;background:transparent;color:#f4f6fa}.context-bar{position:absolute;z-index:22;top:56px;left:50%;transform:translate(-50%);display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px;max-width:calc(100% - 150px);padding:5px 8px;background:var(--slate);color:#f4f6fa;border:1px solid #455462;border-radius:11px;box-shadow:0 8px 24px #11182733}.cb-title{font-size:12px;color:#d3dbe3;padding:0 4px}.cb-sep{width:1px;height:20px;background:var(--slate-line)}.cb-swatches{display:flex;gap:4px}.cb-swatch{width:18px;height:18px;border-radius:50%;border:2px solid #ffffff55;padding:0}.cb-swatch.on{border-color:#fff;box-shadow:0 0 0 2px #8b3ff0}.cb-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:28px;height:28px;padding:0 6px;border:0;border-radius:7px;background:transparent;color:#f4f6fa}.cb-btn:hover{background:#40515f}.cb-btn.on{background:#8b3ff0}.cb-btn.danger:hover{background:#a8364b}.cb-seg{display:inline-flex;background:#24303a;border-radius:8px;padding:2px}.cb-seg button{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#dfe6ec;font-size:12px}.cb-seg button.on{background:#8b3ff0;color:#fff}.cb-width{display:block;width:16px;background:currentColor;border-radius:4px}.cb-dash{width:16px;border-top:2px dashed currentColor}.cb-select,.cb-label,.cb-link input{height:28px;background:#24303a;color:#fff;border:1px solid #53616e;border-radius:7px;padding:0 8px;outline:none}.cb-label{width:110px}.cb-num{min-width:22px;text-align:center;font-size:12px}.cb-link{display:flex;align-items:center;gap:4px;flex-basis:100%;justify-content:center}.cb-link input{width:260px;max-width:100%}.cb-link input.bad{border-color:#ef6b83}.node{position:relative;width:100%;height:100%;font-family:var(--font)}.react-flow__node.selected>.node:not(.node-section){outline:2px solid #8b6cf0;outline-offset:4px;border-radius:6px}.et{width:100%;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35;font:inherit;color:inherit;text-align:inherit}.et-placeholder{color:#aaa4b6}.et-input{display:block;height:100%;min-height:1.6em;resize:none;border:1px dashed #9a84ec;background:#ffffffd9;color:var(--ink);outline:none;padding:2px 4px;border-radius:4px;text-align:inherit;cursor:text}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.shape-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--fill);border:2px solid var(--stroke)}.shape-process .shape-bg{border-radius:8px}.shape-terminator .shape-bg{border-radius:999px}.shape-circle .shape-bg{border-radius:50%}.shape-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.shape-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px}.node-shape{cursor:default}.node-sticky{padding:12px;background:#fff2a8;border-radius:3px;box-shadow:0 6px 14px #5b4b0f24,0 1px 2px #5b4b0f26;font-size:14px;color:#3b3414;overflow:hidden}.node-sticky .et{height:100%}.node-text{padding:2px 4px}.node-text .et{min-height:1.4em}.node-section{border:2px dashed #b4a8dc;border-radius:12px;background:color-mix(in srgb,var(--fill) 55%,transparent)}.react-flow__node.selected>.node-section{border-color:#8b6cf0}.section-title{position:absolute;top:8px;left:12px;right:12px;font:700 13px var(--font-display);color:#5b4f84}.node-card{padding:10px 12px;border:1px solid #ded8ee;border-radius:10px;box-shadow:0 4px 12px #38275b12;display:flex;flex-direction:column;gap:4px;overflow:hidden}.card-title{font-weight:700}.card-body{color:var(--ink-2);font-size:12px}.node-link{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid #ded8ee;border-radius:10px;box-shadow:0 4px 12px #38275b12}.link-icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:8px;background:var(--accent-soft);color:var(--accent)}.link-main{flex:1;min-width:0}.link-title{font-weight:600}.link-url{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-open{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;color:var(--accent)}.link-open:hover{background:var(--accent-soft)}.link-badge{position:absolute;top:-9px;right:-9px;z-index:2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 2px 6px #0003}.node-task{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid #ded8ee;border-left:4px solid #b4a8dc;border-radius:8px;box-shadow:0 3px 10px #38275b10}.node-task.status-doing{border-left-color:#d9822b}.node-task.status-done{border-left-color:#4fb48d}.node-task input{accent-color:var(--accent);width:16px;height:16px;flex:none}.task-title{flex:1;font-weight:500}.status-done .task-title{text-decoration:line-through;color:#aaa4b6}.task-status{flex:none;border:0;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:600;background:#f2edff;color:#6a4fd1}.status-doing .task-status{background:#fff0e3;color:#b3631a}.status-done .task-status{background:#e4f6ee;color:#25805f}.node-icon{display:grid;place-items:center}.icon-glyph{width:100%;height:100%}.icon-label{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:80px;text-align:center;color:var(--ink);margin-top:2px}.node-wire{color:#4b4560;font-size:12px}.wire-browser{display:flex;flex-direction:column;background:#fff;border:2px solid #8a8499;border-radius:10px;overflow:hidden}.wire-bar{display:flex;align-items:center;gap:5px;height:30px;padding:0 10px;background:#f1eff6;border-bottom:2px solid #8a8499}.wire-bar i{width:9px;height:9px;border-radius:50%;border:1.5px solid #8a8499}.wire-url{flex:1;margin-left:8px;padding:1px 8px;background:#fff;border-radius:10px;font-size:11px}.wire-body{flex:1}.wire-mobile{background:#fff;border:2px solid #8a8499;border-radius:22px;position:relative}.wire-notch{position:absolute;top:8px;left:50%;transform:translate(-50%);width:40px;height:5px;border-radius:3px;background:#b8b2c9}.wire-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:4px 10px}.wire-navbar{background:#f1eff6;border:2px solid #8a8499;border-radius:6px}.wire-nav{height:100%;display:flex;align-items:center;gap:14px;padding:0 12px;font-weight:700}.wire-nav>span{height:6px;width:38px;border-radius:3px;background:#b8b2c9}.wire-nav>span:first-of-type{margin-left:auto}.wire-button{background:#8f77ea;border:2px solid #6f56d2;border-radius:8px;color:#fff;font-weight:600}.wire-input{background:#fff;border:2px solid #8a8499;border-radius:6px;color:#8a8499}.wire-input .wire-center{justify-content:flex-start}.wire-image{background:#f6f4fa;border:2px solid #8a8499}.react-flow__node-stroke{pointer-events:none!important}.stroke-svg{overflow:visible;pointer-events:none;display:block}.stroke-hit{fill:none;stroke:transparent;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:pointer}.stroke-line{fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.react-flow__node-stroke.selected .stroke-line{filter:drop-shadow(0 0 3px #8b6cf0)}.react-flow__node-section{pointer-events:all}.node-handle.react-flow__handle{width:10px;height:10px;background:#fff;border:2px solid #8b6cf0;opacity:0;transition:opacity .12s}.react-flow__node:hover .node-handle,.react-flow__node.selected .node-handle,.tool-connector .node-handle{opacity:1}.resizer-handle{width:9px!important;height:9px!important;border-radius:2px!important;background:#fff!important;border:2px solid #7a62d9!important}.resizer-line{border-color:#7a62d9!important}.connect-source>.node{outline:3px solid #8b3ff0!important;outline-offset:4px;border-radius:8px}.draw-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:15;cursor:crosshair;touch-action:none}.draw-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.tool-place .react-flow__pane,.tool-connector .react-flow__node{cursor:crosshair}.tool-pan .react-flow__pane{cursor:grab}.react-flow__edge-path{stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke-width:3;filter:drop-shadow(0 0 3px #8b6cf0aa)}.react-flow__edge-text{font:600 12px var(--font)}.react-flow__controls{box-shadow:0 2px 9px #33244a14;border:1px solid var(--line);border-radius:8px;overflow:hidden}.react-flow__controls-button{background:#fff;border-bottom:1px solid #eee9f4;fill:#71668c}.react-flow__minimap{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:30px}.react-flow__selection{background:#8b6cf014;border:1px solid #8b6cf0}.react-flow__nodesselection-rect{border:1px dashed #8b6cf0;border-radius:6px}.react-flow__attribution{background:transparent;font-size:9px}.toast{position:fixed;z-index:100;bottom:22px;left:50%;transform:translate(-50%);padding:10px 16px;background:#302741;color:#fff;border-radius:9px;box-shadow:0 5px 20px #241b3b40;max-width:90vw}.splash{display:grid;place-items:center;min-height:100vh;color:var(--ink-3)}.auth-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--bg)}.auth-card{display:grid;gap:12px;width:min(400px,100%);padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 40px #3d2b6214}.auth-card h1{margin:6px 0 0;font:700 20px var(--font-display)}.auth-card p{margin:0 0 4px;font-size:13px}.auth-card label{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2)}.auth-card input,.modal input,.modal select{padding:9px 10px;border:1px solid #e2dcee;border-radius:8px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}.auth-card input:focus-visible,.modal input:focus-visible,.modal select:focus-visible,.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-error{padding:8px 10px;border-radius:8px;background:#fde8ec;color:var(--bad);font-size:12.5px}.link-btn{border:0;background:none;color:var(--accent-strong);font:inherit;font-size:13px;text-decoration:underline;padding:4px}.user-menu{display:flex;align-items:center;gap:6px}.small{font-size:12px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:16px;background:#241b3b66}.modal{width:min(520px,100%);max-height:88vh;overflow:auto;padding:20px;background:var(--surface);border-radius:14px;box-shadow:0 16px 60px #241b3b50}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-head h2{margin:0;font:700 17px var(--font-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal h3{margin:16px 0 6px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.share-row{display:flex;gap:6px;margin:10px 0 4px;flex-wrap:wrap}.share-row input{flex:1 1 180px;min-width:0}.member-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.member-list li{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--line)}.member-name{flex:1;min-width:0;display:grid;font-size:13px}.member-name small{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis}.role-tag{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--accent-soft);border-radius:6px;padding:3px 8px}.fresh-link{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;margin:6px 0;background:#e9f7f1;border-radius:8px}.fresh-link input{flex:1 1 220px;min-width:0;font-size:12px}.presence-bar{display:flex;align-items:center;list-style:none;margin:0 4px 0 0;padding:0}.presence-dot,.presence-more{display:grid;place-items:center;width:24px;height:24px;margin-left:-6px;border:2px solid #fff;border-radius:50%;color:#fff;font-size:11px;font-weight:700}.presence-more{background:var(--ink-3)}.readonly-badge{padding:3px 8px;border-radius:7px;background:#eaf2ff;color:#3466b4;font-size:11px;font-weight:700}.cursors-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;pointer-events:none;overflow:hidden}.remote-cursor{position:absolute;top:0;left:0;transition:transform 90ms linear;will-change:transform}.remote-cursor span{position:absolute;left:14px;top:12px;padding:1px 6px;border-radius:6px;color:#fff;font-size:11px;font-weight:600;white-space:nowrap}@media(prefers-reduced-motion:reduce){.remote-cursor{transition:none}}.node-error{margin-top:4px;padding:4px 8px;border-radius:6px;background:#fde8ec;color:var(--bad);font-size:11.5px;line-height:1.3}.node-hint{position:absolute;bottom:4px;left:8px;font-size:10.5px;color:var(--warn)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.inline-field{display:block;min-width:20px}.inline-field.editable{cursor:text}.node-table{display:flex;flex-direction:column;width:100%;height:100%;background:#fff;border:1px solid #d9d2ea;border-radius:8px;overflow:visible}.table-scroll{flex:1;overflow:auto;border-radius:8px}.node-table table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}.node-table td{border:1px solid #ece8f5;padding:0;position:relative}.node-table td.col-active,.node-table tr.row-active td{background:#faf8ff}.cell-input{width:100%;height:100%;min-height:32px;padding:4px 8px;border:0;background:transparent;font:inherit;font-size:13px;color:var(--ink);outline:none}.cell-input.is-header{font-weight:700;background:#f3efff}.cell-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.table-tools{position:absolute;left:0;top:-34px;display:flex;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 10px #3d2b6218;z-index:5}.table-tools button{display:inline-flex;align-items:center;gap:2px;padding:3px 7px;border:0;border-radius:5px;background:transparent;font-size:11.5px;font-weight:600;color:var(--ink-2)}.table-tools button:hover:not(:disabled){background:var(--accent-soft)}.table-tools button:disabled{opacity:.4}.node-component{width:100%;height:100%;padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid #ddd6ee;border-radius:10px;font-size:13px;overflow:hidden}.node-component h4{margin:0;font:700 16px var(--font-display)}.node-component p{margin:0;color:var(--ink-2)}.c-btn{align-self:flex-start;padding:6px 14px;border-radius:7px;background:var(--accent);color:#fff;font-weight:600;font-size:12.5px}.c-btn.full{align-self:stretch;text-align:center}.c-btn .eti,.c-btn *{color:inherit}.c-navbar,.c-footer,.c-alert{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px}.c-navbar{background:#f3efff}.c-footer{background:#faf9fd;font-size:12px;color:var(--ink-2)}.c-alert{background:#fff4dc;border-color:#f1d9a0}.c-alert .c-btn{background:#b7791f}.c-links{color:var(--ink-2);white-space:pre-wrap}.c-hero{background:linear-gradient(135deg,#f3efff,#e7f0ff);justify-content:center}.c-hero h4{font-size:22px}.c-input{padding:8px 10px;border:1px solid #e2dcee;border-radius:7px;color:var(--ink-3);background:#fff}.c-pre{white-space:pre-wrap;color:var(--ink-2);flex:1}.c-pricing-card{border-color:#c9baf5}.c-pricing-card h4{color:var(--accent-strong)}.c-stat-card{justify-content:center;text-align:center;background:#e4f6ee;border-color:#bfe5d5}.c-big{font:800 30px var(--font-display)}.c-muted{color:var(--ink-2)}.c-dot{width:28px;height:28px;border-radius:8px;background:#e7f0ff;border:2px solid #5b8bd8}.node-file{display:flex;align-items:center;gap:10px;width:100%;height:100%;padding:10px 12px;background:#fff;border:1px solid #ddd6ee;border-radius:10px}.file-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:var(--accent-soft);color:var(--accent-strong);flex:none}.file-main{flex:1;min-width:0}.file-name{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:11.5px;color:var(--ink-3)}.file-actions{display:flex;gap:4px;align-items:center;flex:none}.node-image{width:100%;height:100%;position:relative;border-radius:8px;overflow:visible;background:transparent}.node-image img{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.media-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;padding:12px;border:2px dashed #d3c9ee;border-radius:10px;background:#fcfbff;color:var(--ink-3);font-size:12.5px;text-align:center}.media-actions{position:absolute;left:50%;bottom:-38px;transform:translate(-50%);display:flex;gap:6px;z-index:5}.node-video{width:100%;height:100%;position:relative;background:#1d1830;border-radius:10px;overflow:visible}.video-frame{position:relative;width:100%;height:100%;border-radius:10px;overflow:hidden}.video-frame iframe,.video-frame video{width:100%;height:100%;border:0;display:block;background:#000}.video-shield{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.video-form{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;width:100%}.video-form input{flex:1 1 140px;min-width:0;padding:7px 9px;border:1px solid #e2dcee;border-radius:7px;font:inherit;font-size:12.5px}.video-caption{position:absolute;left:0;right:0;bottom:-24px;font-size:12px;color:var(--ink-2);text-align:center}.node-timer{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;background:#fff;border:1px solid #ddd6ee;border-radius:12px;position:relative}.node-timer.status-running{border-color:#8f77ea;box-shadow:0 0 0 3px #f0ebff}.node-timer.is-done{border-color:var(--bad);background:#fff5f7}.timer-label{font-size:12px;font-weight:600;color:var(--ink-3);text-align:center}.timer-time,.timer-edit{font:800 34px var(--font-display);letter-spacing:.02em;color:var(--ink);background:none;border:0;padding:0;text-align:center;width:100%;font-variant-numeric:tabular-nums}.timer-time:disabled{cursor:default;opacity:1}.timer-edit{border-bottom:2px solid var(--accent);outline:none}.timer-done{color:var(--bad);font-weight:700;font-size:12px}.timer-controls{display:flex;gap:6px}.node-voting{width:100%;height:100%;display:flex;flex-direction:column;gap:8px;padding:12px;background:#fff;border:1px solid #ddd6ee;border-radius:12px;overflow:auto;position:relative}.node-voting.is-closed{background:#faf9fd}.vote-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.vote-question{font:700 15px var(--font-display)}.vote-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;background:#eee;color:var(--ink-2)}.vote-options{list-style:none;margin:0;padding:0;display:grid;gap:6px}.vote-options li{display:flex;align-items:center;gap:6px}.vote-btn{position:relative;flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border:1px solid #e2dcee;border-radius:8px;background:#fff;overflow:hidden;font:inherit;font-size:13px;text-align:left}.vote-btn:not(:disabled):hover{border-color:#b9a6f4}.vote-btn:disabled{cursor:default;opacity:1}.vote-options li.mine .vote-btn{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.vote-bar{position:absolute;left:0;top:0;bottom:0;background:var(--accent-soft);transition:width .25s ease;z-index:0}.vote-label,.vote-count{position:relative;z-index:1}.vote-count{font-weight:700;font-variant-numeric:tabular-nums}.vote-edit{display:inline-flex;align-items:center;gap:2px;font-size:11px;color:var(--ink-3)}.vote-edit button{border:0;background:none;color:var(--ink-3);padding:3px;border-radius:5px}.vote-edit button:disabled{opacity:.35}.vote-admin{display:flex;gap:6px;flex-wrap:wrap}.vote-foot{margin-top:auto;font-size:11px;color:var(--ink-3)}@media(prefers-reduced-motion:reduce){.vote-bar{transition:none}}@media(max-width:900px){.menu-btn{display:grid}.sidebar{position:fixed;z-index:50;top:var(--topbar-h);bottom:0;left:0;transform:translate(-100%);transition:transform .2s;box-shadow:4px 0 24px #0003}.sidebar.open{transform:none}.scrim{display:block;position:fixed;z-index:40;inset:var(--topbar-h) 0 0 0;background:#1c242c55}.searchbox{width:180px}}@media(max-width:700px){.topbar{padding:0 10px}.hide-mobile{display:none}.searchbox{width:34px;padding:7px;justify-content:center;border-color:transparent}.searchbox input{width:0;opacity:0}.brand>span:last-child{display:none}.board-top h1{max-width:38%;font-size:13px}.save-pill{max-width:120px}.tb-wrap{left:50%;right:auto;top:auto;bottom:10px;transform:translate(-50%);max-width:calc(100% - 20px);align-items:flex-end}.toolbar{flex-direction:row;max-height:none;max-width:100%;overflow-x:auto;overflow-y:hidden;gap:4px}.tb-group{flex-direction:row;padding:0 6px 0 0;border-bottom:0;border-right:1px solid var(--slate-line)}.tb-group:last-child{padding-right:0;border-right:0}.flyout,.flyout-wide{left:50%;top:auto!important;bottom:54px;transform:translate(-50%);width:min(320px,calc(100vw - 20px));max-height:55dvh}.tb-tip{display:none}.react-flow__controls{margin-bottom:70px}.react-flow__minimap{display:none}.context-bar{top:52px;max-width:calc(100% - 16px)}.cb-link input{width:180px}.place-hint{bottom:70px}.empty-hint{bottom:80px}.tasks-drawer{left:12px;width:auto}.create-project{flex-wrap:wrap}.create-project input{flex-basis:100%}}@media(hover:none){.tb-tip{display:none}}@media(max-height:640px)and (min-width:701px){.tb-btn{width:30px;height:30px}.tb-group{padding-bottom:4px}.tb-wrap{top:52px;bottom:100px}}.sync-hint{font-size:11px;color:var(--warn);padding:0 6px;white-space:nowrap}@media(max-width:720px){.sync-hint{display:none}}.vote-rename{width:110px;padding:3px 6px;border:1px solid var(--accent);border-radius:6px;font:inherit;font-size:12px}.mind-add-controls{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;pointer-events:none}.mind-add-dot{position:absolute;display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid #8f77ea;border-radius:50%;color:#d8ccff;background:#29243a;cursor:pointer;opacity:0;pointer-events:auto;transform:scale(calc(.86 * var(--dot-k, 1)));transition:opacity .12s ease,transform .12s ease,background .12s ease}.react-flow__node:hover .mind-add-dot,.react-flow__node.selected .mind-add-dot,.mind-add-dot:focus-visible{opacity:1;transform:scale(var(--dot-k, 1))}.mind-add-dot:hover{background:#7a62d9;color:#fff}.mind-add-left{left:-10px;top:calc(50% - 10px)}.mind-add-right,.mind-add-side{right:-10px;top:calc(50% - 10px)}.mind-add-bottom{left:calc(50% - 10px);bottom:-10px}.board.mind-relayout .react-flow__node{transition:transform .28s cubic-bezier(.2,.7,.2,1)}.board.mind-relayout .react-flow__edge-path{transition:d .28s cubic-bezier(.2,.7,.2,1)}.react-flow__node.mind-detaching{opacity:.88;filter:drop-shadow(0 6px 14px rgba(122,98,217,.45))}.react-flow__node.mind-detaching .node{outline:2px dashed #b9a6ff;outline-offset:3px;border-radius:14px}.react-flow__edge.mind-edge-detaching .react-flow__edge-path{stroke-dasharray:5 6;opacity:.35}.react-flow__node.mind-drop-target .node{outline:3px solid #4fd1a1;outline-offset:3px;border-radius:14px;box-shadow:0 0 0 6px #4fd1a138}.react-flow__node.mind-drop-target.mind-drop-sibling .node{outline:none;box-shadow:0 8px 0 -1px #4fd1a1}.react-flow__node.mind-drop-invalid .node{outline:3px solid #ef5b73;outline-offset:3px;border-radius:14px;cursor:not-allowed}.mind-drag-hint{bottom:64px}.mind-add-dot{-webkit-user-select:none;user-select:none;touch-action:none}.react-flow__node.dragging .mind-add-dot,.react-flow__node.mind-detaching .mind-add-dot{opacity:0}.mind-draft{position:absolute;left:0;top:0;z-index:1000;pointer-events:all}.mind-draft-input{width:100%;height:100%;box-sizing:border-box;padding:0 14px;text-align:center;font:inherit;font-size:15px;border:2px dashed #8f77ea;border-radius:999px;background:#fff;color:#1f1d2b;outline:none;box-shadow:0 0 0 4px #8f77ea33}.mind-draft-input::placeholder{color:#9a95b3}.zoom-panel.react-flow__panel{display:flex;align-items:center;gap:2px;margin:0 0 12px 12px;padding:4px;background:#fff;border:1px solid #e3def2;border-radius:12px;box-shadow:0 4px 14px #281e501f}.zoom-btn,.zoom-readout{display:grid;place-items:center;height:30px;min-width:30px;padding:0 6px;border:0;border-radius:8px;background:transparent;color:#3b3558;cursor:pointer;font:inherit}.zoom-readout{min-width:52px;font-size:13px;font-variant-numeric:tabular-nums;font-weight:600}.zoom-btn:hover,.zoom-readout:hover{background:#f1edff;color:#5b43c7}.zoom-btn:focus-visible,.zoom-readout:focus-visible{outline:2px solid #8f77ea;outline-offset:1px}.zoom-sep{width:1px;height:18px;margin:0 4px;background:#e3def2}.zoom-btn:disabled{opacity:.4;cursor:default;background:transparent;color:#3b3558}.mind-snap-line{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:900}.mind-snap-line path{fill:none;stroke:#4fd1a1;stroke-width:2.5;stroke-dasharray:7 6;stroke-linecap:round;animation:mind-snap-dash .6s linear infinite}@keyframes mind-snap-dash{to{stroke-dashoffset:-26}}@media(prefers-reduced-motion:reduce){.mind-snap-line path{animation:none}}.side-toggle{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center}.recent-row{display:flex;align-items:center;gap:4px;min-width:0;border-radius:8px}.recent-row.chosen{background:#f8f6fd}.recent-row .recent-item{flex:1;min-width:0}.rename-trigger{border:0;background:transparent;color:var(--ink-3);border-radius:5px;padding:5px;cursor:pointer;opacity:.25}.recent-row:hover .rename-trigger{opacity:1}.rename-trigger:hover,.rename-project-button:hover{color:#6d28d9;background:#f0eaff}.inline-rename,.board-title-input{box-sizing:border-box;min-width:0;width:100%;padding:6px 8px;border:1px solid #7c3aed;border-radius:6px;outline:none;background:#fff;color:#201a32;font:inherit}.project-rename{margin:8px 0}.board-title-pill{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;font-weight:700;padding:6px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;max-width:40vw}.board-title-pill span{color:var(--ink-3);opacity:.55}.board-title-pill:hover span{opacity:1}.board-title-input{width:min(320px,40vw);font-weight:700}.project-card-open{border:0;background:transparent;padding:0;width:100%;cursor:pointer}.project-card-bottom{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.rename-project-button{border:0;border-radius:5px;background:transparent;color:var(--ink-3);cursor:pointer;padding:4px 6px;font-size:11px}@media(min-width:701px){.layout.sidebar-collapsed>.sidebar{display:none}.layout.sidebar-collapsed>.main-content{flex:1 1 100%;width:100%}}
