/* ── Source dots: real buttons with DOM-backed notes ─────────────────────── */
.source-note-wrap { display: inline-block; position: relative; vertical-align: middle; }
.source-dot { align-items: center; appearance: none; background: transparent; border: 0; border-radius: 50%; cursor: pointer; display: inline-flex; height: 24px; justify-content: center; margin-left: 0.18em; padding: 0; vertical-align: middle; width: 24px; }
.source-dot:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.source-dot__mark { background: #A65A3A; border-radius: 50%; height: 6px; width: 6px; }
.source-note-popover { background: var(--bg-alt, #fff); border: 1px solid var(--rule); box-shadow: 0 8px 22px rgba(0,0,0,0.18); box-sizing: border-box; color: var(--ink); font-family: var(--font-body); font-size: 0.78rem; line-height: 1.45; max-width: calc(100vw - 2rem); max-height: calc(100vh - 2rem); overflow: auto; overflow-wrap: anywhere; padding: 0.8rem; position: fixed; bottom: auto; right: auto; width: 28rem; z-index: 10000; }
.source-note-popover[hidden] { display: none !important; }
.source-note-popover:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.source-note-limitation, .source-note-metadata, .source-note-sources, .source-note-row, .source-note-source, .source-note-source-date { display: block; }
.source-note-limitation, .source-note-metadata { margin-bottom: 0.6rem; }
.source-note-row { margin-top: 0.2rem; }
.source-note-row strong { color: var(--ink-muted); margin-right: 0.3rem; }
.source-note-source + .source-note-source { margin-top: 0.6rem; }
.source-note-source-date { color: var(--ink-muted); font-size: 0.72rem; }
.source-note-close { background: transparent; border: 1px solid var(--rule); color: inherit; cursor: pointer; display: block; font: inherit; margin: 0.8rem 0 0 auto; min-height: 32px; padding: 0.3rem 0.6rem; }
.source-note-close:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.source-dot--la-impl .source-dot__mark, .source-dot--research .source-dot__mark { background: #A65A3A; }
.source-dot--project-method .source-dot__mark, .source-dot--model .source-dot__mark { background: #5A6E7A; }
.source-dot--inferred .source-dot__mark { background: #7A6A3A; }
.source-dot--state-law .source-dot__mark { background: #2A4A7A; }
.source-dot--regional .source-dot__mark { background: #3A6A5A; }
.source-dot--osm .source-dot__mark { background: #7EBC59; }

/* Keep closed drawer controls out of focus navigation and avoid transformed fixed descendants. */
.sb79-drawer:not(.open) { visibility: hidden; pointer-events: none; }
.sb79-drawer.right.open { transform: none; }
.source-note-trigger { scroll-margin-block: 120px; }
/* The existing nowrap protection table stretched the mobile layout over source buttons. */
@media (max-width: 680px) {
  .page-who .triptych > * { min-width: 0; }
  .page-who .protection-table { table-layout: fixed; }
  .page-who .protection-table th, .page-who .protection-table td { overflow-wrap: anywhere; padding-inline: 0.4rem; }
  .page-who .protection-table__layer { white-space: normal; }
}
/* Visually hide the accessible button label without removing it from the accessibility tree. */
.source-note-trigger .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.source-dot__mark { display: block; flex: none; }
