
.node.edge-insert-preview {
  box-shadow: 0 0 0 3px rgba(74,158,255,0.7), 0 4px 20px rgba(74,158,255,0.3) !important;
}

#ctx-menu {
  position: fixed; background: #fff; border: 1px solid #ddd;
  border-radius: 7px; box-shadow: 0 6px 20px rgba(0,0,0,0.14);
  z-index: 3100; min-width: 160px; padding: 4px 0; display: none;
}
.cm-label { padding: 5px 14px 2px; font-size: 11px; color: #999; text-transform: uppercase; letter-spacing: .04em; }
.cm-item  { padding: 8px 14px; cursor: pointer; font-size: 13px; color: #222; white-space: nowrap; }
.cm-item:hover  { background: #f0f4ff; }
.cm-item.danger { color: #cc3333; }
.cm-item.danger:hover { background: #fff0f0; }
.cm-sep  { height: 1px; background: #eee; margin: 4px 0; }
.cm-colors { padding: 6px 12px; display: flex; gap: 7px; }
.cm-dot {
  width: 20px; height: 20px; border-radius: 50%; cursor: pointer;
  border: 2px solid transparent; transition: transform 0.1s;
}
.cm-dot:hover { transform: scale(1.25); border-color: #4a9eff; }
.cm-dot.active { border-color: #4a9eff; }

#sel-box {
  position: fixed; border: 1.5px solid #4a9eff;
  background: rgba(74,158,255,0.07); pointer-events: none;
  display: none; z-index: 90;
}

#toast {
  position: fixed; bottom: 70px; left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: rgba(30,30,30,0.92); color: #fff;
  padding: 8px 20px; border-radius: 20px; font-size: 13px;
  opacity: 0; transition: opacity 0.2s, transform 0.2s;
  z-index: 3500; pointer-events: none; white-space: nowrap;
}
#toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
