.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-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}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}:root{--bg: #070b12;--panel: rgb(16 24 38 / 94%);--panel-solid: #101826;--card: #0f1622;--card-border: rgba(148, 197, 255, .14);--line: rgba(148, 197, 255, .12);--text: #eef5ff;--muted: #9aadc4;--faint: #6b7f96;--accent: #5eead4;--accent-blue: #38bdf8;--accent-ink: #041018;--danger: #fb7185;--ok: #4ade80;--warn: #fbbf24;--radius: 14px;--chrome-z: 2550;--dock-z: 2600;--panel-z: 2700;--topbar-h: 56px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.2, .64, 1);--shadow-soft: 0 12px 32px rgba(0, 0, 0, .38);--shadow-lift: 0 18px 48px rgba(0, 0, 0, .48);--glass-bg: rgba(14, 22, 34, .88);--glass-border: rgba(148, 197, 255, .16);font-family:SF Pro Text,PingFang SC,Hiragino Sans GB,Noto Sans SC,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:#152033;border-radius:10px;padding:8px 12px}button:hover{filter:brightness(1.08)}button.primary{background:linear-gradient(135deg,#2dd4bf,#38bdf8);border:none;color:var(--accent-ink);font-weight:700}button.ghost{background:transparent}button.danger{color:var(--danger);border-color:#fb718559}button:disabled{opacity:.45;cursor:not-allowed}input,textarea,select{width:100%;background:#0b1220;border:1px solid var(--line);border-radius:10px;padding:9px 11px;outline:none}input:focus,textarea:focus,select:focus{border-color:#5eead473;box-shadow:0 0 0 3px #5eead41f}textarea{resize:vertical;min-height:72px;line-height:1.45}.toast-host{position:fixed;right:16px;bottom:16px;z-index:4000;display:flex;flex-direction:column;gap:8px}.toast{background:#18263a;border:1px solid var(--line);padding:10px 14px;border-radius:12px;box-shadow:0 16px 40px #0006;max-width:360px;font-size:13px}.site{width:100%;height:100%;display:grid;grid-template-rows:var(--topbar-h) 1fr;background:radial-gradient(900px 480px at 8% -10%,rgba(56,189,248,.12),transparent 55%),radial-gradient(820px 420px at 92% 0%,rgba(94,234,212,.1),transparent 52%),var(--bg)}.site-top{height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:0 16px;border-bottom:1px solid var(--line);background:#070b12e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:calc(var(--panel-z) + 100);overflow:visible}.brand{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.brand img{border-radius:8px;display:block}.brand strong{display:block;font-size:14px;line-height:1.1}.brand small{display:block;font-size:11px;color:var(--muted)}.site-nav{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow-x:auto}.site-nav a{padding:8px 10px;border-radius:9px;color:var(--muted);font-size:13px;white-space:nowrap}.site-nav a:hover{color:var(--text);background:#ffffff0a}.site-nav a.active,.site-nav a.nav-download{color:var(--accent-ink);background:linear-gradient(135deg,#2dd4bf,#38bdf8);font-weight:700}.site-right{margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:8px}.auth-actions{display:flex;gap:8px;align-items:center}.auth-actions .btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;font-size:13px;border:1px solid var(--line)}.auth-actions .btn.ghost{color:var(--muted);background:transparent}.auth-actions .btn.primary{color:var(--accent-ink);border-color:transparent;background:linear-gradient(135deg,#2dd4bf,#38bdf8);font-weight:650}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#0c121ccc;border-radius:999px;padding:4px 10px 4px 4px;color:var(--text);cursor:pointer}.user-chip:hover{border-color:#5eead459}.user-menu .avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#2dd4bf,#38bdf8);color:#041018;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.user-name{font-size:13px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pop{position:absolute;right:0;top:calc(100% + 8px);width:220px;background:#0f1622;border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 18px 48px #00000073;z-index:20}.user-pop-name{font-weight:650}.user-pop-mail{color:var(--faint);font-size:12px;margin:2px 0 6px;word-break:break-all}.user-pop-credits{color:var(--muted);font-size:12px;margin:0 0 8px}.user-pop a,.user-pop button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 0;color:var(--muted);cursor:pointer;font:inherit}.user-pop a:hover,.user-pop button:hover{color:var(--text)}.user-pop button:disabled{opacity:.6;cursor:wait}.site-main{min-height:0;height:100%;overflow:hidden;position:relative}.list-shell{height:100%;overflow:auto}.list-page{width:100%;max-width:none;margin:0;padding:24px 28px 48px}.list-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}.list-hero h2{margin:0;font-size:24px}.list-hero p{margin:8px 0 0;color:var(--muted);font-size:14px;max-width:560px;line-height:1.55}.create-card{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-width:min(440px,100%)}.create-card input[type=text]{flex:1;min-width:160px}.check{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-size:13px;white-space:nowrap}.check input{width:auto}.section-title{margin:28px 0 12px;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.6px;text-transform:uppercase}.section-hint{margin:-4px 0 12px;color:var(--muted);font-size:13px;line-height:1.5}.tpl-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.tpl-filters button{padding:6px 12px;border-radius:999px;font-size:12px;border:1px solid var(--line);background:#0b1220;color:var(--muted)}.tpl-filters button.active{color:#99f6e4;border-color:#2dd4bf73;background:#2dd4bf1f}.template-card .tpl-howto{font-size:12px;color:#9fb0c5;line-height:1.55;padding:8px 10px;border-radius:10px;background:#5eead40f;border:1px solid rgba(94,234,212,.12)}.template-card.featured{border-color:#2dd4bf59;box-shadow:0 0 0 1px #2dd4bf14}.tpl-title-block{display:flex;flex-direction:column;gap:4px;min-width:0}.tpl-subtitle{font-size:12px;color:#5eead4;font-weight:600}.tpl-badges{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.tpl-preview-mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:-4px -4px 10px;border-radius:12px;overflow:hidden;cursor:pointer;position:relative;background:#05070c;aspect-ratio:16 / 9}.tpl-preview-mosaic img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}.tpl-preview-hint{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:999px;background:#05070cb8;color:#e8eef7;font-size:11px;font-weight:600}.canvas-cover-mosaic{cursor:pointer}.canvas-cover-empty{display:flex;align-items:center;justify-content:center;margin:-4px -4px 10px;border-radius:12px;aspect-ratio:16 / 9;background:#080c148c;color:var(--muted);font-size:12px;border:1px dashed rgba(148,163,184,.22)}.tpl-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.tpl-preview-panel{width:min(960px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:16px;padding:16px;border:1px solid var(--line);background:#101826}.tpl-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.tpl-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.tpl-preview-cell{position:relative;display:block;width:100%;padding:0;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#05070c;aspect-ratio:3 / 4;cursor:zoom-in}.tpl-preview-cell img{width:100%;height:100%;object-fit:cover;display:block}.tpl-preview-tag{position:absolute;top:8px;left:8px;z-index:1;padding:2px 8px;border-radius:999px;font-size:11px;line-height:1.4;color:#fff;background:#0f172ad1;border:1px solid rgba(255,255,255,.12)}.tpl-preview-tag.ref{background:#2563ebe0}.tpl-preview-tag.result{background:#0d9488e6}.tpl-preview-name{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 8px;font-size:11px;line-height:1.3;color:#e8eef7;text-align:left;background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));pointer-events:none}.tpl-preview-actions{display:flex;justify-content:flex-end;margin-top:14px}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{background:linear-gradient(180deg,#121a28,#0d1420);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;min-height:148px}.card:hover{border-color:#5eead447}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.card h3{margin:0;font-size:16px}.card .meta{color:var(--muted);font-size:12px;line-height:1.5}.card .actions{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid var(--line);color:var(--muted)}.badge.on{color:#99f6e4;border-color:#2dd4bf66;background:#2dd4bf1a}.empty{color:var(--muted);padding:20px 0;font-size:14px}.invite-row{display:flex;gap:8px;margin:12px 0}.editor-shell{position:relative;width:100%;height:100%;overflow:hidden;background:#0a0f18}.editor-shell .vue-flow{width:100%;height:100%;background:#0a0f18}.vue-flow__node{border:none!important;background:transparent!important;padding:0!important;width:auto!important;box-shadow:none!important;overflow:visible!important}.vue-flow__edge-path{stroke:#38bdf8!important;stroke-width:2!important}.vue-flow__edge-path[stroke="#5eead4"]{stroke:#5eead4!important;stroke-width:1.5!important}.vue-flow__edge-path[stroke="#f472b6"]{stroke:#f472b6!important;stroke-width:1.75!important}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#fbbf24!important;stroke-width:3!important}.vue-flow__edge-interaction{cursor:pointer}.vue-flow__connection-path{stroke:#38bdf8!important;stroke-width:2!important}.vue-flow__controls{display:none!important}.vue-flow__handle{width:14px!important;height:14px!important;background:#152033!important;border:2px solid #38bdf8!important}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);box-shadow:var(--shadow-soft)}.chrome-left,.chrome-right{position:absolute;top:12px;z-index:var(--chrome-z);display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius)}.chrome-left{left:12px}.chrome-right{right:12px}.chrome-left a.back{color:var(--text);font-size:13px;padding:6px 8px;border-radius:8px}.chrome-left a.back:hover{background:#ffffff0f}.node-search-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--chrome-z) + 20);display:flex;align-items:flex-start;justify-content:center;padding:72px 16px 24px;background:#04081073}.node-search-panel{width:min(520px,100%);max-height:min(70vh,560px);display:flex;flex-direction:column;border-radius:14px;overflow:hidden}.node-search-head{display:flex;align-items:center;gap:8px;padding:12px 12px 8px;border-bottom:1px solid var(--line)}.node-search-input{flex:1;min-width:0;background:#0b1220;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;color:var(--text)}.node-search-input:focus{outline:none;border-color:#38bdf88c;box-shadow:0 0 0 3px #38bdf81f}.node-search-kbd{flex-shrink:0;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font-family:inherit}.node-search-meta{padding:6px 14px 8px;font-size:12px;color:var(--muted)}.node-search-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:13px}.node-search-list{list-style:none;margin:0;padding:0 8px 10px;overflow:auto;flex:1}.node-search-list li{display:grid;grid-template-columns:72px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border-radius:10px;cursor:pointer;font-size:13px}.node-search-list li.active,.node-search-list li:hover{background:#38bdf81f}.node-search-type{color:#7dd3fc;font-size:12px}.node-search-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600}.node-search-id{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.title-input{width:150px;background:transparent;border:none;padding:6px 8px;font-weight:700;font-size:14px}.title-input:focus{background:#0b1220;border:1px solid var(--line);box-shadow:none}.meta-chip{font-size:12px;color:var(--muted);padding:4px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.meta-chip.warn{color:var(--warn);border-color:#fbbf2459}.meta-chip.ok{color:#99f6e4;border-color:#2dd4bf59}.tip{position:relative}.tip:after{content:attr(data-tip);position:absolute;z-index:80;padding:4px 8px;border-radius:6px;background:#080c14f5;border:1px solid rgba(148,163,184,.28);color:#e2e8f0;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:none;box-shadow:0 6px 16px #0006}.tip:hover:after,.tip:focus-visible:after{opacity:1;visibility:visible}.tip-top:after{left:50%;bottom:calc(100% + 8px);transform:translate(-50%)}.tip-right:after{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tip:disabled:hover:after,.tip[disabled]:hover:after{opacity:0;visibility:hidden}.bottom-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:var(--chrome-z);display:flex;align-items:center;gap:8px;padding:8px;border-radius:16px;overflow:visible;margin-left:110px;max-width:calc(100vw - 280px)}.bottom-bar .add-btn{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#38bdf8);border:none;color:var(--accent-ink);font-size:24px;font-weight:600;line-height:1;display:grid;place-items:center}.bottom-bar .tool{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:13px}.bottom-bar .tool-icon{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bottom-bar .tool.primary-tool{width:auto;padding:0 12px;background:#38bdf82e;border:1px solid rgba(56,189,248,.45);color:#e0f2fe;font-weight:650}.bottom-bar .sep{width:1px;height:22px;background:var(--line)}.spawn-menu{position:absolute;left:50%;bottom:76px;transform:translate(-50%);z-index:var(--dock-z);width:min(420px,calc(100% - 24px));padding:12px;border-radius:16px}.spawn-menu h4{margin:0 0 8px;font-size:12px;color:var(--muted);font-weight:700}.spawn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.spawn-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;background:#0b1220;border:1px solid var(--line)}.spawn-item strong{font-size:13px}.spawn-item span{font-size:11px;color:var(--muted)}.spawn-item:hover{border-color:#38bdf873}.connect-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;background:transparent;pointer-events:auto}.connect-picker{position:fixed;z-index:12001;width:min(340px,calc(100vw - 16px));max-height:min(420px,calc(100vh - 16px));overflow:auto;padding:12px;border-radius:16px;box-shadow:0 18px 48px #00000073;background:#101826fa;border:1px solid rgba(148,197,255,.28)}.connect-picker-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.connect-picker-head strong{font-size:13px}.connect-picker-head .meta{flex:1;font-size:11px;color:var(--muted)}.connect-picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.connect-picker-empty{font-size:12px;color:var(--muted);padding:12px 4px}.canvas-nav-panel{margin:0 0 14px 14px!important;z-index:40!important;pointer-events:none}.canvas-nav-panel .canvas-nav-card{pointer-events:auto}.canvas-nav-card{display:flex;flex-direction:column;width:248px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#101826f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 28px #00000059;position:relative;z-index:1}.canvas-minimap-wrap{position:relative;z-index:0;height:112px;overflow:hidden;flex:0 0 112px}.vue-flow__minimap.canvas-minimap{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;height:112px!important;margin:0!important;border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;pointer-events:auto}.vue-flow__minimap-mask{fill:#38bdf81f!important;stroke:#38bdf88c!important}.canvas-nav-tools{position:relative;z-index:2;display:flex;align-items:center;gap:6px;padding:6px 8px;min-height:40px;border-top:1px solid var(--line);background:#0c121cfa}.nav-zoom-group,.nav-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto}.nav-tools-sep{width:1px;height:18px;flex:0 0 1px;background:#94a3b847;margin:0 2px}.nav-zoom-group button,.nav-actions button{width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:8px;background:#ffffff0a;color:var(--text);cursor:pointer;display:grid;place-items:center;position:relative;z-index:3;pointer-events:auto}.nav-zoom-group button:hover,.nav-actions button:hover{border-color:#38bdf866;background:#38bdf81f}.nav-zoom-group button:disabled,.nav-actions button:disabled{opacity:.35;cursor:not-allowed}.nav-actions button.danger-text:hover{border-color:#fb718580;background:#50141e73;color:#fecdd3}.canvas-nav-tools .tool-icon{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.canvas-nav-tools .zoom-pct{margin-left:auto;flex:0 0 auto;min-width:38px;text-align:right;font-size:11px;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;pointer-events:none}.chrome-right button:disabled{opacity:.4;cursor:not-allowed}.empty-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:1;color:var(--muted);font-size:14px;text-align:center;line-height:1.7}.empty-hint strong{color:var(--text)}.multi-select-bar{position:absolute;left:50%;bottom:88px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:#101826eb;box-shadow:0 10px 30px #00000059;font-size:13px;color:var(--text);white-space:nowrap}.multi-select-bar strong{color:var(--accent);font-weight:650}.multi-select-bar button{font-size:12px;padding:4px 10px;border-radius:8px}.multi-select-bar .danger-text{color:#f87171}.vue-flow__selection{background:#5eead41f!important;border:1px solid rgba(94,234,212,.65)!important}.vue-flow__nodesselection-rect{background:#5eead40f!important;border:1px dashed rgba(94,234,212,.45)!important}.boot-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:12px;text-align:center;padding:24px;z-index:10}.boot-error h2{margin:0}.boot-error p{margin:0;color:var(--danger)}.side-drawer{position:absolute;top:0;right:0;width:min(360px,100%);height:100%;z-index:var(--panel-z);background:#101826;border-left:1px solid var(--line);padding:0;overflow:hidden;box-shadow:-18px 0 50px #00000059;display:flex;flex-direction:column;min-height:0}.side-drawer.is-chat{width:min(400px,100%)}.drawer-body-chat{display:flex;flex-direction:column;padding:0;overflow:hidden}.drawer-head{flex:0 0 auto;padding:12px 12px 8px;border-bottom:1px solid var(--line);background:#101826fa}.drawer-head-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.drawer-tabs-main{flex:1;min-width:0;margin-bottom:0}.drawer-close{flex:0 0 auto;width:32px;height:32px;padding:0;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:20px;line-height:1;display:grid;place-items:center}.drawer-close:hover{color:var(--text);border-color:#5eead459;background:#5eead414}.drawer-title{margin:0 0 8px;font-size:14px;font-weight:650}.drawer-subhead{margin:12px 0 8px;font-size:13px}.drawer-body{flex:1 1 auto;min-height:0;overflow:auto;padding:10px 12px}.drawer-foot{flex:0 0 auto;padding:8px 12px 10px;border-top:1px solid var(--line);background:#101826fa}.side-drawer h3{margin:0 0 12px;font-size:15px}.drawer-tabs{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.drawer-tabs-sub{margin-bottom:8px}.drawer-tabs button{height:30px;padding:0 10px;font-size:12px;border-radius:8px}.drawer-tabs button.active{border-color:#5eead480;color:var(--accent);background:#5eead41a}.drawer-item{border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:8px;background:#0b1220}.drawer-item-compact{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:stretch;padding:6px}.drawer-item-side{min-width:0;display:flex;flex-direction:column;gap:6px;justify-content:space-between}.drawer-item-compact .meta{font-size:13px;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0}.drawer-place-btn{height:24px;padding:0 8px;font-size:11px;border-radius:7px;width:auto;align-self:flex-start;font-weight:600}.drawer-item img,.drawer-item video{width:100%;border-radius:8px;display:block;margin-top:8px;max-height:150px;object-fit:cover;background:#000}.drawer-search{display:flex;gap:6px;margin-bottom:6px}.drawer-search-input{flex:1;min-width:0;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:#0b1220;color:var(--text);font-size:12px}.drawer-search .primary{flex:0 0 auto;height:30px;padding:0 10px;font-size:12px}.drawer-search-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:0;font-size:11px;color:var(--muted)}.drawer-media{position:relative;display:block;width:100%;margin-top:0;padding:0;border:0;border-radius:8px;overflow:hidden;background:#05070c;cursor:pointer;aspect-ratio:1 / 1;align-self:stretch;min-height:72px}.drawer-item-compact .drawer-media{height:100%;min-height:78px;max-height:96px;aspect-ratio:auto}.drawer-media.drawer-thumb-click{cursor:pointer}.drawer-media:hover{outline:2px solid rgba(56,189,248,.45);outline-offset:1px}.drawer-media img,.drawer-media video{width:100%;height:100%;margin:0;max-height:none;object-fit:cover;display:block;border-radius:0}.drawer-media-empty{display:grid;place-items:center;width:100%;height:100%;color:var(--muted);font-size:11px}.drawer-play-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at center,rgba(0,0,0,.28),transparent 62%)}.drawer-play-icon svg{width:28px;height:28px;fill:#fff;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55));background:#0000006b;border-radius:999px;padding:6px 5px 6px 7px;box-sizing:border-box}.drawer-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;padding:0;border-top:0;font-size:12px;color:var(--muted)}.drawer-pager button{height:30px;padding:0 10px;border-radius:8px}.member-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.drawer-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:calc(var(--panel-z) - 1)}.conflict-banner{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:var(--dock-z);background:#3a2a10;border:1px solid rgba(251,191,36,.45);color:#ffe8a3;padding:10px 14px;border-radius:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;max-width:calc(100% - 24px);font-size:13px}.node-wrap{position:relative;padding-top:26px;overflow:visible}.node-wrap.has-float-bar{padding-top:52px}.node-float-bar{position:absolute;top:0;left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:12px;background:#0f121cf0;border:1px solid rgba(148,163,184,.32);box-shadow:0 10px 28px #00000073;white-space:nowrap;pointer-events:auto}.node-float-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#e2e8f0;font-size:12px;font-weight:600;line-height:1;padding:7px 9px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.node-float-btn:hover:not(:disabled){background:#94a3b829;color:#fff}.node-float-btn:disabled{opacity:.45;cursor:wait}.node-float-btn.active{background:#f472b633;color:#f9a8d4}.node-float-sep{width:1px;height:16px;background:#94a3b859;margin:0 2px}.node-float-split{position:relative}.node-float-btn.split-trigger.open,.node-float-btn.split-trigger:hover:not(:disabled){background:#38bdf82e;color:#e0f2fe}.split-hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.85}.split-caret{font-size:10px;opacity:.7}.node-float-split-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:148px;padding:6px;border-radius:12px;background:#0c1018fa;border:1px solid rgba(148,163,184,.35);box-shadow:0 14px 36px #0000008c;display:flex;flex-direction:column;gap:2px;z-index:8}.node-float-split-menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#e2e8f0;text-align:left;font-size:12px;font-weight:600;padding:8px 10px;border-radius:8px;cursor:pointer}.node-float-split-menu button:hover{background:#38bdf829;color:#fff}.group-node-wrap{position:relative;box-sizing:border-box;min-width:160px;min-height:120px;overflow:visible;pointer-events:none}.group-node-label{position:absolute;top:-22px;left:2px;z-index:6;max-width:min(320px,85%);cursor:grab;pointer-events:auto;transform:scale(var(--label-inv-zoom, 1));transform-origin:left bottom;will-change:transform}.group-node-label:active{cursor:grabbing}.group-node-title{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:650;padding:0;margin:0;cursor:grab;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;line-height:1.3}.group-node-wrap.selected .group-node-title{color:#e2e8f0}.group-node-title-input{width:min(200px,70vw);padding:2px 6px;font-size:12px;font-weight:650;border-radius:6px;border:1px solid rgba(56,189,248,.55);background:#0b1220;color:var(--text)}.group-node{width:100%;height:100%;min-width:160px;min-height:120px;border-radius:18px;border:1.5px solid rgba(125,211,252,.28);background:linear-gradient(180deg,rgba(56,189,248,.06),transparent 42%),#080e1838;box-shadow:none;box-sizing:border-box;position:relative;overflow:visible;pointer-events:none}.group-node:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:1px dashed rgba(148,163,184,.14);pointer-events:none}.group-node.selected,.group-node-wrap.selected>.group-node{border-color:#38bdf8b3;background:linear-gradient(180deg,rgba(56,189,248,.1),transparent 46%),#0812202e;box-shadow:0 0 0 1px #38bdf82e}.group-node.selected:before,.group-node-wrap.selected>.group-node:before{border-color:#7dd3fc33}.group-node-actions{position:absolute;top:-28px;right:0;z-index:5;display:flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto;transform:scale(var(--label-inv-zoom, 1));transform-origin:right bottom;will-change:transform}.group-node-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(148,163,184,.28);background:#0a101ad1;color:#cbd5e1;font-size:11px;font-weight:650;padding:3px 9px;border-radius:8px;cursor:pointer;line-height:1.2;white-space:nowrap;transition:background .12s ease,color .12s ease,border-color .12s ease}.group-node-btn:hover{border-color:#38bdf88c;background:#0e2840eb;color:#e0f2fe}.group-node-btn.danger{border-color:#fb718559;color:#fda4af}.group-node-btn.danger:hover{border-color:#fb7185b3;color:#fecdd3;background:#50141ed9}.vue-flow__node-group{padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;pointer-events:none!important}.vue-flow__node-group .group-node-label,.vue-flow__node-group .group-node-actions,.vue-flow__node-group .group-node-btn,.vue-flow__node-group .group-node-title,.vue-flow__node-group .group-node-title-input{pointer-events:auto!important}.node-label{position:absolute;top:0;left:0;font-size:12px;color:var(--muted);font-weight:650;max-width:100%;cursor:text;transform:scale(var(--label-inv-zoom, 1));transform-origin:left bottom;will-change:transform;z-index:6}.node-label-input{width:min(200px,70vw);padding:2px 6px;font-size:12px;font-weight:650;border-radius:6px;border:1px solid rgba(56,189,248,.55);background:#0b1220;color:var(--text)}.node-card{background:var(--card);border:1px solid var(--card-border);border-radius:12px;overflow:hidden;box-shadow:0 10px 28px #00000047;width:280px}.node-card.w-text{width:340px}.node-card.w-note{width:460px;border-color:#7dd3fc59;background:linear-gradient(165deg,#0f172af5,#1e293beb);box-shadow:0 10px 28px #00000047,inset 3px 0 #38bdf8}.node-card.w-text .text-preview-btn,.node-card.w-note .text-preview-btn{display:block;width:100%;min-height:88px;max-height:120px;overflow:hidden;text-align:left;padding:10px;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:var(--text);cursor:pointer;font:inherit}.node-card.w-note .text-preview-btn.note-preview{min-height:160px;max-height:560px;overflow:auto;background:#0a1628;border-color:#38bdf840}.node-card.w-text .text-preview-btn:disabled,.node-card.w-note .text-preview-btn:disabled{opacity:.7;cursor:wait}.node-card.w-text .text-preview-body,.node-card.w-note .text-preview-body{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;font-size:12px;line-height:1.45;color:var(--text)}.node-card.w-note .text-preview-body.note-body{display:block;-webkit-line-clamp:unset;overflow:visible;white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.55;max-height:none}.node-card.w-text .text-preview-empty,.node-card.w-note .text-preview-empty{color:var(--muted);font-size:12px;line-height:1.45}.node-card.w-text .text-gen-row,.node-card.w-note .text-gen-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.node-card.w-text .text-gen-btn,.node-card.w-note .text-gen-btn{flex:0 0 auto;font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid rgba(56,189,248,.35);background:#38bdf81f;color:#e0f2fe;cursor:pointer}.node-card.w-text .text-gen-btn.primary{border-color:#34d39973;background:#34d39924;color:#d1fae5}.node-card.w-text .text-gen-btn:disabled,.node-card.w-note .text-gen-btn:disabled{opacity:.55;cursor:not-allowed}.node-card.w-text .text-gen-hint,.node-card.w-note .text-gen-hint{font-size:11px;color:var(--muted);flex:1 1 100%}.text-status-pill.note{background:#38bdf82e;color:#bae6fd;border-color:#38bdf859}.text-editor-panel.note-editor{width:min(920px,96vw);max-height:92vh}.text-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:#0408109e}.text-editor-panel{width:min(760px,100%);max-height:min(88vh,900px);display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;border-radius:14px;overflow:auto}.text-editor-hint{font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}.text-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-editor-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.text-editor-field textarea{width:100%;min-height:120px;resize:vertical;background:#0b1220;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:10px 12px;font-size:13px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.text-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.node-card.w-image{width:220px}.node-card.w-video{width:260px}.node-card.w-video.is-portrait{width:220px}.node-card.w-video.is-landscape,.node-card.w-story{width:300px}.node-card.gen-node{border-color:#5b8def59}.node-card.preview-node{border-color:#5eead459}.node-card.selected{border-color:#e8eef7;box-shadow:0 0 0 1px #e8eef7,0 12px 32px #00000059}.node-card.running{border-color:var(--warn);animation:pulse-border 1.4s ease-in-out infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #fbbf2400}50%{box-shadow:0 0 0 4px #fbbf2438}}.node-body{padding:10px;display:flex;flex-direction:column;gap:8px}.node-body textarea{min-height:88px;background:#0b1220;border-color:#94c5ff1f;font-size:13px}.node-media-frame{position:relative;background:#05070c;border-radius:8px;overflow:hidden;aspect-ratio:3 / 4;display:grid;place-items:center;color:var(--muted);font-size:12px;text-align:center;padding:8px}.node-media-frame.is-clickable{cursor:zoom-in}.node-media-frame.is-clickable:hover{outline:1px solid rgba(94,234,212,.35);outline-offset:-1px}.slot-empty-hint{display:block;padding:8px;line-height:1.5;color:#9fb0c5}.node-media-frame.is-drop{outline:1px dashed rgba(56,189,248,.55);outline-offset:-6px;cursor:pointer}.slot-upload-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:grid;place-content:center;gap:8px;background:#05070cb8;color:#e8eef7;font-size:13px;font-weight:600}.mosaic-busy-mask{background:#05070cc7;color:#f9a8d4}.mosaic-busy-mask .preview-gen-spinner{margin:0 auto}.node-media-frame.is-waiting-gen{background:radial-gradient(120% 80% at 50% 0%,rgba(56,189,248,.12),transparent 55%),#05070c;border:1px solid rgba(56,189,248,.22);overflow:hidden}.preview-water-tank{position:relative;width:100%;height:100%;min-height:160px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,#081220e6,#040810fa)}.preview-water-fill{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(180deg,#38bdf88c,#0e7490e0 55%,#082f49f2);transition:height .7s ease;overflow:hidden}.preview-water-wave{position:absolute;top:-10px;left:-20%;width:140%;height:22px;border-radius:40%;background:#bae6fd73;animation:preview-water-wave 2.4s ease-in-out infinite}.preview-water-wave.delay{top:-6px;opacity:.5;animation-duration:3.2s;animation-direction:reverse;background:#7dd3fc59}.preview-water-glass{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 1px #94c5ff38,inset 0 -24px 40px #0ea5e914;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 32%,transparent 68%,rgba(255,255,255,.04))}.preview-water-caption{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;border-radius:12px;background:#050a1273;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-shadow:0 1px 2px rgba(0,0,0,.35)}@keyframes preview-water-wave{0%{transform:translate(0) translateY(0)}50%{transform:translate(8%) translateY(2px)}to{transform:translate(0) translateY(0)}}.preview-gen-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 10px;color:#dbeafe}.preview-gen-spinner{width:28px;height:28px;border-radius:50%;border:2px solid rgba(148,197,255,.25);border-top-color:#38bdf8;animation:preview-spin .85s linear infinite}.preview-gen-spinner.sm{width:18px;height:18px;margin:0 auto 6px;border-width:2px}.preview-gen-title{font-size:13px;font-weight:600;color:#e0f2fe}.preview-gen-sub{font-size:11px;color:#93c5fd}.preview-gen-bar{width:78%;max-width:160px;height:6px;border-radius:999px;background:#94c5ff29;overflow:hidden;margin-top:2px}.preview-gen-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0ea5e9,#67e8f9,#38bdf8);background-size:200% 100%;animation:preview-bar-shine 1.4s ease-in-out infinite;transition:width .6s ease}.gen-inline-bar{width:88%;margin:8px auto 0}.gen-progress-hint{margin-top:6px;font-size:11px;color:#fbbf24;opacity:.9}.preview-gen-badge{position:absolute;left:8px;right:8px;bottom:8px;padding:4px 8px;border-radius:8px;background:#080e18d1;border:1px solid rgba(56,189,248,.35);color:#bae6fd;font-size:11px;text-align:center}.node-card.preview-node.is-generating{box-shadow:0 0 0 1px #38bdf847,0 10px 28px #00000047}.status-line.running{color:#fbbf24}@keyframes preview-spin{to{transform:rotate(360deg)}}@keyframes preview-bar-shine{0%{background-position:0% 50%}to{background-position:200% 50%}}.slot-pick-banner{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#2dd4bf1a;border:1px solid rgba(45,212,191,.28);font-size:12px;color:#9fb0c5;line-height:1.45}.slot-pick-banner strong{color:#99f6e4}.drawer-thumb-click{cursor:pointer}.drawer-thumb-click:hover{outline:2px solid rgba(56,189,248,.55);outline-offset:2px}.preview-actions .primary{background:linear-gradient(135deg,#2dd4bf,#38bdf8);border:none;color:#042f2e;font-weight:650}.node-media-frame.video{aspect-ratio:9 / 16;padding:0}.node-media-frame.video.is-portrait{max-height:420px}.node-media-frame img,.node-media-frame video{width:100%;height:100%;object-fit:cover;display:block}.node-media-frame.video .preview-video{object-fit:contain;background:#000}.node-media-frame.video .preview-cover{object-fit:contain;background:#0b1220;cursor:pointer}.node-media-frame.video .preview-cover-empty{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(160deg,#101826,#0b1220);color:var(--muted);font-size:12px;cursor:pointer}.node-media-frame.video .preview-play-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#38bdf82e;border:1px solid rgba(56,189,248,.45);color:#e8f7ff;font-size:16px;line-height:1;padding:0 0 0 2px;box-sizing:border-box}.node-media-frame.video .preview-play-fab{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:#00000073;color:#fff;font-size:16px;line-height:1;padding:0 0 0 2px;cursor:pointer;z-index:2;display:grid;place-items:center;box-sizing:border-box;transform:none}.node-media-frame.video .preview-play-fab:hover{background:#0000009e}.node-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.node-actions select{width:auto;min-width:72px;padding:6px 8px;font-size:12px}.node-actions button{padding:6px 10px;font-size:12px;border-radius:8px}.status-line{font-size:11px;color:var(--muted)}.status-line.running{color:var(--warn)}.status-line.error{color:var(--danger)}.status-line.done{color:var(--ok)}.story-fields label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.story-fields .field{margin-bottom:8px}.story-fields input,.story-fields textarea,.story-fields select{font-size:12px;padding:7px 9px}.gen-dock{position:absolute;left:50%;bottom:84px;transform:translate(-50%);z-index:var(--dock-z);width:min(760px,calc(100% - 24px));padding:12px 14px;border-radius:16px;display:flex;flex-direction:column;gap:10px;border-color:#5eead459;box-shadow:0 0 0 1px #5eead42e,0 16px 40px #0006;max-height:min(52vh,520px);overflow:auto}.gen-dock.node-inline-dock{position:absolute;left:calc(100% + 14px);top:0;bottom:auto;right:auto;width:560px;max-width:none;transform:scale(var(--dock-inv-zoom, 1));transform-origin:top left;z-index:40;max-height:none;height:auto;padding:8px 10px;gap:6px;overflow:visible;display:flex;flex-direction:column;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#0c1018f7;border:1px solid rgba(148,163,184,.36);border-radius:12px;box-shadow:0 0 0 1px #ffffff0a,0 20px 52px #00000094;pointer-events:auto;will-change:transform}.gen-dock.node-inline-dock .gen-dock-head,.gen-dock.node-inline-dock .gen-dock-body,.gen-dock.node-inline-dock .gen-dock-footer,.gen-dock.node-inline-dock input,.gen-dock.node-inline-dock textarea,.gen-dock.node-inline-dock select,.gen-dock.node-inline-dock button,.gen-dock.node-inline-dock .ref-thumb-btn,.gen-dock.node-inline-dock .group-pick-btn,.gen-dock.node-inline-dock .gen-dock-text-ref-toggle,.gen-dock.node-inline-dock .param{pointer-events:auto}.gen-dock.node-inline-dock.preview-dock{width:360px}.gen-dock.node-inline-dock .gen-dock-head{margin-bottom:0;padding-bottom:6px}.gen-dock.node-inline-dock .gen-dock-target{font-size:12px;gap:6px}.gen-dock.node-inline-dock .gen-dock-id{font-size:11px}.gen-dock.node-inline-dock .gen-dock-body{gap:6px}.gen-dock.node-inline-dock .gen-dock-refs{padding:6px 8px;border-radius:8px}.gen-dock.node-inline-dock .gen-dock-refs-title{font-size:11px;margin-bottom:4px}.gen-dock.node-inline-dock .gen-dock-refs-row{gap:4px}.gen-dock.node-inline-dock .gen-dock-refs-row .ref-thumb-btn{width:40px;height:40px}.gen-dock.node-inline-dock .gen-dock-text-ref-toggle{padding:4px 8px;font-size:11px}.gen-dock.node-inline-dock .gen-dock-extra>span{font-size:10px;line-height:1.2}.gen-dock.node-inline-dock .gen-dock-extra input,.gen-dock.node-inline-dock .group-pick-btn,.gen-dock.node-inline-dock .gen-dock-extra textarea,.gen-dock.node-inline-dock .param select{padding:5px 8px;font-size:12px;border-radius:8px}.gen-dock.node-inline-dock textarea{min-height:44px;max-height:88px}.gen-dock.node-inline-dock .gen-dock-text-ref textarea,.gen-dock.node-inline-dock .gen-dock-text-ref textarea.gen-dock-text-scroll{min-height:56px;max-height:100px}.gen-dock.node-inline-dock .gen-dock-hint,.gen-dock.node-inline-dock .hint,.gen-dock.node-inline-dock .param-hint{font-size:11px;margin:0;line-height:1.35}.gen-dock.node-inline-dock .gen-dock-footer{gap:6px;padding-top:8px}.gen-dock.node-inline-dock .gen-dock-footer .param{gap:2px}.gen-dock.node-inline-dock .gen-dock-footer .param span{font-size:10px}.gen-dock.node-inline-dock .gen-dock-submit,.gen-dock.node-inline-dock .gen-dock-footer>button{padding:6px 10px;font-size:12px;border-radius:8px}.gen-dock.node-inline-dock .gen-dock-submit{min-width:88px}.gen-dock.node-inline-dock .gen-dock-secondary{font-size:11px;padding:4px 8px}.dock-floating{position:fixed!important;left:auto;top:auto;right:auto;bottom:auto;transform:none!important;max-height:min(78vh,760px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto!important;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.dock-floating:active{cursor:grabbing}.editor-shell:has(.dock-floating) .dock-floating.is-pan-frozen,.dock-floating.is-pan-frozen{cursor:grabbing!important}.dock-floating input,.dock-floating textarea,.dock-floating select,.dock-floating button,.dock-floating a,.dock-floating label,.dock-floating summary{cursor:grab;pointer-events:auto!important;-webkit-user-select:none;user-select:none}.dock-floating input:focus,.dock-floating textarea:focus,.dock-floating select:focus,.dock-floating [contenteditable=true]:focus{-webkit-user-select:text;user-select:text;touch-action:manipulation;cursor:text}.dock-floating button:focus,.dock-floating a:focus{cursor:pointer}.gen-dock.node-inline-dock.dock-floating{transform:none!important;z-index:2600}.ops-dock.dock-floating{transform:none!important;z-index:2650}.ops-dock{position:absolute;left:calc(100% + 14px);top:0;z-index:50;width:300px;padding:12px 12px 10px;display:flex;flex-direction:column;gap:10px;border-radius:14px;border:1px solid rgba(148,163,184,.36);background:#0c1018f7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 0 0 1px #ffffff0a,0 20px 52px #00000094;transform:scale(var(--dock-inv-zoom, 1));transform-origin:top left;overflow:visible;max-height:none;pointer-events:auto;will-change:transform}.ops-dock-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid rgba(148,163,184,.18)}.ops-dock-title{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:650;color:#e2e8f0}.ops-dock-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-dock-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;width:28px;height:28px;margin:0;padding:0;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:#1e293ba6;color:#cbd5e1;font-size:18px;line-height:1;cursor:pointer}.ops-dock-close:hover{border-color:#fb71858c;color:#fecdd3;background:#50141e8c}.ops-dock-field{display:flex;flex-direction:column;gap:5px}.ops-dock-label{font-size:11px;color:var(--muted);font-weight:600}.ops-dock-field input{width:100%;box-sizing:border-box;padding:7px 10px;border-radius:8px;border:1px solid rgba(148,163,184,.28);background:#0f172ae6;color:var(--text);font-size:13px}.ops-dock-notes{border-radius:8px;border:1px solid rgba(148,163,184,.2);background:#0f172a73;padding:0}.ops-dock-notes summary{list-style:none;cursor:pointer;padding:7px 10px;font-size:12px;color:#94a3b8;font-weight:600;-webkit-user-select:none;user-select:none}.ops-dock-notes summary::-webkit-details-marker{display:none}.ops-dock-notes[open] summary{border-bottom:1px solid rgba(148,163,184,.16);color:#cbd5e1}.ops-dock-notes textarea{display:block;width:100%;box-sizing:border-box;margin:0;padding:8px 10px;border:0;background:transparent;color:var(--text);font-size:12px;resize:vertical;min-height:48px;max-height:96px}.ops-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ops-tool-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:34px;padding:7px 10px;border-radius:9px;border:1px solid rgba(148,163,184,.28);background:#1e293bb8;color:#e2e8f0;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap}.ops-tool-btn:hover:not(:disabled){border-color:#38bdf880;background:#1e3a5ad9}.ops-tool-btn:disabled{opacity:.45;cursor:not-allowed}.ops-tool-btn.primary{background:#0e74908c;border-color:#22d3ee66;color:#ecfeff}.ops-tool-btn.danger,.ops-tool-btn.danger-text{color:#fda4af;border-color:#fb718559}.ops-tool-btn.danger:hover:not(:disabled),.ops-tool-btn.danger-text:hover:not(:disabled){background:#50141e8c;border-color:#fb7185a6}.ops-split-wrap{position:relative;grid-column:1 / -1}.ops-split-wrap .ops-split-trigger{width:100%}.ops-split-trigger.open{border-color:#38bdf88c;color:#e0f2fe}.ops-split-caret{font-size:10px;opacity:.75;margin-left:2px}.ops-split-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:60;display:flex;gap:8px;padding:8px;border-radius:12px;border:1px solid rgba(148,163,184,.32);background:#0a101afa;box-shadow:0 12px 32px #0000008c;min-width:168px}.ops-split-presets{display:flex;flex-direction:column;gap:4px;min-width:132px}.ops-split-presets button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#cbd5e1;text-align:left;font-size:12px;font-weight:600;padding:7px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.ops-split-presets button:hover,.ops-split-custom-toggle.active{background:#38bdf829;color:#e0f2fe}.ops-split-custom{padding:4px 6px 6px;border-left:1px solid rgba(148,163,184,.2)}.ops-split-custom-title{font-size:11px;color:var(--muted);margin-bottom:8px;white-space:nowrap}.ops-split-grid{display:grid;grid-template-columns:repeat(5,18px);gap:4px}.ops-split-cell{width:18px;height:18px;padding:0;border-radius:4px;border:1px solid rgba(148,163,184,.28);background:#1e293ba6;cursor:pointer}.ops-split-cell.on{background:#38bdf88c;border-color:#7dd3fccc}.ops-dock-foot{display:flex;justify-content:stretch;border-top:1px solid rgba(148,163,184,.16);padding-top:10px}.ops-dock-foot .ops-tool-btn{width:100%}.dock-split-wrap{position:relative}.dock-split-trigger{display:inline-flex;align-items:center;gap:4px}.dock-split-trigger.open{border-color:#38bdf88c;color:#e0f2fe}.dock-split-caret{font-size:10px;opacity:.75}.dock-split-panel{position:absolute;left:0;bottom:calc(100% + 8px);z-index:50;display:flex;gap:8px;padding:8px;border-radius:12px;border:1px solid rgba(148,163,184,.32);background:#0a101afa;box-shadow:0 12px 32px #00000080;min-width:168px}.dock-split-presets{display:flex;flex-direction:column;gap:4px;min-width:132px}.dock-split-presets button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#cbd5e1;text-align:left;font-size:12px;font-weight:600;padding:7px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.dock-split-presets button:hover,.dock-split-custom-toggle.active{background:#38bdf829;color:#e0f2fe}.dock-split-custom{padding:4px 6px 6px;border-left:1px solid rgba(148,163,184,.2)}.dock-split-custom-title{font-size:11px;color:var(--muted);margin-bottom:8px;white-space:nowrap}.dock-split-grid{display:grid;grid-template-columns:repeat(5,18px);gap:4px}.dock-split-cell{width:18px;height:18px;padding:0;border-radius:4px;border:1px solid rgba(148,163,184,.28);background:#1e293ba6;cursor:pointer}.dock-split-cell.on{background:#38bdf88c;border-color:#7dd3fccc}.gen-dock.node-inline-dock .gen-dock-body{flex:0 0 auto;min-height:0;max-height:none;overflow:visible;display:flex;flex-direction:column;gap:6px;padding:0;margin:0}.gen-dock.node-inline-dock .gen-dock-footer{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;margin-top:0;border-top:1px solid rgba(148,163,184,.26);background:#0c1018fa}.gen-dock.node-inline-dock .gen-dock-footer-spacer{flex:1 1 12px;min-width:8px}.gen-dock.node-inline-dock .gen-dock-head{flex:0 0 auto;margin-bottom:0;padding-bottom:6px;border-bottom:1px solid rgba(148,163,184,.18)}.gen-dock.node-inline-dock textarea{min-height:44px;max-height:88px;resize:vertical}.gen-dock.node-inline-dock .gen-dock-meta-row{gap:6px}.gen-dock.node-inline-dock .gen-dock-extra{gap:2px}.gen-dock.node-inline-dock .gen-dock-footer .param{margin:0}.gen-dock.node-inline-dock .gen-dock-submit{min-width:88px;font-weight:600}.node-drag-handle{cursor:grab}.node-drag-handle:active{cursor:grabbing}.gen-dock-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.gen-dock-target{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.gen-dock-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #5eead42e}.gen-dock-id{color:var(--muted);font-size:12px}.gen-dock-refs{background:#0b1220;border:1px solid var(--line);border-radius:12px;padding:10px}.gen-dock-refs-title{font-size:12px;color:var(--muted);margin-bottom:8px}.gen-dock-warn{font-size:12px;color:#fca5a5;background:#dc26261f;border:1px solid rgba(248,113,113,.35);border-radius:8px;padding:8px 10px;margin-bottom:8px;line-height:1.45}.gen-dock-refs-row,.node-refs-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.gen-dock-ref-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.ref-thumb-wrap{display:flex;flex-direction:column;gap:4px;align-items:stretch;max-width:88px}.ref-thumb-tools{display:flex;gap:2px}.ref-tool-btn{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(148,163,184,.35);background:#0f172a8c;color:#cbd5e1;font-size:10px;line-height:1.2;padding:3px 2px;border-radius:6px;cursor:pointer}.ref-tool-btn:hover:not(:disabled){border-color:var(--accent, #38bdf8);color:#e2e8f0}.ref-tool-btn:disabled{opacity:.45;cursor:not-allowed}.gen-dock-text-ref{margin-top:8px}.gen-dock-text-ref-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#ffffff08;color:var(--text);font-size:12px;cursor:pointer;text-align:left}.gen-dock-text-ref-toggle:hover{border-color:#38bdf866;background:#38bdf80f}.gen-dock-text-ref-toggle .muted{color:var(--muted);font-size:11px}.gen-dock-text-ref-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text);margin-bottom:6px}.gen-dock-text-ref-head .muted{color:var(--muted);font-size:11px}.gen-dock-text-ref textarea,.gen-dock-text-ref textarea.gen-dock-text-scroll{margin-top:8px;min-height:96px;max-height:180px;overflow-y:auto;resize:vertical;font-size:13px;line-height:1.5}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:13000;display:grid;place-items:center;padding:24px;background:#05080e9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.confirm-card{width:min(400px,calc(100vw - 32px));padding:20px 20px 16px;border-radius:16px}.confirm-card h3{margin:0 0 8px;font-size:16px;font-weight:650}.confirm-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.confirm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.confirm-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffff0a;color:var(--text);border-radius:999px;padding:5px 10px;font-size:12px;cursor:pointer}.confirm-chip.active,.confirm-chip:hover{border-color:#38bdf88c;background:#38bdf81f}.confirm-input{width:100%;margin-top:12px;box-sizing:border-box}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.gen-dock-meta-row{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 4px}.gen-dock-meta-row .gen-dock-extra{margin:0;min-width:140px}.gen-dock-meta-row .gen-dock-extra.grow{flex:1 1 160px}.gen-dock-meta-row .group-field{flex:0 0 140px}.group-pick-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#ffffff08;color:var(--text);font-size:13px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-pick-btn:hover{border-color:#38bdf866}.confirm-actions .danger{background:#ef44442e;border:1px solid rgba(239,68,68,.45);color:#fecaca}.confirm-actions .danger:hover{background:#ef444447}.gen-dock-refs-row .ref-thumb-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;margin:0;background:transparent;cursor:zoom-in;border-radius:8px;line-height:0}.gen-dock-refs-row .ref-thumb-btn:hover{outline:2px solid var(--accent, #38bdf8);outline-offset:1px}.gen-dock-refs-row .ref-thumb-btn .ref-thumb{display:block;pointer-events:none}.gen-dock-extra{display:flex;flex-direction:column;gap:6px}.gen-dock-extra>span{font-size:12px;color:var(--muted)}.gen-dock-hint{font-size:12px;color:var(--warn);margin-top:6px}.gen-dock-hint.muted{color:var(--muted);margin-top:0}.gen-dock .row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.gen-dock-submit{margin-left:auto}.gen-dock textarea{min-height:64px;font-size:13px}.gen-dock .hint{font-size:12px;color:var(--warn)}.gen-dock .param{display:flex;flex-direction:column;gap:4px;min-width:96px}.gen-dock .param span{font-size:11px;color:var(--muted)}.gen-dock .param select{width:auto;min-width:96px}.gen-dock .param-hint{flex:1 1 100%;margin:0;font-size:12px;color:var(--muted);line-height:1.4}.gen-dock .gen-dock-secondary{align-self:flex-end;font-size:12px;padding:6px 10px;white-space:nowrap}.gen-dock .danger-text{color:#f87171}.node-editing{margin-left:6px;padding:1px 6px;border-radius:999px;font-size:10px;color:var(--accent-ink);background:linear-gradient(135deg,#2dd4bf,#38bdf8);font-weight:700}.text-status-pill{margin-left:6px;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;vertical-align:middle;border:1px solid transparent}.text-status-pill.idle{color:var(--muted);border-color:var(--line);background:#ffffff0a}.text-status-pill.pending{color:#fcd34d;border-color:#fbbf2466;background:#fbbf241f}.text-status-pill.running{color:#7dd3fc;border-color:#38bdf873;background:#38bdf826}.text-status-pill.done{color:#6ee7b7;border-color:#34d39966;background:#34d3991f}.text-status-pill.error{color:#fca5a5;border-color:#f8717173;background:#f871711f}.node-card.text-pending{border-color:#fbbf2459}.node-card.text-done{border-color:#34d39973}.node-card.text-error{border-color:#f8717180}.node-refs{background:#0b1220;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.node-refs-title{font-size:10px;color:var(--muted);margin-bottom:6px}.ref-thumb{width:36px;height:36px;border-radius:7px;object-fit:cover;border:1px solid var(--line);background:#000}.ref-thumb.lg{width:52px;height:52px;border-radius:9px}.ref-chip{max-width:120px;padding:4px 7px;border-radius:8px;background:#38bdf81a;border:1px solid rgba(56,189,248,.25);color:#bae6fd;font-size:10px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-more{font-size:10px;color:var(--muted)}.gen-empty-hint{font-size:12px;color:var(--muted);line-height:1.45;padding:8px 4px}.node-model-line{font-size:11px;color:#9ec1ff;line-height:1.3;word-break:break-all;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.node-credits-chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;border:1px solid rgba(94,234,212,.35);background:#5eead41a;color:#5eead4;font-size:10px;font-weight:650;letter-spacing:.02em;white-space:nowrap}.gen-status-box{border-radius:8px;border:1px dashed rgba(148,197,255,.18);background:#080e18b3;padding:14px 10px;text-align:center;font-size:12px;color:var(--muted);min-height:56px;display:grid;place-items:center}.gen-status-box.running{color:var(--warn);border-color:#fbbf2459}.gen-status-box.error{color:var(--danger);border-color:#f8717159}.gen-status-box.done{color:var(--ok);border-color:#5eead447}.gen-cancel-btn{margin-top:8px;width:100%;padding:6px 8px;font-size:12px;border-radius:8px;cursor:pointer}.preview-actions{display:flex;gap:6px;flex-wrap:wrap}.preview-actions button{flex:1;min-width:56px;padding:6px 8px;font-size:12px;border-radius:8px}.preview-actions button.danger-text{color:var(--danger);border-color:#fb718559}.preview-edit-actions{display:flex;gap:6px;margin-top:6px;pointer-events:auto}.preview-edit-btn{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(56,189,248,.45);background:#0ea5e92e;color:#e0f2fe;font-size:12px;font-weight:600;line-height:1.2;padding:7px 6px;border-radius:8px;cursor:pointer;pointer-events:auto}.preview-edit-btn:hover:not(:disabled){background:#0ea5e952;border-color:#38bdf8cc;color:#fff}.preview-edit-btn:disabled{opacity:.5;cursor:wait;border-color:#94a3b859;background:#0f172a73;color:#94a3b8}.preview-edit-btn.active{border-color:#f472b6b3;color:#f9a8d4}.node-media-frame.is-mosaic-pick{cursor:crosshair;outline:2px solid rgba(244,114,182,.85);outline-offset:-2px}.mosaic-pick-hint{position:absolute;left:8px;right:8px;bottom:8px;z-index:3;padding:6px 8px;border-radius:8px;background:#080c14d1;color:#f9a8d4;font-size:11px;text-align:center;pointer-events:none}.result-strip{display:flex;gap:6px;flex-wrap:wrap}.result-thumb{width:42px;height:42px;padding:0;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#000}.result-thumb.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.result-thumb img{width:100%;height:100%;object-fit:cover;display:block}.node-media-frame{cursor:zoom-in}.node-media-frame.video.has-video,.node-media-frame.video.has-video video{cursor:default}.node-media-frame.video .preview-video{pointer-events:auto}.gen-dock-dot.preview{background:#5eead4;box-shadow:0 0 0 4px #5eead42e}.preview-dock .gen-dock-extra input{width:100%}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000c7;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;transform:none!important;zoom:1!important}.lightbox-card{width:min(960px,calc(100vw - 32px));height:calc(100vh - 32px);max-height:calc(100vh - 32px);display:flex;flex-direction:column;gap:10px;overflow:hidden;background:#101826;border:1px solid var(--line);border-radius:16px;padding:14px 14px 12px;box-shadow:0 24px 60px #00000073;margin:auto;box-sizing:border-box}.lightbox-head{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-bottom:0}.lightbox-head .muted{color:var(--muted);font-size:12px;margin-right:auto}.lightbox-stage{position:relative;flex:1 1 auto;min-height:0;width:100%;overflow:hidden;border-radius:10px;background:#05070c;touch-action:none;-webkit-user-select:none;user-select:none}.lightbox-stage.is-zoomed{cursor:grab}.lightbox-stage.is-panning{cursor:grabbing}.lightbox-stage .lightbox-img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:transparent;border-radius:0;margin:0;pointer-events:auto;-webkit-user-drag:auto;transition:transform .05s linear;will-change:transform}.lightbox-zoom-hint{position:absolute;left:10px;bottom:10px;z-index:2;padding:4px 8px;border-radius:999px;font-size:11px;color:#e2e8f0;background:#0f172ab8;border:1px solid rgba(148,197,255,.18);pointer-events:none}.lightbox-img,.lightbox-video{width:100%;max-height:min(58vh,640px);max-width:100%;object-fit:contain;background:#05070c;border-radius:10px;display:block;margin:0 auto;flex:0 1 auto}.lightbox-video{width:auto;height:auto;max-width:min(100%,420px);max-height:min(58vh,640px)}.lightbox-actions .primary{background:#38bdf838;border-color:#38bdf873;color:#e0f2fe}.lightbox-meta{flex:0 1 auto;margin-top:0;max-height:88px;overflow:auto;padding:10px 12px;border-radius:10px;background:#ffffff0a;border:1px solid var(--line);font-size:12px;line-height:1.55;color:var(--text)}.lightbox-meta-row{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted)}.lightbox-meta-row strong{color:var(--text);font-weight:600}.lightbox-meta-prompt{margin-top:8px;color:var(--text);white-space:pre-wrap;word-break:break-word}.lightbox-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:0;flex:0 0 auto;padding:4px 0 2px}.lightbox-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 0;max-width:100%;flex:0 0 auto}.lightbox-thumb{flex:0 0 auto;width:64px;height:64px;padding:0;border-radius:8px;overflow:hidden;border:2px solid transparent;background:#0b1220}.lightbox-thumb.active{border-color:var(--accent)}.lightbox-thumb img,.lightbox-thumb video{width:100%;height:100%;object-fit:cover;display:block}.chat-panel{display:flex;flex-direction:column;height:100%;min-height:0;background:#101826;position:relative}.chat-sessions{display:flex;align-items:center;gap:6px;padding:8px 10px 6px;border-bottom:1px solid var(--line);flex:0 0 auto}.chat-sessions-scroll{display:flex;gap:6px;overflow-x:auto;flex:1 1 auto;min-width:0;scrollbar-width:thin}.chat-session-chip{flex:0 0 auto;max-width:140px;height:28px;padding:0 4px 0 10px;border-radius:999px;border:1px solid var(--line);background:#ffffff08;color:var(--muted, #94a3b8);font-size:12px;cursor:default;display:inline-flex;align-items:center;gap:2px}.chat-session-chip.active{border-color:#5eead480;color:var(--accent);background:#5eead41a}.chat-session-title{display:block;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.chat-session-del{flex:0 0 auto;width:18px;height:18px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted, #94a3b8);font-size:14px;line-height:1;cursor:pointer;opacity:.55}.chat-session-del:hover{opacity:1;color:#f87171;background:#f871711f}.chat-session-new{flex:0 0 auto;width:28px;height:28px;padding:0;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--accent);font-size:16px;line-height:1;cursor:pointer}.chat-session-new:hover{border-color:#5eead473;background:#5eead414}.chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}.chat-meta{font-size:11px;color:var(--muted, #94a3b8)}.chat-toolbar-actions{display:flex;gap:4px}.chat-tool-btn{height:26px;padding:0 8px;font-size:11px;border-radius:6px}.chat-messages{flex:1 1 auto;min-height:0;overflow:auto;padding:12px 12px 8px;display:flex;flex-direction:column;gap:10px}.chat-empty{margin:auto 0;text-align:center;color:var(--muted, #94a3b8);font-size:13px;line-height:1.5;padding:24px 12px}.chat-empty .meta{margin-top:6px;font-size:12px;opacity:.85}.chat-bubble{max-width:92%;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:#ffffff08}.chat-bubble.is-user{align-self:flex-end;background:#38bdf81a;border-color:#38bdf847}.chat-bubble.is-assistant{align-self:flex-start;background:#0f172ad9}.chat-bubble.chat-summary{align-self:stretch;max-width:100%;background:#facc150f;border-color:#facc1540}.chat-role{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted, #94a3b8);margin-bottom:4px}.chat-text{font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:#e2e8f0}.chat-status{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--accent);padding:2px 4px}.chat-cancel-inline{padding:2px 8px!important;font-size:11px!important;min-height:24px;border-radius:8px;color:var(--danger)!important;border-color:#fb718559!important}.chat-error{font-size:12px;color:var(--danger, #f87171);padding:2px 4px}.chat-composer{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line);background:#101826fa;position:relative}.chat-composer.is-dragover{outline:2px dashed rgba(94,234,212,.55);outline-offset:-6px;background:#5eead40f}.chat-drop-hint{position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:3;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px dashed rgba(94,234,212,.5);background:#0f172ae0;color:var(--accent);font-size:13px;pointer-events:none}.chat-pending-quote{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid rgba(94,234,212,.22);background:#5eead40f}.chat-pending-quote-body{min-width:0;flex:1}.chat-pending-quote-body strong{display:block;font-size:11px;color:var(--accent);margin-bottom:4px}.chat-pending-quote-body p{margin:0;font-size:12px;color:var(--muted);line-height:1.45;max-height:4.4em;overflow:hidden}.chat-msg-thumb{cursor:zoom-in}.chat-msg-thumb:active{cursor:grabbing}.chat-pending-thumb{cursor:zoom-in}.chat-create-skill{position:absolute;left:10px;right:10px;bottom:12px;z-index:6;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--line);background:#0f172a;box-shadow:0 16px 40px #00000080}.chat-create-skill-head{display:flex;align-items:center;justify-content:space-between}.chat-create-input,.chat-create-textarea{width:100%;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:#e2e8f0;padding:8px 10px;font-size:13px;font-family:inherit}.chat-create-textarea{resize:vertical;min-height:88px}.chat-create-skill-actions{display:flex;justify-content:flex-end;gap:8px}.chat-skill-draft-actions{display:flex;gap:6px}.chat-input-wrap{position:relative}.chat-input{width:100%;min-height:72px;max-height:160px;resize:vertical;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:#e2e8f0;padding:10px 12px;font-size:13px;line-height:1.45;font-family:inherit}.chat-input:focus{outline:none;border-color:#5eead473}.chat-composer-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-composer-left{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.chat-image-menu-wrap{position:relative}.chat-image-menu{position:absolute;left:0;bottom:calc(100% + 4px);z-index:40;min-width:120px;padding:4px;border-radius:10px;border:1px solid rgba(148,197,255,.22);background:#0b1220;box-shadow:0 12px 28px #00000073;display:flex;flex-direction:column;gap:2px}.chat-image-menu:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px}.chat-image-menu button{width:100%;text-align:left;border:0;border-radius:8px;background:transparent;color:#e2e8f0;padding:8px 10px;font-size:12px;cursor:pointer}.chat-image-menu button:hover{background:#5eead41f;filter:none}.chat-send{min-width:108px;height:34px}.chat-send.chat-stop,button.danger.chat-stop{background:#fb71852e;border:1px solid rgba(251,113,133,.45);color:#fecdd3;font-weight:700}.chat-send.chat-stop:hover,button.danger.chat-stop:hover{filter:brightness(1.08)}.chat-skill-row,.chat-pending-skills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chat-skill-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 8px;border-radius:999px;border:1px solid rgba(94,234,212,.35);background:#5eead414;color:var(--accent);font-size:11px}.chat-skill-chip.is-pending{background:#38bdf81a;border-color:#38bdf859;color:#7dd3fc}.chat-skill-apply,.chat-skill-x{border:0;background:transparent;color:inherit;cursor:pointer;padding:0 2px;font-size:11px;opacity:.85}.chat-skill-apply:hover,.chat-skill-x:hover{opacity:1;text-decoration:underline}.chat-msg-images,.chat-pending-images{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}.chat-msg-thumb,.chat-pending-thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#0b1220;display:block}.chat-pending-thumb-wrap{position:relative}.chat-thumb-x{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:#1e293b;color:#e2e8f0;font-size:12px;line-height:1;padding:0;cursor:pointer}.chat-skill-picker{position:absolute;left:0;right:0;bottom:calc(100% + 6px);max-height:min(52vh,380px);z-index:30;display:flex;flex-direction:column;border:1px solid rgba(148,197,255,.22);border-radius:12px;background:#0b1220;box-shadow:0 16px 40px #0000008c;overflow:hidden}.chat-skill-picker-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid rgba(148,197,255,.12);flex:0 0 auto}.chat-skill-picker-head strong{font-size:12px;color:#e2e8f0}.chat-skill-picker-head .meta{font-size:11px;color:var(--muted, #94a3b8)}.chat-skill-picker-close{margin-left:auto;flex:0 0 auto;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted, #94a3b8);font-size:18px;font-weight:400;line-height:1;display:grid;place-items:center;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;filter:none;box-shadow:none}.chat-skill-picker-close:hover{color:#e2e8f0;border-color:#5eead459;background:#5eead414;filter:none}.chat-skill-picker-close:focus-visible{outline:1px solid rgba(94,234,212,.55);outline-offset:1px}.chat-skill-picker-list{flex:1 1 auto;overflow:auto;padding:4px;scrollbar-width:thin}.chat-skill-group-label{padding:8px 10px 4px;font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.chat-skill-option{display:flex;flex-direction:column;align-items:stretch;gap:3px;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#e2e8f0;cursor:pointer}.chat-skill-option-main{display:flex;align-items:center;gap:8px;min-width:0}.chat-skill-option strong{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-skill-badge{flex:0 0 auto;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:650;line-height:1.4;border:1px solid transparent}.chat-skill-badge.is-builtin{color:#5eead4;border-color:#5eead459;background:#5eead41a}.chat-skill-badge.is-mine{color:#93c5fd;border-color:#93c5fd59;background:#93c5fd1a}.chat-skill-badge.is-shared{color:#fcd34d;border-color:#fcd34d59;background:#fcd34d1a}.chat-skill-option-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.35;color:#94a3b8;padding-left:2px}.chat-skill-option.active,.chat-skill-option:hover{background:#5eead41a}.chat-skill-picker-hint{flex:0 0 auto;padding:6px 10px;border-top:1px solid rgba(148,197,255,.1);font-size:10px;color:#64748b}.chat-skill-empty{padding:14px 12px;font-size:12px;color:var(--muted, #94a3b8)}.chat-skill-drafts{margin-top:8px;display:flex;flex-direction:column;gap:8px}.chat-skill-draft{padding:8px 10px;border-radius:10px;border:1px dashed rgba(94,234,212,.4);background:#5eead40f;display:flex;flex-direction:column;gap:8px}.chat-skill-draft-meta{display:flex;flex-direction:column;gap:2px;font-size:12px}.chat-skill-draft-meta strong{color:var(--accent)}.template-picker-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--panel-z) + 5);background:#0206178c;display:flex;align-items:center;justify-content:center;padding:24px}.template-picker-panel{width:min(520px,100%);max-height:min(72vh,720px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:#101826;overflow:hidden}.template-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}.template-picker-head h3{margin:0;font-size:15px}.template-picker-search{margin:10px 12px 0;height:36px;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:#e2e8f0;padding:0 12px;font-size:13px}.template-picker-list{flex:1 1 auto;min-height:0;overflow:auto;padding:10px 12px 14px;display:flex;flex-direction:column;gap:8px}.template-picker-item{text-align:left;border:1px solid var(--line);border-radius:12px;background:#ffffff08;padding:10px 12px;color:#e2e8f0;cursor:pointer;display:flex;flex-direction:column;gap:4px}.template-picker-item:hover:not(:disabled){border-color:#5eead473;background:#5eead414}.template-picker-item:disabled{opacity:.6;cursor:wait}.template-picker-title{display:flex;align-items:center;gap:8px}.template-picker-badge{font-size:10px;padding:1px 6px;border-radius:999px;border:1px solid rgba(94,234,212,.35);color:var(--accent)}.template-picker-desc{font-size:12px;color:var(--muted, #94a3b8);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.template-picker-action{align-self:flex-end;font-size:12px;color:var(--accent);margin-top:2px}.publish-prompt-panel{width:min(560px,100%);max-height:min(84vh,860px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:#101826;overflow:hidden}.publish-prompt-body{padding:0 14px 12px;overflow:auto;display:flex;flex-direction:column;gap:10px}.publish-prompt-hint{margin:0;font-size:12px;color:var(--muted, #94a3b8);line-height:1.5}.publish-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted, #94a3b8)}.publish-field input,.publish-field select,.publish-field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#ffffff0a;color:var(--text);padding:8px 10px;font:inherit;resize:vertical}.publish-thumbs{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted, #94a3b8)}.publish-thumb-row{display:flex;flex-wrap:wrap;gap:8px}.publish-thumb-row img,.publish-thumb-btn img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#0b1220}.publish-thumb-btn{padding:0;border:2px solid transparent;border-radius:10px;background:transparent;cursor:pointer}.publish-thumb-btn.on{border-color:var(--accent)}.publish-prompt-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px 12px;border-top:1px solid var(--line)}.nav-toggle,.nav-scrim{display:none}@keyframes cp-fade-up{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cp-sheet-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes cp-drawer-in{0%{opacity:.4;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes cp-pulse-soft{0%,to{box-shadow:0 0 #2dd4bf00}50%{box-shadow:0 0 0 6px #2dd4bf1f}}@media(max-width:900px){:root{--topbar-h: 52px;--touch: 44px}html,body,#app{height:100dvh;overscroll-behavior:none}.site{grid-template-rows:var(--topbar-h) 1fr}.site-top{height:var(--topbar-h);gap:8px;padding:0 max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));border-bottom-color:#94c5ff1a;background:linear-gradient(180deg,#0e1622f5,#070b12e6);box-shadow:inset 0 -1px #5eead40f}.brand{gap:8px;min-width:0}.brand img{width:26px;height:26px;border-radius:7px;box-shadow:0 0 0 1px #5eead438}.brand strong{font-size:13.5px;font-weight:700;letter-spacing:.01em;background:linear-gradient(90deg,#fff 20%,#9ff5e8);-webkit-background-clip:text;background-clip:text;color:transparent}.brand small{display:none}.nav-toggle{display:flex;flex:none;position:relative;width:40px;height:40px;border:1px solid rgba(148,197,255,.16);border-radius:12px;background:#ffffff08;padding:0;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s var(--ease-out),background .2s var(--ease-out),transform .15s ease}.nav-toggle:active{transform:scale(.94)}.nav-toggle.open,.nav-toggle[aria-expanded=true]{border-color:#5eead466;background:#5eead414}.nav-toggle span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--text);border-radius:2px;transition:transform .28s var(--ease-out),opacity .2s ease,top .28s var(--ease-out)}.nav-toggle span:nth-child(1){top:13px}.nav-toggle span:nth-child(2){top:19px}.nav-toggle span:nth-child(3){top:25px}.nav-toggle.open span:nth-child(1),.nav-toggle[aria-expanded=true] span:nth-child(1){top:19px;transform:rotate(45deg)}.nav-toggle.open span:nth-child(2),.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(.4)}.nav-toggle.open span:nth-child(3),.nav-toggle[aria-expanded=true] span:nth-child(3){top:19px;transform:rotate(-45deg)}.nav-scrim{display:block;position:fixed;inset:var(--topbar-h) 0 0;z-index:calc(var(--panel-z) + 110);background:#03060c85;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s var(--ease-out)}.site-top:has(.site-nav.open) .nav-scrim{opacity:1;pointer-events:auto}.site-nav{display:flex;position:absolute;left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));top:calc(var(--topbar-h) + 8px);flex:none;flex-direction:column;gap:2px;overflow:auto;max-height:min(68dvh,480px);padding:8px;border-radius:18px;border:1px solid rgba(148,197,255,.16);background:radial-gradient(420px 160px at 10% -20%,rgba(56,189,248,.1),transparent 55%),radial-gradient(380px 140px at 90% 0%,rgba(94,234,212,.08),transparent 50%),#0c121cf7;box-shadow:var(--shadow-lift);z-index:calc(var(--panel-z) + 120);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.98);transform-origin:top center;transition:opacity .22s var(--ease-out),transform .28s var(--ease-out),visibility .22s}.site-nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.site-nav a{padding:13px 14px;font-size:15px;font-weight:550;letter-spacing:.01em;border-radius:12px;color:var(--muted);transition:background .15s ease,color .15s ease,transform .12s ease}.site-nav a:active{transform:scale(.985)}.site-nav a:hover{color:var(--text);background:#ffffff0a}.site-nav a.active,.site-nav a.nav-download{color:var(--accent-ink);background:linear-gradient(135deg,#2dd4bf,#38bdf8);font-weight:700;box-shadow:0 6px 18px #2dd4bf38}.site-right{margin-left:auto}.user-name{display:none}.user-chip{padding:3px;border-radius:999px;min-height:36px;transition:border-color .2s ease,transform .12s ease}.user-chip:active{transform:scale(.96)}.user-menu .avatar{width:30px;height:30px;font-size:12px}.user-pop{width:min(240px,calc(100vw - 24px));border-radius:16px;padding:14px;animation:cp-fade-up .22s var(--ease-out)}.user-pop-name{font-size:15px}.user-pop a,.user-pop button{padding:11px 2px;font-size:14px;min-height:var(--touch)}.editor-shell{background:radial-gradient(700px 320px at 50% -8%,rgba(56,189,248,.07),transparent 55%),#080d16}.editor-shell .vue-flow{background:transparent}.chrome-left,.chrome-right{top:10px;gap:6px;padding:5px 7px;max-width:calc(50vw - 14px);flex-wrap:nowrap;border-radius:12px;animation:cp-fade-up .35s var(--ease-out) both}.chrome-left{left:max(8px,env(safe-area-inset-left,0px));right:auto;animation-delay:.04s}.chrome-right{right:max(8px,env(safe-area-inset-right,0px));left:auto;animation-delay:.1s}.chrome-right .hide-sm,.chrome-left .meta-chip{display:none}.chrome-left a.back{font-size:12.5px;padding:7px 8px;color:var(--muted);letter-spacing:.01em}.chrome-left a.back:active{color:var(--text);background:#ffffff0f}.title-input{width:min(128px,32vw);font-size:13.5px;font-weight:600;padding:7px 9px;border-radius:9px;background:#080e18b3}.chrome-right .primary{min-height:36px;padding:0 14px;font-size:13px;border-radius:10px;letter-spacing:.02em;box-shadow:0 4px 14px #2dd4bf33;transition:transform .12s ease,filter .15s ease,box-shadow .2s ease}.chrome-right .primary:active:not(:disabled){transform:scale(.96)}.chrome-right .primary:not(:disabled){animation:cp-pulse-soft 2.8s ease-in-out infinite}.canvas-nav-panel{margin:0 0 calc(78px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))!important;animation:cp-fade-up .4s var(--ease-out) .12s both}.canvas-nav-tools .nav-actions,.canvas-nav-tools .nav-tools-sep{display:none}.canvas-nav-card{width:min(196px,calc(100vw - 88px));border-radius:16px;border-color:#94c5ff24;background:#0c121cf0;overflow:hidden}.canvas-minimap-wrap,.vue-flow__minimap.canvas-minimap{height:68px!important;flex-basis:68px}.canvas-nav-tools{padding:5px 6px;min-height:42px;gap:4px;background:#080d16fa}.nav-zoom-group button,.nav-actions button{width:34px;height:34px;border-radius:10px;color:var(--muted);transition:color .15s ease,background .15s ease,transform .12s ease}.nav-zoom-group button:active,.nav-actions button:active{transform:scale(.92);color:var(--text);background:#5eead41a}.canvas-nav-tools .zoom-pct{font-size:10.5px;color:var(--faint);min-width:34px;letter-spacing:.02em}.bottom-bar{left:auto;right:max(10px,env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:none;margin-left:0;max-width:min(calc(100vw - 24px),360px);padding:6px 7px;gap:4px;border-radius:18px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);animation:cp-fade-up .4s var(--ease-out) .16s both;z-index:calc(var(--chrome-z) + 8)}.bottom-bar::-webkit-scrollbar{display:none}.bottom-bar .sep{display:block;height:20px;flex:0 0 1px;background:#94c5ff2e}.bottom-bar .tool{display:grid;width:40px;height:40px;flex:0 0 40px;border-radius:12px;border:1px solid transparent;background:#ffffff08;color:var(--muted);transition:color .15s ease,background .15s ease,transform .12s ease,border-color .15s ease}.bottom-bar .tool:active{transform:scale(.92);color:var(--text);background:#5eead41f;border-color:#5eead447}.bottom-bar .tool-icon{width:17px;height:17px}.bottom-bar .add-btn{width:44px;height:44px;flex:0 0 44px;border-radius:14px;font-size:26px;font-weight:500;box-shadow:0 8px 22px #00000059,0 0 0 1px #ffffff14 inset,0 6px 18px #2dd4bf40;transition:transform .18s var(--ease-spring),box-shadow .2s ease,filter .15s ease}.bottom-bar .add-btn:active{transform:scale(.9);filter:brightness(1.05)}.bottom-bar .primary-tool{width:auto;min-width:52px;min-height:40px;padding:0 12px;font-size:13px;flex:0 0 auto}.multi-select-bar{left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));top:auto;bottom:calc(86px + env(safe-area-inset-bottom,0px));width:auto;transform:none;flex-wrap:wrap;gap:8px;padding:10px 12px;border-radius:14px;white-space:normal;font-size:13px;background:#0c121cf0;border-color:#5eead438;animation:cp-sheet-up .28s var(--ease-out)}.multi-select-bar button{min-height:36px;padding:6px 12px;font-size:13px;border-radius:10px}.side-drawer,.side-drawer.is-chat{width:100%;max-width:100%;border-left:none;border-top:1px solid rgba(148,197,255,.12);box-shadow:0 -18px 50px #0006;animation:cp-drawer-in .28s var(--ease-out);padding-bottom:env(safe-area-inset-bottom,0px)}.drawer-head{padding:14px 14px 10px}.drawer-close{width:40px;height:40px;border-radius:12px}.drawer-tabs button{min-height:36px;padding:8px 12px;font-size:13px}.spawn-menu{left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(82px + env(safe-area-inset-bottom,0px));width:auto;transform:none;max-height:min(58dvh,460px);overflow:auto;padding:14px;border-radius:18px;border-color:#94c5ff29;background:radial-gradient(360px 120px at 50% 0%,rgba(56,189,248,.08),transparent 60%),#0c121cf5;animation:cp-sheet-up .3s var(--ease-out);-webkit-overflow-scrolling:touch}.spawn-menu h4{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}.spawn-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.spawn-item{min-height:64px;padding:12px;border-radius:14px;transition:border-color .15s ease,background .15s ease,transform .12s ease}.spawn-item:active{transform:scale(.97);border-color:#38bdf880;background:#38bdf814}.spawn-item strong{font-size:13.5px;font-weight:650}.spawn-item span{font-size:11.5px;line-height:1.35;color:var(--faint)}.conflict-banner{left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));top:58px;width:auto;flex-wrap:wrap;gap:8px;padding:12px;font-size:13px;line-height:1.45;border-radius:14px;animation:cp-fade-up .28s var(--ease-out)}.empty-hint{padding:20px 22px;font-size:13.5px;line-height:1.75;color:var(--muted)}.empty-hint>div{max-width:280px;padding:18px 16px;border-radius:16px;border:1px solid rgba(148,197,255,.12);background:#0c121c8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:cp-fade-up .45s var(--ease-out)}.empty-hint strong{font-size:15px;letter-spacing:.02em}.node-search-overlay{padding:64px 12px 24px;background:#03060c8c;animation:cp-fade-in .18s ease}.node-search-panel{width:100%;max-height:min(72dvh,560px);border-radius:16px;animation:cp-fade-up .26s var(--ease-out)}.node-search-input{font-size:16px;padding:12px 14px}.node-search-list li{min-height:48px;padding:12px 10px;grid-template-columns:64px 1fr auto}.toast-host{left:12px;right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px));align-items:stretch}.toast{max-width:none;width:100%;font-size:13.5px;padding:12px 14px;border-radius:14px;animation:cp-sheet-up .28s var(--ease-out)}.vue-flow__handle{width:16px!important;height:16px!important}.list-page{padding:18px 14px calc(32px + env(safe-area-inset-bottom,0px))}.list-hero h2{font-size:22px;letter-spacing:-.01em}.list-hero p{font-size:13.5px;line-height:1.6}.create-card{padding:14px;border-radius:16px}.tip:after{display:none!important}}@media(max-width:900px)and (prefers-reduced-motion:reduce){.chrome-left,.chrome-right,.canvas-nav-panel,.bottom-bar,.spawn-menu,.side-drawer,.multi-select-bar,.user-pop,.empty-hint>div,.toast,.site-nav,.nav-toggle span{animation:none!important;transition:none!important}.chrome-right .primary:not(:disabled){animation:none!important}}
