@font-face{font-family:Geologica;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geologica-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geologica;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geologica-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geologica;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geologica-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geologica;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/geologica-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexmono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Anno;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Anno;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Anno;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anno;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg: #101116;--bg-2: #1B1D26;--bg-3: #262A36;--fg: #F1F2F6;--fg-dim: #9AA0AE;--fg-3: #6C7280;--border: rgba(255, 255, 255, .1);--line: rgba(255, 255, 255, .085);--field: rgba(255, 255, 255, .05);--active: rgba(255, 255, 255, .09);--surface: rgba(33, 36, 46, .93);--surface-solid: #21242E;--glass: rgba(24, 26, 34, .62);--glass-blur: blur(16px) saturate(140%);--accent: #B79CFF;--accent-ink: #1A1030;--accent-hover: #C9B4FF;--accent-soft: rgba(183, 156, 255, .16);--type-text: #7FB2FF;--accent-2: #FFB070;--accent-3: #FF7AB6;--accent-4: #6FE3CF;--green: #62D59A;--yellow: #F1BE5B;--red: #FF7A7A;--ck1: #1B1D25;--ck2: #22252E;--r-node: 13px;--r-pop: 12px;--r-ctl: 8px;--r-sm: 6px;--shadow-node: 0 8px 22px rgba(0, 0, 0, .38);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .08);--canvas-bg: radial-gradient(ellipse 120% 95% at 30% -20%, #222634 0%, #181A24 42%, #101116 78%);--font-ui: "Geologica", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;font-family:var(--font-ui);font-size:13px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--field);color:var(--fg);overflow:hidden}button{font-family:inherit;font-size:inherit;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:var(--r-ctl);padding:4px 10px;cursor:pointer}button:hover{background:var(--active)}button:active{background:#ffffff21}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent-soft);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=password],input[type=email],input[type=number],textarea,select{font-family:inherit;font-size:inherit;background:var(--field);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-ctl);padding:5px 8px}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:24px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%239AA0AE' stroke-width='1.5' stroke-linecap='round'><path d='M2 4l4 4 4-4'/></svg>");background-repeat:no-repeat;background-position:right 7px center}select option{background:var(--surface-solid);color:var(--fg)}textarea{resize:vertical;min-height:60px}.app-root{height:100vh;width:100vw;overflow:hidden}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-pop);box-shadow:var(--shadow-pop);padding:18px 20px;min-width:480px;max-width:640px;max-height:80vh;overflow:auto}.dialog h2{margin:0 0 12px;font-size:16px}.dialog-row{display:grid;grid-template-columns:140px 1fr;gap:8px;align-items:center;margin-bottom:8px}.dialog-row input{width:100%}.dialog-section{margin:16px 0 6px;font-weight:600;color:var(--fg-dim)}.dialog-actions{margin-top:16px;display:flex;gap:8px;justify-content:flex-end}.help-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;background:var(--field);border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--fg);cursor:pointer}.help-btn:hover{background:var(--active);border-color:var(--border)}.help-btn.pulse{animation:helpPulse 5s ease-in-out infinite}@keyframes helpPulse{0%,62%,to{box-shadow:0 0 #b79cff00}74%{box-shadow:0 0 0 4px #b79cff80}86%{box-shadow:0 0 0 10px #b79cff00}}.dialog.help-dialog{width:min(760px,92vw);max-width:760px;max-height:88vh;text-align:left;line-height:1.5}.help-lead{margin:0 0 10px;font-size:13px}.help-muted{color:var(--fg-dim);font-size:12px}.help-steps{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0 4px;font-size:11px}.help-steps span:nth-child(2n){color:var(--fg-dim)}.help-steps span:nth-child(odd){background:var(--bg-3);border:1px solid var(--border);border-radius:3px;padding:3px 8px;color:var(--fg)}.help-flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 10px}.help-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg-3);border:1px solid var(--border);border-radius:4px;padding:5px 9px;font-size:12px;color:var(--fg)}.help-chip-ico,.help-block-ico{display:inline-flex;color:var(--accent);flex:none}.help-arrow{color:var(--fg-dim)}.help-list{margin:4px 0 6px;padding-left:18px;font-size:12px}.help-list li{margin:3px 0}.help-callout{margin:14px 0;padding:10px 12px;background:#f0c6741f;border:1px solid var(--yellow);border-radius:4px;font-size:12px}.help-blocks{display:flex;flex-direction:column;gap:9px;margin:4px 0 6px}.help-block{display:flex;gap:10px;align-items:flex-start;font-size:12px}.help-block-ico{margin-top:1px}.help-tip{margin-top:14px}.editor-root{background:var(--canvas-bg);display:grid;grid-template-columns:var(--sidebar-w, 290px) 1fr;grid-template-rows:1fr;grid-template-areas:"sidebar canvas";height:100%;position:relative}.editor-root.sidebar-collapsed{grid-template-columns:0 1fr}.editor-root.sidebar-rail{grid-template-columns:52px 1fr}.pipeline-sidebar.rail{padding:8px 6px 10px;gap:6px;align-items:center;overflow-x:hidden}.pipeline-sidebar.rail .sidebar-collapse-btn{width:28px;height:28px}.pipeline-sidebar.rail .rail-list{display:flex;flex-direction:column;gap:4px;align-items:center;flex:1;min-height:0;overflow-y:auto;width:100%;scrollbar-width:none}.rail-item{width:38px;height:38px;padding:0;flex:none;border-radius:10px;border:1px solid transparent;background:transparent;display:grid;place-items:center;color:var(--fg-dim);cursor:pointer}.rail-item:hover{background:var(--bg-3);color:var(--fg)}.rail-item.active{background:var(--active);border-color:var(--line);color:var(--fg)}.rail-item.rail-new{color:var(--fg-3);border:1px dashed var(--line);font-size:18px;line-height:1}.entry-icon{width:22px;height:22px;flex:none;border-radius:6px;overflow:hidden;display:grid;place-items:center;background:var(--field);color:var(--fg-3);font:600 11px var(--font-mono)}.entry-icon img{width:100%;height:100%;object-fit:contain;display:block}.entry-icon.rail{width:30px;height:30px;border-radius:8px;font-size:13px}.rail-item.active .entry-icon,.pipeline-entry.active .entry-icon{color:var(--fg)}.entry-icon.big{width:56px;height:56px;border-radius:12px;font-size:20px}.icon-dialog .icon-current{display:flex;align-items:center;gap:12px;margin:6px 0 12px}.icon-dialog .icon-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.icon-dialog .icon-row button{display:inline-flex;align-items:center;gap:6px}.icon-dialog .icon-grid{display:grid;grid-template-columns:repeat(auto-fill,84px);gap:8px;margin:8px 0;max-height:300px;overflow:auto}.icon-dialog .icon-choice{width:84px;padding:0;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--field);cursor:pointer;display:flex;flex-direction:column}.icon-dialog .icon-choice img{width:84px;height:84px;object-fit:contain;display:block;background-color:var(--ck1);background-image:repeating-conic-gradient(var(--ck2) 0 25%,transparent 0 50%);background-size:12px 12px}.icon-dialog .icon-choice span{font-size:10.5px;color:var(--fg-dim);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.icon-dialog .icon-choice:hover:not(:disabled){border-color:var(--accent)}.sidebar-resize{position:absolute;top:0;bottom:0;width:7px;transform:translate(-3px);cursor:col-resize;z-index:20}.sidebar-resize:hover{background:var(--accent);opacity:.4}.canvas-area{grid-area:canvas;position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}.canvas-area>.canvas-host{flex:1;min-width:0;min-height:0}.editor-island{position:absolute;top:54px;z-index:25;display:flex;align-items:center;gap:6px;padding:5px 7px;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--r-pop);box-shadow:var(--shadow-pop)}.editor-island.island-left{left:10px;padding:4px}.editor-toolbar.editor-island{position:static;order:-1;flex:none;height:44px;padding:0 10px 0 8px;gap:8px;font-size:13px;border:none;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;z-index:25}.toolbar-spacer{flex:1}.run-all-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r-ctl);font-weight:600;font-size:12.5px;letter-spacing:.01em}.run-all-btn:hover{background:var(--accent-hover)}.run-all-btn svg{display:block}.editor-toolbar .pipeline-name{color:var(--fg-dim);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-toolbar .toolbar-btn,.editor-island .toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;padding:0;background:transparent;border:1px solid var(--line);border-radius:var(--r-ctl);color:var(--fg-dim);cursor:pointer}.editor-toolbar .toolbar-btn:hover:not(:disabled),.editor-island .toolbar-btn:hover:not(:disabled){color:var(--fg);border-color:var(--accent)}.editor-toolbar .toolbar-btn:disabled{opacity:.4;cursor:default}.editor-toolbar .toolbar-sep{width:1px;height:16px;background:var(--border);margin:0 2px}.pipeline-sidebar{grid-area:sidebar;display:flex;flex-direction:column;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-right:1px solid var(--line);overflow-y:auto;padding:6px 10px 10px;gap:4px}.pipeline-sidebar .sidebar-header{font-size:10px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.5px;margin:6px 4px 2px}.pipeline-sidebar .sidebar-header-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.sidebar-header-left{display:flex;align-items:center;gap:6px;min-width:0}.sidebar-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;flex-shrink:0;background:transparent;border:none;border-radius:3px;color:var(--fg-dim);cursor:pointer}.sidebar-collapse-btn:hover{color:var(--fg);background:var(--active)}.sidebar-icon-btn.run-all{width:auto;gap:4px;padding:0 8px;font-size:10px;font-weight:700;letter-spacing:.5px}.sidebar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;flex-shrink:0}.sidebar-icon-btn.play{background:transparent;color:var(--fg-dim);border-color:transparent}.sidebar-icon-btn.play:hover{background:var(--accent-soft);color:var(--accent)}.pipeline-entry .sidebar-icon-btn,.pipeline-entry .entry-menu-btn{opacity:0;transition:opacity .12s ease-out}.pipeline-entry:hover .sidebar-icon-btn,.pipeline-entry.active .sidebar-icon-btn,.pipeline-entry:hover .entry-menu-btn,.pipeline-entry.active .entry-menu-btn,.pipeline-entry .entry-menu-wrap:focus-within .entry-menu-btn,.pipeline-entry .sidebar-icon-btn:focus-visible{opacity:1}.sidebar-icon-btn.cancel{background:var(--bg-3);color:var(--fg-dim);border-color:var(--border)}.sidebar-icon-btn.cancel:hover{color:var(--fg);border-color:var(--fg-dim)}.sidebar-icon-btn.delete{background:var(--bg-3);color:var(--fg-dim);border-color:var(--border)}.sidebar-icon-btn.delete:hover{color:var(--red);border-color:var(--red)}.pipeline-entry{display:flex;flex-direction:column;gap:4px;padding:4px 6px;border-radius:9px;border:1px solid transparent}.pipeline-entry.current{background:var(--field)}.pipeline-entry.active{background:var(--active)}.pipeline-entry .entry-row{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.pipeline-entry .entry-row input,.pipeline-entry .entry-name-input{flex:1;min-width:0;background:var(--field);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--fg);padding:2px 6px;font-size:12px}.entry-menu-wrap{position:relative;flex-shrink:0}.entry-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--fg-dim);cursor:pointer}.entry-menu-btn:hover{color:var(--fg);background:var(--bg-3)}.entry-menu{position:absolute;top:100%;left:0;margin-top:2px;z-index:60;background:var(--surface-solid);border-radius:4px;padding:3px;display:flex;flex-direction:column;min-width:150px;box-shadow:var(--shadow-pop);border:1px solid var(--border);border-radius:var(--r-pop)}.entry-menu button{text-align:left;background:transparent;border:none;color:var(--fg);padding:5px 8px;border-radius:var(--r-sm);font-size:12px;cursor:pointer;white-space:nowrap}.entry-menu button:hover{background:var(--bg-3)}.entry-menu button.danger{color:var(--red)}.pipeline-entry .entry-actions{display:flex;gap:4px}.pipeline-entry .entry-actions button{flex:1;padding:2px 6px;font-size:11px}.pipeline-entry .entry-actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.pipeline-entry .entry-actions button.primary:hover{background:var(--accent-hover)}.pipeline-entry .entry-actions button.danger{background:var(--red);color:#fff;border-color:var(--red)}.pipeline-entry .entry-meta{color:var(--fg-dim);font-size:10px;padding:0 2px}.pipeline-list{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0}.pipeline-list .empty{color:var(--fg-dim);font-size:11px;padding:4px 6px}.pipeline-list .pipeline-entry{flex-direction:row;align-items:center;padding:3px 6px}.pipeline-list .pipeline-entry:not(.active):hover{background:var(--bg-3)}.pipeline-list .entry-btn{flex:1;min-width:0;text-align:left;background:transparent;border:none;color:var(--fg-dim);padding:6px;border-radius:6px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pipeline-list .entry-btn:hover{background:none;color:var(--fg)}.pipeline-list .pipeline-entry:hover .entry-btn,.pipeline-list .pipeline-entry.active .entry-btn{color:var(--fg)}.pipeline-list .entry-del{background:transparent;border:none;color:var(--fg-dim);padding:4px;display:inline-flex;align-items:center;cursor:pointer}.pipeline-list .entry-del:hover{color:var(--red)}button.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.btn-primary:hover{background:var(--accent-hover)}button.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}button.btn-danger:hover{background:#ff8a8a}.sidebar-bottom-btn{margin-top:8px;width:100%;background:transparent;border:1px dashed var(--border);color:var(--fg-dim);padding:6px;font-size:11px}.sidebar-bottom-btn:hover{color:var(--fg);border-color:var(--accent)}.pipeline-new-btn{margin-top:4px;width:100%;background:transparent;border:1px dashed var(--border);color:var(--fg-dim);padding:6px;font-size:11px;border-radius:3px;cursor:pointer}.pipeline-new-btn:hover{color:var(--fg);border-color:var(--accent)}.canvas-host{grid-area:canvas;position:relative;background:transparent;overflow:hidden;-webkit-user-select:none;user-select:none;outline:none}.canvas-host svg{display:block;width:100%;height:100%}.canvas-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.canvas-grid circle,.canvas-grid rect.grid-dot{fill:#ffffff0f}.canvas-world{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}.canvas-world>svg{overflow:visible}.canvas-html{position:absolute;left:0;top:0;width:0;height:0;overflow:visible;pointer-events:none}.node-html{position:absolute;pointer-events:auto;overflow:hidden}.node-html-menu{z-index:2;overflow:visible}.canvas-over{position:absolute;left:0;top:0;pointer-events:none}.canvas-over .anno-shapes,.canvas-over .anno-pins,.canvas-over .anno-frame{pointer-events:visiblePainted}.context-menu{position:fixed;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-pop);padding:4px 0;min-width:200px;max-height:70vh;overflow:auto;z-index:1500;box-shadow:var(--shadow-pop)}.context-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:0;padding:6px 12px;color:var(--fg);display:flex;align-items:center;gap:8px}.context-menu button:hover{background:var(--active)}.context-menu .shortcut{margin-left:auto;color:var(--fg-dim);font-size:11px}.context-menu .item-icon{width:16px;height:16px;flex-shrink:0;color:var(--fg-dim);display:inline-flex}.context-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.context-menu .section{padding:4px 12px 2px;font-size:10px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.5px}.context-menu button.hinted{background:var(--active)}.context-menu .menu-filter-wrap{padding:2px 8px 6px}.context-menu .menu-filter{width:100%;height:26px;padding:0 8px;box-sizing:border-box;font-size:12px;border-radius:6px;background:var(--field);border:1px solid var(--line);color:var(--fg);outline:none}.context-menu .menu-filter:focus{border-color:var(--accent)}.context-menu button.cat-btn .count{margin-left:auto;color:var(--fg-3);font-size:10.5px;font-variant-numeric:tabular-nums}.context-menu button.cat-btn .chev{margin-left:8px;color:var(--fg-3);font-size:15px;line-height:1}.context-menu button.cat-btn.open,.context-menu button.first{background:var(--active)}.context-menu.submenu{z-index:1501;min-width:220px}.node-hint{position:fixed;z-index:1600;padding:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 28px #00000080;pointer-events:none;animation:nodeHintIn .14s ease-out}.node-hint.flip{animation-name:nodeHintInFlip}.node-hint.above{animation-name:nodeHintInUp}@keyframes nodeHintInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.node-hint-head{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--fg)}.node-hint-shot{display:block;width:100%;height:150px;margin:8px 0 2px;object-fit:cover;object-position:top center;border-radius:4px;background:var(--field);-webkit-mask-image:linear-gradient(to bottom,#000 74%,transparent 100%);mask-image:linear-gradient(to bottom,#000 74%,transparent 100%)}.node-hint-text{font-size:11.5px;line-height:1.45;color:var(--fg-dim)}@keyframes nodeHintIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes nodeHintInFlip{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.node-rect{fill:var(--surface);filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}.lod-far .node-rect{filter:none}.node-outline{fill:none;stroke:var(--border);pointer-events:none;transition:stroke .25s ease-out,stroke-width .25s ease-out}.node-outline.state-running{stroke:var(--accent);stroke-width:1.5;animation:nodePulse 1.4s ease-in-out infinite}@keyframes nodePulse{0%,to{stroke-opacity:.55}50%{stroke-opacity:1}}.node-outline.state-done{stroke:var(--border)}.node-outline.state-queued{stroke:var(--accent);stroke-width:1;stroke-dasharray:4 3;opacity:.6}.node-outline.state-error{stroke:var(--red);stroke-width:1.5}.node:hover .node-outline:not(.state-running):not(.state-error):not(.state-queued){stroke:#ffffff38}.node-selection-ring{fill:none;stroke:var(--accent);stroke-width:calc(1.5px * var(--inv-scale, 1));pointer-events:none;filter:drop-shadow(0 0 10px rgba(183,156,255,.35))}.node-dot{fill:var(--fg-3);pointer-events:none}.node-dot.fresh{fill:var(--green)}.node-dot.stale{fill:var(--yellow)}.node-dot.idle{fill:transparent;stroke:var(--fg-3);stroke-width:1.5}.node-dot.queued{fill:transparent;stroke:var(--accent);stroke-width:1.5}.node-dot.running{fill:var(--accent);animation:dotPulse 1.2s ease-in-out infinite}.node-dot.error{fill:var(--red)}@keyframes dotPulse{0%,to{opacity:.35}50%{opacity:1}}.node-run-bar{stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:44 600;animation:runBar 1.6s linear infinite;pointer-events:none}@keyframes runBar{to{stroke-dashoffset:-644}}.node-auto rect{fill:none;stroke:var(--line)}.node-auto text{fill:var(--fg-3);font:500 9px var(--font-mono);letter-spacing:.05em}.node-error-btn{cursor:pointer}.node-error-btn circle{fill:var(--red)}.node-error-btn:hover circle{fill:#ff8a8a}.node-retry-badge .retry-bg{fill:var(--yellow)}.node-retry-badge{animation:retryPulse 1.1s ease-in-out infinite}@keyframes retryPulse{0%,to{opacity:.85}50%{opacity:1}}.node-header{fill:transparent}.node-title{fill:var(--fg);font-size:12.5px;font-weight:600;letter-spacing:-.01em;pointer-events:none}.port-text,.port-image,.port-video,.port-audio{fill:var(--fg-dim);font-size:11px;pointer-events:none}.port-circle.text{fill:var(--type-text);stroke:var(--surface-solid);stroke-width:1.5}.port-circle.image{fill:var(--accent-2);stroke:var(--surface-solid);stroke-width:1.5}.port-circle.video{fill:var(--accent-3);stroke:var(--surface-solid);stroke-width:1.5}.port-circle.audio{fill:var(--accent-4);stroke:var(--surface-solid);stroke-width:1.5}.port-circle{transform-box:fill-box;transform-origin:center;transition:transform .12s ease-out,stroke .12s ease-out,stroke-width .12s ease-out,filter .12s ease-out}.port-hit{fill:transparent;cursor:crosshair}.port-input-row{display:flex;align-items:center;gap:2px;height:18px;width:100%}.port-name-input{flex:none;min-width:0;background:transparent;border:1px solid transparent;border-radius:3px;color:var(--fg-dim);font-size:11px;font-family:inherit;padding:0 3px;height:16px;box-sizing:border-box}.port-name-input::placeholder{color:var(--fg-dim);opacity:.5}.port-name-input:hover{border-color:var(--border)}.port-name-input:focus{color:var(--fg);border-color:var(--accent);background:var(--field);outline:none}.port-del-btn{flex:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;padding:0;border-radius:3px}.port-del-btn:hover{color:var(--red)}.port-add-btn{cursor:pointer}.port-add-circle{fill:var(--surface-solid);stroke:var(--border);stroke-width:1}.port-add-btn:hover .port-add-circle{fill:var(--bg-2);stroke:var(--accent)}.port-add-plus{stroke:var(--fg-dim);stroke-width:1.6;stroke-linecap:round}.port-add-btn:hover .port-add-plus{stroke:var(--accent)}.port-add-btn.reject .port-add-circle{fill:var(--bg-2);stroke:var(--red)}.port-add-x{stroke:var(--red);stroke-width:1.8;stroke-linecap:round}.port-add-menu{display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-ctl);overflow:hidden;box-shadow:var(--shadow-pop)}.port-add-menu button{background:transparent;border:none;color:var(--fg);text-align:left;padding:4px 10px;font-size:11px;cursor:pointer;text-transform:capitalize}.port-add-menu button:hover{background:var(--bg-3)}.port:hover .port-circle{transform:scale(1.75);stroke:var(--fg);stroke-width:1.5}.port.text:hover .port-circle{filter:drop-shadow(0 0 5px var(--type-text))}.port.image:hover .port-circle{filter:drop-shadow(0 0 5px var(--accent-2))}.port.video:hover .port-circle{filter:drop-shadow(0 0 5px var(--accent-3))}.port.audio:hover .port-circle{filter:drop-shadow(0 0 5px var(--accent-4))}.edge{cursor:pointer}.edge-hit{fill:none;stroke:transparent;stroke-width:14;cursor:pointer;pointer-events:stroke}.edge-path{fill:none;stroke-width:2;opacity:.9;transition:stroke-width .15s ease-out,filter .15s ease-out,opacity .15s ease-out}.edge-path.text{stroke:var(--type-text)}.edge-path.image{stroke:var(--accent-2)}.edge-path.video{stroke:var(--accent-3)}.edge-path.audio{stroke:var(--accent-4)}.edge-path.preview{stroke-dasharray:4 4;opacity:.7;cursor:default}.edge:hover .edge-path:not(.preview){stroke-width:3.5;opacity:1}.node-hist-btn rect{fill:var(--field);stroke:var(--line);cursor:pointer}.node-hist-btn path{fill:none;stroke:var(--fg-dim);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.node-hist-btn:hover rect{fill:var(--active);stroke:var(--border)}.node-hist-btn:hover path{stroke:var(--fg)}.node-hist-btn.off rect{fill:#ffffff0a;stroke:#ffffff14;cursor:default}.node-hist-btn.off path{stroke:var(--fg-dim);opacity:.4}.node-hist-btn.off:hover rect{fill:#ffffff0a;stroke:#ffffff14}.lod-far .node-body :is(input,select,textarea,button,label,svg),.lod-far .node-body .muted-line,.lod-far .node-body .result-head,.lod-far .node-body .cmp-toolbar,.lod-far .node-body .cmp-layers,.lod-far .node-body .cmp-hint,.lod-far .node-body .draw-toolbar,.lod-far .node-body .crop-hint,.lod-far .node-body .node-output.empty,.lod-far .port-name-input,.lod-far .port-del-btn{visibility:hidden}.lod-far .node-history,.lod-far .node-retry-badge,.lod-far .node-error-btn,.lod-far .node-demo-flag,.lod-far .port-add-btn,.lod-far .resize-handles,.lod-far .node text.port-text,.lod-far .node text[class^=port-]{visibility:hidden}.node-applying circle{fill:var(--accent);animation:applyPulse 1s ease-in-out infinite}@keyframes applyPulse{0%,to{opacity:.25;r:3}50%{opacity:1;r:5}}.edge-path.selected{stroke-width:3.5;opacity:1}.edge-point{fill:var(--surface-solid);stroke:var(--accent);stroke-width:calc(2px * var(--inv-scale, 1));cursor:grab}.edge-point:hover{fill:var(--accent)}.edge-point.selected{fill:var(--accent);stroke:var(--fg)}.edge-path.edge-state-queued{stroke-dasharray:5 4;opacity:.55}.edge-path.edge-state-running{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:6 7;opacity:1;animation:edgeFlow 1.1s linear infinite reverse}.edge-path.edge-state-done{opacity:1}.edge-path.edge-state-error{stroke:var(--red);stroke-width:2.5}@keyframes edgeFlow{to{stroke-dashoffset:-12}}.selection-rect{fill:#b79cff14;stroke:var(--accent);stroke-width:calc(1px * var(--inv-scale, 1));stroke-dasharray:calc(4px * var(--inv-scale, 1)) calc(4px * var(--inv-scale, 1))}.canvas-host.tool-armed,.canvas-host.tool-armed .node-rect,.canvas-host.tool-armed .node-header,.canvas-host.tool-armed .anno-hit{cursor:crosshair}.util-panel{position:static;z-index:20;display:flex;flex-direction:row;align-items:center;gap:2px;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none}.util-tool{width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--fg-dim)}.util-tool:hover:not(:disabled){background:var(--active);color:var(--fg)}.util-tool.active{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.util-tool.muted{color:var(--fg-dim);opacity:.7}.util-tool:disabled{opacity:.35;cursor:default}.util-sep{width:1px;height:16px;background:var(--line);margin:0 4px}.util-tool-wrap{position:relative;display:flex}.util-hint{position:absolute;left:0;bottom:calc(100% + 10px);width:226px;padding:8px 10px;background:var(--surface-solid);border:1px solid var(--accent);border-radius:var(--r-pop);box-shadow:var(--shadow-pop);font-size:11.5px;line-height:1.45;color:var(--fg-dim);display:flex;flex-direction:column;gap:3px;pointer-events:none;animation:utilHintIn .16s ease-out}.util-hint b{color:var(--fg);font-size:12px}.util-hint:before{content:"";position:absolute;left:11px;bottom:-5px;width:8px;height:8px;background:var(--surface-solid);border-left:1px solid var(--accent);border-top:1px solid var(--accent);transform:rotate(225deg)}@keyframes utilHintIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anno-colors{display:grid;grid-template-rows:repeat(2,1fr);grid-auto-flow:column;gap:3px;padding:1px 2px 1px 7px;margin-left:3px;border-left:1px solid var(--line)}.anno-swatch{width:12px;height:12px;padding:0;border-radius:50%;border:1px solid rgba(0,0,0,.35);cursor:pointer}.anno-swatch:hover{transform:scale(1.15)}.anno-swatch.active{box-shadow:0 0 0 2px var(--surface-solid),0 0 0 3px var(--fg)}.anno-hit{cursor:move}.anno-hit-stroke{pointer-events:stroke}.anno-shape.read-only .anno-hit{cursor:pointer}.anno-text{-webkit-user-select:none;user-select:none}.anno-selection{fill:none;stroke:var(--accent);stroke-width:calc(1px * var(--inv-scale, 1));stroke-dasharray:4 3}.anno-handle{fill:var(--bg);stroke:var(--accent);stroke-width:1.5;pointer-events:none}.anno-handle-hit{fill:transparent}.anno-handle-hit:hover+.anno-handle{fill:var(--accent)}.anno-mini-btn{cursor:pointer}.anno-mini-btn circle{fill:var(--bg-2);stroke:var(--border)}.anno-mini-btn.danger{color:var(--red)}.anno-mini-btn:hover circle{stroke:var(--red)}.anno-text-editor{width:100%;min-height:0;padding:2px 4px;background:#1e1f22eb;border:1px dashed var(--accent);border-radius:3px;font-family:inherit;font-weight:600;resize:none;outline:none}.anno-pin{cursor:pointer}.anno-pin-face{stroke:#00000059;stroke-width:1}.anno-pin:hover .anno-pin-face{stroke:var(--fg)}.anno-pin.open .anno-pin-face{stroke:var(--fg);stroke-width:2}.anno-pin.resolved{opacity:.55}.anno-pin-badge{fill:var(--bg-2);stroke:var(--border);stroke-width:1}.anno-thread{display:flex;flex-direction:column;height:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 24px #00000073;font-size:12px;overflow:hidden;cursor:default}.anno-thread-head{display:flex;align-items:center;gap:6px;padding:5px 6px;border-bottom:1px solid var(--border)}.anno-dot{width:9px;height:9px;border-radius:50%;flex:none}.anno-thread-title{color:var(--fg-dim);font-size:11px;margin-right:auto}.anno-head-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;border-radius:4px;color:var(--fg-dim)}.anno-head-btn:hover{background:var(--bg-3);color:var(--fg)}.anno-head-btn.on{color:var(--green)}.anno-head-btn.danger:hover{color:var(--red)}.anno-msgs{flex:1;min-height:0;overflow-y:auto;padding:6px}.anno-empty{color:var(--fg-dim);font-size:11px;padding:6px 2px}.anno-msg{padding:5px 6px;border-radius:5px;background:var(--field);margin-bottom:5px}.anno-msg-head{display:flex;align-items:center;gap:6px;margin-bottom:2px}.anno-msg-author{font-weight:600;font-size:11px}.anno-msg-time{color:var(--fg-dim);font-size:10px;margin-right:auto}.anno-msg-del{padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);opacity:0}.anno-msg:hover .anno-msg-del{opacity:1}.anno-msg-del:hover{color:var(--red);background:transparent}.anno-msg-text{white-space:pre-wrap;word-break:break-word;line-height:1.35}.anno-composer{border-top:1px solid var(--border);padding:6px}.anno-composer textarea{width:100%;min-height:46px;max-height:90px;resize:none;font-size:12px}.anno-composer-row{display:flex;align-items:center;gap:6px;margin-top:5px}.anno-hint{color:var(--fg-dim);font-size:10px;margin-right:auto}.anno-send{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600;padding:3px 10px}.anno-send:hover:not(:disabled){background:var(--accent-hover)}.anno-readonly{border-top:1px solid var(--border);padding:7px;color:var(--fg-dim);font-size:11px}.play-btn{fill:var(--accent);cursor:pointer}.node-play-btn:hover .play-btn{fill:var(--accent-hover)}.stop-btn{fill:transparent;stroke:var(--accent);stroke-width:1.5;cursor:pointer}.node-play-btn:hover .stop-btn{fill:var(--accent-soft)}.node-play-btn{cursor:pointer}.node-body-host{width:100%;height:100%;padding:6px 10px 10px;font-size:11.5px;color:var(--fg);overflow:hidden}.node-body{display:flex;flex-direction:column;gap:5px;height:100%}.node-body .row{display:grid;grid-template-columns:50px 1fr;gap:6px;align-items:center}.node-body label{color:var(--fg-dim);font-size:10.5px}.node-body input[type=text],.node-body select,.node-body textarea{width:100%;font-size:11.5px;padding:4px 7px;background:var(--field);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-sm);box-sizing:border-box}.node-body select{padding-right:20px;background-position:right 5px center;background-size:10px}.node-body textarea{resize:none;min-height:0;font-family:inherit}.node-body .kv-list{display:flex;flex-direction:column;gap:3px;margin-top:2px}.node-body .kv-row{display:grid;grid-template-columns:1fr 1fr 22px;gap:3px}.node-body .kv-row button{padding:0;line-height:1;height:22px;background:var(--field);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--fg)}.node-body .kv-add{align-self:flex-start;background:transparent;border:1px dashed var(--border);color:var(--fg-dim);font-size:10px;padding:2px 8px;border-radius:3px}.node-body .muted-line{color:var(--fg-3);font-size:10.5px;line-height:1.4;padding:2px}.node-body .muted-line b{color:var(--fg-dim);font-weight:500}.model-row{display:flex;align-items:center;gap:4px}.model-row input{flex:1;min-width:0}.model-list-btn{flex:none;width:26px;height:24px;padding:0;line-height:1;background:var(--field);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--fg-dim);cursor:pointer}.model-list-btn:hover{color:var(--fg);border-color:var(--accent)}.node-body .kv2{display:flex;flex-direction:column;gap:2px;padding:4px 4px 6px;background:var(--field);border:1px solid var(--border);border-radius:3px;margin-bottom:4px}.node-body .kv2-head{display:grid;grid-template-columns:1fr 22px;gap:4px;align-items:center}.node-body .kv2-key{width:100%;font-size:11px;padding:2px 5px;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:3px}.node-body .kv2-del{display:inline-flex;align-items:center;justify-content:center;height:22px;width:22px;padding:0;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.node-body .kv2-del:hover{color:var(--red);border-color:var(--red)}.node-body .slot-list{display:flex;flex-direction:column;gap:4px}.node-body .slot-row{display:grid;grid-template-columns:1fr 22px;gap:4px;align-items:center}.node-body .slot-name{width:100%;font-size:11px;padding:3px 6px;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:3px}.node-body .kv2-val{width:100%;font-size:11px;padding:3px 5px;min-height:38px;resize:none;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:3px;font-family:inherit}.path-row{display:grid;grid-template-columns:1fr 22px;gap:4px}.picker-btn{height:22px;width:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.picker-btn:hover{color:var(--fg)}.image-body{gap:6px}.image-preview-wrap{flex:1;display:flex;align-items:center;justify-content:center;background:var(--field);border:1px solid var(--border);border-radius:3px;overflow:hidden;min-height:60px}.image-preview{display:block;object-fit:contain;image-rendering:pixelated}.image-preview-frame{display:flex;align-items:center;justify-content:center;overflow:hidden}.image-preview-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;image-rendering:pixelated;display:block;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 12px 12px}.image-preview.empty{display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:18px;border:1px dashed var(--border);border-radius:3px;background:transparent}.picker-actions{display:flex;gap:4px}.picker-actions button{flex:1;font-size:11px;padding:3px 6px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--fg);cursor:pointer}.picker-actions button:hover{background:var(--active)}.crop-editor{position:relative;flex:1;min-height:140px;background:var(--field);border:1px solid var(--border);border-radius:3px;overflow:hidden;touch-action:none}.crop-img{position:absolute;display:block;image-rendering:pixelated;max-width:100%;max-height:100%;object-fit:contain;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 12px 12px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.crop-rect{position:absolute;cursor:move;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px #000000b8}.crop-handle{position:absolute;box-sizing:border-box;touch-action:none}.crop-handle:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px}.ch-nw,.ch-ne,.ch-sw,.ch-se{width:15px;height:15px;border:0 solid #fff}.ch-nw{transform:translate(calc(-100% - 2px),calc(-100% - 2px));border-right-width:3px;border-bottom-width:3px;cursor:nwse-resize}.ch-ne{transform:translate(2px,calc(-100% - 2px));border-left-width:3px;border-bottom-width:3px;cursor:nesw-resize}.ch-sw{transform:translate(calc(-100% - 2px),2px);border-right-width:3px;border-top-width:3px;cursor:nesw-resize}.ch-se{transform:translate(2px,2px);border-left-width:3px;border-top-width:3px;cursor:nwse-resize}.ch-n,.ch-s{width:26px;height:3px;background:#fff}.ch-e,.ch-w{width:3px;height:26px;background:#fff}.ch-n{transform:translate(-50%,-7px);cursor:ns-resize}.ch-s{transform:translate(-50%,7px);cursor:ns-resize}.ch-w{transform:translate(-7px,-50%);cursor:ew-resize}.ch-e{transform:translate(7px,-50%);cursor:ew-resize}.result-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.result-head .muted-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.crop-toggle{display:inline-flex;align-items:center;gap:4px;flex:none;font-size:10px;padding:2px 7px;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.crop-toggle:hover{color:var(--fg);border-color:var(--accent)}.crop-toggle.on{color:var(--fg);background:var(--bg-3);border-color:var(--accent)}.seed-row{display:flex;align-items:center;gap:8px}.seed-inherit{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--fg-dim);cursor:pointer;white-space:nowrap}.seed-input{width:92px;font-size:11px;padding:2px 5px;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:3px}.seed-input:disabled{opacity:.45;cursor:default}.resize-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.resize-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--fg-dim);cursor:pointer}.resize-fields{display:flex;align-items:center;gap:4px}.resize-num{width:58px}.resize-num[readonly]{opacity:.6;cursor:default}.resize-row .crop-toggle{margin-left:auto;align-self:stretch}.resize-lock{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;flex:none;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.resize-lock.on{color:var(--accent);border-color:var(--accent)}.resize-lock:disabled{opacity:.4;cursor:default}.draw-body{gap:4px}.draw-over{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:4px}.draw-over.open{flex:1}.draw-over-toggle{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:var(--bg-3);border:none;border-radius:3px;color:var(--fg-dim);font-size:11px;padding:5px 8px;cursor:pointer}.draw-over.open .draw-over-toggle{border-radius:3px 3px 0 0;border-bottom:1px solid var(--border)}.draw-over-toggle:hover{color:var(--fg)}.draw-over-chevron{display:inline-block;font-size:9px;transition:transform .12s ease-out}.draw-over-chevron.open{transform:rotate(90deg)}.draw-over-content{display:flex;flex-direction:column;flex:1;min-height:0;gap:4px;padding:4px}.draw-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.draw-color-wrap{position:relative}.draw-color-btn{width:26px;height:20px;border-radius:3px;border:1px solid var(--border);cursor:pointer;padding:0}.draw-palette{position:absolute;top:22px;left:0;z-index:10;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:6px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 18px #00000073}.draw-swatches{display:grid;grid-template-columns:repeat(6,16px);gap:4px}.draw-swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--border);cursor:pointer;padding:0}.draw-swatch.active{outline:2px solid var(--fg);outline-offset:1px}.cp{display:flex;flex-direction:column;gap:6px;width:150px}.cp-sv{position:relative;width:150px;height:88px;border-radius:3px;cursor:crosshair;touch-action:none}.cp-hue{position:relative;width:150px;height:12px;border-radius:6px;cursor:pointer;touch-action:none;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.cp-sv-dot,.cp-hue-dot{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000080;transform:translate(-50%,-50%);pointer-events:none}.cp-hue-dot{top:50%}.cp-row{display:flex;align-items:center;gap:6px}.cp-preview{width:22px;height:18px;border-radius:3px;border:1px solid var(--border);flex:none}.cp-hex{flex:1;min-width:0;font-size:11px;padding:2px 5px;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:3px}.draw-ctl{display:flex;align-items:center;gap:4px;color:var(--fg-dim)}.draw-alpha{font-size:11px;width:10px;text-align:center}.draw-ctl input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:60px;height:4px;border-radius:2px;background:var(--bg-3);cursor:pointer;outline:none}.draw-ctl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.draw-ctl input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.draw-ctl input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--bg-3)}.draw-tools{display:flex;align-items:center;gap:4px}.draw-actions{margin-left:auto;display:flex;align-items:center;gap:4px}.draw-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:20px;padding:0;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.draw-icon-btn:hover:not(:disabled){color:var(--fg);border-color:var(--accent)}.draw-icon-btn.active{color:var(--fg);background:var(--bg-3);border-color:var(--accent)}.draw-icon-btn.danger:hover:not(:disabled){color:var(--red);border-color:var(--red)}.draw-icon-btn:disabled{opacity:.4;cursor:default}.draw-cursor{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #0000008c;transform:translate(-50%,-50%);pointer-events:none}.draw-cursor.eraser{border-style:dashed;border-color:#fff}.draw-roi{position:absolute;pointer-events:none;border:1px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px #00000080}.draw-roi.editable{pointer-events:auto;cursor:move}.draw-roi .crop-handle{pointer-events:auto}.draw-area{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 12px 12px;border:1px solid var(--border);border-radius:3px;overflow:hidden}.draw-stage{position:relative;max-width:100%;max-height:100%}.draw-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.draw-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.node-output{margin:2px 0;min-height:60px;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 12px 12px;border:1px solid var(--line);border-radius:9px;box-shadow:0 6px 16px #00000059;overflow:hidden;flex:1}.node-output.empty{display:flex;align-items:center;justify-content:center;color:var(--fg-3);font-size:10.5px;background:transparent;border:1px dashed var(--border);box-shadow:none}.node-output.image{display:flex;align-items:center;justify-content:center;background:#00000038;padding:3px}.preview-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;image-rendering:pixelated;display:block;border-radius:6px;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 12px 12px}.node-output.video{display:flex;align-items:center;justify-content:center;background:#00000038;padding:3px}.preview-video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.audio-player{margin-top:auto;display:flex;align-items:center;gap:7px;height:26px;flex:0 0 auto;padding-top:2px}.audio-player.empty{color:var(--fg-dim);font-size:10px;justify-content:center}.ap-play{flex:0 0 auto;width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-ink);border:none;border-radius:50%;cursor:pointer}.ap-play:hover{background:var(--accent-hover);color:var(--accent-ink)}.ap-play svg{fill:currentColor;display:block}.ap-wave{flex:1 1 auto;min-width:0;height:22px;display:block;cursor:pointer}.ap-wave.loading{opacity:.55}.ap-time{flex:0 0 auto;font:10px var(--font-mono);color:var(--fg-3);font-variant-numeric:tabular-nums;white-space:nowrap}.ap-loop{flex:0 0 auto;width:18px;height:18px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--fg-dim);border:none;border-radius:3px;cursor:pointer}.ap-loop:hover{color:var(--fg);background:var(--active)}.ap-loop.on{color:var(--accent)}.bg-color-chip{display:inline-block;width:14px;height:14px;border:1px solid var(--border);border-radius:3px}.bg-color-picker{max-width:220px}.node-output.text{background:var(--field);box-shadow:none;padding:6px 8px;font-family:var(--font-mono);font-size:10.5px;white-space:pre-wrap;word-break:break-word;margin:0;overflow:auto;color:var(--fg)}.node-output.markdown{background:var(--field);padding:4px 8px;font-size:11px;line-height:1.45;color:var(--fg);overflow:auto;word-break:break-word}.node-output.markdown>:first-child{margin-top:0}.node-output.markdown>:last-child{margin-bottom:0}.node-output.markdown p{margin:4px 0}.node-output.markdown h1,.node-output.markdown h2,.node-output.markdown h3,.node-output.markdown h4,.node-output.markdown h5,.node-output.markdown h6{margin:6px 0 3px;font-weight:700;line-height:1.2}.node-output.markdown h1{font-size:15px}.node-output.markdown h2{font-size:14px}.node-output.markdown h3{font-size:13px}.node-output.markdown h4,.node-output.markdown h5,.node-output.markdown h6{font-size:12px}.node-output.markdown ul,.node-output.markdown ol{margin:4px 0;padding-left:18px}.node-output.markdown li{margin:2px 0}.node-output.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;background:var(--bg-3);padding:1px 4px;border-radius:3px}.node-output.markdown pre{background:var(--bg-3);padding:6px 8px;border-radius:4px;overflow:auto;margin:4px 0}.node-output.markdown pre code{background:none;padding:0}.node-output.markdown a{color:var(--accent)}.node-output.markdown blockquote{margin:4px 0;padding-left:8px;border-left:2px solid var(--border);color:var(--fg-dim)}.node-output.markdown table{border-collapse:collapse;margin:4px 0}.node-output.markdown th,.node-output.markdown td{border:1px solid var(--border);padding:2px 6px}.node-output.markdown img{max-width:100%}.node-output.markdown hr{border:none;border-top:1px solid var(--border);margin:6px 0}.resize-handle{cursor:nwse-resize}.resize-handle:hover path{stroke:var(--fg)}.resize-edge,.resize-corner{fill:transparent;transition:fill .12s ease-out}.resize-edge:hover{fill:var(--accent);fill-opacity:.55}.resize-corner:hover{fill:var(--accent);fill-opacity:.75}.dialog.file-picker{width:640px;min-width:640px}.picker-toolbar{display:flex;align-items:center;gap:6px;padding:4px 0 8px;border-bottom:1px solid var(--border);margin-bottom:8px}.picker-toolbar select{padding:3px 6px}.picker-breadcrumb{color:var(--fg-dim);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;margin-left:4px}.picker-list{display:flex;flex-direction:column;max-height:50vh;overflow:auto;gap:2px}.picker-list.with-thumbs .picker-entry.file{height:52px}.picker-entry{display:flex;align-items:center;gap:8px;padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:3px;text-align:left;color:var(--fg);cursor:pointer}.picker-entry:hover{background:var(--bg-3);border-color:var(--border)}.picker-entry.folder{color:var(--accent)}.picker-entry .entry-icon{font-size:16px;width:24px;display:inline-flex;justify-content:center}.picker-entry .entry-name{flex:1}.toast-stack{position:fixed;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;z-index:2000;pointer-events:none;max-width:340px}.toast{pointer-events:auto;display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-solid);border:1px solid var(--border);border-left:3px solid var(--fg-dim);border-radius:10px;text-align:left;cursor:pointer;font-size:12px;box-shadow:var(--shadow-pop);animation:toastSlideIn .2s ease-out}.toast.toast-info{border-left-color:var(--accent)}.toast.toast-error{border-left-color:var(--red)}.toast.toast-progress{border-left-color:var(--accent);cursor:default}.toast.toast-progress .toast-icon{color:var(--accent)}.toast-bar{display:block;height:4px;margin-top:6px;border-radius:2px;background:var(--bg-3);overflow:hidden}.toast-bar-fill{display:block;height:100%;width:0;border-radius:2px;background:var(--accent);transition:width .2s ease-out}.toast-bar.indeterminate .toast-bar-fill{width:35%;animation:toastProgressSlide 1s ease-in-out infinite}@keyframes toastProgressSlide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.toast-icon{display:inline-flex;flex-shrink:0;color:var(--fg-dim)}.toast.toast-info .toast-icon{color:var(--accent)}.toast.toast-error .toast-icon{color:var(--red)}.toast-message{flex:1;min-width:0;color:var(--fg)}.toast-text{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.toast-close{display:inline-flex;align-items:center;color:var(--fg-dim);cursor:pointer;padding:2px;border-radius:2px}.toast-close:hover{color:var(--fg);background:var(--bg-3)}@keyframes toastSlideIn{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.auth-loading{display:flex;align-items:center;justify-content:center;color:var(--fg-dim)}.login-screen{height:100%;display:flex;align-items:center;justify-content:center;background:var(--canvas-bg)}.login-card{padding:40px 48px;text-align:center;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-node)}.login-card h1{margin:0;font-size:26px;letter-spacing:.4px}.login-sub{margin:0 0 10px;color:var(--fg-dim)}.login-google-btn{min-height:44px}.login-dev{width:100%;border-top:1px solid var(--border);padding-top:16px;margin-top:8px}.login-dev-label{color:var(--fg-dim);font-size:11px;margin-bottom:6px}.login-dev-row{display:flex;gap:6px}.login-dev-row input{flex:1}.login-error{color:var(--red);font-size:12px;max-width:300px;word-break:break-word}.login-hint{color:var(--fg-dim);font-size:11px;margin:4px 0 0}.readonly-chip{color:var(--yellow);border-radius:10px;padding:1px 8px;font-size:11px;background:#f0c6741f}.balance-chip{border-radius:var(--r-ctl);padding:5px 12px;font-size:13px;border:1px solid var(--line);background:var(--field);color:var(--fg);display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}.balance-chip:hover{background:var(--active)}.balance-bolt{display:inline-flex;color:var(--yellow)}.balance-chip.low .balance-bolt{color:var(--red)}.balance-chip.low{color:var(--red);background:#ff6c6b1f}.user-menu-wrap{position:relative}.user-menu-btn{background:none;border:none;padding:0 2px;display:flex;align-items:center}.user-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center}.user-avatar-fallback{background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:13px}.user-menu{position:absolute;right:0;top:30px;z-index:100;min-width:210px;background:var(--surface-solid);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:1px;box-shadow:var(--shadow-pop);border:1px solid var(--border);border-radius:var(--r-pop)}.user-menu button{text-align:left;background:none;border:none;padding:7px 10px;border-radius:6px}.user-menu button:hover{background:var(--active)}.user-menu button.danger{color:var(--red)}.user-menu-header{padding:6px 10px 9px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.07)}.user-menu-name{font-weight:600}.user-menu-email{color:var(--fg-dim);font-size:11px}.low-balance-banner{grid-column:2;display:flex;align-items:center;gap:12px;justify-content:center;background:#ff6c6b1a;color:#ffb3b2;padding:6px 12px;font-size:12px;z-index:5}.canvas-readonly input,.canvas-readonly textarea,.canvas-readonly select{pointer-events:none;opacity:.75}.page{height:100%;overflow-y:auto;background:var(--canvas-bg);background-attachment:fixed}.page-top{display:flex;align-items:center;gap:14px;padding:12px 28px;position:sticky;top:0;z-index:10;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--line)}.page-top h1{margin:0;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.page-top .spacer{flex:1}.page-top-note{color:var(--fg-dim);font-size:12px}.back-btn{background:none;border:none;color:var(--fg-dim);padding:4px 8px;border-radius:6px}.back-btn:before{content:"← "}.back-btn:hover{color:var(--fg);background:var(--bg-3)}.page-body{max-width:760px;margin:0 auto;padding:36px 28px 80px;display:flex;flex-direction:column;gap:8px}.page-body.wide{max-width:920px}.sect{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:26px 0}.sect+.sect{border-top:1px solid var(--line)}.sect-side h2{margin:0 0 6px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;color:var(--fg)}.sect-side h2 svg{color:var(--fg-dim)}.sect-side p{margin:0;color:var(--fg-dim);font-size:12px;line-height:1.55}.sect-main{min-width:0}.sect-actions{margin-top:18px}.role-hint-line b{color:var(--fg);font-weight:500}@media (max-width: 720px){.sect{grid-template-columns:1fr;gap:12px}}.field{display:flex;align-items:center;gap:12px;margin-bottom:12px}.field label{width:170px;flex:none;color:var(--fg-dim);font-size:12px}.field input[type=text],.field input[type=password]{flex:1;max-width:340px;padding:6px 10px}.field .in-num{max-width:90px;flex:none}.field-inline{display:flex;gap:8px;flex:1;align-items:center}.field-inline input{flex:1;max-width:340px;padding:6px 10px}.field-static{font-size:13px}.hint{color:var(--fg-dim);font-size:12px;line-height:1.55;margin:6px 0}.range-switch{display:flex;align-items:center;gap:6px;margin:0 0 18px}.range-switch-label{color:var(--fg-dim);font-size:12px;margin-right:6px}.range-switch button{background:var(--bg-2);border:1px solid rgba(255,255,255,.08);color:var(--fg-dim);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.range-switch button.active{background:var(--bg-3);color:var(--fg);border-color:#ffffff2e}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:18px}.stat-tile{background:var(--bg-2);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px 12px;min-width:0}.stat-tile-label{font-size:11.5px;color:var(--fg-dim)}.stat-tile-value{font-size:22px;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}.stat-tile-hint{font-size:11px;color:var(--fg-dim);margin-top:3px;line-height:1.35}.chart-title{font-size:12.5px;font-weight:600;margin:14px 0 6px}.chart-title .cell-dim{font-weight:400}.chart{position:relative}.chart-svg{width:100%;height:auto;display:block}.chart-grid{stroke:#ffffff12;stroke-width:1}.chart-baseline{stroke:#ffffff2e;stroke-width:1}.chart-axis{fill:var(--fg-dim);font-size:10px}.chart-slot path{transition:opacity .12s}.chart-slot.hover path{opacity:.8}.chart-slot.hover rect{fill:#ffffff08}.chart-tip{position:absolute;top:8px;transform:translate(-50%);background:var(--bg-3);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:6px 9px;font-size:11.5px;pointer-events:none;white-space:nowrap;z-index:2}.chart-tip-day{color:var(--fg-dim);margin-bottom:3px}.chart-tip-row{display:flex;align-items:center;gap:6px}.chart-tip-row strong{font-variant-numeric:tabular-nums}.chart-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;flex:none}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:11.5px;color:var(--fg-dim)}.chart-legend-item{display:inline-flex;align-items:center;gap:6px}.tbl-scroll{overflow-x:auto}.adm-tbl th.num,.adm-tbl td.num{text-align:right;font-variant-numeric:tabular-nums}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 720px){.two-col{grid-template-columns:1fr}}.provider-switch{display:flex;flex-direction:column;gap:8px}.provider-switch .radio-row{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}.provider-switch .radio-row.dim{color:var(--fg-dim);cursor:default}.provider-switch .radio-row code{font-size:11px;color:var(--fg-dim)}.setting-row label{width:150px}.setting-row .field-inline input[type=password],.setting-row .field-inline input[type=text]{flex:1;max-width:340px;padding:6px 10px}.setting-row select{padding:5px 8px}.setting-row .badge.dim{opacity:.55}.setting-row.edited label{color:var(--accent)}.setting-check{display:flex;align-items:center;gap:8px;font-size:13px}.link-btn{background:none;border:0;color:var(--accent);font-size:12px;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:default}.hint a{color:var(--accent);text-decoration:none}.hint a:hover{text-decoration:underline}.primary-btn{background:var(--accent);border:none;color:var(--accent-ink);font-weight:600;padding:7px 16px;border-radius:7px}.primary-btn:hover{background:var(--accent-hover)}.ghost-btn{background:none;border:none;color:var(--fg-dim);padding:5px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:6px}.ghost-btn:hover{color:var(--fg);background:var(--bg-3)}.ghost-btn.danger:hover{color:var(--red);background:#ff6c6b1a}.badge{font-size:10px;padding:1px 7px;border-radius:9px;margin-left:8px;background:#b79cff26;color:var(--accent);vertical-align:1px}.badge.muted{background:var(--bg-3);color:var(--fg-dim)}.tbl{width:100%;border-collapse:collapse;font-size:12.5px}.tbl th{text-align:left;color:var(--fg-dim);font-weight:500;font-size:11px;padding:0 10px 8px 0;border-bottom:1px solid rgba(255,255,255,.08)}.tbl td{padding:9px 10px 9px 0;border-bottom:1px solid rgba(255,255,255,.05)}.tbl tr:last-child td{border-bottom:none}.member-name{font-weight:500}.member-email{color:var(--fg-dim);font-size:11px;margin-top:1px}.cell-right{text-align:right;white-space:nowrap}.cell-actions{text-align:right;white-space:nowrap;width:1%}.cell-dim{color:var(--fg-dim)}.cell-date{white-space:nowrap;width:1%;padding-right:16px}.cell-kind{color:var(--fg)}.cell-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cell-num.pos{color:var(--green)}.row-pending .member-name{color:var(--fg-dim)}.edit-tbl input{width:100%;padding:5px 8px}.edit-tbl .in-num{max-width:90px}.edit-tbl .in-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.edit-tbl td{padding-right:8px}.invite-form{display:flex;gap:8px;margin-top:14px}.invite-form input{flex:1;max-width:280px;padding:6px 10px}.balance-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 0 30px}.balance-hero-label{color:var(--fg-dim);font-size:11px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.balance-hero-value{font-size:40px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.balance-hero-unit{font-size:14px;font-weight:400;color:var(--fg-dim);margin-left:10px}.balance-hero-sub{color:var(--fg-dim);font-size:12px;margin-top:10px}.balance-hero-note{color:var(--fg-dim);font-size:12px;max-width:260px;text-align:right}.tier-block{margin-bottom:34px}.tier-head{display:flex;gap:14px;margin-bottom:18px;align-items:center}.tier-head-icon{flex:none;width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#b79cff1f;color:var(--accent)}.tier-head h2{margin:0 0 4px;font-size:16px;line-height:1.3}.tier-head p{margin:0;color:var(--fg-dim);font-size:12.5px;line-height:1.55;max-width:620px}.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}.tiers.plans{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 900px){.tiers,.tiers.plans{grid-template-columns:1fr}}.tier{position:relative;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px 24px 22px}.tier.featured{border-color:#b79cff80;background:linear-gradient(180deg,#b79cff17,#b79cff05);box-shadow:0 14px 36px #0000004d}.tier-badge{position:absolute;top:-10px;left:24px;background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;letter-spacing:.3px;padding:3px 10px;border-radius:10px;white-space:nowrap}.tier-name{color:var(--fg-dim);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.9px}.tier-price{display:flex;align-items:baseline;gap:2px;font-size:38px;font-weight:700;line-height:1.1;margin-top:10px;font-variant-numeric:tabular-nums}.tier-price-cur{font-size:22px;font-weight:600;color:var(--fg-dim)}.tier-price-per{font-size:13px;font-weight:400;color:var(--fg-dim);margin-left:4px}.tier-sub{color:var(--fg-dim);font-size:11.5px;margin-top:4px}.tier-features{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:12.5px;line-height:1.4}.tier-features li{display:flex;align-items:flex-start;gap:8px}.tier-features svg{flex:none;margin-top:1px;color:var(--green)}.tier-cta{margin-top:auto;padding-top:0;height:44px;margin-block-start:22px;background:var(--bg-3);border:1px solid var(--border);border-radius:9px;color:var(--fg);font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.tier-cta:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tier-cta.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.tier-cta.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.tier-cta:disabled{opacity:.5;cursor:default}.tier-note{color:var(--fg-dim);font-size:11.5px;margin:14px 0 0;line-height:1.55;max-width:620px}.byok-state{display:flex;gap:10px;align-items:flex-start;padding:6px 0;color:var(--green)}.byok-state-title{font-weight:600;font-size:13px;color:var(--fg)}.byok-state-sub{color:var(--fg-dim);font-size:12px;margin-top:3px}.byok-state-sub a{color:var(--accent);text-decoration:none}.history{padding-top:34px}.history-toggle{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:none;border-bottom:1px solid var(--border);padding:0 2px 10px;color:var(--fg);text-align:left;cursor:pointer}.history-toggle:hover{color:var(--accent)}.history-toggle svg{flex:none;color:var(--fg-dim);transition:transform .15s ease-out}.history.open .history-toggle svg{transform:rotate(180deg)}.history-toggle h2{font-size:13px;margin:0}.history-count{margin-left:auto;color:var(--fg-dim);font-size:12px}.history .tbl{margin-top:6px}.tokens-warning p{line-height:1.55}.dialog-note{color:var(--fg-dim);font-size:11px;margin:10px 0 0}.lang-toggle{display:flex;align-items:center;gap:6px;color:var(--fg-dim);margin-top:4px}.lang-toggle button{background:none;border:none;color:var(--fg-dim);padding:2px 6px;font-size:11px;letter-spacing:.5px;border-radius:4px}.lang-toggle button:hover{color:var(--fg)}.lang-toggle button.active{color:var(--fg);background:var(--bg-3)}.page-top .tabs{display:flex;gap:4px;margin-left:10px}.page-top .tabs button{background:none;border:none;color:var(--fg-dim);padding:5px 12px;border-radius:7px;font-size:12.5px}.page-top .tabs button:hover{color:var(--fg)}.page-top .tabs button.active{color:var(--fg);background:var(--bg-3)}.admin-proj{margin:2px 0}.admin-proj-btn{background:none;border:none;padding:3px 6px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;color:var(--fg)}.admin-proj-btn:hover{background:var(--bg-3)}.admin-proj-caret{width:0;height:0;border-left:4px solid var(--fg-dim);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s}.admin-proj-caret.open{transform:rotate(90deg)}.admin-proj-count{font-size:11px}.admin-pipelines{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin:2px 0 6px 20px}.admin-pipeline-link{background:none;border:none;color:var(--accent);padding:2px 6px;border-radius:5px;font-size:12px}.admin-pipeline-link:hover{background:var(--bg-3);text-decoration:underline}.admin-view-banner{grid-column:2;display:flex;align-items:center;gap:12px;justify-content:center;background:#b79cff1a;color:#a8cdff;padding:6px 12px;font-size:12px;z-index:5}.share-banner{grid-column:2;display:flex;align-items:center;justify-content:center;background:#4fd1c51a;color:var(--accent-4);padding:6px 12px;font-size:12px;z-index:5}.share-invalid{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:40px}.share-invalid h2{margin:0;font-size:18px}.share-invalid p{margin:0;color:var(--fg-dim);font-size:13px;max-width:420px}.share-invalid-detail{font-size:11px;opacity:.7}.ghost-btn.danger{color:var(--red)}.node-body input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:14px;background:transparent;cursor:pointer;margin:0}.node-body input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:#ffffff24}.node-body input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;margin-top:-4.5px;border-radius:50%;background:var(--fg);border:none;box-shadow:0 1px 3px #00000080;transition:transform .1s ease-out}.node-body input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}.node-body input[type=range]:active::-webkit-slider-thumb{background:var(--accent)}.node-body input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:#ffffff24}.node-body input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--fg);border:none}.node-body input[type=range]:disabled{opacity:.45;cursor:default}.node-body input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:18px;padding:0;border:1px solid var(--line);border-radius:5px;background:var(--field);cursor:pointer;overflow:hidden}.node-body input[type=color]:hover{border-color:var(--accent)}.node-body input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.node-body input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.node-body input[type=color]::-moz-color-swatch{border:none;border-radius:2px}.node-body input[type=checkbox],.field input[type=checkbox],.dialog input[type=checkbox],.page input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:15px;height:15px;margin:0;border:1.5px solid var(--fg-3);border-radius:4px;background:transparent;cursor:pointer;position:relative;vertical-align:middle}.node-body input[type=checkbox]:hover,.field input[type=checkbox]:hover,.dialog input[type=checkbox]:hover,.page input[type=checkbox]:hover{border-color:var(--accent)}.node-body input[type=checkbox]:checked,.field input[type=checkbox]:checked,.dialog input[type=checkbox]:checked,.page input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.node-body input[type=checkbox]:checked:after,.field input[type=checkbox]:checked:after,.dialog input[type=checkbox]:checked:after,.page input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:3.5px;height:7px;border:solid var(--accent-ink);border-width:0 1.8px 1.8px 0;transform:rotate(45deg)}.node-body input[type=number]{background:var(--field);color:var(--fg);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 5px;font:10.5px var(--font-mono)}.node-body input[type=number]:focus,.node-body input[type=text]:focus,.node-body select:focus,.node-body textarea:focus{outline:none;border-color:var(--accent)}.tr-block{display:flex;flex-direction:column;gap:4px}.tr-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--fg-dim);cursor:pointer}.tr-modes{display:flex;gap:4px}.tr-modes button{flex:1;padding:3px 4px;font-size:10.5px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--field);color:var(--fg-dim);cursor:pointer}.tr-modes button:hover{color:var(--fg);background:var(--active)}.tr-modes button.on{color:var(--fg);border-color:transparent;background:var(--active)}.tr-chroma{display:flex;flex-direction:column;gap:3px}.tr-color{display:flex;align-items:center;gap:4px}.tr-color input[type=color]{width:26px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.tr-swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--border);cursor:pointer;padding:0}.tr-swatch.on{border-color:var(--fg);box-shadow:0 0 0 1px var(--accent)}.tr-slider{display:grid;grid-template-columns:34px 1fr 26px;gap:5px;align-items:center}.tr-slider-label{color:var(--fg-dim);font-size:10px}.tr-slider-val{color:var(--fg-dim);font-size:10px;text-align:right}.tr-slider input[type=range]{width:100%}.fx-body{gap:3px}.fx-slider{display:grid;grid-template-columns:40px 1fr 38px;gap:5px;align-items:center}.fx-color{display:grid;grid-template-columns:40px 26px 1fr;gap:5px;align-items:center}.fx-color input[type=color]{width:26px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.fx-label{color:var(--fg-dim);font-size:10px}.fx-val{color:var(--fg-dim);font-size:10px;text-align:right}.fx-color .fx-val{text-align:left}.fx-slider input[type=range]{width:100%}.fx-toggle{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--fg-dim);cursor:pointer}.fx-flags{display:flex;gap:12px}.fx-seg{display:flex;gap:3px}.fx-seg button{flex:1;padding:2px 4px;font-size:10px;border-radius:3px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer}.fx-seg button:hover{color:var(--fg);border-color:var(--accent)}.fx-seg button.on{color:var(--fg);border-color:var(--accent);background:var(--bg-3)}.cmp-body{gap:5px}.cmp-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cmp-size,.cmp-zoom,.cmp-bg{display:flex;align-items:center;gap:4px}.cmp-size label{display:flex;align-items:center;gap:3px;color:var(--fg-dim);font-size:10px}.cmp-x{color:var(--fg-dim)}.cmp-toolbar input[type=number]{width:52px;font-size:11px;padding:2px 4px;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:3px}.cmp-zoom{margin-left:auto}.cmp-zoom button{min-width:22px;height:20px;padding:0 5px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer;font-size:11px}.cmp-zoom button:hover{color:var(--fg);border-color:var(--accent)}.cmp-flip{display:flex;align-items:center;gap:2px}.cmp-flip button{width:24px;height:20px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.cmp-flip button:hover{color:var(--fg);border-color:var(--accent)}.cmp-flip button.on{color:var(--accent);border-color:var(--accent)}.cmp-bg{font-size:10px;color:var(--fg-dim);cursor:pointer}.cmp-bg input[type=color]{width:20px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer}.cmp-main{display:flex;flex:1;min-height:0;gap:6px}.cmp-viewport{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--field);border:1px solid var(--border);border-radius:3px;touch-action:none;-webkit-user-select:none;user-select:none;cursor:default}.cmp-stage{position:absolute;box-shadow:0 0 0 1px var(--border),0 4px 22px #00000073;outline:1px dashed rgba(255,255,255,.18);outline-offset:-1px}.cmp-layer{position:absolute;transform-origin:center center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;cursor:move;touch-action:none;display:block;object-fit:fill}.cmp-layer.placeholder{display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--border);color:var(--fg-dim);font-size:10px;background:#ffffff08;border-radius:2px}.cmp-layer.placeholder.selected{border-color:var(--accent)}.cmp-frame{position:absolute;transform-origin:center center;box-sizing:border-box;border:1px solid var(--accent);cursor:move;touch-action:none}.cmp-handle{position:absolute;width:10px;height:10px;box-sizing:border-box;background:#fff;border:1px solid var(--accent);border-radius:2px;transform:translate(-50%,-50%);touch-action:none;pointer-events:auto}.cmp-handle.ch-nw,.cmp-handle.ch-se{cursor:nwse-resize}.cmp-handle.ch-ne,.cmp-handle.ch-sw{cursor:nesw-resize}.cmp-handle.ch-n,.cmp-handle.ch-s{cursor:ns-resize}.cmp-handle.ch-e,.cmp-handle.ch-w{cursor:ew-resize}.cmp-rot-line{position:absolute;left:50%;top:-22px;width:1px;height:22px;background:var(--accent);transform:translate(-50%);pointer-events:none}.cmp-rot-handle{position:absolute;left:50%;top:0;width:12px;height:12px;background:#fff;border:1px solid var(--accent);border-radius:50%;transform:translate(-50%,-22px);cursor:grab;touch-action:none}.cmp-size-badge{position:absolute;left:0;bottom:-18px;white-space:nowrap;font-size:9px;color:var(--fg);background:#0009;padding:1px 4px;border-radius:3px;pointer-events:none}.cmp-hint{position:absolute;left:6px;bottom:4px;right:6px;font-size:9px;color:var(--fg-dim);opacity:.7;pointer-events:none;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.7)}.cmp-layer.cmp-nine{background:none}.cmp-slice-guide{position:absolute;pointer-events:none}.cmp-slice-guide.v{top:0;bottom:0;width:0;border-left:1px dashed var(--yellow);opacity:.75}.cmp-slice-guide.h{left:0;right:0;height:0;border-top:1px dashed var(--yellow);opacity:.75}.cmp-splitter{flex:none;width:6px;margin:0 -2px;cursor:ew-resize;border-radius:3px;background:transparent;touch-action:none}.cmp-splitter:hover{background:var(--accent);opacity:.45}.cmp-layers{width:230px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--bg-2);border:1px solid var(--border);border-radius:3px}.cmp-layers-head{padding:4px 8px;font-size:10px;color:var(--fg-dim);border-bottom:1px solid var(--border);flex:none}.cmp-layers-list{flex:1;min-height:0;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:3px}.cmp-empty{color:var(--fg-dim);font-size:10px;padding:6px;text-align:center}.cmp-layer-row{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid transparent;border-radius:3px;cursor:pointer}.cmp-layer-row:hover{background:var(--bg-3)}.cmp-layer-row.selected{border-color:var(--accent);background:var(--bg-3)}.cmp-disclosure{flex:none;width:14px;height:20px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;transition:transform .12s ease-out,color .12s ease-out}.cmp-disclosure:hover{color:var(--fg)}.cmp-disclosure.open{transform:rotate(90deg);color:var(--fg)}.cmp-eye{flex:none;width:20px;height:20px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer}.cmp-eye:hover{color:var(--fg)}.cmp-thumb{flex:none;width:26px;height:26px;border-radius:3px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 8px 8px;border:1px solid var(--border)}.cmp-thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}.cmp-thumb-empty{color:var(--fg-dim);font-size:9px}.cmp-name{flex:1;min-width:0;font-size:10px;padding:2px 4px;background:var(--field);color:var(--fg);border:1px solid var(--border);border-radius:3px}.cmp-row-actions{display:flex;align-items:center;gap:1px;flex:none}.cmp-row-actions button{width:18px;height:20px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;border-radius:3px}.cmp-row-actions button:hover:not(:disabled){color:var(--fg);background:var(--bg-2)}.cmp-row-actions button:disabled{opacity:.3;cursor:default}.cmp-row-actions button.on{color:var(--accent)}.cmp-row-actions .cmp-del:hover{color:var(--red)}.cmp-layer-item{display:flex;flex-direction:column}.cmp-layer-item.selected>.cmp-layer-row{border-color:var(--accent);background:var(--bg-3)}.cmp-dup-tag{flex:none;font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--bg);background:var(--fg-dim);border-radius:2px;padding:0 3px}.cmp-layer-settings{display:flex;flex-direction:column;gap:4px;margin:2px 0 4px 24px;padding:5px 6px;background:var(--field);border:1px solid var(--border);border-radius:3px}.cmp-size-row{display:grid;grid-template-columns:44px 1fr 20px 1fr auto;gap:4px;align-items:center;font-size:10px;color:var(--fg-dim)}.cmp-size-row input[type=number]{width:100%;min-width:0}.cmp-size-lock{width:20px;height:18px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-2);border:1px solid var(--border);border-radius:3px;color:var(--fg-dim);cursor:pointer}.cmp-size-lock:hover{color:var(--fg);border-color:var(--accent)}.cmp-size-lock.on{color:var(--accent);border-color:var(--accent)}.cmp-set-row{display:grid;grid-template-columns:44px 1fr 30px;gap:5px;align-items:center;font-size:10px;color:var(--fg-dim)}.cmp-set-row input[type=range]{width:100%}.cmp-set-val{text-align:right}.cmp-set-check{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--fg-dim);cursor:pointer}.cmp-set-auto{margin-left:auto;font-size:9px;padding:1px 5px;border-radius:3px;background:var(--bg-3);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer}.cmp-set-auto:hover{color:var(--fg);border-color:var(--accent)}.cmp-slice-editor{position:relative;height:116px;border:1px solid var(--border);border-radius:3px;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 10px 10px;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.cmp-slice-editor.empty{display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:10px;background:var(--bg-2)}.cmp-slice-editor img{position:absolute;display:block;image-rendering:auto;pointer-events:none}.cmp-slice-center{position:absolute;pointer-events:none;background:#b79cff1a;outline:1px dashed rgba(255,255,255,.55);outline-offset:-1px}.cmp-guide{position:absolute}.cmp-guide:before{content:"";position:absolute;background:var(--yellow);box-shadow:0 0 0 1px #000000a6}.cmp-guide:after{content:"";position:absolute;width:7px;height:7px;border-radius:2px;background:var(--yellow);border:1px solid rgba(0,0,0,.65)}.cmp-guide.v{width:11px;margin-left:-5px;cursor:ew-resize}.cmp-guide.v:before{left:5px;top:0;bottom:0;width:1px}.cmp-guide.v:after{left:2px;top:50%;margin-top:-4px}.cmp-guide.h{height:11px;margin-top:-5px;cursor:ns-resize}.cmp-guide.h:before{top:5px;left:0;right:0;height:1px}.cmp-guide.h:after{top:2px;left:50%;margin-left:-4px}.cmp-guide:hover:before,.cmp-guide:hover:after{background:#fff}.cmp-slice-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.cmp-slice-grid label{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--fg-dim)}.cmp-slice-grid input{width:100%;min-width:0;font-size:10px;padding:1px 3px;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:3px}.cmp-set-hint{font-size:9px;color:var(--fg-dim);opacity:.8}.cmp-dl{display:flex;align-items:center;gap:3px}.cmp-dl button{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 6px;font-size:10px;border-radius:3px;background:var(--bg-3);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer}.cmp-dl button:hover:not(:disabled){color:var(--fg);border-color:var(--accent)}.cmp-dl button:disabled{opacity:.4;cursor:default}.page-body.wide:has(.adm-console){max-width:1320px}.adm-console{display:grid;grid-template-columns:288px 1fr;gap:20px;align-items:start;padding:20px 0}.adm-users{position:sticky;top:0;display:flex;flex-direction:column;gap:8px;min-width:0}.adm-search{width:100%}.adm-user-list{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 190px);overflow-y:auto}.adm-user{display:flex;flex-direction:column;gap:1px;text-align:left;padding:7px 9px;background:transparent;border:1px solid transparent;border-radius:6px}.adm-user:hover{background:var(--bg-2)}.adm-user.active{background:var(--bg-2);border-color:var(--accent)}.adm-user-top{display:flex;align-items:baseline;gap:8px}.adm-user-name{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-user-bal{font-variant-numeric:tabular-nums;font-size:12px;color:var(--green)}.adm-user-bal.neg{color:var(--red)}.adm-user-sub{color:var(--fg-dim);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-user-meta{color:var(--fg-dim);font-size:10.5px;opacity:.8}.adm-detail{min-width:0}.adm-user-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.07)}.adm-user-head h2{margin:0;font-size:17px}.adm-user-head p{margin:3px 0 0;font-size:12px}.adm-avatar{width:38px;height:38px;border-radius:50%}.adm-project{border-bottom:1px solid rgba(255,255,255,.06)}.adm-project-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 6px;background:none;border:none;border-radius:6px;color:var(--fg);text-align:left}.adm-project-head:hover{background:var(--bg-2)}.adm-project-name{font-weight:500}.adm-project-bal{font-variant-numeric:tabular-nums;color:var(--green)}.adm-project-bal.neg{color:var(--red)}.adm-panel{padding:4px 6px 20px}.adm-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.adm-stat{display:flex;flex-direction:column;gap:2px;min-width:96px;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:7px}.adm-stat label{color:var(--fg-dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}.adm-stat b{font-size:15px;font-variant-numeric:tabular-nums}.adm-stat.strong{border-color:var(--accent)}.adm-stat.strong b{font-size:19px;color:var(--green)}.adm-stat.strong b.neg{color:var(--red)}.adm-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:12px}.adm-ctl{display:flex;align-items:center;gap:6px}.adm-ctl label{color:var(--fg-dim);font-size:11px}.adm-ctl .in-num{width:92px}.adm-note{margin:0 0 12px;color:var(--fg-dim);font-size:11.5px}.adm-tabs{display:flex;gap:2px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.07)}.adm-tabs button{display:inline-flex;align-items:center;gap:6px;background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:7px 11px;color:var(--fg-dim);font-size:12.5px}.adm-tabs button:hover{color:var(--fg);background:transparent}.adm-tabs button.active{color:var(--fg);border-bottom-color:var(--accent)}.adm-tab-count{font-size:10px;color:var(--fg-dim);background:var(--bg-3);border-radius:8px;padding:1px 6px}.adm-tbl{margin-top:4px}.adm-tbl td,.adm-tbl th{padding-right:14px}.ghost-btn.icon{padding:3px 6px}.badge.err{background:#ff6c6b29;color:var(--red)}.badge.dim{background:var(--field);color:var(--fg-3)}.adm-tbl tr.adm-unsaved td:first-child{color:var(--fg-dim)}.badge.pay-paid{background:#5ad17a29;color:var(--green)}.badge.pay-pending{background:var(--bg-3);color:var(--yellow)}.badge.pay-failed{background:#ff6c6b29;color:var(--red)}.cell-num.neg,.adm-stat b.neg,.adm-user-bal.neg{color:var(--red)}.sidebar-icon-btn.log{color:var(--fg-dim)}.sidebar-icon-btn.log:hover{color:var(--accent);border-color:var(--accent)}.dialog.ai-log-dialog{width:min(1180px,96vw);max-width:1180px;height:86vh;display:flex;flex-direction:column;padding:0;text-align:left}.ai-log-top{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.ai-log-top h2{margin:0;font-size:15px}.ai-scope{font-size:11.5px;color:var(--accent);background:#b79cff1f;border-radius:10px;padding:2px 9px}.ai-toggle{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--fg-dim)}.ai-totals{display:flex;flex-wrap:wrap;gap:18px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--field);font-size:12px;color:var(--fg-dim)}.ai-totals b{color:var(--fg);font-variant-numeric:tabular-nums}.ai-totals .ai-errors b{color:var(--red)}.ai-log-body{display:grid;grid-template-columns:330px 1fr;flex:1;min-height:0}.ai-list{border-right:1px solid var(--border);overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.ai-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;background:transparent;border:1px solid transparent;border-radius:6px;text-align:left}.ai-row:hover{background:var(--bg-3)}.ai-row.active{background:var(--bg-3);border-color:var(--accent)}.ai-row.failed .ai-row-icon{color:var(--red)}.ai-row-icon{color:var(--fg-dim);display:inline-flex;flex:none}.ai-row-main{flex:1;min-width:0;display:flex;flex-direction:column}.ai-row-model{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-row-sub{font-size:10.5px;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-row-right{display:flex;flex-direction:column;align-items:flex-end;flex:none}.ai-row-tokens{font-size:12px;font-variant-numeric:tabular-nums}.ai-row-time{font-size:10px;color:var(--fg-dim);white-space:nowrap}.ai-detail{overflow-y:auto;padding:14px 16px;min-width:0}.ai-detail-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px}.ai-detail-head .spacer{flex:1}.ai-status{font-size:10.5px;border-radius:9px;padding:2px 8px;text-transform:uppercase;letter-spacing:.4px}.ai-status.ok{background:#5ad17a29;color:var(--green)}.ai-status.error{background:#ff6c6b29;color:var(--red)}.ai-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px;margin-bottom:16px}.ai-meta-grid>div{display:flex;flex-direction:column;gap:1px;min-width:0}.ai-meta-grid label{color:var(--fg-dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}.ai-meta-grid span{font-size:12.5px;overflow:hidden;text-overflow:ellipsis}.ai-block{margin-bottom:16px}.ai-block h4{margin:0 0 6px;font-size:11px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.5px}.ai-pre{margin:0;padding:9px 11px;max-height:260px;overflow:auto;background:var(--field);border:1px solid var(--border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ai-pre.error{border-color:#ff6c6b66;color:#ffb3b3}.ai-params{display:flex;flex-wrap:wrap;gap:6px}.ai-param{font-size:11px;background:var(--field);border:1px solid var(--border);border-radius:5px;padding:2px 8px}.ai-param b{color:var(--fg-dim);font-weight:500;margin-right:6px}.ai-assets{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.ai-asset{display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--field);border:1px solid var(--border);border-radius:7px}.ai-asset img{max-width:260px;max-height:260px;border-radius:4px;display:block}.ai-asset video{max-width:320px;border-radius:4px;display:block}.ai-asset audio{width:280px}.ai-asset-meta{display:flex;gap:8px;font-size:10.5px;color:var(--fg-dim)}.ai-asset-meta a,.ai-asset-link{color:var(--accent)}.adm-user-stats{margin:12px 0 4px}.adm-user-stats .adm-stat{min-width:84px;padding:6px 11px}.adm-user-stats .adm-stat b{font-size:14px}.project-bar{position:relative;display:flex;align-items:center;gap:4px;padding:6px 6px 7px;margin-bottom:2px;border-bottom:1px solid var(--border)}.project-bar-btn{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:5px 8px;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--fg);text-align:left}.project-bar-btn:hover,.project-bar-btn.open{background:var(--bg-3);border-color:var(--border)}.project-bar-btn svg{flex:none;color:var(--fg-dim)}.project-bar-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-bar-name.shared{padding:5px 8px;color:var(--fg-dim)}.project-bar-role{margin-left:auto;flex:none;font-size:10px;color:var(--fg-dim);text-transform:lowercase}.project-bar-settings{flex:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--fg-dim)}.project-bar-settings:hover{background:var(--bg-3);border-color:var(--border);color:var(--fg)}.project-menu{position:absolute;top:100%;left:6px;right:6px;z-index:60;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-pop);padding:4px 0;box-shadow:var(--shadow-pop);max-height:60vh;overflow-y:auto}.project-menu button{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:transparent;border:none;border-radius:0;color:var(--fg);text-align:left;font-size:12px}.project-menu button:hover{background:var(--active)}.project-menu button.current{color:var(--accent)}.project-menu-check{width:14px;flex:none;display:inline-flex}.project-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-menu-role{margin-left:auto;font-size:10px;color:var(--fg-dim)}.project-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.prompt-label{font-size:11px;color:var(--fg-dim);margin-bottom:4px}.prompt-input{width:100%;font-size:13px;padding:7px 9px}.prompt-input:focus{outline:none;border-color:var(--accent)}.adm-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:5px;background:var(--bg-2);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.adm-toggle:hover{border-color:var(--accent)}.adm-toggle input{accent-color:var(--accent);cursor:pointer;margin:0}.adm-toggle:has(input:checked){color:var(--green);border-color:var(--green)}.fb-dialog{width:min(620px,94vw);display:flex;flex-direction:column;max-height:86vh;text-align:left}.fb-head{display:flex;align-items:center;gap:8px}.fb-head h2{margin:0;flex:1}.fb-close{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--fg-dim);border-radius:4px}.fb-close:hover{background:var(--bg-3);color:var(--fg)}.fb-lead{margin:6px 0 4px;font-size:12px;color:var(--fg-dim);line-height:1.45}.fb-telegram{margin:0 0 10px;font-size:12px;color:var(--fg-dim)}.fb-telegram a{color:var(--accent);text-decoration:none}.fb-telegram a:hover{text-decoration:underline}.fb-messages{flex:1;min-height:160px;max-height:46vh;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:var(--field);padding:8px;display:flex;flex-direction:column;gap:8px}.fb-empty{color:var(--fg-dim);font-size:12px;padding:10px 4px}.fb-msg{align-self:flex-start;max-width:86%;background:var(--bg-2);border:1px solid var(--border);border-radius:8px 8px 8px 2px;padding:6px 9px}.fb-msg.from-admin{align-self:flex-end;background:#b79cff1a;border-color:#b79cff59;border-radius:8px 8px 2px}.fb-msg-head{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.fb-msg-author{font-weight:600;font-size:11px}.fb-msg-time{color:var(--fg-dim);font-size:10px}.fb-msg-text{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.4}.fb-msg-shots{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.fb-msg-shots img{max-width:150px;max-height:110px;border-radius:4px;border:1px solid var(--border);display:block}.fb-msg-shots a:hover img{border-color:var(--accent)}.fb-composer{margin-top:10px}.fb-composer textarea{width:100%;min-height:62px;max-height:160px;font-size:12px}.fb-composer-row{display:flex;align-items:center;gap:8px;margin-top:6px}.fb-hint{margin-left:auto;color:var(--fg-dim);font-size:10px}.fb-shots{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.fb-shot{position:relative}.fb-shot img{max-width:96px;max-height:72px;border-radius:4px;border:1px solid var(--border);display:block}.fb-shot-del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim)}.fb-shot-del:hover{color:var(--red);border-color:var(--red)}.editor-toolbar .fb-btn{position:relative;display:inline-flex;align-items:center;gap:7px;width:auto;height:30px;flex:none;padding:0 12px;white-space:nowrap}.editor-toolbar .fb-btn-label{font-size:13px}.editor-toolbar .fb-btn.has-unread{color:var(--accent);border-color:var(--accent)}.fb-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:9px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--bg)}.fb-admin .adm-user-detail{display:flex;flex-direction:column}.fb-admin .fb-messages{max-height:none}.fb-unread{margin-left:auto;flex:none;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center}.help-btn{gap:7px}.help-btn-label{font-size:13px}.help-block{align-items:flex-start}.help-block-body{flex:1;min-width:0}.help-shot{flex:none;display:block;line-height:0}.help-shot img{width:190px;border-radius:5px;border:1px solid var(--border);background:var(--field);display:block}.help-shot:hover img{border-color:var(--accent)}.help-figure{margin:10px 0 6px}.help-figure img{width:100%;border-radius:6px;border:1px solid var(--border);display:block}.help-figure a:hover img{border-color:var(--accent)}.help-figure figcaption{margin-top:5px;font-size:11px;color:var(--fg-dim);line-height:1.4}@media (max-width: 720px){.help-block{flex-wrap:wrap}.help-shot img{width:100%}}.demo-root{height:100%;display:flex;flex-direction:column;position:relative;background:var(--bg)}.demo-topbar{position:absolute;top:10px;left:10px;right:10px;z-index:30;display:flex;align-items:center;gap:12px;padding:7px 10px 7px 14px;background:color-mix(in srgb,var(--bg-2) 92%,transparent);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 18px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.demo-brand{display:flex;align-items:baseline;gap:12px;min-width:0}.demo-logo{font-size:16px;font-weight:600;letter-spacing:.3px}.demo-title{color:var(--fg-dim);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-lang button{background:none;border:none;color:var(--fg-dim);cursor:pointer;padding:0 2px}.demo-lang button.active{color:var(--fg)}.demo-signin{padding:7px 18px;font-size:13px}.demo-canvas{flex:1;min-height:0;display:flex}.demo-canvas>.canvas-host{flex:1}.demo-script{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:14px;width:min(760px,94vw);padding:9px 16px;background:color-mix(in srgb,var(--bg-2) 92%,transparent);border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 22px #0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.demo-dots{display:flex;gap:6px;flex-shrink:0}.demo-dot{width:9px;height:9px;padding:0;border-radius:50%;background:var(--bg-3);border:1px solid var(--border);cursor:pointer}.demo-dot.done{background:var(--accent-4, #4fd1c5);border-color:transparent}.demo-dot.active{background:var(--accent);border-color:transparent;transform:scale(1.25)}.demo-script-text{flex:1;min-width:0}.demo-caption{font-size:13px;color:var(--fg);line-height:1.4}.demo-subtle{margin-top:2px;font-size:11px;line-height:1.35;color:var(--fg-dim)}.demo-login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#080a0eb3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.demo-login-card{position:relative;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #0000008c}.demo-login-card .login-screen{height:auto;background:none}.demo-static-text{flex:1;min-height:0;overflow:auto;padding:8px 10px;font-size:13px;line-height:1.5;background:var(--field);border:1px solid var(--border);border-radius:6px;white-space:pre-wrap}.demo-phrases{display:flex;flex-direction:column;gap:8px}.demo-phrase-hint{font-size:11px;color:var(--fg-dim)}.demo-chips{display:flex;flex-wrap:wrap;gap:6px}.demo-chip{padding:5px 11px;font-size:12px;border-radius:999px;background:var(--bg-3);border:1px solid var(--border);color:var(--fg);cursor:pointer}.demo-chip:hover{border-color:var(--accent)}.demo-chip.picked{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.demo-composed{margin-top:auto;padding:8px 10px;min-height:40px;font-size:12.5px;line-height:1.45;background:var(--field);border:1px dashed var(--border);border-radius:6px}.demo-composed-lead,.demo-composed-empty{color:var(--fg-dim)}.demo-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.demo-cta-title{font-size:15px;font-weight:600}.demo-cta-sub{font-size:12px;color:var(--fg-dim);line-height:1.45}.demo-cta-btn{margin-top:4px;padding:9px 22px;font-size:13px}.demo-cta-note{font-size:11px;color:var(--fg-dim)}.demo-edit-body{display:flex;flex-direction:column;gap:7px;overflow:auto}.demo-field{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--fg-dim)}.demo-field.grow{flex:1;min-height:0}.demo-field.grow textarea{flex:1;min-height:54px}.demo-edit-banner{background:color-mix(in srgb,var(--accent-3, #c792ea) 22%,var(--bg-2))}.demo-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:4px}.demo-steps select{max-width:230px}.demo-steps .demo-warm{color:var(--green, #5ad17a);margin-left:6px;vertical-align:middle}.demo-steps .demo-cold{color:var(--yellow);margin-left:6px;vertical-align:middle}.demo-next{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-left:4px;padding:8px 16px;font-size:13px;font-weight:600;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:999px;cursor:pointer;box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent);animation:demoNextPulse 2.4s ease-out infinite}.demo-next:hover{filter:brightness(1.12);animation:none}@keyframes demoNextPulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}.node-demo-flag{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 3px;font-size:10.5px;line-height:1.5;color:var(--yellow);background:var(--bg-2);border:1px solid color-mix(in srgb,var(--yellow) 55%,var(--border));border-radius:999px;white-space:nowrap}.node-demo-flag.ok{color:var(--green, #5ad17a);border-color:color-mix(in srgb,var(--green, #5ad17a) 55%,var(--border))}.node-demo-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.node-demo-clear{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin:0 -3px 0 1px;padding:0;background:transparent;border:none;border-radius:50%;color:inherit;opacity:.65;cursor:pointer}.node-demo-clear:hover{opacity:1;background:color-mix(in srgb,currentColor 22%,transparent)}.demo-warn{margin-bottom:12px;padding:9px 12px;font-size:12px;line-height:1.45;color:var(--yellow);background:color-mix(in srgb,var(--yellow) 10%,transparent);border:1px solid color-mix(in srgb,var(--yellow) 40%,var(--border));border-radius:6px}.demo-subtle.live-error{color:var(--yellow)}.sect-main .field select+.ghost-btn{margin-left:8px}.public-page{background:var(--bg)}.public-page .page-top{gap:16px}.public-brand{color:var(--fg);font-weight:600;text-decoration:none;font-size:14px}.public-nav{display:flex;gap:4px;flex-wrap:wrap}.public-nav a{color:var(--fg-dim);text-decoration:none;font-size:12.5px;padding:5px 10px;border-radius:7px}.public-nav a:hover{color:var(--fg);background:var(--active)}.public-lang{background:var(--field);border-color:var(--line);font-size:12px}.legal{max-width:720px;margin:0 auto;padding:8px 0 40px}.legal h1{font-size:26px;margin:0 0 6px;letter-spacing:-.2px}.legal-date{color:var(--fg-dim);font-size:12px;margin:0 0 22px}.legal-intro{font-size:14.5px;line-height:1.65;color:var(--fg);margin:0 0 28px}.legal section{margin-bottom:26px}.legal h2{font-size:14px;margin:0 0 10px;font-weight:600;display:flex;align-items:center;gap:8px}.legal h2 svg{color:var(--fg-dim)}.legal p{font-size:13.5px;line-height:1.7;color:var(--fg-dim);margin:0 0 10px}.legal p:last-child{margin-bottom:0}.legal-item{padding-left:16px;position:relative}.legal-item:before{content:"";position:absolute;left:2px;top:10px;width:4px;height:4px;border-radius:50%;background:var(--border)}.legal a{color:var(--accent);text-decoration:none}.legal a:hover{text-decoration:underline}.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0 12px}.price-card{background:var(--bg-2);border-radius:12px;padding:16px 14px;text-align:center}.price-card-name{color:var(--fg-dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.7px}.price-card-amount{font-size:24px;font-weight:700;margin:6px 0 2px}.price-card-sub{color:var(--fg-dim);font-size:11.5px}.public-footer{max-width:720px;margin:0 auto;padding:24px 0 60px;border-top:1px solid rgba(255,255,255,.07)}.public-footer-links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px}.public-footer-links a{color:var(--fg-dim);font-size:12.5px;text-decoration:none}.public-footer-links a:hover{color:var(--fg);text-decoration:underline}.public-footer-note{color:var(--fg-dim);font-size:11.5px}.public-footer-note a{color:var(--fg-dim)}.login-legal{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:4px}.login-legal a{color:var(--fg-dim);font-size:11px;text-decoration:none}.login-legal a:hover{color:var(--fg);text-decoration:underline}.billing-legal{display:flex;gap:16px;flex-wrap:wrap;padding:26px 0 0}.billing-legal a{color:var(--fg-dim);font-size:12px;text-decoration:none}.billing-legal a:hover{color:var(--fg);text-decoration:underline}.demo-script-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.demo-script.busy .demo-next,.demo-script.busy .demo-dot{opacity:.45;cursor:default}.demo-script.busy .demo-next{animation:none}.demo-dot:disabled{cursor:default}.demo-cta-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.demo-cta-link{color:var(--accent);font-size:12.5px;text-decoration:none}.demo-cta-link:hover{text-decoration:underline}.public-demo-btn{display:inline-flex;align-items:center;gap:6px;color:var(--fg-dim);text-decoration:none;font-size:12.5px;padding:5px 12px;border-radius:999px;border:1px solid var(--border)}.public-demo-btn:hover{color:var(--fg);border-color:var(--accent)}.pricing-actions{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}.pricing-actions .tier-cta{width:auto;padding:9px 22px;text-decoration:none;display:inline-flex;align-items:center}.pricing-doc .tier-block{margin:26px 0}.demo-pricing-btn{position:absolute;top:16px;right:16px;z-index:31;display:inline-flex;align-items:center;padding:7px 16px;border-radius:999px;font-size:12.5px;text-decoration:none;color:var(--fg-dim);background:color-mix(in srgb,var(--bg-2) 92%,transparent);border:1px solid var(--border);box-shadow:0 4px 18px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.demo-pricing-btn:hover{color:var(--fg);border-color:var(--accent)}.demo-actions-sep{width:1px;height:20px;background:var(--border);margin:0 2px;flex:none}.demo-script .demo-signin{padding:8px 20px;font-size:13px;font-weight:600;border-radius:999px;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent),0 4px 14px color-mix(in srgb,var(--accent) 35%,transparent)}.demo-script .demo-signin:hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 28%,transparent),0 6px 18px color-mix(in srgb,var(--accent) 45%,transparent)}.demo-legal{position:absolute;bottom:14px;right:16px;z-index:31;display:flex;gap:14px;align-items:center;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--bg-2) 82%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.demo-legal a{color:var(--fg-dim);font-size:11.5px;text-decoration:none}.demo-legal a:hover{color:var(--fg);text-decoration:underline}.anno-text,.anno-text-editor{font-family:Anno,IBM Plex Sans,system-ui,sans-serif;letter-spacing:-.1px}.anno-text-editor{font-weight:600}.demo-steps tr[draggable]{cursor:grab}.demo-steps tr.row-dragging{opacity:.4}.demo-steps tr.row-drop td{box-shadow:inset 0 2px 0 var(--accent)}.step-grip{white-space:nowrap;-webkit-user-select:none;user-select:none}.step-grip-dots{display:inline-block;width:8px;height:12px;margin-right:7px;vertical-align:-2px;opacity:.5;background-image:radial-gradient(currentColor 1px,transparent 1px);background-size:4px 4px}.demo-steps tr:hover .step-grip-dots{opacity:.9}.step-actions{white-space:nowrap}.step-move.up svg{transform:rotate(180deg)}.step-move:disabled{opacity:.3;cursor:default}.landing{height:100%;overflow-y:auto;overflow-x:hidden;background:var(--bg);scroll-behavior:smooth}.landing-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.landing-header-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:12px 24px}.landing-brand{font-size:16px;font-weight:700;letter-spacing:.3px}.landing-nav{display:flex;gap:2px}.landing-nav button{background:none;border:none;color:var(--fg-dim);font-size:13px;padding:6px 10px;border-radius:7px;cursor:pointer}.landing-nav button:hover{color:var(--fg);background:var(--active)}.landing-lang button{background:none;border:none;color:var(--fg-dim);font-size:12px;padding:4px;cursor:pointer}.landing-lang button.active{color:var(--fg);font-weight:600}.landing-signin{padding:7px 18px;font-size:13px;border-radius:8px}.landing-hero{position:relative;max-width:1120px;margin:0 auto;padding:84px 24px 40px;display:flex;flex-direction:column;align-items:center;text-align:center}.landing-hero-glow{position:absolute;top:-160px;left:50%;transform:translate(-50%);width:900px;height:500px;pointer-events:none;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,transparent) 0%,transparent 65%)}.landing-badge{position:relative;font-size:12px;color:var(--accent);padding:5px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent);margin-bottom:22px}.landing-hero h1{position:relative;margin:0 0 18px;font-size:clamp(30px,5vw,52px);line-height:1.12;letter-spacing:-.8px;font-weight:700;max-width:min(820px,100%)}.landing-accent{background:linear-gradient(100deg,var(--accent),var(--accent-4));-webkit-background-clip:text;background-clip:text;color:transparent}.landing-hero-sub{position:relative;margin:0 0 30px;max-width:min(640px,100%);font-size:16px;line-height:1.65;color:var(--fg-dim)}.landing-cta-row{position:relative;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.landing-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;font-size:14.5px;font-weight:600;border-radius:10px;cursor:pointer;text-decoration:none}.landing-cta.primary{color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);box-shadow:0 4px 22px color-mix(in srgb,var(--accent) 40%,transparent)}.landing-cta.primary:hover{filter:brightness(1.1);background:var(--accent)}.landing-cta.ghost{color:var(--fg);background:var(--bg-2);border:1px solid var(--border)}.landing-cta.ghost:hover{border-color:var(--accent);background:var(--bg-3)}.landing-hero-note{position:relative;margin:14px 0 0;font-size:13px;font-weight:600;color:var(--accent-4, #4fd1c5)}.landing-shot{position:relative;margin-top:48px;width:100%;max-width:980px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--bg-2);box-shadow:0 30px 80px #00000080}.landing-shot-bar{display:flex;gap:6px;padding:10px 14px;background:var(--bg-2);border-bottom:1px solid var(--border)}.landing-shot-bar i{width:10px;height:10px;border-radius:50%;background:var(--bg-3)}.landing-shot img{display:block;width:100%;height:auto}.landing-section{max-width:1120px;margin:0 auto;padding:72px 24px 8px}.landing-section>h2{margin:0 0 12px;text-align:center;font-size:clamp(24px,3.2vw,32px);letter-spacing:-.4px}.landing-section-sub{margin:0 auto 40px;max-width:560px;text-align:center;font-size:14.5px;line-height:1.6;color:var(--fg-dim)}.landing-center{display:flex;justify-content:center;margin:36px 0 0}.landing-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:40px}.landing-step{position:relative;background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:26px 22px 20px}.landing-step-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;font-size:14px;font-weight:700;color:var(--accent-ink);background:var(--accent);margin-bottom:14px}.landing-step h3{margin:0 0 8px;font-size:16px}.landing-step p{margin:0;font-size:13.5px;line-height:1.6;color:var(--fg-dim)}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.landing-feature{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:22px;transition:border-color .15s ease}.landing-feature:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.landing-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);margin-bottom:14px}.landing-feature h3{margin:0 0 8px;font-size:15px}.landing-feature p{margin:0;font-size:13px;line-height:1.6;color:var(--fg-dim)}.landing-demos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.landing-demo{display:flex;flex-direction:column;color:inherit;text-decoration:none;background:var(--bg-2);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .15s ease,transform .15s ease}.landing-demo:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));transform:translateY(-2px)}.landing-demo img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--canvas-bg);border-bottom:1px solid var(--border)}.landing-demo-body{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px;flex:1}.landing-demo-body h4{margin:0;font-size:14.5px}.landing-demo-body p{margin:0;font-size:12.5px;line-height:1.55;color:var(--fg-dim)}.landing-demo-open{margin-top:auto;padding-top:8px;font-size:12px;color:var(--accent)}.landing-pricing .tier-block{margin:26px 0}.landing-more{color:var(--accent);font-size:13.5px;text-decoration:none}.landing-more:hover{text-decoration:underline}.landing-faq{max-width:720px;margin:36px auto 0}.landing-faq details{border:1px solid var(--border);border-radius:12px;background:var(--bg-2);margin-bottom:10px;padding:0 18px}.landing-faq summary{cursor:pointer;list-style:none;padding:15px 0;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.landing-faq summary::-webkit-details-marker{display:none}.landing-faq summary:after{content:"+";font-size:17px;color:var(--fg-dim);font-weight:400;transition:transform .15s ease}.landing-faq details[open] summary:after{transform:rotate(45deg)}.landing-faq details p{margin:0;padding:0 0 16px;font-size:13.5px;line-height:1.65;color:var(--fg-dim)}.landing-faq details a{color:var(--accent);text-decoration:none}.landing-faq details a:hover{text-decoration:underline}.landing-end{max-width:860px;margin:72px auto 0;padding:0 24px}.landing-end h2,.landing-end p{text-align:center}.landing-end{display:flex;flex-direction:column;align-items:center;padding-top:56px;padding-bottom:56px;border-radius:18px;background:radial-gradient(ellipse at 50% -30%,color-mix(in srgb,var(--accent) 18%,transparent) 0%,transparent 70%),var(--bg-2);border:1px solid var(--border)}.landing-end h2{margin:0 0 10px;font-size:clamp(22px,3vw,30px);letter-spacing:-.4px}.landing-end p{margin:0 0 26px;max-width:min(520px,100%);font-size:14.5px;line-height:1.6;color:var(--fg-dim)}.landing-footer{max-width:1120px;margin:0 auto;padding:48px 24px 56px;text-align:center}.landing-footer-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}.landing-footer-links a{color:var(--fg-dim);font-size:12.5px;text-decoration:none}.landing-footer-links a:hover{color:var(--fg);text-decoration:underline}.landing-footer-note{color:var(--fg-dim);font-size:11.5px}.demo-back-btn{position:absolute;top:16px;left:16px;z-index:31;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;font-size:12.5px;text-decoration:none;color:var(--fg-dim);background:color-mix(in srgb,var(--bg-2) 92%,transparent);border:1px solid var(--border);box-shadow:0 4px 18px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.demo-back-btn:hover{color:var(--fg);border-color:var(--accent)}@media (max-width: 720px){.landing-nav{display:none}.landing-hero{padding-top:56px}.landing-shot{margin-top:36px}}.landing-hero>*,.landing-end>*{max-width:100%}.landing-shot-media{position:relative;aspect-ratio:16 / 9}.landing-shot-media img,.landing-shot-media video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.landing-shot-media video{opacity:0;transition:opacity .6s ease}.landing-shot-media video.on{opacity:1}.public-wide .page-body{max-width:1180px}.public-wide .page-body>*{width:100%;max-width:none}.examples-head{max-width:720px;margin:8px auto 30px;text-align:center}.examples-head h1{font-size:28px;margin:0 0 10px;letter-spacing:-.4px}.examples-head p{font-size:14px;line-height:1.6;color:var(--fg-dim);margin:0}.examples-note{text-align:center;color:var(--fg-dim);font-size:12.5px;margin:26px 0}.examples-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;max-width:1120px;margin:0 auto}.example-card{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .15s ease}.example-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.example-previews{display:grid;aspect-ratio:1;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;background:var(--field);text-decoration:none;overflow:hidden}.example-previews img{width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;display:block;background-color:var(--ck1);background-image:repeating-conic-gradient(var(--ck2) 0 25%,transparent 0 50%);background-size:16px 16px}.example-previews.n1 img{grid-area:1 / 1 / 3 / 3}.example-previews.n2 img:nth-child(1){grid-area:1 / 1 / 3 / 2}.example-previews.n2 img:nth-child(2){grid-area:1 / 2 / 3 / 3}.example-previews.n3 img:nth-child(1){grid-area:1 / 1 / 3 / 2}.example-empty{grid-area:1 / 1 / 3 / 3;display:flex;align-items:center;justify-content:center;color:var(--bg-3)}.example-meta{padding:12px 14px 4px}.example-name{font-size:14px;font-weight:600}.example-sub{font-size:11.5px;color:var(--fg-dim);margin-top:3px}.example-actions{display:flex;gap:8px;align-items:center;padding:10px 14px 14px;margin-top:auto}.example-open{padding:6px 14px;font-size:12.5px;border-radius:8px;color:var(--fg);text-decoration:none;background:var(--bg-3);border:1px solid var(--border)}.example-open:hover{border-color:var(--accent)}.example-use{padding:6px 14px;font-size:12.5px;border-radius:8px}.canvas-host{touch-action:none}.mobile-hint-banner{position:absolute;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));font-size:12.5px;line-height:1.4;background:color-mix(in srgb,var(--accent) 14%,var(--bg-2));border-top:1px solid var(--border)}.mobile-hint-text{flex:1;min-width:0}.mobile-hint-send{flex-shrink:0;padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:999px}.mobile-hint-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;color:var(--fg-dim);border-radius:50%}.mobile-hint-close:hover{color:var(--fg);background:var(--bg-3)}@media (max-width: 700px){.share-banner{grid-column:1 / -1}.share-with-top .editor-toolbar,.share-with-top .editor-island.island-left{display:none}}@media (max-width: 700px){.public-page .page-top{padding:10px 14px;gap:10px}.public-page .public-nav{display:none}}.landing-lang-select{background:var(--bg-3);color:var(--fg);border:1px solid var(--border);border-radius:8px;font-size:12px;padding:5px 8px}.share-with-top{display:flex;flex-direction:column}.share-top{flex:none;display:flex;align-items:center;gap:14px;padding:9px 16px;background:var(--bg-2);border-bottom:1px solid var(--border)}.share-top .spacer{flex:1}.share-editor-host{flex:1;min-height:0}.share-editor-host>.editor-root{height:100%}@media (max-width: 700px){.share-top .public-nav{display:none}}.use-template-btn{flex:none;padding:4px 12px;font-size:11.5px;font-weight:600;color:#0c1510;background:var(--accent);border:1px solid var(--accent);border-radius:999px;cursor:pointer}.use-template-btn:hover{filter:none;background:var(--accent-hover)}.use-template-btn:disabled{opacity:.6;cursor:default}.canvas-help{position:absolute;top:44px;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;pointer-events:none;background:radial-gradient(ellipse at center,#080a0e73,#080a0e26 70%)}.canvas-help-card{background:color-mix(in srgb,var(--bg-2) 94%,transparent);border:1px solid var(--border);border-radius:14px;padding:18px 24px;box-shadow:0 18px 50px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:340px}.canvas-help-title{font-size:14px;font-weight:700;margin-bottom:12px}.canvas-help-row{display:flex;align-items:baseline;gap:10px;font-size:12.5px;line-height:1.5;color:var(--fg);margin-bottom:8px}.canvas-help-key{flex:none;width:22px;text-align:center}.canvas-help-dismiss{margin-top:12px;font-size:11.5px;color:var(--fg-dim)}.landing-shot-canvas{position:relative;aspect-ratio:16 / 9;background:var(--bg)}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.hero-canvas>.canvas-host{flex:1}.hero-canvas-note{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:13px}.landing-shot-canvas .hero-canvas{transition:filter .25s ease}.landing-shot-canvas:hover .hero-canvas{filter:blur(5px) brightness(.85)}.hero-canvas-shield,.hero-canvas-shield:hover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:46;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;cursor:pointer}.hero-expand-cta{padding:12px 26px;border-radius:999px;font-size:15px;font-weight:700;color:var(--fg);background:color-mix(in srgb,var(--bg-2) 90%,transparent);border:1px solid var(--border);box-shadow:0 8px 30px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .25s ease}.landing-shot-canvas:hover .hero-expand-cta{opacity:1;border-color:var(--accent)}@media (pointer: coarse){.hero-expand-cta{display:none}.landing-shot-canvas:hover .hero-canvas{filter:none}}.hero-expanded{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;display:flex;flex-direction:column;background:var(--bg)}.hero-expanded-top{flex:none;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-2);border-bottom:1px solid var(--border)}.hero-expanded-top .spacer{flex:1}.hero-expanded-title{font-size:14px;font-weight:600}.hero-back-btn,.hero-back-btn:hover{display:inline-flex;align-items:center;gap:7px;padding:7px 18px;font-size:13px;font-weight:700;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);border-radius:999px;cursor:pointer}.hero-back-btn:hover{filter:brightness(1.12)}.hero-expanded-body{flex:1;display:flex;min-height:0}.hero-expanded-list{flex:none;width:230px;overflow-y:auto;padding:10px 8px;background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.hero-expanded-list button{text-align:left;background:none;border:none;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--fg-dim);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-expanded-list button:hover{background:var(--bg-3);color:var(--fg)}.hero-expanded-list button.active{background:color-mix(in srgb,var(--accent) 18%,var(--bg-3));color:var(--fg)}.hero-expanded-canvas{flex:1;position:relative;min-width:0}@media (max-width: 700px){.hero-expanded-list{width:150px}}.landing-price-note{text-align:center;margin:14px auto 0}.node-outline{stroke:url(#node-stroke);stroke-width:1}.node-hl{stroke:#ffffff12;stroke-width:1}.node-outline.state-running,.node-outline.state-error,.node-outline.state-queued{stroke-width:1.5}.node-rect{filter:drop-shadow(0 12px 28px rgba(0,0,0,.4))}.node-run-cost{fill:var(--accent-ink);font:600 10.5px var(--font-mono);letter-spacing:-.01em}.port-circle.text,.port-circle.image,.port-circle.video,.port-circle.audio{stroke:none}.port:hover .port-circle{transform:scale(1.5);stroke:none}.node-body-host{padding:6px 10px 10px;font-size:11.5px}.node-body{gap:6px}.node-body .hintline{font-size:10.5px;color:var(--fg-3);line-height:1.4}.node-body .hintline.warn{color:var(--yellow)}.result-card{position:relative;flex:none;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#00000038;box-shadow:0 6px 16px #00000059;display:flex;align-items:center;justify-content:center}.result-card.fill{flex:1;min-height:60px}.result-card .node-output{margin:0;border:none;border-radius:0;box-shadow:none;background:transparent;width:100%;height:100%}.result-card .crop-editor{border:none;border-radius:0;background:transparent}.result-card .preview-img,.result-card .crop-img{border-radius:6px}.result-card .node-output.empty{border:none}.result-empty{flex:none;border:1px dashed rgba(255,255,255,.14);border-radius:9px;min-height:64px;display:grid;place-items:center;text-align:center;color:var(--fg-3);font-size:10.5px;padding:10px}.node-body .nfield{min-height:0}.node-body .head-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px}.node-body .head-row .hintline{flex:1;min-width:0}.actions{display:flex;gap:6px}.actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 10px;font-size:11.5px;border-radius:var(--r-ctl)}.actions button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:600}.actions button.primary:hover{background:var(--accent-hover)}.actions button.ghost{flex:none}.btn-ghost{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;font-size:11px;border-radius:var(--r-ctl);background:var(--field);border:1px solid var(--line);color:var(--fg)}.btn-ghost:hover{background:var(--active)}.btn-ghost.on{border-color:var(--accent);color:var(--accent)}.btn-ghost svg{display:block}.plist{display:flex;flex-direction:column;gap:6px}.plist-h{display:flex;align-items:center;gap:6px;height:26px;padding:0 4px;margin:0 -4px;background:transparent;border:none;border-radius:6px;color:var(--fg-dim);font-size:11px;text-align:left;cursor:pointer;width:calc(100% + 8px)}.plist-h:hover{background:var(--active)}.plist-h span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-host .plist-h .chev,.plist-h .chev{width:11px;height:11px;flex:none;color:var(--fg-3);transform:rotate(-90deg);transition:transform .22s cubic-bezier(.2,.7,.2,1)}.plist-h .chev.open{transform:rotate(0)}.plist-rows{display:flex;flex-direction:column;gap:6px}.psect-h{font-size:11px;color:var(--fg-3);min-height:18px;display:flex;align-items:center}.prow{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;align-items:center;min-height:26px}.prow.full{grid-template-columns:minmax(0,1fr);gap:4px;align-items:stretch}.prow-l{color:var(--fg-dim);font-size:11.5px}.prow.full .prow-l{font-size:11px}.prow-c{display:flex;align-items:center;gap:8px;min-width:0;min-height:26px}.prow-c>select,.prow-c>input[type=text],.prow-c>input[type=number],.prow-c>textarea,.prow-c>.model-row{flex:1;min-width:0}.prow-c .val-mono{font:10.5px var(--font-mono);color:var(--fg-3)}.node-body .prow input[type=number]{font-size:11.5px;padding:4px 7px;border-radius:var(--r-sm)}.node-body .prow select,.node-body .prow input[type=text],.node-body .prow textarea{min-height:26px}.node-body .prow textarea{min-height:44px}.prow-hint{font-size:10.5px;color:var(--fg-3);line-height:1.4}.tg{width:32px;height:18px;flex:none;padding:0;position:relative;cursor:pointer;border:none;border-radius:9px;background:#ffffff24;transition:background .16s cubic-bezier(.2,.7,.2,1)}.tg:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--fg-dim);transition:left .16s cubic-bezier(.2,.7,.2,1),background .16s}.tg.on{background:var(--accent)}.tg.on:after{left:16px;background:#fff}.tg:disabled{opacity:.45;cursor:default}.tgrow{display:flex;align-items:center;gap:8px;min-height:22px;font-size:11.5px;color:var(--fg)}.tgrow-l{cursor:pointer}.tgrow-h{margin-left:auto;font:10.5px var(--font-mono);color:var(--fg-3)}.seg{position:relative;isolation:isolate;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:2px;background:var(--field);border:1px solid var(--line);border-radius:var(--r-ctl);min-height:26px}.seg .seg-ind{position:absolute;top:2px;bottom:2px;background:var(--active);border-radius:6px;transition:left .18s cubic-bezier(.2,.7,.2,1),width .18s cubic-bezier(.2,.7,.2,1);pointer-events:none;z-index:0}.seg button{position:relative;z-index:1;background:transparent!important;border:none;padding:3px 4px;font-size:11px;color:var(--fg-dim);border-radius:6px;cursor:pointer;transition:color .14s ease-out;white-space:nowrap}.seg button:hover:not(.on){color:var(--fg)}.seg button.on{color:var(--fg)}.seg button:active{transform:scale(.97)}.sb{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:center;min-height:22px}.sb-l{color:var(--fg-dim);font-size:11px}.sb-track{position:relative;height:10px;border-radius:5px;background:#ffffff1a;overflow:hidden;cursor:pointer;touch-action:none}.sb-track i{position:absolute;left:0;top:0;bottom:0;background:#ffffff47;border-radius:5px;transition:background .12s ease-out}.sb-track:hover i,.sb-track:active i{background:var(--accent)}.sb-v{text-align:right;font:10.5px var(--font-mono);color:var(--fg-dim);font-variant-numeric:tabular-nums}.wellwrap{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;row-gap:6px}.well{display:inline-flex;align-items:center;gap:7px;min-height:26px;padding:3px 8px 3px 4px;min-width:0;background:var(--field);border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer;color:var(--fg);transition:border-color .12s,background .12s}.well:hover{background:var(--active)}.well.open{border-color:var(--accent)}.well-sw{width:18px;height:18px;border-radius:5px;background:var(--c);box-shadow:inset 0 0 0 1px #ffffff29;flex:none;display:block}.well-hex{font:11px var(--font-mono);color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-host .well-chev,.well-chev{width:10px;height:10px;color:var(--fg-3);flex:none}.well.compact{padding:2px;min-height:22px;border-radius:var(--r-sm)}.well.compact .well-sw{width:16px;height:16px;border-radius:4px}.well-presets{display:inline-flex;gap:6px;margin-left:auto;padding-right:2px}.well-presets button{width:14px;height:14px;padding:0;border-radius:50%;border:none;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff2e;transition:transform .12s,box-shadow .12s}.well-presets button:hover{transform:scale(1.15)}.well-presets button.on{box-shadow:0 0 0 2px var(--surface-solid),0 0 0 3.5px var(--fg)}.well-pop{position:fixed;z-index:1200;width:224px;padding:8px;background:#2a2e3a;border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:8px;animation:wellPop .16s ease-out}@keyframes wellPop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.well-pop-row{display:flex;justify-content:flex-end}.well-ok{height:24px;padding:0 10px;font-size:11px;border-radius:var(--r-sm)}.cp{display:flex;flex-direction:column;gap:8px}.cp-sv{position:relative;height:124px;border-radius:7px;cursor:crosshair;touch-action:none}.cp-sv-dot{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0000008c;transform:translate(-50%,-50%);pointer-events:none}.cp-hue{position:relative;height:10px;border-radius:5px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer;touch-action:none}.cp-hue-dot{position:absolute;top:-2px;width:14px;height:14px;border-radius:50%;border:2px solid #fff;transform:translate(-50%);box-shadow:0 0 0 1px #0000008c;pointer-events:none}.cp-row{display:flex;gap:6px;align-items:center}.cp-hex{flex:1;font:11px var(--font-mono);color:var(--fg);background:#ffffff0d;border:1px solid rgba(255,255,255,.085);border-radius:6px;padding:4px 8px}.seedrow{display:flex;align-items:center;gap:8px;min-width:0}.seedrow .seed-input{flex:1;min-width:0;font:11px var(--font-mono)}.seedrow .lbl{font-size:11px;color:var(--fg-dim)}.draw-toolbar{gap:6px}.draw-tools{gap:2px;padding:2px;background:var(--field);border:1px solid var(--line);border-radius:var(--r-ctl)}.draw-tools button{width:22px;height:22px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--fg-dim);display:inline-flex;align-items:center;justify-content:center}.draw-tools button.on{background:var(--active);color:var(--fg)}.draw-ctl{flex:1;min-width:36px}.draw-ctl .sb{width:100%}.draw-actions{margin-left:auto;display:flex;gap:2px}.draw-icon-btn{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--fg-dim);border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.draw-icon-btn:hover:not(:disabled){background:var(--active);color:var(--fg)}.draw-icon-btn:disabled{opacity:.55}.draw-area{border:1px solid var(--line);border-radius:9px;background:repeating-conic-gradient(var(--ck1) 0 25%,var(--ck2) 0 50%) 0 0 / 16px 16px;overflow:hidden}.resize-row,.resize-fields{gap:6px}.resize-num{width:54px;font:10.5px var(--font-mono)}.resize-lock{width:22px;height:22px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;color:var(--fg-3);display:inline-flex;align-items:center;justify-content:center;padding:0}.resize-lock.on{color:var(--accent);border-color:#b79cff80}.node-body .primary-line{min-height:26px;height:26px;font-size:11.5px;padding:3px 8px}.node-body .primary.fill{flex:1;min-height:60px}.psect{display:flex;flex-direction:column;gap:6px}.psect .draw-area{flex:none;height:160px}.result-card .image-preview-wrap{width:100%;height:100%;border:none;border-radius:0;background:transparent}.resize-row{display:flex;align-items:center}.resize-row .tgrow{flex:none}.resize-fields{display:flex;align-items:center;flex:1;min-width:0}.resize-fields .resize-num{flex:1;min-width:0;width:auto}.resize-row .crop-toggle{flex:none}.node-body .val-mono{font:10.5px var(--font-mono);color:var(--fg-3);white-space:nowrap}.result-card .crop-editor{width:100%;height:100%;min-height:0;flex:none}.result-card .image-preview-wrap .preview-img{border-radius:0}.resize-num,.seed-input,.prow input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.resize-num::-webkit-inner-spin-button,.resize-num::-webkit-outer-spin-button,.seed-input::-webkit-inner-spin-button,.seed-input::-webkit-outer-spin-button,.prow input[type=number]::-webkit-inner-spin-button,.prow input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.well-pop .well-presets{margin-left:0;flex-wrap:wrap;gap:6px}.well-pop .well-presets button{width:16px;height:16px}.node-title{font-size:12px;letter-spacing:0}.port-add-circle{fill:var(--surface-solid);stroke:var(--fg-3);stroke-width:1}.port-add-btn:hover .port-add-circle{stroke:var(--accent)}.port-add-label{fill:var(--fg-3);font-size:10px;pointer-events:none}.port-add-btn:hover .port-add-label{fill:var(--fg-dim)}.port-add-x{stroke:var(--red);stroke-width:1.4;stroke-linecap:round}.node-body-host{padding:6px 11px 10px}.node-body{gap:7px}.node-body .hintline{font-size:10.5px;line-height:1.4;color:var(--fg-3)}.node-body .nfield,.node-body .nfield-line{min-height:0;height:auto;padding:6px 8px;font-size:11.5px;line-height:1.4;border-radius:9px;background:var(--field);border:1px solid var(--line);color:var(--fg);resize:none;overflow:hidden}.node-body .nfield::placeholder,.node-body .nfield-line::placeholder,.node-body .prow textarea::placeholder{color:var(--fg-3)}.node-body .nfield.fill{flex:1;min-height:30px}.node-body .nfield-line{height:30.1px}.node-body .nfield:focus,.node-body .nfield-line:focus{border-color:var(--accent)}.result-card{margin:0;border:1px solid rgba(255,255,255,.08);border-radius:9px;background-color:var(--ck1);background-image:repeating-conic-gradient(var(--ck2) 0 25%,transparent 0 50%);background-size:16px 16px;box-shadow:0 6px 16px #00000059}.result-card .node-output,.result-card .node-output.image{background:transparent;padding:0;margin:0;min-height:0}.result-card .preview-img{background:transparent;border-radius:0;max-width:100%;max-height:100%}.result-card .preview-video{display:block;width:100%;height:100%;object-fit:contain}.result-card .crop-editor{background:transparent}.result-empty{flex:none;height:64px;min-height:64px;padding:10px;border:1px dashed rgba(255,255,255,.14);border-radius:9px;display:grid;place-items:center;text-align:center;color:var(--fg-3);font-size:10.5px;line-height:1.35}.result-empty.fill{flex:1}.textout{flex:none;height:99.4px;overflow:auto;padding:7px 8px;font-size:11.5px;line-height:1.45;color:var(--fg);background:var(--field);border:1px solid var(--line);border-radius:9px}.textout.fill{flex:1;min-height:60px}.textout p{margin:0 0 .5em}.textout p:last-child{margin-bottom:0}.textout:focus-within{border-color:var(--accent)}.transport{display:flex;align-items:center;gap:8px;height:22px;font:10.5px var(--font-mono);color:var(--fg-3);white-space:nowrap}.transport .tp-play{width:22px;height:22px;flex:none;padding:0;border:none;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.transport .tp-play:hover{background:var(--accent-hover)}.transport .tp-play svg{width:9px;height:9px;fill:currentColor;display:block}.transport .tp-bar{flex:1;height:3px;border-radius:2px;background:#ffffff24;position:relative;cursor:pointer}.transport .tp-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--accent)}.audio-player{margin:0;height:auto;padding:6px 8px;gap:8px;background:var(--field);border:1px solid var(--line);border-radius:9px}.ap-play{width:24px;height:24px}.ap-play svg{width:10px;height:10px}.ap-wave{height:22px}.ap-time{font:10.5px var(--font-mono);color:var(--fg-3)}.ap-loop{width:12px;height:12px;color:var(--fg-3);border-radius:2px}.ap-loop svg{width:12px;height:12px}.actions button{height:auto;padding:5px 8px;font-size:11.5px;line-height:1.35;border-radius:9px;gap:6px;background:var(--field);border:1px solid var(--line);color:var(--fg)}.actions button svg{width:11px;height:11px}.actions button.ghost{background:transparent;color:var(--fg-dim)}.btn-ghost{height:auto;padding:3px 8px;font-size:11px;line-height:1.35;border-radius:9px;gap:6px;background:transparent;color:var(--fg-dim);border:1px solid var(--line)}.btn-ghost svg{width:11px;height:11px;color:var(--fg-3)}.btn-ghost.on{color:var(--accent);border-color:var(--accent)}.btn-ghost.on svg{color:var(--accent)}.node-body .head-row{min-height:0;padding-top:1px;gap:6px}.node-body .head-row .hintline{font-size:11px;line-height:1.35}.plist{padding-top:2px;gap:7px}.plist-h{height:auto;padding:4px;margin:0 -4px;width:calc(100% + 8px);font-size:11px;line-height:1.35;gap:6px;color:var(--fg-dim)}.plist-rows{gap:6px}.psect{padding-top:2px;gap:7px}.psect-h{min-height:18px;font-size:11px;line-height:1.35;color:var(--fg-3)}.prow{min-height:0;gap:8px;font-size:11.5px;line-height:1.35}.prow-l{font-size:11.5px;line-height:1.35;color:var(--fg-dim)}.prow-c{min-height:26px;gap:8px}.prow-c:has(>.sb){min-height:0}.prow.full{gap:4px}.prow.full .prow-l{font-size:11px;line-height:1.35}.node-body .prow select,.node-body .prow .model-row select{min-height:0;height:auto;padding:5px 8px;font-size:11.5px;line-height:1.35;border-radius:9px}.node-body .prow input[type=text],.node-body .prow input[type=number]{min-height:26px;height:26px;padding:4px 8px;font-size:11.5px;line-height:1.35;border-radius:9px}.node-body .prow textarea{min-height:54px;padding:5px 8px;font-size:11.5px;line-height:1.35;border-radius:9px}.prow-hint{font-size:11px;line-height:1.35;color:var(--fg-3)}.seedrow .seed-input{height:24px;min-height:24px;padding:3px 8px;font:11px var(--font-mono);border-radius:9px}.tgrow{min-height:18px;gap:8px;font-size:11.5px;line-height:1.35;color:var(--fg)}.seg{min-height:0;padding:2px;gap:2px;border-radius:9px}.seg .seg-ind{border-radius:7px}.seg button{padding:3px 0;font-size:11px;line-height:1.35;border-radius:7px}.sb{min-height:0;gap:8px;grid-template-columns:minmax(0,1fr) 38px}.sb.has-label{grid-template-columns:44px minmax(0,1fr) 44px}.sb-l{font-size:11px;line-height:1.35;color:var(--fg-dim)}.sb-v{font:10.5px var(--font-mono);color:var(--fg-dim);min-width:36px}.fx{display:flex;flex-direction:column;gap:6px}.fx .seg{margin:1px 0}.fx .prow{grid-template-columns:44px minmax(0,1fr)}.fx .prow-c{min-height:26px}.well-presets{gap:7px}.well-presets button{width:16px;height:16px}.resize-row{gap:6px;height:22.8px;flex-wrap:nowrap;font-size:11px}.resize-row .tgrow{gap:6px}.resize-fields{gap:6px;flex:none}.resize-fields .resize-num{flex:none;height:20px;min-height:20px;padding:2px 6px;font:10.5px var(--font-mono);border-radius:5px;text-align:left}.resize-lock{border-radius:6px;color:var(--fg-3)}.resize-row .crop-toggle{margin-left:auto}.draw-toolbar{gap:4px;height:28px;flex-wrap:nowrap}.draw-tools{border-radius:8px}.draw-tools button svg,.draw-icon-btn svg{width:12px;height:12px}.draw-toolbar .wellwrap{width:auto;flex:none}.draw-toolbar .draw-ctl{flex:1 1 36px;min-width:36px;gap:4px;color:var(--fg-dim)}.draw-toolbar .draw-ctl>svg{flex:none;width:12px;height:12px}.draw-toolbar .draw-alpha{flex:none;font:600 11px var(--font-mono);width:10px;text-align:center;color:var(--fg-dim)}.draw-toolbar .sb{grid-template-columns:minmax(0,1fr)}.draw-toolbar .sb .sb-v{display:none}.draw-body>.draw-area{flex:1;min-height:60px}.node-body .prow textarea.nfield{min-height:0;padding:6px 8px;line-height:1.4}.prow-hint.warn{color:var(--yellow)}.result-card .preview-img{width:100%;height:100%;object-fit:contain;image-rendering:auto}.result-card .node-output.image{width:100%;height:100%}.tg{height:18px;min-height:18px;line-height:0;font-size:0}.transport .tp-play,.ap-play,.draw-tools button,.draw-icon-btn,.resize-lock,.well,.plist-h{min-height:0}.node-body .nfield.fill{height:auto!important}.draw{display:flex;flex-direction:column;gap:6px;min-height:0}.draw-body>.draw{flex:1}.draw-body>.draw>.draw-area,.psect .draw>.draw-area{flex:none}.draw-body>.draw>.draw-area{flex:1;min-height:60px}.node-body>*,.fx>*,.plist-rows>*,.draw>*,.psect>*{margin:0}.node-body .head-row,.node-body .nfield,.node-body .nfield-line,.textout,.result-card,.result-empty,.audio-player,.actions,.plist,.psect,.fx,.draw,.resize-row,.transport{margin:0}.node-body input[type=text].nfield-line{padding:6px 8px;height:30.1px;min-height:0;font-size:11.5px;line-height:1.4;border-radius:9px}.resize-fields input[type=number].resize-num{padding:2px 6px}html,body,.canvas-host,.canvas-world-svg{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.node-html .node-body .audio-player{margin:0}.node-body-host{padding:6px 11px 11px}.textout{line-height:17px;height:101px}.port-name-input{color:var(--fg-dim)}.port-del-btn{opacity:0;transition:opacity .12s ease-out}.port:hover .port-del-btn,.port-input-row:focus-within .port-del-btn{opacity:1}.textout{padding:6.5px 8px 7.5px}.result-empty{padding:9.5px 10px 10.5px}.prow-c>.sb,.prow-c>.seg,.prow-c>.wellwrap,.prow-c>.seedrow{flex:1;min-width:0}.prow-c>.wellwrap{flex-wrap:nowrap}.well-presets{gap:6px}.well-presets button{width:14px;height:14px}.node-outline{stroke-width:max(1px,calc(1px * var(--inv-scale, 1)))}.lod-far .node-hl,.lod-far .node-run-cost{visibility:hidden}.node-html{--fk: min(var(--inv-scale, 1), 1.5)}.crop-rect,.draw-roi{border-width:calc(1px * var(--inv-scale, 1))}.crop-handle:before{inset:calc(-9px * var(--fk))}.ch-nw,.ch-ne,.ch-sw,.ch-se{width:calc(15px * var(--fk));height:calc(15px * var(--fk))}.ch-nw{transform:translate(calc(-100% - 2px * var(--fk)),calc(-100% - 2px * var(--fk)));border-right-width:calc(3px * var(--fk));border-bottom-width:calc(3px * var(--fk))}.ch-ne{transform:translate(calc(2px * var(--fk)),calc(-100% - 2px * var(--fk)));border-left-width:calc(3px * var(--fk));border-bottom-width:calc(3px * var(--fk))}.ch-sw{transform:translate(calc(-100% - 2px * var(--fk)),calc(2px * var(--fk)));border-right-width:calc(3px * var(--fk));border-top-width:calc(3px * var(--fk))}.ch-se{transform:translate(calc(2px * var(--fk)),calc(2px * var(--fk)));border-left-width:calc(3px * var(--fk));border-top-width:calc(3px * var(--fk))}.ch-n,.ch-s{width:calc(26px * var(--fk));height:calc(3px * var(--fk))}.ch-e,.ch-w{width:calc(3px * var(--fk));height:calc(26px * var(--fk))}.ch-n{transform:translate(-50%,calc(-7px * var(--fk)))}.ch-s{transform:translate(-50%,calc(7px * var(--fk)))}.ch-w{transform:translate(calc(-7px * var(--fk)),-50%)}.ch-e{transform:translate(calc(7px * var(--fk)),-50%)}.draw-cursor{border-width:calc(1px * var(--inv-scale, 1))}.psect.split{min-height:0}.psect.split>.draw{flex:1 1 auto;min-height:0}.psect.split .draw>.draw-area{flex:1 1 auto;height:auto;min-height:60px}.psect-h.split{cursor:row-resize;-webkit-user-select:none;user-select:none;gap:8px;touch-action:none}.psect-h.split .split-grip{margin-left:auto;width:28px;height:3px;border-radius:2px;background:#ffffff24;transition:background .12s ease-out,transform .12s ease-out}.psect-h.split:hover{color:var(--fg-dim)}.psect-h.split:hover .split-grip,.psect-h.split.dragging .split-grip{background:var(--accent);transform:scaleX(1.25)}.node-body .tg{border-radius:9px}.node-body .ap-play,.node-body .tp-play,.node-body .well-presets button{border-radius:50%}.node-html.in-fo{position:static}.nfield-wrap{position:relative;flex:none}.nfield-wrap>.nfield{height:100%;display:block}.nfield-grip{position:absolute;right:2px;bottom:2px;width:12px;height:12px;cursor:ns-resize;opacity:0;background:linear-gradient(135deg,transparent 0 55%,var(--fg-3) 55% 62%,transparent 62% 75%,var(--fg-3) 75% 82%,transparent 82%);border-radius:0 0 7px;transition:opacity .12s ease-out}.nfield-wrap:hover .nfield-grip,.nfield-wrap:focus-within .nfield-grip{opacity:.9}.nfield-grip:hover{filter:brightness(1.6)}.draw-roi.other{border:1px dashed rgba(255,255,255,.55);box-shadow:none}.draw-roi.other.pick{pointer-events:auto;cursor:pointer}.draw-roi.other.pick:hover{border-color:var(--accent)}.roi-idx{position:absolute;left:0;top:0;min-width:calc(20px * var(--fk, 1));height:calc(20px * var(--fk, 1));padding:0 calc(6px * var(--fk, 1));line-height:calc(20px * var(--fk, 1));text-align:center;font:700 calc(11.5px * var(--fk, 1)) var(--font-mono);color:#fff;background:#0000009e;border-radius:0 0 calc(6px * var(--fk, 1)) 0;pointer-events:none}.roi-del{position:absolute;right:-1px;top:-1px;width:calc(22px * var(--fk, 1));height:calc(22px * var(--fk, 1));min-height:0;padding:0;border:none;border-radius:0 0 0 calc(6px * var(--fk, 1));background:#0000009e;color:#fff;display:grid;place-items:center;pointer-events:auto;cursor:pointer;opacity:.9}.roi-del svg{width:calc(12px * var(--fk, 1));height:calc(12px * var(--fk, 1))}.roi-del:hover{background:var(--red);opacity:1}.roi-idx.on{background:var(--accent);color:var(--accent-ink)}.result-grid{display:grid;gap:6px;overflow:visible;align-content:stretch;min-height:0}.cell-port{position:absolute;right:-12px;bottom:8px;width:24px;height:24px;z-index:4;cursor:crosshair;display:grid;place-items:center}.result-grid.single .cell-port{bottom:-12px}.cell-port-dot{display:block;width:10px;height:10px;border-radius:2.5px;background:var(--accent-2);box-shadow:0 0 0 1.5px var(--surface-solid);transition:transform .1s ease-out}.cell-port:hover .cell-port-dot{transform:scale(1.3)}.result-cell{position:relative;display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:0}.result-cell-img{position:relative;flex:1 1 auto;min-height:0;border-radius:7px;border:1px solid rgba(255,255,255,.08);overflow:hidden;display:grid;place-items:center;background-color:var(--ck1);background-image:repeating-conic-gradient(var(--ck2) 0 25%,transparent 0 50%);background-size:12px 12px;color:var(--fg-3);font:600 12px var(--font-mono);transition:border-color .12s ease-out}.result-cell-img img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block}.result-cell:hover .result-cell-img{border-color:#ffffff38}.result-cell.on .result-cell-img{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.result-cell.err .result-cell-img{border-color:var(--red)}.result-cell-l{height:18px;font-size:10.5px;line-height:18px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:0 2px}.result-cell.on .result-cell-l{color:var(--fg)}.node-body input.cell-name{width:100%;height:18px;min-height:0;box-sizing:border-box;padding:0 5px;font-size:10.5px;line-height:16px;text-align:center;border-radius:5px;background:var(--field);border:1px solid var(--accent);color:var(--fg)}.cell-tools{position:absolute;top:0;right:0;z-index:2;display:flex;overflow:hidden;background:#0000009e;border-radius:0 6px 0 7px;opacity:0;transition:opacity .12s ease-out}.result-cell:hover .cell-tools,.result-cell.on .cell-tools{opacity:1}.cell-tool{width:20px;height:18px;min-height:0;padding:0;border:none;border-radius:0;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}.cell-tool:hover:not(:disabled){background:#ffffff2e}.cell-tool.danger:hover:not(:disabled){background:var(--red)}.cell-tool:disabled{opacity:.4;cursor:default}.cell-tool svg{width:10px;height:10px}.cell-spin{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#00000059}.cell-spin:after{content:"";width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:var(--accent);animation:cellSpin .8s linear infinite}@keyframes cellSpin{to{transform:rotate(360deg)}}.grid-actions button{flex:1}.grid-actions button.auto{color:var(--accent);border-color:#b79cff59}.grid-actions button.auto:hover:not(:disabled){background:var(--accent-soft)}.canvas-world-svg .node-html-body{content-visibility:auto}.lod-far .node-body canvas{visibility:hidden}.editor-dock-wrap{position:absolute;left:0;right:0;bottom:14px;z-index:30;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.editor-dock-wrap>*{pointer-events:auto}.editor-dock.editor-island{position:static;top:auto;padding:5px 7px;gap:6px;max-width:calc(100vw - 20px)}.editor-dock .run-all-btn{height:28px;padding:0 11px}.editor-dock .balance-chip{height:28px;padding:4px 10px}.util-add{align-items:center}.util-expand{width:16px;height:28px;margin-left:-2px;display:flex;align-items:center;justify-content:center;padding:0;background:var(--field);border:1px solid transparent;border-radius:5px;color:var(--fg-3)}.util-expand:hover{background:var(--active);color:var(--fg)}.util-expand.open{background:var(--active);color:var(--fg-dim)}.util-expand svg{display:block;transition:transform .2s ease}.util-expand.open svg{transform:rotate(180deg)}.dock-fold{flex:none;overflow:hidden;opacity:0;transition:max-width .26s ease,opacity .18s ease,margin .26s ease}.dock-fold.open{margin:0 2px;opacity:1}.dock-fold-inner{width:max-content;visibility:hidden;transition:visibility 0s linear .26s}.dock-fold.open .dock-fold-inner{visibility:visible;transition-delay:0s}.palette-row{display:flex;align-items:center;gap:4px;padding:0 6px 0 8px;margin-left:2px;border-left:1px solid var(--line);white-space:nowrap}.palette-filter{width:140px;height:28px;padding:0 9px;box-sizing:border-box;font-size:12px;border-radius:7px;background:var(--field);border:1px solid var(--line);color:var(--fg);outline:none}.palette-filter:focus{border-color:var(--accent)}.palette-cats{display:flex;gap:2px;margin-left:2px}.palette-cat{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--fg-dim);font-size:12.5px;white-space:nowrap}.palette-cat:hover:not(:disabled){background:var(--active);color:var(--fg)}.palette-cat.open{background:var(--accent-soft);color:var(--accent)}.palette-cat:disabled{opacity:.45}.palette-cat .item-icon{display:inline-flex}.palette-cat .count{color:var(--fg-3);font-size:10.5px;font-variant-numeric:tabular-nums}.editor-dock.compact .palette-cat .cat-label{display:none}.editor-dock.compact .palette-cat{gap:4px;padding:0 7px}.editor-dock.compact .palette-filter{width:120px}.palette-list{position:fixed;z-index:1400;display:flex;flex-direction:column;min-width:236px;max-width:320px;max-height:60vh;overflow:auto;padding:4px;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--r-pop);box-shadow:var(--shadow-pop);animation:paletteListIn .16s ease-out}@keyframes paletteListIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.palette-list button{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;background:transparent;border:none;border-radius:7px;color:var(--fg);font-size:12.5px;text-align:left}.palette-list button .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-list button:hover,.palette-list button.hinted,.palette-list button.first{background:var(--active)}.palette-list .item-icon{width:16px;height:16px;flex-shrink:0;color:var(--fg-dim);display:inline-flex}.palette-list .section{padding:6px 10px;font-size:11.5px;color:var(--fg-dim)}@media (max-width: 700px){.editor-dock .run-all-label{display:none}.editor-dock .palette-filter{width:96px}}.tour-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;overflow:hidden}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0}.tour-ring{position:absolute;box-sizing:border-box;border:2px solid var(--accent);animation:tourRing 1.6s ease-out infinite}@keyframes tourRing{0%{box-shadow:0 0 #b79cffa6}70%,to{box-shadow:0 0 0 12px #b79cff00}}.tour-card{position:absolute;box-sizing:border-box;pointer-events:auto;display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;background:color-mix(in srgb,var(--bg-2) 96%,transparent);border:1px solid var(--accent);border-radius:14px;box-shadow:0 18px 50px #00000080,0 0 0 1px #b79cff26;animation:tourCardIn .22s ease-out}@keyframes tourCardIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tour-head{display:flex;align-items:center;gap:14px}.tour-anim{flex:none;width:120px;height:80px;display:grid;place-items:center;overflow:hidden;background:var(--field);border-radius:10px}.tour-anim svg{display:block}.tour-stepno{font-size:10.5px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}.tour-title{font-size:14px;font-weight:600;color:var(--fg);line-height:1.3}.tour-body{font-size:12.5px;line-height:1.5;color:var(--fg-dim)}.tour-foot{display:flex;align-items:center;gap:8px}.tour-dots{display:flex;gap:4px;flex:1}.tour-dots i{width:6px;height:6px;border-radius:50%;background:var(--fg-3);opacity:.5;transition:transform .2s}.tour-dots i.past{background:var(--accent);opacity:.6}.tour-dots i.on{background:var(--accent);opacity:1;transform:scale(1.35)}.tour-skip{background:none;border:none;color:var(--fg-dim);font-size:12px;padding:4px 6px}.tour-skip:hover{color:var(--fg)}.tour-next{height:28px;padding:0 14px}.tour-done{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--r-ctl);background:#62d59a29;color:var(--green);font-size:12.5px;font-weight:600;animation:tourPop .3s ease-out}@keyframes tourPop{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}.tour-ghost{position:absolute;width:160px;height:80px;pointer-events:none}.tour-ghost.flip{transform:scaleX(-1)}.tour-graph .n{fill:var(--bg-3);stroke:var(--fg-dim);stroke-width:1.2}.tour-graph .n.hot{stroke:var(--accent);animation:tourLit 1.4s ease-in-out infinite}.tour-graph .l{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:4 4;animation:tourFlow .9s linear infinite}@keyframes tourFlow{to{stroke-dashoffset:-8}}@keyframes tourLit{0%,to{opacity:.35}50%{opacity:1}}.tour-mouse .shell{fill:var(--bg-3);stroke:var(--fg-dim);stroke-width:1.5}.tour-mouse .split{fill:none;stroke:var(--fg-dim);stroke-width:1.2}.tour-mouse .btn{fill:transparent}.tour-mouse .btn.lit{fill:var(--accent);animation:tourLit 1.2s ease-in-out infinite}.tour-mouse .wheel{fill:var(--fg-dim)}.tour-mouse .wheel.lit{fill:var(--accent);animation:tourWheel 1.2s ease-in-out infinite}@keyframes tourWheel{0%,to{transform:translateY(-2px)}50%{transform:translateY(2px)}}.tour-mouse-pan .tour-mouse-body{animation:tourPanMove 1.8s ease-in-out infinite}@keyframes tourPanMove{0%,to{transform:translate(-14px)}50%{transform:translate(14px)}}.tour-arrows path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:tourLit 1.2s ease-in-out infinite}.tour-mouse-right .btn.right.lit,.tour-mouse-left .btn.left.lit{animation:tourClick 1.8s ease-in-out infinite}@keyframes tourClick{0%,20%,to{opacity:.3}10%{opacity:1}}.tour-mini-menu rect{fill:var(--surface-solid);stroke:var(--border)}.tour-mini-menu path{fill:none;stroke:var(--fg-dim);stroke-width:2;stroke-linecap:round}.tour-mini-menu{transform-origin:84px 18px;animation:tourMenuPop 1.8s ease-out infinite}@keyframes tourMenuPop{0%,8%{opacity:0;transform:scale(.6)}18%,85%{opacity:1;transform:none}to{opacity:0}}.tour-palette .dock{fill:var(--bg-3);stroke:var(--fg-dim);stroke-width:1.2}.tour-palette .key{fill:var(--field);stroke:var(--line)}.tour-palette .key.plus{fill:var(--accent-soft)}.tour-palette .plus-sign{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round}.tour-palette .key.tab{fill:var(--accent);stroke:none;animation:tourLit 1.2s ease-in-out infinite}.tour-palette .grow{transform-origin:52px 40px;animation:tourGrow 2.4s ease-in-out infinite}.tour-palette .grow rect{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:3 3}@keyframes tourGrow{0%,12%{transform:scaleX(0);opacity:0}45%,82%{transform:scaleX(1);opacity:1}to{transform:scaleX(0);opacity:0}}.tour-palette .slide{animation:tourSlide 2.4s ease-in-out infinite}@keyframes tourSlide{0%,12%{transform:translate(-46px)}45%,82%{transform:translate(0)}to{transform:translate(-46px)}}.tour-palette .tour-chev{color:var(--accent);animation:tourNudge 1.2s ease-in-out infinite}@keyframes tourNudge{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.tour-cats .dock{fill:var(--bg-3);stroke:var(--fg-dim);stroke-width:1.2}.tour-cats .tab{fill:var(--field);stroke:var(--line)}.tour-cats .tab.hot{animation:tourTabHot 2.2s ease-in-out infinite}@keyframes tourTabHot{0%,30%,to{fill:var(--field);stroke:var(--line)}40%,85%{fill:var(--accent-soft);stroke:var(--accent)}}.tour-cats .list{transform-origin:48px 50px;animation:tourListUp 2.2s ease-out infinite}@keyframes tourListUp{0%,38%{opacity:0;transform:translateY(8px) scale(.9)}48%,88%{opacity:1;transform:none}to{opacity:0}}.tour-cats .panel{fill:var(--surface-solid);stroke:var(--border)}.tour-cats .row{fill:var(--bg-3)}.tour-cats .cursor path{fill:var(--fg);stroke:var(--bg);stroke-width:1}.tour-cats .cursor{animation:tourCatCursor 2.2s ease-in-out infinite}@keyframes tourCatCursor{0%,10%{transform:translate(96px,30px)}35%,to{transform:translate(46px,62px)}}.tour-pick .panel{fill:var(--surface-solid);stroke:var(--border)}.tour-pick .row{fill:var(--bg-3);stroke:var(--line)}.tour-pick .row.hot{animation:tourRowHot 2s ease-in-out infinite}@keyframes tourRowHot{0%,40%,to{fill:var(--bg-3)}55%,80%{fill:var(--accent-soft);stroke:var(--accent)}}.tour-pick .cursor path{fill:var(--fg);stroke:var(--bg);stroke-width:1}.tour-pick .cursor{animation:tourPickCursor 2s ease-in-out infinite}@keyframes tourPickCursor{0%,20%{transform:translate(92px,64px)}50%,to{transform:translate(60px,36px)}}.tour-pull .stub{fill:var(--bg-3);stroke:var(--fg-dim);stroke-width:1.5}.tour-pull .port{fill:var(--accent)}.tour-pull .link{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:100;stroke-dashoffset:100;animation:tourPullLine 2.6s ease-in-out infinite}.tour-pull .cursor path{fill:var(--fg);stroke:var(--bg);stroke-width:1}.tour-pull .cursor{animation:tourPullCursor 2.6s ease-in-out infinite}.tour-pull .menu rect{fill:var(--surface-solid);stroke:var(--border)}.tour-pull .menu path{fill:none;stroke:var(--fg-dim);stroke-width:2;stroke-linecap:round}.tour-pull .menu{transform-origin:104px 40px;animation:tourPullMenu 2.6s ease-out infinite}@keyframes tourPullLine{0%,10%{stroke-dashoffset:100;opacity:1}55%,90%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes tourPullCursor{0%,10%{transform:translate(50px,42px)}55%,to{transform:translate(106px,42px)}}@keyframes tourPullMenu{0%,58%{opacity:0;transform:scale(.6)}66%,92%{opacity:1;transform:none}to{opacity:0}}.tour-finish-ico{display:inline-flex;color:var(--green);animation:tourPop .5s ease-out}.dialog.template-dialog{width:min(1040px,94vw);min-width:0;max-width:1040px;max-height:88vh;display:flex;flex-direction:column;overflow:hidden;text-align:left}.template-scroll{flex:1;min-height:0;overflow:auto;margin:0 -6px;padding:0 6px}.template-actions{flex:none;margin-top:14px}.template-intro{margin:-4px 0 16px;max-width:760px;font-size:13px;line-height:1.55;color:var(--fg-dim)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.template-card{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .15s ease}.template-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.template-shot{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--canvas-bg);border-bottom:1px solid var(--border)}.template-previews{aspect-ratio:16 / 9;border-bottom:1px solid var(--border)}.template-body{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px;flex:1}.template-body h4{margin:0;font-size:14px}.template-body p{margin:0;font-size:12px;line-height:1.5;color:var(--fg-dim)}.template-use{align-self:flex-start;margin-top:8px;padding:6px 14px;font-size:12.5px}.template-body .template-use{margin-top:auto;padding-top:6px}.template-error{margin:12px 0 0;font-size:12.5px;color:var(--red)}.template-actions{align-items:center}.template-actions .spacer{flex:1}
