/*
 * Lil Red Wagon Atlas.
 *
 * Colours come from Lil Red Wagon's theme tokens (--lrw-*), so light, dark,
 * sepia and high-contrast all follow the reader. Fallbacks cover the admin,
 * where those tokens are not defined. Everything is prefixed lrwa- — Flatsome
 * owns short classes like is-active globally.
 */

.lrwa-modal,
.lrwa-panel-map,
.lrwa-admin-section,
.lrwa-entity {
	--lrwa-bg: var(--lrw-bg, #fff);
	--lrwa-bg-alt: var(--lrw-bg-alt, #f4f3f0);
	--lrwa-text: var(--lrw-text, #1f2328);
	--lrwa-muted: var(--lrw-muted, #6b7280);
	--lrwa-border: var(--lrw-border, #e5e3de);
	--lrwa-accent: var(--lrw-accent, #a4262c);
	--lrwa-accent-soft: var(--lrw-accent-soft, #f7ebeb);
	--lrwa-shadow: var(--lrw-shadow, 0 10px 40px rgba(0, 0, 0, 0.18));
}

/* Flatsome puts margins and a min-height on every control; zero them with no
   added specificity so the rules below still win. */
.lrwa-modal :where(button, input, select, textarea),
.lrwa-panel-map :where(button),
.lrw-panel-body :where(.lrwa-row button, .lrwa-verse-chip) {
	margin: 0;
	min-height: 0;
}

/* ------------------------------------------------------------------ */
/* Verse corner button                                                 */
/* ------------------------------------------------------------------ */

.lrw-verse-tool-atlas-pin.lrwa-has-own {
	color: var(--lrwa-own, #f28c28);
}

.lrw-verse-tool-atlas-pin.lrwa-has-own svg path {
	fill: var(--lrwa-own, #f28c28);
	fill-opacity: 0.25;
}

.lrw-verse-tool-atlas-pin.lrwa-has-other {
	color: var(--lrw-accent, #a4262c);
}

/* ------------------------------------------------------------------ */
/* Pins                                                                */
/* ------------------------------------------------------------------ */

.lrwa-pin {
	display: block;
	width: 30px;
	height: 40px;
	padding: 0;
	margin: 0;
	min-height: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

/* MapLibre positions a marker with `transform` on the element itself, so
   every visual effect lives on the inner SVG — never on .lrwa-pin. */
.lrwa-pin svg {
	display: block;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35));
	transform-origin: 50% 100%;
	transition: transform 0.12s ease, opacity 0.12s ease;
}

.lrwa-pin:hover svg { transform: translateY(-2px); }
.lrwa-pin:focus-visible { outline: 2px solid var(--lrwa-accent, #a4262c); outline-offset: 2px; border-radius: 6px; }
.lrwa-pin-dim svg { opacity: 0.45; transform: scale(0.8); }
.lrwa-pin-dim:hover svg { opacity: 0.9; }
.lrwa-pin-book svg { opacity: 0.85; }
.lrwa-pin-draft svg,
.lrwa-pin-editing svg { animation: lrwa-bob 1.2s ease-in-out infinite; }
.lrwa-pin-draft,
.lrwa-pin-editing { cursor: grab; }

@keyframes lrwa-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-4px); }
}

@media (prefers-reduced-motion: reduce) {
	.lrwa-pin-draft svg,
	.lrwa-pin-editing svg { animation: none; }
}

.maplibregl-popup-content {
	font-family: var(--lrw-font-sans, system-ui, sans-serif);
	font-size: 13px;
	line-height: 1.4;
	border-radius: 8px;
	padding: 10px 12px;
	max-width: 260px;
}

.lrwa-popup-meta { color: #6b7280; margin-top: 2px; }
.lrwa-popup-notes { margin-top: 6px; white-space: pre-line; }

/* Base-map switcher. */
.lrwa-style-ctrl {
	display: flex;
	align-items: stretch;
	overflow: hidden;
}

.lrwa-style-ctrl select {
	border: 0;
	background: #fff;
	font: 12px/1 system-ui, sans-serif;
	height: 29px;
	padding: 0 6px;
	margin: 0;
	box-shadow: none;
	width: auto;
	min-height: 0;
}

.maplibregl-ctrl-group .lrwa-terrain-btn {
	width: 34px;
	font: 700 11px/1 system-ui, sans-serif;
	border-left: 1px solid #ddd;
	color: #333;
}

.maplibregl-ctrl-group .lrwa-terrain-btn[aria-pressed="true"] {
	background: #a4262c;
	color: #fff;
}

/* ------------------------------------------------------------------ */
/* Verse modal                                                         */
/* ------------------------------------------------------------------ */

.lrwa-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(15, 12, 10, 0.45);
	font-family: var(--lrw-font-sans, system-ui, sans-serif);
	color: var(--lrwa-text);
}

.lrwa-modal-card {
	display: flex;
	flex-direction: column;
	width: min(1100px, 100%);
	height: min(760px, 100%);
	background: var(--lrwa-bg);
	border: 1px solid var(--lrwa-border);
	border-radius: 14px;
	box-shadow: var(--lrwa-shadow);
	overflow: hidden;
}

.lrwa-modal-head {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 16px 18px 12px;
	border-bottom: 1px solid var(--lrwa-border);
}

.lrwa-modal-heading { flex: 1; min-width: 0; }

.lrwa-modal .lrwa-modal-title {
	margin: 0;
	font-family: var(--lrw-font-serif, Georgia, serif);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--lrwa-text);
}

.lrwa-modal-excerpt {
	margin: 4px 0 0;
	font-family: var(--lrw-font-serif, Georgia, serif);
	font-size: 14px;
	line-height: 1.45;
	color: var(--lrwa-muted);
}

.lrwa-modal .lrwa-modal-close {
	flex: none;
	width: 34px;
	height: 34px;
	border: 1px solid var(--lrwa-border);
	border-radius: 8px;
	background: var(--lrwa-bg);
	color: var(--lrwa-text);
	font-size: 15px;
	line-height: 1;
	padding: 0;
	cursor: pointer;
}

.lrwa-modal .lrwa-modal-close:hover { background: var(--lrwa-accent-soft); color: var(--lrwa-accent); }

.lrwa-modal-body {
	flex: 1;
	min-height: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
}

.lrwa-modal-map { position: relative; min-height: 280px; }

.lrwa-modal-side {
	overflow-y: auto;
	padding: 16px 18px 20px;
	border-left: 1px solid var(--lrwa-border);
	background: var(--lrwa-bg);
}

.lrwa-modal .lrwa-side-heading,
.lrw-panel-body .lrwa-side-heading {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lrwa-muted);
}

.lrwa-hint {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.45;
	color: var(--lrwa-muted, #6b7280);
}

.lrwa-callout {
	margin-bottom: 16px;
	padding: 12px;
	border-radius: 10px;
	background: var(--lrwa-accent-soft);
}

.lrwa-callout p { margin: 0 0 10px; font-size: 14px; line-height: 1.4; }

/* Form */
.lrwa-field { display: block; margin: 0 0 12px; }

.lrwa-label {
	display: block;
	margin-bottom: 4px;
	font-size: 12px;
	font-weight: 600;
	color: var(--lrwa-muted);
}

.lrwa-modal .lrwa-input {
	box-sizing: border-box;
	width: 100%;
	height: 36px;
	padding: 0 10px;
	border: 1px solid var(--lrwa-border);
	border-radius: 8px;
	background: var(--lrwa-bg);
	color: var(--lrwa-text);
	font: 14px/1.3 var(--lrw-font-sans, system-ui, sans-serif);
	box-shadow: none;
}

.lrwa-modal textarea.lrwa-input { height: auto; padding: 8px 10px; resize: vertical; }
.lrwa-modal .lrwa-input:focus { outline: 2px solid var(--lrwa-accent); outline-offset: -1px; border-color: transparent; }

.lrwa-year-row { display: flex; gap: 6px; margin-bottom: 6px; }
.lrwa-modal .lrwa-year { flex: 1; }
.lrwa-modal .lrwa-era { width: 72px; flex: none; }

.lrwa-check { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.lrwa-modal .lrwa-check input { width: auto; height: auto; }

.lrwa-actions { display: flex; gap: 8px; margin-top: 4px; }

.lrwa-btn,
.lrwa-modal .lrwa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	padding: 0 14px;
	border: 1px solid var(--lrwa-border);
	border-radius: 8px;
	background: var(--lrwa-bg);
	color: var(--lrwa-text);
	font: 600 14px/1 var(--lrw-font-sans, system-ui, sans-serif);
	text-decoration: none;
	cursor: pointer;
}

.lrwa-btn-primary,
.lrwa-modal .lrwa-btn-primary {
	background: var(--lrwa-accent);
	border-color: var(--lrwa-accent);
	color: #fff;
}

.lrwa-btn[disabled] { opacity: 0.6; cursor: default; }

/* Feature rows (modal + panel) */
.lrwa-row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 8px;
	margin: 0 -8px 2px;
	border-radius: 8px;
	cursor: pointer;
}

.lrwa-row:hover { background: var(--lrw-bg-alt, #f4f3f0); }

.lrwa-swatch { flex: none; display: inline-flex; }
.lrwa-swatch svg { width: 20px; height: 27px; }

.lrwa-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 14px; line-height: 1.35; }
.lrwa-row-meta { font-size: 12px; color: var(--lrw-muted, #6b7280); }
.lrwa-row-notes { font-size: 13px; color: var(--lrw-text, #1f2328); white-space: pre-line; }

.lrwa-row-tools { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }

.lrwa-link-btn,
.lrw-app .lrwa-link-btn {
	border: 0;
	background: none;
	padding: 2px 4px;
	color: var(--lrw-accent, #a4262c);
	font: 600 12px/1.2 var(--lrw-font-sans, system-ui, sans-serif);
	cursor: pointer;
	min-height: 0;
	margin: 0;
}

.lrwa-link-btn.lrwa-danger { color: var(--lrw-muted, #6b7280); }
.lrwa-link-btn:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* Study panel tab                                                     */
/* ------------------------------------------------------------------ */

.lrwa-panel-map {
	position: relative;
	height: 240px;
	margin: 0 0 12px;
	border: 1px solid var(--lrwa-border);
	border-radius: 10px;
	overflow: hidden;
}

.lrwa-verse-group { margin: 0 0 10px; }

.lrw-app .lrwa-verse-chip {
	display: inline-block;
	margin: 0 0 4px;
	padding: 2px 9px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: var(--lrw-bg-alt);
	color: var(--lrw-accent);
	font: 700 12px/1.6 var(--lrw-font-sans, system-ui, sans-serif);
	cursor: pointer;
	height: auto;
}

.lrw-app .lrwa-verse-chip:hover { background: var(--lrw-accent-soft); border-color: var(--lrw-border); }

.lrwa-book-pin-line {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--lrw-muted, #6b7280);
}

/* ------------------------------------------------------------------ */
/* Phones                                                              */
/* ------------------------------------------------------------------ */

@media (max-width: 782px) {
	.lrwa-modal { padding: 0; align-items: stretch; }
	.lrwa-modal-card { width: 100%; height: 100%; border-radius: 0; border: 0; }
	.lrwa-modal-body { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
	.lrwa-modal-side { border-left: 0; border-top: 1px solid var(--lrwa-border); max-height: 46dvh; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
	.lrwa-modal-head { padding-top: calc(12px + env(safe-area-inset-top)); }
}

/* ------------------------------------------------------------------ */
/* Admin (Library Manager)                                             */
/* ------------------------------------------------------------------ */

.lrwa-admin-section {
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #dcdcde;
}

.lrwa-admin-section h3 { margin: 0 0 4px; }

.lrwa-admin-map {
	position: relative;
	height: 340px;
	margin: 12px 0 8px;
	border: 1px solid #dcdcde;
	border-radius: 6px;
	overflow: hidden;
}

.lrwa-admin-map.lrwa-picking .maplibregl-canvas { cursor: crosshair; }

.lrwa-admin-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
}

.lrwa-admin-status { color: #50575e; font-size: 13px; }
.lrwa-admin-field { display: flex; align-items: center; gap: 8px; margin: 12px 0; }

/* ------------------------------------------------------------------ */
/* Full map page (/map/)                                               */
/* ------------------------------------------------------------------ */

.lrw-app.lrwa-map-mode .lrw-pane-primary { padding: 0; }
.lrw-app.lrwa-map-mode #lrw-reading { max-width: none; font-family: var(--lrw-font-sans); font-size: 14px; line-height: 1.4; }
.lrw-app.lrwa-map-mode .lrw-toggle-split,
.lrw-app.lrwa-map-mode #lrw-toggle-split { display: none; }

.lrwa-page {
	--lrwa-bg: var(--lrw-bg, #fff);
	--lrwa-text: var(--lrw-text, #1f2328);
	--lrwa-muted: var(--lrw-muted, #6b7280);
	--lrwa-border: var(--lrw-border, #e5e3de);
	--lrwa-accent: var(--lrw-accent, #a4262c);
	--lrwa-accent-soft: var(--lrw-accent-soft, #f7ebeb);
	display: flex;
	flex-direction: column;
	height: calc(100vh - var(--lrw-topbar-h, 53px));
	height: calc(100dvh - var(--lrw-topbar-h, 53px));
	color: var(--lrwa-text);
}

body.admin-bar .lrwa-page { height: calc(100dvh - var(--lrw-topbar-h, 53px) - 32px); }

.lrwa-page :where(button, input, select, textarea, summary) { margin: 0; min-height: 0; }

.lrwa-page-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 12px;
	padding: 10px 16px;
	border-bottom: 1px solid var(--lrwa-border);
	background: var(--lrwa-bg);
}

.lrwa-bar-field { display: flex; flex-direction: column; gap: 3px; font-size: 11px; font-weight: 600; color: var(--lrwa-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.lrwa-bar-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }

.lrwa-page .lrwa-input {
	box-sizing: border-box;
	height: 34px;
	padding: 0 10px;
	border: 1px solid var(--lrwa-border);
	border-radius: 8px;
	background: var(--lrwa-bg);
	color: var(--lrwa-text);
	font: 14px/1.3 var(--lrw-font-sans, system-ui, sans-serif);
	box-shadow: none;
	width: 100%;
	text-transform: none;
	letter-spacing: 0;
}

.lrwa-page-bar .lrwa-input { width: auto; min-width: 150px; max-width: 240px; }
.lrwa-page textarea.lrwa-input { height: auto; padding: 8px 10px; resize: vertical; }
.lrwa-page .lrwa-input:focus { outline: 2px solid var(--lrwa-accent); outline-offset: -1px; border-color: transparent; }
.lrwa-page .lrwa-year { flex: 1; }
.lrwa-page .lrwa-era { width: 72px; flex: none; }
.lrwa-page .lrwa-color { width: 60px; height: 34px; padding: 2px; border: 1px solid var(--lrwa-border); border-radius: 8px; background: var(--lrwa-bg); }

.lrwa-page .lrwa-btn { height: 34px; font-size: 13px; }
.lrwa-page .lrwa-btn-quiet { border-color: transparent; color: var(--lrwa-muted); font-weight: 500; }
.lrwa-page .lrwa-btn-quiet:hover { color: var(--lrwa-accent); }

/* Dropdown menus (books, types, export). */
.lrwa-menu { position: relative; }
.lrwa-menu > summary { list-style: none; cursor: pointer; }
.lrwa-menu > summary::-webkit-details-marker { display: none; }
.lrwa-menu > summary.lrwa-btn::after { content: '▾'; margin-left: 6px; font-size: 10px; }

.lrwa-menu-body {
	position: absolute;
	z-index: 20;
	top: calc(100% + 4px);
	left: 0;
	min-width: 220px;
	max-height: 60vh;
	overflow-y: auto;
	padding: 8px 10px;
	background: var(--lrwa-bg);
	border: 1px solid var(--lrwa-border);
	border-radius: 10px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
}

.lrwa-menu-inline .lrwa-menu-body { min-width: 190px; }
.lrwa-menu-body .lrwa-check { padding: 4px 0; font-size: 13px; }
.lrwa-menu-body hr { border: 0; border-top: 1px solid var(--lrwa-border); margin: 6px 0; }
.lrwa-menu-tools { display: flex; gap: 8px; margin-bottom: 4px; }
.lrwa-menu-item { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 6px 4px; border-radius: 6px; font: 13px/1.3 var(--lrw-font-sans, system-ui, sans-serif); color: var(--lrwa-text); cursor: pointer; }
.lrwa-menu-item:hover { background: var(--lrwa-accent-soft); color: var(--lrwa-accent); }
.lrwa-swatch-sm svg { width: 14px; height: 19px; }

/* Map + side panel. */
.lrwa-page-main { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 360px; }
.lrwa-page-map { position: relative; min-height: 320px; }

.lrwa-page-side {
	overflow-y: auto;
	padding: 14px 16px 24px;
	border-left: 1px solid var(--lrwa-border);
	background: var(--lrwa-bg);
}

.lrwa-page .lrwa-side-heading { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--lrwa-muted); }

.lrwa-model-card { padding: 12px; margin: 0 0 12px; border: 1px solid var(--lrwa-border); border-radius: 12px; }
.lrwa-model-head { display: flex; align-items: flex-start; gap: 10px; }
.lrwa-model-dot { flex: none; width: 12px; height: 12px; margin-top: 5px; border-radius: 50%; }
.lrwa-model-titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lrwa-page .lrwa-model-name { margin: 0; font: 700 16px/1.3 var(--lrw-font-serif, Georgia, serif); color: var(--lrwa-text); }
.lrwa-model-desc { margin: 8px 0 0; font-size: 13px; line-height: 1.45; white-space: pre-line; }
.lrwa-sources { margin-top: 6px; font-size: 12px; }
.lrwa-sources summary { cursor: pointer; color: var(--lrwa-muted); }
.lrwa-model-tools { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.lrwa-add-row { display: flex; align-items: center; gap: 6px; }
.lrwa-add-row .lrwa-label { margin: 0 4px 0 0; }
.lrwa-action-row { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: center; }
.lrwa-action-row .lrwa-link-btn { padding: 2px 0; }
.lrwa-share-row { display: flex; gap: 6px; }
.lrwa-share-row .lrwa-input { font-size: 12px; }

.lrwa-chip {
	height: 28px;
	padding: 0 12px;
	border: 1px solid var(--lrwa-border);
	border-radius: 999px;
	background: var(--lrwa-bg);
	color: var(--lrwa-text);
	font: 600 12px/1 var(--lrw-font-sans, system-ui, sans-serif);
	cursor: pointer;
}

.lrwa-chip:hover,
.lrwa-chip-on { background: var(--lrwa-accent-soft); border-color: var(--lrwa-accent); color: var(--lrwa-accent); }

.lrwa-page .lrwa-search { margin: 4px 0 10px; }
.lrwa-page .lrwa-group-heading { margin: 12px 0 4px; font: 700 12px/1.3 var(--lrw-font-sans, system-ui, sans-serif); color: var(--lrwa-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.lrwa-row-refs { font-size: 12px; color: var(--lrwa-accent); }
.lrwa-field-hint { display: block; margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--lrwa-muted); }
.lrwa-error { color: #b3261e; font-size: 13px; }
.lrwa-empty { padding: 8px 0; }

.lrwa-popup-refs { margin-top: 6px; font-size: 12px; line-height: 1.5; }
.lrwa-popup-refs a { color: #a4262c; }

/* Import mapping. */
.lrwa-import-out { margin: 10px 0; }
.lrwa-map-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0 12px; }
.lrwa-map-cell .lrwa-label { font-size: 11px; }
.lrwa-sample-wrap { overflow-x: auto; margin: 0 0 12px; }
.lrwa-sample { border-collapse: collapse; font-size: 11px; }
.lrwa-sample th,
.lrwa-sample td { border: 1px solid var(--lrwa-border); padding: 3px 6px; text-align: left; white-space: nowrap; }

@media (max-width: 1000px) {
	.lrwa-page { height: auto; }
	.lrwa-page-main { grid-template-columns: 1fr; }
	.lrwa-page-map { height: 58vh; }
	.lrwa-page-side { border-left: 0; border-top: 1px solid var(--lrwa-border); }
	.lrwa-bar-actions { margin-left: 0; }
}

@media (max-width: 600px) {
	.lrwa-page-bar { padding: 8px 12px; }
	.lrwa-page-bar .lrwa-input { min-width: 0; max-width: none; width: 100%; }
	.lrwa-bar-field { flex: 1 1 45%; }
}

/* Model toggles (reader modal + Map tab). */
.lrwa-model-toggles { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }

.lrwa-toggle,
.lrw-app .lrwa-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 28px;
	margin: 0;
	min-height: 0;
	padding: 0 10px;
	border: 1px solid var(--lrw-border, #e5e3de);
	border-radius: 999px;
	background: var(--lrw-bg, #fff);
	color: var(--lrw-muted, #6b7280);
	font: 600 12px/1 var(--lrw-font-sans, system-ui, sans-serif);
	cursor: pointer;
	opacity: 0.7;
}

.lrwa-toggle.lrwa-toggle-on,
.lrw-app .lrwa-toggle.lrwa-toggle-on { color: var(--lrw-text, #1f2328); opacity: 1; border-color: var(--lrw-muted, #6b7280); }
.lrwa-toggle-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.lrwa-toggle:not(.lrwa-toggle-on) .lrwa-toggle-dot { background: transparent !important; box-shadow: inset 0 0 0 1.5px var(--lrw-muted, #6b7280); }
.lrwa-toggle-count { font-weight: 500; color: var(--lrw-muted, #6b7280); }

.lrwa-panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.lrwa-full-map { font: 600 13px/1 var(--lrw-font-sans, system-ui, sans-serif); color: var(--lrw-accent, #a4262c); text-decoration: none; white-space: nowrap; }
.lrwa-full-map:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* Flatsome overrides for Atlas controls                               */
/* ------------------------------------------------------------------ */

/* Flatsome strips the native select arrow; draw our own chevron. */
.lrwa-modal select.lrwa-input,
.lrwa-page select.lrwa-input {
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 14px 14px;
	padding-right: 32px;
	cursor: pointer;
}

.lrwa-modal select.lrwa-era,
.lrwa-page select.lrwa-era { padding-right: 26px; background-position: right 8px center; }

/* Flatsome uppercases and letter-spaces buttons and bolds labels. */
.lrwa-modal :where(.lrwa-btn, .lrwa-link-btn, .lrwa-toggle, .lrwa-modal-close),
.lrwa-page :where(.lrwa-btn, .lrwa-link-btn, .lrwa-chip, .lrwa-menu-item),
.lrw-panel-body :where(.lrwa-link-btn, .lrwa-toggle, .lrwa-verse-chip) {
	text-transform: none;
	letter-spacing: normal;
}

.lrwa-modal .lrwa-check,
.lrwa-page .lrwa-check { font-weight: 400; }

.lrwa-modal .lrwa-side-heading,
.lrwa-page .lrwa-side-heading { font-family: var(--lrw-font-sans, system-ui, sans-serif); }

/* ------------------------------------------------------------------ */
/* People and places                                                   */
/* ------------------------------------------------------------------ */

.lrwa-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.lrwa-entity-chip,
.lrwa-ref-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	border: 1px solid var(--lrw-border, #e5e3de);
	border-radius: 999px;
	background: var(--lrw-bg, #fff);
	color: var(--lrw-text, #1f2328);
	font: 600 12px/1.5 var(--lrw-font-sans, system-ui, sans-serif);
	text-decoration: none;
}

.lrwa-entity-chip:hover,
.lrwa-ref-chip:hover { border-color: var(--lrw-accent, #a4262c); color: var(--lrw-accent, #a4262c); }
.lrwa-ref-chip { font-weight: 500; padding: 2px 8px; }

.lrwa-mentions-block { margin: 16px 0 8px; padding-top: 12px; border-top: 1px solid var(--lrwa-border, #e5e3de); }
.lrwa-mentions-block .lrwa-chips { margin-bottom: 8px; }
.lrwa-suggest { margin-top: 8px; }
.lrwa-suggest .lrwa-year-row select { width: 96px; flex: none; }

.lrw-panel-body .lrwa-entity-heading { margin-top: 18px; }
.lrwa-entity-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 6px; }
.lrwa-entity-verses { display: inline-flex; flex-wrap: wrap; gap: 3px; }

.lrwa-verse-num-btn,
.lrw-app .lrwa-verse-num-btn {
	min-width: 24px;
	height: 20px;
	margin: 0;
	min-height: 0;
	padding: 0 5px;
	border: 0;
	border-radius: 999px;
	background: var(--lrw-bg-alt, #f4f3f0);
	color: var(--lrw-accent, #a4262c);
	font: 700 11px/20px var(--lrw-font-sans, system-ui, sans-serif);
	cursor: pointer;
	text-transform: none;
	letter-spacing: normal;
}

.lrwa-verse-num-btn:hover { background: var(--lrw-accent-soft, #f7ebeb); }

/* Person / place pages. */
.lrw-app.lrwa-entity-mode #lrw-reading { max-width: 980px; font-family: var(--lrw-font-sans); font-size: 15px; line-height: 1.5; }

.lrwa-entity { color: var(--lrw-text, #1f2328); }
.lrwa-entity :where(button, a.lrwa-btn) { margin: 0; min-height: 0; text-transform: none; letter-spacing: normal; }
.lrwa-entity-kind { margin: 0 0 2px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lrw-accent, #a4262c); }
.lrw-reading .lrwa-entity-title { margin: 0; font-family: var(--lrw-font-serif, Georgia, serif); font-size: 2.1em; line-height: 1.15; }
.lrwa-entity-dis { margin: 2px 0 0; font-family: var(--lrw-font-serif, Georgia, serif); font-style: italic; font-size: 18px; color: var(--lrw-muted, #6b7280); }
.lrwa-entity-life,
.lrwa-entity-aka,
.lrwa-entity-count { margin: 6px 0 0; font-size: 14px; color: var(--lrw-muted, #6b7280); }
.lrwa-entity-desc { margin: 12px 0 0; font-family: var(--lrw-font-serif, Georgia, serif); font-size: 17px; line-height: 1.6; white-space: pre-line; }
.lrwa-entity-head { margin-bottom: 24px; }
.lrw-reading .lrwa-entity-h2 { margin: 28px 0 10px; font: 700 13px/1.3 var(--lrw-font-sans, system-ui, sans-serif); letter-spacing: 0.05em; text-transform: uppercase; color: var(--lrw-muted, #6b7280); }
.lrwa-entity-map { position: relative; height: 420px; border: 1px solid var(--lrw-border, #e5e3de); border-radius: 12px; overflow: hidden; }
.lrwa-entity-list .lrwa-row { cursor: default; }
.lrwa-family-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin: 0 0 8px; }
.lrwa-family-row .lrwa-label { width: 150px; flex: none; }
.lrwa-mention-group { margin: 0 0 10px; }
.lrwa-mention-group summary { cursor: pointer; margin-bottom: 6px; }
.lrwa-mention-group .lrwa-chips { padding-left: 14px; }

@media (max-width: 600px) {
	.lrwa-entity-map { height: 300px; }
	.lrwa-family-row .lrwa-label { width: 100%; }
}

/* ------------------------------------------------------------------ */
/* Journeys, timeline, follow                                          */
/* ------------------------------------------------------------------ */

/* Stop markers along a journey (MapLibre positions the element itself —
   no transforms here). */
.lrwa-stop {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 0;
	margin: 0;
	min-height: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.lrwa-stop-dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 3px var(--stop, #a4262c), 0 1px 3px rgba(0, 0, 0, 0.4);
}

.lrwa-stop-label {
	padding: 1px 6px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.9);
	color: #1f2328;
	font: 600 11px/1.4 var(--lrw-font-sans, system-ui, sans-serif);
	white-space: nowrap;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.lrwa-legs { margin: 0 0 10px; padding-left: 1.4em; }
.lrwa-leg { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin: 0 0 6px; }
.lrwa-leg-tools { display: flex; flex-wrap: wrap; gap: 2px 8px; justify-content: flex-end; }
.lrwa-page .lrwa-legs-heading { margin-top: 14px; }

.lrwa-journeys { margin: 0 0 10px; }
.lrwa-journey-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; }
.lrwa-journey-row .lrwa-row-text { flex: 1; }

/* Timeline overlay along the bottom of the map. */
.lrwa-timeline {
	position: absolute;
	left: 12px;
	right: 56px;
	bottom: 34px;
	z-index: 3;
	padding: 8px 12px 6px;
	border: 1px solid var(--lrwa-border, #e5e3de);
	border-radius: 12px;
	background: color-mix(in srgb, var(--lrwa-bg, #fff) 92%, transparent);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
	font: 13px/1.3 var(--lrw-font-sans, system-ui, sans-serif);
}

.lrwa-time-row { display: flex; align-items: center; gap: 10px; }
.lrwa-time-meta { margin-top: 4px; flex-wrap: wrap; }
.lrwa-time-label { font-weight: 700; min-width: 150px; }
.lrwa-page .lrwa-time-mode { width: auto; height: 28px; font-size: 12px; }
.lrwa-time-meta .lrwa-link-btn { margin-left: auto; }

.lrwa-page .lrwa-play,
.lrwa-page .lrwa-cap-btn {
	flex: none;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: var(--lrwa-accent, #a4262c);
	color: #fff;
	font-size: 13px;
	line-height: 34px;
	padding: 0;
	cursor: pointer;
}

.lrwa-time-slider { position: relative; flex: 1; height: 34px; }

.lrwa-time-track {
	position: absolute;
	left: 0;
	right: 0;
	top: 11px;
	height: 12px;
	border-radius: 6px;
	background: var(--lrw-bg-alt, #f1efe9);
	overflow: hidden;
}

.lrwa-time-fill { position: absolute; top: 0; bottom: 0; background: color-mix(in srgb, var(--lrwa-accent, #a4262c) 30%, transparent); }

.lrwa-era {
	position: absolute;
	top: 0;
	bottom: 0;
	margin: 0;
	min-height: 0;
	padding: 0 3px;
	border: 0;
	border-left: 1px solid rgba(0, 0, 0, 0.15);
	background: #d9c9a3;
	opacity: 0.55;
	color: #3b2f1a;
	font: 600 9px/12px var(--lrw-font-sans, system-ui, sans-serif);
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	cursor: pointer;
	pointer-events: auto;
	z-index: 1;
}

.lrwa-era:hover { opacity: 0.85; }
.lrwa-tick { position: absolute; top: 0; bottom: 0; width: 1px; background: rgba(0, 0, 0, 0.18); }

/* Two range inputs stacked on one track; only their thumbs take the pointer. */
.lrwa-page .lrwa-range {
	position: absolute;
	left: 0;
	right: 0;
	top: 7px;
	width: 100%;
	height: 20px;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
	pointer-events: none;
	z-index: 2;
}

.lrwa-range::-webkit-slider-runnable-track { background: none; border: 0; }
.lrwa-range::-moz-range-track { background: none; border: 0; }

.lrwa-range::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--lrwa-accent, #a4262c);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	pointer-events: auto;
	cursor: grab;
}

.lrwa-range::-moz-range-thumb {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid var(--lrwa-accent, #a4262c);
	pointer-events: auto;
	cursor: grab;
}

/* Follow-the-journey caption. */
.lrwa-caption {
	position: absolute;
	top: 56px;
	left: 12px;
	z-index: 3;
	width: min(340px, calc(100% - 80px));
	padding: 12px 14px;
	border: 1px solid var(--lrwa-border, #e5e3de);
	border-radius: 12px;
	background: color-mix(in srgb, var(--lrwa-bg, #fff) 94%, transparent);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.16);
	font: 13px/1.4 var(--lrw-font-sans, system-ui, sans-serif);
}

.lrwa-cap-head { display: flex; align-items: center; gap: 6px; }
.lrwa-cap-head .lrwa-model-dot { margin-top: 0; }
.lrwa-cap-title { margin: 6px 0 2px; font: 700 17px/1.25 var(--lrw-font-serif, Georgia, serif); }
.lrwa-cap-tools { display: flex; gap: 6px; margin-top: 10px; }
.lrwa-page .lrwa-cap-btn { width: 30px; height: 30px; line-height: 30px; font-size: 11px; }
.lrwa-page .lrwa-cap-btn[disabled] { opacity: 0.35; cursor: default; }

@media (max-width: 1000px) {
	.lrwa-timeline { right: 12px; bottom: 30px; }
	.lrwa-time-label { min-width: 0; }
}

/* Admin: eras */
.lrwa-era-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 6px; }

/* ------------------------------------------------------------------ */
/* Embeds ([lrw_atlas], Flatsome element, /map/embed/)                 */
/* ------------------------------------------------------------------ */

.lrwa-embed {
	--lrwa-bg: #fff;
	--lrwa-text: #1f2328;
	--lrwa-muted: #6b7280;
	--lrwa-border: #e5e3de;
	--lrwa-accent: #a4262c;
	--lrwa-accent-soft: #f7ebeb;
	position: relative;
	overflow: hidden;
	border: 1px solid var(--lrwa-border);
	border-radius: 12px;
	background: #efe7d4;
	color: var(--lrwa-text);
	font: 14px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif;
}

.lrwa-embed.lrwa-embed-dark {
	--lrwa-bg: #1c1b19;
	--lrwa-text: #ece9e2;
	--lrwa-muted: #a5a097;
	--lrwa-border: #3a3834;
	--lrwa-accent: #e0787d;
	--lrwa-accent-soft: #3a2426;
	background: #23221f;
}

.lrwa-embed :where(button, input, a) { margin: 0; min-height: 0; text-transform: none; letter-spacing: normal; }
.lrwa-embed-map { position: absolute; inset: 0; }

.lrwa-embed-head {
	position: absolute;
	top: 10px;
	left: 10px;
	right: 60px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	pointer-events: none;
}

.lrwa-embed-title,
.lrwa-embed-journeys { pointer-events: auto; }

.lrwa-embed-title {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	padding: 6px 12px;
	border: 1px solid var(--lrwa-border);
	border-radius: 999px;
	background: color-mix(in srgb, var(--lrwa-bg) 92%, transparent);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.lrwa-embed-title strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lrwa-embed-title a { color: var(--lrwa-accent); font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.lrwa-embed-title .lrwa-model-dot { margin-top: 0; }
.lrwa-embed-journeys { display: flex; flex-wrap: wrap; gap: 6px; }
.lrwa-embed .lrwa-chip { background: var(--lrwa-bg); color: var(--lrwa-text); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12); }

.lrwa-embed-foot {
	position: absolute;
	left: 10px;
	right: 60px;
	bottom: 30px;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 12px;
	border: 1px solid var(--lrwa-border);
	border-radius: 999px;
	background: color-mix(in srgb, var(--lrwa-bg) 92%, transparent);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.lrwa-embed-range { flex: 1; accent-color: var(--lrwa-accent); }
.lrwa-embed .lrwa-time-label { min-width: 0; white-space: nowrap; font-size: 12px; }

.lrwa-embed .lrwa-play,
.lrwa-embed .lrwa-cap-btn {
	flex: none;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: var(--lrwa-accent);
	color: #fff;
	font-size: 11px;
	line-height: 30px;
	padding: 0;
	cursor: pointer;
}

.lrwa-embed .lrwa-cap-btn[disabled] { opacity: 0.35; cursor: default; }
.lrwa-embed-caption { top: 64px; }
.lrwa-embed .lrwa-popup-refs a { color: var(--lrwa-accent); }
.lrwa-embed-note { padding: 12px; border: 1px dashed #c3c4c7; color: #50575e; }

/* Embed code box on the map page. */
.lrwa-embed-code { width: 100%; box-sizing: border-box; font: 12px/1.4 ui-monospace, Menlo, monospace; }
