/* ==========================================================================
   WN4AFT — Find a Repeater (interactive)
   Loaded only by /find-a-repeater.html, after styles.css and radio-tools.css.
   Every rule is scoped to body.rt-repeater. Map marker classes (.rr-pin*)
   are created by repeater-search.js inside the Leaflet map on this page only.
   ========================================================================== */

/* The hidden attribute always wins over display rules on this page */
.rt-repeater [hidden] { display: none !important; }

.rt-repeater .rr-ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rt-repeater .rr-hero { padding-bottom: clamp(5rem, 4rem + 4vw, 7rem); }
.rt-repeater .rr-hero .rr-hero-lead { color: var(--on-navy); font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.45rem); }

/* ---------- Search card ---------- */
.rt-repeater .rr-search-section { margin-top: clamp(-4.5rem, -3rem - 2vw, -3.5rem); position: relative; z-index: 2; }
.rt-repeater .rr-search-card {
  background: var(--paper); border: 1px solid var(--rule); border-top: 5px solid var(--gold); border-radius: 14px;
  padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 18px 40px rgba(10, 24, 48, 0.16);
}
.rt-repeater .rr-search-title { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.85rem); color: var(--navy); margin-bottom: 1rem; }
.rt-repeater .rr-where { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 0.55fr); gap: 1rem 1.5rem; align-items: start; }
.rt-repeater .rr-label { display: block; font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; letter-spacing: 0.03em; color: var(--navy); }
.rt-repeater .rr-hint { color: var(--ink-muted); font-size: 0.93rem; line-height: 1.5; margin: 0.2rem 0 0.6rem; }
.rt-repeater .rr-qrow { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.rt-repeater .rr-input {
  flex: 1 1 14rem; min-width: 0; min-height: 50px; padding: 0.5rem 0.9rem; font: inherit; font-size: 1.1rem;
  color: var(--ink); background: #FFFFFF; border: 2px solid #8C93A0; border-radius: 10px;
}
.rt-repeater .rr-input:focus { border-color: var(--navy); }
.rt-repeater .rr-input:focus-visible, .rt-repeater select:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.rt-repeater .rr-input[aria-invalid="true"] { border-color: #A3231A; box-shadow: 0 0 0 1px #A3231A; }
.rt-repeater .rr-submit { min-height: 50px; }
.rt-repeater .rr-submit[aria-busy="true"] .rr-spinner { display: inline-block; }
.rt-repeater .rr-field-error { display: flex; gap: 0.4rem; color: #A3231A; font-weight: 600; margin: 0.55rem 0 0; }
.rt-repeater .rr-field-error[hidden] { display: none; }
.rt-repeater .rr-field-error::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #A3231A; color: #fff; font-size: 0.8rem; margin-top: 0.2rem; }
.rt-repeater .rr-or { align-self: center; display: flex; flex-direction: column; align-items: center; gap: 0.4rem; color: var(--ink-muted); font-family: var(--font-display); letter-spacing: 0.15em; text-transform: uppercase; font-size: 0.8rem; padding-top: 1.6rem; }
.rt-repeater .rr-or::before, .rt-repeater .rr-or::after { content: ""; width: 1px; height: 1.4rem; background: var(--rule); }
.rt-repeater .rr-geo { padding-top: 1.6rem; }
.rt-repeater .rr-btn-outline { border: 2px solid var(--navy); color: var(--navy); background: #FFFFFF; min-height: 50px; }
.rt-repeater .rr-btn-outline:hover:not(:disabled) { background: var(--cream); }
.rt-repeater .rr-btn-outline:disabled, .rt-repeater .rr-submit:disabled { opacity: 0.7; cursor: progress; }
.rt-repeater .rr-geo-msg { margin: 1rem 0 0; padding: 0.8rem 1rem; border-radius: 10px; background: #FFF5DA; border-left: 5px solid var(--gold-ink); color: var(--ink); }
.rt-repeater .rr-geo-msg[hidden] { display: none; }

.rt-repeater .rr-filters { border: 0; margin: 1.25rem 0 0; padding: 0; min-width: 0; box-shadow: inset 0 1px 0 var(--rule); }
.rt-repeater .rr-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 0.75rem 1rem; }
.rt-repeater .rr-filters legend { display: block; padding: 1.1rem 0 0; margin-bottom: 0.6rem; font-family: var(--font-display); font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-muted); }
.rt-repeater .rr-filter label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 0.3rem; color: var(--ink); }
.rt-repeater .rr-filter select { width: 100%; min-height: 46px; padding: 0.4rem 0.6rem; font: inherit; color: var(--ink); background: #FFFFFF; border: 1.5px solid #8C93A0; border-radius: 8px; }
.rt-repeater .rr-filter-note { grid-column: 1 / -1; margin: 0; font-size: 0.9rem; color: var(--ink-muted); }
.rt-repeater .rr-noscript { padding: 1rem 1.15rem; border-radius: 10px; background: #FFF5DA; border: 1px solid var(--gold-ink); margin: 0; }

/* Ambiguous places */
.rt-repeater .rr-places { margin-top: 1.25rem; padding: 1.1rem 1.25rem; border-radius: 12px; background: #FFFFFF; border: 2px solid var(--navy); }
.rt-repeater .rr-places-title { font-size: 1.3rem; color: var(--navy); margin-bottom: 0.2rem; }
.rt-repeater .rr-places-title:focus { outline: none; }
.rt-repeater .rr-places-list { list-style: none; margin: 0.6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0.5rem; }
.rt-repeater .rr-place-btn { display: flex; flex-direction: column; align-items: flex-start; gap: 0.15rem; width: 100%; min-height: 52px; padding: 0.6rem 0.85rem; text-align: left; font: inherit; color: var(--navy); background: var(--paper); border: 1.5px solid var(--rule); border-radius: 10px; cursor: pointer; }
.rt-repeater .rr-place-btn:hover { border-color: var(--navy); background: var(--cream); }
.rt-repeater .rr-place-name { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.02em; }
.rt-repeater .rr-place-meta { font-size: 0.85rem; color: var(--ink-muted); }

/* Spinners */
.rt-repeater .rr-spinner { display: none; width: 18px; height: 18px; border-radius: 50%; border: 3px solid currentColor; border-right-color: transparent; animation: rr-spin 0.8s linear infinite; }
.rt-repeater .rr-spinner-lg { display: inline-block; width: 28px; height: 28px; color: var(--gold-ink); }
@keyframes rr-spin { to { transform: rotate(360deg); } }

/* ---------- Results ---------- */
.rt-repeater .rr-results-section { padding-block: clamp(2.25rem, 1.5rem + 3vw, 3.5rem) clamp(3rem, 2rem + 4vw, 5rem); }
.rt-repeater .rr-results-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 1.25rem; margin-bottom: 0.75rem; }
.rt-repeater .rr-results-title { font-size: var(--step-2); color: var(--navy); }
.rt-repeater .rr-count { margin: 0; font-weight: 600; color: var(--ink); flex: 1 1 18rem; }
.rt-repeater .rr-origin { flex-basis: 100%; order: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0.25rem 0 0; color: var(--ink); }
.rt-repeater .rr-origin[hidden] { display: none; }
.rt-repeater .rr-origin-mark { width: 18px; height: 18px; border-radius: 50%; background: var(--gold); border: 3px solid var(--navy); box-shadow: 0 0 0 2px var(--gold); flex: none; }
.rt-repeater .rr-origin-precision { color: var(--ink-muted); }
.rt-repeater .rr-availability { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0 0 1rem; padding: 0.85rem 1rem; border-radius: 10px; background: var(--paper); border: 1px solid var(--rule); color: var(--ink); max-width: none; }
.rt-repeater .rr-availability .rr-ico { color: var(--navy); margin-top: 0.15rem; }

.rt-repeater .rr-notices:empty { display: none; }
.rt-repeater .rr-notices { display: grid; gap: 0.6rem; margin-bottom: 1rem; }
.rt-repeater .rr-notice { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.8rem 1rem; border-radius: 10px; border: 1px solid var(--rule); background: #FFFFFF; }
.rt-repeater .rr-notice-warn { background: #FFF5DA; border-left: 5px solid var(--gold-ink); }
.rt-repeater .rr-notice-info { border-left: 5px solid var(--navy); }
.rt-repeater .rr-notice-ico { width: 22px; height: 22px; flex: none; fill: none; stroke: var(--navy); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-top: 0.1rem; }
.rt-repeater .rr-notice-title { display: block; color: var(--navy); }
.rt-repeater .rr-notice p { margin: 0.1rem 0 0; }
.rt-repeater .rr-source-line { margin: 0; font-size: 0.93rem; color: var(--ink-muted); }

.rt-repeater .rr-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 1.25rem; align-items: start; }
.rt-repeater .rr-map-col { position: sticky; top: 5rem; }

/* States */
.rt-repeater .rr-state { display: flex; align-items: center; gap: 0.85rem; padding: 1.25rem; border: 2px dashed var(--rule); border-radius: 12px; color: var(--ink-muted); background: var(--paper); }
.rt-repeater .rr-state p { margin: 0; }
.rt-repeater .rr-state-ico { width: 28px; height: 28px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rt-repeater .rr-state-unavailable { border: 1px solid var(--gold-ink); border-left: 5px solid var(--gold-ink); background: #FFF5DA; color: var(--ink); }
.rt-repeater .rr-state-empty { border-style: solid; color: var(--ink); }
.rt-repeater .rr-state-loading { border-style: solid; color: var(--ink); }

/* Result list */
.rt-repeater .rr-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.rt-repeater .rr-item { background: #FFFFFF; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; }
.rt-repeater .rr-item.is-selected { border-color: var(--navy); box-shadow: 0 0 0 2px var(--navy), 0 10px 26px rgba(10, 24, 48, 0.12); }
.rt-repeater .rr-item-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.85rem; align-items: start; width: 100%; padding: 0.9rem 1rem; text-align: left; font: inherit; color: var(--ink); background: none; border: 0; cursor: pointer; }
.rt-repeater .rr-item-head:hover { background: var(--paper); }
.rt-repeater .rr-item-head:focus-visible { outline: 3px solid var(--navy); outline-offset: -3px; border-radius: 12px; }
.rt-repeater .rr-num { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--navy); color: #FFFFFF; font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; }
.rt-repeater .rr-item.is-selected .rr-num { background: var(--gold); color: var(--navy-deep); box-shadow: 0 0 0 3px var(--navy); }
.rt-repeater .rr-item-main { display: grid; gap: 0.2rem; min-width: 0; }
.rt-repeater .rr-line1 { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; align-items: baseline; }
.rt-repeater .rr-call { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; letter-spacing: 0.05em; color: var(--navy); }
.rt-repeater .rr-freq { font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; color: var(--ink); }
.rt-repeater .rr-line2 { display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; color: var(--ink-muted); font-size: 0.95rem; }
.rt-repeater .rr-dist { font-weight: 600; color: var(--ink); }
.rt-repeater .rr-line3 { display: flex; flex-wrap: wrap; gap: 0.35rem 0.5rem; align-items: center; margin-top: 0.15rem; }
.rt-repeater .rr-modes { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; }
.rt-repeater .rr-chip { font-family: var(--font-display); font-size: 0.78rem; letter-spacing: 0.06em; padding: 0.1rem 0.5rem; border-radius: 999px; background: var(--navy); color: #FFFFFF; }
.rt-repeater .rr-chip-muted { background: var(--cream); color: var(--ink-muted); border: 1px solid var(--rule); }
.rt-repeater .rr-mini { font-size: 0.85rem; color: var(--ink-muted); }
.rt-repeater .rr-mini-nomap { font-style: italic; }
.rt-repeater .rr-chev { width: 0.6rem; height: 0.6rem; margin-top: 0.6rem; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(45deg); transition: transform 0.15s; }
.rt-repeater .rr-item-head[aria-expanded="true"] .rr-chev { transform: rotate(-135deg); }

/* Inline details */
.rt-repeater .rr-detail { padding: 0 1rem 1.1rem; border-top: 1px solid var(--rule); background: var(--paper); }
.rt-repeater .rr-status { display: inline-flex; align-items: center; gap: 0.35rem; margin: 0.9rem 0 0.4rem; padding: 0.2rem 0.65rem 0.2rem 0.4rem; border-radius: 999px; font-size: 0.88rem; font-weight: 600; border: 1.5px solid currentColor; }
.rt-repeater .rr-status-up { color: #1E6B3A; background: #E7F4EC; }
.rt-repeater .rr-status-down { color: #A3231A; background: #FCECEA; }
.rt-repeater .rr-status-none { color: var(--ink-muted); background: #FFFFFF; }
.rt-repeater .rr-status-ico { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.rt-repeater .rr-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin: 0.4rem 0 0; }
.rt-repeater .rr-field { padding: 0.6rem 0; border-bottom: 1px solid var(--rule); min-width: 0; }
.rt-repeater .rr-field-wide { grid-column: 1 / -1; }
.rt-repeater .rr-field dt { font-family: var(--font-display); font-size: 0.74rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--ink-muted); }
.rt-repeater .rr-field dd { margin: 0.15rem 0 0; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }
.rt-repeater .rr-field-hint { display: block; font-size: 0.82rem; color: var(--ink-muted); white-space: normal; }
.rt-repeater .rr-missing { color: var(--ink-muted) !important; font-style: italic; }
.rt-repeater .rr-subfields { display: grid; grid-template-columns: auto 1fr; gap: 0.1rem 0.8rem; margin: 0; }
.rt-repeater .rr-subfields dt { font-weight: 600; text-transform: none; letter-spacing: 0; font-family: inherit; font-size: 0.95rem; color: var(--ink); }
.rt-repeater .rr-subfields dd { margin: 0; }
.rt-repeater .rr-rec-warn { display: flex; gap: 0.6rem; margin-top: 0.8rem; padding: 0.7rem 0.9rem; border-radius: 10px; background: #FFF5DA; border-left: 5px solid var(--gold-ink); }
.rt-repeater .rr-rec-warn ul { margin: 0.2rem 0 0; padding-left: 1.1rem; }
.rt-repeater .rr-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; margin-top: 0.9rem; }
.rt-repeater .rr-detail-note { margin: 0.6rem 0 0; font-size: 0.85rem; color: var(--ink-muted); }
.rt-repeater .rr-text-btn { min-height: 44px; padding: 0 0.2rem; font: inherit; font-family: var(--font-display); font-weight: 500; letter-spacing: 0.04em; color: var(--navy); background: none; border: 0; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; cursor: pointer; }
.rt-repeater .rr-ext { font-family: var(--font-display); font-weight: 500; letter-spacing: 0.03em; color: var(--navy); text-decoration-color: var(--gold); text-underline-offset: 4px; }
.rt-repeater .rr-ext-ico { display: inline-block; width: 14px; height: 14px; margin-left: 0.3rem; vertical-align: -2px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Map ---------- */
.rt-repeater .rr-map-consent { display: flex; flex-direction: column; align-items: flex-start; gap: 0.6rem; padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: 14px; background: var(--navy); color: var(--on-navy); }
.rt-repeater .rr-map-consent[hidden] { display: none; }
.rt-repeater .rr-map-consent h3 { color: var(--on-navy); font-size: 1.35rem; }
.rt-repeater .rr-map-consent p { margin: 0; color: var(--on-navy-muted); font-size: 0.98rem; }
.rt-repeater .rr-map-consent .btn { margin-top: 0.4rem; background: var(--gold); color: var(--navy-deep); }
.rt-repeater .rr-map-consent .btn:hover { background: #E6BC45; }
.rt-repeater .rr-map-consent :focus-visible { outline-color: var(--gold); }
.rt-repeater .rr-map-consent-art { width: 54px; height: 54px; fill: none; stroke: var(--gold); stroke-width: 2.4; stroke-linejoin: round; }
.rt-repeater .rr-map-fail { margin-top: 0.4rem !important; padding: 0.6rem 0.8rem; border-radius: 8px; background: #FFF5DA; color: var(--ink) !important; }
.rt-repeater .rr-map-wrap { border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.rt-repeater .rr-map-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.25rem 1rem; padding: 0.5rem 0.9rem; border-bottom: 1px solid var(--rule); background: var(--paper); }
.rt-repeater .rr-map-caption { margin: 0; font-size: 0.9rem; color: var(--ink); flex: 1 1 14rem; }
.rt-repeater .rr-map { height: clamp(320px, 62vh, 560px); background: #DDE3EA; }
.rt-repeater .rr-map:focus-visible { outline: 3px solid var(--navy); outline-offset: -3px; }
.rt-repeater .rr-map-error { margin: 0; padding: 0.6rem 0.9rem; background: #FFF5DA; border-top: 1px solid var(--gold-ink); color: var(--ink); font-size: 0.93rem; }
.rt-repeater .rr-map-error[hidden] { display: none; }
.rt-repeater .rr-legend { list-style: none; margin: 0; padding: 0.6rem 0.9rem; display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; font-size: 0.88rem; color: var(--ink); border-top: 1px solid var(--rule); }
.rt-repeater .rr-legend li { display: inline-flex; align-items: center; gap: 0.45rem; }
.rt-repeater .rr-key { display: inline-grid; place-items: center; flex: none; }
.rt-repeater .rr-key-origin { width: 18px; height: 18px; border-radius: 50%; background: var(--gold); border: 3px solid var(--navy); box-shadow: 0 0 0 2px var(--gold); }
.rt-repeater .rr-key-rpt { width: 22px; height: 22px; border-radius: 50%; background: var(--navy); color: #FFFFFF; font-family: var(--font-display); font-weight: 700; font-size: 0.75rem; border: 2px solid #FFFFFF; box-shadow: 0 0 0 1px var(--navy); }
.rt-repeater .rr-key-radius { width: 22px; height: 14px; border: 2px dashed var(--navy); border-radius: 50%; }

/* Leaflet markers (divIcons). Shape + number + border carry meaning, not color alone. */
.rt-repeater .rr-pin { background: none; border: 0; }
.rt-repeater .rr-pin-num { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--navy); color: #FFFFFF; border: 2px solid #FFFFFF; box-shadow: 0 0 0 1.5px var(--navy), 0 2px 6px rgba(0, 0, 0, 0.35); font-family: var(--font-display); font-weight: 700; font-size: 0.9rem; line-height: 1; }
.rt-repeater .rr-pin.is-selected .rr-pin-num { background: var(--gold); color: var(--navy-deep); transform: scale(1.25); box-shadow: 0 0 0 3px var(--navy), 0 3px 10px rgba(0, 0, 0, 0.4); }
.rt-repeater .rr-pin:focus-visible { outline: none; }
.rt-repeater .rr-pin:focus-visible .rr-pin-num { box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 6px var(--navy); }
.rt-repeater .rr-pin-origin { background: none; border: 0; }
.rt-repeater .rr-pin-origin-inner { display: block; width: 30px; height: 30px; border-radius: 50%; background: var(--gold); border: 5px solid var(--navy); box-shadow: 0 0 0 3px var(--gold), 0 2px 8px rgba(0, 0, 0, 0.35); }
.rt-repeater .rr-radius { stroke: #10233F; stroke-width: 2; stroke-dasharray: 7 7; fill: #10233F; fill-opacity: 0.04; }
.rt-repeater .leaflet-container { font-family: var(--font-body); }
.rt-repeater .leaflet-control-attribution { font-size: 0.75rem; }
.rt-repeater .leaflet-control-attribution a { color: #10233F; }

/* ---------- Help + credits ---------- */
.rt-repeater .rr-help { border-radius: 14px; background: #FFFFFF; border: 1px solid var(--rule); }
.rt-repeater .rr-help > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; cursor: pointer; border-radius: 14px; }
.rt-repeater .rr-help > summary::-webkit-details-marker { display: none; }
.rt-repeater .rr-help > summary h2 { font-size: var(--step-2); color: var(--navy); margin: 0; }
.rt-repeater .rr-help > summary::after { content: ""; flex: none; width: 0.7rem; height: 0.7rem; border-right: 2.5px solid var(--navy); border-bottom: 2.5px solid var(--navy); transform: rotate(45deg); transition: transform 0.15s; }
.rt-repeater .rr-help[open] > summary::after { transform: rotate(-135deg); }
.rt-repeater .rr-help > summary:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.rt-repeater .rr-help-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0 1.4rem 1.4rem; }
.rt-repeater .rr-help-list > div { padding: 1rem 1.1rem; border-radius: 10px; background: var(--paper); border: 1px solid var(--rule); }
.rt-repeater .rr-help-list > div:last-child { grid-column: 1 / -1; border-left: 5px solid var(--gold); }
.rt-repeater .rr-help-list dt { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--navy); margin-bottom: 0.25rem; }
.rt-repeater .rr-help-list dd { margin: 0; line-height: 1.6; }

.rt-repeater .rr-credits-section { padding-block: clamp(2rem, 1.5rem + 2vw, 3rem); }
.rt-repeater .rr-credits-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.5rem 3rem; }
.rt-repeater .rr-small-h2 { font-size: 1.2rem; color: var(--navy); margin-bottom: 0.6rem; }
.rt-repeater .rr-credits { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; font-size: 0.95rem; color: var(--ink); }
.rt-repeater .rr-credits a { color: var(--navy); text-decoration-color: var(--gold); text-underline-offset: 3px; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .rt-repeater .rr-where { grid-template-columns: minmax(0, 1fr); }
  .rt-repeater .rr-or { flex-direction: row; padding-top: 0; justify-content: flex-start; }
  .rt-repeater .rr-or::before, .rt-repeater .rr-or::after { width: 2rem; height: 1px; }
  .rt-repeater .rr-geo { padding-top: 0; }
  .rt-repeater .rr-layout { grid-template-columns: minmax(0, 1fr); }
  .rt-repeater .rr-map-col { position: static; order: -1; }
  .rt-repeater .rr-map { height: clamp(280px, 50vh, 420px); }
}
@media (max-width: 760px) {
  .rt-repeater .rr-filter-grid { grid-template-columns: minmax(0, 1fr); }
  .rt-repeater .rr-help-list, .rt-repeater .rr-credits-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .rt-repeater .rr-submit, .rt-repeater .rr-btn-outline, .rt-repeater .rr-map-consent .btn { width: 100%; }
  .rt-repeater .rr-fields { grid-template-columns: minmax(0, 1fr); }
  .rt-repeater .rr-item-head { padding: 0.85rem 0.8rem; gap: 0.65rem; }
  .rt-repeater .rr-detail { padding: 0 0.8rem 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .rt-repeater .rr-chev, .rt-repeater .rr-help > summary::after { transition: none; }
  .rt-repeater .rr-spinner { animation-duration: 2.4s; }
  .rt-repeater .rr-pin.is-selected .rr-pin-num { transform: none; }
}

/* ==========================================================================
   Multi-source additions (sources, provenance, possible matches, local refs)
   ========================================================================== */
/* Sources searched */
.rt-repeater .rr-sources { padding: 0.9rem 1rem; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--rule); }
.rt-repeater .rr-sources-title { font-size: 1.1rem; color: var(--navy); margin: 0; }
.rt-repeater .rr-sources-lead { margin: 0.15rem 0 0.6rem; font-size: 0.93rem; color: var(--ink-muted); }
.rt-repeater .rr-sources-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.rt-repeater .rr-source-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; padding-top: 0.45rem; border-top: 1px solid var(--rule); }
.rt-repeater .rr-source-row:first-child { border-top: 0; padding-top: 0; }
.rt-repeater .rr-source-name { font-family: var(--font-display); font-weight: 700; letter-spacing: 0.03em; color: var(--navy); min-width: 7rem; }
.rt-repeater .rr-source-meta { font-size: 0.9rem; color: var(--ink-muted); flex: 1 1 14rem; }
.rt-repeater .rr-sstate { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.1rem 0.6rem 0.1rem 0.4rem; border-radius: 999px; font-size: 0.82rem; font-weight: 600; border: 1.5px solid currentColor; }
.rt-repeater .rr-sstate-available { color: #1E6B3A; background: #E7F4EC; }
.rt-repeater .rr-sstate-stale { color: #7A5A0C; background: #FFF5DA; }
.rt-repeater .rr-sstate-unavailable { color: #A3231A; background: #FCECEA; }

/* Source badge on each listing */
.rt-repeater .rr-src { font-family: var(--font-display); font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.08rem 0.5rem; border-radius: 4px; border: 1.5px solid var(--navy); color: var(--navy); background: #FFFFFF; align-self: center; }
.rt-repeater .rr-src-local { border-style: dashed; border-color: var(--gold-ink); color: var(--gold-ink); background: #FFF8E6; }

/* Possible matching listings group */
.rt-repeater .rr-group { background: #FFFFFF; border: 2px dashed var(--navy); border-radius: 12px; overflow: hidden; }
.rt-repeater .rr-group.is-open { border-style: solid; box-shadow: 0 10px 26px rgba(10, 24, 48, 0.12); }
.rt-repeater .rr-group-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.85rem; align-items: start; width: 100%; padding: 0.9rem 1rem; text-align: left; font: inherit; color: var(--ink); background: none; border: 0; cursor: pointer; }
.rt-repeater .rr-group-head:hover { background: var(--paper); }
.rt-repeater .rr-group-head:focus-visible { outline: 3px solid var(--navy); outline-offset: -3px; border-radius: 10px; }
.rt-repeater .rr-group-head[aria-expanded="true"] .rr-chev { transform: rotate(-135deg); }
.rt-repeater .rr-num-group { background: #FFFFFF; color: var(--navy); border: 2px dashed var(--navy); }
.rt-repeater .rr-group-kicker { font-family: var(--font-display); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); }
.rt-repeater .rr-disagree, .rt-repeater .rr-cmp-flag { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.82rem; font-weight: 700; color: #7A5A0C; background: #FFF5DA; border: 1.5px solid #7A5A0C; border-radius: 999px; padding: 0.05rem 0.55rem 0.05rem 0.35rem; }
.rt-repeater .rr-group-body { padding: 0 1rem 1rem; border-top: 1px solid var(--rule); background: var(--paper); }
.rt-repeater .rr-group-lead { margin: 0.9rem 0 0.75rem; }
.rt-repeater .rr-group-body .rr-notice { margin-bottom: 0.75rem; }
.rt-repeater .rr-group-sub { margin: 1rem 0 0.5rem; font-weight: 600; }
.rt-repeater .rr-variants { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.rt-repeater .rr-variant .rr-num { border-radius: 8px; width: auto; min-width: 30px; padding: 0 0.3rem; }
.rt-repeater .rr-cmp-wrap { overflow-x: auto; border: 1px solid var(--rule); border-radius: 10px; background: #FFFFFF; }
.rt-repeater .rr-cmp-wrap:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.rt-repeater .rr-cmp { width: 100%; border-collapse: collapse; font-size: 0.93rem; min-width: 30rem; }
.rt-repeater .rr-cmp th, .rt-repeater .rr-cmp td { padding: 0.5rem 0.7rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.rt-repeater .rr-cmp thead th { background: var(--navy); color: #FFFFFF; }
.rt-repeater .rr-cmp-corner { background: var(--navy); }
.rt-repeater .rr-cmp-label { display: inline-grid; place-items: center; min-width: 28px; height: 24px; padding: 0 0.3rem; margin-right: 0.4rem; border-radius: 6px; background: #FFFFFF; color: var(--navy); font-family: var(--font-display); font-weight: 700; }
.rt-repeater .rr-cmp-src { font-family: var(--font-display); letter-spacing: 0.04em; }
.rt-repeater .rr-cmp tbody th { font-weight: 600; color: var(--ink); width: 34%; }
.rt-repeater .rr-cmp-disagree th, .rt-repeater .rr-cmp-disagree td { background: #FFF8E6; }
.rt-repeater .rr-cmp-flag { margin-top: 0.3rem; font-size: 0.75rem; }
.rt-repeater .rr-cmp tbody tr:last-child th, .rt-repeater .rr-cmp tbody tr:last-child td { border-bottom: 0; }

/* Local references */
.rt-repeater .rr-local { margin-top: 1.25rem; padding: 1rem; border-radius: 12px; background: #FFF8E6; border: 2px dashed var(--gold-ink); }
.rt-repeater .rr-local-title { font-size: 1.2rem; color: var(--navy); margin: 0; }
.rt-repeater .rr-local-lead { margin: 0.2rem 0 0.75rem; font-size: 0.93rem; color: var(--ink); }
.rt-repeater .rr-item-local .rr-num { background: #FFFFFF; color: var(--gold-ink); border: 2px dashed var(--gold-ink); border-radius: 8px; width: auto; min-width: 30px; padding: 0 0.25rem; }
.rt-repeater .rr-local-note { margin: 0.6rem 0 0; padding: 0.45rem 0.7rem; border-radius: 8px; background: #FFF8E6; border: 1px dashed var(--gold-ink); font-size: 0.92rem; }

/* Map: variant markers are rounded squares; group highlight ring */
.rt-repeater .rr-pin-variant .rr-pin-num { border-radius: 8px; width: auto; min-width: 30px; padding: 0 0.3rem; }
.rt-repeater .rr-pin.is-group .rr-pin-num { box-shadow: 0 0 0 3px #D4A72C, 0 0 0 5px #10233F; }
.rt-repeater .rr-key-variant { min-width: 26px; height: 22px; padding: 0 0.2rem; border-radius: 6px; background: var(--navy); color: #FFFFFF; font-family: var(--font-display); font-weight: 700; font-size: 0.72rem; border: 2px solid #FFFFFF; box-shadow: 0 0 0 1px var(--navy); }
