.graph-header{
    position:fixed;top:56px;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 20px;
    background:rgba(11,17,33,.85);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
  }
  .graph-brand{display:flex;align-items:center;gap:2px}
  .graph-brand svg{filter:drop-shadow(0 0 8px rgba(34,211,238,.2))}
  .graph-brand h1{font-size:1.1rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;display:flex;align-items:center;gap:0}
  .graph-brand span{font-size:.75rem;color:var(--text-dim);margin-left:8px;font-weight:400;letter-spacing:.05em}
  
  .controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .ctrl-btn{
    padding:6px 12px;border-radius:6px;border:1px solid var(--border);
    background:var(--surface);color:var(--text-muted);font-size:.7rem;
    cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.03em;
  }
  .ctrl-btn:hover,.ctrl-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(34,211,238,.05)}
  .ctrl-group{display:flex;gap:4px;flex-wrap:wrap}
  .ctrl-label{font-size:.6rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-right:4px;align-self:center}
  
  #graph{width:100%;height:100vh;cursor:grab}
  #graph:active{cursor:grabbing}
  
  .tooltip{
    position:fixed;pointer-events:none;z-index:200;
    background:var(--surface);border:1px solid var(--border);border-radius:8px;
    padding:10px 14px;max-width:320px;
    box-shadow:0 8px 32px rgba(0,0,0,.5);
    opacity:0;transition:opacity .15s;
    font-size:.75rem;line-height:1.5;
  }
  .tooltip.visible{opacity:1}
  .tooltip .tt-name{font-weight:600;font-size:.8rem;margin-bottom:4px;color:var(--text)}
  .tooltip .tt-cat{font-size:.65rem;color:var(--text-dim);margin-bottom:6px}
  .tooltip .tt-desc{color:var(--text-muted);font-size:.7rem}
  .tooltip .tt-badges{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}
  .tooltip .tt-tag{padding:2px 6px;border-radius:3px;font-size:.6rem;background:rgba(34,211,238,.08);color:var(--accent);border:1px solid rgba(34,211,238,.15)}
  .tooltip .tt-risk{padding:2px 6px;border-radius:3px;font-size:.6rem;font-weight:600;background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.2)}
  .tooltip .tt-stage{padding:2px 6px;border-radius:3px;font-size:.6rem;font-weight:600;background:rgba(6,182,212,.1);color:var(--cyan);border:1px solid rgba(6,182,212,.2)}
  
  .info-panel{
    position:fixed;bottom:20px;left:20px;z-index:100;
    background:rgba(17,26,46,.9);backdrop-filter:blur(8px);
    border:1px solid var(--border);border-radius:10px;
    padding:14px 18px;font-size:.7rem;color:var(--text-dim);line-height:1.6;max-width:260px;
  }
  .legend-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
  .legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
  .legend-ring{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:2px solid;background:transparent}
  .info-title{font-size:.75rem;font-weight:600;color:var(--text);margin-bottom:8px}
  .info-sep{border:none;border-top:1px solid var(--border);margin:8px 0}
  .info-hint{font-size:.6rem;color:var(--text-dim);font-style:italic}
  
  .stats-bar{
    position:fixed;bottom:20px;right:20px;z-index:100;
    display:flex;gap:12px;
    background:rgba(17,26,46,.9);backdrop-filter:blur(8px);
    border:1px solid var(--border);border-radius:10px;
    padding:10px 16px;
  }
  .stat{text-align:center}
  .stat-val{font-size:1.1rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
  .stat-lbl{font-size:.55rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}
  
  @media(max-width:768px){
    .graph-header{padding:10px 12px;flex-direction:column;gap:8px}
    .info-panel{bottom:10px;left:10px;max-width:180px;padding:10px;font-size:.6rem}
    .stats-bar{bottom:10px;right:10px;padding:8px 10px;gap:8px}
    .stat-val{font-size:.85rem}
    .ctrl-btn{padding:4px 8px;font-size:.6rem}
  }
.site-nav .wordmark-tag{display:none}}

/* Graph page: nav is fixed not sticky, sits above the graph */
.site-nav{position:fixed;left:0;right:0;top:0}
#graph{margin-top:110px}

.initially-hidden{display:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.ml-8{margin-left:8px}
.bg-accent{background:var(--accent)}
.border-red{border-color:var(--red)}
.border-cyan{border-color:#06b6d4}