main {
  max-width: 100%;
  padding: 0 4px 4px;
}
.calendar {
  outline: 0 !important;
}
.calendar:focus {
  outline: 0 !important;
}
.calendar-controls {
  box-sizing: border-box;
  padding: 10px;
}
.calendar-controls__link {
  color: steelblue;
  font-size: 1.2em;
  font-weight: bold;
  margin-right: 0.25em;
  padding: 6px;
  text-decoration: none;
}
.calendar-controls__link:hover {
  background-color: hsla(58, 7%, 86%, 0.4);
  border-radius: 6px;
}
.calendar-controls__link:visited {
  color: steelblue;
}
@media print {
  .calendar-controls {
    display: none;
  }
}
.day-container {
  position: relative;
}
.day-container__number {
  color: darkgreen;
  font-size: 1rem;
  position: absolute;
  top: 2px;
  right: 2px;
}
@media print {
  .day-container__number {
    font-size: 1.3rem;
  }
}
.month-container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
}
.month-container__day {
  box-sizing: border-box;
  border: 1px solid black;
  flex: 0 0 auto;
  height: 4rem;
  width: 4rem;
  min-width: 4rem;
}
@media screen and (max-width: 768px) {
  .month-container__day {
    width: 3.5rem;
    min-width: 3.5rem;
  }
}
@media print {
  .month-container__day {
    min-width: unset;
    width: 14vw;
    height: 14vw;
    -webkit-print-color-adjust: exact;
    /* For Chrome/Safari compatibility */
    print-color-adjust: exact;
    /* Standard property for Firefox */
    color-adjust: exact;
    /* Older fallback */
    border-width: 2px;
  }
}
.month-container__day:first-child {
  border-left-width: 2px;
}
@media print {
  .month-container__day:first-child {
    border-left-width: 3px;
  }
}
.month-container__day:last-child {
  border-right-width: 2px;
}
@media print {
  .month-container__day:last-child {
    border-right-width: 3px;
  }
}
.month-container__day--spacer {
  border: none;
}
.month-container__day--spacer:first-child {
  border: none;
}
.month-container__day--spacer:last-child {
  border: none;
}
.month-container__week {
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  flex-wrap: nowrap;
  width: fit-content;
}
.month-container__week:last-child {
  border-bottom: 1px solid black;
}
.month-container__week--spacer,
.month-container__week--spacer:last-child {
  border-bottom: none;
  border-top: 1px solid black;
}
.month-container__weekday-label {
  box-sizing: border-box;
  border: 1px solid black;
  flex: 0 0 auto;
  height: 4rem;
  width: 4rem;
  min-width: 4rem;
  height: 1rem;
}
@media screen and (max-width: 768px) {
  .month-container__weekday-label {
    width: 3.5rem;
    min-width: 3.5rem;
  }
}
@media print {
  .month-container__weekday-label {
    min-width: unset;
    width: 14vw;
    height: 14vw;
    -webkit-print-color-adjust: exact;
    /* For Chrome/Safari compatibility */
    print-color-adjust: exact;
    /* Standard property for Firefox */
    color-adjust: exact;
    /* Older fallback */
    border-width: 2px;
  }
}
.month-container__weekday-label:first-child {
  border-left-width: 2px;
}
@media print {
  .month-container__weekday-label:first-child {
    border-left-width: 3px;
  }
}
.month-container__weekday-label:last-child {
  border-right-width: 2px;
}
@media print {
  .month-container__weekday-label:last-child {
    border-right-width: 3px;
  }
}
@media print {
  .month-container__weekday-label {
    height: 3vw;
  }
}
.month-container__weekday-label-text {
  font-size: 0.8rem;
  color: darkred;
  text-align: center;
  font-style: italic;
}
@media print {
  .month-container__weekday-label-text {
    font-size: 1rem;
  }
}
.month-container__weekday-label-text--mobile {
  display: none;
}
@media screen and (max-width: 768px) {
  .month-container__weekday-label-text {
    display: none;
  }
  .month-container__weekday-label-text--mobile {
    display: block;
  }
}
.month-container__weekday-labels {
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  flex-wrap: nowrap;
  width: fit-content;
  border-top: 1px solid black;
}
.month-container__weekday-labelsprint {
  border-top-width: 2px;
}
.month-container__week--spacer ~ .month-container__week--spacer {
  border-top: none;
}
