/* Sports events calendar — built from the existing tokens (surface, line, mono, pill). */
.cal-list { list-style:none; margin:0; padding:0 clamp(16px,3vw,32px); }
.cal-event { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:start; gap:clamp(14px,2.4vw,28px); padding:20px 0; border-top:1px solid var(--line); }
.cal-event:first-child { border-top:0; }
.cal-event[hidden] { display:none; }
.cal-event__day { display:grid; justify-items:center; gap:2px; padding:8px 0 10px; border-radius:12px; background:var(--bg); color:var(--muted); font-size:11.5px; font-weight:560; letter-spacing:.02em; text-transform:uppercase; }
.cal-event__day strong { font:550 24px/1.1 var(--mono); letter-spacing:-.04em; color:var(--ink); text-transform:none; }
.cal-event__body { min-width:0; }
.cal-event .cal-event__title { margin-top:4px; font-size:clamp(17px,1.6vw,19px); font-weight:600; line-height:1.3; letter-spacing:-.018em; text-wrap:pretty; }
.cal-event .cal-event__info { max-width:none; margin-top:4px; color:var(--muted); font-size:14.5px; line-height:1.55; }
.cal-event .meta { margin:0; font-size:13px; }
.cal-event__note { display:block; color:var(--ink-2); }
.cal-event__source { display:inline-flex; align-items:center; gap:4px; margin-top:8px; color:var(--muted); font-size:13px; font-weight:520; }
.cal-event__source .icon { width:12px; height:12px; }
.cal-event__source:hover { color:var(--accent-ink); }

.cal-badge { align-self:center; display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 10px; border-radius:var(--r-pill); font-size:12.5px; font-weight:560; white-space:nowrap; background:var(--bg); color:var(--muted); box-shadow:inset 0 0 0 1px var(--line); }
.cal-badge--confirmed { color:var(--ink-2); }
.cal-badge--confirmed::before { content:""; width:6px; height:6px; border-radius:50%; background:#2f9e5b; }
.cal-badge--provisional::before, .cal-badge--tbc::before { content:""; width:6px; height:6px; border-radius:50%; box-shadow:inset 0 0 0 1.5px currentColor; }
.cal-badge--live { background:var(--accent-soft); color:var(--accent-ink); box-shadow:none; }
.cal-badge--live::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); animation:cal-pulse 1.8s var(--ease-in-out) infinite; }
@keyframes cal-pulse { 50% { opacity:.35; } }

/* Full page */
.calendar-page__intro { max-width:62ch; margin-top:18px; color:var(--muted); font-size:clamp(17px,1.5vw,19px); }
.calendar-page__intro p { margin:0; }
.cal-filters { position:sticky; top:calc(var(--header-h) + 8px); z-index:2; display:flex; gap:8px; margin:0 calc(var(--gutter) * -1) 8px; padding:10px var(--gutter); overflow-x:auto; scrollbar-width:none; background:var(--glass); -webkit-backdrop-filter:blur(20px) saturate(180%); backdrop-filter:blur(20px) saturate(180%); }
.cal-filters::-webkit-scrollbar { display:none; }
@media (min-width:761px) { .cal-filters { flex-wrap:wrap; overflow:visible; } }
.calendar-page .page__head { padding-bottom:0; }
.cal-chip { flex:none; display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; border:0; border-radius:var(--r-pill); background:var(--surface); color:var(--ink-2); box-shadow:0 0 0 1px var(--line); font:520 14px var(--font); cursor:pointer; transition:background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), transform var(--dur-2) var(--spring); }
.cal-chip span { color:var(--muted); font-family:var(--mono); font-size:12px; }
.cal-chip:hover { box-shadow:0 0 0 1px var(--line-strong), var(--shadow-sm); }
.cal-chip:active { transform:scale(.96); }
.cal-chip[aria-pressed="true"] { background:var(--ink); color:var(--bg); box-shadow:none; }
.cal-chip[aria-pressed="true"] span { color:inherit; opacity:.7; }
.cal-chip:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.cal-month { padding-top:clamp(32px,4vw,48px); scroll-margin-top:calc(var(--header-h) + 72px); }
.cal-month[hidden] { display:none; }
.cal-month__title { margin-bottom:16px; font-size:clamp(22px,2.2vw,28px); font-weight:650; letter-spacing:-.028em; }
.cal-empty { margin-top:40px; }
.cal-disclaimer { max-width:70ch; margin-top:32px; }
@media (prefers-reduced-transparency:reduce) { .cal-filters { background:var(--bg); backdrop-filter:none; -webkit-backdrop-filter:none; } }

/* Homepage preview */
.calendar-preview--list { align-items:start; }
.calendar-preview--list .cal-list { padding:0; }
.calendar-preview--list .cal-event { padding:16px 0; }
.calendar-preview--list .cal-event:first-child { padding-top:0; }
.calendar-preview__head .meta { margin:0; }
.calendar-preview__head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; margin-bottom:12px; }
.calendar-preview__head .text-link { margin-top:0; }

@media (max-width:760px) {
	.cal-event { grid-template-columns:48px minmax(0,1fr); }
	.cal-badge { grid-column:2; justify-self:start; margin-top:-8px; }
	.cal-event__day strong { font-size:21px; }
	.calendar-preview--list { grid-template-columns:1fr; }
	.calendar-preview--list .calendar-preview__date { display:none; }
}
@media (prefers-reduced-motion:reduce) { .cal-badge--live::before { animation:none; } }

/* Status key (from the workbook's Read Me) */
.cal-legend { display:flex; flex-wrap:wrap; gap:10px 28px; margin:16px 0 0; }
.cal-legend > div { display:flex; align-items:center; gap:10px; }
.cal-legend dd { margin:0; color:var(--muted); font-size:13.5px; }
