$vdpColor: #7485c2 !default;

@keyframes vdpSlideFromLeft {
    from { opacity: 0; transform: translate3d(-0.5em,0,0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
}

@keyframes vdpSlideFromRight {
    from { opacity: 0; transform: translate3d(0.5em,0,0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
}

@keyframes vdpToggleCalendar {
    from { opacity: 0; transform: scale(0.5); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes vdpFadeCalendar {
    from { opacity: 0; }
    to { opacity: 1; }
}

.vdp-toggle-calendar-enter-active.vdpPositionReady {

    transform-origin: top left;
    animation: vdpToggleCalendar .2s;

}

.vdp-toggle-calendar-leave-active {

    animation: vdpToggleCalendar .15s reverse;

}

.vdp-toggle-calendar-enter-active.vdpPositionFixed {

    animation: vdpFadeCalendar .3s;

}

.vdp-toggle-calendar-leave-active.vdpPositionFixed {

    animation: vdpFadeCalendar .3s reverse;

}

.vdpComponent {

    position: relative; display: inline-block; font-size: 10px;
    color: #303030;
    /*font-family: Helvetica, Arial, sans-serif;*/

}

.vdpComponent.vdpWithInput > input {

    padding-right: 30px;

}

.vdpClearInput {

    font-size: 1em; position: absolute; top: 0; bottom: 0; right: 0;
    width: 3em;

}

.vdpClearInput:before {

    content: '×'; width: 1.4em; height: 1.4em; line-height: 1.1em; box-sizing: border-box;
    position: absolute; left: 50%; top: 50%; margin: -0.7em 0 0 -0.7em;
    color: rgba(0,0,0,0.3); border: 1px solid rgba(0,0,0,0.15); border-radius: 50%;
    background-color: #fff;

}

.vdpClearInput:hover:before {
    box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.15);
}

.vdpOuterWrap.vdpFloating {

    position: absolute; padding: 0.5em 0; z-index: 220;

}

.vdpOuterWrap.vdpPositionFixed {

    position: fixed; left: 0; top: 0; bottom: 0; right: 0;
    padding: 2em;  display: flex; justify-content: center; align-items: center;
    background-color: rgba(0,0,0,0.3);

}

.vdpFloating .vdpInnerWrap {

    max-width: 30em;

}

.vdpPositionFixed .vdpInnerWrap {

    max-width: 30em; margin: 0 auto;
    border: 0; animation: vdpToggleCalendar 0.3s;

}

.vdpFloating.vdpPositionTop { top: 100%; }
.vdpFloating.vdpPositionBottom { bottom: 100%; }
.vdpFloating.vdpPositionLeft { left: 0; }
.vdpFloating.vdpPositionRight { right: 0; }

.vdpPositionTop.vdpPositionLeft { transform-origin: top left; }
.vdpPositionTop.vdpPositionRight { transform-origin: top right; }
.vdpPositionBottom.vdpPositionLeft { transform-origin: bottom left; }
.vdpPositionBottom.vdpPositionRight { transform-origin: bottom right; }

.vdpInnerWrap {

    overflow: hidden; min-width: 28em; box-sizing: border-box; padding: 1em;
    background: #fff; box-shadow: 0 0.2em 1.5em rgba(0,0,0,0.06);
    border-radius: 0.5em; border: 1px solid rgba(0,0,0,0.15);

}

.vdpHeader {

    position: relative; padding: 0 1em 2.5em; margin: -1em -1em -2.5em;
    text-align: center; background: #f5f5f5;

}

.vdpClearInput,
.vdpArrow,
.vdpPeriodControl > button,
.vdp12HourToggleBtn {

     margin:0; padding: 0; border: 0; cursor: pointer; background: none;

}

.vdpArrow::-moz-focus-inner,
.vdpClearInput::-moz-focus-inner,
.vdpPeriodControl::-moz-focus-inner,
.vdp12HourToggleBtn::-moz-focus-inner {

    padding: 0; border: 0;

}

.vdpArrow {

    font-size: 1em; width: 5em; text-indent: -999em; overflow: hidden;
    position: absolute; top: 0; bottom: 2.5em; text-align: left;

}

.vdpArrow:before {

    content: ''; width: 2.2em; height: 2.2em;
    position: absolute; left: 50%; top: 50%; margin: -1.1em 0 0 -1.1em;
    border-radius: 100%; transition: background-color 0.2s;

}

.vdpArrow:hover,
.vdpArrow:focus,
.vdpArrow:active {
    outline: 0;
}

.vdpArrow:hover:before,
.vdpArrow:focus:before {

    background-color: rgba(0,0,0,0.03);

}

.vdpArrow:active:before {

    background-color: rgba(0,0,0,0.07);

}

.vdpArrowNext:before {

    margin-left: -1.4em;

}

.vdpArrow:after {

    content: ''; position: absolute; left: 50%; top: 50%;
    margin-top: -0.5em; width: 0; height: 0;
    border: 0.5em solid transparent;

}

.vdpArrowPrev {

    left: -0.3em;

}

.vdpArrowPrev:after {

    margin-left: -0.8em;
    border-right-color: $vdpColor;

}

.vdpArrowNext {

    right: -0.6em;

}

.vdpArrowNext:after {

    margin-left: -0.5em;
    border-left-color: $vdpColor;

}

.vdpPeriodControl {

    display: inline-block; position: relative;

}

.vdpPeriodControl > button {

    font-size: 1.5em; padding: 1em 0.4em; display: inline-block;

}

.vdpPeriodControl > select {

    position: absolute; left: 0; top: 0; width: 100%; height: 100%;
    cursor: pointer; opacity: 0; font-size: 1.6em;
    -webkit-appearance: none;

}

.vdpTable {

    width: 100%; table-layout: fixed; position: relative; z-index: 5;

}

.vdpNextDirection {

    animation: vdpSlideFromRight 0.5s;

}

.vdpPrevDirection {

    animation: vdpSlideFromLeft 0.5s;

}

.vdpCell, .vdpHeadCell {

    text-align: center; box-sizing: border-box;

}

.vdpCell {

    padding: 0.5em 0;

}

.vdpHeadCell {

    padding: 0.3em 0.5em 1.8em;

}

.vdpHeadCellContent {

    font-size: 1.3em; font-weight: normal;
    color: #848484;

}

.vdpCellContent {

    font-size: 1.4em; display: block; margin: 0 auto;
    width: 1.857em; line-height: 1.857em;
    text-align: center; border-radius: 100%;
    transition: background 0.1s, color 0.1s;

}

.vdpCell.outOfRange {

    color: #c7c7c7;

}

.vdpCell.today {

    color: $vdpColor;

}

.vdpCell.selected .vdpCellContent {

    color: #fff; background: $vdpColor;

}

@media (hover: hover) {

    .vdpCell.selectable:hover .vdpCellContent {

        color: #fff; background: $vdpColor;

    }

}

.vdpCell.selectable {

    cursor: pointer;

}

.vdpCell.disabled {

    opacity: 0.5;

}

.vdpTimeControls {

    padding: 1.2em 2em; position: relative; margin: 1em -1em -1em;
    text-align: center;
    background: #f5f5f5;
    /*border-top: 1px solid rgba(0,0,0,0.15);*/

}

.vdpTimeUnit {

    display: inline-block; position: relative; vertical-align: middle;

}

.vdpTimeUnit > pre,
.vdpTimeUnit > input {

    font-size: 1.7em; line-height: 1.3; padding: 0.1em 0.1em;
    word-wrap: break-word; white-space: pre-wrap;
    resize: none; margin: 0; box-sizing: border-box;
    color: #000; border: 0; border-bottom: 1px solid transparent;
    text-align: center;

}

.vdpTimeUnit > pre {

    visibility: hidden; font-family: inherit;

}

.vdpTimeUnit > input {

    position: absolute; top: 0; left: 0; overflow: hidden;
    height: 100%; width: 100%; outline: none; padding: 0;
    appearance: none; border-radius: 0; background: transparent;

    -webkit-appearance: textfield; -moz-appearance: textfield; appearance: textfield;

    &::selection {
        background-color: rgba($vdpColor, 0.15);
    }

}

.vdpTimeUnit > input:hover,
.vdpTimeUnit > input:focus {

    border-bottom-color: $vdpColor;

}

.vdpTimeUnit > input:disabled {

    border-bottom-color: transparent;

}

.vdpTimeUnit > input::-webkit-inner-spin-button,
.vdpTimeUnit > input::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.vdpTimeSeparator, .vdpTimeCaption {

    display: inline-block; vertical-align: middle; font-size: 1.3em;
    color: #848484;

}

.vdpTimeCaption {

    margin-right: 0.5em;

}

.vdp12HourToggleBtn {

    display: inline-block; vertical-align: middle;
    font-size: 1.3em; padding: 0 0.4em;
    color: #303030;

}

.vdp12HourToggleBtn:hover,
.vdp12HourToggleBtn:focus {

    color: $vdpColor; outline: 0;

}

.vdp12HourToggleBtn:disabled {

    color: #303030;

}

