.stay-result-image > .stay-availability,.home-stay-photo > .stay-availability,.stay-booking-header > .stay-availability {
 display:inline-flex; align-items:center; gap:7px; width:fit-content; padding:8px 12px; border-radius:7px; font:800 12px 'Plus Jakarta Sans',sans-serif; letter-spacing:.2px; line-height:1.4;
}
.stay-availability::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; flex-shrink:0; }
.stay-availability.is-available { background:#fff5dc; color:#71531f; border:1px solid #d5b36e; }
.stay-availability.is-booked { background:#fff0ef; color:#a52e2e; border:1px solid #e6b1ac; }
.stay-booking-header > .stay-availability { margin-bottom:16px; }
.stay-unavailable-note { padding:18px; border:1px solid #d5b36e; border-radius:12px; font-size:14px; line-height:1.8; }
.stay-search-main .stay-result-image > .stay-availability,
.home-stay-photo > .stay-availability {
 position:absolute; top:14px; right:14px; left:auto; z-index:2;
 padding:8px 12px; font-size:12px; box-shadow:0 3px 12px #05194022;
}
.stay-search-main .stay-result-image > span:not(.stay-availability),
.home-stay-photo > span:not(.stay-availability) { max-width:calc(100% - 140px); }
.stay-card-booked-dates { margin:12px 0 0; padding:10px 12px; border-radius:8px; background:#fff0ef; color:#922d2d; font-size:12px; line-height:1.7; font-weight:700; }

.stay-calendar { position:fixed; z-index:4000; padding:16px; border:1px solid #d3b77f; border-radius:16px; background:#fff; color:#051940; box-shadow:0 18px 60px #05194040; max-height:calc(100dvh - 24px); overflow:auto; }
.stay-calendar-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; gap:8px; }
.stay-calendar button { cursor:pointer; border:0; background:transparent; color:inherit; border-radius:8px; font-size:14px; font-weight:700; min-height:34px; }
.stay-calendar-heading button { width:34px; font-size:24px; background:#f5f0e5; }
.stay-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.stay-calendar-grid > span { text-align:center; font-size:11px; color:#64748b; padding:5px 0; }
.stay-calendar-grid button:hover:not(:disabled),.stay-calendar-grid button.is-selected { background:#CEB17A; color:#051940; }
.stay-calendar-grid button:disabled { color:#a1a9b5; cursor:not-allowed; text-decoration:line-through; background:#f3f5f7; }
.stay-calendar-grid button.is-reserved:disabled { background:#fff0ef; color:#ae4343; }
.stay-calendar > p { font-size:11px; line-height:1.7; color:#64748b; margin:14px 0 8px; }
.stay-calendar .stay-calendar-close { width:100%; background:#051940; color:#fff; }
.stay-calendar button:focus-visible { outline:2px solid #a58142; outline-offset:2px; }
.stay-custom-date::-webkit-calendar-picker-indicator { pointer-events:none; }
html[data-theme="dark"] .stay-calendar { background:#14283d; color:#eef4fc; }
html[data-theme="dark"] .stay-calendar-heading button { background:#263e55; }
html[data-theme="dark"] .stay-calendar-grid button:disabled { background:#203346; color:#7d8b9c; }
html[data-theme="dark"] .stay-calendar-grid button.is-reserved:disabled { background:#482b35; color:#e8a4a4; }
html[data-theme="dark"] .stay-calendar > p,html[data-theme="dark"] .stay-calendar-grid > span { color:#bac8d9; }
