/*
 * Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

/* CSS reset. */

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font-family: sans-serif;
  vertical-align: baseline;
  background: transparent;
}

/* Language-specific labels.  Default to display: none, but set display: inline
   when the respective language class is present. */
.goofy-label-en, .goofy-label-zh {
  display: none;
}
.goofy-lang-en .goofy-label-en, .goofy-lang-zh .goofy-label-zh {
  display: inline;
}

/* Top-level UI elements. */
body {
  overflow: hidden;
}
.goofy-horizontal-border {
  position: relative;
  overflow: hidden;
  top: 0; right: 0; height: 4px; width: 100%;
}
.goofy-horizontal-border-1 {
  position: absolute;
  left: 0; width: 100%; height: 100%;
  background-color: #4172a0;
}
.goofy-horizontal-border-2 {
  position: absolute;
  left: 25%; width: 100%; height: 100%;
  background-color: #779fd3;
}
.goofy-horizontal-border-3 {
  position: absolute;
  left: 50%; width: 100%; height: 100%;
  background-color: #85b4df;
}
.goofy-horizontal-border-4 {
  position: absolute;
  left: 75%; width: 100%; height: 100%;
  background-color: #cddff0;
}
#goofy-control, #goofy-main-and-console .goog-splitpane-second-container {
  overflow: auto;
}
#goofy-console {
  padding: .5em;
}
#goofy-main {
  left: 0; top: 0;
  width: 100%; height: 100%;
}
#goofy-main iframe {
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 100%;
}

/* Elements in the control pane. */
#goofy-control h1 {
  font-size: 125%;
  padding: .25em;
}
#goofy-logo {
  height: 22px;
  vertical-align: middle;
}
#goofy-logo-text {
  vertical-align: middle;
  cursor: pointer;
}
#goofy-logo-down-arrow {
  font-size: 60%;
  vertical-align: .25em;
}
#goofy-language-selector {
  float: right;
  padding: .675em .5em .5em .5em;
}
#goofy-language:hover {
  text-decoration: underline;
  cursor: pointer;
}
#goofy-loading {
  font-style: italic;
  font-size: 75%;
}
#goofy-loading img {
  margin-right: 3px;
  vertical-align: bottom;
}
.goofy-kbd-shortcut {
  float: right;
  font-size: 75%;
  padding-right: .5em;
  color: darkgray;
}

.goofy-test-icon {
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: -2px;
  width: 16px; height: 16px;
}
.goofy-status-passed > div > .goofy-test-icon {
  background-image: url(images/passed.gif);
}
.goofy-status-active > div > .goofy-test-icon {
  background-image: url(images/active.gif);
}
.goofy-status-failed > div > .goofy-test-icon {
  background-image: url(images/failed.gif);
}
.goofy-status-untested > div > .goofy-test-icon {
  background-image: url(images/untested.gif);
}
.goofy-test-failure-expanded .goofy-test-failure-detail-link {
  display: none;
}
.goofy-test-failure-expanded .goofy-test-failure-detail {
  display: block;
}
.goofy-test-failure-detail-link {
  text-decoration: underline;
  cursor: pointer;
  color: blue;
  font-style: italic;
  font-size: 75%;
  padding-top: 1em;
}
.goofy-test-failure-detail {
  white-space: pre;
  display: none;
  font-size: 75%;
  padding-top: 1em;
}
.goofy-history dt {
  font-weight: bold;
}
.goofy-history dd {
  font-size: 75%;
  white-space: pre;
}
dl.goofy-history {
  overflow-x: hidden;
  overflow-y: scroll;
  padding-right: 1em;
  padding-bottom: 1em;
}
.goofy-history dd {
  padding-right: 1em;
  padding-bottom: 1em;
}
.goofy-history dd + dt {
  border-top: 1px solid lightgray;
  padding-right: 1em;
  padding-top: 1em;
}
#goofy-system-info th, #goofy-system-info td {
  font-size: 75%;
  text-align: left;
  padding: 0 .1em 0 .1em;
}
#goofy-system-info th {
  padding-right: 1em;
}
#goofy-version th {
  text-wrap: none;
}
#goofy-system-info-hover {
  position: fixed;
  right: 16px;
  bottom: 2px;
}
.goofy-unknown {
  color: darkgray;
  font-style: italic;
}

/* Elements in the console pane. */
.goofy-internal-log {
  font-style: italic;
}

/* Overrides for Closure components. */

#goofy .goog-menu {
  margin-left: -1em;
}
#goofy .goog-menuitem {
  padding-left: 1em;
  padding-right: 2em;
}
#goofy-control .goog-tree-root {
  padding-left: .5em;
}
#goofy-control .goog-tree-children {
  background-image: url(images/tree/I.png) !important;
}
#goofy-control .goog-tree-icon {
  background-image: url(images/tree/tree.png);
}
#goofy-control .goog-tree-row {
  height: 20px;
  line-height: 20px;
}
#goofy-control .goog-tree-item-label {
  margin-left: 2px;
}
#goofy-control .goog-tree-expand-icon {
  vertical-align: -1px;
}
/* Use same color, whether or not it's focused. */
#goofy-control .selected .goog-tree-item-label {
  background-color: #cddff0;
}

/* Split pane definitions (not included in Closure). */
.goog-splitpane {
  position: absolute;
  overflow: hidden;
  left: 0; right: 0; top: 0; bottom: 0;
}
.goog-splitpane-handle {
  background: #cddff0;
  position: absolute;
}
.goog-splitpane-handle-horizontal {
  cursor: col-resize;
}
.goog-splitpane-handle-vertical {
  cursor: row-resize;
}
.goog-splitpane-first-container,
.goog-splitpane-second-container {
  overflow: hidden;
  position: absolute;
}
