@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/boards/assets/onest-latin-wght-normal-Dun_Rd-l.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.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{--ink: #1f2320;--ink-2: #3a3f3c;--muted: #6b7176;--faint: #9aa0a6;--line: #e5e7e9;--line-2: #d8dbde;--soft: #f3f4f5;--hover: #eff1f2;--canvas: #f7f7f5;--surface: #ffffff;--page: #f2f3f4;--accent: #3d6ef5;--accent-soft: #e9efff;--danger: #d93a2f;--ok: #2f9e44;--star: #f5b400;--radius: 12px;--shadow: 0 0 0 1px rgba(20, 24, 22, .05), 0 2px 6px rgba(20, 24, 22, .06), 0 10px 28px -8px rgba(20, 24, 22, .16);--shadow-sm: 0 0 0 1px rgba(20, 24, 22, .05), 0 1px 3px rgba(20, 24, 22, .08);--font: "Onest Variable", "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--font);font-size:14px;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,p{margin:0}input,select,textarea{border:1px solid var(--line-2);border-radius:8px;background:#fff;padding:10px 12px;outline:none;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3d6ef526}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.error{color:var(--danger)}.danger{color:var(--danger)!important}.loading{height:100dvh;display:grid;place-items:center;align-content:center;gap:18px;background:var(--canvas);text-align:center}.loading a{text-decoration:underline}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;font-weight:560;white-space:nowrap;transition:background .15s,box-shadow .15s,transform .1s}.primary{background:var(--ink);color:#fff}.primary:hover:not(:disabled){background:#363b37}.primary:active:not(:disabled),.secondary:active:not(:disabled){transform:translateY(1px)}.primary.big{height:48px;font-size:15px}.primary.compact,.secondary.compact{height:34px;padding:0 12px;font-size:13px;border-radius:9px}.primary.danger-fill{background:var(--danger)}.secondary{background:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}.secondary:hover{background:var(--soft)}.text-button{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;padding:4px 0}.text-button:hover{color:var(--ink)}.text-button.link{color:var(--accent);font-weight:520}.icon-button{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:9px;color:var(--ink-2);flex-shrink:0;transition:background .12s,color .12s}.icon-button:hover:not(:disabled){background:var(--hover);color:var(--ink)}.icon-button.active,.icon-button.active:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.icon-button.star-on svg,.star-on{color:var(--star);fill:var(--star)}.with-caret{width:44px}.with-caret .caret{position:absolute;right:3px;bottom:6px;opacity:.6}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%,4px);background:#2b2f2c;color:#fff;font-size:12px;font-weight:500;line-height:1.3;padding:6px 9px;border-radius:7px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s,transform .12s;z-index:300}[data-tip-pos=below]:after{bottom:auto;top:calc(100% + 8px);transform:translate(-50%,-4px)}[data-tip]:hover:after{opacity:1;transform:translate(-50%);transition-delay:.35s}.popover [data-tip]:after,.shapes-panel [data-tip]:after{transition-delay:.15s}.popover-anchor{position:relative;display:inline-flex}.popover{position:absolute;z-index:200;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:6px;min-width:180px;cursor:default}.popover.below{top:calc(100% + 8px)}.popover.above{bottom:calc(100% + 8px)}.popover.align-left{left:0}.popover.align-right{right:0}.popover.align-center{left:50%;transform:translate(-50%)}.menu{min-width:250px;max-height:70vh;overflow:auto}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;text-align:left;font-size:13.5px}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-icon{width:20px;display:grid;place-items:center;color:var(--muted);flex-shrink:0}.menu-icon.wide{width:40px;color:var(--ink-2)}.menu-label{flex:1}.menu-hint{color:var(--faint);font-size:12px}.menu-sep{height:1px;background:var(--line);margin:5px 4px}.menu-title{font-size:12px;color:var(--faint);padding:8px 10px 4px}.popover-title{font-size:12px;color:var(--muted);margin:10px 2px 6px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#1418166b;display:grid;place-items:center;padding:24px;animation:fade .15s}@keyframes fade{0%{opacity:0}}.modal{background:#fff;border-radius:18px;box-shadow:0 30px 80px #00000040;padding:26px;width:min(520px,100%);max-height:90dvh;overflow:auto;display:flex;flex-direction:column;gap:16px}.modal.wide{width:min(980px,100%)}.modal>header{display:flex;align-items:center;justify-content:space-between}.modal>header h2{font-size:21px;font-weight:650}.modal>input{width:100%}.stack-form{display:flex;flex-direction:column;gap:14px}.stack-form label,.form-pop label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.stack-form label input,.stack-form label textarea,.stack-form label select{color:var(--ink)}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.toggle{width:42px;height:24px;border-radius:12px;background:#d5d9dc;position:relative;transition:background .15s;flex-shrink:0}.toggle span{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.toggle.on{background:var(--ink)}.toggle.on span{transform:translate(18px)}.swatches-row{display:flex;gap:6px;margin-bottom:6px}.swatches-row.wrap{flex-wrap:wrap;max-width:250px}.swatch{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f;position:relative;flex-shrink:0}.swatch.selected{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px #fff,0 0 0 4px var(--accent)}.swatch.none{background:linear-gradient(135deg,#fff 45%,#e0453a 46%,#e0453a 54%,#fff 55%)}.swatch.custom{overflow:hidden;background:conic-gradient(#ef4b3f,#f5c400,#47a33a,#1ea7d6,#3d6ef5,#8b5cf6,#e8559a,#ef4b3f);cursor:pointer}.swatch.custom input{opacity:0;width:100%;height:100%;cursor:pointer;padding:0;border:0}.color-grid{padding:4px}.avatar{display:inline-grid;place-items:center;border-radius:50%;background:#ffd84d;color:#1f2320;font-weight:650;flex-shrink:0;box-shadow:0 0 0 2px #fff}.seg{display:flex;background:var(--soft);border-radius:9px;padding:3px;gap:2px}.seg button{flex:1;height:30px;border-radius:7px;font-size:12.5px;padding:0 8px;color:var(--ink-2);display:grid;place-items:center}.seg button:hover{background:#ffffffb3}.seg button.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--ink);font-weight:560}.seg.icons{margin-bottom:6px}.chip{font-size:11px;color:var(--muted);background:var(--soft);padding:2px 8px;border-radius:20px}.auth{min-height:100dvh;display:grid;grid-template-columns:1.25fr 1fr;background:var(--canvas)}.auth-hero{padding:40px 56px;display:flex;flex-direction:column;gap:40px;background-image:radial-gradient(#d6d9d5 1.2px,transparent 1.2px);background-size:24px 24px}.auth-copy{max-width:600px;margin-top:6vh}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}.auth-copy h1{font-size:46px;line-height:1.08;letter-spacing:-.025em;margin:16px 0;font-weight:700}.auth-copy p{font-size:17px;line-height:1.6;color:var(--muted);max-width:520px}.auth-board{max-width:720px;background:#ffffffb3;border-radius:20px;box-shadow:var(--shadow-sm);padding:18px}.auth-board .thumb{width:100%;height:auto;display:block}.auth-panel{display:grid;place-items:center;padding:32px;background:#fff}.auth-form{width:min(400px,100%);display:flex;flex-direction:column;gap:16px}.auth-form h2{font-size:28px;letter-spacing:-.02em;font-weight:680}.auth-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--muted)}.auth-form label input{height:46px;color:var(--ink);font-size:15px}.auth-form .text-button{justify-content:center}.logo{display:block}.logo-word{font-weight:720;letter-spacing:-.03em;line-height:1}.app-icon{display:inline-grid;place-items:center;background:#232623}.dash{display:flex;min-height:100dvh;padding:14px;gap:14px;background:var(--page)}.dash-side{width:250px;flex-shrink:0;background:#fff;border-radius:18px;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:14px;height:calc(100dvh - 28px);box-shadow:var(--shadow-sm)}.dash-logo{padding:2px 10px 24px}.dash-side nav{display:flex;flex-direction:column;gap:2px;overflow:auto}.dash-side nav>button{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-size:14px;color:var(--ink-2);text-align:left}.dash-side nav>button:hover{background:var(--soft)}.dash-side nav>button.selected{background:#eceef0;color:var(--ink);font-weight:580}.dash-side nav>button svg{color:var(--muted)}.dash-side nav>button.sub{padding:8px 12px 8px 42px;font-size:13.5px}.dash-side nav>button small{margin-left:auto;color:var(--faint)}.dash-side .dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.side-group{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 6px 12px;margin-top:6px;color:var(--ink-2)}.side-group span{display:flex;align-items:center;gap:12px;font-size:14px}.side-group span svg{color:var(--muted)}.side-bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}.side-invite{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:13px;color:var(--ink-2);border-radius:10px}.side-invite:hover{background:var(--soft)}.side-user{display:flex;align-items:center;gap:10px;padding:12px 4px 0 8px;border-top:1px solid var(--line)}.side-user>span:not(.avatar){display:flex;flex-direction:column;flex:1;min-width:0}.side-user strong{font-size:13px;font-weight:580;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}.dash-top{background:#fff;border-radius:18px;padding:10px 12px 10px 20px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm)}.dash-search{flex:1;display:flex;align-items:center;gap:10px;color:var(--muted)}.dash-search input{border:0;box-shadow:none!important;padding:8px 0;width:100%;font-size:15px}.dash-actions{display:flex;align-items:center;gap:10px}.split-button{display:inline-flex}.split-button>.primary:first-child{border-radius:10px 0 0 10px}.split-button>.primary.caret{border-radius:0 10px 10px 0;padding:0 10px;margin-left:1px}.dash-templates{background:#fff;border-radius:18px;padding:18px 20px 20px;box-shadow:var(--shadow-sm)}.dash-templates-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}.dash-templates-head h2{font-size:16px;font-weight:640;flex:1}.tpl-strip{display:grid;grid-auto-flow:column;grid-auto-columns:176px;gap:14px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.strip-card{display:flex;flex-direction:column;gap:8px;text-align:left;font-size:13px;font-weight:520;color:var(--ink-2)}.strip-thumb{height:108px;border-radius:12px;background:var(--soft);overflow:hidden;display:grid;place-items:center;transition:box-shadow .15s,transform .15s;padding:6px}.strip-thumb .thumb{width:100%;height:100%}.strip-thumb.blank{color:var(--muted);border:1.5px dashed var(--line-2);background:#fafbfb}.strip-card:hover .strip-thumb{box-shadow:0 0 0 2px var(--accent);transform:translateY(-2px)}.dash-boards{background:#fff;border-radius:18px;padding:20px;box-shadow:var(--shadow-sm);flex:1}.boards-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:16px}.boards-head h1{font-size:22px;font-weight:680;letter-spacing:-.015em;display:flex;align-items:baseline;gap:10px}.boards-head h1 small{font-size:14px;color:var(--faint);font-weight:500}.boards-tools{display:flex;align-items:center;gap:10px}.sort-button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:9px;background:var(--soft);font-size:13px}.view-toggle{margin:0}.view-toggle button{width:36px;flex:none}.board-table-list{display:flex;flex-direction:column}.btl-head,.btl-row{display:grid;grid-template-columns:minmax(260px,2.4fr) 1fr 1.2fr 1fr 48px;align-items:center;gap:16px}.btl-head{font-size:12.5px;color:var(--muted);padding:8px 12px;border-bottom:1px solid var(--line)}.btl-group{font-size:13px;font-weight:640;padding:18px 12px 6px}.btl-row{padding:8px 12px;border-radius:12px;font-size:13.5px}.btl-row:hover{background:var(--soft)}.btl-name{display:flex;align-items:center;gap:12px;min-width:0}.btl-name strong{font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btl-thumb{width:64px;height:42px;border-radius:8px;background:var(--soft);overflow:hidden;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--line)}.btl-owner{display:flex;align-items:center;gap:8px}.board-thumb{width:100%;height:100%;display:grid;place-items:center}.board-thumb .thumb{width:100%;height:100%}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.board-card{position:relative;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.board-card:hover{box-shadow:inset 0 0 0 1px var(--line-2),var(--shadow);transform:translateY(-2px)}.board-card>.board-thumb{height:170px;background:var(--soft);padding:10px}.board-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px;font-size:12.5px}.board-card-body strong{font-size:14px;font-weight:580}.board-card-menu{position:absolute;right:8px;bottom:12px}.board-card-star{position:absolute;top:10px;right:10px}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:12px}.empty-state h3{color:var(--ink);font-size:18px}.pad{padding:20px}.pick-list{display:flex;flex-direction:column;gap:4px}.pick-list button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;text-align:left}.pick-list button:hover{background:var(--soft)}.pick-list button.selected{background:var(--accent-soft);color:var(--accent);font-weight:560}.pick-list .dot{width:10px;height:10px;border-radius:3px}.gallery{position:relative;width:min(1240px,100%);height:min(860px,92dvh);background:#fff;border-radius:22px;box-shadow:0 30px 90px #0000004d;display:grid;grid-template-columns:250px 1fr;overflow:hidden}.gallery-close{position:absolute;top:14px;right:14px;z-index:2;background:var(--soft);border-radius:50%}.gallery-nav{padding:26px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;overflow:auto;background:#fbfbfc}.gallery-nav>button{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:9px 12px;border-radius:10px;font-size:14px;color:var(--ink-2)}.gallery-nav>button:hover{background:var(--soft)}.gallery-nav>button.selected{background:#eceef0;color:var(--ink);font-weight:580}.gallery-nav small{color:var(--faint);font-size:12px}.gallery-nav-title{font-size:12.5px;color:var(--faint);padding:18px 12px 6px}.gallery-main{overflow:auto;padding:26px 34px 34px}.gallery-search{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:12px;padding:0 14px;color:var(--muted);margin:0 48px 8px 0}.gallery-search input{border:0;background:transparent;box-shadow:none!important;height:44px;width:100%;font-size:15px}.gallery-h{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:26px 0 16px}.gallery-h-row{display:flex;align-items:center;justify-content:space-between}.gallery-empty{padding:40px 0}.tpl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 22px}.tpl-card{display:flex;flex-direction:column;gap:8px;text-align:left}.tpl-thumb{height:180px;border-radius:14px;background:var(--soft);overflow:hidden;padding:12px;transition:box-shadow .15s,transform .15s}.tpl-thumb .thumb{width:100%;height:100%}.tpl-card:hover .tpl-thumb{box-shadow:0 0 0 2px var(--accent);transform:translateY(-2px)}.tpl-author{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);margin-top:4px}.tpl-mark{width:22px;height:22px;border-radius:50%;background:#232623;display:grid;place-items:center}.tpl-card strong{font-size:16px;font-weight:640;letter-spacing:-.01em}.tpl-desc{font-size:13px;color:var(--muted);line-height:1.45}.thumb-box{width:100%}.tpl-preview{display:flex;flex-direction:column;gap:16px;height:100%}.tpl-preview-body{display:grid;grid-template-columns:1fr 300px;gap:28px;flex:1;min-height:0}.tpl-preview-thumb{background:var(--soft);border-radius:16px;padding:18px;min-height:0}.tpl-preview-thumb .thumb{width:100%;height:100%}.tpl-preview aside{display:flex;flex-direction:column;gap:12px}.tpl-preview aside h2{font-size:26px;letter-spacing:-.02em}.tpl-preview aside p{line-height:1.55}.thumb.empty{display:grid;place-items:center;color:var(--faint);font-size:30px}.editor{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--canvas);overflow:hidden}.editor .react-flow{background:var(--canvas)}.floating{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);z-index:20}.board-bar{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:2px;padding:6px;height:52px;max-width:calc(50vw - 260px)}.brand-button{width:40px}.board-title{display:flex;flex-direction:column;min-width:90px;max-width:260px;padding:0 8px 0 6px}.board-title>button{font-weight:620;font-size:14.5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:1px 0}.board-title>input{height:26px;padding:2px 6px;font-size:14px;font-weight:600}.save-state{font-size:11px;color:var(--faint);display:flex;align-items:center;gap:3px;white-space:nowrap}.save-state.error{color:var(--danger)}.bar-sep,.tool-sep{width:1px;height:24px;background:var(--line);margin:0 4px;flex-shrink:0}.toolbar-wrap{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:22}.toolbar{display:flex;align-items:center;gap:2px;padding:6px;height:52px}.toolbar .icon-button{width:40px;height:40px}.subbar{display:flex;align-items:center;gap:6px;padding:8px 10px}.subbar .swatch{width:28px;height:28px;border-radius:8px}.subbar .swatch.selected{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px #fff,0 0 0 4px var(--accent)}.subbar-btn{width:44px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--ink-2)}.subbar-btn:hover{background:var(--hover)}.subbar-btn.active{background:var(--accent-soft);color:var(--accent)}.size-dot{width:32px;height:32px;border-radius:8px;display:grid;place-items:center}.size-dot span{display:block;border-radius:50%;background:var(--ink-2)}.size-dot:hover{background:var(--hover)}.size-dot.active{background:var(--accent-soft)}.size-dot.active span{background:var(--accent)}.rainbow{width:28px;height:28px;border-radius:8px}.board-actions{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;padding:6px;height:52px}.presence{display:flex;padding:0 6px}.presence .avatar{margin-left:-6px}.presence .avatar:first-child{margin-left:0}.presence-more{font-size:12px;color:var(--muted);padding-left:6px;align-self:center}.access-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:0 10px}.board-actions .primary.compact{height:38px;padding:0 14px}.zoom-bar{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:2px;padding:5px;height:48px}.zoom-value{min-width:54px;height:36px;border-radius:8px;font-size:13px;font-weight:560;font-variant-numeric:tabular-nums}.zoom-value:hover{background:var(--hover)}.help-button{background:var(--ink);color:#fff!important;border-radius:50%;width:34px;height:34px;margin-left:4px}.help-button:hover{background:#3a3f3c!important}.pole-minimap{bottom:72px!important;right:12px!important;margin:0!important;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);width:220px!important;height:140px!important}.pole-minimap svg{width:220px;height:140px}.toast{position:absolute;bottom:76px;left:50%;transform:translate(-50%);background:#2b2f2c;color:#fff;padding:11px 18px;border-radius:10px;font-size:13px;z-index:60;box-shadow:var(--shadow);animation:fade .15s;max-width:90vw}.sync-error{position:absolute;top:76px;left:50%;transform:translate(-50%);background:#fdecea;color:#a32b21;padding:10px 16px;border-radius:10px;font-size:13px;z-index:60;max-width:560px;text-align:center}.marquee{position:absolute;border:1px solid var(--accent);background:#3d6ef514;z-index:30;pointer-events:none}.tool-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;cursor:crosshair;touch-action:none}.tool-laser .tool-overlay{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='10' cy='10' r='5' fill='%23ff3b30'/%3E%3C/svg%3E") 10 10,crosshair}.tool-eraser .tool-overlay{cursor:none}.draft-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9}.tool-hand .react-flow__pane{cursor:grab}.tool-connector .react-flow__handle{opacity:1!important}.readonly .react-flow__handle{display:none}.shapes-panel{position:absolute;left:12px;top:76px;bottom:12px;width:304px;display:flex;flex-direction:column;z-index:21}.shapes-panel>header{display:flex;align-items:center;justify-content:space-between;padding:14px 10px 6px 18px}.shapes-panel>header h2{font-size:18px;font-weight:680}.panel-search{display:flex;align-items:center;gap:8px;margin:6px 14px 8px;padding:0 12px;background:var(--soft);border-radius:10px;color:var(--muted)}.panel-search input{border:0;background:transparent;box-shadow:none!important;height:40px;width:100%;padding:0}.panel-scroll{overflow-y:auto;padding:0 10px 14px 14px;flex:1;scrollbar-width:thin}.panel-section{border-top:1px solid var(--line);padding:4px 0 8px}.panel-section:first-child{border-top:0}.section-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 4px 8px}.section-head h3{font-size:15px;font-weight:640}.section-head svg{color:var(--faint);transition:transform .15s}.section-head svg.flip{transform:rotate(180deg)}.panel-group h4,.panel-section>h4{font-size:13.5px;font-weight:600;margin:10px 4px 6px;color:var(--ink-2)}.panel-subgroup h5{font-size:12.5px;font-weight:500;color:var(--muted);margin:8px 4px 4px}.palette-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}.palette-grid.connectors{grid-template-columns:repeat(5,1fr)}.palette-item{height:44px;border-radius:9px;display:grid;place-items:center;color:var(--ink-2);cursor:grab}.palette-item:hover{background:var(--hover)}.palette-item.active{background:var(--accent-soft)}.palette-item .shape-preview{overflow:hidden}.panel-empty{padding:16px 6px;font-size:13px;line-height:1.5}.selection-toolbar{position:absolute;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:5px;height:46px;z-index:25;white-space:nowrap}.ctx-btn{height:36px;min-width:34px;padding:0 7px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--ink-2)}.ctx-btn:hover{background:var(--hover)}.ctx-btn.active{background:var(--accent-soft);color:var(--accent)}.ctx-btn.wide{padding:0 8px}.ctx-text{font-size:13px;font-weight:520}.ctx-note{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:0 8px}.ctx-sep{width:1px;height:22px;background:var(--line);margin:0 3px}.ctx-range{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);padding:0 6px}.ctx-range input{width:110px;padding:0;accent-color:var(--accent)}.fill-chip{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000026}.fill-chip.none{background:linear-gradient(135deg,#fff 45%,#e0453a 46%,#e0453a 54%,#fff 55%)}.stroke-chip{width:20px;height:20px;border-radius:50%;border:3px solid}.stroke-chip.none{border-color:#d0d4d7;border-style:dashed}.text-chip{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;font-weight:750;font-size:14px}.color-pop{padding:10px}.opacity-row{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);margin-top:8px}.opacity-row input{padding:0;accent-color:var(--accent)}.size-pop{min-width:150px;max-height:360px}.align-pop{min-width:150px;padding:8px}.arrange-pop{min-width:170px;padding:8px}.kind-grid,.head-grid{display:grid;grid-template-columns:repeat(6,44px);gap:2px;padding:4px}.head-grid{grid-template-columns:repeat(4,48px)}.form-pop{width:290px;padding:12px;display:flex;flex-direction:column;gap:10px}.form-pop input{color:var(--ink)}.preset-pop{min-width:290px;max-height:420px}.search-pop{width:340px;padding:8px}.search-pop .panel-search{margin:0 0 6px}.search-results{max-height:360px;overflow:auto;display:flex;flex-direction:column}.search-results button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border-radius:8px;text-align:left}.search-results button:hover{background:var(--hover)}.search-results small{font-size:11px;color:var(--faint)}.search-results span{font-size:13px;overflow:hidden;text-overflow:ellipsis;max-width:100%;white-space:nowrap}.search-results p{padding:10px}.share-modal{width:min(560px,100%)}.invite-row{display:flex;gap:8px;align-items:center}.invite-row>input,.invite-input{flex:1}.invite-input{position:relative}.invite-input input{width:100%;height:42px}.suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:4px;z-index:5}.suggest button{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:8px;text-align:left}.suggest button:hover{background:var(--hover)}.suggest span:not(.avatar){display:flex;flex-direction:column;font-size:13px}.suggest small{color:var(--muted)}.role-button,.link-role{display:inline-flex;align-items:center;gap:4px;height:42px;padding:0 10px;border-radius:9px;font-size:13.5px;background:var(--soft);white-space:nowrap}.link-role{background:none;color:var(--accent);height:30px}.members{display:flex;flex-direction:column;gap:4px}.members-title{font-size:12.5px;color:var(--muted);margin-bottom:4px}.member{display:flex;align-items:center;gap:12px;padding:6px 0}.member>span:not(.avatar){flex:1;display:flex;flex-direction:column;font-size:13.5px}.member small{color:var(--muted);font-size:12px}.member em{font-style:normal;font-size:13px;color:var(--ink-2);padding:0 10px}.member .role-button{height:32px;background:none;color:var(--accent)}.share-section{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:12px}.share-line{display:flex;align-items:center;justify-content:space-between}.share-line h3{font-size:17px;font-weight:650}.link-box{display:flex;align-items:center;gap:4px;background:var(--soft);border-radius:10px;padding:3px 3px 3px 12px}.link-box input{flex:1;border:0;background:transparent;box-shadow:none!important;font-size:13px;color:var(--muted);padding:8px 0}.share-option{display:flex;align-items:center;gap:10px;font-size:13.5px}.share-option>svg{color:var(--accent);flex-shrink:0}.share-option>span{flex:1}.versions-modal{width:min(600px,100%)}.version-list{display:flex;flex-direction:column;gap:4px;max-height:50vh;overflow:auto}.version{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:10px}.version:hover{background:var(--soft)}.version>svg{color:var(--muted)}.version>span{flex:1;display:flex;flex-direction:column;gap:2px;font-size:13.5px}.version small{color:var(--muted);font-size:12px}.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.help-grid h3{font-size:15px;margin-bottom:10px}.help-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--line)}.help-row kbd{font-family:inherit;color:var(--muted);text-align:right}.help-modal>p{line-height:1.55}.react-flow__node-shape{font-family:var(--font)}.pole-node{position:relative;width:100%;height:100%}.shape-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none}.node-text{position:absolute;display:flex;flex-direction:column;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35;pointer-events:none;-webkit-user-select:none;user-select:none}.node-text-inner{width:100%}.node-text.tight{hyphens:auto;-webkit-hyphens:auto}.node-text strong{font-weight:680}.node-placeholder{color:var(--faint)}.label-below{overflow:visible;text-shadow:0 0 3px var(--canvas),0 0 3px var(--canvas),0 0 2px var(--canvas)}.label-top{overflow:visible}.node-text.editing{pointer-events:auto;overflow:visible;z-index:6}.node-edit{width:100%;min-height:1.35em;outline:none;border:0;background:transparent;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;caret-color:var(--accent);user-select:text;-webkit-user-select:text}.note-body{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;box-shadow:0 1px 1px #0000000f,0 8px 14px -8px #00000047}.note-author{position:absolute;left:12px;bottom:8px;font-size:11px;color:#00000073}.node-text+.node-link,.node-link{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;z-index:4;box-shadow:var(--shadow-sm)}.card-body{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid;border-radius:10px;box-shadow:0 1px 2px #0000000d,0 4px 10px -4px #0000001a;overflow:hidden;padding:11px 12px 38px 20px}.card-accent{position:absolute;left:0;top:0;bottom:0;width:6px}.card-title{font-size:14.5px;font-weight:640;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-text{font-size:12.5px;color:var(--muted);margin-top:4px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.card-meta{position:absolute;left:20px;right:10px;bottom:9px;display:flex;align-items:center;gap:8px;font-size:11.5px}.card-tag{padding:2px 8px;border-radius:6px;font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.card-due{color:var(--muted)}.card-owner{margin-left:auto;width:24px;height:24px;border-radius:50%;background:#e9ecef;display:grid;place-items:center;font-weight:650;font-size:10px;color:var(--ink-2)}.board-table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed;background:#fff}.board-table td{border:1px solid var(--table-line);padding:0;vertical-align:middle;position:relative}.board-table tr.head td{background:var(--table-head);font-weight:650}.board-table .cell{padding:6px 10px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35;max-height:100%;overflow:hidden}.board-table textarea{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:0;padding:6px 10px;resize:none;outline:2px solid var(--accent);box-shadow:none!important;line-height:1.35;font-size:inherit;z-index:3}.node-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.node-image.empty{display:grid;place-items:center;background:var(--soft);color:var(--muted);font-size:12px}.frame-title{position:absolute;left:2px;top:-28px;font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:move;padding:2px 4px;border-radius:4px}.frame-title:hover{color:var(--ink);background:#fffc}.frame-title input{height:26px;padding:2px 6px;font-size:14px}.frame-body{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid;border-radius:6px;box-shadow:0 1px 3px #0000000d;cursor:default}.icon-bg{position:absolute;top:0;right:0;bottom:0;left:0}.icon-svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.compartments{position:absolute;top:0;right:0;bottom:0;left:0;border-style:solid;border-radius:4px;background:#fff;display:flex;flex-direction:column;overflow:hidden}.comp-head{padding:8px 10px;text-align:center;border-bottom:inherit;border-bottom-style:solid;border-bottom-width:1.5px;border-color:inherit}.comp-name{font-weight:700;font-size:1.05em}.stereotype{font-size:.85em;font-style:italic;opacity:.75}.comp-block{border-top:1px solid;padding:6px 12px;line-height:1.55}.comp-block:first-of-type{border-top:0}.comp-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.er-row{display:grid;grid-template-columns:44px 1fr auto;gap:8px;align-items:baseline;white-space:nowrap}.er-key{font-size:.75em;font-weight:750;color:#b7791f}.er-name{overflow:hidden;text-overflow:ellipsis}.er-type{color:var(--muted);font-size:.9em}.band-label{position:absolute;left:0;top:0;overflow:hidden}.band-rot{position:absolute;left:0;top:0;transform-origin:0 0}.fragment-op{position:absolute;left:6px;top:3px;font-size:13px;font-weight:700}.fragment-guard{position:absolute;left:12px;top:30px;font-size:13px;font-style:italic;white-space:pre-wrap}.comment-pin{width:36px;height:36px;border-radius:50% 50% 50% 4px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;box-shadow:var(--shadow);position:relative}.comment-pin.resolved{background:#9aa0a6}.comment-pin em{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:var(--accent);font-style:normal;font-size:10px;display:grid;place-items:center;padding:0 4px}.comment-card{position:absolute;left:46px;top:-4px;width:300px;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:10px;cursor:default;z-index:5}.comment-msg p{font-size:13.5px;line-height:1.45;margin-top:2px;white-space:pre-wrap}.comment-head{display:flex;align-items:baseline;gap:8px;font-size:13px}.comment-head small{color:var(--faint);font-size:11px}.comment-card textarea{width:100%;resize:vertical;font-size:13px}.comment-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}.node-lock{position:absolute;top:-12px;right:-12px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);display:grid;place-items:center;color:var(--muted)}.pole-node.locked{cursor:default}.react-flow__node.selected .pole-node:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1.5px solid var(--accent);border-radius:3px;pointer-events:none}.react-flow__node-shape .react-flow__handle{width:2px;height:2px;min-width:2px;min-height:2px;background:transparent;border:0;border-radius:0;opacity:0;transition:opacity .12s;z-index:5}.react-flow__node-shape .react-flow__handle:before{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;transform:translate(-50%,-50%);background:#fff;border:2px solid var(--accent);border-radius:50%;box-sizing:border-box;transition:transform .12s,background .12s}.react-flow__node-shape .react-flow__handle:after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%)}.react-flow__node-shape:hover .react-flow__handle,.react-flow__node-shape.selected .react-flow__handle,.react-flow.connecting .react-flow__node-shape .react-flow__handle{opacity:1}.react-flow__node-shape .react-flow__handle:hover:before{transform:translate(-50%,-50%) scale(1.35);background:var(--accent)}.react-flow__node-shape .react-flow__handle.lifeline-handle,.react-flow__node-shape .react-flow__handle.rail-handle{opacity:0}.react-flow__node-shape .react-flow__handle.lifeline-handle:before,.react-flow__node-shape .react-flow__handle.rail-handle:before{width:8px;height:8px;border-width:1.5px}.react-flow__node-shape:hover .react-flow__handle.lifeline-handle,.react-flow__node-shape:hover .react-flow__handle.rail-handle{opacity:.45}.react-flow.connecting .react-flow__handle.lifeline-handle,.react-flow.connecting .react-flow__handle.rail-handle{opacity:1}.react-flow__handle.connectingto:before,.react-flow__handle.valid:before{background:var(--accent)!important}.pole-resize-handle{width:10px!important;height:10px!important;background:#fff!important;border:1.5px solid var(--accent)!important;border-radius:3px!important}.pole-resize-line{border-color:var(--accent)!important}.quick-add{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:#fff;color:var(--accent);box-shadow:0 0 0 1.5px var(--accent),var(--shadow-sm);display:grid;place-items:center;z-index:8;opacity:.85;transition:transform .1s,opacity .1s}.quick-add:hover{transform:translate(-50%,-50%) scale(1.2);opacity:1;background:var(--accent);color:#fff}.react-flow__edge:hover .react-flow__edge-path{filter:drop-shadow(0 0 3px rgba(61,110,245,.45))}.edge-label{position:absolute;background:var(--canvas);padding:2px 7px;border-radius:6px;font-size:12.5px;color:var(--ink-2);pointer-events:all;white-space:pre;font-family:var(--font);line-height:1.35;cursor:pointer}.edge-label.selected{box-shadow:0 0 0 1.5px var(--accent)}.edge-label.above{background:transparent;padding:0 4px}.edge-label input{border:0;padding:0 2px;font-size:12.5px;background:#fff;box-shadow:none!important}.react-flow__connectionline{z-index:40}.react-flow__selection{background:#3d6ef514!important;border:1px solid var(--accent)!important}.react-flow__nodesselection-rect{background:transparent!important;border:1px dashed rgba(61,110,245,.6)!important}.react-flow__edgeupdater{cursor:move}@media(max-width:1280px){.board-bar{max-width:calc(50vw - 250px)}.board-actions .presence,.board-actions .icon-button:nth-child(2){display:none}.tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.toolbar-wrap{top:72px}.board-bar{max-width:calc(100vw - 260px)}.shapes-panel{top:136px}.dash-side{width:210px}.btl-head,.btl-row{grid-template-columns:minmax(200px,2fr) 1fr 1fr 48px}.btl-head span:nth-child(2),.btl-row>span:nth-child(2){display:none}}@media(max-width:760px){.auth{grid-template-columns:1fr}.auth-hero{display:none}.dash{padding:0;gap:0;flex-direction:column}.dash-side{width:auto;height:auto;position:static;border-radius:0;flex-direction:row;align-items:center;padding:10px 12px;overflow-x:auto}.dash-side nav{flex-direction:row}.dash-side nav>button{font-size:0;gap:0;padding:10px}.dash-logo{padding:0 10px 0 0}.side-group,.dash-side nav>button.sub,.side-bottom .side-invite,.side-user>span:not(.avatar){display:none}.side-bottom{margin:0 0 0 auto}.side-user{border:0;padding:0}.dash-main{padding:12px}.dash-top{flex-wrap:wrap}.dash-actions .secondary,.dash-actions>.avatar{display:none}.btl-head{display:none}.btl-row{grid-template-columns:1fr 48px}.btl-row>span:nth-child(2),.btl-row>span:nth-child(3),.btl-row>span:nth-child(4){display:none}.gallery{grid-template-columns:1fr}.gallery-nav{display:none}.gallery-main{padding:20px 16px}.tpl-grid,.tpl-preview-body,.help-grid{grid-template-columns:1fr}.board-bar{left:8px;top:8px;max-width:calc(100vw - 120px)}.board-bar .icon-button:nth-last-child(-n+3),.board-bar .bar-sep{display:none}.toolbar-wrap{top:auto;bottom:8px;left:8px;right:8px;transform:none}.toolbar{overflow-x:auto;max-width:100%}.board-actions{top:8px;right:8px}.board-actions>.icon-button{display:none}.board-actions .primary.compact{font-size:0;gap:0;width:38px;padding:0}.zoom-bar{bottom:70px;right:8px}.zoom-bar .icon-button:first-child{display:none}.shapes-panel{left:8px;right:8px;width:auto;top:68px;bottom:70px}.selection-toolbar{max-width:calc(100vw - 16px);overflow-x:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.panel-search input:focus-visible,.dash-search input:focus-visible,.gallery-search input:focus-visible,.link-box input:focus-visible{outline:none}.panel-search:focus-within,.gallery-search:focus-within{box-shadow:0 0 0 2px #3d6ef559}.popover-anchor:has(>.popover)>[data-tip]:after,.popover-anchor:has(>.popover) [data-tip]:not(.popover [data-tip]):after{display:none}.board-bar,.board-actions{z-index:24}.selection-toolbar{z-index:23}.sel-multi .react-flow__node-shape.selected .react-flow__handle{opacity:0}.sel-multi .react-flow__node-shape.selected:hover .react-flow__handle{opacity:1}@media(max-width:1100px){.tpl-preview-body{grid-template-columns:1fr}.tpl-preview-thumb{height:380px}}.toolbar .icon-button:focus-visible,.subbar button:focus-visible,.board-bar .icon-button:focus-visible,.board-actions .icon-button:focus-visible,.zoom-bar button:focus-visible{outline:none}
