:root {
  --atlas-bg: #f4efe3;
  --atlas-panel: #fffdf7;
  --atlas-ink: #2c2922;
  --atlas-muted: #686156;
  --atlas-line: #cfc4ae;
  --atlas-accent: #805b25;
  --atlas-water: #c9e0e3;
  --atlas-land: #e2d3ad;
  --atlas-high: #356b4a;
  --atlas-likely: #9a6a19;
  --atlas-disputed: #a33e35;
}

#bibleAtlasButton,
#presentationAtlasButton {
  font-family: system-ui, sans-serif;
  font-weight: 700;
}

#bibleAtlasOverlay {
  position: fixed;
  inset: 0;
  z-index: 2147483650;
  display: grid;
  place-items: center;
  padding: clamp(.35rem, 2vw, 1.5rem);
  color: var(--atlas-ink);
  background: rgba(15, 14, 12, .66);
  font: 15px/1.35 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  backdrop-filter: blur(4px);
  box-sizing: border-box;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}
#bibleAtlasOverlay[hidden] {display: none !important;}
#bibleAtlasOverlay *, #bibleAtlasOverlay *::before, #bibleAtlasOverlay *::after {box-sizing: border-box;}

.bible-atlas-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1200px, 100%);
  height: min(820px, 100%);
  overflow: hidden;
  border: 1px solid var(--atlas-line);
  border-radius: 14px;
  background: var(--atlas-bg);
  box-shadow: 0 24px 80px rgba(0,0,0,.38);
}
.bible-atlas-header {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .7rem .85rem;
  border-bottom: 1px solid var(--atlas-line);
  background: var(--atlas-panel);
}
.bible-atlas-title {min-width: max-content; font: 700 1.08rem/1.1 Georgia, serif;}
.bible-atlas-search {
  width: 100%;
  min-width: 5rem;
  padding: .55rem .7rem;
  border: 1px solid var(--atlas-line);
  border-radius: 7px;
  color: inherit;
  background: var(--atlas-bg);
  font: inherit;
}
.bible-atlas-close,
.bible-atlas-map-controls button {
  min-width: 2.25rem;
  min-height: 2.25rem;
  border: 1px solid var(--atlas-line);
  border-radius: 7px;
  color: inherit;
  background: var(--atlas-panel);
  font: 700 1rem system-ui, sans-serif;
  cursor: pointer;
}
.bible-atlas-close {font-size: 1.3rem;}
.bible-atlas-body {display: grid; grid-template-columns: minmax(240px, 30%) minmax(0, 1fr); min-width: 0; min-height: 0;}
.bible-atlas-sidebar {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-height: 0;
  border-right: 1px solid var(--atlas-line);
  background: var(--atlas-panel);
}
.bible-atlas-context {padding: .65rem .8rem .35rem; color: var(--atlas-muted); font-size: .84rem;}
.bible-atlas-context strong {color: var(--atlas-ink);}
.bible-atlas-filter {display: flex; align-items: center; gap: .4rem; padding: .25rem .8rem .6rem; font-size: .84rem;}
.bible-atlas-list {margin: 0; padding: 0 .45rem .5rem; overflow: auto; list-style: none;}
.bible-atlas-place {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .25rem .5rem;
  width: 100%;
  margin: 0 0 .25rem;
  padding: .55rem .6rem;
  border: 1px solid transparent;
  border-radius: 8px;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.bible-atlas-place:hover,
.bible-atlas-place[aria-current="true"] {border-color: var(--atlas-line); background: var(--atlas-bg);}
.bible-atlas-place small {grid-column: 1 / -1; color: var(--atlas-muted);}
.bible-atlas-confidence {align-self: center; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;}
.bible-atlas-confidence[data-confidence="high"] {color: var(--atlas-high);}
.bible-atlas-confidence[data-confidence="likely"],
.bible-atlas-confidence[data-confidence="representative"] {color: var(--atlas-likely);}
.bible-atlas-confidence[data-confidence="disputed"] {color: var(--atlas-disputed);}
.bible-atlas-detail {padding: .65rem .8rem; border-top: 1px solid var(--atlas-line); background: var(--atlas-bg);}
.bible-atlas-detail h3 {margin: 0 0 .25rem; font: 700 1rem Georgia, serif;}
.bible-atlas-detail h3::before {content: none !important; display: none !important;}
.bible-atlas-detail p {margin: .25rem 0; color: var(--atlas-muted); font-size: .82rem;}
.bible-atlas-refs {display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem;}
.bible-atlas-ref {
  padding: .28rem .42rem;
  border: 1px solid var(--atlas-line);
  border-radius: 5px;
  color: var(--atlas-accent);
  background: var(--atlas-panel);
  font: 700 .76rem system-ui, sans-serif;
  cursor: pointer;
}
.bible-atlas-map-wrap {position: relative; min-width: 0; min-height: 0; overflow: hidden; background: var(--atlas-water); touch-action: none;}
.bible-atlas-local-map {position: absolute; inset: 0;}
#bibleAtlasMap {display: block; width: 100%; height: 100%; cursor: grab; user-select: none;}
#bibleAtlasMap.is-panning {cursor: grabbing;}
.bible-atlas-land {fill: var(--atlas-land); stroke: #9e8d69; stroke-width: 2; vector-effect: non-scaling-stroke;}
.bible-atlas-sea-label {fill: #57777c; font: italic 20px Georgia, serif; letter-spacing: .05em; pointer-events: none;}
.bible-atlas-marker {cursor: pointer;}
.bible-atlas-marker circle {fill: var(--atlas-accent); stroke: #fffdf7; stroke-width: 2; vector-effect: non-scaling-stroke;}
.bible-atlas-marker.is-context circle {fill: #146c73;}
.bible-atlas-marker.is-selected circle {fill: #b12e26;}
.bible-atlas-marker[data-confidence="disputed"] circle {stroke: var(--atlas-disputed); stroke-dasharray: 2 2;}
.bible-atlas-marker text {fill: var(--atlas-ink); paint-order: stroke; stroke: var(--atlas-bg); stroke-width: 4px; stroke-linejoin: round; font: 700 13px system-ui, sans-serif; pointer-events: none; vector-effect: non-scaling-stroke;}
.bible-atlas-map-controls {position: absolute; top: .65rem; right: .65rem; display: grid; gap: .35rem;}
.bible-atlas-legend {position: absolute; left: .65rem; bottom: .65rem; padding: .4rem .55rem; border: 1px solid var(--atlas-line); border-radius: 7px; background: var(--atlas-panel); background: color-mix(in srgb, var(--atlas-panel) 90%, transparent); font-size: .72rem;}
.bible-atlas-footer {min-width: 0; padding: .45rem .75rem; overflow-wrap: anywhere; border-top: 1px solid var(--atlas-line); color: var(--atlas-muted); background: var(--atlas-panel); font-size: .72rem;}
.bible-atlas-footer a {color: var(--atlas-accent);}

body.darkmode #bibleAtlasOverlay,
body.nightmode #bibleAtlasOverlay,
body.presentation-host[data-presentation-theme="dark"] #bibleAtlasOverlay,
body.presentation-host[data-presentation-theme="blue"] #bibleAtlasOverlay {
  --atlas-bg: #191b20;
  --atlas-panel: #24272d;
  --atlas-ink: #f3eee4;
  --atlas-muted: #bbb3a7;
  --atlas-line: #55545a;
  --atlas-accent: #dfbd76;
  --atlas-water: #19333d;
  --atlas-land: #565039;
}
body.presentation-host #bibleAtlasOverlay {font-size: clamp(15px, 1.3vw, 21px);}

@media (max-width: 720px) {
  #bibleAtlasOverlay {padding: 0;}
  .bible-atlas-shell {width: 100%; height: 100%; border: 0; border-radius: 0;}
  .bible-atlas-header {gap: .4rem;}
  .bible-atlas-title {font-size: .95rem;}
  .bible-atlas-body {grid-template-columns: 1fr; grid-template-rows: minmax(48%, 1fr) minmax(210px, 42%);}
  .bible-atlas-map-wrap {grid-row: 1;}
  .bible-atlas-sidebar {grid-row: 2; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); border-right: 0; border-top: 1px solid var(--atlas-line);}
  .bible-atlas-context {grid-column: 1;}
  .bible-atlas-filter {grid-column: 2; justify-content: flex-end;}
  .bible-atlas-list {grid-column: 1;}
  .bible-atlas-detail {grid-column: 2; grid-row: 2; overflow: auto; border-top: 0; border-left: 1px solid var(--atlas-line);}
  .bible-atlas-marker text {display: none;}
}

@media (prefers-reduced-motion: reduce) {
  #bibleAtlasOverlay * {scroll-behavior: auto !important; transition: none !important;}
}
