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

.infobar {
    color: rgb(34, 34, 34);
    display: flex;
    flex: auto;
    border-bottom: 1px solid rgb(171, 171, 171);
    flex-direction: column;
    align-items: stretch;
    position: relative;
}

.infobar-warning {
    background-color: rgb(253, 242, 192);
}

.infobar-info {
    background-color: rgb(255, 255, 255);
}

.infobar-main-row {
    display: flex;
    flex-direction: row;
    flex: auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    justify-content: space-between;
    margin-right: 20px;
    min-height: 25px;
    align-items: center;
    padding-left: 4px;
}

.infobar-main-row > * {
    flex: none;
    padding: 0 3px;
}

.infobar-main-title {
    flex: auto;
    overflow: hidden;
    text-overflow: ellipsis;
}

.infobar-details-rows {
    padding: 5px 5px 0 5px;
}

.infobar-details-row {
    display: flex;
    flex-direction: column;
    line-height: 18px;
    padding-bottom: 6px;
}

.close-button {
    position: absolute;
    top: 5px;
    right: 6px;
}

.infobar-toggle {
    color: hsl(214, 92%, 50%);
    cursor: pointer;
}

.infobar-toggle:hover {
    color: hsl(214, 92%, 30%);
}

.info-icon {
    -webkit-mask-image: url(Images/ic_info_black_18dp.svg);
    background-color: hsl(214, 92%, 50%);
}

.warning-icon {
    -webkit-mask-image: url(Images/ic_warning_black_18dp.svg);
    background-color: hsl(44, 92%, 50%);
}

.icon {
    -webkit-mask-size: 18px 18px;
    width: 18px;
    height: 19px;
}
