/*
 * Copyright (C) 2013 Apple Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

.content-view.timeline-recording > .timeline-overview {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

.content-view.timeline-recording.edit-instruments > .timeline-overview {
    bottom: 0;
}

.content-view.timeline-recording.edit-instruments > .content-browser {
    display: none;
}

.content-view.timeline-recording > .content-browser {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;

    border-top: 1px solid var(--border-color);
}

.content-view.timeline-recording > .content-browser > .navigation-bar {
    background-color: var(--panel-background-color);
    border-bottom: 1px solid var(--border-color);
}

.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected {
    --scope-bar-text-color-override: var(--text-color);
    --scope-bar-background-color-override: transparent;
    --scope-bar-border-color-override: transparent;
}

.content-view.timeline-recording > .content-browser :matches(.recording-progress, .recording-imported) {
    position: absolute;
    left: 0;
    right: 0;
    top: var(--navigation-bar-height);
    bottom: 0;
    text-align: center;
    background-color: var(--panel-background-color-light);
}

.content-view.timeline-recording > .content-browser :matches(.recording-progress, .recording-imported) > .status {
    margin-top: 40px;
    margin-bottom: 10px;
    text-align: center;
    font-size: 12px;
    color: var(--text-color-secondary)
}

.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner {
    display: inline-block;
    margin-top: -1px;
    -webkit-margin-start: 8px;
    vertical-align: middle;
}
