/* Fideograph Citation Engine — citation-engine.css */

:root {
  --fce-gold:    #C9A84C;
  --fce-gold-d:  #B8922A;
  --fce-ink:     #1c1810;
  --fce-ink2:    #2e2a1e;
  --fce-ink3:    #48432e;
  --fce-ink4:    #6b5f4a;
  --fce-ink5:    #8b6a1a;
  --fce-parch:   #faf6ed;
  --fce-parch2:  #f4edd8;
  --fce-border:  #ddd5b8;
}

/* ── Wrap ─────────────────────────────────────────────── */
.fce-wrap { background:var(--fce-parch); color:var(--fce-ink); }

/* ── Masthead ─────────────────────────────────────────── */
.fce-masthead {
  background:#1c1810;
  padding:64px 32px 56px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.fce-masthead::before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 60% 60% at 50% 0%, rgba(201,168,76,.15), transparent);
}
.fce-masthead__inner { position:relative; max-width:720px; margin:0 auto; }
.fce-masthead__eyebrow {
  font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(201,168,76,.5); margin-bottom:12px;
}
.fce-masthead__title {
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(28px,4vw,48px); font-weight:700;
  color:#fff; margin-bottom:14px; line-height:1.15;
}
.fce-masthead__sub {
  font-family:'EB Garamond',Georgia,serif;
  font-size:1.1rem; font-style:italic;
  color:rgba(250,246,237,.55); margin-bottom:20px; line-height:1.7;
}
.fce-masthead__meta {
  display:flex; justify-content:center; gap:20px; flex-wrap:wrap;
}
.fce-masthead__meta span {
  font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(201,168,76,.6); padding:4px 0;
}

/* ── Doctrine filter bar ──────────────────────────────── */
.fce-doctrine-bar {
  position:sticky; top:60px; z-index:80;
  background:#2e2a1e;
  border-bottom:1px solid rgba(201,168,76,.15);
  display:flex; overflow-x:auto; flex-wrap:nowrap;
  scrollbar-width:none;
}
.fce-doctrine-bar::-webkit-scrollbar { display:none; }
.fce-doctrine-pill {
  flex-shrink:0;
  padding:13px 22px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(250,246,237,.4);
  cursor:pointer; border:none; background:none;
  border-bottom:2px solid transparent;
  transition:all .15s; white-space:nowrap;
}
.fce-doctrine-pill:hover { color:rgba(250,246,237,.7); }
.fce-doctrine-pill.active { color:var(--fce-gold); border-bottom-color:var(--fce-gold); }

/* ── Layout ───────────────────────────────────────────── */
.fce-layout {
  display:grid;
  grid-template-columns:260px 1fr;
  max-width:1320px;
  margin:0 auto;
  min-height:calc(100vh - 130px);
  align-items:start;
}
@media(max-width:900px) {
  .fce-layout { grid-template-columns:1fr; }
  .fce-sidebar { position:static; height:auto; border-right:none; border-bottom:1px solid var(--fce-border); }
}

/* ── Sidebar ──────────────────────────────────────────── */
.fce-sidebar {
  position:sticky; top:130px;
  max-height:calc(100vh - 130px);
  overflow-y:auto;
  padding:24px 20px;
  border-right:1px solid var(--fce-border);
  background:var(--fce-parch);
}
.fce-sidebar__group { margin-bottom:22px; }
.fce-sidebar__label {
  font-size:10px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--fce-ink5); font-weight:700;
  margin-bottom:8px; display:block;
}
.fce-search-box {
  width:100%; padding:8px 10px;
  border:1px solid var(--fce-border); border-radius:4px;
  font-size:13px; font-family:inherit;
  background:#fff; color:var(--fce-ink); outline:none;
  box-sizing:border-box;
}
.fce-search-box:focus { border-color:var(--fce-gold); box-shadow:0 0 0 2px rgba(201,168,76,.1); }
.fce-radio, .fce-checkbox {
  display:block; font-size:12.5px; color:var(--fce-ink3);
  padding:3px 0; cursor:pointer;
}
.fce-radio input, .fce-checkbox input { margin-right:6px; }
.fce-select {
  width:100%; padding:6px 8px;
  border:1px solid var(--fce-border); border-radius:4px;
  font-size:12.5px; font-family:inherit;
  background:#fff; color:var(--fce-ink);
}

/* ── Sidebar stats ────────────────────────────────────── */
.fce-stats {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:8px; margin-top:8px;
}
.fce-stat {
  background:#fff; border:1px solid var(--fce-border);
  border-radius:6px; padding:10px 8px; text-align:center;
}
.fce-stat__n {
  display:block; font-family:'Playfair Display',Georgia,serif;
  font-size:20px; font-weight:700; color:var(--fce-gold-d);
  line-height:1;
}
.fce-stat__l {
  display:block; font-size:9px; color:var(--fce-ink4);
  margin-top:3px; line-height:1.3; text-transform:uppercase;
  letter-spacing:.06em;
}

/* ── Results area ─────────────────────────────────────── */
.fce-results { padding:28px 36px 80px; }
@media(max-width:700px) { .fce-results { padding:20px 16px 60px; } }

/* ── Density chart ────────────────────────────────────── */
.fce-density-chart {
  background:#fff; border:1px solid var(--fce-border);
  border-radius:10px; padding:20px 24px; margin-bottom:24px;
}
.fce-density-chart__title {
  font-size:10px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--fce-ink5); margin-bottom:14px; font-weight:700;
}
.fce-density-row {
  display:flex; align-items:center; gap:12px; margin-bottom:7px;
}
.fce-density-label {
  width:72px; font-size:10px; letter-spacing:.06em;
  color:var(--fce-ink5); text-align:right; flex-shrink:0;
}
.fce-density-bar-wrap {
  flex:1; height:14px; background:var(--fce-parch2);
  border-radius:99px; overflow:hidden;
}
.fce-density-bar {
  height:100%; background:var(--fce-gold);
  border-radius:99px; min-width:2px;
  transition:width .4s ease;
}
.fce-density-count {
  font-size:11px; color:var(--fce-ink5);
  width:24px; text-align:right; flex-shrink:0;
}

/* ── Results bar ──────────────────────────────────────── */
.fce-results-bar {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:16px; padding-bottom:12px;
  border-bottom:1px solid var(--fce-border);
  font-size:12px; color:var(--fce-ink4);
}
.fce-results-bar__hint { font-style:italic; }

/* ── Cards ────────────────────────────────────────────── */
.fce-card {
  background:#fff; border:1px solid var(--fce-border);
  border-radius:10px; padding:22px 24px; margin-bottom:14px;
  transition:box-shadow .2s;
}
.fce-card:hover { box-shadow:0 4px 18px rgba(28,24,16,.09); }
.fce-card--hostile { border-left:3px solid #8B3000; }
.fce-card--foundational { border-top:2px solid var(--fce-gold); }
.fce-card--hidden { display:none; }

.fce-card__header {
  display:flex; align-items:baseline; flex-wrap:wrap;
  gap:8px; margin-bottom:10px;
}
.fce-card__date {
  font-size:11px; letter-spacing:.08em;
  color:var(--fce-ink5);
}
.fce-card__author {
  font-family:'Playfair Display',Georgia,serif;
  font-size:15px; font-weight:700; color:var(--fce-ink);
}
.fce-card__author-link {
  color:var(--fce-ink); text-decoration:none;
}
.fce-card__author-link:hover { color:var(--fce-gold-d); }
.fce-card__doc {
  font-family:'EB Garamond',Georgia,serif;
  font-size:13px; font-style:italic; color:var(--fce-ink3);
  margin-bottom:14px;
}

/* Witness badges */
.fce-witness-badge {
  font-size:9px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; padding:3px 8px; border-radius:99px;
}
.fce-badge--catholic   { background:rgba(201,168,76,.12); color:#8B6A1A; }
.fce-badge--eastern    { background:rgba(29,138,106,.1);  color:#1D8A6A; }
.fce-badge--hostile    { background:rgba(139,48,0,.1);    color:#8B3000; }
.fce-badge--dissenter  { background:rgba(128,64,176,.1);  color:#8040B0; }
.fce-badge--protestant { background:rgba(24,95,165,.1);   color:#185FA5; }

/* Quote */
.fce-card__quote {
  font-family:'EB Garamond',Georgia,serif;
  font-size:1.1rem; font-style:italic;
  color:var(--fce-ink2); line-height:1.8;
  border-left:3px solid var(--fce-gold);
  padding-left:18px; margin:0 0 14px;
}
.fce-card__quote.is-truncated {
  -webkit-line-clamp:4;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.fce-show-more {
  font-size:12px; color:var(--fce-gold-d); cursor:pointer;
  background:none; border:none; padding:0 0 12px;
  letter-spacing:.04em;
}
.fce-show-more:hover { color:var(--fce-ink); }

/* Significance toggle */
.fce-card__sig-toggle {
  display:flex; align-items:center; gap:6px;
  font-size:12px; font-weight:700; color:var(--fce-ink5);
  cursor:pointer; background:none; border:none; padding:0 0 8px;
  transition:color .15s;
}
.fce-card__sig-toggle:hover { color:var(--fce-ink); }
.fce-card__sig-body {
  font-size:13.5px; color:var(--fce-ink3); line-height:1.75;
  background:var(--fce-parch2); border-radius:6px;
  padding:12px 16px; margin-bottom:12px; display:none;
}
.fce-card__sig-body.is-open { display:block; }

/* Footer */
.fce-card__footer {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:8px;
  padding-top:12px; border-top:1px solid var(--fce-border);
}
.fce-card__badges { display:flex; flex-wrap:wrap; gap:4px; }
.fce-badge--doc {
  font-size:9px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; padding:2px 7px; border-radius:99px;
  background:rgba(26,21,16,.06); color:var(--fce-ink4);
}
.fce-badge--weight { font-size:9px; padding:2px 7px; border-radius:99px; }
.fce-badge--foundational { background:rgba(201,168,76,.15); color:#8B6A1A; }
.fce-badge--strong       { background:rgba(29,138,106,.1);  color:#1D8A6A; }
.fce-badge--supporting   { background:rgba(26,21,16,.06);   color:var(--fce-ink4); }
.fce-badge--contextual   { background:rgba(26,21,16,.04);   color:var(--fce-ink5); }
.fce-card__link {
  font-size:12px; color:var(--fce-gold-d);
  text-decoration:none; letter-spacing:.04em;
}
.fce-card__link:hover { color:#8B3000; }

/* ── Highlighted search matches ───────────────────────── */
mark.fce-match {
  background:rgba(201,168,76,.25); color:inherit;
  border-radius:2px; padding:0 1px;
}

/* ── Empty state ──────────────────────────────────────── */
.fce-empty {
  text-align:center; padding:60px 20px;
  color:var(--fce-ink4);
}
.fce-empty__icon { font-size:28px; opacity:.2; margin-bottom:10px; }
.fce-empty__text { font-size:14px; }
