.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-textbg{fill:#fff}.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{font-family:Avenir Next,PingFang SC,SF Pro Display,system-ui,sans-serif;color:#f6f7fb;background:#050507;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #f6f7fb;--muted: rgba(246, 247, 251, .62);--soft: rgba(246, 247, 251, .08);--line: rgba(255, 255, 255, .14);--line-strong: rgba(255, 255, 255, .26);--panel: rgba(16, 18, 25, .62);--panel-solid: #101219;--cyan: #20f5ff;--pink: #ff2f78;--accent: #ff2f78;--danger: #ff4b5f;--green: #48f0a4}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 12% 8%,rgba(32,245,255,.18),transparent 28%),radial-gradient(circle at 88% 16%,rgba(255,47,120,.2),transparent 25%),linear-gradient(135deg,#050507,#0d1018 48%,#06060a)}button,input,textarea{font:inherit}button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:7px;background:#ffffff17;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}button:hover{border-color:#20f5ff85;background:#20f5ff1f}button:disabled{cursor:not-allowed;opacity:.45}button.primary{border-color:#ff2f78c7;background:linear-gradient(135deg,#ff2f78eb,#20f5ffc7);color:#fff;font-weight:800;box-shadow:0 0 24px #ff2f7838}button.danger{color:#ff8090}.glass-button{background:#ffffff14}.icon-button{width:32px;padding:0}.app-shell{position:relative;width:100vw;height:100vh;display:grid;grid-template-columns:292px minmax(0,1fr);gap:14px;padding:14px;overflow:hidden}.glass-panel{border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 60px #00000057,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(22px) saturate(132%);backdrop-filter:blur(22px) saturate(132%)}.sidebar{height:calc(100vh - 28px);display:flex;flex-direction:column;overflow:hidden;padding:16px;border-radius:12px}.brand{display:flex;gap:12px;align-items:center;margin-bottom:22px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;color:#fff;background:#07080d;box-shadow:-4px 0 0 var(--cyan),4px 0 0 var(--pink),0 0 28px #20f5ff2e}h1{margin:0;font-size:18px;line-height:1.1}.brand p,.toolbar span,.microcopy,.canvas-item span,.flow-card__muted{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.section-title{display:flex;align-items:center;justify-content:space-between;margin:14px 0 9px;color:#f6f7fbb8;font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.canvas-list__header{flex:0 0 auto}.section-actions{display:flex;align-items:center;gap:6px}.canvas-list,.settings-panel{margin-bottom:18px}.canvas-list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:none;-ms-overflow-style:none}.canvas-list::-webkit-scrollbar{width:0;height:0;display:none}.canvas-item{width:100%;min-height:72px;margin-bottom:8px;padding:10px;display:grid;gap:6px;align-items:start;border-color:transparent;text-align:left;background:#ffffff0f;cursor:pointer}.canvas-item.active{border-color:#20f5ff94;box-shadow:inset 3px 0 0 var(--cyan)}.canvas-item__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.canvas-item__head strong{min-width:0;font-size:13px;line-height:1.35}.canvas-item__delete{flex:0 0 auto;width:28px;min-width:28px;height:28px;min-height:28px;opacity:0;pointer-events:none;transition:opacity .16s ease}.canvas-item:hover .canvas-item__delete,.canvas-item:focus-within .canvas-item__delete{opacity:1;pointer-events:auto}.canvas-item__meta{margin:0;color:#f6f7fbb8;font-size:11px;line-height:1.35}label,.node-label{display:grid;gap:6px;margin:9px 0;color:#f6f7fbb8;font-size:11px;font-weight:800}input,textarea{width:100%;min-height:34px;border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:8px 9px;background:#03040894;color:var(--ink);resize:vertical;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.settings-panel label,.settings-panel input,.settings-panel .app-select,.settings-panel textarea{width:100%}.settings-panel .field-grid{grid-template-columns:1fr}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:24px;background:#000000ad;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.settings-dialog{width:min(520px,100%);max-height:min(760px,calc(100vh - 48px));display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:16px;background:#0c0e14e6;box-shadow:0 28px 90px #00000094,0 0 58px #20f5ff1a}.settings-dialog__header{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.settings-dialog__header strong{display:block;font-size:15px;line-height:1.2}.settings-dialog__header span{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}.settings-dialog .settings-panel{min-height:0;margin:0;overflow:auto;padding:2px 16px 16px}.settings-dialog .settings-panel>.section-title{display:none}textarea{line-height:1.45}input:focus,textarea:focus{outline:2px solid rgba(32,245,255,.2);border-color:#20f5ffa8}.app-select{position:relative;width:100%}.app-select__trigger{width:100%;min-height:34px;padding:8px 9px;justify-content:space-between;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#03040894;color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-select__trigger:focus{outline:2px solid rgba(32,245,255,.2);border-color:#20f5ffa8}.app-select__value{min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.app-select__icon{flex:0 0 auto;color:var(--muted);transition:transform .16s ease}.app-select.is-open .app-select__icon{transform:rotate(180deg)}.app-select__menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;display:grid;gap:4px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#0a0c12f5;box-shadow:0 22px 40px #00000061;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-select__option{width:100%;min-height:32px;padding:7px 9px;justify-content:flex-start;border:0;border-radius:7px;background:transparent}.app-select__option.is-active,.app-select__option.is-selected{background:#20f5ff1f}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.workspace{position:relative;min-width:0;height:calc(100vh - 28px);display:grid;grid-template-rows:minmax(0,1fr);min-height:0}.flow-wrap{position:relative;min-height:0;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),#050508b8;background-size:30px 30px}.image-flow{width:100%;height:100%}.vue-flow__edge-path{stroke:#20f5ffc7;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(32,245,255,.42))}.vue-flow__attribution{display:none}.vue-flow__panel.bottom{margin:12px}.canvas-controls{position:absolute;left:18px;bottom:18px;z-index:6;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:#080a10c7;box-shadow:0 14px 40px #00000075,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(18px) saturate(135%);backdrop-filter:blur(18px) saturate(135%)}.canvas-controls button{width:32px;min-width:32px;height:32px;min-height:32px;border-color:#ffffff1f;color:#f6f7fbe0;background:#ffffff0b}.canvas-controls button:hover{border-color:#20f5ff73;color:#fff;background:#20f5ff21}.canvas-empty{position:absolute;top:50%;right:50%;bottom:50%;left:50%;width:min(360px,calc(100% - 32px));height:max-content;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:12px;padding:26px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#0c0e14b8;text-align:center;pointer-events:auto;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.flow-card{position:relative;width:392px;min-height:0;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;color:var(--ink);background:linear-gradient(180deg,#161922f0,#0b0d13f0),#0e1016e6;box-shadow:0 24px 56px #00000070,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(22px) saturate(126%);backdrop-filter:blur(22px) saturate(126%)}.flow-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:14px;background:linear-gradient(135deg,rgba(32,245,255,.12),transparent 38%,rgba(255,47,120,.14));pointer-events:none}.flow-card.selected{border-color:#20f5ff75;box-shadow:0 0 0 1px #20f5ff3d,0 18px 48px #0000007a}.flow-card__connector{position:absolute;left:50%;z-index:4;width:14px;height:14px;border:2px solid rgba(5,7,11,.92);border-radius:999px;background:#20f5fff2;box-shadow:0 0 0 3px #20f5ff2e,0 0 14px #20f5ff8c;transform:translate(-50%);pointer-events:none}.flow-card__connector-top{top:-7px}.flow-card__connector-bottom{bottom:-7px}.node-topline,.node-kind,.media-heading{display:flex;align-items:center}.node-topline{justify-content:space-between;gap:12px;min-height:36px;margin-bottom:10px;padding:0 2px}.node-topline__actions{display:flex;align-items:center;gap:6px}.node-drag-handle{cursor:grab}.node-drag-handle:active{cursor:grabbing}.node-kind{gap:8px;min-width:0;font-size:12px}.node-kind strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pill{min-height:22px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#f6f7fbcc;background:#ffffff0d;font-size:11px;white-space:nowrap}.status-succeeded{color:#baffdf;border-color:#48f0a459}.status-failed{color:#ffb0bc;border-color:#ff4b5f66}.node-stack{display:grid;gap:10px}.node-stack .node-label{margin:0}.prompt-label,.node-parameter-grid,.node-gallery{padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff09}.prompt-label{margin:0}.prompt-label textarea{min-height:78px}.prompt-readout__text{margin:0;color:#f6f7fbf5;font-size:16px;font-weight:700;line-height:1.5;letter-spacing:0;min-height:0;padding:0;border:0;background:transparent;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;cursor:text}.node-parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.node-parameter-grid .node-label:first-child,.node-parameter-wide{grid-column:1 / -1}.media-heading{min-height:24px;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;color:#f6f7fbb8;font-size:11px;font-weight:900}.media-count{min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 6px;border-radius:999px;background:#ffffff14;color:#f6f7fbb8;font-size:10px}.node-gallery-shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px}.node-gallery-shell-single,.node-gallery-shell-result{grid-template-columns:minmax(0,1fr)}.node-gallery{min-width:0;min-height:0;display:grid;grid-template-rows:auto auto;gap:8px;align-content:start}.asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.asset-thumb{position:relative;min-width:0;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#ffffff0f}.asset-thumb.clickable{cursor:zoom-in}.asset-thumb.clickable:hover{border-color:#20f5ff8f;box-shadow:0 0 20px #20f5ff29}.asset-thumb__remove{position:absolute;top:6px;right:6px;z-index:1;width:24px;min-width:24px;height:24px;min-height:24px;padding:0;border-color:#ffffff24;border-radius:999px;color:#fff;background:#080a10d1;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .16s ease,transform .16s ease,background .16s ease,border-color .16s ease}.asset-thumb:hover .asset-thumb__remove,.asset-thumb:focus-within .asset-thumb__remove{opacity:1;transform:translateY(0);pointer-events:auto}.asset-thumb__remove:hover{border-color:#ff4b5f6b;background:#ff4b5fd1}.asset-thumb img{width:100%;aspect-ratio:1;display:block;object-fit:cover}.asset-thumb figcaption{padding:5px 7px;color:var(--muted);font-size:11px}.asset-thumb.dense{width:100%}.asset-thumb__empty{display:grid;min-height:80px;place-items:center;color:var(--muted)}.node-gallery-header{min-height:22px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#f6f7fbbd;font-size:11px;font-weight:900}.media-grid-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start;align-items:start;min-height:0;grid-auto-flow:row;grid-auto-rows:max-content}.media-grid-panel .asset-thumb{margin:0}.media-grid-panel .asset-thumb.dense,.asset-tile{width:100%;min-height:0;aspect-ratio:1}.media-grid-panel .asset-thumb.dense figcaption{display:none}.media-grid-panel .asset-thumb img{aspect-ratio:1}.media-grid-panel-reference{grid-template-columns:repeat(4,minmax(0,1fr))}.media-grid-panel-result{grid-auto-rows:1fr;padding:12px 0}.media-grid-panel-result .asset-thumb.dense{aspect-ratio:1}.media-grid-panel-result.is-single .asset-thumb.dense{aspect-ratio:16 / 10}.media-grid-panel-result.is-single .asset-thumb img{aspect-ratio:16 / 10;height:calc(100% - 32px)}.media-grid-panel-result .asset-thumb{display:grid;place-items:center;box-sizing:border-box;padding:14px 12px;background:#080a106b}.media-grid-panel-result .asset-thumb img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;margin:auto}.media-grid-panel-result.is-single .asset-thumb{overflow:visible}.media-grid-empty{grid-column:auto;width:100%;min-height:0;aspect-ratio:1;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.12);border-radius:10px;color:#f6f7fb80;font-size:11px;font-weight:800;background:#ffffff06}.asset-tile{padding:0;border-radius:9px}.asset-tile-add{border-style:dashed;border-color:#ffffff2e;color:#f6f7fbbd;background:#ffffff0b}.asset-tile-add:hover{border-color:#20f5ff80;color:#fff;background:#20f5ff1f}.node-topline__actions .icon-button{width:30px;min-width:30px;height:30px;min-height:30px;padding:0;border-radius:9px;border-color:#ffffff1f;background:#ffffff0b}.node-topline__actions .generate-button{color:#20f5ffeb}.node-topline__actions .generate-button:not(:disabled):hover{border-color:#20f5ff5c;background:#20f5ff1a}.node-topline__actions .generate-button:disabled{color:#20f5ff6b;background:#ffffff08}.node-topline__actions .branch-button{color:#f6f7fbc7}.node-topline__actions .branch-button:hover{border-color:#ffffff38;color:#fff;background:#ffffff14}.node-topline__actions .delete-branch-button{color:#ffb0bce0}.node-topline__actions .delete-branch-button:hover{border-color:#ff4b5f6b;color:#fff;background:#ff4b5f24}.error-box{padding:10px;border:1px solid rgba(255,75,95,.28);border-radius:8px;color:#ffbac4;background:#ff4b5f1a;font-size:12px}.preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:28px;background:#000000c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.preview-dialog{position:relative;width:min(92vw,1100px);max-height:92vh;display:grid;gap:12px;margin:0;padding:14px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:#0c0e14c7;box-shadow:0 24px 90px #0009,0 0 70px #ff2f781f}.preview-dialog img{max-width:100%;max-height:calc(92vh - 92px);display:block;justify-self:center;object-fit:contain;border-radius:10px}.preview-dialog figcaption{display:flex;justify-content:space-between;gap:16px;color:#f6f7fbc2;font-size:12px}.preview-close{position:absolute;top:12px;right:12px;z-index:1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1100px){body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-columns:1fr}.sidebar,.workspace{height:auto}.flow-wrap{min-height:72vh}}@media (max-width: 760px){.app-shell{padding:10px}.field-grid,.node-parameter-grid,.node-gallery-shell{grid-template-columns:1fr}.node-parameter-wide{grid-column:auto}.flow-card{width:min(92vw,392px)}}
