.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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#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;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{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-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--font:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--bg:#f6f6f4;--surface:#fff;--surface-2:#f2f2ef;--surface-3:#e9e9e5;--border:#e3e3de;--border-strong:#cfcfc8;--text:#1d1d1b;--text-2:#5c5c57;--text-3:#8c8c86;--accent:#4b5bd6;--accent-soft:#eceefc;--accent-text:#3644b8;--danger:#c2413a;--danger-soft:#fbeceb;--warn:#9a6a12;--warn-soft:#fbf3e2;--warn-border:#efd9a8;--ok:#2f7a4b;--canvas-bg:#f6f6f4;--canvas-dot:#cfcfc8;--minimap-mask:#f6f6f4b3;--note-default:#fff;--note-sand:#fbf5e8;--note-sage:#f0f6f0;--note-sky:#eef4fa;--note-rose:#fbf0ef;--note-lilac:#f4f1fa;--note-default-edge:#d9d9d3;--note-sand-edge:#e7d3a7;--note-sage-edge:#b9d2bd;--note-sky-edge:#b5cde4;--note-rose-edge:#e6bcbc;--note-lilac-edge:#cdc0e3;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #14140f0f;--shadow:0 1px 2px #14140f0d, 0 4px 12px #14140f0d;--shadow-lg:0 8px 30px #14140f1f;--sidebar-w:232px;--ai-w:384px;--toolbar-h:52px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-loading{height:100%;color:var(--text-3);place-items:center;display:grid}.app-loading.is-error{color:var(--danger)}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-width:960px;height:100%;transition:grid-template-columns .18s;display:grid}.app.sidebar-collapsed{--sidebar-w:52px}.app.with-ai{grid-template-columns:var(--sidebar-w) minmax(0, 1fr) var(--ai-w)}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn-sm{height:28px;padding:0 9px;font-size:12.5px}.btn-icon{width:32px;padding:0}.btn-sm.btn-icon{width:28px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--text);color:#fff}.btn-primary:hover:not(:disabled){background:#333330}.btn-secondary{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a83731}.icon-btn{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:28px;padding:0 6px;font-size:12.5px}.sidebar{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.brand{height:var(--toolbar-h);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:0 10px 0 16px;display:flex}.brand-mark{color:var(--text);place-items:center;display:grid}.brand-name{letter-spacing:-.01em;font-weight:600}.brand-tag{background:var(--surface-3);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;margin-left:0;padding:1px 6px;font-size:10.5px;font-weight:600}.sidebar-section-header{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;padding:14px 10px 6px 16px;font-size:11px;font-weight:600;display:flex}.project-tree,.tree-boards{margin:0;padding:0;list-style:none}.project-tree{flex:1;padding:0 8px 8px;overflow-y:auto}.tree-project+.tree-project{margin-top:2px}.tree-boards{padding:0 0 4px 18px}.tree-row{border-radius:var(--radius-sm);align-items:center;display:flex;position:relative}.tree-row:hover{background:var(--surface-3)}.tree-row.is-board.is-active{background:var(--surface);box-shadow:var(--shadow-sm)}.tree-open{min-width:0;height:30px;color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:0 8px 0 6px;display:flex}.tree-row.is-project .tree-open,.tree-row.is-board.is-active .tree-open{color:var(--text);font-weight:500}.tree-chevron{width:12px;color:var(--text-3);place-items:center;transition:transform .12s;display:inline-grid}.tree-chevron.is-open{transform:rotate(90deg)}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:400}.tree-actions{gap:1px;display:none;position:absolute;right:4px}.tree-row:hover .tree-actions,.tree-row:focus-within .tree-actions{display:flex}.tree-rename-input{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);outline:none;width:100%;height:28px;margin:1px 0;padding:0 8px}.tree-add-board{border-radius:var(--radius-sm);width:100%;height:26px;color:var(--text-3);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.tree-add-board:hover{background:var(--surface-3);color:var(--text)}.breadcrumb{align-items:center;gap:2px;min-width:0;display:flex}.breadcrumb-project{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:14px;overflow:hidden}.breadcrumb-sep{color:var(--text-3);margin:0 4px}.no-board{text-align:center;color:var(--text-3);flex:1;place-content:center;justify-items:center;gap:6px;display:grid}.no-board h3{color:var(--text-2);margin:0;font-size:15px}.no-board p{margin:0 0 10px}.sidebar-empty{color:var(--text-3);padding:0 16px}.sidebar-footer{border-top:1px solid var(--border);padding:10px 12px 14px}.sidebar-note{color:var(--text-3);margin:6px 4px 0;font-size:11.5px}.toolbar{height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:5;align-items:center;gap:12px;padding:0 12px 0 16px;display:flex;position:relative}.toolbar-left,.toolbar-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.toolbar-left{flex-shrink:1;min-width:0}.toolbar-center{flex:1;justify-content:center;min-width:0;display:flex}.project-title-input{border-radius:var(--radius-sm);text-overflow:ellipsis;field-sizing:content;background:0 0;border:1px solid #0000;min-width:80px;max-width:260px;height:30px;margin-left:-8px;padding:0 8px;font-size:14px;font-weight:600}.project-title-input:hover{border-color:var(--border)}.project-title-input:focus{border-color:var(--accent);background:var(--surface);outline:none}.save-indicator{color:var(--text-3);white-space:nowrap;font-size:12px}.save-indicator.is-error{color:var(--danger);font-weight:500}.toolbar-hint{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.selection-bar{z-index:6;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);white-space:nowrap;align-items:center;gap:6px;padding:4px 4px 4px 12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.selection-count{margin-right:4px;font-size:12.5px;font-weight:600}.selection-hint{color:var(--text-3);font-size:12px}.toolbar-divider{background:var(--border);width:1px;height:18px}.swatches{gap:4px;display:flex}.swatch{border:1px solid var(--border-strong);cursor:pointer;border-radius:50%;width:18px;height:18px;padding:0}.swatch.is-active{box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--text)}.canvas{background:var(--canvas-bg);flex:1;min-height:0;position:relative}.canvas-empty{text-align:center;pointer-events:none;color:var(--text-3);place-content:center;display:grid;position:absolute;inset:0}.canvas-empty.is-standalone{flex:1;position:static}.canvas-empty h3{color:var(--text-2);margin:0 0 4px;font-size:15px;font-weight:600}.canvas-empty p{margin:0}.react-flow{--xy-background-color:var(--canvas-bg);--xy-edge-stroke:#a9a9a2;--xy-edge-stroke-selected:var(--accent);--xy-selection-background-color:#4b5bd60f;--xy-selection-border:1px solid #4b5bd680}.react-flow__controls{box-shadow:var(--shadow);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.react-flow__controls-button{border-bottom-color:var(--border)}.react-flow__minimap{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}.note{--note-bg:var(--note-default);--note-edge:var(--note-default-edge);border-radius:var(--radius-lg);background:var(--note-bg);border:1px solid var(--note-edge);width:280px;box-shadow:var(--shadow);cursor:grab;padding:12px 14px 14px;transition:box-shadow .15s,border-color .15s}.note:hover{box-shadow:0 1px 2px #14140f0f,0 8px 20px #14140f14}.react-flow__node.dragging .note{cursor:grabbing;box-shadow:var(--shadow-lg)}.note.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--shadow)}.note.is-highlighted{box-shadow:0 0 0 3px #dea53259, var(--shadow);border-color:#d39b2a}.note.is-editing{cursor:default}.note-sand{--note-bg:var(--note-sand);--note-edge:var(--note-sand-edge)}.note-sage{--note-bg:var(--note-sage);--note-edge:var(--note-sage-edge)}.note-sky{--note-bg:var(--note-sky);--note-edge:var(--note-sky-edge)}.note-rose{--note-bg:var(--note-rose);--note-edge:var(--note-rose-edge)}.note-lilac{--note-bg:var(--note-lilac);--note-edge:var(--note-lilac-edge)}.swatch.note-default{background:var(--note-default)}.swatch.note-sand{background:var(--note-sand-edge)}.swatch.note-sage{background:var(--note-sage-edge)}.swatch.note-sky{background:var(--note-sky-edge)}.swatch.note-rose{background:var(--note-rose-edge)}.swatch.note-lilac{background:var(--note-lilac-edge)}.note-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.note-kind{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:10.5px;font-weight:600}.note-kind.kind-metric{color:#3a7a55}.note-kind.kind-finding{color:#8a6418}.note-kind.kind-friction{color:#b2453e}.note-kind.kind-hypothesis{color:#6b4fb0}.note-kind.kind-idea{color:#2f7a6a}.note-kind.kind-question{color:#3c63a8}.note-kind.kind-observation{color:#4f6a8a}.note-cited{color:#8a5d0d;background:#fbefd5;border-radius:4px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:600}.note-title{letter-spacing:-.01em;word-wrap:break-word;margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.3}.note-title.is-empty,.note-body.is-empty{color:var(--text-3);font-weight:400}.note-body{color:var(--text-2);white-space:pre-wrap;word-wrap:break-word;font-size:12.5px;line-height:1.5}.note-title-input,.note-body-input{resize:none;background:0 0;border:0;outline:none;width:100%;padding:0;display:block}.note-title-input{letter-spacing:-.01em;margin-bottom:6px;font-size:14px;font-weight:600}.note-body-input{color:var(--text);min-height:60px;font-size:12.5px;line-height:1.5;overflow:hidden}.note.is-editing{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd626, var(--shadow)}.note-handle.react-flow__handle{background:var(--surface);border:1.5px solid var(--accent);opacity:0;width:10px;height:10px;transition:opacity .12s}.note:hover .note-handle,.note.is-selected .note-handle,.react-flow.connecting .note-handle{opacity:1}.note.is-editing .note-handle{opacity:0;pointer-events:none}.link-edge{stroke:#a9a9a2;stroke-width:1.5px}.link-edge.is-contradiction{stroke:#d3857f;stroke-dasharray:5 4}.link-edge.is-highlighted{stroke:#d39b2a;stroke-width:2.25px}.link-edge.is-selected{stroke:var(--accent);stroke-width:2px}.edge-label{pointer-events:all;background:var(--surface);border:1px solid var(--border);color:var(--text-2);cursor:pointer;white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:500;position:absolute}.edge-label.is-contradiction{color:var(--danger);background:#fff8f7;border-color:#efc7c4}.edge-label.is-selected{border-color:var(--accent);color:var(--accent-text)}.edge-label.is-placeholder{color:var(--text-3);border-style:dashed}.edge-label-input{background:0 0;border:0;outline:none;width:110px;font-size:11px}.ai-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.ai-header{height:var(--toolbar-h);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:0 8px 0 16px;display:flex}.ai-title{align-items:center;gap:7px;margin-right:auto;font-weight:600;display:flex}.provider-badge{border:1px solid var(--border);max-width:190px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;cursor:help;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:11.5px;font-weight:500;display:inline-flex;overflow:hidden}.provider-badge .dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:6px;height:6px}.provider-badge.is-mock{background:var(--warn-soft);border-color:var(--warn-border);color:var(--warn)}.provider-badge.is-mock .dot{background:#d9a032}.provider-badge.is-live .dot{background:var(--ok)}.provider-badge.is-offline{background:var(--danger-soft);color:var(--danger);border-color:#efc7c4}.provider-badge.is-offline .dot{background:var(--danger)}.ai-controls{padding:10px 16px 0}.scope{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);padding:2px;display:flex;position:relative}.scope-thumb{background:var(--surface);width:calc(50% - 2px);box-shadow:var(--shadow-sm);border-radius:4px;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;top:2px;bottom:2px;left:2px}.scope.is-selection .scope-thumb{transform:translate(100%)}.scope button{height:26px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1;font-size:12px;font-weight:500;transition:color .15s;position:relative}.scope button.is-active{color:var(--text)}.scope button:disabled{color:var(--text-3);cursor:not-allowed}.tabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:4px;padding:8px 16px 0;display:flex;position:relative}.tabs button{height:34px;color:var(--text-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 10px;font-weight:500;transition:color .15s;display:inline-flex}.tabs button:hover,.tabs button.is-active{color:var(--text)}.tab-indicator{background:var(--text);border-radius:2px 2px 0 0;height:2px;transition:transform .25s cubic-bezier(.2,.8,.2,1),width .25s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:-1px;left:0}.tab-busy{color:var(--accent);animation:.2s ease-out fade-in;display:inline-grid}.ai-body{flex:1;min-height:0;padding:14px 16px 24px;overflow-y:auto}.ai-body.is-chat{flex-direction:column;padding:0;display:flex;overflow:hidden}.ai-empty{text-align:center;flex-direction:column;align-items:center;padding:36px 12px 12px;display:flex}.ai-empty-icon{background:var(--surface-2);width:40px;height:40px;color:var(--text-2);border-radius:10px;place-items:center;margin-bottom:12px;display:grid}.ai-empty h3{margin:0 0 6px;font-size:14px}.ai-empty p{color:var(--text-2);max-width:290px;margin:0 0 16px}.ai-error{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);border:1px solid #efc7c4;gap:10px;padding:12px;display:flex}.ai-error p{color:var(--text);margin:4px 0 10px}.mock-notice{border-radius:var(--radius-sm);background:var(--warn-soft);border:1px solid var(--warn-border);color:var(--warn);align-items:flex-start;gap:8px;margin-bottom:10px;padding:8px 10px;font-size:12px;display:flex}.mock-notice svg{flex-shrink:0;margin-top:1px}.result-meta{color:var(--text-3);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:11.5px;display:flex}.stale-tag{background:var(--surface-2);color:var(--text-2);border-radius:4px;margin-left:6px;padding:1px 6px;font-weight:500}.summary-overview{margin:0 0 16px;font-size:13.5px;line-height:1.55}.ai-section-title{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin:18px 0 8px;font-size:11px;font-weight:600}.point-list{counter-reset:point;margin:0;padding:0;list-style:none}.point{border-top:1px solid var(--border);padding:10px 0 10px 24px;position:relative}ol.point-list .point:before{counter-increment:point;content:counter(point);background:var(--surface-2);width:16px;height:16px;color:var(--text-2);text-align:center;border-radius:4px;font-size:10.5px;font-weight:600;line-height:16px;position:absolute;top:11px;left:0}.point.is-conclusion:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:16px;left:4px}.point p{margin:0 0 6px}.sources{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.sources.is-empty{color:var(--text-3);font-size:11.5px}.sources-label{color:var(--text-3);margin-right:2px;font-size:11px}.source-chip{border:1px solid var(--border);background:var(--surface);max-width:210px;color:var(--text-2);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px 2px 3px;font-size:11.5px;display:inline-flex;overflow:hidden}.source-title{text-overflow:ellipsis;overflow:hidden}.source-chip:hover{color:var(--text);background:#fffaf0;border-color:#d39b2a}.source-chip.is-missing{color:var(--text-3);cursor:default;padding-left:8px;text-decoration:line-through}.source-index{background:var(--surface-2);border-radius:999px;place-items:center;min-width:16px;height:16px;font-size:10px;font-weight:600;display:inline-grid}.source-focus-all{color:var(--accent-text);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 4px;font-size:11.5px;font-weight:500;display:inline-flex}.source-focus-all:hover{text-decoration:underline}.filter-chips{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.filter-chips button{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--text-2);cursor:pointer;border-radius:999px;padding:0 9px;font-size:11.5px}.filter-chips button.is-active{background:var(--text);border-color:var(--text);color:#fff}.insight-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.insight{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);border-left-width:3px;padding:12px}.insight h5{margin:4px 0;font-size:13px}.insight p{color:var(--text-2);margin:0 0 8px}.insight-kind{text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;font-weight:600}.insight-theme{border-left-color:#4f6a8a}.insight-theme .insight-kind{color:#4f6a8a}.insight-relationship{border-left-color:#3a7a55}.insight-relationship .insight-kind{color:#3a7a55}.insight-contradiction{border-left-color:#c2413a}.insight-contradiction .insight-kind{color:#c2413a}.insight-question{border-left-color:#3c63a8}.insight-question .insight-kind{color:#3c63a8}.insight-opportunity{border-left-color:#8a6418}.insight-opportunity .insight-kind{color:#8a6418}.muted{color:var(--text-3)}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:14px 16px;display:flex;overflow-y:auto}.bubble{border-radius:12px;max-width:92%;padding:9px 12px;line-height:1.5}.bubble p{white-space:pre-wrap;margin:0}.bubble.is-user{background:var(--text);color:#fff;white-space:pre-wrap;border-bottom-right-radius:4px;align-self:flex-end}.bubble.is-assistant{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.bubble.is-assistant .sources{margin-top:8px}.bubble.is-error{background:var(--danger-soft);color:var(--danger);border:1px solid #efc7c4;align-self:flex-start}.bubble.is-error p{margin-bottom:8px}.bubble-mock,.grounding{border-radius:4px;margin:0 6px 6px 0;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-block}.bubble-mock{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-border)}.grounding.is-partial{background:var(--surface-3);color:var(--text-2)}.grounding.is-not_found{background:var(--danger-soft);color:var(--danger)}.bubble.is-typing{gap:4px;padding:12px 14px;display:flex}.bubble.is-typing span{background:var(--text-3);border-radius:50%;width:6px;height:6px}.suggestions{flex-direction:column;gap:6px;width:100%;display:flex}.suggestion{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-2);text-align:left;cursor:pointer;padding:8px 12px}.suggestion:hover{border-color:var(--border-strong);color:var(--text)}.chat-input{border-top:1px solid var(--border);flex-shrink:0;padding:10px 12px 12px}.chat-input textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);resize:none;outline:none;width:100%;padding:8px 10px}.chat-input textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd61f}.chat-input-actions{justify-content:flex-end;gap:6px;margin-top:6px;display:flex}.dialog-backdrop{z-index:100;background:#14140f47;place-items:center;display:grid;position:fixed;inset:0}.dialog{border-radius:var(--radius-lg);background:var(--surface);width:380px;box-shadow:var(--shadow-lg);padding:20px}.dialog h2{margin:0 0 8px;font-size:15px}.dialog p{color:var(--text-2);margin:0 0 18px}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.auth{background:radial-gradient(circle, var(--canvas-dot) 1.2px, transparent 1.3px) 0 0 / 22px 22px, var(--canvas-bg);place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:28px}.auth-brand{border:0;gap:10px;height:auto;margin-bottom:22px;padding:0;font-size:17px}.auth h1{letter-spacing:-.01em;margin:0 0 6px;font-size:18px}.auth-subtitle{color:var(--text-2);margin:0 0 18px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{flex-direction:column;gap:5px;font-size:12.5px;font-weight:500;display:flex}.auth-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);outline:none;height:36px;padding:0 10px;font-weight:400}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd61f}.auth-form .btn{height:36px;margin-top:4px}.auth-hint{color:var(--text-3);font-size:11.5px;font-weight:400}.auth-error,.auth-notice{border-radius:var(--radius-sm);margin:0;padding:8px 10px;font-size:12.5px}.auth-error{background:var(--danger-soft);color:var(--danger)}.auth-notice{background:var(--accent-soft);color:var(--accent-text)}.auth-links{color:var(--text-2);flex-direction:column;align-items:center;gap:8px;margin-top:18px;font-size:12.5px;display:flex}.auth-links button{color:var(--accent-text);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.auth-links button:hover{text-decoration:underline}.account{align-items:center;gap:8px;margin-top:4px;display:flex}.avatar{border-radius:50%;flex-shrink:0;display:block}.settings-field.profile-photo{flex-direction:row;align-items:center;gap:12px}.profile-photo .settings-hint{margin:0}.account-info{flex-direction:column;flex:1;min-width:0;display:flex}.account-email{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.account-sync{color:var(--ok);font-size:11px}.import-banner{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0 0 10px;padding:10px;font-size:12px}.import-banner p{color:var(--text-2);margin:0 0 8px}.import-banner.is-done{color:var(--ok)}.import-actions{gap:4px;display:flex}.auth-google{gap:10px;width:100%;height:38px}.auth-divider{color:var(--text-3);align-items:center;gap:10px;margin:16px 0;font-size:11.5px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.sidebar{overflow:hidden}.sidebar:not(.is-collapsed)>*{min-width:232px}.sidebar-toggle{color:var(--text-3);margin-left:auto}.tree-row:hover .tree-count,.tree-row:focus-within .tree-count{display:none}.tree-row.is-project:hover .tree-open,.tree-row.is-project:focus-within .tree-open{padding-right:82px}.tree-row.is-board:hover .tree-open,.tree-row.is-board:focus-within .tree-open{padding-right:58px}.tree-actions .icon-btn:hover{background:var(--border)}.account-sync{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account .btn{color:var(--text-3);flex-shrink:0}.sidebar.is-collapsed{align-items:stretch}.rail-header{height:var(--toolbar-h);border-bottom:1px solid var(--border);flex-shrink:0;place-items:center;display:grid}.rail-brand{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:relative}.rail-brand-icon{opacity:0;place-items:center;display:grid;position:absolute;inset:0}.rail-brand:hover,.rail-brand:focus-visible{background:var(--surface-3)}.rail-brand:hover .brand-mark,.rail-brand:focus-visible .brand-mark{opacity:0}.rail-brand:hover .rail-brand-icon,.rail-brand:focus-visible .rail-brand-icon{opacity:1}.rail-items{flex-direction:column;flex:1;align-items:center;gap:4px;padding-top:10px;display:flex}.rail-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-2);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.rail-btn:hover{background:var(--surface-3);color:var(--text)}.rail-btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.rail-footer{border-top:1px solid var(--border);place-items:center;padding:12px 0 14px;display:grid}.settings-dialog{border-radius:var(--radius-lg);background:var(--surface);width:min(860px,100vw - 48px);height:min(640px,100vh - 48px);box-shadow:var(--shadow-lg);outline:none;grid-template-columns:200px minmax(0,1fr);display:grid;position:relative;overflow:hidden}.settings-nav{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:18px 10px;display:flex}.settings-nav h1{letter-spacing:-.01em;margin:0 8px 12px;font-size:15px}.settings-nav button{border-radius:var(--radius-sm);height:32px;color:var(--text-2);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:0 10px;font-weight:500;display:flex}.settings-nav button:hover{background:var(--surface-3);color:var(--text)}.settings-nav button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.settings-content{padding:26px 56px 32px 32px;overflow-y:auto}.settings-close{z-index:1;width:30px;height:30px;position:absolute;top:16px;right:16px}.settings-section h2{letter-spacing:-.01em;margin:0 0 6px;font-size:18px}.settings-intro{max-width:560px;color:var(--text-2);margin:0 0 18px}.settings-group{border-top:1px solid var(--border);padding:18px 0}.settings-group:first-of-type{border-top:0;padding-top:6px}.settings-section h2+.settings-group{border-top:0}.settings-group h3{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px;font-size:11px;font-weight:600}.settings-field{flex-direction:column;gap:6px;max-width:460px;margin-bottom:14px;display:flex}.settings-field label,.settings-label{font-size:12.5px;font-weight:500}.settings-value{color:var(--text-2)}.settings-stack{flex-direction:column;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:16px;max-width:560px;padding:6px 0;display:flex}.settings-row .settings-hint{margin:2px 0 0}.settings-input,.settings-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);outline:none;height:34px;padding:0 10px}.settings-input:focus,.settings-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd61f}.inline-form{gap:8px;display:flex}.inline-form .settings-input{flex:1}.settings-hint{color:var(--text-3);align-items:center;gap:5px;margin:0;font-size:12px;display:flex}.settings-error{color:var(--danger);margin:8px 0 0;font-size:12.5px}.settings-success{color:var(--ok);margin:0 0 10px;font-size:12.5px}.settings-callout{border:1px solid var(--warn-border);border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;font-size:12.5px;display:flex}.provider-list{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.provider-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.provider-card.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.provider-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.provider-title{align-items:baseline;gap:8px;display:flex}.provider-title strong{font-size:14px}.provider-vendor{color:var(--text-3);font-size:12px}.provider-active{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.provider-status{color:var(--text-3);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.provider-status .dot{background:var(--ok);border-radius:50%;width:6px;height:6px}.provider-status.is-connected{color:var(--text-2)}.provider-desc{color:var(--text-2);margin:4px 0 10px;font-size:12.5px}.key-form{flex-direction:column;gap:8px;display:flex}.key-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;display:flex}.key-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd61f}.key-input input{height:34px;font-family:var(--mono);background:0 0;border:0;outline:none;flex:1;padding:0 10px;font-size:12.5px}.key-reveal{border:0;border-left:1px solid var(--border);height:34px;color:var(--text-2);cursor:pointer;background:0 0;padding:0 10px;font-size:12px}.key-actions{align-items:center;gap:6px;display:flex}.key-actions .spacer{flex:1}.key-actions a{color:var(--accent-text);font-size:12.5px;text-decoration:none}.key-actions a:hover{text-decoration:underline}.confirm-text{color:var(--text-2);font-size:12.5px}.model-row{gap:6px;display:flex}.model-row .settings-select{flex:1;min-width:0}.segmented{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);align-self:flex-start;padding:2px;display:inline-flex}.segmented button{height:28px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 14px;font-size:12.5px;font-weight:500}.segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.switch{background:var(--border-strong);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;width:36px;height:20px;padding:0;transition:background .15s;position:relative}.switch span{width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.switch.is-on{background:var(--accent)}.switch.is-on span{transform:translate(16px)}.provider-badge.is-button{font:inherit;cursor:pointer;font-size:11.5px;font-weight:500}.ai-error-actions{gap:6px;display:flex}.ai-setup-banner{border:1px solid var(--warn-border);border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);align-items:center;gap:8px;margin:10px 16px 0;padding:8px 10px;font-size:12px;display:flex}.ai-setup-banner button{color:var(--accent-text);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-weight:600}.account .sidebar-note{margin:0}.rail-footer{flex-direction:column;align-items:center;gap:10px;display:flex}.provider-model{flex-direction:column;gap:6px;margin:0 0 12px;display:flex}.model-picker{position:relative}.model-trigger{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;cursor:pointer;align-items:center;gap:10px;width:100%;min-height:40px;padding:6px 10px;display:flex}.model-trigger:hover{border-color:var(--border-strong)}.model-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px #4b5bd61f}.model-trigger-text{flex-direction:column;flex:1;min-width:0;display:flex}.model-trigger-label{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.model-trigger-meta{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.model-trigger-chevron{width:18px;height:18px;color:var(--text-3);flex-shrink:0;place-items:center;transition:transform .12s;display:grid;transform:rotate(90deg)}.model-trigger-chevron.is-open{transform:rotate(-90deg)}.model-popover{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.model-search{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:6px 6px 6px 10px;display:flex}.model-search input{background:0 0;border:0;outline:none;flex:1;height:30px}.model-filters{border-bottom:1px solid var(--border);gap:4px;padding:6px 10px;display:flex}.model-filters button{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--text-2);cursor:pointer;border-radius:999px;padding:0 10px;font-size:11.5px}.model-filters button.is-active{background:var(--text);border-color:var(--text);color:#fff}.model-list{max-height:300px;padding:4px;overflow-y:auto}.model-group{z-index:1;background:var(--surface);color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:8px 8px 4px;font-size:10.5px;font-weight:600;position:sticky;top:-4px}.model-option{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:7px 8px;display:flex}.model-option.is-active{background:var(--surface-2)}.model-option-main{flex-direction:column;flex:1;min-width:0;display:flex}.model-option-label{align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:flex}.model-option-meta{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.model-option.is-selected .model-option-label{color:var(--accent-text)}.model-check{color:var(--accent-text);font-weight:600}.model-badge{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:600}.model-badge.is-free{color:var(--ok);background:#e7f3eb}.model-empty{color:var(--text-3);margin:0;padding:14px 10px;font-size:12.5px}.model-empty.is-error{color:var(--danger)}.stale-tag.is-fresh{color:var(--ok);background:#e7f3eb}.regenerate-hint{color:var(--text-3);margin:-4px 0 12px;font-size:11.5px}.spinner{color:var(--accent);flex-shrink:0;animation:1.4s linear infinite spinner-rotate}.spinner-track,.spinner-arc{fill:none;stroke-width:2.6px}.spinner-track{stroke:currentColor;opacity:.16}.spinner-arc{stroke:currentColor;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:45px;transform-origin:50%;animation:1.4s ease-in-out infinite spinner-dash}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dashoffset:54px}50%{stroke-dashoffset:18px;transform:rotate(120deg)}to{stroke-dashoffset:54px;transform:rotate(360deg)}}.ai-loading{flex-direction:column;gap:14px;padding-top:4px;animation:.25s ease-out fade-in;display:flex}.ai-loading-head{color:var(--text);align-items:center;gap:9px;font-weight:500;display:flex}.ai-loading-sub{color:var(--text-3);font-weight:400}.ai-loading-time{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11.5px;animation:.3s ease-out fade-in}.ai-loading-note{color:var(--text-3);margin:-6px 0 0;font-size:12px;animation:.3s ease-out fade-in}.sk-line,.sk-label,.sk-badge,.sk-chip{background:var(--surface-2);border-radius:5px;position:relative;overflow:hidden}.sk-line:after,.sk-label:after,.sk-badge:after,.sk-chip:after{content:"";background:linear-gradient(90deg,#0000,#ffffffbf,#0000);animation:1.5s ease-in-out infinite sk-sweep;position:absolute;inset:0;transform:translate(-100%)}.sk-line{height:11px;margin-bottom:8px}.sk-line.thin{height:8px}.w-100{width:100%}.w-95{width:95%}.w-85{width:85%}.w-80{width:80%}.w-70{width:70%}.w-60{width:60%}.w-25{width:25%}.sk-label{width:72px;height:8px;margin:12px 0 4px}.sk-point{border-top:1px solid var(--border);animation:.35s ease-out both rise;animation-delay:calc(var(--i,0) * 60ms);gap:10px;padding:12px 0 4px;display:flex}.sk-badge{border-radius:4px;flex-shrink:0;width:16px;height:16px}.sk-point-body{flex:1}.sk-chips{gap:6px;margin-top:4px;display:flex}.sk-chip{border-radius:999px;width:110px;height:18px}.sk-chip.w-short{width:74px}.sk-insights{flex-direction:column;gap:8px;display:flex}.sk-card{border:1px solid var(--border);border-left:3px solid var(--surface-3);border-radius:var(--radius);animation:.35s ease-out both rise;animation-delay:calc(var(--i,0) * 70ms);padding:12px 12px 6px}@keyframes sk-sweep{to{transform:translate(100%)}}.ai-body{animation:.2s ease-out fade-in}.ai-result{transition:opacity .25s;position:relative}.ai-result.is-new .summary-overview{animation:.4s ease-out both rise}.ai-result.is-new .point,.ai-result.is-new .insight{animation:.4s ease-out both rise;animation-delay:calc(var(--i,0) * 55ms)}.insight-list .insight{animation:.2s ease-out both fade-in}.ai-result.is-refreshing .ai-result-body,.ai-result.is-refreshing .insight-list,.ai-result.is-refreshing .filter-chips{opacity:.45;pointer-events:none;transition:opacity .25s}.refresh-bar{z-index:2;background:var(--accent-soft);height:2px;margin:-14px -16px 12px;position:sticky;top:-14px;overflow:hidden}.refresh-bar:after{content:"";background:var(--accent);border-radius:2px;width:40%;animation:1.2s cubic-bezier(.4,0,.2,1) infinite indeterminate;position:absolute;inset:0}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.regenerating{height:28px;color:var(--accent-text);align-items:center;gap:6px;padding:0 4px;font-size:12.5px;font-weight:500;animation:.2s ease-out fade-in;display:inline-flex}.refresh-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);border:1px solid #efc7c4;flex-wrap:wrap;align-items:flex-start;gap:6px 8px;margin-bottom:12px;padding:8px 10px;font-size:12px;animation:.3s ease-out rise;display:flex}.refresh-error svg{flex-shrink:0;margin-top:1px}.refresh-error span{min-width:0;color:var(--text);flex:1}.refresh-error em{color:var(--text-3);font-style:normal}.refresh-error-actions{gap:10px;display:flex}.refresh-error-actions button{color:var(--accent-text);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.ai-error,.ai-empty{animation:.3s ease-out rise}.bubble.is-new{animation:.28s cubic-bezier(.2,.8,.2,1) both bubble-in}.bubble.is-user.is-new{transform-origin:100% 100%}.bubble.is-assistant.is-new{transform-origin:0 100%}.bubble.is-typing{align-items:center;gap:5px}.bubble.is-typing span{animation:1.2s ease-in-out infinite typing-wave}.bubble.is-typing span:nth-child(2){animation-delay:.15s}.bubble.is-typing span:nth-child(3){animation-delay:.3s}@keyframes typing-wave{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}.suggestion{animation:.3s ease-out both rise;animation-delay:calc(var(--i,0) * 50ms);transition:border-color .15s,color .15s,transform .15s,box-shadow .15s}.suggestion:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.chat-input textarea{min-height:38px;max-height:140px;transition:border-color .15s,box-shadow .15s;overflow-y:auto}.chat-input-actions{align-items:center}.chat-input-hint{color:var(--text-3);margin-right:auto;font-size:11px}.chat-send{min-width:76px}.btn{transition:background .12s,border-color .12s,color .12s,transform .1s,box-shadow .12s,opacity .12s}.btn:active:not(:disabled){transform:scale(.97)}.source-chip{transition:border-color .15s,background .15s,color .15s,transform .15s}.source-chip:hover{transform:translateY(-1px)}.filter-chips button{transition:background .15s,border-color .15s,color .15s}.provider-badge.is-button{transition:border-color .15s,background .15s}.provider-badge.is-button:hover{border-color:var(--border-strong)}.ai-panel{animation:.24s cubic-bezier(.2,.8,.2,1) panel-in}@keyframes panel-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
