/* Calendar orientation. Colors come from the published day, not the text renderer. */
.reader-page [data-color=white] { --day-color:var(--lit-white-icon); }
.reader-page [data-color=red] { --day-color:var(--lit-red); }
.reader-page [data-color=green] { --day-color:var(--lit-green); }
.reader-page [data-color=violet] { --day-color:var(--lit-violet); }
.reader-page [data-color=black] { --day-color:var(--lit-black); }
.reader-page [data-color=rose] { --day-color:var(--lit-rose); }
.content-calendar { position:relative; margin:0 0 12px; padding-bottom:12px; border-bottom:1px solid var(--color-border); font:14px/1.4 Inter,system-ui,sans-serif; min-width:0; }
.content-calendar__heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; margin-bottom:4px; }
.content-calendar__heading > a { color:var(--color-text-muted); text-decoration:none; font-size:13px; }
.content-calendar__controls { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.content-calendar__controls > a,.content-calendar__options > summary { color:var(--color-text); text-decoration:none; padding:10px 8px; min-height:44px; display:flex; align-items:center; font-size:13px; }
.content-calendar__options > summary { cursor:pointer; list-style:none; }
.content-calendar__options > summary::-webkit-details-marker { display:none; }
.content-calendar__options > summary::after { content:'⌄'; margin-left:6px; }
.content-calendar__panel { position:absolute; z-index:45; top:44px; right:0; width:min(100%,310px); padding:16px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-surface); box-shadow:0 8px 24px rgb(0 0 0 / 15%); }
.content-calendar__panel fieldset { border:0; padding:0; margin:16px 0; }
.content-calendar__panel legend,.content-calendar__form > label { display:block; color:var(--color-text-muted); margin-bottom:8px; font-size:13px; }
.content-calendar__panel fieldset label { display:flex; align-items:center; gap:8px; min-height:40px; }
.content-calendar__panel input[type=checkbox] { width:18px; height:18px; accent-color:var(--color-accent); }
.content-calendar__form > div { display:flex; gap:8px; min-width:0; }
.content-calendar__form input { width:100%; min-width:0; font:16px Inter,system-ui,sans-serif; }
[data-theme=dark] .content-calendar__form input[type=date] { color-scheme:dark; }
.content-calendar__form button,.content-calendar__form input { color:var(--color-text); background:var(--color-bg); border:1px solid var(--color-border); border-radius:6px; min-height:44px; padding:6px; }
.content-calendar__panel a { display:inline-flex; min-height:44px; align-items:center; color:var(--color-accent); }
.content-calendar__window { display:flex; gap:4px; align-items:stretch; min-width:0; }
.content-calendar__arrow { flex-shrink:0; width:28px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--color-text); font:24px Inter,system-ui,sans-serif; cursor:pointer; }
.content-calendar__arrow:disabled { opacity:.3; cursor:default; }
.content-calendar__arrow:hover:not(:disabled) { background:var(--color-surface); }
.content-calendar__scroll { min-width:0; flex:1; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; }
.content-calendar__days { display:grid; grid-template-columns:repeat(29,48px); grid-template-rows:72px 22px; column-gap:4px; row-gap:6px; width:max-content; position:relative; padding:3px 2px 6px; }
.content-calendar__day { display:flex; grid-row:1; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:1px solid var(--color-border); border-radius:6px; color:var(--color-text); text-decoration:none; background:var(--color-surface); }
.content-calendar__day:hover { border-color:var(--color-accent); }
.content-calendar__day[aria-current=date] { outline:2px solid var(--color-accent); outline-offset:0; background:var(--color-surface-hover); }
.content-calendar__day[data-muted=true] { background:transparent; border-style:dashed; }
/* Rank emphasis must never change the liturgical color of a date. */
.content-calendar__weekday { font-size:12px; color:var(--color-text-muted); }
.content-calendar__cross { color:var(--day-color,var(--color-text-muted)); font-size:22px; line-height:1; }
.content-calendar__number { font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
.content-calendar__day[data-today=true] .content-calendar__number { text-decoration:underline; text-decoration-color:var(--color-accent); text-underline-offset:4px; }
.content-calendar__season { grid-row:2; color:var(--color-text); background:color-mix(in srgb,var(--season-color,var(--color-border)) 25%,var(--color-bg)); border-top:3px solid var(--season-color,var(--color-border)); font-size:12px; white-space:nowrap; }
.content-calendar__season span { position:sticky; left:4px; display:inline-block; padding-inline:4px; max-width:100%; overflow:hidden; text-overflow:ellipsis; vertical-align:top; }
.content-calendar__season[data-season=pentecost] { --season-color:var(--lit-green); }
.content-calendar__season[data-season=epiphany] { --season-color:var(--lit-green); }
.content-calendar__season[data-season=advent],.content-calendar__season[data-season=septuagesima],.content-calendar__season[data-season=lent],.content-calendar__season[data-season=passiontide],.content-calendar__season[data-season=holy_week] { --season-color:var(--lit-violet); }
.content-calendar__season[data-season=christmas],.content-calendar__season[data-season=easter] { --season-color:var(--lit-white); }
html:not(.reader-enhanced) .calendar-enhanced { display:none; }
@media (pointer:coarse) { .content-calendar__arrow { width:44px; } }
@media (max-width:380px) { .content-calendar__controls > a,.content-calendar__options > summary { padding-inline:5px; } }
@media print { .content-calendar { display:none; } }
