/* Uses the existing case/theme tokens; category colours never encode risk. */
.evidence-graph-switch {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 16px 0;
}
.evidence-graph-switch [aria-pressed="true"] {
  border-color: var(--r-accent);
  color: var(--r-accent);
  background: var(--r-surface);
}
.evidence-graph-toolbar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 16px 0;
}
.evidence-graph-toolbar label {
  display: grid;
  gap: 7px;
  min-width: 0;
  font-size: 11px;
  font-weight: 650;
  color: var(--r-muted);
}
.evidence-graph-toolbar input,
.evidence-graph-toolbar select {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  border: 1px solid var(--r-border);
  border-radius: 8px;
  padding: 8px 10px;
  background: var(--r-bg);
  color: var(--r-text);
  font: inherit;
}
.evidence-graph-controls {
  grid-column: 1/-1;
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.evidence-graph-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 34%);
  border: 1px solid var(--r-border);
  border-radius: 10px;
  overflow: hidden;
  min-width: 0;
}
.evidence-graph-viewport {
  height: 440px;
  min-width: 0;
  overflow: hidden;
  position: relative;
  background: var(--r-surface);
}
.evidence-graph-canvas {
  display: block;
  width: 100%;
  height: 100%;
  touch-action: none;
  cursor: grab;
}
.evidence-graph-canvas:active {
  cursor: grabbing;
}
.evidence-graph-inspector {
  padding: 20px;
  border-left: 1px solid var(--r-border);
  max-height: 440px;
  overflow-y: auto;
  min-width: 0;
  background: var(--r-bg);
}
.evidence-graph-inspector h4 {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.evidence-graph-value {
  font-family: ui-monospace, monospace;
  font-size: 11px;
  line-height: 1.7;
  overflow-wrap: anywhere;
  color: var(--r-muted);
  margin: 10px 0;
}
.evidence-graph-inspector .research-actions {
  gap: 7px;
}
.evidence-graph-inspector .research-button {
  font-size: 11px;
  text-align: left;
}
.evidence-graph-edge {
  stroke: var(--r-muted);
  stroke-width: 1.25;
  fill: none;
  opacity: 0.6;
  cursor: pointer;
  pointer-events: stroke;
}
.evidence-graph-edge:hover,
.evidence-graph-edge.is-selected {
  stroke: var(--r-accent);
  stroke-width: 2.5;
  opacity: 1;
}
.evidence-graph-arrow {
  fill: var(--r-muted);
}
.evidence-graph-node {
  --node-colour: var(--r-accent);
  cursor: pointer;
  outline: none;
}
.evidence-graph-node circle {
  fill: var(--r-bg);
  stroke: var(--node-colour);
  stroke-width: 1.8;
}
.evidence-graph-node.is-selected circle,
.evidence-graph-node:focus-visible circle {
  stroke: var(--r-accent);
  stroke-width: 4;
}
.evidence-graph-node.is-dimmed {
  opacity: 0.25;
}
.evidence-graph-type {
  fill: var(--r-text);
  font-size: 8px;
  font-weight: 750;
  pointer-events: none;
}
.evidence-graph-label {
  fill: var(--r-text);
  font-size: 11px;
  paint-order: stroke;
  stroke: var(--r-surface);
  stroke-width: 3px;
  stroke-linejoin: round;
  pointer-events: none;
}
.evidence-graph-node[data-kind="domain"],
.evidence-graph-legend [data-kind="domain"] {
  --node-colour: #7464d8;
}
.evidence-graph-node[data-kind="url"],
.evidence-graph-legend [data-kind="url"] {
  --node-colour: #38849c;
}
.evidence-graph-node[data-kind="ip"],
.evidence-graph-legend [data-kind="ip"] {
  --node-colour: #42897e;
}
.evidence-graph-node[data-kind="hash"],
.evidence-graph-legend [data-kind="hash"] {
  --node-colour: #797a8e;
}
.evidence-graph-node[data-kind="cve"],
.evidence-graph-legend [data-kind="cve"] {
  --node-colour: #ac6b94;
}
.evidence-graph-node[data-kind="campaign"],
.evidence-graph-legend [data-kind="campaign"] {
  --node-colour: #ad7a46;
}
.evidence-graph-node[data-kind="document"],
.evidence-graph-legend [data-kind="document"] {
  --node-colour: #6e81a3;
}
.evidence-graph-node[data-kind="tool"],
.evidence-graph-legend [data-kind="tool"] {
  --node-colour: #6d8e5c;
}
.evidence-graph-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 14px 0;
  font-size: 10px;
  color: var(--r-muted);
}
.evidence-graph-legend span {
  border-left: 3px solid var(--node-colour);
  padding-left: 7px;
}
.evidence-graph-source {
  border-top: 1px solid var(--r-border);
  padding: 13px 0;
  font-size: 12px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.evidence-graph-source strong {
  font-weight: 700;
}
.evidence-graph-source p {
  margin: 5px 0;
  color: var(--r-muted);
}
.evidence-graph-source small {
  display: block;
  color: var(--r-muted);
  font-size: 11px;
}
.evidence-graph-source a {
  color: var(--r-accent);
  text-decoration: underline;
}
.evidence-graph-source summary {
  cursor: pointer;
  font-weight: 650;
}
.evidence-graph-source details {
  margin-top: 9px;
}
.is-stale .evidence-graph-viewport {
  opacity: 0.6;
}
@media (max-width: 1050px) {
  .evidence-graph-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .evidence-graph-inspector {
    border-left: 0;
    border-top: 1px solid var(--r-border);
    max-height: 340px;
  }
  .evidence-graph-viewport {
    height: 420px;
  }
}
@media (max-width: 450px) {
  .evidence-graph-toolbar {
    grid-template-columns: minmax(0, 1fr);
  }
  .evidence-graph-viewport {
    height: 360px;
  }
  .evidence-graph-controls .research-button {
    min-height: 40px;
  }
  .evidence-graph-inspector {
    max-height: 360px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .evidence-graph-canvas * {
    transition: none !important;
  }
}

.evidence-graph-dialog {
  margin: auto;
  width: min(1500px, 96vw);
  max-width: 96vw;
  max-height: 94dvh;
  padding: 24px;
  border: 1px solid var(--r-border);
  border-radius: 14px;
  background: var(--r-bg);
  color: var(--r-text);
  overflow: hidden;
}
.evidence-graph-dialog[open] {
  display: flex;
  flex-direction: column;
}
.evidence-graph-dialog > #connections-graph {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.evidence-graph-dialog::backdrop {
  background: rgb(5 10 25 / 65%);
}
.evidence-graph-dialog-heading {
  flex-shrink: 0;
  background: var(--r-bg);
  padding: 8px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.evidence-graph-dialog-heading h3 {
  font-size: 18px;
  font-weight: 700;
}
.evidence-graph-dialog .evidence-graph-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 28%);
}
.evidence-graph-dialog .evidence-graph-viewport {
  height: clamp(320px, 60dvh, 760px);
}
.evidence-graph-dialog .evidence-graph-inspector {
  max-height: clamp(320px, 60dvh, 760px);
  border-top: 0;
  border-left: 1px solid var(--r-border);
}
@media (max-width: 800px) {
  .evidence-graph-dialog {
    padding: 16px;
  }
  .evidence-graph-dialog .evidence-graph-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .evidence-graph-dialog .evidence-graph-inspector {
    border-left: 0;
    border-top: 1px solid var(--r-border);
    max-height: 360px;
  }
  .evidence-graph-dialog .evidence-graph-viewport {
    height: 50dvh;
    min-height: 280px;
  }
}

.evidence-graph-dialog .evidence-graph-toggle {
  display: none;
}
