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

.service-worker-cache-data-view .data-view-toolbar {
    position: relative;
    background-color: #eee;
    border-bottom: 1px solid #ccc;
    padding-right: 10px;
}

.service-worker-cache-data-view .data-grid {
    flex: auto;
}

.service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(1) td {
    border: 0;
}

.service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(2) td {
    border-bottom: 1px solid #aaa;
}

.service-worker-cache-data-view .data-grid .data-container tr.selected {
    background-color: rgb(212, 212, 212);
    color: inherit;
}

.service-worker-cache-data-view .data-grid:focus .data-container tr.selected {
    background-color: var(--selection-bg-color);
    color: white;
}

.service-worker-cache-data-view .section,
.service-worker-cache-data-view .section > .header,
.service-worker-cache-data-view .section > .header .title {
    margin: 0;
    min-height: inherit;
    line-height: inherit;
}

.service-worker-cache-data-view .data-grid .data-container td .section .header .title {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.cache-preview-panel-resizer {
    background-color: #eee;
    height: 4px;
    border-bottom: 1px solid rgb(64%, 64%, 64%);
}

.cache-storage-summary-bar {
    flex: 0 0 27px;
    line-height: 27px;
    padding-left: 5px;
    background-color: #eee;
    border-top: 1px solid #ccc;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
