/* Availability calendar — loaded after the page's inline styles. */
.availability-card{margin:4px 0 20px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.availability-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--soft)}
.availability-head b{display:block;font-size:.86rem;margin-bottom:3px}
.availability-head span{display:block;color:var(--muted);font-size:.76rem;line-height:1.4}
.availability-live{display:flex!important;align-items:center;gap:6px;white-space:nowrap;color:var(--ac)!important;font-weight:600}
.availability-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#2ca477;box-shadow:0 0 0 4px rgba(44,164,119,.12)}
.availability-live.loading::before{background:var(--dim);box-shadow:none;animation:cal-pulse 1s ease infinite}
.availability-live.error{color:#b23a3a!important}.availability-live.error::before{background:#d94a4a;box-shadow:none}
@keyframes cal-pulse{50%{opacity:.35}}
.calendar-shell{padding:15px 18px 17px}
.calendar-nav{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-bottom:12px}
.calendar-nav button{width:38px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:1.12rem;cursor:pointer;transition:var(--t)}
.calendar-nav button:hover:not(:disabled){border-color:var(--ac);color:var(--ac);background:var(--ac-soft)}
.calendar-nav button:disabled{opacity:.35;cursor:default}
.calendar-month{text-align:center;font-family:var(--h);font-size:.92rem;text-transform:uppercase;letter-spacing:.02em}
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calendar-week{margin-bottom:5px}
.calendar-week span{text-align:center;color:var(--dim);font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;padding:3px 0}
.cal-day{position:relative;aspect-ratio:1/1;min-height:34px;border:1px solid transparent;border-radius:8px;background:var(--bg);color:var(--ink);font-family:var(--b);font-size:.78rem;cursor:pointer;transition:var(--t);display:grid;place-items:center}
.cal-day:hover:not(:disabled){border-color:var(--ac);color:var(--ac);transform:translateY(-1px)}
.cal-day.is-out{visibility:hidden}
.cal-day:disabled{cursor:not-allowed}
.cal-day.is-past{opacity:.28;background:transparent}
.cal-day.is-occupied{background:#f1eff1;color:#aaa5aa;text-decoration:line-through}
.cal-day.is-conflict{background:repeating-linear-gradient(135deg,#f5f3f1,#f5f3f1 5px,#ece9e7 5px,#ece9e7 10px);color:#9b9698}
.cal-day.is-limited::after{content:"";position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:#d5972a}
.cal-day.is-selected{background:var(--ac);border-color:var(--ac);color:#fff;font-weight:700;box-shadow:0 5px 14px rgba(100,77,232,.28)}
.cal-day.is-selected::after{background:#fff}
.cal-day.is-checkout{outline:2px solid rgba(100,77,232,.28);outline-offset:2px}
.cal-day.in-range:not(.is-selected){background:var(--ac-soft);color:var(--ac)}
.calendar-legend{display:flex;flex-wrap:wrap;gap:9px 14px;margin-top:13px;padding-top:12px;border-top:1px solid var(--soft)}
.calendar-legend span{display:flex;align-items:center;gap:6px;font-size:.67rem;color:var(--muted)}
.calendar-legend i{width:11px;height:11px;border-radius:3px;background:var(--bg);border:1px solid var(--line)}
.calendar-legend .lg-occupied{background:#e7e3e7}.calendar-legend .lg-limited{background:#d5972a;border-color:#d5972a;border-radius:50%}.calendar-legend .lg-range{background:repeating-linear-gradient(135deg,#f5f3f1,#f5f3f1 3px,#e5e1df 3px,#e5e1df 6px)}
.date-selection{margin-top:13px;border-radius:9px;background:var(--ac-soft);padding:11px 12px;color:var(--ac);font-size:.78rem;line-height:1.45;display:none}
.date-selection.show{display:block}.date-selection b{display:block;margin-bottom:2px}
.date-selection.bad{background:rgba(217,74,74,.09);color:#b23a3a}
.date-error{display:none;color:#b23a3a;font-size:.76rem;margin-top:7px}.date-error.show{display:block}
.booking-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.daily-rate{display:block;margin-top:4px;color:var(--ac);font-size:.72rem;font-weight:650}
.opt.on .daily-rate{color:rgba(255,255,255,.9)}
.done .request-id{display:inline-block;margin-top:10px;padding:6px 10px;border-radius:7px;background:var(--card);color:var(--muted);font-size:.76rem}

@media(max-width:768px){
  .availability-head{padding:14px;display:block}.availability-live{margin-top:8px}
  .calendar-shell{padding:13px 12px 15px}
  .cal-day{min-height:36px;font-size:.76rem}
  .calendar-grid,.calendar-week{gap:3px}
  .calendar-legend{gap:8px 11px}
}

@media(prefers-reduced-motion:reduce){.availability-live.loading::before{animation:none}.cal-day{transition:none}}
