:root { --spo-subject: #d9eaff; --spo-predicate: #ffe8b0; --spo-object: #e8ddf8; }
.spo-subject { background: var(--spo-subject); }
.spo-predicate { background: var(--spo-predicate); }
.spo-object { background: var(--spo-object); }
.spo-term { color: #182331; font: inherit; border: 0; border-bottom: 2px solid #596573; border-radius: .2rem; padding: 0 .15em; cursor: pointer; text-align: left; display: inline; line-height: inherit; overflow-wrap: anywhere; }
.spo-term:hover, .spo-term:focus-visible, .spo-active { outline: 2px solid #182331; outline-offset: 2px; }
.spo-legend { font-size: .85rem; line-height: 1.8; }
.spo-legend span { color: #182331; padding: .2em .4em; border-radius: .2rem; }
.spo-inspector { position: fixed; z-index: 100; right: 1rem; bottom: 1rem; width: min(32rem, calc(100vw - 2rem)); max-height: 72vh; box-sizing: border-box; overflow: auto; background: #fff; color: #182331; border: 1px solid #81909e; border-radius: .5rem; box-shadow: 0 4px 24px #0003; padding: 1rem; }
.spo-inspector[hidden] { display: none; }
.spo-inspector h2 { font-size: 1.1rem; overflow-wrap: anywhere; }
.spo-results { padding-left: 1.4rem; }
.spo-edge { padding: .8rem 0; border-bottom: 1px solid #d4dbe2; overflow-wrap: anywhere; }
.spo-edge p { font-size: .8rem; margin: .5rem 0; }
.spo-edge blockquote { font-size: .9rem; margin: .5rem 0; padding: .4rem .7rem; border-left: 3px solid #bac5ce; }
.spo-edge ul { font-size: .85rem; }
.spo-search { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; }
.spo-search label { display: grid; gap: .3rem; }
.spo-search input { max-width: 100%; }
.spo-section-edges { margin: .5rem 0 1.5rem; }
.spo-section-edges summary { cursor: pointer; }
.spo-page { display: inline-block; margin: 1rem; }
@media (max-width: 600px) { .spo-inspector { max-height: 55vh; } }
@media print { .spo-inspector, .spo-legend, .spo-section-edges { display: none; } .spo-term { background: transparent; border: none; padding: 0; } }
header nav { flex-wrap: wrap; }
.spo-cypher pre { max-width: 100%; overflow-x: auto; padding: .75rem; background: #f3f5f7; }
