/**
 * Booking form calendar + time slots (all LatePoint booking forms: /book/,
 * the customer portal and lightboxes). Loaded after style.css, book-theme.css
 * and portal-theme.css.
 *
 * 1. Next/prev-month days that CAN be booked (e.g. 1–3 Oct at the end of the
 *    September grid) look like any other bookable day; only unavailable or
 *    passed days stay faded. A picked one keeps a white number on the red box.
 * 2. No hover effects on days or time slots. LatePoint zooms the day number
 *    (scale 1.2), pops a slots tooltip and thickens the status bar; the theme
 *    added a red/glowing box on top. On phones the hover "sticks" after a tap
 *    so two days looked picked. Only the picked (.selected) state changes now.
 */

/* ---- 1. Bookable next/prev-month days at full strength ---------------- */

html body .latepoint-w .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period) .os-day-box,
html body .os-booking-form-element .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period) .os-day-box,
html body .latepoint-lightbox-w .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period) .os-day-box {
	opacity: 1 !important;
}
html body .latepoint-w .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected) .os-day-box .os-day-number,
html body .os-booking-form-element .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected) .os-day-box .os-day-number,
html body .latepoint-lightbox-w .os-monthly-calendar-days .os-day:is(.os-month-next, .os-month-prev):not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected) .os-day-box .os-day-number {
	opacity: 1 !important;
	color: var(--text-primary, #121826) !important;
}
html body .latepoint-w .os-monthly-calendar-days .os-day.selected .os-day-box .os-day-number,
html body .os-booking-form-element .os-monthly-calendar-days .os-day.selected .os-day-box .os-day-number,
html body .latepoint-lightbox-w .os-monthly-calendar-days .os-day.selected .os-day-box .os-day-number {
	opacity: 1 !important;
	color: #ffffff !important;
}

/* ---- 2. No hover: LatePoint's own effects ----------------------------- */

html body .os-monthly-calendar-days .os-day:hover .os-day-box .os-day-number {
	transform: none !important;
}
html body .os-monthly-calendar-days .os-day .os-available-slots-tooltip {
	display: none !important;
}
html body .os-monthly-calendar-days .os-day:hover .os-day-status {
	height: 4px !important;
	left: 8px !important;
	right: 8px !important;
}

/* ---- 2. No hover: theme effects on un-picked days (same look as at rest) */

/* /book/ page */
html body.has-booking-hero:not(.has-customer-dashboard) .lqb .lqb-form.booking-area .latepoint-w .latepoint-booking-form-element .os-monthly-calendar-days .os-day:not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected):not(.os-today):hover .os-day-box {
	background: #ffffff !important;
	border: 1.5px solid #e2e8f0 !important;
	box-shadow: none !important;
}
html body.has-booking-hero:not(.has-customer-dashboard) .lqb .lqb-form.booking-area .latepoint-w .latepoint-booking-form-element .os-monthly-calendar-days .os-day.os-today:not(.selected):hover .os-day-box {
	background: transparent !important;
	border: 1.5px dashed #94a3b8 !important;
	box-shadow: none !important;
}

/* Portal / lightbox booking forms (style.css base look) */
html body .latepoint-w .latepoint-booking-form-element .os-monthly-calendar-days .os-day:not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected):hover .os-day-box,
html body .latepoint-lightbox-w .latepoint-booking-form-element .os-monthly-calendar-days .os-day:not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected):hover .os-day-box {
	background: rgba(26, 91, 163, 0.05) !important;
	border-color: rgba(26, 91, 163, 0.15) !important;
	box-shadow: none !important;
}

/* Number keeps its resting colour on every un-picked day */
html body .os-monthly-calendar-days .os-day:not(.os-not-available):not(.os-day-passed):not(.os-not-in-allowed-period):not(.selected):hover .os-day-box .os-day-number {
	color: var(--text-primary, #121826) !important;
}
html body .os-monthly-calendar-days .os-day:is(.os-not-available, .os-day-passed, .os-not-in-allowed-period):not(.selected):hover .os-day-box .os-day-number {
	color: var(--text-muted, #94a3b8) !important;
}

/* ---- 2. No hover: time slots ----------------------------------------- */

html body.has-booking-hero:not(.has-customer-dashboard) .lqb .lqb-form.booking-area .latepoint-w .latepoint-booking-form-element .timeslots .dp-timepicker-trigger:not(.is-booked):not(.is-off):not(.selected):hover {
	background: #ffffff !important;
	border-color: #e2e8f0 !important;
	color: #0f172a !important;
	box-shadow: none !important;
}
