/* ============================================================
   LITURGICAL CALENDAR PAGE (calendar.html)
   Uses the colours and fonts defined at the top of style.css
   ============================================================ */
.page-head{background:var(--nave);color:var(--on-nave);padding-block:clamp(32px,5vw,56px) clamp(52px,7vw,80px)}
.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,1.3rem + 2vw,2.8rem);line-height:1.15;margin:4px 0 10px}
.page-lead{max-width:62ch;color:color-mix(in srgb,var(--on-nave) 88%,transparent)}
html[lang="ti"] .page-head h1{font-family:var(--ethiopic-serif)}

.cal-page .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--frame);padding:clamp(16px,2.5vw,24px)}
.cal-top{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin-top:clamp(-40px,-4vw,-24px);position:relative}
.cal-main{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:minmax(0,1fr);margin-top:clamp(16px,2vw,24px)}
@media (min-width:980px){ .cal-main{grid-template-columns:minmax(0,1fr) 320px;align-items:start} }
.cal-side{display:grid;gap:clamp(16px,2vw,24px)}
.cal-year{margin-block:clamp(16px,2vw,24px) clamp(40px,6vw,64px)}

/* Today + selected day */
.today-et,.day-et{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);line-height:1.2}
.day-et{font-size:1.4rem}
html[lang="ti"] :is(.today-et,.day-et,.month-title h2,.year-bar h2,.fast-title){font-family:var(--ethiopic-serif)}
.today-sub,.day-gr{color:var(--muted);font-size:.92rem;margin-top:4px}
.feast-lines{list-style:none;margin-top:14px;display:grid;gap:6px}
.feast-lines li{padding:8px 12px;border-radius:var(--radius-sm);font-weight:600;font-size:.92rem;border-left:4px solid var(--line);background:var(--leaf)}
.feast-lines .rank-major{border-color:var(--red);color:var(--rubric);background:var(--leaf)}
.feast-lines .rank-feast{border-color:var(--gold);color:var(--brass);background:var(--leaf)}
.feast-lines .rank-fast,.feast-lines .is-fastline{border-color:var(--navy);color:var(--navy);background:var(--navy-soft)}
.feast-lines .is-season{border-color:var(--malachite);color:var(--malachite);background:var(--leaf)}
.feast-lines .muted,.month-list .muted{border:0;background:none;color:var(--muted);font-weight:400;padding:0}

/* Converter */
.conv-row{display:grid;gap:6px;margin-top:14px}
.conv-label{font-size:.82rem;font-weight:600;color:var(--muted)}
.conv-card input,.conv-card select{height:42px;padding:0 12px;border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--leaf);font-size:.95rem;min-width:0;width:100%}
.conv-card input:focus,.conv-card select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb,var(--lapis) 15%,transparent)}
.conv-et{display:grid;grid-template-columns:70px 1fr 90px;gap:8px}
.conv-out{display:block;min-height:1.5em;font-weight:700;color:var(--navy)}

/* Month view */
.month-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.month-title{text-align:center;min-width:0}
.month-title h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.3rem,1.1rem + 1vw,1.75rem);line-height:1.2}
.month-title p{color:var(--muted);font-size:.88rem}
.icon-btn{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--leaf);cursor:pointer;display:grid;place-items:center;transition:background-color .2s,border-color .2s}
.icon-btn:hover{background:var(--pigment-lapis);border-color:var(--navy)}
.icon-btn svg{width:18px;height:18px;fill:none;stroke:var(--navy);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover svg{stroke:var(--on-pigment)}
.month-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 12px}
.chip{height:36px;padding:0 16px;border-radius:var(--radius-1);border:1px solid var(--navy);background:var(--leaf);color:var(--navy);font-weight:600;font-size:.85rem;cursor:pointer}
.chip:hover{background:var(--pigment-lapis);color:var(--on-pigment)}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--muted)}
.legend li{display:flex;align-items:center;gap:6px}
.sw{width:12px;height:12px;border-radius:var(--radius-1);display:inline-block}
.sw-major{background:var(--pigment-red)}
.sw-feast{background:var(--gold)}
.sw-fast{background:var(--navy-soft);border:1px solid var(--rule)}

.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-head .wd{text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 0}
.cal-head .wd.is-sun{color:var(--red)}
.day{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:92px;padding:8px;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--leaf);text-align:left;cursor:pointer;
  transition:border-color .15s,box-shadow .15s;min-width:0;
}
.day:hover{border-color:var(--navy);box-shadow:var(--shadow)}
.day.is-blank{border:0;background:none;cursor:default;box-shadow:none}
.day .et-d{font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--navy);line-height:1}
.day.is-sun .et-d{color:var(--red)}
.day .gr-d{font-size:.72rem;color:var(--muted)}
.day .feast-name{margin-top:auto;font-size:.72rem;font-weight:600;line-height:1.25;color:var(--brass);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.day.has-major .feast-name{color:var(--rubric)}
.day.has-major{border-top:3px solid var(--red)}
.day.has-feast,.day.has-fast{border-top:3px solid var(--gold)}
.day.has-fast{border-top-color:var(--navy)}
.day.is-fast{background:var(--navy-soft)}
.day.is-today{box-shadow:0 0 0 2px var(--red) inset}
.day.is-today .et-d::after{content:"";display:inline-block;width:6px;height:6px;margin-left:5px;vertical-align:middle;border-radius:50%;background:var(--pigment-red)}
.day.is-sel{outline:3px solid var(--gold);outline-offset:1px}
html[lang="ti"] .day .feast-name{font-family:var(--ethiopic)}

/* Month list (side) */
.month-list{list-style:none;margin-top:10px;display:grid}
.month-list li{display:grid;grid-template-columns:auto 1fr;column-gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.month-list li:last-child{border-bottom:0}
.ml-date{grid-row:span 2;align-self:start;min-width:84px;padding:4px 8px;border-radius:var(--radius-1);font-size:.78rem;font-weight:700;text-align:center;background:var(--navy-soft);color:var(--navy)}
.month-list .rank-major .ml-date{background:var(--leaf);color:var(--rubric)}
.month-list .rank-feast .ml-date{background:var(--leaf);color:var(--brass)}
.ml-name{font-weight:600;font-size:.92rem;color:var(--ink)}
.ml-gr{font-size:.8rem;color:var(--muted)}

/* Year table */
.year-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}
.year-bar h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.3rem,1.1rem + 1vw,1.75rem)}
.year-tools{display:flex;align-items:center;gap:8px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius-sm)}
.year-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}
.year-table th{background:var(--pigment-lapis);color:var(--on-pigment);text-align:left;font-weight:600;font-size:.8rem;letter-spacing:.04em;padding:10px 12px}
.year-table td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}
.year-table tbody tr:nth-child(even){background:var(--leaf)}
.year-table .yt-name{font-weight:600}
.year-table tr.rank-major .yt-name{color:var(--rubric)}
.year-table tr.rank-fast .yt-name{color:var(--ink)}
.year-table .yt-wd{color:var(--muted);white-space:nowrap}
.year-table .yt-gr,.year-table .yt-et{white-space:nowrap}
.fast-title{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:1.15rem;margin:24px 0 10px}
.cal-note{margin-top:16px;font-size:.85rem;color:var(--muted)}

/* Phones: compact month grid (feast names are in the list below) */
@media (max-width:640px){
  .cal-head,.cal-grid{gap:3px}
  .cal-head .wd{font-size:.65rem;letter-spacing:0}
  .day{min-height:58px;padding:5px 2px;align-items:center;text-align:center}
  .day .et-d{font-size:1rem}
  .day .gr-d{font-size:.6rem}
  .day .feast-name{display:none}
  .day.has-major::after,.day.has-feast::after,.day.has-fast::after{content:"";position:absolute;bottom:5px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--pigment-red)}
  .day.has-feast::after{background:var(--gold)}
  .day.has-fast::after{background:var(--pigment-lapis)}
  .day.has-major,.day.has-feast,.day.has-fast{border-top-width:1px;border-top-color:var(--line)}
  .day.is-today .et-d::after{display:none}
  .conv-et{grid-template-columns:60px 1fr 80px}
}

/* Printing: just the calendar */
@media print{
  .topbar,.mainnav,.site-footer,.skip-link,.conv-card,.chip,.icon-btn,.cal-side,.month-tools{display:none !important}
  .page-head{background:none;color:var(--ink);padding:0 0 12px}
  .page-head .eyebrow,.page-lead{color:var(--ink)}
  .cal-top{margin-top:0}
  .cal-page .card{box-shadow:none;border:0;padding:0}
  .cal-main{display:block}
  .year-table th{background:var(--leaf);color:var(--ink)}
  .table-wrap{overflow:visible;border:0}
}

/* ---------- Keren Manuscript: the month as a manuscript page ---------- */
.month-card{background:var(--parch,var(--leaf)) !important;border-color:var(--gold-wash) !important}
.month-title h2{font-family:var(--ethiopic-serif)}
.day{background:var(--leaf);border-color:var(--gold-wash)}
.day .et-d{font-family:var(--ethiopic);font-weight:400;font-size:1.35rem;color:var(--ink)}
.day.has-major .et-d,.day.has-feast .et-d{color:var(--red)}
.day.is-sun .et-d{color:var(--ink)}
.day.has-major.is-sun .et-d,.day.has-feast.is-sun .et-d{color:var(--red)}
.day.has-major{border-top:3px solid var(--red)}
.day.has-feast{border-top:3px solid var(--gold)}
.day.is-fast{background:var(--leaf)}
.cal-head .wd.is-sun{color:var(--ink);font-weight:700}
@media (max-width:640px){ .day .et-d{font-size:1.1rem} }

/* Sundays: the name of the Sunday under its date (Yared hymn name in red, otherwise the season) */
.day .sun-name{margin-top:auto;font-size:.68rem;line-height:1.2;color:var(--rubric);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.day .sun-name:not(.is-named){font-style:italic;color:var(--ink-muted)}
.day .sun-name.is-named{font-weight:700}
html[lang="ti"] .day .sun-name{font-family:var(--ethiopic);font-style:normal}
.feast-lines .is-sunday,#day-feasts .is-sunday{color:var(--rubric);font-weight:600}

/* Sundays in rubric red: the Sunday column (first, as in the Ge'ez week) is tinted, its numbers red */
.cal-head .wd.is-sun{color:var(--red);font-weight:700}
.day.is-sun:not(.is-fast){background:var(--leaf);border-color:var(--gold-wash)}
.day.is-sun.is-fast{background:linear-gradient(180deg,var(--leaf),var(--navy-soft))}
.day.is-sun .gr-d{color:var(--ink-muted)}
/* the readings of a Sunday (Admin page → Lectionary) in the "Selected day" card */
.day-readings{margin-top:14px;padding-top:12px;border-top:1px dotted var(--rule)}
.rd-theme{font-style:italic;color:var(--ink);margin-bottom:8px}
html[lang="ti"] .rd-theme{font-family:var(--ethiopic);font-style:normal}
.rd-list{margin:0;display:grid;gap:6px}
.rd-list div{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:.92rem}
.rd-list dt{color:var(--rubric);font-weight:700}
html[lang="ti"] .rd-list dt{font-family:var(--ethiopic);font-weight:400}
.rd-list dd{margin:0;color:var(--ink)}
.rd-sample{margin-top:8px;display:inline-block;padding:2px 8px;border:1px dashed var(--gold);border-radius:var(--radius-1);font-size:.75rem;color:var(--brass)}
#cal-grid .day.is-sun .et-d{color:var(--red)}     /* Sunday numbers in red, like red-letter days */
.year-card .year-clamp + .show-more{margin-top:10px}
@media print{.year-clamp{max-height:none !important;overflow:visible !important;-webkit-mask-image:none !important;mask-image:none !important}.year-card .show-more{display:none !important}}

/* ---------- Synaxarion ---------- */
.sx-sec{margin-top:18px;margin-bottom:6px}
.sx-card h2{font-family:var(--serif);font-size:clamp(1.4rem,1.2rem + .8vw,1.8rem);color:var(--ink);margin:2px 0 2px}
html[lang="ti"] .sx-card h2{font-family:var(--ethiopic-serif)}
.sx-date{color:var(--red);font-weight:700;margin-bottom:12px}
.sx-item{padding:12px 16px;margin-bottom:10px;background:var(--parch);border-top:4px solid var(--gold-leaf);border-radius:0 var(--radius-0) var(--radius-0) 0}
.sx-item h3{font-family:var(--serif);font-size:1.15rem;color:var(--ink);margin-bottom:4px}
.sx-item p{line-height:1.7;margin:0 0 6px}
.sx-empty{padding:12px 16px;border:2px dashed var(--gold-soft);border-radius:var(--radius-0);color:var(--muted);font-style:italic}
.sx-month{margin-top:14px}
.sx-month summary{cursor:pointer;font-weight:700;color:var(--navy)}
.sx-month > div{margin-top:10px}
.sx-mlist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sx-mlist li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px}
.sx-mlist b{color:var(--red)}
.sx-day{margin-top:12px}
.sx-day-t{font-weight:700;color:var(--red);font-size:.9rem;margin-bottom:6px}
.sx-day .sx-item{padding:8px 12px}
.sx-day .sx-item h3{font-size:1rem;margin:0}
.sx-day .sx-empty{padding:8px 12px;font-size:.9rem}
.cal-page .cal-conv-last{margin-top:28px;margin-bottom:26px}
.cal-conv-last .conv-card{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.cal-conv-last .conv-card > .eyebrow{grid-column:1/-1}
@media (max-width:760px){ .cal-conv-last .conv-card{grid-template-columns:1fr} }

/* ============================================================
   THE ORDO (ግጻዌ): a leaf of the Ge'ez calendar for the selected day,
   the seasons of the year and the Bahire Hasab (js/ordo.js, js/calendar.js)
   ============================================================ */
.feast-lines .is-gospel{border-color:var(--red);background:var(--leaf)}
.feast-lines .is-gospel a{color:var(--rubric)}
.feast-lines .is-gospel a:hover{text-decoration:underline}
.feast-lines .is-civil,.od-civil{border-left-color:transparent;background:linear-gradient(#12ad2b,#ea0437 50%,#4189dd) left/4px 100% no-repeat,var(--leaf);color:var(--malachite)}
.od-jump{display:inline-flex;align-items:center;gap:6px;margin-top:2px;padding:6px 14px;border-radius:var(--radius-1);border:1px solid var(--red);color:var(--rubric);font-weight:600;font-size:.88rem}
.od-jump:hover{background:var(--pigment-red);color:var(--on-pigment)}
.sw-civil{background:linear-gradient(90deg,#12ad2b,#ea0437 50%,#4189dd)}
.day.has-civil::before{content:"";position:absolute;top:7px;right:7px;width:13px;height:9px;border-radius:var(--radius-1);background:linear-gradient(160deg,#12ad2b 0 33%,#ea0437 33% 66%,#4189dd 66%)}
.day.no-mass{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--rule) 55%,transparent) 6px 7px),var(--leaf)}
.month-list .rank-civil .ml-date{background:var(--leaf);color:var(--malachite)}

/* The leaf */
.od-sec{margin-top:clamp(16px,2vw,24px);scroll-margin-top:90px}
.od-leaf{position:relative;padding:clamp(22px,3.5vw,44px);border:1px solid var(--rule);border-radius:var(--radius);background:var(--leaf);box-shadow:var(--frame)}
.od-leaf::before{content:"";position:absolute;inset:9px;border:3px double color-mix(in srgb,var(--rubric) 42%,transparent);border-radius:var(--radius-1);pointer-events:none}
.od-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:clamp(14px,2.5vw,26px);row-gap:14px}
.od-num{font-family:var(--ethiopic-serif);font-size:clamp(3.2rem,2.2rem + 4vw,5.4rem);line-height:.9;color:var(--red);min-width:1.3em;text-align:center}
.od-date{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.3rem,1.1rem + 1vw,1.9rem);line-height:1.2}
html[lang="ti"] .od-date{font-family:var(--ethiopic-serif)}
.od-gr{color:var(--muted);font-size:.95rem}
.od-season{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px;row-gap:2px;padding:8px 14px;border-top:4px solid var(--sc);border-radius:0 var(--radius-1) var(--radius-1) 0;background:color-mix(in srgb,var(--leaf-raised) 60%,transparent)}
.od-season-k{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.od-season-ge{font-family:var(--ethiopic-serif);font-size:1.25rem;font-weight:700;color:var(--ink)}
.od-season-en{color:var(--ink);font-style:italic}
@media (min-width:860px){
  .od-head{grid-template-columns:auto minmax(0,1fr) auto}
  .od-season{grid-column:auto;flex-direction:column;align-items:flex-end;text-align:right;border-left:0;border-right:6px solid var(--sc);border-radius:var(--radius-1) 0 0 var(--radius-1)}
}
.od-sunday{margin-top:22px;padding:14px 18px;border-top:4px solid var(--pigment-red);border-radius:0 var(--radius-1) var(--radius-1) 0;background:color-mix(in srgb,var(--pigment-red) 6%,transparent)}
.od-sn{font-family:var(--ethiopic-serif);font-size:clamp(1.3rem,1.1rem + .8vw,1.65rem);font-weight:700;color:var(--red)}
.od-sn-en{color:var(--rubric);font-style:italic}
.od-hymn{margin-top:6px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.od-hymn span:last-child{font-family:var(--ethiopic-serif);font-size:1.1rem;color:var(--rubric)}
.od-alert{margin-top:16px;padding:10px 14px;border:1px dashed var(--rule);border-radius:var(--radius-1);background:var(--leaf);color:var(--ink-muted);font-weight:600}
.od-none{margin-top:18px;color:var(--muted);font-style:italic}

.od-cols{display:grid;gap:clamp(20px,3vw,40px);grid-template-columns:minmax(0,1fr);margin-top:26px}
@media (min-width:860px){ .od-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)} }
.od-cols.is-one{grid-template-columns:minmax(0,1fr)}
.od-cols h3{font-family:var(--serif);font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);padding-bottom:7px;margin-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--rubric) 30%,transparent)}
.od-k{display:block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
html[lang="ti"] :is(.od-cols h3,.od-k,.od-season-k){font-family:var(--ethiopic);text-transform:none;letter-spacing:0;font-size:.85rem}

.od-list{list-style:none;display:grid}
.od-list li{padding:9px 0 9px 12px;border-bottom:1px dotted var(--rule);border-left:3px solid transparent}
.od-list li:last-child{border-bottom:0}
.od-ge{font-family:var(--ethiopic-serif);font-size:1.08rem;color:var(--ink)}
.od-en{display:block;font-style:italic;color:var(--ink-muted);font-size:.92rem}
.od-tag{display:inline-block;margin:4px 6px 0 0;padding:1px 8px;border-radius:var(--radius-1);font-size:.72rem;font-weight:600;background:color-mix(in srgb,var(--gold-leaf) 16%,transparent);color:var(--brass)}
.od-ge + .od-tag{margin-left:8px}
.od-list .od-feast{font-weight:700;color:var(--brass);border-left-color:var(--gold)}
.od-list .od-feast.rank-major{color:var(--rubric);border-left-color:var(--red)}
.od-list .od-monthly{border-left-color:var(--navy)}
.od-monthly .od-ge{font-weight:700;color:var(--navy)}
.od-list .od-fast{border-left-color:var(--navy);color:var(--navy);font-weight:600;background:color-mix(in srgb,var(--lapis) 5%,transparent)}
.od-list .od-civil{border-left-color:transparent}
.od-note{color:var(--ink-muted);font-style:italic}

.od-ladder{list-style:none;position:relative;display:grid}
.od-ladder::before{content:"";position:absolute;left:6px;top:18px;bottom:22px;width:1px;background:var(--gold-leaf)}
.od-r{position:relative;padding:9px 0 9px 26px}
.od-r::before{content:"";position:absolute;left:2px;top:17px;width:9px;height:9px;border-radius:50%;background:var(--leaf);border:2px solid var(--gold)}
.od-ref{font-weight:600;font-size:1.06rem;color:var(--ink)}
html[lang="ti"] .od-ref{font-family:var(--ethiopic-serif)}
.od-psalm .od-verse{display:block;margin:2px 0;font-family:var(--ethiopic-serif);font-size:clamp(1.12rem,1rem + .4vw,1.3rem);color:var(--navy);quotes:"«" "»"}
.od-psalm .od-ref{font-weight:400;font-size:.9rem;color:var(--muted)}
.od-r.od-gospel::before{content:"✠";left:0;top:12px;width:auto;height:auto;border:0;border-radius:0;background:none;color:var(--red);font-size:1rem;line-height:1}
.od-gospel .od-ref{color:var(--rubric);font-size:1.2rem}
.od-q{margin-top:14px;padding:12px 16px;border-radius:var(--radius-1);background:color-mix(in srgb,var(--gold-leaf) 13%,transparent);font-weight:600;color:var(--brass)}
.od-fn{margin-top:10px;font-size:.9rem;font-style:italic;color:var(--ink-muted)}
.od-sp{margin-top:14px}
.od-sp h4,.od-opt summary{font-size:.85rem;font-weight:700;color:var(--rubric)}
.od-sp ul,.od-opt ul{list-style:none;margin-top:6px;display:grid;gap:4px;font-size:.95rem}
.od-opt{margin-top:14px;padding:10px 14px;border:1px solid var(--gold-wash);border-radius:var(--radius-1);background:color-mix(in srgb,var(--leaf-raised) 55%,transparent)}
.od-opt summary{cursor:pointer}
.od-opt li{display:grid;grid-template-columns:minmax(0,9.5em) minmax(0,1fr);gap:8px;align-items:baseline}
.od-src{margin-top:26px;padding-top:12px;border-top:1px dotted var(--rule);font-size:.8rem;color:var(--muted)}

/* The year: Bahire Hasab and the ribbon of the seasons */
.ody-sec{margin-top:clamp(16px,2vw,24px)}
.ody-card h2{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(1.3rem,1.1rem + 1vw,1.75rem)}
html[lang="ti"] .ody-card h2{font-family:var(--ethiopic-serif)}
.ody-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;margin-top:14px}
.ody-glance div{padding:10px 12px;border-radius:var(--radius-1);background:var(--leaf);border:1px solid var(--gold-wash)}
.ody-glance dt{font-size:.75rem;font-weight:700;color:var(--muted)}
.ody-glance dd{margin:0;font-family:var(--serif);font-size:1.12rem;font-weight:600;color:var(--navy)}
html[lang="ti"] .ody-glance dd{font-family:var(--ethiopic-serif)}
.ody-ribbon{display:flex;height:20px;margin-top:22px;border-radius:var(--radius-1);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 8%,transparent)}
.ody-seg{position:relative;min-width:2px;border:0;padding:0;cursor:pointer;transition:filter .15s}
.ody-seg:first-child{border-radius:999px 0 0 999px}
.ody-seg:last-child{border-radius:0 999px 999px 0}
.ody-seg:hover,.ody-seg:focus-visible{filter:brightness(1.18) saturate(1.1)}
.ody-seg.is-now::after{content:"";position:absolute;left:var(--at);top:-6px;bottom:-6px;width:3px;margin-left:-1.5px;border-radius:var(--radius-1);background:var(--nave)}
.ody-seasons{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:8px;margin-top:16px}
.ody-h{grid-column:1/-1;font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
html[lang="ti"] .ody-h{text-transform:none;letter-spacing:0;font-size:.9rem}
.ody-seasons button{width:100%;height:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:1px solid var(--line);border-left:6px solid var(--sc);border-radius:var(--radius-1);background:var(--leaf);text-align:left;cursor:pointer;font:inherit;color:inherit}
.ody-seasons button:hover{border-color:var(--sc)}
.ody-seasons .is-now button{box-shadow:0 0 0 2px var(--sc)}
.ody-ge{font-family:var(--ethiopic-serif);font-weight:700;font-size:1.05rem}
.ody-en{font-size:.85rem;font-style:italic;color:var(--ink-muted)}
.ody-when{font-size:.78rem;color:var(--muted)}
.sx-names{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.sx-names li{padding:6px 14px;border-radius:var(--radius-1);background:var(--parch);border:1px solid var(--gold-wash);font-family:var(--ethiopic-serif);font-size:1.02rem}
.sx-names li:first-child{border-color:var(--navy);color:var(--navy);font-weight:700}
.sx-names + .sx-empty{margin-top:10px}

/* ============================================================
   KEREN ILLUMINATED — the month of the calendar (components .ke-day):
   the Ge'ez numeral first, Sundays and feasts in red, fast days hatched, today gilded
   ============================================================ */
.day{background:var(--leaf);border:1px solid var(--rule)}
.day:hover{border-color:var(--gold-leaf);box-shadow:none}
.day .et-d{font-family:var(--ethiopic);font-weight:400;font-size:1.4rem;line-height:1.1;color:var(--ink)}
#cal-grid .day.is-sun .et-d,.day.has-major .et-d,.day.has-feast .et-d{color:var(--rubric)}
.day.has-major{border-top:3px solid var(--pigment-red)}
.day.has-feast{border-top:3px solid var(--gold-leaf)}
.day.has-fast{border-top-color:var(--rule)}
/* a fast day is hatched, like the fast days of the manuscripts */
.day.is-fast,.day.is-sun.is-fast{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--rule) 70%,transparent) 6px 7px),var(--leaf)}
/* today is gilded: the gold wash with a gilded inner rule */
.day.is-today{background:var(--gold-wash);border-color:var(--gold-leaf);box-shadow:inset 0 0 0 2px var(--gold-leaf)}
.day.is-today.is-fast{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--gold-leaf) 35%,transparent) 6px 7px),var(--gold-wash)}
.day.is-today .et-d::after{display:none}
.day.is-today .gr-d{color:var(--ink)}
.day.is-sel{outline:2px solid var(--brass);outline-offset:1px}
.sw-fast{background:repeating-linear-gradient(135deg,transparent 0 2px,var(--rule-control) 2px 3px),var(--leaf);border:1px solid var(--rule-control)}
.sw-feast{background:var(--gold-leaf)}
@media (max-width:640px){ .day .et-d{font-size:1.15rem} }
/* today's cell is gold-wash: its grey lines turn to ink so they stay readable (ink-muted is not used on gold-wash) */
.day.is-today .sun-name:not(.is-named){color:var(--ink)}
