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

:host {
    overflow:hidden;
}

.header {
    padding: 0 0 6px;
    border-bottom: 1px solid #EEEEEE;
    font-size: 18px;
    font-weight: normal;
    flex: none;
}

.blackbox-content-scripts {
    margin-top: 10px;
    flex: none;
}

.add-button {
    margin: 10px 2px;
    align-self: flex-start;
    flex: none;
}

.blackbox-list {
    margin-top: 10px;
    max-width: 500px;
    flex: 0 1 auto;
    min-height: 30px;
}

.blackbox-list-empty {
    flex: auto;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.blackbox-list-item {
    padding: 3px 5px 3px 5px;
    height: 30px;
    display: flex;
    align-items: center;
    position: relative;
    flex: auto 1 1;
}

 .blackbox-list-item .blackbox-pattern {
    white-space: nowrap;
    text-overflow: ellipsis;
    -webkit-user-select: none;
    color: #222;
    overflow: hidden;
}

.blackbox-pattern {
    flex: auto;
    min-width: 100px;
}

.blackbox-list-item.blackbox-disabled .blackbox-pattern {
    text-decoration: line-through;
}

.blackbox-behavior {
    flex: 0 0 100px;
    padding-left: 10px;
}

.blackbox-behavior > select {
    margin-left: -10px;
}

.blackbox-separator {
    flex: 0 0 1px;
    background-color: rgb(231, 231, 231);
    height: 30px;
    margin: 0 4px;
}

.blackbox-separator-invisible {
    visibility: hidden;
    height: 100% !important;
}

.blackbox-edit-row {
    flex: none;
    display: flex;
    flex-direction: row;
    margin: 6px 5px;
    align-items: center;
}

.blackbox-edit-row input,
.blackbox-edit-row select {
    width: 100%;
    text-align: inherit;
}
