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

.commentBox {
  position: relative;
  width: 679px;
  min-height: 16px;
  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: 5px;
  margin-right: 5px;
}

.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;
}
.contents p,
.contents ul {
  -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;
}
