/* Compact calendar shared by the homepage, search and both event editors. */
.flatpickr-calendar.dv-calendar {
    box-sizing: border-box; width: 298px !important; max-width: calc(100vw - 16px);
    padding: 8px; border-radius: 14px !important;
    background: var(--bg-secondary, #fff) !important;
    color: var(--text-primary, #15343d); font-family: var(--font-family-base, sans-serif) !important;
    border: 1px solid var(--border-primary, #bacfcd) !important;
    box-shadow: 0 12px 36px rgb(0 0 0 / 18%) !important;
}
.dv-calendar .flatpickr-months { align-items: center; margin-bottom: 4px; }
.dv-calendar .flatpickr-months .flatpickr-month { height: 44px; }
.dv-calendar .flatpickr-current-month { padding-top: 9px; font-size: 1rem; }
.dv-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { font: inherit; font-weight: 700; border-radius: 6px; padding: 2px; }
.dv-calendar .flatpickr-monthDropdown-months option { background: var(--bg-secondary, #fff); color: var(--text-primary, #15343d); }
.dv-calendar .flatpickr-months :is(.flatpickr-prev-month, .flatpickr-next-month) { top: 8px; width: 40px; height: 44px; display: grid; place-items: center; padding: 8px; }
.dv-calendar .flatpickr-months .flatpickr-prev-month { left: 4px; }
.dv-calendar .flatpickr-months .flatpickr-next-month { right: 4px; }
.dv-calendar :is(.flatpickr-innerContainer, .flatpickr-rContainer, .flatpickr-days, .dayContainer) { width: 280px !important; min-width: 280px; max-width: 280px; }
.dv-calendar .flatpickr-weekdays { height: 32px; }
.dv-calendar span.flatpickr-weekday { color: var(--text-secondary, #526970) !important; background: transparent !important; font-size: .75rem; font-weight: 600; }
.dv-calendar .flatpickr-day { flex-basis: 40px; max-width: 40px; width: 40px; height: 40px; line-height: 38px; border-radius: 9px; font-size: .9rem; color: var(--text-primary, #15343d) !important; }
.dv-calendar .flatpickr-day:is(.prevMonthDay, .nextMonthDay, .flatpickr-disabled) { color: var(--text-secondary, #526970) !important; opacity: .55; }
.dv-calendar .flatpickr-day.today { border-color: var(--primary, #007a72); }
.dv-calendar .flatpickr-day:is(.selected, .startRange, .endRange) { background: var(--primary, #007a72) !important; border-color: var(--primary, #007a72) !important; color: var(--text-on-primary, #fff) !important; opacity: 1; font-weight: 700; }
.dv-calendar .flatpickr-day:focus-visible, .dv-calendar :is(select, input):focus-visible { outline: 2px solid var(--primary, #007a72); outline-offset: -2px; }
.dv-calendar .flatpickr-time { margin-top: 8px; height: 46px; max-height: 46px; border-top-color: var(--border-primary, #bacfcd) !important; }
.dv-calendar .flatpickr-time input { font-size: 1rem; font-weight: 650; }
.dv-calendar .flatpickr-time input:hover, .dv-calendar .flatpickr-time input:focus { background: var(--bg-hover, #eaf4f1); }
.dv-date-input { cursor: pointer; min-width: 0; }
#home-search-date-display { width: 100%; }

/* A phone popover stays inside the viewport, including its time controls. */
@media (max-width: 600px) {
    .flatpickr-calendar.dv-calendar.open { position: fixed !important; inset: 50% auto auto 50% !important; transform: translate(-50%, -50%) !important; animation: none !important; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; }
    .flatpickr-calendar.dv-calendar:before, .flatpickr-calendar.dv-calendar:after { display: none; }
}
body.devents-portal .search-page .dv-date-picker__body fieldset { border: 0; padding: 0; min-width: 0; display: grid; gap: 10px; }
body.devents-portal .search-page .dv-date-picker__body legend { padding: 0 0 8px; color: var(--text-secondary); }
body.devents-portal .search-page .dv-date-picker__body input.dv-date-input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border-primary); border-radius: 9px; background: var(--bg-input); color: var(--text-primary); font: inherit; }
