.ia-graph { box-sizing: border-box; min-width: 0; max-width: 100%; margin-block: 0 1rem; padding: .75rem; border: 1px solid #c8d1dc; border-radius: .5rem; background: #fff; color: #17202a; }
.ia-graph *, .ia-graph *::before, .ia-graph *::after { box-sizing: border-box; }
.ia-graph__title, .ia-graph__alternative-title { font-weight: 750; }
.ia-graph__title, .ia-graph__help, .ia-graph__status, .ia-graph__node-list { overflow-wrap: anywhere; }
.ia-graph__figure { margin: 1rem 0; }
.ia-graph__svg { display: block; width: 100%; max-width: 48rem; height: auto; margin-inline: auto; background: #f8fafc; border: 1px solid #d3dce8; border-radius: .4rem; }
.ia-graph__figure figcaption { margin-block-start: .5rem; font-size: .9rem; overflow-wrap: anywhere; }
.ia-graph__edge { fill: none; stroke: #586b80; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.ia-graph__edge.is-connected { stroke: #173766; stroke-width: 4; }
.ia-graph__arrow { fill: #173766; }
.ia-graph__weight-background { fill: #fff; stroke: #7d8996; stroke-width: 1; }
.ia-graph__weight { fill: #17202a; font: 700 26px system-ui, sans-serif; text-anchor: middle; dominant-baseline: central; }
.ia-graph__node { cursor: pointer; }
.ia-graph__node-circle { fill: #fff; stroke: #214b8f; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.ia-graph__node-label { fill: #17202a; font: 750 28px system-ui, sans-serif; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.ia-graph__selection-ring { fill: none; stroke: #173766; stroke-width: 2; visibility: hidden; vector-effect: non-scaling-stroke; }
.ia-graph__node.is-selected .ia-graph__selection-ring { visibility: visible; }
.ia-graph__node.is-selected .ia-graph__node-circle { fill: #dce8fc; stroke-width: 4; }
.ia-graph__node.is-neighbor .ia-graph__node-circle { stroke-dasharray: 5 3; }
.ia-graph__controls { min-width: 0; margin: .75rem 0; padding: 0; border: 0; }
.ia-graph__controls legend { margin-block-end: .5rem; font-weight: 700; }
.ia-graph__buttons { display: flex; flex-wrap: wrap; gap: .5rem; }
.ia-graph__buttons button { min-height: 2.75rem; min-width: 2.75rem; max-width: 100%; padding: .5rem .75rem; border: 2px solid #214b8f; border-radius: .35rem; background: #fff; color: #173766; font: inherit; font-weight: 700; cursor: pointer; overflow-wrap: anywhere; }
.ia-graph__buttons button[aria-pressed=true] { background: #e9f0fc; border-style: double; border-width: 4px; padding: calc(.5rem - 2px) calc(.75rem - 2px); }
.ia-graph__buttons button:focus-visible { outline: .2rem solid #a46500; outline-offset: .15rem; }
.ia-graph__status { padding: .6rem; border-inline-start: .25rem solid #214b8f; background: #edf3fb; font-weight: 700; }
.ia-graph__node-list { padding-inline-start: 1.35rem; }
.ia-graph__table { width: 100%; max-width: 100%; border-collapse: collapse; table-layout: fixed; background: #fff; }
.ia-graph__table caption { text-align: start; padding-block: .5rem; font-weight: 700; }
.ia-graph__table th, .ia-graph__table td { padding: .4rem; border: 1px solid #7d8996; text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.ia-graph__table .is-connected { background: #edf3fb; }
.ia-graph__relation { display: block; font-size: .85em; font-weight: 600; }
