.rv-cal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: 13px;
}

.rv-cal-title {
    font-weight: 600;
}

.rv-cal-nav {
    background: #f3f4f6;
    border: 1px solid #d0d4dc;
    border-radius: 999px;
    padding: 2px 8px;
    cursor: pointer;
    font-size: 12px;
}

.rv-cal-nav:hover {
    background: #e2e6ef;
}

.rv-cal {
    border-collapse: separate;
    border-spacing: 4px;
    width: 100%;
    max-width: 280px;
    font-size: 12px;
}

.rv-cal th {
    text-align: center;
    color: #6b7280;
    font-weight: 500;
}

.rv-cal td {
    text-align: center;
    width: 32px;
    height: 28px;
}

.rv-cal-day {
    border-radius: 6px;
    padding: 4px 0;
    cursor: pointer;
    box-shadow: 0 0 0 1px #e5e7eb;
    transition: background 0.15s, box-shadow 0.15s, transform 0.05s;
}

.rv-cal-day.rv-available {
    background: #ecfdf3;
    color: #166534;
}

.rv-cal-day.rv-booked {
    background: #fee2e2;
    color: #991b1b;
    cursor: not-allowed;
    opacity: 0.7;
}

.rv-cal-day.rv-maint {
    background: #fef3c7;
    color: #92400e;
    cursor: not-allowed;
    opacity: 0.7;
}

.rv-cal-day.rv-event {
    background: #e0f2fe;
    color: #1d4ed8;
}

.rv-cal-day.rv-available:hover,
.rv-cal-day.rv-event:hover {
    box-shadow: 0 0 0 2px #2563eb;
    transform: translateY(-1px);
}

.rv-cal-note {
    font-size: 12px;
    color: #4b5563;
    margin: 4px 0 0;
}
