.calendar-shell,.calendar-event-drawer{--cal-ink:#232326;--cal-muted:#62626b;--cal-line:#e5e5e8;--cal-soft:#f6f6f7;--cal-red:#b7202e;--cal-radius:16px;color:var(--cal-ink)}
.calendar-shell{max-width:1180px;padding-top:32px;padding-bottom:56px}.calendar-shell [hidden],.calendar-event-drawer [hidden]{display:none!important}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:10px 0 30px;border-bottom:1px solid var(--cal-line)}
.calendar-eyebrow{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--cal-red);margin-bottom:10px}
.calendar-heading h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.1rem,4.2vw,3.35rem);letter-spacing:-.045em;line-height:1.08;margin:0 0 16px;font-weight:700}
.calendar-intro{font-size:1.1rem;margin:0 0 6px;line-height:1.5}.calendar-caption{font-size:.85rem;color:var(--cal-muted);line-height:1.6;margin:8px 0 0}
.calendar-subscribe-link{display:flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;border:1px solid var(--cal-line);border-radius:8px;padding:12px 16px;min-height:46px;text-decoration:none;color:var(--cal-ink);font-size:.85rem;font-weight:600;background:#fff}
.calendar-subscribe-link:hover{border-color:var(--cal-red);color:var(--cal-red)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 16px}.calendar-view-switch{display:flex;padding:4px;background:var(--cal-soft);border:1px solid var(--cal-line);border-radius:10px;gap:4px}
.calendar-view-switch button{border:0;background:transparent;color:var(--cal-muted);border-radius:7px;min-height:44px;padding:9px 22px;font-weight:600;font-size:.875rem;display:flex;align-items:center;gap:8px}.calendar-view-switch button[aria-pressed=true]{background:#fff;color:var(--cal-ink);box-shadow:0 1px 4px #00000012}
.calendar-timezone{font-size:.8rem;color:var(--cal-muted);margin:0;display:flex;align-items:center;gap:7px}.calendar-filters{border-radius:10px;background:#fff;margin-bottom:28px}.calendar-filters>summary{background:#fff}.calendar-filters .form-label{font-size:.8rem;font-weight:600}
.calendar-list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 24px}.calendar-list-heading h2{font-size:1.35rem;font-weight:700;margin:0}.calendar-list-heading>span{font-size:.85rem;color:var(--cal-muted)}
.calendar-day{display:grid;grid-template-columns:76px minmax(0,1fr);gap:24px;margin-bottom:30px}.calendar-day-date{text-align:center;padding:14px 6px;align-self:start;border:1px solid var(--cal-line);border-radius:12px;background:#fff}.calendar-day-date>span{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:.7rem;color:var(--cal-red);font-weight:700}.calendar-day-date>strong{display:block;font-size:2rem;line-height:1.3;font-variant-numeric:tabular-nums}.calendar-day-date>small{color:var(--cal-muted);font-size:.75rem}
.calendar-day-heading{display:flex;gap:10px;align-items:baseline;font-size:.9rem;font-weight:700;margin:0 0 14px}.calendar-day-heading>span{font-weight:400;color:var(--cal-muted);font-size:.8rem}.calendar-day-events{min-width:0}
.calendar-event-row{padding:18px 22px;background:#fff;border:1px solid var(--cal-line);border-radius:12px;margin-bottom:10px;transition:border-color .18s,box-shadow .18s}.calendar-event-row:hover{border-color:#c8c8cf;box-shadow:0 3px 14px #00000004}.calendar-event-category{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px;font-size:.7rem;font-weight:600;color:var(--cal-muted)}.calendar-event-category>span:first-child{background:var(--cal-soft);border-radius:5px;padding:3px 7px}
.calendar-event-row h4{font-size:1.12rem;line-height:1.4;margin:0 0 8px;font-weight:650}.calendar-event-row h4 a{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:44px;color:var(--cal-ink);text-decoration:none;overflow-wrap:anywhere}.calendar-event-row h4 a>.bi{flex-shrink:0;font-size:.9rem;color:var(--cal-muted)}.calendar-event-row h4 a:hover{color:var(--cal-red)}
.calendar-event-when,.calendar-event-place{font-size:.85rem;margin:4px 0;color:var(--cal-muted);display:flex;align-items:baseline;gap:8px;line-height:1.55;overflow-wrap:anywhere}.calendar-event-source{font-size:.75rem;line-height:1.5;color:var(--cal-muted);margin:9px 0 0;overflow-wrap:anywhere}.calendar-cancelled{color:#a31d2a}
.calendar-empty{text-align:center;border:1px dashed var(--cal-line);border-radius:var(--cal-radius);padding:45px 20px;margin:24px 0}.calendar-empty>.bi{font-size:2rem;color:var(--cal-muted)}.calendar-empty h3{font-size:1.2rem;margin-top:18px}.calendar-empty p{color:var(--cal-muted);max-width:430px;margin:10px auto 20px}.calendar-pagination{margin:24px 0}
.calendar-footer{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--cal-line);padding-top:30px;margin-top:36px}.calendar-subscription>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;min-height:48px;font-size:1rem;font-weight:650;cursor:pointer}.calendar-subscription>summary::-webkit-details-marker{display:none}.calendar-subscription>summary>span{display:flex;gap:9px;align-items:center}.calendar-subscription[open]>summary>.bi{transform:rotate(45deg)}.calendar-subscription-body{padding-top:14px;line-height:1.6}.calendar-subscription-body>p,.calendar-provenance>p{font-size:.85rem;color:var(--cal-muted)}.calendar-subscription-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.calendar-subscription .btn{font-size:.8rem;min-height:44px;padding:11px 14px}.calendar-subscription .form-label{font-size:.8rem}.calendar-subscription input{font-size:.8rem;min-height:44px}
.calendar-provenance h2{font-size:1rem;font-weight:650;margin:12px 0 16px}.calendar-source-links{display:flex;flex-wrap:wrap;gap:6px 18px}.calendar-source-links a{display:inline-flex;gap:5px;align-items:center;min-height:44px;font-size:.8rem;color:var(--cal-ink)}
.calendar-month-panel{padding:20px;border:1px solid var(--cal-line);border-radius:var(--cal-radius);background:#fff;min-height:640px}.calendar-status{font-size:.875rem;color:var(--cal-muted);line-height:1.5;margin:12px 0 0}.calendar-month-panel .fc{--fc-border-color:var(--cal-line);--fc-today-bg-color:#fff7f7;--fc-neutral-bg-color:var(--cal-soft);--fc-event-bg-color:#f7eded;--fc-event-border-color:transparent;--fc-event-text-color:var(--cal-ink);--fc-page-bg-color:#fff;--fc-small-font-size:.75rem}
.calendar-month-panel .fc-toolbar{gap:12px;flex-wrap:wrap;margin-bottom:24px!important}.calendar-month-panel .fc-toolbar-title{font-family:Georgia,'Times New Roman',serif;font-size:1.65rem;font-weight:700;letter-spacing:-.025em}.calendar-month-panel .fc .btn{min-width:44px;min-height:44px;background:#fff;border-color:var(--cal-line);color:var(--cal-ink);font-size:.85rem;box-shadow:none}.calendar-month-panel .fc .btn:hover{background:var(--cal-soft)}.calendar-month-panel .fc .btn:disabled{color:#777}.calendar-month-panel .fc-col-header-cell{padding:10px 0;background:var(--cal-soft)}.calendar-month-panel .fc-col-header-cell-cushion{font-size:.75rem;text-decoration:none;color:var(--cal-muted);font-weight:600}.calendar-month-panel .fc-daygrid-day-number{color:var(--cal-ink);text-decoration:none;font-size:.8rem;padding:7px 10px}.calendar-month-panel .fc-day-today .fc-daygrid-day-number{font-weight:700;color:var(--cal-red)}.calendar-month-panel .fc-daygrid-day-frame{min-height:100px}.calendar-month-panel .fc-daygrid-event{padding:4px 6px;border-radius:5px;cursor:pointer;margin:3px 4px;white-space:normal;min-height:32px;font-size:.7rem;line-height:1.4}.calendar-month-panel .fc-event-title{font-weight:600;overflow-wrap:anywhere}.calendar-month-panel .fc-event-time{font-weight:500;white-space:nowrap;flex-shrink:0}.calendar-month-panel .fc-daygrid-more-link{color:var(--cal-red);font-size:.75rem;padding:6px;min-height:32px;display:inline-flex;align-items:center}.calendar-month-panel .fc .fc-popover{z-index:1040;border-radius:10px;box-shadow:0 8px 30px #00000015;max-width:calc(100vw - 32px)}.calendar-month-panel .fc-popover-body{max-height:min(60vh,440px);overflow-y:auto;overscroll-behavior:contain}
.calendar-event-drawer{--bs-offcanvas-width:min(520px,100vw);z-index:1055;background:#fff}.calendar-event-drawer .offcanvas-header{padding:22px 28px;border-bottom:1px solid var(--cal-line);min-height:78px}.calendar-event-drawer .btn-close{min-width:44px;min-height:44px;padding:10px;margin:0 -8px 0 0}.calendar-event-drawer .offcanvas-body{padding:28px;padding-bottom:calc(36px + env(safe-area-inset-bottom));overflow-wrap:anywhere}.calendar-drawer-category{font-size:.75rem;color:var(--cal-red);font-weight:650;margin-bottom:12px}.calendar-event-drawer h2{font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:700;line-height:1.2;letter-spacing:-.025em;margin:0 0 24px}.calendar-drawer-facts{padding:20px;background:var(--cal-soft);border-radius:12px;margin:20px 0 28px}.calendar-drawer-facts>div+div{margin-top:16px}.calendar-drawer-facts dt{font-size:.7rem;color:var(--cal-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}.calendar-drawer-facts dd{font-size:.95rem;line-height:1.55;margin:0}.calendar-drawer-description h3{font-size:.9rem;font-weight:700;margin:22px 0 10px}.calendar-drawer-description p{font-size:.95rem;line-height:1.7;white-space:pre-line}.calendar-drawer-actions{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 20px}.calendar-drawer-actions .btn{min-height:46px;padding:12px 16px;font-size:.85rem}.calendar-event-permalink{display:inline-flex;gap:8px;align-items:center;min-height:44px;color:var(--cal-ink);font-size:.85rem;font-weight:600;margin-top:16px}.calendar-drawer-cancelled{background:#fceef0;color:#a31d2a;border-radius:8px;padding:12px;font-size:.9rem}.calendar-event-drawer~.offcanvas-backdrop{z-index:1050}
.calendar-shell a:focus-visible,.calendar-shell button:focus-visible,.calendar-shell summary:focus-visible,.calendar-event-drawer a:focus-visible,.calendar-event-drawer button:focus-visible{outline:3px solid var(--cal-red);outline-offset:3px;border-radius:5px}.calendar-month-panel .fc-event:focus-visible{outline:3px solid var(--cal-red);outline-offset:1px}
@media(max-width:767px){.calendar-shell{padding-top:22px;padding-bottom:35px}.calendar-heading{display:block;padding-top:0;padding-bottom:24px}.calendar-heading h1{font-size:2.2rem;margin-bottom:14px}.calendar-intro{font-size:1rem}.calendar-heading .calendar-caption{font-size:.8rem}.calendar-subscribe-link{display:inline-flex;margin-top:20px;padding:10px 14px}.calendar-toolbar{margin-top:20px;gap:8px}.calendar-view-switch button{padding:9px 14px}.calendar-timezone{font-size:.7rem;gap:5px}.calendar-day{grid-template-columns:54px minmax(0,1fr);gap:12px;margin-bottom:26px}.calendar-day-date{padding:10px 3px;border-radius:9px}.calendar-day-date>strong{font-size:1.65rem}.calendar-day-date>span,.calendar-day-date>small{font-size:.65rem}.calendar-day-heading{display:block;font-size:.8rem;margin-bottom:12px}.calendar-day-heading>span{display:block;margin-top:3px;font-size:.75rem}.calendar-event-row{padding:14px;border-radius:10px}.calendar-event-row h4{font-size:1rem;line-height:1.45}.calendar-event-when,.calendar-event-place{font-size:.8rem}.calendar-event-source{font-size:.7rem}.calendar-footer{grid-template-columns:1fr;gap:22px;margin-top:28px}.calendar-month-panel{padding:12px 6px;min-height:500px;border-radius:12px}.calendar-month-panel .fc-toolbar{gap:10px;margin:0 4px 20px!important}.calendar-month-panel .fc-toolbar-title{font-size:1.25rem}.calendar-month-panel .fc .btn{font-size:.75rem}.calendar-month-panel .fc-col-header-cell-cushion{font-size:.65rem}.calendar-month-panel .fc-daygrid-day-number{padding:6px;font-size:.75rem}.calendar-month-panel .fc-daygrid-day-frame{min-height:78px}.calendar-month-panel .fc-daygrid-event{padding:3px;margin:3px 2px;font-size:.62rem;min-height:38px}.calendar-month-panel .fc-event-time{display:none}.calendar-month-panel .fc-daygrid-more-link{padding:5px 2px;font-size:.65rem;min-height:38px}.calendar-event-drawer .offcanvas-header{padding:16px 20px}.calendar-event-drawer .offcanvas-body{padding:24px 20px}.calendar-event-drawer h2{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){.calendar-event-row,.calendar-event-drawer,.offcanvas-backdrop{transition:none!important}}
@media(prefers-color-scheme:dark){.calendar-shell,.calendar-event-drawer{color-scheme:light}}
