:root {
    --baseColour: #111;
    --mainColour: #269FE4;
    --mainRadius: 5px;
    --subRadius: 10px;
    --sidePadding: 5%;
    --fontColor: #fff;
    --altFontColor: #B1B1B1;
}

html::-webkit-scrollbar {
    display: none;
}

html {
    box-sizing: border-box;
    height: 100%;
    width: 100%;
    background-color: #111111;
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-tap-highlight-color: transparent;
}

* {
    user-select: none;
}

body {
    background-color: #111111;
    color: var(--fontColor);
    font-family: 'Poppins', sans-serif;
    height: 100%;
    width: 100%;
    font-size: 0.95em;
    /* disable pull to refresh \/\/\/ */
    /* overscroll-behavior-y: contain; */
}

#body_content {
    padding-bottom: 30%;
    padding-top: 15%;
    transform-origin: top;
    transition: all 0.2s;
}

.body_content_dismiss {
    transform: scale(0.98);
    opacity: 0;
}

.body_loader {
    content: "";
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    /* opacity: 1; */

    background-position: center;
    background-repeat: no-repeat;
    background-size: 0%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' style='margin: auto; background: rgb(17, 17, 17); display: block;' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Ccircle cx='50' cy='50' r='38' stroke='%23555555' stroke-width='10' fill='none'%3E%3C/circle%3E%3Ccircle cx='50' cy='50' r='38' stroke='%23ffffff' stroke-width='10' stroke-linecap='round' fill='none'%3E%3CanimateTransform attributeName='transform' type='rotate' repeatCount='indefinite' dur='2s' values='0 50 50;180 50 50;720 50 50' keyTimes='0;0.5;1'%3E%3C/animateTransform%3E%3Canimate attributeName='stroke-dasharray' repeatCount='indefinite' dur='2s' values='31.038935417467155 207.72210625535712;174.29556042116172 64.46548125166254;31.038935417467155 207.72210625535712' keyTimes='0;0.5;1'%3E%3C/animate%3E%3C/circle%3E%3C/svg%3E");
    animation: body_load_anim 0.3s ease 0s 1 normal forwards;
    /* animation: name duration timing-function delay iteration-count direction fill-mode; */
}

@keyframes body_load_anim {
    0% {
        background-size: 0%;
    }

    70% {
        background-size: 0%;
    }

    100% {
        background-size: 10%;
    }
}

/* .body_content_dismiss * {
    opacity: 0;
    transition: all 0.2s;
} */

/* ===== LOGIN PAGES ===== */
.logo_container {
    display: flex;
    justify-content: center;
    align-items: center;
    /* flex-direction: column; */
    /* padding-top: 30%; */
    font-size: 1.5em;
    /* border: 2px solid red; */
    transition: all 0.3s ease-in-out;
    /* position: fixed; */
    /* bottom: 65%; */
    margin-bottom: 30px;
    top: 7%;
    width: 100%;
}

.loginbody .logo_container {
    /* transform: translateY(25%); */
    /* transform: translateY(80%); */
}

.login_logo {
    width: 85px;
    height: 10vh;
    margin-right: 20px;
}

.login_header {
    margin: 0;
}

.signup_form_container,
.login_form_container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    transition: all 0.3s ease-in-out;
    position: fixed;
    width: 100%;
    bottom: 20px;
}

.signup_form,
.login_form {
    width: 80%;
    display: flex;
    flex-direction: column;
}

.input_fields {
    background-color: #393939;
    color: var(--fontColor);
    border: 1px solid transparent;
    outline: none;
    padding: 12px 20px;
    margin-bottom: 20px;
    border-radius: var(--subRadius);
    transition: all 0.2s ease-in-out;
}

.input_fields::placeholder {
    color: #ACACAC;
}

.input_fields:focus {
    border: 1px solid var(--mainColour);
}

input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    height: 1.2em;
    width: 1.2em;
    border-radius: 50em;
    background: url(https://pro.fontawesome.com/releases/v5.10.0/svgs/solid/times-circle.svg) no-repeat 50% 50%;
    background-size: contain;
    opacity: 0;
    pointer-events: none;
    filter: invert(1);
    transform: translateX(50%);
    transition: all 0.1s;
}

input[type="search"]:focus::-webkit-search-cancel-button {
    opacity: .3;
    pointer-events: all;
}


.signup_btns_container,
.login_btns_container {
    margin-top: 20%;
    display: flex;
    flex-direction: column;
}

.login_btns {
    border-radius: var(--subRadius);
    padding: 12px 20px;
    color: white;
    font-size: 1em;
    background-color: var(--mainColour);
    font-weight: 600;
    border: none;
    outline: none;
    margin-bottom: 15px;
    transition: all 0.3s;
}

.google_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #454545;
    background-color: white;
    max-height: 45px;
    position: relative;
    overflow: hidden;
}

.google_logo {
    width: 24px;
    margin-right: 10px;
}

.g-signin2 {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0;
}

.g-signin2 * {
    position: absolute !important;
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
}

.login_btns:active {
    transform: scale(0.95);
}

.login_swap {
    font-size: 0.875em;
    color: #ACACAC;
    text-align: center;
    margin-top: 22px;
}

.login_swap a {
    text-decoration: none;
    color: var(--mainColour);
    font-weight: 600;
    margin-left: 5px;
}


.login_form_container {
    /* border: 2px solid red; */
    height: 100%;
    background-color: var(--baseColour);
    justify-content: flex-end;
    transform: translateX(110%);
    box-shadow: -6px 0px 14px 3px rgb(0 0 0 / 30%);
}

.login_btns_container {
    margin-top: 40%;
}

.logo_container {
    /* position: relative; */
    z-index: 10;
}

.loginbody .login_form_container {
    transform: translateX(0);
}

.loginbody .signup_form_container {
    /* transform: translateX(-110%); */
}


/* ===== HEADER ===== */

.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sidePadding);

    position: fixed;
    width: calc(100% - var(--sidePadding) *2);

    background: var(--baseColour);

    z-index: 4;
    transition: all 0.2s;
}

.header_hidden {
    transform: translateY(-100%);
    transition: all 0.2s;
}

.header_top {
    background: linear-gradient(0deg, rgba(17, 17, 17, 0.9) 50%, rgba(17, 17, 17, 1) 100%);
    backdrop-filter: blur(5px);
    transition: all 0.2s;
}

.header_box1 {
    display: flex;
    align-items: center;
    overflow: hidden;
    width: 30%;
    transition: all 0.3s;
}

.back_btn {
    display: none;
}

.header_box2 {
    display: flex;
    align-items: center;
}

.header_logo {
    width: 35px;
}

.header_text {
    font-weight: 700;
    font-size: 1.25em;
    padding-left: 12px;
    padding-top: 4px;
}

.header_search {
    width: 25px;
    padding-right: 60px;
    padding-top: 5px;
    transition: all 0.3s;
}

.header_pfp {
    border-radius: 100% !important;
    width: 40px;
    height: 40px;
    position: absolute;
    /* transform: translateY(-65%); */
    top: 0;
    margin-top: var(--sidePadding);
    right: var(--sidePadding);
    transition: all 0.3s;
}


/* ===== HOME PAGE ===== */

.pages {
    padding: 5% 0;
}

.home_page {
    /* padding: 5% var(--sidePadding); */
    overflow-x: hidden;
    min-height: 85vh;
    overflow-y: auto;
    touch-action: pan-y !important;
    transition: all 0.2s ease-in-out;
}

/* ===== FAVOURITES ===== */

.favourites {
    /* padding-left: var(--sidePadding); */
    padding-bottom: 5%;

}

.suggestions_selection {
    padding: 0 var(--sidePadding);
}

/* ===== TRACK ===== */
.section_selection {
    display: flex;
    overflow-x: scroll;
    padding-bottom: 5px;
}

.section_selection::-webkit-scrollbar {
    display: none;
}

.section_selection {
    -ms-overflow-style: none;
    /* IE and Edge */
    scrollbar-width: none;
    /* Firefox */
}

.section_title {
    padding-left: var(--sidePadding);
    font-size: 1.5em;
}

.track_card {
    width: 40%;
    max-width: 140px;
    /* border: 2px solid blue; */
    margin-left: 12px;
    transition: all 0.1s;
}

.track_card_empty {
    animation: recently_empty 300ms ease 0s 1 normal forwards;
}

.track_card_empty:active {
    transform: scale(1) !important;
}

@keyframes recently_empty {
    0% {
        margin-right: 0px;
    }

    100% {
        margin-right: 20px;
    }
}


.track_card:active {
    transform: scale(0.98);
}

.track_card:first-child {
    margin-left: var(--sidePadding);
}

.track_card:last-child {
    margin-right: var(--sidePadding);
}

.section_title>div {
    padding-right: 12px;
}

.track_img {
    width: 140px;
    /* height: 150px; */
    aspect-ratio: 1/1;
    object-fit: none;
    border-radius: var(--mainRadius);
    background-color: #1c1c1c;


}

.skeleton_load {
    background: linear-gradient(to right,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 0.2) 50%,
            rgba(255, 255, 255, 0) 80%),
        #1c1c1c;
    background-repeat: repeat-y;
    background-position: -100px 0;
    animation: shine 1s infinite forwards !important;
    color: transparent !important;
    border-radius: var(--mainRadius);
}

@keyframes shine {
    to {
        background-position: 200px 0,
            /* move highlight to right */
            0 0;
    }
}

.track_text {
    font-weight: 200;
    font-size: 0.9em;
    overflow: hidden;
    word-break: break-word;
    width: 100%;
}

.track_text * {
    margin-top: 7px;
    margin-bottom: 0px;
}

.track_title {
    font-weight: 400 !important;
    font-size: 1.1em;
    line-height: 1.5em;
    max-height: 3em;
    overflow: hidden;
}

.track_author_container {
    display: flex;
    margin-top: 5px !important;
    color: var(--altFontColor);
}

.track_author {
    max-width: 50%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.track_span {
    margin-left: 20px;
    position: relative;
}

.track_span::before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: var(--altFontColor);
    position: absolute;
    top: 50%;
    left: -14px;
    transform: translateY(-50%);
    border-radius: 100%;
}

/* ===== NAVBAR ===== */

.navbar_container {
    display: flex;
    justify-content: space-around;
    align-items: center;
    bottom: 0%;
    position: fixed;
    width: 100%;
    background: linear-gradient(0deg, rgba(29, 29, 29, 1) 50%, rgba(29, 29, 29, 0.9) 100%);
    /* opacity: 0.95; */
    backdrop-filter: blur(5px) brightness(0.5);
    min-height: 72px;
    z-index: 5;
}


.navbar_container * {
    display: flex;
    justify-content: center;
    color: var(--fontColor);
}

.navbtns {
    text-decoration: none;
    width: 34%;
    padding: 10px 0;
    transition: all 0.1s;
}

.navbtns:active {
    background: rgba(40, 40, 40, 1);
}

.search_button {
    border-radius: 0 var(--subRadius) var(--subRadius) 0;
}

.home_button {
    border-radius: var(--subRadius);
}

.library_button {
    border-radius: var(--subRadius) 0 0 var(--subRadius);
}

.navbar_container img {
    padding-right: 8px;
    width: 20px;
    object-fit: none;
    transition: all 0.1s;
}

.navbtns:active * {
    /* transform: scale(0.95); */
}


/* ===== THIS IS LIBRARY ===== */

.playlists_container {
    padding: 0 var(--sidePadding);
    margin-top: 16px;
}

.playlists_header {
    font-size: 1.5em;
}

.playlist_card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    text-decoration: none;
    color: var(--fontColor);
    height: 55px;
    transition: all 0.1s;
}

.playlist_card_empty {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    text-decoration: none;
    color: var(--fontColor);
    height: 55px;
    transition: all 0.1s;
    animation: suggest_empty 300ms ease 0s 1 normal forwards;
}

.suggested_card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    text-decoration: none;
    color: var(--fontColor);
    height: 55px;
    transition: all 0.1s;
}

@keyframes suggest_empty {
    0% {
        margin-bottom: 16px;
    }

    100% {
        margin-bottom: 30px;
    }
}

.playlist_card_shrink {
    transform-origin: top;
    transform: scaleY(0);
    height: 0px !important;
    margin-top: -16px;
}

.playlist_card:active {
    transform: scale(0.98) !important;
}

.playlist_img {
    width: 55px;
    height: 55px;
    aspect-ratio: 1/1;
    border-radius: 5px;
    object-fit: cover;
}

.playlists_card_box1 {
    display: flex;
    align-items: center;
}

.playlist_text {
    display: flex;
    flex-direction: column;
    margin-left: 15px;
    margin-top: 0;
}

.playlist_text p {
    margin: 3px 0;
}

.playlist_title {
    text-overflow: ellipsis;
    overflow: hidden;
    max-height: 1.4em;
    line-height: 1.4em;
}

.playlist_author {
    text-overflow: ellipsis;
    overflow: hidden;
    max-height: 1.4em;
    line-height: 1.4em;
}

.playlist_author_container {
    font-weight: 200;
    font-size: 0.9em;
    color: var(--altFontColor);
    margin-top: 0;
    display: flex;
    align-items: center;
}

.playlist_span {
    margin-left: 25px;
    position: relative;
}

.playlist_span::before {
    content: "";
    width: 5px;
    height: 5px;
    background-color: var(--altFontColor);
    position: absolute;
    top: 50%;
    left: -14px;
    transform: translateY(-50%);
    border-radius: 100%;
}

.more_options_container,
.edit_playlist {
    /* margin-right: 30px; */
    padding: 10px;
    padding-right: 0;
}

.edit_playlist {
    margin-right: 20px;
}

.playlists_selection {
    margin-top: 26px;
}

.playlist_3dots {}

.new_playlist_btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    text-decoration: none;
    color: var(--fontColor);
    height: 55px;
    transition: all 0.1s;
}

.new_playlist_pop_up {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    opacity: 0;
    display: none;
    transition: all 0.1s;
    width: 100%;
    height: 100%;
    z-index: 10;
}

.new_playlist_pop_up_prompt {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 var(--sidePadding);
    z-index: 10;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
    border-radius: var(--subRadius);
    background-color: #1D1D1D;

    min-height: 450px;
    height: 50%;
    width: calc(100% - (var(--sidePadding) * 4));
}


.new_playlist_pop_up_active {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.new_playlist_public {
    display: flex;
}

.new_playlist_unlisted {
    display: flex;
}

.new_playlist_private {
    display: flex;
}

.privacy_options {
    transition: all 0.1s;
    position: relative;
    z-index: 2;
    color: var(--altFontColor);
}

.privacy_options img {
    filter: brightness(0.5);
    transition: all 0.2s;
}

.privacy_options::before {
    content: "";
    height: 100%;
    width: calc(100% + (var(--sidePadding) * 2));
    position: absolute;
    display: block;
    top: 50%;
    left: calc(var(--sidePadding) * -1);
    backdrop-filter: contrast(1);
    transform: translateY(-50%);
    transition: all 0.2s;
    z-index: -1;
}

.privacy_options:active::before {
    backdrop-filter: contrast(0.5);

}

.privacy_options_active {
    color: var(--fontColor);
}

.privacy_options_active img {
    filter: brightness(10);
}

.new_playlist_text p:nth-child(1) {
    font-size: 0.9em;
    margin-bottom: 5px;
}

.new_playlist_text p:nth-child(2) {
    font-size: 0.7em;
    margin-top: 0px;
    color: var(--altFontColor);
}

.new_playlist_text {
    margin-left: 15px;
}

.new_playlist_pop_up_buttons {
    display: flex;
    justify-content: right;
}

.new_playlist_pop_up_btns {
    text-align: center;
    margin: 15px 20px;
    padding: 10px 20px;
    border-radius: var(--mainRadius);
    /* thiss looks doggy sorry  */
}

.new_playlist_pop_up_buttons_create {
    background-color: var(--fontColor);
    color: #000;
    transition: all 0.1s;
    border: none;
    outline: none;
}

.new_playlist_pop_up_buttons_create:active {
    transform: scale(0.95);
}

.new_playlist_pop_up_buttons p:nth-child(1) {
    /* margin-right: 30px; */
    margin: 0;
}

#new_playlist_input_width,
#edit_playlist_input_width {
    width: calc(100% - 40px);
}

.new_playlist_pop_up_overlay {
    width: 1000vw;
    height: 1000vh;
    background-color: rgba(0, 0, 0, 0.5);
    position: fixed;
    top: -100vh;
    left: -100vw;
    z-index: -1;
    backdrop-filter: blur(2px);
}

.delete_playlist_prompt_container {
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 10;
    top: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    transform: scale(0.9);
    transition: all 0.2s;
}

.delete_playlist_prompt_container_active {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
}

.delete_playlist_prompt {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - (var(--sidePadding) * 4));
    height: 14%;
    min-height: 130px;
    max-height: 150px;
    background-color: #1D1D1D;
    border-radius: var(--subRadius);
    /* box-shadow: 0px 0px 10px rgb(0 0 0 / 50%); */
    padding: 0 var(--sidePadding);
    z-index: 10;
}

.delete_playlist_buttons {
    display: flex;
    justify-content: right;
    text-align: center;
    align-items: center;
}

.delete_playlist_delete {
    margin-left: 30px;
    background-color: var(--fontColor);
    color: #000;
    margin: none;
    padding: 0px 15px;
    border: none;
    outline: none;
    border-radius: var(--subRadius);
}

.delete_playlist_buttons>div {
    transition: all 0.1s;

}

.delete_playlist_buttons>div:active {
    transform: scale(0.98);

}

.delete_playlist_delete p {
    margin: 10px 10px;
}

/* .delete_playlist_cancel {
    background-color: ;
} */

.delete_playlist_overlay,
.edit_playlist_overlay {
    width: 1000vw;
    height: 1000vh;
    background-color: rgba(0, 0, 0, 0.5);
    position: fixed;
    top: -100vh;
    left: -100vw;
    z-index: -1;
    backdrop-filter: blur(2px);
}

.edit_playlist_popup_container {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9) !important;
    width: calc(100% - (var(--sidePadding) * 4));
    height: 100%;
    z-index: 10;
    opacity: 0;
    display: none;
    transition: all 0.1s;
}

.edit_playlist_popup_container_active {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) !important;
}

.edit_playlist_prompt {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    /* height: 50%; */
    /* min-height: 450px; */
    background-color: #1D1D1D;
    border-radius: var(--subRadius);
    box-shadow: 0px 0px 10px rgb(0 0 0 / 50%);
    /* padding: 0 var(--sidePadding); */
    /* padding: calc(var(--sidePadding) * 2) var(--sidePadding); */
    padding: var(--sidePadding);
    /* display: none; */
    z-index: 10;
    transition: all 0.1s;
}

.edit_playlist_thumbnail {
    width: 40%;
    aspect-ratio: 1/1;
    border-radius: var(--mainRadius);
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
}

.edit_playlist_thumbnail_input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* border: 2px solid red; */
    opacity: 0;
}

.edit_playlist_info_container {
    width: 100%;
    display: flex;
    align-items: center;
}

.edit_playlist_info_box {
    font-size: 1em;
    color: var(--altFontColor);
    margin-left: 15px;
    display: flex;
    flex-direction: column;
}

.edit_playlist_userinfo {
    display: flex;
    flex-direction: column;
    margin-left: 10px;
}

.edit_playlist_info_texts {
    display: flex;
    align-items: center;
}

.edit_playlist_userimg {
    border-radius: 100% !important;
    width: 40px;
    height: 40px;
}

#edit_playlist_input_width {
    background-color: transparent;
    background-image: url(../img/icons/edit.svg);
    background-repeat: no-repeat;
    background-position: 95% center;
    border-bottom: 1px solid #393939;
    /* border-radius: 0px; */
}

#edit_playlist_input_width:focus {
    background-color: #393939;
    background-position: 110% center;
    border-radius: var(--subRadius);
    border: 1px solid var(--mainColour);
}

.edit_playlist_save_changes:disabled {
    background-color: #8a8a8a;
    pointer-events: none;
}

/* ======= PLAYLIST PAGE ======== */

.playlist_page {
    padding: 5% var(--sidePadding);
    overflow-x: hidden;
    min-height: 85vh;
    overflow-y: auto;
    touch-action: pan-y !important;
    transition: all 0.2s ease-in-out;
}

.playlist_track_card {
    margin: 0;
}

.playlist_track_card {
    display: flex;
    align-items: center;
    margin-bottom: 30px;
}

.playlist_track_card img {
    margin-right: var(--sidePadding);
    background-color: transparent;
    object-fit: cover;
}

.playlist_track_card .track_title {
    font-size: 1.75em;
    font-weight: 600 !important;
    overflow-wrap: break-word;
    /* width: 60%; */
}

.status_container {
    display: flex;
    align-items: center;
    color: var(--altFontColor);
}

.playlist_edit_container {
    display: flex;
}

.playlist_tracks_button_container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.playlist_tracks_btns {
    width: 40%;
    border: 2px solid var(--fontColor);
    display: flex;
    justify-content: center;
    padding: 10px;
    border-radius: var(--mainRadius);
    font-weight: 400;
    background-color: var(--baseColour);
    transition: all 0.3s;
}

.playlist_tracks_btns:active {
    /* background-color: var(--mainColour);
    border: 2px solid var(--mainColour);
    color: var(--fontColor); */
    transform: scale(0.98);
    filter: contrast(0.8);
}

.playlist_tracks_btns:active img {
    /* filter: brightness(10); */
}

.playlist_tracks_btns img {
    margin-right: 10px;
    transition: all 0.3s;
}

.playlist_tracks_shuffle {
    background-color: var(--fontColor);
    color: #454545;
}

.playlist_tracks_shuffle:active {
    filter: contrast(0.5);
}




/* ===== SEARCH PAGE ===== */
.search_page {
    /* padding: 5% var(--sidePadding); */
    overflow-x: hidden;
    min-height: 85vh;
    overflow-y: auto;
    touch-action: pan-y !important;
    transition: all 0.2s ease-in-out;
}

.search_field {
    /* transform: translateY(50%); */
    margin: 0;
    position: absolute;
    right: 30%;
    /* width: 56%; */
    width: 65%;
    transition: all 0.3s;
    padding: 12px 20px;
    border: 1px solid transparent;

    max-width: 100%;
    overflow: hidden;

}

.search_field_hidden {
    border: 0px solid transparent !important;
    padding: 12px 0px !important;
    /* max-width: 0% !important; */
    width: 0%;
}

.search_page .playlists_selection {
    padding: 0 var(--sidePadding);
}

.title_section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 300;
}

.clear_search {
    /* font-size: 0.5em; */
    padding-right: var(--sidePadding);
    transition: all 0.3s;
}

.clear_search:active {
    color: var(--mainColour)
}

.search_loader {
    background: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Ccircle cx="18" cy="12" r="0" fill="white"%3E%3Canimate attributeName="r" begin=".67" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0%3B2%3B0%3B0"%2F%3E%3C%2Fcircle%3E%3Ccircle cx="12" cy="12" r="0" fill="white"%3E%3Canimate attributeName="r" begin=".33" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0%3B2%3B0%3B0"%2F%3E%3C%2Fcircle%3E%3Ccircle cx="6" cy="12" r="0" fill="white"%3E%3Canimate attributeName="r" begin="0" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8%3B0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0%3B2%3B0%3B0"%2F%3E%3C%2Fcircle%3E%3C%2Fsvg%3E');
    width: 100%;
    height: 25px;
    background-position: center;
    background-repeat: no-repeat;
    transform: scale(5);
    position: absolute;
    margin-top: 40px;
    display: none;
}

.recent_searches {
    transition: all 0.2s;
}


/* ===== Account Page ===== */
.account_page {
    padding: 5% var(--sidePadding);
    margin-top: 50vw;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    position: relative;
    z-index: 4;
    /* min-height: 60vh; */
    touch-action: pan-y !important;
    transition: all 0.2s;
}

.header_account_page .header_box1 {
    /* transform: translateY(-200%); */
    /* pointer-events: none; */
    /* opacity: 0; */
}

.header_account_page .header_search {
    /* transform: translateY(-200%); */
    /* pointer-events: none; */
    /* opacity: 0; */
    padding-right: 0px;
}

.header_account_page a {
    /* pointer-events: none; */
    /* opacity: 0; */
}

.header_account_page .header_pfp {
    top: 100%;
    /* left: 50%; */
    right: 50%;
    transform: translate(50%, 0%);
    width: 35vw;
    height: 35vw;
    position: absolute;
}

.header_pfp_account_page {}

.share_profile {
    position: absolute;
    top: var(--sidePadding);
    right: var(--sidePadding);
    transform: translateY(-50%);
}

.settings_container {
    width: 100%;
    background-color: var(--baseColour);
    z-index: 1;
    /* overflow-y: scroll; */
    /* margin-bottom: 20vh; */
}

.settings_username {
    text-align: center;
    position: relative;
    width: fit-content;
    margin: 0 auto;
}

.settings_username img {
    margin-right: 25px;
    position: absolute;
    left: -30px;
    top: 50%;
    transform: translateY(-50%);
    background-color: white;
    padding: 3px;
    border-radius: 50px;
}

.settings_username::after {
    content: "";
    width: 22px;
    height: 22px;
    background-image: url(../img/icons/edit.svg);
    background-size: contain;
    position: absolute;
    margin-left: 10px;
    background-repeat: no-repeat;
    top: 50%;
    transform: translateY(-50%);
}

.settings_options {
    font-weight: 300;
    font-size: 1.1em;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    position: relative;
}

.settings_options_info {
    position: absolute;
    bottom: 0;
    transform: translateY(100%);
    font-size: 0.7rem;
    width: 70%;
    color: var(--altFontColor);
}

.switch {
    --inactive-bg: #1c1c1c;
    --active-bg: var(--mainColour);
    --size: 1.5rem;
    --disabled: #303030;
    appearance: none;
    width: calc(var(--size) * 2.2);
    height: var(--size);
    display: inline-block;
    border-radius: calc(var(--size) / 2);
    cursor: pointer;
    background-color: var(--inactive-bg);
    background-image: radial-gradient(circle calc(var(--size) / 2.5),
            #fff 100%,
            #0000 0),
        radial-gradient(circle calc(var(--size) / 1.5), #0003 0%, #0000 100%);
    background-repeat: no-repeat;
    background-position: calc(var(--size) / -1.75) 0;
    transition: background 0.2s ease-out;
}

.switch:checked {
    background-color: var(--active-bg);
    background-position: calc(var(--size) / 1.75) 0;
}

.switch:disabled {
    background-image: radial-gradient(circle calc(var(--size) / 2.5),
            var(--disabled) 100%,
            #0000 0),
        radial-gradient(circle calc(var(--size) / 1.5), #0003 0%, #0000 100%);
}

.logout_btn {
    color: #ff6060;
    transform-origin: top left;
    text-decoration: none;
    transition: all 0.1s;
}

.logout_btn:active {
    transform: scale(0.97);
}

.branding {
    display: flex;
    /* flex-direction: column; */
    align-items: center;
    /* position: absolute; */
    /* bottom: 70px; */
    margin-top: 50px;
    z-index: 0;
    color: var(--altFontColor);
}

.branding * {
    margin: 0;
    margin-bottom: 10px;
}

.branding img {
    width: 25px;
    margin-right: 10px;
    padding-bottom: 3px;
    filter: brightness(10) contrast(0.3);
}



/* ======= PLAYER PAGE ======== */
:root {
    --playerColor: #111111;
    transition: all 0.3s;
}


.player_page {
    position: fixed;
    bottom: 69px;
    width: calc(100% - (var(--sidePadding) * 2));
    /* border: 2px solid red; */
    background-color: var(--playerColor);
    /* background: linear-gradient(0deg, var(--playerColor) 70%, var(--playerColor) 100%); */
    /* backdrop-filter: blur(5px) brightness(0.5); */
    height: 9vh;
    min-height: 80px;
    padding: 0;
    padding: 0 var(--sidePadding);
    color: var(--fontColor);
    text-decoration: none;
    z-index: 6;
    outline: none;
    display: block;
    overflow: hidden;
    transition: all 0.3s;
}

.player_page_hidden {
    bottom: -15vh;
}

.player_track_image {
    width: 55px;
    height: 55px;
    top: 50%;
    position: absolute;
    left: calc(var(--sidePadding) * 2);
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 1;
    aspect-ratio: 1/1;
    transition: all 0.3s, background-image 1ms;
    border-radius: var(--mainRadius);
}


.player_track_minicontrols {
    display: flex;
    align-items: center;
    position: absolute;
    top: 50%;
    transform: translate(0%, -50%);
    right: var(--sidePadding);
    transition: all 0.2s;
}

.player_track_minicontrols .amplitude-play-pause {
    margin-right: 40px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-repeat: no-repeat;
    background-position: 50%;
    background-size: 30%;
    background-image: url(../img/icons/play_btn.svg);
    position: relative;
    overflow: hidden;
    transition: all 0.1s;
}

.player_track_minicontrols img {
    transform: scale(1.2);
    transition: all 0.2s;
}

.player_track_minicontrols img:active {
    transform: scale(1.1);
}



.player_track_text {
    position: absolute;
    top: 50%;
    left: calc(var(--sidePadding) * 4);
    transform: translate(0%, -50%);
    width: 45%;
    /* border: 2px solid red; */
    height: 7vh;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    transition: all 0.3s;
}

.player_track_text p {
    /* position: absolute; */
    /* transform: translate(-50%, -50%); */
    width: 100%;
    margin: 0;
    /* margin: 10px 0; */
    font-size: 0.9em;
    white-space: nowrap;
    overflow: scroll;
    /* scroll-behavior: smooth; */
    /* text-overflow: ellipsis; */
    transition: all 0.3s;
    pointer-events: none;
}

.player_track_text p::-webkit-scrollbar {
    display: none;
}

.player_track_title {
    top: 0;
}

.player_track_artist {
    bottom: 0;
}

/* === ACTIVE PLAYER PAGE === */

.player_page_active {
    height: 100%;
    bottom: 0;
    /* background-color: black; */
    flex-direction: column;
    justify-content: center;
}

.player_page_active .player_track_image {
    width: calc(100vw - (var(--sidePadding) * 2));
    height: calc(100vw - (var(--sidePadding) * 2));
    top: 30%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.player_page_active .player_track_text {
    width: calc(100% - (var(--sidePadding) * 2));
    left: var(--sidePadding);
    height: 10vh;
    top: 60%;
}

.player_page_active .player_track_text p {
    margin: 5px 0;
    font-size: 1.1em;
    white-space: nowrap;
}

.player_page_active .player_track_title {
    font-size: 6vw !important;
    font-weight: 600;
}

.player_page_active .player_track_artist {
    /* margin-left: 50% !important; */
    /* transform: translateX(-50%); */
    /* width: fit-content; */
}

.player_page_active .player_track_minicontrols {
    opacity: 0;
    transform: translateY(-50%);
    /* right: 50%; */
    /* top: 70%; */
}

.track_time_container {
    display: flex;
    justify-content: space-between;
    font-weight: 300;
    margin-top: 5px;
}

.controlsui_dark {
    filter: brightness(0.18);
}

.top_controls {
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s;
    margin-top: var(--sidePadding);
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.top_controls img {
    width: 23px;
}

.player_page_active .top_controls {
    opacity: 1;
    pointer-events: auto;
}

.player_track_main_controls {
    display: flex;
    justify-content: space-around;
    align-items: center;
    width: 100%;
    margin-top: 30px;
}

.player_track_main_controls_container {
    top: 70%;
    width: calc(100vw - (var(--sidePadding) * 2));
    position: absolute;
    opacity: 0;
    pointer-events: none;
    transition: all 0.2s;
}

.player_page_active .player_track_main_controls_container {
    opacity: 1;
    pointer-events: auto;
}

.player_controls_icon {
    width: 25px;
    height: 25px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 105%;
    position: relative;
    color: var(--playerColor) !important;
}

.player_controls_icon::after {
    content: "";
    height: 5px;
    width: 5px;
    background-color: var(--playerColor);
    filter: brightness(100);
    position: absolute;
    bottom: -15px;
    left: 50%;
    border-radius: 50px;
    transform: translateX(-50%);
    opacity: 0;
    color: var(--playerColor) !important;
    transition: all 0.1s ease-in-out;
}

.amplitude-shuffle {
    background-image: url(../img/icons/shuffle_control.svg);
}

.no-repeat {
    background-image: url(../img/icons/repeat_control.svg);
}


.repeat-song {
    background-image: url(../img/icons/repeat_control.svg);
}

.repeat-song::after {
    bottom: -5px;
    content: "1";
    background-color: transparent;
    color: var(--playerColor) !important;
    font-weight: 700;
    filter: brightness(100);
    color: white;
    opacity: 1;
}

.repeat-on::after,
.amplitude-shuffle-on::after {
    opacity: 1;
}

.player_track_main_controls span {
    transition: all 0.2s;
}

.player_track_main_controls span:active {
    transform: scale(0.95);
}

.player_track_main_controls .amplitude-play-pause {
    overflow: hidden;
    border-radius: 50px;
    padding: 30px;
    width: 25px;
    height: 25px;

    /* width: 65px; */
    /* height: 70px; */
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.2);
    background-repeat: no-repeat;
    /* background-position: center; */
    background-position: 50%;
    background-size: 30%;
    /* backdrop-filter: contrast(0.7) brightness(1.5); */
    background-image: url(../img/icons/play_btn.svg);
    transition: all 0.2s ease-in-out;
    position: relative;
}

.player_track_main_controls .amplitude-play-pause-loading {
    /* background-image: none !important; */
    background-position: 150%;
}

.player_page .search_loader {
    position: relative;
    margin-top: 0;
    display: block;
    transition: all 0.2s ease-in-out;
}

.player_track_minicontrols .search_loader {
    position: absolute;
    transform: scale(4) translateX(0%);
}

.player_page .search_loader_hidden {
    transform: scale(5) translateX(-60%);
}

.player_track_minicontrols .amplitude-play-pause-loading {
    background-position: 150%;
}

.amplitude-playing {
    background-image: url(../img/icons/pause_btn.svg) !important;
}

.amplitude-paused {
    background-image: url(../img/icons/play_btn.svg) !important;
}









/* slider/seek bar styling */
input[type=range] {
    -webkit-appearance: none;
    margin: 10px 0;
    width: 100%;
}

input[type=range]:focus {
    outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
    width: 100%;
    height: 3px;
    cursor: pointer;
    animate: 0.2s;
    box-shadow: 0px 0px 0px #ffffff;
    background: #ffffff;
    border-radius: 50px;
    border: 0px solid #ffffff;
}

input[type=range]::-webkit-slider-thumb {
    box-shadow: 0px 0px 1px #000000;
    border: 0px solid #000000;
    height: 15px;
    width: 15px;
    border-radius: 15px;
    background: #FFFFFF;
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -6px;
}

input[type=range]:focus::-webkit-slider-runnable-track {
    background: #ffffff;
}

input[type=range]::-moz-range-track {
    width: 100%;
    height: 3px;
    cursor: pointer;
    animate: 0.2s;
    box-shadow: 0px 0px 0px #ffffff;
    background: #ffffff;
    border-radius: 50px;
    border: 0px solid #ffffff;
}

input[type=range]::-moz-range-thumb {
    box-shadow: 0px 0px 1px #000000;
    border: 0px solid #000000;
    height: 15px;
    width: 15px;
    border-radius: 15px;
    background: #FFFFFF;
    cursor: pointer;
}

input[type=range]::-ms-track {
    width: 100%;
    height: 3px;
    cursor: pointer;
    animate: 0.2s;
    background: transparent;
    border-color: transparent;
    color: transparent;
}

input[type=range]::-ms-fill-lower {
    background: #ffffff;
    border: 0px solid #ffffff;
    border-radius: 100px;
    box-shadow: 0px 0px 0px #ffffff;
}

input[type=range]::-ms-fill-upper {
    background: #ffffff;
    border: 0px solid #ffffff;
    border-radius: 100px;
    box-shadow: 0px 0px 0px #ffffff;
}

input[type=range]::-ms-thumb {
    box-shadow: 0px 0px 1px #000000;
    border: 0px solid #000000;
    height: 15px;
    width: 15px;
    border-radius: 15px;
    background: #FFFFFF;
    cursor: pointer;
}

input[type=range]:focus::-ms-fill-lower {
    background: #ffffff;
}

input[type=range]:focus::-ms-fill-upper {
    background: #ffffff;
}




/* === OPTIONS CARD === */

.options_card {
    position: fixed;
    bottom: 0%;
    background-color: var(--baseColour);
    width: 100%;
    z-index: 10;
    padding: 0 var(--sidePadding);
    -webkit-box-shadow: 0px -6px 15px 3px rgba(0, 0, 0, 0.5);
    box-shadow: 0px -6px 15px 3px rgba(0, 0, 0, 0.5);
    transform: translateY(110%);
    transition: all 0.3s;
}

.options_card_after {
    transform: translateY(0%);
}

.options_card_item {
    display: none;
    /* align-content: center; */
    align-items: center;
    transition: all 0.1s;
    text-decoration: none;
    color: var(--fontColor)
}

.options_card_item:active {
    transform: scale(0.98);
}

.options_card_item_img {
    /* width: 20px; */
    width: 22px;
    height: 22px;
}

.options_card_item_text {
    margin-left: 25px;
    font-weight: 300;
}

.options_card_box2 {
    margin: 10px 0px;
}

.options_card_box1 {
    margin-top: 20px;
}

.options_card_box1::after {
    display: block;
    content: "";
    width: 100%;
    height: 1px;
    margin-left: -5%;

    background-color: #353535;
}

/* Add to playlist Card */
.playlist_select_back {
    padding: 20px;
    padding-left: 0;
}

.options_card_overlay {
    width: 1000vw;
    height: 1000vh;
    background-color: rgba(0, 0, 0, 0);
    position: fixed;
    top: -100vh;
    left: -100vw;
    z-index: -1;
    pointer-events: none;
    transition: all 0.3s;
    /* backdrop-filter: blur(2px); */
}

.options_card_after .options_card_overlay {
    pointer-events: auto;
    background-color: rgba(0, 0, 0, 0.5);
}

.playlist_select_container .new_playlist_pop_up {
    width: auto;
    height: auto;
}

.options_card .playlist_card:active {
    transform: none;
}



/* ===== SCREENTIP ======== */

.screentip {
    display: flex;
    position: fixed;
    left: 50%;
    bottom: -15vh;
    /* bottom: 9vh; */
    z-index: 20;
    width: 80%;
    max-width: 1000px;
    background-color: rgba(29, 29, 29, 0.9);
    transform: translateX(-50%);
    justify-content: center;
    align-items: center;
    padding: 20px;
    border-radius: var(--mainRadius);
    backdrop-filter: blur(5px);
    text-decoration: none;
    color: var(--fontColor);
    transition: all 0.3s;
}

.screentip_active {
    bottom: 18vh !important;
}

.screentip_active_low {
    bottom: 10vh !important;
}




/* When android keyboard is active */
@media(max-height:600px) {
    .navbar_container {
        /* display:none; */
        pointer-events: none;
        opacity: 0;
    }

    .player_page {
        bottom: 0;
    }

    .player_page_hidden {
        bottom: -100%;
    }

    .player_track_text p {
        margin: 0px 0;
    }
}


/*  */



/* PULL DELETE DEFAULT STYLING */
.pull_delete {
    position: relative;
    /* width: calc(100% + 2.5rem) !important; */
}

.pull_delete.trans {
    transition: all 0.1s;
}

.pull_delete .pd_btn {
    display: block !important;
    position: absolute !important;
    right: calc(-50% - var(--sidePadding) + -10px) !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 50% !important;
    /* font-size: 0.4rem !important; */
    background-color: var(--mainColour);
    color: #ffffff !important;
    text-align: center !important;
    background-image: url(../img/icons/add_to_queue.svg);
    background-position: 10% center;

    background-repeat: no-repeat;
    transition: all 0.2s;
}

/* .pull_delete .pd_btn::before {
    content: 'queue';
    font-size: 1em;
    position: absolute;
    top: 50%;
    left: 30%;
    transform: translate(-20%, -50%);
    transition: all 0.5s;
    background-image: url(../img/icons/add_to_queue.svg);
    background-position: 10% center;
    background-repeat: no-repeat; 
    width: 50px;
    height: 50px; 
} */