/* Citation atlas: vector geography, linked details, native HTML controls. */
.citation-explorer { --atlas-ink: #343d4c; --atlas-muted: #78838c; --atlas-line: #dfe5e5; --atlas-accent: #725b90; margin: 22px 0 30px; border: 0; border-radius: 0; overflow: hidden; background: #fff; color: var(--atlas-ink); }
.citation-explorer button, .citation-explorer input { font: inherit; }
.citation-explorer button { cursor: pointer; }
.citation-explorer button:disabled { opacity: .45; cursor: default; }
.atlas-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 0 0 12px; }
.citation-stats { display: flex; flex-wrap: wrap; gap: 18px; }
.citation-stat { display: flex; align-items: baseline; font-size: 12px; color: var(--atlas-muted); gap: 4px; }
.citation-stat strong { color: #574669; font-size: 14px; font-weight: 600; line-height: 1.4; letter-spacing: -.04em; }
.atlas-toolbar { display: flex; gap: 8px; align-items: center; padding: 0 0 12px; background: #fff; }
.atlas-search { min-width: 0; flex: 1; max-width: none; display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid #d7dddd; border-radius: 6px; padding: 0 12px; }
.atlas-search > span { color: #8b8099; font-size: 25px; line-height: 1; }
.atlas-search input { min-width: 0; width: 100%; height: 38px; background: transparent; border: 0; outline: 0; color: #3b4350; font-size: 12px; }
.atlas-search:focus-within { outline: 2px solid #aa93c3; outline-offset: 1px; }
.atlas-toolbar > button, .atlas-map-footer button { border: 0; border-radius: 4px; min-height: 40px; padding: 8px 12px; font-size: 11px; background: #fff; color: #60536d; white-space: nowrap; }
.atlas-toolbar > button:hover, .atlas-map-footer button:hover { background: #eee9f4; border-color: #bcaccd; }
#citation-fullscreen { margin-left: auto; }
.atlas-layout { display: grid; grid-template-columns: minmax(0,1fr) 220px; }
.atlas-map-column { min-width: 0; background: #fafbf9; }
.atlas-map-container { height: 400px; position: relative; overflow: hidden; background: #fafbf9; }
#citation-atlas-svg { display: block; width: 100%; height: 100%; cursor: grab; touch-action: pan-y; }
#citation-atlas-svg:active { cursor: grabbing; }
.atlas-ocean { fill: #f6f8f6; stroke: #e4e9e5; stroke-width: 1; vector-effect: non-scaling-stroke; }
.atlas-graticule { fill: none; stroke: #d2dfe1; stroke-width: .55; opacity: .3; vector-effect: non-scaling-stroke; pointer-events: none; }
.atlas-country { stroke: #f9faf8; stroke-width: .7; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .16s ease; }
.atlas-country:hover, .atlas-country:focus { fill: #b3a0c5 !important; stroke: #806c97; outline: none; }
.atlas-country.is-selected { fill: #b29cc9 !important; stroke: #705987; stroke-width: 1.3; }
.atlas-country.is-muted { fill: #dee5e3 !important; }
.atlas-country-label { fill: #66747c; font-size: 10px; font-weight: 500; text-anchor: middle; paint-order: stroke; stroke: #f5f8f6; stroke-width: 2.5; stroke-linejoin: round; pointer-events: none; }
.atlas-marker { cursor: pointer; outline: none; }
.atlas-marker circle { fill: #847091; stroke: #fffaf4; stroke-width: 1.5; transition: fill .16s ease; }
.atlas-marker.is-cluster circle { fill: #79668f; }
.atlas-marker:hover circle, .atlas-marker:focus circle { fill: #b76838; stroke-width: 2.5; }
.atlas-marker.is-selected circle { fill: #a9522b; stroke: #fff; stroke-width: 2.5; }
.atlas-marker text { fill: #fff; text-anchor: middle; dominant-baseline: central; font-size: 10px; font-weight: 600; pointer-events: none; }
.atlas-marker .atlas-halo { fill: #dd976d; opacity: .18; stroke: none; }
.atlas-zoom-controls { position: absolute; right: 16px; top: 16px; display: flex; flex-direction: column; border: 1px solid #d8e0e1; border-radius: 7px; overflow: hidden; box-shadow: 0 2px 8px #344c5410; background: #fffdfb; }
.atlas-zoom-controls button { width: 35px; height: 34px; border: 0; background: transparent; color: #655572; font-size: 20px; }
.atlas-zoom-controls button:hover { background: #eee8f4; }
#citation-zoom-level { text-align: center; color: #9a929f; font-size: 9px; line-height: 20px; border-block: 1px solid #edf0ed; }
.atlas-tooltip { position: absolute; z-index: 5; max-width: 235px; padding: 10px 13px; background: #fffefbf5; border: 1px solid #e0d8e4; border-radius: 7px; box-shadow: 0 6px 25px #26394c1a; color: #53455d; font-size: 11px; line-height: 1.7; pointer-events: none; }
.atlas-tooltip strong { display: block; font-size: 12px; }
.atlas-tooltip[hidden] { display: none; }
.atlas-load-state { position: absolute; inset: 0; display: grid; place-content: center; margin: 0; background: #fafbf9; color: #807387; font-size: 12px; text-align: center; padding: 20px; }
.atlas-load-state[hidden] { display: none; }
.atlas-map-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; color: #798288; font-size: 9px; }
.atlas-legend-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #847091; }
.atlas-map-footer button { font-size: 10px; min-height: 30px; padding: 5px 8px; background: #f7faf8; }
.atlas-map-footer button[aria-pressed="false"] { opacity: .5; }
.atlas-help { margin: 0; padding: 10px 0; color: #8a949a; font-size: 9px; line-height: 1.6; }
.atlas-panel { padding: 12px 0 12px 18px; border-left: 1px solid var(--atlas-line); min-width: 0; background: #fff; }
.atlas-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; }
.atlas-panel-heading h4 { margin: 0; font-size: 13px; font-weight: 600; color: #54445f; }
#citation-clear { border: 0; color: #9985ab; background: transparent; font-size: 10px; padding: 3px; }
#citation-location-detail { font-size: 11px; line-height: 1.75; color: #7a7883; overflow-wrap: anywhere; }
#citation-location-detail h3 { margin: 0 0 7px; font-size: 20px; font-weight: 500; color: #4b3b59; }
#citation-location-detail p { margin: 0 0 13px; }
#citation-location-detail ul { list-style: none; padding: 0; margin: 12px 0; }
#citation-location-detail li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid #ece9ef; }
#citation-location-detail li strong { flex-shrink: 0; color: #9d715c; }
.atlas-results { max-height: 380px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #d4cbdc transparent; }
.atlas-result { display: block; position: relative; width: 100%; text-align: left; border: 0; border-bottom: 0; padding: 10px 7px; background: transparent; color: #4b4b58; }
.atlas-result:hover, .atlas-result:focus-visible { background: #f0ebf4; }
.atlas-result-line { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; position: relative; z-index: 1; }
.atlas-result-line strong { font-weight: 500; font-variant-numeric: tabular-nums; color: #826396; }
.atlas-result small { display: block; color: #99939f; font-size: 9px; margin-top: 3px; }
.atlas-empty { font-size: 12px; color: #8f829b; line-height: 1.8; padding: 18px 0; }
.citation-count-note { margin: 0; padding: 0 0 10px; font-size: 9px; color: #919199; line-height: 1.7; }
.citation-explorer :focus-visible { outline: 2px solid #a68bbb; outline-offset: 2px; }
.citation-explorer.is-fullscreen { position: fixed; inset: 0; z-index: 10000; width: 100%; height: 100dvh; margin: 0; border: 0; border-radius: 0; overflow-y: auto; overscroll-behavior: contain; }
.citation-explorer.is-fullscreen .atlas-map-container { height: max(340px, calc(100dvh - 165px)); }
.citation-explorer.is-fullscreen .atlas-results { max-height: calc(100dvh - 300px); }
@media (max-width: 1100px) { .atlas-layout { grid-template-columns: minmax(0,1fr); } .atlas-panel { border-left: 0; border-top: 1px solid var(--atlas-line); padding: 14px 0; } .atlas-results { max-height: 150px; } .atlas-map-container { height: 380px; } }
@media (max-width: 600px) {
 .citation-explorer { margin-top: 18px; }
 .atlas-toolbar { gap: 2px; }
 .atlas-search { padding: 0 8px; gap: 5px; }
 .atlas-search input { font-size: 16px; height: 42px; }
 .atlas-toolbar > button { padding: 8px; font-size: 11px; }
 .atlas-map-container { height: 250px; }
 .atlas-zoom-controls { right: 6px; top: 8px; }
 .atlas-zoom-controls button { width: 40px; height: 40px; }
 .atlas-map-footer { padding: 6px 8px; font-size: 10px; }
 .atlas-country-label { font-size: 8px; }
 .citation-explorer.is-fullscreen { padding: 16px; box-sizing: border-box; }
 .citation-explorer.is-fullscreen .atlas-map-container { height: clamp(260px, 48dvh, 480px); }
 .citation-explorer.is-fullscreen .atlas-results { max-height: 190px; }
}
@media (prefers-reduced-motion: reduce) { .citation-explorer * { transition: none !important; } }

@media (min-width: 1101px) { #citation-location-detail { max-height: 430px; overflow-y: auto; scrollbar-width: thin; } }

.atlas-about { padding: 10px 0 0; color: var(--atlas-muted); font-size: 11px; }
.atlas-about summary { cursor: pointer; width: fit-content; }
.citation-explorer.is-fullscreen { padding: 20px; box-sizing: border-box; }
