/* One reading surface for scripture, reference texts and the daily Mass. */
:root { --reader-size:18px; --reader-scroll-offset:190px; }
.reader-page .pr { width:100%; min-width:0; box-sizing:border-box; }
.reader-content { container-type:inline-size; min-width:0; }
.reader-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; padding:14px 0; }
.reader-pair + .reader-pair { border-top:1px solid var(--color-border); }
.reader-col { min-width:0; color:var(--color-text); font:normal var(--reader-size)/1.65 Inter,system-ui,sans-serif; overflow-wrap:break-word; }
.reader-text { margin:0; white-space:pre-line; font:inherit; color:inherit; }
.reader-text + .reader-text { margin-top:.85em; }
.reader-rubric { color:var(--color-accent); }
.reader-marker { color:var(--color-accent); font-weight:600; }
.reader-col-label { display:block; margin:0 0 8px; font:600 12px/1.4 Inter,system-ui,sans-serif; color:var(--color-text-muted); }
.reader-missing { margin:0; font:normal 15px/1.6 Inter,system-ui,sans-serif; color:var(--color-text-muted); }
.reader-toolbar { position:sticky; top:56px; z-index:30; background:var(--color-surface,var(--color-bg)); border-block:1px solid var(--color-border); padding:8px 0; margin:16px 0; font:normal 14px/1.5 Inter,system-ui,sans-serif; min-width:0; }
.reader-toolbar:has(.reader-options[open]) { max-height:calc(100dvh - 72px); overflow-y:auto; }
.reader-controls,.reader-modes,.reader-size,.reader-date { display:flex; gap:4px; align-items:center; }
.reader-controls { justify-content:space-between; gap:8px; }
.reader-modes { flex-wrap:wrap; }
.reader-size { flex-shrink:0; }
.reader-toolbar button,.reader-date a { min-width:40px; min-height:40px; display:inline-flex; align-items:center; justify-content:center; padding:6px 10px; border:1px solid var(--color-border); border-radius:6px; background:var(--color-surface,var(--color-bg)); color:var(--color-text); font:inherit; cursor:pointer; text-decoration:none; }
.reader-toolbar button[aria-pressed=true] { color:var(--color-bg); background:var(--color-accent); border-color:var(--color-accent); }
.reader-toolbar button:disabled { opacity:.45; cursor:default; }
.reader-toolbar :focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.reader-options summary { padding:8px 2px 2px; cursor:pointer; color:var(--color-text); }
#reader-source-summary { display:block; margin-left:16px; font-size:11px; color:var(--color-text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reader-source-controls { display:flex; gap:12px; flex-wrap:wrap; margin:12px 0; }
.reader-source-controls label { flex:1 1 220px; min-width:0; font-size:13px; }
.reader-source-controls select { display:block; width:100%; margin-top:4px; padding:8px; min-height:42px; font:inherit; color:var(--color-text); background:var(--color-surface,var(--color-bg)); border:1px solid var(--color-border); border-radius:6px; }
.reader-toolbar .settings-inline { flex-wrap:wrap; margin-left:0; }
.reader-toolbar .settings-toggle { min-height:40px; font-size:13px; text-transform:none; letter-spacing:0; }
.reader-toolbar .settings-toggle input[type=checkbox] { display:inline-block; width:16px; height:16px; accent-color:var(--color-accent); }
.reader-toolbar .settings-select { max-width:100%; min-height:40px; }
.reader-status { margin:0; color:var(--color-text-muted); font-size:13px; }
.reader-status:not(:empty) { padding:8px 0; }
.reader-date { justify-content:space-between; margin-bottom:6px; }
.reader-date #reader-day-current { border:0; font-size:13px; text-align:center; }
.reader-content [id],.reader-pair { scroll-margin-top:var(--reader-scroll-offset); }
.reader-content .pr__section,.reader-content .text-section { border:0; border-radius:0; background:transparent; margin:0 0 28px; overflow:visible; }
.reader-content .pr__section-title,.reader-content .text-section__header { margin:0; padding:14px 0 10px; border:0; border-bottom:1px solid var(--color-border); background:transparent; color:var(--color-accent); font:600 20px/1.4 Inter,system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.reader-content .text-section__body { padding:0; }
.reader-content .ps__verse { display:flex; gap:12px; border-bottom:1px solid var(--color-border); border-radius:0; padding:0; min-width:0; scroll-margin-top:var(--reader-scroll-offset); }
.reader-content .ps__verse:target { background:color-mix(in srgb,var(--color-accent) 14%,transparent); }
.reader-content .ps__vnum { min-width:2em; text-align:right; color:var(--color-text-muted); font:normal 14px/1.5 Inter,system-ui,sans-serif; font-variant-numeric:tabular-nums; text-decoration:none; padding-top:39px; }
.reader-content .ps__verse > .reader-pair { flex:1; min-width:0; }
.reader-page--calendar .day-strip-wrap { position:relative; top:auto; }
.reader-page--calendar .reader-toolbar { grid-column:2; margin-top:0; }
.reader-page--calendar .toc-nav { top:76px; max-height:calc(100vh - 92px); }
html[data-reader-mode=left] .reader-col[data-reader-side=right],html[data-reader-mode=right] .reader-col[data-reader-side=left] { display:none; }
html[data-reader-mode=left] .reader-pair,html[data-reader-mode=right] .reader-pair { grid-template-columns:minmax(0,1fr); max-width:70ch; margin-inline:auto; }
.reader-content[data-reader-narrow=true] .reader-pair { grid-template-columns:minmax(0,1fr); gap:18px; }
html[data-reader-mode=auto] .reader-content[data-reader-narrow=true] .reader-col[data-reader-side=left] { display:none; }
@container (max-width:680px) {
  .reader-pair { grid-template-columns:minmax(0,1fr); gap:18px; }
  html[data-reader-mode=auto] .reader-col[data-reader-side=left] { display:none; }
}
@media (max-width:768px) {
  .reader-page--calendar .reader-toolbar { grid-column:1; }
  .reader-toolbar { top:56px; }
  .reader-content .ps__verse { gap:6px; }
  .reader-toolbar button { padding-inline:8px; font-size:13px; }
}
html:not(.reader-enhanced) .reader-controls,html:not(.reader-enhanced) .reader-source-controls { display:none; }
@media print {
  .reader-toolbar { display:none; }
  .reader-col[data-reader-side] { display:block!important; }
  .reader-pair { grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; max-width:none!important; break-inside:avoid; }
}
