.birthday-picker-control { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; align-items: center; min-width: 0; }
.birthday-picker-control > input:not(.birthday-picker-source) { min-width: 0; width: 100%; }
.birthday-picker-control > .birthday-picker-open,
.birthday-picker-control > .birthday-picker-clear { margin: 0; padding: 10px 12px; min-height: 42px; border: 1px solid #e4dbcf; border-radius: 10px; background: #fffdf9; color: #315d4d; white-space: nowrap; font-size: 14px; font-weight: 600; cursor: pointer; }
.birthday-picker-control > button:hover { background: #edf2eb; }
.birthday-picker-control > button:disabled { cursor: default; color: #9a958d; background: #f6f3ed; }
.birthday-picker-control > button:focus-visible,
.birthday-calendar select:focus-visible,
.birthday-calendar .flatpickr-day:focus-visible { outline: 3px solid #315d4d; outline-offset: 2px; }
.birthday-picker-source { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0); clip-path: inset(50%); pointer-events: none; }
.birthday-picker-error { display: block; margin-top: 7px; color: #a8352b; font-size: 14px; line-height: 1.5; }
.birthday-picker-error[hidden] { display: none; }
.birthday-picker-control [aria-invalid="true"] { border-color: #b83b2d; }
.birthday-calendar.flatpickr-calendar { position: absolute; z-index: 50; padding: 8px; box-sizing: border-box; color: #2e2b25; background: #fffdf9; border: 1px solid #e4dbcf; border-radius: 14px; box-shadow: 0 8px 32px #312d252b; overflow: auto; }
.birthday-calendar.flatpickr-calendar::before,
.birthday-calendar.flatpickr-calendar::after { display: none; }
.birthday-calendar .flatpickr-months { align-items: center; min-height: 48px; }
.birthday-calendar .flatpickr-current-month { display: flex; justify-content: center; align-items: center; gap: 6px; left: 32px; width: calc(100% - 64px); padding: 3px 0; height: 42px; }
.birthday-calendar .flatpickr-month { height: 46px; }
.birthday-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.birthday-calendar .birthday-year { box-sizing: border-box; width: auto; min-width: 78px; height: 38px; padding: 4px 5px; margin: 0; border: 1px solid #ded5c9; border-radius: 7px; background: #fffdf9; color: #2e2b25; font-size: 15px; font-weight: 600; cursor: pointer; }
.birthday-calendar .birthday-year { order: -1; min-width: 104px; }
.birthday-calendar .birthday-native-year { display: none !important; }
.birthday-calendar .flatpickr-prev-month,
.birthday-calendar .flatpickr-next-month { top: 13px; height: 34px; padding: 8px; }
.birthday-calendar .flatpickr-innerContainer,
.birthday-calendar .flatpickr-rContainer,
.birthday-calendar .flatpickr-days { width: 100%; min-width: 0; }
.birthday-calendar .dayContainer { width: 100%; min-width: 0; max-width: none; justify-content: flex-start; }
.birthday-calendar .flatpickr-weekdays { height: 34px; }
.birthday-calendar span.flatpickr-weekday { color: #776e63; font-size: 13px; }
.birthday-calendar .flatpickr-day { flex-basis: 14.285714%; max-width: 14.285714%; height: 40px; line-height: 38px; border-radius: 8px; font-size: 14px; }
.birthday-calendar .flatpickr-day.selected,
.birthday-calendar .flatpickr-day.selected:hover,
.birthday-calendar .flatpickr-day.selected:focus { background: #315d4d; border-color: #315d4d; color: #fff; }
.birthday-calendar .flatpickr-day.today { border-color: #a49371; }
.birthday-calendar .flatpickr-day:hover { background: #edf2eb; border-color: #edf2eb; }
@media (max-width: 480px) {
  .birthday-picker-control { grid-template-columns: minmax(0, 1fr) auto; }
  .birthday-picker-control > input:not(.birthday-picker-source) { grid-column: 1 / -1; }
  .birthday-picker-control > button { width: 100%; }
}
