.c-so-view {
    display: flex;
    flex-direction: column;

    /*************************** HEADER */
    &__header {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        margin-bottom: $interiorMargin;

        &__icon {
            flex: 0 0 auto;
            margin-right: $interiorMarginSm;
            opacity: 0.5;
        }

        &__name {
            @include headerFont(1em);
            @include ellipsize();
            flex: 0 1 auto;
        }
    }

    &:not(.c-so-view--no-frame) {
        background: $colorBodyBg;
        border: $browseFrameBorder;
        padding: $interiorMargin;
    }

    &--no-frame {
        > .c-so-view__header {
            display: none;
        }

        > .c-so-view__local-controls {
            top: $interiorMarginSm; right: $interiorMarginSm;
        }
    }

    &__local-controls {
        position: absolute;
        top: $interiorMargin; right: $interiorMargin;
        z-index: 2;
    }

    &__view-large {
        display: none;
    }

    &.has-complex-content {
        > .c-so-view__view-large { display: block; }
    }

    /*************************** OBJECT VIEW */
    &__object-view {
        flex: 1 1 auto;
        height: 0; // Chrome 73 overflow bug fix
        overflow: auto;

        .c-object-view {
            .u-fills-container {
                // Expand component types that fill a container
                @include abs();
            }
        }
    }

    .c-click-icon,
    .c-button {
        // Shrink buttons a bit when they appear in a frame
        font-size: 0.85em;
        padding: 3px 5px;
    }
}
