/* fathers.css — Library home, Fathers & Doctors, authors, works reader, Summa, Catena, classics. Every class starts with "lx-" (see ARCHITECTURE.md). */

/* ------------------------------------------------------------ shared */
.lx-muted { color: var(--muted); }
.lx-fine { font-family: var(--sans); font-size: 12.5px; color: var(--muted); margin: 8px 0 0; line-height: 1.45; }
.lx-min { min-width: 0; }
.lx-status { font-family: var(--sans); font-size: 12.5px; color: var(--muted); margin: 10px 0 0; text-align: center; }
.lx-h2 { font-family: var(--display); font-weight: 600; font-size: 24px; line-height: 1.15; margin: 0; }
.lx-sec { margin-top: 24px; }
.lx-sec > .lx-h2 { margin-bottom: 10px; }
.lx-card { padding: 16px 18px; }
.lx-card + .lx-card, .lx-col > * + * { margin-top: 16px; }
.lx-ch { display: flex; align-items: center; gap: 8px; justify-content: space-between; flex-wrap: wrap; margin-bottom: 6px; }
.lx-more { margin-top: 8px; }
.lx-mt { font-family: var(--sans); font-size: 10.5px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; color: var(--rubric); border: 1px solid color-mix(in srgb, var(--rubric) 45%, transparent);
  border-radius: 5px; padding: 0 5px; white-space: nowrap; line-height: 1.5; }

/* ------------------------------------------------------------ Library home */
.lx-hsearch { max-width: 44rem; margin: 18px auto 0; background: var(--surface); border: 1px solid var(--border-2); border-radius: var(--r-3); box-shadow: var(--shadow); }
.lx-hrow { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 14px; }
.lx-hico { color: var(--muted); display: flex; flex: none; }
.lx-hinp { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: 18px; padding: 8px 2px; outline: none; }
.lx-hinp::-webkit-search-cancel-button { cursor: pointer; }
.lx-hres { border-top: 1px solid var(--border); max-height: 60vh; }
.lx-cont { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.lx-cc { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding: 14px 16px; background: var(--surface); border: 1px solid var(--border); border-left: 4px solid var(--c, var(--gold)); border-radius: var(--r-2);
  box-shadow: var(--shadow); color: var(--ink); text-decoration: none; }
.lx-cc:hover { border-color: var(--gold-2); border-left-color: var(--c, var(--gold)); }
.lx-cc.is-bible { --c: var(--rubric); } .lx-cc.is-cat { --c: var(--c-cat); } .lx-cc.is-lib { --c: var(--c-fa); } .lx-cc.is-study { --c: var(--c-st); } .lx-cc.is-nb { --c: var(--c-cm); }
.lx-cc-t { font-family: var(--display); font-size: 21px; font-weight: 600; line-height: 1.2; overflow-wrap: anywhere; }
.lx-cc-s { font-size: 15px; color: var(--ink-2); line-height: 1.35; overflow-wrap: anywhere; }
.lx-cc-s:empty { display: none; }
.lx-hgrid { display: grid; gap: 22px; margin-top: 24px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .lx-hgrid { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); } }
.lx-col { min-width: 0; }
.lx-col > .lx-sec:first-child { margin-top: 0; }
.lx-day { font-size: 15.5px; margin: 0 0 4px; }
.lx-rlist, .lx-slist { list-style: none; margin: 0; padding: 0; }
.lx-rlist li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--border); }
.lx-rlist li:first-child { border-top: 0; }
.lx-rd { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; gap: 0 10px; align-items: baseline; text-decoration: none; color: var(--ink); }
.lx-rd:hover .lx-rt { color: var(--rubric); }
.lx-rk { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold); min-width: 7.5em; }
.lx-rt { font-size: 18px; font-weight: 600; }
.lx-rs { flex: none; }
.lx-tiles { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.lx-tile { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-2); color: var(--ink); text-decoration: none; }
.lx-tile:hover { border-color: var(--gold-2); }
.lx-tile .ui-oi-wrap { --oi: 44px; flex: none; }
.lx-tile-t { display: flex; flex-direction: column; min-width: 0; }
.lx-tile-t b { font-size: 17.5px; line-height: 1.2; }
.lx-tile-t span { font-size: 14px; color: var(--muted); line-height: 1.3; }
.lx-slist li { border-top: 1px solid var(--border); }
.lx-slist li:first-child { border-top: 0; }
.lx-slist li.lx-muted { padding: 8px 0; }
.lx-slist a { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 8px 0; color: var(--ink); text-decoration: none; min-width: 0; }
.lx-slist a:hover .lx-st { color: var(--rubric); }
.lx-st { font-weight: 600; font-size: 17px; min-width: 0; overflow-wrap: anywhere; flex: 0 1 auto; }
.lx-sr { margin-left: auto; font: 700 12.5px var(--sans); color: var(--muted); font-variant-numeric: tabular-nums; }
.lx-ss { flex-basis: 100%; font-size: 15px; color: var(--ink-2); line-height: 1.35; }
.lx-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--nb, var(--gold)); flex: none; align-self: center; }
.lx-nbcard .lx-slist a { align-items: center; }
.lx-home > .lx-status { margin-top: 28px; }

/* ------------------------------------------------------------ hub, lists, trees */
.lx-continue { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 14px 18px; }
.lx-continue b { display: block; font-size: 19px; overflow-wrap: anywhere; }
.lx-big { font-family: var(--display); font-size: 44px; line-height: 1; color: var(--rubric); flex: none; }
.lx-shelves { margin-top: 18px; }
.lx-shelf { display: flex; flex-direction: column; }
.lx-shelf-h { display: flex; align-items: center; gap: 14px; color: var(--ink); text-decoration: none; }
.lx-shelf-h .ui-oi-wrap { --oi: 54px; flex: none; }
.lx-shelf-h:hover .ui-card-h { color: var(--rubric); }
.lx-shelf-s { color: var(--ink-2); font-size: 16px; line-height: 1.4; margin: 10px 0 0; flex: 1; }
.lx-shelf-f { margin-top: 10px; }
.lx-filter { margin: 4px 0 6px; }
.lx-era { margin-top: 26px; }
.lx-list { list-style: none; margin: 0; padding: 0; }
.lx-list li { border-top: 1px solid var(--border); }
.lx-list li:first-child { border-top: 0; }
.lx-list a { display: flex; align-items: baseline; gap: 4px 10px; padding: 8px 2px; text-decoration: none; color: var(--ink); flex-wrap: wrap; }
.lx-list a:hover .lx-nm { color: var(--rubric); }
.lx-nm { font-size: 18px; line-height: 1.3; flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }
.lx-yr { font-family: var(--sans); font-size: 12px; color: var(--gold); font-weight: 650; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lx-ct { font-family: var(--sans); font-size: 12px; color: var(--muted); white-space: nowrap; margin-left: auto; }
.lx-q .lx-nm { font-size: 16.5px; }
.lx-qn { font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--rubric); min-width: 3.4em; font-variant-numeric: tabular-nums; }
.lx-tree { margin-top: 4px; }
.lx-group { border-top: 1px solid var(--border); }
.lx-group > summary { display: flex; align-items: baseline; gap: 10px; padding: 10px 2px; cursor: pointer; list-style: none; }
.lx-group > summary::-webkit-details-marker { display: none; }
.lx-group > summary::before { content: "›"; display: inline-block; width: .9em; flex: none; color: var(--gold); font-weight: 700; transition: transform .15s; }
.lx-group[open] > summary::before { transform: rotate(90deg); }
.lx-group > summary:hover .lx-gt { color: var(--rubric); }
.lx-gt { flex: 1; min-width: 0; font-size: 18px; font-weight: 600; overflow-wrap: anywhere; }
.lx-group.is-d0 > summary .lx-gt { font-family: var(--display); font-size: 22px; }
.lx-gn { font-family: var(--sans); font-size: 12px; color: var(--muted); white-space: nowrap; }
.lx-gbody { padding: 0 0 6px 1.2em; }
.lx-gbody > .lx-group:first-child { border-top: 0; }
.lx-special { display: block; margin-bottom: 10px; padding: 12px 16px; }
.lx-special b { font-family: var(--display); font-size: 21px; font-weight: 600; color: var(--rubric); }
.lx-chgrid { display: grid; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); }
.lx-chgrid a { display: flex; align-items: center; justify-content: center; height: 44px; border: 1px solid var(--border-2); border-radius: var(--r-1); background: var(--surface); color: var(--ink);
  text-decoration: none; font: 600 15px var(--sans); font-variant-numeric: tabular-nums; }
.lx-chgrid a:hover { border-color: var(--rubric); color: var(--rubric); }
.lx-other { margin-bottom: 10px; }

/* ------------------------------------------------------------ reader */
.lx-rpage { padding-top: 8px; }
.lx-rhead { text-align: center; padding: 10px 0 6px; }
.lx-crumbs { font-family: var(--sans); font-size: 12.5px; color: var(--muted); display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 6px; line-height: 1.5; }
.lx-crumbs a { color: var(--link); text-decoration: none; }
.lx-crumbs a:hover { text-decoration: underline; }
.lx-csep { color: var(--faint); }
.lx-cword { font-variant: small-caps; letter-spacing: .14em; color: var(--rubric); font-size: 17px; margin-top: 14px; }
.lx-cnum { font-family: var(--display); font-weight: 600; font-size: 52px; line-height: 1; color: var(--rubric); }
.lx-title { font-family: var(--display); font-weight: 600; font-size: 32px; line-height: 1.14; margin: 10px auto 4px; max-width: 32rem; overflow-wrap: anywhere; }
.lx-reader.is-summa .lx-title { font-size: 26px; font-style: italic; }
@media (max-width: 520px) { .lx-title { font-size: 27px; } .lx-reader.is-summa .lx-title { font-size: 23px; } }
.lx-arts { justify-content: center; margin-top: 12px; }
.lx-rtools { justify-content: center; }
.lx-banner { margin: 14px auto 0; max-width: 32rem; text-align: left; font-family: var(--sans); font-size: 13px; line-height: 1.45; color: var(--ink-2);
  background: color-mix(in srgb, var(--rubric) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--rubric) 30%, transparent); border-radius: var(--r-1); padding: 8px 12px; }
.lx-banner b { color: var(--rubric); }
.lx-src { font-family: var(--sans); font-size: 11.5px; color: var(--muted); margin-top: 10px; }
.lx-moreb { display: flex; justify-content: center; margin: 14px 0; }
.lx-moreb:empty { display: none; }
.lx-moreb.is-top { margin-top: 6px; }
.lx-text { margin-top: 18px; }
.lx-unit { scroll-margin-top: calc(var(--nxh) + 12px); }
.lx-u { position: relative; margin: 0 0 .75em; border-radius: 4px; }
.lx-body > p { margin: 0 0 .45em; }
.lx-body > p:last-child { margin-bottom: 0; }
.lx-body .lx-sp { font-size: .87em; line-height: 1.5; margin-left: 1.1em; color: var(--ink-2); }
.lx-body p.lx-oip { min-height: calc(var(--lh) * 3em); }
.lx-u.is-sel { background: color-mix(in srgb, var(--gold-2) 18%, transparent); box-shadow: 0 0 0 5px color-mix(in srgb, var(--gold-2) 18%, transparent); }
.lx-body { cursor: text; }
.lx-cn { font-family: var(--sans); font-size: .6em; font-weight: 700; color: var(--rubric); text-decoration: none; margin-right: .45em; vertical-align: .12em; cursor: pointer; font-variant-numeric: tabular-nums; }
@media (min-width: 900px) {
  .lx-cn:not(.lx-slbl) { position: absolute; left: -3.9em; width: 3.4em; text-align: right; margin: 0; vertical-align: 0; padding-top: .45em; color: var(--faint); font-weight: 600; }
  .lx-u:hover .lx-cn:not(.lx-slbl) { color: var(--rubric); }
}
@media (max-width: 899px) { .lx-body p.lx-oip > .lx-cn { display: block; margin: 0 0 .3em; vertical-align: 0; } }
.lx-cn.lx-slbl { margin: 0 .3em 0 0; font-size: .64em; letter-spacing: .06em; text-transform: uppercase; vertical-align: .08em; }
.lx-meta { font-family: var(--sans); font-size: 12.5px; line-height: 1.5; color: var(--muted); margin-top: .35em; text-align: left; hyphens: none; }
.lx-meta a { color: var(--link); text-decoration: none; white-space: nowrap; }
.lx-meta a:hover { text-decoration: underline; }
.lx-sl { font-style: italic; }
.lx-sep { color: var(--faint); }
.lx-ref { color: inherit; text-decoration: underline dotted; text-decoration-color: var(--gilt); text-underline-offset: 3px; }
.lx-ref:hover { color: var(--rubric); }
.lx-h { text-align: center; }
.lx-h-sec { margin: 1.3em 0 .45em; font-variant: small-caps; letter-spacing: .08em; color: var(--rubric); font-size: 1em; line-height: 1.35; }
.lx-h-epi { margin: 1em auto .8em; font-style: italic; color: var(--ink-2); font-size: .92em; max-width: 34rem; }
.lx-h-art { margin: 1.8em 0 .7em; padding-top: .9em; border-top: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.lx-unit:first-child .lx-h-art { border-top: 0; margin-top: .6em; }
.lx-hl { font-family: var(--sans); font-size: .62em; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rubric); }
.lx-h-art .lx-ht { font-family: var(--display); font-weight: 600; font-size: 1.28em; color: var(--ink); line-height: 1.2; }
/* Summa */
.lx-s-o { color: var(--ink-2); font-size: .95em; }
.lx-s-o .lx-slbl { color: var(--muted); }
.lx-s-sc { padding-left: .9em; border-left: 2px solid var(--gold-2); font-style: italic; }
.lx-s-sc .lx-slbl { color: var(--gold); font-style: normal; }
.lx-s-r { background: color-mix(in srgb, var(--gilt) 8%, transparent); border-radius: 6px; padding: .45em .7em; margin-left: -.7em; margin-right: -.7em; }
.lx-s-r .lx-slbl { color: var(--rubric); font-size: .7em; }
.lx-s-ad .lx-slbl { color: var(--gold); }
.lx-s-pr { font-style: italic; color: var(--ink-2); }
@media (max-width: 520px) { .lx-s-r { margin-left: -.4em; margin-right: -.4em; padding: .4em .4em; } }
/* Catena */
.lx-au { font-variant: small-caps; letter-spacing: .05em; color: var(--rubric); font-weight: 600; }
.lx-gospel { font-weight: 600; color: var(--ink); margin-top: .6em !important; }
.lx-reader.is-catena .lx-u { margin-bottom: .55em; }
/* end */
.lx-endnav { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.lx-endnav a { display: flex; flex-direction: column; gap: 2px; max-width: 48%; min-width: 0; text-decoration: none; color: var(--ink); padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--r-2); background: var(--surface); }
.lx-endnav a:hover { border-color: var(--gold-2); }
.lx-endnav .lx-next { text-align: right; margin-left: auto; }
.lx-endnav small { font-family: var(--sans); font-size: 12px; color: var(--muted); font-weight: 600; }
.lx-endnav b { font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ------------------------------------------------------------ sheets */
.lx-vlist { list-style: none; margin: 0; padding: 0; }
.lx-vlist li { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; padding: 7px 0; border-top: 1px solid var(--border); }
.lx-vlist li:first-child { border-top: 0; }
.lx-vl { flex: 1 1 14rem; min-width: 0; color: var(--ink); text-decoration: none; display: flex; flex-wrap: wrap; gap: 0 8px; align-items: baseline; }
.lx-vl b { color: var(--rubric); font-variant: small-caps; letter-spacing: .03em; white-space: nowrap; }
.lx-vl:hover b { text-decoration: underline; }
.lx-pv { font-size: 15px; color: var(--ink-2); line-height: 1.4; min-width: 0; }
.lx-vread { font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--muted); text-decoration: none; }
.lx-vread:hover { color: var(--rubric); }
.lx-scr .lx-vread { display: none; }
.lx-at { display: flex; flex-wrap: wrap; gap: 4px; font-family: var(--sans); font-size: 12px; }
.lx-at a { color: var(--link); text-decoration: none; border: 1px solid var(--border); border-radius: 6px; padding: 0 5px; }
.lx-at a:hover { border-color: var(--gold-2); }
.lx-fn { font-size: 17px; }
.lx-ustools { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 10px 0 4px; }
.lx-note { padding: 8px 0; border-top: 1px solid var(--border); }
.lx-note:first-of-type { border-top: 0; }
.lx-nt { white-space: pre-wrap; margin-top: 4px; }
.lx-nmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; font-family: var(--sans); font-size: 12px; color: var(--muted); }
.lx-nref { font-weight: 600; color: var(--gold); text-decoration: none; }
.lx-fnote { display: flex; gap: 8px; font-size: 15px; line-height: 1.45; padding: 5px 0; border-top: 1px solid var(--border); }
.lx-fnote:first-of-type { border-top: 0; }
.lx-fnote b { font-family: var(--sans); font-size: 12px; color: var(--rubric); min-width: 1.6em; }
.lx-usfoot { margin-top: 18px; }
.lx-toc { list-style: none; margin: 8px 0 0; padding: 0; }
.lx-toc li { border-top: 1px solid var(--border); }
.lx-toc li:first-child { border-top: 0; }
.lx-toc a { display: flex; gap: 10px; align-items: baseline; padding: 8px 2px; color: var(--ink); text-decoration: none; font-size: 16.5px; line-height: 1.35; }
.lx-toc a:hover { color: var(--rubric); }
.lx-tocsheet .lx-arts { justify-content: flex-start; margin: 0 0 8px; }
@media (max-width: 520px) { .lx-rk { flex-basis: 100%; min-width: 0; } }
