/* Use the shared appearance tokens so a manual light/dark choice is honored. */
body.factbook {
  --bg: var(--ui-bg); --card: var(--ui-panel); --card-warm: var(--ui-wash);
  --ink: var(--ui-ink); --ink-muted: var(--ui-muted); --ink-subtle: var(--ui-muted); --ink-ghost: var(--ui-muted);
  --rule: var(--ui-rule); --rule-strong: var(--ui-rule); --marian: var(--ui-accent); --marian-deep: var(--ui-accent);
  --accent-text: var(--ui-accent);
}
.directory-page { --fb-measure: 58rem; }
.dir-eyebrow { text-align: center; color: var(--accent-text); font: 600 .75rem var(--fb-display); letter-spacing: .12em; margin-bottom: 1rem; }
.dir-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; margin-top: 1.3rem; }
.dir-actions a, .dir-pagination a, .dir-reset { display: inline-flex; align-items: center; min-height: 44px; }
.dir-search { margin-top: 1.4rem; padding: 1.25rem; background: var(--card-warm); border: 1px solid var(--rule); border-radius: 4px; }
.dir-search label { display: block; font-size: 1rem; color: var(--ink); margin-bottom: .4rem; }
.dir-search-row { display: flex; gap: .65rem; margin-bottom: 1rem; }
.dir-search input, .dir-search select, .dir-search button { min-height: 44px; font: inherit; font-size: 1rem; border: 1px solid var(--rule-strong); border-radius: 3px; padding: .5rem .75rem; }
.dir-search input, .dir-search select { color: var(--ink); background: var(--bg); min-width: 0; width: 100%; }
.dir-search button { color: var(--bg); background: var(--ink); cursor: pointer; padding-inline: 1.25rem; }
.dir-search input:focus-visible, .dir-search select:focus-visible, .dir-search button:focus-visible { outline: 2px solid var(--marian); outline-offset: 3px; }
.dir-list { list-style: none; padding: 0; margin-top: 1.1rem; }
.dir-list li { border-bottom: 1px solid var(--rule); }
.factbook .dir-record { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem .2rem; min-height: 72px; border-bottom: 0; }
.dir-record > span:first-child { min-width: 0; }
.dir-record strong { display: block; font-size: 1.2rem; font-weight: 500; overflow-wrap: anywhere; }
.dir-place { display: block; color: var(--ink-subtle); font-size: .95rem; margin-top: .25rem; }
.dir-status { font-size: .87rem; text-align: right; flex-shrink: 0; color: var(--ink-subtle); }
.dir-pagination { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.5rem; font-size: 1rem; }
.dir-parishes { scroll-margin-top: 2rem; }
@media (max-width: 34rem) {
  .dir-search { padding: 1rem; }
  .dir-search button { padding-inline: .8rem; }
  .dir-parishes .dir-record { align-items: start; flex-direction: column; gap: .25rem; }
  .dir-status { text-align: left; }
}
@media print { .dir-search, .dir-pagination, .dir-actions { display: none; } }
