/**
 * 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, 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;
}
