// Abstract workgraph visualization — nodes + edges showing humans + AI agents flowing across tasks
const Workgraph = () => {
const accent = 'var(--accent)';
const ink = 'var(--ink)';
const muted = 'var(--muted)';
const surface = 'var(--surface)';
const line = 'var(--line)';
// Nodes: type h=human, a=agent, t=task, o=outcome
const nodes = [
{ id: 'n1', type: 'h', x: 80, y: 90, label: 'Sales Rep' },
{ id: 'n2', type: 'a', x: 230, y: 60, label: 'Lead qualifier' },
{ id: 'n3', type: 't', x: 380, y: 110, label: 'Discovery call' },
{ id: 'n4', type: 'h', x: 530, y: 70, label: 'AE' },
{ id: 'n5', type: 'a', x: 680, y: 130, label: 'Notes agent' },
{ id: 'n6', type: 'a', x: 90, y: 220, label: 'Intake bot' },
{ id: 'n7', type: 't', x: 240, y: 250, label: 'Triage' },
{ id: 'n8', type: 'h', x: 400, y: 240, label: 'Specialist' },
{ id: 'n9', type: 'a', x: 560, y: 280, label: 'Drafting agent' },
{ id: 'n10',type: 'o', x: 720, y: 250, label: 'Resolved' },
{ id: 'n11',type: 'h', x: 150, y: 380, label: 'Manager' },
{ id: 'n12',type: 't', x: 320, y: 400, label: 'Approval' },
{ id: 'n13',type: 'a', x: 480, y: 410, label: 'Compliance check' },
{ id: 'n14',type: 'o', x: 660, y: 380, label: 'Shipped' },
];
const edges = [
['n1','n2'], ['n2','n3'], ['n3','n4'], ['n4','n5'], ['n5','n10'],
['n6','n7'], ['n7','n8'], ['n8','n9'], ['n9','n10'],
['n11','n12'], ['n12','n13'], ['n13','n14'],
['n2','n7'], ['n8','n12'], ['n4','n8'],
];
const byId = Object.fromEntries(nodes.map(n => [n.id, n]));
const nodeShape = (n) => {
const r = 14;
if (n.type === 'h') return