:root {
    --default-bg: #f7f7f7;
    --default-color: color(var(--default-bg) contrast(50%));
    --default-disabled-color: color(var(--default-color) blend(var(--default-bg) 70%));
    --default-theme: #4eccc4;

    --dark-bg: #263238;
    --dark-color: color(var(--dark-bg) contrast(50%));
    --dark-disabled-color: color(var(--dark-color) blend(var(--dark-bg) 70%));
    --dark-theme: #50ccc4;

    --ios-bg: #f7f7f7;
    --ios-color: color(var(--ios-bg) contrast(50%));
    --ios-disabled-color: color(var(--ios-color) blend(var(--ios-bg) 70%));
    --ios-theme: #dbdbdb;

    --android-bg: #f5f5f5;
    --android-color: color(var(--android-bg) contrast(50%));
    --android-disabled-color: color(var(--android-color) blend(var(--android-bg) 70%));
    --android-theme: #31b6e7;

    --android-dark-bg: #292829;
    --android-dark-color: color(var(--android-dark-bg) contrast(50%));
    --android-dark-disabled-color: color(var(--android-dark-color) blend(var(--android-dark-bg) 70%));
}

.datepicker-modal {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,.6);
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.datepicker {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 1;
    font-size: 16px;
    text-align: center;
    font-family: arial,verdana,sans-serif;
    box-sizing: content-box;
    -webkit-font-smoothing: antialiased;
    user-select: none;

    .datepicker-header {
        padding: 0 .5em;
        min-height: 2em;
        line-height: 2em;
        font-size: 1.125em;
    }

    .datepicker-navbar {
        padding: 0 .5em .5em .5em;
        overflow: hidden;
    }

    .datepicker-navbar-btn {
        height: 2.5em;
        line-height: 2.5em;
        float: right;
        padding: 0 1em;
        cursor: pointer;
    }

    .datepicker-caption {
        display: flex;
        padding: .5em .25em;
    }

    .datepicker-caption-item {
        flex: 1;
        margin: 0 .25em;
        height: 40px;
        line-height: 40px;
        font-size: 1.2em;
    }

    .datepicker-content {
        display: flex;
        padding: .5em .25em;
    }

    .datepicker-col-1 {
        flex: 1;
        margin: 0 .25em;
    }

    .datepicker-viewport {
        height: 200px;
        position: relative;
        overflow: hidden;
        &::after {
            content: '';
            position: absolute;
            z-index: 2;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            pointer-events: none;
        }
    }

    .datepicker-wheel {
        position: absolute;
        height: 40px;
        top: 50%;
        margin-top: -20px;
        width: 100%;
    }

    .datepicker-scroll {
        list-style-type: none;
        padding: 0;
        &>li {
            height: 40px;
            line-height: 40px;
            font-size: 1.375em;
            cursor: pointer;
        }
    }
}

.datepicker {

    /* default */
    &.default {
        background-color: var(--default-bg);

        .datepicker-header {
            color: var(--default-theme);
        }
        .datepicker-wheel {
            border-top: 1px solid var(--default-theme);
            border-bottom: 1px solid var(--default-theme);
        }
        .datepicker-caption-item {
            color: var(--default-color);
        }
        .datepicker-scroll {
            li {
                color: var(--default-color);
            }

            li.disabled {
                color: var(--default-disabled-color);
            }
        }
        .datepicker-navbar-btn {
            color: var(--default-theme);
        }
    }

    /* dark */
    &.dark {
        background-color: var(--dark-bg);

        .datepicker-header {
            color: var(--dark-theme);
        }
        .datepicker-wheel {
            border-top: 1px solid var(--dark-theme);
            border-bottom: 1px solid var(--dark-theme);
        }
        .datepicker-caption-item {
            color: var(--dark-color);
        }
        .datepicker-scroll {
            li {
                color: var(--dark-color);
            }

            li.disabled {
                color: var(--dark-disabled-color);
            }
        }
        .datepicker-navbar-btn {
            color: var(--dark-theme);
        }
    }

    /* ios */
    &.ios {
        background-color: var(--ios-bg);
        .datepicker-col-1 {margin: 0}

        .datepicker-header {
            color: var(--ios-color);
            padding: 0 3.5em;
        }
        .datepicker-viewport {
            &::after {
                background: linear-gradient(#f7f7f7,rgba(245,245,245,0)52%,rgba(245,245,245,0)48%,#f7f7f7);
            }
        }
        .datepicker-wheel {
            border-top: 1px solid var(--ios-theme);
            border-bottom: 1px solid var(--ios-theme);
        }
        .datepicker-caption-item {
            color: var(--ios-color);
        }
        .datepicker-scroll {
            li {
                color: var(--ios-color);
            }

            li.disabled {
                color: var(--ios-disabled-color);
            }
        }

        .datepicker-navbar {
            position: absolute;
            z-index: 2;
            top: 0;
            left: 0;
            width: 100%;
            padding: 0;
            border-bottom: 1px solid #acacac;
        }
        .datepicker-navbar-btn {
            color: #007aff;
            &:nth-child(2) {
                float: left;
            }
        }

        .datepicker-content {
            padding-top: 48px;
        }

        .datepicker-header + .datepicker-content {
          padding-top: 0;
        }

        .datepicker-caption + .datepicker-content {
          padding-top: 0;
        }
    }


    /* android */
    &.android, &.android-dark {
        background-color: var(--android-bg);

        .datepicker-header {
            color: var(--android-theme);
            border-bottom: 2px solid var(--android-theme);
        }
        .datepicker-col-1 {margin: 0 .625em}
        .datepicker-viewport {
            &::after {
                background-image: linear-gradient(#f5f5f5,rgba(245,245,245,0)52%,rgba(245,245,245,0)48%,#f5f5f5);
            }
        }
        .datepicker-wheel {
            border-top: 2px solid var(--android-theme);
            border-bottom: 2px solid var(--android-theme);
        }
        .datepicker-caption-item {
            color: var(--android-color);
        }
        .datepicker-scroll {
            li {
                font-size: 1.125em;
                color: var(--android-color);
            }

            li.disabled {
                color: var(--android-disabled-color);
            }
        }

        .datepicker-navbar {
            display: flex;
            border-top: 1px solid #d9d4d4;
            padding: 0;
        }
        .datepicker-navbar-btn {
            padding: 0;
            color: #000;
            flex: 1;
            &:nth-child(2) {
                border-left: 1px solid #d9d4d4;
            }
        }
    }

    /* android-dark */
    &.android-dark {
        background-color: var(--android-dark-bg);
        .datepicker-viewport {
            &::after {
                background-image: linear-gradient(#282828,rgba(40,40,40,0)52%,rgba(40,40,40,0)48%,#282828);
            }
        }
        .datepicker-caption-item {
            color: var(--android-dark-color);
        }
        .datepicker-scroll {
            li {
                color: var(--android-dark-color);
            }

            li.disabled {
                color: var(--android-dark-disabled-color);
            }
        }
        .datepicker-navbar { border-color: #424542}
        .datepicker-navbar-btn {
            color: #fff;
            &:nth-child(2) {
                border-color: #424542;
            }
        }
    }
}
