/* ===== 성경 맥락 보기 — visual system v0.1 (독립 설계; 외부 폰트/이미지 없음) ===== */

/* --- semantic tokens --- */
:root {
  --page: #f6f3ec;          /* 따뜻한 배경 */
  --paper: #fffdf8;         /* 읽는 면 */
  --tint: #f1ede3;          /* 호버·구분 면 */
  --ink: #2a2926;           /* 본문 (순검정 아님) */
  --ink-2: #57544c;         /* 보조 본문 */
  --ink-3: #6e6a60;         /* metadata */
  --line: #e8e3d7;
  --line-strong: #d9d3c4;
  --accent: #2b7a78;        /* 유일한 accent: 선택된 entity·활성 상태 */
  --accent-ink: #1e5d5b;
  --accent-soft: #e0efec;
  --accent-line: #9fcbc5;
  --on-accent: #ffffff;
  --warn-bg: #fbf1dc; --warn-ink: #7a4b00;
  /* ---- 지도 테마 토큰: WARM_EDITORIAL_ATLAS v0.2 (mockup-matched) (Light) — 지도 색은 여기서만 정의한다 ---- */
  --map-land-base: #E3DCCD; --map-land-lowland: #F1EBDF; --map-relief-mid: #D5CDBE; --map-relief-shadow: #BAB1A1; --map-relief-deep: #A69C8C; --map-relief-high: #F2ECE0;
  --map-water: #9CBBCB; --map-water-shade: #7DA4B9; --map-river: #5A8FA6; --map-water-edge: #6F98AA;
  --map-label-primary: #57514C; --map-label-secondary: #77716B; --map-label-reference: #8E877E; --map-label-water: #2A4859;
  --map-label-halo: rgba(227, 220, 205, .78);
  /* 호환 별칭(기존 규칙이 쓰던 이름) */
  --map-land: var(--map-land-base); --map-land-flat: var(--map-land-base); --map-sea: var(--map-water); --map-coast: var(--map-water-edge);
  --label-halo: var(--map-label-halo); --label-water: var(--map-label-water); --label-ref: var(--map-label-secondary); --label-ref-region: var(--map-label-secondary);

  --font-ui: "Pretendard", "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;
  --font-read: "Noto Serif KR", "Nanum Myeongjo", "Batang", "AppleMyungjo", serif;

  --fs-title: 1.3rem;
  --fs-scripture: 1.1875rem;
  --fs-body: .95rem;
  --fs-tab: .84rem;
  --fs-entity: 1rem;
  --fs-section: .75rem;
  --fs-meta: .8125rem;
  --fs-helper: .78rem;

  --r-sm: 6px; --r-md: 10px; --r-lg: 16px;
  --sh-1: 0 1px 2px rgba(60, 50, 30, .06);
  --sh-2: 0 8px 28px rgba(60, 50, 30, .12);
  --gap: 24px;
}
@media (prefers-color-scheme: dark) {
  :root {
    /* 지도 테마 토큰: WARM_EDITORIAL_ATLAS v0.2 (mockup-matched) (Dark) */
    --map-land-base: #4D463E; --map-land-lowland: #564E44; --map-relief-mid: #574F45; --map-relief-shadow: #302D29; --map-relief-deep: #242321; --map-relief-high: #695F52;
    --map-water: #214657; --map-water-shade: #183A4B; --map-river: #6F9DB0; --map-water-edge: #7596A3;
    --map-label-primary: #DDD5C8; --map-label-secondary: #B4AB9E; --map-label-reference: #A0998D; --map-label-water: #B8D2DE;
    --map-label-halo: rgba(77, 70, 62, .72);
    --map-land: var(--map-land-base); --map-land-flat: var(--map-land-base); --map-sea: var(--map-water); --map-coast: var(--map-water-edge);
    --label-halo: var(--map-label-halo); --label-water: var(--map-label-water); --label-ref: var(--map-label-secondary); --label-ref-region: var(--map-label-secondary);
  }
}

/* 지도 테마 수동 선택(시스템 설정 위에서 덮어쓰기). 지리/레이어/카메라 상태는 그대로, 토큰만 바뀐다. */
:root[data-map-theme="light"] {
  /* ---- 지도 테마 토큰: WARM_EDITORIAL_ATLAS v0.2 (mockup-matched) (Light) — 지도 색은 여기서만 정의한다 ---- */
  --map-land-base: #E3DCCD; --map-land-lowland: #F1EBDF; --map-relief-mid: #D5CDBE; --map-relief-shadow: #BAB1A1; --map-relief-deep: #A69C8C; --map-relief-high: #F2ECE0;
  --map-water: #9CBBCB; --map-water-shade: #7DA4B9; --map-river: #5A8FA6; --map-water-edge: #6F98AA;
  --map-label-primary: #57514C; --map-label-secondary: #77716B; --map-label-reference: #8E877E; --map-label-water: #2A4859;
  --map-label-halo: rgba(227, 220, 205, .78);
  /* 호환 별칭(기존 규칙이 쓰던 이름) */
  --map-land: var(--map-land-base); --map-land-flat: var(--map-land-base); --map-sea: var(--map-water); --map-coast: var(--map-water-edge);
  --label-halo: var(--map-label-halo); --label-water: var(--map-label-water); --label-ref: var(--map-label-secondary); --label-ref-region: var(--map-label-secondary);
}
:root[data-map-theme="dark"] {
    /* 지도 테마 토큰: WARM_EDITORIAL_ATLAS v0.2 (mockup-matched) (Dark) */
  --map-land-base: #4D463E; --map-land-lowland: #564E44; --map-relief-mid: #574F45; --map-relief-shadow: #302D29; --map-relief-deep: #242321; --map-relief-high: #695F52;
  --map-water: #214657; --map-water-shade: #183A4B; --map-river: #6F9DB0; --map-water-edge: #7596A3;
  --map-label-primary: #DDD5C8; --map-label-secondary: #B4AB9E; --map-label-reference: #A0998D; --map-label-water: #B8D2DE;
  --map-label-halo: rgba(77, 70, 62, .72);
  --map-land: var(--map-land-base); --map-land-flat: var(--map-land-base); --map-sea: var(--map-water); --map-coast: var(--map-water-edge);
  --label-halo: var(--map-label-halo); --label-water: var(--map-label-water); --label-ref: var(--map-label-secondary); --label-ref-region: var(--map-label-secondary);
}

/* --- base --- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--page); color: var(--ink); font: 400 var(--fs-body)/1.65 var(--font-ui); }
button { font: inherit; color: inherit; cursor: pointer; }
a { color: var(--accent-ink); text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.helper { color: var(--ink-3); font-size: var(--fs-helper); line-height: 1.5; margin: .5rem 0 0; }
.meta { color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.5; }

/* --- top bar --- */
.top { position: sticky; top: 0; z-index: 10; background: var(--page); border-bottom: 1px solid transparent; padding: 12px max(var(--gap), calc((100% - 1240px) / 2 + var(--gap))); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; transition: border-color .12s, box-shadow .12s; }
body[data-stuck="true"] .top { border-bottom-color: var(--line); box-shadow: 0 2px 10px rgba(60, 50, 30, .06); }
.brand { margin: 0; font-size: 1.05rem; font-weight: 650; letter-spacing: -.01em; }
.brand-home { appearance: none; border: 0; margin: 0; padding: 0; background: none; color: inherit; font: inherit; font-weight: inherit; letter-spacing: inherit; cursor: pointer; text-align: left; }
.brand-home:hover { color: var(--accent-ink); }
.brand small, .brand-home small { font-weight: 400; font-size: var(--fs-helper); color: var(--ink-3); margin-left: 6px; }
#ref-error { max-width: 1240px; margin: 0 auto; padding: 0 var(--gap); color: var(--warn-ink); font-size: var(--fs-meta); }
#ref-error:empty { display: none; }

/* --- layout --- */
main { max-width: 1240px; margin: 0 auto; padding: 8px var(--gap) 20px; display: grid; grid-template-columns: minmax(0, 1fr) 450px; gap: var(--gap); align-items: start; }
main > section { min-width: 0; }

/* --- reading area --- */
#text-pane { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px 30px 24px; box-shadow: var(--sh-1); }
#passage-title { margin: 0 0 14px; font-size: var(--fs-title); font-weight: 600; letter-spacing: -.015em; line-height: 1.35; }
#verses { max-width: 38em; font-family: var(--font-read); font-size: var(--fs-scripture); line-height: 2; word-break: keep-all; overflow-wrap: break-word; }
.verse { display: block; position: relative; padding: 5px 10px 5px 44px; margin: 0 -10px 2px -10px; border-radius: var(--r-md); cursor: pointer; transition: background .12s; }
.verse:hover { background: var(--tint); }
.verse.sel { background: var(--accent-soft); box-shadow: inset 0 0 0 0 transparent; }
.verse.dim { opacity: .55; }
.vnum { position: absolute; left: 10px; top: 9px; min-width: 26px; padding: 0 4px; border: 0; background: none; color: var(--ink-3); font: 500 .72rem/1.6 var(--font-ui); font-variant-numeric: tabular-nums; text-align: right; border-radius: 5px; }
.verse.sel .vnum { color: var(--accent-ink); font-weight: 700; }
.tag { cursor: pointer; border-radius: 3px; padding: 0 1px; border-bottom: 1.5px solid var(--accent-line); transition: background .12s, border-color .12s; }
.tag.l, .tag.rgn { border-bottom-style: dashed; }
.tag:hover { background: var(--accent-soft); border-bottom-color: var(--accent); }
.tag.active { background: var(--accent); color: var(--on-accent); border-bottom-color: var(--accent); }
.scripture-head { position: sticky; top: var(--hdr-h, 0px); z-index: 4; margin: -12px -12px 12px; padding: 12px 12px 10px; background: color-mix(in srgb, var(--paper) 96%, transparent); border-bottom: 1px solid var(--line); backdrop-filter: blur(8px); }
.chapter-head-nav { flex: 1; min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) 30px; align-items: center; gap: 8px; }
.chapter-head-nav #passage-title { margin: 0; text-align: center; white-space: nowrap; }
.chapter-head-nav button { width: 30px; height: 30px; padding: 0; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink-3); font: 600 1.05rem/1 var(--font-ui); }
.chapter-head-nav button:hover { color: var(--accent-ink); border-color: var(--accent); background: var(--accent-soft); }
.chapter-head-nav button:disabled { opacity: .3; cursor: default; }
.scripture-head #panel-open { margin-left: auto; }
.chapter-nav { display: flex; justify-content: space-between; gap: 8px; margin-top: 18px; }
.btn:disabled { opacity: .4; cursor: default; }
#crumb { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }

/* --- research area --- */
#side-pane { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); position: sticky; top: calc(var(--hdr-h, 0px) + 14px); max-height: calc(100vh - var(--hdr-h, 0px) - 28px); display: flex; flex-direction: column; overflow: hidden; }
.pane-bar { display: flex; align-items: flex-end; gap: 4px; border-bottom: 1px solid var(--line); flex: none; }
#tabs { display: flex; gap: 0; padding: 6px 0 0 10px; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; }
#tabs button { flex: none; border: 0; background: none; color: var(--ink-2); padding: 8px 7px 9px; font-size: var(--fs-tab); font-weight: 500; white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -1px; border-radius: 6px 6px 0 0; }
#tabs button:hover { color: var(--ink); background: var(--tint); }
#tabs button[aria-selected="true"] { color: var(--accent-ink); font-weight: 650; border-bottom-color: var(--accent); background: none; }
#panel { padding: 16px 18px 20px; overflow-y: auto; min-height: 0; }
.scope { margin: 0 0 10px; color: var(--ink-3); font-size: var(--fs-meta); }

/* section heading (info structure) */
.sec-h { margin: 0 0 6px; font-size: var(--fs-section); font-weight: 650; letter-spacing: .05em; color: var(--ink-3); }

/* context */
.ctx-block { margin-bottom: 20px; }
.ctx-block p { margin: 0; }
.ctx-theme .lead { font-size: 1.12rem; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; color: var(--ink); }
.ctx-structure { list-style: none; margin: 0; padding: 0; }
.ctx-structure li { display: flex; gap: 10px; padding: 5px 8px; margin: 0 -8px; border-radius: var(--r-sm); color: var(--ink-2); }
.ctx-structure .rng { flex: none; min-width: 3.2em; font-variant-numeric: tabular-nums; color: var(--ink-3); font-size: var(--fs-meta); padding-top: 1px; }
.ctx-structure li[aria-current="true"] { background: var(--accent-soft); color: var(--ink); font-weight: 600; }
.ctx-structure li[aria-current="true"] .rng { color: var(--accent-ink); font-weight: 700; }
.ctx-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ctx-grid p { color: var(--ink-2); font-size: .9rem; }
.ctx-genre { margin-bottom: 0; padding-top: 12px; border-top: 1px solid var(--line); }
.ctx-genre .meta { margin: 0; }

/* entity cards */
.item { border: 1px solid transparent; border-radius: var(--r-md); padding: 10px 12px; margin: 0 -6px 4px; }
.item h3 { margin: 0; }
.ent-name { display: flex; align-items: center; gap: 8px; font-size: var(--fs-entity); font-weight: 600; line-height: 1.4; color: var(--accent-ink); }
.ent-role { color: var(--ink-2); font-size: .9rem; margin-top: 1px; }
.item .meta { margin-top: 3px; }
.item[data-id] { cursor: pointer; }
.item[data-id]:hover { background: var(--tint); }
.item[data-kind="p"] .ent-name::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; }
.item[data-kind="l"] .ent-name::before { content: ""; width: 9px; height: 9px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--accent); flex: none; }
.item.active { background: var(--accent-soft); border-color: var(--accent-line); box-shadow: inset 0 0 0 0 transparent; }
.item.xref, .item.res { border-radius: 0; border-bottom: 1px solid var(--line); margin: 0 -6px; }
.item.xref .btn { margin-top: 8px; }
.item.preview { background: var(--tint); border-radius: var(--r-md); margin-top: 12px; }
.item.preview div { font-family: var(--font-read); line-height: 1.85; margin: 4px 0; }
.item.res .ent-name a { font-weight: 600; }
.ent-name a { text-decoration-color: var(--accent-line); }

/* buttons */
.btn { border: 1px solid var(--line-strong); background: transparent; border-radius: 8px; padding: 4px 12px; font-size: var(--fs-meta); font-weight: 500; color: var(--ink-2); }
.btn:hover { border-color: var(--accent); color: var(--accent-ink); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.btn.primary:hover { filter: brightness(1.08); color: var(--on-accent); }
.filters { margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 4px; }
.filters button { border: 0; background: none; color: var(--ink-2); padding: 3px 10px; border-radius: 999px; font-size: var(--fs-meta); }
.filters button:hover { background: var(--tint); }
.filters button.on { background: var(--accent-soft); color: var(--accent-ink); font-weight: 600; }
.actions { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; }

/* status */
.degraded { background: var(--warn-bg); color: var(--warn-ink); border-radius: var(--r-md); padding: 9px 12px; font-size: var(--fs-meta); margin: 0 0 10px; }
.empty { padding: 6px 0; }

/* map */
.map-wrap { border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
svg.map { display: block; width: 100%; height: auto; }
.map-bg { fill: var(--map-water); } .map-land { fill: var(--map-land); }
.map-route { stroke: var(--ink-3); stroke-width: .5; stroke-dasharray: 1.6 1.6; opacity: .7; }
.pin { cursor: pointer; }
.pin .halo { fill: var(--accent-soft); stroke: var(--accent); stroke-width: .5; opacity: 0; transition: opacity .12s; }
.pin .dot { fill: var(--accent); stroke: var(--paper); stroke-width: .8; transition: r .12s; }
.pin text { font: 600 3.3px var(--font-ui); fill: var(--ink); paint-order: stroke; stroke: var(--map-water); stroke-width: 1.1px; stroke-linejoin: round; }
.pin:hover .halo, .pin.active .halo { opacity: 1; }
.pin.active .dot { r: 3.2px; }
.pin:focus-visible { outline: none; }
.pin:focus-visible .halo { opacity: 1; stroke-width: .9; }

/* photos */
.photo { display: inline-block; vertical-align: top; width: calc(50% - 6px); margin: 0 8px 14px 0; }
.photo:nth-child(2n) { margin-right: 0; }
.photo svg { display: block; width: 100%; height: auto; border-radius: var(--r-md); }
.photo figcaption { margin-top: 6px; }
.photo .cap { display: block; font-size: .875rem; font-weight: 600; line-height: 1.4; }
.photo .prov { display: block; margin-top: 2px; font-size: var(--fs-helper); }

/* notes */
textarea { width: 100%; min-height: 150px; padding: 12px 14px; font: inherit; font-size: .95rem; line-height: 1.7; color: var(--ink); background: var(--page); border: 1px solid var(--line-strong); border-radius: var(--r-md); resize: vertical; }
textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
pre.helper { white-space: pre-wrap; font-family: inherit; }
footer { max-width: 1240px; margin: 0 auto; padding: 0 var(--gap) 28px; }

/* --- QA (dev mode only; created by ?qa=... scripts) --- */
.qa { max-width: 1240px; margin: 16px auto; padding: 12px; border: 2px solid var(--accent); border-radius: var(--r-md); font: 13px/1.5 monospace; white-space: pre-wrap; background: var(--paper); }
.pass { color: #1f8a3a; } .fail { color: #d33; font-weight: 700; }

/* --- mobile: side panel becomes the same-state bottom sheet --- */
@media (max-width: 760px) {
  :root { --gap: 16px; --fs-scripture: 1.125rem; }
  .top { gap: 10px; padding-top: 12px; }
  main { grid-template-columns: minmax(0, 1fr); padding-top: 4px; }
  #text-pane { padding: 20px 16px 16px; border-radius: var(--r-md); }
  .verse { padding-left: 38px; }
  #side-pane { position: fixed; left: 0; right: 0; bottom: 0; top: auto; max-height: 50vh; border-radius: 18px 18px 0 0; border-width: 1px 0 0; box-shadow: var(--sh-2); z-index: 5; padding-top: 14px; }
  #side-pane::before { content: ""; position: absolute; top: 6px; left: 50%; width: 36px; height: 4px; margin-left: -18px; border-radius: 2px; background: var(--line-strong); }
  #panel { padding: 14px 16px 24px; }
  body { padding-bottom: 52vh; }
  .ctx-grid { grid-template-columns: 1fr; gap: 0; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* --- AppShell: 참조 입력 --- */
.ref-form { display: flex; gap: 6px; margin-left: auto; flex: 0 1 340px; min-width: 0; }
#ref-input { flex: 1; min-width: 0; font: inherit; font-size: .9rem; padding: 6px 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--paper); color: var(--ink); }
#ref-input:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }
.ref-form .btn { border-radius: 999px; padding: 4px 14px; }
@media (max-width: 760px) { .ref-form { flex-basis: 100%; margin-left: 0; } }

/* 참조 오류 안내: 문서 흐름을 밀지 않는 고정 토스트(본문 스크롤 위치를 흔들지 않음) */
#ref-error { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 20; max-width: min(92vw, 560px); margin: 0; padding: 8px 14px; border-radius: var(--r-md); background: var(--warn-bg); color: var(--warn-ink); box-shadow: var(--sh-2); font-size: var(--fs-meta); cursor: pointer; }
#ref-error:empty { display: none; }

/* --- Wave 2: 맥락 패널(데스크톱) / 맥락 시트(모바일) 상태 --- */
.pane-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pane-head #passage-title { flex: 1; min-width: 0; }
#panel-toggle { margin: 0 10px 6px 4px; padding: 2px 10px; font-size: var(--fs-helper); flex: none; }
@media (min-width: 761px) {
  body[data-panel="collapsed"] main { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  body[data-panel="collapsed"] #text-pane { width: 100%; max-width: 860px; }
}
@media (max-width: 760px) {
  body[data-sheet="peek"] #side-pane { max-height: none; }
  body[data-sheet="peek"] #panel { display: none; }
  body[data-sheet="peek"] { padding-bottom: 72px; }
  body[data-sheet="full"] #side-pane { max-height: none; height: 88vh; }
  body[data-sheet="full"] { padding-bottom: 90vh; }
  #panel-open { display: none; }
}

/* --- 문맥 검색 패널: 레이아웃을 밀지 않는 작은 떠 있는 패널(.sp). 구절 결과 행(.sr-row)만 공통 --- */
.sr-row { display: grid; grid-template-columns: 11.5em minmax(0, 1fr); gap: 4px 20px; text-align: left; width: 100%; padding: 12px 14px; border: 1px solid transparent; border-radius: var(--r-md); background: transparent; }
.sr-row:hover, .sr-row:focus-visible { background: var(--tint); border-color: var(--line); }
.sr-ref { font-weight: 650; color: var(--accent-ink); font-size: .92rem; line-height: 1.5; }
.sr-kind { display: block; font-size: var(--fs-helper); color: var(--ink-3); font-weight: 500; }
.sr-preview { font-family: var(--font-read); font-size: 1rem; line-height: 1.75; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.5em; }
mark { background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; border-radius: 3px; padding: 0 1px; }

/* --- 참조 이동 상시 접근: 고정 헤더 + 모바일 컴팩트 --- */
#verses .verse { scroll-margin-top: var(--hdr-h, 0px); }
#ref-error { top: calc(var(--hdr-h, 0px) + 8px); }
@media (max-width: 760px) {
  .top { flex-wrap: nowrap; gap: 8px; padding: 8px var(--gap); }
  .brand { display: none; }
  .ref-form { flex: 1 1 auto; margin-left: 0; min-width: 0; }
  #ref-input { font-size: 16px; padding: 7px 12px; }
}

/* =====================================================================
   통합 작업공간 v0.2 — [관점 레일 | 상세 패널] [지도 | 분할선 | 본문] [안내 패널]
   DOM 순서는 본문 → 모듈 → 안내(키보드 순서 유지). 시각 배치는 grid-area 로만 정한다.
   문서 스크롤은 그대로 window 하나(스크롤 앵커·history 복원 보존); 좌우 패널은 sticky.
   ===================================================================== */
:root { --wrap: 1680px; --side-w: 300px; --guide-w: 220px; --split-w: 10px; }
.top { padding-left: max(var(--gap), calc((100% - var(--wrap)) / 2 + var(--gap))); padding-right: max(var(--gap), calc((100% - var(--wrap)) / 2 + var(--gap))); }
footer, #ref-error { max-width: var(--wrap); }

#workspace { max-width: var(--wrap); margin: 0 auto; padding: 8px var(--gap) 20px; display: grid; gap: 16px; align-items: start;
  grid-template-columns: var(--side-w) minmax(0, 1fr) var(--guide-w); grid-template-areas: "side stage guide"; }
#workspace > * { min-width: 0; }
#stage { grid-area: stage; --map-frac: .4; display: grid; align-items: start; column-gap: 0;
  grid-template-columns: calc((100% - var(--split-w)) * var(--map-frac)) var(--split-w) minmax(0, 1fr); grid-template-areas: "map split text"; }
#text-pane { grid-area: text; padding: 24px 24px 20px; }
#map-pane { grid-area: map; }
#split { grid-area: split; }
#side-pane { grid-area: side; }
#guide-pane { grid-area: guide; }
body[data-panel="collapsed"] #workspace { grid-template-columns: minmax(0, 1fr) var(--guide-w); grid-template-areas: "stage guide"; }
/* 761–1099px 에서만 overlay 시대 규칙 유지(접힘=숨김). ≥1100px 는 아래 SPLIT WORKSPACE 가 #side-pane 을 항상 grid 에 둔다. */
@media (min-width: 761px) and (max-width: 1099px) { body[data-panel="collapsed"] #side-pane { display: none; } }

/* 좌·우 패널 공통: 헤더 아래에 붙는 카드 */
#map-pane, #guide-pane { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); position: sticky; top: calc(var(--hdr-h, 0px) + 8px); max-height: calc(100vh - var(--hdr-h, 0px) - 16px); overflow: auto; }
.mp-head { display: flex; align-items: baseline; gap: 8px; padding: 12px 14px 8px; }
.mp-title { margin: 0; font-size: var(--fs-entity); font-weight: 650; }
#mp-cap { flex: 1; }
#map-toggle { padding: 2px 10px; font-size: var(--fs-helper); }
#map-body { padding: 0 12px 12px; }
#map-body svg.smap { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: var(--r-md); }
#map-body .helper { margin-top: 8px; }
.smap .pin text { font-size: 3.6px; }

/* 분할선 */
#split { align-self: start; position: sticky; top: calc(var(--hdr-h, 0px) + 8px); height: calc(100vh - var(--hdr-h, 0px) - 16px); cursor: col-resize; touch-action: none; display: flex; justify-content: center; }
#split::before { content: ""; width: 2px; height: 100%; border-radius: 2px; background: var(--line-strong); transition: background .12s, width .12s; }
#split:hover::before, #split:focus-visible::before, body[data-dragging="split"] #split::before { background: var(--accent); width: 4px; }
#split::after { content: ""; position: absolute; top: 50%; width: 6px; height: 34px; margin-top: -17px; border-radius: 3px; background: var(--paper); border: 1px solid var(--line-strong); }
#split:focus-visible { outline: none; }
body[data-dragging="split"] { cursor: col-resize; user-select: none; }
body[data-dragging="split"] * { pointer-events: none; }
body[data-dragging="split"] #split { pointer-events: auto; }

/* 관점 레일 + 상세 패널 */
#side-pane { flex-direction: row; }
#side-pane .pane-bar { flex-direction: column; align-items: stretch; justify-content: space-between; border-bottom: 0; border-right: 1px solid var(--line); background: var(--page); width: 60px; flex: none; }
#side-pane #tabs { flex-direction: column; padding: 6px 4px; overflow-y: auto; overflow-x: hidden; gap: 2px; flex: 1; }
#side-pane #tabs button { display: flex; align-items: center; justify-content: center; text-align: center; white-space: normal; word-break: keep-all; line-height: 1.25; font-size: .75rem; padding: 9px 2px; margin: 0; border-bottom: 0; border-left: 3px solid transparent; border-radius: 8px; min-height: 44px; }
#side-pane #tabs button[aria-selected="true"] { border-left-color: var(--accent); background: var(--accent-soft); }
#side-pane #panel-toggle { margin: 6px 6px 8px; padding: 4px 0; font-size: .72rem; }
#side-pane #panel { flex: 1; min-width: 0; padding: 14px 14px 20px; }
.detail { border: 1px solid var(--accent-line); background: var(--accent-soft); border-radius: var(--r-md); padding: 12px 14px; margin: 0 0 14px; box-shadow: inset 0 0 0 0 transparent; }
.detail-name { margin: 0; font-size: 1.05rem; font-weight: 650; color: var(--accent-ink); }
.detail-note { margin: 6px 0 4px; color: var(--ink-2); font-size: .9rem; }
.detail-hint { margin-top: 6px; }

/* 안내 패널 */
#guide-pane { padding: 14px 14px 16px; }
.g-title { margin: 0; font-size: var(--fs-entity); font-weight: 650; }
.g-ref { margin: 2px 0 8px; color: var(--ink-3); font-size: var(--fs-meta); }
.g-theme { margin: 0 0 12px; font-weight: 600; line-height: 1.5; }
.g-status { margin: 0 0 8px; font-size: var(--fs-meta); color: var(--ink-2); }
.g-nav { display: flex; gap: 8px; margin: 0 0 12px; }
.g-nav .btn { flex: 1; padding: 7px 10px; }
.g-steps { list-style: none; margin: 0 0 12px; padding: 0; }
.g-step { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; border: 1px solid transparent; background: none; border-radius: var(--r-md); padding: 7px 8px; color: var(--ink-2); }
.g-step:hover { background: var(--tint); }
.g-step[aria-current="step"] { background: var(--accent-soft); border-color: var(--accent-line); color: var(--ink); font-weight: 600; }
.g-n { flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--tint); color: var(--ink-2); font-size: .72rem; display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
.g-step[aria-current="step"] .g-n { background: var(--accent); color: var(--on-accent); }
.g-card { border-top: 1px solid var(--line); padding-top: 10px; }
.g-card .meta { margin: 4px 0 0; }

/* 중간 폭(태블릿): 안내는 상단 한 줄, 좌측은 관점 레일+상세 */
@media (max-width: 1099px) {
  #workspace { grid-template-columns: var(--side-w) minmax(0, 1fr); grid-template-areas: "guide guide" "side stage"; }
  body[data-panel="collapsed"] #workspace { grid-template-columns: minmax(0, 1fr); grid-template-areas: "guide" "stage"; }
  #guide-pane { position: static; max-height: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 8px 14px; }
  #guide-pane .g-title, #guide-pane .g-ref { margin: 0; }
  #guide-pane .g-full { display: none; }
  #guide-pane .g-status { margin: 0; flex: 1; }
  #guide-pane .g-nav { margin: 0; }
  #guide-pane .g-nav .btn { flex: none; padding: 4px 14px; }
}
@media (min-width: 1400px) { :root { --side-w: 360px; --guide-w: 280px; } }

/* 모바일: 안내 줄 → 지도(접기) → 본문, 맥락은 하단 시트 그대로 */
@media (max-width: 760px) {
  #workspace { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
  #guide-pane { order: -1; padding: 8px 12px; }
  #stage { display: flex; flex-direction: column; gap: 10px; }
  #map-pane { order: -1; position: static; max-height: none; }
  #split { display: none; }
  #text-pane { padding: 20px 16px 16px; }
  .mp-head { padding: 8px 12px; }
  #map-body { padding: 0 10px 10px; }
  body[data-map="collapsed"] #map-body { display: none; }
  #map-body svg.smap { max-height: 190px; }
  #side-pane { flex-direction: column; }
  #side-pane .pane-bar { flex-direction: row; align-items: flex-end; width: auto; border-right: 0; border-bottom: 1px solid var(--line); background: none; }
  #side-pane #tabs { flex-direction: row; padding: 6px 0 0 10px; overflow-x: auto; overflow-y: hidden; gap: 0; }
  #side-pane #tabs button { display: block; font-size: var(--fs-tab); padding: 8px 7px 9px; border-left: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; border-radius: 6px 6px 0 0; min-height: 0; white-space: nowrap; }
  #side-pane #tabs button[aria-selected="true"] { border-left-color: transparent; border-bottom-color: var(--accent); background: none; }
  #side-pane #panel-toggle { margin: 0 10px 6px 4px; padding: 2px 10px; font-size: var(--fs-helper); }
  #side-pane #panel { padding: 14px 16px 24px; }
}
#workspace, body[data-panel="collapsed"] #workspace { justify-items: stretch; }
body[data-panel="collapsed"] #text-pane { width: auto; max-width: none; }
#side-pane { top: calc(var(--hdr-h, 0px) + 8px); max-height: calc(100vh - var(--hdr-h, 0px) - 16px); }
@media (max-width: 760px) { #side-pane { top: auto; max-height: 50vh; } body[data-sheet="peek"] #side-pane { max-height: none; } body[data-sheet="full"] #side-pane { max-height: none; } }

/* =====================================================================
   JudeBible Context — Lock v1.1 정렬
   [Rail] [선택 시 Detail] [ MAP ↔ SCRIPTURE ] [Guide] · 관점: 본문연구 / 지도(전체 캔버스+오버레이) / 연표
   ===================================================================== */
:root { --rail-w: 68px; --side-w: 290px; --guide-w: 230px; --wx: max(var(--gap), calc((100vw - var(--wrap)) / 2 + var(--gap))); }
@media (min-width: 1400px) { :root { --side-w: 340px; --guide-w: 280px; } }
html { scrollbar-gutter: stable; }

/* --- 배치 --- */
#workspace { grid-template-columns: var(--rail-w) var(--side-w) minmax(0, 1fr) var(--guide-w); grid-template-areas: "rail side stage guide"; }
body[data-panel="collapsed"] #workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr) var(--guide-w); grid-template-areas: "rail stage guide"; }
#rail { grid-area: rail; }
#timeline-pane { grid-area: stage; }

/* --- Rail: 관점 3 + 도구 2 --- */
#rail { position: sticky; top: calc(var(--hdr-h, 0px) + 8px); z-index: 8; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 260px; max-height: calc(100vh - var(--hdr-h, 0px) - 16px); padding: 8px 6px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); }
.rail-group { display: flex; flex-direction: column; gap: 4px; }
.rail-btn { border: 0; border-left: 3px solid transparent; background: none; border-radius: 8px; padding: 10px 2px; min-height: 52px; font-size: .8rem; font-weight: 500; color: var(--ink-2); word-break: keep-all; text-align: center; line-height: 1.25; }
.rail-btn:hover { background: var(--tint); color: var(--ink); }
.rail-btn[aria-current="page"] { background: var(--accent-soft); border-left-color: var(--accent); color: var(--accent-ink); font-weight: 650; }
.rail-btn.util { min-height: 40px; font-size: .74rem; color: var(--ink-3); }
.rail-btn.util[aria-expanded="true"] { background: var(--tint); color: var(--ink); }
#settings-pop { position: absolute; left: calc(100% + 8px); bottom: 8px; width: 230px; padding: 12px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--sh-2); }
#settings-pop .sec-h { margin: 0 0 8px; }
#settings-pop .btn { width: 100%; }

/* --- 상세(Detail): 도구 탭은 다시 가로 탭(상세의 맥락 도구) --- */
#side-pane { flex-direction: column; }
#side-pane .pane-bar { flex-direction: row; align-items: flex-end; justify-content: flex-start; width: auto; border-right: 0; border-bottom: 1px solid var(--line); background: none; }
#side-pane #tabs { flex-direction: row; padding: 6px 0 0 10px; overflow-x: auto; overflow-y: hidden; gap: 0; flex: 1; }
#side-pane #tabs button { display: block; font-size: var(--fs-tab); padding: 8px 7px 9px; border-left: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; border-radius: 6px 6px 0 0; min-height: 0; white-space: nowrap; }
#side-pane #tabs button[aria-selected="true"] { border-left-color: transparent; border-bottom-color: var(--accent); background: none; }
#side-pane #panel-toggle { margin: 0 10px 6px 4px; padding: 2px 10px; font-size: var(--fs-helper); }
#side-pane #panel { padding: 14px 16px 20px; }
.d-facts { margin: 4px 0 0; }
.d-scripture { margin: 10px 0 0; }
.d-scripture .sec-h { margin-bottom: 6px; }
.vrefs { display: flex; flex-wrap: wrap; gap: 4px; }
.vref { border: 1px solid var(--accent-line); background: var(--paper); color: var(--accent-ink); border-radius: 999px; padding: 2px 10px; font-size: var(--fs-meta); }
.vref:hover { background: var(--accent); color: var(--on-accent); }
.d-tools { margin: 10px 0 0; display: flex; gap: 6px; flex-wrap: wrap; }
.research { margin: 10px 0 0; border-top: 1px solid var(--accent-line); padding-top: 8px; }
.research summary { cursor: pointer; font-size: var(--fs-meta); color: var(--ink-2); font-weight: 600; }

/* --- Guide: 이야기/주제/레이어 진행 · 이전/다음은 하단 고정 --- */
#guide-pane { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.g-body { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 14px 8px; }
.g-nav { flex: none; margin: 0; padding: 10px 14px; border-top: 1px solid var(--line); background: var(--paper); align-items: center; }
.g-nav .btn { flex: 1; }
.g-ind { flex: none; min-width: 3.4em; text-align: center; font-size: var(--fs-meta); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.g-topic { margin: 0 0 10px; }
.g-topic .g-theme { margin: 2px 0 4px; }
.g-layers { border: 0; padding: 0; margin: 0 0 12px; }
.g-layers legend { padding: 0; margin-bottom: 4px; }
.g-layers label { display: inline-flex; align-items: center; gap: 6px; margin-right: 14px; font-size: var(--fs-meta); color: var(--ink-2); }
.g-legend { margin: 0 0 12px; }
.g-legend .meta { margin: 2px 0; }
.lg-line { display: inline-block; width: 22px; border-top: 2px dashed var(--ink-3); vertical-align: middle; margin-right: 8px; }

/* --- 지도: 확대/축소 · pan(grab) --- */
.mp-zoom { display: inline-flex; gap: 4px; }
.mp-zoom .btn { padding: 1px 9px; font-size: var(--fs-helper); }
#map-body svg.smap { cursor: grab; touch-action: none; }
body[data-dragging="map"], body[data-dragging="map"] #map-body svg.smap { cursor: grabbing; user-select: none; }
.smap .pin { cursor: pointer; }

/* --- 지도 관점: 전체 캔버스 + 오버레이 패널(지도를 밀어내지 않는다) --- */
body[data-view="timeline"] { overflow: hidden; }










/* --- 연표 관점: 전체 작업공간(문맥 이어받기). Guide/Detail/Map 은 숨기되 상태는 보존 --- */
body[data-view="timeline"] #timeline-pane { position: fixed; top: var(--hdr-h, 0px); left: 0; right: 0; bottom: 0; z-index: 5; overflow: hidden; background: var(--page); padding: 12px 14px 12px calc(var(--wx) + var(--rail-w) + 12px); }
body[data-view="timeline"] #map-pane, body[data-view="timeline"] #split, body[data-view="timeline"] #side-pane, body[data-view="timeline"] #guide-pane { visibility: hidden; }
.tl-title { margin: 0 0 10px; font-size: var(--fs-title); font-weight: 600; }
.tl-ctx { margin: 0 0 12px; padding-left: 1.1em; color: var(--ink-2); }
.tl-page { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:12px; width:100%; height:100%; max-width:none; margin:0; align-items:stretch; }
.tl-left { min-width:0; min-height:0; display:grid; grid-template-rows:auto auto minmax(0,1fr); gap:10px; }
.tl-page-head { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:0 4px; }
.tl-head-title { display:flex; align-items:baseline; gap:16px; min-width:0; }
.tl-page-head h1 { margin:0; font-size:2rem; letter-spacing:-.04em; white-space:nowrap; }
.tl-page-head p { margin:0; color:var(--ink-2); font-size:.96rem; white-space:nowrap; }
.tl-head-context { display:flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--ink-2); white-space:nowrap; }
.tl-head-context strong { color:var(--accent-ink); font-size:.88rem; }
.tl-head-context span,.tl-head-context small { font-size:.76rem; color:var(--ink-3); }
.tl-era-strip { display:grid; grid-template-columns:repeat(13,minmax(0,1fr)); gap:6px; overflow:visible; padding:0; }
.tl-era-strip::-webkit-scrollbar,.tl-event-rail::-webkit-scrollbar,.tl-detail::-webkit-scrollbar { height:10px; width:10px; }
.tl-era-strip::-webkit-scrollbar-track,.tl-event-rail::-webkit-scrollbar-track,.tl-detail::-webkit-scrollbar-track { background:transparent; }
.tl-era-strip::-webkit-scrollbar-thumb,.tl-event-rail::-webkit-scrollbar-thumb,.tl-detail::-webkit-scrollbar-thumb { border:3px solid transparent; border-radius:999px; background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 34%,var(--ink-3)),color-mix(in srgb,var(--accent) 58%,var(--ink-3))) padding-box; }
.tl-era-strip::-webkit-scrollbar-thumb:hover,.tl-event-rail::-webkit-scrollbar-thumb:hover,.tl-detail::-webkit-scrollbar-thumb:hover { background:var(--accent) padding-box; }
.tl-era-card { position:relative; display:flex; min-height:132px; height:132px; flex-direction:column; gap:3px; padding:7px; border:1px solid var(--line); border-radius:10px; background:var(--paper); color:var(--ink); text-align:left; overflow:hidden; }
.tl-era-card img,.tl-era-ph { width:100%; height:42px; border-radius:7px; object-fit:cover; background:linear-gradient(135deg,var(--tint),color-mix(in srgb,var(--accent-soft) 45%,var(--paper))); }
.tl-era-card strong { font-size:.84rem; line-height:1.2; }
.tl-era-card span:not(.tl-era-ph) { color:var(--ink-2); font-size:.66rem; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tl-era-card small { margin-top:auto; color:var(--ink-3); font-size:.62rem; }
.tl-era-card.is-on { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); background:color-mix(in srgb,var(--accent-soft) 38%,var(--paper)); }
.tl-era-card.is-on strong,.tl-era-card.is-on small { color:var(--accent-ink); }
.tl-era-card.is-planned { opacity:.68; }
.tl-work { display:block; }
.tl-main,.tl-detail { min-width:0; border:1px solid var(--line); border-radius:14px; background:var(--paper); box-shadow:var(--sh-1); }
.tl-main { width:100%; height:100%; min-height:0; max-width:none; margin:0; padding:12px 14px 12px; display:grid; grid-template-rows:auto minmax(0,1fr) 122px; gap:10px; overflow:hidden; justify-items:stretch !important; align-items:stretch; }
.tl-main > .tl-era-summary,.tl-main > .tl-chrono,.tl-main > .tl-event-sec,.tl-main > .tl-empty,.tl-main > .tl-research { width:100%; max-width:none; justify-self:stretch !important; box-sizing:border-box; }
.tl-era-summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; min-height:62px; padding:0 2px 8px; border-bottom:1px solid var(--line); }
.tl-era-summary > div h2 { margin:0; font-size:1.45rem; }
.tl-era-summary > div p,.tl-era-summary > p { margin:4px 0 0; color:var(--ink-2); }
.tl-track { display:flex; align-items:center; gap:7px; color:var(--ink-2); font-size:var(--fs-meta); }
.tl-track select { min-width:110px; padding:7px 28px 7px 10px; border:1px solid var(--line); border-radius:9px; background:var(--paper); color:var(--ink); }
.tl-chrono { width:100%; height:122px; min-height:122px; max-width:none; align-self:end; box-sizing:border-box; padding:9px 12px 7px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(180deg,color-mix(in srgb,var(--tint) 68%,var(--paper)),var(--paper)); overflow:hidden; }
.tl-chrono-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:9px; }
.tl-chrono-head strong { font-size:.9rem; }
.tl-chrono-head span { color:var(--ink-3); font-size:.74rem; }
.tl-chrono-track { display:grid; grid-template-columns:1fr 1.9fr 1fr; gap:8px; align-items:stretch; }
.tl-chrono-seg { min-width:0; display:flex; flex-direction:column; justify-content:center; gap:2px; min-height:52px; padding:7px 11px; border:0; border-radius:10px; background:color-mix(in srgb,var(--tint) 68%,var(--paper)); color:var(--ink-2); text-align:center; }
button.tl-chrono-seg { cursor:pointer; }
.tl-chrono-seg span { font-size:.68rem; color:var(--ink-3); }
.tl-chrono-seg strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.88rem; color:var(--ink); }
.tl-chrono-seg small { font-size:.7rem; color:var(--ink-3); }
.tl-chrono-seg.current { background:linear-gradient(90deg,color-mix(in srgb,var(--accent-soft) 78%,var(--paper)),color-mix(in srgb,var(--accent) 88%,#fff)); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 42%,transparent); }
.tl-chrono-seg.current span,.tl-chrono-seg.current strong,.tl-chrono-seg.current small { color:white; }
.tl-chrono-seg.empty { opacity:.3; }
.tl-chrono-axis { position:relative; display:grid; grid-template-columns:1fr 8px 1fr 12px 1fr 8px 1fr; align-items:center; height:18px; margin:4px 4px 0; }
.tl-chrono-axis::before { content:""; position:absolute; left:0; right:0; top:50%; height:2px; border-radius:999px; background:linear-gradient(90deg,color-mix(in srgb,var(--line) 80%,transparent),color-mix(in srgb,var(--accent) 45%,var(--line)),color-mix(in srgb,var(--line) 80%,transparent)); }
.tl-chrono-axis i { position:relative; z-index:1; display:block; width:8px; height:8px; border-radius:50%; background:var(--paper); border:2px solid color-mix(in srgb,var(--ink-3) 45%,var(--line)); }
.tl-chrono-axis i.is-now { width:12px; height:12px; border-color:var(--accent); background:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-soft) 72%,transparent); }
.tl-event-sec { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr); gap:6px; padding:0; border-top:0; overflow:hidden; }
.tl-event-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:2px 0 0; }
.tl-event-head h3 { margin:0; font-size:1rem; }
.tl-event-head h3 small { color:var(--ink-3); font-weight:500; }
.tl-event-head div { display:flex; gap:2px; padding:2px; border:1px solid var(--line); border-radius:8px; }
.tl-event-head button { border:0; border-radius:6px; padding:5px 9px; background:transparent; color:var(--ink-2); }
.tl-event-head button.is-on { background:var(--accent); color:white; }
.tl-event-rail { position:relative; min-height:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(108px,1fr)); gap:7px; overflow:hidden; padding:26px 2px 0; align-items:stretch; }
.tl-event-rail::before { content:""; position:absolute; left:8px; right:8px; top:13px; height:2px; background:var(--line); }
.tl-event-card { position:relative; display:flex; min-height:0; height:100%; max-height:none; flex-direction:column; gap:4px; padding:8px; border:1px solid var(--line); border-radius:10px; background:var(--paper); text-align:left; overflow:hidden; }
.tl-event-n { position:absolute; top:-23px; left:50%; transform:translateX(-50%); display:grid; place-items:center; width:27px; height:27px; border-radius:50%; background:#aaa49b; color:white; font-weight:700; z-index:1; }
.tl-event-card::before { content:""; position:absolute; top:-11px; left:50%; width:1px; height:11px; background:var(--line-strong,var(--line)); }
.tl-event-card img,.tl-event-ph { width:100%; height:54px; flex:0 0 54px; object-fit:cover; border-radius:7px; background:var(--tint); }
.tl-event-card strong { font-size:.88rem; line-height:1.3; }
.tl-event-ref { color:var(--ink-2); font-size:.76rem; }
.tl-event-desc { color:var(--ink-2); font-size:.72rem; line-height:1.38; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.tl-event-card small { margin-top:auto; color:var(--ink-3); font-size:.7rem; }
.tl-event-card.is-on { border-color:var(--accent); background:color-mix(in srgb,var(--accent-soft) 38%,var(--paper)); }
.tl-event-card.is-on .tl-event-n { background:var(--accent); }
.tl-event-card.is-on strong,.tl-event-card.is-on .tl-event-ref { color:var(--accent-ink); }
.tl-detail { position:relative; top:auto; height:100%; max-height:none; min-height:0; overflow:auto; padding:14px; scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--accent) 44%,var(--ink-3)) transparent; }
.tl-detail-badge { display:inline-flex; padding:5px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent-ink); font-size:.78rem; font-weight:650; }
.tl-detail h2 { margin:10px 0 2px; color:var(--accent-ink); font-size:1.65rem; }
.tl-detail-ref { margin:0 0 10px; font-size:1.05rem; font-weight:650; }
.tl-detail-img { width:100%; aspect-ratio:16/7; object-fit:cover; border-radius:10px; background:var(--tint); }
.tl-detail-lead { margin:11px 0; color:var(--ink-2); line-height:1.65; }
.tl-detail-facts { margin:0; border-top:1px solid var(--line); }
.tl-detail-facts div { display:grid; grid-template-columns:90px 1fr; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.tl-detail-facts dt { color:var(--ink-2); font-weight:650; }
.tl-detail-facts dd { margin:0; }
.tl-detail-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:12px 0; }
.tl-related { border-top:1px solid var(--line); padding-top:10px; }
.tl-related h3 { margin:0 0 5px; font-size:.9rem; }
.tl-related button { display:grid; grid-template-columns:1fr auto; width:100%; gap:8px; padding:8px 4px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; }
.tl-related small { color:var(--ink-3); }
.tl-empty { padding:36px 20px; text-align:center; color:var(--ink-2); }
.tl-research { margin-top:12px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--tint) 55%,var(--paper)); }
.tl-research summary { cursor:pointer; font-weight:650; }
.tl-binding { display:grid; gap:7px; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
.tl-binding:first-of-type { border-top:0; }
.tl-binding p { margin:0; color:var(--ink-2); line-height:1.55; }
.tl-binding .btn { justify-self:start; }
@media (max-width:1180px){.tl-page{grid-template-columns:1fr}.tl-detail{position:static}.tl-era-summary{grid-template-columns:1fr auto}.tl-era-summary>p{grid-column:1/-1}}
@media (max-width:760px){body[data-view="timeline"] #timeline-pane{padding:12px 8px 60px}.tl-page-head h1{font-size:1.6rem}.tl-era-strip{grid-auto-columns:132px}.tl-era-card{min-height:170px}.tl-work{display:block}.tl-main{padding:10px}.tl-era-summary{display:block}.tl-track{margin-top:10px}.tl-event-rail{grid-auto-columns:150px}.tl-detail{margin-top:9px}.tl-detail-img{aspect-ratio:16/9}}

/* --- 태블릿 --- */
@media (max-width: 1099px) {
  #workspace { grid-template-columns: var(--rail-w) var(--side-w) minmax(0, 1fr); grid-template-areas: "guide guide guide" "rail side stage"; }
  body[data-panel="collapsed"] #workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr); grid-template-areas: "guide guide" "rail stage"; }
  #guide-pane { position: static; max-height: none; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 8px 14px; overflow: visible; }
  #guide-pane .g-body { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 0; overflow: visible; flex: 1; }
  #guide-pane .g-full { display: none; }
  #guide-pane .g-topic { margin: 0; display: flex; gap: 8px; align-items: baseline; }
  #guide-pane .g-topic > .meta:first-child, #guide-pane .g-topic .g-theme { display: none; }
  #guide-pane .g-title, #guide-pane .g-sample { margin: 0; }
  #guide-pane .g-nav { border-top: 0; padding: 0; background: none; }
  #guide-pane .g-nav .btn { flex: none; padding: 4px 14px; }
  
  
}

/* --- 모바일: 관점 바(가로) → 안내 줄 → 지도 → 본문 --- */
@media (max-width: 760px) {
  #rail { order: -2; position: static; flex-direction: row; justify-content: space-between; align-items: center; min-height: 0; height: 46px; max-height: none; padding: 3px 6px; gap: 6px; border-radius: var(--r-md); }
  .rail-group { flex-direction: row; gap: 2px; }
  .rail-btn { min-height: 36px; padding: 4px 10px; border-left: 0; border-bottom: 2px solid transparent; font-size: .82rem; }
  .rail-btn[aria-current="page"] { border-bottom-color: var(--accent); border-left-color: transparent; }
  .rail-btn.util { min-height: 36px; }
  #settings-pop { left: auto; right: 0; bottom: auto; top: calc(100% + 6px); }
  #side-pane #tabs { padding: 6px 0 0 10px; }
  body[data-view="timeline"] #rail { position: fixed; left: var(--gap); right: var(--gap); top: calc(var(--hdr-h, 0px) + 4px); z-index: 8; }
  
  
  
  
  body[data-view="timeline"] #timeline-pane { top: calc(var(--hdr-h, 0px) + 54px); padding: 16px; }
}

   
.g-card { margin: 0 0 12px; }



.map-route.on { stroke-width: .9; opacity: 1; }
.g-objs { margin: 0 0 12px; } .g-objrow { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 2px 0; } .g-objrow .meta { flex: none; min-width: 4.6em; }
.g-obj { border: 1px solid var(--line-strong); background: none; border-radius: 999px; padding: 1px 10px; font-size: var(--fs-meta); color: var(--ink-2); } .g-obj:hover { border-color: var(--accent); color: var(--accent-ink); }

/* ===== 전체 폭 작업공간 + 탭 없는 상세 ===== */
:root { --wrap: 100vw; --side-w: 300px; --guide-w: 280px; }
@media (min-width: 761px) { :root { --gap: 14px; } }
@media (min-width: 1600px) { :root { --side-w: 340px; --guide-w: 320px; } }
#workspace { max-width: none; gap: 12px; }
.pane-title { margin: 0; padding: 10px 14px; font-size: var(--fs-entity); font-weight: 650; flex: 1; }
#side-pane .pane-bar { align-items: center; }
#side-pane #panel-toggle { margin: 0 10px 0 4px; }
.d-back { border: 0; background: none; padding: 0 0 8px; color: var(--accent-ink); font-size: var(--fs-meta); }
.d-back:hover { text-decoration: underline; }
.d-sec { margin: 14px 0 0; } .d-sec .sec-h { margin-bottom: 6px; }
.chips { display: flex; flex-wrap: wrap; gap: 4px; }
.rel-chip { border: 1px solid var(--accent-line); background: var(--paper); color: var(--accent-ink); border-radius: 999px; padding: 3px 12px; font-size: var(--fs-meta); }
.rel-chip:hover { background: var(--accent); color: var(--on-accent); }
.vrows { display: flex; flex-direction: column; gap: 2px; }
.vrow { display: grid; grid-template-columns: 6.6em minmax(0, 1fr); gap: 8px; text-align: left; border: 0; background: none; border-radius: var(--r-sm); padding: 5px 6px; }
.vrow:hover { background: var(--paper); }
.vr-ref { font-size: var(--fs-meta); font-weight: 600; color: var(--accent-ink); } .vr-txt { font-family: var(--font-read); font-size: .88rem; color: var(--ink-2); }
.rs-list { margin: 6px 0 0; padding-left: 1.1em; }
.ov { border-bottom: 1px solid var(--line); padding: 4px 0; } .ov > summary { cursor: pointer; padding: 6px 0; font-size: var(--fs-meta); font-weight: 650; color: var(--ink-2); } .ov-body { padding: 4px 0 10px; }
.ov-lead { margin: 0 0 8px; }

@media (min-width: 761px) and (max-width: 1099px) {
  #side-pane { position: absolute; z-index: 2; top: 10px; bottom: 10px; left: var(--detail-left); width: min(var(--side-w), calc(100% - 20px)); max-height: none; box-shadow: var(--sh-2); }
}
/* ===== Detail = 지도 캔버스 위 overlay (레이아웃 열이 아니다) =====
   [Rail] [ MAP canvas(z0) + Detail overlay(z1) + controls(z2) ] [Scripture] [Guide] */
#workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr) var(--guide-w); grid-template-areas: "rail stage guide"; }
body[data-panel="collapsed"] #workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr) var(--guide-w); grid-template-areas: "rail stage guide"; }
@media (max-width: 1099px) {
  #workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr); grid-template-areas: "guide guide" "rail stage"; }
  body[data-panel="collapsed"] #workspace { grid-template-columns: var(--rail-w) minmax(0, 1fr); grid-template-areas: "guide guide" "rail stage"; }
}
@media (min-width: 761px) {
  #map-pane { height: calc(100vh - var(--hdr-h, 0px) - 16px); overflow: hidden; --detail-left: 10px; }
  #map-body { position: absolute; inset: 0; padding: 0; z-index: 0; }
  #map-body svg.smap { width: 100%; height: 100%; max-height: none; border: 0; border-radius: 0; }
  #map-body .helper { display: none; }
  #map-body .degraded { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); z-index: 2; margin: 0; }
  .mp-head { position: absolute; z-index: 3; top: 10px; right: 10px; left: auto; transform: none; padding: 4px 10px; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--sh-1); }
  
  
  
}


.ov-sec { margin: 0 0 16px; } .ov-h { margin: 0 0 6px; }
.ov-flow > .research { margin-top: 12px; }

/* 연구 투영 Place(브엘세바): 빠른 정보 · 위치 · 사진 출처 */
.qf-list { margin: 8px 0 0; display: grid; gap: 4px; } .qf { display: grid; grid-template-columns: 5.6em minmax(0, 1fr); gap: 8px; } .qf dt { margin: 0; font-size: var(--fs-meta); color: var(--ink-3); } .qf dd { margin: 0; font-size: .9rem; color: var(--ink-2); }
.loc-state { margin: 0 0 4px; color: var(--accent-ink); } .grp { margin: 10px 0 4px; }
.media-ref { margin: 0 0 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper); } .media-ref .cap { display: block; font-size: .88rem; font-weight: 600; line-height: 1.5; } .media-ref .prov { display: block; margin-top: 2px; }
.rs-body h5 { margin: 10px 0 4px; font-size: var(--fs-meta); color: var(--ink-2); }
.map-note { position: absolute; left: 50%; bottom: 44px; transform: translateX(-50%); z-index: 2; margin: 0; padding: 6px 12px; max-width: 80%; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); font-size: var(--fs-meta); color: var(--ink-2); box-shadow: var(--sh-1); }
@media (max-width: 760px) { .map-note { position: static; transform: none; max-width: none; margin: 8px 0 0; } }

/* ===== 브엘세바 Detail: 전체 면을 한 장의 편집면으로 — 카드 없이 타이포그래피·여백·정렬로 위계 ===== */
#side-pane #panel:has(.d-flat) { padding: 18px 22px 28px; }
.detail.d-flat { border: 0; background: none; box-shadow: none; border-radius: 0; padding: 0; margin: 0; }
.d-flat .d-identity { margin: 0 0 18px; }
.d-flat .detail-name { margin: 0; font-size: 1.9rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; color: var(--ink); }
.d-flat .d-en { margin: 2px 0 0; font-size: 1rem; color: var(--ink-2); }
.d-flat .d-kind { margin: 4px 0 0; font-size: var(--fs-meta); color: var(--ink-3); }
.d-hero { margin: 0 0 22px; }
.hero-open { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; text-align: inherit; }
.hero-img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-sm); }
.d-hero figcaption { display: block; margin-top: 8px; }
.hero-cap { display: block; font-size: 1rem; font-weight: 600; color: var(--ink); line-height: 1.45; }
.hero-src { display: block; margin-top: 2px; font-size: .75rem; color: var(--ink-3); line-height: 1.5; }
.media-lightbox { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px; }
.media-lightbox[hidden] { display: none; }
.media-lightbox-backdrop { position: absolute; inset: 0; border: 0; background: rgba(15, 18, 20, .82); }
.media-lightbox-card { position: relative; z-index: 1; width: min(920px, 94vw); max-height: 92vh; margin: 0; padding: 18px; overflow: auto; border-radius: var(--r); background: var(--paper); box-shadow: 0 24px 70px rgba(0, 0, 0, .38); }
.media-lightbox-close { position: absolute; z-index: 2; top: 8px; right: 10px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(15, 18, 20, .72); color: #fff; font-size: 1.6rem; cursor: pointer; }
.media-lightbox-img { display: block; width: 100%; max-height: 68vh; object-fit: contain; background: #111; border-radius: var(--r-sm); }
.media-lightbox-meta { margin: 12px 2px 0; color: var(--ink-2); line-height: 1.55; }
.media-lightbox-meta strong { display: block; color: var(--ink); font-size: 1.05rem; }
.d-hook { margin: 0 0 30px; font-family: var(--font-read); font-size: 1.2rem; line-height: 1.6; color: var(--accent-ink); letter-spacing: -.01em; }
.d-flat .d-sec { margin: 0 0 30px; }
.d-h { margin: 0 0 10px; font-size: .95rem; font-weight: 650; color: var(--ink); letter-spacing: 0; }
.d-flat .qf-list { margin: 0; gap: 6px; }
.d-flat .qf { grid-template-columns: 5.4em minmax(0, 1fr); gap: 12px; }
.d-flat .qf dt { font-size: .78rem; color: var(--ink-3); padding-top: 2px; }
.d-flat .qf dd { font-size: .92rem; color: var(--ink); }
.d-body { margin: 0 0 10px; font-size: .92rem; line-height: 1.75; color: var(--ink); max-width: 34em; word-break: keep-all; }
.d-sub { margin: 14px 0 6px; font-size: .78rem; color: var(--ink-3); }
.pills { display: flex; flex-wrap: wrap; gap: 6px; }
.pill { border: 1px solid var(--line-strong); background: none; color: var(--ink-2); border-radius: 999px; padding: 2px 11px; font-size: .8rem; line-height: 1.6; }
.pill:hover { border-color: var(--accent); color: var(--accent-ink); }
.d-secondary { margin-top: 8px; }
.d-rule { border-top: 1px solid var(--line); margin: 0 0 20px; }
.d-credits { margin: 0 0 14px; }
.d-h2 { margin: 0 0 8px; font-size: .78rem; font-weight: 650; color: var(--ink-3); }
.d-credits > .prov { display: block; font-size: .72rem; color: var(--ink-3); line-height: 1.5; }
.d-flat .media-ref { border: 0; padding: 0; background: none; margin: 0 0 10px; }
.d-flat .media-ref .cap { display: block; font-size: .8rem; font-weight: 500; color: var(--ink-2); line-height: 1.5; }
.d-flat .media-ref .prov { display: block; font-size: .72rem; color: var(--ink-3); line-height: 1.5; }
.d-flat .research { margin: 6px 0 0; border-top: 0; padding-top: 0; }
.d-flat .research summary { font-size: .8rem; color: var(--ink-3); }
.d-hint { margin: 18px 0 0; font-size: .72rem; color: var(--ink-3); }
@media (max-width: 760px) { #side-pane #panel:has(.d-flat) { padding: 14px 16px 24px; } .d-flat .detail-name { font-size: 1.6rem; } .d-hook { font-size: 1.1rem; margin-bottom: 24px; } .d-flat .d-sec { margin-bottom: 24px; } }

/* 네비게이션: 성경 전체 탐색(상위 계층) */
.g-nav-tree, .g-nav-tree ul { list-style: none; margin: 0; padding: 0; } .g-nav-tree ul { padding-left: 14px; }
.g-nav-cat { padding: 7px 0; border-bottom: 1px solid var(--line); } .g-nav-cat:last-child { border-bottom: 0; }
.g-nav-cat-name { font-size: .95rem; font-weight: 650; color: var(--ink); }
.g-nav-label { display: block; margin-top: 6px; font-size: var(--fs-meta); font-weight: 600; color: var(--ink-2); } .g-nav-story { display: block; font-size: .88rem; color: var(--ink); } .g-nav-scene { display: block; font-size: var(--fs-meta); color: var(--ink-3); }
.g-nav-item { padding: 4px 0; }
.g-link { border: 0; background: none; padding: 2px 0; color: var(--accent-ink); font-size: var(--fs-meta); text-align: left; } .g-link:hover { text-decoration: underline; } .g-back { display: block; margin: 0 0 8px; }
.g-related .g-topic { margin: 0 0 12px; } .g-related .g-step { width: 100%; }
@media (max-width: 1099px) { #guide-pane .g-nav-tree { display: flex; flex-wrap: wrap; gap: 4px 14px; } #guide-pane .g-nav-cat { border: 0; padding: 0; } #guide-pane .g-nav-tree ul { display: none; } #guide-pane .g-explore .sec-h { display: none; } }

/* ===== 지리 지도(Web Mercator) · 위치 상태 표식 ===== */
#map-body svg.gmap { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; background: var(--map-water); }
.gm-local-sea { fill: var(--map-sea); } .gm-base-sea { fill: var(--map-land-base); }   /* terrain 모드의 바탕은 육지색: 타일 범위 밖(세로로 긴 창의 최대 축소)에서만 보이고, 바다는 sea-mask 가 덮는다 */
.gm-local-land { fill: var(--map-land-flat); stroke: var(--map-coast); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.gm-terrain-tiles, .gm-terrain-tile, .gm-terrain-sea-mask { pointer-events: none; }
.gm-terrain-tiles { /* hillshade is retinted by the inline SVG gradient-map filter (see app.js reliefFilterSvg); no CSS contrast boost */ }
.gm-terrain-sea-mask { fill: var(--map-sea); }
.gm-terrain-coast { fill: none; stroke: var(--map-coast); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; pointer-events: none; }
.gm-hydrology { pointer-events: none; }
.gm-hydro-lake { fill: var(--map-water); stroke: var(--map-water-edge); stroke-width: 1.05; vector-effect: non-scaling-stroke; }
.gm-hydro-river { fill: none; stroke: var(--map-river); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; opacity: .9; }
body[data-dragging="map"] #map-body svg.gmap { cursor: grabbing; user-select: none; }
.gm-grid line { stroke: var(--line-strong); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .42; } .gm-grid text { fill: var(--ink-3); font-family: var(--font-ui); font-weight: 500; paint-order: stroke; stroke: var(--map-water); stroke-width: 1.2px; opacity: .72; }
.gm-scale line { stroke: var(--ink-2); stroke-width: 2; vector-effect: non-scaling-stroke; } .gm-scale text { fill: var(--ink-2); font-family: var(--font-ui); }
.gm text { fill: var(--map-label-primary); font-family: var(--font-ui); font-weight: 540; stroke: var(--label-halo); stroke-linejoin: round; paint-order: stroke fill; opacity: .94; }   /* 일반 지명: 한 단계 진하게 + 얇은 밝은 후광(박스 없음) */
.gm-shape { stroke-width: 1.15; vector-effect: non-scaling-stroke; } .gm-ring { fill: none; stroke-width: 1.05; vector-effect: non-scaling-stroke; stroke-dasharray: 3 2.5; }
.gm-site .gm-shape { fill: var(--accent-soft); stroke: var(--accent); } .gm-site .gm-ring { stroke: var(--accent); opacity: .78; } .gm-site.active .gm-shape { fill: var(--accent); }
.gm-modern .gm-shape { fill: none; stroke: var(--ink-3); opacity: .55; } .gm-modern text { fill: var(--map-label-secondary); opacity: 1; }
.gm-confirmed .gm-shape { fill: var(--accent); stroke: var(--paper); } .gm-estimated .gm-shape { fill: var(--paper); stroke: var(--accent); } .gm-estimated .gm-ring { stroke: var(--accent); }
.gm-uncertain .gm-shape { fill: var(--accent); stroke: var(--paper); } .gm-uncertain .gm-qmark { font-size: .72em; font-weight: 760; fill: var(--accent-ink); stroke: var(--label-halo); stroke-width: .16em; paint-order: stroke fill; }
.gm-route-inferred { stroke: var(--accent); stroke-width: 2.1; stroke-dasharray: 7 6; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; opacity: .72; pointer-events: none; }
.pin.fx .dot { stroke-dasharray: 1.4 1; }
.lg-mark { display: inline-block; width: 10px; height: 10px; box-sizing: border-box; } .lg-mk-site { background: var(--accent-soft); border: 1.5px solid var(--accent); transform: rotate(45deg) scale(.85); } .lg-mk-modern { border: 1.5px solid var(--ink-3); border-radius: 50%; } .lg-mk-confirmed { background: var(--accent); border-radius: 50%; } .lg-mk-estimated { border: 1.5px dashed var(--accent); border-radius: 50%; }
@media (max-width: 760px) { #map-body svg.gmap { max-height: 190px; } }


.gm-grid line { stroke: var(--ink-3); opacity: .28; }
body[data-mapview="geo"] .map-note { bottom: auto; top: 58px; }

/* 연속 참조 본문은 절마다 카드처럼 보이지 않고 하나의 선택 범위로 이어진다. 데이터는 절 단위 그대로 유지한다. */
.verse.ref-target { outline: 0; border-radius: 0; background: var(--accent-soft); opacity: 1; margin-top: 0; margin-bottom: 0; box-shadow: inset -1px 0 0 var(--accent-line); }
.verse.ref-target.ref-start { border-radius: 14px 14px 0 0; margin-top: 4px; box-shadow: inset -1px 0 0 var(--accent-line), inset 0 1px 0 var(--accent-line); }
.verse.ref-target.ref-middle { border-radius: 0; }
.verse.ref-target.ref-end { border-radius: 0 0 14px 14px; margin-bottom: 4px; box-shadow: inset -1px 0 0 var(--accent-line), inset 0 -1px 0 var(--accent-line); }
.verse.ref-target.ref-single { border-radius: 14px; margin: 4px 0; box-shadow: inset -1px 0 0 var(--accent-line), inset 0 1px 0 var(--accent-line), inset 0 -1px 0 var(--accent-line); }
.verse.ref-target + .verse.ref-target { margin-top: 0; }
#passage-title.ref-target-passage { box-shadow: inset 0 -3px 0 var(--accent); }
.verse:focus { outline: none; } .verse.ref-target:focus { outline: none; }

.gm { cursor: pointer; } .gm:focus { outline: none; } .gm:focus-visible .gm-shape { stroke-width: 3; }

/* --- EXPLORE_WORKSPACE: 검색은 독립 관점(중앙 가용 작업공간 전체). 떠 있는 창·배경막이 아니다. 선택된 Detail 만 같은 작업공간 오른쪽에서 갱신된다 --- */


/* ===== Desktop viewport lock: 외곽 프레임 고정, 내용만 내부 스크롤 ===== */
@media (min-width: 1100px) {
  html, body { height: 100%; overflow: hidden; }
  body { min-height: 100vh; }
  footer { display: none; }

  #workspace {
    height: calc(100vh - var(--hdr-h, 0px));
    padding-top: 8px;
    padding-bottom: 8px;
    align-items: stretch;
    overflow: hidden;
  }
  #stage {
    height: 100%;
    min-height: 0;
    align-items: stretch;
    overflow: hidden;
  }

  /* 작업공간의 외곽 카드들은 스크롤에 따라 이동하지 않는다. */
  #rail,
  #map-pane,
  #guide-pane,
  #split {
    position: relative;
    top: auto;
    height: 100%;
    max-height: none;
    min-height: 0;
  }
  #rail { align-self: stretch; }
  #split { align-self: stretch; }

  /* 지도는 프레임 안에서 항상 전체 높이를 유지한다. */
  #map-pane {
    overflow: hidden;
  }

  /* 본문 카드: 상단 장 헤더 + 가운데 본문 스크롤 + 하단 네비게이션 */
  #text-pane {
    height: 100%;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0 24px;
  }
  .scripture-head {
    position: relative;
    top: auto;
    flex: none;
    z-index: 4;
    margin: 0 -12px;
    padding: 14px 12px 12px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    backdrop-filter: none;
  }
  #verses {
    flex: 1 1 auto;
    min-height: 0;
    max-width: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 14px 0 18px;
  }
  #verses .verse { scroll-margin-top: 12px; }

  #chapter-nav {
    flex: none;
    margin: 0;
    padding: 10px 0 8px;
    border-top: 1px solid var(--line);
    background: var(--paper);
  }
  #crumb {
    flex: none;
    margin: 0;
    padding: 0 0 10px;
    border-top: 0;
    background: var(--paper);
  }

  /* Guide는 외곽 고정, 가운데 정보만 이미 정의된 .g-body에서 스크롤. */
  #guide-pane { overflow: hidden; }

  /* 지도 위 Detail도 지도 프레임 안에서만 움직인다. */
  #side-pane {
    max-height: none;
  }
}


/* ===== JudeBible map toolbar + layer settings ===== */
.map-tools {
  position: absolute;
  z-index: 6;
  left: 10px;
  top: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--paper) 96%, transparent);
  box-shadow: var(--sh-2);
  backdrop-filter: blur(8px);
}
.map-tools button {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ink-2);
  font: 600 1rem/1 var(--font-ui);
}
.map-tools button:hover:not(:disabled) { background: var(--accent-soft); color: var(--accent-ink); }
.map-tools button:disabled { opacity: .28; cursor: not-allowed; }
.map-tool-sep { display: block; height: 1px; margin: 3px 4px; background: var(--line); }

.map-settings-pop {
  position: absolute;
  z-index: 7;
  left: 54px;
  top: 10px;
  width: 260px;
  padding: 14px 14px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--paper);
  box-shadow: var(--sh-2);
}
.map-settings-pop[hidden] { display: none; }
.map-settings-pop h3 { margin: 0 0 10px; font-size: .92rem; }
.map-settings-pop label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 34px;
  font-size: .84rem;
  color: var(--ink-2);
}
.map-settings-pop label.is-disabled { opacity: .45; }
.map-settings-pop input[type="checkbox"] { accent-color: var(--accent); }
.map-settings-pop p { margin: 8px 0 0; font-size: .72rem; line-height: 1.45; color: var(--ink-3); }

@media (max-width: 760px) {
  .map-tools { left: 8px; top: 8px; transform: scale(.92); transform-origin: top left; }
  .map-settings-pop { left: 50px; top: 8px; width: min(250px, calc(100% - 62px)); }
}

@media print {
  header.top, #rail, #guide-pane, #text-pane, #split, .mp-head, .map-tools, .map-settings-pop, #side-pane, #notice { display: none !important; }
  #workspace, #stage, #map-pane { display: block !important; width: 100% !important; height: 100vh !important; margin: 0 !important; padding: 0 !important; }
  #map-pane { position: fixed !important; inset: 0 !important; border: 0 !important; }
  #map-body, #map-body svg.gmap { width: 100% !important; height: 100% !important; }
}


/* 지도 전용 도구는 기존 왼쪽 rail 안에서 이어진다. */
.rail-map-tools { display: none; }
body[data-view="study"] #rail { justify-content: flex-start; }
body[data-view="study"] #rail .rail-util { margin-top: auto; }

body[data-view="study"] .rail-map-tools button {
  width: 36px;
  height: 32px;
}







/* 본문연구에서도 지도 페이지와 동일한 rail 지도 도구를 사용한다. */
body[data-view="study"] .rail-map-tools {
  display: flex;
  position: static;
  z-index: auto;
  align-self: center;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
  padding: 7px 0 0;
  width: 40px;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
body[data-view="study"] .rail-map-tools .map-tool-sep {
  width: 28px;
  margin: 3px auto;
}
body[data-view="study"] #map-settings-pop {
  left: calc(100% + 8px);
  top: 170px;
  width: 260px;
}

@media (max-width: 760px) {
  body[data-view="study"] #rail {
    height: auto;
    min-height: 46px;
    flex-wrap: wrap;
    align-items: center;
  }
  body[data-view="study"] .rail-map-tools {
    order: 3;
    width: 100%;
    margin-top: 2px;
    padding: 4px 0 0;
    flex-direction: row;
    justify-content: center;
    flex-wrap: nowrap;
    overflow-x: auto;
    border-top: 1px solid var(--line);
  }
  body[data-view="study"] .rail-map-tools .map-tool-sep {
    width: 1px;
    height: 26px;
    margin: 3px;
  }
  body[data-view="study"] #map-settings-pop {
    left: var(--gap);
    right: var(--gap);
    top: calc(100% + 6px);
    width: auto;
  }
}

/* 모든 지명 표시: 보조 지명은 연구 지명보다 가늘고 약하게, 지형을 덮는 박스 없이 얇은 후광만 사용 */
.gm-ref-layer { pointer-events: none; }
.gm-ref text { font-family: var(--font-ui); font-weight: 400; stroke: var(--label-halo); stroke-linejoin: round; paint-order: stroke fill; }
.gm-ref-water text { font-style: italic; opacity: 1; }
.gm-ref-region text { letter-spacing: .06em; opacity: 1; }
.gm-ref.gm-ref-region[data-semantic-tier] text { fill: var(--map-label-primary); }   /* 지역명은 3:1 미만의 보조색으로 내려가지 않게 primary 유지(가독성) — 위계는 굵기·자간·크기로 */
/* 지명 위계 = semantic tier: tier1–2 primary, tier3 secondary, tier4 reference (물 이름은 별도 수역 색) */
.gm-ref text { fill: var(--map-label-primary); } .gm-ref[data-semantic-tier="3"] text { fill: var(--map-label-secondary); } .gm-ref[data-semantic-tier="4"] text { fill: var(--map-label-reference); } .gm-ref.gm-ref-water text { fill: var(--map-label-water); }
.gm-ref-dot { fill: var(--map-label-secondary); opacity: .75; }

/* ---- 지도 글자 위계 L0~L5 (JS LABEL_LEVELS 와 같은 표; 크기는 JS 가 화면 px 로 정하고 굵기·자간·색은 여기서) ----
   굵은 글씨는 주요 지명(L1·선택 대상)에만 쓴다. 대지역(L0)은 크지만 가늘고 넓은 자간·보조 농도로 조용하게,
   현대 참고 지명(L4·L5)은 가장 가늘고 약한 색으로 연구 지명 뒤에 물러난다. 수역은 이탤릭+수역색으로 구분. 연구 지명·참고 지명 모두 같은 규칙. */
[data-label-level="L0"] { letter-spacing: .18em; }
[data-label-level="L1"] { font-weight: 600; opacity: .96; }
[data-label-level="L2"] { font-weight: 520; opacity: .96; }
[data-label-level="L3"] { font-weight: 480; letter-spacing: .06em; opacity: .94; }
[data-label-level="L4"], [data-label-level="L5"] { font-weight: 400; opacity: 1; }
[data-label-level="WM"] { letter-spacing: .12em; }
[data-label-level="Wm"] { letter-spacing: .05em; }
.gm-ref[data-label-level="L0"] text { font-weight: 400; letter-spacing: .18em; fill: var(--map-label-primary); opacity: .82; }
.gm-ref[data-label-level="L3"] text { font-weight: 450; letter-spacing: .06em; opacity: .92; }   /* 색은 위의 semantic tier 규칙(primary/secondary/reference) 그대로 */
.gm-ref[data-label-level="WM"] text { font-weight: 450; letter-spacing: .12em; }
.gm-ref[data-label-level="Wm"] text { font-weight: 400; letter-spacing: .05em; }
.gm text[data-label-level="L1"] { font-weight: 600; opacity: .96; }   /* 연구 지명: 기본 .gm text(540)보다 구체적이어야 위계 굵기가 적용된다 */
.gm text[data-label-level="L2"] { font-weight: 520; opacity: .96; }
.gm text[data-label-level="L3"] { font-weight: 480; opacity: .94; }
.gm text[data-label-level="L4"], .gm text[data-label-level="L5"] { font-weight: 400; opacity: 1; }
.gm text[data-label-level="L2"] { letter-spacing: 0; }
.gm text[data-label-level="L3"] { letter-spacing: .06em; }
.gm text[data-label-level="L4"] { letter-spacing: 0; }

.gm-sea-tone { pointer-events: none; }


/* ===== UI refinement v0.1 — 표시 이름 · 따뜻한 중립 · 약한 테두리 · 반경 체계 · teal 역할 분리 (토큰 + 최소 규칙만; 구조·동작 불변) ===== */
:root {
  --page: #f5f2ea;                       /* warm neutral */
  --line: #ece7dc; --line-strong: #ddd7c9;   /* 카드 테두리 약화 */
  --r-sm: 10px; --r-md: 12px; --r-lg: 14px; /* 반경 10–14px 체계 */
  /* teal 역할 분리: action(버튼·포커스) / selection(선택 배경+바) / link(개체 밑줄) / nav(현재 위치) */
  --teal-action: #2b7a78; --teal-selection-bg: #e6f1ed; --teal-selection-bar: #1b5654; --teal-link-line: #a9d0c9; --teal-nav-bg: #e0efec;
}
button, input, select, textarea { font-family: var(--font-ui); }   /* UI sans 통일 (본문 성경은 --font-read serif 유지) */
#text-pane, #side-pane, #map-pane, #guide-pane { box-shadow: 0 1px 2px rgba(60, 50, 30, .04); }
/* 왼쪽 deep-teal 2px: 스크롤 컨테이너가 verse 왼쪽 10px(음수 margin)를 잘라 inset 그림자가 안 보이던 문제 → 보이는 영역(10px 안쪽)에 직접 그린다 */
.verse.sel { background: var(--teal-selection-bg); box-shadow: none; }
.verse.sel .vnum { color: var(--teal-selection-bar); }
.tag { border-bottom-color: var(--teal-link-line); }
.rail-btn[aria-current="page"] { background: var(--teal-nav-bg); border-left-color: var(--teal-action); }
.btn.primary { background: var(--teal-action); border-color: var(--teal-action); }
/* header: pill 과다 사용 축소 — 입력/버튼은 12px 반경, 포커스 링만 teal */
#ref-input, .ref-form .btn { border-radius: var(--r-md); }
.brand { font-size: 1.1rem; letter-spacing: -.015em; }
.brand small, .brand-home small { font-size: .78rem; letter-spacing: .02em; }
/* spacing 중심 그룹: 구분선 대신 여백 */
.item.xref, .item.res { border-bottom-color: transparent; padding-bottom: 12px; }
.map-tool-sep { margin: 8px 6px; background: transparent; }
@media (max-width: 430px) { .rail-btn { padding-left: 6px; padding-right: 6px; font-size: .78rem; } #rail { padding-left: 3px; padding-right: 3px; gap: 2px; } .rail-group { gap: 0; } }   /* 모바일 가로 넘침 방지(관점 바) */


/* ===== Editorial UI parity v0.4 — 고정 영역(rail/detail/header)만 조정, 지도/본문은 splitter 가변 영역 유지 ===== */
:root { --rail-w: 80px; --side-w: 360px; --split-line: #DDD8CE; --split-line-hover: #A7BDB8; --split-line-active: #4F8C86; }
@media (min-width: 1600px) { :root { --side-w: 390px; } }
.brand { font-size: 1.32rem; letter-spacing: -.02em; }
.brand small, .brand-home small { font-size: .82rem; }
/* splitter: hit-area 는 --split-w(10px) 그대로, 보이는 선은 1px → hover 2px → drag 2px(teal) */
#split::before { width: 1px; border-radius: 1px; background: var(--split-line); }
#split:hover::before, #split:focus-visible::before { width: 2px; background: var(--split-line-hover); }
body[data-dragging="split"] #split::before { width: 2px; background: var(--split-line-active); }
#split::after { width: 5px; height: 30px; margin-top: -15px; border-radius: 3px; background: var(--paper); border: 1px solid var(--split-line); transition: border-color .12s; }
#split:hover::after, #split:focus-visible::after { border-color: var(--split-line-hover); }
body[data-dragging="split"] #split::after { border-color: var(--split-line-active); }

/* ===== Icon system + selected-verse refinement v0.1 — 단일 outline 패밀리, 1.7px stroke, teal 역할 유지 ===== */
:root { --ico: #4F5553; --ico-sel: #1F7F78; --ico-sel-bg: #E7F1EE; --ico-brand: #5F6F73; }
.ico { display: block; flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.brand-home { display: inline-flex; align-items: center; gap: 11px; }
.brand-home small { margin-left: 0; }
.brand-ico { display: inline-flex; color: var(--ico-brand); }
.brand-ico .ico { width: 27px; height: 27px; stroke-width: 1.7; }
/* left rail: 주요 내비 = 20–22px 아이콘 + 라벨(4–6px 간격), 유틸 = 17–19px */
#rail .rail-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 9px 2px; min-height: 62px; color: var(--ico); }
#rail .rail-btn .ico { width: 21px; height: 21px; }
#rail .rail-btn.util { min-height: 54px; }
#rail .rail-btn.util .ico { width: 18px; height: 18px; }
#rail .rail-btn .rail-lab { font-size: .76rem; line-height: 1.15; }
#rail .rail-btn:hover { background: var(--tint); color: var(--ink); }
#rail .rail-btn[aria-current="page"] { background: var(--ico-sel-bg); color: var(--ico-sel); }
#rail .rail-btn.util[aria-expanded="true"] { background: var(--tint); color: var(--ico-sel); }
#rail .rail-group:not(.rail-util) { gap: 12px; }
.map-tools button { color: var(--ico); display: inline-flex; align-items: center; justify-content: center; }
.map-tools button .ico { width: 18px; height: 18px; }
.map-tools button:hover:not(:disabled) { background: var(--ico-sel-bg); color: var(--ico-sel); }
@media (min-width: 761px) {
  body[data-view="study"] .rail-map-tools { gap: 6px; padding-top: 10px; border-top-color: transparent; margin-top: 12px; }
  body[data-view="study"] .rail-map-tools .map-tool-sep { margin: 6px auto; background: transparent; }
}
@media (max-width: 760px) { #rail .rail-btn .ico { display: none; } #rail .rail-btn { flex-direction: row; min-height: 36px; padding: 4px 10px; } .brand-ico .ico { width: 24px; height: 24px; } }
/* selected / hover verse: 살짝 둥근 모서리(8px), 버튼처럼 보이지 않게. 레이아웃은 그대로 두려고 padding 증가분을 음수 margin 으로 상쇄 */
.verse { border-radius: 8px; }
.verse:hover { background: color-mix(in srgb, var(--teal-selection-bg) 45%, transparent); }
.verse.sel { border-radius: 8px; padding-top: 14px; padding-bottom: 14px; margin-top: -9px; margin-bottom: -7px; }

/* ===== 앱 Dark UI (지도 Dark 시스템에 맞춤: warm charcoal + muted teal; 지도 토큰은 그대로) — 시스템 설정(자동) 또는 data-theme="dark" ===== */
:root { color-scheme: light dark; }
:root[data-theme="light"] { color-scheme: light; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --page: #1f1d1a; --paper: #2a2723; --tint: #332f2a;
  --ink: #E9E3D7; --ink-2: #C6BEB0; --ink-3: #A0988A;
  --line: #3b362f; --line-strong: #4b453c;
  --accent: #6fc0b9; --accent-ink: #8fd3cc; --accent-soft: #223e3b; --accent-line: #3f726c; --on-accent: #10201f;
  --warn-bg: #3a2f17; --warn-ink: #f0c987;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .35); --sh-2: 0 8px 28px rgba(0, 0, 0, .5);
  --teal-selection-bg: #223e3b; --teal-selection-bar: #6fc0b9; --teal-link-line: #3f726c; --teal-nav-bg: #223e3b;
  --split-line: #4b453c; --split-line-hover: #4f6f6a; --split-line-active: #6fc0b9;
  --ico: #C6BEB0; --ico-sel: #8fd3cc; --ico-sel-bg: #223e3b; --ico-brand: #a9b6b8;
  --teal-action: #6fc0b9;
  color-scheme: dark;
} }
:root[data-theme="dark"] {
  --page: #1f1d1a; --paper: #2a2723; --tint: #332f2a;
  --ink: #E9E3D7; --ink-2: #C6BEB0; --ink-3: #A0988A;
  --line: #3b362f; --line-strong: #4b453c;
  --accent: #6fc0b9; --accent-ink: #8fd3cc; --accent-soft: #223e3b; --accent-line: #3f726c; --on-accent: #10201f;
  --warn-bg: #3a2f17; --warn-ink: #f0c987;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .35); --sh-2: 0 8px 28px rgba(0, 0, 0, .5);
  --teal-selection-bg: #223e3b; --teal-selection-bar: #6fc0b9; --teal-link-line: #3f726c; --teal-nav-bg: #223e3b;
  --split-line: #4b453c; --split-line-hover: #4f6f6a; --split-line-active: #6fc0b9;
  --ico: #C6BEB0; --ico-sel: #8fd3cc; --ico-sel-bg: #223e3b; --ico-brand: #a9b6b8;
  --teal-action: #6fc0b9;
  color-scheme: dark;
}

/* 설정/팝오버/입력 요소가 Dark 에서도 같은 토큰을 쓰도록 */
.set-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 10px; font-size: .84rem; color: var(--ink-2); }
select, .map-settings-pop select, .set-row select { font: inherit; font-size: .84rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 4px 8px; }
select:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
::selection { background: var(--accent-soft); color: var(--ink); }

/* "모든 지명 표시": 켜져 있을 때 X(끄기) 노출, 꺼지면 같은 항목의 체크박스로 다시 켠다. X 는 설정 패널을 닫지 않는다. */
.set-all-labels { gap: 6px; }
.set-all-labels > span { flex: 1; }
.set-x { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: transparent; color: var(--ink-3); cursor: pointer; }
.set-x:hover { color: var(--ink); border-color: var(--accent); }
.set-x .ico { width: 14px; height: 14px; }
/* 사이드바 하단 테마 토글: 지도 도구와 분리된 utility 영역(검색·설정 아래) */
#rail #rail-theme { color: var(--ico); }
#rail #rail-theme[aria-pressed="true"] { color: var(--ico-sel); }
.map-settings-pop .pop-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 10px; } .map-settings-pop .pop-head h3 { margin: 0; }

/* ===== Bible Quick Navigator (상단 참조 입력창 아래 팝업) ===== */
.ref-form { position: relative; }
.ref-pop { position: absolute; top: calc(100% + 8px); right: 0; z-index: 30; width: min(400px, 92vw); max-height: min(70vh, 520px); overflow: auto; padding: 12px; background: var(--paper); border: 1px solid var(--line-strong); border-radius: var(--r-md); box-shadow: var(--sh-2); }
.ref-pop[hidden] { display: none; }
.qn-tabs { display: flex; gap: 4px; margin: 0 0 10px; padding: 3px; background: var(--tint); border-radius: var(--r-sm); }
.qn-tab { flex: 1; border: 0; padding: 6px 10px; border-radius: 8px; background: transparent; color: var(--ink-2); font: inherit; font-size: .84rem; cursor: pointer; }
.qn-tab[aria-selected="true"] { background: var(--paper); color: var(--ink); font-weight: 650; box-shadow: var(--sh-1); }
.qn-grid { display: grid; gap: 4px; }
.qn-books { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qn-chapters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.qn-btn { border: 1px solid transparent; background: transparent; color: var(--ink); padding: 6px 4px; border-radius: 8px; font: inherit; font-size: .82rem; cursor: pointer; word-break: keep-all; }
.qn-btn:hover, .qn-btn:focus-visible { background: var(--teal-nav-bg); border-color: var(--accent-line); outline: none; }
.qn-h { margin: 0 0 6px; font-size: .74rem; font-weight: 650; color: var(--ink-3); }
.qn-sec { margin: 0 0 10px; }
.qn-recent { display: flex; flex-wrap: wrap; gap: 4px; }
.qn-rec { border-color: var(--line); }
.qn-back { border: 0; background: transparent; color: var(--ink-2); font-size: 1rem; cursor: pointer; padding: 0 6px; }
.qn-list { list-style: none; margin: 0 0 10px; padding: 0; }
.qn-opt { padding: 7px 10px; border-radius: 8px; font-size: .88rem; cursor: pointer; color: var(--ink); }
.qn-opt.on, .qn-opt:hover { background: var(--teal-nav-bg); }
.qn-hint { color: var(--ink-3); font-size: .74rem; margin-left: 6px; }
.qn-empty { margin: 0 0 10px; font-size: .8rem; color: var(--ink-3); }
@media (max-width: 760px) { .ref-pop { left: 0; right: auto; width: min(400px, calc(100vw - 32px)); } }

/* 지도 설정 하단 자료 안내(출처 링크 + 교육용 안내). 패널은 작게 유지하고 길어지면 내부 스크롤 */
.map-settings-pop { max-height: min(640px, calc(100vh - 160px)); overflow-y: auto; }
.map-src { margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--line); }
.map-src-h { margin: 0 0 6px !important; font-size: .72rem !important; font-weight: 650; color: var(--ink-3) !important; }
.map-src-list { list-style: none; margin: 0 0 6px; padding: 0; font-size: .72rem; line-height: 1.5; color: var(--ink-2); }
.map-src-list li { display: flex; flex-wrap: wrap; gap: 0 6px; }
.map-src-k { flex: none; min-width: 5.6em; color: var(--ink-3); }
.map-src a, .map-src-btn { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 2px; font: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.map-src a:hover, .map-src-btn:hover { color: var(--accent); }
.map-src a:focus-visible, .map-src-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
.map-src-info { margin: 0 0 6px !important; padding: 6px 8px; background: var(--tint); border-radius: var(--r-sm); font-size: .7rem !important; line-height: 1.45 !important; color: var(--ink-2) !important; }
.map-src-note { margin: 0 !important; font-size: .68rem !important; line-height: 1.45 !important; color: var(--ink-3) !important; }

/* 지도 하단은 최소 출처 한 줄, 범례·권위 설명은 지도 설정 하단(.map-info) */
.geo-attr-min { position: absolute; left: 10px; bottom: 6px; z-index: 2; margin: 0; max-width: calc(100% - 20px); font-size: .64rem; line-height: 1.3; color: var(--ink-3); opacity: .85; pointer-events: none; text-shadow: 0 0 3px var(--paper); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.map-info { margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--line); }
.mi-sec { margin: 0 0 8px; }
.mi-h { margin: 0 0 4px; font-size: .72rem; font-weight: 650; color: var(--ink-3); }
.mi-list { list-style: none; margin: 0; padding: 0; font-size: .72rem; line-height: 1.55; color: var(--ink-2); }
.mi-list li { display: flex; align-items: center; gap: 7px; }
.mi-list .lg-mark { flex: none; } .mi-list .lg-line { flex: none; width: 16px; margin: 0; } .lg-area { flex: none; display: inline-block; width: 16px; height: 9px; border: 1.5px dotted var(--ink-3); border-radius: 4px; opacity: .8; }
.mi-aa { flex: none; display: inline-flex; width: 10px; justify-content: center; font-size: .7rem; font-weight: 650; color: var(--ink-3); }
.mi-bg { flex: none; width: 10px; height: 10px; border-radius: 2px; background: var(--map-land-base); border: 1px solid var(--map-water-edge); }
.mi-note { margin: 4px 0 8px !important; font-size: .68rem !important; line-height: 1.45 !important; color: var(--ink-3) !important; }
.mi-more { margin: 6px 0 0; font-size: .7rem; color: var(--ink-2); } .mi-more summary { cursor: pointer; color: var(--accent-ink); } .mi-more p { margin: 5px 0 0 !important; font-size: .68rem !important; line-height: 1.45 !important; color: var(--ink-3) !important; }
.map-info .map-src { margin: 0; padding: 0; border-top: 0; }
@media print { .geo-attr-min { display: block !important; position: fixed; left: 8mm; bottom: 5mm; font-size: 8pt; color: #333; opacity: 1; text-shadow: none; white-space: normal; } }


/* ===== 지도 필기 도구: 앱 상단 헤더(로고 오른쪽 빈 자리)의 가로 바 + 지도 위 임시 오버레이 (연구 자료 아님) ===== */
.ann-layer, .ann-tools, .ann-print-note { display: none; }
body[data-view="study"] .ann-layer:not([hidden]) { display: block; }
.ann-layer { position: absolute; z-index: 1; left: 0; top: 0; pointer-events: none; touch-action: none; overflow: hidden; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ann-layer[data-vis="0"] { visibility: hidden; }
.ann-layer[data-active="1"] { pointer-events: auto; cursor: crosshair; }
.ann-layer[data-active="1"][data-tool="eraser"] { cursor: none; }
body[data-ann-drawing="1"] { user-select: none; }
/* 헤더의 기존 빈 공간만 쓴다: 남는 자리만큼(내용 폭까지) 늘어나고, 모자라면 바 안에서 가로로 스크롤한다 → 헤더 높이·다른 요소 위치는 그대로 */
body:is([data-view="study"],[data-view="timeline"],[data-view="explore"]) .top > .ann-tools { display: flex; flex: 1 1 0; min-width: 96px; max-width: max-content; align-items: center; gap: 1px; padding: 1px 4px; height: 34px; box-sizing: border-box; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.ann-tools::-webkit-scrollbar { display: none; }
.ann-tools > button { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ico, var(--ink-2)); cursor: pointer; }
.ann-tools > button .ico { width: 17px; height: 17px; }
.ann-tools > button:hover:not(:disabled) { background: var(--accent-soft); color: var(--accent-ink); }
.ann-tools > button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent, #fff); }
.ann-tools > button:disabled { opacity: .28; cursor: not-allowed; }
.ann-tools button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.ann-tools .map-tool-sep { flex: none; display: block; width: 1px; height: 18px; margin: 0 4px; background: var(--line-strong); }
.ann-opts { flex: none; display: flex; align-items: center; gap: 1px; }
.ann-opts:empty { display: none; }
.ann-swatches, .ann-widths { display: flex; align-items: center; gap: 3px; }
.ann-widths { margin-left: 4px; }
.ann-sw { flex: none; width: 17px; height: 17px; padding: 0; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--c); cursor: pointer; }
.ann-sw[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 1.5px var(--paper), 0 0 0 3.5px var(--accent); }
.ann-wd { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 26px; padding: 0; border: 1px solid transparent; border-radius: 7px; background: transparent; cursor: pointer; }
.ann-wd i { display: block; border-radius: 50%; background: var(--ink-2); }
.ann-wd:hover { background: var(--accent-soft); }
.ann-wd[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); }
.ann-opts button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
@media (max-width: 760px) { body:is([data-view="study"],[data-view="timeline"],[data-view="explore"]) .top > .ann-tools { display: none; } #map-pane { position: relative; } }
@media print {
  .top > .ann-tools { display: none !important; }
  .ann-layer { display: block !important; left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; pointer-events: none !important; }
  .ann-layer[hidden], .ann-layer[data-vis="0"] { display: none !important; }
  body[data-ann="has"] .ann-print-note { display: block !important; position: fixed; left: 8mm; bottom: 10mm; font-size: 8pt; color: #333; }
}

/* 외부 참고(EXTERNAL_REFERENCE): 내부 연구와 구분되는 출처 경계 — 점선 구분선·보조 색. 연구 근거가 아님을 시각적으로도 분명히 한다. */
.d-ext { border-top: 1px dashed var(--line, rgba(128,120,108,.45)); padding-top: 14px; }
.d-ext .d-h { color: var(--ink-3); } .ext-boundary { margin: 0 0 8px; font-size: .78rem; color: var(--ink-3); }
.ext-list { margin: 0; padding: 0; list-style: none; } .ext-item { margin: 0 0 8px; font-size: .86rem; color: var(--ink-2, inherit); }
.ext-item strong { font-weight: 560; } .ext-tag { display: inline-block; margin-left: 6px; padding: 0 6px; border: 1px solid var(--line, rgba(128,120,108,.45)); border-radius: 999px; font-size: .68rem; color: var(--ink-3); vertical-align: 1px; }
.ext-meta { display: block; font-size: .76rem; color: var(--ink-3); } .ext-id { font-family: var(--font-mono, ui-monospace, monospace); }
.ext-verify strong, .ext-conflict .ext-meta { font-style: italic; }
/* 외부 참고 지명은 성경 지명보다 시각적으로 우세하지 않다: 더 작고 가볍고, 색은 보조 참고색 */
.gm-ref.gm-ref-ext text { font-weight: 400; fill: var(--map-label-reference); opacity: .9; }
.gm-ref.gm-ref-extancient text { font-style: italic; }

/* =====================================================================
   Explore workspace — 검색은 별도 관점이다.
   기존 앱 셸(헤더·왼쪽 rail·오른쪽 Navigation)은 유지하고 중앙 작업영역만 탐색 화면으로 전환한다.
   ===================================================================== */
#search { width: 220px; font: inherit; font-size: .875rem; padding: 7px 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--paper); color: var(--ink); }
#search::placeholder { color: var(--ink-3); }
#search:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }
.search-open { display: none; }

.sw { position: fixed; z-index: 7; top: calc(var(--hdr-h, 0px) + 8px); bottom: 8px; left: calc(var(--wx) + var(--rail-w) + 10px); right: calc(var(--wx) + var(--guide-w) + 10px); pointer-events: none; }
.sw[hidden] { display: none !important; }
.sw-panel { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; pointer-events: auto; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); }
.sw-head { display: flex; align-items: center; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--line); flex: none; }
.sw-title { margin: 0; font-size: 1rem; font-weight: 650; flex: none; }
#sw-query { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 1rem; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--page); color: var(--ink); }
#sw-query:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }

.sw-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 9px 14px; border-bottom: 1px solid var(--line); flex: none; }
.sw-fgroup { display: flex; align-items: center; gap: 4px; }
.sw-flabel { color: var(--ink-3); font-size: var(--fs-helper); margin-right: 4px; }
.sw-fgroup button { border: 0; background: none; color: var(--ink-2); padding: 3px 9px; border-radius: 999px; font-size: var(--fs-meta); }
.sw-fgroup button:hover { background: var(--tint); }
.sw-fgroup button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; }
.sw-view { margin-left: 2px; }
.sw-adv { position: relative; }
.sw-adv > summary { cursor: pointer; list-style: none; color: var(--ink-2); font-size: var(--fs-meta); padding: 3px 8px; border-radius: 999px; }
.sw-adv > summary::-webkit-details-marker { display: none; }
.sw-adv > summary::after { content: " ▾"; color: var(--ink-3); }
.sw-adv[open] > summary { background: var(--tint); }
.sw-adv-body { position: absolute; z-index: 5; top: calc(100% + 7px); left: 0; width: min(640px, calc(100vw - 120px)); padding: 12px; display: flex; flex-wrap: wrap; gap: 10px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--sh-2); }
.sw-select { display: inline-flex; align-items: center; gap: 6px; }
.sw-select select { border: 1px solid var(--line-strong); border-radius: 8px; background: var(--paper); color: var(--ink); padding: 4px 7px; font: inherit; font-size: var(--fs-meta); }

#sw-summary { margin: 0; padding: 10px 14px 4px; flex: none; }
.sw-results { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 4px 12px 14px; }
.sw-more { padding: 0 14px 12px; text-align: center; flex: none; }
.sw-more[hidden], #sw-more[hidden] { display: none; }
.sr-row { width: 100%; text-align: left; border: 1px solid transparent; background: transparent; color: var(--ink); font: inherit; border-radius: var(--r-md); cursor: pointer; }
.sr-row:hover, .sr-row:focus-visible { background: var(--tint); border-color: var(--line); outline: none; }
.sr-ref { font-weight: 650; color: var(--accent-ink); font-size: .92rem; line-height: 1.5; }
.sr-kind { display: block; font-size: var(--fs-helper); color: var(--ink-3); font-weight: 500; }
.sr-preview { font-family: var(--font-read); font-size: 1rem; line-height: 1.75; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.5em; }
mark { background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; border-radius: 3px; padding: 0 1px; }

.ee-set[data-view="card"] { display: grid; grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); gap: 10px; padding: 6px 2px 10px; align-items: start; }
.ee-item { min-width: 0; }
.ee-card { display: flex; min-height: 142px; align-self: start; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--paper); overflow: hidden; }
.ee-card.is-selected, .ee-item:has(.ee-primary.is-selected) { border-color: var(--accent); background: var(--accent-soft); }
.ee-card .ee-primary { display: grid; flex: 1; grid-template-columns: 88px minmax(0, 1fr); align-items: start; gap: 9px; padding: 10px; border: 0; border-radius: 0; }
.ee-card .ee-primary.no-media { grid-template-columns: minmax(0, 1fr); }
.ee-thumb { display: block; width: 88px; height: 88px; border-radius: 10px; object-fit: cover; background: var(--tint); }
.ee-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; padding: 0; text-align: left; }
.ee-card-extra { grid-column: 1 / -1; display: flex; min-width: 0; flex-direction: column; gap: 3px; text-align: left; }
.ee-meta, .ee-count { display: block; font-size: var(--fs-meta); color: var(--ink-2); line-height: 1.35; }
.ee-count { color: var(--ink-3); }
.ee-card .sr-preview { min-height: 0; font-family: inherit; font-size: .86rem; line-height: 1.45; -webkit-line-clamp: 2; line-clamp: 2; }
.ee-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.ee-tag { display: inline-flex; max-width: 100%; border: 1px solid var(--line); border-radius: 999px; padding: 1px 6px; color: var(--ink-2); font-size: var(--fs-helper); line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.d-deep-study { margin-top: 10px; padding: 6px 10px; font-size: var(--fs-meta); }

.ee-set[data-view="list"] { display: flex; flex-direction: column; gap: 0; }
.ee-list-head { display: grid; grid-template-columns: minmax(270px, 1.05fr) minmax(320px, 1.65fr) minmax(190px, .82fr) minmax(230px, 1.08fr) 28px; gap: 18px; align-items: center; margin-top: 4px; padding: 9px 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--tint) 68%, transparent); color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.25; }
.ee-list-row { min-width: 0; border-bottom: 1px solid var(--line); background: transparent; }
.ee-list-row.is-selected { background: var(--accent-soft); }
.ee-list-row .ee-primary { display: grid; grid-template-columns: minmax(270px, 1.05fr) minmax(320px, 1.65fr) minmax(190px, .82fr) minmax(230px, 1.08fr) 28px; gap: 18px; width: 100%; min-height: 78px; align-items: center; border: 0; border-radius: 0; padding: 10px 18px; text-align: left; background: transparent; }
.ee-list-row .ee-primary:hover, .ee-list-row .ee-primary:focus-visible { background: color-mix(in srgb, var(--accent-soft) 58%, transparent); }
.ee-list-name { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; min-width: 0; align-items: center; }
.ee-list-name-entity { grid-template-columns: 46px minmax(0, 1fr); }
.ee-list-symbol { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 1.25rem; }
.ee-list-namecopy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.ee-list-row .sr-ref { display: block; min-width: 0; color: var(--accent-ink); font-weight: 700; font-size: 1rem; line-height: 1.25; }
.ee-list-class { color: var(--ink-2); font-size: var(--fs-meta); line-height: 1.45; }
.ee-list-row .ee-thumb { width: 88px; height: 58px; border-radius: 7px; object-fit: cover; }
.ee-list-desc { min-width: 0; color: var(--ink); font-size: .93rem; line-height: 1.55; }
.ee-list-passage { min-width: 0; color: var(--ink-2); font-size: .9rem; line-height: 1.45; }
.ee-list-tags { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.ee-list-tags .ee-tag { padding: 3px 9px; background: color-mix(in srgb, var(--paper) 82%, transparent); }
.ee-list-chevron { color: var(--ink-3); font-size: 1.65rem; line-height: 1; text-align: right; }
.ee-list-row .ee-copy, .ee-list-row .ee-card-extra, .ee-list-row .ee-actions { display: none; }

body[data-view="explore"] #stage,
body[data-view="explore"] #timeline-pane { visibility: hidden; pointer-events: none; }
body[data-view="explore"] #guide-pane { display: none !important; }
body[data-view="explore"] .rail-map-tools { display: none !important; }
/* Explore에서는 검색 폭을 선택 전후 동일하게 유지한다.
   기존 Navigation 컬럼을 Detail 전용 고정 컬럼으로 재사용한다. */
body[data-view="explore"] .sw { right: calc(var(--wx) + var(--guide-w) + 10px); }
body[data-view="explore"][data-panel="open"] .sw { right: calc(var(--wx) + var(--guide-w) + 10px); }
body[data-view="explore"][data-panel="open"] #side-pane { position: fixed; z-index: 8; top: calc(var(--hdr-h, 0px) + 8px); bottom: 8px; left: auto; right: var(--wx); width: var(--guide-w); height: auto; max-height: none; display: flex; visibility: visible; pointer-events: auto; }
body[data-view="explore"][data-panel="collapsed"] #side-pane { display: none !important; }

@media (max-width: 760px) {
  #search { display: none; }
  .search-open { display: inline-flex; }
  .sw, body[data-view="explore"] .sw { top: calc(var(--hdr-h, 0px) + 54px); left: 8px; right: 8px; bottom: 8px; }
  .sw-panel { width: 100%; }
  .sw-head { padding: 10px 12px; gap: 8px; }
  .sw-title { display: none; }
  #sw-query { font-size: 16px; }
  .sw-filters { padding: 8px 10px; gap: 6px 10px; }
  .sw-adv-body { position: fixed; left: 10px; right: 10px; top: calc(var(--hdr-h, 0px) + 110px); width: auto; }
  #sw-summary { padding: 8px 12px 2px; }
  .sw-results { padding: 4px 6px 12px; }
  .sw-results > .sr-row { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 12px 10px; border-bottom: 1px solid var(--line); border-radius: 0; }
  .sw-results > .sr-row .sr-ref { display: flex; align-items: baseline; gap: 8px; }
  .sw-results > .sr-row .sr-preview { display: -webkit-box; font-size: 1rem; line-height: 1.75; min-height: 3.5em; }
  .ee-set[data-view="card"] { grid-template-columns: 1fr; }
  .ee-card { min-height: 0; }
  .ee-list-head { display: none; }
  .ee-list-row .ee-primary { grid-template-columns: minmax(0, 1fr) 24px; gap: 8px 12px; padding: 10px 8px; }
  .ee-list-name { grid-column: 1; grid-template-columns: 72px minmax(0, 1fr); }
  .ee-list-name-entity { grid-template-columns: 42px minmax(0, 1fr); }
  .ee-list-row .ee-thumb { width: 72px; height: 48px; }
  .ee-list-desc { grid-column: 1; }
  .ee-list-passage { grid-column: 1; font-size: var(--fs-meta); }
  .ee-list-tags { grid-column: 1; }
  .ee-list-chevron { grid-column: 2; grid-row: 1 / span 4; align-self: center; }
  .ee-list-row .ee-meta, .ee-list-row .sr-preview { display: none; }
  .ee-list-row .ee-actions { padding: 0 8px 8px; }
  body[data-view="explore"][data-panel="open"] .sw { right: 8px; bottom: 42vh; }
  body[data-view="explore"][data-panel="open"] #side-pane { position: fixed; z-index: 9; left: 8px; right: 8px; top: auto; bottom: 8px; width: auto; height: calc(42vh - 12px); max-height: none; visibility: visible; pointer-events: auto; }
}
@media print { .sw { display: none !important; } }


/* === JudeBible Place/Person Discovery Workspace v0.1 === */
body[data-view="explore"] .sw { left: calc(var(--wx) + var(--rail-w) + 10px); right: calc(var(--wx) + var(--guide-w) + 10px); }
.sw-shell { height: 100%; min-height: 0; display: grid; grid-template-columns: 272px minmax(0,1fr); gap: 10px; pointer-events: auto; }
.sw-nav, .sw-main { min-height: 0; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--sh-1); overflow: hidden; }
.sw-nav { display: flex; flex-direction: column; }
.sw-nav-head { padding: 14px 16px 8px; }
.sw-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0 12px 10px; padding: 3px; background: var(--tint); border-radius: 10px; }
.sw-mode button, .sw-view button, .sw-choice button { border: 0; background: transparent; color: var(--ink-2); font: inherit; cursor: pointer; }
.sw-mode button { padding: 7px 8px; border-radius: 8px; font-weight: 620; }
.sw-mode button.is-active, .sw-mode button[aria-selected="true"] { background: var(--paper); color: var(--accent-ink); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.sw-search { display: block; padding: 0 12px 10px; }
#sw-query { width: 100%; box-sizing: border-box; font: inherit; font-size: .94rem; padding: 9px 11px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--page); color: var(--ink); }
#sw-query:focus { border-color: var(--accent); outline: none; box-shadow: 0 0 0 3px var(--accent-soft); }
.sw-nav-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 12px 12px; }
.sw-block { padding: 11px 2px; border-top: 1px solid var(--line); }
.sw-block h3 { margin: 0 0 7px; font-size: .78rem; font-weight: 650; color: var(--ink-2); }
.sw-choice { display: flex; gap: 4px; flex-wrap: wrap; }
.sw-choice button { padding: 5px 8px; border-radius: 999px; font-size: var(--fs-meta); }
.sw-choice button[aria-pressed="true"], .sw-view button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent-ink); font-weight: 650; }
.sw-select-stack { display: block; }
.sw-select-stack select { width: 100%; box-sizing: border-box; padding: 7px 9px; }
.sw-adv { border-top: 1px solid var(--line); padding: 10px 2px; }
.sw-adv > summary { padding: 0; font-weight: 620; }
.sw-adv[open] > summary { background: transparent; }
.sw-adv-body { position: static; width: auto; padding: 9px 0 0; display: grid; gap: 9px; border: 0; box-shadow: none; background: transparent; }
.sw-check { display: flex; align-items: center; gap: 7px; color: var(--ink-2); font-size: var(--fs-meta); }
.sw-clear { margin: 8px 12px 12px; flex: none; }
.sw-main { display: flex; flex-direction: column; }
.sw-resultbar { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px; border-bottom: 1px solid var(--line); }
#sw-summary { flex: 1; margin: 0; padding: 0; }
.sw-view { display: inline-flex; gap: 2px; padding: 2px; background: var(--tint); border-radius: 9px; }
.sw-view button { padding: 5px 8px; border-radius: 7px; font-size: var(--fs-meta); }
.sw-sort select { min-width: 92px; }
.sw-results { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 10px 12px 16px; }
.ee-map-wrap { height: 100%; min-height: 420px; display: flex; flex-direction: column; }
.ee-map { width: 100%; min-height: 0; flex: 1; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--map-water, #dfe9e8); }
.ee-map-marker { cursor: pointer; color: var(--accent-ink); }
.ee-map-marker circle { fill: var(--paper); stroke: currentColor; stroke-width: .08; vector-effect: non-scaling-stroke; }
.ee-map-marker.is-selected circle { fill: var(--accent); stroke: var(--accent-ink); }
.ee-map-marker text { fill: var(--ink); stroke: var(--paper); stroke-width: .12; paint-order: stroke; font-family: var(--font-ui); font-weight: 600; pointer-events: none; }
.ee-map-note { margin: 7px 2px 0; }
.ee-map-empty { padding: 28px; text-align: center; }
.sw-detail-body { padding-top: 2px; }
.sw-detail-single { display: block; }
.sw-detail-single .detail-name { font-size: 2rem; font-weight: 720; line-height: 1.12; }
.sw-detail-single .d-sec { margin-bottom: 24px; }
.sw-detail-single .d-h { margin: 0 0 8px; font-size: .93rem; font-weight: 650; line-height: 1.35; }
.sw-detail-single .d-body,
.sw-detail-single .rs-list,
.sw-detail-single .vrows { font-size: .9rem; line-height: 1.58; }
.sw-detail-single .meta,
.sw-detail-single .d-sub,
.sw-detail-single .prov { font-size: .76rem; color: var(--ink-3); }
.sw-detail-map { padding: 16px; }
.sw-detail-map h3 { margin: 0 0 8px; font-size: 1.05rem; }
body[data-view="explore"] #side-pane { position: fixed; z-index: 8; top: calc(var(--hdr-h, 0px) + 8px); bottom: 8px; left: auto; right: var(--wx); width: var(--guide-w); height: auto; max-height: none; }
body[data-view="explore"] #side-pane .pane-title { font-size: .9rem; }
body[data-view="explore"] #side-pane #panel { min-height: 0; overflow-y: auto; }
body[data-view="explore"] #side-pane .d-back { display: none; }

@media (min-width: 1400px) {
  .sw-shell { grid-template-columns: 240px minmax(0,1fr); }
  .ee-set[data-view="card"] { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media (max-width: 1180px) {
  .sw-shell { grid-template-columns: 230px minmax(0,1fr); }
  body[data-view="explore"] .sw { left: calc(var(--wx) + var(--rail-w) + 8px); }
}
@media (max-width: 900px) {
  body[data-view="explore"] .sw { left: calc(var(--wx) + var(--rail-w) + 8px); right: 8px; }
  .sw-shell { grid-template-columns: 220px minmax(0,1fr); }
  body[data-view="explore"][data-panel="open"] .sw { right: 8px; bottom: 42vh; }
  body[data-view="explore"][data-panel="open"] #side-pane { left: calc(var(--wx) + var(--rail-w) + 8px); right: 8px; top: auto; bottom: 8px; width: auto; height: calc(42vh - 12px); }
}
@media (max-width: 760px) {
  .sw, body[data-view="explore"] .sw { top: calc(var(--hdr-h, 0px) + 54px); left: 8px; right: 8px; bottom: 8px; }
  .sw-shell { display: block; overflow-y: auto; }
  .sw-nav { min-height: auto; overflow: visible; margin-bottom: 8px; }
  .sw-nav-scroll { overflow: visible; }
  .sw-main { min-height: 62vh; }
  .sw-mode { margin-top: 2px; }
  .sw-block { padding: 8px 2px; }
  .sw-resultbar { position: sticky; top: 0; z-index: 3; background: var(--paper); flex-wrap: wrap; }
  #sw-summary { flex-basis: 100%; }
  .ee-map-wrap { min-height: 360px; }
  body[data-view="explore"][data-panel="open"] .sw { bottom: 46vh; }
  body[data-view="explore"][data-panel="open"] #side-pane { left: 8px; right: 8px; height: calc(46vh - 12px); }
}

/* 인물·장소 빠른 검색(인라인) */
.qs { position: relative; padding: 6px 16px; max-width: 520px; } .qs[hidden] { display: none; }
.qs-input { width: 100%; box-sizing: border-box; height: 34px; padding: 0 12px; border: 1px solid var(--line, rgba(128,120,108,.45)); border-radius: 10px; background: var(--paper, #fff); color: inherit; font: inherit; font-size: .88rem; }
.qs-list { position: absolute; left: 16px; right: 16px; top: 100%; z-index: 30; margin: 0; padding: 4px; list-style: none; background: var(--paper, #fff); border: 1px solid var(--line, rgba(128,120,108,.45)); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.14); }
.qs-row { display: flex; justify-content: space-between; gap: 10px; padding: 7px 10px; border-radius: 7px; cursor: pointer; font-size: .88rem; }
.qs-row.is-active, .qs-row:hover { background: var(--accent-soft); } .qs-sub { color: var(--ink-3); font-size: .74rem; } .qs-row.is-ext .qs-name { font-style: italic; } .qs-empty { padding: 8px 10px; color: var(--ink-3); font-size: .82rem; }

/* ===== Olive selection grammar + reading density patch v0.1 =====
   선택(카드·본문·필터·탭·현재 구절)은 하나의 올리브 문법: 아주 옅은 따뜻한 올리브 면 + 중간 올리브 테두리 + 진한 올리브 강조. 글자색은 그대로 읽히는 어두운 색. */
:root { --accent: #66742c; --accent-ink: #4b5a1f; --accent-soft: #eef0dd; --accent-line: #b9c18d; --on-accent: #fbfbf3;
  --teal-selection-bg: #eef0dd; --teal-selection-bar: #66742c; --teal-link-line: #b9c18d; --teal-nav-bg: #eef0dd; --teal-action: #66742c; --r-sel: 14px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --accent: #a8b469; --accent-ink: #c2cc88; --accent-soft: #2d311f; --accent-line: #5f6a3a; --on-accent: #1b1f10;
  --teal-selection-bg: #2d311f; --teal-selection-bar: #a8b469; --teal-link-line: #5f6a3a; --teal-nav-bg: #2d311f; --teal-action: #a8b469; } }
:root[data-theme="dark"] {
  --accent: #a8b469; --accent-ink: #c2cc88; --accent-soft: #2d311f; --accent-line: #5f6a3a; --on-accent: #1b1f10;
  --teal-selection-bg: #2d311f; --teal-selection-bar: #a8b469; --teal-link-line: #5f6a3a; --teal-nav-bg: #2d311f; --teal-action: #a8b469; }
.verse.sel { background: var(--teal-selection-bg); border-radius: var(--r-sel); }
.ee-card.is-selected, .ee-item:has(.ee-primary.is-selected) { border-color: var(--accent-line); background: var(--accent-soft); box-shadow: inset 0 0 0 0 transparent; }
.rail-btn[aria-current="page"], .qn-tab[aria-selected="true"] { background: var(--accent-soft); border-color: var(--accent-line); }
.rail-btn[aria-current="page"] { border-left-color: var(--accent); color: var(--accent-ink); }

/* 본문 선택기(참조 입력·책/장 선택·관련 본문·드롭다운): 같은 부드러운 둥근 모서리 */
#ref-input, .ref-form .btn, select, .map-settings-pop select, .set-row select, .sw-select select, .qn-btn, .qn-tabs, .qs-input, .qs-list { border-radius: var(--r-sel); }
#ref-input { background: color-mix(in srgb, var(--paper) 88%, #fffaf0); border-color: var(--line); padding-top: 5px; padding-bottom: 5px; }
.qn-tab { border-radius: 11px; }

/* 본문 독서 밀도: 글자 크기는 거의 유지하고 세로 간격·절 번호 간격만 줄여 한 화면에 더 많은 절을 둔다 */
#verses { font-size: 1.125rem; line-height: 1.72; }
.verse { padding: 3px 10px 3px 38px; margin: 0 -10px 1px -10px; }
.vnum { top: 5px; left: 8px; min-width: 24px; }
.verse.sel { padding-top: 8px; padding-bottom: 8px; margin-top: -5px; margin-bottom: -4px; }
@media (max-width: 760px) { .verse { padding-left: 34px; } }

/* ===== 헤더 한 줄 고정: 빠른 검색은 성경 참조 검색 바로 왼쪽 ===== */
.top { flex-wrap: nowrap; height: 56px; box-sizing: border-box; padding-top: 0; padding-bottom: 0; }
.top .qs { position: relative; flex: 0 1 320px; min-width: 220px; max-width: 380px; margin-left: auto; padding: 0; }
.top .qs + .ref-form { margin-left: 0; }
.top .qs[hidden] { display: block; visibility: hidden; pointer-events: none; }   /* 전체 검색 페이지에서는 숨기되 헤더 높이·배치는 바뀌지 않는다 */
.top .qs-list { left: 0; right: 0; top: calc(100% + 4px); }
@media (max-width: 760px) { .top .qs { flex: 1 1 0; min-width: 0; } .top { height: auto; min-height: 48px; } }

/* ===== 선택절 둥근 모서리 클리핑 수정: 배경·radius·왼쪽 바가 같은 요소에 있고, 스크롤 컨테이너 안쪽 여백으로 잘리지 않게 한다 ===== */
#verses { padding-left: 8px; padding-right: 8px; scroll-padding-top: 14px; scroll-padding-bottom: 14px; }
#verses .verse { margin-left: 0; margin-right: 0; scroll-margin-top: 14px; scroll-margin-bottom: 14px; }
#verses .verse.sel { border-radius: 14px; overflow: hidden; margin: 4px 0; padding-top: 5px; padding-bottom: 5px; background: var(--teal-selection-bg); }
#verses .verse.sel .vnum { color: var(--accent-ink); font-weight: 700; }


.full-place-profile .d-original{margin:.2rem 0 0;color:var(--muted);font-size:.9rem;letter-spacing:.01em}
.full-place-profile .d-story-block,.full-place-profile .d-significance-block,.full-place-profile .d-article-block,.full-place-profile .d-location-block{margin:0 0 1.1rem}
.full-place-profile .d-story-block .d-sub,.full-place-profile .d-significance-block .d-sub,.full-place-profile .d-article-block .d-sub,.full-place-profile .d-location-block .d-sub{margin:.1rem 0 .35rem}
.full-place-profile .inline-ref{border:0;background:transparent;padding:0 .08em;color:var(--accent-ink);font:inherit;font-weight:650;text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.16em;cursor:pointer}
.full-place-profile .inline-ref:hover{background:var(--accent-soft)}
.full-place-profile .d-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:-.4rem 0 1.75rem}
.full-place-profile .d-thumb{border:0;background:transparent;padding:0;text-align:left;cursor:pointer;min-width:0}
.full-place-profile .d-thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:.35rem}
.full-place-profile .d-thumb span{display:block;margin-top:.3rem;font-size:.72rem;line-height:1.35;color:var(--muted)}
.full-place-profile .reader-list{margin:.35rem 0 1rem;padding-left:1.2rem}
.full-place-profile .reader-list li{margin:.35rem 0;line-height:1.55}
.full-place-profile .reader-more{margin-top:.7rem}
.full-place-profile .reader-more>summary{cursor:pointer;font-weight:650;color:var(--accent-ink)}
.full-place-profile .reader-more[open]>summary{margin-bottom:.7rem}
.full-place-profile .d-map-action{border:1px solid var(--line);background:transparent;border-radius:999px;padding:.45rem .8rem;font:inherit;font-size:.82rem;cursor:pointer;margin:.3rem 0 .7rem}
.full-place-profile .d-caution{margin-top:.9rem;padding-left:.75rem;border-left:2px solid var(--line);font-size:.82rem;line-height:1.55;color:var(--muted)}
.full-place-profile .full-ref-list{margin-top:.55rem}
@media(max-width:560px){.full-place-profile .d-gallery{grid-template-columns:1fr}}


/* ===== Beersheba Full Place Profile visual polish — Captain review 2026-10-04 ===== */
/* Full profile에서는 상단의 일반 '상세' 라벨을 제거하고 본문 개요부터 바로 시작한다. 접기 버튼만 우상단에 남긴다. */
#side-pane:has(.full-place-profile) .pane-bar{
  position:absolute; z-index:5; top:8px; right:8px; left:auto;
  width:auto; min-height:0; padding:0; border:0; background:transparent;
  pointer-events:none;
}
#side-pane:has(.full-place-profile) .pane-title{display:none}
#side-pane:has(.full-place-profile) #panel-toggle{
  pointer-events:auto; margin:0; padding:5px 9px;
  background:color-mix(in srgb,var(--paper) 94%,transparent);
  border:1px solid var(--line); border-radius:9px;
}
#side-pane:has(.full-place-profile) #panel{padding-top:18px}

/* 보조 사진은 원본 비율과 무관하게 같은 높이의 편집 그리드로 보인다. */
.full-place-profile .d-gallery{align-items:start}
.full-place-profile .d-thumb img{
  width:100%; height:108px; aspect-ratio:auto; object-fit:cover;
  border-radius:.45rem;
}

/* 작은 본문 소제목은 종이 위 형광펜처럼 표시하여 대제목-소제목-본문 위계를 분명히 한다. */
.full-place-profile .d-story-block .d-sub,
.full-place-profile .d-significance-block .d-sub,
.full-place-profile .d-article-block .d-sub,
.full-place-profile .d-location-block .d-sub{
  display:inline;
  margin:0;
  padding:0 .16em .04em;
  font-size:.84rem;
  font-weight:720;
  line-height:1.7;
  color:var(--ink);
  background:linear-gradient(
    to bottom,
    transparent 42%,
    rgba(239,210,77,.34) 42%,
    rgba(239,210,77,.34) 91%,
    transparent 91%
  );
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.full-place-profile .d-story-block .d-sub + .d-body,
.full-place-profile .d-significance-block .d-sub + .d-body,
.full-place-profile .d-article-block .d-sub + .d-body,
.full-place-profile .d-location-block .d-sub + .d-body{
  margin-top:.45rem;
}

@media(max-width:560px){
  .full-place-profile .d-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .full-place-profile .d-thumb img{height:104px}
}

.full-place-profile .inline-ref-group{display:inline-block;white-space:nowrap}


/* ===== Full Place Profile compact sticky identity header ===== */
.full-place-profile .place-sticky-head{
  position:sticky;
  top:0;
  z-index:4;
  margin:0 -22px 18px;
  padding:8px 22px 9px;
  background:color-mix(in srgb,var(--paper) 97%,transparent);
  border-bottom:1px solid var(--line);
  box-shadow:0 5px 10px rgba(55,48,35,.035);
  backdrop-filter:blur(5px);
}
.full-place-profile .place-sticky-head .d-back{
  margin:0 0 3px;
  padding:0;
  font-size:.73rem;
  line-height:1.2;
}
.full-place-profile .place-sticky-head .d-identity{margin:0}
.full-place-profile .place-title-line{
  display:flex;
  align-items:baseline;
  gap:8px;
  min-width:0;
}
.full-place-profile .place-sticky-head .detail-name{
  font-size:1.42rem;
  line-height:1.1;
  white-space:nowrap;
}
.full-place-profile .place-sticky-head .d-en{
  margin:0;
  font-size:.8rem;
  color:var(--ink-3);
  white-space:nowrap;
}
.full-place-profile .place-meta-line{
  margin:3px 0 0;
  font-size:.76rem;
  line-height:1.35;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.full-place-profile .place-meta-line .d-original,
.full-place-profile .place-meta-line .d-kind{
  margin:0;
  font-size:inherit;
  color:inherit;
}
.full-place-profile .place-sticky-head .deep-study-action{display:none}

@media(max-width:760px){
  .full-place-profile .place-sticky-head{
    margin:0 -16px 16px;
    padding:7px 16px 8px;
  }
  .full-place-profile .place-sticky-head .detail-name{font-size:1.28rem}
  .full-place-profile .place-title-line{gap:7px}
  .full-place-profile .place-meta-line{font-size:.72rem}
}


/* ===== Place detail: fixed identity header outside the scroll container ===== */
#side-pane .panel-stack{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#place-fixed-head{
  flex:none;
  position:relative;
  z-index:4;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
#place-fixed-head[hidden]{display:none}
#place-fixed-head .place-sticky-head{
  position:static;
  margin:0;
  padding:8px 22px 9px;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  background:var(--paper);
}
#side-pane .panel-stack > #panel{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
}
/* 헤더가 바깥으로 빠졌으므로 본문은 자체 시작 여백만 가진다. */
#side-pane #panel:has(.full-place-profile){
  padding-top:14px;
}
/* 이전 sticky 규칙을 외부 고정 헤더에서는 무효화한다. */
#place-fixed-head .place-sticky-head .d-identity{margin:0}

@media(max-width:760px){
  #place-fixed-head .place-sticky-head{padding:7px 16px 8px}
}

#place-fixed-head .d-deep-study{display:none}


/* ===== Compact fixed Place header: restore hierarchy after moving outside #panel ===== */
#place-fixed-head .place-sticky-head{
  padding:6px 72px 7px 16px;
}
#place-fixed-head .d-back{
  display:block;
  margin:0 0 3px;
  padding:0;
  font-size:.68rem;
  line-height:1.15;
  font-weight:600;
}
#place-fixed-head .d-identity{
  margin:0;
  padding:0;
}
#place-fixed-head .place-title-line{
  display:flex;
  align-items:baseline;
  gap:7px;
  min-width:0;
  margin:0;
}
#place-fixed-head .detail-name{
  margin:0;
  padding:0;
  font-size:1.48rem;
  line-height:1.06;
  font-weight:760;
  letter-spacing:-.035em;
  color:var(--ink);
  white-space:nowrap;
}
#place-fixed-head .d-en{
  display:inline;
  margin:0;
  padding:0;
  font-size:.74rem;
  line-height:1;
  font-weight:500;
  color:var(--ink-3);
  white-space:nowrap;
}
#place-fixed-head .place-meta-line{
  display:block;
  margin:3px 0 0;
  padding:0;
  font-size:.68rem;
  line-height:1.22;
  color:var(--ink-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#place-fixed-head .place-meta-line .d-original,
#place-fixed-head .place-meta-line .d-kind{
  display:inline;
  margin:0;
  padding:0;
  font-size:inherit;
  line-height:inherit;
  color:inherit;
}
#place-fixed-head .place-meta-sep{color:var(--ink-4)}

@media(min-width:761px){
  #place-fixed-head .place-sticky-head{padding-left:18px;padding-bottom:8px}
  #place-fixed-head .detail-name{font-size:1.52rem}
}

/* ===== Fixed Place header readability tuning — 3-line rhythm only ===== */
#place-fixed-head .place-sticky-head{
  padding-top:8px;
  padding-bottom:10px;
}
#place-fixed-head .d-back{
  margin-bottom:5px;
  font-size:.74rem;
  line-height:1.22;
}
#place-fixed-head .detail-name{
  font-size:1.58rem;
  line-height:1.08;
}
#place-fixed-head .d-en{
  font-size:.80rem;
  line-height:1.1;
}
#place-fixed-head .place-meta-line{
  margin-top:5px;
  font-size:.74rem;
  line-height:1.32;
}
@media(max-width:760px){
  #place-fixed-head .place-sticky-head{
    padding-top:7px;
    padding-bottom:9px;
  }
  #place-fixed-head .detail-name{font-size:1.48rem}
  #place-fixed-head .d-en{font-size:.77rem}
  #place-fixed-head .d-back,
  #place-fixed-head .place-meta-line{font-size:.71rem}
}


/* ===== Common fixed Entity header — Place + Person ===== */
#place-fixed-head .entity-sticky-head{
  padding:8px 72px 10px 18px;
}
#place-fixed-head .entity-sticky-head .d-back{
  display:block;
  margin:0 0 7px;
  padding:0;
  font-size:.74rem;
  line-height:1.22;
  font-weight:600;
}
#place-fixed-head .entity-sticky-head .d-identity{
  margin:0;
  padding:0;
}
#place-fixed-head .entity-title-line{
  display:flex;
  align-items:baseline;
  gap:7px;
  min-width:0;
  margin:0;
}
#place-fixed-head .entity-title-line .detail-name{
  margin:0;
  padding:0;
  font-size:1.58rem;
  line-height:1.08;
  font-weight:760;
  letter-spacing:-.035em;
  color:var(--ink);
  white-space:nowrap;
}
#place-fixed-head .entity-title-line .d-en{
  display:inline;
  margin:0;
  padding:0;
  font-size:.80rem;
  line-height:1.1;
  font-weight:500;
  color:var(--ink-3);
  white-space:nowrap;
}
#place-fixed-head .entity-meta-line{
  display:block;
  margin:5px 0 0;
  padding:0;
  font-size:.74rem;
  line-height:1.32;
  color:var(--ink-3);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#place-fixed-head .entity-meta-line .d-original,
#place-fixed-head .entity-meta-line .d-kind{
  display:inline;
  margin:0;
  padding:0;
  font-size:inherit;
  line-height:inherit;
  color:inherit;
}
#place-fixed-head .entity-meta-sep{color:var(--ink-4)}
#place-fixed-head .entity-sticky-head .d-deep-study{display:none}

@media(max-width:760px){
  #place-fixed-head .entity-sticky-head{
    padding:7px 64px 9px 16px;
  }
  #place-fixed-head .entity-sticky-head .d-back{
    margin-bottom:6px;
    font-size:.71rem;
  }
  #place-fixed-head .entity-title-line .detail-name{font-size:1.48rem}
  #place-fixed-head .entity-title-line .d-en{font-size:.77rem}
  #place-fixed-head .entity-meta-line{font-size:.71rem}
}


/* ===== Common Place/Person detail chrome ===== */
#side-pane.has-entity-fixed-head .pane-bar{
  position:absolute;
  z-index:6;
  top:8px;
  right:8px;
  left:auto;
  width:auto;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  pointer-events:none;
}
#side-pane.has-entity-fixed-head .pane-title{display:none}
#side-pane.has-entity-fixed-head #panel-toggle{
  pointer-events:auto;
  margin:0;
  padding:5px 9px;
  background:color-mix(in srgb,var(--paper) 94%,transparent);
  border:1px solid var(--line);
  border-radius:9px;
}


/* ===== Two-tier fixed Entity header: utility bar + identity ===== */
#side-pane.has-entity-fixed-head .pane-bar{
  position:relative;
  z-index:6;
  top:auto;
  right:auto;
  left:auto;
  width:auto;
  min-height:38px;
  padding:6px 10px 6px 14px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
#side-pane.has-entity-fixed-head .pane-title{
  display:flex;
  align-items:center;
  min-width:0;
  gap:8px;
  margin:0;
  font-size:.74rem;
  line-height:1.2;
  font-weight:600;
}
#side-pane.has-entity-fixed-head .entity-top-action{
  border:0;
  background:transparent;
  padding:0;
  color:var(--accent-ink);
  font:inherit;
  font-weight:650;
  cursor:pointer;
  white-space:nowrap;
}
#side-pane.has-entity-fixed-head .entity-top-action:hover{text-decoration:underline}
#side-pane.has-entity-fixed-head .entity-top-kind{
  color:var(--ink-3);
  font-size:.70rem;
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#side-pane.has-entity-fixed-head #panel-toggle{
  position:static;
  pointer-events:auto;
  margin:0;
  padding:5px 9px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:9px;
  flex:none;
}

/* title block now gets breathing room below the utility bar */
#place-fixed-head .entity-sticky-head{
  padding:11px 72px 9px 18px;
}
#place-fixed-head .entity-title-line{
  margin:0;
}
#place-fixed-head .entity-meta-line{
  margin-top:5px;
}
#place-fixed-head .entity-sticky-head .d-back{display:none!important}

@media(max-width:760px){
  #side-pane.has-entity-fixed-head .pane-bar{
    min-height:36px;
    padding:5px 8px 5px 12px;
  }
  #side-pane.has-entity-fixed-head .entity-top-kind{font-size:.68rem}
  #place-fixed-head .entity-sticky-head{
    padding:10px 64px 8px 16px;
  }
}


/* ===== Entity top utility bar: short type left, twin actions right ===== */
#side-pane.has-entity-fixed-head .pane-bar{
  justify-content:flex-start;
  gap:6px;
}
#side-pane.has-entity-fixed-head .pane-title{
  margin-right:auto;
  color:var(--ink-2);
  font-size:.74rem;
  font-weight:650;
}
#side-pane.has-entity-fixed-head .entity-top-action-button,
#side-pane.has-entity-fixed-head #panel-toggle{
  margin:0;
  padding:5px 9px;
  min-height:30px;
  border:1px solid var(--line);
  border-radius:9px;
  background:transparent;
  color:var(--ink);
  font-size:.74rem;
  line-height:1.1;
  font-weight:500;
  white-space:nowrap;
}
#side-pane.has-entity-fixed-head .entity-top-action-button:hover,
#side-pane.has-entity-fixed-head #panel-toggle:hover{
  border-color:var(--accent-line);
  background:var(--accent-soft);
}


/* ===== Passage research flow ===== */
#side-pane .research-return-button{
  border:0;
  background:transparent;
  padding:0;
  margin:0 6px 0 0;
  color:var(--accent-ink);
  font:inherit;
  font-size:.72rem;
  font-weight:650;
  cursor:pointer;
  white-space:nowrap;
}
#side-pane .research-return-button:hover{text-decoration:underline}


/* ===== Passage research header: stable title + symmetric right actions ===== */
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  display:flex;
  align-items:center;
  gap:6px;
}
#side-pane:not(.has-entity-fixed-head) .pane-title{
  margin-right:auto;
  white-space:nowrap;
}
#side-pane:not(.has-entity-fixed-head) .research-return-button,
#side-pane:not(.has-entity-fixed-head) #panel-toggle{
  margin:0;
  padding:5px 9px;
  min-height:30px;
  border:1px solid var(--line);
  border-radius:9px;
  background:transparent;
  color:var(--ink);
  font-size:.74rem;
  line-height:1.1;
  font-weight:500;
  white-space:nowrap;
}
#side-pane:not(.has-entity-fixed-head) .research-return-button:hover,
#side-pane:not(.has-entity-fixed-head) #panel-toggle:hover{
  border-color:var(--accent-line);
  background:var(--accent-soft);
}


/* ===== Stable passage-research header action alignment ===== */
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  column-gap:6px;
}
#side-pane:not(.has-entity-fixed-head) .pane-title{
  grid-column:1;
  min-width:0;
  margin:0;
}
#side-pane:not(.has-entity-fixed-head) .research-return-button{
  grid-column:2;
  justify-self:end;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
}
#side-pane:not(.has-entity-fixed-head) #panel-toggle{
  grid-column:3;
  justify-self:end;
}


/* ===== Research header hard alignment: collapse stays fixed regardless of return-label length ===== */
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  position:relative;
  display:block;
  min-height:42px;
  padding:6px 112px 6px 14px;
}
#side-pane:not(.has-entity-fixed-head) .pane-title{
  margin:0;
  line-height:30px;
  white-space:nowrap;
}
#side-pane:not(.has-entity-fixed-head) #panel-toggle{
  position:absolute;
  right:10px;
  top:6px;
  width:44px;
  height:30px;
  margin:0;
}
#side-pane:not(.has-entity-fixed-head) .research-return-button{
  position:absolute;
  right:60px;
  top:6px;
  height:30px;
  margin:0;
  max-width:160px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* ===== Keep Passage Research fixed region equal to Entity fixed region ===== */
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  box-sizing:border-box;
  height:var(--research-fixed-height,110px);
  min-height:var(--research-fixed-height,110px);
}


/* ===== First-tier fixed bar height parity only ===== */
#side-pane .pane-bar{
  box-sizing:border-box;
}
#side-pane.has-entity-fixed-head .pane-bar,
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  height:45px;
  min-height:45px;
}
#side-pane:not(.has-entity-fixed-head) .pane-bar{
  padding-top:6px;
  padding-bottom:6px;
}


/* ===== Desert theme v1.0 — 사막 토양색 선택 문법 (올리브 계열 대체) =====
   P1: 토큰 분리 · 단어(.tag) 하이라이트 · 구절(.verse.sel) 하이라이트 · 지도 선택 핀 · light/dark parity.
   기존 의미 토큰(--accent*, --teal-*)을 같은 이름으로 재정의해, 선택/활성 상태를 쓰는 모든 규칙이 한 번에 사막색으로 바뀐다. */
:root {
  --page: #F3EEE6; --paper: #F8F4EE; --tint: #EFE8DD; --card: #FCFAF6;   /* app / panel / hover / raised card */
  --ink: #3A3129; --ink-2: #5C5248; --ink-3: #81766A;
  --line: #E2D6C7; --line-strong: #D3C3AE;
  --accent-sand: #DDA765; --accent-clay: #C98D4B; --accent-stone: #C9B29A; --accent-limestone: #E8D8C4;
  --highlight-word-bg: #E9D5BE; --highlight-word-text: #5C4330; --highlight-word-border: #C98A58;
  --highlight-verse-bg: #F8ECDB; --highlight-verse-border: #D7A467; --highlight-verse-shadow: rgba(180, 128, 76, .08);
  --highlight-verse-glow: transparent; --vnum-active: #B06F26; --verse-dim-op: .78;
  --map-pin: #C9854A; --map-pin-ring: rgba(201, 133, 74, .20);
  --focus-ring: rgba(199, 136, 87, .35);
  --nav-active-bg: rgba(212, 160, 106, .10); --nav-active-line: var(--accent-clay);
  --accent: #C78857; --accent-ink: #7A4E2A; --accent-soft: #F2E3D3; --accent-line: #D6A273; --on-accent: #FFFaf2;
  --teal-selection-bg: #F8ECDB; --teal-selection-bar: #D7A467; --teal-link-line: #D6A273; --teal-nav-bg: rgba(212, 160, 106, .10); --teal-action: #C78857;
  --split-line: #E4D7C8; --split-line-hover: #D6A273; --split-line-active: #C78857;
  --ico: #6B6258; --ico-sel: #7A4E2A; --ico-sel-bg: rgba(212, 160, 106, .14); --ico-brand: #8B6E56;
  --warn-bg: #F6E8CF; --warn-ink: #7A4B00;
  --sh-1: 0 1px 2px rgba(90, 60, 30, .07); --sh-2: 0 8px 28px rgba(90, 60, 30, .13);
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --page: #12100E; --paper: #1B1714; --tint: #231D19;
  --ink: #F2E9DE; --ink-2: #CBBEAF; --ink-3: #9F9183;
  --line: #352C26; --line-strong: #5B4839;
  --accent-sand: #D39A61; --accent-clay: #BE7B47; --accent-stone: #8B6E56; --accent-limestone: #E7CFB7;
  --highlight-word-bg: rgba(201, 136, 88, .22); --highlight-word-text: #F6E7D6; --highlight-word-border: #D3965E;
  --highlight-verse-bg: rgba(190, 123, 71, .18); --highlight-verse-border: #D3965E; --highlight-verse-shadow: transparent;
  --highlight-verse-glow: rgba(211, 150, 94, .18);
  --map-pin: #D89B5C; --map-pin-ring: rgba(216, 155, 92, .22);
  --focus-ring: rgba(216, 155, 92, .38);
  --nav-active-bg: rgba(211, 154, 97, .12); --nav-active-line: rgba(211, 154, 97, .35);
  --accent: #D39A61; --accent-ink: #E7CFB7; --accent-soft: rgba(190, 123, 71, .18); --accent-line: #7A5A40; --on-accent: #1B1714;
  --teal-selection-bg: rgba(190, 123, 71, .18); --teal-selection-bar: #D3965E; --teal-link-line: #7A5A40; --teal-nav-bg: rgba(211, 154, 97, .12); --teal-action: #D39A61;
  --split-line: #352C26; --split-line-hover: #7A5A40; --split-line-active: #D3965E;
  --ico: #CBBEAF; --ico-sel: #E7CFB7; --ico-sel-bg: rgba(211, 154, 97, .14); --ico-brand: #B49A82;
  --warn-bg: #3a2c18; --warn-ink: #F0C987;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .4); --sh-2: 0 8px 28px rgba(0, 0, 0, .55);
} }
:root[data-theme="dark"] {
  --page: #12100E; --paper: #1B1714; --tint: #231D19;
  --ink: #F2E9DE; --ink-2: #CBBEAF; --ink-3: #9F9183;
  --line: #352C26; --line-strong: #5B4839;
  --accent-sand: #D39A61; --accent-clay: #BE7B47; --accent-stone: #8B6E56; --accent-limestone: #E7CFB7;
  --highlight-word-bg: rgba(201, 136, 88, .22); --highlight-word-text: #F6E7D6; --highlight-word-border: #D3965E;
  --highlight-verse-bg: rgba(190, 123, 71, .18); --highlight-verse-border: #D3965E; --highlight-verse-shadow: transparent;
  --highlight-verse-glow: rgba(211, 150, 94, .18);
  --map-pin: #D89B5C; --map-pin-ring: rgba(216, 155, 92, .22);
  --focus-ring: rgba(216, 155, 92, .38);
  --nav-active-bg: rgba(211, 154, 97, .12); --nav-active-line: rgba(211, 154, 97, .35);
  --accent: #D39A61; --accent-ink: #E7CFB7; --accent-soft: rgba(190, 123, 71, .18); --accent-line: #7A5A40; --on-accent: #1B1714;
  --teal-selection-bg: rgba(190, 123, 71, .18); --teal-selection-bar: #D3965E; --teal-link-line: #7A5A40; --teal-nav-bg: rgba(211, 154, 97, .12); --teal-action: #D39A61;
  --split-line: #352C26; --split-line-hover: #7A5A40; --split-line-active: #D3965E;
  --ico: #CBBEAF; --ico-sel: #E7CFB7; --ico-sel-bg: rgba(211, 154, 97, .14); --ico-brand: #B49A82;
  --warn-bg: #3a2c18; --warn-ink: #F0C987;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .4); --sh-2: 0 8px 28px rgba(0, 0, 0, .55);
}

/* 단어/지명 선택: 좁은 인라인 칩(배경 + 보더로 색에만 의존하지 않음). 구절 블록보다 강해 보이지 않게 작게. */
.tag { border-radius: 6px; padding: 0 2px; border-bottom: 1.5px solid var(--accent-line); transition: background .16s ease-out, border-color .16s ease-out, box-shadow .16s ease-out; }
.tag:hover { background: color-mix(in srgb, var(--highlight-word-bg) 55%, transparent); border-bottom-color: var(--highlight-word-border); }
.tag.active, .tag.active:hover {
  display: inline-block; padding: 0 4px; margin: 0 -2px; vertical-align: baseline;
  background: var(--highlight-word-bg); color: var(--highlight-word-text);
  border: 1px solid var(--highlight-word-border); border-radius: 6px;
}
:root[data-theme="dark"] .tag.active { box-shadow: 0 0 8px -1px var(--highlight-verse-glow); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .tag.active { box-shadow: 0 0 8px -1px var(--highlight-verse-glow); } }
.tag:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }

/* 구절 선택: 넓은 블록 + 좌측 라인. 단어 선택이 그 위에서 한 단계 더 좁게 보인다. */
#verses .verse.sel, .verse.sel {
  background: var(--highlight-verse-bg);
  border: 1px solid color-mix(in srgb, var(--highlight-verse-border) 35%, transparent);
  box-shadow: 0 1px 6px var(--highlight-verse-shadow), 0 0 14px var(--highlight-verse-glow);
}
.verse:hover { background: color-mix(in srgb, var(--highlight-verse-bg) 55%, transparent); }
.verse:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }
#verses .verse.sel .vnum, .verse.sel .vnum { color: var(--accent-ink); font-weight: 700; }
.vnum { color: var(--ink-3); }

/* 네비게이션 active: 옅은 배경 + 얇은 선 + 텍스트 강조 (채우지 않는다) */
.rail-btn[aria-current="page"], #rail .rail-btn[aria-current="page"] { background: var(--nav-active-bg); color: var(--ink); border-color: transparent; border-left-color: var(--nav-active-line); }
.qn-tab[aria-selected="true"], .ctx-structure li[aria-current="true"], .g-step[aria-current="step"] { background: var(--nav-active-bg); color: var(--ink); }
.item.active, .ee-card.is-selected, .ee-item:has(.ee-primary.is-selected) { background: var(--nav-active-bg); border-color: var(--accent-line); box-shadow: inset 2px 0 0 var(--nav-active-line); }
.rail-btn:focus-visible, .qn-tab:focus-visible, .pin:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }

/* 지도 선택 포인트: 중심점 + 외곽 링, 라이트/다크 같은 사막색 계열 */
.pin .halo { fill: var(--map-pin-ring); stroke: var(--map-pin); }
.pin .dot { fill: var(--map-pin); }
.pin.active .dot { stroke: var(--paper); }
.gm-site .gm-shape { fill: var(--accent-soft); stroke: var(--map-pin); } .gm-site .gm-ring { stroke: var(--map-pin); }
.gm-site.active .gm-shape, .gm-uncertain .gm-shape { fill: var(--map-pin); }
.ee-map-marker.is-selected circle { fill: var(--map-pin); stroke: var(--accent-ink); }

/* 본문 읽기 우선: 선택 단어가 아닌 일반 검색 mark 도 본문보다 튀지 않게 */
mark { background: var(--highlight-word-bg); color: var(--highlight-word-text); font-weight: 600; }
::selection { background: var(--highlight-word-bg); color: var(--ink); }


/* ===== Verse selection v1.1 — bracket-style left frame + single/range/discrete 선택 =====
   독립 세로선 제거. 선택 박스의 좌측 외곽을 ┌ │ └ 로 감싸는 프레임(::before)이 박스와 한 몸으로 보인다.
   클래스: verse-selected + (single | range-start | range-middle | range-end). 떨어진 개별 선택(discrete)은 각각 single. */
#verses .verse.verse-selected, .verse.verse-selected {
  position: relative; overflow: visible; margin: 4px 0; padding-top: 5px; padding-bottom: 5px;
  background: var(--highlight-verse-bg); border: 1px solid color-mix(in srgb, var(--highlight-verse-border) 35%, transparent); border-radius: 14px;
}
#verses .verse.verse-range-start { border-radius: 14px 14px 0 0; border-bottom-color: transparent; margin-bottom: 0; }
#verses .verse.verse-range-middle { border-radius: 0; border-top-color: transparent; border-bottom-color: transparent; margin-top: 0; margin-bottom: 0; }
#verses .verse.verse-range-end { border-radius: 0 0 14px 14px; border-top-color: transparent; margin-top: 0; }
.verse.verse-selected .vnum { color: var(--accent-ink); font-weight: 700; }

/* 모바일 다중 선택 action bar */
.verse-bar { position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 40; display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--paper); border: 1px solid var(--line-strong); border-radius: 14px; box-shadow: var(--sh-2); font-size: .84rem; color: var(--ink); }
.verse-bar[hidden] { display: none; }
.verse-bar .vb-count { font-weight: 650; margin-right: 4px; }
.verse-bar button { border: 1px solid var(--accent-line); background: var(--highlight-verse-bg); color: var(--ink); border-radius: 10px; padding: 5px 12px; font: inherit; cursor: pointer; }
.verse-bar button:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; }
#verses .verse { -webkit-touch-callout: none; }
#verses > :not(.verse) { -webkit-user-select:none; user-select:none; }


/* ===== Shared map / Scripture annotation toolbar ===== */
.ann-tools > button[hidden] { display: none !important; }
body[data-ann-surface="scripture"] #verses { cursor: text; }
body[data-ann-surface="scripture"] .ann-tools { border-color: color-mix(in srgb, var(--accent) 42%, var(--line)); }


body[data-ann-surface="scripture"] .ann-tools [data-ann-tool="pen"] .ico { display:none; }
body[data-ann-surface="scripture"] .ann-tools [data-ann-tool="pen"]::before {
  content:"U";
  font:700 15px/1 var(--font-ui);
  text-decoration:underline;
  text-underline-offset:3px;
}


/* ===== Multi-note overlap cards ===== */
.note-cards { display:flex; flex-direction:column; gap:7px; margin:0 0 14px; }
.note-card { border-bottom:1px solid var(--line); padding:0 0 6px; }
.note-card > summary { cursor:pointer; list-style:none; padding:7px 2px; font-weight:620; color:var(--accent-ink); }
.note-card > summary::-webkit-details-marker { display:none; }
.note-card > summary::before { content:"▸"; display:inline-block; width:1.1em; color:var(--ink-3); }
.note-card[open] > summary::before { content:"▾"; }
.note-card-body { padding:5px 4px 10px 1.1em; line-height:1.65; white-space:normal; color:var(--ink-2); }
.note-new { margin-top:10px; padding-top:8px; }
.note-new .scope { margin-bottom:7px; }

/* ===== 인물·장소·본문 통합 검색 ===== */
.qs-main { position:relative; width:100%; }
.qs-text-nav { position:absolute; right:5px; top:50%; transform:translateY(-50%); display:inline-flex; align-items:center; gap:2px; height:26px; padding-left:5px; background:color-mix(in srgb,var(--paper) 92%,transparent); border-left:1px solid var(--line); border-radius:7px; }
.qs-text-nav[hidden] { display:none !important; }
.qs-text-nav button { width:22px; height:22px; padding:0; border:0; border-radius:5px; background:transparent; color:var(--accent-ink); font-size:.62rem; line-height:1; cursor:pointer; }
.qs-text-nav button:hover { background:var(--accent-soft); }
#qs-text-count { min-width:34px; text-align:center; font-size:.72rem; color:var(--ink-2); font-variant-numeric:tabular-nums; }
.qs-main:has(.qs-text-nav:not([hidden])) .qs-input { padding-right:88px; }
.qs-text-summary { color:var(--accent-ink); border-top:1px solid var(--line); margin-top:2px; }


.note-title-input {
  width:100%;
  box-sizing:border-box;
  margin:0 0 8px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  color:inherit;
  font:inherit;
}
.note-card-actions { display:flex; justify-content:flex-end; margin-top:10px; }
.note-delete { font-size:.78rem; padding:5px 9px; }


.note-card-actions { gap:6px; }
.note-card-editor { margin-top:2px; }
.note-card-editor[hidden] { display:none !important; }
.note-edit-label { display:block; margin:0 0 9px; font-size:.78rem; font-weight:620; color:var(--ink-2); }
.note-edit-title,
.note-edit-text {
  width:100%;
  box-sizing:border-box;
  margin-top:5px;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--paper);
  color:inherit;
  font:inherit;
}
.note-edit-text { min-height:110px; resize:vertical; line-height:1.55; }
.note-edit-text[aria-invalid="true"] { border-color:#b42318; }
.note-edit-scope { margin:2px 0 10px; font-size:.74rem; color:var(--ink-3); }


.note-sort-row {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  margin:0 0 8px;
  min-height:28px;
}
.note-sort-label { font-size:.72rem; color:var(--ink-3); }
.note-sort-select {
  height:28px;
  padding:0 24px 0 8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper);
  color:var(--ink-2);
  font:inherit;
  font-size:.75rem;
}


/* ===== Chapter-scoped note list with active verse overlap ===== */
.note-chapter-hint {
  margin:0 0 7px;
  font-size:.72rem;
  color:var(--ink-3);
}
.note-card.is-active-overlap {
  border-left:3px solid var(--accent);
  padding-left:8px;
  background:color-mix(in srgb,var(--accent-soft) 42%, transparent);
  border-radius:8px;
}
.note-card > summary {
  display:flex;
  align-items:center;
  gap:7px;
}
.note-card-label { min-width:0; flex:1; }
.note-overlap-badge {
  flex:0 0 auto;
  padding:2px 6px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent-ink);
  font-size:.66rem;
  font-weight:700;
}


/* ===== Common Place / Person panel refinement v1 =====
   Shared visual contract only: no research semantics, authority, or projection changes. */
#side-pane.has-entity-fixed-head .pane-bar{
  height:45px;
  min-height:45px;
  padding:6px 10px 6px 14px;
}
#place-fixed-head .entity-sticky-head{
  padding-top:13px;
  padding-bottom:11px;
}
#place-fixed-head .entity-title-line{
  gap:8px;
}
#place-fixed-head .entity-title-line .detail-name{
  font-size:1.60rem;
  line-height:1.10;
  letter-spacing:-.032em;
}
#place-fixed-head .entity-title-line .d-en{
  font-size:.81rem;
  line-height:1.15;
}
#place-fixed-head .entity-meta-line{
  margin-top:6px;
  font-size:.74rem;
  line-height:1.36;
}
#side-pane.has-entity-fixed-head #panel{
  scroll-padding-top:12px;
}
#side-pane.has-entity-fixed-head #panel > article.detail,
#side-pane.has-entity-fixed-head #panel > .sw-detail-body{
  padding-top:2px;
}

/* Reader hierarchy: small semantic subheads use a restrained highlighter treatment. */
#side-pane article.detail[data-detail="l"] h5.d-sub,
#side-pane article.detail[data-detail="p"] h5.d-sub{
  display:inline;
  margin:0;
  padding:0 .16em .04em;
  font-size:.86rem;
  font-weight:720;
  line-height:1.72;
  color:var(--ink);
  background:linear-gradient(
    to bottom,
    transparent 43%,
    rgba(239,210,77,.32) 43%,
    rgba(239,210,77,.32) 91%,
    transparent 91%
  );
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
#side-pane article.detail[data-detail="l"] h5.d-sub + .d-body,
#side-pane article.detail[data-detail="p"] h5.d-sub + .d-body,
#side-pane article.detail[data-detail="l"] h5.d-sub + .rs-list,
#side-pane article.detail[data-detail="p"] h5.d-sub + .rs-list{
  margin-top:.48rem;
}

/* Full-profile gallery: equal visual height regardless of source image ratio. */
.full-place-profile .d-gallery{
  align-items:stretch;
}
.full-place-profile .d-thumb{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
}
.full-place-profile .d-thumb img{
  width:100%;
  height:118px;
  object-fit:cover;
  object-position:center;
  flex:none;
}
.full-place-profile .d-thumb span{
  flex:1 1 auto;
  display:block;
  line-height:1.45;
}

/* Small-screen parity without letting the fixed identity block become bulky. */
@media(max-width:760px){
  #place-fixed-head .entity-sticky-head{
    padding-top:10px;
    padding-bottom:10px;
  }
  #place-fixed-head .entity-title-line .detail-name{font-size:1.50rem}
  #place-fixed-head .entity-title-line .d-en{font-size:.78rem}
  #place-fixed-head .entity-meta-line{margin-top:5px;font-size:.71rem}
  .full-place-profile .d-thumb img{height:106px}
}


/* ===== Common Place / Person panel refinement v2 =====
   Keep identity geometry stable even when a Person has fewer metadata lines. */
#place-fixed-head .entity-sticky-head{
  box-sizing:border-box;
  min-height:68px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
#side-pane article.detail[data-detail="l"] > .d-sec,
#side-pane article.detail[data-detail="p"] > .d-sec{
  margin-top:18px;
}
#side-pane article.detail[data-detail="l"] > .d-sec > .d-h,
#side-pane article.detail[data-detail="p"] > .d-sec > .d-h{
  margin:0 0 9px;
  line-height:1.32;
}
#side-pane article.detail[data-detail="l"] > .d-hook,
#side-pane article.detail[data-detail="p"] > .d-hook{
  margin-top:4px;
  line-height:1.62;
}
@media(max-width:760px){
  #place-fixed-head .entity-sticky-head{min-height:64px}
  #side-pane article.detail[data-detail="l"] > .d-sec,
  #side-pane article.detail[data-detail="p"] > .d-sec{margin-top:16px}
}

#place-fixed-head .entity-sticky-head{min-height:70px}
@media(max-width:760px){#place-fixed-head .entity-sticky-head{min-height:66px}}


/* ===== Simplified context-aware Bible World Navigation ===== */
#guide-pane .jnav-body{padding:18px 16px 16px;overflow-y:auto;height:100%;box-sizing:border-box}
.jnav-head{padding:0 0 14px}
.jnav-head .g-title{font-size:1.08rem;margin:0 0 5px}
.jnav-head p{margin:0;color:var(--ink-3);font-size:.76rem;line-height:1.45}
.jnav-current{display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:2px;padding:11px 12px;margin:0 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--tint)}
.jnav-current>span{grid-row:1/3;color:var(--accent-ink);font-size:.70rem;font-weight:700;padding-top:2px}
.jnav-current>strong{font-size:.90rem}
.jnav-current>small{color:var(--ink-3);font-size:.72rem;line-height:1.35}
.jnav-toggle-list{display:flex;flex-direction:column;gap:2px}
.jnav-toggle-list label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;padding:2px 3px;font-size:.79rem;color:var(--ink-2)}
.jnav-toggle-list input{accent-color:var(--accent)}
.jnav-timeline{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding:10px 11px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:.74rem/1.3 var(--font-ui);cursor:pointer}
.jnav-timeline:hover{background:var(--tint);color:var(--ink)}
.jnav-timeline span{color:var(--accent-ink);font-weight:700;white-space:nowrap}
@media(max-width:1099px){#guide-pane .jnav-body{display:block;padding:12px 14px}.jnav-head p{display:none}.jnav-current{margin-bottom:8px}}

/* ===== Bible World Navigation: Wide Exploration Board + Topic panel (presentation only) ===== */
.jnav-open{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:11px 13px;border:1px solid var(--accent-line);border-radius:11px;background:var(--accent-soft);color:var(--accent-ink);font:650 .88rem/1.2 var(--font-ui);cursor:pointer}
.jnav-open:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.jnav-open-sub{margin:12px 0 4px;background:transparent;font-weight:600;font-size:.78rem;padding:8px 11px}
.jnav-topic-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:10px}
.jnav-kicker{display:block;margin:0 0 2px;color:var(--accent-ink);font-size:.68rem;font-weight:700;letter-spacing:.04em}
.jnav-end{flex:none;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink-3);font:1rem/1 var(--font-ui);cursor:pointer}
.jnav-end:hover{border-color:var(--accent-line);color:var(--accent-ink)}
.jnav-refs{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0 0 12px}
.jnav-refs .meta{width:100%;font-size:.68rem}
.jnav-ref{border:1px solid var(--line);background:var(--paper);color:var(--accent-ink);border-radius:999px;padding:3px 9px;font:.74rem/1.3 var(--font-ui);cursor:pointer}
.jnav-ref:hover{background:var(--accent-soft);border-color:var(--accent-line)}
.jnav-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.jnav-step{border-bottom:1px solid var(--line)}
.jnav-step-btn{width:100%;display:flex;align-items:baseline;gap:9px;padding:9px 2px;border:0;background:transparent;color:var(--ink-2);font:.82rem/1.35 var(--font-ui);text-align:left;cursor:pointer}
.jnav-step-btn:hover{color:var(--accent-ink)}
.jnav-n{flex:none;min-width:1.35em;height:1.35em;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;font-size:.68rem;color:var(--ink-3)}
.jnav-step.is-current .jnav-step-btn{color:var(--ink);font-weight:650}
.jnav-step.is-current .jnav-n{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.jnav-step-body{padding:0 2px 12px 2.4em}
.jnav-step-body p{margin:0 0 8px;color:var(--ink-2);font-size:.78rem;line-height:1.55}
.jnav-unc{display:flex;align-items:baseline;gap:6px;color:var(--ink-3)!important;font-size:.72rem!important}
.jnav-unc b{display:inline-flex;align-items:center;justify-content:center;width:1.2em;height:1.2em;border:1px solid var(--line-strong);border-radius:50%;font-size:.68rem}
.jnav-actions{display:flex;flex-wrap:wrap;gap:5px}
.jnav-actions button{border:1px solid var(--line);background:var(--paper);color:var(--ink-2);border-radius:8px;padding:5px 9px;font:.74rem/1.2 var(--font-ui);cursor:pointer}
.jnav-actions button:hover:not(:disabled){border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink)}
.jnav-actions button:disabled{opacity:.45;cursor:default}
.jnav-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}

.tb{position:fixed;z-index:8;top:calc(var(--hdr-h,0px) + 8px);bottom:8px;left:calc(var(--wx) + var(--rail-w) + 10px);right:calc(var(--wx) + var(--guide-w) + 10px);pointer-events:none}
.tb[hidden]{display:none!important}
.tb-shell{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2)}
.tb-head{position:relative;padding:16px 56px 6px 20px}
.tb-title{margin:0;font-size:1.1rem;font-weight:650}
.tb-lead{margin:3px 0 0;color:var(--ink-3);font-size:.78rem}
.tb-close{position:absolute;top:12px;right:14px;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--page);color:var(--ink-2);font:1.1rem/1 var(--font-ui);cursor:pointer}
.tb-close:hover{border-color:var(--accent-line);color:var(--accent-ink)}
.tb-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:8px 20px 0;border-bottom:1px solid var(--line)}
.tb-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:8px 12px;color:var(--ink-3);font:.86rem/1.2 var(--font-ui);cursor:pointer}
.tb-tabs button:hover{color:var(--ink)}
.tb-tabs button[aria-selected="true"]{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:650}
.tb-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:min-content;gap:12px;padding:18px 20px 22px}
.tb-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:var(--page);color:var(--ink);text-align:left;cursor:pointer;font-family:var(--font-ui)}
.tb-card:hover,.tb-card:focus-visible{border-color:var(--accent-line);background:var(--accent-soft)}
.tb-card[aria-current="true"]{border-color:var(--accent)}
.tb-card strong{font-size:.92rem;font-weight:650}
.tb-card span{color:var(--ink-2);font-size:.76rem;line-height:1.45}
.tb-card small{margin-top:2px;color:var(--ink-3);font-size:.68rem}
.tb-tab-lead{margin:0;padding:12px 20px 0;color:var(--ink-2);font-size:.78rem;line-height:1.5}
.tb-card-top{display:flex;align-items:center;min-height:20px}
.tb-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper);color:var(--ink-3);font-size:.64rem;font-weight:650;line-height:1}
.tb-card .tb-summary{min-height:2.2em}
.tb-card.is-planned{cursor:default;background:color-mix(in srgb,var(--page) 78%,var(--paper));border-style:dashed;opacity:.72}
.tb-card.is-planned:hover,.tb-card.is-planned:focus-visible{border-color:var(--line);background:color-mix(in srgb,var(--page) 78%,var(--paper))}
.tb-card.is-planned .tb-badge{background:var(--page);color:var(--ink-3)}
.tb-card[aria-current="true"] .tb-badge{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-ink)}
.tb-empty{grid-column:1/-1;margin:24px 0;color:var(--ink-3);font-size:.84rem;text-align:center}
@media(max-width:1099px){#guide-pane .jnav-body{display:block;padding:12px 14px}.jnav-head p{display:none}.jnav-current{margin-bottom:8px}.tb{top:calc(var(--hdr-h,0px) + 54px);left:8px;right:8px}.tb-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:12px}.tb-tab-lead{padding:10px 12px 0}}

/* ===== Header continuity: scripture search ↔ scripture panel, Bible move ↔ Bible World panel ===== */
@media(min-width:1100px){
  .top .qs{position:absolute;left:var(--hdr-scripture-x,auto);width:var(--hdr-scripture-w,320px);min-width:0;max-width:none;margin:0;padding:0;box-sizing:border-box}
  .top .qs + .ref-form{position:absolute;left:var(--hdr-guide-x,auto);width:var(--hdr-guide-w,var(--guide-w));min-width:0;margin:0;box-sizing:border-box}
  .top .qs-input,.top .ref-form #ref-input{width:100%;box-sizing:border-box}
}

/* ===== Map settings: grouped by meaning (names / nature / routes / base) ===== */
.set-grp{margin:0 0 10px;padding:0 0 6px;border-bottom:1px solid var(--line)}
.set-h{margin:0 0 4px;font-size:.72rem;font-weight:700;color:var(--ink-3);letter-spacing:.03em}
.lg-line.lg-solid{border-top-style:solid}


/* ===== Map label readability + label-only semantic zoom =====
   Research place markers remain visible at every zoom. Only labels participate in semantic zoom.
   Hidden labels are revealed on hover/focus without changing research certainty or geometry. */
.gm .gm-place-label{
  transition:opacity .12s ease-out, visibility .12s linear;
}
.gm .gm-place-label.is-semantic-hidden{
  opacity:0 !important;
  visibility:hidden;
  pointer-events:none;
}
.gm:hover .gm-place-label.is-semantic-hidden,
.gm:focus .gm-place-label.is-semantic-hidden,
.gm:focus-visible .gm-place-label.is-semantic-hidden{
  opacity:1 !important;
  visibility:visible;
}
.gm .gm-shape,
.gm .gm-ring{
  transform-box:fill-box;
  transform-origin:center;
  transition:transform .12s ease-out, opacity .12s ease-out, stroke-width .12s ease-out;
}
.gm:hover .gm-shape,
.gm:focus .gm-shape,
.gm:focus-visible .gm-shape{
  transform:scale(1.28);
}
.gm:hover .gm-ring,
.gm:focus .gm-ring,
.gm:focus-visible .gm-ring{
  transform:scale(1.14);
}
.gm:hover .gm-place-label,
.gm:focus .gm-place-label,
.gm:focus-visible .gm-place-label{
  opacity:1;
}
.gm text[data-label-level="L1"]{font-weight:680;opacity:1}
.gm text[data-label-level="L2"]{font-weight:560;opacity:.99}
.gm text[data-label-level="L3"]{font-weight:500;letter-spacing:.04em;opacity:.97}

.gm:focus-within .gm-place-label.is-semantic-hidden{opacity:1!important;visibility:visible}
.gm:focus-within .gm-shape{transform:scale(1.28)}
.gm:focus-within .gm-ring{transform:scale(1.14)}

/* ---- 원어 원문 보기(보조 view · 기본 닫힘). 본문(KRV)보다 강해 보이지 않도록 기존 토큰만 사용 ---- */
.ol-toggle { flex: 0 0 auto; align-self: center; margin-left: 8px; }
.ol-body[hidden] { display: none; }
.ol-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 6px; color: var(--ink-3); font-size: var(--fs-meta); }
.ol-head:first-child { margin-top: 0; }
.ol-ref { color: var(--ink-2); font-weight: 600; }
.ol-note, .ol-msg { color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.5; margin: 4px 0 0; }
.ol-msg { margin: 0; }
.ol-text { margin: 4px 0 0; color: var(--ink); font-size: 1.12rem; line-height: 1.85; font-family: "SBL Greek", "Gentium Plus", "Noto Serif", "Times New Roman", serif; }
.ol-text[dir="rtl"] { direction: rtl; unicode-bidi: plaintext; text-align: right; font-size: 1.3rem; line-height: 2; font-family: "SBL Hebrew", "Ezra SIL", "Noto Serif Hebrew", "Times New Roman", serif; }
.ol-retry { margin-top: 6px; }
.ol-krv-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; color: var(--ink-3); font-size: var(--fs-meta); }
.ol-krv-ref { color: var(--ink-2); font-weight: 600; }
.ol-krv-text { margin: 2px 0 0; color: var(--ink); line-height: 1.7; }
.ol-src { margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--line); }
.ol-krv:empty + .ol-src { margin-top: 0; padding-top: 0; border-top: 0; }
.ol-src .ol-text { font-size: 1.05rem; line-height: 1.8; }
.ol-src .ol-text[dir="rtl"] { font-size: 1.15rem; line-height: 1.95; }

/* original-language word card (existing tokens only) */
.ol-tok { appearance: none; background: none; border: 0; margin: 0; padding: 0 1px; font: inherit; color: inherit; cursor: pointer; border-radius: 3px; }
.ol-tok:hover { text-decoration: underline dotted; text-underline-offset: 4px; }
.ol-tok:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.ol-tok.is-sel { background: var(--accent-soft); }
.ol-card { margin-top: 8px; padding: 8px 12px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-md); background: var(--paper); }
.ol-card[hidden] { display: none; }
.ol-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ol-card-surface { font-size: 1.4rem; line-height: 1.6; color: var(--ink); overflow-wrap: anywhere; font-family: "SBL Greek", "Gentium Plus", "Noto Serif", "Times New Roman", serif; }
.ol-card-surface[dir="rtl"] { font-family: "SBL Hebrew", "Ezra SIL", "Noto Serif Hebrew", "Times New Roman", serif; font-size: 1.6rem; }
.ol-card-x { flex: none; min-width: 44px; min-height: 44px; margin: -6px -8px 0 0; border: 0; background: none; color: var(--ink-3); font-size: 1.3rem; cursor: pointer; border-radius: var(--r-md); }
.ol-card-x:focus-visible, .ol-card-audio:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.ol-card-rows { margin: 2px 0 0; }
.ol-card-row { display: flex; gap: 10px; padding: 3px 0; align-items: baseline; }
.ol-card-row dt { flex: 0 0 4.6em; color: var(--ink-3); font-size: var(--fs-meta); }
.ol-card-row dd { margin: 0; color: var(--ink); line-height: 1.5; overflow-wrap: anywhere; min-width: 0; }
.ol-card-row dd.ol-card-pending { color: var(--ink-3); font-size: var(--fs-meta); }
.ol-card-row dd.ol-card-en { font-size: var(--fs-meta); }
.ol-card-src { color: var(--ink-3); font-size: var(--fs-meta); }
.ol-card-audio { margin-top: 6px; min-height: 44px; }
.ol-card-note { margin: 4px 0 0; color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.5; }

/* original-language paired view — visual separation (opaque near-white panel docked under .scripture-head) */
:root { --ol-panel: #FCFAF6; --ol-panel-line: #E3D2B8; --ol-panel-label: #4A3A2A; --ol-panel-sh: 0 2px 8px rgba(90, 60, 30, .08); --ol-heb-ink: #2B231B; --ol-heb-size: 1.4rem; --ol-heb-wt: 500; --ol-rule: #EADFD0; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ol-panel: #2f2a25; --ol-panel-line: #6a5a48; --ol-panel-label: #e0c392; --ol-panel-sh: 0 8px 22px rgba(0, 0, 0, .65), 0 1px 3px rgba(0, 0, 0, .5); } }
:root[data-theme="dark"] { --ol-panel: #2f2a25; --ol-panel-line: #6a5a48; --ol-panel-label: #e0c392; --ol-panel-sh: 0 8px 22px rgba(0, 0, 0, .65), 0 1px 3px rgba(0, 0, 0, .5); }
.ol-krv-label, .ol-lang { color: var(--ol-panel-label); font-weight: 700; }
.ol-src { margin-top: 12px; padding-top: 10px; border-top: 1.5px solid var(--ol-panel-line); }
.ol-krv:empty + .ol-src { margin-top: 0; padding-top: 0; border-top: 0; }

/* occlusion hardening: every layer of the panel is solid; explicit backing layer; nothing translucent */

/* original-language panel: inline expansion directly under the selected verse (normal flow; no overlay, no float gap) */
#verses .ol-body { display: block; position: relative; margin: 1px 0 10px; padding: 10px 14px 12px; background: var(--ol-panel); border: 1.5px solid var(--ol-panel-line); border-radius: 0 0 var(--r-md) var(--r-md); box-shadow: var(--ol-panel-sh); font-family: var(--font-ui); font-size: 1rem; line-height: 1.6; word-break: normal; cursor: default; opacity: 1 !important; }
#verses .ol-body[hidden] { display: none; }

/* verified research projection (reader-facing; WORBS content shown verbatim from the Project01 asset) */
.ol-research { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.ol-research[hidden], .rp-panel[hidden] { display: none; }
.ol-research-rel { color: var(--ink-2); font-size: var(--fs-meta); }
.rp-cta { margin-top: 6px; min-height: 44px; }
.ol-research .rp-cta { margin-top: 0; }
.rp-panel { margin-top: 8px; padding: 8px 12px 10px; border: 1px solid var(--line-strong); border-radius: var(--r-md); background: var(--paper); }
.rp-head { display: flex; align-items: baseline; gap: 8px; }
.rp-kind { color: var(--ink-3); font-size: var(--fs-meta); }
.rp-title { color: var(--ink); }
.rp-rel { margin: 4px 0 0; color: var(--ink-2); font-size: var(--fs-meta); }
.rp-summary { margin: 6px 0 0; color: var(--ink); line-height: 1.7; }
.rp-facts { margin: 8px 0 0; }
.rp-fact { display: flex; gap: 10px; padding: 2px 0; align-items: baseline; }
.rp-fact dt { flex: 0 0 5.4em; color: var(--ink-3); font-size: var(--fs-meta); }
.rp-fact dd { margin: 0; color: var(--ink); line-height: 1.5; min-width: 0; overflow-wrap: anywhere; }
.rp-note, .rp-src, .rp-msg { margin: 6px 0 0; color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.5; }

/* ===== Premium dark theme v2 — charcoal layers, gold/amber accents, sea-blue secondary. Dark only (light tokens and rules untouched).
   Structure, layout and behaviour are unchanged: this block only redefines tokens and restyles existing selectors. Scopes mirror the existing dark switches. ===== */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  --page: #0E0D0C; --paper: #141210; --tint: #1A1714; --raised: #221D18;
  --ink: #F1E7D7; --ink-2: #B8AA95; --ink-3: #948A7B; --ink-4: #7E7468;
  --line: #26211B; --line-strong: #3A312A;
  --gold: #D6A15B; --amber: #E7B86A; --sea: #123A52; --sea-lift: #3F7D9C;
  --accent-sand: #D6A15B; --accent-clay: #B9854A; --accent-stone: #8B7B66; --accent-limestone: #E9D9BD;
  --accent: #D6A15B; --accent-ink: #E7B86A; --accent-soft: rgba(214, 161, 91, .08); --accent-line: rgba(214, 161, 91, .38); --on-accent: #17120C;
  --teal-selection-bg: rgba(214, 161, 91, .07); --teal-selection-bar: #D6A15B; --teal-link-line: rgba(214, 161, 91, .38); --teal-nav-bg: rgba(214, 161, 91, .07); --teal-action: #D6A15B;
  --highlight-word-bg: rgba(231, 184, 106, .13); --highlight-word-text: #F6EBD8; --highlight-word-border: rgba(231, 184, 106, .55);
  --highlight-verse-bg: rgba(214, 161, 91, .06); --highlight-verse-border: #D6A15B; --highlight-verse-shadow: transparent; --highlight-verse-glow: rgba(231, 184, 106, .14);
  --split-line: #26211B; --split-line-hover: rgba(214, 161, 91, .40); --split-line-active: #D6A15B;
  --ico: #B8AA95; --ico-sel: #E7B86A; --ico-sel-bg: rgba(214, 161, 91, .10); --ico-brand: #C9B48F;
  --nav-active-bg: rgba(214, 161, 91, .08); --nav-active-line: rgba(214, 161, 91, .50);
  --map-pin: #E7B86A; --map-pin-ring: rgba(231, 184, 106, .25); --focus-ring: rgba(231, 184, 106, .42);
  --warn-bg: #2A2113; --warn-ink: #EBC27A;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 244, 225, .02); --sh-2: 0 14px 36px -10px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 244, 225, .03);
  --ol-panel: #1E1915; --ol-panel-line: rgba(214, 161, 91, .30); --ol-panel-label: #E7B86A; --ol-panel-sh: 0 14px 34px -12px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 244, 225, .03);
  color-scheme: dark;
  }
  :root {
  --map-land-base: #3A342D; --map-land-lowland: #433C34; --map-relief-mid: #443D35; --map-relief-shadow: #221E1A; --map-relief-deep: #151311; --map-relief-high: #5C5245;
  --map-water: #123A52; --map-water-shade: #0D2C40; --map-river: #5E94AE; --map-water-edge: #3E6E88;
  --map-label-primary: #E6DCCB; --map-label-secondary: #B4AB9E; --map-label-reference: #988F82; --map-label-water: #A9C7D8;
  --map-label-halo: rgba(16, 14, 12, .72);
  }
}
:root[data-theme="dark"] {
  --page: #0E0D0C; --paper: #141210; --tint: #1A1714; --raised: #221D18;
  --ink: #F1E7D7; --ink-2: #B8AA95; --ink-3: #948A7B; --ink-4: #7E7468;
  --line: #26211B; --line-strong: #3A312A;
  --gold: #D6A15B; --amber: #E7B86A; --sea: #123A52; --sea-lift: #3F7D9C;
  --accent-sand: #D6A15B; --accent-clay: #B9854A; --accent-stone: #8B7B66; --accent-limestone: #E9D9BD;
  --accent: #D6A15B; --accent-ink: #E7B86A; --accent-soft: rgba(214, 161, 91, .08); --accent-line: rgba(214, 161, 91, .38); --on-accent: #17120C;
  --teal-selection-bg: rgba(214, 161, 91, .07); --teal-selection-bar: #D6A15B; --teal-link-line: rgba(214, 161, 91, .38); --teal-nav-bg: rgba(214, 161, 91, .07); --teal-action: #D6A15B;
  --highlight-word-bg: rgba(231, 184, 106, .13); --highlight-word-text: #F6EBD8; --highlight-word-border: rgba(231, 184, 106, .55);
  --highlight-verse-bg: rgba(214, 161, 91, .06); --highlight-verse-border: #D6A15B; --highlight-verse-shadow: transparent; --highlight-verse-glow: rgba(231, 184, 106, .14);
  --split-line: #26211B; --split-line-hover: rgba(214, 161, 91, .40); --split-line-active: #D6A15B;
  --ico: #B8AA95; --ico-sel: #E7B86A; --ico-sel-bg: rgba(214, 161, 91, .10); --ico-brand: #C9B48F;
  --nav-active-bg: rgba(214, 161, 91, .08); --nav-active-line: rgba(214, 161, 91, .50);
  --map-pin: #E7B86A; --map-pin-ring: rgba(231, 184, 106, .25); --focus-ring: rgba(231, 184, 106, .42);
  --warn-bg: #2A2113; --warn-ink: #EBC27A;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 244, 225, .02); --sh-2: 0 14px 36px -10px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 244, 225, .03);
  --ol-panel: #1E1915; --ol-panel-line: rgba(214, 161, 91, .30); --ol-panel-label: #E7B86A; --ol-panel-sh: 0 14px 34px -12px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 244, 225, .03);
  color-scheme: dark;
}
:root[data-map-theme="dark"] {
  --map-land-base: #3A342D; --map-land-lowland: #433C34; --map-relief-mid: #443D35; --map-relief-shadow: #221E1A; --map-relief-deep: #151311; --map-relief-high: #5C5245;
  --map-water: #123A52; --map-water-shade: #0D2C40; --map-river: #5E94AE; --map-water-edge: #3E6E88;
  --map-label-primary: #E6DCCB; --map-label-secondary: #B4AB9E; --map-label-reference: #988F82; --map-label-water: #A9C7D8;
  --map-label-halo: rgba(16, 14, 12, .72);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]), :root:not([data-theme="light"]) body { background: var(--page); }
  :root:not([data-theme="light"]) body { background: radial-gradient(1100px 560px at 12% -8%, rgba(18, 58, 82, .22), transparent 62%), radial-gradient(900px 480px at 100% 0%, rgba(214, 161, 91, .045), transparent 60%), var(--page); background-attachment: fixed; }
  :root:not([data-theme="light"]) ::selection { background: rgba(231, 184, 106, .26); color: #FFF6E6; }
  :root:not([data-theme="light"]) .top { background: var(--page); box-shadow: 0 1px 0 var(--line), 0 10px 26px -16px rgba(0, 0, 0, .9); }
  :root:not([data-theme="light"]) #rail, :root:not([data-theme="light"]) #map-pane, :root:not([data-theme="light"]) #text-pane, :root:not([data-theme="light"]) aside.sw-nav { background: linear-gradient(180deg, #171410 0%, #131110 100%); border-color: var(--line); box-shadow: inset 0 1px 0 rgba(255, 244, 225, .04), 0 20px 44px -26px rgba(0, 0, 0, .95); }
  :root:not([data-theme="light"]) .scripture-head { background: rgba(20, 18, 16, .94); border-bottom-color: var(--line); }
  :root:not([data-theme="light"]) #verses { color: var(--ink); }
  :root:not([data-theme="light"]) .verse .vnum { color: #8A7A62; }
  :root:not([data-theme="light"]) .verse:hover { background: rgba(255, 244, 225, .025); }
  :root:not([data-theme="light"]) #verses .verse.sel, :root:not([data-theme="light"]) .verse.sel { background: var(--highlight-verse-bg); border: 1px solid rgba(214, 161, 91, .20); box-shadow: 0 0 24px -8px rgba(231, 184, 106, .26), inset 0 0 0 1px rgba(231, 184, 106, .03); }
  :root:not([data-theme="light"]) .verse.sel .vnum { color: var(--amber); }
  :root:not([data-theme="light"]) .tag { border-bottom: 1px solid rgba(214, 161, 91, .38); }
  :root:not([data-theme="light"]) .tag:hover { background: rgba(231, 184, 106, .08); border-bottom-color: var(--amber); }
  :root:not([data-theme="light"]) .tag.active, :root:not([data-theme="light"]) .tag.active:hover { background: var(--highlight-word-bg); color: var(--highlight-word-text); border: 1px solid var(--highlight-word-border); box-shadow: 0 0 12px -2px rgba(231, 184, 106, .30); }
  :root:not([data-theme="light"]) .rail-btn { color: var(--ink-2); }
  :root:not([data-theme="light"]) .rail-btn:hover { background: rgba(63, 125, 156, .12); color: var(--ink); }
  :root:not([data-theme="light"]) .rail-btn[aria-current="page"], :root:not([data-theme="light"]) .qn-tab[aria-selected="true"] { background: linear-gradient(90deg, rgba(231, 184, 106, .11), rgba(231, 184, 106, .02)); border-color: transparent; border-left-color: var(--gold); color: var(--amber); box-shadow: 0 0 20px -10px rgba(231, 184, 106, .45); }
  :root:not([data-theme="light"]) .ee-card.is-selected, :root:not([data-theme="light"]) .ee-item:has(.ee-primary.is-selected) { background: rgba(214, 161, 91, .07); border-color: rgba(214, 161, 91, .38); box-shadow: inset 2px 0 0 var(--gold), 0 0 22px -12px rgba(231, 184, 106, .4); }
  :root:not([data-theme="light"]) .btn, :root:not([data-theme="light"]) .btn.ghost { background: rgba(255, 244, 225, .02); border-color: var(--line-strong); color: var(--ink-2); transition: background .15s, border-color .15s, color .15s, box-shadow .15s; }
  :root:not([data-theme="light"]) .btn:hover, :root:not([data-theme="light"]) .btn.ghost:hover { background: rgba(231, 184, 106, .07); border-color: rgba(214, 161, 91, .5); color: var(--ink); }
  :root:not([data-theme="light"]) .btn:active, :root:not([data-theme="light"]) .btn.ghost:active { background: rgba(231, 184, 106, .12); }
  :root:not([data-theme="light"]) .btn:disabled, :root:not([data-theme="light"]) .btn[disabled] { color: var(--ink-4); border-color: var(--line); background: transparent; }
  :root:not([data-theme="light"]) .btn.primary { background: linear-gradient(180deg, #E0AE68, #C8924A); border-color: #E7B86A; color: #17120C; box-shadow: 0 6px 16px -8px rgba(231, 184, 106, .55); }
  :root:not([data-theme="light"]) .btn.primary:hover { background: linear-gradient(180deg, #E9BC78, #D09A52); color: #17120C; }
  :root:not([data-theme="light"]) #ref-input, :root:not([data-theme="light"]) .qs-input, :root:not([data-theme="light"]) select, :root:not([data-theme="light"]) .qn-btn { background: #100E0C; border-color: var(--line); color: var(--ink); }
  :root:not([data-theme="light"]) #ref-input:focus, :root:not([data-theme="light"]) .qs-input:focus, :root:not([data-theme="light"]) select:focus { outline: none; border-color: rgba(214, 161, 91, .6); box-shadow: 0 0 0 3px rgba(231, 184, 106, .12); }
  :root:not([data-theme="light"]) .qs-input::placeholder, :root:not([data-theme="light"]) #ref-input::placeholder { color: var(--ink-4); }
  :root:not([data-theme="light"]) .map-note, :root:not([data-theme="light"]) .mp-head, :root:not([data-theme="light"]) .ann-tools { background: color-mix(in srgb, #1A1714 92%, transparent); border-color: var(--line-strong); }
  :root:not([data-theme="light"]) .ol-body { background: var(--ol-panel); border-color: var(--ol-panel-line); }
  :root:not([data-theme="light"]) .ol-card, :root:not([data-theme="light"]) .rp-panel { background: var(--raised); border: 1px solid rgba(214, 161, 91, .26); box-shadow: inset 0 1px 0 rgba(255, 244, 225, .04), 0 10px 26px -16px rgba(0, 0, 0, .9); }
  :root:not([data-theme="light"]) .ol-krv-label, :root:not([data-theme="light"]) .ol-lang, :root:not([data-theme="light"]) .rp-kind { color: var(--amber); letter-spacing: .02em; }
  :root:not([data-theme="light"]) .ol-krv-ref, :root:not([data-theme="light"]) .ol-ref, :root:not([data-theme="light"]) .rp-rel { color: var(--ink-2); }
  :root:not([data-theme="light"]) .ol-krv-text { color: var(--ink); }
  :root:not([data-theme="light"]) .ol-src { border-top-color: rgba(214, 161, 91, .26); }
  :root:not([data-theme="light"]) .ol-text { color: #F6EBD8; }
  :root:not([data-theme="light"]) .ol-tok:hover { text-decoration-color: var(--gold); }
  :root:not([data-theme="light"]) .ol-tok.is-sel { background: rgba(231, 184, 106, .15); box-shadow: inset 0 -1px 0 var(--gold), 0 0 10px -3px rgba(231, 184, 106, .35); }
  :root:not([data-theme="light"]) .ol-card-surface { color: #F6EBD8; }
  :root:not([data-theme="light"]) .ol-card-row dt, :root:not([data-theme="light"]) .rp-fact dt { color: var(--ink-3); }
  :root:not([data-theme="light"]) .ol-card-x { color: var(--ink-3); }
  :root:not([data-theme="light"]) .ol-card-x:hover { color: var(--amber); }
  :root:not([data-theme="light"]) .ol-research { border-top-color: rgba(214, 161, 91, .22); }
  :root:not([data-theme="light"]) .ol-research-rel { color: var(--ink-2); }
  :root:not([data-theme="light"]) .rp-title { color: #F6EBD8; }
  :root:not([data-theme="light"]) .rp-summary { color: var(--ink); }
  :root:not([data-theme="light"]) .rp-src, :root:not([data-theme="light"]) .rp-note, :root:not([data-theme="light"]) .rp-msg { color: var(--ink-3); }
  :root:not([data-theme="light"]) * { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
  :root:not([data-theme="light"]) *::-webkit-scrollbar { width: 9px; height: 9px; }
  :root:not([data-theme="light"]) *::-webkit-scrollbar-track { background: transparent; }
  :root:not([data-theme="light"]) *::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 9px; border: 2px solid transparent; background-clip: content-box; }
  :root:not([data-theme="light"]) *::-webkit-scrollbar-thumb:hover { background: var(--accent-line); background-clip: content-box; }
}
:root[data-theme="dark"], :root[data-theme="dark"] body { background: var(--page); }
:root[data-theme="dark"] body { background: radial-gradient(1100px 560px at 12% -8%, rgba(18, 58, 82, .22), transparent 62%), radial-gradient(900px 480px at 100% 0%, rgba(214, 161, 91, .045), transparent 60%), var(--page); background-attachment: fixed; }
:root[data-theme="dark"] ::selection { background: rgba(231, 184, 106, .26); color: #FFF6E6; }
:root[data-theme="dark"] .top { background: var(--page); box-shadow: 0 1px 0 var(--line), 0 10px 26px -16px rgba(0, 0, 0, .9); }
:root[data-theme="dark"] #rail, :root[data-theme="dark"] #map-pane, :root[data-theme="dark"] #text-pane, :root[data-theme="dark"] aside.sw-nav { background: linear-gradient(180deg, #171410 0%, #131110 100%); border-color: var(--line); box-shadow: inset 0 1px 0 rgba(255, 244, 225, .04), 0 20px 44px -26px rgba(0, 0, 0, .95); }
:root[data-theme="dark"] .scripture-head { background: rgba(20, 18, 16, .94); border-bottom-color: var(--line); }
:root[data-theme="dark"] #verses { color: var(--ink); }
:root[data-theme="dark"] .verse .vnum { color: #8A7A62; }
:root[data-theme="dark"] .verse:hover { background: rgba(255, 244, 225, .025); }
:root[data-theme="dark"] #verses .verse.sel, :root[data-theme="dark"] .verse.sel { background: var(--highlight-verse-bg); border: 1px solid rgba(214, 161, 91, .20); box-shadow: 0 0 24px -8px rgba(231, 184, 106, .26), inset 0 0 0 1px rgba(231, 184, 106, .03); }
:root[data-theme="dark"] .verse.sel .vnum { color: var(--amber); }
:root[data-theme="dark"] .tag { border-bottom: 1px solid rgba(214, 161, 91, .38); }
:root[data-theme="dark"] .tag:hover { background: rgba(231, 184, 106, .08); border-bottom-color: var(--amber); }
:root[data-theme="dark"] .tag.active, :root[data-theme="dark"] .tag.active:hover { background: var(--highlight-word-bg); color: var(--highlight-word-text); border: 1px solid var(--highlight-word-border); box-shadow: 0 0 12px -2px rgba(231, 184, 106, .30); }
:root[data-theme="dark"] .rail-btn { color: var(--ink-2); }
:root[data-theme="dark"] .rail-btn:hover { background: rgba(63, 125, 156, .12); color: var(--ink); }
:root[data-theme="dark"] .rail-btn[aria-current="page"], :root[data-theme="dark"] .qn-tab[aria-selected="true"] { background: linear-gradient(90deg, rgba(231, 184, 106, .11), rgba(231, 184, 106, .02)); border-color: transparent; border-left-color: var(--gold); color: var(--amber); box-shadow: 0 0 20px -10px rgba(231, 184, 106, .45); }
:root[data-theme="dark"] .ee-card.is-selected, :root[data-theme="dark"] .ee-item:has(.ee-primary.is-selected) { background: rgba(214, 161, 91, .07); border-color: rgba(214, 161, 91, .38); box-shadow: inset 2px 0 0 var(--gold), 0 0 22px -12px rgba(231, 184, 106, .4); }
:root[data-theme="dark"] .btn, :root[data-theme="dark"] .btn.ghost { background: rgba(255, 244, 225, .02); border-color: var(--line-strong); color: var(--ink-2); transition: background .15s, border-color .15s, color .15s, box-shadow .15s; }
:root[data-theme="dark"] .btn:hover, :root[data-theme="dark"] .btn.ghost:hover { background: rgba(231, 184, 106, .07); border-color: rgba(214, 161, 91, .5); color: var(--ink); }
:root[data-theme="dark"] .btn:active, :root[data-theme="dark"] .btn.ghost:active { background: rgba(231, 184, 106, .12); }
:root[data-theme="dark"] .btn:disabled, :root[data-theme="dark"] .btn[disabled] { color: var(--ink-4); border-color: var(--line); background: transparent; }
:root[data-theme="dark"] .btn.primary { background: linear-gradient(180deg, #E0AE68, #C8924A); border-color: #E7B86A; color: #17120C; box-shadow: 0 6px 16px -8px rgba(231, 184, 106, .55); }
:root[data-theme="dark"] .btn.primary:hover { background: linear-gradient(180deg, #E9BC78, #D09A52); color: #17120C; }
:root[data-theme="dark"] #ref-input, :root[data-theme="dark"] .qs-input, :root[data-theme="dark"] select, :root[data-theme="dark"] .qn-btn { background: #100E0C; border-color: var(--line); color: var(--ink); }
:root[data-theme="dark"] #ref-input:focus, :root[data-theme="dark"] .qs-input:focus, :root[data-theme="dark"] select:focus { outline: none; border-color: rgba(214, 161, 91, .6); box-shadow: 0 0 0 3px rgba(231, 184, 106, .12); }
:root[data-theme="dark"] .qs-input::placeholder, :root[data-theme="dark"] #ref-input::placeholder { color: var(--ink-4); }
:root[data-theme="dark"] .map-note, :root[data-theme="dark"] .mp-head, :root[data-theme="dark"] .ann-tools { background: color-mix(in srgb, #1A1714 92%, transparent); border-color: var(--line-strong); }
:root[data-theme="dark"] .ol-body { background: var(--ol-panel); border-color: var(--ol-panel-line); }
:root[data-theme="dark"] .ol-card, :root[data-theme="dark"] .rp-panel { background: var(--raised); border: 1px solid rgba(214, 161, 91, .26); box-shadow: inset 0 1px 0 rgba(255, 244, 225, .04), 0 10px 26px -16px rgba(0, 0, 0, .9); }
:root[data-theme="dark"] .ol-krv-label, :root[data-theme="dark"] .ol-lang, :root[data-theme="dark"] .rp-kind { color: var(--amber); letter-spacing: .02em; }
:root[data-theme="dark"] .ol-krv-ref, :root[data-theme="dark"] .ol-ref, :root[data-theme="dark"] .rp-rel { color: var(--ink-2); }
:root[data-theme="dark"] .ol-krv-text { color: var(--ink); }
:root[data-theme="dark"] .ol-src { border-top-color: rgba(214, 161, 91, .26); }
:root[data-theme="dark"] .ol-text { color: #F6EBD8; }
:root[data-theme="dark"] .ol-tok:hover { text-decoration-color: var(--gold); }
:root[data-theme="dark"] .ol-tok.is-sel { background: rgba(231, 184, 106, .15); box-shadow: inset 0 -1px 0 var(--gold), 0 0 10px -3px rgba(231, 184, 106, .35); }
:root[data-theme="dark"] .ol-card-surface { color: #F6EBD8; }
:root[data-theme="dark"] .ol-card-row dt, :root[data-theme="dark"] .rp-fact dt { color: var(--ink-3); }
:root[data-theme="dark"] .ol-card-x { color: var(--ink-3); }
:root[data-theme="dark"] .ol-card-x:hover { color: var(--amber); }
:root[data-theme="dark"] .ol-research { border-top-color: rgba(214, 161, 91, .22); }
:root[data-theme="dark"] .ol-research-rel { color: var(--ink-2); }
:root[data-theme="dark"] .rp-title { color: #F6EBD8; }
:root[data-theme="dark"] .rp-summary { color: var(--ink); }
:root[data-theme="dark"] .rp-src, :root[data-theme="dark"] .rp-note, :root[data-theme="dark"] .rp-msg { color: var(--ink-3); }
:root[data-theme="dark"] * { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
:root[data-theme="dark"] *::-webkit-scrollbar { width: 9px; height: 9px; }
:root[data-theme="dark"] *::-webkit-scrollbar-track { background: transparent; }
:root[data-theme="dark"] *::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 9px; border: 2px solid transparent; background-clip: content-box; }
:root[data-theme="dark"] *::-webkit-scrollbar-thumb:hover { background: var(--accent-line); background-clip: content-box; }

/* ---- 빠른 전체검색 드롭다운: 유형별 섹션 + 본문 미리보기 + 전체 결과 보기 ---- */
.qs-list { max-height: min(70vh, 460px); overflow-y: auto; }
.qs-sec { display:flex; justify-content:space-between; padding:7px 10px 3px; font-size:.7rem; font-weight:600; letter-spacing:.04em; color:var(--ink-3); }
.qs-sec-n { font-weight:400; }
.qs-row mark { background:rgba(245,197,24,.30); color:inherit; border-radius:2px; }
.qs-verse { flex-direction:column; gap:2px; }
.qs-snip { color:var(--ink-2); font-size:.78rem; line-height:1.45; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.qs-all { margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 7px 7px; color:var(--accent-ink); font-weight:600; }
.sw-sec { margin-bottom:14px; }
.sw-sec-n { font-weight:400; color:var(--ink-3); font-size:.78rem; }
.sw-verses { display:flex; flex-direction:column; gap:2px; }
.sw-mode button.is-active { font-weight:600; }
.sw-mode { grid-template-columns: repeat(4, 1fr); } .sw-mode button { padding: 7px 4px; }


/* ===== 라이트 테마 위계 정리 + 기본 활성 절(.ol-default-active) =====
   토큰(:root 라이트 값)만 조정하고, 기본 활성 절은 사용자가 고른 절(.sel)과 같은 문법으로 보인다. 어두운 테마는 자체 토큰을 쓰므로 영향 없음. */
#verses .verse.ol-default-active {
  background: var(--highlight-verse-bg);
  border: 1px solid color-mix(in srgb, var(--highlight-verse-border) 35%, transparent); border-radius: 14px;
  box-shadow: 0 1px 6px var(--highlight-verse-shadow);
}
#verses .verse.ol-default-active .vnum, #verses .verse.sel .vnum, #verses .verse.verse-selected .vnum { color: var(--vnum-active, var(--accent-ink)); font-weight: 700; }
.verse.dim { opacity: var(--verse-dim-op, .55); }
.ol-krv-label, .ol-lang { color: var(--ol-panel-label); }
.ol-src, .ol-research { border-top-color: var(--ol-rule, var(--ol-panel-line)); }
.ol-krv-text, .ol-card-row dd { color: var(--ink); }
.ol-text[dir="rtl"] { color: var(--ol-heb-ink, var(--ink)); font-size: var(--ol-heb-size, 1.3rem); font-weight: var(--ol-heb-wt, 400); }
.ol-src .ol-text[dir="rtl"] { font-size: var(--ol-heb-size, 1.15rem); }
.ol-card, .rp-panel { background: var(--card, var(--paper)); }

/* 절 WORBS 연구 / 인물카드(왼쪽 본문연구 패널) · 관련 없는 지도 핀 약화 · 인물 이름 단어 */
.gm.gm-dim { opacity: .42; }
.rp-name { cursor: pointer; border-radius: 6px; padding: 0 2px; border-bottom: 1.5px solid var(--accent-line); }
.rp-name:hover { background: color-mix(in srgb, var(--highlight-word-bg) 55%, transparent); border-bottom-color: var(--highlight-word-border); }
.rp-name.active { background: var(--highlight-word-bg); }
.rp-verse .rp-panel, .rp-person .rp-panel { margin-top: 6px; }

/* ===== Person Detail flat reader hierarchy — one surface, no nested research card ===== */
.detail[data-detail="p"] .person-reader-head { margin-bottom: 0; }
.person-reader-flat { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.person-reader-summary {
  margin: 0;
  padding: 0 0 22px;
  font-size: .94rem;
  line-height: 1.78;
  color: var(--ink);
  word-break: keep-all;
}
.person-facts-compact {
  margin: 0;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.person-fact-row {
  display: grid;
  grid-template-columns: 5.6em minmax(0,1fr);
  gap: 14px;
  align-items: baseline;
  padding: 5px 0;
}
.person-fact-row dt {
  margin: 0;
  color: var(--ink-3);
  font-size: .79rem;
  font-weight: 520;
}
.person-fact-row dd {
  margin: 0;
  color: var(--ink);
  font-size: .92rem;
  line-height: 1.55;
}
.person-reader-section {
  margin: 0;
  padding: 19px 0 20px;
  border-bottom: 1px solid var(--line);
}
.person-reader-section h4 {
  margin: 0 0 8px;
  color: var(--ink);
  font-size: .86rem;
  line-height: 1.35;
  font-weight: 680;
}
.person-reader-section p {
  margin: 0;
  color: var(--ink);
  font-size: .91rem;
  line-height: 1.7;
  word-break: keep-all;
}
.person-reader-note {
  margin: 18px 0 0;
  padding: 0;
  color: var(--ink-3);
  font-size: .76rem;
  line-height: 1.6;
  word-break: keep-all;
}
.detail[data-detail="p"] .person-related-section {
  margin: 22px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.detail[data-detail="p"] .person-related-section + .person-related-section {
  margin-top: 20px;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line {
  margin-top: 5px;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line .d-kind {
  font-weight: 520;
  letter-spacing: .01em;
}
@media (max-width:760px) {
  .person-reader-summary { padding-bottom: 18px; font-size: .93rem; line-height: 1.72; }
  .person-facts-compact { padding: 14px 0; }
  .person-fact-row { grid-template-columns: 1fr; gap: 2px; padding: 7px 0; }
  .person-fact-row dt { font-size: .75rem; }
  .person-fact-row dd { font-size: .92rem; }
  .person-reader-section { padding: 16px 0 17px; }
  .person-reader-section h4 { margin-bottom: 6px; }
}

/* ===== Narrative Scripture Person Reader v1 — flat editorial surface ===== */
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line {
  gap: 9px;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line .d-en {
  font-size: .82rem;
  font-weight: 520;
  color: var(--ink-3);
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line .d-original::after {
  content: " · ";
  color: var(--ink-4);
}
.person-reader-intro {
  margin: 0 0 26px;
  font-family: var(--font-read);
  font-size: 1.05rem;
  line-height: 1.72;
  color: var(--accent-ink);
  word-break: keep-all;
}
.person-section-title {
  margin: 0 0 14px;
  font-size: .96rem;
  line-height: 1.35;
  font-weight: 720;
  color: var(--ink);
}
.person-overview {
  margin: 0;
  padding: 0 0 28px;
}
.person-overview .person-facts-compact {
  padding: 16px 0;
}
.person-narrative {
  margin: 0;
  padding: 26px 0 0;
  border-top: 1px solid var(--line);
}
.person-narrative-section {
  position: relative;
  margin: 0;
  padding: 22px 0 24px 34px;
  border-bottom: 1px solid var(--line);
}
.person-narrative-kicker {
  position: absolute;
  left: 0;
  top: 24px;
  width: 24px;
  font-size: .68rem;
  line-height: 1.2;
  font-weight: 650;
  color: var(--ink-4);
  letter-spacing: .04em;
}
.person-narrative-section h4 {
  margin: 0 0 7px;
  font-size: .96rem;
  line-height: 1.42;
  font-weight: 700;
  color: var(--ink);
}
.person-scripture-links {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0 0 12px;
}
.person-scripture-links .pill {
  border: 0;
  border-radius: 0;
  padding: 0;
  color: var(--accent-ink);
  background: transparent;
  font-size: .78rem;
  line-height: 1.5;
  text-decoration: underline;
  text-decoration-color: var(--teal-link-line);
  text-underline-offset: 3px;
}
.person-narrative-section > p {
  margin: 0 0 8px;
  font-size: .92rem;
  line-height: 1.76;
  color: var(--ink);
  word-break: keep-all;
}
.person-related-places {
  margin-top: 10px !important;
  font-size: .78rem !important;
  color: var(--ink-3) !important;
}
.person-inline-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent-ink);
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: var(--teal-link-line);
  text-underline-offset: 3px;
}
.person-theology {
  margin: 0;
  padding: 28px 0 26px;
  border-bottom: 1px solid var(--line);
}
.person-theology p {
  margin: 0 0 10px;
  font-size: .92rem;
  line-height: 1.78;
  color: var(--ink);
  word-break: keep-all;
}
.person-related-scripture {
  margin: 0;
  padding: 20px 0 4px;
  border: 0;
}
.person-related-scripture > summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  color: var(--ink);
  font-size: .86rem;
  font-weight: 650;
  list-style: none;
}
.person-related-scripture > summary::-webkit-details-marker { display: none; }
.person-related-scripture > summary span {
  color: var(--accent-ink);
  font-size: .76rem;
  font-weight: 550;
}
.person-related-group {
  margin: 20px 0 0;
}
.person-related-group h5 {
  margin: 0 0 8px;
  font-size: .76rem;
  color: var(--ink-3);
  font-weight: 650;
}
.person-related-group .pills {
  gap: 5px;
}
.person-related-group .pill {
  padding: 1px 8px;
  font-size: .74rem;
  border-color: var(--line);
}
@media (max-width:760px) {
  .person-reader-intro { margin-bottom: 22px; font-size: 1rem; line-height: 1.68; }
  .person-overview { padding-bottom: 23px; }
  .person-narrative { padding-top: 22px; }
  .person-narrative-section { padding: 19px 0 21px 28px; }
  .person-narrative-kicker { top: 21px; width: 20px; }
  .person-narrative-section h4 { font-size: .93rem; }
  .person-narrative-section > p { font-size: .91rem; line-height: 1.72; }
  .person-theology { padding: 24px 0 22px; }
}

/* ===== 본문 읽기 위계: 모든 절은 기본 활성(선명), 관련 절·선택 절만 추가 강조 =====
   .dim 은 상태 훅으로만 남기고 시각적으로는 흐리게 하지 않는다. */
.verse.dim, .verse.dim .vnum { opacity: 1; }
#verses .verse:not(.sel):not(.verse-selected):not(.ol-default-active) { color: #4A3B31; }
#verses .verse .vnum { color: #8A7667; }
#verses .verse.related:not(.sel):not(.verse-selected) { background: #F6E6D4; color: #3A2B22; }
#verses .verse.related .vnum { color: #7B5A3C; }
#verses .verse.sel, #verses .verse.verse-selected { box-shadow: inset 3px 0 0 #B96F35; }
.tag.active, .tag.active:hover { background: #EFD3B6; color: #7B461F; border: 1px solid #C98D59; border-radius: 4px; padding: 0 3px; }
:root[data-theme="dark"] #verses .verse:not(.sel):not(.verse-selected):not(.ol-default-active) { color: inherit; }
:root[data-theme="dark"] #verses .verse .vnum { color: #8A7A62; }
:root[data-theme="dark"] #verses .verse.related:not(.sel):not(.verse-selected) { background: rgba(231, 184, 106, .10); color: inherit; }
:root[data-theme="dark"] .tag.active, :root[data-theme="dark"] .tag.active:hover { background: rgba(231, 184, 106, .28); color: #F3DDB8; border-color: rgba(231, 184, 106, .55); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) #verses .verse:not(.sel):not(.verse-selected):not(.ol-default-active) { color: inherit; }
  :root:not([data-theme="light"]) #verses .verse .vnum { color: #8A7A62; }
  :root:not([data-theme="light"]) #verses .verse.related:not(.sel):not(.verse-selected) { background: rgba(231, 184, 106, .10); color: inherit; }
  :root:not([data-theme="light"]) .tag.active, :root:not([data-theme="light"]) .tag.active:hover { background: rgba(231, 184, 106, .28); color: #F3DDB8; border-color: rgba(231, 184, 106, .55); }
}

/* ===== Person Reader First Scripture Follow v2 ===== */
#side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .pane-bar{
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 8px 6px 12px;
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
#side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .pane-title{
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:0;
  padding:0;
  color:var(--ink-3);
  font-size:.78rem;
  line-height:1.25;
  font-weight:650;
  letter-spacing:.01em;
}
#side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .entity-top-action-button{
  flex:none;
  margin:0;
  padding:4px 8px;
  font-size:.74rem;
  line-height:1.2;
  color:var(--accent-ink);
}
#side-pane.has-entity-fixed-head:has(article[data-detail="p"]) #panel-toggle{
  flex:none;
  margin:0;
  padding:4px 8px;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head){
  padding-top:8px;
  padding-bottom:10px;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line{
  display:block;
  margin:0;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name{
  display:block;
  font-size:1.54rem;
  line-height:1.08;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .d-en{
  display:block;
  margin-top:3px;
  font-size:.78rem;
  line-height:1.2;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line{
  margin-top:5px;
  font-size:.76rem;
  line-height:1.3;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line .d-original::after{content:"";}
.person-reader-intro{
  font-size:1rem;
  line-height:1.74;
  color:var(--ink);
}
.person-story-unit{
  margin:0 0 18px;
}
.person-story-unit:last-child{margin-bottom:0}
.person-story-unit > p{
  margin:0;
  font-size:.93rem;
  line-height:1.78;
  color:var(--ink);
  word-break:keep-all;
}
.person-story-refs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}
.person-story-ref{
  border:0;
  background:transparent;
  padding:0;
  color:var(--accent-ink);
  font-size:.79rem;
  line-height:1.45;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:var(--teal-link-line);
  text-underline-offset:3px;
}
.person-story-ref:hover,
.person-story-ref[aria-expanded="true"]{
  color:var(--accent);
  text-decoration-thickness:2px;
}
.person-inline-scripture{
  margin:10px 0 2px;
  padding:10px 12px;
  border-left:2px solid var(--accent-line);
  background:color-mix(in srgb,var(--accent-soft) 45%,transparent);
}
.person-inline-scripture p{
  margin:0 0 7px;
  font-family:var(--font-read);
  font-size:.88rem;
  line-height:1.7;
  color:var(--ink);
}
.person-inline-scripture p:last-of-type{margin-bottom:8px}
.person-inline-verse-num{
  color:var(--accent-ink);
  font-size:.72rem;
  font-weight:700;
  vertical-align:.08em;
}
.person-inline-open{
  border:0;
  background:transparent;
  padding:0;
  color:var(--accent-ink);
  font-size:.74rem;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.person-research{
  margin:26px 0 0;
  padding:18px 0 0;
  border:0;
  border-top:1px solid var(--line);
}
.person-research > summary{
  cursor:pointer;
  list-style:none;
  color:var(--ink-2);
  font-size:.82rem;
  font-weight:650;
}
.person-research > summary::-webkit-details-marker{display:none}
.person-research-body{
  margin-top:16px;
}
.person-research-body section{
  margin:0 0 20px;
}
.person-research-body h5{
  margin:0 0 7px;
  font-size:.8rem;
  color:var(--ink);
}
.person-research-body p,
.person-research-body li{
  font-size:.82rem;
  line-height:1.68;
  color:var(--ink-2);
}
.person-research-body p{white-space:pre-line;margin:0}
.person-research-body ul{margin:0;padding-left:18px}
.person-research-body li{margin:0 0 6px}
@media(max-width:760px){
  #side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .pane-bar{padding:6px 7px 6px 10px}
  #side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .entity-top-action-button,
  #side-pane.has-entity-fixed-head:has(article[data-detail="p"]) #panel-toggle{font-size:.72rem;padding:4px 7px}
  #place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name{font-size:1.42rem}
  .person-story-unit{margin-bottom:16px}
  .person-story-unit > p{font-size:.91rem;line-height:1.74}
  .person-inline-scripture{margin-top:8px;padding:9px 10px}
}

#side-pane.has-entity-fixed-head:has(article[data-detail="p"]) .person-research > summary{display:none}

/* 인물·장소 선택: 누른 단어만 강조(.tag.active). 같은 대상의 다른 등장은 아주 약하게(.tag-same). 절 전체 배경은 절 선택(.verse.sel)에서만. */
.tag.tag-same { background: color-mix(in srgb, var(--highlight-word-bg) 26%, transparent); }

/* ===== Visual hierarchy refinement v1 — Bible first, person study second, map/navigation supporting ===== */
@media (min-width:1100px) {
  #workspace { gap: 10px; }
  #text-pane {
    padding: 20px 22px 18px;
    background: color-mix(in srgb, var(--paper) 97%, var(--accent-soft) 3%);
    border-color: var(--line-strong);
    box-shadow: 0 1px 0 rgba(74,59,49,.035);
  }
  #side-pane {
    border-color: color-mix(in srgb, var(--accent-line) 62%, var(--line) 38%);
    box-shadow: 0 12px 34px rgba(74,59,49,.13);
  }
  #guide-pane {
    border-color: var(--line);
    background: color-mix(in srgb, var(--paper) 98%, var(--tint) 2%);
  }
}

/* Scripture is the primary reading surface. */
.scripture-head {
  padding-bottom: 11px;
  border-bottom: 1px solid var(--line);
}
.chapter-head-nav #passage-title {
  font-family: var(--font-read);
  font-size: 1.16rem;
  font-weight: 720;
  letter-spacing: -.018em;
  color: var(--ink);
}
#verses {
  line-height: 1.86;
  letter-spacing: .005em;
}
#verses .verse {
  border-radius: 8px;
  padding-top: 6px;
  padding-bottom: 6px;
  transition: background-color .14s ease, box-shadow .14s ease;
}
#verses .verse.sel,
#verses .verse.verse-selected {
  background: color-mix(in srgb, #F6E6D4 76%, var(--paper) 24%);
  box-shadow: inset 3px 0 0 #B96F35, 0 0 0 1px rgba(185,111,53,.10);
}
#verses .verse.sel .vnum,
#verses .verse.verse-selected .vnum {
  color: #9A5728;
  font-weight: 760;
}

/* Person detail: identity → overview → narrative, with stronger editorial rhythm. */
#place-fixed-head .entity-sticky-head:has(.person-reader-head) {
  padding-top: 2px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line {
  align-items: baseline;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name,
.person-reader-head .detail-name {
  font-size: 1.72rem;
  line-height: 1.12;
  letter-spacing: -.03em;
  font-weight: 760;
}
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line {
  margin-top: 7px;
  color: var(--ink-3);
}
.person-reader-intro {
  margin: 4px 0 24px;
  padding: 14px 15px;
  border-left: 3px solid color-mix(in srgb, var(--accent) 66%, #B96F35 34%);
  border-radius: 0 10px 10px 0;
  background: color-mix(in srgb, var(--accent-soft) 52%, var(--paper) 48%);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.72;
}
.person-section-title {
  position: relative;
  margin-bottom: 12px;
  padding-left: 11px;
  font-size: .92rem;
  letter-spacing: -.012em;
}
.person-section-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: .18em;
  bottom: .18em;
  width: 3px;
  border-radius: 999px;
  background: var(--accent);
}
.person-overview {
  padding-bottom: 24px;
}
.person-overview .person-facts-compact {
  padding: 12px 0 14px;
  border-top-color: color-mix(in srgb, var(--line) 70%, transparent);
}
.person-fact-row {
  padding: 6px 0;
}
.person-fact-row dt {
  color: var(--ink-3);
  font-weight: 650;
}
.person-fact-row dd {
  color: var(--ink);
  line-height: 1.5;
}
.person-narrative {
  padding-top: 22px;
  border-top: 1px solid var(--line-strong);
}
.person-narrative-section {
  padding: 20px 0 22px 38px;
  border-bottom-color: color-mix(in srgb, var(--line) 74%, transparent);
}
.person-narrative-kicker {
  top: 20px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--accent-line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--accent-ink);
  font-weight: 760;
}
.person-narrative-section h4 {
  margin-bottom: 6px;
  font-size: .96rem;
  font-weight: 735;
}
.person-narrative-section > p {
  color: var(--ink-2);
  line-height: 1.72;
}
.person-scripture-links {
  margin-bottom: 10px;
}
.person-scripture-links .pill {
  font-weight: 650;
  text-decoration-thickness: 1px;
}

/* Bible World: clearly supporting navigation, with one dominant next action. */
#guide-pane .jnav-body {
  padding: 20px 17px 16px;
}
.jnav-head {
  padding-bottom: 16px;
}
.jnav-head .g-title {
  font-size: 1.14rem;
  font-weight: 740;
  letter-spacing: -.018em;
}
.jnav-head p {
  max-width: 24em;
  color: var(--ink-3);
  line-height: 1.55;
}
.jnav-current {
  padding: 12px 13px;
  margin-bottom: 12px;
  border-color: color-mix(in srgb, var(--accent-line) 45%, var(--line) 55%);
  background: color-mix(in srgb, var(--tint) 78%, var(--paper) 22%);
}
.jnav-current > span {
  color: var(--accent-ink);
  letter-spacing: .03em;
}
.jnav-current > strong {
  font-size: .94rem;
  font-weight: 720;
}
.jnav-open {
  min-height: 44px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border-color: color-mix(in srgb, var(--accent) 58%, var(--accent-line) 42%);
  background: color-mix(in srgb, var(--accent-soft) 74%, var(--paper) 26%);
  box-shadow: 0 1px 0 rgba(74,59,49,.04);
  font-weight: 720;
}
.jnav-timeline {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  border-radius: 0;
  padding: 13px 4px 4px;
}

/* Rail remains navigational, never louder than Scripture/detail. */
.rail-btn[aria-current="page"] {
  background: color-mix(in srgb, var(--accent-soft) 72%, var(--paper) 28%);
  color: var(--accent-ink);
  font-weight: 700;
}

/* ===== Person Detail 상단 = 브엘세바(Place) Reader 와 같은 문서형 문법 =====
   헤더 밀도·제목 위계·intro 타이포그래피만 맞춘다(상자·accent border·그림자 없음). 내용·데이터·라우팅은 그대로. */
#place-fixed-head .entity-sticky-head:has(.person-reader-head) { background: var(--paper); padding: 13px 72px 11px 18px; box-shadow: none; border: 0; }
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line { display: flex; align-items: baseline; gap: 8px; margin: 0; }
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name, .person-reader-head .detail-name { font-size: 1.5rem; line-height: 1.1; font-weight: 760; }
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .d-en { margin: 0; font-size: .81rem; font-weight: 500; line-height: 1.15; color: var(--ink-3); }
#place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line { margin: 6px 0 0; font-size: .74rem; line-height: 1.36; color: var(--ink-3); }
.person-reader-flat { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.person-reader-intro { margin: 4px 0 24px; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; font-family: var(--font-read); font-size: 1.1rem; line-height: 1.62; color: var(--accent-ink); letter-spacing: -.01em; word-break: keep-all; overflow-wrap: break-word; }
#side-pane #panel:has(.person-reader-flat) { padding-top: 14px; }
@media (max-width: 760px) {
  #place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name, .person-reader-head .detail-name { font-size: 1.28rem; }
  #place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-title-line { gap: 7px; }
  #place-fixed-head .entity-sticky-head:has(.person-reader-head) .entity-meta-line { font-size: .72rem; }
  .person-reader-intro { font-size: 1.1rem; line-height: 1.62; margin-bottom: 24px; }
}

/* ===== JudeBible Light 2.0 (LIGHT 전용) — 색·표면·테두리·그림자·선택 상태는 Light 범위 안에서만 정의한다. Dark(data-theme="dark" / 시스템 다크)는 위의 기존 구현 그대로. ===== */
:root[data-theme="light"] {
  --jb-bg-canvas:#F3EFE7; --jb-bg-app:#F7F4EE; --jb-bg-panel:#FCFAF6; --jb-bg-elevated:#FFFDF9; --jb-bg-subtle:#F1ECE3; --jb-bg-muted:#EAE3D8;
  --jb-brand:#C36830; --jb-brand-dark:#A65426; --jb-brand-soft:#F7E4D1; --jb-selected-bg:#FDF3E8; --jb-border-accent:#E4A06B;
  --jb-text-primary:#302A26; --jb-text-secondary:#635B54; --jb-text-tertiary:#887F76; --jb-text-inverse:#FFFDF9;
  --jb-border-soft:#ECE4DA; --jb-border-default:#DED4C8; --jb-divider:#E9E2D9;
  --jb-scripture-sel-bg:#FDF1E3; --jb-scripture-sel-border:#EDC59D;
  --jb-shadow-1:0 1px 2px rgba(67,52,39,.05); --jb-shadow-2:0 3px 10px rgba(67,52,39,.07); --jb-shadow-3:0 8px 24px rgba(67,52,39,.10);
  --jb-input-bg:#FBF8F3; --jb-input-border:#E5DDD2; --jb-input-border-focus:#C98451; --jb-input-placeholder:#9B938B;
  --jb-state-hover:rgba(195,104,48,.04); --jb-state-active:rgba(195,104,48,.09); --jb-state-focus:rgba(195,104,48,.14);
  --page:var(--jb-bg-canvas); --paper:var(--jb-bg-panel); --tint:var(--jb-bg-subtle);
  --ink:var(--jb-text-primary); --ink-2:var(--jb-text-secondary); --ink-3:var(--jb-text-tertiary);
  --line:var(--jb-border-soft); --line-strong:var(--jb-border-default);
  --accent:var(--jb-brand); --accent-ink:var(--jb-brand-dark); --accent-soft:var(--jb-brand-soft); --accent-line:var(--jb-border-accent);
  --teal-action:var(--jb-brand-dark); --teal-selection-bg:var(--jb-selected-bg); --teal-selection-bar:var(--jb-brand); --teal-link-line:#E8AD7E; --teal-nav-bg:var(--jb-brand-soft);
  --r-sm:6px; --r-md:10px; --r-lg:14px; --sh-1:var(--jb-shadow-1); --sh-2:var(--jb-shadow-3);
  --map-land-base:#E7DECF; --map-water:#8FAFBD;
}
:root[data-theme="light"] body { background:var(--jb-bg-canvas);color:var(--jb-text-primary); }
:root[data-theme="light"] #text-pane, :root[data-theme="light"] #side-pane, :root[data-theme="light"] #map-pane, :root[data-theme="light"] #guide-pane { background:var(--jb-bg-panel);border-color:var(--jb-border-soft);border-radius:14px;box-shadow:none; }
:root[data-theme="light"] #verses { line-height:1.85;letter-spacing:-.015em; }
:root[data-theme="light"] .verse:hover { background:var(--jb-state-hover); }
:root[data-theme="light"] .verse.sel { background:var(--jb-scripture-sel-bg);box-shadow:inset 0 0 0 1px var(--jb-scripture-sel-border);border-radius:10px; }
:root[data-theme="light"] .btn { border-radius:8px;transition:transform .12s,background .12s; }
:root[data-theme="light"] .btn:hover { background:var(--jb-state-hover);transform:translateY(-1px); }
:root[data-theme="light"] .btn:active { background:var(--jb-state-active);transform:none; }
:root[data-theme="light"] .btn:disabled { opacity:.45;transform:none; }
:root[data-theme="light"] :focus-visible { outline:none;box-shadow:0 0 0 3px var(--jb-state-focus); }
:root[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]), :root[data-theme="light"] select, :root[data-theme="light"] textarea { background:var(--jb-input-bg);border-color:var(--jb-input-border);border-radius:10px; }
:root[data-theme="light"] input::placeholder, :root[data-theme="light"] textarea::placeholder { color:var(--jb-input-placeholder); }
:root[data-theme="light"] input:focus, :root[data-theme="light"] select:focus, :root[data-theme="light"] textarea:focus { border-color:var(--jb-input-border-focus);outline:none;box-shadow:0 0 0 3px rgba(195,104,48,.10); }
:root[data-theme="light"] hr { border-color:var(--jb-divider); }
@media not (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --jb-bg-canvas:#F3EFE7; --jb-bg-app:#F7F4EE; --jb-bg-panel:#FCFAF6; --jb-bg-elevated:#FFFDF9; --jb-bg-subtle:#F1ECE3; --jb-bg-muted:#EAE3D8;
    --jb-brand:#C36830; --jb-brand-dark:#A65426; --jb-brand-soft:#F7E4D1; --jb-selected-bg:#FDF3E8; --jb-border-accent:#E4A06B;
    --jb-text-primary:#302A26; --jb-text-secondary:#635B54; --jb-text-tertiary:#887F76; --jb-text-inverse:#FFFDF9;
    --jb-border-soft:#ECE4DA; --jb-border-default:#DED4C8; --jb-divider:#E9E2D9;
    --jb-scripture-sel-bg:#FDF1E3; --jb-scripture-sel-border:#EDC59D;
    --jb-shadow-1:0 1px 2px rgba(67,52,39,.05); --jb-shadow-2:0 3px 10px rgba(67,52,39,.07); --jb-shadow-3:0 8px 24px rgba(67,52,39,.10);
    --jb-input-bg:#FBF8F3; --jb-input-border:#E5DDD2; --jb-input-border-focus:#C98451; --jb-input-placeholder:#9B938B;
    --jb-state-hover:rgba(195,104,48,.04); --jb-state-active:rgba(195,104,48,.09); --jb-state-focus:rgba(195,104,48,.14);
    --page:var(--jb-bg-canvas); --paper:var(--jb-bg-panel); --tint:var(--jb-bg-subtle);
    --ink:var(--jb-text-primary); --ink-2:var(--jb-text-secondary); --ink-3:var(--jb-text-tertiary);
    --line:var(--jb-border-soft); --line-strong:var(--jb-border-default);
    --accent:var(--jb-brand); --accent-ink:var(--jb-brand-dark); --accent-soft:var(--jb-brand-soft); --accent-line:var(--jb-border-accent);
    --teal-action:var(--jb-brand-dark); --teal-selection-bg:var(--jb-selected-bg); --teal-selection-bar:var(--jb-brand); --teal-link-line:#E8AD7E; --teal-nav-bg:var(--jb-brand-soft);
    --r-sm:6px; --r-md:10px; --r-lg:14px; --sh-1:var(--jb-shadow-1); --sh-2:var(--jb-shadow-3);
    --map-land-base:#E7DECF; --map-water:#8FAFBD;
  }
  :root:not([data-theme]) body { background:var(--jb-bg-canvas);color:var(--jb-text-primary); }
  :root:not([data-theme]) #text-pane, :root:not([data-theme]) #side-pane, :root:not([data-theme]) #map-pane, :root:not([data-theme]) #guide-pane { background:var(--jb-bg-panel);border-color:var(--jb-border-soft);border-radius:14px;box-shadow:none; }
  :root:not([data-theme]) #verses { line-height:1.85;letter-spacing:-.015em; }
  :root:not([data-theme]) .verse:hover { background:var(--jb-state-hover); }
  :root:not([data-theme]) .verse.sel { background:var(--jb-scripture-sel-bg);box-shadow:inset 0 0 0 1px var(--jb-scripture-sel-border);border-radius:10px; }
  :root:not([data-theme]) .btn { border-radius:8px;transition:transform .12s,background .12s; }
  :root:not([data-theme]) .btn:hover { background:var(--jb-state-hover);transform:translateY(-1px); }
  :root:not([data-theme]) .btn:active { background:var(--jb-state-active);transform:none; }
  :root:not([data-theme]) .btn:disabled { opacity:.45;transform:none; }
  :root:not([data-theme]) :focus-visible { outline:none;box-shadow:0 0 0 3px var(--jb-state-focus); }
  :root:not([data-theme]) input:not([type="checkbox"]):not([type="radio"]), :root:not([data-theme]) select, :root:not([data-theme]) textarea { background:var(--jb-input-bg);border-color:var(--jb-input-border);border-radius:10px; }
  :root:not([data-theme]) input::placeholder, :root:not([data-theme]) textarea::placeholder { color:var(--jb-input-placeholder); }
  :root:not([data-theme]) input:focus, :root:not([data-theme]) select:focus, :root:not([data-theme]) textarea:focus { border-color:var(--jb-input-border-focus);outline:none;box-shadow:0 0 0 3px rgba(195,104,48,.10); }
  :root:not([data-theme]) hr { border-color:var(--jb-divider); }

}

/* ===== JudeBible Light 2.0 — SPLIT WORKSPACE: [NAV][RESEARCH PANE][MAP] =====
   연구 패널은 지도 위에 뜨는 overlay 가 아니라 지도와 나란한 작업공간 열이다.
   열리면 지도 영역이 실제로 좁아지고, 닫히면 풀린 폭만큼 넓어진다. (데스크톱 ≥1100px; 그 아래는 기존 동작) */
@property --jb-current-research-width { syntax: "<length>"; inherits: true; initial-value: 0px; }
:root {
  --jb-nav-width: 76px;
  --jb-research-pane-width: 390px;
  --jb-research-pane-min-width: 340px;
  --jb-research-pane-max-width: 460px;
  --jb-research-pane-collapsed-width: 0px;
  --jb-workspace-transition-duration: 280ms;
  --jb-workspace-transition-easing: cubic-bezier(.4, 0, .2, 1);
  --jb-workspace-divider-width: 1px;
  --jb-research-pane-border: var(--line);
  --jb-research-pane-shadow: none;
}
@media (max-width: 1179px) { :root { --jb-research-pane-width: clamp(340px, 32vw, 390px); } }
:root[data-theme="light"] { --jb-research-pane-bg: #FCFAF6; --jb-research-pane-border: #E9E1D7; --jb-research-pane-shadow: 1px 0 4px rgba(67, 52, 39, .035); }
@media not (prefers-color-scheme: dark) { :root:not([data-theme]) { --jb-research-pane-bg: #FCFAF6; --jb-research-pane-border: #E9E1D7; --jb-research-pane-shadow: 1px 0 4px rgba(67, 52, 39, .035); } }

.jb-research-edge-open { display: none; }   /* ≥1100px 의 접힘 상태에서만 보인다 */
@media (min-width: 1100px) {
  body { --jb-current-research-width: var(--jb-research-pane-collapsed-width); transition: --jb-current-research-width var(--jb-workspace-transition-duration) var(--jb-workspace-transition-easing); }
  body[data-research-pane="expanded"] { --jb-current-research-width: var(--jb-research-pane-width); }
  /* 지도 열 = 연구 패널 + 남은 폭을 지도:본문 비율(--map-frac)로 나눈 지도 몫 */
  body[data-view="study"] #stage { grid-template-columns: calc(var(--jb-current-research-width) + (100% - var(--jb-current-research-width) - var(--split-w)) * var(--map-frac)) var(--split-w) minmax(0, 1fr); }
  body[data-view="study"] #map-pane { display: grid; grid-template-columns: var(--jb-current-research-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); }
  body[data-view="study"] #map-pane > .jb-map-region, body[data-view="study"] #map-body { position: relative; inset: auto; grid-column: 2; grid-row: 1; width: 100%; min-width: 0; height: 100%; min-height: 0; overflow: hidden; }
  :root body[data-view="study"] #side-pane {
    position: static; display: flex; grid-column: 1; grid-row: 1; z-index: 2;
    width: auto; min-width: 0; height: 100%; min-height: 0; max-height: none; margin: 0; border-radius: 0;
    border: 0; border-right: min(var(--jb-workspace-divider-width), var(--jb-current-research-width)) solid var(--jb-research-pane-border);
    box-shadow: var(--jb-research-pane-shadow); overflow: hidden; overscroll-behavior: contain;
  }
  body[data-view="study"] #side-pane > * { min-width: calc(var(--jb-research-pane-width) - var(--jb-workspace-divider-width)); }
  body[data-view="study"] #side-pane #panel, body[data-view="study"] #side-pane .panel-stack { overscroll-behavior: contain; }
  /* 접힘: 폭 0 · 내용 숨김 · 클릭 가로채는 층 없음(접히는 동안은 보이다가 폭이 0이 된 뒤에 숨긴다) */
  body[data-view="study"][data-research-pane="collapsed"] #side-pane { visibility: hidden; pointer-events: none; transition: visibility 0s linear var(--jb-workspace-transition-duration); }
  body[data-view="study"][data-research-pane="expanded"] #side-pane { visibility: visible; transition: none; }
  /* 접힌 상태의 compact 재열기 컨트롤: 지도 작업공간 왼쪽 가장자리에 붙는 34px 탭 */
  body[data-view="study"][data-research-pane="collapsed"] .jb-research-edge-open:not([hidden]) {
    display: flex; position: absolute; z-index: 3; left: 0; top: 14px; width: 34px; height: 92px; padding: 0; align-items: center; justify-content: center;
    background: var(--paper); color: var(--ink-2); border: 1px solid var(--line); border-left: 0; border-radius: 0 10px 10px 0; box-shadow: var(--sh-1);
    font: inherit; font-size: var(--fs-helper); font-weight: 600; cursor: pointer;
  }
  .jb-research-edge-open span { writing-mode: vertical-rl; letter-spacing: .08em; }
  .jb-research-edge-open:hover { background: var(--tint); color: var(--accent-ink); }
}
@media (prefers-reduced-motion: reduce) { body { transition: none; } }

/* ===== JudeBible Light 2.0 — SCRIPTURE PANEL DENSITY (COMPACT_EDITORIAL_SCRIPTURE_READER) =====
   크기·간격·정렬만 다룬다. 색 토큰은 건드리지 않는다(Dark 팔레트 그대로). */
:root {
  --jb-content-panel-top-offset: 0px;
  --jb-panel-header-height: 64px;
  --jb-scripture-header-height: 64px; --jb-scripture-header-padding-x: 18px; --jb-scripture-header-padding-y: 12px;
  --jb-scripture-heading-size: 17px; --jb-scripture-heading-weight: 650; --jb-scripture-header-control-height: 32px;
  --jb-scripture-bottom-rail-height: 16px;
  --jb-scripture-font-size: 16.5px; --jb-scripture-line-height: 1.68; --jb-scripture-letter-spacing: -.018em; --jb-scripture-paragraph-gap: 5px;
  --jb-scripture-verse-number-size: 10px; --jb-scripture-verse-number-weight: 600; --jb-scripture-verse-number-width: 28px;
  --jb-original-font-size: 17px; --jb-original-line-height: 1.62; --jb-original-letter-spacing: 0;
  --jb-original-card-padding-x: 14px; --jb-original-card-padding-y: 12px; --jb-original-card-gap: 8px; --jb-original-meta-size: 11px;
  --jb-scripture-section-gap: 10px; --jb-scripture-panel-padding-x: 14px;
}
#text-pane { padding: 0; margin-top: var(--jb-content-panel-top-offset); }
#text-pane .scripture-head { position: relative; top: auto; display: flex; align-items: center; gap: 8px; min-height: var(--jb-panel-header-height); margin: 0; padding: var(--jb-scripture-header-padding-y) var(--jb-scripture-header-padding-x); box-sizing: border-box; }
#text-pane .chapter-head-nav { align-items: center; }
#text-pane .chapter-head-nav #passage-title { font-size: var(--jb-scripture-heading-size); font-weight: var(--jb-scripture-heading-weight); line-height: 1.3; }
#text-pane .scripture-head button { min-height: var(--jb-scripture-header-control-height); }
#text-pane .scripture-head .chapter-head-nav button { height: var(--jb-scripture-header-control-height); }
#text-pane .scripture-scroll-area, #text-pane #verses { min-height: 0; overflow-y: auto; padding: var(--jb-scripture-section-gap) var(--jb-scripture-panel-padding-x) 0; font-size: var(--jb-scripture-font-size); line-height: var(--jb-scripture-line-height); letter-spacing: var(--jb-scripture-letter-spacing); }
.scripture-bottom-rail { flex: none; height: var(--jb-scripture-bottom-rail-height); min-height: var(--jb-scripture-bottom-rail-height); }
#text-pane #verses .verse { padding: 5px 8px 5px calc(var(--jb-scripture-verse-number-width) + 12px); margin: 0 0 var(--jb-scripture-paragraph-gap) 0; }
#text-pane #verses .verse.sel, #text-pane #verses .verse.verse-selected { padding-top: 8px; padding-bottom: 8px; margin-top: 0; margin-bottom: var(--jb-scripture-paragraph-gap); }
#text-pane #verses .vnum { top: 6px; left: 6px; min-width: var(--jb-scripture-verse-number-width); width: var(--jb-scripture-verse-number-width); font-size: var(--jb-scripture-verse-number-size); font-weight: var(--jb-scripture-verse-number-weight); }
#text-pane #verses .verse.sel .vnum, #text-pane #verses .verse.verse-selected .vnum { font-weight: var(--jb-scripture-verse-number-weight); }
/* 원어 */
#verses .ol-body { margin: 0 0 var(--jb-scripture-section-gap); padding: var(--jb-original-card-padding-y) var(--jb-original-card-padding-x); }
#verses .ol-text, #verses .ol-src .ol-text, #verses .ol-text[dir="rtl"], #verses .ol-src .ol-text[dir="rtl"] { font-size: var(--jb-original-font-size); line-height: var(--jb-original-line-height); letter-spacing: var(--jb-original-letter-spacing); margin-top: 4px; }
#verses .ol-head, #verses .ol-krv-head { font-size: var(--jb-original-meta-size); gap: 2px 8px; }
#verses .ol-src { margin-top: var(--jb-original-card-gap); padding-top: var(--jb-original-card-gap); }
#verses .ol-krv-text { line-height: var(--jb-scripture-line-height); }
.ol-card { padding: 8px var(--jb-original-card-padding-x) 10px; margin-top: var(--jb-original-card-gap); }
.ol-card-surface { font-size: 1.25rem; line-height: 1.5; }
.ol-card-surface[dir="rtl"] { font-size: 1.35rem; }
/* 오른쪽 탐색 패널: 같은 구조적 헤더 리듬(제목 시작선) */
#guide-pane .g-body { padding-top: 16px; }

/* ===== Passage WORBS reader projection ===== */
/* Shared narrow-panel editorial design, not a separate page/card. */
.rp-editorial-reader .rp-title{display:block;font-size:calc(1.13rem + 1pt);font-weight:780;line-height:1.36;color:var(--ink);letter-spacing:-.02em}
.rp-editorial-reader .rp-eyebrow{display:block;color:var(--accent-ink);font-size:.78rem;font-weight:700;margin-bottom:8px}
.rp-editorial-reader{padding-left:46px;position:relative}.rp-editorial-reader .rp-reading-nav{position:sticky;top:8px;z-index:6;float:left;display:flex;flex-direction:column;align-items:center;gap:5px;width:38px;margin:12px 8px 0 -45px;padding:3px;border:0;background:transparent}
.rp-editorial-reader .rp-reading-link{display:flex;justify-content:center;align-items:center;width:36px;min-height:104px;text-align:center;padding:8px 5px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--accent-ink);font:650 .78rem/1.4 var(--font-ui);cursor:pointer;box-shadow:0 2px 8px #00000008}.rp-editorial-reader .rp-reading-vertical{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.06em;white-space:nowrap}.rp-editorial-reader .rp-reading-link[aria-current="location"]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:800}
.rp-editorial-reader .rp-reading-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rp-editorial-reader .rp-reader-section[data-reader-tier]::before{display:none}
.rp-editorial-reader .rp-reader-section{scroll-margin-top:85px}
.rp-editorial-reader .rp-subhead{font-size:1.1rem;font-weight:750;color:var(--ink)}
.rp-editorial-reader .rp-section-title{font-size:1rem;font-weight:720;line-height:1.5}
.rp-editorial-reader .rp-overview{background:var(--tint);padding:15px;border:1px solid var(--line);border-radius:12px}
.rp-editorial-reader .rp-overview .rp-commentary-p{font-size:1rem;line-height:1.75}
.rp-editorial-reader .rp-commentary .rp-commentary-p{font-size:calc(1em - 1pt);line-height:1.75}
.rp-editorial-reader .rp-unit{padding-bottom:10px;border-bottom:1px solid var(--line)}
.rp-editorial-reader .rp-central{background:var(--paper)}
.rp-editorial-reader .rp-deep-research{scroll-margin-top:85px}

.rp-reader-head { margin-bottom: 2px; }
.rp-reader-section { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.rp-reader-section:first-of-type { margin-top: 12px; }
.rp-subhead { margin: 0 0 8px; color: var(--ink); font-size: .98rem; letter-spacing: -.01em; }
.rp-section-title { margin: 10px 0 5px; color: var(--ink); font-size: .95rem; }
.rp-commentary-p { margin: 0 0 9px; color: var(--ink); font-size: calc(1em + 1pt); line-height: 1.76; }
.rp-central { margin-top: 12px; padding: 10px 12px; border-left: 3px solid var(--accent, var(--gold)); background: var(--tint); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.rp-central-label { display: block; margin-bottom: 4px; color: var(--accent-ink, var(--ink)); font-size: var(--fs-meta); }
.rp-unit + .rp-unit { margin-top: 14px; }
.rp-lex-card { margin: 8px 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--tint); }
.rp-lex-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.rp-lex-form { font-size: 1.24rem; font-weight: 700; direction: rtl; }
.rp-lex-gloss { color: var(--ink); }
.rp-lex-meta { margin: 4px 0 7px; color: var(--ink-3); font-size: var(--fs-meta); line-height: 1.5; }
.rp-caution-list { margin: 0; padding-left: 1.25rem; }
.rp-caution-list li { margin: 0 0 7px; color: var(--ink-2); line-height: 1.65; }
.rp-canonical { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.rp-canonical summary { cursor: pointer; color: var(--ink-2); font-weight: 650; }
.rp-canonical-list { margin-top: 10px; }
.rp-canonical-row + .rp-canonical-row { margin-top: 10px; }
.rp-canonical-row strong { color: var(--ink); font-size: var(--fs-meta); }
.rp-reader-section[data-reader-tier]::before { display: block; margin-bottom: 5px; color: var(--ink-3); font: 650 .68rem/1.3 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.rp-reader-section[data-reader-tier="glance"]::before { content: "READER · GLANCE"; }
.rp-reader-section[data-reader-tier="commentary"]::before { content: "READER · COMMENTARY"; }
.rp-deep-research { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.rp-deep-summary, .rp-source-relation summary { cursor: pointer; color: var(--ink); font-weight: 720; }
.rp-deep-body { padding-top: 2px; }
.rp-deep-body .rp-reader-section:first-child { margin-top: 10px; }
.rp-discovery { margin: 9px 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: var(--r-sm); }
.rp-discovery-domain { margin: 0; color: var(--accent-ink); font-size: var(--fs-meta); font-weight: 700; }
.rp-source-relation { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
.rp-source-relation summary { color: var(--ink-2); font-size: var(--fs-meta); }
.rp-source-relation-body { padding-top: 8px; }

/* Scene fixture (족장 시대 · 아브라함 · 그랄 체류): Focus / Related 구분과 Navigation Panel 구획. 표시 전용. */
.jnav-fx{display:grid;gap:10px;margin:0 0 14px}
.jnav-fx-sec .sec-h{margin:0 0 6px}
.jnav-path{margin:0;font-size:.82rem;color:var(--ink-2)}
.jnav-ref.is-primary{background:var(--accent-soft);border-color:var(--accent-line);font-weight:650}
.jnav-ent{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:3px 9px;font:.74rem/1.3 var(--font-ui);cursor:pointer;color:var(--accent-ink)}
.jnav-ent[data-nav-role=focus]{background:var(--accent-soft);border-color:var(--accent);font-weight:650}
.gm.gm-related .gm-shape{fill:var(--paper);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}
.gm.gm-focus .gm-shape{stroke:var(--accent-ink);stroke-width:2px;vector-effect:non-scaling-stroke}

/* 족장 시대 overlay: 줄기 탭, 표시 전용 지명, 현대 참고 anchor 표식(클릭 불가·canonical 아님). */
.jnav-tracks{display:flex;gap:4px;margin:0 0 10px;flex-wrap:wrap}
.jnav-track{border:1px solid var(--line);background:var(--paper);color:var(--ink-2);border-radius:999px;padding:4px 11px;font:.78rem/1.3 var(--font-ui);cursor:pointer}
.jnav-track.is-current{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);font-weight:650}
.jnav-places{gap:6px}
.jnav-place{display:inline-flex;flex-direction:column;border:1px dashed var(--line-strong);border-radius:8px;padding:3px 8px;font:.76rem/1.3 var(--font-ui);color:var(--ink-2)}
.jnav-place small{font-size:.64rem;color:var(--ink-3)}
.gm-navref{pointer-events:none}
.gm-navref-dot{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}
.gm-navref-label{opacity:.85}
.jnav-scene-count{margin:0 0 6px;font:.72rem/1.3 var(--font-ui);color:var(--ink-3)}
.jnav-sub{margin:8px 0 0;font-size:.76rem}
.jnav-sub summary{cursor:pointer;color:var(--ink-2)}
.jnav-tracks{position:sticky;top:0;z-index:2;background:var(--paper);padding:4px 0}
.jnav-track{flex:1 1 0;min-width:0;text-align:center}

/* overlay 개략 경로·지명: certainty 가 낮을수록 흐리고 점선. 숨기지 않는다. */
.gm-navref.gm-cert-high .gm-navref-dot{stroke-dasharray:none;fill:var(--accent-soft);stroke-width:2px}
.gm-navref.gm-cert-medium .gm-navref-dot{stroke-dasharray:4 2}
.gm-navref.gm-cert-low .gm-navref-dot{stroke-dasharray:1.5 2.5}
.gm-navref.gm-cert-low .gm-navref-label{opacity:.7}
.gm-navregion ellipse{fill:var(--accent);fill-opacity:.07;stroke:var(--accent);stroke-width:1.4;stroke-dasharray:6 5;opacity:.7;vector-effect:non-scaling-stroke}
.jnav-route{display:inline-flex;flex-direction:column;border-left:3px solid var(--accent);padding:2px 8px;font:.76rem/1.3 var(--font-ui);color:var(--ink-2)}
.jnav-route[data-certainty=low]{border-left-style:dotted}.jnav-route[data-certainty=medium]{border-left-style:dashed}
.jnav-route small,.jnav-place small{font-size:.64rem;color:var(--ink-3)}

/* 족장 시대 장면 패널: 컴팩트 3단(제목+버튼 / 짧은 설명 / 위치 흐름). 읽기 글자는 13px 미만 금지. */
.jnav-tracks .jnav-track{font-size:14px;font-weight:600}
.jnav-scenes{margin:0;padding:0;list-style:none}
.jnav-scenes .jnav-scene{border-bottom:1px solid var(--line)}
.jnav-scene-row{display:flex;align-items:center;gap:8px;min-height:44px}
.jnav-scene-row .jnav-step-btn{flex:1 1 auto;min-width:0;font-size:17px;font-weight:700;line-height:1.3;padding:8px 0;text-align:left}
.jnav-scene-row .jnav-n{font-size:14px}
.jnav-scene-acts{display:flex;gap:6px;flex:0 0 auto}
.jnav-scene-acts button{font:600 13px/1 var(--font-ui);padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--accent-ink);cursor:pointer;white-space:nowrap}
.jnav-scene-acts button:hover{background:var(--accent-soft);border-color:var(--accent-line)}
.jnav-scene .jnav-step-body{padding:0 0 10px 0}
.jnav-desc{margin:0 0 4px;font-size:15px;line-height:1.6;color:var(--ink)}
.jnav-flow{margin:0;font-size:15px;font-weight:600;line-height:1.5;color:var(--accent-ink)}

/* specificity fix: 장면 패널 글자 크기·굵기 */
#guide-pane .jnav-scenes .jnav-scene .jnav-desc{font-size:15px;line-height:1.6;font-weight:400}
#guide-pane .jnav-scenes .jnav-scene .jnav-flow{font-size:15px;line-height:1.5;font-weight:600}
#guide-pane .jnav-scenes .jnav-scene .jnav-scene-row .jnav-step-btn{font-size:17px;font-weight:700}
#guide-pane .jnav-kicker{font-size:13px}
#guide-pane .jnav-scenes .jnav-scene .jnav-scene-acts button{font-size:13px;font-weight:600}

/* 지도 위계: 활성 성경 경로 > 활성 성경 지명 > 맥락 경로·지명 > 지형 > 현대 지명 > 배경. */
:root{--route-casing:#5b2a18;--route-line:#c8622e}
.gm-ovroute-active .gm-ovroute-casing{stroke:var(--route-casing);stroke-width:9px;opacity:.96}
.gm-ovroute-active .gm-ovroute-line{stroke:var(--route-line);stroke-width:5.5px}
.gm-ovroute-active.gm-cert-low .gm-ovroute-line{stroke-dasharray:14 9;stroke-linecap:butt}   /* 불확실한 경로는 긴 파선: 여전히 굵고 읽히지만 확정선으로 보이지 않는다 */
.gm-ovroute-context .gm-ovroute-casing{stroke:var(--route-casing);stroke-width:4px;opacity:.28}
.gm-ovroute-context .gm-ovroute-line{stroke:var(--route-line);stroke-width:2.2px;opacity:.5}
.gm-ovroute-start{fill:var(--paper);stroke:var(--route-casing);stroke-width:2px;vector-effect:non-scaling-stroke}
.gm-ovroute-head{fill:var(--route-casing);stroke:var(--paper);stroke-width:1.2px;vector-effect:non-scaling-stroke}
.gm-navref-label{fill:#2a1a10 !important;font-weight:650 !important;opacity:1 !important}
.gm-navref .gm-navref-dot{stroke:var(--route-casing)}
/* 현대 지명: 낮은 줌 숨김 · 중간 줌 아주 흐리게 · 높은 줌에서만 희미하게. 무채 회갈색. */
svg.gmap .gm-ref-modern text,svg.gmap .gm-ref-extmodern text{fill:#7b6e63 !important;font-weight:400 !important}
svg.gmap .gm-ref-modern .gm-ref-dot,svg.gmap .gm-ref-extmodern .gm-ref-dot{fill:#7b6e63 !important}
svg.gmap[data-modern-zoom=low] .gm-ref-modern,svg.gmap[data-modern-zoom=low] .gm-ref-extmodern{opacity:0}
svg.gmap[data-modern-zoom=mid] .gm-ref-modern,svg.gmap[data-modern-zoom=mid] .gm-ref-extmodern{opacity:.18}
svg.gmap[data-modern-zoom=high] .gm-ref-modern,svg.gmap[data-modern-zoom=high] .gm-ref-extmodern{opacity:.32}
.gm-ovroute{pointer-events:none}
.gm-ovroute polyline{stroke-linecap:round;stroke-linejoin:round;fill:none;vector-effect:non-scaling-stroke}

/* ---- 지도 표시 설정(영구): 현대 지명 진하기 · 경로 강조 · 기본값 버튼 ---- */
.map-settings-pop .set-reset{margin:4px 0 10px;padding:0 0 8px;border-bottom:1px solid var(--line)}
.map-settings-pop .set-reset button{font:inherit;font-size:.8rem;color:var(--ink-2);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:5px 10px;cursor:pointer}
.map-settings-pop .set-reset button:hover{color:var(--ink);border-color:var(--accent)}
.map-settings-pop .set-reset p{margin:6px 0 0}
svg.gmap[data-modern-zoom=mid][data-modern-opacity=faint] .gm-ref-modern,svg.gmap[data-modern-zoom=mid][data-modern-opacity=faint] .gm-ref-extmodern{opacity:.1}
svg.gmap[data-modern-zoom=high][data-modern-opacity=faint] .gm-ref-modern,svg.gmap[data-modern-zoom=high][data-modern-opacity=faint] .gm-ref-extmodern{opacity:.18}
svg.gmap[data-modern-zoom=mid][data-modern-opacity=strong] .gm-ref-modern,svg.gmap[data-modern-zoom=mid][data-modern-opacity=strong] .gm-ref-extmodern{opacity:.4}
svg.gmap[data-modern-zoom=high][data-modern-opacity=strong] .gm-ref-modern,svg.gmap[data-modern-zoom=high][data-modern-opacity=strong] .gm-ref-extmodern{opacity:.62}
svg.gmap[data-route-style=subtle] .gm-route-inferred{opacity:.42;stroke-width:1.6}
svg.gmap[data-route-style=emphasis] .gm-route-inferred{opacity:.95;stroke-width:3}
svg.gmap[data-route-style=subtle] .gm-ovroute-active .gm-ovroute-casing{stroke-width:6px;opacity:.6}
svg.gmap[data-route-style=subtle] .gm-ovroute-active .gm-ovroute-line{stroke-width:3.4px;opacity:.75}
svg.gmap[data-route-style=subtle] .gm-ovroute-context{opacity:.6}
svg.gmap[data-route-style=emphasis] .gm-ovroute-active .gm-ovroute-casing{stroke-width:12px;opacity:1}
svg.gmap[data-route-style=emphasis] .gm-ovroute-active .gm-ovroute-line{stroke-width:7.5px}
svg.gmap[data-route-style=emphasis] .gm-ovroute-context .gm-ovroute-line{opacity:.7}

/* =====================================================================
   성경 여정 지도 — route-first 이동 내비게이션 (2026-10-07)
   위계: 현재 경로 구간 > 현재 경유지 > 현재 성경 지명 > 전체·관련 경로 > 관련 지명 > 지형·수계 > 현대 지명 > 배경.
   선 굵기만으로 의미를 싣지 않는다: 색·점선·불투명도·활성 강조를 함께 쓴다. 경로는 개략(서사 지리)이며 고대 도로 복원이 아니다.
   ===================================================================== */
:root {
  --jn-accent: #A65F34; --jn-accent-ink: #7A4E2A; --jn-on-accent: #FFFAF2; --jn-soft: #F7EBDD; --jn-soft-line: #E3CDB4; --jn-muted: #BDB2A4; --jn-rail: #DDD2C3;
  --route-ink: #6B2A16; --route-halo: rgba(255, 251, 244, .82); --biblical-ink: #2F241C; --biblical-halo: rgba(255, 253, 248, .94);
  --route-casing: var(--route-halo); --route-line: var(--route-ink);
}
:root[data-theme="dark"] {
  --jn-accent: #D88F5B; --jn-accent-ink: #EBB78C; --jn-on-accent: #241810; --jn-soft: #3A3027; --jn-soft-line: #5B4A3A; --jn-muted: #6C6254; --jn-rail: #4B4238;
  --route-ink: #EBA878; --route-halo: rgba(24, 20, 16, .72); --biblical-ink: #F3EADB; --biblical-halo: rgba(22, 19, 16, .9);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --jn-accent: #D88F5B; --jn-accent-ink: #EBB78C; --jn-on-accent: #241810; --jn-soft: #3A3027; --jn-soft-line: #5B4A3A; --jn-muted: #6C6254; --jn-rail: #4B4238;
    --route-ink: #EBA878; --route-halo: rgba(24, 20, 16, .72); --biblical-ink: #F3EADB; --biblical-halo: rgba(22, 19, 16, .9);
  }
}

/* ---- 경로: 현재 구간 4.5px 실선 · 전체/관련 3px 낮은 불투명도 · 추정(low)은 점선 · 이견/대안은 더 옅은 점선 ---- */
.gm-ovroute polyline { stroke-linecap: round; stroke-linejoin: round; fill: none; vector-effect: non-scaling-stroke; }
.gm-ovroute-casing { stroke: var(--route-halo); }
.gm-ovroute-active .gm-ovroute-casing { stroke-width: 8px; opacity: .85; }
.gm-ovroute-active .gm-ovroute-line { stroke: var(--route-ink); stroke-width: 4.5px; stroke-dasharray: none; opacity: 1; }
.gm-ovroute-active.gm-cert-low .gm-ovroute-line { stroke-dasharray: 11 8; stroke-linecap: round; }
.gm-ovroute-context .gm-ovroute-casing { stroke-width: 5.5px; opacity: .5; }
.gm-ovroute-context .gm-ovroute-line { stroke: var(--route-ink); stroke-width: 3px; stroke-dasharray: none; opacity: .5; }
.gm-ovroute-context.gm-cert-low .gm-ovroute-line { stroke-dasharray: 9 7; stroke-linecap: round; opacity: .42; }
.gm-ovroute-alt .gm-ovroute-casing { stroke-width: 5px; opacity: .35; }
.gm-ovroute-alt .gm-ovroute-line { stroke: var(--route-ink); stroke-width: 2.75px; stroke-dasharray: 6 6; opacity: .36; }
.gm-relation-line { stroke: var(--map-label-secondary); stroke-width: 1.75px; opacity: .6; fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; }   /* 관계선: 가장 가늘고 중립 */
svg.gmap[data-route-style=subtle] .gm-ovroute-active .gm-ovroute-casing { stroke-width: 6px; opacity: .7; }
svg.gmap[data-route-style=subtle] .gm-ovroute-active .gm-ovroute-line { stroke-width: 3.2px; opacity: .85; }
svg.gmap[data-route-style=subtle] .gm-ovroute-context { opacity: .7; }
svg.gmap[data-route-style=emphasis] .gm-ovroute-active .gm-ovroute-casing { stroke-width: 9px; opacity: .92; }
svg.gmap[data-route-style=emphasis] .gm-ovroute-active .gm-ovroute-line { stroke-width: 5.5px; }
svg.gmap[data-route-style=emphasis] .gm-ovroute-context .gm-ovroute-line { stroke-width: 3.5px; opacity: .66; }
.gm-ovroute-head { fill: var(--route-ink); stroke: var(--route-halo); stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.gm-ovroute-arrow { fill: var(--route-ink); stroke: var(--route-halo); stroke-width: 1px; vector-effect: non-scaling-stroke; opacity: .92; }
.gm-ovroute-context .gm-ovroute-arrow { opacity: .5; }
.gm-dist-label { fill: var(--biblical-ink); font-family: var(--font-ui); font-weight: 600; stroke: var(--biblical-halo); stroke-linejoin: round; paint-order: stroke fill; pointer-events: none; }

/* ---- 경유지(번호 원) vs 일반 성경 지명(작은 점) ---- */
.gm-wp-dot { fill: var(--paper); stroke: var(--jn-accent); stroke-width: 2px; vector-effect: non-scaling-stroke; transform-box: fill-box; transform-origin: center; transition: transform .17s ease-out; }
.gm-wp .gm-wp-num { fill: var(--jn-accent-ink); stroke: none; font-family: var(--font-ui); font-weight: 700; opacity: 1; pointer-events: none; }
.gm-wp-done .gm-wp-dot { fill: var(--jn-soft); }
.gm-wp-active .gm-wp-dot { fill: var(--jn-accent); stroke: var(--route-ink); stroke-width: 2.5px; }
.gm-wp-active .gm-wp-num { fill: var(--jn-on-accent); }
.gm-wp-halo { fill: var(--jn-accent); opacity: .22; stroke: none; }
.gm-wp-mini .gm-wp-dot { fill: var(--jn-accent); stroke: var(--paper); stroke-width: 1.5px; }
.gm-wp-region { fill: var(--jn-accent); fill-opacity: .07; stroke: var(--jn-accent); stroke-opacity: .45; stroke-width: 1.5px; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.gm.gm-wp:hover .gm-wp-dot, .gm.gm-wp:focus .gm-wp-dot { transform: scale(1.12); }

/* ---- 성경 지명: 14–16px · 600–700 · 짙은 먹갈색 + 흰 후광 ---- */
.gm:not(.gm-modern) .gm-place-label, .gm-navref-label, .gm-wp-label { fill: var(--biblical-ink) !important; stroke: var(--biblical-halo) !important; stroke-linejoin: round; paint-order: stroke fill; opacity: 1; }
.gm-wp-label[data-label-level="L1"], .gm-navref-label[data-label-level="L1"] { font-weight: 700 !important; }
.gm-wp-label[data-label-level="L2"] { font-weight: 620 !important; }
.gm .gm-qmark, .gm-wp-label .gm-qmark { fill: var(--jn-accent-ink); stroke: var(--biblical-halo); }

/* ---- 일반 성경 지명 표식: 호버 1.5배(레이아웃 흔들림 없음: transform-box 기준 SVG 변환) ---- */
.gm .gm-shape, .gm .gm-ring { transition: transform .17s ease-out, opacity .17s ease-out, stroke-width .17s ease-out; }
.gm:hover .gm-shape, .gm:focus .gm-shape, .gm:focus-visible .gm-shape, .gm:focus-within .gm-shape { transform: scale(1.5); }
.gm:hover .gm-ring, .gm:focus .gm-ring, .gm:focus-visible .gm-ring, .gm:focus-within .gm-ring { transform: scale(1.5); }

/* ---- 작은 범례 ---- */
.jn-legend { position: absolute; right: 12px; bottom: 34px; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; max-width: calc(100% - 24px); padding: 6px 12px; font: 600 12px/1 var(--font-ui); color: var(--ink-2); background: color-mix(in srgb, var(--paper) 90%, transparent); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--sh-1); }
.jl-i { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.jl-line { display: inline-block; width: 24px; height: 0; border-top: 3px solid var(--route-ink); }
.jl-all { opacity: .5; } .jl-now { border-top-width: 4.5px; } .jl-inf { border-top-style: dashed; opacity: .85; }
.jl-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--jn-accent); border: 2px solid var(--route-ink); box-sizing: border-box; }

/* ---- 화면 구성: 넓은 지도 + 고정 폭 오른쪽 이동 내비게이션 ---- */
@media (min-width: 761px) {
  body[data-journey-map="on"] .mp-head { left: auto; right: 12px; top: 12px; padding: 3px 10px; opacity: .92; }
  body[data-journey-map="on"] .mp-title { font-size: 12px; font-weight: 650; letter-spacing: .01em; color: var(--ink); white-space: nowrap; }
  body[data-journey-map="on"] #mp-cap { display: none; }
}

/* ---- 오른쪽 패널: 여정 내비게이터 ---- */
#guide-pane .jn-body { padding: 18px 16px 14px; overflow-y: auto; height: 100%; box-sizing: border-box; display: block; }
#guide-pane .jn-head { padding: 0 0 12px; }
#guide-pane .jn-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#guide-pane .jn-era { margin: 0; font: 700 13px/1.2 var(--font-ui); letter-spacing: .02em; color: var(--jn-accent-ink); }
#guide-pane .jn-head .jn-title { margin: 6px 0 2px; font: 800 24px/1.25 var(--font-ui); color: var(--ink); }
#guide-pane .jn-range { margin: 0 0 8px; font: 600 14px/1.3 var(--font-ui); color: var(--ink-3); }
#guide-pane .jn-sum { margin: 0; font: 400 14px/1.5 var(--font-ui); color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#guide-pane .jn-body .jnav-tracks { display: flex; gap: 6px; margin: 2px 0 14px; padding: 4px 0; position: sticky; top: -18px; z-index: 2; background: var(--paper); }
#guide-pane .jn-body .jnav-track { flex: 1 1 0; min-width: 0; padding: 7px 4px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink-2); font: 600 14px/1.2 var(--font-ui); text-align: center; cursor: pointer; }
#guide-pane .jn-body .jnav-track:hover { border-color: var(--jn-accent); color: var(--jn-accent-ink); }
#guide-pane .jn-body .jnav-track.is-current { background: var(--jn-accent); border-color: var(--jn-accent); color: var(--jn-on-accent); font-weight: 800; }
.jn-rail { list-style: none; margin: 0; padding: 0; }
.jn-step { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 10px; padding: 0 0 2px; }
.jn-step::before { content: ""; position: absolute; left: 16px; top: 0; bottom: 0; width: 2px; background: var(--jn-rail); }
.jn-step:first-child::before { top: 20px; }
.jn-step:last-child::before { bottom: auto; height: 20px; }
.jn-step:only-child::before { display: none; }
.jn-node { position: relative; z-index: 1; display: flex; justify-content: center; padding-top: 4px; }
.jn-n { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--paper); background: var(--jn-muted); color: #fff; font: 700 14px/1 var(--font-ui); }
.jn-step.is-current .jn-n { width: 32px; height: 32px; background: var(--jn-accent); color: var(--jn-on-accent); font-size: 15px; box-shadow: 0 0 0 4px color-mix(in srgb, var(--jn-accent) 22%, transparent); }
.jn-step.is-current .jn-node { padding-top: 14px; }
.jn-step-btn { display: block; width: 100%; padding: 8px 2px; border: 0; background: none; text-align: left; cursor: pointer; color: inherit; font: inherit; }
.jn-st { display: block; font: 600 15px/1.35 var(--font-ui); color: var(--ink-2); }
.jn-sr { display: block; margin-top: 1px; font: 500 13px/1.3 var(--font-ui); color: var(--ink-3); }
.jn-step-btn:hover .jn-st { color: var(--jn-accent-ink); }
.jn-step:not(.is-current) .jn-step-btn { padding-bottom: 10px; }
.jn-card { margin: 4px 0 12px; padding: 6px 13px 13px; background: var(--jn-soft); border: 1px solid var(--jn-soft-line); border-radius: 14px; box-shadow: 0 1px 2px rgba(60, 40, 20, .06); }
.jn-card .jn-step-btn { padding: 8px 0 6px; }
.jn-step.is-current .jn-st { font: 800 17px/1.3 var(--font-ui); color: var(--ink); }
.jn-step.is-current .jn-sr { font-size: 13.5px; color: var(--jn-accent-ink); font-weight: 600; }
.jn-acts { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.jn-acts button { padding: 6px 12px; border: 1px solid var(--jn-soft-line); border-radius: 999px; background: var(--paper); color: var(--jn-accent-ink); font: 650 13px/1 var(--font-ui); cursor: pointer; white-space: nowrap; }
.jn-acts button:hover { background: var(--jn-accent); border-color: var(--jn-accent); color: var(--jn-on-accent); }
.jn-meta { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 12px; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--jn-soft-line); font-size: 14px; line-height: 1.5; }
.jn-meta dt { font-weight: 700; color: var(--jn-accent-ink); white-space: nowrap; }
.jn-meta dd { margin: 0; color: var(--ink); }
#guide-pane .jn-pager { margin-top: 10px; }
#guide-pane .jn-other { margin-top: 10px; }
@media (max-width: 1099px) {
  #guide-pane .jn-body { display: block; padding: 12px 14px; height: auto; }
  #guide-pane .jn-sum { display: none; }
  #guide-pane .jn-body .jnav-tracks { position: static; }
}

/* ===== 공유 레이아웃 규칙(앱 전체): 오른쪽 내비게이션 패널을 좁혀 지도와 본문에 폭을 돌려준다 ===== */
:root { --guide-w: clamp(250px, 18vw, 300px); }
#guide-pane .jn-body { padding: 16px 14px 12px; }
#guide-pane .jn-head .jn-title { font-size: 22px; margin: 0; }
#guide-pane .jn-body .jnav-track { font-size: 13px; padding: 6px 2px; }
.jn-step { grid-template-columns: 34px minmax(0, 1fr); }
.jn-st { font-size: 14.5px; }
.jn-step.is-current .jn-st { font-size: 16px; }

/* ---- 제목 줄: 여정 제목 + 연표보기(헤더 단일 위치) ---- */
.jn-erag { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; }
.jn-cardhead { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; }
.jn-cardhead .jn-step-btn { flex: 1 1 auto; min-width: 0; }
.jn-rs { flex: none; margin-top: 8px; display: inline-flex; align-items: center; gap: 3px; padding: 5px 9px 5px 11px; border: 1px solid var(--jn-soft-line); border-radius: 999px; background: var(--paper); color: var(--jn-accent-ink); font: 650 12.5px/1 var(--font-ui); cursor: pointer; white-space: nowrap; }
.jn-rs:hover { border-color: var(--jn-accent); }
.jn-rs.is-open { background: var(--jn-accent); border-color: var(--jn-accent); color: var(--jn-on-accent); }
.jn-rs-ch { display: inline-block; font-size: 15px; line-height: 1; transition: transform .15s; }
.jn-rs.is-open .jn-rs-ch { transform: rotate(180deg); }
.jn-tl { flex: none; padding: 5px 11px; border: 1px solid var(--jn-soft-line); border-radius: 999px; background: var(--paper); color: var(--jn-accent-ink); font: 650 12.5px/1 var(--font-ui); cursor: pointer; white-space: nowrap; }
.jn-tl:hover { background: var(--jn-accent); border-color: var(--jn-accent); color: var(--jn-on-accent); }

/* ---- 레일 정렬: 번호 원 중심 = 세로선 = 카드 제목 줄. 선택 장면은 짧은 연결선으로 레일에 붙는다 ---- */
.jn-step.is-current::after { content: ""; position: absolute; left: 32px; top: 29px; width: 12px; height: 2px; background: var(--jn-accent); border-radius: 1px; }
.jn-card { border-left: 3px solid var(--jn-accent); }
.jn-step.is-current::before { background: linear-gradient(var(--jn-accent), var(--jn-accent)) 0 0 / 2px 100% no-repeat; opacity: .35; }
.jn-step.is-hover:not(.is-current) .jn-n { background: var(--jn-accent-ink); transform: scale(1.12); }
.jn-step.is-hover .jn-st { color: var(--jn-accent-ink); }
.jn-n { transition: transform .15s ease-out, background .15s; }

/* ---- 거리 = 구간(segment) 메타데이터: 번호 경유지 사이 선 위의 알약 ---- */
.gm-seg-label { pointer-events: none; }
.gm-seg-label rect { fill: var(--paper); stroke: var(--route-ink); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.gm-seg-label .gm-dist-label { stroke: none; fill: var(--route-ink); font-weight: 700; }

/* ---- 지도 ↔ 패널 연결 강조 ---- */
.gm-ovroute-active .gm-ovroute-casing { stroke: color-mix(in srgb, var(--jn-accent) 38%, var(--route-halo)); stroke-width: 11px; opacity: .9; }
.gm-wp-from .gm-wp-dot { fill: var(--jn-soft); stroke: var(--route-ink); stroke-width: 2.5px; }
.gm-navref.gm-wp .gm-wp-dot, .gm-navref.gm-wp .gm-wp-num { pointer-events: all; }
.gm-wp.is-hover .gm-wp-dot { transform: scale(1.3); fill: var(--jn-accent); stroke: var(--route-ink); }
.gm-wp.is-hover .gm-wp-num { fill: var(--jn-on-accent); }
.gm-wp.is-hover .gm-wp-label { font-weight: 800 !important; }
@keyframes jn-arrive { 0% { transform: scale(.7); opacity: .55; } 60% { opacity: .3; } 100% { transform: scale(1.25); opacity: .22; } }
.gm-wp.is-arriving .gm-wp-halo { transform-box: fill-box; transform-origin: center; animation: jn-arrive .35s ease-out; }   /* 도착 강조: 절제된 짧은 후광 */
@media (prefers-reduced-motion: reduce) { .gm-wp.is-arriving .gm-wp-halo { animation: none; } }

/* ---- 본문: 선택 장면의 범위를 장면 색·번호표로 표시 ---- */
body[data-journey="on"] .verse.ref-target { background: var(--jn-soft); box-shadow: inset 4px 0 0 var(--jn-accent); }
body[data-journey="on"] .verse.ref-target.ref-start::after, body[data-journey="on"] .verse.ref-target.ref-single::after { content: var(--jn-scene-label, ""); position: absolute; top: 5px; right: 8px; padding: 3px 8px; border-radius: 999px; background: var(--jn-accent); color: var(--jn-on-accent); font: 700 11px/1 var(--font-ui); pointer-events: none; }

/* 좁은 패널에서 제목이 눌리지 않도록: 본문연구 토글은 자리가 모자라면 제목 아래로 내려간다 */
.jn-cardhead { flex-wrap: wrap; }
.jn-cardhead .jn-step-btn { flex: 1 1 130px; }
.jn-rs { margin: 0 0 6px; }
/* Journey must retain the shared research-panel width; do not force the old 340px override. */   /* 여정 보기에서 본문연구 패널은 조금 좁게: 열려도 본문 칼럼이 눌리지 않도록 */

/* 여정 헤더 공통 간격: 시대 줄(시대명 + 연표보기)과 제목 사이 숨 쉴 공간 약 14px. 제목 아래(범위·요약) 간격은 그대로 */
#guide-pane .jn-head .jn-title { margin: 14px 0 0; }

/* ===== MapLibre 병행 렌더러(JBC_MAP_RENDERER=maplibre): 지도 캔버스 위에 같은 SVG 오버레이 ===== */
#map-body #ml-map.ml-map { position: absolute; inset: 0; width: 100%; height: 100%; background: var(--map-water); }   /* maplibre-gl.css(.maplibregl-map{position:relative})보다 우선 */
.ml-map .maplibregl-canvas { outline: none; }
.ml-ovl { position: absolute; inset: 0; pointer-events: none; z-index: 1; overflow: hidden; }
#map-body .ml-ovl svg.gmap { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-height: none; border: 0; background: transparent; pointer-events: none; cursor: default; }
.ml-ovl svg.gmap g.gm, .ml-ovl svg.gmap .gm-wp .gm-wp-dot, .ml-ovl svg.gmap .gm-wp .gm-wp-num, .ml-ovl svg.gmap .gm-wp-label { pointer-events: auto; }
.ml-ovl .jn-legend, .ml-ovl .map-note, .ml-ovl .geo-attr { pointer-events: none; }
.maplibregl-map { font: inherit; }
#ml-print-sheet { display: none; }
@media print { html:has(body[data-ml-print]), body[data-ml-print] { height: auto !important; min-height: 0 !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; } body[data-ml-print] > *:not(#ml-print-sheet) { display: none !important; } body[data-ml-print] #ml-print-sheet { display: block !important; } #ml-print-sheet img { max-width: 100%; max-height: 265mm; width: auto; height: auto; display: block; margin: 0 auto; } }

/* ===== 공통 PlaceCard (search / map / related) — 한 곳에서 정의 ===== */
.gm-navref.gm-wp .gm-wp-label { pointer-events: all; cursor: pointer; }
.gm-navref.gm-wp .gm-wp-dot, .gm-navref.gm-wp .gm-wp-num { cursor: pointer; }
#place-hovercard { position: fixed; z-index: 60; max-width: 300px; min-width: 220px; }
#place-hovercard[hidden] { display: none; }
.pc-map { box-sizing: border-box; padding: 11px 13px 12px; background: var(--paper); border: 1px solid var(--line-strong, #d3c3ae); border-radius: 12px; box-shadow: 0 6px 22px rgba(40, 28, 16, .22), 0 1px 3px rgba(40, 28, 16, .12); color: var(--ink); font: 400 13px/1.45 var(--font-ui); overflow: hidden; }
.pc-map .pc-map-media { display: block; width: calc(100% + 26px); max-width: none; aspect-ratio: 16 / 9; object-fit: cover; margin: -11px -13px 9px; border-bottom: 1px solid var(--line); }
.pc-map .pc-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pc .pc-name { font: 700 15px/1.3 var(--font-ui); color: var(--ink); }
.pc .pc-en { font: 500 12px/1.3 var(--font-ui); color: var(--ink-3); }
.pc .pc-meta { margin: 2px 0 0; color: var(--ink-3); font-size: 12px; }
.pc .pc-sum { margin: 6px 0 0; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pc .pc-row { margin-top: 5px; color: var(--ink-2); font-size: 12.5px; }
.pc .pc-row > span { display: inline-block; min-width: 2.6em; margin-right: 6px; font-weight: 700; color: var(--jn-accent-ink, var(--accent-ink)); }
.pc .pc-cert { margin-top: 6px; color: var(--ink-3); font-size: 12px; }
.pc-map-reference-note { margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.pc-open { margin-top: 9px; padding: 5px 11px; border: 1px solid var(--jn-soft-line, var(--line)); border-radius: 999px; background: var(--paper); color: var(--jn-accent-ink, var(--accent-ink)); font: 650 12.5px/1 var(--font-ui); cursor: pointer; }
.pc-open:hover { background: var(--jn-accent, var(--accent)); color: var(--jn-on-accent, var(--on-accent)); border-color: var(--jn-accent, var(--accent)); }
.pc-search .pc-en { display: block; }
.pc-related { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); cursor: pointer; }
.pc-related .pc-type { font-size: 11.5px; color: var(--ink-3); }
.pc-basic { padding: 16px 18px; }
.pc-basic .pc-sum { display: block; -webkit-line-clamp: unset; }
.pc-scenes { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pc-scenes > span { font-weight: 700; font-size: 12.5px; color: var(--jn-accent-ink, var(--accent-ink)); }
.pc-scene { padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink-2); font: 500 12.5px/1.3 var(--font-ui); cursor: pointer; text-align: left; }
.pc-scene:hover { border-color: var(--jn-accent, var(--accent)); color: var(--jn-accent-ink, var(--accent-ink)); }
.pc-note { margin: 14px 0 0; color: var(--ink-3); font-size: 12.5px; }

/* ===== 기본 장소 패널 = 그랄/브엘세바 Full Place Profile 와 같은 골격(.d-flat). 자료 없는 칸은 상태값으로 같은 자리에 둔다 ===== */
.is-pending { color: var(--ink-3); font-weight: 400; }
.d-flat .d-en.is-pending, .d-flat .d-original.is-pending { font-size: .8rem; }
.d-hero .hero-ph { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 10; border-radius: var(--r-sm); background: var(--tint); border: 1px dashed var(--line-strong); color: var(--ink-3); font-size: .82rem; box-sizing: border-box; }
.hero-cap.is-pending { font-size: .85rem; font-weight: 500; }
.place-standard .qf dd { overflow-wrap: anywhere; }
.pc-scenes-inline { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.place-standard .pc-scene { font-size: .82rem; text-align: left; }
.d-status { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: .76rem; line-height: 1.5; }
.d-status strong { color: var(--ink-2); font-weight: 650; margin-right: 4px; }
.d-status .rs-dot { flex: none; width: 7px; height: 7px; margin-top: .5em; border-radius: 50%; background: var(--line-strong); }

/* ===== Canonical Research Panel Shell — 지명연구 / 본문연구 공통 outer (2026-10-07) ===== */
#side-pane .panel-stack > .rs-shell{flex:none;position:relative;z-index:5;background:var(--paper);border-bottom:1px solid var(--line);padding:10px 22px 12px}
#side-pane .rs-shell[hidden]{display:none}
#side-pane.has-rs-shell .pane-bar{display:none!important}
.rs-shell .rs-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px}
.rs-shell .rs-eyebrow{font-size:.72rem;font-weight:650;letter-spacing:.02em;color:var(--ink-4)}
.rs-shell .rs-collapse{margin:0;padding:4px 9px}
.rs-shell .rs-title{margin:2px 0 0;font-size:1.5rem;line-height:1.25;font-weight:700}
.rs-shell .rs-passage{margin:2px 0 0;font-size:.8rem;color:var(--ink-3,var(--ink-4))}
.rs-shell .rs-switch{display:flex;gap:2px;margin-top:10px;padding:3px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--ink) 5%,transparent)}
.rs-shell .rs-seg{flex:1 1 0;padding:7px 10px;border:0;border-radius:8px;background:transparent;font:inherit;font-size:.86rem;font-weight:600;color:var(--ink-4);cursor:pointer}
.rs-shell .rs-seg.is-on{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 22%,transparent)}
.rs-shell .rs-seg:disabled{opacity:.45;cursor:not-allowed}
/* 모바일 peek 시트: 같은 연구 셸의 압축형(제목+본문 범위 한 줄 · 접기 · 전환 스위치 한 줄). 데스크톱·half/full 시트의 위계는 그대로 */
@media (max-width: 760px) {
  body[data-sheet="peek"] #side-pane .panel-stack > .rs-shell { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto; grid-template-areas: "title passage collapse" "switch switch switch"; column-gap: 8px; row-gap: 5px; align-items: center; padding: 6px 12px 7px; }
  body[data-sheet="peek"] .rs-shell .rs-top { display: contents; }
  body[data-sheet="peek"] .rs-shell .rs-eyebrow { display: none; }
  body[data-sheet="peek"] .rs-shell .rs-collapse { grid-area: collapse; margin: 0; padding: 3px 8px; font-size: .74rem; line-height: 1.2; }
  body[data-sheet="peek"] .rs-shell .rs-title { grid-area: title; margin: 0; font-size: 1rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 55vw; }
  body[data-sheet="peek"] .rs-shell .rs-passage { grid-area: passage; margin: 0; font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body[data-sheet="peek"] .rs-shell .rs-switch { grid-area: switch; margin: 0; padding: 2px; }
  body[data-sheet="peek"] .rs-shell .rs-seg { padding: 5px 6px; font-size: .78rem; }
}
.rs-shell .rs-seg:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
/* 제목은 shell 이 맡는다: 장소 고정 헤더의 이름 줄은 중복이므로 감추고 영문명·원어 줄만 남긴다 */
#side-pane.has-rs-shell #place-fixed-head .detail-name{display:none}
#side-pane.has-rs-shell #place-fixed-head .place-sticky-head{padding-top:6px}
.rs-status{padding:18px 22px}

/* ===== Search card representative image: 16:10, same media as the detail hero ===== */
.ee-card .ee-primary.has-media { grid-template-columns: 112px minmax(0, 1fr); }
.ee-card .ee-thumb { width: 112px; height: auto; aspect-ratio: 16 / 10; border-radius: var(--r-sm); }
.ee-thumb.ee-thumb-ph { background: var(--tint); border: 1px dashed var(--line-strong); box-sizing: border-box; }
@media (max-width: 520px) { .ee-card .ee-primary.has-media { grid-template-columns: 96px minmax(0, 1fr); } .ee-card .ee-thumb { width: 96px; } }

/* ===== 연표 레이아웃(목업): 제목 → 시대 카드(가로 스크롤) → 시대 요약·인물 선택 → 전체 폭 사건 연표 → 연대 흐름.
   그리드 자동 배치 대신 세로 흐름(flex)으로 고정해 요약·카드가 옆으로 몰리거나 빈 공간이 생기지 않게 한다. 오른쪽 사건 상세는 왼쪽 제목과 상단을 맞춘다. ===== */
.tl-page { align-items: start; }
.tl-left { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 0 2px 14px 0; scrollbar-width: thin; }
.tl-left > * { flex: none; }
.tl-page-head { display: block; min-height: 0; padding: 2px 4px 0; }
.tl-head-title { display: block; }
.tl-page-head h1 { margin: 0; font-size: 2.3rem; line-height: 1.15; }
.tl-page-head p { margin: 4px 0 0; white-space: normal; font-size: 1rem; }
.tl-head-context { display: none; }
.tl-era-strip { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: minmax(112px, 1fr); gap: 8px; overflow-x: auto; overflow-y: hidden; padding: 2px 2px 10px; }
.tl-era-card { height: 178px; min-height: 178px; padding: 8px; }
.tl-era-card img, .tl-era-ph { height: 78px; }
.tl-main { display: flex; flex-direction: column; gap: 16px; height: auto; min-height: 0; padding: 0; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.tl-main > * { flex: none; width: 100%; }
.tl-era-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; min-height: 0; padding: 16px 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.tl-era-summary > .tl-sum-text h2 { margin: 0; font-size: 1.9rem; line-height: 1.2; }
.tl-era-summary .tl-sum { margin: 6px 0 0; color: var(--ink-2); }
.tl-era-summary .tl-range { margin: 4px 0 0; color: var(--accent-ink); font-weight: 650; }
.tl-era-summary .tl-track { margin-left: auto; }
.tl-event-sec { display: block; overflow: visible; padding: 0; }
.tl-event-head { margin: 0 0 34px; }
.tl-event-head h3 { font-size: 1.35rem; }
.tl-event-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(124px, 1fr)); gap: 12px; overflow: visible; padding: 0; min-height: 0; }
.tl-event-rail::before { left: 0; right: 0; top: -21px; }
.tl-event-card { height: auto; min-height: 262px; padding: 10px; }
.tl-event-n { top: -34px; }
.tl-event-card::before { top: -21px; height: 21px; }
.tl-event-card img, .tl-event-ph { height: 92px; flex: 0 0 92px; }
.tl-chrono { height: auto; min-height: 0; align-self: stretch; }
.tl-detail { align-self: start; height: 100%; }
@media (max-width: 1180px) { .tl-left { height: auto; overflow: visible; } .tl-detail { height: auto; } }
.tl-page { grid-template-rows: minmax(0, 1fr); }
.tl-event-card { overflow: visible; }
.tl-event-n { z-index: 2; background: var(--ink-3, #8a8478); color: #fff; }
.tl-event-card.is-on .tl-event-n { background: var(--accent); }
.tl-page { align-items: stretch; height: 100%; max-height: 100%; }
.tl-left { height: auto; max-height: 100%; }
.tl-detail { align-self: stretch; height: auto; max-height: 100%; }
#tl-body { height: 100%; min-height: 0; }

/* ===== 연표 한 화면 맞춤: 시대 카드는 가로폭에 딱 맞게(슬라이드 없음), 시대 요약은 한 줄 가로 배치로 낮추고, 연대 흐름까지 스크롤 없이 보이게 ===== */
.tl-left { gap: 10px; }
.tl-page-head h1 { font-size: 2rem; }
.tl-era-strip { grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; overflow: hidden; gap: 6px; padding: 2px 2px 4px; }
.tl-era-card { height: 150px; min-height: 150px; padding: 6px; min-width: 0; overflow: hidden; }
.tl-era-card img, .tl-era-ph { height: 52px; }
.tl-era-card strong { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-era-card span:not(.tl-era-ph) { font-size: .62rem; -webkit-line-clamp: 3; }
.tl-main { gap: 12px; }
.tl-era-summary { align-items: center; padding: 9px 18px; gap: 16px; }
.tl-era-summary > .tl-sum-text { flex: 1 1 auto; min-width: 0; display: flex; align-items: baseline; gap: 14px; }
.tl-era-summary > .tl-sum-text h2 { flex: none; font-size: 1.4rem; white-space: nowrap; }
.tl-era-summary .tl-sum, .tl-era-summary .tl-range { margin: 0; }
.tl-era-summary .tl-sum { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-era-summary .tl-range { flex: none; white-space: nowrap; }
.tl-era-summary .tl-track { flex: none; }
.tl-event-head { margin: 0 0 30px; }
.tl-event-head h3 { font-size: 1.2rem; }
.tl-event-card { min-height: 226px; }
.tl-event-card img, .tl-event-ph { height: 78px; flex: 0 0 78px; }
.tl-chrono { padding: 7px 12px 6px; }
.tl-chrono-head { margin-bottom: 6px; }
.tl-chrono-seg { min-height: 42px; padding: 5px 10px; }
.tl-chrono-axis { margin-top: 2px; }
.tl-event-rail { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
.tl-event-card { min-width: 0; }
.tl-event-card strong { overflow-wrap: anywhere; font-size: .84rem; }
@media (max-width: 1999px) { .tl-era-card { height: 112px; min-height: 112px; } .tl-era-card span:not(.tl-era-ph) { display: none; } .tl-era-card strong { font-size: .74rem; } .tl-era-card small { font-size: .58rem; } }
@media (min-width: 1800px) { .tl-era-card span:not(.tl-era-ph) { display: -webkit-box; } .tl-era-card { height: 150px; } }
.tl-left { padding-bottom: 2px; }

/* 연표 사건 레일: 한 화면 5개 고정 폭, 좌우 쪽 이동(자동 슬라이드 없음). 시간축 눈금 = 본문 범위(연대 수치 데이터 없음) */
.tl-event-rail { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tl-event-head { margin: 0 0 62px; }
.tl-event-rail::before { top: -21px; }
.tl-event-tick { position: absolute; top: -62px; left: 50%; transform: translateX(-50%); max-width: 100%; padding: 0 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; color: var(--ink-3); }
.tl-event-card.is-on .tl-event-tick { color: var(--accent-ink); font-weight: 650; }
.tl-pager { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.tl-pager button { width: 30px; height: 30px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink-2); font-size: 1.1rem; line-height: 1; cursor: pointer; }
.tl-pager button:hover:not(:disabled) { border-color: var(--accent); color: var(--accent-ink); }
.tl-pager button:disabled { opacity: .35; cursor: default; }
.tl-page-ind { font-size: .76rem; color: var(--ink-3); min-width: 64px; text-align: center; }

/* 하단 전체 시대 미니 연표: 항상 보이는 고정 줄(연대 수치 데이터가 없어 균등 간격) */
.tl-left { position: relative; }
.tl-chrono-all { position: sticky; bottom: 0; z-index: 3; margin-top: auto; height: auto; min-height: 0; padding: 8px 12px 10px; background: var(--paper); }
.tl-mini { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 6px 0 0; padding: 0; list-style: none; }
.tl-mini::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: var(--line); }
.tl-mini-seg button { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; width: 100%; padding: 0 2px; border: 0; background: transparent; color: var(--ink-2); cursor: pointer; }
.tl-mini-dot { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--line-strong, var(--line)); background: var(--paper); z-index: 1; }
.tl-mini-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .7rem; }
.tl-mini-seg.is-planned button { opacity: .55; }
.tl-mini-seg button:hover .tl-mini-dot { border-color: var(--accent); }
.tl-mini-seg.is-on .tl-mini-dot { width: 14px; height: 14px; margin: -2px 0; border-color: var(--accent); background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-soft) 72%, transparent); }
.tl-mini-seg.is-on .tl-mini-name { color: var(--accent-ink); font-weight: 700; }
.tl-mini-seg.is-on button { opacity: 1; }

/* Chapter 1 geography foundation presentation geometry — estimated, not authoritative GIS. */
.gm-foundation-estimate{pointer-events:none}
.gm-foundation-area{fill:var(--accent-soft,rgba(170,120,55,.14));stroke:var(--accent,#a85f28);stroke-width:1.8;stroke-dasharray:7 6;vector-effect:non-scaling-stroke}
.gm-foundation-route{fill:none;stroke:var(--accent,#a85f28);stroke-width:2.2;stroke-dasharray:8 6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.gm-foundation-node circle{fill:var(--map-land-base,#f4efe6);stroke:var(--accent,#a85f28);stroke-width:1.5;vector-effect:non-scaling-stroke}
.gm-foundation-node text,.gm-foundation-note{font-size:12px;paint-order:stroke;stroke:var(--map-land-base,#f4efe6);stroke-width:3px;stroke-linejoin:round;fill:var(--text,#3d342d)}
.gm-foundation-note{font-weight:700}
.foundation-link{border-left:3px solid var(--accent,#a85f28);padding-left:10px}

/* Bible World exploration visual refresh — scoped to navigation panel. */
#guide-pane .jnav-body{position:relative;padding:24px 20px;min-height:100%;background:linear-gradient(150deg,var(--paper),color-mix(in srgb,var(--paper) 94%,#eadbc5));}
#guide-pane .jnav-head{padding:5px 0 25px;position:relative}
#guide-pane .jnav-head:after{content:'✧';position:absolute;right:6px;top:0;color:#cdb391;font-size:48px;opacity:.28;pointer-events:none}
#guide-pane .jnav-head .g-title{font-size:clamp(1.45rem,2vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.25;margin-bottom:9px}
#guide-pane .jnav-head p{display:block;font-size:.86rem;line-height:1.6}
#guide-pane .jnav-current{display:grid;grid-template-columns:54px 1fr;gap:3px 14px;align-items:center;min-height:105px;padding:18px;border-radius:18px;background:linear-gradient(115deg,var(--paper),color-mix(in srgb,var(--paper) 78%,#e8d6bc));box-shadow:0 5px 20px rgba(65,45,25,.055);margin-bottom:15px}
#guide-pane .jnav-current:before{content:'▤';grid-column:1;grid-row:1/4;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:27px}
#guide-pane .jnav-current>span{grid-column:2;grid-row:1;padding:0;font-size:.78rem}
#guide-pane .jnav-current>strong{grid-column:2;grid-row:2;font-size:1.18rem;font-weight:780}
#guide-pane .jnav-current>small{grid-column:2;grid-row:3;font-size:.8rem}
#guide-pane .jnav-open{min-height:62px;padding:16px 20px;border-radius:17px;background:linear-gradient(115deg,#ca7833,#a94e20);border:1px solid #b96529;color:#fff;font-size:1.05rem;font-weight:760;box-shadow:0 5px 15px rgba(145,75,30,.16)}
#guide-pane .jnav-open:hover{background:linear-gradient(115deg,#bd6b2b,#944019);color:#fff}
#guide-pane .jnav-open span{color:#fff;font-size:1.3em}
#guide-pane .jnav-timeline{min-height:54px;padding:15px 17px;margin:0 0 18px;border:1px solid var(--line);border-radius:15px;background:var(--paper);box-shadow:0 3px 12px rgba(70,45,20,.04);font-size:.85rem}
#guide-pane .g-context-research{margin-top:clamp(30px,8vh,90px)}
#guide-pane .g-context-research>.sec-h{font-size:1.08rem;font-weight:760;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid var(--line)}
#guide-pane .g-context-research .g-topic{position:relative;margin:0 0 14px;padding:18px 17px 17px 20px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 4px 14px rgba(65,45,25,.045);overflow:hidden}
#guide-pane .g-context-research .g-topic:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
#guide-pane .g-context-research .g-theme{font-size:1.02rem;font-weight:750;line-height:1.4;margin:0 0 9px}
#guide-pane .g-context-research .meta{font-size:.84rem;line-height:1.7;margin:0 0 10px;color:var(--ink-3)}
#guide-pane .g-context-research .g-link{color:var(--accent-ink);font-weight:750}
@media(max-width:1099px){#guide-pane .jnav-body{padding:18px 15px}#guide-pane .jnav-head p{display:block}#guide-pane .g-context-research{margin-top:30px}}

/* Shared region research detail cards — presentation only; no source or authority changes. */
#side-pane #panel:has(article.detail[data-detail="rgn"]){padding:14px 16px 26px;background:linear-gradient(155deg,var(--paper),color-mix(in srgb,var(--paper) 95%,#e8dac5));}
#side-pane article.detail[data-detail="rgn"]{color:var(--ink);}
#side-pane article.detail[data-detail="rgn"]>.d-identity{position:relative;margin:0 0 13px;padding:22px 22px 20px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(115deg,var(--card),color-mix(in srgb,var(--card) 82%,#e9d8c2));overflow:hidden;}
#side-pane article.detail[data-detail="rgn"]>.d-identity:after{content:'〰';position:absolute;right:20px;top:20px;font-size:64px;color:var(--accent-line);opacity:.18;pointer-events:none;}
#side-pane article.detail[data-detail="rgn"]>.d-identity .detail-name{position:relative;z-index:1;font-size:clamp(1.55rem,2.2vw,2.2rem);font-weight:800;line-height:1.23;letter-spacing:-.035em;color:var(--ink);}
#side-pane article.detail[data-detail="rgn"]>.d-identity .d-en{position:relative;z-index:1;font-family:Georgia,serif;font-style:italic;font-size:1.05rem;margin-top:6px;color:var(--ink-2);}
#side-pane article.detail[data-detail="rgn"]>.d-identity .d-kind{position:relative;z-index:1;font-size:.8rem;margin-top:9px;line-height:1.5;}
#side-pane article.detail[data-detail="rgn"]>.d-sec,#side-pane article.detail[data-detail="rgn"]>.d-secondary{position:relative;margin:0 0 12px;padding:19px 18px 19px 62px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 3px 12px rgba(65,45,25,.035);}
#side-pane article.detail[data-detail="rgn"]>.d-sec:before{content:'◇';position:absolute;left:17px;top:17px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:19px;font-weight:700;}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="summary"]:before{content:'▤'}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="research-content"]:before{content:'▣'}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="facts"]:before{content:'◉'}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="scripture"]:before{content:'▥'}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="map"]:before{content:'●'}
#side-pane article.detail[data-detail="rgn"]>.d-sec[data-part="verify-hold"]:before{content:'✓'}
#side-pane article.detail[data-detail="rgn"]>.d-sec>.d-h{font-size:1.03rem;font-weight:780;line-height:1.35;color:var(--ink);margin:0 0 11px;}
#side-pane article.detail[data-detail="rgn"]>.d-sec .d-body{font-size:.9rem;line-height:1.75;word-break:keep-all;overflow-wrap:anywhere;}
#side-pane article.detail[data-detail="rgn"] .rs-block{padding:0 0 14px 12px;margin:0 0 14px 0;border-left:2px solid var(--accent-line);border-bottom:1px solid var(--line);}
#side-pane article.detail[data-detail="rgn"] .rs-block:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
#side-pane article.detail[data-detail="rgn"] .rs-block .d-sub{font-size:.9rem;color:var(--accent-ink);font-weight:760;margin:0 0 5px;}
#side-pane article.detail[data-detail="rgn"] .qf-list{display:grid;gap:0;border-top:1px solid var(--line);}
#side-pane article.detail[data-detail="rgn"] .qf{display:grid;grid-template-columns:minmax(75px,38%) 1fr;gap:12px;padding:9px 6px;border-bottom:1px solid var(--line);align-items:baseline;}
#side-pane article.detail[data-detail="rgn"] .qf dt{font-size:.82rem;color:var(--ink-3);}
#side-pane article.detail[data-detail="rgn"] .qf dd{font-size:.88rem;font-weight:620;color:var(--ink);}
#side-pane article.detail[data-detail="rgn"] .pills{display:flex;flex-wrap:wrap;gap:7px;}
#side-pane article.detail[data-detail="rgn"] .pill{border:1px solid var(--line-strong);background:var(--paper);color:var(--accent-ink);border-radius:999px;padding:7px 12px;}
#side-pane article.detail[data-detail="rgn"]>.research{padding:11px 15px;border:1px solid var(--line);border-radius:13px;background:var(--tint);margin:0 0 10px;}
#side-pane article.detail[data-detail="rgn"]>.research summary{cursor:pointer;font-size:.84rem;color:var(--ink-2);font-weight:650;}
#side-pane article.detail[data-detail="rgn"]>.d-hint{font-size:.73rem;padding:0 4px;}
@media(max-width:760px){#side-pane #panel:has(article.detail[data-detail="rgn"]){padding:10px 10px 20px;}#side-pane article.detail[data-detail="rgn"]>.d-identity{padding:18px 15px;}#side-pane article.detail[data-detail="rgn"]>.d-sec{padding:16px 13px 16px 50px;}#side-pane article.detail[data-detail="rgn"]>.d-sec:before{left:11px;top:14px;width:27px;height:27px;font-size:17px;}#side-pane article.detail[data-detail="rgn"]>.d-sec>.d-h{font-size:.96rem;}#side-pane article.detail[data-detail="rgn"] .qf{grid-template-columns:minmax(62px,36%) 1fr;gap:8px;}}

/* JudeBible mockup Step 1 — navigation rail visual hierarchy; keep actions intact. */
@media(min-width:761px){
#rail{padding:10px 6px;gap:12px;border-color:var(--line);background:var(--card);box-shadow:0 4px 18px rgba(80,55,30,.055)}
#rail .rail-group:not(.rail-util){gap:6px}
#rail .rail-btn{position:relative;min-height:61px;padding:10px 3px;gap:5px;border-left:3px solid transparent;border-radius:10px;color:var(--ink-2);transition:background .16s ease,color .16s ease}
#rail .rail-btn .ico{width:21px;height:21px;flex-shrink:0}
#rail .rail-btn .rail-lab{font-size:.75rem;font-weight:650;line-height:1.25;letter-spacing:-.02em;word-break:keep-all}
#rail .rail-btn:hover{background:var(--tint);color:var(--ink)}
#rail .rail-btn[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);border-left-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-line) 40%,transparent)}
#rail .rail-btn[aria-current="page"] .rail-lab{font-weight:780}
#rail .rail-map-tools{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
#rail .rail-map-tools .map-tool-sep{background:var(--line);opacity:.8}
#rail .rail-btn.util{min-height:45px;padding:7px 2px;color:var(--ink-3)}
#rail .rail-btn.util .ico{width:18px;height:18px}
#rail .rail-btn:focus-visible,#rail .rail-map-tools button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
}

/* JudeBible mockup Step 2 — shared region detail header and compact research cards. */
#side-pane article.detail[data-detail="rgn"]>.d-identity{min-height:152px;display:flex;flex-direction:column;justify-content:flex-end;padding:23px 19px 19px;isolation:isolate;background:linear-gradient(110deg,var(--card) 0%,var(--card) 53%,color-mix(in srgb,var(--card) 72%,#e3c7a2) 100%);}
#side-pane article.detail[data-detail="rgn"]>.d-identity:before{content:'';position:absolute;z-index:-1;right:0;bottom:0;width:47%;height:100%;opacity:.48;background:radial-gradient(ellipse at 77% 83%,color-mix(in srgb,var(--accent-line) 27%,transparent),transparent 66%),linear-gradient(154deg,transparent 50%,color-mix(in srgb,var(--line-strong) 34%,transparent) 51%,transparent 67%);pointer-events:none;}
#side-pane article.detail[data-detail="rgn"]>.d-identity:after{content:'⌁';right:17px;top:10px;font-size:74px;opacity:.15;}
#side-pane article.detail[data-detail="rgn"]>.d-identity .detail-name{font-size:clamp(1.65rem,2.2vw,2.2rem);letter-spacing:-.04em;max-width:95%;text-wrap:balance;}
#side-pane article.detail[data-detail="rgn"]>.d-identity .d-en{font-size:clamp(.94rem,1.3vw,1.12rem);font-style:italic;line-height:1.35;}
#side-pane article.detail[data-detail="rgn"]>.d-identity .d-kind{font-size:.76rem;line-height:1.5;max-width:96%;}
#side-pane article.detail[data-detail="rgn"]>.d-sec{padding-top:16px;padding-bottom:16px;margin-bottom:10px;}
#side-pane article.detail[data-detail="rgn"]>.d-sec>.d-h{margin-bottom:8px;}
#side-pane article.detail[data-detail="rgn"]>.d-sec .d-body{font-size:.86rem;line-height:1.67;}
#side-pane article.detail[data-detail="rgn"] .rs-block{margin-bottom:11px;padding-bottom:11px;}
#side-pane article.detail[data-detail="rgn"] .rs-block .d-sub{font-size:.85rem;}
@media(max-width:760px){#side-pane article.detail[data-detail="rgn"]>.d-identity{min-height:135px;padding:18px 15px;}#side-pane article.detail[data-detail="rgn"]>.d-identity .detail-name{font-size:1.55rem;}#side-pane article.detail[data-detail="rgn"]>.d-sec{padding-top:14px;padding-bottom:14px;}}

/* JudeBible mockup Step 3 — journey map: active segment, numbered stops and legend. */
.jn-legend{right:12px;bottom:26px;gap:7px 12px;padding:8px 13px;border-radius:18px;background:color-mix(in srgb,var(--paper) 94%,transparent);border:1px solid color-mix(in srgb,var(--line) 85%,#c7a78a);box-shadow:0 5px 19px rgba(55,40,24,.12);font-size:11px;line-height:1.3;backdrop-filter:blur(6px)}
.jn-legend .jl-i{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.jn-legend .jl-line{width:25px;flex-shrink:0}
.jn-legend .jl-dot{width:12px;height:12px;flex-shrink:0}
svg.gmap .gm-ovroute-active .gm-ovroute-casing{stroke-width:10px;opacity:.94}
svg.gmap .gm-ovroute-active .gm-ovroute-line{stroke-width:5px;opacity:1}
svg.gmap .gm-ovroute-context .gm-ovroute-line{stroke-width:2.7px;opacity:.46}
svg.gmap .gm-ovroute-context.gm-cert-low .gm-ovroute-line{stroke-dasharray:9 8;opacity:.44}
svg.gmap .gm-wp-active .gm-wp-dot{stroke-width:3px}
svg.gmap .gm-wp-active .gm-wp-halo{opacity:.24}
svg.gmap .gm-wp-active .gm-wp-label{font-weight:800!important}
@media(max-width:650px){.jn-legend{left:10px;right:10px;bottom:24px;max-width:calc(100% - 20px);justify-content:center;border-radius:12px;gap:6px 10px;font-size:10px;padding:7px 9px}}

/* JudeBible mockup Step 4 — scripture reader and original-language continuity. */
#text-pane{--jb-scripture-font-size:17px;--jb-scripture-line-height:1.85;--jb-scripture-verse-number-size:11px;--jb-scripture-paragraph-gap:6px;--jb-scripture-panel-padding-x:15px;}
#text-pane .scripture-head{background:color-mix(in srgb,var(--paper) 96%,transparent);border-bottom:1px solid var(--line);box-shadow:0 2px 9px rgba(65,43,25,.035);}
#text-pane .chapter-head-nav #passage-title{font-weight:760;letter-spacing:-.025em;color:var(--ink);}
#text-pane #verses .verse{position:relative;border-radius:11px;transition:background-color .16s ease,box-shadow .16s ease;}
#text-pane #verses .verse.sel,#text-pane #verses .verse.verse-selected{background:color-mix(in srgb,var(--accent-soft) 68%,var(--paper));border-radius:11px;box-shadow:inset 3px 0 0 var(--accent),inset 0 0 0 1px color-mix(in srgb,var(--accent-line) 68%,transparent);padding-top:10px;padding-bottom:10px;}
#text-pane #verses .verse.sel .vnum,#text-pane #verses .verse.verse-selected .vnum{top:10px;color:var(--accent-ink);font-weight:800;font-variant-numeric:tabular-nums;}
#text-pane #verses .verse.ol-default-active:not(.sel):not(.verse-selected){background:color-mix(in srgb,var(--accent-soft) 36%,var(--paper));border-color:color-mix(in srgb,var(--accent-line) 50%,transparent);box-shadow:inset 2px 0 0 color-mix(in srgb,var(--accent) 65%,transparent);}
#text-pane #verses .ol-body{margin:3px 0 12px;padding:13px 15px;border:1px solid var(--ol-panel-line);border-left:3px solid var(--accent);border-radius:0 0 12px 12px;box-shadow:0 4px 14px rgba(80,55,30,.06);}
#text-pane #verses .ol-head,#text-pane #verses .ol-krv-head{font-weight:750;letter-spacing:.01em;}
#text-pane #verses .ol-src{margin-top:12px;padding-top:11px;border-top:1px solid var(--ol-panel-line);}
#text-pane #verses .ol-text[dir="rtl"]{line-height:1.85;}
#text-pane #verses .ol-card{border:1px solid var(--line);border-radius:10px;}
@media(max-width:760px){#text-pane{--jb-scripture-font-size:16px;--jb-scripture-line-height:1.8;--jb-scripture-panel-padding-x:10px;}#text-pane #verses .ol-body{padding:11px 12px;}}

/* JudeBible mockup Step 5: right exploration panel. */
#guide-pane[data-nav-state="idle"] .jnav-body{padding:22px 16px 18px;min-height:0;height:auto}
#guide-pane[data-nav-state="idle"] .jnav-head{padding:3px 0 21px}
#guide-pane[data-nav-state="idle"] .jnav-head .g-title{font-size:clamp(1.22rem,1.5vw,1.6rem);font-weight:800;line-height:1.3}
#guide-pane[data-nav-state="idle"] .jnav-head p{display:block;max-width:none;font-size:.79rem;line-height:1.65}
#guide-pane[data-nav-state="idle"] .jnav-current{grid-template-columns:48px minmax(0,1fr);gap:3px 12px;padding:16px 13px;min-height:90px;border:1px solid var(--accent-line);border-radius:15px}
#guide-pane[data-nav-state="idle"] .jnav-current:before{width:46px;height:46px;font-size:23px}
#guide-pane[data-nav-state="idle"] .jnav-current>span{font-size:.74rem}
#guide-pane[data-nav-state="idle"] .jnav-current>strong{font-size:1.05rem;line-height:1.35;overflow-wrap:anywhere}
#guide-pane[data-nav-state="idle"] .jnav-current>small{font-size:.76rem;line-height:1.45}
#guide-pane[data-nav-state="idle"] .jnav-open{min-height:55px;margin-bottom:12px;padding:14px 17px;font-size:1rem;box-shadow:0 4px 12px rgba(145,75,30,.13)}
#guide-pane[data-nav-state="idle"] .jnav-open:focus-visible,#guide-pane[data-nav-state="idle"] .jnav-timeline:focus-visible,#guide-pane .g-context-research .g-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#guide-pane[data-nav-state="idle"] .jnav-timeline{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;padding:12px 13px;font-size:.78rem;line-height:1.4}
#guide-pane[data-nav-state="idle"] .jnav-timeline span{flex-shrink:0}
#guide-pane .g-context-research{margin-top:0;padding:15px 16px 20px;border-top:1px solid var(--line)}
#guide-pane .g-context-research>.sec-h{font-size:1rem;line-height:1.4;padding:0 0 10px;margin:0 0 13px}
#guide-pane .g-context-research .g-topic{padding:15px 14px 14px 18px;margin-bottom:11px;border-radius:13px}
#guide-pane .g-context-research .g-theme{font-size:.94rem;line-height:1.45;margin-bottom:7px;overflow-wrap:anywhere}
#guide-pane .g-context-research .meta{font-size:.81rem;line-height:1.7;margin-bottom:9px;word-break:keep-all}
#guide-pane .g-context-research .g-link{font-size:.82rem;line-height:1.5;padding:5px 0;cursor:pointer}
@media(max-width:1099px){#guide-pane[data-nav-state="idle"] .jnav-body{padding:16px 12px 12px}#guide-pane .g-context-research{padding:14px 12px 18px}#guide-pane[data-nav-state="idle"] .jnav-head p{display:block}}

/* JudeBible search mockup Step 1: filter navigation visual contract. */
body[data-view="explore"] .sw-shell{gap:12px}
body[data-view="explore"] .sw-nav{background:var(--paper);border-color:var(--line);border-radius:16px}
body[data-view="explore"] .sw-nav-head{padding:18px 16px 11px}
body[data-view="explore"] .sw-nav-head h2,body[data-view="explore"] .sw-nav-head .sw-title{font-size:1.04rem;font-weight:780;letter-spacing:-.025em;color:var(--ink)}
body[data-view="explore"] .sw-mode{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 12px 13px;padding:4px;background:color-mix(in srgb,var(--tint) 85%,var(--paper));border:1px solid var(--line);border-radius:12px}
body[data-view="explore"] .sw-mode button{min-width:0;padding:9px 3px;border-radius:9px;font-size:.78rem;line-height:1.35;font-weight:680;word-break:keep-all}
body[data-view="explore"] .sw-mode button.is-active,body[data-view="explore"] .sw-mode button[aria-selected="true"]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-line)}
body[data-view="explore"] .sw-search{padding:0 12px 14px}
body[data-view="explore"] #sw-query{min-height:42px;border-radius:11px;padding:10px 12px;background:var(--card);font-size:.84rem;line-height:1.4}
body[data-view="explore"] #sw-query:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body[data-view="explore"] .sw-nav-scroll{padding:0 12px 14px}
body[data-view="explore"] .sw-block{padding:14px 2px;border-top:1px solid var(--line)}
body[data-view="explore"] .sw-block h3{margin-bottom:10px;font-size:.82rem;font-weight:780;color:var(--ink)}
body[data-view="explore"] .sw-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:3px;border-radius:11px;background:var(--tint)}
body[data-view="explore"] .sw-choice button{min-width:0;padding:8px 4px;border-radius:8px;font-size:.76rem;line-height:1.3;word-break:keep-all}
body[data-view="explore"] .sw-choice button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-line)}
body[data-view="explore"] .sw-select-stack select{min-height:38px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--card);font-size:.81rem;color:var(--ink)}
body[data-view="explore"] .sw-adv{padding:13px 2px;border-top:1px solid var(--line)}
body[data-view="explore"] .sw-adv>summary{font-size:.82rem;font-weight:730;color:var(--ink-2)}
body[data-view="explore"] .sw-clear{min-height:37px;margin:10px 12px 14px;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);font-weight:680}
body[data-view="explore"] .sw-nav button:focus-visible,body[data-view="explore"] .sw-nav select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:900px){body[data-view="explore"] .sw-mode button{font-size:.72rem}body[data-view="explore"] .sw-nav-head{padding:13px 12px 9px}}

/* JudeBible search mockup Step 2: results hierarchy and responsive card grid. */
body[data-view="explore"] .sw-main{border-radius:16px;border-color:var(--line);background:var(--paper)}
body[data-view="explore"] .sw-resultbar{min-height:55px;padding:9px 15px;gap:12px;background:color-mix(in srgb,var(--paper) 92%,var(--tint))}
body[data-view="explore"] #sw-summary{font-size:.81rem;color:var(--ink-2);line-height:1.45}
body[data-view="explore"] .sw-view{border:1px solid var(--line);background:var(--tint);border-radius:10px}
body[data-view="explore"] .sw-view button{padding:7px 11px;border-radius:8px;font-weight:660}
body[data-view="explore"] .sw-view button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent-line)}
body[data-view="explore"] .sw-sort select{min-height:34px;border:1px solid var(--line-strong);border-radius:9px;background:var(--card);color:var(--ink);font-size:.79rem}
body[data-view="explore"] .sw-results{padding:13px 13px 20px}
body[data-view="explore"] .ee-set[data-view="card"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-items:stretch;padding:3px 1px 12px}
body[data-view="explore"] .ee-set[data-view="card"]>.ee-item{display:flex;min-width:0}
body[data-view="explore"] .ee-set[data-view="card"] .ee-card{width:100%;min-height:156px;border:1px solid var(--line);border-radius:13px;background:var(--card);box-shadow:0 2px 10px rgba(65,45,25,.035);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
body[data-view="explore"] .ee-set[data-view="card"] .ee-card:hover{border-color:var(--accent-line);box-shadow:0 5px 17px rgba(65,45,25,.09)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-card.is-selected,body[data-view="explore"] .ee-set[data-view="card"] .ee-item:has(.ee-primary.is-selected) .ee-card{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-primary{min-height:0;gap:12px;padding:12px;align-items:start}
body[data-view="explore"] .ee-set[data-view="card"] .ee-primary.has-media{grid-template-columns:clamp(82px,25%,116px) minmax(0,1fr)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-thumb{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:9px;background:var(--tint)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-copy{gap:5px;min-width:0}
body[data-view="explore"] .ee-set[data-view="card"] .sr-ref{font-size:.94rem;line-height:1.3;font-weight:780;overflow-wrap:anywhere}
body[data-view="explore"] .ee-set[data-view="card"] .sr-kind{font-size:.72rem;line-height:1.4}
body[data-view="explore"] .ee-set[data-view="card"] .sr-preview{font-size:.81rem;line-height:1.58;-webkit-line-clamp:2;line-clamp:2;min-height:0;word-break:keep-all}
body[data-view="explore"] .ee-set[data-view="card"] .ee-meta,body[data-view="explore"] .ee-set[data-view="card"] .ee-count{font-size:.73rem;line-height:1.4}
body[data-view="explore"] .ee-set[data-view="card"] .ee-tags{gap:5px;margin-top:5px}
body[data-view="explore"] .ee-set[data-view="card"] .ee-tag{border-radius:7px;padding:3px 7px;font-size:.71rem;line-height:1.35;background:var(--tint)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-primary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
@media(max-width:1200px){body[data-view="explore"] .ee-set[data-view="card"]{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view="explore"] .ee-set[data-view="card"] .ee-primary{gap:9px;padding:10px}body[data-view="explore"] .ee-set[data-view="card"] .ee-primary.has-media{grid-template-columns:88px minmax(0,1fr)}}
@media(max-width:1000px){body[data-view="explore"] .ee-set[data-view="card"]{grid-template-columns:1fr}body[data-view="explore"] .ee-set[data-view="card"] .ee-primary.has-media{grid-template-columns:100px minmax(0,1fr)}}
@media(max-width:600px){body[data-view="explore"] .sw-resultbar{flex-wrap:wrap;gap:7px;padding:9px 10px}body[data-view="explore"] .sw-results{padding:9px 9px 15px}body[data-view="explore"] .ee-set[data-view="card"] .ee-primary.has-media{grid-template-columns:84px minmax(0,1fr)}body[data-view="explore"] .ee-set[data-view="card"] .ee-thumb{aspect-ratio:4/5}}

/* JudeBible search mockup Step 3: consistent card/list hierarchy and selection. */
body[data-view="explore"] .ee-set[data-view="list"]{gap:5px;padding:5px 2px 16px}
body[data-view="explore"] .ee-list-head{margin:2px 2px 7px;padding:10px 14px;gap:14px;border:1px solid var(--line);border-radius:10px;background:var(--tint);color:var(--ink-2);font-size:.75rem;font-weight:730}
body[data-view="explore"] .ee-list-row{position:relative;border:1px solid var(--line);border-radius:11px;background:var(--card);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
body[data-view="explore"] .ee-list-row:hover{border-color:var(--accent-line);box-shadow:0 3px 12px rgba(65,45,25,.06)}
body[data-view="explore"] .ee-list-row.is-selected,body[data-view="explore"] .ee-list-row:has(.ee-primary.is-selected){background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
body[data-view="explore"] .ee-list-row .ee-primary{min-height:82px;gap:14px;padding:12px 14px}
body[data-view="explore"] .ee-list-row .ee-primary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
body[data-view="explore"] .ee-list-name{gap:10px}
body[data-view="explore"] .ee-list-row .ee-thumb{width:88px;height:62px;object-fit:cover;border-radius:8px}
body[data-view="explore"] .ee-list-row .ee-list-symbol{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-ink)}
body[data-view="explore"] .ee-list-row .sr-ref{font-size:.94rem;line-height:1.35;font-weight:780;color:var(--accent-ink);overflow-wrap:anywhere}
body[data-view="explore"] .ee-list-class{font-size:.75rem;line-height:1.45;color:var(--ink-3)}
body[data-view="explore"] .ee-list-desc{font-size:.82rem;line-height:1.6;color:var(--ink-2);word-break:keep-all}
body[data-view="explore"] .ee-list-tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
body[data-view="explore"] .ee-list-tags .ee-tag{padding:4px 7px;border-radius:7px;background:var(--tint);color:var(--ink-2);font-size:.72rem;line-height:1.3}
body[data-view="explore"] .ee-list-chevron{color:var(--accent-ink);font-size:1.2rem}
body[data-view="explore"] .ee-set[data-view="card"] .ee-card.is-selected .sr-ref,body[data-view="explore"] .ee-list-row.is-selected .sr-ref{color:var(--accent-ink)}
body[data-view="explore"] .ee-set[data-view="card"] .ee-card.is-selected .ee-tag,body[data-view="explore"] .ee-list-row.is-selected .ee-tag{background:var(--paper);border-color:var(--accent-line)}
@media(max-width:1360px){body[data-view="explore"] .ee-list-head,body[data-view="explore"] .ee-list-row .ee-primary{gap:10px}}
@media(max-width:900px){body[data-view="explore"] .ee-list-head{display:none}body[data-view="explore"] .ee-list-row .ee-primary{grid-template-columns:minmax(0,1fr) 24px;gap:8px 10px;padding:11px}body[data-view="explore"] .ee-list-row .ee-list-name{grid-column:1}body[data-view="explore"] .ee-list-row .ee-list-desc{grid-column:1}body[data-view="explore"] .ee-list-row .ee-list-tags{grid-column:1}body[data-view="explore"] .ee-list-row .ee-list-chevron{grid-column:2;grid-row:1/span 4}}
@media(max-width:600px){body[data-view="explore"] .ee-list-row .ee-thumb{width:72px;height:54px}body[data-view="explore"] .ee-list-row .ee-list-name{grid-template-columns:72px minmax(0,1fr)}body[data-view="explore"] .ee-list-row .ee-list-name-entity{grid-template-columns:42px minmax(0,1fr)}}

/* JudeBible search mockup Step 4: right-side search detail visual hierarchy. */
body[data-view="explore"] #side-pane{border-color:var(--line)}
body[data-view="explore"] #side-pane .pane-title{font-size:.93rem;font-weight:780;letter-spacing:-.02em}
body[data-view="explore"] #side-pane #panel:has(.sw-detail-single){padding:12px;background:linear-gradient(150deg,var(--paper),color-mix(in srgb,var(--paper) 95%,#e8dac5))}
body[data-view="explore"] .sw-detail-single{display:flex;flex-direction:column;gap:11px;padding:0}
body[data-view="explore"] .sw-detail-single>.d-identity{position:relative;margin:0;padding:18px 16px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(115deg,var(--card),color-mix(in srgb,var(--card) 83%,#ead7be));overflow:hidden}
body[data-view="explore"] .sw-detail-single>.d-identity .detail-name{font-size:clamp(1.35rem,1.7vw,1.85rem);font-weight:800;line-height:1.25;letter-spacing:-.035em;overflow-wrap:anywhere}
body[data-view="explore"] .sw-detail-single>.d-identity .d-en{font-size:.9rem;line-height:1.5}
body[data-view="explore"] .sw-detail-single>.d-identity .d-kind{font-size:.77rem;line-height:1.55}
body[data-view="explore"] .sw-detail-single>.d-sec{position:relative;margin:0;padding:16px 14px 16px 17px;border:1px solid var(--line);border-radius:13px;background:var(--card);box-shadow:0 2px 10px rgba(65,45,25,.035)}
body[data-view="explore"] .sw-detail-single>.d-sec>.d-h{font-size:.94rem;font-weight:780;line-height:1.4;color:var(--ink);margin:0 0 9px}
body[data-view="explore"] .sw-detail-single>.d-sec .d-body{font-size:.84rem;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
body[data-view="explore"] .sw-detail-single .d-sub{font-size:.8rem;line-height:1.45;color:var(--accent-ink);font-weight:710}
body[data-view="explore"] .sw-detail-single .rs-block{margin:0 0 10px;padding:0 0 10px 10px;border-left:2px solid var(--accent-line);border-bottom:1px solid var(--line)}
body[data-view="explore"] .sw-detail-single .rs-block:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}
body[data-view="explore"] .sw-detail-single .qf-list{display:grid;gap:0}
body[data-view="explore"] .sw-detail-single .qf{display:grid;grid-template-columns:minmax(75px,36%) minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
body[data-view="explore"] .sw-detail-single .qf:last-child{border-bottom:0}
body[data-view="explore"] .sw-detail-single .qf dt{font-size:.77rem;color:var(--ink-3)}
body[data-view="explore"] .sw-detail-single .qf dd{font-size:.81rem;color:var(--ink);font-weight:620;overflow-wrap:anywhere}
body[data-view="explore"] .sw-detail-single .pills{display:flex;flex-wrap:wrap;gap:6px}
body[data-view="explore"] .sw-detail-single .pill{border:1px solid var(--line-strong);border-radius:999px;padding:6px 10px;background:var(--paper);color:var(--accent-ink);font-size:.77rem}
body[data-view="explore"] .sw-detail-single .pill:focus-visible,body[data-view="explore"] .sw-detail-single button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body[data-view="explore"] .sw-detail-single img{max-width:100%;height:auto;border-radius:10px}
body[data-view="explore"] .sw-detail-single>.research,body[data-view="explore"] .sw-detail-single>.d-secondary{margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--tint)}
body[data-view="explore"] .sw-detail-single>.d-hint{font-size:.72rem;line-height:1.5}
@media(max-width:900px){body[data-view="explore"] #side-pane #panel:has(.sw-detail-single){padding:9px}body[data-view="explore"] .sw-detail-single{gap:9px}body[data-view="explore"] .sw-detail-single>.d-identity{padding:15px 13px}body[data-view="explore"] .sw-detail-single>.d-sec{padding:14px 12px}}

/* JudeBible search mockup Step 5: empty and single-result presentation. */
body[data-view="explore"] .sw-results:has(> [data-sw-empty]){display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;padding:26px 20px}
body[data-view="explore"] .sw-results>[data-sw-empty]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;width:min(100%,440px);min-height:220px;margin:auto;padding:30px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--card),var(--tint));box-shadow:0 4px 16px rgba(65,45,25,.045);color:var(--ink-2);font-size:.88rem;line-height:1.7;text-align:center;word-break:keep-all}
body[data-view="explore"] .sw-results>[data-sw-empty]:before{content:'⌕';display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent-ink);font-family:Georgia,serif;font-size:3rem;line-height:1}
body[data-view="explore"] .sw-results>[data-sw-empty]:after{content:'검색어를 바꾸거나 왼쪽의 검색 범위와 필터를 조정해 보세요.';display:block;max-width:290px;padding-top:12px;border-top:1px solid var(--line);font-size:.79rem;line-height:1.6;color:var(--ink-3)}
body[data-view="explore"] .sw-results:has(> [data-ref-error])>[data-sw-empty]:after{content:'성경 구절 입력 형식을 확인한 뒤 다시 검색해 보세요.'}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-set[data-view="card"]{grid-template-columns:minmax(0,1fr);max-width:640px;margin-inline:auto}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-card{min-height:175px;border-color:var(--accent-line);box-shadow:0 5px 18px rgba(65,45,25,.07)}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-primary.has-media{grid-template-columns:clamp(90px,24%,132px) minmax(0,1fr);gap:15px;padding:15px}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .sr-preview{-webkit-line-clamp:3;line-clamp:3}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="list"]>.ee-item:only-child) .ee-list-row{border-color:var(--accent-line);box-shadow:0 4px 14px rgba(65,45,25,.06)}
@media(max-width:600px){body[data-view="explore"] .sw-results>[data-sw-empty]{min-height:200px;padding:24px 16px}body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-primary.has-media{grid-template-columns:84px minmax(0,1fr);gap:10px;padding:11px}}

/* RESTORE_JUDEBIBLE_SEARCH_FOUR_COLUMN_CARDS — container-responsive restoration. */
body[data-view="explore"] .sw-results{container-type:inline-size;container-name:jbc-search-results}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:stretch}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item{display:flex;min-width:0}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-card{width:100%;height:auto;min-height:0;align-self:stretch}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-primary{min-height:0;height:auto;align-content:start;gap:8px;padding:10px}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-primary.no-media{grid-template-columns:minmax(0,1fr)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-primary.has-media{grid-template-columns:minmax(62px,32%) minmax(0,1fr)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-thumb{max-width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-copy{min-width:0}
body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-card-extra{grid-column:1/-1}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-set[data-view="card"]{grid-template-columns:minmax(0,1fr);max-width:380px;margin-inline:0}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-card{min-height:0}
@container jbc-search-results (max-width:1050px){body[data-view="explore"] .sw-results .ee-set[data-view="card"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container jbc-search-results (max-width:780px){body[data-view="explore"] .sw-results .ee-set[data-view="card"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container jbc-search-results (max-width:510px){body[data-view="explore"] .sw-results .ee-set[data-view="card"]{grid-template-columns:minmax(0,1fr)}}

/* Card root is the ee-item itself; avoid reserving a phantom inner card. */
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card{display:flex;flex-direction:column;min-width:0;width:100%;height:auto;min-height:0;align-self:stretch}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card>.ee-primary{flex:0 0 auto;min-height:0;height:auto;align-content:start;padding:10px;gap:8px}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card>.ee-primary.no-media{grid-template-columns:minmax(0,1fr)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card>.ee-primary.has-media{grid-template-columns:minmax(62px,32%) minmax(0,1fr)}
body[data-view="explore"] .sw-results>.sw-sec:only-child:has(.ee-set[data-view="card"]>.ee-item:only-child) .ee-item.ee-card{min-height:0}

/* JudeBible workspace isolation: prevent timeline/search/study cross-view bleed. */
body:not([data-view="explore"]) #search-workspace{display:none!important;visibility:hidden!important;pointer-events:none!important}
body:not([data-view="timeline"]) #timeline-pane{display:none!important;visibility:hidden!important;pointer-events:none!important}
body[data-view="timeline"] #search-workspace{display:none!important}
body[data-view="timeline"] #stage,body[data-view="timeline"] #side-pane,body[data-view="timeline"] #guide-pane{visibility:hidden!important;pointer-events:none!important}
body[data-view="explore"] #timeline-pane{display:none!important}
body[data-view="explore"] #stage{visibility:hidden!important;pointer-events:none!important}
body[data-view="study"] #timeline-pane,body[data-view="study"] #search-workspace{display:none!important}

/* Topic board belongs only to the study workspace, never timeline or search. */
body:not([data-view="study"]) #topic-board{display:none!important;visibility:hidden!important;pointer-events:none!important}

/* JudeBible search dark-theme card contrast repair; preserve light palette. */
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 2px 10px rgba(0,0,0,.18)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card:hover{background:var(--raised);border-color:var(--accent-line)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card.is-selected,:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card:has(.ee-primary.is-selected){background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .sr-ref{color:var(--accent-ink)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .sr-kind,:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-meta,:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-count{color:var(--ink-2)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .sr-preview{color:var(--ink)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-tag{background:var(--tint);color:var(--ink-2);border-color:var(--line-strong)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card.is-selected .ee-tag{background:var(--paper);color:var(--ink-2)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"] .ee-primary{color:var(--ink)}
@media(prefers-color-scheme:dark){
:root:not([data-theme="light"]):not([data-theme="dark"]) body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card{background:var(--paper);color:var(--ink)}
}

/* JudeBible search dark-theme complete surface repair: cards, lists, inputs, sorting. */
:root[data-theme="dark"] body[data-view="explore"]{--card:var(--paper)}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query,
:root[data-theme="dark"] body[data-view="explore"] .sw-nav .sw-select-stack select,
:root[data-theme="dark"] body[data-view="explore"] .sw-main .sw-sort select{background:#221d18;color:#f2e9dc;border-color:var(--line-strong);color-scheme:dark}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query::placeholder{color:#aa9c89;opacity:1}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query:focus{background:#221d18;color:#f2e9dc;border-color:var(--accent)}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav .sw-select-stack select:disabled,
:root[data-theme="dark"] body[data-view="explore"] .sw-main .sw-sort select:disabled{background:#1a1714;color:#a79b89;opacity:1}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 2px 10px rgba(0,0,0,.16)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row:hover{background:var(--raised);border-color:var(--accent-line)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row.is-selected,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row:has(.ee-primary.is-selected){background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-row .ee-primary{color:var(--ink)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-row .ee-list-desc{color:var(--ink-2)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-row .ee-list-class{color:var(--ink-3)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-row .ee-list-tags .ee-tag{background:var(--tint);color:var(--ink-2);border-color:var(--line-strong)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-row.is-selected .ee-tag{background:var(--paper)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-head{background:var(--tint);color:var(--ink-2);border-color:var(--line)}
:root[data-theme="dark"] body[data-view="explore"] .sw-view{background:var(--tint);border-color:var(--line)}
:root[data-theme="dark"] body[data-view="explore"] .sw-view button{color:var(--ink-2)}
:root[data-theme="dark"] body[data-view="explore"] .sw-view button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink)}

/* JudeBible timeline proposal palette v1   scoped; no global token mutation. */
body[data-view="timeline"] #timeline-pane{
 --tl-indigo:#4B5F8A;--tl-sand:#C8A96B;--tl-sage:#8E9A57;--tl-teal:#4F8A86;--tl-plum:#7A668F;--tl-rose:#B56F5E;--tl-lavender:#9A93B5;
 --tl-focus:#B56F5E;--tl-focus-ink:#9B4938;--tl-focus-soft:#F9EDE6;--tl-focus-line:#CF8068;
 --tl-surface:#FFFCF7;--tl-surface-alt:#F6F0E7;--tl-edge:#E7DCCD;--tl-text:#352D28;--tl-muted:#756B61;
}
body[data-view="timeline"] #timeline-pane .tl-page-head h1{color:var(--tl-text)}
body[data-view="timeline"] #timeline-pane .tl-page-head p{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-era-card,
body[data-view="timeline"] #timeline-pane .tl-event-card{background:var(--tl-surface);border-color:var(--tl-edge);color:var(--tl-text);box-shadow:0 2px 9px rgba(72,48,29,.035)}
body[data-view="timeline"] #timeline-pane .tl-era-card:hover,
body[data-view="timeline"] #timeline-pane .tl-event-card:hover{border-color:var(--tl-sand)}
body[data-view="timeline"] #timeline-pane .tl-era-card.is-on,
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on{background:var(--tl-focus-soft);border-color:var(--tl-focus-line);box-shadow:0 0 0 1px var(--tl-focus-line)}
body[data-view="timeline"] #timeline-pane .tl-era-card.is-on strong,
body[data-view="timeline"] #timeline-pane .tl-era-card.is-on small,
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on strong,
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-ref{color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-era-card span:not(.tl-era-ph),
body[data-view="timeline"] #timeline-pane .tl-event-card span:not(.tl-event-ph){color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-event-n{background:var(--tl-indigo);color:#fff}
body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n+2) .tl-event-n{background:var(--tl-plum)}
body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n) .tl-event-n{background:var(--tl-sage)}
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-n{background:var(--tl-rose);color:#fff}
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-tick{color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-era-summary,
body[data-view="timeline"] #timeline-pane .tl-chrono,
body[data-view="timeline"] #timeline-pane .tl-chrono-all{background:var(--tl-surface);border-color:var(--tl-edge);color:var(--tl-text)}
body[data-view="timeline"] #timeline-pane .tl-era-summary .tl-range,
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-on .tl-mini-name{color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-on .tl-mini-dot{background:var(--tl-rose);border-color:var(--tl-rose)}
body[data-view="timeline"] #timeline-pane .tl-detail{background:var(--tl-surface);color:var(--tl-text);border-color:var(--tl-edge)}
body[data-view="timeline"] #timeline-pane .tl-detail h2{color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-detail-badge{background:var(--tl-focus-soft);color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-detail-lead,
body[data-view="timeline"] #timeline-pane .tl-detail-facts dt{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-detail-facts,
body[data-view="timeline"] #timeline-pane .tl-detail-facts div{border-color:var(--tl-edge)}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane{
 --tl-focus:#C8A96B;--tl-focus-ink:#E8C47F;--tl-focus-soft:#30271D;--tl-focus-line:#B38A51;
 --tl-surface:#1B1A19;--tl-surface-alt:#24211E;--tl-edge:#40382F;--tl-text:#F2E9DC;--tl-muted:#B9AB98;
}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card{box-shadow:0 2px 10px rgba(0,0,0,.18)}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-n{background:#6577A4}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n+2) .tl-event-n{background:#83739E}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n) .tl-event-n{background:#83945B}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-n{background:#C28D57;color:#18130E}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-on,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on{background:#28231C}

/* JudeBible timeline contrast refinement v2   scoped to timeline surfaces. */
body[data-view="timeline"] #timeline-pane{
 --tl-edge:#DCCDBB;--tl-muted:#675B50;--tl-text:#2D2927;
 --tl-indigo-ink:#3C527B;--tl-teal-ink:#356C69;--tl-sage-ink:#526530;--tl-plum-ink:#625179;
}
body[data-view="timeline"] #timeline-pane .tl-era-card:not(.is-on){background:#FFFCF8}
body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned{opacity:1;background:var(--tl-surface-alt);border-color:var(--tl-edge)}
body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned strong{color:var(--tl-text)}
body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned small,
body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned span:not(.tl-era-ph){color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-era-summary .tl-sum,
body[data-view="timeline"] #timeline-pane .tl-event-desc,
body[data-view="timeline"] #timeline-pane .tl-event-ref,
body[data-view="timeline"] #timeline-pane .tl-event-card small,
body[data-view="timeline"] #timeline-pane .tl-detail-lead,
body[data-view="timeline"] #timeline-pane .tl-detail-facts dt,
body[data-view="timeline"] #timeline-pane .tl-related small{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-event-card strong,
body[data-view="timeline"] #timeline-pane .tl-detail-ref,
body[data-view="timeline"] #timeline-pane .tl-detail-facts dd,
body[data-view="timeline"] #timeline-pane .tl-related button{color:var(--tl-text)}
body[data-view="timeline"] #timeline-pane .tl-detail-facts div,
body[data-view="timeline"] #timeline-pane .tl-related,
body[data-view="timeline"] #timeline-pane .tl-related button{border-color:var(--tl-edge)}
body[data-view="timeline"] #timeline-pane .tl-event-n{background:var(--tl-indigo-ink)}
body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n+2) .tl-event-n{background:var(--tl-plum-ink)}
body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n) .tl-event-n{background:var(--tl-sage-ink)}
body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-n{background:#AC5543}
body[data-view="timeline"] #timeline-pane .tl-mini-seg button{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-on button{color:var(--tl-focus-ink)}
body[data-view="timeline"] #timeline-pane .tl-mini-name{color:inherit}
body[data-view="timeline"] #timeline-pane .tl-mini-dot{border-color:#C8B9A8;background:var(--tl-surface)}
body[data-view="timeline"] #timeline-pane .tl-event-head button:not(.is-on),
body[data-view="timeline"] #timeline-pane .tl-pager button{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-event-head button.is-on{background:#B65F3D;color:#fff}
body[data-view="timeline"] #timeline-pane .tl-detail-badge{background:#F1DDD0;color:#844029}
body[data-view="timeline"] #timeline-pane .tl-detail-actions button:focus-visible,
body[data-view="timeline"] #timeline-pane .tl-event-card:focus-visible,
body[data-view="timeline"] #timeline-pane .tl-era-card:focus-visible{outline:2px solid var(--tl-teal-ink);outline-offset:2px}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane{
 --tl-edge:#52483D;--tl-muted:#C4B8A9;--tl-text:#F4EEE4;
 --tl-indigo-ink:#92AAD9;--tl-teal-ink:#80C2BA;--tl-sage-ink:#B1C27B;--tl-plum-ink:#BBA9D7;
}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card:not(.is-on){background:#1D1C1B}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned{background:#211F1D;border-color:#403A34}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned strong{color:#D2C8BA}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned small,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-planned span:not(.tl-era-ph){color:#AEA292}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card.is-on,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on{background:#30291F;border-color:#C8A96B}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:not(.is-on){background:#1F1E1C}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-n{background:#657CA9;color:#fff}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n+2) .tl-event-n{background:#806B9D;color:#fff}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:nth-child(3n) .tl-event-n{background:#687B41;color:#fff}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-n{background:#C8A96B;color:#1A1510}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on .tl-event-ref,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card.is-on strong{color:#F3D69B}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:not(.is-on) .tl-mini-name{color:#AEA292}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-dot{border-color:#766859;background:#24211E}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-detail-badge{background:#393025;color:#F0D3A4}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-head button.is-on{background:#C8A96B;color:#18130E}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-detail-actions button:focus-visible,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-event-card:focus-visible,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-era-card:focus-visible{outline-color:var(--tl-teal-ink)}
/* Timeline event-number light-only text contrast; original circle fills preserved. */
:root[data-theme="light"] body[data-view="timeline"] #timeline-pane .tl-event-card:not(.is-on) .tl-event-n{
 color:#FFFFFF;font-weight:800;text-shadow:0 1px 1px rgba(0,0,0,.24);
}

/* Timeline redemption-flow era-color rhythm: 7-tone mini nodes. */
body[data-view="timeline"] #timeline-pane .tl-mini-seg{--era-dot:#4B5F8A;--era-name:#46597D}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+2){--era-dot:#B78A40;--era-name:#8B6329}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+3){--era-dot:#788D45;--era-name:#52652D}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+4){--era-dot:#4F8A86;--era-name:#326E6B}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+5){--era-dot:#7A668F;--era-name:#635275}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+6){--era-dot:#B56F5E;--era-name:#945446}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+7){--era-dot:#8D80AD;--era-name:#695C89}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:not(.is-on) .tl-mini-dot{
 background:var(--era-dot);border-color:var(--era-dot);
 box-shadow:0 0 0 2px var(--tl-surface),0 0 0 3px color-mix(in srgb,var(--era-dot) 35%,var(--tl-edge));
}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:not(.is-on) .tl-mini-name{color:var(--tl-muted)}
body[data-view="timeline"] #timeline-pane .tl-mini-seg:not(.is-on):hover .tl-mini-name{color:var(--era-name)}
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-planned:not(.is-on) button{opacity:1}
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-planned:not(.is-on) .tl-mini-dot{opacity:.72}
body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-on .tl-mini-dot{
 background:var(--tl-rose);border-color:var(--tl-rose);box-shadow:0 0 0 4px color-mix(in srgb,var(--tl-rose) 22%,transparent);
}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg{--era-dot:#829BCE;--era-name:#B6C9ED}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+2){--era-dot:#C8A96B;--era-name:#E5C991}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+3){--era-dot:#A0B66D;--era-name:#C3D495}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+4){--era-dot:#79B9B4;--era-name:#A0D6D0}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+5){--era-dot:#A997C3;--era-name:#D0BDE5}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+6){--era-dot:#CD9587;--era-name:#E6B3A7}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:nth-child(7n+7){--era-dot:#B2A7D0;--era-name:#D0C9E8}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg:not(.is-on) .tl-mini-dot{
 background:var(--era-dot);border-color:var(--era-dot);
 box-shadow:0 0 0 2px #1B1A19,0 0 0 3px color-mix(in srgb,var(--era-dot) 42%,#40382F);
}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane .tl-mini-seg.is-on .tl-mini-dot{
 background:#C8A96B;border-color:#C8A96B;box-shadow:0 0 0 4px rgba(200,169,107,.2);
}

/* JudeBible search reference palette v1: light/dark cohesive surfaces. */
body[data-view="explore"]{
 --sx-page:#F7F3EC;--sx-panel:#FFFDF9;--sx-card:#FFFCF7;--sx-control:#FFFFFF;
 --sx-muted:#675E55;--sx-quiet:#83776A;--sx-ink:#2E3238;--sx-line:#E4D9CB;
 --sx-focus:#B56F5E;--sx-focus-ink:#954836;--sx-focus-bg:#F9EEE6;
 --sx-blue:#4B5F8A;--sx-gold:#C8A96B;--sx-teal:#4F8A86;--sx-sage:#8E9A57;--sx-plum:#7A668F;
}
body[data-view="explore"] .sw-nav,
body[data-view="explore"] .sw-main{background:var(--sx-panel);border-color:var(--sx-line)}
body[data-view="explore"] .sw-resultbar{background:var(--sx-panel);border-color:var(--sx-line)}
body[data-view="explore"] #sw-summary{color:var(--sx-muted)}
body[data-view="explore"] .sw-nav-head h2,body[data-view="explore"] .sw-nav .sw-block h3{color:var(--sx-ink)}
body[data-view="explore"] .sw-mode,body[data-view="explore"] .sw-choice{background:var(--sx-page);border-color:var(--sx-line)}
body[data-view="explore"] .sw-mode button,body[data-view="explore"] .sw-choice button{color:var(--sx-muted)}
body[data-view="explore"] .sw-mode button[aria-selected="true"],body[data-view="explore"] .sw-mode button.is-active,
body[data-view="explore"] .sw-choice button[aria-pressed="true"]{background:var(--sx-focus-bg);color:var(--sx-focus-ink);box-shadow:inset 0 0 0 1px var(--sx-focus)}
body[data-view="explore"] .sw-nav #sw-query,body[data-view="explore"] .sw-nav .sw-select-stack select,
body[data-view="explore"] .sw-main .sw-sort select{background:var(--sx-control);color:var(--sx-ink);border-color:var(--sx-line)}
body[data-view="explore"] .sw-nav #sw-query::placeholder{color:var(--sx-quiet);opacity:1}
body[data-view="explore"] .sw-nav #sw-query:focus{border-color:var(--sx-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--sx-focus) 18%,transparent)}
body[data-view="explore"] .sw-nav .sw-clear{background:var(--sx-panel);border-color:var(--sx-line);color:var(--sx-muted)}
body[data-view="explore"] .sw-view{background:var(--sx-page);border-color:var(--sx-line)}
body[data-view="explore"] .sw-view button{color:var(--sx-muted)}
body[data-view="explore"] .sw-view button[aria-pressed="true"]{background:var(--sx-focus-bg);color:var(--sx-focus-ink);box-shadow:inset 0 0 0 1px var(--sx-focus)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card,
body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row{background:var(--sx-card);border-color:var(--sx-line);color:var(--sx-ink)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card:hover,
body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row:hover{border-color:var(--sx-gold)}
body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card.is-selected,
body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row.is-selected{background:var(--sx-focus-bg);border-color:var(--sx-focus);box-shadow:inset 3px 0 0 var(--sx-focus)}
body[data-view="explore"] .sw-results .sr-ref{color:var(--sx-focus-ink)}
body[data-view="explore"] .sw-results .sr-preview,body[data-view="explore"] .sw-results .ee-list-desc{color:var(--sx-muted)}
body[data-view="explore"] .sw-results .ee-meta,body[data-view="explore"] .sw-results .ee-count,
body[data-view="explore"] .sw-results .ee-list-class,body[data-view="explore"] .sw-results .sr-kind{color:var(--sx-muted)}
/* Reuse approved search palette: readable secondary labels without altering color tokens. */
body[data-view="explore"] .sw-results .pc-en,
body[data-view="explore"] #brand-home small,
body[data-view="explore"] .pane-title,
body[data-view="explore"] .d-original,
body[data-view="explore"] #notice{color:var(--sx-muted)}
/* Active Search label: use the already-approved dark-enough action ink. */
body[data-view="explore"] #rail-search[aria-current="page"] .rail-lab{color:var(--sx-focus-ink)}
body[data-view="explore"] .sw-results .ee-tag,
body[data-view="explore"] .sw-results .ee-list-tags .ee-tag{background:var(--sx-page);border-color:var(--sx-line);color:var(--sx-muted)}
body[data-view="explore"] .sw-results .ee-list-head{background:var(--sx-page);border-color:var(--sx-line);color:var(--sx-muted)}
body[data-view="explore"] #side-pane{background:var(--sx-panel);border-color:var(--sx-line)}
body[data-view="explore"] #side-pane #panel:has(.sw-detail-single){background:var(--sx-panel)}
body[data-view="explore"] .sw-detail-single>.d-identity,
body[data-view="explore"] .sw-detail-single>.d-sec{background:var(--sx-card);border-color:var(--sx-line)}
body[data-view="explore"] .sw-detail-single .detail-name,body[data-view="explore"] .sw-detail-single .d-h{color:var(--sx-ink)}
body[data-view="explore"] .sw-detail-single .d-body,body[data-view="explore"] .sw-detail-single .d-sub{color:var(--sx-muted)}
:root[data-theme="dark"] body[data-view="explore"]{
 --sx-page:#11191E;--sx-panel:#151B20;--sx-card:#202930;--sx-control:#1D262E;
 --sx-muted:#C5D0D5;--sx-quiet:#A3B0B8;--sx-ink:#F1F4F2;--sx-line:#34424B;
 --sx-focus:#D3A461;--sx-focus-ink:#F3CD89;--sx-focus-bg:#303027;
 --sx-blue:#8DA3D0;--sx-gold:#D3AE70;--sx-teal:#73B5B3;--sx-sage:#AFBE7C;--sx-plum:#AA9BC5;
}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query,
:root[data-theme="dark"] body[data-view="explore"] .sw-nav .sw-select-stack select,
:root[data-theme="dark"] body[data-view="explore"] .sw-main .sw-sort select{background:var(--sx-control);color:var(--sx-ink);border-color:var(--sx-line);color-scheme:dark}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query:focus{background:var(--sx-control);color:var(--sx-ink);border-color:var(--sx-focus)}
:root[data-theme="dark"] body[data-view="explore"] .sw-nav #sw-query::placeholder{color:var(--sx-quiet)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row{background:var(--sx-card);color:var(--sx-ink);border-color:var(--sx-line)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card:hover,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row:hover{background:#26323A;border-color:var(--sx-gold)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="card"]>.ee-item.ee-card.is-selected,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-set[data-view="list"]>.ee-item.ee-list-row.is-selected{background:var(--sx-focus-bg);border-color:var(--sx-focus);box-shadow:inset 3px 0 0 var(--sx-focus)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .sr-preview,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-desc{color:var(--sx-muted)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-meta,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-count,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-class,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .sr-kind{color:var(--sx-quiet)}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-tag,
:root[data-theme="dark"] body[data-view="explore"] .sw-results .ee-list-tags .ee-tag{background:#29353C;border-color:#465861;color:#DCE5E6}
:root[data-theme="dark"] body[data-view="explore"] .sw-results .sr-ref{color:var(--sx-focus-ink)}
:root[data-theme="dark"] body[data-view="explore"] .sw-view button[aria-pressed="true"]{background:var(--sx-focus-bg);color:var(--sx-focus-ink)}

/* JudeBible passage-study proposal palette v1: scoped UI chrome, preserve map semantics. */
body[data-view="study"]{
 --st-bg:#F8F4EB;--st-panel:#FFFDF8;--st-card:#FBF7EF;--st-edge:#E4D9C7;
 --st-ink:#302C28;--st-muted:#6D6359;--st-soft:#F4EADB;
 --st-indigo:#4B5F8A;--st-gold:#C8A96B;--st-teal:#4F8A86;--st-green:#466D5D;--st-plum:#7A668F;
 --st-action:#A56D2D;--st-action-ink:#FFFFFF;--st-action-soft:#F0E0C6;
}
body[data-view="study"] #text-pane,
body[data-view="study"] #side-pane,
body[data-view="study"] #guide-pane{background:var(--st-panel);border-color:var(--st-edge);color:var(--st-ink)}
body[data-view="study"] #map-pane{border-color:var(--st-edge)}
body[data-view="study"] #text-pane .pane-head,
body[data-view="study"] #side-pane .pane-bar{border-color:var(--st-edge)}
body[data-view="study"] #text-pane .scripture-head,
body[data-view="study"] #text-pane #passage-title{color:var(--st-ink)}
body[data-view="study"] #text-pane .verse:not(.sel):not(.verse-selected):not(.ref-target){color:var(--st-ink)}
body[data-view="study"] #text-pane .verse:hover:not(.sel){background:var(--st-soft)}
body[data-view="study"] #text-pane #verses .verse.sel,
body[data-view="study"] #text-pane #verses .verse.verse-selected{background:var(--st-action-soft);box-shadow:inset 3px 0 0 var(--st-gold);color:var(--st-ink)}
body[data-view="study"] #text-pane #verses .verse.sel .vnum,
body[data-view="study"] #text-pane #verses .verse.verse-selected .vnum{color:#865D26}
body[data-view="study"] #side-pane .pane-title,
body[data-view="study"] #side-pane .d-name,
body[data-view="study"] #side-pane .d-title{color:var(--st-ink)}
body[data-view="study"] #side-pane .d-theme,
body[data-view="study"] #side-pane .d-scripture,
body[data-view="study"] #side-pane .d-summary{color:var(--st-muted)}
body[data-view="study"] #side-pane .d-facts,
body[data-view="study"] #side-pane .d-facts div,
body[data-view="study"] #side-pane .rp-fact{border-color:var(--st-edge)}
body[data-view="study"] #guide-pane .jnav-body{background:var(--st-panel)}
body[data-view="study"] #guide-pane .jnav-current{background:var(--st-card);border-color:var(--st-edge)}
body[data-view="study"] #guide-pane .jnav-current>strong,
body[data-view="study"] #guide-pane .jnav-head .g-title{color:var(--st-ink)}
body[data-view="study"] #guide-pane .jnav-current>small,
body[data-view="study"] #guide-pane .jnav-head p{color:var(--st-muted)}
body[data-view="study"] #guide-pane .jnav-open{background:linear-gradient(120deg,#C6974E,#A66C29);border-color:#A67537;color:#FFFFFF}
body[data-view="study"] #guide-pane .jnav-open:hover{background:linear-gradient(120deg,#B8863B,#915923)}
body[data-view="study"] #guide-pane .jnav-timeline{background:var(--st-card);border-color:var(--st-edge);color:var(--st-ink)}
body[data-view="study"] #guide-pane .g-context-research .g-topic{background:var(--st-card);border-color:var(--st-edge)}
body[data-view="study"] #guide-pane .g-context-research .g-topic:before{background:var(--st-green)}
body[data-view="study"] #guide-pane .g-context-research .g-topic .g-link{color:var(--st-indigo)}
body[data-view="study"] #guide-pane .g-context-research .g-topic .g-link:hover{color:var(--st-action)}
body[data-view="study"] #side-pane .rs-shell,
body[data-view="study"] #side-pane .research,
body[data-view="study"] #side-pane .rp-panel{border-color:var(--st-edge)}
body[data-view="study"] #side-pane .rp-panel{background:var(--st-card)}
body[data-view="study"] #guide-pane .jnav-current:before{background:var(--st-action-soft);color:var(--st-action)}
:root[data-theme="dark"] body[data-view="study"]{
 --st-bg:#101316;--st-panel:#171A1C;--st-card:#222629;--st-edge:#3C4040;
 --st-ink:#F3F0E9;--st-muted:#C3BAAD;--st-soft:#273038;
 --st-indigo:#94ACD7;--st-gold:#D8AD65;--st-teal:#7FBDBC;--st-green:#82B29B;--st-plum:#AC9BC8;
 --st-action:#D8A45C;--st-action-ink:#191610;--st-action-soft:#393023;
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse.sel,
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse.verse-selected{background:#3A3024;box-shadow:inset 3px 0 0 var(--st-gold);color:var(--st-ink)}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse.sel .vnum,
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse.verse-selected .vnum{color:#F2CC8B}
:root[data-theme="dark"] body[data-view="study"] #guide-pane .jnav-open{background:linear-gradient(120deg,#D9AB68,#AF7A38);border-color:#D0A05F;color:#1B1710}
:root[data-theme="dark"] body[data-view="study"] #guide-pane .jnav-open span{color:#1B1710}
:root[data-theme="dark"] body[data-view="study"] #guide-pane .jnav-open:hover{background:linear-gradient(120deg,#E3B775,#BF8947)}
:root[data-theme="dark"] body[data-view="study"] #guide-pane .g-context-research .g-topic .g-link{color:var(--st-teal)}
:root[data-theme="dark"] body[data-view="study"] #side-pane .rp-panel{background:var(--st-card);color:var(--st-ink)}
:root[data-theme="dark"] body[data-view="study"] #guide-pane .jnav-current:before{background:var(--st-action-soft);color:var(--st-gold)}

/* JudeBible dark region-research readability: repair light card variable leak. */
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"]{
 --card:var(--st-card);--ink:var(--st-ink);--ink-2:var(--st-muted);
 --line:var(--st-edge);--line-strong:#51585B;
}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"]>.d-identity{
 background:linear-gradient(115deg,#262B2E 0%,#24282A 55%,#32302A 100%);
 border-color:var(--st-edge);color:var(--st-ink);
}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"]>.d-sec,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"]>.d-secondary{
 background:var(--st-card);border-color:var(--st-edge);color:var(--st-ink);
}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .detail-name,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .d-h,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .d-body,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .qf dd{
 color:var(--st-ink);
}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .d-en,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .d-kind,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .qf dt{
 color:var(--st-muted);
}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .rs-block .d-sub{color:#D8AD65}
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .rs-block,
:root[data-theme="dark"] body[data-view="study"] #side-pane article.detail[data-detail="rgn"] .qf{border-color:var(--st-edge)}

/* JudeBible study/journey palette final pass: UI-only contrast and surface parity. */
body[data-view="study"] #side-pane .panel-stack>.rs-shell{background:var(--st-panel);border-color:var(--st-edge);color:var(--st-ink)}
body[data-view="study"] #side-pane .rs-shell .rs-title{color:var(--st-ink)}
body[data-view="study"] #side-pane .rs-shell .rs-passage,
body[data-view="study"] #side-pane .rs-shell .rs-eyebrow{color:var(--st-muted)}
body[data-view="study"] #side-pane .rs-shell .rs-switch{border-color:var(--st-edge);background:var(--st-card)}
body[data-view="study"] #side-pane .rs-shell .rs-seg{color:var(--st-muted)}
body[data-view="study"] #side-pane .rs-shell .rs-seg.is-on{background:var(--st-panel);color:var(--st-ink)}
body[data-view="study"] #side-pane .rs-shell .rs-seg:focus-visible{outline-color:var(--st-teal)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-body{background:var(--st-panel);color:var(--st-ink)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-head .jn-title,
body[data-view="study"][data-journey="on"] #guide-pane .jn-meta dd{color:var(--st-ink)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-range,
body[data-view="study"][data-journey="on"] #guide-pane .jn-sum,
body[data-view="study"][data-journey="on"] #guide-pane .jn-sr{color:var(--st-muted)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-st{color:var(--st-ink)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-step:not(.is-current) .jn-st{color:var(--st-muted)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-body .jnav-tracks{background:var(--st-panel)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-body .jnav-track{border-color:var(--st-edge);color:var(--st-muted)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-body .jnav-track.is-current{background:var(--jn-accent);border-color:var(--jn-accent);color:var(--jn-on-accent)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-card{background:var(--st-card);border-color:var(--st-gold)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-acts button{background:var(--st-panel);color:var(--st-action);border-color:var(--st-edge)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-acts button:hover{background:var(--st-action-soft);color:var(--st-action)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-meta{border-color:var(--st-edge)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-meta dt{color:var(--st-action)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-step::before{background:var(--st-edge)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-n{background:#74695E;color:#fff;border-color:var(--st-panel)}
body[data-view="study"][data-journey="on"] #guide-pane .jn-step.is-current .jn-n{background:var(--st-action);color:var(--st-action-ink)}
body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target{background:var(--st-action-soft);box-shadow:inset 3px 0 0 var(--st-gold);color:var(--st-ink)}
body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target .vnum{color:#865D26}
body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target.ref-start:after,
body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target.ref-single:after{background:var(--st-action);color:var(--st-action-ink)}
:root[data-theme="dark"] body[data-view="study"] #side-pane .rs-shell .rs-seg.is-on{background:var(--st-card);color:var(--st-ink)}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-card{background:#342B22;border-color:#9C7849}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-step:not(.is-current) .jn-st{color:#D0C5B6}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-acts button{background:#1C2225;color:#E8C58D;border-color:#60503B}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-acts button:hover{background:#453727;color:#F0D5A3}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-n{background:#817A71;color:#FFFFFF;border-color:#171A1C}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #guide-pane .jn-step.is-current .jn-n{background:#D8A45C;color:#191610}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target{background:#3A3024;box-shadow:inset 3px 0 0 #D8AD65;color:#F3F0E9}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target .vnum{color:#F2CC8B}
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target.ref-start:after,
:root[data-theme="dark"] body[data-view="study"][data-journey="on"] #text-pane #verses .verse.ref-target.ref-single:after{background:#D8A45C;color:#191610}

/* JudeBible search header cohesion: title -> query -> category tabs -> filters. */
body[data-view="explore"] .sw-nav>.sw-nav-head{order:0;padding:17px 14px 6px}
body[data-view="explore"] .sw-nav>.sw-search{order:1;display:block;padding:0 12px 10px;margin:0}
body[data-view="explore"] .sw-nav>.sw-mode{order:2;margin:0 12px 12px;padding:4px}
body[data-view="explore"] .sw-nav>.sw-nav-scroll{order:3}
body[data-view="explore"] .sw-nav>.sw-clear{order:4}
body[data-view="explore"] .sw-nav>.sw-search>.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body[data-view="explore"] .sw-nav #sw-query{display:block;width:100%;margin:0;min-height:44px;border-radius:10px}
body[data-view="explore"] .sw-nav>.sw-search:focus-within #sw-query{outline:2px solid var(--sx-focus);outline-offset:1px}
body[data-view="explore"] .sw-nav>.sw-nav-head .sw-title{margin:0;line-height:1.35}
body[data-view="explore"] .sw-nav>.sw-mode button{min-height:33px}
@media(max-width:900px){body[data-view="explore"] .sw-nav>.sw-nav-head{padding:14px 12px 6px}body[data-view="explore"] .sw-nav>.sw-search{padding:0 10px 9px}body[data-view="explore"] .sw-nav>.sw-mode{margin:0 10px 10px}}

/* Related-passage targets match the chapter-entry first-verse highlight. */
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target:not(.sel):not(.verse-selected){
 background:var(--highlight-verse-bg);
 border:1px solid color-mix(in srgb,var(--highlight-verse-border) 65%,transparent);
 color:var(--st-ink);
 box-shadow:0 1px 6px var(--highlight-verse-shadow);
 opacity:1;
}
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target.ref-single:not(.sel):not(.verse-selected){
 border-radius:14px;margin:4px 0;padding-top:8px;padding-bottom:8px;
}
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target.ref-start:not(.sel):not(.verse-selected){
 border-radius:14px 14px 0 0;margin:4px 0 0;border-bottom:0;box-shadow:inset 0 1px 0 var(--highlight-verse-border);
}
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target.ref-middle:not(.sel):not(.verse-selected){
 border-radius:0;margin:0;border-top:0;border-bottom:0;box-shadow:none;
}
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target.ref-end:not(.sel):not(.verse-selected){
 border-radius:0 0 14px 14px;margin:0 0 4px;border-top:0;box-shadow:inset 0 -1px 0 var(--highlight-verse-border);
}
body[data-view="study"]:not([data-journey="on"]) #text-pane #verses .verse.ref-target:not(.sel):not(.verse-selected) .vnum{
 color:var(--vnum-active,var(--accent-ink));font-weight:700;
}

/* Geography map caption matches the journey map caption typography. */
body[data-journey-map="off"] .mp-title{font-size:12px;font-weight:650;letter-spacing:.01em;white-space:nowrap;}

/* JudeBible shared person research panel — editorial common design v1. */
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]){
 --person-navy:#203C68;--person-copper:#A86C36;--person-cream:#FFF6EA;
 --person-cream-2:#F9EFE3;--person-rule:#E7D9C6;--person-ink:#243548;--person-muted:#687281;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) .pane-bar{
 background:var(--paper);border-bottom:1px solid var(--person-rule);
 min-height:48px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) .pane-title{color:var(--person-navy);font-weight:760}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) .entity-top-action-button{
 background:linear-gradient(120deg,#C69758,#996126);color:#fff;border-color:#A87643;
 border-radius:9px;padding:7px 11px;font-weight:750;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) #panel-toggle{border-radius:9px}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) #place-fixed-head{
 background:var(--paper);border-bottom:1px solid var(--person-rule);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane #place-fixed-head .entity-sticky-head:has(.person-reader-head){
 background:linear-gradient(115deg,var(--paper) 52%,var(--person-cream) 100%);
 padding:16px 16px 15px 20px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane #place-fixed-head .entity-sticky-head:has(.person-reader-head) .detail-name,
body:is([data-view="study"],[data-view="explore"]) #side-pane .person-reader-head .detail-name{
 color:var(--person-navy);font-size:1.62rem;font-weight:800;letter-spacing:-.035em;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane .person-reader-head .d-en{color:var(--person-navy);font-weight:620}
body:is([data-view="study"],[data-view="explore"]) #side-pane .person-reader-head .d-original{color:var(--person-muted)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-flat{padding-bottom:20px}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro{
 position:relative;margin:7px 0 19px;padding:18px 15px 17px 35px;
 background:linear-gradient(145deg,#FFF9EF,#F7EADC);border:1px solid #EADBC8;border-radius:12px;
 font-family:var(--font-read);font-size:.97rem;line-height:1.76;color:#8A442D;word-break:keep-all;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro:before{
 content:"“";position:absolute;left:11px;top:7px;color:#C89B60;font:700 2.3rem/1 Georgia,serif;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-section-title{
 display:flex;align-items:center;gap:9px;margin:0 0 13px;
 font-size:.94rem;color:var(--person-navy);font-weight:780;line-height:1.4;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-section-title:before{
 content:"";display:inline-block;flex:none;width:7px;height:18px;border-radius:4px;background:var(--person-copper);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-overview{
 margin:0 0 8px;padding:0 0 17px;border-bottom:1px solid var(--person-rule);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-facts-compact{margin:0;padding:0;border-top:1px solid var(--person-rule)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row{
 display:grid;grid-template-columns:minmax(86px,34%) minmax(0,1fr);gap:8px;
 border-bottom:1px solid var(--person-rule);padding:9px 8px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(odd){background:color-mix(in srgb,var(--person-cream) 54%,transparent)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row dt{color:var(--person-muted);font-size:.78rem;font-weight:650}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row dd{color:var(--person-ink);font-size:.86rem;line-height:1.55}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-link{color:var(--person-copper);text-underline-offset:3px}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative{
 margin:0;padding:19px 0 0;border:0;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section{
 margin:0 0 8px;padding:0;border:1px solid var(--person-rule);
 border-radius:11px;background:var(--paper);overflow:hidden;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-summary{
 display:flex;align-items:center;gap:9px;min-height:47px;padding:9px 11px;cursor:pointer;
 color:var(--person-navy);font-size:.85rem;font-weight:770;list-style:none;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-summary::-webkit-details-marker{display:none}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-kicker{
 position:static;display:grid;place-items:center;flex:none;width:28px;height:28px;
 border:1.5px solid var(--person-copper);border-radius:50%;background:var(--paper);
 color:var(--person-copper);font-size:.75rem;font-weight:750;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-heading{flex:1;min-width:0}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-accordion-arrow{
 flex:none;display:block;width:8px;height:8px;border-right:1.8px solid var(--person-copper);
 border-bottom:1.8px solid var(--person-copper);transform:rotate(45deg);transition:transform .15s;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] details[open]>.person-narrative-summary .person-accordion-arrow,
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] details[open]>summary .person-accordion-arrow{transform:rotate(225deg)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open]{
 background:color-mix(in srgb,var(--person-cream) 20%,var(--paper));border-color:#DCC7AA;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-content{padding:0 12px 13px 48px}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-story-unit>p{
 color:var(--person-ink);font-size:.86rem;line-height:1.73;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-story-ref{color:var(--person-copper);font-size:.76rem}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-scripture{
 background:var(--person-cream-2);border-left:3px solid var(--person-copper);
 border-radius:0 8px 8px 0;padding:12px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-theology{padding:19px 0 21px;border-color:var(--person-rule)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-theology p{color:var(--person-ink);font-size:.88rem}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-scripture{padding:17px 0;border-top:1px solid var(--person-rule)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-scripture>summary{
 align-items:center;gap:8px;color:var(--person-navy);font-weight:780;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-scripture>summary:before{
 content:"▤";color:var(--person-copper);font-size:1.08rem;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group{
 margin:13px 0 0;padding:8px 9px;border:1px solid var(--person-rule);border-radius:9px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group>summary{
 display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;
 list-style:none;color:var(--person-navy);font-size:.8rem;font-weight:730;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group>summary::-webkit-details-marker{display:none}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group .pills{margin-top:11px}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group .pill{
 background:var(--paper);color:var(--person-muted);border-color:var(--person-rule);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] summary:focus-visible{outline:2px solid var(--person-copper);outline-offset:2px;border-radius:7px}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]){
 --person-navy:#B7CBED;--person-copper:#D5AD77;--person-cream:#282523;
 --person-cream-2:#322B25;--person-rule:#45413C;--person-ink:#EEE6DA;--person-muted:#B6AA9D;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro{
 background:linear-gradient(145deg,#30291F,#292520);border-color:#544638;color:#F2CCA0;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro:before{color:#D9AF78}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open]{
 background:#232220;border-color:#6D5943;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(odd){background:#252422}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-kicker{background:#272523}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-scripture{background:#352B23}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) .entity-top-action-button{background:linear-gradient(120deg,#D6AC72,#B88342);color:#191510}
@media(max-width:760px){
 body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row{grid-template-columns:minmax(78px,31%) minmax(0,1fr)}
 body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-content{padding-left:14px}
}

/* JudeBible person-panel color reintegration v3: inherit shared study palette, preserve editorial layout. */
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]){
 --person-navy:var(--st-ink);--person-copper:var(--st-green);
 --person-ink:var(--st-ink);--person-muted:var(--st-muted);
 --person-rule:var(--st-edge);--person-cream:var(--st-card);--person-cream-2:var(--st-soft);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]) .pane-title{color:var(--st-ink)}
body:is([data-view="study"],[data-view="explore"]) #side-pane #place-fixed-head .entity-sticky-head:has(.person-reader-head){
 background:var(--st-panel);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro{
 background:var(--st-card);border-color:var(--st-edge);color:#436755;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro:before{color:var(--st-gold)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-section-title:before{background:var(--st-gold)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(odd){background:var(--st-card)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(even){background:var(--st-panel)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-link,
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-story-ref{
 color:var(--accent-ink);text-decoration-color:var(--accent-line);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-link:hover,
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-story-ref:hover{color:var(--accent)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-kicker{
 background:var(--st-panel);border-color:var(--st-gold);color:var(--st-action);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open]{
 background:var(--st-card);border-color:var(--st-gold);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open] .person-narrative-summary{background:var(--st-action-soft)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open] .person-narrative-kicker{
 background:var(--st-gold);border-color:var(--st-gold);color:#292017;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-accordion-arrow{border-color:var(--st-action)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-scripture{
 background:var(--st-card);border-left-color:var(--st-gold);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-verse-num{color:var(--st-action)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-scripture>summary:before{color:var(--st-gold)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group[open]{background:var(--st-card);border-color:var(--st-edge)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group .pill:hover{border-color:var(--accent-line);color:var(--accent-ink)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] summary:focus-visible{outline-color:var(--accent)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article[data-detail="p"]){
 --person-navy:var(--st-ink);--person-copper:var(--st-green);
 --person-ink:var(--st-ink);--person-muted:var(--st-muted);
 --person-rule:var(--st-edge);--person-cream:var(--st-card);--person-cream-2:var(--st-soft);
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane #place-fixed-head .entity-sticky-head:has(.person-reader-head){background:var(--st-panel)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-reader-intro{
 background:var(--st-card);border-color:var(--st-edge);color:#A9CFBA;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(odd){background:var(--st-card)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-fact-row:nth-child(even){background:var(--st-panel)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open]{background:var(--st-card);border-color:var(--st-gold)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open] .person-narrative-summary{background:var(--st-action-soft)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-kicker{background:var(--st-panel);color:var(--st-gold)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-narrative-section[open] .person-narrative-kicker{background:var(--st-gold);color:#21190F}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-inline-scripture{background:var(--st-card);border-left-color:var(--st-gold)}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article[data-detail="p"] .person-related-group[open]{background:var(--st-card);border-color:var(--st-edge)}

/* Search person detail inherits the shared research panel, not an independent visual system. */
body[data-view="explore"] #side-pane:has(article[data-detail="p"]){
 --st-panel:var(--sx-panel);--st-card:var(--sx-card);--st-edge:var(--sx-line);
 --st-ink:var(--sx-ink);--st-muted:var(--sx-muted);
 --st-gold:#C8A96B;--st-green:#466D5D;--st-action:#A56D2D;
 --st-action-soft:#F0E0C6;
}
body[data-view="explore"] #side-pane #panel:has(.sw-detail-single article[data-detail="p"]){
 background:var(--sx-panel);padding:14px 12px;
}
body[data-view="explore"] #side-pane .sw-detail-single:has(article[data-detail="p"]){
 display:block;min-width:0;
}
body[data-view="explore"] #side-pane .sw-detail-single article[data-detail="p"]{
 margin:0;border:0;background:transparent;box-shadow:none;
}
body[data-view="explore"] #side-pane:has(article[data-detail="p"]) .pane-bar,
body[data-view="explore"] #side-pane:has(article[data-detail="p"]) #place-fixed-head{
 background:var(--sx-panel);border-color:var(--sx-line);
}
:root[data-theme="dark"] body[data-view="explore"] #side-pane:has(article[data-detail="p"]){
 --st-panel:var(--sx-panel);--st-card:var(--sx-card);--st-edge:var(--sx-line);
 --st-ink:var(--sx-ink);--st-muted:var(--sx-muted);
 --st-gold:#D8B879;--st-green:#94B9A6;--st-action:#D8A45C;
 --st-action-soft:#393023;
}

/* JudeBible shared geographic reader grammar v1: person-inspired editorial rhythm.
   Affects presentation for Place and Region only, never research meaning or geometry. */
body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article.detail:is([data-detail="l"],[data-detail="rgn"])){
 --geo-reader-paper:var(--paper);--geo-reader-card:#FBF7EF;--geo-reader-edge:#E4D9C7;
 --geo-reader-ink:#302C28;--geo-reader-muted:#6D6359;
 --geo-reader-gold:#C8A96B;--geo-reader-green:#466D5D;--geo-reader-soft:#F4EADB;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane #panel:has(article.detail:is([data-detail="l"],[data-detail="rgn"])){
 background:var(--geo-reader-paper);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]){
 color:var(--geo-reader-ink);background:transparent;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-identity{
 min-height:0;display:block;isolation:auto;margin:0 0 13px;
 padding:16px 15px;border:1px solid var(--geo-reader-edge);
 border-radius:13px;background:var(--geo-reader-card);box-shadow:none;
 color:var(--geo-reader-ink);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-identity:before,
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-identity:after{content:none}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .detail-name{
 font-size:1.5rem;line-height:1.17;letter-spacing:-.027em;font-weight:790;
 color:var(--geo-reader-ink);text-wrap:wrap;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .d-en{
 font-size:.84rem;line-height:1.45;font-style:normal;color:var(--geo-reader-muted);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .d-kind{
 color:var(--geo-reader-muted);font-size:.77rem;line-height:1.55;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail[data-detail="l"]>.d-hook{
 padding:16px 16px 16px 27px;margin:0 0 13px;position:relative;
 border:1px solid var(--geo-reader-edge);border-radius:12px;
 background:var(--geo-reader-card);color:#71592F;font-size:.98rem;
 line-height:1.7;word-break:keep-all;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail[data-detail="l"]>.d-hook:before{
 content:" ";font:700 1.7rem/1 Georgia,serif;color:var(--geo-reader-gold);
 position:absolute;left:8px;top:8px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec{
 padding:16px 13px;margin:0 0 11px;border:1px solid var(--geo-reader-edge);
 border-radius:12px;background:var(--geo-reader-card);box-shadow:none;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail[data-detail="rgn"]>.d-sec:before{content:none}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec>.d-h{
 display:flex;align-items:center;gap:9px;margin:0 0 11px;
 color:var(--geo-reader-ink);font-size:.93rem;font-weight:780;line-height:1.35;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec>.d-h:before{
 content:"";display:inline-block;flex:none;width:4px;height:17px;
 border-radius:4px;background:var(--geo-reader-green);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec .d-body{
 color:var(--geo-reader-ink);font-size:.87rem;line-height:1.72;word-break:keep-all;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf-list{
 margin:0;padding:0;display:block;border-top:1px solid var(--geo-reader-edge);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf{
 display:grid;grid-template-columns:minmax(75px,34%) minmax(0,1fr);
 gap:9px;padding:9px 7px;margin:0;align-items:start;
 border-bottom:1px solid var(--geo-reader-edge);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf:nth-child(odd){background:var(--geo-reader-soft)}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf dt{
 color:var(--geo-reader-muted);font-size:.77rem;font-weight:650;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf dd{
 min-width:0;margin:0;color:var(--geo-reader-ink);font-size:.84rem;
 line-height:1.55;font-weight:570;overflow-wrap:anywhere;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .rs-block{
 margin:0 0 12px;padding:0 0 12px 11px;border-left:2px solid var(--geo-reader-gold);
 border-bottom:1px solid var(--geo-reader-edge);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .rs-block .d-sub{
 color:var(--geo-reader-green);font-size:.85rem;font-weight:730;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec[data-part="map"],
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec[data-part="verify-hold"]{
 border-left:3px solid var(--geo-reader-gold);
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .pill{
 color:var(--accent-ink);background:var(--geo-reader-paper);
 border-color:var(--geo-reader-edge);border-radius:999px;
 font-size:.75rem;padding:5px 9px;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.research,
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-secondary{
 background:var(--geo-reader-card);border-color:var(--geo-reader-edge);
 border-radius:12px;box-shadow:none;
}
body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) :is(.pill,summary):focus-visible{
 outline:2px solid var(--geo-reader-green);outline-offset:2px;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane:has(article.detail:is([data-detail="l"],[data-detail="rgn"])){
 --geo-reader-paper:#171A1C;--geo-reader-card:#222629;--geo-reader-edge:#3C4040;
 --geo-reader-ink:#F3F0E9;--geo-reader-muted:#C3BAAD;
 --geo-reader-gold:#D8AD65;--geo-reader-green:#82B29B;--geo-reader-soft:#2A2A28;
}
:root[data-theme="dark"] body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail[data-detail="l"]>.d-hook{color:#E6CF9C}
@media(max-width:760px){
 body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"])>.d-sec{padding:13px 11px}
 body:is([data-view="study"],[data-view="explore"]) #side-pane article.detail:is([data-detail="l"],[data-detail="rgn"]) .qf{grid-template-columns:minmax(65px,32%) minmax(0,1fr)}
}

/* FIX 2026-10-08: memo and collapse share the fixed header flow.
   The memo is immediately before #panel-toggle in existing app.js.
   Override the old absolute positioning only when the memo exists. */
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open){
  position:relative;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  padding:6px 10px 6px 14px;
  box-sizing:border-box;
}
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .pane-title{
  position:static;
  flex:1 1 auto;
  min-width:0;
  margin:0 auto 0 0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .study-memo-open,
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > #panel-toggle{
  position:static;
  inset:auto;
  z-index:auto;
  flex:0 0 auto;
  width:auto;
  height:30px;
  min-height:30px;
  margin:0;
  padding:5px 9px;
  opacity:1;
  white-space:nowrap;
  background:var(--st-panel,var(--paper));
  border:1px solid var(--st-edge,var(--line));
  border-radius:9px;
  color:var(--st-ink,var(--ink));
  box-sizing:border-box;
}
/* Shared action order for passage, person, place, event and route details:
   preceding actions | memo | collapse; no floating overlay. */
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .study-memo-open{
  margin-left:auto;
}
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .entity-top-action-button,
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .research-return-button{
  position:static;
  inset:auto;
  flex:0 1 auto;
  min-width:0;
  margin:0;
  max-width:min(160px,32%);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > .study-memo-open:hover,
body[data-view="study"] #side-pane .pane-bar:has(> .study-memo-open) > #panel-toggle:hover{
  background:var(--st-card,var(--card));
  border-color:var(--accent-line);
}


/* Shared study research-shell header actions: memo immediately before collapse. */
#side-pane .rs-shell .rs-top{justify-content:flex-start}
#side-pane .rs-shell .rs-top .rs-eyebrow{margin-right:auto;min-width:0}
#side-pane .rs-shell .rs-top .rs-memo-open,
#side-pane .rs-shell .rs-top .rs-collapse{
  position:static;z-index:auto;flex:0 0 auto;
  height:30px;min-height:30px;padding:5px 9px;margin:0;
  background:var(--st-panel,var(--paper));
  border:1px solid var(--st-edge,var(--line));
  border-radius:9px;color:var(--st-ink,var(--ink));
  font-size:.74rem;line-height:1.1;white-space:nowrap;
}
#side-pane .rs-shell .rs-top .rs-memo-open:hover,
#side-pane .rs-shell .rs-top .rs-collapse:hover{background:var(--st-card,var(--card));border-color:var(--accent-line)}
@media(max-width:760px){
  body[data-sheet="peek"] #side-pane .panel-stack>.rs-shell{grid-template-columns:minmax(0,auto) minmax(0,1fr) auto auto;grid-template-areas:"title passage memo collapse" "switch switch switch switch"}
  body[data-sheet="peek"] .rs-shell .rs-memo-open{grid-area:memo}
}

/* JudeBible WORBS: intentional three-level heading contrast, both themes. */
:root {
  --jb-worbs-title: #15324E;
  --jb-worbs-tier: #945223;
  --jb-worbs-subtitle: #475466;
  --jb-worbs-lexical: #183B56;
  --jb-worbs-number-bg: #A66B38;
  --jb-worbs-number-fg: #FFFFFF;
}
:root[data-theme="dark"] {
  --jb-worbs-title: #F4E7D0;
  --jb-worbs-tier: #F2BD83;
  --jb-worbs-subtitle: #BBD6E9;
  --jb-worbs-lexical: #D2E7F7;
  --jb-worbs-number-bg: #C28A52;
  --jb-worbs-number-fg: #171715;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --jb-worbs-title: #F4E7D0;
    --jb-worbs-tier: #F2BD83;
    --jb-worbs-subtitle: #BBD6E9;
    --jb-worbs-lexical: #D2E7F7;
    --jb-worbs-number-bg: #C28A52;
    --jb-worbs-number-fg: #171715;
  }
}
#side-pane #panel .rp-editorial-reader .rp-title {
  color: var(--jb-worbs-title) !important;
  font-size: 1.34rem !important;
  font-weight: 800 !important;
}
#side-pane #panel .rp-editorial-reader .rp-subhead,
#side-pane #panel .rp-editorial-reader .rp-deep-summary {
  color: var(--jb-worbs-tier) !important;
  font-size: 1.15rem !important;
  font-weight: 800 !important;
}
#side-pane #panel .rp-editorial-reader .rp-unit .rp-section-title,
#side-pane #panel .rp-editorial-reader .rp-discovery .rp-section-title,
#side-pane #panel .rp-editorial-reader .rp-lexical .rp-subhead,
#side-pane #panel .rp-editorial-reader .rp-cautions .rp-subhead,
#side-pane #panel .rp-editorial-reader .rp-canonical summary {
  color: var(--jb-worbs-subtitle) !important;
}
#side-pane #panel .rp-editorial-reader .rp-lex-form {
  color: var(--jb-worbs-lexical) !important;
}
#side-pane #panel .rp-editorial-reader .rp-unit-number {
  width: 27px;
  height: 27px;
  left: 0;
  top: 1px;
  background: var(--jb-worbs-number-bg) !important;
  color: var(--jb-worbs-number-fg) !important;
  font-weight: 850 !important;
  font-size: .87rem !important;
  border: 1px solid transparent;
}
#side-pane #panel .rp-editorial-reader .rp-unit {
  padding-left: 36px;
}

/* Actual JudeBible left research panel shared editorial refinement, 2026-10-09 */
#side-pane #panel .rp-editorial-reader{color:var(--ink);background:transparent;padding:0;box-shadow:none}
#side-pane #panel .rp-editorial-reader .rp-reader-head{border:0;padding:0 0 8px;margin:0}
#side-pane #panel .rp-editorial-reader .rp-title{font-size:1.12rem;line-height:1.42;font-weight:760;color:#18314e;letter-spacing:-.02em}
#side-pane #panel .rp-editorial-reader .rp-subhead,
#side-pane #panel .rp-editorial-reader .rp-deep-summary{font-size:1.13rem;font-weight:780;line-height:1.45;color:#704327;margin:0 0 10px}
#side-pane #panel .rp-editorial-reader .rp-section-title{font-size:1rem;font-weight:750;color:#18314e;line-height:1.5}
#side-pane #panel .rp-editorial-reader .rp-reader-section{border:0;background:transparent;padding:0;margin:15px 0}
#side-pane #panel .rp-editorial-reader .rp-overview{border:0;border-radius:0;background:transparent;padding:0;margin:8px 0 14px}
#side-pane #panel .rp-editorial-reader .rp-commentary-p{line-height:1.72;margin:0 0 8px}
#side-pane #panel .rp-editorial-reader .rp-unit{position:relative;padding:0 0 13px 31px;margin:0 0 13px;border-bottom:1px solid var(--line);min-width:0}
#side-pane #panel .rp-editorial-reader .rp-unit-number{position:absolute;left:0;top:3px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#d6bc99;color:#fff;font:700 .8rem/1 var(--font-ui)}
#side-pane #panel .rp-editorial-reader .rp-unit .rp-section-title{margin:0 0 5px}
#side-pane #panel .rp-editorial-reader .rp-unit .rp-commentary-p{margin:0 0 6px}
#side-pane #panel .rp-editorial-reader .rp-deep-research{border-top:1px solid var(--line);margin:18px 0 0;padding:16px 0 0;background:transparent}
#side-pane #panel .rp-editorial-reader .rp-deep-body{padding:0}
#side-pane #panel .rp-editorial-reader .rp-discovery{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:9px 0;margin:0}
#side-pane #panel .rp-editorial-reader .rp-lex-card{background:var(--tint);border:1px solid var(--line);border-radius:9px;padding:10px 11px;margin:7px 0}
#side-pane #panel .rp-editorial-reader .rp-lex-form{color:#18314e}
#side-pane #panel .rp-editorial-reader .rp-central{background:var(--tint);border-left:3px solid #976036;border-radius:0 8px 8px 0;margin:12px 0 0;padding:10px}
#side-pane #panel .rp-editorial-reader .rp-cautions,
#side-pane #panel .rp-editorial-reader .rp-lexical{margin-top:14px}

/* WORBS compact content correction 20261009 */
#side-pane #panel .rp-editorial-reader{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
#side-pane #panel .rp-editorial-reader .rp-overview{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0 0 13px!important;margin:8px 0 12px!important}
#side-pane #panel .rp-editorial-reader .rp-reader-section{border-top:0!important;margin-top:12px!important;padding-top:0!important}
#side-pane #panel .rp-editorial-reader .rp-deep-research{border-top:1px solid var(--line)!important;margin-top:16px!important;padding-top:13px!important}
#side-pane #panel .rp-editorial-reader .rp-deep-summary{font-size:1.15rem!important;font-weight:760;line-height:1.45;color:var(--ink);margin:0 0 8px!important}
#side-pane #panel .rp-editorial-reader .rp-deep-body{padding-top:0!important}
#side-pane #panel .rp-editorial-reader .rp-discoveries{border:0!important;padding:0!important;margin:0!important}
#side-pane #panel .rp-editorial-reader .rp-discovery{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;margin:0!important;padding:8px 0 10px!important}
#side-pane #panel .rp-editorial-reader .rp-discovery .rp-commentary-p{margin:0 0 7px!important;line-height:1.72}
#side-pane #panel .rp-editorial-reader .rp-lex-card{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;padding:9px 0!important}

/* WORBS compact lexical cards: word once, pronunciation and gloss only. */
#side-pane #panel .rp-editorial-reader .rp-lex-card {
  background: var(--tint) !important;
  border: 1px solid var(--line) !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  padding: 10px 12px !important;
  margin: 7px 0 !important;
}
#side-pane #panel .rp-editorial-reader .rp-lex-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 13px;
  row-gap: 5px;
}
#side-pane #panel .rp-editorial-reader .rp-lex-form {
  flex: 0 0 auto;
  font-size: 1.2rem;
  font-weight: 750;
  line-height: 1.45;
}
#side-pane #panel .rp-editorial-reader .rp-lex-info {
  flex: 1 1 130px;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 9px;
  row-gap: 2px;
  line-height: 1.55;
}
#side-pane #panel .rp-editorial-reader .rp-lex-reading {
  font-size: .83rem;
  color: var(--ink-2);
}
#side-pane #panel .rp-editorial-reader .rp-lex-gloss {
  font-size: .92rem;
  color: var(--ink);
  font-weight: 680;
  overflow-wrap: anywhere;
}

/* WORBS shared Reader bottom navigator 20261009 */

#side-pane .panel-stack>.rp-reading-nav{display:none;flex:0 0 auto}
#side-pane .panel-stack:has(#panel .rp-editorial-reader)>.rp-reading-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;align-items:stretch;padding:7px 9px max(7px,env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);z-index:10;box-shadow:0 -3px 12px #0000000d}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link{display:flex;align-items:center;justify-content:center;width:100%;min-height:43px;padding:8px 4px;margin:0;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink-2);font:700 .87rem/1.3 var(--font-ui);cursor:pointer}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link:last-child{border-right:0}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link[aria-current="location"]{color:var(--accent-ink);box-shadow:inset 0 -3px 0 var(--accent);background:var(--paper)}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
#side-pane .rp-editorial-reader{padding-left:0}
#side-pane .rp-editorial-reader .rp-overview{border:0;border-radius:0;border-bottom:1px solid var(--line);background:transparent;padding:8px 0 18px}
#side-pane .rp-editorial-reader .rp-reader-section{border-top:0}
#side-pane .rp-editorial-reader .rp-commentary .rp-unit{border-bottom:1px solid var(--line)}
#side-pane .rp-editorial-reader .rp-discovery{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0}
#side-pane .rp-editorial-reader .rp-reader-section,.rp-deep-research{scroll-margin-top:12px}

/* Holman Chapter 4 noncanonical reference cards */
.hba04-lane{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:12px 0 22px}.hba04-item,.hba04-search-item{display:block;border:1px solid var(--border,#d6d6d6);border-radius:12px;padding:12px;background:var(--surface,#fff);font-size:.9rem}.hba04-item small,.hba04-search-item small{display:block;margin-top:7px;opacity:.7}.hba04-item summary,.hba04-search-item summary{cursor:pointer;font-weight:650}.hba04-search-item{margin-bottom:10px}.hba04-item p,.hba04-search-item p{line-height:1.6}
/* 원역사 연표(족장 시대와 같은 구조) — 사진 미연결 카드의 자리표시와 문명사 참고 접기 */
.tl-event-ph{display:block;width:100%;border-radius:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 70%,var(--paper)),color-mix(in srgb,var(--line) 55%,var(--paper)));border:1px dashed var(--line)}
.tl-detail-ph{min-height:150px}

/* 연표 시대 슬롯(2026-10-09): 빈 시대도 족장 시대 승인 골격을 그대로 쓰고, 준비 중 상태만 표시한다. 색상 토큰은 기존 값 재사용. */
#timeline-pane .tl-event-card.is-slot{cursor:default;border-style:dashed;opacity:.62;box-shadow:none}
#timeline-pane .tl-event-card.is-slot:hover{border-color:var(--tl-edge,var(--line))}
#timeline-pane .tl-event-card.is-slot .tl-event-n{background:var(--ink-3)}
#timeline-pane .tl-event-sec.is-slot .tl-event-head button[disabled],#timeline-pane .tl-track.is-slot select[disabled]{opacity:.55;cursor:default}
#timeline-pane .tl-detail.is-slot .tl-detail-ph{border:1px dashed var(--tl-edge,var(--line))}
#timeline-pane .tl-detail-slot-note{margin:12px 0 0;color:var(--tl-muted,var(--ink-3));font-size:.82rem;line-height:1.5}

/* Era-balanced HBA contextual reference chooser: reuse approved timeline colors and existing detail layout. */
.tl-civ-era-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 11px}
.tl-civ-era{border:1px solid var(--tl-edge,var(--line));background:var(--tl-surface,#fff);color:var(--tl-text,inherit);font:inherit;font-size:.83rem;border-radius:9px;padding:7px 13px;cursor:pointer}
.tl-civ-era.is-on{background:var(--tl-sel-bg);border-color:var(--tl-sel-line);color:var(--tl-sel-ink);font-weight:700}
.tl-civ-era:hover{border-color:var(--tl-hov-line)}
.tl-civ-era:focus-visible{outline:2px solid var(--tl-sel-line);outline-offset:2px}
.tl-civ-filter-label{font-size:.76rem;font-weight:700;color:var(--tl-muted,var(--ink-3));margin-bottom:6px}
.tl-civ-empty{padding:12px 0}
@media(max-width:760px){.tl-civ-era-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.tl-civ-era{flex:0 0 auto}}

/* 원역사 > 고대문명 배경: 문명권 탭 + 2열 목록 + 우측 상세 재사용. 선택색은 timeline 범위 토큰만 추가(전역 토큰 변경 없음). */
body[data-view="timeline"] #timeline-pane{--tl-sel-bg:#EDF4EF;--tl-sel-line:#5C8C7B;--tl-sel-ink:#245C50;--tl-hov-line:#B9C9BD}
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane{--tl-sel-bg:#1F2E2A;--tl-sel-line:#6FA896;--tl-sel-ink:#A5D6C6;--tl-hov-line:#4A5E56}
.tl-civ-sec{margin-top:10px;padding:12px 14px 14px;border:1px solid var(--tl-edge,var(--line));border-radius:12px;background:var(--tl-surface,var(--paper))}
.tl-civ-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.tl-civ-head h3{margin:0;font-size:1.05rem;color:var(--tl-text,inherit)}
.tl-civ-head span{font-size:.78rem;color:var(--tl-muted,#756B61)}
.tl-civ-sec .helper{margin:2px 0 10px;font-size:.78rem;color:var(--tl-muted,#756B61)}
.tl-civ-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.tl-civ-tab{padding:7px 14px;border:1px solid var(--tl-edge,var(--line));border-radius:999px;background:var(--tl-surface,#fff);color:var(--tl-text,inherit);font:inherit;font-size:.84rem;cursor:pointer}
.tl-civ-tab:hover{border-color:var(--tl-hov-line)}
.tl-civ-tab.is-on{background:var(--tl-focus-ink,#9B4938);border-color:var(--tl-focus-ink,#9B4938);color:#fff}
:root[data-theme="dark"] .tl-civ-tab.is-on{color:#1B1A19}
.tl-civ-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.tl-civ-item{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 12px;border:1px solid var(--tl-edge,var(--line));border-radius:10px;background:var(--tl-surface,#fff);color:var(--tl-text,inherit);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.tl-civ-item:hover{border-color:var(--tl-hov-line);background:var(--tl-surface-alt,#F6F0E7)}
.tl-civ-ico{flex:0 0 22px;height:22px;border-radius:6px;border:1.5px solid var(--tl-muted,#756B61);background:transparent;position:relative;opacity:.75}
.tl-civ-ico::after{content:"";position:absolute;inset:5px;border-radius:2px;border:1.5px solid currentColor;color:var(--tl-muted,#756B61)}
.tl-civ-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.tl-civ-txt strong{font-size:.92rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-civ-txt small{font-size:.76rem;color:var(--tl-muted,#756B61);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-civ-arrow{flex:0 0 auto;font-size:1.1rem;color:var(--tl-muted,#756B61)}
.tl-civ-item.is-on{background:var(--tl-sel-bg);border-color:var(--tl-sel-line);box-shadow:inset 3px 0 0 var(--tl-sel-line)}
.tl-civ-item.is-on strong{color:var(--tl-sel-ink)}
.tl-civ-item.is-on .tl-civ-ico{background:var(--tl-sel-line);border-color:var(--tl-sel-line);opacity:1}
.tl-civ-item.is-on .tl-civ-ico::after{color:#fff;border-color:#fff}
.tl-civ-item.is-on .tl-civ-arrow{color:var(--tl-sel-ink)}
.tl-civ-item:focus-visible,.tl-civ-tab:focus-visible{outline:2px solid var(--tl-sel-line);outline-offset:2px}
.tl-civ-detail .tl-detail-ref{color:var(--tl-muted,#756B61)}
.tl-civ-block{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--tl-edge,var(--line))}
.tl-civ-block h3{margin:0 0 6px;font-size:.92rem;color:var(--tl-sel-ink)}
.tl-civ-block p,.tl-civ-block li{margin:0;font-size:.86rem;line-height:1.6}
.tl-civ-block p+p{margin-top:9px}
.tl-civ-block li+li{margin-top:5px}
.tl-civ-block a{color:var(--tl-sel-ink);overflow-wrap:anywhere;text-underline-offset:2px}
.hba04-search-item .tl-civ-block{margin-top:12px}
.hba04-search-item .tl-civ-block h3{font-size:.91rem}
.tl-civ-block ul{margin:0;padding-left:1.1em}
.tl-civ-note{margin:14px 0 0;font-size:.76rem;color:var(--tl-muted,#756B61)}
@media (max-width:760px){.tl-civ-list{grid-template-columns:1fr}.tl-civ-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.tl-civ-tab{flex:0 0 auto}}

/* 연표 좁은 화면: 한 화면 맞춤 규칙(고정 높이·균등 열)을 풀고 세로로 쌓는다 */
@media (max-width:1180px){
 #tl-body{height:auto}
 .tl-page{height:auto;max-height:none;grid-template-rows:none}
 .tl-left{height:auto;overflow:visible}
 .tl-detail{align-self:auto}
}
@media (max-width:760px){
 .tl-era-strip{grid-auto-columns:minmax(92px,1fr);overflow-x:auto;overflow-y:hidden;padding-bottom:4px}
 .tl-era-card{height:112px}
 .tl-era-card strong{font-size:.74rem}
 .tl-event-head{margin:0 0 12px;flex-wrap:wrap;gap:8px}
 .tl-event-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;margin:0}
 .tl-event-rail::before,.tl-event-tick{display:none}
 .tl-event-n{top:8px;left:8px;transform:none}
 .tl-era-summary{flex-wrap:wrap}
 .tl-era-summary .tl-sum{white-space:normal}
 .tl-chrono{position:static}
}

/* ===== Unified Research Panel chrome + WORBS reader cards (2026-10-10) =====
   공통 헤더(연구 종류 전환·메모장·접기) · 상단 단계 탭 · 카드형 Reader.
   기존 palette(--st-*, --jb-worbs-*) 만 사용하고 새 색은 추가하지 않는다. 백업: baseline/styles.pre-unified-research-chrome-20261010.css */
#side-pane{
  --uc-bg:var(--st-panel,var(--paper));
  --uc-card:var(--st-card,var(--paper));
  --uc-edge:var(--st-edge,var(--line));
  --uc-ink:var(--st-ink,var(--ink));
  --uc-muted:var(--st-muted,var(--ink-3));
  --uc-accent:var(--jb-worbs-number-bg,var(--accent));
  --uc-accent-ink:var(--jb-worbs-tier,var(--accent-ink));
  --uc-accent-soft:color-mix(in srgb,var(--jb-worbs-number-bg,var(--accent)) 14%,var(--uc-bg));
}

/* 1) 공통 헤더 행: 모든 연구 패널(본문·지명 shell / 인물·장소·상세 pane-bar)이 같은 행 구조와 pill 버튼을 쓴다 */
#side-pane .pane-bar,
#side-pane .rs-shell .rs-top{display:flex;align-items:center;gap:6px}
#side-pane .pane-bar{
  padding:10px 22px 8px!important;min-height:48px;background:var(--uc-bg);
  border-bottom:1px solid var(--uc-edge)!important;border-right:0!important;
}
#side-pane.has-entity-fixed-head .pane-bar{border-bottom:0!important;padding-bottom:2px!important}
#side-pane .pane-bar .pane-title,
#side-pane .rs-shell .rs-eyebrow{
  flex:1 1 auto;min-width:0;margin:0 auto 0 0;padding:0;
  font-size:.74rem;font-weight:700;letter-spacing:.02em;line-height:1.3;color:var(--uc-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#side-pane .rs-shell .rs-top :is(.rs-memo-open,.rs-collapse),
#side-pane .pane-bar :is(.study-memo-open,#panel-toggle,.entity-top-action-button,.research-return-button){
  flex:0 0 auto;height:30px;min-height:30px;margin:0!important;padding:0 13px!important;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--uc-edge)!important;border-radius:999px!important;
  background:var(--uc-card)!important;color:var(--uc-ink)!important;
  font:650 .78rem/1 var(--font-ui)!important;white-space:nowrap;box-shadow:none!important;
}
#side-pane .rs-shell .rs-top :is(.rs-memo-open,.rs-collapse):hover,
#side-pane .pane-bar :is(.study-memo-open,#panel-toggle,.entity-top-action-button,.research-return-button):hover{
  border-color:var(--uc-accent)!important;color:var(--uc-accent-ink)!important;
}
/* 모드 이동 버튼(인물→본문연구 등)은 같은 pill 이되 포인트 색 윤곽으로만 구분 */
#side-pane .pane-bar .entity-top-action-button{border-color:var(--uc-accent)!important;color:var(--uc-accent-ink)!important;background:var(--uc-accent-soft)!important}

/* 2) shell: 제목 위계 + 연구 종류 segmented switch */
#side-pane .panel-stack>.rs-shell{padding:10px 22px 12px;background:var(--uc-bg);border-bottom:1px solid var(--uc-edge)}
#side-pane .panel-stack:has(#panel .rp-editorial-reader)>.rs-shell{border-bottom:0}
.rs-shell .rs-title{margin:4px 0 0;font-size:1.4rem;line-height:1.28;font-weight:800;letter-spacing:-.015em;color:var(--jb-worbs-title,var(--uc-ink))}
.rs-shell .rs-passage{margin:3px 0 0;font-size:.8rem;color:var(--uc-muted)}
.rs-shell .rs-switch{margin-top:12px;padding:4px;gap:4px;border:0;border-radius:12px;background:color-mix(in srgb,var(--uc-ink) 7%,var(--uc-bg))}
.rs-shell .rs-seg{padding:8px 10px;border-radius:9px;font-size:.88rem;font-weight:650;color:var(--uc-muted)}
.rs-shell .rs-seg.is-on{background:var(--uc-card);color:var(--uc-ink);font-weight:800;box-shadow:0 1px 3px color-mix(in srgb,var(--uc-ink) 20%,transparent)}
.rs-shell .rs-seg:disabled{opacity:.4}

/* 3) 훑어보기·살펴보기·깊게보기: 하단 막대 → 헤더 아래 상단 탭 */
#side-pane .panel-stack>.rs-shell{order:0}
#side-pane .panel-stack>#place-fixed-head{order:1}
#side-pane .panel-stack>.rp-reading-nav{order:2}
#side-pane .panel-stack>#panel{order:3}
#side-pane .panel-stack:has(#panel .rp-editorial-reader)>.rp-reading-nav{
  display:flex;gap:4px;padding:0 22px;background:var(--uc-bg);
  border-top:0;border-bottom:1px solid var(--uc-edge);box-shadow:none;
}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link{
  flex:1 1 0;min-height:44px;padding:11px 4px 10px;border:0;border-radius:0;margin-bottom:-1px;
  background:transparent;color:var(--uc-muted);font:650 .88rem/1.2 var(--font-ui);
  border-bottom:2px solid transparent;box-shadow:none;
}
#side-pane .panel-stack>.rp-reading-nav .rp-reading-link[aria-current="location"]{
  background:transparent;box-shadow:none;color:var(--uc-accent-ink);font-weight:800;border-bottom-color:var(--uc-accent);
}
#side-pane .rp-editorial-reader .rp-reader-section,
#side-pane .rp-editorial-reader .rp-deep-research{scroll-margin-top:12px}

/* 4) Reader 본문: 카드 + 읽기 좋은 행간 */
#side-pane #panel .rp-verse>.sec-h{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.03em;color:var(--uc-accent-ink)}
#side-pane #panel .rp-panel.rp-editorial-reader{padding:0!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-title{margin:6px 0 0;font-size:1.28rem;line-height:1.4;font-weight:800;letter-spacing:-.015em;color:var(--jb-worbs-title);word-break:keep-all}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-reader-head{padding:0 0 4px!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-commentary-p{font-size:.93rem;line-height:1.82;margin:0 0 10px;word-break:keep-all;overflow-wrap:break-word;color:var(--uc-ink)}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-reader-section:not(.rp-lexical){margin:26px 0 0!important}
#side-pane #panel .rp-panel.rp-editorial-reader :not(.rp-lexical)>.rp-subhead,
#side-pane #panel .rp-panel.rp-editorial-reader .rp-deep-summary,
#side-pane #panel .jbc-person-worbs .rp-subhead{
  display:flex;align-items:center;gap:8px;margin:0 0 12px!important;
  font-size:1.02rem!important;font-weight:800!important;line-height:1.4;color:var(--uc-ink)!important;
}
#side-pane #panel .rp-panel.rp-editorial-reader :not(.rp-lexical)>.rp-subhead::before,
#side-pane #panel .rp-panel.rp-editorial-reader .rp-deep-summary::before,
#side-pane #panel .jbc-person-worbs .rp-subhead::before{content:"";flex:none;width:4px;height:16px;border-radius:2px;background:var(--uc-accent)}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-cautions>.rp-subhead{font-size:.86rem!important;color:var(--uc-muted)!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-deep-research{margin-top:30px!important;padding-top:0!important;border-top:0!important}
/* 훑어보기 = 요약 카드 */
#side-pane #panel .rp-panel.rp-editorial-reader .rp-overview{
  margin:20px 0 0!important;padding:16px 16px 6px 18px!important;
  background:var(--uc-card)!important;border:1px solid var(--uc-edge)!important;border-left:4px solid var(--uc-accent)!important;border-radius:12px!important;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-overview .rp-commentary-p{font-size:.96rem;line-height:1.85}
/* Captain 2026-10-11: one outer rail, inset sand surface; shared WORBS summary language. */
/* Overview keeps the existing approved left rail. Inner emphasis never repeats it.
   No new palette, new DOM schema, or effect on non-research cards. */
#side-pane #panel .rp-panel.rp-editorial-reader .rp-overview>.rp-subhead::before {
  display:none;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-central,
#side-pane #panel .jbc-person-worbs .rp-central {
  border:0!important;
  border-left:0!important;
  border-radius:9px;
  background:var(--uc-accent-soft);
  box-shadow:none;
  margin:14px 0 12px;
  padding:12px 14px 10px;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-central-label,
#side-pane #panel .jbc-person-worbs .rp-central-label {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 7px;
  color:var(--uc-accent-ink);
  font-size:.82rem;
  line-height:1.4;
  font-weight:800;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-central-label::before,
#side-pane #panel .jbc-person-worbs .rp-central-label::before {
  content:"";
  display:block;
  flex:0 0 11px;
  width:11px;
  height:14px;
  background:currentColor;
  clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-central .rp-commentary-p {
  margin:0 0 3px;
  font-size:.92rem;
  line-height:1.78;
}

/* 살펴보기 = 번호 카드 */
#side-pane #panel .rp-panel.rp-editorial-reader .rp-unit{
  position:relative;margin:0 0 10px;padding:14px 16px 6px 52px;min-width:0;
  background:var(--uc-card);border:1px solid var(--uc-edge);border-radius:12px;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-unit-number{left:14px;top:14px;width:26px;height:26px;font-size:.8rem!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-unit .rp-section-title{margin:0 0 8px;font-size:.96rem;font-weight:750;line-height:1.5;color:var(--uc-ink);word-break:keep-all}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-unit .rp-commentary-p{font-size:.9rem;color:var(--uc-ink)}
/* 깊게보기: 풀이는 한 카드, 원어는 카드 격자, 주의는 안내 박스 */
#side-pane #panel .rp-panel.rp-editorial-reader .rp-deep-body>.rp-reader-section:not(.rp-lexical){margin-top:22px!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-discoveries{
  margin:0!important;padding:2px 16px!important;background:var(--uc-card)!important;border:1px solid var(--uc-edge)!important;border-radius:12px!important;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-discovery{padding:14px 0!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-discovery:last-child{border-bottom:0!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-cautions{
  padding:14px 16px;background:color-mix(in srgb,var(--uc-accent) 12%,var(--uc-bg));
  border:1px solid color-mix(in srgb,var(--uc-accent) 38%,var(--uc-bg));border-radius:12px;
}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-cautions>.rp-subhead{margin-bottom:8px!important;color:var(--uc-accent-ink)!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-caution-list{padding-left:1.1rem}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-caution-list li{margin:0 0 6px;font-size:.88rem;line-height:1.7;color:var(--uc-ink);word-break:keep-all}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical{margin-top:22px;padding:0;border:1px solid var(--uc-edge);border-radius:12px;background:var(--uc-card)}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical summary{padding:13px 16px;font-size:.92rem!important;font-weight:800!important;color:var(--uc-ink)!important}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical-list{margin:0;padding:0 16px 14px}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 0;border-top:1px solid var(--uc-edge)}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical-row+.rp-canonical-row{margin-top:0}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical-row strong{padding:2px 9px;border-radius:999px;background:var(--uc-accent-soft);color:var(--uc-accent-ink);font-size:.76rem;font-weight:800}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-canonical-row .rp-commentary-p{margin:0;font-size:.9rem;line-height:1.65}

/* 5) 내 메모 + 인물연구 Reader 도 같은 카드 언어 */
#side-pane #panel .ov-flow details.ov{margin-top:22px;background:var(--uc-card);border:1px dashed var(--uc-edge);border-radius:12px}
#side-pane #panel .ov-flow details.ov>summary{padding:13px 16px;font-size:.92rem;font-weight:800;color:var(--uc-ink)}
#side-pane #panel .ov-flow details.ov>.ov-body{padding:0 16px 16px}
#side-pane #panel .ov-flow :is(.note-title-input,textarea){border:1px solid var(--uc-edge);border-radius:10px;background:var(--uc-bg);color:var(--uc-ink)}
#side-pane #panel .jbc-person-worbs .rp-unit{margin:0 0 10px;padding:12px 16px;background:var(--uc-card);border:1px solid var(--uc-edge);border-radius:12px}
#side-pane #panel .jbc-person-worbs .rp-section-title{color:var(--uc-ink)}
#side-pane #panel .jbc-person-worbs .d-body{line-height:1.8;word-break:keep-all}

/* 모바일 half/full 시트: 공통 헤더를 조금 더 촘촘하게 (peek 압축형은 기존 규칙 유지) */
@media (max-width:760px){
  body:not([data-sheet="peek"]) #side-pane .panel-stack>.rs-shell{padding:8px 16px 10px}
  body:not([data-sheet="peek"]) .rs-shell .rs-title{font-size:1.22rem;margin-top:2px}
  body:not([data-sheet="peek"]) .rs-shell .rs-switch{margin-top:8px}
  body:not([data-sheet="peek"]) .rs-shell .rs-seg{padding:6px 10px}
  body:not([data-sheet="peek"]) #side-pane .panel-stack:has(#panel .rp-editorial-reader)>.rp-reading-nav{padding:0 16px}
  body:not([data-sheet="peek"]) #side-pane .pane-bar{padding:8px 16px 6px!important}
}
#side-pane .pane-bar .pane-title{color:var(--uc-muted)!important;font-size:.74rem!important;font-weight:700!important}
/* Search-only AA legibility: keep existing approved --sx-muted, override later universal panel selectors. */
body[data-view="explore"] #side-pane .pane-bar .pane-title{color:var(--sx-muted)!important}
body[data-view="explore"] #place-fixed-head .entity-meta-line .d-original,
body[data-view="explore"] #place-fixed-head .place-meta-line .d-original{color:var(--sx-muted)}
/* 장소·인물 고정 헤더가 붙는 경우 기존 상단 바 높이(45px) 계약 유지 */
#side-pane.has-entity-fixed-head .pane-bar{box-sizing:border-box;height:45px;min-height:45px;padding:0 22px!important}
@media (max-width:760px){body:not([data-sheet="peek"]) #side-pane.has-entity-fixed-head .pane-bar{padding:0 16px!important}}

/* 핵심 원어 카드: 박스(배치·테두리·배경)는 기존 유지, 안의 글꼴만 공통 Reader 타이포로 통일 */
#side-pane #panel .rp-panel.rp-editorial-reader .rp-lexical>.rp-subhead{font-size:1.02rem!important;font-weight:800!important;color:var(--uc-ink)!important;letter-spacing:-.01em}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-lex-form{font-family:"SBL Hebrew","Ezra SIL","Noto Serif Hebrew","Times New Roman",serif;font-size:1.45rem;font-weight:700;line-height:1.4}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-lex-reading{font-size:.8rem;font-weight:600;color:var(--uc-muted)}
#side-pane #panel .rp-panel.rp-editorial-reader .rp-lex-gloss{font-size:.95rem;font-weight:800;color:var(--uc-ink);word-break:keep-all}

/* 연표 상세: 본문에 이름이 나오는 인물(미승인 후보) — 족장 시대 상세 패널의 facts 행과 같은 톤 */
.tl-persons dd ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.tl-persons dd li{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;border:1px solid var(--tl-edge,var(--line));border-radius:999px;background:var(--tl-surface-alt,#F6F0E7);font-size:.84rem}
.tl-persons dd li b{font-weight:650;color:var(--tl-text,inherit)}
.tl-persons dd li small{font-size:.68rem;color:var(--tl-muted,#756B61)}
.tl-persons dd p{margin:6px 0 0;font-size:.72rem;line-height:1.45;color:var(--tl-muted,#756B61)}

/* 연표 상세: 연결된 연구(승인 연구만 열림, 그 밖은 상태 표시만) */
.tl-linked{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--tl-edge,var(--line))}
.tl-linked h3{margin:0 0 8px;font-size:.92rem;color:var(--tl-text,inherit)}
.tl-linked ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.tl-linked li>button,.tl-linked li>div{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 10px;border:1px solid var(--tl-edge,var(--line));border-radius:10px;background:var(--tl-surface,#fff);color:var(--tl-text,inherit);font:inherit;text-align:left}
.tl-linked li>button{cursor:pointer}
.tl-linked li>button:hover{border-color:var(--tl-sel-line,#5C8C7B);background:var(--tl-sel-bg,#EDF4EF)}
.tl-linked li b{font-size:.86rem}
.tl-linked li small{font-size:.72rem;color:var(--tl-muted,#756B61)}
.tl-linked li.is-static>div{opacity:.8;border-style:dashed}

/* Persistent researched/atlas reference points. Only place-name text is zoom-tier/collision gated.
   Presentation-only points are secondary to canonical research markers. */
.gm-study-ref { cursor: pointer; }
.gm-study-ref-dot { fill: var(--map-pin); stroke: var(--paper); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .75; }
.gm-study-ref-label { fill: var(--biblical-ink); stroke: var(--biblical-halo); stroke-linejoin: round; paint-order: stroke fill; font-family: var(--font-ui); font-weight: 520; opacity: .88; pointer-events: none; }
.gm-study-ref:hover .gm-study-ref-dot, .gm-study-ref:focus-visible .gm-study-ref-dot { opacity: 1; stroke-width: 2; }

/* Shared map-place visual language: research and sourced-reference places.
   Screen-size circles remain at 8 px diameter across all zoom levels.
   Semantic tier hides only reference text; the point and its hover target remain. */
.gm-study-ref-hit { fill:transparent; pointer-events:all; stroke:none; }
.gm-study-ref-dot,
.gm:not(.gm-modern):not(.gm-wp) .gm-shape {
  fill:var(--map-pin); stroke:var(--paper); opacity:.98;
}
.gm-study-ref-dot {
  transform-box:fill-box; transform-origin:center;
  transition:transform .17s ease-out, opacity .17s ease-out, stroke-width .17s ease-out;
}
.gm-study-ref:hover .gm-study-ref-dot,
.gm-study-ref:focus-visible .gm-study-ref-dot,
.gm-study-ref:focus-within .gm-study-ref-dot {
  transform:scale(1.5); opacity:1; stroke-width:1.4;
}
.gm-study-ref-label {
  fill:var(--biblical-ink); stroke:var(--biblical-halo);
  font-weight:560; opacity:1; letter-spacing:0;
  transition:opacity .12s ease-out,visibility .12s linear;
}
.gm-study-ref-label.is-semantic-hidden {
  opacity:0;visibility:hidden;pointer-events:none;
}
.gm-study-ref:hover .gm-study-ref-label.is-semantic-hidden,
.gm-study-ref:focus-visible .gm-study-ref-label.is-semantic-hidden,
.gm-study-ref:focus-within .gm-study-ref-label.is-semantic-hidden {
  opacity:1;visibility:visible;
}
.gm:not(.gm-modern):not(.gm-wp) .gm-place-label[data-label-level="L2"] {
  font-weight:560;letter-spacing:0;
}

/* Exact-dot hover gate (2026-10-11).
   The rendered 8px dot is the sole pointer hit area, never a larger invisible
   circle, a nearby place name, a ring, or the whole SVG marker group.
   Keyboard focus and touch/click actions keep their existing contracts. */
#map-body svg.gmap .gm-study-ref-hit,
#map-body svg.gmap .gm-ring { pointer-events:none !important; }
#map-body svg.gmap .gm-study-ref-dot { pointer-events:visiblePainted; }
#map-body svg.gmap .gm:not(.gm-wp):not(.is-precise-hover):not(:focus-visible) .gm-shape,
#map-body svg.gmap .gm:not(.gm-wp):not(.is-precise-hover):not(:focus-visible) .gm-ring,
#map-body svg.gmap .gm-study-ref:not(.is-precise-hover):not(:focus-visible) .gm-study-ref-dot {
  transform:none !important;
}
#map-body svg.gmap .gm.is-precise-hover .gm-shape,
#map-body svg.gmap .gm.is-precise-hover .gm-ring,
#map-body svg.gmap .gm-study-ref.is-precise-hover .gm-study-ref-dot {
  transform:scale(1.5);
}
#map-body svg.gmap .gm:not(.is-precise-hover):not(:focus-visible) .gm-place-label.is-semantic-hidden,
#map-body svg.gmap .gm-study-ref:not(.is-precise-hover):not(:focus-visible) .gm-study-ref-label.is-semantic-hidden {
  visibility:hidden !important;
  opacity:0 !important;
}
#map-body svg.gmap .gm.is-precise-hover .gm-place-label.is-semantic-hidden,
#map-body svg.gmap .gm-study-ref.is-precise-hover .gm-study-ref-label.is-semantic-hidden {
  visibility:visible !important;
  opacity:1 !important;
}

/* Timeline thumbnail attribution: shown on the image, never squeezed into narrow cards. */
.tl-era-card:has(> img[data-tl-photo-credit])::after,
.tl-event-card:has(> img[data-tl-photo-credit])::after {
  content: "ⓘ";
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(30, 35, 39, .76);
  color: #fff;
  font: 700 12px/1 sans-serif;
  pointer-events: none;
}
.tl-era-card > img[data-tl-photo-credit],
.tl-event-card > img[data-tl-photo-credit] { flex-shrink: 0; }
#tl-photo-tooltip {
  position: fixed;
  z-index: 1200;
  box-sizing: border-box;
  width: min(308px, calc(100vw - 16px));
  max-height: min(280px, calc(100vh - 16px));
  overflow: auto;
  padding: 11px 13px;
  border: 1px solid var(--line-strong, #cfc3b6);
  border-radius: 10px;
  background: var(--paper, #fffaf4);
  color: var(--ink, #282522);
  box-shadow: 0 6px 22px rgba(27, 24, 22, .2);
  font: 400 12px/1.5 var(--font-ui, sans-serif);
  overflow-wrap: anywhere;
}
#tl-photo-tooltip[hidden] { display: none; }
#tl-photo-tooltip strong { display: block; font-size: 12px; margin-bottom: 4px; }
#tl-photo-tooltip p { margin: 4px 0 8px; }
#tl-photo-tooltip .tl-photo-caption { color: var(--ink-3, #777); font-size: 11px; }
#tl-photo-tooltip a { display: inline-block; margin-top: 3px; color: var(--accent-ink, #7c5133); text-decoration: underline; text-underline-offset: 2px; }
#tl-photo-tooltip a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Commons photo credit: readable in search/list/map cards, link remains outside card button. */
.pc-photo-credit{font-size:.68rem;line-height:1.45;color:var(--muted,#777);padding:3px 10px 7px;overflow-wrap:anywhere;}
.pc-photo-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.pc-photo-credit a:focus-visible{outline:2px solid currentColor;outline-offset:2px;}

/* JudeBible 2026-10-12: translucent hanji / mineral-glass scripture reader.
   Presentation only: existing verse selection, annotations and research bindings remain intact. */
:root[data-theme="light"] body[data-view="study"] #text-pane,
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane {
  --jbc-glass-ink:#332a24;
  background-color:#f1e9dc;
  background-image:radial-gradient(ellipse at 25% 12%,rgba(255,255,255,.65),transparent 48%),
    repeating-linear-gradient(103deg,rgba(116,89,62,.018) 0px,rgba(116,89,62,.018) 1px,transparent 1px,transparent 5px),
    linear-gradient(155deg,#faf3e8,#eee4d6);
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane .scripture-head {
 background:linear-gradient(115deg,rgba(255,251,244,.91),rgba(249,238,221,.83));
 border-bottom:1px solid rgba(175,136,92,.27);box-shadow:0 2px 12px rgba(104,75,42,.08);
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse {
 --glass-rgb:235,177,94;
 position:relative; isolation:isolate; margin-bottom:9px;
 padding:13px 15px 13px 49px;
 border:1px solid rgba(var(--glass-rgb),.48);
 border-radius:15px;
 color:var(--jbc-glass-ink);
 background:linear-gradient(118deg,rgba(var(--glass-rgb),.33),rgba(255,255,255,.59) 66%,rgba(var(--glass-rgb),.21)),
   repeating-linear-gradient(132deg,rgba(98,79,58,.017) 0 1px,transparent 1px 6px);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 3px 9px rgba(101,74,46,.075);
 transition:background-color .18s ease,box-shadow .18s ease,border-color .18s ease;
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+2){--glass-rgb:144,174,126;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+3){--glass-rgb:116,171,214;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+4){--glass-rgb:208,147,170;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse .vnum {
 top:12px;left:12px;width:27px;height:27px;min-width:27px;border-radius:50%;
 display:inline-flex;align-items:center;justify-content:center;
 background:rgba(var(--glass-rgb),.40);color:#47372d;font-size:12px;font-weight:800;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse::before {
 content:"";position:absolute;top:46px;bottom:12px;left:25px;width:1px;
 border-left:1px dashed rgba(var(--glass-rgb),.78);pointer-events:none;
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected) {
 padding:13px 15px 13px 49px;
 border:1px solid rgba(191,121,45,.76);
 background:linear-gradient(118deg,rgba(244,178,85,.41),rgba(255,251,235,.87) 63%,rgba(245,191,108,.37));
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.87),0 0 0 2px rgba(210,152,74,.15),0 5px 15px rgba(140,92,42,.13);
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected) .vnum{top:12px;color:#633d19;background:#f2c789;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:hover {border-color:rgba(var(--glass-rgb),.79);box-shadow:inset 0 1px 0 #fff,0 5px 15px rgba(103,77,48,.13);}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .ol-body {
 background:linear-gradient(130deg,rgba(255,245,220,.90),rgba(255,255,250,.86) 65%,rgba(241,210,163,.42));
 border:1px solid rgba(208,151,73,.49);border-left:3px solid #d59643;border-radius:13px;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 4px 13px rgba(101,76,48,.09);
}
@media(max-width:760px){:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse,
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected){padding:11px 11px 11px 43px;border-radius:12px;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse .vnum{left:9px;top:10px;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse::before{left:22px;}}

/* 2026-10-12: stronger full-perimeter selection outline, option 1 (4px). */
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected),
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected):hover {
  box-shadow:inset 0 0 0 4px color-mix(in srgb, #bf7a36 82%, #fff 18%),
    0 0 0 1px rgba(255,255,255,.6),
    0 12px 26px rgba(122,87,46,.16);
}

/* JudeBible dark mineral glass / translucent hanji cards, 2026-10-12. */
:root[data-theme="dark"] body[data-view="study"] #text-pane {
 background-color:#17191c;
 background-image:radial-gradient(ellipse at 28% 4%,rgba(136,117,100,.13),transparent 55%),repeating-linear-gradient(117deg,rgba(240,221,194,.014) 0 1px,transparent 1px 6px),linear-gradient(155deg,#22211f,#151719);
}
:root[data-theme="dark"] body[data-view="study"] #text-pane .scripture-head {background:linear-gradient(120deg,rgba(46,42,38,.96),rgba(30,30,31,.95));border-bottom:1px solid rgba(194,159,112,.26);}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse {
 --glass-rgb:222,157,83; position:relative; isolation:isolate;
 margin-bottom:9px;padding:13px 15px 13px 49px;
 border:1px solid rgba(var(--glass-rgb),.43);border-radius:15px;
 color:#f4e9d9;
 background:linear-gradient(116deg,rgba(var(--glass-rgb),.22),rgba(54,52,50,.78) 66%,rgba(var(--glass-rgb),.15)),repeating-linear-gradient(132deg,rgba(255,242,220,.012) 0 1px,transparent 1px 6px);
 box-shadow:inset 0 1px 0 rgba(255,244,224,.13),0 4px 13px rgba(0,0,0,.21);
 transition:border-color .18s ease,box-shadow .18s ease;
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+2){--glass-rgb:150,183,126;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+3){--glass-rgb:117,176,218;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:nth-of-type(4n+4){--glass-rgb:215,146,178;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse .vnum {
 top:12px;left:12px;width:27px;height:27px;min-width:27px;border-radius:50%;
 display:inline-flex;align-items:center;justify-content:center;
 background:rgba(var(--glass-rgb),.29);color:#fff0db;font-size:12px;font-weight:800;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse::before {
 content:"";position:absolute;top:46px;bottom:12px;left:25px;width:1px;
 border-left:1px dashed rgba(var(--glass-rgb),.67);pointer-events:none;
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected),
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected):hover {
 padding:13px 15px 13px 49px;border:1px solid rgba(245,190,113,.95);
 color:#fff2e0;
 background:linear-gradient(114deg,rgba(146,101,48,.45),rgba(79,65,49,.89) 64%,rgba(157,104,49,.33));
 box-shadow:inset 0 0 0 4px rgba(232,173,94,.93),0 0 0 1px rgba(245,205,148,.22),0 11px 25px rgba(0,0,0,.33);
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected) .vnum{top:12px;color:#fff5e6;background:rgba(222,154,76,.48);}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:hover:not(.sel):not(.verse-selected){border-color:rgba(var(--glass-rgb),.8);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 6px 15px rgba(0,0,0,.27);}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .ol-body {
 background:linear-gradient(133deg,rgba(85,67,48,.7),rgba(38,35,33,.96) 64%,rgba(115,78,43,.29));
 border:1px solid rgba(218,160,85,.64);border-left:3px solid #dc9b48;border-radius:13px;
 color:#f5e8d5;box-shadow:inset 0 1px 0 rgba(255,241,207,.12),0 6px 18px rgba(0,0,0,.25);
}
@media(max-width:760px){
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse,
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected){padding:11px 11px 11px 43px;border-radius:12px;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse .vnum{left:9px;top:10px;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse::before{left:22px;}
}

/* 2026-10-12 granite texture background for scripture panel */

/* LIGHT MODE: warm granite */
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane {
  background-color: #e7dfd2;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.34) 0 1.2px, transparent 1.3px),
    radial-gradient(circle at 78% 22%, rgba(120,104,88,.16) 0 1.4px, transparent 1.5px),
    radial-gradient(circle at 26% 74%, rgba(92,79,66,.10) 0 1.1px, transparent 1.2px),
    radial-gradient(circle at 62% 68%, rgba(255,255,255,.22) 0 1px, transparent 1.1px),
    radial-gradient(circle at 88% 82%, rgba(128,110,92,.10) 0 1.2px, transparent 1.3px),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.030) 0 2px,
      rgba(0,0,0,.018) 2px 4px,
      transparent 4px 8px
    ),
    linear-gradient(145deg, #efe7da 0%, #ddd3c4 48%, #cec3b3 100%);
  background-size: 180px 180px, 210px 210px, 160px 160px, 200px 200px, 220px 220px, 18px 18px, 100% 100%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}

/* DARK MODE: charcoal granite */
:root[data-theme="dark"] body[data-view="study"] #text-pane {
  background-color: #17191c;
  background-image:
    radial-gradient(circle at 14% 16%, rgba(255,255,255,.11) 0 1.1px, transparent 1.2px),
    radial-gradient(circle at 74% 28%, rgba(201,181,153,.08) 0 1.2px, transparent 1.3px),
    radial-gradient(circle at 28% 76%, rgba(255,255,255,.07) 0 1px, transparent 1.1px),
    radial-gradient(circle at 82% 72%, rgba(133,117,98,.09) 0 1.3px, transparent 1.4px),
    radial-gradient(circle at 52% 44%, rgba(255,255,255,.05) 0 1px, transparent 1.1px),
    repeating-linear-gradient(
      135deg,
      rgba(255,255,255,.018) 0 2px,
      rgba(0,0,0,.030) 2px 4px,
      transparent 4px 8px
    ),
    linear-gradient(145deg, #26292d 0%, #1c1f23 52%, #121417 100%);
  background-size: 180px 180px, 210px 210px, 160px 160px, 220px 220px, 190px 190px, 18px 18px, 100% 100%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

/* 2026-10-12 unified original-language-inspired mineral ivory scripture cards. */
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse,
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:nth-of-type(n) {
 --glass-rgb:208,151,73;
 background:linear-gradient(130deg,rgba(255,245,220,.90),rgba(255,255,250,.86) 65%,rgba(241,210,163,.42));
 border-color:rgba(208,151,73,.49);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.88),0 4px 13px rgba(101,76,48,.09);
}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse .vnum {background:rgba(220,169,101,.35);color:#68451f;}
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected),
:root:not([data-theme="dark"]) body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected):hover {
 background:linear-gradient(130deg,rgba(255,245,220,.95),rgba(255,255,250,.91) 65%,rgba(241,210,163,.49));
 box-shadow:inset 0 0 0 4px rgba(190,123,52,.87),0 0 0 1px rgba(255,255,255,.6),0 12px 26px rgba(122,87,46,.16);
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse,
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:nth-of-type(n) {
 --glass-rgb:218,160,85;
 background:linear-gradient(133deg,rgba(85,67,48,.7),rgba(38,35,33,.96) 64%,rgba(115,78,43,.29));
 border-color:rgba(218,160,85,.52);
 box-shadow:inset 0 1px 0 rgba(255,241,207,.12),0 6px 18px rgba(0,0,0,.25);
}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse .vnum {background:rgba(218,160,85,.31);color:#ffedce;}
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected),
:root[data-theme="dark"] body[data-view="study"] #text-pane #verses .verse:is(.sel,.verse-selected):hover {
 background:linear-gradient(133deg,rgba(85,67,48,.78),rgba(38,35,33,.97) 64%,rgba(115,78,43,.35));
 box-shadow:inset 0 0 0 4px rgba(232,173,94,.93),0 0 0 1px rgba(245,205,148,.22),0 11px 25px rgba(0,0,0,.33);
}

/* 2026-10-12 granite texture for the outermost page background (body, top bar, timeline canvas) */
:root:not([data-theme="dark"]) body,
:root:not([data-theme="dark"]) body > header.top,
:root:not([data-theme="dark"]) body[data-view="timeline"] #timeline-pane {
  background-color: #e7dfd2;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.34) 0 1.2px, transparent 1.3px),
    radial-gradient(circle at 78% 22%, rgba(120,104,88,.16) 0 1.4px, transparent 1.5px),
    radial-gradient(circle at 26% 74%, rgba(92,79,66,.10) 0 1.1px, transparent 1.2px),
    radial-gradient(circle at 62% 68%, rgba(255,255,255,.22) 0 1px, transparent 1.1px),
    radial-gradient(circle at 88% 82%, rgba(128,110,92,.10) 0 1.2px, transparent 1.3px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.030) 0 2px, rgba(0,0,0,.018) 2px 4px, transparent 4px 8px),
    linear-gradient(145deg, #efe7da 0%, #ddd3c4 48%, #cec3b3 100%);
  background-size: 180px 180px, 210px 210px, 160px 160px, 200px 200px, 220px 220px, 18px 18px, 100% 100%;
  background-attachment: fixed;
}
:root[data-theme="dark"] body,
:root[data-theme="dark"] body > header.top,
:root[data-theme="dark"] body[data-view="timeline"] #timeline-pane {
  background-color: #17191c;
  background-image:
    radial-gradient(circle at 14% 16%, rgba(255,255,255,.11) 0 1.1px, transparent 1.2px),
    radial-gradient(circle at 74% 28%, rgba(201,181,153,.08) 0 1.2px, transparent 1.3px),
    radial-gradient(circle at 28% 76%, rgba(255,255,255,.07) 0 1px, transparent 1.1px),
    radial-gradient(circle at 82% 72%, rgba(133,117,98,.09) 0 1.3px, transparent 1.4px),
    radial-gradient(circle at 52% 44%, rgba(255,255,255,.05) 0 1px, transparent 1.1px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 2px, rgba(0,0,0,.030) 2px 4px, transparent 4px 8px),
    linear-gradient(145deg, #26292d 0%, #1c1f23 52%, #121417 100%);
  background-size: 180px 180px, 210px 210px, 160px 160px, 220px 220px, 190px 190px, 18px 18px, 100% 100%;
  background-attachment: fixed;
}

/* 2026-10-12 scripture scroll: verses read as ONE continuous parchment scroll; the selected verses are one block "sewn" with blue / purple / scarlet thread. */
:root {
  --scr-glow: rgba(110,84,40,.16);
  --scr-paper-a: #fbf0d6; --scr-paper-b: #f3e3bf; --scr-paper-c: #ead6aa;
  --scr-sheen: rgba(255,255,255,.55); --scr-edge: rgba(150,112,58,.45); --scr-rule: rgba(176,134,64,.55);
  --scr-sel-a: rgba(255,253,244,.96); --scr-sel-b: rgba(255,253,244,.96);
  --scr-rod-a: #cdb383; --scr-rod-b: #f7ebcb; --scr-rod-c: #bfa06a; --scr-cap: #b8862f;
  --cord-v: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2210%22 height=%2224%22 viewBox=%220 0 10 24%22%3E%3Crect width=%2210%22 height=%2224%22 fill=%22%232b1a0a%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-25.2 L13,-14.2%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-1.2 L13,9.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,22.8 L13,33.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-19.2 L13,-8.2%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,4.8 L13,15.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,28.8 L13,39.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-13.2 L13,-2.1999999999999993%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,10.8 L13,21.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,34.8 L13,45.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-7.2 L13,3.8000000000000007%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,16.8 L13,27.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,40.8 L13,51.8%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-hz: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2210%22 viewBox=%220 0 24 10%22%3E%3Crect width=%2224%22 height=%2210%22 fill=%22%232b1a0a%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-25.2,-3 L-14.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-1.2,-3 L9.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%232a3fa6%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M22.8,-3 L33.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-19.2,-3 L-8.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M4.8,-3 L15.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%237b2f93%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M28.8,-3 L39.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-13.2,-3 L-2.1999999999999993,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M10.8,-3 L21.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%23c1352b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M34.8,-3 L45.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-7.2,-3 L3.8000000000000007,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M16.8,-3 L27.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%231d1206%22 stroke-opacity=%22.55%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%23e3bd5b%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M40.8,-3 L51.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%22.45%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-blue: #2a3fa6; --cord-purple: #7b2f93; --cord-scarlet: #c1352b; --cord-gold: #e3bd5b;
}
:root[data-theme="dark"] {
  --scr-glow: rgba(190,160,105,.07);
  --scr-paper-a: #2a2723; --scr-paper-b: #24211d; --scr-paper-c: #1e1b17;
  --scr-sheen: rgba(255,226,170,.04); --scr-edge: rgba(0,0,0,.55); --scr-rule: rgba(200,165,100,.22);
  --scr-sel-a: rgba(208,184,132,.17); --scr-sel-b: rgba(208,184,132,.17);
  --scr-rod-a: #3f3426; --scr-rod-b: #54452f; --scr-rod-c: #30271b; --scr-cap: #8d6f3a;
  --cord-v: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2210%22 height=%2224%22 viewBox=%220 0 10 24%22%3E%3Crect width=%2210%22 height=%2224%22 fill=%22%2314100b%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-25.2 L13,-14.2%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-1.2 L13,9.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,22.8 L13,33.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-19.2 L13,-8.2%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,4.8 L13,15.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,28.8 L13,39.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-13.2 L13,-2.1999999999999993%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,10.8 L13,21.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,34.8 L13,45.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-7.2 L13,3.8000000000000007%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,16.8 L13,27.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,40.8 L13,51.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-hz: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2210%22 viewBox=%220 0 24 10%22%3E%3Crect width=%2224%22 height=%2210%22 fill=%22%2314100b%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-25.2,-3 L-14.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-1.2,-3 L9.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M22.8,-3 L33.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-19.2,-3 L-8.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M4.8,-3 L15.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M28.8,-3 L39.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-13.2,-3 L-2.1999999999999993,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M10.8,-3 L21.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M34.8,-3 L45.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-7.2,-3 L3.8000000000000007,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M16.8,-3 L27.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M40.8,-3 L51.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-blue: #4a63d8; --cord-purple: #a24bc2; --cord-scarlet: #e0503f; --cord-gold: #e9c56a;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --scr-glow: rgba(190,160,105,.07);
    --scr-paper-a: #2a2723; --scr-paper-b: #24211d; --scr-paper-c: #1e1b17;
    --scr-sheen: rgba(255,226,170,.04); --scr-edge: rgba(0,0,0,.55); --scr-rule: rgba(200,165,100,.22);
    --scr-sel-a: rgba(208,184,132,.17); --scr-sel-b: rgba(208,184,132,.17);
    --scr-rod-a: #3f3426; --scr-rod-b: #54452f; --scr-rod-c: #30271b; --scr-cap: #8d6f3a;
    --cord-v: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2210%22 height=%2224%22 viewBox=%220 0 10 24%22%3E%3Crect width=%2210%22 height=%2224%22 fill=%22%2314100b%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-24 L13,-13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-25.2 L13,-14.2%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,0 L13,11%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-1.2 L13,9.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,24 L13,35%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,22.8 L13,33.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-18 L13,-7%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-19.2 L13,-8.2%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,6 L13,17%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,4.8 L13,15.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,30 L13,41%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,28.8 L13,39.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-12 L13,-1%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-13.2 L13,-2.1999999999999993%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,12 L13,23%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,10.8 L13,21.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,36 L13,47%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,34.8 L13,45.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-6 L13,5%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,-7.2 L13,3.8000000000000007%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,18 L13,29%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,16.8 L13,27.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-3,42 L13,53%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-3,40.8 L13,51.8%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-hz: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2210%22 viewBox=%220 0 24 10%22%3E%3Crect width=%2224%22 height=%2210%22 fill=%22%2314100b%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-24,-3 L-13,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-25.2,-3 L-14.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M0,-3 L11,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-1.2,-3 L9.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M24,-3 L35,13%22 stroke=%22%2334428a%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M22.8,-3 L33.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-18,-3 L-7,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-19.2,-3 L-8.2,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M6,-3 L17,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M4.8,-3 L15.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M30,-3 L41,13%22 stroke=%22%235e3475%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M28.8,-3 L39.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-12,-3 L-1,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-13.2,-3 L-2.1999999999999993,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M12,-3 L23,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M10.8,-3 L21.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M36,-3 L47,13%22 stroke=%22%238c3f37%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M34.8,-3 L45.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M-6,-3 L5,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M-7.2,-3 L3.8000000000000007,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M18,-3 L29,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M16.8,-3 L27.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%230c0905%22 stroke-opacity=%22.6%22 stroke-width=%225.6%22 fill=%22none%22/%3E%3Cpath d=%22M42,-3 L53,13%22 stroke=%22%239c8446%22 stroke-width=%224.4%22 fill=%22none%22/%3E%3Cpath d=%22M40.8,-3 L51.8,13%22 stroke=%22%23ffffff%22 stroke-opacity=%220.16%22 stroke-width=%221.1%22 fill=%22none%22/%3E%3C/svg%3E"); --cord-blue: #4a63d8; --cord-purple: #a24bc2; --cord-scarlet: #e0503f; --cord-gold: #e9c56a;
  }
}
/* the sheet */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses.scripture-scroll-area {
  margin: 6px 4px 0; padding: 4px 14px 4px;
  background:
    linear-gradient(115deg, var(--scr-sheen) 0%, rgba(255,255,255,0) 28%, var(--scr-sheen) 52%, rgba(255,255,255,0) 78%),
    linear-gradient(90deg, rgba(120,84,36,.20), rgba(120,84,36,0) 5%, rgba(120,84,36,0) 95%, rgba(120,84,36,.20)),
    linear-gradient(180deg, var(--scr-paper-a), var(--scr-paper-b) 55%, var(--scr-paper-c));
  box-shadow: inset 0 0 26px rgba(120,84,36,.18), 0 3px 14px rgba(40,28,10,.28);
  border-radius: 4px;
}
/* verses: no cards, just lines of the same sheet separated by a fine gold rule */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse {
  margin: 0; border: 0; border-radius: 0; overflow: visible; box-shadow: none;
  padding: 15px 20px 15px 52px; background: none; background-image: none;
}
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse::before { display: none; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse + .verse {
  background: linear-gradient(90deg, transparent, var(--scr-rule) 18%, var(--scr-rule) 82%, transparent) top / 100% 1px no-repeat;
}
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse .vnum { left: 10px; top: 14px; }
/* selected verses: one glowing block, sewn along its LEFT edge only with a twisted blue-purple-scarlet thread */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse.sel {
  --cord: var(--cord-v);
  --cord-lit: linear-gradient(90deg, rgba(255,255,255,.38), rgba(255,255,255,0) 45%, rgba(0,0,0,.28));
  margin: 0 -6px; padding-left: 58px; padding-right: 22px; border-radius: 0;
  background:
    var(--cord-lit) left / 10px 100% no-repeat, var(--cord) left / 10px 24px repeat-y,
    linear-gradient(180deg, var(--scr-sel-a), var(--scr-sel-b));
  box-shadow: 0 0 18px var(--scr-glow);
}
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse.sel .vnum { left: 16px; }

/* original-language text opened under a selected verse continues the same sewn block (no separate card) */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body {
  margin: 0 -6px; padding: 4px 22px 16px 58px; border: 0; border-radius: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.38), rgba(255,255,255,0) 45%, rgba(0,0,0,.28)) left / 10px 100% no-repeat,
    var(--cord-v) left / 10px 24px repeat-y,
    linear-gradient(180deg, var(--scr-sel-a), var(--scr-sel-b));
  box-shadow: 0 0 18px var(--scr-glow);
}
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .verse.sel + .ol-body { margin-top: -1px; padding-top: 0; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body .ol-src { border-top: 1px dashed var(--scr-rule); padding-top: 12px; }

/* rounded outer corners for the whole sewn group (selected verses + the original-language text under them); the thread follows the curve */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .verse.sel:not(.sel + .sel):not(.ol-body + .sel) { border-top-left-radius: 16px; border-top-right-radius: 16px; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .verse.sel:not(:has(+ .sel)):not(:has(+ .ol-body)) { border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body:not(:has(+ .sel)) { border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; }

/* KRV verse and its original-language text read as one sheet: no seam, thread continues, original part is the brighter paper */
:root { --scr-ol-a: rgba(255,253,244,.96); --scr-ol-b: rgba(255,253,244,.96); }
:root[data-theme="dark"] { --scr-ol-a: rgba(208,184,132,.17); --scr-ol-b: rgba(208,184,132,.17); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --scr-ol-a: rgba(208,184,132,.17); --scr-ol-b: rgba(208,184,132,.17); } }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body {
  margin-top: 0; padding-top: 2px; box-shadow: none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.38), rgba(255,255,255,0) 45%, rgba(0,0,0,.28)) left / 10px 100% no-repeat,
    var(--cord-v) left / 10px 24px repeat-y,
    linear-gradient(180deg, var(--scr-sel-b) 0, var(--scr-ol-a) 22px, var(--scr-ol-b));
}
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .verse.sel + .ol-body { margin-top: 0; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .verse.sel:has(+ .ol-body) { box-shadow: none; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body .ol-src { border-top: 0; padding-top: 4px; }

/* contain the original-language block so its inner top margin cannot open a gap between the verse and the original text */
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body { display: flow-root; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body > .ol-krv, :root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body > .ol-src { margin-top: 0; }
:root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse.sel, :root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses .verse.sel:focus-within, :root:not([data-ns1]):not([data-ns2]) body[data-view="study"] #text-pane #verses > .ol-body { outline: none; }

/* ---- 스크롤바(슬라이드바): 사막 테마 토큰 기반, light/dark 공통 ---- */
:root * { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
:root *::-webkit-scrollbar { width: 9px; height: 9px; }
:root *::-webkit-scrollbar-track { background: transparent; }
:root *::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 9px; border: 2px solid transparent; background-clip: content-box; }
:root *::-webkit-scrollbar-thumb:hover { background: var(--accent-line); background-clip: content-box; }
:root *::-webkit-scrollbar-thumb:active { background: var(--accent); background-clip: content-box; }

/* Topic exploration map only: white names with black SVG outlines in dark mode.
   No change to light mode, marker shapes, map routes or semantic-zoom visibility. */
:is(:root[data-theme="dark"], :root[data-map-theme="dark"]) #map-body svg.gmap[data-topic-map="on"]
  :is(.gm .gm-place-label, .gm-navref-label, .gm-wp-label, .gm-ref text,
      .gm-foundation-node text, .conquest-tribal-schematic > text,
      .conquest-schematic-places > text, .gm-qmark) {
  fill: #ffffff !important;
  stroke: #000000 !important;
  paint-order: stroke fill;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]):not([data-map-theme="light"]) #map-body svg.gmap[data-topic-map="on"]
    :is(.gm .gm-place-label, .gm-navref-label, .gm-wp-label, .gm-ref text,
        .gm-foundation-node text, .conquest-tribal-schematic > text,
        .conquest-schematic-places > text, .gm-qmark) {
    fill: #ffffff !important;
    stroke: #000000 !important;
    paint-order: stroke fill;
  }
}

/* Isolated Tyndale reference inside existing research panel */
.jbc-tyndale-reference{margin:20px 0;border:1px solid var(--line);border-radius:10px;background:var(--paper);overflow:hidden}
.jbc-tyndale-reference>summary{padding:14px 16px;cursor:pointer;font-weight:700;color:var(--ink)}
.jbc-tyndale-body{padding:0 16px 18px}
.jbc-tyndale-location{font-weight:700}
.jbc-tyndale-muted,.jbc-tyndale-count,.jbc-tyndale-credits{font-size:.82rem;color:var(--ink-2)}
.jbc-tyndale-entry{padding:14px 0;border-top:1px solid var(--line)}
.jbc-tyndale-entry p{white-space:pre-line;margin:.45em 0 0;line-height:1.7}
.jbc-tyndale-entry strong{color:var(--accent-ink)}
.jbc-tyndale-credits{padding-top:16px;border-top:1px solid var(--line)}

/* Map attribution (OpenFreeMap / OpenMapTiles / OpenStreetMap / MapLibre): the credit line carries live links. */
.ml-ovl .geo-attr-min { pointer-events: auto; }
.geo-attr-min a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.geo-attr-min a:hover, .geo-attr-min a:focus-visible { color: var(--ink-2); }
.map-settings-pop .set-fact { margin: .35rem 0 .25rem; font-size: .84rem; color: var(--ink-2); }

/* Search detail resize — isolated from the study/map splitter and mobile bottom sheet. */
@media (min-width:761px) {
  body[data-view="explore"] { --explore-detail-width:300px; }
  body[data-view="explore"] .sw,
  body[data-view="explore"][data-panel="open"] .sw {
    right:calc(var(--wx) + var(--explore-detail-width) + 16px);
  }
  body[data-view="explore"] #side-pane,
  body[data-view="explore"][data-panel="open"] #side-pane {
    width:var(--explore-detail-width);
    min-width:0;
    max-width:calc(100vw - var(--rail-w) - 340px);
  }
  #explore-detail-split { display:none; }
  body[data-view="explore"][data-panel="open"] #explore-detail-split {
    display:block;position:fixed;
    top:calc(var(--hdr-h,0px) + 8px);bottom:8px;
    right:calc(var(--wx) + var(--explore-detail-width) + 2px);
    width:12px;z-index:12;touch-action:none;cursor:col-resize;
    background:transparent;
  }
  body[data-view="explore"][data-panel="open"] #explore-detail-split::before {
    content:"";position:absolute;top:14px;bottom:14px;left:4px;width:4px;
    border-radius:4px;background:var(--line-strong);
    transition:background .14s;
  }
  body[data-view="explore"][data-panel="open"] #explore-detail-split:is(:hover,:focus-visible)::before,
  body[data-explore-resizing="1"] #explore-detail-split::before {
    background:var(--accent);
  }
  #explore-detail-split:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}
  body[data-explore-resizing="1"]{cursor:col-resize;user-select:none}
}
@media (max-width:760px) { #explore-detail-split {display:none!important} }

/* Explore 오른쪽 패널: 성경구절 버튼 아래로 펼쳐지는 본문 (장소 상세 .pe-verse-open 과 같은 모양) */
.inline-scripture-panel { margin: 6px 0 4px; padding: 8px 10px; border-left: 3px solid var(--accent, #a8662f); background: var(--paper, #fffaf0); border-radius: 6px; font-size: 13px; line-height: 1.65; max-height: min(46vh, 360px); overflow-y: auto; }
.inline-scripture-panel p { margin: 0 0 4px; }
.inline-scripture-panel sup { color: var(--accent, #a8662f); font-weight: 700; margin-right: 4px; }
.inline-scripture-panel .pe-open-study { display: inline-block; margin-top: 4px; font-weight: 700; }
#panel [data-inline-open][aria-expanded="true"] { text-decoration: underline; }
