$aplayer-height: 66px;
$lrc-height: 30px;
$aplayer-height-lrc: $aplayer-height + $lrc-height - 6;

.aplayer {
    background: #fff;
    font-family: Arial, Helvetica, sans-serif;
    margin: 5px;
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.07), 0 1px 5px 0 rgba(0, 0, 0, 0.1);
    border-radius: 2px;
    overflow: hidden;
    user-select: none;
    line-height: initial;
    position: relative;

    * {
        box-sizing: content-box;
    }

    svg {
        width: 100%;
        height: 100%;
        
        path,
        circle {
            fill: #fff;
        }
    }

    &.aplayer-withlist {
        .aplayer-info {
            border-bottom: 1px solid #e9e9e9;
        }
        .aplayer-list {
            display: block;
        }
        .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu {
            display: inline;
        }
        .aplayer-icon-order {
            display: inline;
        }
    }

    &.aplayer-withlrc {
        .aplayer-pic {
            height: $aplayer-height-lrc;
            width: $aplayer-height-lrc;
        }
        .aplayer-info {
            margin-left: $aplayer-height-lrc;
            height: $aplayer-height-lrc;
            padding: 10px 7px 0 7px;
        }
        .aplayer-lrc {
            display: block;
        }
    }

    &.aplayer-narrow {
        width: $aplayer-height;
        
        .aplayer-info {
            display: none;
        }
        .aplayer-list {
            display: none;
        }
        .aplayer-pic,
        .aplayer-body {
            height: $aplayer-height;
            width: $aplayer-height;
        }
    }

    &.aplayer-fixed {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        margin: 0;
        z-index: 99;
        overflow: visible;
        max-width: 400px;
        box-shadow: none;

        .aplayer-list {
            margin-bottom: 65px;
            border: 1px solid #eee;
            border-bottom: none;
        }

        .aplayer-body {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            margin: 0;
            z-index: 99;
            background: #fff;
            padding-right: 18px;
            transition: all 0.3s ease;
            max-width: 400px;
        }

        .aplayer-lrc {
            display: block;
            position: fixed;
            bottom: 10px;
            left: 0;
            right: 0;
            margin: 0;
            z-index: 98;
            pointer-events: none;
            text-shadow: -1px -1px 0 #fff;

            &:before,
            &:after {
                display: none;
            }
        }

        .aplayer-info {
            transform: scaleX(1);
            transform-origin: 0 0;
            transition: all 0.3s ease;
            border-bottom: none;
            border-top: 1px solid #e9e9e9;

            .aplayer-music {
                width: calc(100% - 105px);
            }
        }

        .aplayer-miniswitcher {
            display: block;
        }

        &.aplayer-narrow {
            .aplayer-info {
                display: block;
                transform: scaleX(0);
            }
            .aplayer-body {
                width: $aplayer-height !important;
            }

            .aplayer-miniswitcher .aplayer-icon {
                transform: rotateY(0);
            }
        }

        .aplayer-icon-back,
        .aplayer-icon-play,
        .aplayer-icon-forward,
        .aplayer-icon-lrc {
            display: inline-block;
        }

        .aplayer-icon-back,
        .aplayer-icon-play,
        .aplayer-icon-forward,
        .aplayer-icon-menu {
            position: absolute;
            bottom: 27px;
            width: 20px;
            height: 20px;
        }

        .aplayer-icon-back {
            right: 75px;
        }

        .aplayer-icon-play {
            right: 50px;
        }

        .aplayer-icon-forward {
            right: 25px;
        }

        .aplayer-icon-menu {
            right: 0;
        }
    }

    &.aplayer-mobile {
        .aplayer-icon-volume-down {
            display: none;
        }
    }

    &.aplayer-arrow {
        .aplayer-icon-order,
        .aplayer-icon-loop {
            display: none;
        }
    }

    &.aplayer-loading {
        .aplayer-info .aplayer-controller .aplayer-loading-icon {
            display: block;
        }

        .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb {
            transform: scale(1);
        }
    }

    .aplayer-body {
        position: relative;
    }

    .aplayer-icon {
        width: 15px;
        height: 15px;
        border: none;
        background-color: transparent;
        outline: none;
        cursor: pointer;
        opacity: .8;
        vertical-align: middle;
        padding: 0;
        font-size: 12px;
        margin: 0;
        display: inline-block;

        path {
            transition: all .2s ease-in-out;
        }
    }

    .aplayer-icon-order,
    .aplayer-icon-back,
    .aplayer-icon-play,
    .aplayer-icon-forward,
    .aplayer-icon-lrc {
        display: none;
    }

    .aplayer-icon-lrc-inactivity {
        svg {
            opacity: 0.4;
        }
    }

    .aplayer-icon-forward {
        transform: rotate(180deg);
    }

    .aplayer-lrc-content {
        display: none;
    }

    .aplayer-pic {
        position: relative;
        float: left;
        height: $aplayer-height;
        width: $aplayer-height;
        background-size: cover;
        background-position: center;
        transition: all 0.3s ease;
        cursor: pointer;

        &:hover .aplayer-button {
            opacity: 1;
        }

        .aplayer-button {
            position: absolute;
            border-radius: 50%;
            opacity: 0.8;
            text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
            box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
            background: rgba(0, 0, 0, 0.2);
            transition: all 0.1s ease;

            path {
                fill: #fff;
            }
        }

        .aplayer-hide {
            display: none;
        }

        .aplayer-play {
            width: 26px;
            height: 26px;
            border: 2px solid #fff;
            bottom: 50%;
            right: 50%;
            margin: 0 -15px -15px 0;
            svg {
                position: absolute;
                top: 3px;
                left: 4px;
                height: 20px;
                width: 20px;
            }
        }

        .aplayer-pause {
            width: 16px;
            height: 16px;
            border: 2px solid #fff;
            bottom: 4px;
            right: 4px;
            svg {
                position: absolute;
                top: 2px;
                left: 2px;
                height: 12px;
                width: 12px;
            }
        }
    }

    .aplayer-info {
        margin-left: $aplayer-height;
        padding: 14px 7px 0 10px;
        height: $aplayer-height;
        box-sizing: border-box;

        .aplayer-music {
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
            margin: 0 0 13px 5px;
            user-select: text;
            cursor: default;
            padding-bottom: 2px;
            height: 20px;

            .aplayer-title {
                font-size: 14px;
            }

            .aplayer-author {
                font-size: 12px;
                color: #666;
            }
        }

        .aplayer-controller {
            position: relative;
            display: flex;

            .aplayer-bar-wrap {
                margin: 0 0 0 5px;
                padding: 4px 0;
                cursor: pointer !important;
                flex: 1;

                &:hover {
                    .aplayer-bar .aplayer-played .aplayer-thumb {
                        transform: scale(1);
                    }
                }

                .aplayer-bar {
                    position: relative;
                    height: 2px;
                    width: 100%;
                    background: #cdcdcd;

                    .aplayer-loaded {
                        position: absolute;
                        left: 0;
                        top: 0;
                        bottom: 0;
                        background: #aaa;
                        height: 2px;
                        transition: all 0.5s ease;
                    }

                    .aplayer-played {
                        position: absolute;
                        left: 0;
                        top: 0;
                        bottom: 0;
                        height: 2px;

                        .aplayer-thumb {
                            position: absolute;
                            top: 0;
                            right: 5px;
                            margin-top: -4px;
                            margin-right: -10px;
                            height: 10px;
                            width: 10px;
                            border-radius: 50%;
                            cursor: pointer;
                            transition: all .3s ease-in-out;
                            transform: scale(0);
                        }
                    }
                }
            }

            .aplayer-time {
                position: relative;
                right: 0;
                bottom: 4px;
                height: 17px;
                color: #999;
                font-size: 11px;
                padding-left: 7px;

                .aplayer-time-inner {
                    vertical-align: middle;
                }

                .aplayer-icon {
                    cursor: pointer;
                    transition: all 0.2s ease;

                    path {
                        fill: #666;
                    }

                    &.aplayer-icon-loop {
                        margin-right: 2px;
                    }

                    &:hover {
                        path {
                            fill: #000;
                        }
                    }

                    &.aplayer-icon-menu {
                        display: none;
                    }
                }

                &.aplayer-time-narrow {
                    .aplayer-icon-mode {
                        display: none;
                    }

                    .aplayer-icon-menu {
                        display: none;
                    }
                }
            }

            .aplayer-volume-wrap {
                position: relative;
                display: inline-block;
                margin-left: 3px;
                cursor: pointer !important;

                &:hover .aplayer-volume-bar-wrap {
                    height: 40px;
                }

                .aplayer-volume-bar-wrap {
                    position: absolute;
                    bottom: 15px;
                    right: -3px;
                    width: 25px;
                    height: 0;
                    z-index: 99;
                    overflow: hidden;
                    transition: all .2s ease-in-out;

                    &.aplayer-volume-bar-wrap-active {
                        height: 40px;
                    }

                    .aplayer-volume-bar {
                        position: absolute;
                        bottom: 0;
                        right: 10px;
                        width: 5px;
                        height: 35px;
                        background: #aaa;
                        border-radius: 2.5px;
                        overflow: hidden;

                        .aplayer-volume {
                            position: absolute;
                            bottom: 0;
                            right: 0;
                            width: 5px;
                            transition: all 0.1s ease;
                        }
                    }
                }
            }

            .aplayer-loading-icon {
                display: none;

                svg {
                    position: absolute;
                    animation: rotate 1s linear infinite;
                }
            }
        }
    }

    .aplayer-lrc {
        display: none;
        position: relative;
        height: $lrc-height;
        text-align: center;
        overflow: hidden;
        margin: -10px 0 7px;

        &:before {
            position: absolute;
            top: 0;
            z-index: 1;
            display: block;
            overflow: hidden;
            width: 100%;
            height: 10%;
            content: ' ';
            background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
            background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%);
            background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%);
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=0 );
        }

        &:after {
            position: absolute;
            bottom: 0;
            z-index: 1;
            display: block;
            overflow: hidden;
            width: 100%;
            height: 33%;
            content: ' ';
            background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 100%);
            background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,0.8) 100%);
            background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0.8) 100%);
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ccffffff',GradientType=0 );
        }

        p {
            font-size: 12px;
            color: #666;
            line-height: 16px !important;
            height: 16px !important;
            padding: 0 !important;
            margin: 0 !important;
            transition: all 0.5s ease-out;
            opacity: 0.4;
            overflow: hidden;

            &.aplayer-lrc-current {
                opacity: 1;
                overflow: visible;
                height: initial !important;
                min-height: 16px;
            }
        }

        &.aplayer-lrc-hide {
            display: none;
        }

        .aplayer-lrc-contents {
            width: 100%;
            transition: all 0.5s ease-out;
            user-select: text;
            cursor: default;
        }
    }

    .aplayer-list {
        overflow: auto;
        transition: all 0.5s ease;
        will-change: height;
        display: none;
        overflow: hidden;
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow-y: auto;

        &::-webkit-scrollbar {
            width: 5px;
        }

        &::-webkit-scrollbar-thumb {
            border-radius: 3px;
            background-color: #eee;
        }

        &::-webkit-scrollbar-thumb:hover {
            background-color: #ccc;
        }

        li {
            position: relative;
            height: 32px;
            line-height: 32px;
            padding: 0 15px;
            font-size: 12px;
            border-top: 1px solid #e9e9e9;
            cursor: pointer;
            transition: all 0.2s ease;
            overflow: hidden;
            margin: 0;

            &:first-child {
                border-top: none;
            }

            &:hover {
                background: #efefef;
            }

            &.aplayer-list-light {
                background: #e9e9e9;

                .aplayer-list-cur {
                    display: inline-block;
                }
            }

            .aplayer-list-cur {
                display: none;
                width: 3px;
                height: 22px;
                position: absolute;
                left: 0;
                top: 5px;
                cursor: pointer;
            }
            .aplayer-list-index {
                color: #666;
                margin-right: 12px;
                cursor: pointer;
            }
            .aplayer-list-author {
                color: #666;
                float: right;
                cursor: pointer;
            }
        }
    }

    .aplayer-notice {
        opacity: 0;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 12px;
        border-radius: 4px;
        padding: 5px 10px;
        transition: all .3s ease-in-out;
        overflow: hidden;
        color: #fff;
        pointer-events: none;
        background-color: #f4f4f5;
        color: #909399;
    }

    .aplayer-miniswitcher {
        display: none;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        height: 100%;
        background: #e6e6e6;
        width: 18px;
        border-radius: 0 2px 2px 0;

        .aplayer-icon {
            height: 100%;
            width: 100%;
            transform: rotateY(180deg);
            transition: all 0.3s ease;

            path {
                fill: #666;
            }

            &:hover {
                path {
                    fill: #000;
                }
            }
        }
    }
}

@keyframes aplayer-roll {
    0%{left:0}
    100%{left: -100%}
}

@keyframes rotate {
    0% {
        transform: rotate(0)
    }
    100% {
        transform: rotate(360deg)
    }
}