.ctm_auth {
    --auth-button-hover-background: var(--bs-primary);
    --auth-button-hover-color: var(--bs-white);
    --auth-button-svg-height: 20px;
    --auth-button-padding: 0;
    --auth-button-border-radius: 5px;
    --auth-button-border-colour: var(--bs-body-color);
    --auth-button-width: 40px;
    --auth-button-width-extended: 130px;
    --auth-button-height: 40px;
    --auth-button-height-shrink: 20px;
    --auth-button-text-hover-underline-offset: 5px;
    --auth-menu-width: 106px;
    --auth-menu-shadow-h-offset: 0px;
    --auth-menu-shadow-v-offset: 20px;
    --auth-menu-shadow-blur: 40px;
    --auth-menu-shadow-spread: -12px;
    --auth-menu-shadow-colour: #2f2a5119;
    --auth-menu-border-radius: 8px;
    --auth-menu-item-border-thickness: 1px;
    --auth-menu-item-border-colour: #B4D4F8;
    --auth-menu-item-padding: 16px;
    --auth-menu-item-height: 56px;
    --auth-menu-item-background: var(--bs-white);
    --auth-menu-position-top-mobile: 65px;
}

.auth_component {
    position: relative;
    width: 100%;
    height: 100%
}

.auth_component > div {
    display: flex;
    height: 100%
}

.auth_component > div.auth_hidden {
    display: none
}

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

#loggedIn {
    position: relative;
    justify-content: end
}

#loggedOut > #profile_head_desktop, #disabled > #profile_head_desktop {
    display: none;
}

@media only screen and (min-width:768px) {
    #loggedOut > #profile_head_desktop, #disabled > #profile_head_desktop {
        display: flex;
        width: var(--auth-button-width-extended);
        height: var(--auth-button-height-shrink);
    }

    #loggedOut > #profile_head, #loggedOut > #profile_menu, #disabled > #profile_head, #disabled > #profile_menu {
        display: none;
    }
}

#profile_head, #profile_head_desktop {
    width: var(--auth-button-width);
    height: var(--auth-button-height);
    display: flex;
    justify-content: center;
    border-radius: var(--auth-button-border-radius);
    --btn-colour: currentColor;
    --btn-bkg: none;
}

#profile_head > svg {
    fill: currentColor;
    height: var(--auth-button-svg-height);
}

#profile_head:focus, #profile_head:hover
{
    --btn-bkg: var(--auth-button-hover-background);
    --btn-colour: var(--auth-button-hover-color);
}

.auth_btn {
    align-items: center;
    color: var(--btn-colour);
    background: var(--btn-bkg);
    padding: var(--auth-button-padding);
    border: none;
    text-wrap: nowrap;
    flex: 1 0 auto;
    line-height: 1;
}

#profile_head_desktop .auth_btn:focus, #profile_head_desktop .auth_btn:hover
{
    --btn-colour: var(--bs-link-color);
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-decoration-style: initial;
    text-decoration-color: var(--btn-colour);
    text-underline-offset: var(--auth-button-text-hover-underline-offset);
}

#profile_head_desktop .auth_btn:first-child {
    border-right-width: 2px;
    border-right-style: solid;
    border-right-color: var(--auth-button-border-colour);
}

.theme-dark #profile_head_desktop .auth_btn, .theme-dark #profile_head_desktop .auth_btn:focus, .theme-dark #profile_head_desktop .auth_btn:hover {
    --btn-colour: var(--bs-white);
    text-decoration-color: var(--bs-white);
    --auth-button-border-colour: var(--bs-white);
}

#profile_head:focus ~ #profile_menu,
#profile_menu:focus-within,
#profile_menu:active {
    display: flex
}

#profile_menu {
    display: none;
    flex-direction: column;
    right: 0%;
    z-index: 100;
    box-shadow: var(--auth-menu-shadow-h-offset) var(--auth-menu-shadow-v-offset) var(--auth-menu-shadow-blur) var(--auth-menu-shadow-spread) var(--auth-menu-shadow-colour);
    border-radius: var(--auth-menu-border-radius);
    background: var(--bs-white);
    width: 100vw;
    position: fixed;
    top: var(--auth-menu-position-top-mobile);
    padding: 0;
}

#profile_menu > button {
    font-family: inherit;
    width: 100%;
    height: var(--auth-menu-item-height);
    border: none;
    color: var(--bs-body-color);
    background: var(--auth-menu-item-background);
    display: flex;
    flex-direction: row;
    justify-content: left;
    align-items: center;
    padding: var(--auth-menu-item-padding) var(--auth-menu-item-padding);
}

#profile_menu > button:not(:last-child) {
    border-bottom: var(--auth-menu-item-border-thickness) solid var(--auth-menu-item-border-colour);
}

@media only screen and (min-width:768px) {
    #profile_menu {
        width: var(--auth-menu-width);
        position: absolute;
        top: 101%;
        padding: 0 var(--auth-menu-item-padding);
    }

    #profile_menu > button {
        padding: var(--auth-menu-item-padding) 0;
    }
}

#loading > svg {
    fill: none;
    height: var(--auth-button-svg-height);
    animation: animation-spin 1.5s infinite;
}

#loading > svg > path {
    fill: currentColor;
}

@keyframes animation-spin {
    0% {
        transform: rotate(-60deg)
    }

    100% {
        transform: rotate(660deg)
    }
}
