/* Copyright (c) 2012 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.
 */

#timeline-view-selection-div {
  display: inline-block;
  overflow-y: auto;
}

#timeline-view-selection-toggle {
  background-color: #fff;
  background-image: url(chrome://resources/images/select.png);
  border: none;
  height: 8px;
  padding: none;
  width: 19px;
}

.timeline-view-rotateleft {
  -webkit-transform: rotate(90deg);
}

.timeline-view-rotateright {
  -webkit-transform: rotate(270deg);
}

#timeline-view-selection-div ul {
  margin-top: 0;
  padding-left: 10px;
}

#timeline-view-selection-div li {
  list-style: none;
  white-space: nowrap;
}

.timeline-view-text {
  color: black;
}

#timeline-view-open-sockets {
  color: rgb(170, 0, 170);
}

#timeline-view-in-use-sockets {
  color: rgb(255, 51, 204);
}

#timeline-view-url-requests {
  color: black;
}

#timeline-view-dns-requests {
  color: rgb(102, 187, 187);
}

#timeline-view-dns-jobs {
  color: rgb(150, 20, 29);
}

#timeline-view-bytes-received {
  color: rgb(0, 187, 0);
}

#timeline-view-bytes-sent {
  color: red;
}

#timeline-view-disk-cache-bytes-read {
  color: rgb(0, 0, 255);
}

#timeline-view-disk-cache-bytes-written {
  color: #999;
}

/* Need the id in this rule to override the above color rules. */
#timeline-view-selection-div .timeline-view-hidden {
  color: white;
}

#timeline-view-graph-div {
  background-color: white;
}

#timeline-view-graph-canvas {
  cursor: pointer;
  padding: 10px 10px 2px;
}

#timeline-view-scrollbar-div {
  overflow-x: scroll;
  overflow-y: hidden;
}

#timeline-view-scrollbar-inner-div {
  height: 1px;
}
