/* Shared, availability-aware date selection for detail and reservation pages. */
.stay-dates { --stay-purple: #6b4e9e; --stay-ink: #242135; --stay-muted: #777383; --stay-line: #e7e2ed; font-family: "Inter", system-ui, sans-serif; text-align: left; }
.stay-dates [hidden] { display: none !important; }
.stay-date-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; overflow: hidden; border: 1px solid #dcd4e7; border-radius: 12px; background: #fff; }
.stay-dates .stay-date-field {
    position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 9px;
    min-width: 0; min-height: 86px; padding: 16px 14px;
    border: 0; border-radius: 0; background: #fff;
    font: inherit; text-align: left; cursor: pointer; box-shadow: none; transform: none; transition: none;
}
.stay-dates .stay-date-field + .stay-date-field { border-left: 1px solid var(--stay-line); }
.stay-dates .stay-date-field::after { content: ""; position: absolute; bottom: 0; left: 14px; right: 14px; height: 3px; border-radius: 3px 3px 0 0; background: transparent; }
.stay-dates .stay-date-field:hover, .stay-dates .stay-date-field.is-active { background: #fff; box-shadow: none; transform: none; }
.stay-dates .stay-date-field.is-active::after { background: var(--stay-purple); }
.stay-dates .stay-date-field:hover .stay-field-value, .stay-dates .stay-date-field.is-active .stay-field-label { color: var(--stay-purple); }
.stay-field-label { display: flex; align-items: center; gap: 7px; color: var(--stay-muted); font-size: 10px; font-weight: 600; letter-spacing: .55px; line-height: 1.5; text-transform: uppercase; }
.stay-field-label i { color: #9279b1; font-size: 12px; }
.stay-field-value { color: #656171; font-size: 15px; font-weight: 500; letter-spacing: -.3px; line-height: 1.4; white-space: nowrap; font-variant-numeric: tabular-nums; }
.stay-field-value.has-value { color: var(--stay-ink); font-weight: 650; }
.stay-dates button:focus-visible, .stay-calendar [tabindex]:focus-visible { outline: 2px solid #6b4e9e; outline-offset: 2px; }
.stay-dates .stay-date-field:focus-visible { outline-offset: -3px; }
.stay-date-feedback { margin: 12px 1px 17px; }
.stay-date-feedback p { margin: 0; color: var(--stay-muted); font-size: 11px; line-height: 1.75; }
.stay-dates.has-date-error .stay-date-feedback p { color: #a52f40; }
.stay-date-feedback button { display: inline-block; margin: 5px 0 0; padding: 3px 0; border: 0; background: none; color: var(--stay-purple); font: inherit; font-size: 11px; font-weight: 500; cursor: pointer; text-decoration: underline; text-decoration-color: #d4c8e4; text-underline-offset: 4px; box-shadow: none; transform: none; }
.stay-calendar-panel { margin-top: 12px; padding: 12px 12px 13px; border: 1px solid var(--stay-line); border-radius: 14px; background: #fff; }
.stay-calendar-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; padding: 0 0 10px; border-bottom: 1px solid #f0ecf5; }
.stay-calendar-top strong { color: var(--stay-purple); font-size: 12px; font-weight: 600; letter-spacing: -.1px; }
.stay-calendar-top button { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; min-height: 32px !important; max-height: 32px; padding: 0 !important; border: 1px solid var(--stay-line); border-radius: 50%; background: #fff; color: #868090; font: inherit; font-size: 20px; line-height: 1; cursor: pointer; box-shadow: none; transform: none; }
.stay-calendar-top button:hover { border-color: #bba6d5; color: var(--stay-purple); }
.stay-calendar-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; margin-top: 12px; padding-top: 14px; border-top: 1px solid #eee8f3; color: #625b6e; font-size: 11px; font-weight: 500; line-height: 1.5; }
.stay-calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.stay-calendar-legend .stay-checkout-key { grid-column: 1 / -1; }
.stay-dot { position: relative; display: inline-block; flex: 0 0 14px; width: 14px; height: 14px; border: 1px solid transparent; border-radius: 4px; }
.stay-dot.available { background: #dcf3e5; border-color: #64ad81; }
.stay-dot.booked { background: #fbdde1; border-color: #d67484; }
.stay-dot.booked::after { content: ""; position: absolute; top: 5px; left: 2px; right: 2px; border-top: 2px solid #a32e43; }
.stay-dot.selected { background: #237a49; border-color: #237a49; }
.stay-dot.unavailable { background: #f2f1f4; border-color: #ddd9e1; }
.stay-dot.checkout { background: linear-gradient(135deg, #dcf3e5 50%, #fbdde1 50%); border-color: #bd8791; }
.bungalow-detail-page .detail-guest-field { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 6px; padding: 14px; border: 1px solid #dcd4e7; border-radius: 12px; background: #fff; font-family: inherit; }
.detail-guest-field > span { display: flex; align-items: center; gap: 7px; color: #777383; font-size: 10px; font-weight: 600; letter-spacing: .5px; line-height: 1.5; text-transform: uppercase; }
.detail-guest-field > span i { color: #9279b1; font-size: 12px; }
.bungalow-detail-page .detail-guest-field select { grid-column: 1 / -1; grid-row: 2; width: 100%; min-height: 25px; padding: 0; border: 0; border-radius: 0; background-color: #fff; color: #242135; font: inherit; font-size: 15px; font-weight: 600; letter-spacing: -.2px; cursor: pointer; box-shadow: none; }
.detail-guest-field small { grid-column: 2; grid-row: 1; color: #8c8596; font-size: 10px; font-weight: 400; line-height: 1.5; text-align: right; }
.bungalow-detail-page .detail-guest-field:focus-within { border-color: #6b4e9e; }
.bungalow-detail-page .detail-price-summary { margin: 16px 0 0; padding: 0; background: #fff; color: #777383; font-size: 12px; line-height: 1.65; }
.bungalow-detail-page .detail-price-summary[hidden] { display: none !important; }
.detail-price-summary .detail-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 7px; }
.detail-price-summary .detail-price-row > span:last-child { flex-shrink: 0; color: #40394b; font-weight: 500; font-variant-numeric: tabular-nums; }
.detail-price-summary .detail-price-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 12px; padding-top: 13px; border-top: 1px solid #eee8f3; }
.detail-price-summary .detail-price-total > div { display: grid; gap: 2px; }
.detail-price-summary .detail-price-total span { color: #242135; font-size: 13px; font-weight: 600; }
.detail-price-summary .detail-price-total small { color: #8c8596; font-size: 10px; }
.detail-price-summary .detail-price-total strong { color: #6b4e9e; font-size: 23px; font-weight: 700; letter-spacing: -.65px; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bungalow-detail-page .detail-price-summary.has-price-error { color: #a32e43; }
[data-price-summary] .booking-weekend-note { margin-top: 14px; padding-top: 12px; border-top: 1px solid #eee8f3; background: #fff; text-align: left; }
[data-price-summary] .booking-weekend-note p { margin: 0; font-size: 11px; line-height: 1.75; font-weight: 400; letter-spacing: normal; }
[data-price-summary] .booking-weekend-note .booking-weekend-title { display: flex; align-items: center; gap: 6px; margin-bottom: 5px; color: #6b4e9e; font-weight: 600; }
[data-price-summary] .booking-weekend-note .booking-weekend-line { margin-bottom: 5px; color: #6f687b; }
[data-price-summary] .booking-weekend-line b { color: #40394b; font-size: inherit; font-weight: 600; white-space: nowrap; }
[data-price-summary] .booking-weekend-note .booking-weekend-included { margin-top: 6px; color: #8c8596; font-size: 10px; }
[data-price-summary] [data-price-retry] { display: block; margin-top: 6px; padding: 2px 0; border: 0; background: transparent; color: #6b4e9e; font: inherit; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; box-shadow: none; transform: none; }
.bungalow-detail-page .booking-card:has(.stay-calendar-panel:not([hidden])) { max-height: calc(100vh - 112px); overflow-y: auto; scrollbar-width: thin; }

/* Override the legacy mobile modal theme only for this inline calendar. */
.stay-dates .stay-calendar.flatpickr-calendar {
    display: block; position: relative !important; inset: auto !important; width: 100% !important;
    max-width: none !important; padding: 0; border: 0 !important; border-radius: 0 !important;
    background: #fff !important; font-family: "Inter", system-ui, sans-serif;
    box-shadow: none !important; transform: none !important; z-index: 1 !important;
}
.stay-calendar.flatpickr-calendar::before, .stay-calendar.flatpickr-calendar::after { display: none !important; }
.stay-calendar .flatpickr-months { position: relative; display: flex !important; align-items: center !important; height: 43px !important; min-height: 43px !important; padding: 0 !important; background: #fff !important; border-radius: 0 !important; }
.stay-calendar .flatpickr-months .flatpickr-month { flex: 1; height: 43px !important; background: #fff; color: #202536 !important; fill: #202536 !important; }
.stay-calendar .flatpickr-current-month { display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; position: absolute !important; left: 12.5% !important; top: 0; width: 75% !important; height: 43px !important; padding: 0 !important; color: #242135 !important; font-size: 15px !important; font-weight: 600 !important; }
.stay-calendar .flatpickr-current-month .cur-month { margin: 0; font-weight: 600; }
.stay-calendar .flatpickr-current-month .numInputWrapper { width: 57px !important; }
.stay-calendar .flatpickr-current-month input.cur-year { width: 57px !important; padding: 0 3px !important; background: #fff !important; color: #242135 !important; font: inherit !important; font-size: 15px !important; }
.stay-calendar .flatpickr-months .flatpickr-prev-month, .stay-calendar .flatpickr-months .flatpickr-next-month { position: absolute !important; top: 5px; display: flex !important; justify-content: center !important; align-items: center !important; width: 32px !important; height: 32px !important; padding: 9px !important; border: 1px solid #e7e2ed !important; border-radius: 9px !important; background: #fff !important; color: #6b4e9e; fill: #6b4e9e !important; box-shadow: none !important; transform: none !important; }
.stay-calendar .flatpickr-months .flatpickr-prev-month:hover, .stay-calendar .flatpickr-months .flatpickr-next-month:hover { border-color: #bba6d5 !important; }
.stay-calendar .flatpickr-months .flatpickr-prev-month { left: 0; right: auto; }
.stay-calendar .flatpickr-months .flatpickr-next-month { right: 0; left: auto; }
.stay-calendar .flatpickr-months .flatpickr-disabled { display: none !important; }
.stay-calendar .flatpickr-months .flatpickr-prev-month svg, .stay-calendar .flatpickr-months .flatpickr-next-month svg { fill: #6b4e9e !important; width: 12px !important; height: 12px !important; }
.stay-calendar .flatpickr-weekdays { height: 34px; padding: 0 !important; background: #fff !important; border: 0 !important; }
.stay-calendar .flatpickr-weekday { background: #fff; color: #898291 !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; }
.stay-calendar .flatpickr-innerContainer, .stay-calendar .flatpickr-rContainer { display: block; width: 100%; }
.stay-calendar .flatpickr-days { width: 100% !important; padding: 0 !important; border: 0; }
.stay-calendar .dayContainer { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); width: 100% !important; min-width: 100% !important; max-width: 100% !important; padding: 0 !important; }
.stay-calendar .flatpickr-day {
    position: relative; width: calc(100% - 4px); min-width: 0; max-width: none !important; height: 36px !important; line-height: 34px !important;
    margin: 2px !important; padding: 0; border: 1px solid transparent !important; border-radius: 8px !important;
    background: #fff !important; color: #40394b !important; font-size: 13px !important; font-weight: 500 !important; font-variant-numeric: tabular-nums;
    box-shadow: none !important; transform: none !important; transition: none !important; opacity: 1 !important;
}
.stay-calendar .flatpickr-day:hover { background: #f2edf7 !important; color: #6b4e9e !important; }
.stay-calendar .flatpickr-day.today::after { content: ""; position: absolute; bottom: 3px; left: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.stay-calendar .flatpickr-day.prevMonthDay, .stay-calendar .flatpickr-day.nextMonthDay, .stay-calendar .flatpickr-day.flatpickr-disabled { color: #aaa3b0 !important; background: #f5f4f6 !important; border-color: #eeebf0 !important; }
.stay-calendar .flatpickr-day.stay-day-available { background: #e4f4eb !important; border-color: #aed6bd !important; color: #246940 !important; font-weight: 600 !important; }
.stay-calendar .flatpickr-day.prevMonthDay.stay-day-available, .stay-calendar .flatpickr-day.nextMonthDay.stay-day-available { background: #f0f8f3 !important; border-color: #d5e8dc !important; color: #61846e !important; border-radius: 8px !important; }
.stay-calendar .flatpickr-day.stay-day-available:hover { background: #ccebd9 !important; border-color: #69ac82 !important; color: #18522f !important; }
.stay-calendar .flatpickr-day.stay-day-booked, .stay-calendar .flatpickr-day.stay-day-booked:hover { background: #fbdde1 !important; border-color: #e8a4af !important; color: #a32e43 !important; font-weight: 600 !important; text-decoration: line-through; text-decoration-thickness: 2px; cursor: not-allowed; }
.stay-calendar .flatpickr-day.stay-day-checkout { background: linear-gradient(135deg, #e4f4eb 50%, #fbdde1 50%) !important; border-color: #cb929d !important; color: #534151 !important; font-weight: 600 !important; }
.stay-calendar .flatpickr-day.stay-day-in-range { background: #dcf3e5 !important; border-color: #8ac5a0 !important; color: #18522f !important; }
.stay-calendar .flatpickr-day.selected, .stay-calendar .flatpickr-day.stay-day-selected { background: #237a49 !important; border-color: #237a49 !important; color: #fff !important; font-weight: 600 !important; box-shadow: none !important; }
.bungalow-detail-page #konaklama-planla { scroll-margin-top: 100px; }
@media (max-width: 768px) {
    .bungalow-detail-page.is-whatsapp-booking .content-sidebar,
    .bungalow-detail-page.is-whatsapp-booking .booking-card { display: block !important; }
    .bungalow-detail-page.is-whatsapp-booking .booking-card { position: static !important; padding: 18px; min-width: 0; }
    .bungalow-detail-page.is-whatsapp-booking .booking-card:has(.stay-calendar-panel:not([hidden])) { max-height: calc(100dvh - 180px); }
}
.rez-create-page .stay-dates { max-width: 620px; }
.rez-create-page .stay-calendar-panel { max-width: 360px; }
.rez-create-page .stay-date-field { min-height: 92px; padding: 18px; }
@media (max-width: 420px) {
    .stay-dates .stay-date-field { padding: 15px 12px; }
    .stay-field-label { gap: 5px; font-size: 9px; }
    .stay-field-value { font-size: 14px; }
    .stay-calendar-legend { font-size: 11px; gap: 10px 6px; }
}
