:root{--bg:#07111f;--surface:#0d1a2c;--surface-2:#111f33;--line:#223451;--text:#edf6ff;--muted:#8ea3bc;--cyan:#32d6d0;--blue:#4e8cff;--danger:#ff6b7a;--shadow:0 18px 50px rgba(0,0,0,.28);font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-width:320px;overflow:hidden}button,input,select,textarea{font:inherit}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:rgba(8,18,32,.96)}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#001d22;background:linear-gradient(135deg,var(--cyan),#78f0b8);box-shadow:0 0 25px rgba(50,214,208,.18)}h1,h2,h3,p{margin:0}.brand h1{font-size:18px;letter-spacing:.04em}.brand p{margin-top:4px;color:var(--muted);font-size:12px;letter-spacing:.14em}.header-actions{display:flex;gap:8px}.button{border:1px solid transparent;border-radius:9px;padding:9px 14px;color:var(--text);cursor:pointer;transition:.18s;background:var(--surface-2)}.button:hover,.icon-button:hover,.tool-button:hover{transform:translateY(-1px);border-color:#426184}.button.primary{background:linear-gradient(135deg,#24bebb,#268fe6);color:#001a22;font-weight:700}.button.secondary{border-color:var(--line)}.button.ghost{border-color:var(--line);background:transparent}.button.danger-ghost{border-color:#573044;background:transparent;color:#ff9fac}.file-button{display:inline-flex}.file-button input{display:none}.workspace{height:calc(100vh - 76px);display:grid;grid-template-columns:280px minmax(420px,1fr) 310px}.panel{background:var(--surface);padding:20px;overflow:auto}.left-panel{border-right:1px solid var(--line)}.detail-panel{border-left:1px solid var(--line)}.panel-heading,.editor-title,.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.eyebrow{font-size:10px;color:var(--cyan);letter-spacing:.2em}.panel h2,.editor h2,.dialog-card h2{font-size:18px;margin-top:4px}.icon-button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#14253c;color:var(--text);font-size:22px;cursor:pointer}.icon-button.delete{color:#ff9fac}.search{height:42px;border:1px solid var(--line);background:#091626;border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 12px}.search:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(50,214,208,.08)}.search input{width:100%;background:transparent;border:0;outline:0;color:var(--text);font-size:14px}.tabs{display:flex;margin:18px 0 10px;border-bottom:1px solid var(--line)}.tab{flex:1;padding:10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer}.tab.active{color:var(--text);border-color:var(--cyan)}.tab span{font-size:11px;background:#1b2c44;border-radius:12px;padding:2px 6px}.resource-list{display:flex;flex-direction:column;gap:5px;max-height:calc(100vh - 330px);overflow:auto}.resource-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:9px;cursor:pointer;color:#c5d3e3;background:transparent;text-align:left}.resource-item:hover,.resource-item.active{background:#13243a;border-color:#29405e}.resource-item.active{box-shadow:inset 3px 0 var(--cyan)}.dot{width:9px;height:9px;border-radius:50%;flex:none}.item-copy{overflow:hidden}.item-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta{font-size:11px;color:var(--muted);margin-top:3px}.legend{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;display:flex;gap:8px;flex-wrap:wrap}.legend span{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.graph-panel{position:relative;min-width:0}.graph-toolbar{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:#0a1727}.status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.status b{color:var(--text);font-weight:500}.pulse{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.toolbar-actions{display:flex;align-items:center;gap:5px}.tool-button{height:31px;min-width:31px;border:1px solid var(--line);border-radius:7px;background:#122238;color:#c6d5e6;cursor:pointer}.toolbar-actions span{font-size:12px;color:var(--muted);min-width:44px;text-align:center}.graph-wrap{height:calc(100% - 55px);overflow:hidden;background-color:#071321;background-image:radial-gradient(#26405c 1px,transparent 1px);background-size:26px 26px;position:relative}#graph{width:100%;height:100%;touch-action:none}.edge{stroke:#58708d;stroke-width:1.4;opacity:.75}.edge.selected{stroke:var(--cyan);stroke-width:2.5}.edge-label{fill:#9bb0c7;font-size:11px;text-anchor:middle;paint-order:stroke;stroke:#071321;stroke-width:5px;cursor:pointer}.node-circle{stroke-width:3;cursor:grab;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}.node-circle:active{cursor:grabbing}.node.selected .node-circle{stroke:#fff!important;stroke-width:4}.node-label{fill:#f4f9ff;font-weight:600;font-size:12px;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#071321;stroke-width:4px}.node-type-label{fill:#93a9c2;font-size:9px;text-anchor:middle;pointer-events:none}.graph-tip{position:absolute;left:16px;bottom:14px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:rgba(7,17,31,.8);color:var(--muted);font-size:11px;pointer-events:none}.empty-detail{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding-bottom:80px}.empty-detail h2{font-size:17px;color:var(--text);margin:12px 0 8px}.empty-detail p{font-size:13px;line-height:1.7}.empty-icon{font-size:38px;color:var(--cyan)}.hidden{display:none!important}.editor{display:flex;flex-direction:column;gap:14px}.editor label,.dialog-card label{display:flex;flex-direction:column;gap:7px;color:#9fb2c9;font-size:13px}.editor input,.editor select,.editor textarea,.dialog-card input,.dialog-card select,.dialog-card textarea{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:#091626;color:var(--text);outline:0;resize:vertical}.editor input:focus,.editor select:focus,.editor textarea:focus,.dialog-card input:focus,.dialog-card select:focus,.dialog-card textarea:focus{border-color:var(--cyan)}.connections{margin-top:6px;padding-top:16px;border-top:1px solid var(--line)}.connections h3{font-size:13px;margin-bottom:9px}.connection{font-size:12px;color:var(--muted);padding:8px 0;border-bottom:1px solid rgba(34,52,81,.6);cursor:pointer}.connection b{color:#dbe9f6}dialog{border:1px solid #31506e;border-radius:15px;padding:0;background:var(--surface);color:var(--text);box-shadow:var(--shadow);width:min(440px,calc(100vw - 30px))}dialog::backdrop{background:rgba(2,8,16,.72);backdrop-filter:blur(3px)}.dialog-card{padding:22px;display:flex;flex-direction:column;gap:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;padding:10px 16px;background:#e8fff9;color:#063c36;border-radius:9px;font-size:13px;pointer-events:none;transition:.25s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}
#graph{display:block;cursor:grab}#graph:active{cursor:grabbing}.tool-button.active{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 12px rgba(50,214,208,.15)}.axis-cube{position:absolute;right:20px;bottom:18px;width:46px;height:46px;border:1px solid #31506e;background:rgba(9,22,38,.8);transform:rotateX(58deg) rotateZ(-35deg);transform-style:preserve-3d;color:var(--cyan);font-size:10px;pointer-events:none}.axis-cube b,.axis-cube span,.axis-cube i{position:absolute;font-style:normal}.axis-cube b{left:18px;top:-17px}.axis-cube span{right:-12px;bottom:0;color:#60a5fa}.axis-cube i{left:-10px;bottom:0;color:#fb7185}
@media(max-width:1000px){.workspace{grid-template-columns:235px 1fr}.detail-panel{position:fixed;right:0;top:76px;bottom:0;width:310px;z-index:5;box-shadow:-15px 0 35px rgba(0,0,0,.3)}.empty-detail{display:none}.detail-panel:has(.editor.hidden + .editor.hidden){transform:translateX(100%)}.header-actions .button{padding:8px 9px;font-size:12px}}
@media(max-width:700px){body{overflow:auto}.topbar{height:auto;min-height:76px;padding:12px 14px;align-items:flex-start;gap:8px}.brand p{display:none}.brand h1{font-size:15px}.header-actions{flex-wrap:wrap;justify-content:flex-end}.workspace{height:calc(100vh - 90px);grid-template-columns:1fr}.left-panel{display:none}.graph-panel{height:100%}.detail-panel{top:90px;width:min(88vw,330px)}}
