.modules-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5em;
}

#main-content-wrapper .modules-list {
    margin-top: 1.5em;
}

#module-menu .modules-list {
    gap: 6px;
    flex-wrap: nowrap;
    flex-direction: column;
    align-items: center;
    width: 2.4em;
    background: #383f42;
    padding: 0.75em;
    border-radius: 12px;
    max-height: calc(100vh - 40px);
    overflow-y: overlay;
    overflow-x: hidden;
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

#module-menu .modules-list::-webkit-scrollbar {
    display: none;
}


#module-menu {
    margin-right: 12px;
    position: absolute;
    right: 0;
    height: 100%;
    display: flex;
    align-items: center;
    transition: 0.4s margin;
}

.module {
    flex-basis: calc(25% - 5em);
    max-width: 300px;
    min-width: 60px;
}

@media only screen and (max-width: 1000px) {
    .module {
        flex-basis: calc(28% - 3em);
    }

}

@media only screen and (max-width: 710px) {
    .module {
        flex-basis: calc(45% - 3em);
    }

}

#module-menu .module {
    flex-basis: unset;
    min-width: unset;
    max-width: unset;
}

.module img {
    width: 100%;
}

#module-menu img {
    width: 2em;
    filter: saturate(0) invert(0) brightness(1.2);
    opacity: 0.6;
    -webkit-transition: 0.4s -webkit-filter;
    -moz-transition: 0.4s -moz-filter;
    -moz-transition: 0.4s filter;
    -ms-transition: 0.4s -ms-filter;
    -o-transition: 0.4s -o-filter;
    transition: 0.4s width, 0.4s filter, 0.4s -webkit-filter;
}

#module-menu .module.current img {
    filter: unset;
    opacity: 0.8;
}

#module-menu img:hover {
    filter: unset;
    opacity: 0.9;
}

#module-menu ul img:hover {
    width: 2.5em;
}

.module a {
    text-decoration: none;
    text-align: center;
    line-height: 1.5em;
    font-size: 1.2em;
    display: block;
}

#module-menu .separator {
    background-color: #53c6c0;
    min-height: 1px;
    filter: saturate(0) invert(0) brightness(1.2);
    width: 100%;
    margin: 1em 0;
    border: none
}

#open-models-menu {
    margin: 12px;
}

#open-models-menu img {
    width: 1em;
    filter: drop-shadow(0 0 4px black) saturate(0) invert(0) brightness(1.2);
    opacity: 1;
    transform: rotate(180deg);
    transition: transform 0.4s;
}

#open-models-menu img:hover {
    filter: drop-shadow(0px 0px 4px black) saturate(0.9);
}

body.toggled #module-menu {
    margin-right: -3.9em;
}

body.toggled #open-models-menu img {
    transform: unset;
}

@media only screen and (max-width: 640px) {
    body #open-models-menu img {
        transform: unset;
    }

    body.toggled #open-models-menu img {
        transform: rotate(180deg);
    }

    body #module-menu {
        margin-right: -3.9em;
    }

    body.toggled #module-menu {
        margin-right: 12px;
    }
}

