/**
 * Flatpickr date pickers (wizards, search bars, popups) follow the Brand button accent, like the
 * time list picker. Calendar & popups → Calendar styles the archive calendar only, so its --bk-cal-*
 * tokens are re-mapped here instead of leaking into every date picker.
 */

.flatpickr-calendar {
	--bk-cal-item-bg: var(--bk-btn-accent, #007aff);
	--bk-cal-item-text: var(--bk-btn-text, #fff);
	--bk-cal-item-rgb: var(--bk-btn-accent-rgb, 0, 122, 255);
	--bk-cal-today-bg: var(--bk-btn-accent, #007aff);
	--bk-cal-date-text: var(--bk-btn-text, #fff);
	accent-color: var(--bk-cal-item-bg, #007aff);
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, 16px);
	color: var(--bk-body-color, inherit);
}

.flatpickr-calendar .flatpickr-months .flatpickr-month,
.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar .flatpickr-current-month input.cur-year,
.flatpickr-calendar .flatpickr-current-month .cur-month {
	font-family: var(--bk-heading-font-family, inherit);
}

.flatpickr-calendar .flatpickr-weekday {
	font-family: inherit;
	color: var(--bk-body-color, inherit);
}

.flatpickr-calendar .flatpickr-day {
	font-family: inherit;
}

.flatpickr-calendar ::selection {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.28);
	color: inherit;
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover {
	color: var(--bk-cal-item-bg, #007aff);
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover svg {
	fill: var(--bk-cal-item-bg, #007aff) !important;
}

.flatpickr-calendar .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange) {
	border-color: var(--bk-cal-today-bg, #007aff);
}

.flatpickr-calendar .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange):hover,
.flatpickr-calendar .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange):focus {
	background: var(--bk-cal-today-bg, #007aff);
	border-color: var(--bk-cal-today-bg, #007aff);
	color: var(--bk-cal-date-text, #fff);
}

/* Range strip between start/end */
.flatpickr-calendar .flatpickr-day.inRange,
.flatpickr-calendar .flatpickr-day.prevMonthDay.inRange,
.flatpickr-calendar .flatpickr-day.nextMonthDay.inRange,
.flatpickr-calendar .flatpickr-day.today.inRange,
.flatpickr-calendar .flatpickr-day.prevMonthDay.today.inRange,
.flatpickr-calendar .flatpickr-day.nextMonthDay.today.inRange {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.2);
	border-color: transparent;
	color: inherit;
	box-shadow: -5px 0 0 rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.2), 5px 0 0 rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.2);
}

.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange,
.flatpickr-calendar .flatpickr-day.selected.inRange,
.flatpickr-calendar .flatpickr-day.startRange.inRange,
.flatpickr-calendar .flatpickr-day.endRange.inRange,
.flatpickr-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar .flatpickr-day.startRange:focus,
.flatpickr-calendar .flatpickr-day.endRange:focus,
.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar .flatpickr-day.endRange:hover,
.flatpickr-calendar .flatpickr-day.selected.prevMonthDay,
.flatpickr-calendar .flatpickr-day.startRange.prevMonthDay,
.flatpickr-calendar .flatpickr-day.endRange.prevMonthDay,
.flatpickr-calendar .flatpickr-day.selected.nextMonthDay,
.flatpickr-calendar .flatpickr-day.startRange.nextMonthDay,
.flatpickr-calendar .flatpickr-day.endRange.nextMonthDay {
	background: var(--bk-cal-item-bg, #007aff);
	border-color: var(--bk-cal-item-bg, #007aff);
	color: var(--bk-cal-item-text, #fff);
	box-shadow: none;
}

.flatpickr-calendar .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
.flatpickr-calendar .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
.flatpickr-calendar .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
	box-shadow: -10px 0 0 var(--bk-cal-item-bg, #007aff);
}

.flatpickr-calendar .flatpickr-day.week.selected {
	box-shadow: -5px 0 0 var(--bk-cal-item-bg, #007aff), 5px 0 0 var(--bk-cal-item-bg, #007aff);
}

/* Hover / focus on normal days (not disabled) */
.flatpickr-calendar .flatpickr-day:hover:not(.flatpickr-disabled):not(.selected):not(.startRange):not(.endRange):not(.notAllowed),
.flatpickr-calendar .flatpickr-day.prevMonthDay:hover:not(.flatpickr-disabled):not(.notAllowed),
.flatpickr-calendar .flatpickr-day.nextMonthDay:hover:not(.flatpickr-disabled):not(.notAllowed) {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.12);
	border-color: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.35);
}

.flatpickr-calendar .flatpickr-day:focus:not(.flatpickr-disabled):not(.selected):not(.startRange):not(.endRange):not(.notAllowed) {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.15);
	border-color: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.4);
}

/* Multi-month range bridge */
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n + 2) .flatpickr-day.inRange:nth-child(7n + 1) {
	box-shadow: -2px 0 0 rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.2), 5px 0 0 rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.2);
}

/* Time-only picker — same accent / typography as date calendar */
.flatpickr-calendar.noCalendar {
	width: auto;
	min-width: 9rem;
	box-shadow: 0 8px 28px rgba(15, 20, 25, 0.14);
	border: 1px solid rgba(15, 20, 25, 0.08);
	border-radius: var(--bk-ui-field-radius);
	overflow: hidden;
}

.flatpickr-calendar.noCalendar .flatpickr-time {
	border-top: none;
	max-height: none;
	height: auto;
	line-height: inherit;
	padding: 0.65rem 0.75rem;
}

.flatpickr-calendar.noCalendar .flatpickr-time .numInputWrapper {
	height: auto;
}

.flatpickr-calendar.noCalendar .flatpickr-time input.flatpickr-hour,
.flatpickr-calendar.noCalendar .flatpickr-time input.flatpickr-minute,
.flatpickr-calendar.noCalendar .flatpickr-time input.flatpickr-second {
	font-family: var(--bk-heading-font-family, inherit);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--bk-body-color, inherit);
}

.flatpickr-calendar.noCalendar .flatpickr-time .flatpickr-time-separator,
.flatpickr-calendar.noCalendar .flatpickr-time .flatpickr-am-pm {
	font-family: inherit;
	font-weight: 600;
	color: var(--bk-body-color, inherit);
}

.flatpickr-calendar.noCalendar .flatpickr-time .numInputWrapper span.arrowUp:after {
	border-bottom-color: var(--bk-cal-item-bg, #007aff);
}

.flatpickr-calendar.noCalendar .flatpickr-time .numInputWrapper span.arrowDown:after {
	border-top-color: var(--bk-cal-item-bg, #007aff);
}

.flatpickr-calendar.noCalendar .flatpickr-time .numInputWrapper:hover {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.08);
}

.flatpickr-calendar.noCalendar .flatpickr-time input:focus,
.flatpickr-calendar.noCalendar .flatpickr-time .flatpickr-am-pm:focus {
	background: rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.12);
}

.flatpickr-calendar.noCalendar .flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-calendar.noCalendar .flatpickr-time .flatpickr-am-pm:focus {
	background: var(--bk-cal-item-bg, #007aff);
	color: var(--bk-cal-item-text, #fff);
}

/*
 * Flatpickr appends to <body> for search bars and wizards, so descendant
 * z-index rules (.rental-booking .flatpickr-calendar) never apply.
 */
body .flatpickr-calendar.open {
	z-index: 100100 !important;
	pointer-events: auto !important;
}

body .flatpickr-calendar.open .flatpickr-day:not(.flatpickr-disabled) {
	cursor: pointer;
	pointer-events: auto;
}

/* Rooms stay rules (assets/js/modules/wizards/hotel-stay-rules.js): closed nights and the note under the months.
   Rentals (rental-wizard.js): weekdays the open hours close, in a date range (one-day bookings disable them). */
.flatpickr-calendar .flatpickr-day.bs-hotel-day--closed:not(.selected):not(.startRange):not(.endRange),
.flatpickr-calendar .flatpickr-day.bs-rental-closed-day:not(.selected):not(.startRange):not(.endRange) {
	color: var(--bk-theme-muted, #8c8f94);
	text-decoration: line-through;
	background: repeating-linear-gradient(135deg, transparent 0 4px, rgba(0, 0, 0, 0.05) 4px 6px);
}

.flatpickr-calendar .bs-hotel-stay-rules {
	padding: 8px 12px 10px;
	font-size: 0.85em;
	line-height: 1.4;
	color: var(--bk-theme-muted, #646970);
	text-align: left;
	border-top: 1px solid var(--bk-theme-border, rgba(0, 0, 0, 0.08));
}

.flatpickr-calendar .bs-hotel-stay-rules.is-warning {
	color: var(--bk-body-color, #2c3338);
	font-weight: 600;
}
