*,
*::after,
*::before {
    box-sizing: border-box;
}

:root {
    --sidebar-width: 76px;
}

body {
    margin: 0;
    overflow-x: hidden;
}

main {
    padding: 1rem 3rem;
}

sidebar {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--sidebar-width);
    height: 100vh;
    background-color: white;
    padding: 1em;
    padding-top: .75em;
    transition: width 200ms ease-in-out;
    overflow: hidden;
    z-index: 10
}

.nav-item {
    white-space: nowrap;
}

.nav {
    --bs-nav-link-padding-y: 0px;
    --bs-nav-link-padding-x: 0px;
}

.nav-link-icon {
    width: 50px;
    height: 50px;
    padding: 1em;
    background-color: #F8F8FA;
    fill: #9391A8;
    border-radius: .25em;
}

.icon::before {
    /* removed font- based rules */
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.boxed-icon::before {
    font-size: 1.5em;
    background-color: #2A6057;
    padding: .65em .5em;
    border-radius: .25em;
    height: 2.25em;
    width: 2.25em;
    vertical-align: middle;
    text-align: center;
    color: white;
    font: var(--fa-font-solid);
    content: var(--icon);
    margin: .25em;
}

sidebar .icon::before {
    font-size: 1.5em;
    background-color: #F8F8FA;
    padding: .65em .5em;
    border-radius: .25em;
    height: 2.25em;
    width: 2.25em;
    vertical-align: middle;
    text-align: center;
    color: #9391A8;
    font: var(--fa-font-solid);
    content: var(--icon);
    margin: .25em 1em .25em .25em;
}

sidebar .active.icon::before {
    background: black;
    color: white;
}

sidebar:hover {
    width: 300px;
}

main {
    width: calc(100vw - var(--sidebar-width));
    margin-left: var(--sidebar-width);
}