/* Calendar Beta follows the existing site palette and typography. */
.calendar-main{padding-top:42px;padding-bottom:64px;max-width:1120px}
.calendar-main [hidden]{display:none!important}
.calendar-intro{margin-bottom:28px}.calendar-intro h1{font-size:clamp(2rem,5vw,3.3rem);line-height:1.06;margin:14px 0}
.calendar-intro p{max-width:760px;color:var(--muted,#a4aab6);font-size:1.05rem;line-height:1.65}
.calendar-beta{display:inline-block;border:1px solid var(--accent);color:var(--accent);border-radius:5px;padding:3px 7px;font-size:.7rem;letter-spacing:.1em;vertical-align:middle;font-weight:800;text-transform:uppercase}
.calendar-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:var(--panel,#171b22);border:1px solid var(--line,#343941);padding:20px;border-radius:12px;margin:24px 0}
.calendar-filters[hidden]{display:none}.calendar-filters label{display:grid;gap:6px;font-weight:650;font-size:.85rem}
.calendar-filters input:not([type=checkbox]),.calendar-filters select{width:100%;min-width:0;color:inherit;background:var(--bg,#10141a);border:1px solid var(--line,#343941);border-radius:6px;padding:11px;font:inherit}
.calendar-filters .calendar-past{display:flex;align-items:center;gap:8px;font-weight:400}.calendar-filters button{align-self:end}
.calendar-card{display:grid;grid-template-columns:205px minmax(0,1fr);border:1px solid var(--line,#343941);border-radius:12px;overflow:hidden;background:var(--panel,#171b22);margin:0 0 16px}
.calendar-date{display:flex;flex-direction:column;gap:9px;background:rgba(127,127,127,.07);border-right:1px solid var(--line,#343941);padding:24px;font-weight:800;line-height:1.5}
.calendar-date span{font-size:.78rem;color:var(--muted,#a4aab6);font-weight:400;overflow-wrap:anywhere}
.calendar-card-main{padding:22px 24px;min-width:0}.calendar-card h2{margin:12px 0 7px;font-size:1.3rem;line-height:1.3;overflow-wrap:anywhere}.calendar-card h2 a{color:inherit;text-decoration:none}.calendar-card h2 a:hover{text-decoration:underline}
.calendar-card p{line-height:1.6;margin:9px 0}.calendar-location{font-weight:650}.calendar-card-top,.calendar-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.8rem}
.calendar-card-bottom{margin-top:18px}.calendar-card-bottom a{color:var(--accent)}
.calendar-status{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:800;border-radius:5px;padding:4px 7px;background:rgba(127,127,127,.13)}
.status-cancelled{color:#ff9b9b;background:rgba(180,45,45,.16)}.status-postponed,.status-tentative,.status-rescheduled{color:#ffd48a;background:rgba(170,115,20,.15)}
.calendar-empty{padding:36px 24px;border:1px dashed var(--line,#343941);border-radius:10px}.calendar-empty h2{margin-top:0}
.calendar-footnote{font-size:.85rem;line-height:1.65;margin-top:28px}.calendar-pagination{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:24px 0}
.calendar-breadcrumb{font-size:.85rem;margin-bottom:24px}.calendar-main>h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15;max-width:950px;margin:18px 0 28px}
.calendar-detail{padding:28px;border:1px solid var(--line,#343941);border-radius:12px;background:var(--panel,#171b22);max-width:900px}.calendar-detail p{line-height:1.7}.calendar-detail-date{font-weight:850;font-size:1.45rem;margin:0}.calendar-detail h2{font-size:1.2rem;margin-top:26px}.calendar-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}
.calendar-notice{padding:18px;border-radius:8px;line-height:1.6}
@media(max-width:720px){.calendar-main{padding-top:26px}.calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.calendar-keyword{grid-column:1/-1}.calendar-card{grid-template-columns:1fr}.calendar-date{padding:16px 20px;border-right:0;border-bottom:1px solid var(--line,#343941);gap:3px}.calendar-card-main{padding:18px 20px}.calendar-detail{padding:20px}.calendar-detail-date{font-size:1.2rem}}
@media(max-width:400px){.calendar-filters{grid-template-columns:1fr}.calendar-keyword{grid-column:auto}.calendar-actions .btn{width:100%;text-align:center}}
