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

/*
 * Styles for the Tag Diff
 */
span.diff-tag-html {
  font-family: "Andale Mono" monospace;
  font-size: 80%;
}

span.diff-tag-removed {
  display: none;
}

span.diff-tag-added {
  font-size: 100%;
  background-color: #ccffcc; /* light green */
}

span.diff-tag-conflict {
  font-size: 100%;
  background-color: #f781be; /* light rose */
}

/*
 * Styles for the HTML Diff
 */
span.diff-html-added {
  font-size: 100%;
  background-color: #ccffcc; /* light green */
}

span.diff-html-removed {
  display: none;
}

span.diff-html-changed {
  background: url(../images/diffunderline.gif) bottom repeat-x;
  *background-color: #c6c6fd; /* light blue */
}

span.diff-html-conflict {
/*  background: url(../images/diffunderline.gif) bottom repeat-x; */
  background-color: #f781be; /* light rose */
}

span.diff-html-selected {
  background-color: #FF8800; /* light orange */
}

span.diff-html-selected img{
   border: 2px solid #FF8800; /* light orange */
}

span.diff-html-added img{
 border: 2px solid #ccffcc;
}

span.diff-html-removed img{
 border: 2px solid #fdc6c6;
}

span.diff-html-changed img{
 border: 2px dotted #000099;
}

div.diff-removed-image, div.diff-added-image, div.diff-conflict-image {
  height: 300px;
  width: 200px;
  position: absolute;
  opacity : 0.55;
  filter: alpha(opacity=55);
  -moz-opacity: 0.55;
}

div.diff-removed-image, div.diff-added-image, div.diff-conflict-image  {
  margin-top: 2px;
  margin-bottom: 2px;
  margin-right: 2px;
  margin-left: 2px;
}

div.diff-removed-image {
  background-color: #fdc6c6;
  background-image: url(../images/diffmin.gif);
}
div.diff-added-image {
  background-color: #ccffcc;
  background-image: url(../images/diffplus.gif);
  background-repeat: no-repeat;
}

div.diff-conflict-image {
  background-color: #f781be;
  background-image: url(../images/diffconflict.gif);
  background-repeat: no-repeat;
}

img.diff-icon {
  background-color: #FF8800;
  background-image: url(../images/bg_rounded.gif);
  width: 16px;
  height: 16px;
  border: 0px none;
}

table.diff-tooltip-link, table.diff-tooltip-link-changed {
   width: 100%;
   text-align: center;
   Vertical-align: middle;
}

table.diff-tooltip-link-changed {
    border-top: thin dashed #000000;
    margin-top: 3px;
    padding-top: 3px
}
td.diff-tooltip-prev {
   text-align: left;
}

td.diff-tooltip-next {
   text-align: right;
}

table.diffpage-html-firstlast {
  width: 100%;
  Vertical-align: middle;
}

div.diff-topbar{
 border-bottom: 2px solid #FF8800;
 border-left: 1px solid #FF8800;
 border-right: 1px solid #FF8800;
 background-color: #FFF5F5;
}

a.diffpage-html-a, a.diffpage-html-a:hover, a.diffpage-html-a:link, a.diffpage-html-a:visited, a.diffpage-html-a:active {
  text-decoration: none;
  color: #FF8800;
}

.diffpage-html-firstlast a img, .dsydiff-prevnextnav a img {
  vertical-align: middle;
}

ul.changelist {
  padding-left: 15px;
}

body{
  margin-top: 0px;
}
