/* Availability calendar widget — drop-in styles */
.avail-calendar{
  max-width: 720px;
}
.avail-calendar .avail-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px;
}
.avail-calendar .avail-nav-btn{
  background:transparent; border:1px solid var(--line, rgba(0,0,0,0.15));
  border-radius:100px; width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:16px; color:inherit;
}
.avail-calendar .avail-nav-btn:hover{ opacity:0.7; }
.avail-calendar .avail-nav-btn:disabled{ opacity:0.3; cursor:default; }
.avail-calendar .avail-month-label{
  font-weight:600; font-size:16px;
}
.avail-calendar .avail-months{
  display:grid; grid-template-columns: 1fr 1fr; gap:32px;
}
.avail-calendar .avail-month{ min-width:0; }
.avail-calendar .avail-month-title{
  text-align:center; font-weight:600; font-size:14.5px; margin-bottom:12px;
}
.avail-calendar .avail-grid{
  display:grid; grid-template-columns: repeat(7, 1fr);
  gap:4px;
}
.avail-calendar .avail-dow{
  text-align:center; font-size:11px; font-weight:600; opacity:0.5;
  padding-bottom:6px; text-transform:uppercase;
}
.avail-calendar .avail-day{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-size:13px; border-radius:6px;
}
.avail-calendar .avail-day.empty{ visibility:hidden; }
.avail-calendar .avail-day.open{
  background: rgba(80,160,120,0.12); color:inherit;
}
.avail-calendar .avail-day.blocked{
  background: rgba(0,0,0,0.06); color:rgba(0,0,0,0.35);
  text-decoration: line-through;
}
.avail-calendar .avail-day.today{
  outline: 2px solid currentColor; outline-offset: -2px;
}
.avail-calendar .avail-legend{
  display:flex; gap:20px; margin-top:18px; font-size:12.5px; opacity:0.75;
}
.avail-calendar .avail-legend span{
  display:inline-flex; align-items:center; gap:6px;
}
.avail-calendar .avail-legend .dot{
  width:10px; height:10px; border-radius:3px; display:inline-block;
}
.avail-calendar .avail-legend .dot.open{ background: rgba(80,160,120,0.5); }
.avail-calendar .avail-legend .dot.blocked{ background: rgba(0,0,0,0.2); }
.avail-calendar .avail-status{
  font-size:13px; opacity:0.6; margin-top:16px;
}
.avail-calendar .avail-status.error{ color:#b6453f; opacity:1; }

@media (max-width: 640px){
  .avail-calendar .avail-months{ grid-template-columns: 1fr; gap:24px; }
}
