.calendar-command-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1.12fr) minmax(260px, 0.98fr) minmax(220px, 0.78fr);
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}

.dashboard-scroll > .dash-hero.hero-flex {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: var(--space-4);
    justify-content: flex-start !important;
}

.dashboard-scroll > .dash-hero.hero-flex .hero-controls {
    justify-content: flex-start;
}

.dashboard-scroll > .dash-hero.hero-flex .selectors {
    justify-content: flex-start;
}

.calendar-command-panel,
.calendar-metric {
    background: color-mix(in srgb, var(--pc-low) 90%, var(--pc-bg));
    border: 1px solid color-mix(in srgb, var(--pc-border) 86%, transparent);
    padding: var(--space-4);
    display: grid;
    gap: var(--space-2);
    align-content: start;
    justify-content: start !important;
    justify-items: start;
    min-height: 104px;
    text-align: left;
}

.calendar-command-panel--wide strong {
    font-size: 2.25rem;
    line-height: 0.95;
}

.calendar-kicker,
.calendar-metric span,
.calendar-session-name,
.calendar-refresh,
.calendar-status,
.calendar-action {
    font: var(--text-label-caps);
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.calendar-kicker,
.calendar-metric span,
.calendar-session-day {
    color: var(--pc-on-surface-muted);
}

.calendar-command-panel strong,
.calendar-metric strong {
    color: var(--pc-on-surface);
    font: var(--text-data);
    font-size: 1.15rem;
}

.calendar-command-panel > span:last-child {
    color: var(--pc-on-surface-variant);
    font: var(--text-label);
    line-height: 1.45;
}

#next-session-title {
    display: grid;
    gap: 4px;
}

#next-session-title span {
    color: var(--pc-on-surface);
    font: var(--text-h3);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

#next-session-title em {
    color: var(--pc-primary);
    font: var(--text-label);
    font-style: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.calendar-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: var(--space-4);
    border: 1px solid var(--pc-border);
    background: var(--pc-border);
}

.calendar-metric {
    border: 0;
    min-height: 78px;
    background: color-mix(in srgb, var(--pc-bg) 82%, var(--pc-low));
}

.calendar-refresh {
    width: 112px;
    height: var(--console-control-height, 36px);
    border: 1px solid var(--pc-border-strong);
    background: var(--pc-low);
    color: var(--pc-on-surface);
    padding: 0 var(--space-4);
    cursor: pointer;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color var(--trans-fast), background var(--trans-fast), color var(--trans-fast);
}

.control-group--action {
    min-width: 112px;
}

.control-label-spacer {
    display: block;
    height: 0.6rem;
    line-height: 1;
}

.calendar-refresh:hover,
.calendar-refresh:focus-visible {
    border-color: var(--pc-primary);
    background: var(--pc-mid);
    outline: none;
}

.calendar-refresh[disabled] {
    cursor: wait;
    color: var(--pc-on-surface-muted);
}

.calendar-refresh[data-state="cooldown"] {
    cursor: not-allowed;
}

.calendar-panel {
    padding: var(--space-5);
}

.calendar-panel-header {
    align-items: flex-start;
    gap: var(--space-4);
}

.calendar-filter {
    flex-shrink: 0;
}

.calendar-list {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.calendar-event {
    display: grid;
    grid-template-columns: 88px minmax(260px, 0.88fr) minmax(420px, 1.32fr) 138px;
    align-items: stretch;
    gap: 1px;
    background: var(--pc-border);
    border: 1px solid var(--pc-border);
}

.calendar-event > * {
    background: color-mix(in srgb, var(--pc-bg) 82%, var(--pc-low));
    padding: var(--space-4);
}

.calendar-event.is-next > *,
.calendar-event.is-live > * {
    background: color-mix(in srgb, var(--pc-bg) 76%, var(--pc-mid));
}

.calendar-date {
    display: grid;
    align-content: center;
    gap: var(--space-1);
    text-align: center;
}

.calendar-date strong {
    color: var(--pc-on-surface);
    font: var(--text-data);
    font-size: 1.72rem;
    line-height: 1;
}

.calendar-date span {
    color: var(--pc-on-surface-muted);
    font: var(--text-label-caps);
    letter-spacing: 0.12em;
}

.calendar-race {
    display: grid;
    gap: var(--space-2);
    align-content: center;
}

.calendar-race h4 {
    margin: 0;
    color: var(--pc-on-surface);
    font: var(--text-h3);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.calendar-location {
    display: grid;
    gap: 3px;
    color: var(--pc-on-surface-variant);
    font: var(--text-label);
    line-height: 1.35;
}

.calendar-circuit {
    color: var(--pc-on-surface);
}

.calendar-place {
    color: var(--pc-on-surface-muted);
}

.calendar-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.calendar-status,
.calendar-format {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 2px var(--space-2);
    border: 1px solid var(--pc-border);
    color: var(--pc-on-surface-muted);
    background: var(--pc-bg);
    font-size: 0.62rem;
}

.calendar-status.is-live,
.calendar-session.is-live {
    border-color: color-mix(in srgb, var(--pc-success) 60%, var(--pc-border));
    color: var(--pc-success);
}

.calendar-status.is-next,
.calendar-session.is-next {
    border-color: color-mix(in srgb, var(--pc-primary) 58%, var(--pc-border));
    color: var(--pc-on-surface);
}

.calendar-session.is-live {
    background: color-mix(in srgb, var(--pc-success) 10%, var(--pc-low));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pc-success) 55%, var(--pc-border));
}

.calendar-session.is-next {
    background: color-mix(in srgb, var(--pc-primary) 12%, var(--pc-low));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pc-primary) 55%, var(--pc-border));
}

.calendar-status.is-complete,
.calendar-session.is-complete {
    color: var(--pc-on-surface-muted);
}

.calendar-sessions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    gap: 1px;
    padding: 1px;
    background: color-mix(in srgb, var(--pc-border) 78%, transparent);
}

.calendar-session {
    min-height: 72px;
    padding: var(--space-3);
    border: 0;
    background: color-mix(in srgb, var(--pc-low) 78%, var(--pc-bg));
    display: grid;
    gap: 4px;
    align-content: center;
}

.calendar-session-name {
    color: var(--pc-on-surface);
    font-size: 0.68rem;
    line-height: 1.2;
}

.calendar-session-day {
    font: var(--text-label);
    line-height: 1.25;
}

.calendar-session-clock {
    color: var(--pc-on-surface);
    font: var(--text-data);
    font-size: 0.94rem;
    line-height: 1;
}

.calendar-session.is-complete {
    opacity: 0.54;
}

.calendar-actions {
    display: flex;
    align-items: center;
    justify-content: center;
}

.calendar-action {
    width: 100%;
    text-align: center;
    border: 1px solid var(--pc-border);
    color: var(--pc-on-surface);
    background: var(--pc-low);
    padding: var(--space-2);
    font-size: 0.62rem;
    line-height: 1.35;
    transition: border-color var(--trans-fast), background var(--trans-fast);
}

.calendar-action:hover,
.calendar-action:focus-visible {
    border-color: var(--pc-primary);
    background: var(--pc-mid);
    outline: none;
}

.calendar-action.is-disabled {
    color: var(--pc-on-surface-muted);
    cursor: default;
    pointer-events: none;
}

.calendar-empty {
    color: var(--pc-on-surface-muted);
    font: var(--text-label);
    padding: var(--space-6);
    border: 1px dashed var(--pc-border);
    background: var(--pc-bg);
}

@media (max-width: 1200px) {
    .calendar-command-grid,
    .calendar-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .calendar-event {
        grid-template-columns: 84px minmax(240px, 0.9fr) minmax(320px, 1.2fr);
    }

    .calendar-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .calendar-action {
        width: auto;
        min-width: 150px;
    }
}

@media (max-width: 760px) {
    .calendar-command-grid,
    .calendar-metrics {
        grid-template-columns: 1fr;
    }

    .calendar-panel-header {
        flex-direction: column;
    }

    .calendar-filter {
        width: 100%;
        overflow-x: auto;
    }

    .calendar-event {
        grid-template-columns: 1fr;
    }

    .calendar-event > * {
        padding: var(--space-3);
    }

    .calendar-date {
        text-align: left;
        grid-template-columns: auto auto 1fr;
        align-items: baseline;
        gap: var(--space-2);
    }

    .calendar-date strong {
        font-size: 1.4rem;
    }

    .calendar-sessions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .calendar-command-panel--wide strong {
        font-size: 1.9rem;
    }
}

@media (max-width: 520px) {
    .calendar-sessions {
        grid-template-columns: 1fr;
    }

    .calendar-action {
        width: 100%;
    }
}
