.stay-calendar { padding: 20px; background: #fff; color: #202c28; border: 1px solid #dce5e0; border-radius: 8px; }
.stay-calendar-heading, .stay-month-nav, .stay-calendar-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.stay-calendar-heading h3 { margin: 6px 0 16px; font-size: 18px; line-height: 1.35; color: #202c28 !important; }
.stay-calendar .eyebrow { color: #667b71 !important; }
.stay-reset { border: 0; padding: 10px; min-height: 44px; background: transparent; color: #a6132c; font-weight: 700; cursor: pointer; }
.stay-reset:disabled { color: #8e9892; cursor: default; }
.stay-date-preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px 0; border-block: 1px solid #e2e9e5; gap: 16px; }
.stay-date-preview button { min-width: 0; display: grid; gap: 6px; min-height: 58px; padding: 10px; text-align: left; border: 1px solid transparent; border-radius: 6px; background: transparent; font: inherit; cursor: pointer; }
.stay-date-preview button[aria-pressed="true"] { border-color: #245238; background: #f0f6f1; }
.stay-date-preview button:disabled { cursor: default; }
.stay-date-preview button:focus-visible { outline: 3px solid #dcb745; outline-offset: 2px; }
.stay-date-preview span { font-size: 12px; color: #617069; }
.stay-date-preview strong { font-size: 14px; color: #202c28 !important; overflow-wrap: anywhere; }
.stay-month-nav { margin: 16px 0 12px; }
.stay-month-nav strong { color: #202c28 !important; font-size: 15px; text-transform: capitalize; }
.stay-month-nav button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #dae4de; border-radius: 6px; background: #fff; color: #243d30; cursor: pointer; }
.stay-month-nav button svg { width: 18px; height: 18px; }
.stay-month-nav button:first-child svg { transform: rotate(180deg); }
.stay-month-nav button:disabled { opacity: .35; cursor: default; }
.stay-weekdays, .stay-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.stay-weekdays span { padding: 8px 0; text-align: center; font-size: 11px; color: #68766e; }
.stay-days button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 0; height: 60px; padding: 4px 0; border: 1px solid transparent; border-radius: 6px; background: #f3f7f4; color: #25382e; cursor: pointer; }
.stay-days button strong { font-size: 14px; color: inherit !important; }
.stay-days button small { font-size: 10px; color: inherit !important; }
.stay-days button:not(:disabled):hover { border-color: #355f47; background: #e4eee7; }
.stay-days button:disabled { background: #fafafa; color: #a0a7a2; cursor: default; }
.stay-days button.unavailable strong { text-decoration: line-through; }
.stay-days button.in-range { background: #dcecdf; color: #21472c; }
.stay-days button.chosen { background: #245238; color: #fff; }
.stay-days button.chosen strong { text-decoration: none; }
.stay-days button:focus-visible, .stay-month-nav button:focus-visible, .stay-reset:focus-visible { outline: 3px solid #dcb745; outline-offset: 2px; }
.stay-calendar-footer { margin-top: 14px; flex-wrap: wrap; font-size: 11px; color: #6c7971; }
.stay-selection-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #e2e9e5; font-size: 13px; line-height: 1.6; color: #40594a !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar :is(h3, strong) { color: #202c28 !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar :is(span, small, p) { color: #617069 !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar .eyebrow { background: transparent !important; border: 0 !important; padding: 0 !important; color: #617069 !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar .stay-days button :is(strong, small) { color: #25382e !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar .stay-days button:disabled :is(strong, small) { color: #939d96 !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar .stay-days button.chosen :is(strong, small) { color: #fff !important; }
body[data-page="listing"] #listingBookingDialog .stay-calendar .stay-days button.chosen { background: #245238 !important; }
body.listing-stay-booking #availabilityList { display: none !important; }
body.listing-stay-booking #availabilityCalendar { display: block !important; }
body.listing-stay-booking #listingBookingDialog #availabilityCalendar { margin: 0 0 16px; }
body.listing-stay-booking #listingBookingDialog #reservationForm .field:has(#bookingFrom),
body.listing-stay-booking #listingBookingDialog #reservationForm .field:has(#bookingTo) { grid-column: auto; padding: 0; background: transparent; border: 0; box-shadow: none; }
body.listing-stay-booking #listingBookingDialog #reservationForm input[type="date"] { font-size: 16px; padding: 10px; }
.owner-stay-settings { margin: 16px 0; padding: 0; }
.owner-stay-settings > strong { font-size: 16px; }
.owner-stay-settings p { font-size: 13px; line-height: 1.6; color: #68736c; }
.owner-stay-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.owner-stay-grid label { display: grid; gap: 8px; font-size: 13px; font-weight: 600; }
.owner-stay-grid input { min-width: 0; width: 100%; min-height: 46px; box-sizing: border-box; padding: 10px 12px; border: 1px solid #d8e2dc; border-radius: 6px; background: #fff; color: #243d30; font: inherit; }
@media (max-width: 600px) {
  .stay-calendar { padding: 14px 10px; }
  .stay-calendar-heading h3 { font-size: 16px; }
  .stay-date-preview { gap: 10px; }
  .stay-days { gap: 3px; }
  .stay-days button { height: 54px; }
  .stay-days button small { font-size: 9px; }
  .owner-stay-grid { gap: 12px; }
}
