.graph-page { min-height: calc(100vh - 8rem); background: #071321; color: #edf4f7; padding: 3rem 0 5rem; }
.graph-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 24rem); gap: 2rem; align-items: end; margin-bottom: 2rem; }
.graph-heading h1 { max-width: 12ch; margin: .35rem 0 .75rem; color: #fff; font-size: clamp(2.5rem, 6vw, 5.4rem); line-height: .94; letter-spacing: -.05em; }
.graph-heading > div > p:last-child { max-width: 46rem; color: #b8c4d1; font-size: 1.05rem; }
.graph-boundary { display: grid; gap: .4rem; padding: 1rem 1.1rem; border: 1px solid #31506a; background: #0d2032; }
.graph-boundary strong { color: #81d8cf; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; }
.graph-boundary span { color: #c8d3dc; }
.graph-workspace { border: 1px solid #31506a; background: #0a1928; box-shadow: 0 2rem 5rem rgb(0 0 0 / 28%); }
.graph-toolbar { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; padding: .85rem; border-bottom: 1px solid #31506a; }
.graph-toolbar span { margin-right: .25rem; color: #93a9b9; font-size: .82rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.graph-toolbar button { border: 1px solid #3b586f; border-radius: 999px; background: #11283a; color: #dbe7ed; padding: .55rem .8rem; font: inherit; font-size: .88rem; cursor: pointer; }
.graph-toolbar button:hover, .graph-toolbar button:focus-visible, .graph-toolbar button[aria-pressed="true"] { border-color: #81d8cf; background: #153b48; color: #fff; outline: none; }
.graph-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); min-height: 38rem; }
.graph-canvas { min-height: 38rem; background: radial-gradient(circle at 50% 46%, #102d43 0, #0a1928 54%, #071321 100%); }
.graph-detail { padding: 1.4rem; border-left: 1px solid #31506a; background: #0d2032; }
.graph-detail h2 { color: #fff; margin: .35rem 0 .75rem; font-size: 1.65rem; }
.graph-detail p:last-child { color: #c3d0d9; }
.graph-accessible-list { border-top: 1px solid #31506a; padding: 1rem 1.25rem; color: #c3d0d9; }
.graph-accessible-list summary { color: #edf4f7; cursor: pointer; font-weight: 700; }
.graph-accessible-list li + li { margin-top: .45rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 820px) {
  .graph-heading, .graph-layout { grid-template-columns: 1fr; }
  .graph-detail { border-left: 0; border-top: 1px solid #31506a; }
  .graph-canvas { min-height: 30rem; }
}
