/*
 * Copyright (C) 2013-2015 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.
 */

.console-message, .console-user-command {
    position: relative;
    padding: 4px 12px 2px 20px;
    min-height: 21px;
}

.console-user-command.special-user-log > .console-message-body {
    padding: 0 6px 1px;
    border-radius: 3px;
    border: 1px solid transparent;
    background-color: var(--selected-background-color);
    color: var(--selected-foreground-color);
    font: 10px -webkit-system-font, sans-serif;
    -webkit-user-select: none;
}

.console-message .repeat-count {
    display: inline-block;
    float: left;

    padding: 1px 4px;
    margin: 0 4px 0 0;

    height: 15px;
    background-color: hsl(217, 31%, 62%);
    vertical-align: middle;
    white-space: nowrap;

    font-size: 11px;
    text-align: left;
    line-height: normal;
    font-weight: bold;
    color: white;
    border-radius: 7px;
}

.console-message-body {
    white-space: pre-wrap;
}

.console-message-body > span {
    -webkit-user-select: text;
}

.console-message-body > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider) {
    -webkit-user-select: none;
}

.console-message-body > .console-image {
    max-width: 500px;
    max-height: 500px;
    box-shadow: 1px 2px 6px hsla(0, 0%, 0%, 0.58);
}

.console-message-body > .show-grid {
    /* Prevents the light blue highlight from being visible in the checkerboard. */
    --checkerboard-light-square: white;
}

.console-message.expandable .console-top-level-message::before {
    display: inline-block;

    vertical-align: baseline;
    margin-bottom: -2px;
    -webkit-margin-end: 2px;

    width: 13px;
    height: 13px;

    background-image: url(../Images/DisclosureTriangles.svg#closed-normal);
    background-size: 13px 13px;
    background-repeat: no-repeat;
    background-position: center;

    content: "";
}

body[dir=rtl] .console-message.expandable .console-top-level-message::before {
    transform: scaleX(-1);
}

.console-message.expandable.expanded .console-top-level-message::before {
    background-image: url(../Images/DisclosureTriangles.svg#open-normal);
}

.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider):not(.inline-lossless) {
    display: none;
}

.console-message-preview-divider {
    color: var(--console-secondary-text-color);
}

.console-message-enclosed {
    font-family: Menlo, monospace;
    font-size: 11px;
    color: var(--console-secondary-text-color);
}

.console-message .console-message-extra-parameters-container,
.console-message .console-message-stack-trace-container {
    margin: 0;
    padding: 2px 0 0 0;
    list-style: none;
    outline: none;
    display: none;
}

.console-message .console-message-stack-trace-container {
    margin-left: 20px;
}

.console-message.expandable.expanded .console-message-extra-parameters-container,
.console-message.expandable.expanded .console-message-stack-trace-container {
    display: block;
}

.console-message .console-message-extra-parameters-container > li,
.console-message .console-message-stack-trace-container > li {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    -webkit-user-select: text;
    cursor: default;
    padding: 2px 0 2px 15px;
}

.console-message .console-message-extra-parameters-container > li::before {
    display: inline-block;
    width: 15px;
    margin-left: -15px;
    text-align: center;

    height: 13px;
    content: "\2022"; /* &middot; */

    font-family: -webkit-system-font, sans-serif;
    font-size: 11px;
    color: var(--console-secondary-text-color);

    vertical-align: top;
}

.console-error-level {
    background-color: hsl(0, 100%, 96%);
    border-color: hsl(0, 100%, 92%);
}

.console-error-level .console-message-body {
    color: hsl(0, 75%, 45%);
}

.console-warning-level {
    background-color: hsl(50, 100%, 94%);
    border-color: hsl(40, 100%, 90%);
}

.console-warning-level .console-message-body {
    color: hsl(30, 90%, 35%);
}

.console-user-command .console-message {
    margin-left: -24px;
    padding-right: 0;
}

.console-log-level::before {
    content: url(../Images/Log.svg);
}

.console-log-level.console-image-container::before {
    content: url(../Images/ConsoleImage.svg);
}

.console-info-level::before {
    content: url(../Images/Info.svg);
}

.console-debug-level::before {
    content: url(../Images/Debug.svg);
}

.console-error-level::before {
    content: url(../Images/Error.svg);
}

.console-warning-level::before {
    content: url(../Images/Warning.svg);
}

.console-user-command::before {
    content: url(../Images/UserInputPromptPrevious.svg);
}

:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level).console-message {
 /* Move non-monospace log/warning/error text up a bit. */
    padding: 3px 12px 3px 20px;
}

:matches(.console-warning-level, .console-error-level, .console-log-level, .console-info-level, .console-debug-level)::before {
 /* Re-center log/warning/error icons. */
    padding-top: 1px;
}

.console-user-command > .console-message-body {
    color: hsl(209, 100%, 50%);
    -webkit-user-select: text;
}

.console-saved-variable {
    font-style: normal;
    color: var(--console-secondary-text-color);
}

.console-user-command,
.console-user-command-result {
    font-family: Menlo, monospace;
    font-size: 11px;
}

.console-user-command-result.console-log-level::before {
    content: url(../Images/UserInputResult.svg);
    margin-left: 1px;
}

.console-message .console-message-location {
    float: right;
    font-family: -webkit-system-font, sans-serif;
    font-size: 12px;
    font-weight: normal;
}

.console-message-extra-parameter .stack-trace {
    display: inline-block;
}

.console-message-location.call-frame {
    display: inline-block;
    max-width: 100%;
    max-height: 16px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.console-message-location.call-frame > .title {
    max-width: 20vw;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
}

.console-message-location.call-frame > .subtitle > .source-link {
    max-width: 30vw;
}

.console-message .go-to-link {
    color: hsla(0, 0%, 0%, 0.6);
    text-decoration: none;
}

.console-message .go-to-link:hover,
.console-message .go-to-link:focus {
    color: hsl(210, 100%, 40%);
}

.console-message .console-message-url::before {
    content: ' ';
}

.console-top-level-message .object-tree {
    display: block;
}

.console-top-level-message .object-tree .object-tree {
    display: inline-block;
}

@media (prefers-color-scheme: dark) {
    .console-message .syntax-highlighted {
        background-color: unset;
    }

    .console-warning-level .console-message-body {
        color: hsl(53, 80%, 55%);
    }

    .console-error-level .console-message-body {
        color: hsl(10, 100%, 70%);
    }

    .console-user-command > .console-message-body {
        color: hsl(209, 100%, 70%);
    }

    .console-message .repeat-count {
        background-color: hsl(218, 70%, 48%);
    }

    .console-message .go-to-link {
        color: var(--text-color-secondary);
    }

    .console-message .go-to-link:hover,
    .console-message .go-to-link:focus {
        color: var(--selected-secondary-text-color-active);
    }
}
