/* Copyright (C) 2013 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.
 */

.commentWidgets {
  max-width: 650px;

  font-family: sans-serif;
  background-color: #fcfa96;
  border: 1px solid black;
  -webkit-box-shadow: 3px 3px 3px #888888;
  -moz-box-shadow: 3px 3px 3px #888888;
  box-shadow: 3px 3px 3px #888888;

  /* margin-bottom is fixed in CommentGroup.computeHeight() */
  margin-bottom: 5px;
  margin-right: 5px;

  -webkit-touch-callout: initial;
  -webkit-user-select: initial;
  -khtml-user-select: initial;
  -moz-user-select: text;
  -ms-user-select: initial;
}

.commentBox {
  position: relative;
  min-height: 16px;
}

.header {
  cursor: pointer;
}

.summary {
  color: #777;
  position: absolute;
  top: 1px;
  left: 120px;
  width: 408px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-bottom: 0.1em;
}

.date {
  white-space: nowrap;
  position: absolute;
  top: 2px;
  right: 5px;
}

.contents {
  margin-left: 28px;
  padding-top: 2px;
  position: relative;
}
.message {
  overflow-x: auto;
}
.message p,
.message ul,
.message blockquote {
  -webkit-margin-before: 0;
  -webkit-margin-after: 0.3em;
}
.commentBox button {
  margin-right: 3px;
  margin-bottom: 1px;
  padding: 1px;
  text-align: center;
  font-size: 8px;
  font-weight: bold;
  border: 1px solid black;
  cursor: pointer;
  color: #fff;
  background-color: #4d90fe;
  background-image: -webkit-linear-gradient(top, #4d90fe, #4d90fe);
  -webkit-border-radius: 2px;
  -webkit-box-sizing: content-box;
}
.commentBox button div {
  width: 25px;
  white-space: nowrap;
  color: #fff;
}

@sprite .go_prev {
  gwt-image: "go_prev";
  display: inline-block;
}
@sprite .go_next {
  gwt-image: "go_next";
  display: inline-block;
}
@sprite .go_up {
  gwt-image: "go_up";
  display: inline-block;
}
