@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:Inter Variable,Inter,-apple-system,BlinkMacSystemFont,sans-serif;color-scheme:dark;--bg:#111111;--canvas:#111111;--panel:#181818;--raised:#222222;--hover:#292929;--text:#ededed;--secondary:#c7c7c7;--muted:#979797;--quiet:#737373;--border:#303030;--brand:#ededed;--brand-hover:#ffffff;--on-brand:#171717;--accent:#ededed;--tint:#292929;--danger:#dedede;--shadow:0 6px 26px #0005;--grid:#373737;font-synthesis:none;font-optical-sizing:auto}html[data-theme=light]{color-scheme:light;--bg:#fafafa;--canvas:#fafafa;--panel:#ffffff;--raised:#f1f1f1;--hover:#ebebeb;--text:#171717;--secondary:#404040;--muted:#616161;--quiet:#737373;--border:#d4d4d4;--brand:#171717;--brand-hover:#333333;--on-brand:#ffffff;--accent:#171717;--tint:#eeeeee;--danger:#262626;--shadow:0 6px 26px #00000010;--grid:#d4d4d4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;letter-spacing:-.011em;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,textarea,select{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brand)}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}input,textarea,select{border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:9px 11px;min-width:0}textarea{resize:vertical;line-height:1.6}label{display:flex;flex-direction:column;gap:7px;color:var(--secondary);font-size:12px;margin:20px 0 0}label input,label textarea{width:100%;color:var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);background:var(--panel);border-radius:7px;padding:8px 13px;font-weight:500;white-space:nowrap;transition:background .12s,border-color .12s}.button:hover:not(:disabled){background:var(--hover);border-color:var(--quiet)}.button.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.button.primary:hover:not(:disabled){background:var(--brand-hover)}.button.small{padding:6px 10px;font-size:12px}.icon-button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--muted);flex-shrink:0}.icon-button:hover:not(:disabled),.icon-button.active{background:var(--hover);color:var(--text)}.text-button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--muted);padding:5px 0;font-size:12px}.text-button:hover{color:var(--text)}.muted{color:var(--muted)}.small{font-size:11px}.danger{color:var(--danger)}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.025em;font-size:14px}.brand>svg{color:var(--secondary)}.brand-muted{color:var(--muted);font-weight:400;margin-left:2px}.app-header{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--border)}.header-right{display:flex;align-items:center;gap:12px;margin-left:auto}.local-badge{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);margin-right:8px}.local-badge i{width:5px;height:5px;border-radius:50%;background:var(--muted)}.home{min-height:100%;background:var(--bg)}.home-content{max-width:920px;margin:0 auto;padding:76px 36px 32px}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--muted);display:flex;gap:8px;align-items:center;margin-bottom:23px}.home-title{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:46px}.home-title h1{font-size:27px;font-weight:550;line-height:1.3;letter-spacing:-.045em;margin-bottom:10px}.home-title p{font-size:13px;color:var(--muted);line-height:1.7}.list-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 0 12px;margin-bottom:13px;color:var(--secondary);font-size:12px}.count{font-size:10px;color:var(--muted);background:var(--raised);padding:1px 6px;border-radius:4px;margin-left:5px;font-variant-numeric:tabular-nums}.search{display:flex;align-items:center;gap:8px;color:var(--quiet)}.search input{padding:3px 0;border:0;background:transparent;width:120px;font-size:12px}.project-list{display:flex;flex-direction:column;gap:10px}.project-card{display:flex;align-items:center;width:100%;gap:17px;padding:23px 22px;background:var(--panel);border:1px solid var(--border);border-radius:10px;text-align:left;transition:border-color .15s,background .15s}.project-card:hover{border-color:var(--quiet);background:var(--hover)}.project-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border);border-radius:10px;color:var(--muted);background:var(--bg);flex-shrink:0}.project-description{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.project-description strong{font-size:14px;font-weight:500}.project-description>span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-action{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.project-card:hover .card-action{color:var(--text)}.empty-state{text-align:center;padding:57px 28px 62px;border:1px dashed var(--border);border-radius:10px;margin-top:16px}.empty-symbol{display:flex;justify-content:center;align-items:center;color:var(--quiet);margin:0 auto 20px;width:60px;height:60px;border:1px solid var(--border);border-radius:15px;background:var(--panel)}.empty-state h2{font-size:17px;font-weight:500;letter-spacing:-.03em}.empty-state p{margin:9px auto 22px;color:var(--muted);max-width:360px;font-size:12px}.home-footer{display:flex;justify-content:space-between;color:var(--quiet);font-size:10px;padding-top:24px}.back-link{display:inline-flex;gap:7px;align-items:center;background:none;border:0;color:var(--muted);padding:0;margin-bottom:27px;font-size:11px}.back-link:hover{color:var(--text)}.project-path{display:flex;align-items:center;gap:6px;max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.modal{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 90px #0007;padding:23px;width:450px;max-width:calc(100vw - 32px);max-height:calc(100vh - 40px);overflow:auto}.modal.wide{width:600px}.modal::backdrop{background:#0007;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal h2{font-size:17px;font-weight:550;letter-spacing:-.03em}.modal p{font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.input-row{display:flex;gap:8px}.input-row input{flex:1}.checkbox{flex-direction:row;align-items:center;gap:8px;margin:14px 0 9px}.checkbox input{width:14px;margin:0;accent-color:var(--brand)}.folder-picker{border:1px solid var(--border);border-radius:8px;margin-top:12px;overflow:hidden}.folder-heading{display:flex;gap:6px;align-items:center;padding:6px;border-bottom:1px solid var(--border)}.folder-heading>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted)}.folder-list{max-height:230px;overflow:auto;padding:5px}.folder-list button{display:flex;gap:10px;align-items:center;width:100%;padding:7px 8px;border:0;background:none;text-align:left;border-radius:4px;font-size:12px;color:var(--secondary)}.folder-list button svg:last-child{margin-left:auto}.folder-list button:hover{background:var(--hover)}.folder-list p{padding:15px;color:var(--muted)}.error{color:var(--danger);font-size:12px;padding:10px 0;overflow-wrap:anywhere}.error-strip{display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--panel);z-index:10}.error-strip .error{flex:1}.loading-screen{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px}.editor{height:100%;display:flex;flex-direction:column;overflow:hidden}.editor-header{display:flex;align-items:center;gap:9px;padding:0 17px;height:57px;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--panel)}.breadcrumb-project{font-size:11px;color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-slash{color:var(--quiet);padding:0 3px}.brief-title{border:1px solid transparent;background:none;padding:5px 6px;font-size:12px;font-weight:500;max-width:270px;width:220px;text-overflow:ellipsis}.brief-title:hover:not(:disabled){border-color:var(--border)}.save-state{font-size:10px;color:var(--quiet);display:flex;align-items:center;gap:5px;white-space:nowrap}.save-state.conflict,.save-state.error{color:var(--danger)}.canvas-area{flex:1;position:relative;min-height:170px;overflow:hidden;background:var(--bg)}.react-flow{--xy-background-color:var(--bg);--xy-edge-stroke:var(--quiet);--xy-edge-stroke-selected:var(--brand);--xy-connectionline-stroke:var(--brand);--xy-node-boxshadow-hover:none;--xy-node-boxshadow-selected:none;--xy-controls-button-background-color:var(--panel);--xy-controls-button-background-color-hover:var(--hover);--xy-controls-button-color:var(--muted);--xy-controls-button-border-color:var(--border);--xy-edge-label-color:var(--secondary);--xy-edge-label-background-color:var(--panel)}.react-flow__node{font-size:12px}.react-flow__node-card,.react-flow__node-frame,.react-flow__node-drawing{border:0;background:none;border-radius:10px;padding:0;box-shadow:none}.canvas-card{width:100%;height:100%;min-height:100px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:none;overflow:hidden;transition:border-color .12s,box-shadow .12s}.react-flow__node.selected .canvas-card,.react-flow__node.selected .canvas-frame,.react-flow__node.selected .drawing-node{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.canvas-card.focused,.canvas-frame.focused,.drawing-node.focused{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 20%,transparent)}.node-content{padding:16px 18px 18px}.node-kind{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;margin-bottom:12px}.node-content strong{font-size:14px;font-weight:550;line-height:1.45;display:block;overflow-wrap:anywhere}.node-content p{color:var(--muted);font-size:11px;white-space:pre-wrap;margin-top:9px;overflow-wrap:anywhere}.reference-image{width:100%;height:180px;object-fit:contain;display:block;border-bottom:1px solid var(--border)}.reference-link{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:10px;margin-top:13px;overflow-wrap:anywhere}.reference-link:hover{color:var(--brand)}.voice-count{margin-left:auto;display:flex;gap:3px;align-items:center;color:var(--brand)}.react-flow__handle{width:8px;height:8px;background:var(--panel);border:1.5px solid var(--quiet)}.react-flow__handle:hover{background:var(--brand);border-color:var(--brand)}.react-flow__edge-path{stroke-width:1.5;stroke-dasharray:5 4}.react-flow__edge-text{font-size:10px}.canvas-frame{width:100%;height:100%;border:1px dashed var(--quiet);background:color-mix(in srgb,var(--panel) 55%,transparent);border-radius:12px}.frame-title{position:absolute;top:13px;left:17px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px;font-weight:500}.drawing-node{width:100%;height:100%;border:1px solid transparent;border-radius:4px;color:var(--secondary)}.drawing-node svg{width:100%;height:100%;display:block;overflow:visible}.react-flow__node-frame{z-index:-1}.react-flow__controls{box-shadow:var(--shadow);border:1px solid var(--border);border-radius:7px;overflow:hidden;bottom:38px;left:13px}.react-flow__controls-button{width:28px;height:27px}.react-flow__controls-button svg{max-width:12px}.react-flow__attribution{background:var(--panel)!important;color:var(--quiet)!important;font-size:8px!important}.canvas-toolbar{position:absolute;top:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);z-index:5}.canvas-toolbar .icon-button{width:35px;height:34px}.tool-divider{height:20px;width:1px;background:var(--border);margin:0 3px}.canvas-empty{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;max-width:420px;width:80%}.canvas-empty .empty-symbol{width:56px;height:56px;opacity:.8}.canvas-empty h2{font-size:20px;font-weight:500;letter-spacing:-.04em}.canvas-empty p{color:var(--muted);font-size:12px;line-height:1.8;margin:10px 0 18px}.canvas-empty .button{pointer-events:auto}.record-dock{position:absolute;bottom:34px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:13px;padding:7px 8px 7px 15px;background:var(--panel);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow);z-index:5;max-width:calc(100% - 140px)}.record-context{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;white-space:nowrap;max-width:350px;overflow:hidden;text-overflow:ellipsis}.record-context strong{font-size:12px;font-variant-numeric:tabular-nums;font-weight:500;color:var(--text)}.record-dock .button{font-size:12px}.record-dock.recording{border-color:var(--quiet)}.record-dot{height:6px;width:6px;background:var(--text);border-radius:50%;flex-shrink:0;animation:pulse 1.5s infinite}.stop-record{color:var(--text);border-color:var(--quiet);background:var(--raised)}.canvas-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:9px;color:var(--quiet);white-space:nowrap;pointer-events:none}.inspector{position:absolute;top:80px;right:20px;width:248px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:13px 15px 14px;max-height:calc(100% - 170px);overflow:auto;z-index:6}.inspector-heading{display:flex;align-items:center;justify-content:space-between}.inspector-heading strong{font-size:11px;font-weight:500;color:var(--secondary)}.inspector .icon-button{width:25px;height:25px}.inspector label{margin-top:12px;font-size:10px}.inspector input,.inspector textarea{font-size:11px;padding:7px 9px}.inspector .danger{margin-top:14px;font-size:10px}.inspector p{margin:10px 0}.draw-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;cursor:crosshair;touch-action:none}.draw-overlay svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.draw-overlay>span{position:absolute;bottom:100px;left:50%;transform:translate(-50%);pointer-events:none;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 12px;color:var(--muted);font-size:11px}.timeline{position:relative;background:var(--panel);border-top:1px solid var(--border);flex-shrink:0;min-height:45px;max-height:60vh;display:flex;flex-direction:column}.timeline-resizer{position:absolute;height:7px;top:-4px;left:0;right:0;cursor:ns-resize;z-index:10;touch-action:none}.timeline-resizer:hover{background:var(--tint)}.timeline-header{height:45px;min-height:45px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:20px}.timeline-title{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.timeline-title strong{color:var(--secondary);font-weight:500}.timeline-actions{display:flex;align-items:center;gap:16px}.timeline-actions select{font-size:10px;padding:4px 6px;background:var(--panel);border-color:transparent;max-width:170px}.timecode{font:10px ui-monospace,SFMono-Regular,monospace;color:var(--muted)}.timeline-empty{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;color:var(--quiet);padding:20px}.timeline-empty>span{color:var(--muted);font-size:12px;margin-top:4px}.timeline-empty p{font-size:11px}.timeline-body{padding:10px 20px 17px;overflow:auto;min-height:0}.transport{display:flex;align-items:center;gap:10px;margin-bottom:7px}.transport .icon-button{width:27px;height:27px;border:1px solid var(--border)}.transport>span{font-size:10px}.transport input[type=range]{margin-left:auto;padding:0;width:210px;height:3px;accent-color:var(--brand);cursor:pointer}.tracks{display:grid;grid-template-columns:83px 1fr;column-gap:14px;row-gap:7px}.track-label{display:flex;gap:7px;align-items:center;color:var(--quiet);font-size:10px;align-self:start;padding-top:8px}.voice-track,.focus-track{position:relative;height:28px;background:var(--bg);border-radius:4px;overflow:hidden}.voice-bar{height:100%;display:flex;align-items:center;gap:8px;background:var(--raised);color:var(--muted);font-size:9px;padding:0 10px;border:1px solid var(--border);border-radius:4px}.voice-bar.live{color:var(--text);border-color:var(--quiet);background:var(--raised)}.playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--brand);pointer-events:none}.focus-track button{position:absolute;top:0;height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;padding:0 8px;border:1px solid var(--border);background:var(--raised);border-radius:4px;font-size:9px;color:var(--muted)}.focus-track button:hover,.focus-track button.active{background:var(--tint);color:var(--secondary);border-color:var(--brand)}.transcript-track{display:block;max-height:170px;min-height:60px;overflow:auto}.transcript-track>p{font-size:10px;color:var(--muted);padding:9px}.transcript-segment{display:flex;gap:7px;flex:0 0 250px;border:1px solid var(--border);border-radius:5px;padding:5px 7px;background:var(--bg)}.transcript-segment.active{border-color:var(--brand)}.time-link{background:none;border:0;font:9px ui-monospace,SFMono-Regular,monospace;color:var(--quiet);align-self:flex-start;padding:4px 0}.transcript-segment textarea{font-size:10px;padding:2px;border:0;background:none;resize:vertical;flex:1;min-width:0;min-height:38px}.transcript-error{font-size:10px;color:var(--danger);display:flex;align-items:center;gap:15px;overflow-wrap:anywhere}.transcript-error .button{flex-shrink:0}.export-prompt{width:100%;font-size:12px;margin:18px 0 10px}.export-path{overflow-wrap:anywhere}.export-note{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--muted);padding-top:15px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:800px){.home-content{padding:45px 22px 25px}.home-title{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:30px}.home-title h1{font-size:24px}.local-badge{display:none}.card-action{font-size:0}.project-card{padding:18px 16px}.app-header{padding:0 21px}.home-footer span:last-child{display:none}.breadcrumb-project,.breadcrumb-slash,.save-state{display:none}.brief-title{width:160px;max-width:28vw}.editor-header{gap:5px;padding:0 8px}.header-right{gap:5px}.editor-header .button{font-size:10px}.canvas-toolbar{gap:0;padding:4px;top:12px}.canvas-toolbar .icon-button{width:30px;height:30px}.inspector{width:215px;right:10px;top:65px;padding:10px;max-height:calc(100% - 155px)}.record-context{font-size:10px;max-width:170px}.record-dock{bottom:28px;gap:8px;max-width:calc(100% - 32px);padding-left:10px}.record-dock .icon-button,.canvas-hint{display:none}.timeline-header{padding:0 10px;gap:6px}.timeline-actions{gap:6px}.timeline-actions select{max-width:108px}.timecode{font-size:9px}.timeline-body{padding:8px 10px}.tracks{grid-template-columns:62px 1fr;column-gap:8px}.transport>span{display:none}.transport input[type=range]{width:70%}.error-strip{flex-wrap:wrap;gap:5px}.error-strip .error{flex-basis:100%}.canvas-empty h2{font-size:18px}.canvas-empty p{font-size:11px}}@media(max-height:650px){.inspector{max-height:calc(100% - 80px);top:65px}.record-dock{bottom:16px}.canvas-hint{display:none}}.replay-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;color:var(--text)}.replay-overlay svg{width:100%;height:100%;overflow:hidden}.action-track{position:relative;min-height:24px;margin:4px 0;overflow:hidden}.action-track button{position:absolute;top:4px;width:4px;height:16px;padding:0;background:var(--accent);border:0;border-radius:2px;cursor:pointer}.action-track button:hover,.action-track button:focus-visible{width:8px;background:var(--text)}.modal-actions a.button{text-decoration:none}.image-preview-button{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}.image-preview-button:disabled{opacity:1;cursor:default}.image-preview-button .reference-image{width:100%;height:auto;max-height:none;object-fit:contain;display:block}.thumbnail-annotations{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.image-preview-hint{position:absolute;bottom:8px;right:8px;background:#171717dd;border:1px solid #ffffff22;color:#fff;font-size:10px;border-radius:5px;padding:4px 7px;opacity:0;transition:opacity .15s}.image-preview-button:hover .image-preview-hint,.image-preview-button:focus-visible .image-preview-hint{opacity:1}.idea-flow-controls{position:static;flex-shrink:0;display:flex;gap:8px;align-items:center}.idea-flow-controls label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;background:var(--panel);padding:6px 9px;border:1px solid var(--border);border-radius:7px}.idea-flow-controls input{accent-color:var(--accent);width:13px;height:13px}.idea-flow-controls label{margin:0;flex-direction:row;white-space:nowrap;cursor:pointer}.idea-flow-controls input{margin:0;padding:0;flex:0 0 13px}.visual-reference .node-content{padding:11px 13px}.visual-reference .node-kind{margin:0;font-size:11px;gap:7px}.visual-reference .node-kind>span:not(.voice-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.visual-reference .node-content p{margin:9px 0 0}.visual-reference .image-preview-button .reference-image{width:100%;height:180px;max-height:180px;object-fit:contain;background:var(--canvas);border:0}.reference-source{color:var(--quiet);display:flex;margin-left:auto;padding:2px}.reference-source:hover{color:var(--text)}.reference-placeholder{height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--canvas);color:var(--muted);font-size:11px;border-bottom:1px solid var(--border)}.preview-skeleton{width:72%;height:90px;border-radius:7px;background:linear-gradient(100deg,var(--border),var(--panel),var(--border));background-size:200% 100%;animation:preview-loading 1.5s linear infinite}.preview-retry{display:flex;align-items:center;gap:5px;background:none;color:var(--text);border:1px solid var(--border);padding:4px 9px;border-radius:5px;cursor:pointer}@keyframes preview-loading{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.preview-skeleton{animation:none}}.voice-bar.voice-chapter{position:absolute;top:0;min-width:2px;overflow:hidden;white-space:nowrap;text-align:left;border-radius:3px;gap:5px}.voice-bar.voice-chapter.active,.voice-bar.voice-chapter:hover:not(:disabled){border-color:var(--quiet);background:var(--hover);color:var(--text)}.voice-bar.voice-chapter:disabled{opacity:1;cursor:default}.transcript-chapter{padding:0 0 8px;color:var(--muted);font-size:11px}.transcript-chapter>p{padding:8px 0;display:flex;align-items:center;gap:10px}.chapter-boundary{font:10px ui-monospace,SFMono-Regular,monospace;width:100%;border-bottom:1px solid var(--border);margin:0 0 4px;padding:5px 0;gap:10px}.chapter-boundary span{font-family:inherit;color:var(--quiet)}.transcript-chapter .transcript-segment{border:0;border-left:2px solid transparent;border-radius:0;background:transparent;margin-bottom:3px;padding:4px 8px;gap:10px}.transcript-chapter .transcript-segment.active{border-left-color:var(--brand);background:var(--raised)}.transcript-chapter .transcript-segment textarea{font-size:11px;line-height:1.65;min-height:38px}.image-role-badge{flex:none;font-size:9px;line-height:1.4;border:1px solid var(--border);border-radius:4px;padding:1px 4px;color:var(--muted)}.session-pause-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.session-live .react-flow__edge-path{stroke-dasharray:5 5;animation:explanation-wire 1.8s linear infinite}@keyframes explanation-wire{to{stroke-dashoffset:-20}}@media(prefers-reduced-motion:reduce){.session-live .react-flow__edge-path{animation:none}}.editor .react-flow__resize-control.line{border-color:var(--brand)}.editor .react-flow__resize-control.handle{background-color:var(--brand);border-color:var(--panel)}.react-flow__arrowhead polyline{fill:var(--quiet);stroke:var(--quiet)}.editor-header{height:52px;min-height:52px;flex-wrap:nowrap;gap:12px;padding:0 14px}.editor-header .editor-navigation{display:flex;align-items:center;gap:2px;flex:none;padding-right:10px;border-right:1px solid var(--border)}.editor-header .editor-location{display:flex;align-items:center;gap:5px;flex:1;min-width:0}.editor-header .breadcrumb-project{display:flex;align-items:center;max-width:160px;flex:0 1 auto;border:0;border-radius:5px;background:none;padding:5px 4px;font-size:12px;color:var(--muted)}.editor-header .breadcrumb-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-header .breadcrumb-back-icon{display:none;flex:none}.editor-header .breadcrumb-project:hover:not(:disabled){background:var(--hover);color:var(--text)}.editor-header .breadcrumb-slash{display:block;flex:none;padding:0 2px;font-size:12px}.editor-header .brief-title{flex:1;min-width:0;width:100%;max-width:460px;padding:5px 6px;font-size:12px}.editor-header .save-state{display:flex;flex:none;gap:5px;font-size:10px}.editor-header .header-right{flex:none;flex-wrap:nowrap;gap:8px;margin-left:4px}.editor-header .idea-flow-controls{gap:7px}.editor-header .idea-flow-controls label{padding:5px 8px;min-height:30px;font-size:11px}.editor-header .architect-action{min-height:30px}.canvas-toolbar{top:12px;padding:5px;gap:3px;border-radius:9px;max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:thin}.canvas-toolbar .icon-button{width:32px;height:32px}.canvas-toolbar .tool-divider{flex-shrink:0}@media(max-width:1100px){.editor-header{gap:8px;padding:0 10px}.editor-header .save-state-text{display:none}.editor-header .breadcrumb-project{max-width:120px}.editor-header .header-right{gap:5px}.editor-header .editor-navigation{padding-right:6px}}@media(min-width:1024px)and (max-width:1279px){.sidebar-open .editor-header .header-action-label{display:none}.sidebar-open .editor-header .architect-action{width:32px;padding:6px}.sidebar-open .editor-header .save-state-text{display:none}}@media(max-width:760px){.editor-header .header-action-label{display:none}.editor-header .architect-action{width:32px;padding:6px}.editor-header .idea-flow-controls label{width:30px;padding:7px;justify-content:center}.editor-header .breadcrumb-project{max-width:92px}.editor-header .header-right,.editor-header .idea-flow-controls{gap:3px}}@media(max-width:540px){.editor-header{gap:5px;padding:0 7px}.editor-header .breadcrumb-project-name,.editor-header .breadcrumb-slash{display:none}.editor-header .breadcrumb-project{width:28px;height:30px;flex:none;justify-content:center;padding:0}.editor-header .breadcrumb-back-icon{display:block}.editor-header .editor-navigation{gap:0;padding-right:5px}.editor-header .editor-navigation .icon-button{width:29px}.editor-header .brief-title{padding:5px 3px;font-size:11px}.editor-header .header-right{gap:1px;margin-left:0}.canvas-toolbar{gap:0;padding:4px;top:10px}.canvas-toolbar .icon-button{width:29px;height:30px}}.inline-note-title{border:0!important;background:transparent!important;padding:3px 0!important;font-size:14px!important;font-weight:600;border-radius:2px!important;width:100%}.note-editor{min-height:100px;outline:none;white-space:pre-wrap;line-height:1.55;cursor:text;-webkit-user-select:text;user-select:text;font-size:13px;padding:8px 0}.note-editor:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.note-editor p,.note-editor div{margin:0}.note-editor ul{padding-left:21px;margin:5px 0}.note-editor:focus{box-shadow:0 1px 0 var(--brand)}.note-format-bar{display:flex;align-items:center;gap:4px;padding:6px 0;border-bottom:1px solid var(--border)}.note-format-bar button{display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid var(--border);border-radius:5px;background:var(--panel);color:var(--text)}.note-format-bar button:hover{background:var(--hover)}.note-format-bar span{font-size:9px;color:var(--muted);margin-left:auto}.canvas-card.visual-reference{position:relative}.reference-open{position:absolute;top:9px;right:9px;z-index:2;display:flex;align-items:center;gap:5px;padding:6px 9px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 6px #0002;font-size:11px}.canvas-card .image-preview-button{cursor:grab}.canvas-card .image-preview-button:active{cursor:grabbing}.code-card-heading{display:flex;align-items:center;gap:10px;padding-bottom:8px}.code-card-heading .inline-note-title{min-width:70px;flex:1}.code-card-heading select{width:130px;max-width:45%;font-size:10px;padding:5px;background:var(--panel)}.code-editor{position:relative;min-height:220px;height:100%;background:var(--canvas);border:1px solid var(--border);border-radius:6px;overflow:hidden;-webkit-user-select:text;user-select:text}.code-editor pre,.code-editor textarea{box-sizing:border-box;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0!important;padding:12px!important;font:12px/20px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;letter-spacing:0!important;-moz-tab-size:2;tab-size:2;white-space:pre!important;overflow:auto;border:0!important;border-radius:0!important;text-align:left;resize:none}.code-editor pre{pointer-events:none;color:var(--text);scrollbar-width:none}.code-editor pre::-webkit-scrollbar{display:none}.code-editor textarea{color:transparent!important;-webkit-text-fill-color:transparent;background:transparent!important;caret-color:var(--text);outline:none;min-height:0!important}.code-editor textarea::selection{background:#779bf455}.code-editor:focus-within{outline:1px solid var(--brand)}.syntax-key{color:#5b93e5}.syntax-string{color:#57a573}.syntax-number{color:#b286d1}.syntax-keyword{color:#d9955d}.syntax-comment{color:var(--muted)}.code-caption{font-size:9px!important;color:var(--muted);margin:8px 0 0!important}.canvas-card.code .node-content{padding:12px}.canvas-card.code{min-width:320px}.component-icon-select{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted);margin:8px 0}.component-icon-select select{font-size:10px;width:auto;padding:4px 6px}.component-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.component-meta span{font-size:9px;color:var(--muted);background:var(--hover);border-radius:4px;padding:2px 5px}.component-instance-label{font-size:9px;color:var(--muted);margin-left:auto}.canvas-library-toggle{white-space:nowrap}.group-action-bar{position:absolute;top:74px;left:50%;transform:translate(-50%);z-index:6;background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:5px;display:flex;gap:6px}.canvas-card.component .node-content{height:100%;box-sizing:border-box;overflow:auto}.canvas-card.component .note-editor{max-height:130px;overflow:auto}.component-library{position:relative;min-height:0;min-width:0;display:flex;flex-direction:column;flex:1;width:100%;background:var(--panel);overflow:hidden}.library-heading{display:flex;align-items:center;gap:8px;min-height:45px;padding:6px 13px;border-bottom:1px solid var(--border);color:var(--secondary)}.library-heading strong{font-size:12px;font-weight:550;flex:1}.library-heading .icon-button{height:27px;width:27px}.library-tabs{display:flex;padding:6px 10px;gap:4px;border-bottom:1px solid var(--border)}.library-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;border:0;background:none;color:var(--muted);padding:6px;border-radius:5px;font-size:11px}.library-tabs button[aria-selected=true]{background:var(--raised);color:var(--text)}.library-scroll{flex:1;min-height:0;overflow:auto;padding:12px}.library-scroll h3{margin:0;font-size:12px;font-weight:550}.library-hint{color:var(--muted);font-size:10px;line-height:1.6;margin:9px 0 12px}.library-search{display:flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--bg);padding:0 9px;border-radius:6px;color:var(--muted)}.library-search input{width:100%;padding:7px 0;background:none;border:0;font-size:11px}.library-filters{display:flex;gap:6px;margin-top:8px}.library-filters select{flex:1;width:50%;padding:5px;font-size:10px}.library-items{display:flex;flex-direction:column;gap:6px}.library-item{display:flex;align-items:flex-start;border:1px solid var(--border);border-radius:7px;background:var(--bg);min-width:0}.library-item:hover{border-color:var(--quiet)}.library-item>.icon-button{width:25px;height:29px;margin:5px 3px 0 0}.library-insert{display:flex;align-items:flex-start;gap:9px;padding:11px 2px 11px 10px;border:0;background:none;text-align:left;flex:1;min-width:0;color:var(--text);border-radius:6px}.library-insert:disabled{opacity:1}.library-insert[draggable=true]{cursor:grab}.library-insert[draggable=true]:active{cursor:grabbing}.library-item-icon{display:flex;width:29px;height:29px;align-items:center;justify-content:center;flex-shrink:0;background:var(--raised);border-radius:6px;color:var(--secondary)}.library-item-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;overflow-wrap:anywhere}.library-item-copy strong{font-size:11px;font-weight:550}.library-item-copy>span{font-size:10px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.library-item-copy small{font-size:9px;color:var(--quiet)}.library-grip{color:var(--quiet);flex-shrink:0;margin-top:3px}.library-new{width:100%;margin-top:12px}.library-empty{text-align:center;padding:22px 12px;color:var(--muted)}.library-empty>svg{display:block;margin:0 auto 12px}.library-empty strong{display:block;color:var(--secondary);font-size:12px;font-weight:500}.library-empty p{font-size:11px;line-height:1.6;margin-top:6px}.library-section-heading{display:flex;align-items:center;justify-content:space-between}.library-form h3{margin-top:10px}.library-form fieldset{border:0;margin:0;padding:0;min-width:0}.library-form label{font-size:10px;margin-top:12px;gap:5px}.library-form input,.library-form textarea,.library-form select{font-size:11px;padding:7px 8px}.library-icon-select{display:flex;align-items:center;gap:12px}.library-icon-select select{flex:1}.library-tag-picker{margin-top:12px;font-size:10px;color:var(--secondary)}.library-tag-picker>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.library-tag-picker label{flex-direction:row;gap:5px;align-items:center;margin:0;border:1px solid var(--border);border-radius:5px;padding:4px 6px;max-width:100%;overflow-wrap:anywhere}.library-tag-picker input{width:12px;height:12px;accent-color:var(--brand);margin:0;flex-shrink:0}.library-tag-picker .library-hint{margin:5px 0}.library-taxonomy{margin-top:20px;border-top:1px solid var(--border);padding-top:15px}.library-taxonomy-add{display:flex;gap:6px;margin:9px 0}.library-taxonomy-add input{flex:1;width:0;font-size:11px;padding:6px 8px}.library-taxonomy-row,.library-setting-item{display:flex;align-items:center;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);min-height:35px}.library-taxonomy-row>span,.library-setting-item>.text-button{flex:1;min-width:0;overflow-wrap:anywhere;text-align:left;font-size:11px}.library-taxonomy-row .icon-button,.library-setting-item .icon-button{width:25px;height:25px}.library-taxonomy-row>form{display:flex;align-items:center;width:100%;gap:4px;padding:5px 0}.library-taxonomy-row>form input{flex:1;width:0;font-size:11px;padding:5px}.library-confirm{flex-basis:100%;padding:7px 0 10px;display:flex;gap:10px;flex-wrap:wrap}.library-confirm p{flex-basis:100%;font-size:10px;color:var(--muted);line-height:1.6}.library-selection{padding:10px;background:var(--raised);border:1px solid var(--border);border-radius:6px;display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.library-selection>span{width:100%;font-size:10px;overflow-wrap:anywhere}.library-selection .button{font-size:10px}.library-footer{border-top:1px solid var(--border);padding:8px 12px;font-size:9px;color:var(--quiet)}.component-library [hidden]{display:none!important}.library-notice:empty{display:none}.library-notice{flex:none;padding:10px 12px;border-bottom:1px solid var(--border);font-size:11px}.library-notice .error{margin:0 0 8px}.component-library.embedded>.library-scroll{padding:14px}.component-library.embedded>.library-footer{flex:none}.library-draft-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.library-draft-actions .button{margin:0}.library-draft-actions .text-button{font-size:11px}.annotation-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0009;padding:24px;display:flex;align-items:stretch;justify-content:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.image-annotator{display:flex;flex-direction:column;width:100%;max-width:1680px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 90px #0006;overflow:hidden;outline:none}.annotation-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.annotation-heading{min-width:0}.annotation-heading>span{font-size:10px;color:var(--muted);letter-spacing:.04em}.annotation-heading h2{font-size:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70vw}.annotation-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.annotation-recording{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;color:var(--text);font-family:ui-monospace,SFMono-Regular,monospace}.annotation-tools{display:flex;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.annotation-tool-group{display:flex;align-items:center;gap:3px;padding-right:10px;border-right:1px solid var(--border)}.annotation-tool-group:last-child{border:0;padding-right:0}.annotation-tool{display:inline-flex;align-items:center;justify-content:center;width:33px;height:33px;padding:0;border:1px solid transparent;background:transparent;border-radius:6px;color:var(--muted)}.annotation-tool:hover{color:var(--text);background:var(--hover)}.annotation-tool.active{background:var(--tint);color:var(--brand-hover);border-color:var(--brand)}.annotation-history{margin-left:auto}.annotation-swatch{width:23px;height:23px;background:var(--swatch);border:3px solid var(--panel);outline:1px solid var(--border);border-radius:50%;padding:0;margin:0 2px}.annotation-swatch.active{outline:2px solid var(--brand);outline-offset:1px}.annotation-custom-color{margin:0 0 0 4px;display:block;width:25px;height:26px;overflow:hidden;border-radius:5px;border:1px solid var(--border)}.annotation-custom-color input{width:34px;height:34px;position:relative;top:-5px;left:-5px;padding:0;cursor:pointer;border:0}.annotation-option{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0 3px;font-size:11px;color:var(--muted)}.annotation-option select{padding:5px 6px;font-size:11px;background:var(--panel)}.annotation-stage{position:relative;flex:1;min-height:160px;overflow:hidden;touch-action:none;background-color:var(--bg);background-image:radial-gradient(var(--grid) .7px,transparent .7px);background-size:16px 16px;cursor:crosshair;-webkit-user-select:none;user-select:none}.annotation-stage.tool-hand{cursor:grab}.annotation-stage.tool-hand:active{cursor:grabbing}.annotation-stage.tool-select,.annotation-stage.is-replay{cursor:default}.annotation-stage.tool-text{cursor:text}.annotation-image-plane{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 0 0 1px #8883,0 8px 32px #0003;pointer-events:none;background:#fff}.annotation-image-plane>img,.annotation-image-plane>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.annotation-image-plane>img{object-fit:fill}.annotation-load-message{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;text-align:center;color:var(--muted)}.annotation-selection-actions{position:absolute;left:16px;bottom:14px;display:flex;align-items:center;gap:12px;padding:6px 9px 6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);font-size:11px;color:var(--muted)}.annotation-text-editor{position:absolute;right:20px;bottom:20px;width:300px;max-width:calc(100% - 40px);padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);cursor:default}.annotation-text-editor label{margin:0 0 9px;font-size:12px}.annotation-text-editor textarea{width:100%;min-height:90px;max-height:180px;font-size:13px;-webkit-user-select:text;user-select:text}.annotation-text-editor>div{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.annotation-subtitle{position:absolute;bottom:20px;left:50%;transform:translate(-50%);max-width:80%;padding:10px 18px;background:#111111eb;color:#fff;border:1px solid #ffffff22;border-radius:8px;text-align:center;font-size:15px;line-height:1.5;white-space:pre-wrap;box-shadow:0 4px 20px #0005}.annotation-footer{display:flex;align-items:center;gap:12px;min-height:52px;padding:9px 16px;border-top:1px solid var(--border);flex-shrink:0}.annotation-hint{font-size:11px;color:var(--muted);flex:1}.annotation-zoom{display:flex;align-items:center;gap:5px;margin-left:auto}.annotation-zoom>span,.annotation-time{font-size:11px;font-variant-numeric:tabular-nums;min-width:36px;text-align:center;color:var(--muted)}.annotation-seek{flex:1;padding:0;height:20px;accent-color:var(--brand)}@media(max-width:800px){.annotation-backdrop{padding:8px}.annotation-header{padding:12px}.annotation-header-actions{gap:6px}.annotation-heading h2{max-width:40vw}.annotation-tools{gap:6px;padding:8px}.annotation-tool-group{padding-right:5px}.annotation-tool{width:30px;height:30px}.annotation-history{margin-left:0}.annotation-hint{max-width:55%;font-size:10px}.annotation-footer{padding:7px 10px}.annotation-recording{font-size:11px}.annotation-header-actions .button{font-size:11px;padding:6px 8px}.annotation-subtitle{max-width:94%;font-size:13px}}@media(prefers-reduced-motion:reduce){.annotation-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.annotation-save-error{display:flex;align-items:center;gap:9px;padding:10px 16px;background:var(--panel);border-top:1px solid var(--danger);color:var(--danger);font-size:11px;flex-wrap:wrap}.annotation-save-error>span{flex:1;min-width:180px}.annotation-save-state{font-size:10px;color:var(--muted);white-space:nowrap}.annotation-save-state.error,.annotation-save-state.conflict{color:var(--danger)}.annotation-stage.can-move{cursor:move}.annotation-stage.can-move:active{cursor:grabbing}.annotation-original-actions,.annotation-session-note{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border);color:var(--muted);font-size:11px;flex-shrink:0}.annotation-original-actions{justify-content:space-between}.annotation-session-note{background:var(--raised)}.annotation-time{font-family:ui-monospace,SFMono-Regular,monospace}@media(max-width:800px){.annotation-header{flex-wrap:wrap;gap:8px}.annotation-header-actions{flex-wrap:wrap}.annotation-original-actions{align-items:flex-start;flex-direction:column;gap:5px}.annotation-original-actions,.annotation-session-note{padding:8px 12px}}.image-annotator .annotation-swatch{flex:0 0 26px;width:26px;height:26px;background:var(--swatch)!important;margin:3px;border:3px solid var(--panel);padding:0}.image-annotator .annotation-tool-group{gap:6px}.image-annotator .annotation-custom-color{flex:0 0 28px;min-width:28px;margin:0 4px}.image-annotator .annotation-option{margin:0 5px}.image-annotator .annotation-option select{width:auto;min-width:70px}.image-annotator .annotation-tools{padding:12px 18px;gap:14px}.link-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;padding:24px;background:#0009;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center}.link-preview{display:flex;flex-direction:column;width:100%;max-width:1680px;min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 90px #0006;outline:none}.link-preview-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.link-preview-heading{min-width:0}.link-preview-heading>span{font-size:10px;color:var(--muted)}.link-preview-heading h2{font-size:14px;font-weight:550;margin:3px 0}.link-preview-heading p{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw;margin:0}.link-preview-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.link-preview-clock{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;font-variant-numeric:tabular-nums}.link-preview-modes{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 20px;border-bottom:1px solid var(--border);color:var(--muted);font-size:11px;flex-shrink:0}.link-preview-mode{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--brand);border-radius:6px;color:var(--text);background:var(--tint)}.link-preview-frame{flex:1;width:100%;min-height:160px;border:0;background:#fff}.link-preview-fallback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--border);flex-shrink:0}.link-preview-fallback strong{font-size:12px;font-weight:550}.link-preview-fallback p{color:var(--muted);font-size:11px;line-height:1.55;max-width:680px;margin:4px 0 0}.link-preview-fallback .link-preview-actions{flex-shrink:0}.link-preview-footer{display:flex;gap:20px;justify-content:space-between;color:var(--muted);font-size:10px;padding:9px 20px;background:var(--bg);border-top:1px solid var(--border)}.link-preview-footer>span:last-child{white-space:nowrap}.link-preview-error{color:var(--danger);font-size:12px;line-height:1.5;padding:9px 20px;border-top:1px solid var(--danger)}.link-preview-receipt{flex:1;min-height:160px;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;gap:12px;background:var(--bg);text-align:center;color:var(--muted)}.link-preview-receipt h3{font-size:18px;font-weight:500;color:var(--text);margin:0}.link-preview-receipt p{font-size:13px;line-height:1.6;max-width:620px;margin:0}.link-preview-receipt dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 18px;text-align:left;font-size:12px;max-width:720px;width:100%;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.link-preview-receipt dt{color:var(--muted)}.link-preview-receipt dd{margin:0;overflow-wrap:anywhere;color:var(--text)}.link-preview-subtitle{padding:10px 18px;border-radius:8px;background:var(--panel);color:var(--text)}.link-preview-seek{flex:1;min-width:60px;accent-color:var(--brand);padding:0;height:20px}@media(max-width:900px){.link-preview-backdrop{padding:8px}.link-preview-header{align-items:flex-start;flex-wrap:wrap;padding:12px}.link-preview-heading p{max-width:85vw}.link-preview-fallback{align-items:flex-start;flex-direction:column;padding:12px}.link-preview-modes,.link-preview-footer{padding:9px 12px}.link-preview-modes>span:last-child{flex-basis:100%}.link-preview-actions .button{font-size:11px;padding:6px 8px}.link-preview-receipt{padding:16px;justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.link-preview-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.editor-workspace{position:relative;display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}.editor-workspace>.canvas-area{flex:1;min-width:0;min-height:0}.configuration-dock{background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;flex:0 0 330px;width:330px;min-width:0;min-height:0;z-index:5}.configuration-dock.is-collapsed{flex-basis:36px;width:36px}.configuration-heading{height:42px;min-height:42px;display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid var(--border)}.configuration-heading strong{flex:1;font-size:12px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.configuration-heading .icon-button{flex:none;width:27px;height:27px}.is-collapsed .configuration-heading{padding:0 4px;border-bottom:0;justify-content:center}.configuration-body{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.configuration-dock [hidden]{display:none!important}.configuration-tabs{display:flex;gap:3px;padding:6px;border-bottom:1px solid var(--border);flex:none}.configuration-tabs button{flex:1;border:0;border-radius:5px;background:none;color:var(--muted);font-size:11px;padding:7px 5px}.configuration-tabs button[aria-selected=true]{background:var(--raised);color:var(--text)}.configuration-status{padding:10px 13px;border-bottom:1px solid var(--border);font-size:11px;line-height:1.5;color:var(--muted);flex:none}.configuration-status .text-button{display:block;margin-top:5px}.configuration-library-slot,.configuration-selection-slot,.configuration-link-slot{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.selection-configuration,.reference-configuration{padding:15px;overflow:auto;min-height:0;flex:1}.selection-configuration fieldset{padding:0;margin:0;border:0;min-width:0}.configuration-context{margin:0 0 14px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.selection-configuration label,.reference-configuration label{font-size:11px}.selection-configuration .button{margin-bottom:10px}.selection-configuration .inline-note{margin-bottom:14px}.selection-configuration .note-editor{min-height:95px;max-height:240px;overflow:auto}.configuration-delete{margin-top:24px}.configuration-source{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.configuration-empty{padding:20px;color:var(--muted);font-size:12px;line-height:1.6}.configuration-empty strong{color:var(--text);font-weight:500}.configuration-rail-status{font-size:9px;color:var(--muted);padding-top:10px;text-align:center;overflow-wrap:anywhere}.configuration-rail-status.error{color:var(--danger)}.code-language-badge{font:10px ui-monospace,SFMono-Regular,monospace;color:var(--muted);white-space:nowrap}.component-instance-label{margin-left:auto}@media(max-width:900px){.configuration-dock{flex-basis:300px;width:300px}}@media(max-width:640px){.editor-workspace.dock-open>.canvas-area{position:absolute;top:0;right:32px;bottom:0;left:0;visibility:hidden;pointer-events:none}.editor-workspace.dock-open>.canvas-area *{visibility:hidden!important;pointer-events:none!important}.editor-workspace.dock-open>.configuration-dock{width:100%;flex:1}.configuration-dock.is-collapsed{width:32px;flex-basis:32px}}.configuration-speech-slot{display:flex;flex:1;min-height:0;overflow:hidden}.speech-settings{padding:16px;overflow:auto;flex:1;min-width:0}.speech-settings h3{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 10px}.speech-settings p{line-height:1.6}.speech-settings label{font-size:11px;margin-top:14px}.speech-settings select{width:100%;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:9px}.speech-connection{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;margin:20px 0 8px}.speech-connection>span:last-child{color:var(--muted)}.speech-status-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.speech-connection.connected .speech-status-dot{background:#55a477}.speech-actions{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.speech-note{display:flex;gap:8px;font-size:11px;line-height:1.5;padding:12px;background:var(--raised);border-radius:7px;margin:18px 0}.speech-note svg{flex-shrink:0}.speech-error{color:var(--danger);font-size:12px;overflow-wrap:anywhere}.speech-recovery{border-top:1px solid var(--border);margin-top:20px;padding-top:18px}.speech-recovery strong{font-size:12px}.speech-settings textarea{width:100%;resize:vertical}.speech-mode-button{white-space:nowrap}.react-flow__node.group-drop-candidate .canvas-frame{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand),0 0 0 7px color-mix(in srgb,var(--brand) 15%,transparent);background:color-mix(in srgb,var(--brand) 10%,transparent)}.react-flow__node.group-drop-candidate .frame-title:after{content:"Release to add";margin-left:auto;font-size:11px;font-weight:500}.react-flow__node.group-boundary-held .canvas-frame{border-color:#c68b35}.react-flow__node.group-boundary-left .canvas-frame{box-shadow:inset 5px 0 #c68b35}.react-flow__node.group-boundary-right .canvas-frame{box-shadow:inset -5px 0 #c68b35}.react-flow__node.group-boundary-top .canvas-frame{box-shadow:inset 0 5px #c68b35}.react-flow__node.group-boundary-bottom .canvas-frame{box-shadow:inset 0 -5px #c68b35}.group-drag-feedback{position:absolute;z-index:12;top:78px;left:50%;transform:translate(-50%);max-width:min(430px,85%);padding:10px 16px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text, #222);box-shadow:0 3px 14px #0002;pointer-events:none;font-size:12px}.workspace-shell{display:flex;height:100dvh;min-width:0;overflow:hidden;background:var(--bg)}.workspace-sidebar{display:flex;flex-direction:column;flex:0 0 240px;width:240px;min-height:0;background:var(--panel);border-right:1px solid var(--border);z-index:20}.nav-brand{display:flex;align-items:center;height:52px;padding:0 18px;flex:none}.nav-actions{display:flex;flex-direction:column;gap:14px;padding:7px 12px 2px}.nav-actions>.button{justify-content:flex-start;font-size:12px;padding:7px 10px}.nav-search{display:flex;gap:7px;align-items:center;color:var(--quiet);padding:0 4px}.nav-search input{width:100%;font-size:11px;padding:5px 0;background:none;border:0}.workspace-nav{flex:1;min-height:0;overflow:auto;padding:0 7px 20px}.workspace-nav section{margin-top:24px}.workspace-nav h2{font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:500;color:var(--muted);padding:0 8px 7px}.nav-row{display:flex;align-items:center;gap:3px;width:100%;height:30px;border-radius:5px;padding:0 5px;color:var(--secondary)}.nav-row:hover{background:var(--hover)}.nav-row.selected{background:var(--tint);color:var(--text)}.nav-name{display:flex;gap:8px;align-items:center;flex:1;min-width:0;padding:0;border:0;background:none;text-align:left;font-size:12px;color:inherit;height:100%}.nav-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-name svg{flex:none;color:var(--muted)}.nav-disclosure{display:flex;align-items:center;justify-content:center;flex:none;width:14px;height:25px;padding:0;border:0;background:none;color:var(--quiet)}.nav-disclosure .open{transform:rotate(90deg)}.nav-row .nav-pin{width:23px;height:23px;opacity:0}.nav-row:hover .nav-pin,.nav-row:focus-within .nav-pin,.nav-row .nav-pin.pinned{opacity:1}.nav-children{padding-left:20px}.nav-empty{padding:2px 8px;font-size:11px;color:var(--quiet);line-height:1.6}.nav-more{padding:6px 8px;border:0;background:none;font-size:11px;color:var(--muted)}.nav-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border);flex:none}.nav-footer>span{font-size:10px;color:var(--quiet)}.workspace-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.workspace-editor{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.workspace-editor>.editor{height:auto;flex:1;min-height:0}.workspace-main>.loading-screen{flex:1;height:auto}.workspace-topbar{display:flex;align-items:center;gap:8px;flex:none;height:42px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--panel)}.workspace-home{border:0;background:none;font-size:11px;color:var(--muted);padding:5px 0}.workspace-topbar>.local-badge{margin-left:auto;font-size:10px}.workspace-error{padding:0 18px;border-bottom:1px solid var(--border);background:var(--panel)}.workspace-content{overflow:auto;flex:1;min-height:0}.workspace-content .home-content{max-width:960px;padding:46px 38px 32px}.workspace-content .home-title{gap:20px;margin-bottom:34px}.workspace-content .home-title h1{font-size:25px}.workspace-content .home-title p{font-size:11px;overflow-wrap:anywhere}.home-actions{display:flex;gap:8px;flex-shrink:0}.home-actions .button{font-size:11px}.workspace-content .project-list{gap:0}.workspace-list-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-right:8px}.workspace-list-row>.project-card{padding:15px 8px;border:0;border-radius:5px;background:none;gap:12px;flex:1;min-width:0}.workspace-list-row>.project-card:hover{background:var(--hover)}.workspace-list-row .project-icon{width:34px;height:34px;border-radius:7px}.workspace-list-row .project-description strong{font-size:13px}.workspace-list-row .project-description>span{font-size:10px}.workspace-list-row>.icon-button{flex:none}.project-recovery{display:flex;gap:13px;padding:18px;border:1px solid var(--border);background:var(--panel);border-radius:8px;margin-bottom:25px}.project-recovery>svg{flex:none;color:var(--muted)}.project-recovery strong{font-size:13px}.project-recovery p{color:var(--muted);font-size:12px;margin:5px 0 12px}.project-recovery .text-button{margin-left:14px}.reconnect-path{overflow-wrap:anywhere;margin-top:12px;color:var(--quiet)}.storage-note{margin-top:12px}.chooser-notice{margin-top:14px;color:var(--muted);line-height:1.7}.nav-scrim{display:none}@media(min-width:1024px)and (max-width:1279px){.sidebar-open .home-title{align-items:flex-start;flex-direction:column}}@media(max-width:1023px){.workspace-sidebar{position:fixed;inset:0 auto 0 0;box-shadow:var(--shadow)}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#0006;border:0;padding:0}.workspace-content .home-content{padding:32px 22px}.workspace-content .home-title{align-items:flex-start;flex-direction:column}.home-actions{flex-wrap:wrap}.nav-row .nav-pin{opacity:1}}.modal.settings-modal{width:480px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:22px;overflow:auto}.settings-modal .modal-heading{margin-bottom:16px}.settings-modal .modal-heading h2{font-size:18px;letter-spacing:-.3px}.app-settings nav{display:flex;gap:20px;border-bottom:1px solid var(--border);margin-bottom:16px}.app-settings [role=tab]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:13px;padding:0 0 10px;position:relative}.app-settings [role=tab][aria-selected=true]{color:var(--text)}.app-settings [role=tab][aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--text)}.app-settings [role=tab]:focus-visible{outline:2px solid var(--brand);outline-offset:4px}.app-settings-content{min-width:0}.app-settings .speech-settings{padding:0;overflow:visible}.app-settings .speech-settings label{font-size:12px}.app-settings .speech-settings label:first-child{margin-top:0}.app-settings .speech-connection{margin-top:16px}.app-settings .speech-note{margin:14px 0}.speech-details{font-size:11px;color:var(--muted);border-top:1px solid var(--border);padding-top:12px;margin-top:16px}.speech-details summary{cursor:pointer}.speech-details p{margin-bottom:0}.speech-scope{font-size:11px;color:var(--muted);margin:12px 0 0;line-height:1.5}@media(max-width:520px){.modal.settings-modal{padding:18px;max-height:calc(100dvh - 24px)}}.workspace-settings-launcher{position:fixed;left:14px;bottom:14px;z-index:15;background:var(--panel);border:1px solid var(--border);border-radius:9px;box-shadow:0 3px 10px #0001}.workspace-settings-launcher .icon-button{width:34px;height:34px}.chapter-recovery{max-height:240px;overflow:auto;border-top:1px solid var(--border);background:var(--panel);padding:0 18px}.chapter-recovery .speech-recovery{margin:0;padding:12px 0}.chapter-recovery textarea{width:100%}.speech-paste-notice{display:flex;gap:12px;align-items:center;padding:8px 16px;background:var(--panel);border-top:1px solid var(--border);font-size:12px}.speech-paste-notice span{flex:1}.flow-paste-sink{position:fixed;left:-10000px;top:0;width:1px;height:1px;opacity:0;pointer-events:none}.workspace-shell{position:relative}.workspace-shell:not(.sidebar-open){padding-left:44px}.workspace-settings-launcher{position:absolute;left:0;top:0;bottom:0;width:44px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;box-shadow:none;border:0;border-right:1px solid var(--border);border-radius:0}
