:root{--canvas-bg: #fff7fa;--grid-minor: #f3dce6;--grid-major: #e7bfd0;--surface: #fffafd;--surface-raised: #ffffff;--text-primary: #3f2935;--text-muted: #806876;--accent: #d94f86;--accent-contrast: #ffffff;--node-fill: #ffffff;--node-border: #efc5d6;--edge: #b9829a;--edge-active: #cc356f;--edge-muted: #d9c9d0;--node-radius: 18px;--shadow-soft: 0 1.1rem 3rem color-mix(in srgb, var(--accent) 13%, transparent);font:100%/1.5 -apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--text-primary);background:var(--canvas-bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#inf-flow-root{width:100%;min-width:0;height:100%;margin:0;overflow:hidden}body{background:var(--canvas-bg);color:var(--text-primary)}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 48%,transparent);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}.skip-link{position:fixed;z-index:1000;top:.7rem;left:50%;transform:translate(-50%,-5rem);padding:.65rem 1rem;border-radius:999px;background:var(--text-primary);color:var(--surface-raised);text-decoration:none;transition:transform .16s ease}.skip-link:focus{transform:translate(-50%)}.boot-state,.empty-workspace{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:.8rem;background:var(--canvas-bg);color:var(--text-muted)}.boot-state i,.empty-workspace i{width:2rem;height:.4rem;border-radius:999px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:breathe 1.5s ease-in-out infinite}.fatal-state{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:.75rem;padding:2rem;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 35%),var(--canvas-bg);text-align:center}.fatal-state span{color:var(--text-muted);font-size:.8rem}.fatal-state strong{font-size:clamp(1.4rem,4vw,2.4rem);letter-spacing:-.04em}@keyframes breathe{50%{transform:scaleX(1.65);opacity:.55}}.app-shell{position:relative;width:100%;height:100%;isolation:isolate}.canvas-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;background:var(--canvas-bg);cursor:default;outline:none}.canvas-stage.is-space-pan{cursor:grab}.canvas-stage.is-panning,.canvas-stage.is-panning *{cursor:grabbing!important}.canvas-stage.is-resizing,.canvas-stage.is-resizing *{cursor:var(--active-resize-cursor, nwse-resize)!important}.canvas-grid{position:absolute;z-index:0;inset:0;pointer-events:none;background-position:var(--grid-x) var(--grid-y)}.overview-layer{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.grid-dots .canvas-grid{background-image:radial-gradient(circle,var(--grid-minor) 1.15px,transparent 1.25px);background-size:var(--grid-size) var(--grid-size)}.grid-lines .canvas-grid{background-image:linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size)}.grid-off .canvas-grid{background:none}.edge-layer{position:absolute;z-index:1;inset:0;overflow:visible;pointer-events:none}.edge-raster-layer{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.edge-world{transform-origin:0 0}.flow-edge{color:var(--edge-custom, var(--edge));transition:opacity .18s ease}.edge-visible{fill:none;stroke:currentColor;vector-effect:non-scaling-stroke;pointer-events:none}.edge-hit{fill:none;stroke:transparent;stroke-width:18;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.edge-hit:hover{stroke:color-mix(in srgb,var(--edge-custom, var(--edge)) 16%,transparent)}.edge-hit:focus-visible{outline:none;stroke:color-mix(in srgb,var(--accent) 28%,transparent);stroke-width:10}.flow-edge.is-highlighted{color:var(--edge-active)}.flow-edge.is-hierarchy{color:color-mix(in srgb,var(--edge-active) 78%,var(--edge))}.flow-edge.is-hierarchy .edge-visible{stroke-width:2.25}.flow-edge.is-selected{color:var(--accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 30%,transparent))}.flow-edge.is-muted{opacity:.16}.edge-label{fill:var(--text-primary);font-size:12px;font-weight:650;paint-order:stroke;stroke:var(--canvas-bg);stroke-width:5px;stroke-linejoin:round;pointer-events:auto;cursor:text}.edge-label.is-placeholder{fill:var(--text-muted);font-size:10px;font-weight:600;opacity:.8}.edge-label-editor{overflow:visible;pointer-events:auto}.edge-label-editor input{width:100%;height:100%;border:1px solid var(--accent);border-radius:999px;padding:0 .72rem;background:var(--surface-raised);color:var(--text-primary);box-shadow:0 .55rem 1.5rem color-mix(in srgb,var(--accent) 20%,transparent);font:650 12px/1 -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;outline:none}.edge-temporary{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:7 6;vector-effect:non-scaling-stroke;opacity:.82}marker path,marker circle{fill:context-stroke}.node-world{position:absolute;z-index:2;inset:0;transform-origin:0 0;will-change:transform;pointer-events:none}.hierarchy-group{position:absolute;z-index:0;border:1px dashed color-mix(in srgb,var(--accent) 22%,var(--node-border));border-radius:24px;background:color-mix(in srgb,var(--accent) 2.5%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--surface-raised) 48%,transparent);pointer-events:none}.hierarchy-group>span{position:absolute;left:16px;top:9px;max-width:calc(100% - 32px);overflow:hidden;color:color-mix(in srgb,var(--accent) 58%,var(--text-muted));font-size:10px;font-weight:680;letter-spacing:.015em;text-overflow:ellipsis;white-space:nowrap}.flow-node{position:absolute;left:0;top:0;width:var(--node-w);min-width:120px;height:var(--node-h);min-height:72px;transform:translate3d(var(--node-x),var(--node-y),0);display:flex;flex-direction:column;overflow:visible;border:1px solid var(--node-border);border-radius:var(--node-radius);background:var(--node-fill-custom, var(--node-fill));color:var(--node-text-custom, var(--text-primary));box-shadow:0 .45rem 1.4rem color-mix(in srgb,var(--accent) 9%,transparent);pointer-events:auto;cursor:grab;transition:opacity .16s ease,border-color .16s ease,box-shadow .16s ease;contain:layout style}.flow-node:active{cursor:grabbing}.flow-node.shape-compact{--node-radius: 10px}.flow-node.shape-sticky{--node-radius: 4px;box-shadow:.35rem .55rem color-mix(in srgb,var(--node-accent, var(--accent)) 14%,transparent)}.flow-node.is-child{background:color-mix(in srgb,var(--node-accent, var(--accent)) 4%,var(--node-fill-custom, var(--node-fill)));border-color:color-mix(in srgb,var(--node-accent, var(--accent)) 42%,var(--node-border));box-shadow:0 .35rem 1rem color-mix(in srgb,var(--node-accent, var(--accent)) 9%,transparent)}.flow-node:hover,.flow-node:focus-within{z-index:99999!important}.flow-node.is-selected{border-color:var(--node-accent, var(--accent));box-shadow:0 0 0 2px color-mix(in srgb,var(--node-accent, var(--accent)) 28%,transparent),0 1rem 2.8rem color-mix(in srgb,var(--accent) 18%,transparent);z-index:100000!important}.flow-node.is-related{border-color:color-mix(in srgb,var(--edge-active) 60%,var(--node-border))}.flow-node.is-muted{opacity:.34}.flow-node.is-low-detail:not(.is-selected){justify-content:center;box-shadow:none}.flow-node.is-low-detail:not(.is-selected) .node-title{align-items:center;min-height:100%;padding:.65rem .8rem}.flow-node.is-low-detail:not(.is-selected) .node-title h2{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-node.is-low-detail:not(.is-selected) .node-parent-link{display:none}.node-accent{position:absolute;top:10px;bottom:10px;left:-1px;width:4px;border-radius:0 999px 999px 0;background:var(--node-accent, transparent);opacity:.9;pointer-events:none}.node-parent-link{display:flex;align-items:center;gap:.25rem;min-width:0;padding:.48rem 1rem 0 1.05rem;color:var(--text-muted);font-size:.58rem;line-height:1}.node-parent-link svg{width:.72rem;height:.72rem;flex:none;color:var(--node-accent, var(--accent))}.node-parent-link strong{min-width:0;overflow:hidden;color:var(--node-accent, var(--accent));font-weight:720;text-overflow:ellipsis;white-space:nowrap}.flow-node.is-child .node-title{padding-top:.38rem;padding-bottom:.28rem}.flow-node.is-child .node-content{padding-bottom:.7rem}.node-title{display:flex;align-items:flex-start;gap:.55rem;padding:1rem 1rem .45rem 1.1rem;min-height:2.8rem}.node-title h2{min-width:0;flex:1;margin:0;font-size:1rem;line-height:1.22;letter-spacing:-.015em;overflow-wrap:anywhere}.node-title textarea{flex:1;width:100%;min-height:1.6rem;max-height:4.8rem;resize:none;border:0;padding:0;background:transparent;font-weight:700;font-size:1rem;line-height:1.25;outline:none}.concept-mark{flex:none;max-width:5.4rem;padding:.16rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--node-accent, var(--accent)) 12%,transparent);color:var(--node-accent, var(--accent));font-size:.62rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-content{min-height:0;flex:1;padding:0 1rem 1rem 1.1rem;overflow:auto;user-select:text;cursor:text;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 30%,transparent) transparent}.node-placeholder{margin:.1rem 0 0;color:color-mix(in srgb,var(--text-muted) 62%,transparent);font-size:.76rem}.markdown-editor{width:100%;min-height:100%;resize:none;border:0;padding:.2rem 0;background:transparent;color:inherit;font:.8rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;outline:none}.markdown-body{font-size:.82rem;line-height:1.55;color:color-mix(in srgb,currentColor 88%,var(--text-muted));overflow-wrap:anywhere}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body table{margin:.42rem 0}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:.5rem 0 .25rem;font-size:1em;line-height:1.3}.markdown-body ul,.markdown-body ol{padding-left:1.25rem}.markdown-body blockquote{padding-left:.65rem;border-left:2px solid var(--node-accent, var(--accent));color:var(--text-muted)}.markdown-body code{padding:.1rem .28rem;border-radius:.3rem;background:color-mix(in srgb,var(--text-primary) 7%,transparent);font:.75rem ui-monospace,SFMono-Regular,Menlo,monospace}.markdown-body pre{overflow:auto;padding:.55rem;border-radius:.55rem;background:color-mix(in srgb,var(--text-primary) 7%,transparent)}.markdown-body pre code{padding:0;background:none}.markdown-body a{color:var(--accent)}.markdown-body table{width:100%;border-collapse:collapse}.markdown-body th,.markdown-body td{border:1px solid var(--node-border);padding:.25rem;text-align:left}.url-card{display:flex;align-items:center;gap:.45rem;min-width:0;padding:.55rem .65rem;border-radius:.65rem;background:color-mix(in srgb,var(--node-accent, var(--accent)) 8%,var(--node-fill));color:inherit;text-decoration:none;cursor:pointer}.url-card span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.78rem}.node-content figure{display:grid;height:100%;margin:0;gap:.3rem}.node-content figure img{width:100%;min-height:0;height:100%;object-fit:contain;border-radius:.65rem}.node-content figcaption{color:var(--text-muted);font-size:.7rem}.missing-asset{display:grid;place-content:center;justify-items:center;gap:.4rem;min-height:4rem;color:var(--text-muted);font-size:.75rem}.flow-node.is-concept .node-content{padding:0 .9rem .85rem 1.05rem;overflow-y:auto;cursor:default;user-select:none}.flow-node.is-concept .node-title h2{font-size:.94rem}.concept-widget{display:grid;gap:.6rem;min-width:0;padding-top:.55rem;border-top:1px solid color-mix(in srgb,var(--node-accent, var(--accent)) 16%,var(--node-border))}.concept-widget__header{display:flex;align-items:center;gap:.42rem;color:var(--node-accent, var(--accent))}.concept-widget__header>svg{width:1rem;height:1rem;flex:none}.concept-widget__header select{min-width:0;appearance:none;border:0;border-radius:7px;padding:.18rem 1.2rem .18rem .15rem;background:linear-gradient(45deg,transparent 50%,currentColor 50%) calc(100% - .65rem) 52%/.3rem .3rem no-repeat,linear-gradient(135deg,currentColor 50%,transparent 50%) calc(100% - .45rem) 52%/.3rem .3rem no-repeat;color:var(--text-muted);font-size:.64rem;font-weight:700;outline:none;cursor:pointer}.concept-widget__header select:hover,.concept-widget__header select:focus{background-color:color-mix(in srgb,var(--node-accent, var(--accent)) 8%,transparent);color:var(--node-accent, var(--accent))}.widget-progress-copy,.widget-progress-scale{display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:.61rem}.widget-mini-track{height:4px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--node-accent, var(--accent)) 10%,var(--node-border))}.widget-mini-track i{display:block;height:100%;border-radius:inherit;background:var(--node-accent, var(--accent));transition:width .18s ease}.widget-checklist,.widget-progress,.widget-choice{display:grid;gap:.48rem;min-width:0}.widget-list,.widget-choice-list{display:grid;gap:.22rem;min-width:0}.widget-list-row,.widget-choice-row{display:flex;align-items:center;gap:.28rem;min-width:0;min-height:1.88rem;border-radius:8px;transition:background .12s ease}.widget-list-row:hover,.widget-choice-row:hover{background:color-mix(in srgb,var(--node-accent, var(--accent)) 6%,transparent)}.widget-list-row>input{min-width:0;flex:1;border:0;border-bottom:1px solid transparent;padding:.25rem .1rem;background:transparent;font-size:.74rem;outline:none}.widget-list-row>input:focus{border-bottom-color:color-mix(in srgb,var(--node-accent, var(--accent)) 45%,transparent)}.widget-check{position:relative;display:grid;place-items:center;width:1.45rem;height:1.45rem;flex:none;cursor:pointer}.widget-check input{position:absolute;width:1px;height:1px;opacity:0}.widget-check span{display:grid;place-items:center;width:1.05rem;height:1.05rem;border:1.5px solid color-mix(in srgb,var(--node-accent, var(--accent)) 48%,var(--node-border));border-radius:4px;color:transparent;transition:background .12s ease,color .12s ease}.widget-check span svg{width:.7rem;height:.7rem}.widget-check input:checked+span{border-color:var(--node-accent, var(--accent));background:var(--node-accent, var(--accent));color:var(--accent-contrast)}.widget-check input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:2px}.widget-row-delete{display:grid;place-items:center;width:1.55rem;height:1.55rem;flex:none;border:0;border-radius:6px;padding:0;background:transparent;color:#ad4264;opacity:0}.widget-row-delete svg{width:.82rem;height:.82rem}.widget-list-row:hover .widget-row-delete,.widget-choice-row:hover .widget-row-delete,.widget-row-delete:focus-visible{opacity:.75}.widget-add-row{display:flex;align-items:center;gap:.28rem;min-width:0;border-top:1px solid color-mix(in srgb,var(--node-border) 60%,transparent);padding-top:.38rem}.widget-add-row input{min-width:0;flex:1;border:0;padding:.3rem .2rem;background:transparent;color:var(--text-primary);font-size:.7rem;outline:none}.widget-add-row input::placeholder{color:color-mix(in srgb,var(--text-muted) 70%,transparent)}.widget-add-row button{display:grid;place-items:center;width:1.65rem;height:1.65rem;flex:none;border:0;border-radius:7px;padding:0;background:color-mix(in srgb,var(--node-accent, var(--accent)) 10%,transparent);color:var(--node-accent, var(--accent))}.widget-add-row button svg{width:.86rem;height:.86rem}.widget-progress output{display:flex;align-items:baseline;justify-content:center;gap:.12rem;color:var(--node-accent, var(--accent))}.widget-progress output strong{font-size:2rem;line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.widget-progress output span{font-size:.72rem;font-weight:720}.widget-progress input[type=range]{width:100%;height:1.2rem;appearance:none;margin:0;background:transparent;cursor:ew-resize}.widget-progress input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:99px;background:linear-gradient(90deg,var(--node-accent,var(--accent)) 0 var(--range-progress),color-mix(in srgb,var(--node-accent,var(--accent)) 13%,var(--node-border)) var(--range-progress) 100%)}.widget-progress input[type=range]::-webkit-slider-thumb{width:16px;height:16px;appearance:none;margin-top:-5.5px;border:3px solid var(--surface-raised);border-radius:50%;background:var(--node-accent, var(--accent));box-shadow:0 1px 5px color-mix(in srgb,var(--text-primary) 22%,transparent)}.widget-progress input[type=range]::-moz-range-track{height:5px;border-radius:99px;background:color-mix(in srgb,var(--node-accent,var(--accent)) 13%,var(--node-border))}.widget-progress input[type=range]::-moz-range-progress{height:5px;border-radius:99px;background:var(--node-accent,var(--accent))}.widget-progress input[type=range]::-moz-range-thumb{width:11px;height:11px;border:3px solid var(--surface-raised);border-radius:50%;background:var(--node-accent,var(--accent))}.widget-datetime{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.2rem .45rem;min-width:0;padding:.55rem .6rem;border-radius:10px;background:color-mix(in srgb,var(--node-accent, var(--accent)) 7%,transparent)}.widget-datetime>svg{grid-row:1/3;width:1.2rem;height:1.2rem;color:var(--node-accent, var(--accent))}.widget-datetime input{min-width:0;border:0;padding:0;background:transparent;color:var(--text-primary);font-size:.75rem;font-weight:680;outline:none}.widget-datetime span{color:var(--text-muted);font-size:.59rem}.widget-choice-list>p{margin:.1rem 0;color:var(--text-muted);font-size:.7rem}.widget-choice-row>button:first-child{min-width:0;flex:1;display:flex;align-items:center;gap:.42rem;border:0;padding:.28rem .22rem;background:transparent;text-align:left}.widget-choice-row>button:first-child i{display:grid;place-items:center;width:.95rem;height:.95rem;flex:none;border:1.5px solid color-mix(in srgb,var(--node-accent, var(--accent)) 38%,var(--node-border));border-radius:50%;color:var(--accent-contrast)}.widget-choice-row>button:first-child i svg{width:.62rem;height:.62rem}.widget-choice-row>button:first-child span{min-width:0;overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.widget-choice-row.is-active>button:first-child i{border-color:var(--node-accent, var(--accent));background:var(--node-accent, var(--accent))}.widget-choice-row.is-active>button:first-child span{color:var(--node-accent, var(--accent));font-weight:720}.widget-textarea{width:100%;min-height:4.7rem;resize:none;border:0;border-radius:9px;padding:.52rem .58rem;background:color-mix(in srgb,var(--node-accent, var(--accent)) 5%,transparent);color:var(--text-primary);font-size:.75rem;line-height:1.5;outline:none}.widget-textarea:focus{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--node-accent, var(--accent)) 42%,transparent)}.node-anchor{position:absolute;z-index:8;width:14px;height:14px;margin:-7px;padding:0;border:2px solid var(--surface-raised);border-radius:50%;background:var(--node-accent, var(--accent));box-shadow:0 0 0 1px var(--node-accent, var(--accent));opacity:0;transform:scale(.55);pointer-events:none;transition:opacity .12s ease,transform .16s cubic-bezier(.2,.8,.2,1)}.node-anchor:after{content:"";position:absolute;inset:-8px}.node-anchor span{position:absolute;display:grid;place-items:center;top:-12px;right:-12px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--text-primary);color:var(--surface-raised);font:700 8px/1 system-ui}.flow-node:hover .node-anchor,.flow-node.is-selected .node-anchor,.canvas-stage.is-connecting .node-anchor{opacity:1;transform:scale(1);pointer-events:auto}.node-anchor.is-used{box-shadow:0 0 0 3px color-mix(in srgb,var(--node-accent, var(--accent)) 20%,transparent)}.anchor-n{left:50%;top:0}.anchor-ne{left:100%;top:0}.anchor-e{left:100%;top:50%}.anchor-se{left:100%;top:100%}.anchor-s{left:50%;top:100%}.anchor-sw{left:0;top:100%}.anchor-w{left:0;top:50%}.anchor-nw{left:0;top:0}.node-resize-edges{position:absolute;z-index:6;inset:0;pointer-events:none}.node-resize-edge{position:absolute;z-index:6;margin:0;border:0;padding:0;appearance:none;background:transparent;opacity:0;pointer-events:none;touch-action:none;transition:opacity .1s ease}.node-resize-edge:after{content:"";position:absolute;border-radius:999px;background:var(--node-accent, var(--accent));opacity:.58;transition:opacity .1s ease,transform .1s ease}.flow-node:hover .node-resize-edge,.flow-node.is-selected .node-resize-edge{opacity:.55;pointer-events:auto}.flow-node.is-selected .node-resize-edge{opacity:.9}.node-resize-edge:hover:after{opacity:1}.resize-n,.resize-s{left:28px;right:28px;height:12px;cursor:ns-resize}.resize-n{top:-6px}.resize-s{bottom:-6px}.resize-n:after,.resize-s:after{left:50%;width:34px;height:2px;transform:translate(-50%)}.resize-n:after{top:5px}.resize-s:after{bottom:5px}.resize-n:hover:after,.resize-s:hover:after{transform:translate(-50%) scale(1.18)}.resize-e,.resize-w{top:28px;bottom:28px;width:12px;cursor:ew-resize}.resize-e{right:-6px}.resize-w{left:-6px}.resize-e:after,.resize-w:after{top:50%;width:2px;height:34px;transform:translateY(-50%)}.resize-e:after{right:5px}.resize-w:after{left:5px}.resize-e:hover:after,.resize-w:hover:after{transform:translateY(-50%) scale(1.18)}.resize-ne,.resize-sw,.resize-nw,.resize-se{width:18px;height:18px}.resize-ne,.resize-sw{cursor:nesw-resize}.resize-nw,.resize-se{cursor:nwse-resize}.resize-nw{left:12px;top:12px}.resize-ne{right:12px;top:12px}.resize-sw{left:12px;bottom:12px}.resize-se{right:12px;bottom:12px}.resize-ne:after,.resize-sw:after,.resize-nw:after,.resize-se:after{inset:4px;border-radius:2px;background:transparent}.resize-nw:after{border-left:2px solid var(--node-accent, var(--accent));border-top:2px solid var(--node-accent, var(--accent))}.resize-ne:after{border-right:2px solid var(--node-accent, var(--accent));border-top:2px solid var(--node-accent, var(--accent))}.resize-sw:after{border-left:2px solid var(--node-accent, var(--accent));border-bottom:2px solid var(--node-accent, var(--accent))}.resize-se:after{border-right:2px solid var(--node-accent, var(--accent));border-bottom:2px solid var(--node-accent, var(--accent))}.resize-ne:hover:after,.resize-sw:hover:after,.resize-nw:hover:after,.resize-se:hover:after{transform:scale(1.18)}@media(pointer:coarse){.resize-n,.resize-s{height:22px}.resize-n{top:-11px}.resize-s{bottom:-11px}.resize-e,.resize-w{width:22px}.resize-e{right:-11px}.resize-w{left:-11px}.resize-ne,.resize-sw,.resize-nw,.resize-se{width:24px;height:24px}}.growth-strip{position:absolute;z-index:20;left:50%;top:calc(100% + 11px);width:max-content;max-width:28rem;transform:translate(-50%,-5px) scale(.96);transform-origin:top center;display:grid;gap:.28rem;padding:.3rem;border:1px solid color-mix(in srgb,var(--node-border) 72%,transparent);border-radius:13px;background:color-mix(in srgb,var(--surface-raised) 89%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px) saturate(150%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease .12s,transform .18s ease .12s,visibility 0s linear .33s}.growth-strip:before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}.growth-strip__header,.growth-strip__concepts{display:flex;align-items:center;gap:.22rem}.growth-strip__concepts{padding-top:.28rem;border-top:1px solid color-mix(in srgb,var(--node-border) 55%,transparent)}.growth-strip button{min-height:1.9rem;border:0;border-radius:999px;padding:.3rem .52rem;background:color-mix(in srgb,var(--node-accent, var(--accent)) 8%,var(--surface-raised));color:var(--text-primary);font-size:.68rem;white-space:nowrap}.growth-strip__prompt{display:flex;align-items:center;gap:.35rem;max-width:19rem;color:var(--text-muted)!important;background:transparent!important}.growth-strip__prompt span{overflow:hidden;text-overflow:ellipsis}.growth-strip__prompt svg,.growth-strip__branch svg,.growth-strip__delete svg{width:.9rem;height:.9rem;flex:none}.growth-strip__branch{display:flex;align-items:center;gap:.16rem;min-width:2.25rem;color:var(--node-accent, var(--accent))!important}.growth-strip__branch span{min-width:.7rem;font-weight:760;text-align:center}.growth-strip__delete{display:grid;place-items:center;width:1.9rem;padding:0!important;color:#b82d56!important;background:transparent!important}.growth-strip button:hover{background:color-mix(in srgb,var(--node-accent, var(--accent)) 18%,var(--surface-raised))}.growth-strip__delete:hover{background:#fff0f4!important}.flow-node:hover .growth-strip,.flow-node.is-selected .growth-strip,.growth-strip:focus-within{opacity:1;visibility:visible;transform:translate(-50%) scale(1);pointer-events:auto;transition-delay:.25s,.25s,0s}.selection-box{position:absolute;z-index:100001;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none}.context-toolbar{position:fixed;z-index:80;top:50%;right:max(1rem,env(safe-area-inset-right));transform:translateY(-50%);display:flex;flex-direction:column;gap:.42rem;max-height:calc(100dvh - 2rem);padding:.55rem;border:1px solid color-mix(in srgb,var(--node-border) 76%,transparent);border-radius:16px;background:color-mix(in srgb,var(--surface-raised) 84%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(22px) saturate(155%);animation:materialize .18s ease-out}@keyframes materialize{0%{opacity:0;transform:translate(12px,-50%) scale(.96);backdrop-filter:blur(2px)}}.context-toolbar button{min-width:2.35rem;min-height:2.35rem;display:grid;place-items:center;border:0;border-radius:10px;background:transparent}.context-toolbar button:hover,.context-toolbar button.active{background:color-mix(in srgb,var(--accent) 11%,transparent)}.context-toolbar button:active{transform:translateY(1px)}.context-toolbar .danger{color:#b82d56}.tool-group{display:grid;gap:.25rem;padding-bottom:.42rem;margin-bottom:.15rem;border-bottom:1px solid color-mix(in srgb,var(--node-border) 60%,transparent)}.tool-group button{min-width:3.7rem;min-height:1.9rem;padding:.25rem .4rem;font-size:.68rem}.context-toolbar label{display:grid;gap:.22rem;color:var(--text-muted);font-size:.62rem}.context-toolbar select,.context-toolbar input[type=text],.context-toolbar .edge-label-input input{width:7rem;border:1px solid var(--node-border);border-radius:8px;padding:.38rem .45rem;background:var(--surface-raised);color:var(--text-primary)}.color-tool{display:flex!important;align-items:center;justify-content:space-between;gap:.45rem!important;padding:.35rem}.color-tool input{width:1.7rem;height:1.7rem;padding:0;border:0;border-radius:50%;overflow:hidden;background:none}.outline-panel{position:fixed;z-index:75;top:1rem;right:1rem;width:min(21rem,calc(100vw - 2rem));max-height:calc(100dvh - 7rem);display:flex;flex-direction:column;border:1px solid color-mix(in srgb,var(--node-border) 75%,transparent);border-radius:18px;background:color-mix(in srgb,var(--surface-raised) 88%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(24px) saturate(155%);overflow:hidden;animation:materialize .18s ease-out}.outline-panel header{display:flex;align-items:center;justify-content:space-between;padding:.85rem .85rem .65rem 1rem}.outline-panel header span{display:grid}.outline-panel header small{color:var(--text-muted);font-size:.68rem}.outline-tree,.outline-tree ul{list-style:none;margin:0;padding:0}.outline-tree{padding:.3rem .55rem .8rem;overflow:auto}.outline-item{display:flex;align-items:center;min-height:2.2rem;padding-left:calc(var(--outline-level) * .85rem);border-radius:9px}.outline-item:hover,.outline-item.is-selected{background:color-mix(in srgb,var(--accent) 9%,transparent)}.outline-item>button:first-child{flex:none;width:1.7rem;height:1.7rem;display:grid;place-items:center;border:0;background:none;padding:0}.outline-spacer{width:1.7rem}.outline-title{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:0;padding:.35rem .5rem .35rem 0;background:none;text-align:left}.outline-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.outline-title small{color:var(--text-muted);font-size:.6rem}.outline-empty{padding:2rem 1.2rem;color:var(--text-muted);font-size:.82rem;text-align:center}.canvas-utility{position:fixed;z-index:65;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.2rem;padding:.35rem;border:1px solid color-mix(in srgb,var(--node-border) 55%,transparent);border-radius:14px;background:color-mix(in srgb,var(--surface-raised) 72%,transparent);backdrop-filter:blur(18px);opacity:.38;transition:opacity .16s ease,transform .16s ease}.canvas-utility:hover,.canvas-utility:focus-within{opacity:1;transform:translateY(-2px)}.canvas-utility button,.canvas-utility a{width:2rem;height:2rem;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:inherit;text-decoration:none}.canvas-utility button:hover,.canvas-utility a:hover,.canvas-utility .active{background:color-mix(in srgb,var(--accent) 10%,transparent)}.history-controls,.zoom-controls{display:flex;align-items:center}.history-controls{padding-right:.2rem;margin-right:.2rem;border-right:1px solid var(--node-border)}.zoom-controls{margin-left:.15rem;border-left:1px solid var(--node-border)}.zoom-controls span{min-width:3rem;color:var(--text-muted);font-size:.68rem;text-align:center}.save-indicator{position:fixed;z-index:60;left:50%;bottom:max(1.15rem,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:.45rem;padding:.35rem .6rem;border-radius:999px;color:var(--text-muted);font-size:.68rem;background:color-mix(in srgb,var(--surface-raised) 52%,transparent);backdrop-filter:blur(12px);opacity:.45;transition:opacity .16s ease}.save-indicator:hover,.save-indicator:focus-within,.save-indicator.state-error,.save-indicator.state-conflict,.save-indicator.state-offline{opacity:1}.save-indicator i{width:.52rem;height:.52rem;border-radius:50%;background:#63a879}.save-indicator.state-saving i,.save-indicator.state-dirty i{background:var(--accent);animation:pulse 1s ease infinite}.save-indicator.state-error i,.save-indicator.state-conflict i{background:#c1325e}.save-indicator.state-offline i{background:#b6812d}.connection-status{position:fixed;z-index:62;left:50%;top:max(1rem,env(safe-area-inset-top));transform:translate(-50%);max-width:min(36rem,calc(100vw - 2rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--node-border));border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 88%,transparent);color:var(--text-muted);box-shadow:var(--shadow-soft);backdrop-filter:blur(16px);font-size:.7rem;text-align:center}@keyframes pulse{50%{transform:scale(.62);opacity:.45}}.canvas-ai{position:absolute;z-index:80;inset:0;pointer-events:none}.canvas-ai-orb{position:absolute;left:var(--ai-x);top:var(--ai-y);width:2.55rem;height:2.55rem;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid color-mix(in srgb,var(--accent) 46%,var(--surface-raised));border-radius:50%;padding:0;background:var(--accent);color:var(--accent-contrast);box-shadow:0 .65rem 1.6rem color-mix(in srgb,var(--accent) 30%,transparent),0 0 0 .36rem color-mix(in srgb,var(--surface-raised) 72%,transparent);pointer-events:auto;animation:ai-orb-in .22s cubic-bezier(.2,.85,.2,1)}.canvas-ai-orb:after{content:"";position:absolute;inset:-.48rem;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);border-radius:50%;animation:ai-orb-ring 1.8s ease-out infinite;pointer-events:none}.canvas-ai-orb svg{width:1.05rem;height:1.05rem}.canvas-ai-orb:hover{transform:translate(-50%,-50%) scale(1.08)}@keyframes ai-orb-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}}@keyframes ai-orb-ring{0%{opacity:.8;transform:scale(.72)}70%,to{opacity:0;transform:scale(1.28)}}.canvas-ai-panel{position:absolute;left:var(--ai-panel-left);top:var(--ai-panel-top);width:var(--ai-panel-width);max-height:min(41rem,calc(100dvh - 1.5rem));display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--node-border) 82%,transparent);border-radius:19px;background:color-mix(in srgb,var(--surface-raised) 94%,transparent);color:var(--text-primary);box-shadow:0 1.4rem 4.5rem color-mix(in srgb,var(--text-primary) 18%,transparent),0 0 0 1px color-mix(in srgb,var(--surface-raised) 65%,transparent);-webkit-backdrop-filter:blur(28px) saturate(150%);backdrop-filter:blur(28px) saturate(150%);pointer-events:auto;touch-action:pan-y;user-select:text;animation:ai-panel-in .19s cubic-bezier(.2,.82,.2,1)}.canvas-ai.open-above .canvas-ai-panel{transform:translateY(-100%);transform-origin:bottom left}.canvas-ai.open-below .canvas-ai-panel{transform-origin:top left}@keyframes ai-panel-in{0%{opacity:0;scale:.96}}.canvas-ai-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.78rem .78rem .62rem .9rem;border-bottom:1px solid color-mix(in srgb,var(--node-border) 65%,transparent)}.canvas-ai-head>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 .42rem;min-width:0}.canvas-ai-head strong{font-size:.78rem;letter-spacing:-.01em}.canvas-ai-head small{grid-column:2;overflow:hidden;color:var(--text-muted);font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.canvas-ai-head>button{width:1.85rem;height:1.85rem;display:grid;place-items:center;flex:none;border:0;border-radius:8px;padding:0;background:transparent;color:var(--text-muted)}.canvas-ai-head>button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text-primary)}.ai-live-dot{grid-row:1/3;width:.52rem;height:.52rem;border-radius:50%;background:color-mix(in srgb,var(--text-muted) 45%,transparent)}.ai-live-dot.is-live{background:var(--accent);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--accent) 12%,transparent);animation:pulse 1.1s ease-in-out infinite}.canvas-ai-modes{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;margin:.65rem .75rem 0;padding:.22rem;border-radius:10px;background:color-mix(in srgb,var(--text-primary) 5%,transparent)}.canvas-ai-modes button{min-height:2rem;display:flex;align-items:center;justify-content:center;gap:.3rem;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font-size:.68rem;font-weight:700}.canvas-ai-modes button svg{width:.9rem;height:.9rem}.canvas-ai-modes button.active{background:var(--surface-raised);color:var(--accent);box-shadow:0 2px 7px color-mix(in srgb,var(--text-primary) 8%,transparent)}.canvas-ai-setup{display:grid;gap:.3rem;margin:.72rem;padding:.8rem;border:1px dashed color-mix(in srgb,var(--accent) 28%,var(--node-border));border-radius:12px;background:color-mix(in srgb,var(--accent) 4%,transparent)}.canvas-ai-setup strong{font-size:.75rem}.canvas-ai-setup span{color:var(--text-muted);font-size:.66rem;line-height:1.45}.canvas-ai-setup a{justify-self:start;display:inline-flex;align-items:center;gap:.3rem;margin-top:.28rem;color:var(--accent);font-size:.68rem;font-weight:730;text-decoration:none}.canvas-ai-setup a svg{width:.8rem}.canvas-ai-prompt{display:grid;gap:.28rem;margin:.68rem .75rem 0}.canvas-ai-prompt textarea{width:100%;min-height:5.1rem;max-height:10rem;resize:vertical;border:1px solid color-mix(in srgb,var(--node-border) 88%,transparent);border-radius:11px;padding:.72rem;background:color-mix(in srgb,var(--surface) 74%,var(--surface-raised));color:var(--text-primary);font-size:.76rem;line-height:1.55;outline:none}.canvas-ai-prompt textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.canvas-ai-prompt span{justify-self:end;color:var(--text-muted);font-size:.55rem}.canvas-ai-actions{display:flex;gap:.42rem;padding:.55rem .75rem .7rem}.canvas-ai-actions button{min-height:2.2rem;display:inline-flex;align-items:center;justify-content:center;gap:.32rem;border-radius:9px;padding:.45rem .7rem;font-size:.67rem;font-weight:740}.canvas-ai-actions button svg{width:.9rem;height:.9rem}.ai-generate{flex:1;border:0;background:var(--accent);color:var(--accent-contrast);box-shadow:0 .4rem 1rem color-mix(in srgb,var(--accent) 18%,transparent)}.ai-stop{flex:1;border:1px solid color-mix(in srgb,#b62d57 35%,var(--node-border));background:color-mix(in srgb,#b62d57 8%,var(--surface-raised));color:#a1284d}.ai-apply{border:1px solid var(--node-border);background:var(--surface-raised);color:var(--text-primary)}.ai-apply:not(:disabled){border-color:color-mix(in srgb,var(--accent) 38%,var(--node-border));color:var(--accent)}.canvas-ai-result{min-height:0;overflow:auto;margin:0 .75rem .75rem;border:1px solid color-mix(in srgb,var(--node-border) 75%,transparent);border-radius:12px;background:color-mix(in srgb,var(--canvas-bg) 56%,var(--surface-raised));scrollbar-width:thin}.canvas-ai-status{position:sticky;z-index:2;top:0;display:flex;align-items:flex-start;gap:.42rem;margin:0;padding:.58rem .65rem;border-bottom:1px solid color-mix(in srgb,var(--node-border) 58%,transparent);background:color-mix(in srgb,var(--surface-raised) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:.63rem;line-height:1.4}.canvas-ai-status span{width:.42rem;height:.42rem;flex:none;margin-top:.21rem;border-radius:50%;background:var(--text-muted)}.state-streaming .canvas-ai-status span{background:var(--accent);animation:pulse 1s ease infinite}.state-ready .canvas-ai-status span{background:#43805a}.state-error .canvas-ai-status span{background:#b62d57}.canvas-ai-status b{font-weight:670}.ai-plan-meta{display:grid;gap:.15rem;padding:.65rem}.ai-plan-meta strong{font-size:.75rem}.ai-plan-meta span{color:var(--text-muted);font-size:.62rem;line-height:1.45}.ai-node-stream{display:grid;gap:.32rem;padding:0 .55rem .4rem}.ai-node-stream article{display:grid;grid-template-columns:1.55rem 1fr;align-items:start;gap:.42rem;padding:.46rem;border:1px solid color-mix(in srgb,var(--node-border) 64%,transparent);border-radius:9px;background:var(--node-fill);animation:ai-node-in .17s ease-out}.ai-node-stream article>i{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:6px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--accent);font:.61rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;font-style:normal}.ai-node-stream article>span{display:grid;min-width:0}.ai-node-stream strong{overflow:hidden;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.ai-node-stream small{display:-webkit-box;overflow:hidden;color:var(--text-muted);font-size:.58rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ai-plan-count{margin:0;padding:.25rem .62rem .55rem;color:var(--text-muted);font-size:.57rem;text-align:right}.ai-raw-stream{max-height:7rem;overflow:auto;margin:0;padding:.65rem;color:var(--text-muted);font:.6rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}@keyframes ai-node-in{0%{opacity:0;transform:translateY(6px)}}.ai-image-stream{display:block;width:calc(100% - 1rem);max-height:18rem;margin:.5rem;object-fit:contain;border-radius:9px;background:color-mix(in srgb,var(--text-primary) 7%,transparent)}.ai-image-prompt{margin:.2rem .65rem .65rem;color:var(--text-muted);font-size:.59rem}.ai-image-prompt summary{cursor:pointer;font-weight:700}.ai-image-prompt p{margin:.4rem 0 0;line-height:1.45;white-space:pre-wrap}.board-dock{position:fixed;z-index:90;top:0;bottom:0;left:0;width:18rem;padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom));transform:translate(calc(-100% + 16px));transition:transform .27s cubic-bezier(.2,.8,.2,1);pointer-events:auto}.board-dock.is-open,.board-dock:hover,.board-dock:focus-within{transform:translate(0)}.dock-hotline{position:absolute;right:5px;top:46%;width:2px;height:clamp(4rem,14vh,7rem);border-radius:999px;background:var(--accent);opacity:.2;box-shadow:0 0 12px color-mix(in srgb,var(--accent) 50%,transparent);transition:opacity .16s ease}.board-dock:hover .dock-hotline,.board-dock.is-open .dock-hotline{opacity:0}.dock-panel{position:relative;height:100%;display:flex;flex-direction:column;padding:.7rem;border:1px solid color-mix(in srgb,var(--node-border) 72%,transparent);border-radius:22px;background:color-mix(in srgb,var(--surface) 86%,transparent);box-shadow:0 1.5rem 4rem color-mix(in srgb,var(--accent) 16%,transparent);backdrop-filter:blur(28px) saturate(150%);overflow:visible}.dock-head{display:flex;gap:.45rem;align-items:center}.new-board{flex:1;display:flex;align-items:center;gap:.55rem;border:0;border-radius:12px;padding:.72rem .8rem;background:var(--accent);color:var(--accent-contrast);font-weight:730}.new-board:active{transform:translateY(1px)}.icon-button{width:2.25rem;height:2.25rem;display:grid;place-items:center;flex:none;border:0;border-radius:10px;padding:0;background:transparent}.icon-button:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}.dock-search{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding:.55rem .65rem;border-radius:11px;background:color-mix(in srgb,var(--text-primary) 5%,transparent);color:var(--text-muted)}.dock-search input{min-width:0;flex:1;border:0;padding:0;background:none;outline:none}.dock-sections{display:flex;gap:.25rem;margin:.6rem 0 .3rem}.dock-sections button{border:0;border-radius:999px;padding:.3rem .58rem;background:transparent;color:var(--text-muted);font-size:.68rem}.dock-sections button.active{background:color-mix(in srgb,var(--accent) 11%,transparent);color:var(--accent);font-weight:700}.board-list{flex:1;min-height:0;overflow-y:auto;padding:.15rem 0;scrollbar-width:thin}.board-row{position:relative;display:flex;align-items:center;border-radius:12px}.board-row:hover,.board-row.is-active{background:color-mix(in srgb,var(--accent) 8%,transparent)}.board-row.is-active:before{content:"";position:absolute;left:0;top:28%;bottom:28%;width:3px;border-radius:999px;background:var(--accent)}.board-row__main{flex:1;min-width:0;display:grid;gap:.08rem;border:0;padding:.57rem .45rem .57rem .72rem;background:none;text-align:left}.board-row__main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:650}.board-row__main small{color:var(--text-muted);font-size:.62rem}.board-row__more{width:1.9rem;height:1.9rem;display:grid;place-items:center;border:0;border-radius:8px;background:none;opacity:0}.board-row:hover .board-row__more,.board-row__more:focus{opacity:1}.board-rename{flex:1;min-width:0;margin:.35rem;border:1px solid var(--accent);border-radius:8px;padding:.38rem .45rem;background:var(--surface-raised);outline:none}.board-menu{position:absolute;z-index:20;top:calc(100% - .2rem);right:.2rem;width:10rem;padding:.35rem;border:1px solid var(--node-border);border-radius:12px;background:var(--surface-raised);box-shadow:var(--shadow-soft)}.board-menu button{width:100%;display:flex;align-items:center;gap:.5rem;border:0;border-radius:8px;padding:.5rem .55rem;background:none;text-align:left;font-size:.74rem}.board-menu button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.board-menu .danger{color:#b82d56}.dock-empty{padding:2rem .75rem;color:var(--text-muted);font-size:.78rem;text-align:center}.dock-transfer{display:flex;gap:.25rem;padding:.45rem 0;border-top:1px solid color-mix(in srgb,var(--node-border) 55%,transparent)}.dock-transfer button,.dock-transfer a{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:9px;padding:.45rem;background:none;color:var(--text-muted);font-size:.65rem;text-decoration:none}.dock-transfer button:hover,.dock-transfer a:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text-primary)}.account-entry{position:relative;padding-top:.45rem;border-top:1px solid color-mix(in srgb,var(--node-border) 55%,transparent)}.account-orb{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:50%;background:color-mix(in srgb,var(--accent) 15%,var(--surface-raised));color:var(--accent);font-weight:780}.account-popover{position:absolute;left:0;bottom:calc(100% + .6rem);width:100%;padding:.8rem;border:1px solid var(--node-border);border-radius:16px;background:var(--surface-raised);box-shadow:var(--shadow-soft);animation:rise .18s ease-out}.account-close{position:absolute;right:.45rem;top:.45rem}.account-identity{display:flex;align-items:center;gap:.6rem;padding:.2rem .25rem .7rem}.account-identity span{display:grid}.account-identity small{color:var(--text-muted);font-size:.65rem}.account-actions{display:grid;gap:.18rem}.account-actions a,.account-actions button{display:flex;align-items:center;gap:.55rem;width:100%;border:0;border-radius:9px;padding:.55rem;background:none;color:inherit;text-decoration:none;text-align:left;font-size:.74rem}.account-actions a:hover,.account-actions button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.password-form{display:grid;gap:.7rem;padding-top:.2rem}.password-form label,.login-card label,.modal-content label{display:grid;gap:.35rem;font-size:.72rem;font-weight:650}.password-form input,.login-card input,.modal-content input,.modal-content textarea{width:100%;border:1px solid var(--node-border);border-radius:10px;padding:.66rem .72rem;background:var(--surface-raised);outline:none}.password-form input:focus,.login-card input:focus,.modal-content input:focus,.modal-content textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.row-actions{display:flex;justify-content:flex-end;gap:.45rem}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.97)}}.dock-touch-trigger{position:fixed;z-index:55;top:max(.65rem,env(safe-area-inset-top));left:max(.55rem,env(safe-area-inset-left));width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:transparent;opacity:.18}.dock-touch-trigger span,.dock-touch-trigger span:before,.dock-touch-trigger span:after{position:absolute;content:"";left:.85rem;width:.9rem;height:2px;border-radius:99px;background:var(--text-primary)}.dock-touch-trigger span{top:1.25rem}.dock-touch-trigger span:before{left:0;top:-.3rem}.dock-touch-trigger span:after{left:0;top:.3rem}.dock-touch-trigger:hover,.dock-touch-trigger:focus-visible{opacity:1;background:color-mix(in srgb,var(--surface-raised) 75%,transparent);backdrop-filter:blur(12px)}.login-scene{position:relative;min-height:100dvh;overflow:hidden;background:var(--canvas-bg);isolation:isolate}.login-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.login-atmosphere i{position:absolute;border-radius:50%;filter:blur(1px);background:radial-gradient(circle at 36% 30%,#fff 0 12%,color-mix(in srgb,var(--accent) 24%,transparent) 44%,transparent 72%);opacity:.72}.login-atmosphere i:nth-child(1){width:42vw;height:42vw;left:-9vw;top:-15vw}.login-atmosphere i:nth-child(2){width:36vw;height:36vw;right:-10vw;bottom:-12vw;opacity:.48}.login-atmosphere i:nth-child(3){width:22vw;height:22vw;left:55%;top:10%;opacity:.25}.login-message{position:absolute;left:clamp(1.4rem,8vw,8rem);top:50%;transform:translateY(-55%);z-index:1}.login-mark{display:flex;align-items:center;gap:.4rem;color:var(--accent);font-size:.78rem;font-weight:750}.login-message h1{max-width:10ch;margin:1.1rem 0 .8rem;font-size:clamp(3.4rem,8.5vw,8rem);line-height:.86;letter-spacing:-.075em}.login-message p{max-width:27rem;margin:0;color:var(--text-muted);font-size:clamp(.9rem,1.5vw,1.15rem)}.login-entry{position:fixed;z-index:10;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom))}.login-entry__hint{display:flex;align-items:center;gap:.5rem;border:0;border-radius:999px;padding:.65rem .8rem;background:color-mix(in srgb,var(--surface-raised) 46%,transparent);color:var(--text-muted);backdrop-filter:blur(10px);opacity:.52}.login-entry__hint span{max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .22s ease}.login-entry:hover .login-entry__hint,.login-entry__hint:focus{opacity:1}.login-entry:hover .login-entry__hint span,.login-entry__hint:focus span{max-width:8rem}.login-card{width:min(21rem,calc(100vw - 2rem));display:grid;gap:.85rem;padding:1.1rem;border:1px solid color-mix(in srgb,var(--node-border) 72%,transparent);border-radius:20px;background:color-mix(in srgb,var(--surface-raised) 88%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(26px) saturate(155%);animation:rise .2s ease-out}.login-card__head{display:grid}.login-card__head strong{font-size:1.05rem}.login-card__head small{color:var(--text-muted)}.primary-button,.ghost-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:999px;padding:.72rem 1rem;font-weight:720;white-space:nowrap}.primary-button{background:var(--accent);color:var(--accent-contrast);box-shadow:0 .6rem 1.2rem color-mix(in srgb,var(--accent) 22%,transparent)}.primary-button:active,.danger-button:active{transform:translateY(1px)}.primary-button.compact,.danger-button{padding:.58rem .85rem;font-size:.78rem}.ghost-button{background:color-mix(in srgb,var(--text-primary) 6%,transparent);color:var(--text-primary);box-shadow:none}.danger-button{background:#bd315c;color:#fff}.inline-error{margin:0;padding:.55rem .65rem;border-radius:9px;background:#fff0f4;color:#a12651;font-size:.72rem}.login-message h1{line-height:.92}.modal-scrim{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--text-primary) 24%,transparent);backdrop-filter:blur(8px);animation:fadein .15s ease}.modal-sheet{width:min(30rem,100%);max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;border:1px solid color-mix(in srgb,var(--node-border) 75%,transparent);border-radius:22px;background:var(--surface-raised);box-shadow:0 2rem 5rem color-mix(in srgb,var(--text-primary) 26%,transparent);animation:modalin .22s cubic-bezier(.2,.8,.2,1);overflow:hidden}.modal-sheet header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .5rem 1.2rem}.modal-sheet h2{margin:0;font-size:1.1rem;letter-spacing:-.02em}.modal-content{display:grid;gap:.9rem;padding:.6rem 1.2rem 1.2rem;overflow:auto;color:var(--text-muted);font-size:.84rem}.modal-content p{margin:0}.modal-content strong{color:var(--text-primary)}.modal-sheet footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.8rem 1.2rem 1.1rem}.import-summary{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.8rem;border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,transparent)}.import-summary strong{grid-column:1/-1;font-size:1rem}.import-summary span{font-size:.75rem}@keyframes fadein{0%{opacity:0}}@keyframes modalin{0%{opacity:0;transform:translateY(14px) scale(.97)}}.delete-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding:.85rem;border-radius:13px;background:color-mix(in srgb,var(--accent) 6%,transparent)}.delete-summary strong{grid-column:1/-1;overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.delete-summary span{padding:.38rem .42rem;border-radius:8px;background:color-mix(in srgb,var(--surface-raised) 74%,transparent);color:var(--text-muted);font-size:.7rem;text-align:center}.delete-summary.is-permanent{background:color-mix(in srgb,#bd315c 8%,transparent)}.delete-summary.is-permanent strong,.delete-warning strong{color:#b82d56}.notice-toast{position:fixed;z-index:180;top:max(1rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.55rem;max-width:min(34rem,calc(100vw - 2rem));padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--node-border));border-radius:14px;background:color-mix(in srgb,var(--surface-raised) 92%,transparent);box-shadow:var(--shadow-soft);backdrop-filter:blur(18px);font-size:.76rem;animation:materialize .18s ease-out}.notice-toast span{flex:1}.notice-toast button{flex:none;width:1.8rem;height:1.8rem;display:grid;place-items:center;border:0;border-radius:8px;background:none}@media(max-width:720px){.board-dock{width:min(18rem,calc(100vw - .75rem));transform:translate(calc(-100% + 10px));padding:.4rem}.dock-panel{border-radius:18px}.context-toolbar{top:auto;right:.55rem;left:.55rem;bottom:max(.55rem,env(safe-area-inset-bottom));transform:none;flex-direction:row;align-items:center;overflow-x:auto;max-height:none}.context-toolbar label{flex:none}.context-toolbar select,.context-toolbar .edge-label-input input{width:6rem}.canvas-utility{right:.55rem;bottom:4.6rem;opacity:.72}.save-indicator{bottom:1rem;left:1rem;transform:none}.growth-strip{left:0;max-width:calc(100vw - 2rem);transform:translateY(-5px) scale(.96);transform-origin:top left}.flow-node:hover .growth-strip,.flow-node.is-selected .growth-strip,.growth-strip:focus-within{transform:translate(0) scale(1)}.growth-strip__concepts{overflow-x:auto}.login-message{left:1.25rem;right:1.25rem;top:37%}.login-message h1{font-size:clamp(3.3rem,16vw,5rem)}.login-message p{max-width:19rem}.outline-panel{top:.55rem;right:.55rem;left:.55rem;width:auto;max-height:calc(100dvh - 6rem)}.canvas-ai.is-open{position:fixed;z-index:86}.canvas-ai-panel,.canvas-ai.open-above .canvas-ai-panel,.canvas-ai.open-below .canvas-ai-panel{position:fixed;left:.55rem;right:.55rem;bottom:max(.55rem,env(safe-area-inset-bottom));top:auto;width:auto;max-height:min(78dvh,42rem);transform:none;border-radius:18px;transform-origin:bottom center}.canvas-ai-orb{width:2.8rem;height:2.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-reduced-transparency:reduce){.dock-panel,.context-toolbar,.outline-panel,.canvas-utility,.save-indicator,.login-card,.modal-scrim,.notice-toast,.growth-strip,.canvas-ai-panel,.canvas-ai-status{background:var(--surface-raised);backdrop-filter:none}}@media(prefers-contrast:more){.dock-panel,.context-toolbar,.outline-panel,.flow-node,.login-card{border-width:2px}.flow-node.is-muted,.flow-edge.is-muted{opacity:.48}.canvas-utility,.save-indicator{opacity:1}}
