.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{--bg: #f2f2f7;--elev: #ffffff;--elev-2: #f7f7fa;--fill: rgba(120, 120, 128, .12);--fill-2: rgba(120, 120, 128, .08);--label: #000000;--label-2: rgba(60, 60, 67, .62);--label-3: rgba(60, 60, 67, .32);--sep: rgba(60, 60, 67, .16);--material: rgba(249, 249, 251, .78);--pop: rgba(255, 255, 255, .92);--shadow: 0 12px 40px rgba(0, 0, 0, .14), 0 1px 3px rgba(0, 0, 0, .08);--blue: #007aff;--green: #34c759;--orange: #ff9500;--red: #ff3b30;--indigo: #5856d6;--pink: #ff2d55;--teal: #30b0c7;--purple: #af52de;--gray: #8e8e93;--yellow: #ffcc00;--accent: var(--blue);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", "Microsoft YaHei", sans-serif;--display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Helvetica Neue", sans-serif;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #000000;--elev: #1c1c1e;--elev-2: #2c2c2e;--fill: rgba(120, 120, 128, .24);--fill-2: rgba(120, 120, 128, .16);--label: #ffffff;--label-2: rgba(235, 235, 245, .62);--label-3: rgba(235, 235, 245, .3);--sep: rgba(84, 84, 88, .6);--material: rgba(28, 28, 30, .78);--pop: rgba(44, 44, 46, .94);--shadow: 0 12px 40px rgba(0, 0, 0, .5);--blue: #0a84ff;--green: #30d158;--orange: #ff9f0a;--red: #ff453a;--indigo: #5e5ce6;--pink: #ff375f;--teal: #40c8e0;--purple: #bf5af2;--gray: #98989d;--yellow: #ffd60a;color-scheme:dark}}:root[data-theme=dark]{--bg: #000000;--elev: #1c1c1e;--elev-2: #2c2c2e;--fill: rgba(120, 120, 128, .24);--fill-2: rgba(120, 120, 128, .16);--label: #ffffff;--label-2: rgba(235, 235, 245, .62);--label-3: rgba(235, 235, 245, .3);--sep: rgba(84, 84, 88, .6);--material: rgba(28, 28, 30, .78);--pop: rgba(44, 44, 46, .94);--shadow: 0 12px 40px rgba(0, 0, 0, .5);--blue: #0a84ff;--green: #30d158;--orange: #ff9f0a;--red: #ff453a;--indigo: #5e5ce6;--pink: #ff375f;--teal: #40c8e0;--purple: #bf5af2;--gray: #98989d;--yellow: #ffd60a;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--label);font:15px/1.47 var(--font);-webkit-font-smoothing:antialiased;letter-spacing:-.005em}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{-webkit-tap-highlight-color:transparent}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.nav{position:sticky;top:0;z-index:20;background:var(--material);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid var(--sep);padding-top:env(safe-area-inset-top,0px)}.nav-inner{max-width:1120px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.large-title{font:700 26px/1.15 var(--display);letter-spacing:-.02em}.nav-sub{color:var(--label-2);font-size:13px}.spacer{flex:1}.pill{font-size:12px;font-weight:500;padding:3px 10px;border-radius:999px;background:var(--fill);color:var(--label-2);white-space:nowrap}.pill.ok{color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent)}.pill.warn{color:var(--orange);background:color-mix(in srgb,var(--orange) 14%,transparent)}.pill.err{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.app{max-width:1120px;margin:0 auto;padding:8px 16px calc(40px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px}.sec-head{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;margin:20px 4px 0;min-height:28px}.app>.sec-head:first-child{margin-top:6px}.sec-title{margin:0;font:600 17px/1.3 var(--display);letter-spacing:-.01em;color:var(--label);border:0;background:none;padding:0;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}button.sec-title{cursor:pointer}.sec-title .chev{display:inline-block;font-size:19px;font-weight:400;line-height:1;color:var(--label-3);transition:transform .2s var(--ease)}.sec-title[aria-expanded=true] .chev{transform:rotate(90deg)}.sec-meta{font-size:13px;color:var(--label-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}.sec-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.sec-actions .btn.plain{font-size:15px;font-weight:400;padding:2px 4px}.sec-actions .btn.filled{font-size:13px;padding:4px 12px}.group{background:var(--elev);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.hint{font-size:12px;color:var(--label-2)}.eyebrow{font-size:12px;font-weight:600;color:var(--label-2)}.card-title{font:600 16px/1.3 var(--display);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:8px;min-width:0}.sub{font-size:13px;color:var(--label-2)}.sub.warn{color:var(--orange)}.err{color:var(--red);font-size:12px}.divider{height:.5px;background:var(--sep);margin:2px 0}.body-text{white-space:pre-wrap;font-size:14px;color:var(--label-2)}.btn{border:0;border-radius:10px;padding:7px 14px;font-size:14px;font-weight:600;cursor:pointer;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);transition:transform .12s var(--ease),opacity .12s;white-space:nowrap}.btn:active{transform:scale(.97);opacity:.8}.btn.filled,.btn.primary{background:var(--accent);color:#fff}.btn.plain,.btn.ghost{background:transparent;padding-inline:8px;font-weight:500}.btn.gray{background:var(--fill);color:var(--label)}.btn:disabled{opacity:.45;cursor:default}.btn.small{padding:4px 10px;font-size:12px;border-radius:8px}.btn.danger{color:var(--red)}.seg.small button{padding:3px 10px;font-size:12px}.seg{display:inline-flex;background:var(--fill);border-radius:9px;padding:2px;gap:2px}.seg button{border:0;background:transparent;border-radius:7px;padding:4px 12px;font-size:13px;font-weight:500;color:var(--label);cursor:pointer;transition:background .2s var(--ease),box-shadow .2s var(--ease)}.seg button.on{background:var(--elev);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a;font-weight:600}.form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.form input,.form select,.form textarea,.field,select.field{border:0;background:var(--fill-2);border-radius:10px;padding:8px 12px;min-width:0;font-size:14px}.form input[type=text],.form input[type=password]{flex:1 1 200px}.form textarea,textarea.field{width:100%;resize:vertical;min-height:72px;line-height:1.5}.form input:focus,.form select:focus,.form textarea:focus,.field:focus{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:0}.stack{display:flex;flex-direction:column;gap:8px}.stack label{font-size:12px;color:var(--label-2);display:flex;flex-direction:column;gap:4px}.chip{font-size:12px;font-weight:500;padding:2px 8px;border-radius:6px;white-space:nowrap;background:var(--fill);color:var(--label-2)}.chip.done,.chip.equivalent{color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent)}.chip.partial,.chip.postponed{color:var(--orange);background:color-mix(in srgb,var(--orange) 14%,transparent)}.chip.active{color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.chip.dropped{color:var(--label-3);text-decoration:line-through}.chip.gate{color:var(--purple);background:color-mix(in srgb,var(--purple) 12%,transparent)}.panel{background:var(--elev);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.kv{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:start}.kv>.k{color:var(--label-2);font-size:13px;padding-top:2px}.chips{display:flex;flex-wrap:wrap;gap:6px}.list{display:flex;flex-direction:column;min-width:0;background:var(--elev-2);border-radius:10px;overflow:hidden}.rowlink{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border:0;background:none;text-align:left;width:100%;cursor:pointer;font-size:14px;position:relative}.rowlink+.rowlink:before,.list>*+*:before{content:"";position:absolute;left:12px;right:0;top:0;height:.5px;background:var(--sep)}.list>*{position:relative}.rowlink:hover{background:var(--fill-2)}.rowlink .t{min-width:0;overflow-wrap:anywhere;display:flex;align-items:center;gap:8px}.rowlink .d{color:var(--label-2);font-size:12px;font-variant-numeric:tabular-nums;flex:none}.rowlink.dropped .t{color:var(--label-3);text-decoration:line-through}.rowlink .chev{color:var(--label-3);font-size:16px}.list .form{padding:8px 12px}.bar{height:6px;border-radius:3px;background:var(--fill);overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent);border-radius:3px}.history{display:flex;flex-direction:column;gap:8px}.history .h{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;font-size:13px}.history .h .when{color:var(--label-2);font-variant-numeric:tabular-nums}.dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}.tl{display:flex;flex-direction:column;gap:6px;position:relative;--lw: 76px;--gap: 10px}.tl-row{display:grid;grid-template-columns:var(--lw) minmax(0,1fr);gap:var(--gap);align-items:center;min-height:26px}.tl-label{font-size:12px;color:var(--label-2);white-space:nowrap;display:flex;align-items:center;gap:4px;border:0;background:none;padding:0;text-align:left;overflow:hidden;text-overflow:ellipsis}button.tl-label{cursor:pointer;font:inherit;font-size:12px;color:var(--label-2)}button.tl-label:hover{color:var(--label)}.tl-label .count{color:var(--label-3)}button.tl-label .chev{display:inline-block;color:var(--label-3);transition:transform .2s var(--ease);font-size:14px;line-height:1;margin-left:1px}button.tl-label[aria-expanded=true] .chev{transform:rotate(90deg)}.tl-track{position:relative;height:24px;cursor:copy}.tl-track.static{cursor:default}.tl-grid{position:absolute;top:0;bottom:0;left:calc(var(--lw) + var(--gap));right:0;pointer-events:none}.tl-gridline{position:absolute;top:0;bottom:0;width:.5px;background:var(--sep);opacity:.55}.tl-gridline.year{opacity:1;width:1px}.tl-now{position:absolute;top:18px;bottom:-4px;width:1.5px;background:var(--red)}.tl-now:before{content:"";position:absolute;top:-4px;left:-3.5px;width:8px;height:8px;border-radius:50%;background:var(--red)}.tl-axis{position:relative;height:34px}.tl-axis .y{position:absolute;top:0;font-size:12px;font-weight:600;white-space:nowrap}.tl-axis .m{position:absolute;top:18px;font-size:10.5px;color:var(--label-2);white-space:nowrap}.band{position:absolute;top:2px;height:20px;border-radius:6px;font-size:11px;font-weight:500;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap;color:var(--label);background:var(--fill);cursor:pointer;transition:filter .15s,box-shadow .15s}.band:hover{filter:brightness(.97)}.band.c{--c: var(--gray);background:color-mix(in srgb,var(--c) 18%,transparent);color:color-mix(in srgb,var(--c) 70%,var(--label))}.band.c.now{background:color-mix(in srgb,var(--c) 30%,transparent)}.band.plan{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c, var(--gray)) 45%,transparent);background-image:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--c, var(--gray)) 8%,transparent) 6px 12px)}.band.void{background:transparent;box-shadow:inset 0 0 0 1px var(--fill);color:var(--label-3);cursor:default}.band.sel{box-shadow:0 0 0 2px var(--accent)}.band.static{cursor:default}.band-h{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;touch-action:none;z-index:1}.band-h.l{left:0}.band-h.r{right:0}.band-h:after{content:"";position:absolute;top:22%;bottom:22%;left:3px;width:2px;border-radius:1px;background:color-mix(in srgb,var(--c, var(--gray)) 85%,var(--label));opacity:0;transition:opacity .15s}.band:hover .band-h:after{opacity:.55}.band-h:hover:after{opacity:1}.tl-row.multi{align-items:start}.tl-row.multi>.tl-label,.lane-label{align-items:flex-start;line-height:24px}.tl-sticky-axis{position:sticky;top:var(--nav-h, 56px);z-index:6;background:var(--elev);margin:-6px -16px 0;padding:6px 16px 0;box-shadow:0 .5px 0 var(--sep)}.tl-row.sticky-head{position:sticky;top:calc(var(--nav-h, 56px) + 40px);z-index:5;background:color-mix(in srgb,var(--elev) 90%,transparent);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);margin:0 -16px;padding:0 16px}.goals{position:relative;height:44px;cursor:copy}.marker{position:absolute;width:18px;height:18px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:transform .15s var(--ease),opacity .2s}.marker:hover{transform:scale(1.25)}.marker svg{width:15px;height:15px}.marker.sel{box-shadow:0 0 0 2px var(--accent)}.marker.dim,.band.dim{opacity:.18}.tl-sub{display:flex;flex-direction:column;gap:4px;padding:4px 0 6px;animation:drop .22s var(--ease)}.tl-item{position:relative;height:24px;min-width:0}.tl-item .marker{top:3px}.tl-item .txt{position:absolute;top:3px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:18px;cursor:pointer}.tl-item .txt .d{color:var(--label-2);margin-right:6px;font-variant-numeric:tabular-nums}.tl-item .txt.dropped{color:var(--label-3);text-decoration:line-through}.tl-item.undated .txt{color:var(--label-2)}.tl-add{position:absolute;top:2px;font-size:12px;font-weight:600;color:var(--accent);background:none;border:0;cursor:pointer;padding:2px 6px;border-radius:6px;white-space:nowrap}.tl-add:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.tl-add.in-label{position:static;margin-left:-6px;justify-self:start}.tl-sublabel{font-size:11px;color:var(--label-3);padding-left:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-label-pair{display:flex;align-items:center;gap:2px;min-width:0}.tl-label-pair .tl-add{position:static;padding:0 5px;font-size:15px;line-height:18px}button.tl-label.sub-toggle{padding-left:14px;font-size:11px}.caption{font-size:13px;min-height:20px;color:var(--label-2)}.overview{position:relative;display:flex;flex-direction:column;gap:6px;cursor:pointer}.overview .band{cursor:inherit}.win{position:absolute;top:-5px;bottom:-5px;border:2px solid var(--accent);border-radius:7px;cursor:grab;touch-action:none;min-width:10px;background:color-mix(in srgb,var(--accent) 6%,transparent)}.win:active{cursor:grabbing}@keyframes drop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.pop-catch{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.pop{position:fixed;z-index:41;width:min(340px,calc(100vw - 24px));background:var(--pop);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);border-radius:14px;box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:10px;animation:popin .18s var(--ease);max-height:calc(100vh - 24px);overflow:auto}.pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pop-title{font:600 16px/1.3 var(--display);letter-spacing:-.01em}.pop-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.pop .tabs{align-self:flex-start}@keyframes popin{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@media (max-width: 600px){.pop-catch{background:#00000040}.pop{left:0!important;right:0;top:auto!important;bottom:0;width:100%;border-radius:16px 16px 0 0;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));max-height:80vh;animation:sheet .24s var(--ease)}}@keyframes sheet{0%{transform:translateY(30%);opacity:.6}to{transform:none;opacity:1}}.fw-motto{border:0;background:none;color:inherit;padding:6px 12px 2px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;cursor:pointer;border-radius:10px}.fw-motto:hover{background:var(--fill-2)}.fw-motto .m1{font:600 17px/1.3 var(--display);letter-spacing:-.01em}.fw-motto .m2{font-size:14px;color:var(--red);font-weight:600}.fw{display:grid;grid-template-columns:minmax(0,3fr) minmax(200px,1fr);gap:12px}.fw-zone{background:var(--elev);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}.fw-zone h3{margin:0;font-size:12px;font-weight:600;color:var(--label-2)}.fw-wrap .fw-zone{background:transparent;padding:0}.fw-grid{position:relative;display:grid;grid-template-columns:1fr .7fr 1fr;grid-template-rows:auto 64px auto;gap:10px}.fw-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.fw-lines path{fill:none;stroke:var(--label-3);stroke-width:1.5;vector-effect:non-scaling-stroke}.fw-card{position:relative;z-index:1;text-align:left;border:0;border-radius:12px;padding:12px;background:var(--elev-2);cursor:pointer;display:flex;flex-direction:column;gap:6px;min-width:0;transition:transform .15s var(--ease),box-shadow .15s;box-shadow:inset 0 0 0 1px var(--fill-2)}.fw-card:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px var(--fill),0 4px 14px #0000000f}.fw-card.sel{box-shadow:0 0 0 2px var(--c)}.fw-card .name{font:700 16px/1.2 var(--display);display:flex;align-items:center;gap:8px}.fw-card .note{font-size:12px;color:var(--label-2);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.fw-card .stat{font-size:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fw-card .next{font-size:12px;color:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fw-card .meter{height:4px;border-radius:2px;background:var(--fill);overflow:hidden}.fw-card .meter span{display:block;height:100%;background:var(--c)}.fw-me{grid-column:2;grid-row:2;z-index:1;align-self:center;justify-self:center;border-radius:999px;padding:10px 22px;font:700 17px var(--display);background:var(--label);color:var(--elev)}.fw-link{grid-column:3;grid-row:2;align-self:center;justify-self:end;z-index:1;font-size:11px;color:var(--label-2);background:var(--elev);padding:1px 6px;border-radius:6px}.fw-ext{display:flex;flex-direction:column;gap:10px;align-items:stretch}.fw-ext .bridge{font-size:12px;color:var(--red);font-weight:600;display:flex;align-items:center;gap:6px}.fw-ext .item{border-radius:12px;padding:12px;background:var(--elev-2);text-align:center;font-weight:600;box-shadow:inset 0 0 0 1px var(--fill-2)}.fw-ext .outcome{margin-top:auto;text-align:center;font:700 22px/1.2 var(--display);color:var(--red);letter-spacing:.02em}@media (max-width: 760px){.fw{grid-template-columns:1fr}.fw-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.fw-card{grid-column:auto!important;grid-row:auto!important}.fw-lines,.fw-me,.fw-link{display:none}.fw-ext{flex-direction:row;flex-wrap:wrap;align-items:center}.fw-ext .item{flex:1 1 80px}.fw-ext .outcome{margin:0;flex-basis:100%}}@media (max-width: 560px){.tl{--lw: 64px;--gap: 6px}.tl-label .count{display:none}.nav-inner{row-gap:4px}.kv{grid-template-columns:1fr;gap:2px}.history .h{grid-template-columns:1fr;gap:0}.large-title{font-size:22px}.sec-title{font-size:16px}.sec-head{margin-top:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.empty{padding:28px 20px;gap:12px}.empty h2{margin:0;font:600 16px/1.3 var(--display)}.empty p{margin:0;color:var(--label-2);max-width:60ch}.tl-track.plans{height:44px}.plan-name{position:absolute;font-size:11px;font-weight:600;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:color-mix(in srgb,var(--c, var(--gray)) 72%,var(--label));cursor:pointer}.tl-item .txt.head{font-weight:600;color:color-mix(in srgb,var(--c, var(--gray)) 72%,var(--label))}.win-h{position:absolute;top:0;bottom:0;width:14px;cursor:ew-resize;touch-action:none}.win-h.l{left:-8px}.win-h.r{right:-8px}.win-h:after{content:"";position:absolute;top:50%;left:50%;width:4px;height:18px;margin:-9px 0 0 -2px;border-radius:2px;background:var(--accent)}.tl-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:2px 0 4px}.tl-yearbar{border:0;background:var(--fill-2);border-radius:6px;font-size:12px;color:var(--label-2);text-align:left;padding:3px 8px;cursor:pointer;width:100%}.tl-yearbar:hover{background:var(--fill)}.tl-detail{border-top:.5px solid var(--sep);margin:2px -16px 0;padding:12px 16px 0;display:flex;flex-direction:column;gap:12px;min-width:0}.tl-detail-head{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;min-height:28px}.tl-detail-head .seg{margin-left:auto}.tl-detail-toggle{border:0;background:none;padding:0;font:600 15px/1.3 var(--display);color:var(--label);display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}.tl-detail-toggle .chev{display:inline-block;font-size:17px;font-weight:400;line-height:1;color:var(--label-3);transition:transform .2s var(--ease)}.tl-detail-toggle[aria-expanded=true] .chev{transform:rotate(90deg)}.tl-detail-body{animation:drop .22s var(--ease);min-width:0}.tl-detail-body>.panel{padding:0;background:transparent;border-radius:0}.mod{display:flex;flex-direction:column;gap:10px;min-width:0}.seg button.soft{background:color-mix(in srgb,var(--elev) 55%,transparent)}.seg-now{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--red);margin-left:5px;vertical-align:2px}.seg.scroll{max-width:100%;overflow-x:auto;scrollbar-width:none}.seg.scroll::-webkit-scrollbar{display:none}.tl-sub.cover{position:relative;z-index:1;background:var(--elev)}.inline-panel{box-shadow:inset 0 3px 0 var(--c, var(--accent));animation:drop .22s var(--ease)}.seg button{white-space:nowrap}@media (max-width: 560px){.seg button{padding:4px 9px}}.fw-canvas-wrap{padding:10px 6px 6px;gap:4px}.fw-canvas{height:500px;border-radius:10px;overflow:hidden}.fw-canvas.viewing{height:auto;aspect-ratio:1110 / 500;min-height:260px;max-height:640px}.fw-canvas.editing{height:min(680px,78vh);background:var(--elev-2)}.fw-canvas .react-flow{--xy-background-color: transparent;--xy-node-boxshadow-selected: none;--xy-edge-label-color: var(--label);font-family:var(--font)}.fw-canvas.viewing .react-flow__node{cursor:default}.fw-canvas.viewing .react-flow__node-domain{cursor:pointer}.fw-canvas.viewing .react-flow__handle{opacity:0;pointer-events:none}.cv-handle{width:10px!important;height:10px!important;background:var(--accent)!important;border:2px solid var(--elev)!important;opacity:0;transition:opacity .15s}.fw-canvas.editing .react-flow__node:hover .cv-handle,.fw-canvas.editing .react-flow__node.selected .cv-handle{opacity:1}.cv-domain{--c: var(--gray);width:100%;border-radius:12px;padding:12px;background:var(--elev-2);box-shadow:inset 0 0 0 1px var(--fill);display:flex;flex-direction:column;gap:6px;text-align:left}.fw-canvas.viewing .cv-domain{background:var(--elev)}.cv-domain.fill-soft{background:color-mix(in srgb,var(--c) 12%,var(--elev))}.cv-domain.fill-solid{background:color-mix(in srgb,var(--c) 28%,var(--elev))}.cv-domain.sel{box-shadow:0 0 0 2px var(--c)}.cv-domain .name{font:700 16px/1.2 var(--display);display:flex;align-items:center;gap:8px;color:var(--label)}.cv-domain .note{font-size:12px;color:var(--label-2);white-space:pre-line}.cv-domain .meter{height:4px;border-radius:2px;background:var(--fill);overflow:hidden;display:block}.cv-domain .meter span{display:block;height:100%;background:var(--c)}.cv-domain .stat{font-size:12px;color:var(--label-2)}.cv-domain .next{font-size:12px;color:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-me{border-radius:999px;padding:10px 18px;font:700 18px var(--display);background:var(--label);color:var(--elev);text-align:center}.cv-me.sel,.cv-text.sel{box-shadow:0 0 0 2px var(--accent)}.cv-text{--c: var(--label);width:100%;height:100%;border-radius:10px;padding:6px 10px;text-align:center;color:var(--c);line-height:1.3;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.cv-text.fill-soft{background:color-mix(in srgb,var(--c) 10%,var(--elev));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 28%,transparent);color:color-mix(in srgb,var(--c) 80%,var(--label))}.cv-text.fill-solid{background:var(--c);color:#fff}.cv-zone{--c: var(--gray);width:100%;height:100%;border-radius:16px;border:1.5px dashed color-mix(in srgb,var(--c) 55%,transparent);padding:10px 14px;color:color-mix(in srgb,var(--c) 80%,var(--label))}.cv-zone.fill-soft{background:color-mix(in srgb,var(--c) 6%,transparent)}.cv-zone.fill-solid{background:color-mix(in srgb,var(--c) 14%,transparent)}.cv-zone.sel{border-color:var(--accent)}.cv-text-body{display:block;min-width:1em}.cv-input{font:inherit;color:inherit;text-align:inherit;width:100%;border:0;border-radius:6px;background:var(--elev);outline:2px solid var(--accent);resize:none;padding:2px 4px}.cv-resize-line{border-color:var(--accent)!important}.cv-resize-handle{width:9px!important;height:9px!important;background:var(--elev)!important;border:1.5px solid var(--accent)!important;border-radius:2px!important}.cv-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:4px 4px 10px}.cv-toolbar .btn{padding:5px 12px;font-size:13px}.cv-toolbar .seg button{padding:3px 10px;font-size:12px}.cv-sep{width:1px;height:22px;background:var(--sep)}.cv-swatches{display:flex;gap:6px;flex-wrap:wrap}.cv-swatches .sw{width:20px;height:20px;border-radius:50%;border:0;padding:0;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 1px #00000014}.cv-swatches .sw.on{box-shadow:0 0 0 2px var(--elev),0 0 0 4px var(--c)}.fw-canvas .react-flow__controls{box-shadow:var(--shadow);border-radius:10px;overflow:hidden}.fw-canvas .react-flow__controls-button{background:var(--elev);border-bottom:.5px solid var(--sep);fill:var(--label);width:30px;height:30px}.fw-canvas .react-flow__edge.selected .react-flow__edge-path{stroke-width:2.6!important}@media (max-width: 760px){.fw-canvas.editing{height:70vh}.cv-toolbar .hint{display:none}}.nav-titles{display:flex;flex-direction:column;min-width:0}.nav .large-title,.nav .nav-sub{transition:font-size .2s var(--ease),opacity .2s}.nav.compact .nav-inner{padding-block:6px}.nav.compact .large-title{font-size:17px}.nav.compact .nav-sub{font-size:11px}.nav-inner{flex-wrap:nowrap}.sync{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--label-2);white-space:nowrap;min-width:0}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--gray);flex:none}.sync.ok .sync-dot{background:var(--green)}.sync.warn .sync-dot{background:var(--orange)}.sync.warn{color:var(--orange)}.sync.err .sync-dot{background:var(--red)}.sync.err{color:var(--red)}.sync.busy .sync-dot{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.icon-btn{width:34px;height:34px;border-radius:50%;border:0;background:var(--fill);color:var(--label);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.icon-btn.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}@media (max-width: 560px){.sync-text.quiet{display:none}.nav-sub{font-size:12px}}@media (max-width: 760px){.fw-ext{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fw-ext h3,.fw-ext .bridge,.fw-ext .outcome{grid-column:1 / -1}}.cv-zoombar{display:flex;align-items:center;gap:2px;padding:4px;border-radius:12px;background:var(--pop);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:var(--shadow)}.cv-zoombar button{border:0;background:transparent;padding:5px 10px;border-radius:8px;font-size:13px;font-weight:500;color:var(--label);cursor:pointer;white-space:nowrap}.cv-zoombar button:hover{background:var(--fill-2)}.cv-zoombar .pct{min-width:56px;font-variant-numeric:tabular-nums}.seg button:disabled{opacity:.35;cursor:default}.cv-shape{--c: var(--blue);--sw: 1.6px;position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 12px;line-height:1.3;white-space:pre-wrap;color:color-mix(in srgb,var(--c) 70%,var(--label))}.cv-shape.shape-rect,.cv-shape.shape-round,.cv-shape.shape-ellipse{border:var(--sw) solid var(--c)}.cv-shape.shape-round{border-radius:14px}.cv-shape.shape-ellipse{border-radius:50%}.cv-shape.fill-soft:not(.shape-sticky){background:color-mix(in srgb,var(--c) 14%,var(--elev))}.cv-shape.fill-solid:not(.shape-sticky){background:var(--c);color:#fff}.cv-shape.shape-diamond,.cv-shape.shape-triangle,.cv-shape.shape-parallelogram,.cv-shape.shape-hexagon{background:none!important}.cv-shape.shape-triangle{align-items:flex-end;padding-bottom:14%}.cv-shape-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.cv-shape-svg path{stroke:var(--c);stroke-width:var(--sw);fill:transparent;stroke-linejoin:round}.cv-shape.fill-soft .cv-shape-svg path{fill:color-mix(in srgb,var(--c) 14%,var(--elev))}.cv-shape.fill-solid .cv-shape-svg path{fill:var(--c)}.cv-shape.fill-solid.shape-diamond,.cv-shape.fill-solid.shape-triangle,.cv-shape.fill-solid.shape-parallelogram,.cv-shape.fill-solid.shape-hexagon{color:#fff}.cv-shape .cv-text-body,.cv-shape .cv-input{position:relative;z-index:1}.cv-shape.shape-sticky{--c: var(--yellow);border-radius:4px;align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--label);background:color-mix(in srgb,var(--c) 32%,var(--elev));box-shadow:0 8px 18px #0000001f,inset 0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent)}.cv-shape.shape-sticky.fill-solid{background:color-mix(in srgb,var(--c) 55%,var(--elev))}.cv-shape.shape-sticky.fill-none{background:var(--elev)}.cv-shape.sel{outline:2px solid var(--accent);outline-offset:3px}.cv-line{width:100%;height:100%}.cv-line.sel{outline:1px dashed var(--accent);outline-offset:2px}.cv-menu{position:relative}.cv-menu-list{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:160px;max-height:60vh;overflow:auto;padding:6px;border-radius:12px;background:var(--pop);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:var(--shadow);display:flex;flex-direction:column}.cv-menu-list button{text-align:left;border:0;background:none;padding:7px 10px;border-radius:8px;font-size:13px;color:var(--label);cursor:pointer;white-space:nowrap}.cv-menu-list button:hover{background:var(--fill-2)}.task-toggle .chev{display:inline-block;font-size:15px;line-height:1;color:var(--label-3);transition:transform .2s var(--ease)}.task-toggle[aria-expanded=true] .chev{transform:rotate(90deg)}.task-list{display:flex;flex-direction:column;background:var(--elev-2);border-radius:10px;overflow:hidden;min-width:0}.task-row{--c: var(--gray);position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 12px;font-size:14px}.task-row+.task-row:before,.task-group+.task-row:before{content:"";position:absolute;left:44px;right:0;top:0;height:.5px;background:var(--sep)}.task-ring{width:20px;height:20px;border-radius:50%;border:1.8px solid var(--c);background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .1s}.task-ring:hover:not(:disabled){background:color-mix(in srgb,var(--c) 18%,transparent)}.task-ring:active:not(:disabled){transform:scale(.9)}.task-row.done .task-ring{background:var(--c);cursor:default}.task-ring svg{width:14px;height:14px}.task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-row.done .task-title{color:var(--label-3);text-decoration:line-through}.task-day{font-size:12px;color:var(--label-2);white-space:nowrap;font-variant-numeric:tabular-nums}.task-day.overdue{color:var(--red);font-weight:600}.task-plan{border:0;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;background:color-mix(in srgb,var(--c) 16%,transparent);color:color-mix(in srgb,var(--c) 75%,var(--label));max-width:9em;overflow:hidden;text-overflow:ellipsis}.task-dom{font-size:11px;color:var(--label-3);white-space:nowrap}.task-group{font-size:12px;font-weight:600;padding:6px 12px 2px;color:var(--label-2)}.task-group.overdue{color:var(--red)}.task-empty{font-size:13px;color:var(--label-2);padding:10px 12px}.task-toggle{align-self:flex-start;border:0;background:none;padding:8px 12px;font-size:13px;font-weight:500;color:var(--accent);cursor:pointer;display:flex;align-items:center;gap:4px}.quick-add input[type=text]{flex:1 1 200px}.tl-track.exec{height:22px}.ex-lane{height:22px;cursor:pointer;border-radius:6px}.ex-lane:hover{background:var(--fill-2)}.ex-span{position:absolute;top:9px;height:4px;border-radius:2px;background:color-mix(in srgb,var(--c) 22%,transparent);pointer-events:none}.ex-tick{position:absolute;bottom:4px;width:3px;margin-left:-1.5px;border:0;padding:0;border-radius:1.5px;background:var(--c);cursor:pointer}.ex-tick:before{content:"";position:absolute;top:-4px;right:-3px;bottom:-4px;left:-3px}.ex-tick.out{background:var(--label-3)}.ex-tick.out:after{content:"";position:absolute;top:-6px;left:-1px;width:5px;height:5px;border-radius:50%;background:var(--red)}.ex-tick:hover{filter:brightness(1.15);transform:scaleX(1.6)}.ex-pin{position:absolute;top:6px;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;padding:0;border:1.6px solid var(--c);background:var(--elev);cursor:pointer}.ex-pin.late{border-color:var(--red)}.ex-pin:hover{transform:scale(1.3)}.ex-sum{position:absolute;top:4px;font-size:11px;line-height:14px;color:var(--label-2);background:var(--elev);padding:0 4px;border-radius:4px;pointer-events:none}.ex-status{position:absolute;top:4px;font-size:11px;line-height:14px;color:var(--label-3);white-space:nowrap;background:var(--elev);padding-right:4px;display:inline-flex;gap:6px;align-items:center}.ex-fix{border:0;background:none;padding:0;font-size:11px;color:var(--accent);cursor:pointer}button.tl-label.ex-name{color:color-mix(in srgb,var(--c) 72%,var(--label));font-weight:500}.ex-quiet{font-size:11px;color:var(--label-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.exec-empty{position:absolute;left:0;top:3px;font-size:11px;color:var(--label-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.icon-btn.small{width:28px;height:28px}.icon-btn.spin svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.task-group.now{color:var(--accent)}.task-group .g-count{float:right;font-weight:400;color:var(--label-3);font-variant-numeric:tabular-nums}.task-row.compact{padding:6px 12px;font-size:13px;gap:8px;grid-template-columns:18px minmax(0,1fr) auto auto}.task-row.compact .task-ring{width:18px;height:18px}.task-row.compact+.task-row.compact:before{left:38px}.wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.wk-day{border:0;background:var(--elev-2);border-radius:10px;padding:6px 2px 7px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;color:var(--label);font:inherit;min-width:0;transition:background .15s}.wk-day:hover{background:var(--fill)}.wk-day .w{font-size:11px;color:var(--label-2)}.wk-day .n{font:600 18px/1.2 var(--display)}.wk-day .c{font-size:11px;color:var(--label-2);min-height:14px}.wk-day .bar{width:60%;height:3px;border-radius:2px;background:var(--fill);overflow:hidden;margin-top:2px}.wk-day .bar>span{display:block;height:100%;background:var(--green)}.wk-day.today .n,.wk-day.late .c{color:var(--red)}.wk-day.on{background:var(--accent);color:#fff}.wk-day.on .w,.wk-day.on .c,.wk-day.on .n{color:#fff}.wk-day.on .bar{background:#ffffff4d}.wk-day.on .bar>span{background:#fff}.mx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mx-q{--q: var(--gray);background:var(--elev-2);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:inset 0 3px 0 var(--q)}.mx-head{display:flex;align-items:center;gap:8px;padding:10px 12px 4px;font-weight:600;font-size:13px;color:color-mix(in srgb,var(--q) 78%,var(--label))}.mx-head .sub{font-size:11px;font-weight:400}.mx-head .count{margin-left:auto;color:var(--label-3);font-weight:400}.mx-plus{border:0;background:none;color:var(--q);font-size:17px;line-height:1;padding:0 2px;cursor:pointer;border-radius:6px}.mx-plus:hover{background:color-mix(in srgb,var(--q) 14%,transparent)}.mx-add{display:flex;gap:6px;align-items:center;padding:4px 12px 6px;flex-wrap:wrap}.mx-add input{flex:1 1 140px;min-width:0;border:0;background:var(--elev);border-radius:8px;padding:6px 10px;font-size:13px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--q) 40%,transparent)}.mx-add input:focus{outline:2px solid color-mix(in srgb,var(--q) 55%,transparent);outline-offset:0}.mx-list{max-height:260px;overflow:auto;background:transparent;border-radius:0}@media (max-width: 600px){.mx{grid-template-columns:1fr}.wk{gap:3px}.wk-day .n{font-size:16px}}@media (max-width: 560px){.task-row{gap:8px}.task-row .task-dom{display:none}.task-plan{max-width:6em}}
