.atlas-page { background: var(--paper-light); }
.atlas-page .site-header-dark { padding-top: 0.9rem; padding-bottom: 0.9rem; }
.atlas-hero {
  padding: 3.6rem max(1.5rem, calc((100% - 86rem) / 2));
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(21rem, 0.65fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: end;
  color: white;
  background: var(--ink);
  border-top: 1px solid rgba(255,255,255,0.16);
}
.atlas-hero .kicker { color: #efb39f; }
.atlas-hero h1 { max-width: 12ch; margin-bottom: 1rem; font-size: clamp(3rem, 6vw, 5.4rem); }
.atlas-hero > div > p:last-child { max-width: 47rem; margin-bottom: 0; color: #cbd5df; font: 1.06rem/1.68 var(--serif); }
.atlas-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid rgba(255,255,255,0.28); }
.atlas-stats div { padding: 1rem 0.75rem 0; border-right: 1px solid rgba(255,255,255,0.18); }
.atlas-stats div:last-child { border-right: 0; }
.atlas-stats dt { color: #aebdca; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.atlas-stats dd { margin: 0.2rem 0 0; font: 1.8rem/1 var(--serif); }

.atlas-shell { display: grid; grid-template-columns: 20rem minmax(0, 1fr); align-items: start; min-height: 74rem; }
.atlas-directory { position: sticky; top: 0; height: 100vh; overflow: auto; padding: 2.25rem 1.5rem 3rem max(1.5rem, calc((100vw - 86rem) / 2)); background: var(--paper); border-right: 1px solid var(--line); }
.directory-heading h2 { margin-bottom: 1.4rem; font-size: 2rem; }
.author-filter { display: grid; gap: 0.4rem; color: var(--ink-soft); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.author-filter input, .mobile-author-select select { width: 100%; min-height: 2.8rem; border: 1px solid var(--line); border-radius: 0; padding: 0.65rem 0.7rem; color: var(--ink); background: var(--paper-light); text-transform: none; }
.author-filter input:focus, .mobile-author-select select:focus { outline: 3px solid rgba(163,78,52,0.2); border-color: var(--rust); }
.author-list { margin-top: 1.5rem; border-top: 1px solid var(--line); }
.author-list button { width: 100%; padding: 0.82rem 0; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: 0.65rem; align-items: baseline; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.author-list button:hover, .author-list button.is-active { color: var(--rust-dark); background: rgba(163,78,52,0.055); }
.author-list .author-number { color: var(--rust); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; }
.author-list .author-name { font: 1rem/1.2 var(--serif); }
.author-list .author-dates { grid-column: 2; color: var(--ink-soft); font-size: 0.66rem; }

.atlas-workspace { min-width: 0; }
.atlas-loading { min-height: 42rem; padding: 4rem; color: var(--ink-soft); }
.author-map-header { padding: 3.1rem max(1.5rem, calc((100vw - 86rem) / 2)) 2.4rem 3rem; display: grid; grid-template-columns: minmax(0, 1fr) 15rem; gap: 2rem; align-items: end; border-bottom: 1px solid var(--line); }
.map-record-id { margin: 0 0 0.65rem; color: var(--rust); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.author-map-header h2 { max-width: 23ch; margin-bottom: 0.85rem; font-size: clamp(2.3rem, 4.3vw, 4.3rem); }
.author-map-header p:last-child { max-width: 54rem; margin-bottom: 0; color: var(--ink-soft); font: 1.02rem/1.7 var(--serif); }
.mobile-author-select { display: none; }
.mobile-author-select span { display: block; margin-bottom: 0.4rem; color: var(--ink-soft); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.map-toolbar { padding: 1rem max(1.5rem, calc((100vw - 86rem) / 2)) 1rem 3rem; display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: flex-end; background: var(--paper); border-bottom: 1px solid var(--line); }
.map-toolbar-group { display: grid; gap: 0.45rem; }
.map-toolbar-group > span { color: var(--ink-soft); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.11em; text-transform: uppercase; }
.toolbar-buttons { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.map-option { min-height: 2.2rem; border: 1px solid var(--line); border-radius: 0; padding: 0.42rem 0.68rem; color: var(--ink); background: var(--paper-light); font-size: 0.7rem; font-weight: 800; cursor: pointer; }
.map-option:hover, .map-option.is-active { border-color: var(--rust); color: white; background: var(--rust); }
.map-frame { position: relative; background: #dce1dc; border-bottom: 1px solid var(--line); }
#author-map { width: 100%; height: min(68vh, 46rem); min-height: 34rem; background: #dce1dc; }
.map-failure { position: absolute; inset: 1rem auto auto 50%; z-index: 600; width: min(90%, 38rem); margin: 0; padding: 0.75rem 1rem; transform: translateX(-50%); color: white; background: var(--rust-dark); font-size: 0.78rem; font-weight: 700; }
.leaflet-container { font-family: var(--sans); }
.leaflet-control-zoom a { border-radius: 0 !important; color: var(--ink); }
.leaflet-control-attribution { max-width: min(75vw, 55rem); color: var(--ink-soft); background: rgba(251,249,243,0.9) !important; font-size: 0.62rem; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { border-radius: 0; color: var(--ink); background: var(--paper-light); }
.leaflet-popup-content-wrapper { border: 1px solid var(--line); box-shadow: var(--shadow); }
.leaflet-popup-content { margin: 1rem; }
.marker-number { width: 2rem !important; height: 2rem !important; margin: -1rem 0 0 -1rem !important; border: 2px solid white; border-radius: 50%; color: white; background: var(--rust); box-shadow: 0 0 0 1px rgba(23,44,69,0.42); font: 800 0.72rem/1.75rem var(--sans); text-align: center; }
.marker-number.is-dense { width: 0.875rem !important; height: 0.875rem !important; margin: -0.4375rem 0 0 -0.4375rem !important; border-width: 1.5px; }
.marker-number.is-contested { background: #75536d; }
.map-popup .popup-kicker { margin: 0 0 0.25rem; color: var(--rust); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.map-popup h4 { margin: 0 0 0.35rem; font: 1.25rem/1.15 var(--serif); }
.map-popup p { margin: 0.3rem 0; font-size: 0.76rem; line-height: 1.45; }
.map-popup .popup-place { color: var(--ink-soft); }
.map-popup a { color: var(--rust-dark); font-size: 0.7rem; font-weight: 800; }

.map-readout { padding: 1rem max(1.5rem, calc((100vw - 86rem) / 2)) 1rem 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2rem; color: var(--ink-soft); background: var(--paper); border-bottom: 1px solid var(--line); }
.map-readout p { margin: 0; font-size: 0.72rem; line-height: 1.55; }
.event-section { padding: 4rem max(1.5rem, calc((100vw - 86rem) / 2)) 4.5rem 3rem; }
.event-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.event-heading-row h3, .map-evidence h3 { margin-bottom: 0; font-size: clamp(2rem, 3.4vw, 3.2rem); }
.event-list { margin-top: 2rem; border-top: 1px solid var(--line); }
.event-record { width: 100%; padding: 1.15rem 0; display: grid; grid-template-columns: 2.5rem 7rem minmax(11rem, 0.7fr) minmax(16rem, 1.3fr) 7rem; gap: 1rem; align-items: start; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.event-record:hover { background: rgba(163,78,52,0.045); }
.event-record-number { width: 1.8rem; height: 1.8rem; display: inline-grid; place-items: center; border: 1px solid var(--rust); border-radius: 50%; color: var(--rust-dark); font-size: 0.64rem; font-weight: 800; }
.event-record-date, .event-record-type, .event-record-precision { color: var(--rust-dark); font-size: 0.64rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; }
.event-record-place strong { display: block; font: 1.08rem/1.25 var(--serif); }
.event-record-place span, .event-record-description { color: var(--ink-soft); font-size: 0.76rem; line-height: 1.55; }
.event-record-precision { color: var(--ink-soft); text-align: right; }
.event-record-precision .contested { color: #75536d; }

.map-evidence { padding: 4rem max(1.5rem, calc((100vw - 86rem) / 2)) 5rem 3rem; display: grid; grid-template-columns: minmax(12rem, 0.7fr) minmax(0, 1.3fr); gap: 3rem; background: var(--paper-deep); border-top: 1px solid var(--line); }
.map-evidence ul { margin: 0 0 1.25rem; padding-left: 1.15rem; }
.map-evidence li { margin-bottom: 0.45rem; font-size: 0.78rem; }
.map-evidence > div:last-child > p { max-width: 46rem; color: var(--ink-soft); font-size: 0.78rem; }
.author-map-links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; margin-top: 1.2rem; }
.author-map-links a { color: var(--rust-dark); font-size: 0.78rem; font-weight: 800; }

@media (max-width: 72rem) {
  .atlas-shell { grid-template-columns: 16rem minmax(0, 1fr); }
  .author-map-header, .map-toolbar, .map-readout, .event-section, .map-evidence { padding-left: 2rem; }
  .event-record { grid-template-columns: 2rem 5.5rem minmax(10rem, 0.75fr) minmax(12rem, 1.25fr); }
  .event-record-precision { grid-column: 3 / -1; text-align: left; }
}
@media (max-width: 56rem) {
  .atlas-hero { grid-template-columns: 1fr; }
  .atlas-shell { display: block; min-height: 0; }
  .atlas-directory { display: none; }
  .author-map-header { padding: 2.5rem 1.5rem 2rem; grid-template-columns: 1fr; }
  .mobile-author-select { display: block; }
  .map-toolbar, .map-readout, .event-section, .map-evidence { padding-left: 1.5rem; padding-right: 1.5rem; }
  #author-map { height: 62vh; min-height: 28rem; }
  .map-readout, .map-evidence { grid-template-columns: 1fr; }
  .event-record { grid-template-columns: 2rem 5.3rem minmax(0, 1fr); }
  .event-record-description { grid-column: 3; }
  .event-record-precision { grid-column: 3; }
}
@media (max-width: 38rem) {
  .atlas-hero { padding-top: 2.6rem; }
  .atlas-stats dd { font-size: 1.45rem; }
  .map-toolbar { gap: 0.8rem 1.2rem; }
  #author-map { min-height: 25rem; }
  .event-heading-row { align-items: flex-start; flex-direction: column; }
  .event-record { grid-template-columns: 2rem minmax(0, 1fr); gap: 0.35rem 0.8rem; }
  .event-record-date, .event-record-type, .event-record-place, .event-record-description, .event-record-precision { grid-column: 2; }
  .event-record-precision { text-align: left; }
}
