/* Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

.xdocs-panel {
  border-spacing: 5px 5px;
  width: 100%;
}

.xdocs-file-header td {
  padding-right: 5px;
}

.xdocs-icon-panel {
  position: absolute;
  right: 10px;
  height: 16px;
  line-height: 16px;
}

.xdocs-icon-panel img {
  padding-right: 3px;
}

.xdocs-icon-panel div {
  float: left;
}

.xdocs-panel iframe {
  width: 100%;
  border-width: 1px;
  border-style: solid;
}

.xdocs-error {
  margin-top: 10px;
  color: red;
  font-weight: bold;
}

.xdocs-patch-set-select-box {
  background-color: #F7F7F7;
  color: #353535;
  font-size: 12px;
  white-space: normal;
  font-family: sans-serif;
  font-weight: bold;
}
.xdocs-patch-set-select-box-side-by-side {
  text-align: center;
}
.xdocs-patch-set-select-box div {
  padding-left: 3px;
  padding-right: 3px;
  vertical-align: middle;
  display: inline-block;
}
.xdocs-patch-set-select-box a {
  padding-left: 3px;
  padding-right: 3px;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
}

.xdocs-patch-set-select-box-selected {
  font-weight: bold;
  background-color: #D8EDF9;
}

.xdocs-diff-table {
  width: 100%;
  color: #DDD;
  border-collapse: collapse;
}

.xdocs-diff-table tr:first-child td,
.xdocs-unified-diff-table tr:nth-child(2) td {
  color: #F7F7F7;
}

.xdocs-diff-table td {
  padding: 0px;
  border-width: 1px;
  border-style: solid;
}

.xdocs-diff-table iframe {
  border-style: none;
}

.xdocs-monospace {
  font-family: monospace;
}

.xdocs-hidden {
  visibility: hidden;
}
