.calendar-legend{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  align-items:center;
  margin:0 0 1rem;
}
.cal-dot{
  display:inline-block;
  width:.8rem;
  height:.8rem;
  border-radius:999px;
  margin-right:.35rem;
  vertical-align:middle;
}
.cal-dot.available{background:#bdddb2}
.cal-dot.booked{background:#d9a099}
.availability-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
.cal-month{
  background:rgba(255,250,241,.72);
  border:1px solid var(--line, rgba(44,33,24,.18));
  border-radius:20px;
  padding:1rem;
}
.cal-month h3{
  font-size:1.15rem;
  margin:0 0 .75rem;
  color:var(--brown, #6e3326);
}
.cal-weekdays,.cal-days{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:.25rem;
  text-align:center;
}
.cal-weekdays span{
  font-size:.72rem;
  color:rgba(44,33,24,.62);
}
.cal-day{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:2.35rem;
  border-radius:9px;
  font-size:.86rem;
  background:white;
  border:1px solid var(--line, rgba(44,33,24,.18));
  cursor:default;
}
.cal-day b{font-weight:normal}
.cal-day small{
  font-size:.62rem;
  line-height:1;
  margin-top:.1rem;
  opacity:.78;
}
.cal-day.available{background:#eef7ea}
.cal-day.available:hover{outline:2px solid rgba(181,138,73,.45)}
.cal-day.booked{
  background:#f1d4d0;
  color:#7b2b25;
  text-decoration:line-through;
}
.cal-day.empty{visibility:hidden}
.calendar-selected-note{
  background:var(--paper, #fffaf1);
  border:1px solid var(--line, rgba(44,33,24,.18));
  border-radius:12px;
  padding:.6rem .8rem;
}
@media(max-width:800px){
  .availability-grid{grid-template-columns:1fr}
}