/* ─── Frontend shortcode shell ─────────────────────────────────────────── */

.blrp-fe-shell {
  --blrp-fe-bg: #1b1814;
  background: var(--blrp-fe-bg);
  color: #eee5cc;
  border:1px solid #000;
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  margin: 18px auto;
  max-width: 1400px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
}
.blrp-fe-header {
  background: linear-gradient(180deg, #251c14, #1b1814);
  padding: 12px 18px;
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  border-bottom: 2px solid #000;
}
.blrp-fe-brand {
  display:flex; align-items:center; gap: 10px;
  font-family: "Lora", "Georgia", serif;
  color: #f3ead7;
}
.blrp-fe-brand .blrp-badge {
  display:inline-block; padding:4px 8px;
  border:2px solid #b81e1e; color:#b81e1e;
  font-family: "JetBrains Mono","SF Mono","Menlo",ui-monospace,monospace;
  font-weight:700; letter-spacing:2px; font-size: 11px;
  transform: rotate(-3deg); border-radius:3px; background: rgba(243,234,215,.08);
}
.blrp-fe-brand strong { font-size: 16px; }
.blrp-fe-brand .blrp-subtle { color: #b9aa86; font-size: 12px; }

.blrp-fe-nav {
  flex: 1;
  display: flex; gap: 2px; flex-wrap: wrap; align-items: center;
}
.blrp-fe-nav a {
  padding: 6px 10px;
  font-family: "JetBrains Mono","SF Mono","Menlo",ui-monospace,monospace;
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: #d6c9a8;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 3px;
}
.blrp-fe-nav a:hover { background: rgba(243,234,215,.05); color: #f3ead7; }
.blrp-fe-nav a.active {
  background: #f3ead7; color: #1b1814; border-color: #b81e1e;
  box-shadow: inset 0 -3px 0 #b81e1e;
}

.blrp-fe-user {
  display: flex; align-items: center; gap: 10px;
  font-family: "JetBrains Mono","SF Mono","Menlo",ui-monospace,monospace;
  font-size: 11px; color: #b9aa86;
}
.blrp-fe-user .blrp-btn { background: transparent; color: #d6c9a8; border-color: #5a4a36; padding: 4px 8px; font-size: 10px; }
.blrp-fe-user .blrp-btn:hover { background: rgba(243,234,215,.08); color: #f3ead7; }

.blrp-fe-main { background: #f3ead7; padding: 0; }
.blrp-fe-main .blrp-wrap {
  margin: 0; border: none; box-shadow: none; min-height: auto;
}
.blrp-fe-main .blrp-wrap::before { display: none; }

.blrp-fe-locked .blrp-fe-gate {
  background: #f3ead7; padding: 60px 40px; text-align: center; color: #20140c;
  font-family: "Lora","Georgia",serif;
}
.blrp-fe-locked .blrp-fe-gate h2 { font-size: 28px; }
.blrp-fe-locked .blrp-fe-gate a { color: #8b1e1e; }

@media (max-width: 720px) {
  .blrp-fe-nav a { font-size: 10px; padding: 5px 7px; }
  .blrp-fe-brand strong { font-size: 14px; }
}

/* ─── Crime Investigator — Dossier UI ─────────────────────────────────── */

:root {
  --blrp-bg:        #1b1814;
  --blrp-paper:     #f3ead7;
  --blrp-paper-2:   #e7dcc1;
  --blrp-ink:       #20140c;
  --blrp-ink-2:     #4a3826;
  --blrp-line:      #b8a888;
  --blrp-line-2:    #d6c9a8;
  --blrp-accent:    #8b1e1e;
  --blrp-accent-2:  #c0392b;
  --blrp-stamp:     #b81e1e;
  --blrp-gold:      #c8a96a;
  --blrp-thread:    #a51010;
  --blrp-good:      #2c7a4d;
  --blrp-warn:      #d68a30;
  --blrp-info:      #2c5c8a;
  --blrp-shadow:    0 6px 20px rgba(0,0,0,.18);
  --blrp-shadow-soft: 0 1px 3px rgba(0,0,0,.10);
  --blrp-mono:      "JetBrains Mono","SF Mono","Menlo",ui-monospace,monospace;
  --blrp-typewriter:"Special Elite","Courier New",monospace;
  --blrp-sans:      -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --blrp-serif:     "Lora","Georgia",serif;
}

@font-face {
  font-family: "Special Elite";
  src: local("Special Elite");
  font-display: swap;
}

/* ─── Wrap ────────────────────────────────────────────────────────────── */

.blrp-wrap {
  --paper-grain:
    radial-gradient(1200px 600px at 10% -10%, rgba(184,30,30,.05), transparent 60%),
    radial-gradient(900px 500px at 110% 110%, rgba(200,169,106,.10), transparent 60%);
  background:
    var(--paper-grain),
    repeating-linear-gradient(0deg, rgba(80,50,20,.02) 0 1px, transparent 1px 4px),
    var(--blrp-paper);
  color: var(--blrp-ink);
  padding: 24px 28px 60px;
  margin: 18px 18px 0 0;
  border: 1px solid var(--blrp-line);
  box-shadow: var(--blrp-shadow);
  font-family: var(--blrp-sans);
  position: relative;
  min-height: calc(100vh - 100px);
}
.blrp-fullbleed { padding: 18px 18px 18px; }

/* dossier "binder rings" along the left edge */
.blrp-wrap::before {
  content:"";
  position:absolute; left:14px; top:60px; bottom:30px; width:8px;
  background: repeating-linear-gradient(180deg, transparent 0 30px, rgba(40,20,10,.18) 30px 36px);
  border-radius:2px; pointer-events:none;
}

.blrp-wrap h1, .blrp-wrap h2, .blrp-wrap h3 {
  font-family: var(--blrp-serif);
  color: var(--blrp-ink);
  letter-spacing: .3px;
}
.blrp-subtle { color: var(--blrp-ink-2); font-size: 13px; }

/* ─── Header ─────────────────────────────────────────────────────────── */

.blrp-header {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border-bottom: 2px solid var(--blrp-ink); padding-bottom:14px; margin-bottom:18px;
}
.blrp-header h1 {
  margin:0; font-size: 28px; line-height:1; padding-right:14px;
}
.blrp-header-title { display:flex; align-items:center; gap:14px; }
.blrp-badge {
  display:inline-block; padding:6px 10px; border:2px solid var(--blrp-stamp);
  color:var(--blrp-stamp); font-family: var(--blrp-mono); font-weight:700; letter-spacing:2px;
  transform: rotate(-3deg); border-radius:4px; background: rgba(255,255,255,.4);
}
.blrp-header-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.blrp-header-actions label { display:flex; flex-direction:column; font-size:11px; color:var(--blrp-ink-2); }
.blrp-header-actions select { min-width:200px; }

/* ─── Buttons ────────────────────────────────────────────────────────── */

.blrp-btn {
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  background: var(--blrp-paper-2); color: var(--blrp-ink);
  border:1px solid var(--blrp-line); padding:7px 12px; border-radius: 3px;
  font-family: var(--blrp-mono); font-size:12px; letter-spacing:.5px; text-transform:uppercase;
  box-shadow: var(--blrp-shadow-soft);
  transition: transform .04s ease, background .15s, border-color .15s;
  text-decoration:none;
}
.blrp-btn:hover { background:#fff8e5; border-color:var(--blrp-ink-2); }
.blrp-btn:active{ transform:translateY(1px); }
.blrp-btn.primary { background: var(--blrp-ink); color: var(--blrp-paper); border-color: var(--blrp-ink); }
.blrp-btn.primary:hover { background:#3a2415; }
.blrp-btn.danger  { background: #fff; color: var(--blrp-accent); border-color: var(--blrp-accent); }
.blrp-btn.danger:hover  { background: var(--blrp-accent); color: #fff; }
.blrp-btn.ghost   { background: transparent; }

/* Icon-only square button — used for per-card actions (Edit, Delete, View, …)
   so cards stay compact. Pair with title="..." for hover tooltips. */
.blrp-btn.icon {
  padding: 0; width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; line-height: 1; letter-spacing: 0;
}
.blrp-btn.icon.sm { width: 24px; height: 24px; font-size: 12px; }

/* ─── Filter / search bar ────────────────────────────────────────────── */

.blrp-filter-bar {
  display:flex; gap:10px; flex-wrap:wrap; padding:10px 12px; margin-bottom:14px;
  background: rgba(255,255,255,.45); border:1px dashed var(--blrp-line); border-radius:3px;
}
.blrp-filter-bar input[type="search"], .blrp-filter-bar input[type="text"], .blrp-filter-bar select {
  background: #fff; border:1px solid var(--blrp-line); padding:6px 10px; min-width:180px; color:var(--blrp-ink);
  font-family: var(--blrp-sans); font-size:13px;
}
.blrp-tab-search { flex: 1; min-width: 240px !important; }
.blrp-filter-bar input[type="search"]:focus, .blrp-filter-bar select:focus { outline: 2px solid var(--blrp-gold); outline-offset:1px; }
.blrp-checks label { font-size:12px; color:var(--blrp-ink-2); }

/* ─── Loading ────────────────────────────────────────────────────────── */

.blrp-loading { font-family: var(--blrp-typewriter); color: var(--blrp-ink-2); padding:30px; text-align:center; }
.blrp-empty   { font-family: var(--blrp-typewriter); color: var(--blrp-ink-2); padding:40px; text-align:center; border:1px dashed var(--blrp-line); }

/* ─── Cards ──────────────────────────────────────────────────────────── */

.blrp-card-grid, .blrp-character-grid, .blrp-scripture-grid, .blrp-insights-grid {
  display:grid; gap:14px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.blrp-card {
  background: #fff; border:1px solid var(--blrp-line); padding:14px; box-shadow: var(--blrp-shadow-soft);
  position:relative; transition: transform .12s, box-shadow .12s;
  display: flex; flex-direction: column;
  min-height: 200px;
  font-size: 12px;
}
.blrp-card:hover { box-shadow: var(--blrp-shadow); transform: translateY(-1px); }
.blrp-card h3 { margin:0 0 4px; font-family: var(--blrp-serif); font-size:14px; }
.blrp-card .blrp-meta { font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-ink-2); }
.blrp-card > p, .blrp-card > .blrp-summary, .blrp-card > div.blrp-summary { margin: 4px 0; font-size: 12px; line-height: 1.45; color: var(--blrp-ink); }
.blrp-card .blrp-actions { margin-top: auto; padding-top: 10px; display:flex; gap:4px; flex-wrap:wrap; }

/* Summary clamp — keeps any text node to N lines so cards stay uniform. */
.blrp-summary {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
}
.blrp-summary-2 { -webkit-line-clamp: 2; }
.blrp-summary-4 { -webkit-line-clamp: 4; }
/* Quill HTML inside summaries needs explicit font sizes so headings don't
   blow out the card. Match the timeline description treatment. */
.blrp-summary p, .blrp-summary li, .blrp-summary div { font-size: 12px; line-height: 1.45; margin: 0; }
.blrp-summary h1, .blrp-summary h2, .blrp-summary h3, .blrp-summary h4 {
  font-size: 13px; margin: 0; font-family: var(--blrp-serif);
}
.blrp-summary ul, .blrp-summary ol { margin: 0 0 0 16px; padding: 0; }

/* Make the auto-fill grids align rows so cards in the same row are equal height. */
.blrp-card-grid, .blrp-character-grid, .blrp-scripture-grid, .blrp-insights-grid {
  align-items: stretch;
}

/* ─── Study grid (manila folders) ─────────────────────────────────────── */

.blrp-study-grid {
  display:grid; gap:18px;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
}
.blrp-folder {
  --cover: #c8a96a;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--cover) 90%, white) 0%, color-mix(in srgb, var(--cover) 78%, black) 100%);
  border:1px solid rgba(0,0,0,.25);
  border-radius: 0 6px 4px 4px;
  position:relative; min-height:180px;
  padding: 28px 16px 14px;
  cursor:pointer;
  transition: transform .15s, box-shadow .15s;
  box-shadow: 0 8px 14px rgba(0,0,0,.18), inset 0 -3px 0 rgba(0,0,0,.18);
  color: #1a1106;
  font-family: var(--blrp-sans);
  overflow: hidden;
}
.blrp-folder:hover { transform: translateY(-2px) rotate(-.4deg); box-shadow: 0 12px 22px rgba(0,0,0,.25); }
.blrp-folder::before { /* tab */
  content:""; position:absolute; top:-12px; left:14px; height:14px; width:120px;
  background: inherit; border:1px solid rgba(0,0,0,.25); border-bottom:none; border-radius: 5px 5px 0 0;
}
.blrp-folder .blrp-study-no {
  font-family: var(--blrp-mono); font-size:11px; background: #fffbe9; color:#1a1106;
  padding:2px 6px; border-radius:2px; border:1px solid rgba(0,0,0,.2); margin-right:6px;
}
.blrp-folder .blrp-folder-title {
  font-family: var(--blrp-serif); font-weight:700; font-size:18px; line-height:1.2; margin:8px 0 8px;
  color:#231609;
}
.blrp-folder .blrp-folder-syn { font-size: 12px; color:#2b1c0f; opacity:.85;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.blrp-folder .blrp-folder-foot {
  position:absolute; left:14px; right:14px; bottom:10px; display:flex; justify-content:space-between; align-items:center;
  font-family: var(--blrp-mono); font-size: 10px; color:#1a1106; opacity:.85;
}
/* "STATUS" stamp */
.blrp-stamp {
  display:inline-block; padding:2px 6px; border:2px solid currentColor; transform: rotate(-4deg);
  font-family: var(--blrp-mono); font-weight:700; font-size:10px; letter-spacing:1px; text-transform:uppercase;
  color: var(--blrp-stamp); background: rgba(255,255,255,.4); border-radius:2px;
}
.blrp-stamp.priority-critical { color:#7a0d0d; border-color:#7a0d0d; }
.blrp-stamp.priority-high     { color:#a44a16; border-color:#a44a16; }
.blrp-stamp.priority-low      { color:#3a4a5e; border-color:#3a4a5e; }

/* per-status tints (cover stripe) */
.blrp-folder .status-theme {
  position:absolute; top:8px; right:10px;
}

/* ─── Character cards ───────────────────────────────────────────────────── */

.blrp-character {
  background:#fff; border:1px solid var(--blrp-line); padding:12px;
  display:flex; flex-direction: column; gap: 0;
  min-height: 200px;
  font-size: 12px;
}
.blrp-character-row {
  display: flex; gap: 12px; align-items: flex-start; flex: 1;
}
.blrp-character .pic {
  width:54px; height:54px; border-radius: 50%; background: var(--blrp-paper-2);
  display:flex; align-items:center; justify-content:center; font-family: var(--blrp-serif); font-size:20px; color:var(--blrp-ink-2);
  border:1px solid var(--blrp-line); overflow:hidden;
  flex-shrink: 0;
}
.blrp-character .pic img { width:100%; height:100%; object-fit:cover; }
.blrp-character .info { flex:1; min-width:0; }
.blrp-character .info h3 { margin:0; font-size:14px; font-family: var(--blrp-serif); }
.blrp-character .info .role { font-family: var(--blrp-mono); font-size:10px; color:var(--blrp-ink-2); margin-top:2px; }
.blrp-character .info .desc { font-size:12px; color:var(--blrp-ink); margin-top:6px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* Actions sit below the row, anchored to the card's left edge so they line
   up with the action buttons on every other tab's cards. */
.blrp-character > .blrp-actions {
  margin-top: auto; padding-top: 10px; display: flex; gap: 4px; flex-wrap: wrap;
  justify-content: flex-start;
}
.blrp-risk-badge { font-family: var(--blrp-mono); font-size:10px; padding:1px 5px; border-radius:2px; border:1px solid; display:inline-block; margin-left:6px; }
.blrp-risk-low      { color:#2c7a4d; border-color:#2c7a4d; }
.blrp-risk-medium   { color:#d68a30; border-color:#d68a30; }
.blrp-risk-high     { color:#a31a1a; border-color:#a31a1a; }
.blrp-risk-extreme  { color:#fff; background:#7a0d0d; border-color:#7a0d0d; }
.blrp-risk-unknown  { color:#5a4a36; border-color:#5a4a36; }

/* ─── Scripture cards ─────────────────────────────────────────────────── */

.blrp-ev {
  background: #fff; border:1px solid var(--blrp-line); padding:12px; position:relative;
}
.blrp-ev::before { /* "EVIDENCE" rubber stamp */
  content:"EVIDENCE"; position:absolute; top:6px; right:10px;
  font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-stamp);
  border:1px solid var(--blrp-stamp); padding:1px 4px; transform: rotate(8deg);
  letter-spacing:1px; opacity:.8;
}
.blrp-ev .blrp-ev-no { font-family: var(--blrp-mono); font-size:11px; color:var(--blrp-ink-2); }
.blrp-ev h3 { margin:6px 0 4px; font-size:15px; }
.blrp-ev .blrp-ev-desc { font-size:12px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.blrp-ev .blrp-ev-foot { font-family: var(--blrp-mono); font-size:10px; margin-top:8px; color:var(--blrp-ink-2); }
.blrp-ev .blrp-ev-foot .seal { color: var(--blrp-good); font-weight:700; }
.blrp-ev .blrp-ev-foot .unseal { color: var(--blrp-warn); }
.blrp-ev .blrp-ev-thumb { width:100%; height:120px; background:#f8f0d8; border:1px dashed var(--blrp-line); display:flex; align-items:center; justify-content:center; color:var(--blrp-ink-2); font-family: var(--blrp-mono); font-size:11px; margin-top:8px; overflow:hidden; }
.blrp-ev .blrp-ev-thumb img { width:100%; height:100%; object-fit:cover; }

/* ─── Insights ───────────────────────────────────────────────────────────── */

.blrp-insight {
  background:
    linear-gradient(0deg, rgba(0,0,0,.02), transparent),
    repeating-linear-gradient(180deg, rgba(0,0,0,.02) 0 28px, transparent 28px 30px),
    #fffaee;
  border:1px solid var(--blrp-line); padding:14px; box-shadow: var(--blrp-shadow-soft);
  position:relative;
  display: flex; flex-direction: column;
  min-height: 200px;
}
.blrp-insight .blrp-actions { margin-top: auto; padding-top: 10px; }
.blrp-insight .insight-type { font-family: var(--blrp-mono); font-size:11px; color: var(--blrp-stamp); letter-spacing:1px; }
.blrp-insight blockquote { margin:8px 0; font-family: var(--blrp-typewriter); font-size:14px; line-height:1.5; color:var(--blrp-ink); }
.blrp-insight .meta { font-family: var(--blrp-mono); font-size:10px; color:var(--blrp-ink-2); }
.blrp-insight .pin {
  position:absolute; top:-8px; left:50%; transform:translateX(-50%);
  width:18px; height:18px; border-radius:50%; background: radial-gradient(circle at 35% 35%, #ff8585, #b81e1e 60%, #6b0a0a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}

/* ─── Modal ──────────────────────────────────────────────────────────── */

.blrp-modal {
  position:fixed; inset:0; background: rgba(20,12,6,.55); z-index:99999;
  display:flex; align-items:flex-start; justify-content:center; padding:60px 20px;
}
.blrp-modal[hidden] { display:none; }
.blrp-modal-card {
  background: var(--blrp-paper); border:1px solid var(--blrp-ink); width: 720px; max-width:95vw;
  max-height: 85vh; overflow:auto; box-shadow: 0 16px 50px rgba(0,0,0,.5);
}
.blrp-modal-head {
  display:flex; align-items:center; justify-content:space-between; padding:14px 18px;
  border-bottom: 2px solid var(--blrp-ink); background: var(--blrp-paper-2);
}
.blrp-modal-head h2 { margin:0; font-family: var(--blrp-serif); font-size:20px; }
.blrp-modal-close { background:transparent; border:none; font-size:24px; cursor:pointer; color:var(--blrp-ink); }
.blrp-modal-foot {
  display:flex; gap:10px; justify-content:flex-end; padding:14px 18px;
  border-top: 1px solid var(--blrp-line); background: var(--blrp-paper-2);
  position:sticky; bottom:0;
}
/* Delete button injected by addDeleteToModal — anchored to the bottom-left
   so destructive action is visually separated from Cancel/Save on the right. */
.blrp-modal-foot .blrp-modal-delete { margin-right: auto; }

/* In-page image lightbox (opened in place of a raw new-tab navigation). */
.blrp-img-viewer { align-items:center; padding:40px 20px; }
.blrp-img-viewer .blrp-img-viewer-card { width:auto; max-width:95vw; max-height:90vh; display:flex; flex-direction:column; }
.blrp-img-viewer .blrp-img-viewer-body {
  display:flex; align-items:center; justify-content:center;
  background: #1a120a; padding:8px; flex:1 1 auto; min-height:0;
  overflow: hidden;
  position: relative; /* anchors the loupe absolutely-positioned overlay */
}
.blrp-img-viewer .blrp-img-viewer-body img {
  max-width: 100%; max-height: 100%;
  width: auto; height: auto;
  object-fit: contain; display:block;
}
.blrp-img-tile .thumb { cursor: zoom-in; }
.blrp-attach-tile .thumb img { cursor: zoom-in; }

/* Cursor-following loupe overlay drawn on top of the image. */
.blrp-img-viewer-body.blrp-loupe-on .blrp-img-viewer-img { cursor: crosshair; }
.blrp-img-loupe {
  position: absolute; pointer-events: none;
  width: 240px; height: 240px; border-radius: 50%;
  border: 2px solid #f5e6cf; box-shadow: 0 0 0 1px rgba(0,0,0,.6), 0 6px 18px rgba(0,0,0,.55);
  background-color: #1a120a; background-repeat: no-repeat;
  z-index: 2;
}
/* The magnifier icon button looks pressed when active. */
.blrp-img-viewer .blrp-btn.icon.active {
  background: var(--blrp-ink); color: var(--blrp-paper);
}

/* ─── Form ───────────────────────────────────────────────────────────── */

.blrp-form { padding:16px 18px; display:flex; flex-direction:column; gap:10px; }
.blrp-form label { display:flex; flex-direction:column; font-size:12px; color: var(--blrp-ink-2); font-family: var(--blrp-mono); }
.blrp-form input, .blrp-form select, .blrp-form textarea {
  background: #fff; border:1px solid var(--blrp-line); padding:7px 9px; font-family: var(--blrp-sans); font-size:13px; color: var(--blrp-ink);
  margin-top:3px; border-radius:2px;
}
.blrp-form input:focus, .blrp-form select:focus, .blrp-form textarea:focus { outline:2px solid var(--blrp-gold); outline-offset:1px; }
.blrp-form textarea { font-family: var(--blrp-typewriter); }
.blrp-row { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap:10px; }
.blrp-form .blrp-row label { margin-bottom:0; }

/* ─── Status colors (tab tints) ──────────────────────────────────────── */

.blrp-study-status { font-family: var(--blrp-mono); font-size:11px; padding:3px 7px; border:2px solid currentColor; transform: rotate(-2deg); border-radius:2px; }
.blrp-status-reported    { color:#888; }
.blrp-status-triaged     { color:#5b8def; }
.blrp-status-assigned    { color:#9b59b6; }
.blrp-status-active      { color:#27ae60; }
.blrp-status-pending     { color:#e67e22; }
.blrp-status-cold        { color:#3498db; }
.blrp-status-cleared     { color:#16a085; }
.blrp-status-charged     { color:#c0392b; }
.blrp-status-trial       { color:#8e44ad; }
.blrp-status-adjudicated { color:#2c3e50; }
.blrp-status-closed      { color:#34495e; }
.blrp-status-unfounded   { color:#7f8c8d; }

/* ─── Study Detail cover ──────────────────────────────────────────────── */

.blrp-study-cover {
  --cover:#c8a96a;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--cover) 92%, white), color-mix(in srgb, var(--cover) 78%, black)),
    #c8a96a;
  border:1px solid rgba(0,0,0,.25);
  padding: 28px 24px 18px; margin-bottom:14px;
  position:relative; box-shadow: 0 10px 22px rgba(0,0,0,.2);
  color:#1a1106; min-height:140px;
}
.blrp-study-cover .blrp-cover-flap {
  position:absolute; top:-14px; left:14px; height:18px; width:160px; background:inherit;
  border:1px solid rgba(0,0,0,.25); border-bottom:none; border-radius: 6px 6px 0 0;
}
.blrp-study-cover .blrp-cover-meta { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-family: var(--blrp-mono); font-size:11px; }
.blrp-study-cover .blrp-study-no { background: #fffbe9; color:#1a1106; padding:3px 7px; border:1px solid rgba(0,0,0,.2); border-radius:2px; font-weight:700; }
.blrp-study-cover .blrp-study-type { background: rgba(255,255,255,.4); padding:3px 7px; border:1px solid rgba(0,0,0,.15); border-radius:2px; }
.blrp-study-cover .blrp-study-title { font-family: var(--blrp-serif); margin:6px 0 4px; font-size:30px; line-height:1.1; color:#231609; }
.blrp-study-cover .blrp-cover-actions { display:flex; gap:8px; flex-wrap:wrap; }
/* When the cover-meta row also carries the action buttons (Edit / Status /
   Print / Delete), push those buttons to the far right of the same line. */
.blrp-study-cover .blrp-cover-meta.blrp-cover-meta-row .blrp-cover-actions { margin-left:auto; }

/* ─── Tabs ───────────────────────────────────────────────────────────── */

/* Study context bar shown above the Settings page when the user navigated
   from a specific study — preserves the study header + tab strip so they
   can return without losing their place. */
.blrp-settings-study-context {
  background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
  padding: 8px 12px;
  margin: 6px 0 16px;
}
.blrp-settings-study-back { display:flex; align-items:center; gap:10px; font-family: var(--blrp-mono); font-size: 12px; }
.blrp-settings-study-back .blrp-study-no { letter-spacing: 1px; }
.blrp-settings-study-back .blrp-study-title-inline { font-family: var(--blrp-serif); font-size: 16px; }
/* Anchor-based static tab strip (used by Settings context bar) — links not
   buttons, so they need their own styling. */
.blrp-tabs-static { margin-top: 8px; }
.blrp-tabs-static a {
  display:inline-block; padding: 5px 10px; border:1px solid var(--blrp-line);
  background: var(--blrp-paper); color: var(--blrp-ink);
  font-family: var(--blrp-mono); font-size: 11px; text-decoration: none;
  margin: 0 2px -2px 0;
}
.blrp-tabs-static a:hover { background:#fff8e5; }

.blrp-tabs { display:flex; gap:2px; flex-wrap:wrap; border-bottom:2px solid var(--blrp-ink); margin-top:4px; margin-bottom:6px; }
.blrp-tabs button {
  background: var(--blrp-paper-2); border:1px solid var(--blrp-line); border-bottom:none;
  padding:4px 12px; font-family: var(--blrp-mono); font-size:12px; cursor:pointer; color: var(--blrp-ink-2);
  letter-spacing: .5px; text-transform:uppercase;
}
.blrp-tabs button.active { background: var(--blrp-paper); color: var(--blrp-ink); border-color: var(--blrp-ink); border-bottom: 2px solid var(--blrp-paper); margin-bottom:-2px; font-weight:700; }
.blrp-tabs button:hover:not(.active) { background:#fff8e5; }

.blrp-tab-body { padding: 4px 0; }
.blrp-tab-body h2 { margin: 0 0 10px; font-family: var(--blrp-serif); font-size:22px; }

/* ─── Overview grid ──────────────────────────────────────────────────── */

.blrp-overview-grid {
  display:grid; gap:14px;
  grid-template-columns: 2fr 1fr;
}
@media (max-width: 980px) { .blrp-overview-grid { grid-template-columns: 1fr; } }
.blrp-panel {
  background:#fff; border:1px solid var(--blrp-line); padding:14px;
  font-size:13px; line-height:1.5;
}
.blrp-panel h3 { margin:0 0 8px; font-family: var(--blrp-serif); font-size:14px; }

/* Rich-text content rendered from Quill HTML (synopsis on the Overview tab
   today; reusable for any other rich-text fields we surface later). Theme rules
   give paragraphs proper spacing, indent lists, and shrink any inline headings
   so they don't compete with the panel <h3>. */
.blrp-rt-display { font-size:13px; line-height:1.5; }
.blrp-rt-display p { margin:0 0 8px; }
.blrp-rt-display p:last-child { margin-bottom:0; }
.blrp-rt-display ul, .blrp-rt-display ol { margin:4px 0 8px 22px; padding:0; }
.blrp-rt-display li { margin:0 0 2px; }
.blrp-rt-display blockquote { margin:4px 0 8px; padding-left:10px; border-left:3px solid var(--blrp-line); color:var(--blrp-ink-2); }
.blrp-rt-display h1, .blrp-rt-display h2, .blrp-rt-display h3, .blrp-rt-display h4 { font-family: var(--blrp-serif); margin:6px 0 4px; }
.blrp-rt-display h1 { font-size:15px; }
.blrp-rt-display h2 { font-size:14px; }
.blrp-rt-display h3, .blrp-rt-display h4 { font-size:13px; }
.blrp-rt-display pre, .blrp-rt-display code { font-family: var(--blrp-mono); font-size:12px; }
.blrp-rt-display pre { background:#f6efe2; padding:8px 10px; border:1px solid var(--blrp-line); margin:4px 0 8px; white-space:pre-wrap; }
.blrp-panel p  { margin:0 0 8px; font-size:13px; }
.blrp-kv { display:grid; grid-template-columns: 130px 1fr; gap:6px 10px; font-size:13px; }
.blrp-kv dt { color:var(--blrp-ink-2); font-family: var(--blrp-mono); font-size:11px; text-transform:uppercase; }
.blrp-kv dd { margin:0; }

/* ─── Status timeline ────────────────────────────────────────────────── */

.blrp-status-timeline { list-style:none; margin:0; padding:0; border-left: 2px solid var(--blrp-ink); padding-left: 14px; }
.blrp-status-timeline li { margin-bottom:12px; position:relative; font-size:13px; }
.blrp-status-timeline li::before {
  content:""; position:absolute; left:-21px; top:6px; width:10px; height:10px; border-radius:50%; background: var(--blrp-stamp); border:2px solid var(--blrp-paper);
}
.blrp-status-timeline .when { font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-ink-2); }
.blrp-status-timeline .change strong { font-family: var(--blrp-mono); font-size:11px; }

/* ─── Timeline visualization ─────────────────────────────────────────── */

.blrp-tl {
  position:relative; padding: 10px 0 30px 0;
}
.blrp-tl::before {
  content:""; position:absolute; left:50%; top:0; bottom:0; width:3px; background: var(--blrp-ink);
}
.blrp-tl-item {
  width:46%; padding:12px; background:#fff; border:1px solid var(--blrp-line); margin-bottom:14px; box-shadow: var(--blrp-shadow-soft);
  position:relative;
}
.blrp-tl-item.left  { margin-right:auto; }
.blrp-tl-item.right { margin-left:auto; }
.blrp-tl-item .when { font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-ink-2); text-transform:uppercase; }
.blrp-tl-item h4 { margin:4px 0 6px; font-family: var(--blrp-serif); font-size:14px; }
.blrp-tl-item p, .blrp-tl-item .blrp-tl-desc { margin:0; font-size:12px; line-height: 1.45; color: var(--blrp-ink); }
.blrp-tl-item .blrp-tl-desc p,
.blrp-tl-item .blrp-tl-desc li,
.blrp-tl-item .blrp-tl-desc div { font-size: 12px; line-height: 1.45; margin: 0 0 4px; }
.blrp-tl-item .blrp-tl-desc h1,
.blrp-tl-item .blrp-tl-desc h2,
.blrp-tl-item .blrp-tl-desc h3,
.blrp-tl-item .blrp-tl-desc h4 { font-size: 13px; margin: 4px 0 2px; font-family: var(--blrp-serif); }
.blrp-tl-item .blrp-tl-desc ul,
.blrp-tl-item .blrp-tl-desc ol { margin: 2px 0 4px 18px; padding: 0; }
.blrp-tl-item::after {
  content:""; position:absolute; top:14px; width:14px; height:14px; border-radius:50%; background: var(--blrp-stamp); border: 3px solid var(--blrp-paper);
}
.blrp-tl-item.left::after  { right:-26px; }
.blrp-tl-item.right::after { left:-26px; }

/* Year banner spans the spine and visually anchors each period. */
.blrp-tl-year {
  position: relative; z-index: 1;
  width: fit-content;
  margin: 22px auto 14px;
  padding: 4px 14px;
  background: var(--blrp-ink); color: var(--blrp-paper);
  font-family: var(--blrp-serif); font-size: 16px; letter-spacing: 2px;
  border: 2px solid var(--blrp-ink);
  box-shadow: var(--blrp-shadow-soft);
}
/* Month label is centered on the spine, smaller than the year banner so it
   visually reads as a subdivision. */
.blrp-tl-month {
  position: relative; z-index: 1;
  width: fit-content;
  margin: 10px auto 8px;
  padding: 2px 10px;
  font-family: var(--blrp-mono); font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--blrp-paper);
  background: var(--blrp-ink-2);
  border: 1px solid var(--blrp-ink-2);
}
/* Day label — smaller than Month, plain background, hangs on the spine. */
.blrp-tl-day {
  position: relative; z-index: 1;
  width: fit-content;
  margin: 8px auto 4px;
  padding: 1px 8px;
  font-family: var(--blrp-serif); font-size: 12px; font-style: italic;
  color: var(--blrp-ink);
  background: var(--blrp-paper);
  border: 1px solid var(--blrp-line);
}
/* Time label — smallest divider, mono so HH:MM stays aligned. Used to
   subdivide a day when many events happen at different times. */
.blrp-tl-time {
  position: relative; z-index: 1;
  width: fit-content;
  margin: 4px auto 2px;
  padding: 0 6px;
  font-family: var(--blrp-mono); font-size: 10px; letter-spacing: 1px;
  color: var(--blrp-ink-2);
  background: var(--blrp-paper);
}

/* Floating "+" that appears when hovering the timeline spine, lets the user
   add a new event anchored to that vertical position. Positioned via inline
   `top` (set in JS); the transform centers it both axes on that anchor. */
.blrp-tl-add-btn {
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px; height: 30px;
  padding: 0;
  border-radius: 50%;
  border: 2px solid var(--blrp-ink);
  background: var(--blrp-stamp);
  color: var(--blrp-paper);
  font-size: 20px;
  line-height: 1;
  font-weight: bold;
  cursor: pointer;
  z-index: 3;
  box-shadow: var(--blrp-shadow-soft);
  font-family: var(--blrp-serif);
}
.blrp-tl-add-btn:hover { filter: brightness(1.15); transform: translate(-50%, -50%) scale(1.1); }
.blrp-tl-add-btn:focus-visible { outline: 2px solid var(--blrp-gold); outline-offset: 2px; }

@media (max-width: 720px) {
  .blrp-tl::before { left:14px; }
  .blrp-tl-add-btn { left: 14px; }
  .blrp-tl-item { width:auto; margin-left:34px !important; margin-right:0 !important; }
  .blrp-tl-item::after { left:-26px !important; right:auto !important; }
  .blrp-tl-year, .blrp-tl-month, .blrp-tl-day, .blrp-tl-time { margin-left: 0; margin-right: 0; }
}

/* ─── Transmission log ────────────────────────────────────────────────────── */

.blrp-transmission { width:100%; border-collapse:collapse; font-size:12px; }
.blrp-transmission th { background: var(--blrp-paper-2); text-align:left; padding:6px 8px; border:1px solid var(--blrp-line); font-family: var(--blrp-mono); font-size:11px; text-transform:uppercase; }
.blrp-transmission td { padding:6px 8px; border:1px solid var(--blrp-line); background:#fff; }

/* ─── Graph ──────────────────────────────────────────────────────────── */

.blrp-graph-host { display:grid; grid-template-columns: 1fr 280px; gap:12px; height: calc(100vh - 220px); }
@media (max-width: 980px) { .blrp-graph-host { grid-template-columns: 1fr; height: auto; } }
#blrp-graph-canvas { background: var(--blrp-paper); border:1px solid var(--blrp-ink); min-height: 500px; }
.blrp-graph-side { display:flex; flex-direction:column; gap:10px; max-height: calc(100vh - 220px); overflow:auto; }
.blrp-side-card { background:#fff; border:1px solid var(--blrp-line); padding:12px; }
.blrp-side-card h3 { margin:0 0 6px; font-size:14px; font-family: var(--blrp-serif); }
.blrp-legend { list-style:none; padding:0; margin:0; font-size:12px; }
.blrp-legend li { display:flex; align-items:center; gap:8px; padding:3px 0; }
.blrp-legend .dot { width:14px; height:14px; display:inline-block; background:#888; }
.blrp-legend .dot.box   { background:#888; border-radius:2px; }
.blrp-legend .dot.circle{ background:#5b8def; border-radius:50%; }
.blrp-legend .dot.tri   { width:0; height:0; background:transparent; border-left:7px solid transparent; border-right:7px solid transparent; border-bottom:12px solid #16a085; }
.blrp-legend .dot.sq    { background:#e67e22; border-radius:1px; }
.blrp-legend .dot.dia   { background:#9b59b6; transform: rotate(45deg); }
.blrp-legend .dot.star  { background: var(--blrp-stamp); clip-path: polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); }
.blrp-legend .dot.dotn  { background:#7f8c8d; border-radius:50%; }

/* ─── Map ────────────────────────────────────────────────────────────── */

#blrp-map-host { height: calc(100vh - 220px); border:1px solid var(--blrp-ink); }
.leaflet-container { background:#e6decb; }

/* Custom pin marker — colored circular badge with an emoji glyph and a small
   tail underneath so it points to the exact lat/lng. */
.blrp-pin { background: transparent; border: 0; }
.blrp-pin-bubble {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; line-height: 1;
  background: #c0392b; color: #fff;
  border: 2px solid #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  position: relative;
}
.blrp-pin-bubble::after {
  content:''; position:absolute; left:50%; bottom:-7px;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 6px solid transparent; border-right: 6px solid transparent;
  border-top: 8px solid #fff;
}

/* Pin preview chip used in Settings vocab editor + Edit Location modal. */
.blrp-pin-preview {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: #888; color: #fff;
  font-size: 16px; line-height: 1;
  border: 1px solid rgba(0,0,0,.3);
  box-shadow: var(--blrp-shadow-soft);
  vertical-align: middle;
}
.blrp-pin-preview-lg { width: 40px; height: 40px; font-size: 22px; }
.blrp-pin-preview-label { display: flex; flex-direction: column; align-items: flex-start; }
.leaflet-popup-content { font-family: var(--blrp-sans); font-size: 12px; }
.leaflet-popup-content strong { font-family: var(--blrp-serif); font-size: 14px; }
.leaflet-control-layers { font-family: var(--blrp-mono); font-size: 12px; }
.leaflet-control-layers label { padding: 2px 0; }
.leaflet-control-layers-toggle { background-color: var(--blrp-paper); }

/* Find & Merge — duplicate group cards. Each group renders as a header row
   with the match reason, followed by a horizontal row of cards (one per
   candidate). Picking the "Keep" radio on a card marks it as the canonical
   row; the other cards in the group get merged into it. */
.blrp-merge-body { display: flex; flex-direction: column; gap: 16px; max-height: 70vh; overflow: auto; }
.blrp-merge-group {
  border: 1px solid var(--blrp-line); background: var(--blrp-paper);
  padding: 10px 12px;
}
.blrp-merge-group-head {
  display: flex; align-items: center; gap: 4px;
  padding-bottom: 8px; margin-bottom: 8px;
  border-bottom: 1px dashed var(--blrp-line);
  font-family: var(--blrp-mono); font-size: 11px; color: var(--blrp-ink-2);
}
.blrp-merge-match { color: var(--blrp-stamp); text-transform: uppercase; letter-spacing: 1px; font-weight: bold; }
.blrp-merge-cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px;
}
.blrp-merge-card {
  display: flex; flex-direction: column; gap: 6px;
  background: #fff; border: 1px solid var(--blrp-line); padding: 8px 10px;
  cursor: pointer;
  font-size: 12px; line-height: 1.4;
}
.blrp-merge-card:has(input[type="radio"]:checked) {
  border-color: var(--blrp-stamp); box-shadow: 0 0 0 2px rgba(165,16,16,.15);
}
.blrp-merge-card-head {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--blrp-mono); font-size: 11px;
}
.blrp-merge-card-body { display: flex; flex-direction: column; gap: 2px; }
.blrp-merge-field { font-size: 12px; line-height: 1.4; }
.blrp-merge-label { color: var(--blrp-ink-2); font-family: var(--blrp-mono); font-size: 11px; }
.blrp-merge-value { color: var(--blrp-ink); word-break: break-word; }
.blrp-merge-actions { margin-top: 10px; display: flex; gap: 8px; }

/* "Include on timelines / maps" membership picker — rendered in the event
   and location modals so a row can be added to / removed from any of the
   user's named overlays in one go.
   The `label.…-row` selector (specificity 0,1,1) is needed because the
   generic `.blrp-form label` rule (also 0,1,1) sets flex-direction:column,
   which would otherwise stack the checkbox above its label text. */
.blrp-overlay-membership {
  background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
  padding: 4px 8px;
  display: flex; flex-direction: column; gap: 0;
  max-height: 140px; overflow: auto;
}
.blrp-form label.blrp-overlay-membership-row,
label.blrp-overlay-membership-row {
  display: flex; flex-direction: row; align-items: center; gap: 6px;
  font-family: var(--blrp-mono); font-size: 12px; color: var(--blrp-ink);
  margin: 0; padding: 1px 0; line-height: 1.4;
  cursor: pointer;
}
.blrp-overlay-membership-row input[type="checkbox"] { margin: 0; }
.blrp-overlay-membership-row .blrp-subtle { font-size: 11px; }

/* Overlay manager toolbar — used by multi-timeline and multi-graph tabs.
   Mirrors the map toolbar's look so the named-view pattern feels uniform. */
.blrp-overlay-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 8px 10px; margin-bottom: 6px;
  background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
  font-family: var(--blrp-mono); font-size: 12px;
}
.blrp-overlay-toolbar .blrp-overlay-select {
  background: #fff; border: 1px solid var(--blrp-line); padding: 4px 6px;
  font-family: var(--blrp-mono); font-size: 12px; color: var(--blrp-ink);
}

/* Map manager toolbar — appears above each Leaflet map. Lets the user pick
   the active named map, plus create / rename / duplicate / delete actions. */
.blrp-map-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 8px 10px; margin-bottom: 6px;
  background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
  font-family: var(--blrp-mono); font-size: 12px;
}
.blrp-map-toolbar .blrp-map-select {
  background: #fff; border: 1px solid var(--blrp-line); padding: 4px 6px;
  font-family: var(--blrp-mono); font-size: 12px; color: var(--blrp-ink);
}

/* Map tools (📏 measure, 📍 drop pin) — square Leaflet control buttons. */
.blrp-map-tools.leaflet-bar a {
  background: #fff; color: var(--blrp-ink);
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; line-height: 1; text-decoration: none;
}
.blrp-map-tools.leaflet-bar a:hover { background: var(--blrp-paper-2); }
.blrp-map-tools.leaflet-bar a.active {
  background: var(--blrp-stamp); color: #fff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.3);
}

/* When a tool is active, change the map's cursor so the user sees they're
   in tool mode (and pan/zoom still work). */
.blrp-map-measuring .leaflet-grab,
.blrp-map-measuring .leaflet-interactive { cursor: crosshair !important; }
.blrp-map-dropping  .leaflet-grab,
.blrp-map-dropping  .leaflet-interactive { cursor: copy !important; }
.blrp-map-drawing-line .leaflet-grab,
.blrp-map-drawing-line .leaflet-interactive { cursor: crosshair !important; }
/* Drag handles for selected movement lines — pop on hover so they're easy
   to grab; the regular Leaflet pan cursor switches to a move icon. */
.leaflet-interactive.blrp-line-handle { cursor: grab; }
.leaflet-interactive.blrp-line-handle:hover { stroke-width: 3 !important; }
/* Ctrl/Cmd held → markers become draggable; show the move cursor over them. */
.blrp-map-pin-drag .blrp-pin { cursor: move !important; }
.blrp-map-pin-drag .blrp-pin-bubble { box-shadow: 0 0 0 3px var(--blrp-stamp), 0 2px 4px rgba(0,0,0,.4); }

/* Distance label hovering off the latest measure point. */
.leaflet-tooltip.blrp-measure-label {
  background: var(--blrp-ink); color: var(--blrp-paper);
  border: 1px solid var(--blrp-ink); padding: 3px 8px;
  font-family: var(--blrp-mono); font-size: 11px; letter-spacing: .5px;
  box-shadow: var(--blrp-shadow);
}
.leaflet-tooltip.blrp-measure-label::before { display: none; }

/* Field-help chips and the popover they open. Placed inline immediately
   after the label text — see attachHelpChips() — and reveal the help on
   hover or keyboard focus.
   The wrapper span keeps text + chip on the same row inside the flex-column
   label, instead of pushing the chip onto its own row beneath the text. */
.blrp-help-chip-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.blrp-help-chip {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px;
  margin: 0 0 0 6px; padding: 0;
  vertical-align: middle;
  border: 1px solid var(--blrp-line); border-radius: 50%;
  background: var(--blrp-paper-2); color: var(--blrp-ink-2);
  font-family: var(--blrp-mono); font-size: 10px; font-weight: 700;
  line-height: 1; cursor: help;
  user-select: none;
}
.blrp-help-chip:hover,
.blrp-help-chip:focus { background: var(--blrp-stamp); color: #fff; border-color: var(--blrp-stamp); outline: none; }
.blrp-help-pop {
  position: fixed; z-index: 100000;
  max-width: 320px; padding: 10px 12px;
  background: var(--blrp-ink); color: var(--blrp-paper);
  border: 1px solid var(--blrp-ink); border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
  font-size: 12px; line-height: 1.5;
}

/* Import row flagged when its study selector is "— no study —". */
tr.blrp-iox-nocase td:last-child { background: #fff3cd; }
tr.blrp-iox-nocase select[name="link_study_id"] {
  border:1px solid #c9931e; outline:none;
}

/* Fullscreen map — fill the viewport and let the toolbar sit on top. */
.leaflet-container:fullscreen,
.leaflet-container:-webkit-full-screen { width: 100vw !important; height: 100vh !important; background: var(--blrp-paper); }
:fullscreen #blrp-map-host,
:-webkit-full-screen #blrp-map-host { width: 100vw; height: 100vh; }

/* Hover tooltip on each location marker — small, just the name. */
.leaflet-tooltip.blrp-mark-tooltip {
  background: rgba(255,251,233,.96); color: var(--blrp-ink);
  border: 1px solid var(--blrp-ink); padding: 3px 8px;
  font-family: var(--blrp-serif); font-size: 12px;
  box-shadow: var(--blrp-shadow-soft);
}
.leaflet-tooltip.blrp-mark-tooltip::before {
  border-top-color: var(--blrp-ink);
}

/* ─── Documents ──────────────────────────────────────────────────────── */

.blrp-doc-upload-card { background:#fff; border:1px solid var(--blrp-line); padding:14px; margin-bottom:12px; display:grid; grid-template-columns: 1fr 2fr; gap:14px; align-items:center; }
.blrp-doc-upload-card > div:first-child { display:flex; gap:10px; flex-wrap:wrap; }
.blrp-doc-upload-card label { display:flex; flex-direction:column; font-size:11px; color:var(--blrp-ink-2); font-family:var(--blrp-mono); }
.blrp-doc-upload-card select, .blrp-doc-upload-card input { background:#fff; border:1px solid var(--blrp-line); padding:6px 9px; }
.blrp-dropzone {
  display:flex; align-items:center; justify-content:center; min-height: 90px;
  border: 2px dashed var(--blrp-line); background: var(--blrp-paper-2); cursor:pointer; color: var(--blrp-ink-2); font-family: var(--blrp-mono); font-size:13px; text-align:center;
}
.blrp-dropzone.dragover { background: #fff8e5; border-color: var(--blrp-stamp); color: var(--blrp-stamp); }
.blrp-dropzone input { display:none; }
.blrp-progress { font-family: var(--blrp-mono); font-size:12px; padding:6px 10px; background: var(--blrp-paper-2); border:1px solid var(--blrp-line); margin-top:8px; }

.blrp-doc-row { background:#fff; border:1px solid var(--blrp-line); padding:12px; margin-bottom:8px; }
.blrp-doc-row .doc-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.blrp-doc-row .doc-head > .blrp-actions { display:flex; gap:4px; align-items:center; flex-shrink:0; padding-top:0; margin-top:0; }
.blrp-doc-row h3 { margin:0; font-family: var(--blrp-serif); font-size:15px; }
.blrp-doc-row .doc-meta { font-family: var(--blrp-mono); font-size:11px; color:var(--blrp-ink-2); }
.blrp-doc-row .doc-snippet { font-family: var(--blrp-typewriter); font-size:13px; line-height:1.5; margin-top:8px; max-height:5.4em; overflow:hidden; }
.blrp-doc-row .doc-actions { margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; }

/* ─── Search results ─────────────────────────────────────────────────── */

#blrp-search-results .search-row {
  background:#fff; border:1px solid var(--blrp-line); padding:10px 12px; margin-bottom:6px;
  display:flex; justify-content:space-between; align-items:center; gap:14px;
}
#blrp-search-results .search-row .label { font-family: var(--blrp-serif); font-size:14px; }
#blrp-search-results .search-row .meta { font-family: var(--blrp-mono); font-size:11px; color:var(--blrp-ink-2); }
.blrp-pill {
  display:inline-block; padding:1px 6px; font-family: var(--blrp-mono); font-size:10px; border:1px solid var(--blrp-line); border-radius:2px; background:var(--blrp-paper-2); color:var(--blrp-ink-2); text-transform:uppercase; margin-right:6px;
}
.blrp-pill.study  { background:#fff3d4; }
.blrp-pill.character{ background:#dde7ff; }
.blrp-pill.location { background:#dff5e9; }
.blrp-pill.artifact  { background:#fde6cc; }
.blrp-pill.group { background:#eddff5; }
.blrp-pill.scripture { background:#fbd9d9; }
.blrp-pill.document { background:#e7e4dc; }
.blrp-pill.insight      { background:#fff5b8; }

/* ─── Dashboard ──────────────────────────────────────────────────────── */

.blrp-stat-grid { display:grid; gap:12px; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); margin-bottom:14px; }
.blrp-stat {
  background:#fff; border:1px solid var(--blrp-line); padding:14px;
  display:flex; flex-direction:column; gap:4px;
}
.blrp-stat .v { font-family: var(--blrp-serif); font-size: 28px; line-height:1; color: var(--blrp-ink); }
.blrp-stat .l { font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-ink-2); text-transform:uppercase; letter-spacing:1px; }
.blrp-stat.warn .v { color: var(--blrp-warn); }
.blrp-stat.danger .v { color: var(--blrp-accent); }

.blrp-dash-grid { display:grid; gap:14px; grid-template-columns: 2fr 1fr; }
@media (max-width: 980px) { .blrp-dash-grid { grid-template-columns: 1fr; } }
.blrp-chart-card { background:#fff; border:1px solid var(--blrp-line); padding:14px; min-height:200px; }
.blrp-chart-card canvas { max-height: 260px; }
/* Tall per-book reading charts (dashboard + study overview) opt out of the
   global canvas cap — their parent div sets a fixed height in JS. */
.blrp-chart-card canvas#blrp-chart-reading-books,
.blrp-chart-card canvas#blrp-ov-coverage { max-height: none; }
.blrp-chart-card > div:has(> canvas#blrp-chart-reading-books) { height: 560px; position: relative; }
.blrp-feed { background:#fff; border:1px solid var(--blrp-line); padding:14px; max-height:320px; overflow:auto; }
.blrp-feed .row { padding:8px 0; border-bottom:1px dashed var(--blrp-line); font-size:13px; }
.blrp-feed .row:last-child { border-bottom:none; }
.blrp-feed .when { font-family: var(--blrp-mono); font-size:10px; color:var(--blrp-ink-2); }

/* ─── Print ──────────────────────────────────────────────────────────── */

@media print {
  body, .wp-admin { background:#fff !important; }
  #adminmenumain, #adminmenuback, #wpadminbar, #wpfooter, .blrp-tabs, .blrp-cover-actions, .blrp-header-actions { display:none !important; }
  .blrp-wrap { box-shadow:none; border:none; padding:0; margin:0; }
  .blrp-study-cover { box-shadow:none; }
}

/* ─── Misc ───────────────────────────────────────────────────────────── */

.blrp-sentiment-positive { color: var(--blrp-good); }
.blrp-sentiment-negative,
.blrp-sentiment-very_negative { color: var(--blrp-accent); }
.blrp-sentiment-neutral  { color: var(--blrp-ink-2); }

.blrp-ai-callout {
  background: #fff8e0; border-left: 4px solid var(--blrp-stamp); padding:8px 12px; margin:6px 0; font-size:13px;
}
.blrp-ai-summary {
  background:#fff; border:1px solid var(--blrp-line); padding:14px; font-family: var(--blrp-typewriter); font-size:14px; line-height:1.6;
}

/* AI suggested links */
.blrp-sug-row {
  background:#fff; border:1px solid var(--blrp-line); padding:8px 10px; margin: 6px 0;
  display:flex; gap:10px; align-items:center; justify-content:space-between;
}
.blrp-sug-body { flex:1; min-width:0; }
.blrp-sug-pair { font-size:13px; font-family: var(--blrp-serif); }
.blrp-sug-arrow { color: var(--blrp-stamp); margin: 0 2px; }
.blrp-sug-reason { font-family: var(--blrp-mono); font-size:11px; color: var(--blrp-ink-2); margin-top:3px; }
.blrp-sug-conf {
  display:inline-block; padding:1px 6px; border:1px solid currentColor;
  border-radius:2px; font-size:10px; text-transform:uppercase; letter-spacing:1px;
}
.blrp-sug-conf-high   { color: var(--blrp-good); }
.blrp-sug-conf-medium { color: var(--blrp-warn); }
.blrp-sug-conf-low    { color: var(--blrp-ink-2); }
.blrp-sug-actions { display:flex; gap:6px; flex-shrink:0; }
.blrp-sug-actions .blrp-btn { padding: 4px 8px; font-size:10px; }

.blrp-bar { height:6px; background: var(--blrp-paper-2); border-radius:3px; overflow:hidden; }
.blrp-bar > div { height:100%; background: var(--blrp-stamp); }

.blrp-toast {
  position:fixed; bottom:20px; right:20px; background: var(--blrp-ink); color: var(--blrp-paper);
  padding: 10px 14px; border-radius:3px; font-family: var(--blrp-mono); font-size:12px; box-shadow: var(--blrp-shadow); z-index:99999;
}
.blrp-toast.error { background: var(--blrp-accent); }

/* ─── Help button + help modal ─────────────────────────────────────────── */

.blrp-help-btn {
  width: 26px; height: 26px; padding: 0; border-radius: 50%;
  font-weight: 700; font-family: var(--blrp-serif); font-size: 14px;
  background: var(--blrp-paper-2); color: var(--blrp-ink); border: 1px solid var(--blrp-ink);
  display: inline-flex; align-items: center; justify-content: center;
}
.blrp-help-btn:hover { background: var(--blrp-stamp); color: #fff; border-color: var(--blrp-stamp); }
.blrp-help-body { padding: 16px 18px; }
.blrp-help-body h3 { font-family: var(--blrp-serif); font-size: 15px; margin: 14px 0 4px; }
.blrp-help-body p, .blrp-help-body li { font-size: 13px; line-height: 1.5; }
.blrp-help-body ul, .blrp-help-body ol { margin: 4px 0 8px 18px; padding: 0; }

/* ─── Add Link modal — step blocks + result list ───────────────────────── */

.blrp-link-steps {
  background: #fff8e0; border-left: 4px solid var(--blrp-stamp);
  padding: 8px 12px 8px 28px; margin: 0 0 12px;
  font-size: 13px; line-height: 1.55;
}
.blrp-link-step {
  border: 1px solid var(--blrp-line); padding: 10px 12px 12px;
  margin-bottom: 10px; background: rgba(255,255,255,.5);
}
.blrp-link-step legend {
  font-family: var(--blrp-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 1px; padding: 2px 8px; background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
}
.blrp-link-results {
  margin-top: 6px; max-height: 160px; overflow: auto;
  background: #fff; border: 1px solid var(--blrp-line);
}
.blrp-link-result {
  padding: 6px 9px; cursor: pointer; border-bottom: 1px solid var(--blrp-line);
  font-size: 13px;
}
.blrp-link-result:hover { background: var(--blrp-paper-2); }
.blrp-link-result:last-child { border-bottom: none; }
.blrp-link-sel {
  display: inline-block; padding: 5px 9px;
  background: #fff; border: 1px solid var(--blrp-line);
  font-family: var(--blrp-mono); font-size: 12px; color: var(--blrp-ink-2);
  min-height: 1.3em;
}
.blrp-link-sel.selected { color: var(--blrp-good); border-color: var(--blrp-good); font-weight: 700; }

/* ─── Image tiles + attachment picker ──────────────────────────────────── */

.blrp-img-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.blrp-img-tile { background: #fff; border:1px solid var(--blrp-line); padding: 6px; display: flex; flex-direction: column; gap: 4px; }
.blrp-img-tile .thumb { width:100%; aspect-ratio: 4/3; background: var(--blrp-paper-2); border:1px dashed var(--blrp-line); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.blrp-img-tile .thumb img { width:100%; height:100%; object-fit: cover; }
.blrp-img-tile .thumb .icon { font-size: 28px; color: var(--blrp-ink-2); }
.blrp-img-tile .name { font-family: var(--blrp-mono); font-size: 11px; word-break: break-all; }
.blrp-img-tile .meta { font-family: var(--blrp-mono); font-size: 10px; color: var(--blrp-ink-2); }

.blrp-pick-row {
  display:flex; align-items:center; gap:10px;
  padding:8px; border-bottom: 1px solid var(--blrp-line); cursor: pointer;
}
.blrp-pick-row:hover { background: var(--blrp-paper-2); }
.blrp-pick-row:last-child { border-bottom: none; }
.blrp-pick-row.attached { background: #eef7ee; cursor: default; opacity: .8; }
.blrp-pick-row.attached:hover { background: #eef7ee; }
.blrp-pick-row.attached .blrp-pick-thumb { box-shadow: inset 0 0 0 2px var(--blrp-good); }
.blrp-pick-del {
  background: transparent; border: 1px solid transparent; color: var(--blrp-ink-2);
  padding: 4px 8px; cursor: pointer; font-size: 16px; line-height: 1; border-radius: 3px;
}
.blrp-pick-del:hover { color: #fff; background: var(--blrp-accent); border-color: var(--blrp-accent); }
.blrp-pick-del:disabled { opacity: .4; cursor: default; }

.blrp-btn.blrp-btn-success {
  background: var(--blrp-good); color: #fff; border-color: var(--blrp-good); cursor: default;
}
.blrp-btn.blrp-btn-success:hover { background: var(--blrp-good); color: #fff; }
.blrp-btn:disabled, .blrp-btn[disabled] { opacity: .8; cursor: default; }
.blrp-pick-thumb {
  width: 56px; height: 56px; flex-shrink: 0;
  background: var(--blrp-paper-2); border: 1px solid var(--blrp-line);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  font-family: var(--blrp-mono); font-size: 18px;
}
.blrp-pick-thumb img { width:100%; height:100%; object-fit: cover; }
.blrp-pick-body { flex: 1; min-width: 0; }
.blrp-pick-title { font-family: var(--blrp-serif); font-size: 14px; }
.blrp-pick-meta  { font-family: var(--blrp-mono); font-size: 11px; color: var(--blrp-ink-2); }

/* ─── Toggle switch ────────────────────────────────────────────────────── */

.blrp-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; border: none; padding: 4px 0; cursor: pointer;
  font-family: var(--blrp-mono); font-size: 11px; color: var(--blrp-ink);
}
.blrp-toggle:focus-visible { outline: 2px solid var(--blrp-gold); outline-offset: 2px; }
.blrp-toggle.disabled, .blrp-toggle:disabled { opacity: .45; cursor: not-allowed; }
.blrp-toggle .blrp-toggle-track {
  display: inline-block; position: relative;
  width: 36px; height: 20px;
  background: var(--blrp-paper-2);
  border: 1px solid var(--blrp-line);
  border-radius: 999px;
  transition: background .15s, border-color .15s;
}
.blrp-toggle .blrp-toggle-thumb {
  position: absolute; top: 1px; left: 1px;
  width: 16px; height: 16px;
  background: #fff; border: 1px solid var(--blrp-line);
  border-radius: 50%;
  transition: left .15s;
}
.blrp-toggle[data-state="1"] .blrp-toggle-track { background: var(--blrp-good); border-color: var(--blrp-good); }
.blrp-toggle[data-state="1"] .blrp-toggle-thumb { left: 17px; border-color: var(--blrp-good); }
.blrp-toggle-label { text-transform: uppercase; letter-spacing: 1px; }
.blrp-toggle-hint  { display: block; margin-top: 2px; font-size: 10px; }

/* ─── Quill (rich text editor) overrides ───────────────────────────────── */

.blrp-rt-host { border: 1px solid var(--blrp-line); background: #fff; margin-bottom: 8px; }
.blrp-rt-host .ql-toolbar.ql-snow { border: none; border-bottom: 1px solid var(--blrp-line); background: var(--blrp-paper-2); }
.blrp-rt-host .ql-container.ql-snow { border: none; font-family: var(--blrp-typewriter); font-size: 14px; }
.blrp-rt-host .ql-editor { min-height: 180px; }

/* ─── Convert-to dropdown on the Note modal ────────────────────────────── */

.blrp-convert-menu {
  position: absolute; bottom: 100%; left: 0; margin-bottom: 4px;
  background: #fff; border: 1px solid var(--blrp-ink); box-shadow: var(--blrp-shadow);
  z-index: 100000; min-width: 180px;
  display: flex; flex-direction: column;
}
.blrp-convert-menu[hidden] { display: none; }
.blrp-convert-menu button {
  background: transparent; border: none; text-align: left;
  padding: 7px 12px; font-size: 13px; font-family: var(--blrp-sans); color: var(--blrp-ink);
  cursor: pointer;
}
.blrp-convert-menu button:hover { background: var(--blrp-paper-2); }
.blrp-convert-menu button + button { border-top: 1px solid var(--blrp-line); }

/* ─── Attachment section (inside entity modals) ───────────────────────── */

.blrp-attach-section {
  background: #fff8e5; border:1px dashed var(--blrp-line); padding:10px 12px; margin-top: 6px;
}
.blrp-attach-section .blrp-attach-head {
  display:flex; align-items:center; gap:8px; margin-bottom:6px; font-family: var(--blrp-mono); font-size:12px; color: var(--blrp-ink);
}
.blrp-attach-list { display:grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap:8px; }
.blrp-attach-tile {
  background:#fff; border:1px solid var(--blrp-line); padding:6px; display:flex; flex-direction:column; gap:4px; font-size:11px;
  box-shadow: var(--blrp-shadow-soft); position:relative;
  cursor: grab;
  transition: opacity .12s, transform .12s;
}
.blrp-attach-tile:active { cursor: grabbing; }
.blrp-attach-tile.dragging { opacity: .4; outline: 2px dashed var(--blrp-stamp); outline-offset: 2px; }
.blrp-attach-tile button, .blrp-attach-tile a { cursor: pointer; }
.blrp-attach-tile img { cursor: zoom-in; }
.blrp-attach-tile .thumb {
  width:100%; height:88px; background: var(--blrp-paper-2); display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px dashed var(--blrp-line);
}
.blrp-attach-tile .thumb img { width:100%; height:100%; object-fit:cover; }
.blrp-attach-tile .thumb .icon { font-family: var(--blrp-mono); font-size:20px; color: var(--blrp-ink-2); }
.blrp-attach-tile .name { font-family: var(--blrp-mono); font-size:11px; color: var(--blrp-ink); word-break: break-all; overflow:hidden; text-overflow: ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.blrp-attach-tile .meta { font-family: var(--blrp-mono); font-size:10px; color: var(--blrp-ink-2); }
.blrp-attach-tile .tile-actions { display:flex; gap:4px; }
.blrp-attach-tile .tile-actions .blrp-btn { padding:3px 6px; font-size:10px; }
.blrp-attach-ctrls { margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.blrp-attach-status { margin-top:8px; font-family: var(--blrp-mono); font-size:11px; color: var(--blrp-stamp); }

/* ─── Import / Export table ────────────────────────────────────────────── */

.blrp-iox-table { background:#fff; border:1px solid var(--blrp-line); }
.blrp-iox-table th { background: var(--blrp-paper-2); font-family: var(--blrp-mono); font-size: 11px; text-transform: uppercase; }
.blrp-iox-table td { vertical-align: middle; }
.blrp-iox-table code { font-size: 11px; color: var(--blrp-ink-2); background: transparent; padding: 0; }
.blrp-iox-form { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
/* Native file input is hidden — the matching <label class="blrp-btn icon">
   acts as the click target and the filename is shown beside it. */
.blrp-iox-form input.blrp-iox-file { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.blrp-iox-form .blrp-iox-filename {
  font-family: var(--blrp-mono); font-size: 11px; color: var(--blrp-ink-2);
  max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  padding: 0 4px;
}
.blrp-iox-form select { font-size: 12px; padding: 4px 6px; border: 1px solid var(--blrp-line); min-width: 0; }

/* ─── Vocab editor ─────────────────────────────────────────────────────── */

.blrp-vocab-block {
  background:#fff; border:1px solid var(--blrp-line); padding:10px 14px; margin-bottom:8px;
}
.blrp-vocab-block summary {
  cursor:pointer; font-family: var(--blrp-serif); padding: 4px 0; outline: none;
}
.blrp-vocab-table {
  width:100%; border-collapse: collapse; margin: 8px 0; font-size:13px;
}
.blrp-vocab-table th {
  background: var(--blrp-paper-2); text-align:left; padding:6px 8px; border:1px solid var(--blrp-line); font-family: var(--blrp-mono); font-size:11px; text-transform:uppercase;
}
.blrp-vocab-table td {
  padding:5px 8px; border:1px solid var(--blrp-line); background:#fff; vertical-align:middle;
}
.blrp-vocab-table input[type="text"] {
  width:100%; padding:5px 7px; border:1px solid var(--blrp-line); background:#fff; font-family: var(--blrp-mono); font-size:12px;
}
.blrp-vocab-table input[type="color"] { width:36px; height:28px; padding:0; border:1px solid var(--blrp-line); cursor:pointer; }
.blrp-vocab-table select { padding:4px 6px; border:1px solid var(--blrp-line); }

/* ─── Fullscreen mode ──────────────────────────────────────────────────────
   Toggled by the ⛶ button (top-right) on every BLRP admin page. Hides the
   WordPress chrome (admin bar, sidebar menu, footer) and stretches the
   plugin content to fill the viewport.
   ────────────────────────────────────────────────────────────────────────── */
.blrp-fs-toggle {
  position: fixed;
  top: 36px;            /* sits just under the wp admin bar */
  right: 16px;
  z-index: 99999;
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bsb-ink, #1b1814);
  color: #f3ead7;
  border: 1px solid var(--bsb-ink, #1b1814);
  border-radius: 4px;
  cursor: pointer;
  font-size: 18px; line-height: 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  opacity: .85;
  transition: opacity .15s, background .15s;
}
.blrp-fs-toggle:hover { opacity: 1; background: #3a2415; }
@media (max-width: 782px) { .blrp-fs-toggle { top: 50px; } }

body.blrp-fullscreen .blrp-fs-toggle { top: 8px; }

/* Hide WordPress chrome */
body.blrp-fullscreen #wpadminbar,
body.blrp-fullscreen #adminmenumain,
body.blrp-fullscreen #adminmenuback,
body.blrp-fullscreen #adminmenuwrap,
body.blrp-fullscreen #wpfooter,
body.blrp-fullscreen #screen-meta,
body.blrp-fullscreen #screen-meta-links { display: none !important; }

/* Reclaim the space */
body.blrp-fullscreen.wp-admin { margin-top: 0 !important; }
html.wp-toolbar:has(body.blrp-fullscreen) { padding-top: 0 !important; }
body.blrp-fullscreen #wpcontent,
body.blrp-fullscreen #wpbody-content,
body.blrp-fullscreen #wpfooter { margin-left: 0 !important; padding-left: 0 !important; }
body.blrp-fullscreen #wpcontent { padding-left: 20px !important; padding-right: 20px !important; }
body.blrp-fullscreen #wpbody { padding-top: 0 !important; }
body.blrp-fullscreen .wrap { max-width: 100% !important; }

/* WP also sets html { margin-top: 32px !important } via wp-admin-bar styles */
body.blrp-fullscreen { background: var(--bsb-paper, #f8f1dc); }
html:has(body.blrp-fullscreen) { margin-top: 0 !important; }

/* ── Branded Login / Register card (biblelab_research_pro_account) ───── */
.blrp-account-card {
  max-width: 460px;
  margin: 48px auto;
  padding: 32px 36px;
  background: var(--blrp-paper, #f3ead7);
  border: 1px solid #d0c9b8;
  border-radius: 6px;
  box-shadow: 0 4px 18px rgba(58, 36, 21, 0.08);
}
.blrp-account-card h1 {
  margin: 0 0 4px;
  font-family: var(--blrp-display, serif);
  color: var(--blrp-ink, #20140c);
  font-size: 26px;
}
.blrp-account-card > p:first-of-type { margin-top: 0; }
.blrp-account-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #d0c9b8;
  margin: 18px 0 16px;
}
.blrp-account-tab {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 500;
  color: #6b5b3f;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.blrp-account-tab.is-active {
  color: var(--blrp-ink, #20140c);
  border-bottom-color: var(--blrp-ink, #20140c);
  font-weight: 600;
}
.blrp-account-tab:hover { color: var(--blrp-ink, #20140c); }
.blrp-account-pane { display: none; }
.blrp-account-pane.is-active { display: flex; flex-direction: column; gap: 12px; }
.blrp-account-pane label { display: flex; flex-direction: column; font-size: 12px; color: var(--blrp-ink-2, #4a3826); }
.blrp-account-pane input[type="text"],
.blrp-account-pane input[type="email"],
.blrp-account-pane input[type="password"] {
  margin-top: 4px;
  padding: 8px 10px;
  background: #fff;
  border: 1px solid #c8c0a8;
  border-radius: 3px;
  font-size: 14px;
  color: var(--blrp-ink, #20140c);
}
.blrp-account-pane input:focus { outline: 2px solid var(--blrp-ink, #20140c); outline-offset: -1px; }
.blrp-account-checkbox { flex-direction: row !important; align-items: center; gap: 8px; font-size: 13px; }
.blrp-account-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 6px;
  flex-wrap: wrap;
}
.blrp-account-link { font-size: 13px; color: var(--blrp-ink-2, #4a3826); text-decoration: underline; }
.blrp-account-link:hover { color: var(--blrp-ink, #20140c); }
.blrp-account-msg {
  margin: 14px 0;
  padding: 10px 12px;
  border-radius: 3px;
  font-size: 13px;
  border: 1px solid;
}
.blrp-account-msg-error { background: #fdecea; border-color: #f5c6cb; color: #7a1f1a; }
.blrp-account-msg-info  { background: #e8f1fb; border-color: #b8d4f0; color: #1f3b66; }
.blrp-account-disabled  { margin-top: 14px; font-style: italic; }

/* ── Strong's-tagged words in the bible reader ──────────────────────── */
.blrp-tagged-word {
  cursor: pointer;
  color: #5a3a14;
  border-bottom: 2px solid rgba(123, 94, 60, 0.55);
  border-radius: 2px;
  transition: background-color 0.08s ease, border-color 0.08s ease;
}
.blrp-tagged-word:hover {
  background: rgba(123, 94, 60, 0.18);
  border-bottom-color: rgba(123, 94, 60, 1);
}
.blrp-tagged-word:active { background: rgba(123, 94, 60, 0.32); }

/* ── Lexicon popup (opened by clicking a tagged word) ───────────────── */
.blrp-lex-popup {
  position: absolute;
  z-index: 99999;
  max-width: 420px;
  min-width: 260px;
  max-height: 60vh;
  overflow-y: auto;
  background: #fffaf0;
  border: 1px solid #7b5e3c;
  border-radius: 4px;
  box-shadow: 0 6px 24px rgba(58, 36, 21, 0.25);
  font-size: 13px;
  line-height: 1.5;
  color: #20140c;
}
.blrp-lex-popup-loading {
  padding: 12px 14px;
  color: #7b5e3c;
  font-style: italic;
}
.blrp-lex-popup-head {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #f3ead7;
  border-bottom: 1px solid #d0c9b8;
  font-size: 14px;
}
.blrp-lex-popup-head strong { color: #20140c; }
.blrp-lex-popup-keys {
  color: #7b5e3c;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.blrp-lex-popup-close {
  margin-left: auto;
  background: transparent;
  border: none;
  font-size: 20px;
  line-height: 1;
  color: #7b5e3c;
  cursor: pointer;
  padding: 0 4px;
}
.blrp-lex-popup-close:hover { color: #20140c; }
.blrp-lex-popup-entry {
  padding: 10px 12px;
  border-top: 1px solid #ece5d2;
}
.blrp-lex-popup-entry:first-of-type { border-top: none; }
.blrp-lex-popup-key {
  margin-bottom: 4px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
}
.blrp-lex-popup-keycode {
  font-weight: 600;
  color: #7b5e3c;
  font-size: 13px;
}
.blrp-lex-popup-lemma {
  font-size: 18px;
  font-family: "SBL Hebrew", "SBL Greek", serif;
}
.blrp-lex-popup-translit { color: #888; font-style: italic; }
.blrp-lex-popup-pron { color: #888; font-size: 12px; }
.blrp-lex-popup-meta {
  font-size: 11px;
  color: #6b5b3f;
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}
.blrp-lex-popup-def {
  white-space: pre-wrap;
  font-size: 13px;
  color: #20140c;
}
