/* general classes */
.flex-row {
  display: flex;
}

.flex-column {
  display: flex;
  flex-direction: column;
}

.flex-center {
  align-items: center;
  justify-content: center;
}

.flex-wrap {
  flex-wrap: wrap;
}

/* html elements */
body {
  font-family: 'Arial', 'Helvetica', sans-serif;
  font-size: 20px;
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  background-color: #ffcad4;
}

svg {
  width: 30px;
}

/* custom styles */
#calendar {
  width: 100%;
  height: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

#calendarNavigation {
  height: 50px;
}

#calendarNavigation #month {
  width: calc(100% - 100px);
}

#previousMonth,
#nextMonth {
  cursor: pointer;
  margin: 0 4px;
  border-radius: 8px;
  width: 50px;
}

#previousMonth:hover,
#nextMonth:hover,
#previousMonth:active,
#nextMonth:active {
  background-color: #9d8189;
}

#calendarWeekDays {
  height: 30px;
  margin: 0 4px;
  background-color: #9d8189;
  border-radius: 12px;
}

#calendarWeekDays div {
  width: calc(100% / 7);
}

#calendarBody {
  height: calc(100% - 50px - 30px - 8px);
  box-sizing: border-box;
  margin: 4px;
}

#calendarBody .date {
  box-sizing: border-box;
  width: calc((100% / 7) - 2px);
  margin: 2px 1px;
  border-radius: 8px;
  padding: 2px;
  background-color: white;
}

#calendarBody .placeholder {
  border: none;
  background-color: transparent;
}

#calendarBody .preview {
  background-color: rgba(255, 255, 255, 0.5);
}

#calendarBody .active {
  background-color: #d8e2dc;
}

#calendarBody .date .day {
  height: 20%;
}

#calendarBody .date .morning,
#calendarBody .date .evening {
  height: 50%;
  margin: 2px;
  border-radius: 4px;
}
