/* Rhythm-branded date and time picker (flatpickr theme). Shared by the site and BuddyCMS. */
.flatpickr-calendar {
  --dp-ink: #0a1736; --dp-slate: #5a6880; --dp-hair: #e2e7ee; --dp-mist: #f3f5f8; --dp-cyan: #38c3de;
  font-family: "Barlow", system-ui, sans-serif; width: 316px; padding: 0; border: 1px solid var(--dp-hair); border-radius: 16px;
  background: #fff; box-shadow: 0 30px 60px -24px rgba(10, 23, 54, .45); overflow: hidden;
}
.flatpickr-calendar::before, .flatpickr-calendar::after { display: none; }
.flatpickr-calendar.open { margin-top: 6px; }
.flatpickr-calendar.hasTime.noCalendar { width: 220px; }
/* Header: navy band with the logo stripe */
.flatpickr-months { position: relative; background: var(--dp-ink); padding: 10px 8px 12px; align-items: center; }
.flatpickr-months::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, #38c3de 0 33.3%, #94c93d 33.3% 66.6%, #ec0c8c 66.6%); }
.flatpickr-months .flatpickr-month { height: 40px; color: #fff; fill: #fff; }
.flatpickr-current-month { font-size: 1.05rem; padding-top: 8px; display: flex; align-items: center; justify-content: center; gap: 6px; }
.flatpickr-current-month .flatpickr-monthDropdown-months { font: italic 800 1.1rem "Exo 2", "Barlow", sans-serif; color: #fff; background: transparent; border-radius: 8px; padding: 2px 4px; -webkit-appearance: none; appearance: none; }
.flatpickr-current-month .flatpickr-monthDropdown-months:hover { background: rgba(255, 255, 255, .1); }
.flatpickr-current-month .flatpickr-monthDropdown-months option { color: var(--dp-ink); background: #fff; font-style: normal; font-family: "Barlow", sans-serif; }
.flatpickr-current-month input.cur-year { font: italic 800 1.1rem "Exo 2", "Barlow", sans-serif; color: #fff; padding-left: 4px; }
.flatpickr-current-month .numInputWrapper { width: 5.2ch; }
.flatpickr-current-month .numInputWrapper span { display: none; }
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { top: 12px; height: 34px; width: 34px; padding: 9px; border-radius: 50%; color: #fff; fill: #fff; }
.flatpickr-months .flatpickr-prev-month { left: 10px; }
.flatpickr-months .flatpickr-next-month { right: 10px; }
.flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover { background: rgba(255, 255, 255, .12); }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: var(--dp-cyan); }
.flatpickr-months .flatpickr-prev-month svg, .flatpickr-months .flatpickr-next-month svg { width: 14px; height: 14px; }
/* Days */
.flatpickr-innerContainer { padding: 10px 10px 6px; }
.flatpickr-rContainer, .flatpickr-days, .dayContainer { width: 294px; min-width: 294px; max-width: 294px; }
.flatpickr-weekdays { height: 30px; }
span.flatpickr-weekday { font-size: .76rem; font-weight: 700; color: var(--dp-slate); }
.flatpickr-day { max-width: 42px; height: 40px; line-height: 38px; margin: 1px 0; border-radius: 10px; font-weight: 600; font-size: .95rem; color: var(--dp-ink); border: 1px solid transparent; }
.flatpickr-day:hover, .flatpickr-day:focus { background: var(--dp-mist); border-color: var(--dp-hair); }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color: #b6c0ce; font-weight: 500; }
.flatpickr-day.today { border-color: var(--dp-cyan); color: var(--dp-ink); }
.flatpickr-day.today:hover { background: #e9f8fc; border-color: var(--dp-cyan); color: var(--dp-ink); }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus,
.flatpickr-day.startRange, .flatpickr-day.endRange { background: var(--dp-ink); border-color: var(--dp-ink); color: #fff; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--dp-cyan); }
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: #d3d9e2; background: none; }
/* Footer: Today / Clear */
.dp-foot { display: flex; justify-content: space-between; gap: 8px; padding: 6px 12px 12px; }
.dp-foot button { font: 600 .85rem "Barlow", sans-serif; color: var(--dp-ink); background: #fff; border: 1px solid #cfd7e2; border-radius: 999px; padding: 7px 14px; cursor: pointer; }
.dp-foot button:hover { border-color: var(--dp-ink); background: var(--dp-mist); }
/* Time */
.flatpickr-time { border-top: 1px solid var(--dp-hair) !important; height: 52px; max-height: 52px; line-height: 52px; }
.flatpickr-calendar.noCalendar .flatpickr-time { border-top: 0 !important; }
.flatpickr-time input { font: 700 1.15rem "Barlow", sans-serif; color: var(--dp-ink); }
.flatpickr-time input:hover, .flatpickr-time input:focus, .flatpickr-time .flatpickr-am-pm:hover, .flatpickr-time .flatpickr-am-pm:focus { background: var(--dp-mist); }
.flatpickr-time .flatpickr-am-pm { font: 700 1rem "Barlow", sans-serif; color: var(--dp-ink); }
.flatpickr-time .flatpickr-time-separator { color: var(--dp-slate); font-weight: 700; }
.numInputWrapper span.arrowUp::after { border-bottom-color: var(--dp-slate); }
.numInputWrapper span.arrowDown::after { border-top-color: var(--dp-slate); }
/* The visible input that replaces the native one */
input.dp-input { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6880' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='15' rx='2'/%3E%3Cpath d='M4 9h16M8 3v4M16 3v4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; padding-right: 2.6rem !important; }
input.dp-input.dp-time { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6880' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E"); }
