.admin-availability-editor {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #cfe5df;
  border-radius: 14px;
  background: #f8fcfb;
}

.admin-availability-head,
.admin-availability-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.admin-availability-head strong,
.admin-availability-head small {
  display: block;
}

.admin-availability-head small,
.admin-availability-summary,
.admin-availability-actions span {
  color: #667a74;
  font-size: 12px;
}

.admin-availability-summary {
  margin: 10px 0 0;
}

.admin-availability-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(116px, 1fr));
  gap: 10px;
  margin-top: 14px;
  overflow-x: auto;
}

.admin-availability-day {
  min-width: 116px;
  padding: 8px;
  border: 1px solid #dce9e5;
  border-radius: 10px;
  background: #fff;
}

.admin-availability-day > strong {
  display: block;
  margin-bottom: 7px;
  text-align: center;
  font-size: 12px;
}

.admin-availability-slots {
  display: grid;
  gap: 5px;
}

.admin-availability-slots button {
  min-height: 30px;
  border: 1px solid #d7e2de;
  border-radius: 7px;
  color: #6f7f7a;
  background: #f5f7f6;
  font-size: 11px;
  cursor: pointer;
}

.admin-availability-slots button.selected {
  border-color: #79c6b7;
  color: #0d6556;
  background: #dff4ee;
  font-weight: 700;
}

.admin-availability-slots button.fixed {
  cursor: not-allowed;
  opacity: .7;
}

.admin-availability-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 14px;
}

@media (max-width: 900px) {
  .admin-availability-head,
  .admin-availability-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-availability-days {
    grid-template-columns: repeat(7, 116px);
  }
}
