.calendar-wrap{
  margin-top:22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;background:#fff;
}

.calendar-table{
  border-collapse:separate;border-spacing:0;
  width:max-content;min-width:1200px;
}
.calendar-table th,.calendar-table td{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:0;text-align:center;white-space:nowrap;
}
.calendar-table th:last-child,.calendar-table td:last-child{border-right:none}
.calendar-table tr:last-child td{border-bottom:none}

/* sticky left cols */
.sticky-col{position:sticky;background:#fff;z-index:4}
.suite-col{left:0;min-width:220px;text-align:left !important;padding:0 14px !important;font-weight:700}
.persons-col{left:220px;min-width:70px;color:var(--muted);font-weight:700}

/* header rows (month/day) */
.calendar-table thead .cal-month-row th{
  position:sticky;top:0;z-index:6;height:42px;background:#fff;
  font-weight:800;color:var(--text);font-size:12px;
}
.calendar-table thead .cal-day-row th{
  position:sticky;top:42px;z-index:5;height:54px;background:#fff;
  color:var(--muted);font-size:12px;
}
.calendar-table thead .suite-col,
.calendar-table thead .persons-col{z-index:7}

.day-num{font-size:14px;font-weight:800;color:var(--text);line-height:1.1}
.day-dow{margin-top:4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:lowercase}
.month-col{text-align:center;letter-spacing:.02em}
.date-col{min-width:58px}

/* cells */
.cal-cell{height:44px;min-width:58px;cursor:pointer;background:#fff}
.cal-cell.avail .price{color:#16a34a;font-weight:800;font-size:12px}
.cal-cell.unavail{background:#fee2e2;cursor:not-allowed}
.cal-cell.selected{background:rgba(34,197,94,.16) !important}
.cal-cell.checkout{background:rgba(14,165,233,.14) !important}

/* popover + toast */
.cal-popover{position:fixed;z-index:100;display:none;width:240px}
.cal-popover.open{display:block}
.cal-popover-inner{
  background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);padding:12px;
}
.cal-pop-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:13px;color:var(--muted)}
.cal-pop-row strong{color:var(--text)}
.toast{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:110px;background:rgba(2,6,23,.88);color:#fff;
  padding:10px 14px;border-radius:999px;display:none;z-index:120;font-size:13px;
}

/* ===== Calendar NAV (Desktop): left arrow - centered title - right arrow ===== */
.cal-nav.desktop-only{
  display: grid !important;
  grid-template-columns: 48px 1fr 48px !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 18px !important;
  margin-bottom: 10px !important;
}

.cal-nav-btn{
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  border: 1px solid var(--line) !important;
  background: #fff !important;
  box-shadow: 0 10px 20px rgba(2,6,23,.06) !important;
  cursor: pointer !important;
  font-size: 28px !important;
  line-height: 1 !important;
  display: grid !important;
  place-items: center !important;
}

.cal-nav-btn:disabled{
  opacity: .35 !important;
  cursor: not-allowed !important;
}

.cal-nav-label{
  text-align: center !important;
  font-weight: 900 !important;
  color: var(--text) !important;
  font-size: 16px !important;
}