:root{color-scheme:dark;--bg:#090b11;--panel:#0e1119;--line:#232833;--text:#e3e9f3;--muted:#94a0b2;--accent:#8ddccd}*{box-sizing:border-box}body{margin:0;min-width:1150px;background:var(--bg);color:var(--text);font-family:'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased}.topbar{height:58px;display:flex;align-items:center;gap:22px;padding:0 24px;border-bottom:1px solid var(--line);font-size:13px;color:#b0bbcd}.brand{font-size:20px;font-weight:650;letter-spacing:-.7px;color:var(--text)}.brand span{color:var(--accent)}.separator{color:#465268}.top-end{margin-left:auto;display:flex;gap:24px;align-items:center;font-size:12px}.study{padding:5px 9px;border:1px solid #303745;border-radius:4px;color:var(--muted)}main{height:calc(100vh - 58px);min-height:600px;display:grid;grid-template-columns:minmax(0,1fr) 306px}.canvas{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000000}.canvas-head{position:absolute;top:26px;left:28px;z-index:1}h1{font-size:15px;font-weight:500;margin:0 0 7px}.canvas-head>span{font-size:12px;color:var(--muted)}.network{width:100%;height:100%;max-height:900px;display:block}.edge{stroke:#4d627b;stroke-width:.85;opacity:.24}.selected-edge{stroke:#8ddccd;stroke-width:1.3;opacity:.7}.node-core{fill:#b4bfda;stroke:#ced7ed;stroke-width:.7}.node-halo{fill:#8cadd0;opacity:.045}.project .node-core{fill:#66c9be;stroke:#b6f0e8}.project .node-halo{fill:#5bcbbb;opacity:.075}.impact-0 .node-core{opacity:.28}.impact-1 .node-core{opacity:.6}.impact-2 .node-core{opacity:1}.selection-ring{fill:none;stroke:var(--accent);stroke-width:1.2}.node-label rect{fill:#090b11;stroke:none;opacity:.94}.node-label text{fill:#a6b3c9;font-size:13px;font-weight:450}.project-label rect{fill:#0d1b20;stroke:#417b77;stroke-width:.8}.project-label text{fill:#bce9df;font-size:13px;font-weight:550}.selected-label text{fill:#f0f6ff;font-weight:600}.canvas-foot{position:absolute;bottom:20px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.impact-key{display:flex;align-items:center;gap:6px}.impact-key i{display:block;width:5px;height:5px;background:#000000;border-radius:50%;opacity:.28}.impact-key i:nth-child(2){width:9px;height:9px;opacity:.6}.impact-key i:nth-child(3){width:15px;height:15px;opacity:1}.impact-key>span{margin-left:7px}aside{border-left:1px solid var(--line);background:var(--panel);padding:0 24px;overflow-y:auto}.inspector-title{height:60px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.selection-indicator{width:6px;height:6px;border:1px solid var(--accent);border-radius:50%}.profile{display:flex;align-items:center;gap:13px;padding:26px 0}.avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#000000;border:1px solid #6a8694;font-size:12px;color:#dce9f3}h2{font-size:22px;font-weight:550;letter-spacing:-.5px;margin:0 0 5px}.profile p{font-size:12px;color:var(--muted);margin:0}.impact-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.impact-line strong{color:#e8eef9;font-size:14px;font-weight:500}.metrics{display:grid;grid-template-columns:1fr 1fr;padding:25px 0;border-bottom:1px solid var(--line)}.metrics strong{font-size:25px;letter-spacing:-.5px;font-weight:500;display:block}.metrics span{font-size:12px;color:var(--muted);display:block;margin-top:5px}.detail-section{padding:23px 0;border-bottom:1px solid var(--line)}h3{font-size:13px;font-weight:550;display:flex;justify-content:space-between;margin:0 0 20px}h3>span{color:var(--muted);font-weight:400}.focus-row{display:flex;justify-content:space-between;font-size:12px;color:#acb9ca}.focus-row strong{font-weight:400}.bar{height:3px;margin:10px 0 17px;background:#000000}.bar:last-child{margin-bottom:0}.bar i{display:block;height:100%;background:#000000}.project-row{display:flex;align-items:center;gap:12px;margin-top:20px}.project-dot{width:7px;height:7px;border-radius:50%;background:#000000}.project-row strong{display:block;font-weight:500;font-size:14px}.project-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.project-row>span:last-child{margin-left:auto;font-size:12px;color:var(--muted)}.quality-note{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:24px 0}.quality-note strong{font-weight:400;color:#b3bfd0}.sample-note{font-size:12px;line-height:1.7;color:var(--muted);margin:5px 0 22px}

/* Still overview using ForceAtlas2 positions and Sigma-style quadratic curves. */
.edge{fill:none;stroke:#547589;stroke-width:.85;stroke-linecap:round;opacity:.32}
.selected-edge{stroke:#96dfd3;stroke-width:1.4;opacity:.8}
.node-underlay{fill:#090b11}
.node-core{fill:#b4bfda;stroke:#c3cfe4;stroke-width:.5}
.project .node-core{fill:#73cfc2;stroke:#b6f0e8}
.node-label rect{fill:#0c111a;stroke:#394653;stroke-width:.55;opacity:.96}
.project-label rect{fill:#0d191d;stroke:#417b77;stroke-width:.75}
.node-label text,.project-label text{font-size:11.5px}/* Actual 3D Force Graph canvas, with flat screen-facing impact sprites. */
#force-graph{position:absolute;inset:0;outline:none;cursor:grab}
#force-graph:active{cursor:grabbing}
#force-graph:focus-visible{box-shadow:inset 0 0 0 1px #8ddccd}
#graph-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.graph-label{position:absolute;top:0;left:0;visibility:hidden;white-space:nowrap;padding:3px 7px;border:1px solid #34404e;border-radius:3px;background:#000000eb;color:#b7c4d7;font-size:11px;line-height:14px}
.graph-label.project{color:#c1eadf;border-color:#355f5d;background:#000000eb}
.graph-label.selected{color:#effff9;border-color:#79a99b;font-weight:600}
#graph-status{position:absolute;left:0;right:0;top:48%;text-align:center;color:#94a0b2;font-size:13px}
#graph-status[hidden]{display:none}
.canvas-head,.canvas-foot{pointer-events:none;z-index:2}

.graph-label{will-change:transform,opacity}.tracking .graph-label{transition:opacity 180ms ease}

.entity-key{display:flex;align-items:center;gap:18px}.entity-key>span{display:inline-flex;align-items:center;gap:7px}.entity-key i{display:inline-block;width:9px;height:9px;flex:none}.project-symbol{background:#000000;border-radius:50%}.kol-symbol{background:#000000;border-radius:50%}.project-dot{background:#000000;border-radius:50%}
