.app-page {
    display: flex;
    height: 100%;

    &__sidebar {
        height: 100%;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    &__wrapper {
        flex: 1;
        display: flex;
        flex-direction: column;
        background-color: #e7ebed;
        overflow: hidden;
    }

    &__wrapper &__header {
        .icon-fold-expand {
            margin-right: 10px;

            [class^='g-icon']::before {
                font-size: 20px;
                cursor: pointer;
            }

            .g-icon--expand::before {
                content: var(--icon-expand);
            }

            .g-icon--fold::before {
                content: var(--icon-fold);
            }
        }
    }

    &__wrapper &__main {
        min-height: 100%;
    }

    &__wrapper &__tabs {
        flex: 1;
        overflow: hidden;
    }

    &__wrapper &__teleport {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;

        /* teleport 为空时隐藏元素 */
        &:empty {
            display: none;
        }
    }

    /* teleport 非空时隐藏兄弟元素 */
    &__wrapper &__teleport:not(:empty)+&__main {
        opacity: 0;
        visibility: hidden;
    }

    .view-enter-from,
    .view-leave-to {
        transform: translateX(20px);
        opacity: 0;
    }

    .view-enter-active,
    .view-leave-active {
        pointer-events: none;
        will-change: opacity, transform;
        transition: opacity 200ms, transform 200ms;
    }
}