.node-port-panel{height:auto;border-top:1px solid var(--line);cursor:default;background:var(--paper);border-radius:0 0 9px 9px}
.node-port-toggle{height:26px;display:flex;align-items:center;gap:6px;width:100%;padding:0 10px;font-size:9px;color:var(--tone-7);cursor:pointer;box-sizing:border-box}.node-port-toggle .small-icon{width:11px;height:11px}.node-port-toggle small{font:8px var(--mono);color:var(--tone-7)}.node-port-toggle b{font-size:13px;font-weight:400;margin-left:auto}
.node-port-list{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--tone-5) transparent}
.named-port-row{position:relative;height:22px;display:flex;align-items:center;gap:5px;border-top:1px solid var(--line);box-sizing:border-box;padding:0 12px}
.named-port-name{font:9px var(--mono);color:var(--ink);padding:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;cursor:pointer;height:100%}.named-port-name:hover{text-decoration:underline}.named-port-state{font-size:9px;color:var(--tone-7);margin-right:2px}.is-used .named-port-state{color:var(--ink)}.is-disabled .named-port-name,.is-disabled .named-port-state{color:var(--tone-6)}
.named-port-dot{position:absolute;top:50%;transform:translateY(-50%);width:9px;height:9px;padding:0;border:1px solid var(--tone-7);background:var(--paper);border-radius:50%;z-index:4;cursor:crosshair;touch-action:none}.named-port-dot.left{left:0}.named-port-dot.right{right:0}.is-used .named-port-dot{background:var(--tone-7)}.is-disabled .named-port-dot{border-style:dashed;cursor:not-allowed}.named-port-dot:hover,.named-port-dot:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.named-port-dot.cable-target{background:var(--ink)}
.graph-context-menu{position:fixed;width:228px;max-height:calc(100vh - 12px);overflow:auto;box-sizing:border-box;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 30px #0002;z-index:90}
.graph-context-menu button{display:block;text-align:left;width:100%;min-height:32px;font-size:11px;color:var(--ink);padding:7px 10px;border-radius:5px}.graph-context-menu button:hover,.graph-context-menu button:focus-visible{background:var(--tone-2);outline:0}.graph-context-menu .is-danger{color:var(--error);border-top:1px solid var(--line);border-radius:0;margin-top:4px}
.cable-template-summary{padding:10px;border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--tone-7);line-height:1.7;margin-bottom:12px}
.node .port{left:50%}
