@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600;700&display=swap";.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--bg-0:#0b0b0d;--bg-1:#15161a;--bg-2:#1c1d22;--bg-3:#25262c;--fg-0:#c7c7cc;--fg-1:#7a7b82;--fg-2:#4a4c54;--fg-3:#2f3038;--line-1:#2a2c33;--line-2:#353740;--rgb-r:#ff2a2a;--rgb-g:#19e37a;--rgb-b:#2a6cff;--accent:#9b7bff;--accent-soft:#6b5bb8;--lilas:#c8aaff;--syn-red:#e5484d;--syn-pink:#ff2d55;--syn-green:#4cc38a;--syn-yellow:#e2b341;--syn-cyan:#5bc8d7;--syn-orange:#ff6b35;--syn-blue:#5b9cf6;--danger:var(--syn-red);--success:var(--syn-green);--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-reading:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:32px;--fs-3xl:44px;--fs-4xl:64px;--lh-tight:1.15;--lh-snug:1.35;--lh-base:1.55;--lh-loose:1.7;--tracking-tight:-.01em;--tracking-base:0;--tracking-wide:.08em;--tracking-nav:.2em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--radius-0:0px;--radius-1:4px;--radius-2:8px;--radius-3:12px;--radius-pill:999px;--shadow-0:none;--shadow-1:0 1px 0 #0009;--shadow-inner:inset 0 1px 0 #ffffff08;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--dur-micro:.12s;--dur-state:.24s;--dur-loop:1.2s}*{box-sizing:border-box}html,body,#root{background:var(--bg-0);height:100%;color:var(--fg-0);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;overflow:hidden}::selection{color:var(--fg-0);background:#9b7bff4d}button{color:var(--fg-0);border:1px solid var(--line-1);border-radius:var(--radius-1);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);background:0 0;padding:6px 12px}button:hover{background:var(--bg-2);border-color:var(--line-2)}button:active{background:var(--bg-1)}button.icon-btn{color:var(--fg-1);border:1px solid #0000;justify-content:center;align-items:center;padding:6px;display:inline-flex}button.icon-btn:hover{color:var(--fg-0);background:var(--bg-2);border-color:var(--line-1)}button.icon-btn.danger{color:var(--fg-2)}button.icon-btn.danger:hover{color:var(--danger);background:#e5484d14;border-color:#e5484d4d}input:not([type=checkbox]):not([type=radio]),textarea,select{font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--bg-2);color:var(--fg-0);border:1px solid var(--line-1);border-radius:var(--radius-1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;width:100%;padding:6px 8px}input:focus,textarea:focus,select:focus{border-color:var(--fg-0)}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}input.input-empty{opacity:.35}textarea{resize:vertical;line-height:var(--lh-snug)}textarea::-webkit-resizer{background:var(--bg-3)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-3);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--line-2);background-clip:padding-box}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex}.toolbar{background:var(--bg-0);border-bottom:1px solid var(--line-1);flex:none;align-items:center;gap:16px;height:48px;padding:0 16px;display:flex}.toolbar-title{align-items:center;gap:4px;display:flex}.toolbar-title-text{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-0);cursor:text;border-radius:var(--radius-1);transition:border-color var(--dur-micro);white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;max-width:400px;padding:3px 8px;font-weight:600;overflow:hidden}.toolbar-title-text:hover{border-color:var(--line-2)}.toolbar-title-input{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-0);background:var(--bg-2);border:1px solid var(--accent-soft);border-radius:var(--radius-1);outline:none;width:320px;padding:3px 8px}.toolbar .brand{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-0);align-items:center;gap:10px;display:flex}.toolbar .actions{gap:8px;display:flex}.action-group{display:flex}.action-group button{border-right-width:0;border-radius:0}.action-group button:first-child{border-radius:var(--radius-1) 0 0 var(--radius-1)}.action-group button:last-child{border-radius:0 var(--radius-1) var(--radius-1) 0;border-right-width:1px}.toolbar-right{align-items:center;gap:10px;margin-left:auto;display:flex}.toolbar-avatar-wrap{margin-left:var(--sp-1);align-items:center;display:flex;position:relative}.toolbar-avatar-wrap:hover .toolbar-avatar-menu{opacity:1;pointer-events:all}.toolbar-avatar{border-radius:var(--radius-pill);border:1px solid var(--line-2);object-fit:cover;cursor:pointer;width:24px;height:24px}.toolbar-avatar-fallback{border-radius:var(--radius-pill);background:var(--bg-3);border:1px solid var(--line-2);cursor:pointer;width:24px;height:24px;font-family:var(--font-mono);color:var(--fg-1);justify-content:center;align-items:center;font-size:10px;display:flex}.toolbar-avatar-menu{opacity:0;pointer-events:none;min-width:140px;transition:opacity var(--dur-state) var(--ease-out);z-index:200;background:0 0;flex-direction:column;padding-top:8px;display:flex;position:absolute;top:100%;right:0}.toolbar-avatar-menu-inner{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-2);padding:var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex}.toolbar-avatar-name{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);padding:2px var(--sp-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.toolbar-avatar-logout{text-align:left;cursor:pointer;width:100%;padding:5px var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--syn-red);border-radius:var(--radius-1);transition:background var(--dur-micro);background:0 0;border:none}.toolbar-avatar-logout:hover{background:#e5484d14}.toolbar-search input{background:var(--bg-1);border:1px solid var(--line-1);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--radius-1);outline:none;width:220px;padding:4px 10px}.toolbar-search input::placeholder{color:var(--fg-2)}.toolbar-search input:focus{border-color:var(--fg-0)}.help-wrap{position:relative}.help-btn{border:1px solid var(--line-2);background:var(--bg-2);width:22px;height:22px;color:var(--fg-2);font-family:var(--font-mono);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;display:flex}.help-btn:hover{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-3)}.help-popover{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-2);font-family:var(--font-mono);color:var(--fg-1);white-space:nowrap;z-index:100;flex-direction:column;gap:6px;padding:10px 14px;font-size:11px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.help-popover kbd{background:var(--bg-3);border:1px solid var(--line-2);color:var(--fg-0);border-radius:3px;padding:1px 5px;font-size:10px}.help-section-title{letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);padding-bottom:2px;font-size:9px}.help-divider{border:none;border-top:1px solid var(--line-1);margin:2px 0}.help-legend{flex-direction:column;gap:4px;display:flex}.help-legend-row{align-items:center;gap:8px;display:flex}.help-legend-icon{flex-shrink:0;align-items:center;width:16px;display:flex}.help-legend-label{color:var(--fg-0);font-size:11px}.main{flex:1 1 0;min-height:0;display:flex;position:relative}.canvas-wrap{background:var(--bg-0);flex:1 1 0;min-width:0;position:relative}.zoom-bar{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-pill);box-shadow:var(--shadow-1);flex-direction:column;align-items:center;gap:6px;padding:10px 6px;display:flex}.zoom-btn{font-family:var(--font-mono);color:var(--fg-1);cursor:pointer;width:auto;transition:color var(--dur-micro);background:0 0;border:none;padding:2px 0;font-size:14px;font-weight:600;line-height:1}.zoom-btn:hover{color:var(--fg-0)}.zoom-track{background:var(--line-1);border-radius:var(--radius-pill);cursor:pointer;flex-direction:column;justify-content:flex-end;width:3px;height:64px;display:flex;position:relative;overflow:hidden}.zoom-fill{background:var(--fg-2);border-radius:var(--radius-pill);width:100%;transition:height 60ms linear}.zoom-pct{font-family:var(--font-mono);color:var(--fg-1);writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.05em;font-size:10px;transform:rotate(180deg)}.zoom-divider{background:var(--line-1);width:18px;height:1px}.zoom-icon-btn{color:var(--fg-1);cursor:pointer;transition:color var(--dur-micro);background:0 0;border:none;justify-content:center;align-items:center;padding:1px 0;display:flex}.zoom-icon-btn:hover{color:var(--fg-0)}@keyframes slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-out-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes node-select{0%{transform:scale(1)}45%{transform:scale(1.011)}to{transform:scale(1)}}@keyframes pop-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes tab-in{0%{opacity:0;transform:translateY(6px)}to{transform:translateY(0)}}.left-sidebar{z-index:20;background:var(--bg-1);border-right:1px solid var(--line-1);min-width:200px;max-width:600px;animation:slide-in-left var(--dur-state) var(--ease-out) both;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:visible;box-shadow:2px 0 12px #0006}.left-sidebar.exiting{animation:slide-out-left var(--dur-state) var(--ease-out) both}.sidebar-resizer{cursor:col-resize;z-index:10;width:6px;height:100%;position:absolute;top:0;right:-3px}.sidebar-resizer:after{content:"";width:1px;height:100%;transition:background var(--dur-micro);background:0 0;position:absolute;top:0;left:3px}.sidebar-resizer:hover:after{background:var(--fg-0)}.sidebar-tabs{border-bottom:1px solid var(--line-1);background:var(--bg-0);flex:none;display:flex}.sidebar-tabs .tab{color:var(--fg-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-nav);text-transform:uppercase;cursor:pointer;transition:color var(--dur-micro), background var(--dur-micro), border-color var(--dur-micro);background:0 0;border:0;border-bottom:1px solid #0000;border-radius:0;flex:1;padding:12px 16px}.sidebar-tabs .tab:hover{color:var(--fg-0);background:var(--bg-1)}.sidebar-tabs .tab.active{color:var(--fg-0);border-bottom-color:var(--accent);background:var(--bg-1)}.sidebar-collapse-btn{z-index:21;background:var(--bg-2);border:1px solid var(--line-1);border-radius:0 var(--radius-1) var(--radius-1) 0;width:20px;height:36px;color:var(--fg-1);cursor:pointer;transition:color var(--dur-micro), background var(--dur-micro);border-left:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:-20px;transform:translateY(-50%)}.sidebar-collapse-btn:hover{color:var(--fg-0);background:var(--bg-3)}.sidebar-expand-btn{z-index:21;background:var(--bg-2);border:1px solid var(--line-1);border-radius:0 var(--radius-1) var(--radius-1) 0;width:20px;height:36px;color:var(--fg-1);cursor:pointer;transition:color var(--dur-micro), background var(--dur-micro), opacity var(--dur-state) var(--ease-out), transform var(--dur-state) var(--ease-out);opacity:1;border-left:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)translate(0)}.sidebar-expand-btn.hidden{opacity:0;pointer-events:none;transform:translateY(-50%)translate(-10px)}.sidebar-expand-btn:hover{color:var(--fg-0);background:var(--bg-3)}.sidebar-body{flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.tab-panel{min-height:0;animation:tab-in .18s var(--ease-out) both;flex-direction:column;flex:1 1 0;display:flex}.timeline{flex-direction:column;flex:1 1 0;gap:8px;min-height:0;padding:12px 12px 16px 28px;display:flex;position:relative;overflow-y:auto}.tl-event{background:color-mix(in srgb, var(--bg-0) 35%, var(--bg-1));border:1px solid var(--line-1);border-radius:var(--radius-2);cursor:pointer;transition:border-color var(--dur-micro), background var(--dur-micro);animation:tab-in .18s var(--ease-out) both;z-index:1;flex-direction:column;gap:4px;padding:10px 12px;display:flex;position:relative}.tl-event:before{content:"";background:var(--bg-1);border:1.5px solid var(--line-2);z-index:1;border-radius:50%;width:9px;height:9px;position:absolute;top:14px;left:-19px}.tl-event.kind-attack:before{border-color:var(--syn-red)}.tl-event.kind-response:before{border-color:var(--syn-cyan)}.tl-event.kind-info:before{border-color:var(--fg-2)}.tl-event.kind-detection:before{border-color:var(--syn-orange)}.tl-event:not(:last-child):after{content:"";background:repeating-linear-gradient(to bottom, var(--line-2) 0px, var(--line-2) 4px, transparent 4px, transparent 10px);z-index:0;width:1px;height:calc(100% - 1px);position:absolute;top:23px;left:-15px}.tl-event:last-child:after{content:"";background:repeating-linear-gradient(to bottom, var(--line-2) 0px, var(--line-2) 4px, transparent 4px, transparent 10px);z-index:0;width:1px;position:absolute;top:23px;bottom:-1px;left:-15px}.tl-arrow{pointer-events:none;height:0;margin-top:-8px;position:relative}.tl-arrow:before{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:7px solid var(--line-2);z-index:2;width:0;height:0;position:absolute;top:18px;left:-18px}.tl-event:hover{border-color:var(--line-2)}.tl-event.expanded{background:var(--bg-2);border-color:var(--line-2)}.tl-event .tl-head{flex-direction:column;gap:2px;display:flex}.tl-meta-row{align-items:center;gap:8px;display:flex}.tl-event .tl-time{font-family:var(--font-mono);font-size:var(--fs-xs);color:color-mix(in srgb, var(--accent) 60%, var(--fg-1));flex-shrink:0}.tl-event .tl-title{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-0);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tl-event.expanded .tl-title{white-space:normal;overflow:visible}.sev-badge{font-family:var(--font-mono);letter-spacing:0;border-radius:var(--radius-pill);border:1px solid;flex-shrink:0;padding:2px 6px;font-size:10px}.sev-badge.info{color:#6fa8dc;background:#6fa8dc14;border-color:#6fa8dc40}.sev-badge.low{color:var(--syn-green);background:#4cc38a14;border-color:#4cc38a40}.sev-badge.medium{color:var(--syn-yellow);background:#e2b34114;border-color:#e2b34140}.sev-badge.high{color:#f08c3d;background:#f08c3d14;border-color:#f08c3d40}.sev-badge.critical{color:var(--syn-red);background:#e5484d1a;border-color:#e5484d4d}.kind-badge{font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--radius-pill);border:1px solid;flex-shrink:0;padding:2px 6px;font-size:10px}.kind-badge.attack{color:var(--syn-red);background:#e5484d1f;border-color:#e5484d59}.kind-badge.response{color:var(--syn-cyan);background:#5bc8d71c;border-color:#5bc8d752}.kind-badge.info{color:var(--fg-0);background:#7a7b821a;border-color:#7a7b8247}.kind-badge.detection{color:var(--syn-orange);background:#ff6b351f;border-color:#ff6b3559}.kind-seg-attack.active{color:var(--syn-red);background:#e5484d26;border-color:#e5484d66}.kind-seg-response.active{color:var(--syn-cyan);background:#5bc8d71f;border-color:#5bc8d759}.kind-seg-info.active{color:var(--fg-0);background:#7a7b821f;border-color:#7a7b824d}.kind-seg-detection.active{color:var(--syn-orange);background:#ff6b351f;border-color:#ff6b3566}.tl-detail-wrap{transition:grid-template-rows .22s var(--ease-out);grid-template-rows:0fr;display:grid}.tl-detail-wrap.expanded{grid-template-rows:1fr}.tl-detail-inner{overflow:hidden}.tl-event .tl-detail,.ca-item .tl-detail{border-top:1px solid var(--line-1);flex-direction:column;gap:14px;padding-top:6px;display:flex}.tl-toolbar{border-bottom:1px solid var(--line-1);flex-shrink:0;justify-content:flex-end;align-items:center;gap:2px;padding:6px 12px;display:flex}.tl-view-btn{border-radius:var(--radius-1);width:26px;height:26px;color:var(--fg-1);cursor:pointer;transition:color var(--dur-micro), background var(--dur-micro), border-color var(--dur-micro);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:flex}.tl-view-btn:hover{color:var(--fg-1);background:var(--bg-2)}.tl-view-btn.active{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-2)}.cal-view{flex-direction:column;flex:1 1 0;gap:10px;min-height:0;padding:8px 12px 12px;display:flex;overflow-y:auto}.cal-nav{justify-content:space-between;align-items:center;display:flex}.cal-month{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-1)}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-dow{font-family:var(--font-mono);color:var(--fg-2);text-align:center;letter-spacing:var(--tracking-wide);padding:4px 0 6px;font-size:10px}.cal-cell{aspect-ratio:1;border-radius:var(--radius-1);cursor:pointer;transition:background var(--dur-micro), border-color var(--dur-micro);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.cal-cell.empty{cursor:default;pointer-events:none}.cal-cell:not(.empty):hover{background:var(--bg-2)}.cal-cell.sel{background:var(--bg-2);border-color:var(--line-2)}.cal-cell.today .cal-day-num{color:var(--accent)}.cal-day-num{font-family:var(--font-mono);color:var(--fg-1);font-size:11px;line-height:1}.cal-dots{align-items:center;gap:2px;display:flex}.cal-dot{background:var(--fg-2);border-radius:50%;width:4px;height:4px}.cal-dot.attack{background:var(--syn-red)}.cal-dot.response{background:var(--syn-cyan)}.cal-dot.info{background:var(--fg-2)}.cal-dot.detection{background:var(--syn-orange)}.cal-day-events{border-top:1px solid var(--line-1);flex-direction:column;gap:6px;padding-top:8px;display:flex}.cal-day-events .tl-event:before{display:none}.tl-add{border:1px dashed var(--line-2);color:var(--fg-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;background:0 0;margin:0 12px 12px;padding:10px}.tl-add:hover{color:var(--fg-0);border-color:var(--fg-0);border-style:solid}.notes-pane{background:var(--bg-1);flex-direction:column;flex:1 1 0;min-height:0;display:flex}.notes-meta{border-bottom:1px solid var(--line-1);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-2);justify-content:space-between;align-items:center;padding:10px 24px;display:flex}.notes-meta .title{color:var(--fg-1);letter-spacing:var(--tracking-wide);text-transform:uppercase}.notes-meta .saved{align-items:center;gap:6px;display:flex}.notes-meta .saved .dot{background:var(--syn-green);border-radius:50%;width:6px;height:6px}.notes-meta .saved.saving .dot{background:var(--syn-yellow)}.notes-editor{background:var(--bg-1);min-height:0;color:var(--fg-0);font-family:var(--font-mono);resize:none;width:100%;caret-color:var(--accent);border:0;outline:none;flex:1 1 0;padding:32px 40px;font-size:14px;line-height:1.75}.notes-editor::placeholder{color:var(--fg-2);font-style:italic}.notes-toggle{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);cursor:pointer;background:0 0;padding:2px 7px;font-size:10px}.notes-toggle:hover{color:var(--fg-0);border-color:var(--line-2)}.notes-preview{min-height:0;font-size:14px;line-height:1.75;font-family:var(--font-sans);color:var(--fg-0);flex:1 1 0;padding:32px 40px;overflow-y:auto}.notes-preview h1,.notes-preview h2,.notes-preview h3,.notes-preview h4,.notes-preview h5,.notes-preview h6{font-family:var(--font-mono);letter-spacing:var(--tracking-tight);margin:1.4em 0 .4em}.notes-preview h1{color:var(--accent);font-size:18px}.notes-preview h2{color:var(--syn-cyan);font-size:15px}.notes-preview h3{color:var(--syn-green);font-size:13px}.notes-preview h4{color:var(--syn-yellow);font-size:13px}.notes-preview h5{color:#f08c3d;font-size:13px}.notes-preview h6{color:var(--syn-red);font-size:13px}.notes-preview p{color:var(--fg-0);margin:.5em 0}.notes-preview ul,.notes-preview ol{color:var(--fg-0);margin:.4em 0;padding-left:1.4em}.notes-preview li{margin:.2em 0}.notes-preview strong{color:var(--syn-cyan);font-weight:600}.notes-preview em{color:var(--accent);font-style:italic}.notes-preview del{color:var(--fg-2)}.notes-preview code{font-family:var(--font-mono);background:var(--bg-3);color:#f08c3d;border-radius:3px;padding:1px 5px;font-size:12px}.notes-preview pre{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);padding:12px 16px;overflow-x:auto}.notes-preview pre code{color:var(--fg-0);background:0 0;padding:0}.notes-preview blockquote{border-left:2px solid var(--syn-yellow);color:var(--fg-1);margin:.6em 0;padding-left:14px;font-style:italic}.notes-preview a{color:var(--accent);text-decoration:none}.notes-preview a:hover{text-decoration:underline}.notes-preview hr{border:none;border-top:1px solid var(--line-1);margin:1.2em 0}.notes-preview mark{color:var(--syn-yellow);background:#e2b34133;border-radius:2px;padding:1px 3px}.detail-panel{background:var(--bg-1);border-left:1px solid var(--line-1);width:280px;animation:slide-in-right var(--dur-state) var(--ease-out) both;flex-direction:column;flex:0 0 280px;display:flex;overflow:hidden}.detail-panel.exiting{animation:panel-exit var(--dur-state) var(--ease-in-out) both;pointer-events:none}@keyframes panel-exit{0%{opacity:1;max-width:280px}to{opacity:0;max-width:0}}.detail-head{border-bottom:1px solid var(--line-1);flex:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.detail-label-input{min-width:0;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);transition:border-color var(--dur-micro);background:0 0;border:none;border-bottom:1px solid #0000;outline:none;flex:1 1 0;padding:2px 0;font-weight:500}.detail-label-input::placeholder{color:var(--fg-2)}.detail-label-input:focus{border-bottom-color:var(--accent-soft)}.detail-body{flex-direction:column;flex:1 1 0;gap:16px;min-height:0;padding:16px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--font-mono);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);font-size:10px}.field-label-row{justify-content:space-between;align-items:center;display:flex}.node-notes-preview{flex:unset;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-1);cursor:text;min-height:80px;padding:10px 12px;font-size:13px;line-height:1.6;overflow-y:visible}.node-notes-preview:empty:before{content:"context, hipóteses, links";color:var(--fg-2)}.kv-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;display:grid}.kv-row input{font-size:var(--fs-xs);padding:4px 6px}.meta-key-wrap{min-width:0;position:relative}.meta-key-wrap input{width:100%}.meta-key-dropdown{z-index:200;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-1);flex-direction:column;gap:1px;min-width:160px;max-height:240px;padding:3px;display:flex;position:absolute;top:calc(100% + 3px);left:0;overflow-y:auto;box-shadow:0 6px 20px #00000080}.meta-key-option{color:var(--fg-1);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:left;cursor:pointer;transition:background var(--dur-micro), color var(--dur-micro);background:0 0;border:none;border-radius:3px;padding:5px 8px}.meta-key-option:hover,.meta-key-option.active{background:var(--bg-3);color:var(--accent)}.meta-key-group-label{font-family:var(--font-mono);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);padding:4px 8px 2px;font-size:9px}.meta-key-divider{border:none;border-top:1px solid var(--line-2);margin:3px 4px}.kv-row .kv-rm{border:1px solid var(--line-1);border-radius:var(--radius-1);width:24px;height:24px;color:var(--fg-2);cursor:pointer;font-family:var(--font-mono);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.kv-row .kv-rm:hover{color:var(--syn-red);border-color:var(--syn-red)}.danger-btn{color:var(--syn-red);border-color:#e5484d4d}.danger-btn:hover{border-color:var(--syn-red);background:#e5484d1a}.quick-lookup{border-bottom:1px solid var(--line-1);margin-bottom:4px;padding-bottom:10px}.quick-lookup-label{font-size:10px;font-family:var(--font-mono);color:var(--fg-2);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:5px}.kv-block{flex-direction:column;gap:2px;margin-bottom:4px;display:flex}.enrich-links{flex-wrap:wrap;gap:4px;display:flex}.enrich-link{font-size:10px;font-family:var(--font-mono);color:var(--accent);transition:background var(--dur-micro);background:#9b7bff0f;border:1px solid #9b7bff40;border-radius:2px;padding:1px 5px;text-decoration:none}.enrich-link:hover{border-color:var(--accent);background:#9b7bff26}.ts-add-btn{font-size:10px;font-family:var(--font-mono);color:var(--syn-cyan);cursor:pointer;transition:background var(--dur-micro);background:0 0;border:1px solid #5bc8d740;border-radius:2px;padding:1px 5px}.ts-add-btn:hover{border-color:var(--syn-cyan);background:#5bc8d71a}.clf-seg{border:1px solid var(--line-1);border-radius:4px;gap:0;display:flex;overflow:hidden}.clf-seg.clf-seg-wrap{border:none;flex-wrap:wrap;gap:4px;padding:0;overflow:visible}.clf-seg.clf-seg-wrap .clf-seg-btn{border:1px solid var(--line-1);border-radius:var(--radius-1)}.clf-seg.clf-seg-wrap .clf-seg-btn+.clf-seg-btn{border-left:1px solid var(--line-1)}.clf-seg-btn{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2);cursor:pointer;background:0 0;border:none;border-radius:0;flex:1;padding:4px 0;transition:background .1s,color .1s}.clf-seg-btn+.clf-seg-btn{border-left:1px solid var(--line-1)}.clf-seg-btn:hover,.clf-seg-neutral.active{background:var(--bg-2);color:var(--fg-0)}.clf-seg-malicious.active{color:var(--syn-red);background:#e5484d1f}.clf-seg-compromised.active{color:var(--syn-yellow);background:#e2b3411f}.sticky-note{cursor:pointer;background:color-mix(in srgb, var(--bg-0) 55%, var(--bg-1));border:1px solid var(--line-1);border-radius:var(--radius-2);box-sizing:border-box;width:100%;height:100%;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-0);transition:border-color var(--dur-micro), border-radius var(--dur-micro), box-shadow var(--dur-micro);border-left:none;flex-direction:column;gap:2px;padding:8px 12px;display:flex;position:relative;overflow:visible}.sticky-note.selected{box-shadow:inset 0 2px 0 var(--line-2), inset -2px 0 0 var(--line-2), inset 0 -2px 0 var(--line-2);animation:node-select .16s var(--ease-out);transform-origin:50%}.react-flow__node-note .react-flow__resize-control.handle{display:none}.react-flow__node-note .react-flow__resize-control.line{border-color:#0000}.react-flow__node-note .react-flow__resize-control.line.left,.react-flow__node-note .react-flow__resize-control.line.right{width:8px}.react-flow__node-note .react-flow__resize-control.line.top,.react-flow__node-note .react-flow__resize-control.line.bottom{height:8px}.sticky-note *{cursor:inherit}.sticky-note:active{cursor:grabbing}.sticky-note-accent{border-top-left-radius:var(--radius-2);border-bottom-left-radius:var(--radius-2);background:var(--note-accent,var(--fg-2));width:2px;position:absolute;top:0;bottom:0;left:0}.sticky-note-head{flex-shrink:0;align-items:center;gap:8px;display:flex}.sticky-edit-btn{color:var(--fg-2);cursor:pointer;border-radius:var(--radius-1);opacity:0;width:auto;transition:color var(--dur-micro), background var(--dur-micro), opacity var(--dur-micro);background:0 0;border:none;justify-content:center;align-items:center;padding:3px;display:flex}.sticky-note:hover .sticky-edit-btn,.sticky-note.selected .sticky-edit-btn{opacity:1}.sticky-edit-btn:hover{color:var(--fg-0);background:var(--bg-2)}.sticky-note-type{letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);font-size:9px}.sticky-note-icon{width:14px;height:14px;color:var(--note-accent,var(--fg-2));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sticky-note-label{font-size:var(--fs-sm);color:var(--fg-0);word-break:break-word;flex-shrink:0;line-height:1.3}.sticky-note-body{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);line-height:var(--lh-base);white-space:pre-wrap;word-break:break-word;flex:1 1 0;margin-top:0;overflow-y:auto}.sticky-placeholder{color:var(--fg-2)}.sticky-note-body.markdown{font-family:var(--font-sans);color:var(--fg-0);line-height:var(--lh-tight)}.sticky-note-body.markdown p{margin:0 0 3px}.sticky-note-body.markdown p:last-child{margin-bottom:0}.sticky-note-body.markdown>:first-child{margin-top:0}.sticky-note-body.markdown h1,.sticky-note-body.markdown h2,.sticky-note-body.markdown h3{font-family:var(--font-mono);letter-spacing:.02em;margin:5px 0 0;font-weight:700}.sticky-note-body.markdown li>p{margin:0}.sticky-note-body.markdown h1{color:var(--accent);font-size:16px}.sticky-note-body.markdown h2{color:var(--syn-cyan);font-size:13px}.sticky-note-body.markdown h3{color:var(--syn-green);font-size:11px}.sticky-note-body.markdown ul,.sticky-note-body.markdown ol{margin:0 0 3px;padding-left:14px}.sticky-note-body.markdown li{margin-bottom:0}.sticky-note-body.markdown code{font-family:var(--font-mono);background:var(--bg-2);color:var(--syn-green);border-radius:2px;padding:0 3px;font-size:10px}.sticky-note-body.markdown pre{background:var(--bg-2);border-radius:var(--radius-1);margin:4px 0;padding:6px 8px;overflow:auto}.sticky-note-body.markdown pre code{color:var(--fg-1);background:0 0;padding:0}.sticky-note-body.markdown strong{color:var(--syn-yellow);font-weight:700}.sticky-note-body.markdown em{color:var(--fg-0);opacity:.7;font-style:italic}.sticky-note-body.markdown a{color:var(--accent);text-decoration:underline}.sticky-note-body.markdown hr{border:none;border-top:1px solid var(--line-1);margin:6px 0}.sticky-note-editor{resize:none;width:100%;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-0);line-height:var(--lh-base);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;border:none;outline:none;flex:1 1 0;margin:0;padding:0}.sticky-color-wrap{align-items:center;margin-left:auto;display:flex;position:relative}.sticky-note-palette{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-1);gap:5px;padding:6px;display:flex;box-shadow:0 4px 12px #0006}.note-swatch{cursor:pointer;opacity:.35;width:12px;height:12px;transition:transform var(--dur-micro), border-color var(--dur-micro), opacity var(--dur-micro);border:1px solid #0000;border-radius:50%;padding:0}.note-swatch:hover{opacity:.7;transform:scale(1.2)}.note-swatch.active{border-color:var(--fg-0);opacity:.8;transform:scale(1.15)}.note-corner{z-index:10;opacity:0;width:20px;height:20px;transition:opacity var(--dur-state);position:absolute}.note-corner.se{cursor:se-resize;bottom:0;right:0}.note-corner:before,.note-corner:after{content:"";background:var(--fg-1);border-radius:1px;position:absolute}.note-corner:before{width:9px;height:2px;bottom:4px;right:4px}.note-corner:after{width:2px;height:9px;bottom:4px;right:4px}.sticky-note:hover .note-corner{opacity:1}.ir-node{cursor:pointer;background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-2);min-width:140px;max-width:220px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-0);transition:border-color var(--dur-micro), box-shadow var(--dur-micro);border-left:none;position:relative}.ir-node .ir-inner{border-radius:inherit;flex-direction:column;gap:4px;padding:8px 12px;display:flex;position:relative;overflow:hidden}.ir-node *{cursor:inherit}.ir-node:active{cursor:grabbing}.ir-node.selected{box-shadow:inset 0 2px 0 var(--fg-2), inset -2px 0 0 var(--fg-2), inset 0 -2px 0 var(--fg-2);animation:node-select .16s var(--ease-out);transform-origin:50%}.ir-node .ir-head{align-items:center;gap:8px;display:flex}.ir-node .ir-type{letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);font-size:9px}.ir-node .ir-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.ir-node .ir-label{color:var(--fg-0);font-size:var(--fs-sm);word-break:break-all;line-height:1.3}.ir-label-input{border:none;border-bottom:1px solid var(--accent-soft);width:100%;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);background:0 0;outline:none;padding:0;line-height:1.3}.ir-node .ir-accent{width:2px;position:absolute;top:0;bottom:0;left:0}.ir-node.t-ip .ir-accent{background:var(--syn-pink)}.ir-node.t-domain .ir-accent{background:#f08c3d}.ir-node.t-email .ir-accent{background:var(--syn-yellow)}.ir-node.t-hash .ir-accent{background:var(--accent)}.ir-node.t-person .ir-accent{background:var(--syn-blue)}.ir-node.t-host .ir-accent{background:var(--syn-cyan)}.ir-node.t-transaction .ir-accent{background:var(--rgb-g)}.ir-node.t-repository .ir-accent{background:#c678dd}.ir-node.t-note .ir-accent{background:var(--fg-2)}.ir-node.t-ip .ir-icon{color:var(--syn-pink)}.ir-node.t-domain .ir-icon{color:#f08c3d}.ir-node.t-email .ir-icon{color:var(--syn-yellow)}.ir-node.t-hash .ir-icon{color:var(--accent)}.ir-node.t-person .ir-icon{color:var(--syn-blue)}.ir-node.t-host .ir-icon{color:var(--syn-cyan)}.ir-node.t-transaction .ir-icon{color:var(--rgb-g)}.ir-node.t-repository .ir-icon{color:#c678dd}.ir-node.t-note .ir-icon{color:var(--fg-1)}.ir-meta{border-top:1px solid var(--line-1);flex-direction:column;gap:2px;margin-top:5px;padding-top:5px;display:flex}.ir-meta-row{font-family:var(--font-mono);gap:6px;font-size:10px;line-height:1.4;display:flex;overflow:hidden}.ir-meta-k{color:var(--fg-2);white-space:nowrap;flex-shrink:0}.ir-meta-k:after{content:":"}.ir-meta-v{color:var(--fg-1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ir-meta-extra{transition:grid-template-rows .2s var(--ease-out);grid-template-rows:0fr;margin-top:-2px;display:grid}.ir-meta-extra.open{grid-template-rows:1fr}.ir-meta-extra>div{flex-direction:column;gap:2px;padding-top:2px;display:flex;overflow:hidden}.ir-expand-btn{width:100%;color:var(--fg-2);cursor:pointer;transition:color var(--dur-micro);background:0 0;border:none;justify-content:center;align-items:center;margin-top:0;padding:2px 0 0;display:flex}.ir-expand-btn:hover{color:var(--fg-0)}.ir-expand-btn svg{transition:transform .2s var(--ease-out)}.ir-expand-btn.open svg{transform:rotate(180deg)}.ir-clf{align-items:center;margin-left:auto;display:flex}.clf-malicious{color:var(--syn-red)}.clf-compromised{color:var(--syn-yellow)}.ir-contain{align-items:center;display:flex}.ir-linked-actions{color:var(--accent);opacity:.7;align-items:center;display:flex}.contain-isolated{color:var(--syn-yellow)}.contain-remediated{color:var(--syn-green)}.contain-seg-none.active{background:var(--bg-2);color:var(--fg-0)}.contain-seg-isolated.active{color:var(--syn-yellow);background:#e2b3411f}.contain-seg-remediated.active{color:var(--syn-green);background:#4cc38a1f}.contain-progress{border-bottom:1px solid var(--line-1);flex-direction:column;gap:5px;padding:10px 12px 8px;display:flex}.cp-label{font-family:var(--font-mono);justify-content:space-between;align-items:baseline;font-size:11px;display:flex}.cp-fraction{color:var(--fg-1)}.cp-pct{color:var(--fg-2);font-size:10px}.cp-bar-track{border-radius:var(--radius-pill);background:var(--line-1);height:3px;overflow:hidden}.cp-bar-fill{border-radius:var(--radius-pill);background:var(--syn-green);height:100%;transition:width .3s var(--ease-out)}.ca-item{background:color-mix(in srgb, var(--bg-0) 35%, var(--bg-1));border:1px solid var(--line-1);border-radius:var(--radius-2);cursor:pointer;transition:border-color var(--dur-micro), background var(--dur-micro);animation:tab-in .18s var(--ease-out) both;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ca-item:hover{border-color:var(--line-2)}.ca-item.expanded{background:var(--bg-2);border-color:var(--line-2);cursor:default}.ca-item.done{background:var(--bg-1);border-color:#0000}.ca-item.done:hover{background:var(--bg-1);border-color:var(--line-1)}.ca-item.done .sev-badge,.ca-item.done .ca-assignee{opacity:.35}.ca-item.done .ca-title{color:var(--fg-2)}.timeline.no-track .tl-event:before,.timeline.no-track .tl-event:after,.timeline.no-track .tl-arrow{display:none}.ca-head{flex-direction:column;gap:4px;display:flex}.ca-title-row{align-items:center;gap:6px;display:flex}.ca-title{font-family:var(--font-mono);color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.ca-item.expanded .ca-title{white-space:normal;overflow:visible}.ca-tags{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.ca-node-ref,.ca-assignee,.ca-done-ts{font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;padding:1px 6px;font-size:10px}.ca-node-ref{color:var(--fg-1);text-overflow:ellipsis;max-width:80px;overflow:hidden}.ca-assignee{color:var(--syn-cyan)}.ca-done-ts{color:var(--syn-green)}.ca-search-wrap{border-bottom:1px solid var(--line-1);padding:6px 8px}.ca-search{background:var(--bg-1);border:1px solid var(--line-1);width:100%;color:var(--fg-0);border-radius:var(--radius-1);font-family:var(--font-mono);padding:4px 8px;font-size:11px}.ca-search:focus{border-color:var(--fg-0);outline:none}.status-seg-open.active{color:var(--syn-red);background:#e5484d1f;border-color:#e5484d59}.status-seg-in-progress.active{color:var(--syn-yellow);background:#e2b3411f;border-color:#e2b34159}.status-seg-done.active{color:var(--syn-green);background:#4cc38a1f;border-color:#4cc38a59}.priority-seg-low.active{color:var(--syn-green);background:#4cc38a1f;border-color:#4cc38a4d}.priority-seg-medium.active{color:var(--syn-yellow);background:#e2b3411f;border-color:#e2b3414d}.priority-seg-high.active{color:#f08c3d;background:#f08c3d1f;border-color:#f08c3d4d}.priority-seg-critical.active{color:var(--syn-red);background:#e5484d1f;border-color:#e5484d4d}.linked-actions{flex-direction:column;gap:4px;margin-top:4px;display:flex}.linked-action-row{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);cursor:pointer;text-align:left;width:100%;transition:border-color var(--dur-micro);align-items:center;gap:6px;padding:5px 8px;display:flex}.linked-action-row:hover{border-color:var(--line-2)}.linked-action-title{font-family:var(--font-mono);color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.linked-action-status{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot-open{background:var(--syn-red)}.status-dot-in-progress{background:var(--syn-yellow)}.status-dot-done{background:var(--syn-green)}.ca-checklist-ring-wrap{flex-shrink:0;align-items:center;gap:4px;display:flex}.ca-checklist-frac{font-family:var(--font-mono);color:var(--fg-2);font-size:10px}.checklist{flex-direction:column;gap:3px;display:flex}.checklist-item{align-items:center;gap:7px;padding:3px 0;display:flex}.checklist-item input[type=checkbox]{appearance:none;border:1px solid var(--line-2);background:var(--bg-1);cursor:pointer;width:13px;height:13px;transition:background var(--dur-micro), border-color var(--dur-micro);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.checklist-item input[type=checkbox]:checked{background:var(--syn-green);border-color:var(--syn-green);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0B0D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:9px}.checklist-label{font-family:var(--font-mono);color:var(--fg-0);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:12px}.checklist-item.done .checklist-label{color:var(--fg-2);text-decoration:line-through}.ca-section{border-radius:var(--radius-2);transition:background var(--dur-micro), border-color var(--dur-micro);border:1px solid #0000;flex-direction:column;gap:8px;padding:4px;display:flex}.ca-section.drag-over{background:#9b7bff0f;border-color:#9b7bff33}.ca-item.dragging{opacity:.35}.ca-item.done.dragging{border-color:var(--line-1)}.ca-item.done.dragging .sev-badge,.ca-item.done.dragging .ca-assignee,.ca-item.done.dragging .ca-done-ts{opacity:1}.ca-item.done.dragging .ca-title{color:var(--fg-0)}.ca-drop-zone{border:1px dashed var(--line-2);border-radius:var(--radius-2);text-align:center;color:var(--fg-2);font-family:var(--font-mono);transition:border-color var(--dur-micro), color var(--dur-micro);padding:14px;font-size:11px}.ca-section.drag-over .ca-drop-zone{border-color:var(--fg-0);color:var(--accent)}.ca-section+.ca-section{margin-top:var(--sp-3)}.ca-section-head{font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;align-items:center;gap:6px;padding:6px 10px 3px;font-size:10px;display:flex}.ca-section-label{color:var(--fg-2)}.ca-section-label.status-label-open,.ca-section-label.status-label-in-progress,.ca-section-label.status-label-done{color:var(--fg-0)}.ca-section-count{background:var(--bg-3);color:var(--fg-2);border-radius:var(--radius-pill);padding:1px 5px;font-size:9px}.react-flow__pane{cursor:default!important}.react-flow__handle{background:var(--bg-2)!important;border:1px solid var(--line-2)!important;z-index:1!important;width:8px!important;height:8px!important}.ir-node .react-flow__handle-left{left:1px!important}.react-flow__handle:hover{background:var(--accent)!important;border-color:var(--accent)!important}.react-flow__edge-path{stroke:var(--line-2);stroke-width:1.5px;transition:stroke .3s var(--ease-in-out), opacity .3s var(--ease-in-out)}.edges-instant .react-flow__edge-path,.edges-instant .react-flow__edge-text,.edges-instant .react-flow__edge-textbg{transition:none!important}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:var(--line-2);stroke-width:2px}.react-flow__node{transition:opacity var(--dur-state) var(--ease-out)}.react-flow__edge.edge-dimmed .react-flow__edge-path{opacity:.3}.react-flow__edge.edge-dimmed .react-flow__edge-text,.nodrag.nopan.edge-dimmed .edge-label-text{opacity:.3;transition:opacity .3s var(--ease-in-out)}.react-flow__edge.edge-highlighted .react-flow__edge-path{stroke:var(--accent);stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge-text{fill:var(--fg-1);font-family:var(--font-mono);font-size:10px}.react-flow__edge-textbg{fill:var(--bg-1)}.react-flow__background{background:var(--bg-0)}.react-flow__minimap{border:1px solid var(--line-1);border-radius:var(--radius-1);background:var(--bg-1)!important}.react-flow__attribution{display:none}.type-picker{z-index:1000;background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-2);min-width:180px;animation:pop-in var(--dur-micro) var(--ease-out) both;transform-origin:0 0;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;box-shadow:0 8px 24px #0009}.type-picker.exiting{animation:pop-out var(--dur-micro) var(--ease-in-out) both;pointer-events:none}.type-picker .header{font-family:var(--font-mono);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-2);justify-content:space-between;align-items:center;padding:6px 10px 4px;font-size:10px;display:flex}.type-picker .opt{border-radius:var(--radius-1);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.type-picker .opt:hover{background:var(--bg-2)}.type-picker .opt .swatch{border-radius:999px;flex-shrink:0;width:8px;height:8px}.type-picker .opt .ico{width:14px;height:14px;color:var(--fg-1)}.ctx-menu{z-index:1000;background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-1);min-width:140px;animation:pop-in var(--dur-micro) var(--ease-out) both;transform-origin:0 0;padding:4px;position:absolute;box-shadow:0 8px 24px #0009}.ctx-menu.exiting{animation:pop-out var(--dur-micro) var(--ease-in-out) both;pointer-events:none}.ctx-menu button{text-align:left;width:100%;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--radius-1);cursor:pointer;background:0 0;border:0;padding:8px 10px}.ctx-menu button:hover{background:var(--bg-2)}.ctx-menu button.danger{color:var(--syn-red)}.ctx-menu button.danger:hover{background:#e5484d1a}.edge-label-text{font-family:var(--font-mono);color:var(--fg-1);background:var(--bg-0);border-radius:var(--radius-1);cursor:default;white-space:nowrap;-webkit-user-select:none;user-select:none;padding:2px 6px;font-size:10px}.edge-label-text.sel{color:var(--fg-0);background:var(--bg-2);outline:1px solid var(--line-2)}.edge-label-edit{font-family:var(--font-mono);background:var(--bg-2);color:var(--fg-0);border:1px solid var(--accent);border-radius:var(--radius-1);outline:none;width:120px;padding:2px 6px;font-size:10px}.inv-toolbar-btn{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);cursor:pointer;transition:border-color var(--dur-micro), background var(--dur-micro);align-items:center;gap:8px;max-width:220px;padding:5px 10px;display:flex;overflow:hidden}.inv-toolbar-btn:hover{border-color:var(--line-2);background:var(--bg-3)}.inv-toolbar-name{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;overflow:hidden}.inv-toolbar-count{font-family:var(--font-mono);color:var(--fg-2);background:var(--bg-3);border-radius:var(--radius-pill);flex-shrink:0;padding:1px 6px;font-size:10px}.modal-overlay{z-index:1000;animation:overlay-in .15s var(--ease-out) both;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-2);width:380px;max-width:90vw;animation:pop-in .18s var(--ease-out) both;flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--line-1);font-family:var(--font-mono);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-title{color:var(--fg-1);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-size:11px}.modal-body{flex-direction:column;gap:12px;padding:16px;display:flex}.modal-footer{border-top:1px solid var(--line-1);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.primary-btn{background:var(--accent-soft);color:#fff;border-radius:var(--radius-1);font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:opacity var(--dur-micro);border:none;padding:7px 16px;font-size:11px;font-weight:600}.primary-btn:hover{opacity:.85}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-out{0%{opacity:1}to{opacity:0}}.inv-overlay{z-index:3000;animation:overlay-in .18s var(--ease-out) both;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.inv-overlay.exiting{animation:overlay-out .18s var(--ease-in-out) both;pointer-events:none}.inv-overlay.exiting .inv-panel{animation:pop-out .18s var(--ease-in-out) both}.inv-panel{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-2);width:460px;max-height:70vh;animation:pop-in .18s var(--ease-out) both;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 64px #000c}.inv-head{border-bottom:1px solid var(--line-1);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.inv-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-1)}.inv-list{flex-direction:column;flex:1 1 0;gap:4px;padding:8px;display:flex;overflow-y:auto}.inv-item{border:1px solid var(--line-1);border-radius:var(--radius-1);cursor:pointer;transition:border-color var(--dur-micro), background var(--dur-micro);animation:tab-in .16s var(--ease-out) both;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.inv-item:hover{background:var(--bg-2);border-color:var(--line-2)}.inv-item.active{border-color:var(--fg-0);cursor:default;background:#9b7bff0f}.inv-item-top{align-items:center;gap:8px;display:flex}.inv-name{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-0);text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;overflow:hidden}.inv-active-badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-radius:var(--radius-pill);background:#9b7bff1f;border:1px solid #9b7bff4d;flex-shrink:0;padding:1px 7px;font-size:10px}.inv-name-edit{font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--bg-3);border:1px solid var(--fg-0);border-radius:var(--radius-1);color:var(--fg-0);outline:none;flex:1 1 0;width:auto;padding:2px 6px}.inv-item-meta{font-family:var(--font-mono);color:var(--fg-2);justify-content:space-between;align-items:center;font-size:11px;display:flex}.inv-item-actions{gap:6px;margin-top:2px;display:flex}.inv-item-actions button{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:var(--radius-1);color:var(--fg-1);cursor:pointer;width:auto;transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;padding:3px 8px;font-size:10px}.inv-item-actions button:hover{color:var(--fg-0);background:var(--bg-3)}.inv-item-actions button.danger{color:var(--syn-red);border-color:#e5484d4d}.inv-item-actions button.danger:hover{background:#e5484d14}.inv-tree{font-family:var(--font-mono);font-size:var(--fs-xs);flex:1;padding:6px 4px 6px 0;overflow-y:auto}.tree-row{cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;height:24px;padding-right:6px;display:flex;position:relative}.tree-row:hover{background:#ffffff06}.tree-row .tree-name{white-space:nowrap;text-overflow:ellipsis;color:var(--fg-0);font-size:var(--fs-sm);flex:1;overflow:hidden}.tree-row .tree-name-edit{background:var(--bg-2);border:1px solid var(--accent-soft);border-radius:var(--radius-1);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);outline:none;flex:1;padding:1px 5px}.tree-row .tree-icon{width:14px;color:var(--fg-1);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tree-folder .tree-chevron{width:14px;height:14px;color:var(--fg-2);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tree-folder .tree-chevron:hover{color:var(--fg-0)}.tree-folder .tree-name{letter-spacing:.02em;font-weight:600}.tree-folder-actions,.tree-inv-actions{opacity:0;transition:opacity var(--dur-micro);gap:2px;display:flex}.tree-row:hover .tree-folder-actions,.tree-row:hover .tree-inv-actions{opacity:1}.tree-folder-actions button,.tree-inv-actions button{border-radius:var(--radius-1);color:var(--fg-2);cursor:pointer;font-size:10px;font-family:var(--font-mono);background:0 0;border:1px solid #0000;align-items:center;gap:2px;padding:2px 4px;display:inline-flex}.tree-folder-actions button:hover,.tree-inv-actions button:hover{color:var(--fg-0);background:var(--bg-3);border-color:var(--line-2)}.tree-folder-actions button.danger,.tree-inv-actions button.danger{color:var(--syn-red)}.tree-folder-actions button.danger:hover{background:#e5484d14}.tree-inv{cursor:pointer}.tree-inv.active{background:#9b7bff14}.tree-inv.active:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.tree-inv.active .tree-name{color:var(--fg-0)}.tree-inv-meta{color:var(--fg-2);flex-shrink:0;margin-left:6px;font-size:10px}.tree-children{border-left:1px solid var(--line-1);margin-left:12px;position:relative}.tree-move-menu{z-index:10;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-1);flex-direction:column;min-width:140px;max-height:200px;padding:4px;display:flex;position:absolute;top:22px;right:6px;overflow-y:auto;box-shadow:0 4px 16px #0009}.tree-move-menu button{text-align:left;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;border-radius:var(--radius-1);background:0 0;border:none;padding:4px 8px}.tree-move-menu button:hover{background:var(--bg-3)}.inv-toolbtn{border:1px solid var(--line-1);border-radius:var(--radius-1);color:var(--fg-1);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.inv-toolbtn:hover{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-3)}.inv-footer{border-top:1px solid var(--line-1);flex-shrink:0;padding:10px}.inv-new-btn{border:1px dashed var(--line-2);border-radius:var(--radius-1);width:100%;color:var(--fg-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;padding:10px}.inv-new-btn:hover{color:var(--fg-0);border-color:var(--fg-0);background:#9b7bff0a}.inv-io{gap:var(--sp-1);margin-top:var(--sp-2);display:flex}.inv-io button{font-size:var(--fs-xs);flex:1;justify-content:center;align-items:center;gap:4px;padding:6px;display:flex}.home-page{background:var(--bg-0);height:100vh;animation:tab-in .22s var(--ease-out) both;flex-direction:column;display:flex}.home-header{border-bottom:1px solid var(--line-1);background:var(--bg-1);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 32px;display:flex}.home-brand{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-0);align-items:center;gap:10px;font-weight:600;display:flex}.home-header-right{align-items:center;gap:10px;display:flex}.home-search{font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--line-2);border-radius:var(--radius-1);height:28px;color:var(--fg-1);min-width:0;transition:border-color var(--dur-micro), color var(--dur-micro);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;outline:none;flex:1;padding:0 10px}.home-search::placeholder{color:var(--fg-2)}.home-search:focus{border-color:var(--fg-2);color:var(--fg-0)}.home-new-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-1);color:var(--accent);cursor:pointer;transition:background var(--dur-micro);white-space:nowrap;background:#9b7bff14;border:1px solid #0000;width:auto;padding:6px 12px}.home-new-btn:hover{background:#9b7bff29}.home-body{flex:1 1 0;width:100%;max-width:900px;margin:0 auto;padding:32px 40px 60px;overflow-y:auto}.home-stats{align-items:center;gap:var(--sp-6);padding:var(--sp-5) var(--sp-5);border:1px solid var(--line-1);border-radius:var(--radius-2);background:var(--bg-1);margin-bottom:var(--sp-5);display:flex}.home-stats-donut{align-items:center;gap:var(--sp-4);flex-shrink:0;display:flex}.home-stats-donut-legend{gap:var(--sp-2);flex-direction:column;display:flex}.hsdl-item{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);align-items:center;gap:6px;display:flex}.hsdl-dot{border-radius:var(--radius-pill);flex-shrink:0;width:8px;height:8px}.hsdl-open .hsdl-dot{background:var(--syn-yellow)}.hsdl-closed .hsdl-dot{background:var(--syn-green)}.home-stats-grid{gap:var(--sp-5);border-left:1px solid var(--line-1);padding-left:var(--sp-6);flex:1;display:flex}.home-stat-card{flex-direction:column;gap:4px;min-width:60px;display:flex}.home-stat-val{font-family:var(--font-mono);font-size:var(--fs-xl);color:var(--fg-0);font-weight:600;line-height:1}.home-stat-val.home-stat-danger{color:var(--syn-red)}.home-stat-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-2)}.home-controls{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.home-filter-wrap{flex-shrink:0;position:relative}.home-filter-dropdown{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-2);padding:var(--sp-1);z-index:100;flex-direction:column;gap:2px;min-width:90px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.home-filter-option{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-1);color:var(--fg-1);cursor:pointer;text-align:left;transition:background var(--dur-micro), color var(--dur-micro);background:0 0;border:none;padding:5px 10px}.home-filter-option:hover{background:var(--bg-3);color:var(--fg-0)}.home-filter-option.active{color:var(--syn-yellow)}.home-toolbar-btn{font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--line-2);border-radius:var(--radius-1);color:var(--fg-1);cursor:pointer;white-space:nowrap;height:28px;transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;align-items:center;gap:5px;padding:4px 10px;line-height:1;display:flex}.home-toolbar-btn:hover{color:var(--fg-0);border-color:var(--fg-2)}.home-toolbar-btn.active{color:var(--fg-0);border-color:var(--fg-2);background:var(--bg-2)}.home-list{border:1px solid var(--line-1);border-radius:var(--radius-2);flex-direction:column;display:flex;overflow:hidden}.home-table-head,.home-row{grid-template-columns:1fr 90px 100px 100px 36px;align-items:center;gap:0;padding:0 16px;display:grid}.home-table-head{border-bottom:1px solid var(--line-1);background:var(--bg-0);height:34px;position:relative}.home-th-name,.home-th-status,.home-th-date{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-2);padding:0 8px}.home-th-name{padding-left:0}.home-th-add-folder{border:1px solid var(--line-1);border-radius:var(--radius-1);color:var(--fg-1);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;text-transform:lowercase;transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;justify-self:end;align-items:center;gap:2px;padding:2px 6px;font-size:10px;display:inline-flex}.home-th-add-folder:hover{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-3)}.home-th-status,.home-th-date{text-align:center}.home-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.home-th-sortable:hover{color:var(--fg-1)}.home-th-sortable.active{color:var(--fg-0)}.home-th-arrow{color:var(--fg-3);font-style:normal}.home-th-sortable.active .home-th-arrow{color:var(--fg-1)}.home-sel-bar{max-height:0;transition:max-height .2s var(--ease-out);overflow:hidden}.home-sel-bar.active{max-height:38px}.home-sel-bar-inner{align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line-1);background:#9b7bff0a;height:38px;padding:0 16px;display:flex}.home-sel-bar-inner button{font-size:var(--fs-xs);white-space:nowrap;background:var(--bg-3);border:1px solid var(--line-2);color:var(--fg-1);border-radius:var(--radius-1);cursor:pointer;font-family:var(--font-mono);align-items:center;gap:4px;padding:3px 8px;display:flex}.home-sel-bar-inner button:hover{color:var(--fg-0);border-color:var(--line-1)}.home-row{cursor:grab;height:32px;transition:background-color var(--dur-micro);animation:tab-in .16s var(--ease-out) both;background-color:#0000;position:relative}.home-row:active{cursor:grabbing}.home-row:not(:last-child){box-shadow:inset 0 -1px #ffffff08}.home-row:hover{background-color:#ffffff06}.home-row.selected{background-color:#9b7bff0f}.home-row.selected:hover{background-color:#9b7bff1a}.tree-guide{pointer-events:none;z-index:1;background:#ffffff26;width:1px;position:absolute;top:0;bottom:-1px}.home-tree-root.drop-target{outline-offset:-1px;outline:1px dashed #9b7bff66}.create-folder-modal{max-width:380px}.create-folder-parent{color:var(--fg-1);font-weight:400;font-size:var(--fs-xs);letter-spacing:0;text-transform:none;margin-left:6px}.create-folder-parent code{background:var(--bg-2);border-radius:var(--radius-1);color:var(--fg-0);padding:1px 6px}.create-folder-input{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-1);width:100%;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);transition:border-color var(--dur-micro);outline:none;padding:10px 12px}.create-folder-input:focus{border-color:var(--accent-soft)}.create-folder-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.create-folder-actions button{border-radius:var(--radius-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;border:1px solid var(--line-1);color:var(--fg-1);transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;padding:8px 16px}.create-folder-cancel:hover{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-3)}.create-folder-create{border-color:var(--accent-soft)!important;color:var(--accent)!important}.create-folder-create:hover:not(:disabled){color:var(--fg-0)!important;background:#9b7bff14!important}.create-folder-create:disabled{opacity:.4;cursor:not-allowed}.home-folder-row{cursor:pointer;-webkit-user-select:none;user-select:none;height:30px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.02em;transition:background-color var(--dur-micro);align-items:center;gap:4px;padding-right:12px;display:flex;position:relative}.home-folder-row:hover{background-color:#ffffff06}.home-folder-row.drop-target{outline-offset:-1px;background-color:#9b7bff1a;outline:1px dashed #9b7bff80}.home-folder-add-sub{border-radius:var(--radius-1);color:var(--fg-2);font-family:var(--font-mono);cursor:pointer;opacity:0;transition:opacity var(--dur-micro), color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;border:1px solid #0000;align-items:center;gap:2px;margin-left:auto;padding:2px 5px;font-size:10px;display:inline-flex}.home-folder-row:hover .home-folder-add-sub{opacity:1}.home-folder-add-sub:hover{color:var(--fg-0);border-color:var(--line-2);background:var(--bg-3)}.home-folder-row .home-folder-count+.home-folder-add-sub{margin-left:8px}.home-folder-delete{border-radius:var(--radius-1);color:var(--fg-2);cursor:pointer;opacity:0;transition:opacity var(--dur-micro), color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:3px 5px;display:inline-flex}.home-folder-row:hover .home-folder-delete{opacity:1}.home-folder-delete:hover{color:var(--syn-red);background:#e5484d14;border-color:#e5484d4d}.confirm-message{font-family:var(--font-reading);color:var(--fg-0);font-size:var(--fs-sm);padding:4px 0 6px;line-height:1.55}.confirm-message strong{color:var(--fg-0);font-weight:600}.confirm-danger{border-radius:var(--radius-1);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;color:var(--syn-red);transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:#e5484d14;border:1px solid #e5484d66;padding:8px 16px}.confirm-danger:hover{color:var(--fg-0);background:#e5484d29}.home-folder-chevron{width:14px;color:var(--fg-2);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.home-folder-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;display:inline-flex}.home-folder-name{text-transform:lowercase;font-weight:600}.home-folder-name-edit{text-transform:lowercase;background:var(--bg-2);border:1px solid var(--accent-soft);border-radius:var(--radius-1);font-weight:600;font-family:var(--font-mono);font-size:var(--fs-sm);outline:none;padding:1px 6px}.home-folder-count{color:var(--fg-2);font-size:var(--fs-xs);margin-left:auto}.home-row-check{appearance:none;border:1px solid var(--line-2);background:var(--bg-3);cursor:pointer;width:14px;min-width:14px;max-width:14px;height:14px;transition:background var(--dur-micro), border-color var(--dur-micro);border-radius:3px;flex:none;position:relative}.home-row-check:checked{background:var(--accent);border-color:var(--accent)}.home-row-check:checked:after{content:"";border:1.5px solid #fff;border-top:none;border-left:none;width:5px;height:8px;position:absolute;top:1px;left:3px;transform:rotate(45deg)}.home-sel-count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent);white-space:nowrap}.home-row-name{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-0);align-items:center;gap:10px;height:100%;padding-right:8px;font-weight:500;display:flex;overflow:hidden}.home-row-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.home-row-cell{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-2);white-space:nowrap;text-align:center;padding:0 8px}.home-row-status-cell{justify-content:center;align-items:center;padding:0 8px;display:flex;position:relative}.home-status-badge{font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-pill);cursor:pointer;transition:opacity var(--dur-micro);background:0 0;border:1px solid;padding:2px 8px;font-size:10px;line-height:1.5}.home-status-badge:hover{opacity:.75}.home-status-open{color:var(--syn-yellow);border-color:#e2b34166}.home-status-closed{color:var(--syn-green);border-color:#4cc38a66}.home-row-actions{justify-content:flex-end;align-items:center;display:flex}.home-row-info-btn{border-radius:var(--radius-1);color:var(--fg-2);cursor:pointer;transition:color var(--dur-micro);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex;position:absolute;right:-8px}.home-row-info-btn:hover{color:var(--fg-0)}.home-row-info-popover{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-2);padding:var(--sp-3) var(--sp-4);white-space:normal;min-width:220px;max-width:320px;box-shadow:0 4px 16px #0006}.home-row-info-date{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);margin-bottom:var(--sp-2);letter-spacing:var(--tracking-wide);text-transform:uppercase}.home-row-info-note{font-size:var(--fs-sm);color:var(--fg-0);line-height:var(--lh-base)}.home-row-del{border-radius:var(--radius-1);color:var(--fg-3);cursor:pointer;opacity:0;width:auto;transition:opacity var(--dur-micro), color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.home-row:hover .home-row-del{opacity:1}.home-row-del:hover{color:var(--syn-red);background:#e5484d14;border-color:#e5484d4d}.home-empty{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-2);text-align:center;padding:80px 0}.home-back-btn{border:1px solid var(--line-1);border-radius:var(--radius-1);color:var(--fg-1);cursor:pointer;transition:color var(--dur-micro), border-color var(--dur-micro), background var(--dur-micro);background:0 0;justify-content:center;align-items:center;padding:6px;display:flex}.home-back-btn:hover{color:var(--fg-0);background:var(--bg-2);border-color:var(--line-2)}.home-back-btn.active{color:var(--accent);border-color:var(--accent-soft);background:#9b7bff14}.save-status{font-family:var(--font-mono);font-size:var(--fs-xs);transition:color var(--dur-state)}.save-status.saved{color:var(--fg-2)}.save-status.saving{color:var(--syn-green)}@keyframes htl-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes htl-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes htl-panel-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}@keyframes htl-panel-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(12px)scale(.98)}}.htl-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;animation:htl-overlay-in .2s var(--ease-out) both;background:#0b0b0dbf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.htl-overlay.closing{animation:htl-overlay-out .2s var(--ease-in-out) both}.htl-panel{background:var(--bg-1);border:1px solid var(--line-2);border-radius:var(--radius-2);width:92vw;max-width:1400px;max-height:78vh;animation:htl-panel-in .22s var(--ease-out) both;flex-direction:column;display:flex;position:relative;box-shadow:0 24px 64px #0009}.htl-panel.closing{animation:htl-panel-out .2s var(--ease-in-out) both}.htl-header{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--line-2);flex-shrink:0;min-width:0;display:flex}.htl-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-1)}.htl-help-wrap{align-items:center;display:flex;position:relative}.htl-help-btn{font-family:var(--font-mono);font-size:11px}.htl-help-tip{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-2);padding:var(--sp-3);z-index:100;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);flex-direction:column;gap:6px;display:none;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.htl-help-tip kbd{background:var(--bg-3);border:1px solid var(--line-2);color:var(--fg-0);border-radius:3px;padding:1px 4px;font-size:10px}.htl-help-wrap:hover .htl-help-tip{display:flex}.htl-close{padding:var(--sp-1);cursor:pointer;color:var(--fg-2);border-radius:var(--radius-1);transition:color var(--dur-micro), background var(--dur-micro);background:0 0;border:none;align-items:center;display:flex}.htl-close:hover{color:var(--fg-0);background:var(--bg-3)}.htl-header-right{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.htl-zoom-bar{flex-direction:row;gap:8px;padding:5px 12px}.htl-zoom-bar .zoom-divider{width:1px;height:14px}.htl-zoom-bar .zoom-btn{padding:2px;font-size:16px}.htl-zoom-bar .zoom-icon-btn{padding:2px}.htl-viewport{flex:1;overflow:auto}.htl-table{min-width:100%;display:block;position:relative}.htl-axis-row{z-index:4;background:var(--bg-1);border-bottom:1px solid var(--line-2);display:flex;position:sticky;top:0}.htl-corner{z-index:5;background:var(--bg-1);border-right:1px solid var(--line-2);flex-shrink:0;position:sticky;left:0}.htl-axis-strip{flex:1;position:relative}.htl-tick{pointer-events:none;flex-direction:column;justify-content:space-between;align-items:center;padding:5px 0 0;display:flex;position:absolute;transform:translate(-50%)}.htl-tick-label{font-family:var(--font-mono);color:var(--fg-2);white-space:nowrap;font-size:10px}.htl-tick-mark{background:var(--line-2);width:1px;height:5px}.htl-event-row{cursor:pointer;transition:background var(--dur-micro);display:flex}.htl-event-row.alt{background:#00000026}.htl-event-row:hover,.htl-event-row.selected{background:var(--bg-3)}.htl-row-label{z-index:2;align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);background:var(--bg-1);border-right:1px solid var(--line-2);transition:background var(--dur-micro);flex-shrink:0;display:flex;position:sticky;left:0}.htl-phase-name{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-wide);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.htl-event-row:hover .htl-row-label,.htl-event-row.selected .htl-row-label{background:var(--bg-3)}.htl-row-pip{border-radius:50%;flex-shrink:0;width:4px;height:4px}.htl-row-name{font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.htl-event-track{flex:1;position:relative}.htl-grid-line{background:var(--line-1);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;transform:translate(-50%)}.htl-bar{z-index:1;height:20px;transition:filter var(--dur-micro), box-shadow var(--dur-micro);align-items:center;display:flex;position:absolute;top:50%;overflow:visible;transform:translateY(-50%)}.htl-bar:hover{filter:brightness(1.2);z-index:10}.htl-bar:hover .htl-bar-tip{display:flex}.htl-bar.selected{filter:brightness(1.25);box-shadow:0 0 0 1.5px,0 0 10px #0009}.htl-bar-bg{border-radius:var(--radius-1);border-left:3px solid;position:absolute;inset:0}.htl-bar-tip{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-1);white-space:nowrap;font-family:var(--font-mono);color:var(--fg-1);text-transform:none;letter-spacing:normal;pointer-events:none;z-index:30;flex-direction:column;gap:2px;padding:4px 8px;font-size:10px;font-weight:400;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000080}.htl-bar-title{z-index:1;font-family:var(--font-mono);white-space:nowrap;color:currentColor;text-shadow:0 0 8px var(--bg-0), 0 0 4px var(--bg-0);padding:0 8px 0 10px;font-size:10px;font-weight:500;position:relative}.htl-detection{pointer-events:none;z-index:20;border-left:1.5px dashed #ff6b35a6;width:0;position:absolute;top:0;bottom:0}.htl-detection-label{background:var(--bg-1);border:1px solid var(--syn-orange);color:var(--syn-orange);font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;border-radius:var(--radius-1);white-space:nowrap;cursor:pointer;pointer-events:auto;z-index:15;transition:background var(--dur-micro);outline:none;padding:2px 7px;font-size:9px;font-weight:500;position:absolute;top:30px;transform:translate(-50%)}.htl-detection-label:hover,.htl-detection-label.active{background:#ff6b3526}.htl-detection-label:hover .htl-bar-tip{display:flex}.htl-empty{height:100%;min-height:80px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--fg-2);justify-content:center;align-items:center;display:flex}@keyframes htl-detail-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.htl-detail{border-top:1px solid var(--line-1);padding:var(--sp-3) var(--sp-4);background:var(--bg-0);animation:htl-detail-in .18s var(--ease-out) both;flex-shrink:0}.htl-detail-top{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.htl-detail-ts{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-2)}.htl-detail-phase{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--syn-red);border-radius:var(--radius-pill);background:#e5484d14;border:1px solid #e5484d40;padding:1px 8px}.htl-detail-duration{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--radius-pill);padding:1px 8px}.htl-detail-title{font-size:var(--fs-sm);color:var(--fg-0);margin-bottom:var(--sp-1);font-weight:500}.htl-detail-desc{font-size:var(--fs-sm);color:var(--fg-1);line-height:var(--lh-base);margin:0}.htl-untitled{color:var(--fg-2);font-style:italic}.login-page{justify-content:center;align-items:center;gap:var(--sp-4);background:var(--bg-0);flex-direction:column;min-height:100vh;display:flex}.login-credit{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-2);letter-spacing:var(--tracking-wide)}.login-card{align-items:center;gap:var(--sp-5);padding:var(--sp-8) var(--sp-7);background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-2);flex-direction:column;min-width:320px;display:flex}.login-brand{align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-lg);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-0);font-weight:600;display:flex}.login-sub{font-size:var(--fs-sm);color:var(--fg-1);font-family:var(--font-mono);text-align:center;margin:0}.login-google-btn{align-items:center;gap:var(--sp-2);background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius-1);color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);transition:border-color var(--dur-state) var(--ease-out);padding:10px 20px;text-decoration:none;display:flex}.login-google-btn:hover{border-color:var(--accent-soft)}.home-user{padding-left:var(--sp-2);border-left:1px solid var(--line-1);align-items:center;display:flex}.home-avatar-wrap{align-items:center;display:flex;position:relative}.home-avatar-wrap:hover .home-avatar-menu{opacity:1;pointer-events:all}.home-avatar{border-radius:var(--radius-pill);border:1px solid var(--line-2);object-fit:cover;cursor:pointer;width:26px;height:26px}.home-avatar-fallback{border-radius:var(--radius-pill);background:var(--bg-3);border:1px solid var(--line-2);cursor:pointer;width:26px;height:26px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);justify-content:center;align-items:center;display:flex}.home-avatar-menu{gap:var(--sp-1);opacity:0;pointer-events:none;min-width:140px;transition:opacity var(--dur-state) var(--ease-out);z-index:100;background:0 0;flex-direction:column;padding-top:8px;display:flex;position:absolute;top:100%;right:0}.home-avatar-menu-inner{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-2);padding:var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex}.home-avatar-name{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-1);padding:2px var(--sp-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.home-avatar-logout{text-align:left;cursor:pointer;width:100%;padding:5px var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--syn-red);border-radius:var(--radius-1);transition:background var(--dur-micro);background:0 0;border:none}.home-avatar-logout:hover{background:#e5484d14}.login-form{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.login-input{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);width:100%;color:var(--fg-0);font-family:var(--font-mono);font-size:var(--fs-sm);transition:border-color var(--dur-micro);outline:none;padding:9px 12px}.login-input::placeholder{color:var(--fg-2)}.login-input:focus{border-color:var(--accent-soft)}.login-submit-btn{background:var(--accent-soft);border-radius:var(--radius-1);color:#fff;width:100%;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:opacity var(--dur-micro);border:none;padding:9px;font-weight:600}.login-submit-btn:hover{opacity:.85}.login-error{border-radius:var(--radius-1);color:var(--syn-red);font-family:var(--font-mono);font-size:var(--fs-xs);background:#e5484d1a;border:1px solid #e5484d4d;margin:0;padding:6px 10px}.login-divider{align-items:center;gap:var(--sp-2);width:100%;color:var(--fg-2);font-family:var(--font-mono);font-size:var(--fs-xs);display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line-1);flex:1;height:1px}.modal-backdrop{z-index:1200;animation:overlay-in .15s var(--ease-out) both;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-modal{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-2);width:360px;max-width:92vw;animation:pop-in .2s var(--ease-out) both;flex-direction:column;display:flex}.export-modal-header{border-bottom:1px solid var(--line-1);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.export-modal-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-1)}.export-modal-body{flex-direction:column;gap:14px;padding:16px;display:flex}.export-preview{background:var(--bg-2);border:1px solid var(--line-1);border-radius:var(--radius-1);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.export-preview-section{font-size:var(--fs-xs);color:var(--fg-1);align-items:center;gap:8px;display:flex}.export-preview-summary{color:var(--accent)}.export-actions{gap:8px;display:flex}.export-action-btn{flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.export-action-btn:disabled{opacity:.5;cursor:not-allowed}.export-btn-spinner{border:2px solid #ffffff1f;border-top-color:var(--fg-0);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.65s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.share-url-row{background:var(--bg-1);border:1px solid var(--line-1);border-radius:var(--radius-1);align-items:center;gap:8px;padding:6px 8px;display:flex}.share-url{font-family:var(--font-mono);color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;text-decoration:none;overflow:hidden}.share-url:hover{text-decoration:underline}.share-copy-btn{color:var(--fg-1);flex-shrink:0}.share-copy-btn:hover{color:var(--fg-0)}.share-error{color:var(--syn-red);text-align:center;font-size:12px}.share-field{flex-direction:column;gap:8px;display:flex}.share-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-nav);text-transform:uppercase;color:var(--fg-1)}.share-hint{color:var(--fg-2);font-size:11px}.share-selected-summary{flex-direction:column;gap:6px;display:flex}.share-selected-count{font-family:var(--font-mono);color:var(--fg-0);letter-spacing:.03em;font-size:12px}.share-selected-count:before{content:"→ ";color:var(--accent)}.share-selected-chips{flex-wrap:wrap;gap:4px;display:flex}.share-selected-chip{border-radius:var(--radius-pill);color:var(--fg-0);background:#9b7bff1a;border:1px solid #9b7bff40;align-items:center;gap:5px;padding:3px 6px 3px 4px;font-size:11px;display:inline-flex}.share-selected-chip button{cursor:pointer;color:var(--fg-2);transition:color var(--dur-micro);background:0 0;border:none;align-items:center;margin-left:1px;padding:0;display:flex}.share-selected-chip button:hover{color:var(--danger)}.share-chip-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:16px;height:16px}.share-chip-avatar-fallback{background:var(--bg-3);color:var(--fg-1);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:9px;display:flex}.share-no-users{color:var(--fg-2);font-size:12px;font-family:var(--font-mono);padding:12px 0}.share-search{width:100%;padding:6px 10px;font-size:12px}.share-user-list{border:1px solid var(--line-1);border-radius:var(--radius-2);flex-direction:column;gap:2px;display:flex;overflow:hidden}.share-user-row{background:var(--bg-1);cursor:pointer;text-align:left;width:100%;transition:background var(--dur-micro);border:none;border-radius:0;align-items:center;gap:10px;padding:8px 10px;display:flex}.share-user-row:hover{background:var(--bg-2)}.share-user-row.selected{border-left:2px solid var(--accent);background:#9b7bff1f;padding-left:8px}.share-user-row.selected .share-user-name{color:var(--accent)}.share-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.share-avatar-fallback{background:var(--bg-3);color:var(--fg-0);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:13px;display:flex}.share-user-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.share-user-name{color:var(--fg-0);font-size:13px;font-weight:500}.share-user-email{color:var(--fg-2);font-size:11px;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-user-check{width:20px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}
