@import url('https://fonts.googleapis.com/css2?family=Amiri:ital,wght@0,400;0,700;1,400;1,700&family=Arimo:ital,wght@0,400..700;1,400..700&family=Bebas+Neue&family=Oswald:wght@200..700&family=Teko:wght@300..700&family=Tiny5&display=swap');

* {
    margin: 0;
    padding: 0;
    text-decoration: none;
    list-style: none;

    box-sizing: inherit;
    &:before,
    &:after {
        box-sizing: inherit;
    }
}

body {
    height: 100vh;
}

.btn-primary {
    background: #4B70F5;
}

.btn-secondary {
    background: #40B3A2;
}

.btn-tertiary {
    background: #F2613F;
}

.btn-disabled {
    background: #676767;
    color: #2f2f2f;
}

.body-container {
    display: grid;
    grid-template-columns: 1.5fr 7fr;
    height: 100%;
}

.header {
    display: flex;
    justify-content: space-between;
    margin: 0 2em;
    align-items: center;
    grid-column: span 2;
}

.username > span {
    font-family: "Teko", sans-serif;
    font-size: 1.4em;
}

.nav > ul > li >  a {
    font-family: "Teko", sans-serif;
    font-size: 1.2em;
    display: inline-block;
    position: relative;
    color: inherit;
    margin: 0 var(--spacing, 0px);
    transition: margin .25s;
    svg {
        width: 4em;
        height: 2.3em;
        position: absolute;
        left: 50%;
        bottom: 0;
        transform: translate(-50%, .4em) translateZ(0);
        fill: none;
        stroke: var(--stroke, #40B3A2);
        stroke-linecap: round;
        stroke-width: .1em;
        stroke-dasharray: var(--offset, 3.6em) 14.5em;
        stroke-dashoffset: 18.9em;
        transition: stroke .25s ease var(--stroke-delay, 0s), stroke-dasharray .35s;
    }
    &:hover {
        --spacing: .2em;
        --stroke: #4B70F5;
        --stroke-delay: .1s;
        --offset: 9.7em;
    }
}

#logo-title {
    font-family: "Tiny5", sans-serif;
    text-align: center;
    font-size: 1.5em !important;
    color: white;
    --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);

    position: relative;

    &::before,
    &::after {
        position: absolute;
        content: "";
        left: 0;
        bottom: -0.2em;
        display: block;
        width: 100%;
        height: .1em;
        background: #BBC1E1;
        transition: 1.1s var(--ease-out-expo);
    }

    &::before {
        transform: scaleX(0);
        transform-origin: left;
    }

    &::after {
        transform-origin: right;
        transition-delay: 0.25s;
    }
    
    &:hover {
        &::before {
        transform: scaleX(1);
        transition-delay: 0.25s;
        }

        &::after {
        transform: scaleX(0);
        transition-delay: 0s;
        }
    }
}

.highlighted-span {
    color: #F2613F;
}

.header ul {
    display: flex;
    gap: 3em;
}

.sidebar {
    background-color: #222831;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding: 1em;
}

.sidebar-top {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4em;
    margin-bottom: 10em;
}


.sidebar-top > ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}

.sidebar-top > ul > hr {
    margin: 2em 0;
    width: 40%;
}

.sidebar-button{
    outline: 0;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    min-width: 15em;
    border: 0;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
    box-sizing: border-box;
    padding: 16px 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    overflow: hidden;
    cursor: pointer;
    transition: .3s;
}

.sidebar-button:hover {
    opacity: .85;
}
  
.sidebar-button .animation {
    border-radius: 100%;
    animation: ripple 0.6s linear infinite;
}

@keyframes ripple {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.1), 0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 40px rgba(255, 255, 255, 0.1), 0 0 0 60px rgba(255, 255, 255, 0.1);
    }

    100% {
        box-shadow: 0 0 0 20px rgba(255, 255, 255, 0.1), 0 0 0 40px rgba(255, 255, 255, 0.1), 0 0 0 60px rgba(255, 255, 255, 0.1), 0 0 0 80px rgba(255, 255, 255, 0);
    }
}

.main-content {
    padding: 1rem;
    overflow-y: auto;
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 3em;
}

.main-screen {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    grid-column: span 2;
}

#welcome-title {
    font-family: "Oswald", sans-serif;
    text-transform: uppercase;
}

.loader {
    border: 4px solid #f3f3f3;
    border-top: 4px solid #3498db;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    animation: spin 1s linear infinite;
    margin: auto;
    margin-top: 3em;
  }
  
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
  
.loader.hidden {
    display: none;
}

@media (max-width: 768px) {
    .header {
        display: none;
    }

    .body-container {
        display: flex;
        flex-direction: column;
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: static;
        flex-direction: row;
        padding: 0.5em;
        justify-content: center;
    }

    .sidebar-top {
        margin-bottom: 0;
        gap: 1em;
    }

    .sidebar > a {
        display: none;
    }

    .btn-disabled {
        display: none;
    }

    .sidebar-top > ul {
        justify-content: center;
        align-items: center;
        gap: 0;
        margin: 1em 0;
    }

    .sidebar-top > ul > hr {
        display: none;
    }

    .main-content {
        padding: 1rem;
        overflow-y: auto;
    }

    .sidebar-top > ul > hr {
        width: 100%;
    }

    .sidebar-button {
        min-width: 13em;
        font-size: 14px;
    }

    .main-screen {
        margin-top: 2em;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .body-container {
        display: grid;
        grid-template-columns: 1.5fr 7fr;
    }

    .sidebar {
        width: auto;
        padding: 1em;
    }

    .header {
        display: flex;
    }

    .main-content {
        padding: 1rem;
        overflow-y: auto;
    }
}