.selected-calendar-day {
    background-color: rgba(37, 99, 235, 0.12) !important;
    outline: 2px solid rgb(37, 99, 235);
    outline-offset: -2px;
}

.fc .cancelled-event {
    background-color: #dc2626 !important;
    border-color: #b91c1c !important;
}

.fc .cancelled-event td,
.fc .cancelled-event a,
.fc .cancelled-event .fc-list-event-title,
.fc .cancelled-event .fc-list-event-time {
    color: white !important;
}

.fc .cancelled-event .fc-list-event-title {
    text-decoration: line-through;
    font-weight: 700;
}

/* Mobile calendar cleanup */
@media (max-width: 640px) {
    .fc {
        font-size: 0.75rem;
    }

    /* Keep prev / title / next on one row */
    .fc .fc-toolbar {
        display: grid;
        grid-template-columns: 44px 1fr 44px;
        align-items: center;
        gap: 0.5rem;
    }

    .fc .fc-toolbar-chunk {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .fc .fc-toolbar-chunk:first-child {
        justify-content: start;
    }

    .fc .fc-toolbar-chunk:last-child {
        justify-content: end;
    }

    .fc .fc-toolbar-title {
        font-size: 1.125rem;
        text-align: center;
        white-space: nowrap;
    }

    .fc .fc-button {
        padding: 0.25rem 0.55rem;
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .fc .fc-daygrid-day-frame {
        min-height: 42px;
        padding: 1px;
    }

    .fc .fc-daygrid-day-number {
        font-size: 0.75rem;
        padding: 2px;
    }

    .fc .fc-daygrid-day-events {
        min-height: 12px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 2px;
        margin-top: 0;
    }

    /* All-day/block events as full dots */
    .fc .fc-daygrid-block-event {
        display: inline-block;
        width: 8px;
        height: 8px;
        min-width: 8px;
        min-height: 8px;
        border-radius: 9999px;
        padding: 0;
        margin: 1px;
        overflow: hidden;
    }

    .fc .fc-daygrid-block-event .fc-event-main,
    .fc .fc-daygrid-block-event .fc-event-title,
    .fc .fc-daygrid-block-event .fc-event-time {
        display: none;
    }

    /* Timed events as full dots */
    .fc .fc-daygrid-dot-event {
        display: inline-flex;
        width: 8px;
        height: 8px;
        min-width: 8px;
        min-height: 8px;
        border-radius: 9999px;
        padding: 0;
        margin: 1px;
        overflow: hidden;
        align-items: center;
        justify-content: center;
    }

    .fc .fc-daygrid-dot-event .fc-event-time,
    .fc .fc-daygrid-dot-event .fc-event-title {
        display: none;
    }

    .fc .fc-daygrid-event-dot {
        width: 8px;
        height: 8px;
        border-radius: 9999px;
        border: none;
        margin: 0;
        background-color: currentColor;
    }

    .fc .fc-daygrid-more-link {
        font-size: 0.65rem;
    }

    .fc .cancelled-event,
    .fc .cancelled-event .fc-daygrid-event-dot {
        background-color: #dc2626 !important;
        border-color: #dc2626 !important;
    }

    .fc .fc-header-toolbar {
        margin-bottom: 4px !important;
    }
}
