/* Copyright 2016 The Chromium Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

.activity-stream-list h4 {
  font-size: 100%;
  font-weight: normal;
  padding: 0;
  margin: 0;
  padding-left: 1em;
  background: var(--chops-table-header-bg);
  line-height: 160%;
}
ul.activity-stream {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.activity-stream li {
  margin: 0;
  padding: 0.375em 0;
  z-index: 0;
  clear: both;
}
ul.activity-stream li {
  border-bottom: var(--chops-normal-border);
}
ul.activity-stream span.date {
  float: left;
  width: 7.5em;
  text-align: right;
  color: #5f5f5f;
  padding-right: 1em;
  background-repeat: no-repeat;
  background-position: 5px center;
}
ul.activity-stream span.below-more {
  background-image: url(/static/images/plus.gif);
  cursor: pointer;
}
ul.activity-stream li.click span.below-more {
  background-image: url(/static/images/minus.gif);
}
ul.activity-stream span.content {
  display: block;
  overflow: hidden;
  white-space: nowrap;
}
ul.activity-stream span.content span.highlight-column {
  padding-right: 1em;
}
ul.activity-stream span.details-inline {
  color: #676767;
}
ul.activity-stream span.details-inline pre {
  display: inline;
}
ul.activity-stream span.details-inline div,
ul.activity-stream span.details-inline span {
  display: inline;
}
ul.activity-stream div.details-wrapper {
  display: none;
}
ul.activity-stream li.click span.details-inline {
  display: none;
}
ul.activity-stream li.click div.details-wrapper {
  display: block;
  overflow: hidden;
}
ul.activity-stream div.details {
  color: #5f5f5f;
  margin-top: 0.3em;
  padding-top: 0.2em;
  padding-bottom: 0.2em;
  margin-left: 0.2em;
  border-left: 0.3em solid #e5ecf9;
  padding-left: 0.5em;
  line-height: 130%;
}
ul.activity-stream div.details span.ot-logmessage,
ul.activity-stream div.details span.ot-issue-comment,
ul.activity-stream div.details span.ot-project-summary {
  white-space: pre;
}
ul.activity-stream div.details a,
ul.activity-stream span.details-inline a {
  color: var(--chops-link-color);
}
a.showAll,
a.hideAll {
  color: var(--chops-link-color);
}
body.detailedInfo_hidden ul.activity-stream a.details {
  color: var(--chops-link-color);
  text-decoration: underline;
  cursor: pointer;
}
ul.activity-stream div.details pre {
  font-size: 110%;
  line-height: 125%;
  padding: 0;
  margin: 0;
}
ul.activity-stream span.content a.ot-profile-link-1,
ul.activity-stream span.content a.ot-project-link-1 {
  color: var(--chops-link-color);
}
ul.activity-stream span.content a.ot-profile-link-2,
ul.activity-stream span.content a.ot-project-link-2 {
  color: var(--chops-link-color);
}
ul.activity-stream div.details span.ot-revlogs-br-1 {
  display: block;
  padding: 0;
  margin: 0;
}
ul.activity-stream div.details span.ot-revlogs-br-2,
ul.activity-stream div.details span.ot-issue-fields-br {
  display: block;
  padding: 0;
  margin: 0.5em;
}
ul.activity-stream div.details span.ot-issue-field-wrapper,
ul.activity-stream div.details span.ot-labels-field-wrapper  {
  font-family: arial, sans-serif;
}
ul.activity-stream span.details-inline span.ot-issue-field-wrapper,
ul.activity-stream span.details-inline span.ot-labels-field-wrapper  {
  font-family: arial, sans-serif;
}
ul.activity-stream div.details span.ot-issue-field-name,
ul.activity-stream div.details span.ot-labels-field-name {
  font-weight: bold;
}
ul.activity-stream span.details-inline span.ot-issue-field-name,
ul.activity-stream span.details-inline span.ot-labels-field-name  {
  font-weight: bold;
}
div.display-error {
  font-style: italic;
  text-align: center;
  padding: 3em;
}
.results td a {
  color: var(--chops-link-color);
}
.results td a:hover {
  text-decoration: underline;
}
.results td a.closed_ref {
  color: var(--chops-link-color);
  text-decoration: line-through;
}
.results td {
  cursor: auto;
}
.highlight-column {
  overflow: hidden;
  white-space: nowrap;
  display: block;
}

/**
 * Document container designed for fluid width scaling.
 * Alternative g-doc- fixed-width classes are in gui-fixed.css.
 */
.g-doc {
  width: 100%;
  text-align: left;
}

/* For agents that support the pseudo-element selector syntax. */
.g-section:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

/* Disable the clear on nested sections so they'll actually nest. */
.g-unit .g-section:after {
  clear: none;
}
.g-section {
  /* Helps with extreme float-drops in nested sections in IE 6 & 7. */
  width: 100%;
  /* So nested sections' background-color paints the full height. */
  overflow: hidden;
}

/* Forces "hasLayout" for IE. This fixes the usual gamut of peekaboo bugs. */
.g-section,
.g-unit {
  zoom: 1;
}

/* Used for splitting a template's units text-alignment to the outer edges. */
.g-split .g-unit {
  text-align: right;
}
.g-split .g-first {
  text-align: left;
}

/* Document container designed for 1024x768 */
.g-doc-1024 {
  width: 73.074em;
  *width: 71.313em;
  min-width: 950px; /* min-width doesn't work in IE6 */
  margin: 0 auto;
  text-align: left;
}
/* Document container designed for 800x600 */
.g-doc-800 {
  width: 57.69em;
  *width: 56.3em;
  min-width: 750px;  /* min-width doesn't work in IE6 */
  margin: 0 auto;
  text-align: left;
}

.g-tpl-160 .g-unit,
.g-unit .g-tpl-160 .g-unit,
.g-unit .g-unit .g-tpl-160 .g-unit,
.g-unit .g-unit .g-unit .g-tpl-160 .g-unit {
  margin: 0 0 0 8.5em;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-unit .g-tpl-160 .g-first,
.g-unit .g-unit .g-tpl-160 .g-first,
.g-unit .g-tpl-160 .g-first,
.g-tpl-160 .g-first {
  margin: 0;
  width: 8.5em;
  float: left;
}

.g-tpl-300 .g-unit,
.g-unit .g-tpl-300 .g-unit,
.g-unit .g-unit .g-tpl-300 .g-unit,
.g-unit .g-unit .g-unit .g-tpl-300 .g-unit {
  margin: 0 0 0 19.5em;
  width: auto;
  float: none;
}
.g-unit .g-unit .g-unit .g-tpl-300 .g-first,
.g-unit .g-unit .g-tpl-300 .g-first,
.g-unit .g-tpl-300 .g-first,
.g-tpl-300 .g-first {
  margin: 0;
  width: 19.5em;
  float: left;
}
