/* ============ AVAILABILITY CALENDAR ============ */

.cal-tabs{
  display:flex;
  gap:24px;
  margin-bottom:24px;
  border-bottom:1px solid var(--line);
}
.cal-tab{
  background:none;
  border:none;
  padding:10px 2px;
  font-size:14px;
  font-weight:600;
  font-family:var(--font-body);
  color:var(--slate);
  border-bottom:2px solid transparent;
  cursor:pointer;
  margin-bottom:-1px;
}
.cal-tab.active{
  color:var(--navy);
  border-bottom-color:var(--navy);
}

.cal-property-row{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:24px;
}
.cal-property-row label{
  font-size:13px;
  color:var(--slate);
  font-weight:600;
}
.cal-property-row select{
  flex:1;
  max-width:340px;
  padding:11px 14px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:14px;
  font-family:var(--font-body);
  background:#fff;
  color:var(--navy);
}

.cal-lock-screen{
  display:none;
  background:#fff;
  border-radius:12px;
  padding:28px;
  margin-bottom:24px;
  text-align:center;
}
.cal-lock-screen p{
  font-size:14px;
  color:var(--navy);
  margin-bottom:16px;
}
.cal-lock-row{
  display:flex;
  gap:8px;
  justify-content:center;
  max-width:300px;
  margin:0 auto;
}
.cal-lock-row input{
  flex:1;
  padding:11px 14px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:14px;
  font-family:var(--font-body);
}
.cal-lock-error{
  font-size:12.5px;
  color:#B5573A;
  margin-top:12px;
  min-height:14px;
}

.cal-nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}
.cal-nav-btn{
  width:34px; height:34px;
  border-radius:8px;
  border:1px solid var(--line);
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  color:var(--navy);
}
.cal-nav-btn svg{ width:16px; height:16px; }
.cal-nav-btn:hover{ background:var(--ivory-warm); }
.cal-month-label{
  font-family:var(--font-display);
  font-size:1.1rem;
  font-weight:500;
  color:var(--navy);
}

.cal-admin-hint{
  display:none;
  font-size:13px;
  color:var(--slate);
  margin-bottom:16px;
  background:#fff;
  border-radius:8px;
  padding:11px 16px;
}

.cal-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  gap:6px;
}
.cal-weekdays{
  margin-bottom:8px;
}
.cal-weekday-label{
  text-align:center;
  font-size:11.5px;
  font-weight:600;
  color:var(--slate);
  padding:6px 0;
}
.cal-cell{
  aspect-ratio:1;
  border:none;
  border-radius:8px;
  font-size:13px;
  font-weight:600;
  font-family:var(--font-body);
  padding:0;
  cursor:default;
}
.cal-cell-available{
  background:#EAF4EE;
  color:var(--forest);
}
.cal-cell-unavailable{
  background:#FBEAE5;
  color:#B5573A;
}
.cal-cell-editable{
  cursor:pointer;
}
.cal-cell-editable:hover{
  filter:brightness(0.95);
}

.cal-legend{
  display:flex;
  gap:20px;
  margin-top:20px;
  font-size:12.5px;
  color:var(--slate);
}
.cal-legend span{ display:flex; align-items:center; gap:7px; }
.cal-dot{
  width:12px; height:12px;
  border-radius:3px;
  display:inline-block;
}
.cal-dot-available{ background:#EAF4EE; border:1px solid var(--forest); }
.cal-dot-unavailable{ background:#FBEAE5; border:1px solid #B5573A; }

.cal-save-status{
  font-size:12.5px;
  color:var(--slate);
  margin-top:14px;
  min-height:16px;
}

@media (max-width:600px){
  .cal-cell{ font-size:12px; }
  .cal-property-row{ flex-direction:column; align-items:flex-start; gap:8px; }
  .cal-property-row select{ max-width:none; width:100%; }
}
