/* WBM calendar hard visual fix v28 */
body .wbm-rental-calendar,
body .wbm-availability-calendar,
body .wbm-modal-calendar,
body .wbm-rental-modal-v17,
body .wbm-rental-modal {
    --wbm-cal-green-bg: #e8f7ee;
    --wbm-cal-green-border: #20a455;
    --wbm-cal-green-text: #0f6b35;
    --wbm-cal-red-bg: #fdeaea;
    --wbm-cal-red-border: #dc2626;
    --wbm-cal-red-text: #991b1b;
}

/* Hide old customer-facing availability labels */
body .wbm-calendar-day small,
body .wbm-calendar-day .wbm-calendar-status,
body .wbm-calendar-day .wbm-day-status,
body .wbm-calendar-day .wbm-availability-text,
body .wbm-calendar-day .wbm-stock-text,
body .wbm-rental-day small,
body .wbm-rental-day .wbm-calendar-status,
body .wbm-rental-day .wbm-day-status,
body .wbm-rental-day .wbm-availability-text,
body .wbm-rental-day .wbm-stock-text {
    display: none !important;
}

/* Available days - match multiple possible class names */
body .wbm-calendar-day.is-available,
body .wbm-calendar-day.available,
body .wbm-calendar-day.wbm-available,
body .wbm-calendar-day[data-status="available"],
body .wbm-calendar-day[data-available="1"],
body .wbm-rental-day.is-available,
body .wbm-rental-day.available,
body .wbm-rental-day.wbm-available,
body .wbm-rental-day[data-status="available"],
body .wbm-rental-day[data-available="1"] {
    background: var(--wbm-cal-green-bg) !important;
    border: 2px solid var(--wbm-cal-green-border) !important;
    color: var(--wbm-cal-green-text) !important;
    box-shadow: inset 0 0 0 1px rgba(32,164,85,.08) !important;
}

/* Unavailable days - match multiple possible class names */
body .wbm-calendar-day.is-unavailable,
body .wbm-calendar-day.unavailable,
body .wbm-calendar-day.not-available,
body .wbm-calendar-day.wbm-unavailable,
body .wbm-calendar-day.booked,
body .wbm-calendar-day.full,
body .wbm-calendar-day[data-status="unavailable"],
body .wbm-calendar-day[data-status="booked"],
body .wbm-calendar-day[data-available="0"],
body .wbm-rental-day.is-unavailable,
body .wbm-rental-day.unavailable,
body .wbm-rental-day.not-available,
body .wbm-rental-day.wbm-unavailable,
body .wbm-rental-day.booked,
body .wbm-rental-day.full,
body .wbm-rental-day[data-status="unavailable"],
body .wbm-rental-day[data-status="booked"],
body .wbm-rental-day[data-available="0"] {
    background: var(--wbm-cal-red-bg) !important;
    border: 2px solid var(--wbm-cal-red-border) !important;
    color: var(--wbm-cal-red-text) !important;
    opacity: 1 !important;
}

body .wbm-calendar-day.is-unavailable,
body .wbm-calendar-day.unavailable,
body .wbm-calendar-day.not-available,
body .wbm-calendar-day.wbm-unavailable,
body .wbm-calendar-day.booked,
body .wbm-calendar-day.full,
body .wbm-calendar-day[data-status="unavailable"],
body .wbm-calendar-day[data-status="booked"],
body .wbm-calendar-day[data-available="0"],
body .wbm-rental-day.is-unavailable,
body .wbm-rental-day.unavailable,
body .wbm-rental-day.not-available,
body .wbm-rental-day.wbm-unavailable,
body .wbm-rental-day.booked,
body .wbm-rental-day.full,
body .wbm-rental-day[data-status="unavailable"],
body .wbm-rental-day[data-status="booked"],
body .wbm-rental-day[data-available="0"] {
    cursor: not-allowed !important;
}

/* Legend */
body .wbm-calendar-legend-v28 {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    align-items: center;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f7f7f7;
    font-size: 13px;
    color: #333;
}
body .wbm-calendar-legend-v28__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
}
body .wbm-calendar-legend-v28__dot {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    display: inline-block;
    border: 2px solid currentColor;
}
body .wbm-calendar-legend-v28__dot--green {
    background: var(--wbm-cal-green-bg, #e8f7ee);
    color: var(--wbm-cal-green-border, #20a455);
}
body .wbm-calendar-legend-v28__dot--red {
    background: var(--wbm-cal-red-bg, #fdeaea);
    color: var(--wbm-cal-red-border, #dc2626);
}