/**
 * Copyright 2017 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.
 */

.styles-section {
    min-height: 18px;
    white-space: nowrap;
    -webkit-user-select: text;
    border-bottom: 1px solid var(--divider-color);
    position: relative;
    overflow: hidden;
}

.styles-section > div {
    padding: 2px 2px 4px 4px;
}

.styles-section:last-child {
    border-bottom: none;
}

.styles-section.read-only {
    background-color: #fafafa;
    font-style: italic;
}

.styles-section[data-keyboard-focus="true"]:focus {
    background-color: hsl(214, 67%, 95%);
}

.styles-section.read-only[data-keyboard-focus="true"]:focus {
    background-color: hsl(215, 25%, 91%);
}

.styles-section .simple-selector.filter-match {
    background-color: rgba(255, 255, 0, 0.5);
}

:host-context(.-theme-with-dark-background) .styles-section .simple-selector.filter-match {
    background-color: hsla(133, 100%, 30%, 0.5);
}

.sidebar-pane-closing-brace {
    clear: both;
}

.styles-section-title {
    background-origin: padding;
    background-clip: padding;
    word-wrap: break-word;
    white-space: normal;
}

.styles-section-title .media-list {
    color: #888;
}

.styles-section-title .media-list.media-matches .media.editable-media {
    color: #222;
}

.styles-section-title .media:not(.editing-media),
.styles-section-title .media:not(.editing-media) .subtitle {
    overflow: hidden;
}

.styles-section-title .media .subtitle {
    float: right;
    color: rgb(85, 85, 85);
}

.styles-section-subtitle {
    color: rgb(85, 85, 85);
    float: right;
    margin-left: 5px;
    max-width: 100%;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    height: 15px;
    margin-bottom: -1px;
}

.styles-section .styles-section-subtitle .devtools-link {
    color: inherit;
}

.styles-section .selector {
    color: #888;
}

.styles-section .simple-selector.selector-matches, .styles-section.keyframe-key {
    color: #222;
}

.styles-section .devtools-link {
    user-select: none;
}

.styles-section .style-properties {
    margin: 0;
    padding: 2px 4px 0 0;
    list-style: none;
    clear: both;
    display: flex;
}

.styles-section.matched-styles .style-properties {
    padding-left: 0;
}

@keyframes styles-element-state-pane-slidein {
    from {
        margin-top: -60px;
    }
    to {
        margin-top: 0px;
    }
}

@keyframes styles-element-state-pane-slideout {
    from {
        margin-top: 0px;
    }
    to {
        margin-top: -60px;
    }
}

.styles-sidebar-toolbar-pane {
    position: relative;
    animation-duration: 0.1s;
    animation-direction: normal;
}

.styles-sidebar-toolbar-pane-container {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

.styles-selector {
    cursor: text;
}

.styles-sidebar-pane-toolbar-container {
    flex-shrink: 0;
    overflow: hidden;
    position: sticky;
    top: 0;
    background-color: var(--toolbar-bg-color);
    z-index: 1;
}

.styles-sidebar-pane-toolbar {
    border-bottom: 1px solid #eee;
    flex-shrink: 0;
}

.styles-sidebar-pane-filter-box {
    flex: auto;
    display: flex;
}

.styles-sidebar-pane-filter-box > input {
    outline: none !important;
    border: none;
    width: 100%;
    background: white;
    padding-left: 4px;
    margin: 3px;
}

.styles-sidebar-pane-filter-box > input:hover {
    box-shadow: var(--focus-ring-inactive-shadow);
}

.styles-sidebar-pane-filter-box > input:focus,
.styles-sidebar-pane-filter-box > input:not(:placeholder-shown) {
    box-shadow: var(--focus-ring-active-shadow);
}

.styles-section.styles-panel-hovered:not(.read-only) span.simple-selector:hover,
.styles-section.styles-panel-hovered:not(.read-only) .media-text :hover{
    text-decoration: underline;
    cursor: default;
}

.sidebar-separator {
    background-color: var(--toolbar-bg-color);
    padding: 0 5px;
    border-bottom: 1px solid var(--divider-color);
    color: rgb(50, 50, 50);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    line-height: 22px;
}

.sidebar-separator > span.monospace {
    background: rgb(255, 255, 255);
    padding: 1px 3px;
    border: 1px solid var(--divider-color);
}

.sidebar-pane-section-toolbar {
    position: absolute;
    right: 0;
    bottom: 0;
    visibility: hidden;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 0;
}

.styles-section[data-keyboard-focus="true"]:focus .sidebar-pane-section-toolbar {
    background-color: hsla(214, 67%, 95%, 0.9);
}

.styles-pane:not(.is-editing-style) .styles-section.matched-styles:not(.read-only):hover .sidebar-pane-section-toolbar {
    visibility: visible;
}

.styles-show-all {
    margin-left: 16px;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: -webkit-fill-available;
}
