.vanilla-calendar {
    width: 280px;
    min-width: min-content;
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
    background-color: transparent;
    padding: 12px;
    border-radius: 4px;
}

.vanilla-calendar button:focus-visible {
    outline: 1px solid darkorange;
}

.vanilla-calendar-header {
    position: relative;
    display: flex;
    align-items: center;
}

.vanilla-calendar-header__content {
    flex-grow: 1;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    white-space: pre-wrap;
}

.vanilla-calendar-week-numbers {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.vanilla-calendar-week-numbers__title {
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    color: lightseagreen;
    width: 28px;
    height: 18px;
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vanilla-calendar-week-numbers__content {
    display: grid;
    grid-auto-flow: row;
    row-gap: 2px;
    align-items: center;
    justify-items: center;
    flex-grow: 1;
}

.vanilla-calendar-wrapper {
    height: 200px;
    display: flex;
    gap: 4px;
}

.vanilla-calendar-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.vanilla-calendar-arrow {
    position: relative;
    right: 2px;
    display: block;
    font-size: 0;
    width: 18px;
    height: 18px;
    padding: 2px;
    background-color: transparent;
    cursor: pointer;
    border-radius: 4px;
    border: 0;
}

.vanilla-calendar-arrow::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 5px;
    width: 10px;
    height: 1px;
    background-color: black;
    transform: rotateZ(45deg);
}

.vanilla-calendar-arrow::after {
    content: '';
    position: absolute;
    left: 5px;
    bottom: 5px;
    width: 10px;
    height: 1px;
    background-color: black;
    transform: rotateZ(-45deg);
}

.vanilla-calendar-arrow:hover::before,
.vanilla-calendar-arrow:hover::after {
    background-color: lightseagreen;
}

.vanilla-calendar-arrow_prev {
    right: 0;
    left: 4px;
    transform: rotateZ(180deg);
}

.vanilla-calendar-months {
    border-radius: 4px;
    display: grid;
    column-gap: 6px;
    row-gap: 12px;
    grid-template-columns: repeat(4, 1fr);
    background-color: white;
    flex-grow: 1;
    align-items: center;
}

.vanilla-calendar-months_selecting .vanilla-calendar-months__month {
    cursor: pointer;
}

.vanilla-calendar-months_selecting .vanilla-calendar-months__month_disabled {
    cursor: default;
}

.vanilla-calendar-months__month {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 40px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    background-color: white;
    color: lightseagreen;
    padding: 2px;
    border-radius: 4px;
    border: 0;
    word-break: break-all;
}

.vanilla-calendar-months__month:hover {
    background-color: aliceblue;
}

.vanilla-calendar-months__month_selected {
    background-color: lightseagreen;
    color: white;
}

.vanilla-calendar-months__month_selected:hover {
    background-color: lightseagreen;
    color: white;
}

.vanilla-calendar-months__month_disabled {
    pointer-events: none;
    background-color: white;
    color: silver;
}

.vanilla-calendar-months__month_disabled:hover {
    background-color: white;
    color: silver;
}

.vanilla-calendar-month {
    font-size: 16px;
    line-height: 20px;
    font-weight: 600;
    color: #184b78;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px;
    border: 0;
    background-color: transparent;
}

.vanilla-calendar-month:hover {
    color: lightseagreen;
}

.vanilla-calendar-month_not-active {
    color: silver;
}

.vanilla-calendar-month_disabled {
    pointer-events: none;
    color: silver;
}

.vanilla-calendar-years {
    border-radius: 4px;
    display: grid;
    column-gap: 6px;
    row-gap: 12px;
    grid-template-columns: repeat(5, 1fr);
    background-color: white;
    flex-grow: 1;
    align-items: center;
}

.vanilla-calendar-years_selecting .vanilla-calendar-years__year {
    cursor: pointer;
}

.vanilla-calendar-years_selecting .vanilla-calendar-years__year_disabled {
    cursor: default;
}

.vanilla-calendar-years__year {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    height: 40px;
    font-size: 12px;
    line-height: 20px;
    font-weight: 700;
    background-color: white;
    color: lightseagreen;
    padding: 2px;
    border-radius: 4px;
    border: 0;
    word-break: break-all;
}

.vanilla-calendar-years__year:hover {
    background-color: aliceblue;
}

.vanilla-calendar-years__year_selected {
    background-color: lightseagreen;
    color: white;
}

.vanilla-calendar-years__year_selected:hover {
    background-color: lightseagreen;
    color: white;
}

.vanilla-calendar-years__year_disabled {
    pointer-events: none;
    background-color: white;
    color: silver;
}

.vanilla-calendar-years__year_disabled:hover {
    background-color: white;
    color: silver;
}

.vanilla-calendar-year {
    font-size: 16px;
    line-height: 20px;
    font-weight: 600;
    color: #184b78;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px;
    border: 0;
    background-color: transparent;
}

.vanilla-calendar-year:hover {
    color: lightseagreen;
}

.vanilla-calendar-year_not-active {
    color: silver;
}

.vanilla-calendar-year_disabled {
    pointer-events: none;
    color: silver;
}

.vanilla-calendar-week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    column-gap: 2px;
    justify-items: center;
    margin-bottom: 5px;
}

.vanilla-calendar-week__day {
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    color: #184b78;
    width: 28px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vanilla-calendar-week__day_weekend {
    color: #d34b18;
}

.vanilla-calendar-week-number {
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    color: lightseagreen;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vanilla-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    column-gap: 2px;
    row-gap: 2px;
    justify-items: center;
    align-items: center;
    flex-grow: 1;
}

.vanilla-calendar-days_selecting .vanilla-calendar-day__btn {
    cursor: pointer;
}

.vanilla-calendar-days_selecting .vanilla-calendar-day__btn_disabled {
    cursor: default;
}

.vanilla-calendar-day {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vanilla-calendar-day:focus-visible .vanilla-calendar-day__popup,
.vanilla-calendar-day:hover .vanilla-calendar-day__popup {
    opacity: 1;
    pointer-events: auto;
}

.vanilla-calendar-day__btn {
    font-size: 18px;
    line-height: 16px;
    font-weight: 400;
    color: black;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30%;
    background-color: #ffffff00;
    border: 0;
    cursor: default;
}

.vanilla-calendar-day__btn:hover {
    background-color: aliceblue;
}

.vanilla-calendar-day__btn_today {
    background-color: #184b78;
    color: aliceblue;
    font-weight: 600;
}

.vanilla-calendar-day__btn_today:hover {
    color: lightseagreen;
    background-color: aliceblue;
}

.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_next {
    background-color: whitesmoke;
    color: darkgray;
}

.vanilla-calendar-day__btn_selected {
    background-color: #289b95;
    color: white;
}

.vanilla-calendar-day__btn_selected:hover {
    background-color: #289b95;
    color: white;
}

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate {
    background-color: #68cec9;
    color: white;
}

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate:hover {
    background-color: #68cec9;
    color: white;
}

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next {
    background-color: whitesmoke;
    color: grey;
}

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next:hover {
    background-color: whitesmoke;
    color: grey;
}

.vanilla-calendar-day__btn_weekend,
.vanilla-calendar-day__btn_holiday {
    color: #d34b18;
}

.vanilla-calendar-day__btn_weekend:hover,
.vanilla-calendar-day__btn_holiday:hover {
    background-color: seashell;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_today,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today {
    color: #d34b18;
    background-color: seashell;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_next,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_next {
    color: darkgray;
    background-color: whitesmoke;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_disabled,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_disabled {
    color: lightgrey;
    background-color: whitesmoke;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected {
    background-color: #d34b18;
    color: white;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected:hover,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected:hover {
    background-color: #d34b18;
    color: white;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate {
    background-color: #ffaa8a;
    color: white;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate:hover,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_intermediate:hover {
    background-color: #ffaa8a;
    color: white;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next {
    background-color: whitesmoke;
    color: grey;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next:hover,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next:hover {
    background-color: whitesmoke;
    color: grey;
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_next,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_next {
    color: darkgray;
}

.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_next {
    background-color: transparent;
    color: darkgray;
}

.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_next:hover {
    background-color: white;
    color: darkgray;
}

.vanilla-calendar-day__btn_disabled {
    pointer-events: none;
    background-color: white;
    color: lightgrey;
}

.vanilla-calendar-day__btn_disabled:hover {
    background-color: white;
    color: lightgrey;
}

.vanilla-calendar-day__popup {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 100%;
    transform: translateX(-50%);
    width: 130px;
    padding: 16px 12px 8px;
    color: black;
    font-size: 12px;
    line-height: 14px;
    font-weight: 400;
    opacity: 0;
    pointer-events: none;
}

.vanilla-calendar-day__popup:hover {
    opacity: 1;
    pointer-events: auto;
}

.vanilla-calendar-day__popup::before {
    content: '';
    position: absolute;
    z-index: -1;
    left: 0;
    bottom: 0;
    width: 100%;
    height: calc(100% - 8px);
    display: block;
    border-radius: 4px;
    background-color: white;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
}

.vanilla-calendar-day__popup::after {
    content: '';
    position: absolute;
    z-index: -1;
    left: 50%;
    transform: translateX(-50%);
    top: 2px;
    display: block;
    height: 0;
    width: 0;
    border-color: transparent transparent white;
    border-style: solid;
    border-width: 0 10px 8px;
}

.vanilla-calendar-time {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    border-top: 1px solid gainsboro;
    padding: 12px 6px 0;
}

.vanilla-calendar-time__content {
    display: flex;
    align-items: center;
}

.vanilla-calendar-time__content input {
    box-sizing: border-box;
    position: relative;
    display: block;
    font-size: 18px;
    line-height: 18px;
    font-weight: 600;
    text-align: center;
    color: black;
    background-color: white;
    width: 100%;
    padding: 2px;
    margin: 0;
    border: 0;
    border-radius: 4px;
}

.vanilla-calendar-time__content input:hover {
    background-color: antiquewhite;
}

.vanilla-calendar-time__content input:disabled {
    cursor: default;
}

.vanilla-calendar-time__content input:disabled:hover {
    background-color: transparent;
}

.vanilla-calendar-time__content input:focus-visible {
    outline: 1px solid darkorange;
    background-color: white;
}

.vanilla-calendar-time__content input.vanilla-calendar-is-focus {
    background-color: antiquewhite;
}

.vanilla-calendar-time__hours {
    position: relative;
    width: 25px;
    margin-right: 6px;
}

.vanilla-calendar-time__hours::after {
    content: ':';
    display: block;
    position: absolute;
    right: -5px;
    top: 50%;
    transform: translateY(-50%);
    margin-top: -1px;
    font-size: 14px;
    line-height: 14px;
    font-weight: 600;
    color: black;
}

.vanilla-calendar-time__minutes {
    width: 25px;
}

.vanilla-calendar-time__keeping {
    cursor: pointer;
    display: block;
    font-size: 11px;
    line-height: 12px;
    font-weight: 400;
    color: gray;
    margin-left: 1px;
    margin-top: 5px;
    padding: 2px;
    border: 0;
    background-color: transparent;
    border-radius: 4px;
}

.vanilla-calendar-time__keeping:hover {
    background-color: antiquewhite;
}

.vanilla-calendar-time__keeping:disabled {
    cursor: default;
}

.vanilla-calendar-time__keeping:disabled:hover {
    background-color: transparent;
}

.vanilla-calendar-time__ranges {
    display: flex;
    flex-direction: column;
}

.vanilla-calendar-time__range {
    font-size: 0;
    position: relative;
    z-index: 1;
}

.vanilla-calendar-time__range::before {
    content: '';
    width: 1px;
    height: 8px;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    left: 0;
    top: 5px;
    margin-top: 1px;
    background-color: gainsboro;
}

.vanilla-calendar-time__range::after {
    content: '';
    width: 1px;
    height: 8px;
    position: absolute;
    z-index: 1;
    pointer-events: none;
    right: 0;
    top: 5px;
    margin-top: 1px;
    background-color: gainsboro;
}

.vanilla-calendar-time__range:hover input::-webkit-slider-thumb {
    border-color: gray;
}

.vanilla-calendar-time__range:hover input::-moz-range-thumb {
    border-color: gray;
}

.vanilla-calendar-time__range input {
    width: 100%;
    position: relative;
    appearance: none;
    height: 20px;
    cursor: pointer;
    margin: 0;
    outline: none;
}

.vanilla-calendar-time__range input:focus-visible::-webkit-slider-thumb {
    border-color: darkorange;
}

.vanilla-calendar-time__range input:focus-visible::-moz-range-thumb {
    border-color: darkorange;
}

.vanilla-calendar-time__range input::-webkit-slider-thumb {
    appearance: none;
    margin-top: -8px;
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    border: 1px solid gainsboro;
    height: 16px;
    width: 10px;
    box-shadow: none;
    border-radius: 3px;
    background-color: white;
    cursor: pointer;
}

.vanilla-calendar-time__range input::-moz-range-thumb {
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    border: 1px solid gainsboro;
    height: 16px;
    width: 10px;
    box-shadow: none;
    border-radius: 3px;
    background-color: white;
    cursor: pointer;
}

.vanilla-calendar-time__range input::-webkit-slider-runnable-track {
    box-sizing: border-box;
    width: 100%;
    height: 1px;
    margin-top: 1px;
    cursor: pointer;
    background-color: gainsboro;
}

.vanilla-calendar-time__range input::-moz-range-track {
    box-sizing: border-box;
    width: 100%;
    height: 1px;
    margin-top: 1px;
    cursor: pointer;
    background-color: gainsboro;
}
