/**
 * Appointment Calendar Styles
 * Enhances the DatePicker component with visual indicators for date availability
 */

/* Available date styling */
.calendar-day-available {
  position: relative;
}

.calendar-day-available::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #28a745; /* Green dot for available dates */
}

/* Unavailable date styling */
.calendar-day-unavailable {
  background-color: rgba(211, 211, 211, 0.4);
  color: #777;
  position: relative;
}

/* Special exception date styling (e.g., holidays) */
.calendar-day-exception {
  position: relative;
}

.calendar-day-exception::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #dc3545; /* Red dot for exception dates */
}

/* Selected date styling */
.calendar-day-selected {
  background-color: #e6f7ff;
  border: 1px solid #1890ff;
  position: relative;
}

/* Today styling */
.calendar-day-today {
  font-weight: bold;
  position: relative;
}

.calendar-day-today::before {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #1890ff; /* Blue dot for today */
}

/* Disabled dates (past dates or unavailable) */
.calendar-day-disabled {
  color: #d9d9d9;
  cursor: not-allowed;
}

/* Loading overlay */
.calendar-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10;
}

/* Responsive styles */
@media (max-width: 768px) {
  .calendar-day-available::after,
  .calendar-day-exception::after,
  .calendar-day-today::before {
    width: 4px;
    height: 4px;
  }
}
