/* ============================================================================
   bible.css — local KJV study reader (shared by the Jesus & Paul atlases)
   Relies on the host page's design tokens (--gold, --parch-line, --serif, …)
   for accents, but the reading surface is its own warm "parchment" theme so
   the reader reads as a distinct study mode over the dark map UI.
   ========================================================================== */
/* docked split-screen panel — a flex child of .app that slides in from the right.
   The map's .stage (flex:1) shrinks automatically; Leaflet is told to invalidateSize. */
.bib-dock{
  --bib-w: clamp(360px, 46vw, 680px);
  flex:0 0 auto; width:0; align-self:stretch; position:relative; overflow:hidden;
  transition:width .34s cubic-bezier(.4,0,.2,1); z-index:1400;
}
.bib-dock.on{ width:var(--bib-w); }
.bib-dock.dragging{ transition:none; }
.bib-panel{
  --paper:#f6efe0; --paper-2:#efe6d2; --ink-text:#2c2418; --ink-soft:#6f6450; --line:#d8ccb2;
  position:absolute; top:0; right:0; height:100%; width:var(--bib-w);
  display:flex; flex-direction:column; background:var(--paper); color:var(--ink-text);
  border-left:1px solid #c9bda1; box-shadow:-14px 0 44px rgba(0,0,0,.30);
}
/* drag handle to resize the split */
.bib-grip{ position:absolute; left:0; top:0; bottom:0; width:8px; cursor:col-resize; z-index:6; }
.bib-grip::before{ content:""; position:absolute; left:3px; top:50%; transform:translateY(-50%); width:2px; height:42px; border-radius:2px; background:#c9bda1; transition:background .15s; }
.bib-grip:hover::before, .bib-grip.drag::before{ background:var(--gold,#b8860b); height:64px; }

/* ---- header ---- */
.bib-head{
  flex:none; display:flex; align-items:center; gap:8px; padding:11px 12px;
  background:linear-gradient(180deg,var(--paper-2),var(--paper)); border-bottom:1px solid var(--line);
}
.bib-nav{ display:flex; align-items:center; gap:4px; }
.bib-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  height:32px; min-width:32px; padding:0 9px; border-radius:9px; cursor:pointer;
  background:#fff8ea; border:1px solid var(--line); color:var(--ink-text);
  font-family:var(--mono,monospace); font-size:12px; transition:background .14s,border-color .14s;
}
.bib-btn:hover{ background:#fff; border-color:#c2b48f; }
.bib-btn:disabled{ opacity:.4; cursor:default; }
.bib-btn svg{ width:16px; height:16px; }
.bib-sel{
  height:32px; border-radius:9px; border:1px solid var(--line); background:#fff8ea; color:var(--ink-text);
  font-family:var(--serif,Georgia,serif); font-size:14px; padding:0 8px; cursor:pointer; max-width:160px;
}
.bib-sel.chap{ max-width:74px; }
.bib-spacer{ flex:1; }
.bib-close{ font-size:18px; line-height:1; }

/* ---- search ---- */
.bib-searchbar{ flex:none; display:none; padding:8px 12px; border-bottom:1px solid var(--line); background:var(--paper-2); }
.bib-searchbar.on{ display:flex; gap:8px; }
.bib-search-in{
  flex:1; height:34px; border-radius:9px; border:1px solid var(--line); background:#fff; color:var(--ink-text);
  padding:0 12px; font-family:var(--serif,Georgia,serif); font-size:14px;
}
.bib-search-in:focus{ outline:none; border-color:var(--gold,#c79a16); }

/* ---- body ---- */
.bib-body{ flex:1; min-height:0; overflow-y:auto; padding:20px 26px 40px; scroll-behavior:smooth; }
.bib-body::-webkit-scrollbar{ width:11px; }
.bib-body::-webkit-scrollbar-thumb{ background:#d3c5a6; border-radius:8px; border:3px solid var(--paper); background-clip:padding-box; }

.bib-bookttl{ font-family:var(--serif,Georgia,serif); font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 2px; }
.bib-chapttl{ font-family:var(--serif,Georgia,serif); font-size:30px; font-weight:600; margin:0 0 14px; color:var(--ink-text); }
.bib-chapttl .ord{ color:var(--gold,#b8860b); font-style:italic; font-weight:500; }

.bib-text{ font-family:var(--serif,Georgia,serif); font-size:18px; line-height:1.78; }
.bib-verse{ cursor:pointer; border-radius:4px; padding:0 1px; transition:background .12s; }
.bib-verse:hover{ background:rgba(0,0,0,.045); }
.bib-vn{ font-family:var(--mono,monospace); font-size:10px; font-weight:700; color:var(--gold,#b8860b); vertical-align:super; line-height:0; margin:0 3px 0 2px; user-select:none; }
.bib-verse i{ font-style:italic; color:#4a4032; }     /* {translator-supplied} words */
.bib-verse.is-active .bib-vn{ color:#fff; }

/* focus passage (the verses the reference pointed to) */
.bib-focus{ box-shadow:inset 3px 0 0 var(--gold,#b8860b); background:rgba(184,134,11,.07); }

/* red letter — words of Christ */
.bib-verse.bib-red{ color:#a4232a; }
.bib-verse.bib-red i{ color:#bb555c; }
.bib-btn.active{ background:#a4232a; color:#fff; border-color:#a4232a; }
.bib-btn.active:hover{ background:#8f1d24; }

/* cross-reference back button */
.bib-back{ margin-bottom:12px; }

/* highlighter colors */
.hl-yellow{ background:#ffe89a; } .hl-yellow:hover{ background:#ffe289; }
.hl-green { background:#bde9b4; } .hl-green:hover{ background:#aee2a3; }
.hl-blue  { background:#bcdcf6; } .hl-blue:hover{ background:#abd2f2; }
.hl-pink  { background:#f6c6da; } .hl-pink:hover{ background:#f2b6ce; }
.hl-orange{ background:#ffd0a6; } .hl-orange:hover{ background:#ffc592; }

/* note marker */
.bib-noteflag{ display:inline-block; font-size:11px; color:var(--gold,#b8860b); margin:0 2px; cursor:pointer; vertical-align:super; line-height:0; }

/* ---- verse action popover ---- */
.bib-pop{
  position:fixed; z-index:2100; display:none; flex-direction:column; gap:8px; padding:9px;
  background:#fffdf7; border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 34px rgba(0,0,0,.32);
}
.bib-pop.on{ display:flex; }
.bib-pop-row{ display:flex; align-items:center; gap:7px; }
.bib-swatch{ width:24px; height:24px; border-radius:50%; cursor:pointer; border:2px solid rgba(0,0,0,.12); transition:transform .12s; }
.bib-swatch:hover{ transform:scale(1.14); }
.bib-swatch.clear{ background:#fff; position:relative; }
.bib-swatch.clear::after{ content:"⌀"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#b33; font-size:15px; }
.bib-pop-act{ flex:1; height:30px; border-radius:8px; border:1px solid var(--line); background:#fff8ea; color:var(--ink-text); font-family:var(--mono,monospace); font-size:11px; cursor:pointer; }
.bib-pop-act:hover{ background:#fff; }
.bib-notebox{ display:none; flex-direction:column; gap:6px; }
.bib-notebox.on{ display:flex; }
.bib-noteta{ width:220px; height:74px; resize:vertical; border-radius:8px; border:1px solid var(--line); padding:7px; font-family:var(--serif,Georgia,serif); font-size:13px; color:var(--ink-text); }
.bib-noteta:focus{ outline:none; border-color:var(--gold,#b8860b); }

/* ---- search results ---- */
.bib-results{ font-family:var(--serif,Georgia,serif); }
.bib-result{ padding:9px 6px; border-bottom:1px solid var(--line); cursor:pointer; border-radius:6px; }
.bib-result:hover{ background:rgba(0,0,0,.04); }
.bib-result b{ color:var(--gold,#a8780f); font-family:var(--mono,monospace); font-size:12px; letter-spacing:.04em; }
.bib-result span{ display:block; font-size:15px; color:var(--ink-text); margin-top:2px; }
.bib-result mark{ background:#ffe89a; color:inherit; }
.bib-empty{ color:var(--ink-soft); font-family:var(--serif,Georgia,serif); font-style:italic; padding:24px 4px; }
.bib-credit{ margin-top:18px; padding-top:10px; border-top:1px solid var(--line); color:var(--ink-soft); font-family:var(--mono,monospace); font-size:10px; letter-spacing:.04em; }

/* loading */
.bib-loading{ display:flex; align-items:center; justify-content:center; height:100%; color:var(--ink-soft); font-family:var(--serif,Georgia,serif); font-style:italic; font-size:16px; }

/* the in-app reference links/chips become buttons */
.scrip-link{ cursor:pointer; }
@media (max-width:640px){
  .bib-dock{ --bib-w:100vw; }
  .bib-grip{ display:none; }
  .bib-sel{ max-width:120px; } .bib-text{ font-size:17px; }
}
