/* Admin knowledge-graph viewer (graph.html). Builds on admin.css tokens. */
.kg-body{display:grid;grid-template-columns:250px minmax(0,1fr) 340px;min-height:0}
.kg-side{overflow:auto;padding:14px;border-right:1px solid var(--cp-border);background:var(--cp-bg-elevated)}
.kg-side h4{margin:16px 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cp-text-muted)}
.kg-side input[type=search]{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--cp-border);border-radius:8px;background:var(--cp-surface);color:var(--cp-text);font:inherit}
.kg-side .mini,.kg-panel .mini{font-size:12px;color:var(--cp-text-soft);line-height:1.45}
.lnk{border:0;background:none;padding:0;color:var(--cp-link);font:inherit;font-size:11px;cursor:pointer;text-transform:none;letter-spacing:0}
.kg-hits{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.kg-hits button{display:flex;gap:6px;align-items:center;text-align:left;border:0;background:none;color:var(--cp-text);padding:5px 6px;border-radius:6px;font:inherit;font-size:13px;cursor:pointer}
.kg-hits button:hover,.kg-hits button:focus-visible{background:var(--cp-accent-soft)}
.kg-views{display:flex;flex-wrap:wrap;gap:6px}
.kg-views button{border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text);border-radius:999px;padding:5px 10px;font:inherit;font-size:12.5px;cursor:pointer}
.kg-views button[aria-pressed=true]{background:var(--cp-accent);border-color:var(--cp-accent);color:var(--cp-accent-fg)}
.kg-types{display:flex;flex-direction:column;gap:2px}
.kg-types label,.kg-opt{display:flex;align-items:center;gap:7px;font-size:13px;padding:2px 0;cursor:pointer}
.kg-types .n{margin-left:auto;font-size:11px;color:var(--cp-text-soft)}
.dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--c)}
.kg-stage{position:relative;min-width:0;min-height:0;background:var(--cp-bg)}
.kg-stage svg{width:100%;height:100%;display:block;cursor:grab}
.kg-stage svg:active{cursor:grabbing}
.kg-stage .lk{stroke:var(--cp-border-strong);stroke-opacity:.35}
.kg-stage .lk.k{stroke:var(--cp-accent);stroke-dasharray:3 3;stroke-opacity:.6}
.kg-stage .nd circle.b{stroke:var(--cp-surface);stroke-width:1.5;cursor:pointer}
.kg-stage .nd circle.halo{fill:none;stroke:var(--cp-accent);stroke-width:2;stroke-opacity:.75}
.kg-stage .nd text{font-size:10.5px;fill:var(--cp-text);paint-order:stroke;stroke:var(--cp-bg);stroke-width:3px;pointer-events:none}
.kg-stage.nolabels .nd text{display:none}
.kg-stage.nolabels .nd.big text,.kg-stage.nolabels .nd.on text{display:block}
.kg-stage .dim{opacity:.12}
.kg-stage .nd.on circle.b{stroke:var(--cp-accent);stroke-width:3}
.kg-stage .lk.on{stroke:var(--cp-accent);stroke-opacity:.9;stroke-width:1.6}
.kg-panel{overflow:auto;padding:16px;border-left:1px solid var(--cp-border);background:var(--cp-bg-elevated)}
.kg-panel .ty{display:inline-flex;gap:6px;align-items:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cp-text-muted)}
.kg-panel h2{margin:6px 0 8px;font-size:19px;line-height:1.25}
.kg-panel h2 img{height:28px;vertical-align:middle;margin-right:8px;border-radius:4px;background:#fff}
.kg-panel p{margin:6px 0;font-size:13.5px;line-height:1.5}
.kg-panel h4{margin:16px 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cp-text-muted)}
.kg-panel dl{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;margin:0;font-size:12.5px}
.kg-panel dt{font-weight:600;color:var(--cp-text-muted)}
.kg-panel dd{margin:0;word-break:break-word}
.kg-panel .src{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--cp-text-soft);margin-left:4px}
.kg-panel .rel{font-size:11.5px;color:var(--cp-text-soft);margin:10px 0 3px}
.kg-panel .nb{display:flex;align-items:center;gap:7px;width:100%;text-align:left;border:0;background:none;color:var(--cp-text);padding:4px 6px;border-radius:6px;font:inherit;font-size:13px;cursor:pointer}
.kg-panel .nb:hover,.kg-panel .nb:focus-visible{background:var(--cp-accent-soft)}
.kg-panel .acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.kg-panel a{color:var(--cp-link)}
.kg-panel .empty{color:var(--cp-text-muted)}
@media (max-width:1100px){.kg-body{grid-template-columns:220px minmax(0,1fr)}.kg-panel{position:fixed;right:0;top:58px;bottom:0;width:320px;box-shadow:var(--cp-shadow)}.kg-panel:empty{display:none}}

/* gaps + linking */
.kg-views .gapn{display:inline-block;min-width:16px;margin-left:3px;padding:0 5px;border-radius:999px;background:var(--cp-danger);color:#fff;font-size:10.5px;line-height:16px}
.kg-stage .nd.gap circle.b{stroke:var(--cp-danger);stroke-width:3}
.pill.draft a{color:inherit;font-weight:700}
.gap{display:flex;flex-direction:column;gap:6px;padding:8px 10px;margin:0 0 6px;border-radius:8px;border:1px solid var(--cp-border);background:var(--cp-surface);font-size:12.5px;line-height:1.4}
.gap.g-broken{border-left:3px solid var(--cp-danger)}.gap.g-suggest{border-left:3px solid var(--cp-success)}.gap.g-missing{border-left:3px solid var(--cp-warning)}
.gap .ga{display:flex;gap:6px;flex-wrap:wrap}
.nbr{display:flex;align-items:center}
.nbr .nb{flex:1}
.unl{border:0;background:none;color:var(--cp-text-soft);cursor:pointer;padding:3px 7px;border-radius:6px;font-size:12px}
.unl:hover,.unl:focus-visible{color:var(--cp-danger);background:color-mix(in srgb,var(--cp-danger) 12%,transparent)}
.lkf input{width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid var(--cp-border);border-radius:8px;background:var(--cp-surface);color:var(--cp-text);font:inherit;font-size:13px}
.lko{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;margin:0 0 5px;padding:7px 10px;border-radius:8px;border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text);font:inherit;font-size:12.5px;cursor:pointer}
.lko:hover,.lko:focus-visible{border-color:var(--cp-accent);background:var(--cp-accent-soft)}
.lko small{font-size:10.5px;color:var(--cp-text-soft)}
.lko.k{border-style:dashed}
.btn.sm{padding:4px 9px;font-size:12px}
