/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

body {
  margin: 10px 10px 0;
<if expr="not is_android">
  min-width: 47em;
</if>
  /* Should match needs-restart.height + 5 */
  padding-bottom: 75px;
}

a {
  color: blue;
  font-size: 103%;
}

.permalink {
  color: #A0A0A0;
}

#header {
  -webkit-padding-start: 75px;
  background: -webkit-image-set(
      url('../../app/theme/default_100_percent/flags_section.png') 1x,
      url('../../app/theme/default_200_percent/flags_section.png') 2x)
      no-repeat left center;
  box-sizing: border-box;
  display: table;
  margin-bottom: 1.05em;
  /* 67px is the height of the header's image. */
  min-height: 67px;
  overflow: hidden;
  position: relative;
}

#title-spacer {
  display: table-cell;
  vertical-align: middle;
}

html[dir=rtl] #header {
  background-position: right center;
}

h1 {
  font-size: 156%;
  font-weight: bold;
  margin: 0;
  padding: 0;
}

.blurb-container {
  font-size: 120%;
  padding-bottom: 1.5em;
}

#blurb-warning {
  color: red;
  font-weight: bold;
}

div.content {
  font-size: 88%;
  margin: 5px auto 10px;
}

div.content:last-of-type {
  margin-bottom: 0;
}

.section-header {
  background: rgb(235, 239, 249);
  border-top: 1px solid rgb(181, 199, 222);
  font-size: 99%;
  padding: 2px 5px 3px;
  width: 100%;
}

.section-header > table tr td:first-child {
  width: 100%;
}

.section-header > table {
  width: 100%;
}

.section-header-title {
  font-weight: bold;
  line-height: 200%;
}

#experiment-reset-all {
  float: right;
}

html[dir=rtl] #experiment-reset-all {
  float: left;
}

.vbox-container {
  -webkit-box-orient: vertical;
  display: -webkit-box;
}

.wbox {
  -webkit-box-align: stretch;
  -webkit-box-flex: 1;
  display: -webkit-box;
}

#top {
  -webkit-padding-end: 5px;
}

/* Disabled and unsupported experiments display grey text on a grey background.
   The title, however, should remain legible. */

.experiment-unsupported > td,
.experiment-disabled > td {
  background: #F0F0F0;
  color: #A0A0A0;
}

.experiment-unsupported .experiment-name,
.experiment-disabled .experiment-name {
  color: #000;
}

.experiment {
  border-bottom: 1px solid #cdcdcd;
}

.experiment td {
  padding-bottom: 4px;
  padding-top: 5px;
}

/* Indent the text related to each experiment. */
.experiment-text {
  -webkit-padding-start: 5px;
}

.experiment-name {
  font-weight: bold;
}

.referenced .experiment-name {
  background-color: rgb(255, 255, 0);
}

.no-experiments {
  font-size: 1.2em;
  margin: 6em 0;
  text-align: center;
}

/* Match the indentation of .experiment-text. */
.experiment-actions {
  -webkit-padding-start: 5px;
  margin-bottom: 0.2em;
  margin-top: 0.2em;
}

div.needs-restart {
  background: #FFF;
  border-top: 1px solid rgb(181, 199, 222);
  bottom: 0;
  box-sizing: border-box;
  /* If you change this, update body.padding-bottom */
  height: 70px;
  left: 0;
  padding-bottom: 25px;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 15px;
  position: fixed;
  width: 100%;
}

button {
  font-size: 104%;
}

