.cal-page{border-top:2px solid var(--navy);margin-top:clamp(2rem,4vw,3rem);padding-top:1.5rem}.cal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.cal-header-actions{align-items:center;gap:.5rem;display:flex}.cal-month-label{text-align:center;font-family:var(--font-serif);color:var(--ink);flex:1;font-size:clamp(1.5rem,3vw,2rem);font-weight:400;line-height:1.1}.cal-month-label span{color:var(--muted)!important}.cal-nav-btn{border:1px solid var(--color-ink);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;place-items:center;font-size:1rem;transition:background .18s,color .18s;display:grid}.cal-current-btn{border:1px solid var(--color-ink);min-height:44px;color:var(--ink);font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;border-radius:2px;padding:0 .75rem;font-size:.625rem;font-weight:700;transition:background .18s,color .18s,opacity .18s}.cal-current-btn:hover:not(:disabled){background:var(--ink);color:#fff}.cal-current-btn:disabled{opacity:.45;cursor:default}.cal-nav-btn:hover{background:var(--ink);color:#fff}.cal-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px;display:grid}.cal-weekdays div{text-align:center;font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:.25rem 0;font-size:.625rem;font-weight:700}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-cell{border:1px solid var(--color-ink);background:#fff;border-color:#07192724;border-radius:0;min-width:0;min-height:104px;padding:.5rem .375rem .375rem;overflow:hidden}.cal-cell.other-month{opacity:.32;background:0 0;border-color:#0000}.cal-cell.today{border-color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-ink)}.day-num{font-family:var(--font-sans);font-variant-numeric:tabular-nums;color:var(--muted);margin-bottom:.25rem;font-size:.75rem;display:block}.cal-cell.today .day-num{color:var(--ink);font-weight:700}.event-pill,.more-events{text-align:left;width:100%;max-width:100%;font-family:var(--font-sans);border:none;display:block}.event-pill{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:1px;margin-bottom:3px;padding:2px 4px;font-size:.625rem;line-height:1.3;overflow:hidden}.event-pill.cat-church{background:var(--color-sky);color:var(--ink)}.event-pill.cat-youth{background:var(--color-ground-alt);color:var(--color-link)}.event-pill:hover,.more-events:hover{filter:brightness(.94)}.more-events{color:var(--muted);cursor:pointer;background:0 0;padding:2px 0;font-size:.625rem}.mobile-event-indicator{display:none}.event-popup{z-index:100;opacity:0;pointer-events:none;background:#fff;border:1px solid #07192729;border-radius:2px;width:min(300px,100vw - 24px);max-height:min(70vh,420px);padding:1rem 1.125rem;transition:opacity .15s;position:fixed;overflow-y:auto;box-shadow:0 12px 40px #04121c2e}.event-popup.visible{opacity:1;pointer-events:auto}.popup-title{font-family:var(--font-serif);color:var(--ink);margin-bottom:.25rem;font-size:1.25rem;line-height:1.2}.popup-meta{font-family:var(--font-sans);color:var(--body);font-size:.75rem;line-height:1.6}.popup-desc{font-family:var(--font-sans);color:var(--body);margin:.5rem 0;font-size:.8125rem;line-height:1.5}.popup-register{font-family:var(--font-sans);color:var(--color-link);margin-top:.5rem;font-size:.75rem;font-weight:600;display:inline-block}.popup-cat{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.375rem;padding:2px 5px;font-size:.5625rem;font-weight:700;display:inline-block}.popup-cat.cat-church{background:var(--color-sky);color:var(--ink)}.popup-cat.cat-youth{background:var(--color-ground-alt);color:var(--color-link)}.popup-block+.popup-block{border-top:1px solid #07192724;margin-top:.75rem;padding-top:.75rem}.cal-legend{font-family:var(--font-sans);flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.25rem;display:flex}.cal-legend-item{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.375rem;font-size:.625rem;font-weight:600;display:flex}.cal-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@media (width<=640px){.cal-cell{min-height:58px;padding:.25rem .1875rem}.day-num,.event-pill{font-size:.6875rem}}@media (width<=420px){.event-pill,.more-events{display:none}.cal-cell.has-events{background:var(--color-sky)}.mobile-event-indicator{background:var(--color-accent);color:#fff;width:18px;height:18px;font-family:var(--font-sans);cursor:pointer;border:0;border-radius:50%;place-items:center;margin:2px auto 0;padding:0;font-size:.625rem;font-weight:700;line-height:1;display:grid}}
