/* Graph page chrome (body:has(#graph)).
 * Revert author fonts/colors/backgrounds. Node fills stay Graphviz.
 * Overlays use Canvas so they stay opaque over the SVG.
 * Dashed vs heavy outline repeats proved/not-proved without relying on hue. */

body:has(#graph),
body:has(#graph) header,
body:has(#graph) header h1,
body:has(#graph) #doc_title,
body:has(#graph) #doc_title a,
body:has(#graph) #doc_title a:visited {
  font-family: revert;
  color: revert;
  background: revert;
  background-color: revert;
  text-shadow: none;
}

body:has(#graph) header a,
body:has(#graph) header a:visited,
body:has(#graph) div.dep-modal-content a {
  font-family: revert;
  color: revert;
  text-decoration: revert;
}

body:has(#graph) #Legend span.title {
  font-size: revert;
  font-weight: revert;
}

body:has(#graph) #Legend dl {
  font-size: revert;
  background: Canvas;
  color: CanvasText;
  padding: 0.75em 1em;
}

body:has(#graph) #Legend dl::after {
  display: block;
  margin-top: 0.75em;
  content: "Dashed outline: not proved. Heavy outline: proved.";
}

body:has(#graph) div#statements,
body:has(#graph) div.dep-modal-content,
body:has(#graph) ul.tooltip_list {
  background: Canvas;
  background-color: Canvas;
  color: CanvasText;
  border: revert;
  border-radius: 0;
  box-shadow: none;
}

body:has(#graph) div.bar {
  background: currentColor;
  border-radius: 0;
}

body:has(#graph) g.node :is(ellipse, polygon)[stroke="blue"],
body:has(#graph) g.node :is(ellipse, polygon)[fill="#A3D6FF" i] {
  stroke-dasharray: 7 5;
}

body:has(#graph) g.node :is(ellipse, polygon)[stroke="#FFAA33" i] {
  stroke-dasharray: 2 3;
}

body:has(#graph) g.node :is(ellipse, polygon)[fill="#9CEC8B" i],
body:has(#graph) g.node :is(ellipse, polygon)[fill="#B0ECA3" i],
body:has(#graph) g.node :is(ellipse, polygon)[fill="#1CAC78" i] {
  stroke-dasharray: none;
  stroke-width: 2.6px;
}

body:has(#graph) g.node :is(ellipse, polygon)[stroke="darkgreen"] {
  stroke-width: 3.2px;
}
