.calendar-list { display: grid; gap: 12px; margin-block: 20px; }
.calendar-item { border: 1px solid var(--border); border-left: 4px solid var(--signal-green); background: var(--bg-card); padding: 18px; overflow-wrap: anywhere; }
.calendar-item h3 { font-size: 1.15rem; margin-bottom: 8px; text-transform: none; letter-spacing: normal; }
.calendar-item p { margin: 4px 0; }
.calendar-item a { text-decoration: underline; text-underline-offset: .2em; }
.calendar-item[data-status=cancelled], .calendar-item[data-status=changed] { border-left-color: var(--signal-yellow); }
.calendar-date { color: var(--muted); font-size: .85rem; }
.calendar-status { font-weight: 700; }
.calendar-description { white-space: pre-line; }
.calendar-item summary { cursor: pointer; min-height: 44px; align-content: center; }
.calendar-filter { max-width: 360px; }
[data-calendar=home] .calendar-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
.calendar-news-info { font-weight: 700; }
.admin-card .calendar-record { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 12px; border-bottom: 1px solid var(--border); }
.admin-card .calendar-record p { flex: 1 1 200px; min-width: 0; margin: 0; overflow-wrap: anywhere; }
.admin-card .calendar-record .btn { margin: 0; }
.calendar-rule { padding: 12px; border: 1px solid var(--border); margin-block: 10px; }
.admin-card .calendar-checks { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.admin-card .calendar-checks label { display: flex; gap: 8px; align-items: center; min-height: 44px; margin: 0; }
@media(max-width:800px) { [data-calendar=home] .calendar-list { grid-template-columns: 1fr; } }
