/* All date controls retain native ISO inputs and keyboard editing. */
.dp-input-wrap { position: relative; display: flex; align-items: center; width: 100%; min-width: 0; }
.dp-input-wrap input.dp-enhanced-input { width: 100%; min-width: 0; padding-right: 3.1rem; }
.dp-enhanced-input::-webkit-calendar-picker-indicator { display: none; }
.dp-input-wrap .dp-open-button { position: absolute; right: .3rem; display: grid; place-items: center; width: 2.45rem; height: 2.45rem; padding: .45rem; border: 0; border-radius: .6rem; background: transparent; color: #476456; cursor: pointer; }
.dp-open-button:hover { background: #e8efe9; }
.dp-open-button:focus-visible { outline: 3px solid #759a81; outline-offset: 1px; }
.wedding-date-dialog { box-sizing: border-box; width: min(23rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); padding: 1.2rem; border: 1px solid #dce4dc; border-radius: 1.2rem; background: #fffefa; color: #203c2e; box-shadow: 0 1.2rem 4rem #1d352f40; overflow: auto; margin: auto; }
.wedding-date-dialog::backdrop { background: #142e294a; }
.wedding-date-dialog .dp-heading h2 { margin: 0 0 .3rem; font-size: 1.18rem; line-height: 1.35; }
.wedding-date-dialog .dp-heading p { margin: 0 0 1rem; font-size: .85rem; line-height: 1.4; color: #69786e; }
.wedding-date-dialog button { font: inherit; cursor: pointer; box-sizing: border-box; }
.wedding-date-dialog button:focus-visible { outline: 3px solid #87aa91; outline-offset: 2px; }
.wedding-date-dialog button:disabled { opacity: .32; cursor: default; }
.dp-month-navigation { display: grid; grid-template-columns: 2.6rem 1fr 2.6rem; align-items: center; gap: .5rem; margin-bottom: .65rem; text-align: center; }
.dp-month-navigation strong { font-size: 1rem; text-transform: capitalize; }
.wedding-date-dialog .dp-month-navigation button { width: 2.6rem; height: 2.6rem; border: 1px solid #dce4dc; border-radius: .7rem; background: white; color: #385c46; font-size: 1.7rem; line-height: 1; padding: 0; }
.dp-weekdays, .dp-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; text-align: center; }
.dp-weekdays { color: #78857a; font-size: .78rem; margin-bottom: .4rem; }
.wedding-date-dialog .dp-day { min-width: 0; width: 100%; min-height: 2.5rem; aspect-ratio: 1; border: 0; padding: .25rem; border-radius: .65rem; background: transparent; color: #243e2f; }
.wedding-date-dialog .dp-day:hover:not(:disabled) { background: #e8efe9; }
.wedding-date-dialog .dp-day.is-selected { background: #37634b; color: #fff; font-weight: 700; }
.dp-actions { display: flex; justify-content: space-between; gap: .8rem; margin-top: 1rem; border-top: 1px solid #e7eae2; padding-top: 1rem; }
.wedding-date-dialog .dp-actions button { border: 1px solid #dce4dc; border-radius: .65rem; padding: .6rem .85rem; min-height: 2.6rem; background: #fff; color: #365740; }
@media (max-width: 380px) { .wedding-date-dialog { padding: .9rem; } .dp-weekdays, .dp-days { gap: .12rem; } }
