/**
 * 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;
    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, 48%, 95%);
}

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

.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: hsl(0, 0%, 46%);
}

.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: hsl(0, 0%, 34%);
}

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

.sidebar-pane-open-brace,
.sidebar-pane-closing-brace {
    color: hsl(0, 0%, 46%);
}

.styles-section .styles-section-subtitle .devtools-link {
    color: hsl(0, 0%, 44%);
    text-decoration-color: hsl(0, 0%, 60%);
}

.styles-section .selector {
    color: hsl(0, 0%, 46%);
}

.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-sidebar-pane-filter-box > input::placeholder {
    color: rgba(0, 0, 0, 0.54);
}

.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: hsla(0, 0%, 32%, 1);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    line-height: 22px;
}

.sidebar-separator > span.monospace {
    max-width: 90px;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    margin-left: 2px;
}

.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;
}
