@mixin fresk-drawer-flush {
    .drawer.drawer-left,
    .drawer.drawer-right {
        top: $navbar-height;
        height: calc(100vh - #{$navbar-height});
        max-height: none;
        border-radius: 0;
        padding-bottom: 0;
    }

    .drawer.drawer-left {
        right: auto;
        left: calc(-#{$drawer-left-width} + -10px);
        width: $drawer-left-width;
        overflow: visible;
        clip-path: none;
        @include transition(left 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease);

        &.show {
            right: auto;
            left: 0;
            width: $drawer-left-width;
        }
    }

    .drawer.drawer-right {
        left: auto;
        right: calc(-#{$drawer-right-width} + -10px);
        clip-path: none;
        @include transition(right 0.2s ease, top 0.2s ease, bottom 0.2s ease, visibility 0.2s ease);

        &.show {
            left: auto;
            right: 0;
        }
    }

    .drawer-toggles {
        .drawer-toggler {
            top: calc(#{$navbar-height} + #{$navbar-second-height} + 0.7rem);
        }

        .drawer-left-toggle {
            right: auto;
            left: 0;
        }

        .drawer-right-toggle {
            left: auto;
            right: 0;
        }
    }
}

.drawer {
    background-color: var(--fresk-drawer-bg) !important;
    .drawerheader {
        display: flex;
        flex-flow: row nowrap;
        align-items: center;
        justify-content: flex-start;
        height: 60px;
        .drawertoggle {
            margin: 0 .5em !important;
            height: 30px;
            width: 30px;
            display: flex;
            justify-content: center;
            align-items: center;
            background: var(--fresk-drawer-icon-filler) !important;
            .icon {
                color: var(--fresk-drawer-icon);
                font-size: 16px;
                opacity: 1;
                text-shadow: none;
                &.cancel {
                    color: var(--fresk-drawer-icon) !important;
                }
            }
            &:hover,
            &:active,
            &:focus {
                background: var(--fresk-drawer-icon-filler-hover);
                .icon {
                    color: var(--fresk-drawer-icon-hover) !important;
                    font-size: 16px;
                    opacity: 1;
                }
            }
        }
        h3 {
            color: var(--fresk-drawer-text) !important;
            font-size: 18px;
            margin-bottom: 0;
            margin-left: 1em;
        }
        .drawerheadercontent {
            margin-left: auto;
            #courseindexdrawercontrols {
                [data-bs-toggle="dropdown"] {
                    .icon {
                        color: var(--fresk-drawer-icon);
                    }
                    &:hover,
                    &:active,
                    &:focus,
                    &:focus-visible {
                        background-color: var(--fresk-drawer-icon-filler-hover);
                        .icon {
                            color: var(--fresk-drawer-icon-hover);
                        }
                    }
                }
            }
        }
    }
    &.drawer-left {
        .drawercontent {
            .courseindex {
                .icon {
                    font-size: 14px;
                }
                #courseindex-content {
                    .courseindex {
                        .courseindex-section {
                            .courseindex-item {
                                [data-bs-toggle="collapse"] {
                                    span {
                                        .icon {
                                            font-size: 15px;
                                            color: var(--fresk-drawer-icon);
                                        }
                                    }
                                }
                                .completioninfo {
                                    .icon {
                                        color: var(--fresk-drawer-icon) !important;
                                    }
                                }
                                [data-for="section_title"] {
                                    font-size: 15px;
                                    color: var(--fresk-drawer-text);
                                }
                                &.pageitem {
                                    background-color: var(--fresk-drawer-icon-filler-hover) !important;
                                    a {
                                        color: var(--fresk-drawer-icon-hover) !important;
                                    }
                                    [data-bs-toggle="collapse"] {
                                        span {
                                            .icon {
                                                color: var(--fresk-drawer-icon-hover) !important;
                                            }
                                        }
                                    }
                                    .completioninfo {
                                        .icon {
                                            color: var(--fresk-drawer-icon-hover) !important;
                                        }
                                    }
                                }
                                &:hover {
                                    background-color: var(--fresk-drawer-icon-filler-hover);
                                    color: var(--fresk-drawer-icon-hover);
                                    [data-bs-toggle="collapse"] {
                                        span {
                                            .icon {
                                                color: var(--fresk-drawer-icon-hover) !important;
                                            }
                                        }
                                    }
                                    .completioninfo {
                                        .icon {
                                            color: var(--fresk-drawer-icon-hover) !important;
                                        }
                                    }
                                    [data-for="section_title"] {
                                        color: var(--fresk-drawer-icon-hover) !important;
                                    }
                                }
                            }
                            .courseindex-item-content {
                                .courseindex-sectioncontent {
                                    .courseindex-item {
                                        .completioninfo {
                                            .icon {
                                                color: var(--fresk-drawer-icon);
                                            }
                                        }
                                        .courseindex-link {
                                            color: var(--fresk-drawer-text);
                                            font-size: 14px;
                                        }
                                        &:hover {
                                            .completioninfo {
                                                .icon {
                                                    color: var(--fresk-drawer-icon-hover);
                                                }
                                            }
                                            .courseindex-link {
                                                color: var(--fresk-drawer-icon-hover);
                                            }
                                        }
                                    }
                                }
                            }
                            &.current {
                                border-left: var(--fresk-primary-ui) 3px solid;
                                padding-left: 1px;
                                .current-badge {
                                    background-color: var(--fresk-primary) !important;
                                    border: var(--fresk-dm-surface, white) 1px solid;
                                }
                            }
                            .courseindex-locked i {
                                margin-top: -6px;
                            }
                        }
                    }
                }
            }
        }
    }
    &.drawer-right {
        .drawercontent {
            padding: 0.4rem 15px;
        }
    }
}
.drawer-toggles {
    .drawer-toggler {
        [data-bs-toggler="drawers"] {
            background: var(--fresk-dm-surface, white) !important;
            .icon {
                color: var(--fresk-primary-text);
            }
            &:hover {
                .icon {
                    color: var(--fresk-secondary-text);
                }
            }
        }
    }
}

body.theme-fresk {
    .drawer.drawer-left {
        .drawercontent {
            .courseindex {
                #courseindex-content {
                    .courseindex {
                        .courseindex-section {
                            .courseindex-item:has(.courseindex-section) {
                                &:hover {
                                    background-color: transparent;
                                    i {
                                        color: var(--fresk-drawer-icon) !important;
                                    }
                                    >.courseindex-section {
                                        color: var(--fresk-drawer-text) !important;
                                        >.courseindex-item {
                                            color: var(--fresk-drawer-text) !important;
                                            &:hover {
                                                color: var(--fresk-drawer-icon-hover) !important;
                                                a,
                                                i {
                                                    color: var(--fresk-drawer-icon-hover) !important;
                                                }
                                            }
                                            &.pageitem {
                                                background-color: var(--fresk-drawer-icon-filler-hover) !important;
                                                a,
                                                i {
                                                    color: var(--fresk-drawer-icon-hover) !important;
                                                }
                                            }
                                        }
                                        >.courseindex-item-content {
                                            [data-for="cmlist"] {
                                                >.courseindex-item {
                                                    &:hover {
                                                        i {
                                                            color: var(--fresk-drawer-icon-hover) !important;
                                                        }
                                                        a {
                                                            color: var(--fresk-drawer-icon-hover) !important;
                                                        }
                                                    }
                                                    &.pageitem {
                                                        background-color: var(--fresk-drawer-icon-filler-hover) !important;
                                                        a,
                                                        i {
                                                            color: var(--fresk-drawer-icon-hover) !important;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    .courseindex-item {
                                        .courseindex-link {
                                            color: var(--fresk-drawer-text) !important;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .drawer.drawer-right {
        .btn-add-content {
            border: 2px dashed var(--fresk-dm-border-strong, #{$filterstext}) !important;
            color: var(--fresk-dm-text-muted, grey) !important;
            background-color: transparent !important;
            &:hover{
                i{
                    color: var(--fresk-primary-text) !important;
                }
                background-color: transparent !important;
                color: var(--fresk-dm-text, #{$graytext}) !important;
                border-color: var(--fresk-dm-text, #{$graytext}) !important;
            }
        }
    }
}
@include fresk-m503 {
    $fresk-drawer-gap: calc(0.5rem + 20px);
    $fresk-drawer-both-offset: calc((#{$drawer-right-width} - #{$drawer-left-width}) / 2);
    $fresk-drawer-left-flush: calc(100% - #{$drawer-left-width});
    $fresk-drawer-right-flush: calc(100% - #{$drawer-right-width});
    $fresk-drawer-toggler-size: 40px;
    $fresk-drawer-overlay-min: 1600px;
    $fresk-drawer-overlay-gutter: 16px;

    .drawer-toggles .drawer-toggler .btn {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;

        .icon {
            width: auto;
            height: auto;
            min-width: 0;
            line-height: 1;
        }
    }
    $fresk-toggler-clamp: calc(100% - #{$fresk-drawer-toggler-size} - 2 * 16px);

    @include media-breakpoint-up(lg) {
        body.limitedwidth:not(.fresk-drawers-anchored) {
            @include fresk-drawer-flush;

            &:has(#page.drawers.show-drawer-left):not(:has(#page.drawers.show-drawer-right)),
            &:has(#page.drawers.show-drawer-right):not(:has(#page.drawers.show-drawer-left)),
            &:has(#page.drawers.show-drawer-left.show-drawer-right) {
                @include fresk-drawer-flush;
            }
        }
    }

    @if $fresk-content-maxwidth > 0 {
        $fresk-anchor-none: calc(50% + #{$fresk-content-maxwidth} / 2 + #{$fresk-drawer-gap});
        $fresk-anchor-right-open: calc(50% + #{$fresk-content-maxwidth} / 2 + #{$fresk-drawer-gap} + #{$drawer-right-width} / 2);
        $fresk-right-anchor-left-open: calc(50% + #{$fresk-content-maxwidth} / 2 + #{$fresk-drawer-gap} + #{$drawer-left-width} / 2);
        $fresk-xxl-left-open: calc(50% + #{$fresk-content-maxwidth} / 2 - #{$drawer-left-width} / 2 + #{$fresk-drawer-gap});
        $fresk-xxl-right-open: calc(50% + #{$fresk-content-maxwidth} / 2 - #{$drawer-right-width} / 2 + #{$fresk-drawer-gap});
        $fresk-solo-left-open: Min(#{$fresk-xxl-left-open}, #{$fresk-drawer-left-flush});
        $fresk-solo-right-open: Min(#{$fresk-xxl-right-open}, #{$fresk-drawer-right-flush});
        $fresk-both-left-anchor: calc(50% + #{$fresk-content-maxwidth} / 2 + #{$fresk-drawer-both-offset} + #{$fresk-drawer-gap});
        $fresk-both-right-anchor: calc(50% + #{$fresk-content-maxwidth} / 2 - #{$fresk-drawer-both-offset} + #{$fresk-drawer-gap});

        @include media-breakpoint-up(lg) {
            body.fresk-drawers-anchored {
                .drawer.drawer-left {
                    width: $drawer-left-width;
                    clip-path: inset(0 100% 0 0);
                    @include transition(clip-path 0.2s ease, right 0.2s ease, visibility 0.2s ease, max-height 0.2s ease);

                    &.show {
                        width: $drawer-left-width;
                        clip-path: inset(0 0 0 0);

                        &:has(.visually-hidden-focusable:focus) {
                            clip-path: none;
                        }
                    }
                }

                .drawer.drawer-right {
                    clip-path: inset(0 0 0 100%);

                    &.show {
                        clip-path: inset(0 0 0 0);
                    }
                }

                .drawer.drawer-left,
                .drawer.drawer-left.show {
                    right: $fresk-anchor-none;
                }

                .drawer.drawer-right,
                .drawer.drawer-right.show {
                    left: $fresk-anchor-none;
                }

                .drawer-toggles {
                    .drawer-left-toggle {
                        right: Min(#{$fresk-anchor-none}, #{$fresk-toggler-clamp});
                    }

                    .drawer-right-toggle {
                        left: Min(#{$fresk-anchor-none}, #{$fresk-toggler-clamp});
                    }
                }

                &:has(#page.drawers.show-drawer-left):not(:has(#page.drawers.show-drawer-right)) {
                    .drawer.drawer-left,
                    .drawer.drawer-left.show {
                        right: $fresk-solo-left-open;
                    }

                    .drawer.drawer-right,
                    .drawer.drawer-right.show {
                        left: $fresk-right-anchor-left-open;
                    }

                    .drawer-toggles .drawer-left-toggle {
                        right: Min(#{$fresk-xxl-left-open}, #{$fresk-toggler-clamp});
                    }

                    .drawer-toggles .drawer-right-toggle {
                        left: Min(#{$fresk-right-anchor-left-open}, #{$fresk-toggler-clamp});
                    }
                }

                &:has(#page.drawers.show-drawer-right):not(:has(#page.drawers.show-drawer-left)) {
                    .drawer.drawer-left,
                    .drawer.drawer-left.show {
                        right: $fresk-anchor-right-open;
                    }

                    .drawer.drawer-right,
                    .drawer.drawer-right.show {
                        left: $fresk-solo-right-open;
                    }

                    .drawer-toggles .drawer-left-toggle {
                        right: Min(#{$fresk-anchor-right-open}, #{$fresk-toggler-clamp});
                    }

                    .drawer-toggles .drawer-right-toggle {
                        left: Min(#{$fresk-xxl-right-open}, #{$fresk-toggler-clamp});
                    }
                }

                &:has(#page.drawers.show-drawer-left.show-drawer-right) {
                    .drawer.drawer-left,
                    .drawer.drawer-left.show {
                        right: Min(#{$fresk-both-left-anchor}, #{$fresk-drawer-left-flush});
                    }

                    .drawer.drawer-right,
                    .drawer.drawer-right.show {
                        left: Min(#{$fresk-both-right-anchor}, #{$fresk-drawer-right-flush});
                    }

                    .drawer-toggles .drawer-left-toggle {
                        right: $fresk-both-left-anchor;
                    }

                    .drawer-toggles .drawer-right-toggle {
                        left: $fresk-both-right-anchor;
                    }
                }
            }
        }

        @include media-breakpoint-up(lg) {
            @media (max-width: $fresk-drawer-overlay-min - 0.02) {
                body.fresk-drawers-anchored {
                    @include fresk-drawer-flush;

                    &:has(#page.drawers.show-drawer-left):not(:has(#page.drawers.show-drawer-right)),
                    &:has(#page.drawers.show-drawer-right):not(:has(#page.drawers.show-drawer-left)),
                    &:has(#page.drawers.show-drawer-left.show-drawer-right) {
                        @include fresk-drawer-flush;
                    }
                }
            }
        }

        @media (min-width: $fresk-drawer-overlay-min) {
            body.fresk-drawers-anchored {
                #page.drawers.show-drawer-left,
                #page.drawers.show-drawer-right,
                #page.drawers.show-drawer-left.show-drawer-right {
                    margin-left: 0;
                    margin-right: 0;
                }

                .drawer.drawer-left,
                .drawer.drawer-right {
                    z-index: $zindex-sticky - 5;
                }

                .drawer.drawer-left,
                .drawer.drawer-left.show {
                    right: calc(#{$fresk-drawer-left-flush} - #{$fresk-drawer-overlay-gutter});
                }

                .drawer.drawer-right,
                .drawer.drawer-right.show {
                    left: calc(#{$fresk-drawer-right-flush} - #{$fresk-drawer-overlay-gutter});
                }

                .drawer-toggles {
                    .drawer-left-toggle {
                        right: $fresk-toggler-clamp;
                    }

                    .drawer-right-toggle {
                        left: $fresk-toggler-clamp;
                    }
                }

                &:has(#page.drawers.show-drawer-left):not(:has(#page.drawers.show-drawer-right)),
                &:has(#page.drawers.show-drawer-right):not(:has(#page.drawers.show-drawer-left)),
                &:has(#page.drawers.show-drawer-left.show-drawer-right) {
                    .drawer.drawer-left,
                    .drawer.drawer-left.show {
                        right: calc(#{$fresk-drawer-left-flush} - #{$fresk-drawer-overlay-gutter});
                    }

                    .drawer.drawer-right,
                    .drawer.drawer-right.show {
                        left: calc(#{$fresk-drawer-right-flush} - #{$fresk-drawer-overlay-gutter});
                    }

                    .drawer-toggles .drawer-left-toggle {
                        right: $fresk-toggler-clamp;
                    }

                    .drawer-toggles .drawer-right-toggle {
                        left: $fresk-toggler-clamp;
                    }
                }
            }
        }

    } @else {
        @include media-breakpoint-up(lg) {
            body.fresk-drawers-anchored {
                @include fresk-drawer-flush;

                &:has(#page.drawers.show-drawer-left):not(:has(#page.drawers.show-drawer-right)),
                &:has(#page.drawers.show-drawer-right):not(:has(#page.drawers.show-drawer-left)),
                &:has(#page.drawers.show-drawer-left.show-drawer-right) {
                    @include fresk-drawer-flush;
                }
            }
        }
    }

    .drawer .drawerheader {
        .drawerheadercontent {
            display: flex;
            align-items: center;

            #courseindexdrawercontrols {
                padding-bottom: 0 !important;

                hr {
                    display: none;
                }

                .courseindex-collapsemenu {
                    color: var(--fresk-drawer-icon);

                    .icon {
                        color: var(--fresk-drawer-icon);
                    }

                    &:hover,
                    &:active,
                    &:focus,
                    &:focus-visible {
                        background-color: var(--fresk-drawer-icon-filler-hover);
                        color: var(--fresk-drawer-icon-hover);

                        .icon {
                            color: var(--fresk-drawer-icon-hover);
                        }
                    }
                }
            }
        }
    }
}

.drawer .drawerheader h3#courseindexdrawerheading {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: map-get($spacers, 2);

    a:hover,
    a:focus {
        text-decoration: underline;
    }
}

.courseindex .courseindex-section-title .courseindex-link {
    padding-block: 1px;
}

.drawer .drawerheader h3#courseindexdrawerheading a {
    display: inline-block;
    min-height: 24px;
    padding-block: 2px;
}

.courseindex .courseindex-chevron {
    min-height: 24px;
    display: inline-flex;
    align-items: center;
}
