/*! name: @uvarov.frontend/vanilla-calendar | url: https://github.com/uvarov-frontend/vanilla-calendar */
.vanilla-calendar {
    width: 280px;
    min-width: -webkit-min-content;
    min-width: min-content;
    display: grid;
    grid-gap: 12px;
    gap: 12px;
    grid-template-columns: 1fr;
    background-color: #fff;
    padding: 12px;
    border-radius: 4px
}

.vanilla-calendar button.focus-visible {
    outline: 1px solid #ff8c00
}

.vanilla-calendar button:focus-visible {
    outline: 1px solid #ff8c00
}

.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: -webkit-max-content;
    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: #20b2aa;
    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;
    grid-row-gap: 2px;
    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: rgba(0, 0, 0, 0);
    cursor: pointer;
    border-radius: 4px;
    border: 0
}

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

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

.vanilla-calendar-arrow:hover::before,
.vanilla-calendar-arrow:hover::after {
    background-color: #20b2aa
}

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

.vanilla-calendar-months {
    border-radius: 4px;
    display: grid;
    grid-column-gap: 6px;
    -webkit-column-gap: 6px;
    column-gap: 6px;
    grid-row-gap: 12px;
    row-gap: 12px;
    grid-template-columns: repeat(4, 1fr);
    background-color: #fff;
    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: #fff;
    color: #20b2aa;
    padding: 2px;
    border-radius: 4px;
    border: 0;
    word-break: break-all
}

.vanilla-calendar-months__month:hover {
    background-color: #f0f8ff
}

.vanilla-calendar-months__month_selected {
    background-color: #20b2aa;
    color: #fff
}

.vanilla-calendar-months__month_selected:hover {
    background-color: #20b2aa;
    color: #fff
}

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

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

.vanilla-calendar-month {
    font-size: 16px;
    line-height: 20px;
    font-weight: 700;
    color: #000;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px;
    border: 0;
    background-color: rgba(0, 0, 0, 0)
}

.vanilla-calendar-month:hover {
    color: #20b2aa
}

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

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

.vanilla-calendar-years {
    border-radius: 4px;
    display: grid;
    grid-column-gap: 6px;
    -webkit-column-gap: 6px;
    column-gap: 6px;
    grid-row-gap: 12px;
    row-gap: 12px;
    grid-template-columns: repeat(5, 1fr);
    background-color: #fff;
    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: #fff;
    color: #20b2aa;
    padding: 2px;
    border-radius: 4px;
    border: 0;
    word-break: break-all
}

.vanilla-calendar-years__year:hover {
    background-color: #f0f8ff
}

.vanilla-calendar-years__year_selected {
    background-color: #20b2aa;
    color: #fff
}

.vanilla-calendar-years__year_selected:hover {
    background-color: #20b2aa;
    color: #fff
}

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

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

.vanilla-calendar-year {
    font-size: 16px;
    line-height: 20px;
    font-weight: 700;
    color: #000;
    cursor: pointer;
    border-radius: 4px;
    padding: 2px;
    border: 0;
    background-color: rgba(0, 0, 0, 0)
}

.vanilla-calendar-year:hover {
    color: #20b2aa
}

.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);
    grid-column-gap: 2px;
    -webkit-column-gap: 2px;
    column-gap: 2px;
    justify-items: center;
    margin-bottom: 5px
}

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

.vanilla-calendar-week__day_weekend {
    color: coral
}

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

.vanilla-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-column-gap: 2px;
    -webkit-column-gap: 2px;
    column-gap: 2px;
    grid-row-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: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: 12px;
    line-height: 16px;
    font-weight: 400;
    color: #000;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: #fff;
    border: 0;
    cursor: default
}

.vanilla-calendar-day__btn:hover {
    background-color: #f0f8ff
}

.vanilla-calendar-day__btn_today {
    background-color: #f0f8ff;
    color: #20b2aa;
    font-weight: 600
}

.vanilla-calendar-day__btn_today:hover {
    color: #20b2aa;
    background-color: #f0f8ff
}

.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_next {
    background-color: #f5f5f5;
    color: #a9a9a9
}

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

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

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

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

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next {
    background-color: #f5f5f5;
    color: gray
}

.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next:hover {
    background-color: #f5f5f5;
    color: gray
}

.vanilla-calendar-day__btn_weekend,
.vanilla-calendar-day__btn_holiday {
    color: coral
}

.vanilla-calendar-day__btn_weekend:hover,
.vanilla-calendar-day__btn_holiday:hover {
    background-color: #fff5ee
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_today,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today {
    color: coral;
    background-color: #fff5ee
}

.vanilla-calendar-day__btn_weekend.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_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_today.vanilla-calendar-day__btn_next {
    color: #a9a9a9;
    background-color: #f5f5f5
}

.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: #d3d3d3;
    background-color: #f5f5f5
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_selected,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected {
    background-color: coral;
    color: #fff
}

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

.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: #fff
}

.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: #fff
}

.vanilla-calendar-day__btn_weekend.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_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next {
    background-color: #f5f5f5;
    color: gray
}

.vanilla-calendar-day__btn_weekend.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_prev:hover,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_selected.vanilla-calendar-day__btn_next:hover {
    background-color: #f5f5f5;
    color: gray
}

.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_weekend.vanilla-calendar-day__btn_next,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_holiday.vanilla-calendar-day__btn_next {
    color: #a9a9a9
}

.vanilla-calendar-day__btn_prev,
.vanilla-calendar-day__btn_next {
    background-color: #fff;
    color: #a9a9a9
}

.vanilla-calendar-day__btn_prev:hover,
.vanilla-calendar-day__btn_next:hover {
    background-color: #fff;
    color: #a9a9a9
}

.vanilla-calendar-day__btn_disabled {
    pointer-events: none;
    background-color: #fff;
    color: #d3d3d3
}

.vanilla-calendar-day__btn_disabled:hover {
    background-color: #fff;
    color: #d3d3d3
}

.vanilla-calendar-day__popup {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 100%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 130px;
    padding: 16px 12px 8px;
    color: #000;
    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: #fff;
    box-shadow: 0 2px 20px rgba(0, 0, 0, .1)
}

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

.vanilla-calendar-time {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-gap: 12px;
    gap: 12px;
    border-top: 1px solid #dcdcdc;
    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: #000;
    background-color: #fff;
    width: 100%;
    padding: 2px;
    margin: 0;
    border: 0;
    border-radius: 4px
}

.vanilla-calendar-time__content input:hover {
    background-color: #faebd7
}

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

.vanilla-calendar-time__content input:disabled:hover {
    background-color: rgba(0, 0, 0, 0)
}

.vanilla-calendar-time__content input.focus-visible {
    outline: 1px solid #ff8c00;
    background-color: #fff
}

.vanilla-calendar-time__content input:focus-visible {
    outline: 1px solid #ff8c00;
    background-color: #fff
}

.vanilla-calendar-time__content input.vanilla-calendar-is-focus {
    background-color: #faebd7
}

.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%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    margin-top: -1px;
    font-size: 14px;
    line-height: 14px;
    font-weight: 600;
    color: #000
}

.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: rgba(0, 0, 0, 0);
    border-radius: 4px
}

.vanilla-calendar-time__keeping:hover {
    background-color: #faebd7
}

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

.vanilla-calendar-time__keeping:disabled:hover {
    background-color: rgba(0, 0, 0, 0)
}

.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: #dcdcdc
}

.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: #dcdcdc
}

.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;
    -webkit-appearance: none;
    appearance: none;
    height: 20px;
    cursor: pointer;
    margin: 0;
    outline: none
}

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

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

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

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

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

.vanilla-calendar-time__range input::-moz-range-thumb {
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    border: 1px solid #dcdcdc;
    height: 16px;
    width: 10px;
    box-shadow: none;
    border-radius: 3px;
    background-color: #fff;
    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: #dcdcdc
}

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