/*
    _Layout sidebar mechanics.
    All colours come from the global --fp-* tokens in site.css.
*/

.fp-main-layout .navbar-btn {
    box-shadow: none;
    outline: none !important;
    border: 0;
}

.fp-main-layout .line {
    width: 100%;
    height: 1px;
    margin: 40px 0;
    border-bottom: 1px dashed var(--fp-border);
}

.fp-main-layout .wrapper {
    display: flex;
    width: 100%;
    align-items: stretch;
    perspective: 1500px;
}

.fp-main-layout #sidebar {
    min-width: var(--fp-main-sidebar-width);
    max-width: var(--fp-main-sidebar-width);
    min-height: calc(100vh - var(--fp-main-topbar-height));
    margin-top: 0;
    margin-left: calc(var(--fp-main-sidebar-width) * -1);
    color: var(--fp-sidebar-text);
    background: var(--fp-sidebar-gradient);
    border-right: 1px solid var(--fp-border);
    transform: rotateY(100deg);
    transform-origin: bottom left;
    transition: margin-left var(--fp-transition-normal), transform var(--fp-transition-normal);
}

.fp-main-layout #sidebar.active {
    margin-left: 0;
    transform: rotateY(0deg);
}

.fp-main-layout #sidebar .sidebar-header {
    padding: 20px;
    color: var(--fp-heading);
    background: var(--fp-surface-muted);
    border-bottom: 1px solid var(--fp-border);
}

.fp-main-layout #sidebar ul.components {
    padding: 0 0 20px;
    border-bottom: 1px solid var(--fp-border);
}

.fp-main-layout #sidebar ul p {
    padding: 10px;
    color: var(--fp-sidebar-text);
}

.fp-main-layout #sidebar ul li a {
    display: block;
    margin-bottom: 1px;
    padding: 10px;
    color: var(--fp-sidebar-text);
    border-bottom: 1px solid var(--fp-border);
    text-decoration: none;
    font-size: 1.02em;
}

.fp-main-layout #sidebar ul li a:hover {
    color: var(--fp-heading);
    background: var(--fp-sidebar-hover);
}

.fp-main-layout #sidebar ul li.active > a,
.fp-main-layout #sidebar a[aria-expanded="true"] {
    color: var(--fp-sidebar-active-text);
    background: var(--fp-sidebar-active);
}

.fp-main-layout #sidebar a[data-bs-toggle="collapse"] {
    position: relative;
}

.fp-main-layout #sidebar .dropdown-toggle::after {
    float: right;
    margin-top: 8px;
    margin-left: .3em;
}

.fp-main-layout #sidebar ul ul a {
    padding-left: 30px !important;
    color: var(--fp-sidebar-text);
    background: rgba(var(--fp-primary-rgb), .055);
    font-size: .9em !important;
}

.fp-main-layout #content {
    width: 100%;
    min-width: 0;
    min-height: 100vh;
    padding: 0;
}

.fp-main-layout #sidebarCollapse {
    width: 40px;
    height: 40px;
    color: var(--fp-text-muted);
    background: transparent;
    border-radius: var(--fp-radius-md);
    cursor: pointer;
}

.fp-main-layout #sidebarCollapse:hover {
    color: var(--fp-primary-strong);
    background: var(--fp-primary-soft);
}

.fp-main-layout #sidebarCollapse span {
    width: 80%;
    height: 2px;
    display: block;
    margin: 0 auto;
    background: currentColor;
    transition: all .4s cubic-bezier(.81, -.33, .345, 1.375);
    transition-delay: .1s;
}

.fp-main-layout #sidebarCollapse span:first-of-type {
    transform: rotate(45deg) translate(2px, 2px);
}

.fp-main-layout #sidebarCollapse span:nth-of-type(2) {
    opacity: 0;
}

.fp-main-layout #sidebarCollapse span:last-of-type {
    transform: rotate(-45deg) translate(1px, -1px);
}

.fp-main-layout #sidebarCollapse.active span {
    margin: 5px auto;
    opacity: 1;
    transform: none;
}

@media (max-width: 768px) {
    .fp-main-layout #sidebar {
        margin-left: calc(var(--fp-main-sidebar-width) * -1);
        transform: rotateY(90deg);
    }

    .fp-main-layout #sidebar.active {
        margin-left: 0;
        transform: none;
    }

    .fp-main-layout #sidebarCollapse span:first-of-type,
    .fp-main-layout #sidebarCollapse span:nth-of-type,
    .fp-main-layout #sidebarCollapse span:last-of-type {
        margin: 5px auto;
        opacity: 1;
        transform: none;
    }

    .fp-main-layout #sidebarCollapse.active span {
        margin: 0 auto;
    }

    .fp-main-layout #sidebarCollapse.active span:first-of-type {
        transform: rotate(45deg) translate(2px, 2px);
    }

    .fp-main-layout #sidebarCollapse.active span:nth-of-type(2) {
        opacity: 0;
    }

    .fp-main-layout #sidebarCollapse.active span:last-of-type {
        transform: rotate(-45deg) translate(1px, -1px);
    }
}
