.calendar-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-2);
    margin-bottom: var(--s-3);
    padding-bottom: var(--s-3);
    border-bottom: 1px solid var(--border);
}

.calendar-filter {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 6px 10px;
    border-radius: 3px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-mid);
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.calendar-filter.is-active {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.calendar-table-wrap {
    overflow-x: auto;
}

.calendar-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-mono);
    font-size: 0.72rem;
}

.calendar-table th {
    text-align: left;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-mute);
    padding: 8px 6px;
    border-bottom: 1px solid var(--border);
}

.calendar-table th.num { text-align: right; }

.calendar-col-expected { display: none; }

.calendar-table td {
    padding: 10px 6px;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
    vertical-align: middle;
}

.calendar-table td.num { text-align: right; }

.calendar-status {
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.calendar-row[data-status="upcoming"] .calendar-time { color: var(--text-mid); }
.calendar-row[data-status="upcoming"] .calendar-status { color: var(--text-mute); }
.calendar-row[data-status="upcoming"] .calendar-countdown { color: var(--text-mid); }

.calendar-row[data-status="live"] {
    background: color-mix(in srgb, var(--accent) 7%, transparent);
}
.calendar-row[data-status="live"] .calendar-time,
.calendar-row[data-status="live"] .calendar-status,
.calendar-row[data-status="live"] .calendar-countdown {
    color: var(--accent);
}
.calendar-row[data-status="live"] .calendar-countdown {
    font-weight: 700;
    animation: calendar-soon-pulse 1.4s ease-in-out infinite;
}

.calendar-row[data-status="late"] {
    background: color-mix(in srgb, #d29922 10%, transparent);
}
.calendar-row[data-status="late"] .calendar-time { color: #d29922; }
.calendar-row[data-status="late"] .calendar-status {
    color: #d29922;
    animation: calendar-late-pulse 1.6s ease-in-out infinite;
}

.calendar-row[data-status="released"] .calendar-status { color: #3fb950; }
.calendar-row[data-status="released"] .calendar-actual--beat { color: #3fb950; }
.calendar-row[data-status="released"] .calendar-actual--miss { color: #f85149; }
.calendar-row[data-status="released"] .calendar-actual--inline { color: #d29922; }

.calendar-row--sub td {
    border-bottom-color: transparent;
    padding-top: 4px;
    padding-bottom: 4px;
}

.calendar-row--sub:last-of-type td,
.calendar-row:not(.calendar-row--sub) + .calendar-row--sub:last-child td {
    border-bottom-color: color-mix(in srgb, var(--border) 70%, transparent);
}

.calendar-event-group-end td {
    border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}

.calendar-metric {
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-mute);
    white-space: nowrap;
}

.calendar-event-link {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.calendar-event-link:hover,
.calendar-event-link:focus-visible {
    color: var(--accent);
    outline: none;
}

.calendar-event-link-icon {
    font-size: 0.62rem;
    opacity: 0.55;
}

.calendar-event-link:hover .calendar-event-link-icon,
.calendar-event-link:focus-visible .calendar-event-link-icon {
    opacity: 1;
}

.calendar-rate-prior {
    color: var(--text-mute);
    font-size: 0.64rem;
}

.calendar-kind {
    font-size: 0.58rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-mute);
}

.calendar-countdown {
    display: block;
    font-size: 0.58rem;
    color: var(--accent);
    margin-top: 2px;
}

.calendar-empty {
    font-size: 0.78rem;
    color: var(--text-mute);
    font-style: italic;
    padding: var(--s-4) 0;
}

@keyframes calendar-soon-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.65; }
}

@keyframes calendar-late-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

@media (max-width: 620px) {
    .calendar-table th:nth-child(3),
    .calendar-table td:nth-child(3) {
        display: none;
    }
}
