html {
    box-sizing: border-box;
  }
*, *:before, *:after {
    box-sizing: inherit;
}
html {
    width: 100%;
    height: 100%;
}
body {
    width: 100%;
    height: 100%;
    margin: 0;
    background: #212629;
    color: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
}
::-webkit-scrollbar {
    background: #212529;
    width: 6px;
}
::-webkit-scrollbar-thumb {
    background: #fff;
}
main {
    display: grid;
    padding-top: 60px;

    & aside {
        background: #000;
        box-shadow: 0px 4px 12px rgba(0,0,0,0.6);
        display: grid;
        position: fixed;
        z-index: 1000;
        top: 0px;
        left: 0px;
        right: 0px;
        grid-template-columns: 1fr 500px 1fr;

        & nav {
            display: flex;
            flex-direction: row;
            align-items: center;
            
            &.items-left { justify-content: flex-start; }
            &.items-right { justify-content: flex-end; }
            & .logo {
                width: 180px;
                padding: 15px 30px;
                height: 60px;
                & img {
                    height: 100%;
                }
            }
            & .upload-button {
                align-items: center;
                justify-content: center;
                padding: 0px 15px;
            }
            & .item {
                min-width: 60px;
                height: 60px;
                display: flex;
                justify-content: center;
                align-items: center;
                background: transparent;
                border-bottom: 2px solid transparent;
                color :#fff;
                position: relative;
                transition: 0.2s ease opacity, 0.2s ease background;
    
                & .indicator {
                    position: absolute;
                    top: 10px;
                    right: 10px;
                    width: 20px;
                    height: 20px;
                    font-size: 10px;
                    font-weight: bold;
                    background: rgb(226, 44, 120);
                    border-radius: 20px;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    overflow: hidden;
                }

                &:hover {
                    cursor: pointer;

                    & > .mdi {
                        opacity: 1;
                    }
                }
                &.active {
                    border-color: rgb(226, 44, 120);

                    & .mdi {
                        opacity: 1;
                    }
                }
    
                & > .mdi {
                    font-size: 22px;
                    opacity: 0.4;
                }
            }
            & .item-notifications {
                position: relative;

                & .notification-box {
                    width: 400px;
                    height: 500px;
                    position: absolute;
                    top: 70px;
                    right: 10px;
                    border-radius: 4px;
                    background: #000;
                    cursor: default;
                    box-shadow: 0px 4px 12px rgba(0,0,0,0.6);
                    display: none;
                    grid-template-rows: auto 1fr;

                    & > header {
                        display: grid;
                        grid-template-columns: 1fr auto;
                        padding: 10px 15px;
                        align-items: center;

                        & span {
                            font-size: 14px;
                            font-weight: bold;
                            text-transform: uppercase;
                            letter-spacing: 0.25em;
                        }
                    }

                    & .notification-list {
                        overflow-y: scroll;
                        display: flex;
                        background: rgba(255,255,255,0.075);
                        flex-direction: column;

                        & .notification-item {
                            display: grid;
                            grid-template-columns: 32px 1fr;
                            grid-gap: 10px;
                            padding: 10px;
                            color: #fff;
                            text-decoration: none;
                            align-items: center;

                            & .notification-icon {
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                width: 32px;
                                height: 32px;
                            }
                            & .cover {
                                width: 32px;
                                height: 32px;
                                background-position: center;
                                background-size: cover;
                            }

                            & .notification-text {
                                font-size: 12px;
                                line-height: 1.5;
                            }

                            &:hover {
                                background: rgba(255,255,255,0.1);
                                cursor: pointer;
                            }
                        }
                    }

                    &:after {
                        bottom: 100%;
                        right: 12px;
                        border: solid transparent;
                        content: " ";
                        height: 0;
                        width: 0;
                        position: absolute;
                        pointer-events: none;
                        border-color: rgba(0, 0, 0, 0);
                        border-bottom-color: #000;
                        border-width: 8px;
                    }
                }
                &:focus-within {
                    outline: 0;

                    & .notification-box {
                        display: grid;
                    }
                    & > .mdi {
                        opacity: 1;
                    }
                }
            }
            & .item-user {
                position: relative;

                & .user-avatar {
                    width: 32px;
                    height: 32px;
                    background-position: center;
                    background-size: cover;
                    border-radius: 50px;
                }
                & .user-actions {
                    width: 300px;
                    position: absolute;
                    top: 70px;
                    right: 10px;
                    border-radius: 4px;
                    background: #000;
                    box-shadow: 0px 4px 12px rgba(0,0,0,0.6);
                    display: none;

                    & .user-action-item {
                        color: #fff;
                        text-decoration: none;
                        display: grid;
                        grid-template-columns: 50px 1fr;

                        & .mdi {
                            width: 50px;
                            height: 50px;
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            font-size: 22px;
                            opacity: 0.6;
                        }
                        & span {
                            align-self: center;
                        }
                        &:hover {
                            background: rgba(255,255,255,0.1);
                        }
                    }

                    &:after {
                        bottom: 100%;
                        right: 12px;
                        border: solid transparent;
                        content: " ";
                        height: 0;
                        width: 0;
                        position: absolute;
                        pointer-events: none;
                        border-color: rgba(0, 0, 0, 0);
                        border-bottom-color: #000;
                        border-width: 8px;
                    }
                }
                &:focus-within {
                    outline: 0;

                    & .user-actions {
                        display: grid;
                    }
                }
            }
        }
        & .search {
            align-self: center;
            justify-self: center;

            input {
                width: 100%;
                font-family: 'Open Sans', sans-serif;
                font-size: 14px;
                color: #fff;
                border-radius: 4px;
                padding: 9px 20px;
                background: rgba(255,255,255,0.15);
                border: 0px;
                transition: 0.2s ease-in-out all;
                min-width: 500px;
            
                &:hover {
                    background: rgba(255,255,255,0.3);
                    color: #fff;
                }
                &:focus {
                    outline: 0;
                    background: rgba(255,255,255,0.3);
                }
                &::placeholder {
                    color: rgba(255,255,255,0.5);
                }
            }
        }
    }
}
button, .button {
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    text-decoration: none;
    border: 0px;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.1em;
    background: linear-gradient(135deg, rgba(255,255,255,0.3), rgba(255,255,255,0.1));
    padding: 10px 20px;
    border-radius: 4px;
    text-transform: uppercase;
    transition: 0.2s ease-in-out all;
    cursor: pointer;

    &:hover {
        opacity: 0.6;
        text-decoration: none;
    }
    &:focus {
        outline: 0;
    }
    &:disabled, &.button-disabled {
        opacity: 0.4;
        cursor: not-allowed;
    }

    &.button-icon {
        padding: 5px 15px;
        font-size: 18px;
    }
}
input[type='range'] {
    overflow: hidden;
    width: 100%;
    outline: none;
    -webkit-appearance: none;
    background-color: #ddd;
}
input[type='range']::-webkit-slider-runnable-track {
    height: 10px;
    -webkit-appearance: none;
    color: #13bba4;
    margin-top: -1px;
}
input[type='range']::-webkit-slider-thumb {
    width: 10px;
    -webkit-appearance: none;
    height: 10px;
    cursor: ew-resize;
    background: #000;
    box-shadow: -800px 0 0 800px rgb(226, 44, 120);
}
/** FF*/
input[type="range"]::-moz-range-progress {
    background-color: rgb(226, 44, 120); 
}
input[type="range"]::-moz-range-track {  
    background-color: #ddd;
}
/* IE*/
input[type="range"]::-ms-fill-lower {
    background-color: rgb(226, 44, 120); 
}
.flex-break {
    flex-basis: 100%;
    height: 0;
}
.song-row {
    display: grid;
    grid-template-rows: auto 1fr;
    grid-gap: 5px;
    
    & .song-list {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        grid-gap: 15px;
    }
    & .song-list-5 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        grid-gap: 15px;
    }
    & .pagination {
        text-align: right;
        margin-top: 25px;

        & .button {
            margin-left: 10px;
        }
    }
}
.playlist-row {
    display: grid;
    grid-template-rows: auto 1fr;
    grid-gap: 5px;

    & .playlist-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 15px;
    }
    & .pagination {
        text-align: right;
        margin-top: 25px;

        & .button {
            margin-left: 10px;
        }
    }
}
.list-noresults {
    background: rgba(255,255,255,0.1);
    border-radius: 6px;
    padding: 25px;
    opacity: 0.6;
    text-align: center;
}

.song-item {
    background: rgba(255,255,255,0.1);
    transition: 0.2s ease-in-out transform, 0.2s ease-in-out box-shadow;
    overflow: hidden;
    border-radius: 6px;
    color: #fff;
    text-decoration: none;

    & .song-cover {
        background: url("../img/defaultAlbumArt.jpg");
        background-size: cover;
        width: 100%;
        padding-top: 100%;
        position: relative;
        background-position: center;

        & .song-charter {
            position: absolute;
            z-index: 2;
            top: 0px;
            left: 0px;
            right: 0px;
            bottom: 0px;
            background: linear-gradient(180deg, rgba(0,0,0,0.2), rgba(0,0,0,0.8));
            opacity: 0;
            padding: 15px;
            overflow: hidden;
            display: grid;
            transition: 0.2s ease-in-out opacity;
            grid-template-columns: auto 1fr;
            grid-gap: 10px;
            align-items: flex-end;

            & .song-charter-info {
                display: grid;
                align-items: center;

                & .mdi {
                    font-size: 18px;
                }
                & span {
                    font-size: 12px;
                    color: transparent;
                    transition: 0.2s ease-in-out color;
                    overflow: hidden;
                    white-space: nowrap;
                }
            }
        }
    }

    & .song-metadata {
        padding: 15px;
        display: grid;
        grid-template-rows: 1fr auto auto;

        & .song-title {
            font-weight: bold;
            overflow: hidden;
            white-space: nowrap;
        }
        & .song-artist {
            margin-top: 5px;
            opacity: 0.6;
            overflow: hidden;
            white-space: nowrap;
        }
        & .song-difficulties {
            margin-top: 10px;
            height: 20px;
            display: flex;

            & .difficulty {
                background: #fff;
                color: #000;
                border-radius: 4px;
                padding: 3px 8px;
                margin-right: 4px;
                font-size: 10px;

                & span {
                    // padding-right: 3px;
                    font-weight: bold;
                }
            }
        }
    }
    &:not(.inactive):hover {
        cursor: pointer;
        background: rgba(255,255,255,0.2);
        box-shadow: 0px 4px 20px 5px rgba(0, 0, 0, 0.4);

        & .song-cover {
            & .song-charter {
                opacity: 1;
            }
        }
    }
    &.inactive {
        box-shadow: 0px 2px 10px 5px rgba(0, 0, 0, 0.2);
    }
}
.user-row {
    display: grid;
    grid-template-rows: auto 1fr;
    grid-gap: 5px;

    & .user-header {
        display: grid;
        grid-template-columns: 1fr auto;

        & .row-title {
            letter-spacing: 0.25em;
            font-size: 14px;
            font-weight: bold;
            text-transform: uppercase;

            &.row-title-noactions {
                margin: 10px 0px;
            }
        }
    }
    & .user-list {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-gap: 15px;
    }
}
.user-item {
    background: #383c3f;
    transition: 0.2s ease-in-out transform, 0.2s ease-in-out box-shadow;
    overflow: hidden;
    border-radius: 6px;
    display: grid;
    padding: 10px;
    color: #fff;
    text-decoration: none;
    grid-gap: 15px;
    grid-template-columns: 32px 1fr;

    & .user-avatar {
        background: rgba(255,255,255,0.1);
        background-size: cover;
        background-position: center;
        width: 32px;
        height: 32px;
        border-radius: 32px;
    }

    & .user-metadata {
        display: flex;
        align-items: center;

        & .user-name {
            font-weight: bold;
            overflow: hidden;
            white-space: nowrap;
        }
        & .user-badge {
            font-size: 18px;
            margin-left: 10px;
        }
    }

    &:not(.inactive):hover {
        cursor: pointer;
        background: rgba(255,255,255,0.2);
        box-shadow: 0px 4px 20px 5px rgba(0, 0, 0, 0.4);
    }
    &.inactive {
        box-shadow: 0px 2px 10px 5px rgba(0, 0, 0, 0.2);
    }
}
.playlist-item {
    height: 200px;
    background: rgba(255,255,255,0.1);
    background-position: center;
    background-size: cover;
    border-radius: 6px;
    color: #fff;
    text-decoration: none;
    transition: 0.2s ease all;

    & .shade {
        width: 100%;
        height: 100%;
        background: rgba(0,0,0, 0.4);
        transition: 0.2s ease all;
        display: flex;
        justify-content: center;
        align-items: center;

        & .content {
            text-align: center;
            text-shadow: 0 4px 18px rgba(0, 0, 0, 0.6);

            & .title {
                font-size: 32px;
                margin-bottom: 5px;
                font-family: 'Oswald', sans-serif;

                & .official-badge {
                    display: inline-block;
                    font-family: 'Open Sans', sans-serif;
                    font-weight: bold;
                    font-size: 10px;
                    padding: 2px 8px;
                    border-radius: 4px;
                    background: #fff;
                    color: #000;
                    text-shadow: 0px 0px 0px transparent;
                    margin-left: 10px;
                    transform: translateY(-8px);
                }
            }

            & .quickinfo {
                font-size: 18px;
                opacity: 0.6;
            }
        }
    }
    &:hover {
        cursor: pointer;
        box-shadow: 0px 4px 20px 5px rgba(0, 0, 0, 0.4);

        & .shade {
            opacity: 0;
        }
    }
}
@media screen and (max-width: 550px) {
    .song-row {
        & .song-list {
            grid-template-columns: repeat(1, 1fr);
        }
    }
}
@media screen and (min-width: 550px) and (max-width: 780px) {
    .song-row {
        & .song-list {
            grid-template-columns: repeat(2, 1fr);
        }
    }
}
@media screen and (min-width: 780px) and (max-width: 1000px) {
    .song-row {
        & .song-list {
            grid-template-columns: repeat(3, 1fr);
        }
    }
}
@media screen and (min-width: 1000px) and (max-width: 1400px) {
    .song-row {
        & .song-list {
            grid-template-columns: repeat(4, 1fr);
        }
    }
}
@media screen and (min-width: 1400px) {
    .song-row {
        & .song-list {
            grid-template-columns: repeat(6, 1fr);
        }
    }
}