:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#252d3b;background:#f8faff}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,select,textarea{font:inherit}button{cursor:pointer}header{height:70px;position:absolute;z-index:5;top:0;left:0;right:0;background:#f9faffed;border-bottom:1px solid #dfe5f0;display:flex;align-items:center;justify-content:space-between;padding:0 23px;box-shadow:0 3px 15px #1429570b}.header-left,header nav{display:flex;align-items:center;gap:10px}.header-left a,.header-left button,header nav button{border:1px solid #dce3f0;background:white;border-radius:11px;padding:9px 14px;color:#4d5b70;text-decoration:none;font-size:12px;font-weight:650}.header-left a:hover,.header-left button:hover,header nav button:hover{border-color:#9ba8ec;color:#635bd6}header strong{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;color:#1e2736;font-size:18px;white-space:nowrap}.brand-icon{width:32px;height:32px;display:inline-grid;place-items:center;background:#202b3b;border-radius:10px;color:#fff;font-size:18px}header small{background:#eaf0ff;border-radius:9px;color:#6674a1;font-size:11px;padding:5px 8px}#stage{position:absolute;inset:70px 0 0;overflow:hidden;outline:none;cursor:grab;background-color:#f4f7ff;background-image:radial-gradient(#c2d0ee 0.8px,transparent 0.8px),linear-gradient(#dfe7f850 1px,transparent 1px),linear-gradient(90deg,#dfe7f850 1px,transparent 1px),radial-gradient(circle at 10% 13%,#ececff 0,transparent 35%),radial-gradient(circle at 82% 20%,#e5f1ff 0,transparent 38%);background-size:20px 20px,100px 100px,100px 100px,auto,auto}#stage.panning{cursor:grabbing}#world{position:absolute;left:0;top:0;transform-origin:0 0}#wires{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}#nodes{position:absolute;left:0;top:0}.wire{fill:none;stroke:#acb8cf;stroke-width:2.5;pointer-events:stroke;cursor:pointer}.wire:hover,.wire.selected{stroke:#7470e8;stroke-width:5}.wire.pending{stroke:#7971eb;stroke-dasharray:6 5;pointer-events:none}.node{position:absolute;width:318px;border:1px solid #e1e5f1;border-radius:15px;background:#fff;box-shadow:0 8px 21px #2a3d681c;user-select:none}.node.selected{outline:2px solid #8578ef;box-shadow:0 8px 28px #655dd138}.node.image{width:228px;overflow:visible}.node-head{height:30px;padding:8px 12px;border-bottom:1px solid #f1f3f8;font-size:11px;font-weight:650;color:#8993a6;cursor:move;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.node.image .node-head{position:absolute;top:5px;left:5px;z-index:1;max-width:calc(100% - 10px);height:auto;padding:3px 6px;background:#151821ab;color:#fff;border:0;border-radius:4px;font-size:9px}.node.image img{display:block;width:100%;height:210px;object-fit:cover;border-radius:14px}.port{position:absolute;top:50%;width:15px;height:15px;border:1.5px solid #adb8cb;background:#fff;border-radius:50%;transform:translateY(-50%);z-index:2;cursor:crosshair;box-shadow:0 1px 5px #2a3d681c}.port.out{right:-8px}.port.in{left:-8px}.port:hover{border-color:#766ee5;background:#e9e6ff;transform:translateY(-50%) scale(1.22)}.video-output{height:198px;display:flex;align-items:center;justify-content:center;background:#f9faff;border:1px solid #e3e7f2;border-radius:14px;color:#abb5c7;box-shadow:0 7px 20px #2a3d6816;margin-bottom:10px;overflow:hidden}.video-output .play{height:35px;width:35px;display:grid;place-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 9px #2a3d681a;font-size:13px}.video-output video{width:100%;height:100%;object-fit:contain;background:#141821}.node.video{background:transparent;border:0;box-shadow:none}.node.video.selected{outline:0}.node.video.selected .editor-card{outline:2px solid #8578ef}.node.video>.port.in{top:100px}.editor-card{background:#fff;border:1px solid #e1e5f1;border-radius:15px;box-shadow:0 8px 21px #2a3d681c;overflow:hidden}.node.video .node-head{height:25px;padding:6px 10px;font-size:10px}.video-body{padding:10px}.video-body textarea{width:100%;min-height:89px;border:0;border-radius:8px;background:#f7f8fd;padding:9px;font:inherit;font-size:12px;line-height:1.55;resize:vertical;outline:none}.video-body textarea:focus{box-shadow:0 0 0 2px #8d86ef55}.options{display:flex;gap:6px;margin-top:8px}.options select{min-width:0;border:0;border-radius:8px;padding:5px 6px;background:#f0f1f8;font-size:10px;color:#505a72}.options select:first-child{flex:1;color:#665dda;background:#f1efff;font-weight:700}.refs,.task-state{font-size:10px;color:#8792a4;margin-top:7px;line-height:1.4;overflow-wrap:anywhere}.refs{max-height:35px;overflow:auto}.run{width:100%;margin-top:8px;border:0;border-radius:8px;background:#2b3243;color:#fff;padding:8px;font-size:11px;font-weight:700}.run:hover{background:#554bc4}.run:disabled{opacity:.5;cursor:not-allowed}#marquee{position:absolute;border:1px solid #756be8;background:#7166ed24;pointer-events:none}.stats{position:absolute;top:22px;left:22px;border:1px solid #e1e5ef;background:#fffdfd;border-radius:11px;padding:10px 15px;font-size:12px;color:#596478;box-shadow:0 4px 14px #2a3d6810}.canvas-badge{position:absolute;top:22px;right:22px;display:flex;align-items:center;gap:9px;border:1px solid #e1e5ef;border-radius:12px;background:white;padding:9px 14px;color:#313748;font-size:13px;font-weight:700;box-shadow:0 4px 14px #2a3d6810}.canvas-badge span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#282f3d;color:#fff}.canvas-badge small{color:#9ba4b7;background:#f1f3f8;border-radius:9px;padding:2px 7px}.minimap{position:absolute;left:18px;bottom:22px;width:210px;height:130px;border:1px solid #e2e7f1;border-radius:12px;background:#ffffffd9;box-shadow:0 6px 20px #2a3d6815;overflow:hidden}.minimap svg{width:100%;height:100%}footer{position:absolute;z-index:4;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #e1e5ef;background:#fff;border-radius:18px;box-shadow:0 7px 23px #2a3d6828;font-size:12px;color:#596478;white-space:nowrap}footer button{border:0;background:#fff;border-radius:8px;padding:8px 10px;color:#5a6579;font-size:12px}footer button:hover{background:#f0f1fc;color:#5f58cf}footer .dock-add{width:36px;height:36px;background:#262d3c;color:white;border-radius:10px;font-size:22px;line-height:1}footer .dock-add:hover{background:#5d55cc;color:white}.dock-separator{height:22px;border-left:1px solid #e1e5ef;margin:0 3px}.selection-label{font-size:10px;color:#a0aabc;margin-left:6px}#toast{position:absolute;z-index:8;top:82px;left:50%;transform:translateX(-50%);background:#293041;color:#fff;border-radius:9px;padding:9px 14px;font-size:12px}dialog{max-width:440px;border:1px solid #dfe4f0;border-radius:16px;padding:24px;box-shadow:0 18px 55px #0003}dialog::backdrop{background:#1d274066}dialog p{font-size:13px;line-height:1.7;color:#596478}#closeHelp{border:0;border-radius:9px;background:#6961d9;color:white;padding:9px 15px;cursor:pointer}@media(max-width:700px){header{padding:0 9px}.header-left button,header nav button#arrange,header small,.selection-label,.minimap{display:none}header strong{font-size:13px}.header-left a,header nav button{padding:7px;font-size:10px}.stats{font-size:10px;padding:7px}.canvas-badge{font-size:10px;padding:6px}footer{max-width:98vw;overflow:auto}}
