/* Shared date fields and calendar popup; independent of page/modal placement. */
.flatpickr { position: relative; }
.flatpickr [data-input] { padding-right: 36px; }
.flatpickr [data-toggle] { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); cursor: pointer; padding: 5px; }
.flatpickr .icon_calendar { width: 17px; height: 17px; opacity: .65; }
.flatpickr-calendar.ui-calendar { background: var(--ui-surface, #fff); color: var(--ui-text, #25253c); border: 1px solid var(--ui-line, #e3e3ee); border-radius: 12px; box-shadow: 0 12px 35px #20203b25; font-family: var(--ui-font, system-ui); padding: 8px 0 0; z-index: 1090; }
.ui-calendar .flatpickr-months { padding-bottom: 6px; }
.ui-calendar .flatpickr-current-month { font-size: 14px; }
.ui-calendar .flatpickr-weekday { color: var(--ui-muted, #737389); font-weight: 600; }
.ui-calendar .flatpickr-day { border-radius: 7px; }
.ui-calendar .flatpickr-day:hover { background: var(--ui-soft, #f0ecfa); border-color: transparent; }
.ui-calendar .flatpickr-day.selected { background: var(--ui-accent, #6550c4); border-color: var(--ui-accent, #6550c4); color: white; }
.ui-calendar .flatpickr-day.today { border-color: var(--ui-accent, #6550c4); }
.ui-calendar :is(button,select,input,.flatpickr-day):focus-visible { outline: 2px solid var(--ui-accent, #6550c4); outline-offset: -2px; }
.ui-calendar-footer { display: flex; justify-content: space-between; padding: 8px 12px; border-top: 1px solid var(--ui-line, #e3e3ee); }
.ui-calendar-footer button { border: 0; background: transparent; color: var(--ui-accent, #6550c4); font: 600 12px var(--ui-font, system-ui); padding: 7px 10px; border-radius: 6px; cursor: pointer; }
.ui-calendar-footer button:hover { background: var(--ui-soft, #f0ecfa); }
.ui-calendar-footer button:disabled { opacity: .4; cursor: default; }
@media print { .flatpickr-calendar { display: none !important; } }
