/*
 * Copyright 2016 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

.tree-outline {
    padding: 0;
}

.tree-outline li.not-parsed-ok {
    margin-left: 0;
}

.tree-outline li.filter-match {
    background-color: rgba(255, 255, 0, 0.5);
}

:host-context(.-theme-with-dark-background) .tree-outline li.filter-match {
    background-color: hsla(133, 100%, 30%, 0.5);
}

.tree-outline li.overloaded.filter-match {
    background-color: rgba(255, 255, 0, 0.25);
}

:host-context(.-theme-with-dark-background) .tree-outline li.overloaded.filter-match {
    background-color: hsla(133, 100%, 30%, 0.25);
}

.tree-outline li.not-parsed-ok .exclamation-mark {
    display: inline-block;
    position: relative;
    width: 11px;
    height: 10px;
    margin: 0 7px 0 0;
    top: 1px;
    left: -36px; /* outdent to compensate for the top-level property indent */
    -webkit-user-select: none;
    cursor: default;
    z-index: 1;
}

.tree-outline li {
    margin-left: 12px;
    padding-left: 22px;
    white-space: normal;
    text-overflow: ellipsis;
    cursor: auto;
    display: block;
}

.tree-outline li::before {
    display: none;
}

.tree-outline li .webkit-css-property {
    margin-left: -22px; /* outdent the first line of longhand properties (in an expanded shorthand) to compensate for the "padding-left" shift in .tree-outline li */
}

.tree-outline > li {
    padding-left: 38px;
    clear: both;
    min-height: 14px;
}

.tree-outline > li .webkit-css-property {
    margin-left: -38px; /* outdent the first line of the top-level properties to compensate for the "padding-left" shift in .tree-outline > li */
}

.tree-outline > li.child-editing {
    padding-left: 8px;
}

.tree-outline > li.child-editing .text-prompt {
    white-space: pre-wrap;
}

.tree-outline > li.child-editing .webkit-css-property {
    margin-left: 0;
}

.tree-outline li.child-editing {
    word-wrap: break-word !important;
    white-space: normal !important;
    padding-left: 0;
}

ol:not(.tree-outline) {
    display: none;
    margin: 0;
    -webkit-padding-start: 12px;
    list-style: none;
}

ol.expanded {
    display: block;
}

.tree-outline li .info {
    padding-top: 4px;
    padding-bottom: 3px;
}

.enabled-button {
    visibility: hidden;
    float: left;
    font-size: 10px;
    margin: 0;
    vertical-align: top;
    position: relative;
    z-index: 1;
    width: 18px;
    left: -40px; /* original -2px + (-38px) to compensate for the first line outdent */
    top: 1px;
    height: 13px;
}

.tree-outline li.editing .enabled-button {
    display: none !important;
}

.overloaded:not(.has-ignorable-error),
.inactive,
.disabled,
.not-parsed-ok:not(.has-ignorable-error) {
    text-decoration: line-through;
}

.has-ignorable-error .webkit-css-property {
    color: inherit;
}

.implicit,
.inherited {
    opacity: 0.5;
}

.has-ignorable-error {
    color: gray;
}

.tree-outline li.editing {
    margin-left: 10px;
    text-overflow: clip;
}

.tree-outline li.editing-sub-part {
    padding: 3px 6px 8px 18px;
    margin: -1px -6px -8px -6px;
    text-overflow: clip;
}

:host-context(.no-affect) .tree-outline li {
    opacity: 0.5;
}

:host-context(.no-affect) .tree-outline li.editing {
    opacity: 1.0;
}

:host-context(.styles-panel-hovered:not(.read-only)) .webkit-css-property:hover,
:host-context(.styles-panel-hovered:not(.read-only)) .value:hover {
    text-decoration: underline;
    cursor: default;
}

.styles-clipboard-only {
    display: inline-block;
    width: 0;
    opacity: 0;
    pointer-events: none;
    white-space: pre;
}

.tree-outline li.child-editing .styles-clipboard-only {
    display: none;
}

/* Matched styles */

:host-context(.matched-styles) .tree-outline li {
    margin-left: 0 !important;
}

.expand-icon {
    -webkit-user-select: none;
    margin-left: -6px;
    margin-right: 2px;
    margin-bottom: -2px;
}

.tree-outline li:not(.parent) .expand-icon {
    display: none;
}

:host-context(.matched-styles:not(.read-only):hover) .enabled-button {
    visibility: visible;
}

:host-context(.matched-styles:not(.read-only)) .tree-outline li.disabled .enabled-button {
    visibility: visible;
}

:host-context(.matched-styles) ol.expanded {
    margin-left: 16px;
}
