.calendar-export-section { padding-block: 2.5rem 0; }
.calendar-export { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--color-border); border-left: 4px solid var(--brand-orange); border-radius: var(--radius-md); background: var(--color-sage-soft); }
.calendar-export__heading { display: flex; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.calendar-export__heading > div { min-width: 0; }
.calendar-export__heading .eyebrow { font-size: .72rem; margin-bottom: .4rem; }
.calendar-export__heading h2 { font-size: clamp(1.4rem, 3vw, 1.85rem); margin: 0; line-height: 1.25; }
.calendar-export__icon { display: grid; place-items: center; flex: 0 0 3.4rem; height: 3.4rem; border-radius: .8rem; background: var(--color-sun-soft); color: var(--color-link); }
.calendar-export__icon .icon { width: 1.75rem; height: 1.75rem; }
.calendar-export__meta { font-size: .88rem; font-weight: 650; color: var(--color-muted); }
.calendar-export__actions { margin-block: 1.25rem; }
.calendar-export__actions .button { min-height: 48px; }
.calendar-export .calendar-export__note { font-size: .9rem; color: var(--color-muted); margin-block: .5rem; }
.calendar-export__help { margin-top: 1rem; border-top: 1px solid var(--color-border); padding-top: .5rem; }
.calendar-export__help summary { min-height: 44px; padding-block: .5rem; cursor: pointer; color: var(--color-link); font-weight: 700; }
.calendar-export__help li { margin-block: .75rem; }
.calendar-export__help label { display: block; font-weight: 650; margin-top: 1rem; }
.calendar-export__help input { display: block; width: 100%; max-width: 100%; min-width: 0; margin-block: .5rem 1rem; font-size: .9rem; }
.calendar-export__help p { font-size: .9rem; }
@media (max-width: 40rem) {
 .calendar-export__heading { align-items: flex-start; }
 .calendar-export__heading .eyebrow::before { display: none; }
 .calendar-export__actions { flex-direction: column; align-items: stretch; }
 .calendar-export__actions .button { width: 100%; }
}
html[data-contrast="high"] :is(.calendar-export,.calendar-export__icon) { color: #000; background: #fff; border-color: #000; }
html[data-contrast="high"] :is(.calendar-export__meta,.calendar-export .calendar-export__note,.calendar-export__help summary) { color: #000; }
@media print { .calendar-export-section { display: none; } }
.calendar-archive-hero.page-hero { padding-block: clamp(2rem, 5vw, 4.5rem); background: var(--color-sage); }
.calendar-archive-hero + .cloud-divider { background: var(--color-sage); }
.calendar-back { min-height: 44px; display: inline-flex; align-items: center; font-weight: 650; margin-bottom: 1rem; }
.calendar-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.calendar-facts strong { font-size: 1.6rem; color: var(--color-link); margin-right: .3rem; }
.calendar-archive-container { max-width: 66rem; }
.calendar-archive-section { padding-top: 2.5rem; }
.calendar-archive-warning { max-width: 80ch; margin: 0 0 1.5rem; }
.calendar-tools { display: grid; grid-template-columns: minmax(12rem,.8fr) minmax(15rem,1.4fr) auto; align-items: end; gap: 1rem; padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-sage-soft); }
.calendar-tools label { display: block; font-weight: 700; margin-bottom: .4rem; }
.calendar-tools input, .calendar-tools select { width: 100%; min-height: 48px; }
.calendar-tools .button { min-height: 48px; }
.calendar-results-bar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; margin: 1rem 0; }
.calendar-results-bar p { margin: 0; color: var(--color-muted); }
.calendar-actions { display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.calendar-actions button { border: 0; background: transparent; padding: .5rem .2rem; min-height: 44px; color: var(--color-link); text-decoration: underline; font-weight: 650; cursor: pointer; }
.calendar-actions button:disabled { color: var(--color-muted); cursor: default; }
.calendar-empty { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 1.5rem; }
.calendar-month { margin: 1rem 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); overflow: clip; background: var(--color-white); }
.calendar-month > summary { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; background: var(--color-sage-soft); cursor: pointer; list-style: none; }
.calendar-month > summary::-webkit-details-marker, .calendar-event > summary::-webkit-details-marker { display: none; }
.calendar-month > summary::after, .calendar-event > summary::after { content: '+'; font-size: 1.7rem; font-weight: 400; margin-left: auto; flex-shrink: 0; line-height: 1; }
.calendar-month[open] > summary::after, .calendar-event[open] > summary::after { content: '−'; }
.calendar-month > summary h2 { margin: 0; font-size: clamp(1.3rem, 3vw, 1.8rem); }
.calendar-month-number { padding: .4rem .7rem; border-radius: .6rem; background: var(--brand-sun); font-size: 1.25rem; font-weight: 700; color: #212529; }
.calendar-month-total { margin-left: auto; font-size: .9rem; color: var(--color-muted); }
.calendar-month > summary::after { margin-left: 0; }
.calendar-month-body { padding: 1rem 1.5rem; }
.calendar-event { border-top: 1px solid var(--color-border); }
.calendar-event > summary { display: flex; align-items: center; gap: 1rem; min-height: 80px; padding: 1rem 0; cursor: pointer; list-style: none; }
.calendar-event-day { display: grid; place-items: center; flex: 0 0 2.75rem; height: 2.75rem; border-radius: .6rem; background: var(--color-sun-soft); color: var(--color-link); font-weight: 750; font-size: 1.2rem; }
.calendar-event-heading { flex: 1; min-width: 0; }
.calendar-event-date { display: block; color: var(--color-muted); font-size: .88rem; }
.calendar-event h3 { margin: .25rem 0 0; font-size: 1.12rem; }
.calendar-category { padding: .2rem .5rem; border: 1px solid var(--color-border); border-radius: .3rem; font-size: .8rem; color: var(--color-muted); }
.calendar-event-body { padding: 0 2rem 1.25rem 3.75rem; max-width: 80ch; }
.calendar-event-body p { margin: .65rem 0; }
.calendar-source, .calendar-source-note { color: var(--color-muted); font-size: .9rem; }
.calendar-source-note { border-left: 3px solid var(--brand-orange); padding-left: 1rem; }
.calendar-note { padding: .5rem 1rem; margin: .5rem 0 1rem; background: var(--color-sage-soft); border-radius: .65rem; }
.calendar-note summary { min-height: 44px; padding: .5rem 0; font-weight: 650; cursor: pointer; }
.calendar-note p { max-width: 75ch; margin: .5rem 0; }
.calendar-archive-end { margin-top: 2rem; }
.calendar-archive-index { padding-block: 3rem; }
.calendar-year-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.calendar-year-card { padding: 1.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-sage-soft); }
.calendar-year-card h3 { margin: 1rem 0 .75rem; font-size: 1.5rem; }
.calendar-year-card p { margin-bottom: 0; }
.calendar-year-badge { display: inline-block; border-radius: .35rem; padding: .2rem .6rem; background: var(--color-sun-soft); font-size: .9rem; font-weight: 650; }
.calendar-archive-container summary:focus-visible { outline: 3px solid var(--focus); outline-offset: -3px; }
.calendar-archive-container [hidden] { display: none !important; }
@media (max-width: 48rem) {
 .calendar-tools { grid-template-columns: minmax(0,1fr); padding: 1rem; }
 .calendar-year-grid { grid-template-columns: minmax(0,1fr); }
 .calendar-month > summary { padding: 1rem; gap: .7rem; flex-wrap: wrap; }
 .calendar-month-total { order: 2; width: 100%; padding-left: 3.2rem; }
 .calendar-month > summary::after { margin-left: auto; }
 .calendar-month-body { padding: .75rem 1rem; }
 .calendar-event > summary { gap: .65rem; flex-wrap: wrap; }
 .calendar-event-day { flex-basis: 2.25rem; height: 2.25rem; }
 .calendar-event-heading { flex-basis: calc(100% - 5rem); }
 .calendar-category { margin-left: 2.9rem; }
 .calendar-event > summary::after { margin-left: auto; }
 .calendar-event-body { padding: 0 0 1rem; }
 .calendar-facts { flex-direction: column; align-items: start; gap: .6rem; }
 .calendar-results-bar { align-items: start; }
}
html[data-contrast="high"] :is(.calendar-archive-hero.page-hero,.calendar-month > summary,.calendar-tools,.calendar-note,.calendar-event-day,.calendar-month-number,.calendar-year-card,.calendar-year-badge) { color: #000; background: #fff; border-color: #000; }
html[data-contrast="high"] :is(.calendar-month-total,.calendar-event-date,.calendar-category,.calendar-source,.calendar-source-note,.calendar-facts strong) { color: #000; }
@media print {
 .calendar-tools, .calendar-results-bar, .calendar-back, .calendar-archive-end { display: none !important; }
 .calendar-month, .calendar-month-body { overflow: visible; }
 .calendar-event { break-inside: avoid; }
 .calendar-event-body { max-width: none; }
 .calendar-archive-hero.page-hero { padding-block: 1rem; }
}
