.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-intro{max-width:76ch;margin:1rem 0 1.5rem}
.viz-section{border-top:1px solid var(--border);padding:1.4rem 0 1.8rem}
.viz-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;margin-bottom:1rem}
.viz-heading h3{font-size:1.2rem;line-height:1.25;margin:0;flex:none}
.viz-heading p{font-size:.9rem;color:var(--muted);max-width:64ch;margin:0}
.viz-note{font-size:.88rem;color:var(--muted);max-width:82ch;margin:1rem 0 0}
.viz-empty{padding:1rem;color:var(--muted)}
.scroll-hint{display:none;color:var(--muted);font-size:.88rem;margin:.4rem 0}
.matrix-scroll{overflow:auto;border:1px solid var(--border);border-radius:.35rem;background:var(--elevation)}
.connection-matrix{border-collapse:separate;border-spacing:0;width:100%;min-width:1020px;table-layout:fixed;font-size:.88rem}
.connection-matrix th,.connection-matrix td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:.35rem;text-align:center}
.connection-matrix tr:last-child th,.connection-matrix tr:last-child td{border-bottom:0}
.connection-matrix tr th:last-child,.connection-matrix tr td:last-child{border-right:0}
.connection-matrix thead th{background:var(--components-alt);color:var(--text);font-weight:650;line-height:1.3;vertical-align:bottom;overflow-wrap:anywhere;padding:.7rem .45rem}
.connection-matrix thead th:first-child{width:210px;text-align:left}
.connection-matrix .matrix-route{position:sticky;left:0;z-index:1;background:var(--elevation);text-align:left;font-weight:650;line-height:1.3;padding:.65rem .8rem}
.matrix-cell{display:block;width:100%;min-height:48px;border:1px solid transparent;border-radius:.25rem;color:var(--text);font-weight:700;background:linear-gradient(90deg,var(--components-alt) var(--density),var(--elevation) var(--density))}
.matrix-cell:hover,.matrix-cell:focus-visible{border-color:var(--accent)}
.matrix-cell[aria-pressed=true]{background:var(--components);color:var(--base);border-color:var(--components)}
.matrix-zero{color:var(--muted)}
.graph-selection{font-weight:650;min-height:1.5rem;margin:.8rem 0}
.period-chart{display:grid;gap:.35rem}
.period-row{display:grid;grid-template-columns:8.5rem minmax(0,1fr) 5.5rem;gap:.8rem;align-items:center;width:100%;min-height:48px;padding:.25rem .5rem;border:1px solid transparent;border-radius:.25rem;background:transparent;color:var(--text);text-align:left}
.period-row:hover,.period-row:focus-visible{border-color:var(--accent);background:var(--elevation)}
.period-row:disabled{opacity:.55;cursor:default}
.period-label{font-weight:650;white-space:nowrap}
.period-track{display:block;height:20px;background:var(--elevation);border:1px solid var(--border);border-radius:2px;overflow:hidden}
.period-fill{display:block;height:100%;background:var(--components)}
.period-count{text-align:right;font-family:var(--font-mono);font-size:.88rem}
.citation-picker{max-width:42rem;margin:1rem 0}
.citation-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:1rem;align-items:start}
.citation-plot{overflow:auto;min-height:400px;border:1px solid var(--border);border-radius:.35rem;background:var(--elevation)}
.citation-plot svg{display:block;width:100%;min-width:660px;height:auto}
.citation-axis{stroke:var(--border);stroke-width:1}
.citation-axis-label{fill:var(--muted);font:14px var(--font-mono)}
.citation-link{stroke:var(--components);stroke-opacity:.25;stroke-width:1.4}
.citation-link.related{stroke:var(--accent);stroke-opacity:.8;stroke-width:2.2}
.citation-arrow{fill:var(--components)}
.citation-hit{fill:transparent;cursor:pointer}
.citation-dot{fill:var(--components);stroke:var(--elevation);stroke-width:2;pointer-events:none}
.citation-node[aria-pressed=true] .citation-dot{fill:var(--accent);stroke:var(--text);stroke-width:2.5}
.citation-node:focus-visible{outline:none}
.citation-node:focus-visible .citation-hit{stroke:var(--focus);stroke-width:3}
.citation-detail{border:1px solid var(--border);border-radius:.35rem;background:var(--elevation);padding:1rem;min-height:400px}
.citation-detail h3{font-size:1.08rem;line-height:1.3;margin:0 0 .55rem}
.citation-detail h3 a{color:var(--text);text-decoration:none}
.citation-detail h3 a:hover{text-decoration:underline;color:var(--accent)}
.citation-detail h4{font-size:.88rem;margin:1.15rem 0 .4rem}
.citation-byline,.citation-none{color:var(--muted);font-size:.88rem;margin:.3rem 0}
.citation-counts{font-weight:650;font-size:.88rem;margin:1rem 0}
.citation-neighbors{display:grid;gap:.3rem}
.citation-neighbors button{border:1px solid var(--border);border-radius:.25rem;padding:.5rem;background:var(--base);color:var(--text);text-align:left;font-size:.875rem;line-height:1.3;min-height:44px}
.citation-neighbors button:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:800px){.viz-heading{display:block}.viz-heading p{margin-top:.35rem}}
@media(max-width:1050px){.scroll-hint{display:block}}
@media(max-width:550px){.period-row{grid-template-columns:6.6rem minmax(0,1fr) 3.5rem;gap:.45rem;padding:.2rem}.period-label,.period-count{font-size:.875rem}}
@media(max-width:1050px){.citation-layout{grid-template-columns:1fr}.citation-detail{min-height:0}}
