.wy-nav-side {
    width: var(--sidebar-width, 300px) !important;
    overflow: hidden;
}

.wy-nav-content-wrap {
    margin-left: var(--sidebar-width, 300px) !important;
}

/* Этот отступ в 20px под полосу прокрутки учитывается в sidebar-collapse.css - значения должны совпадать. */
.wy-side-scroll {
    width: calc(var(--sidebar-width, 300px) + 20px) !important;
}

.wy-menu-vertical {
    width: var(--sidebar-width, 300px) !important;
}

.wy-menu-vertical p.caption {
    height: auto !important;
    max-width: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

.wy-nav-side-resizer {
    position: fixed;
    top: 0;
    left: var(--sidebar-width, 300px);
    transform: translateX(-3px);
    width: 6px;
    height: 100vh;
    cursor: col-resize;
    z-index: 210;
    background: transparent;
    transition: background-color .15s ease;
}

.wy-nav-side-resizer:hover,
.wy-nav-side-resizer.is-dragging {
    background: rgba(155, 153, 255, 0.4);
}

@media screen and (max-width: 768px) {
    /* Без :not(.shift) это правило держало бы мобильное меню закрытым всегда, так как !important здесь выше специфичности .shift темы. */
    .wy-nav-side:not(.shift) {
        left: calc(-1 * var(--sidebar-width, 300px)) !important;
    }

    .wy-nav-side.shift {
        left: 0 !important;
        width: min(var(--sidebar-width, 300px), 85vw) !important;
    }

    .wy-menu-vertical {
        width: min(var(--sidebar-width, 300px), 85vw) !important;
    }

    .wy-side-scroll {
        width: min(calc(var(--sidebar-width, 300px) + 20px), calc(85vw + 20px)) !important;
    }

    /* Без этого переопределения контент сжимался бы под скрытое за экран меню на мобильном. */
    .wy-nav-content-wrap {
        margin-left: 0 !important;
    }

    .wy-nav-side-resizer {
        display: none;
    }
}
