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

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

.conditions-list {
    max-width: 500px;
    min-width: 340px;
    flex: auto;
}

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

.conditions-list-text {
    white-space: nowrap;
    text-overflow: ellipsis;
    flex: 0 0 70px;
    user-select: none;
    color: #222;
    text-align: end;
    position: relative;
}

.conditions-list-title {
    text-align: start;
    flex: auto;
    display: flex;
    align-items: flex-start;
}

.conditions-list-title-text {
    overflow: hidden;
    flex: auto;
    white-space: nowrap;
    text-overflow: ellipsis;
}

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

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

.conditions-edit-row {
    flex: none;
    display: flex;
    flex-direction: row;
    margin: 6px 5px;
}

.conditions-edit-row input {
    width: 100%;
    text-align: inherit;
}

.conditions-edit-optional {
    position: absolute;
    bottom: -20px;
    right: 0;
    color: rgb(128, 128, 128);
}
