/* Copyright 2013 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;
  min-width: 47em;
}

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

#header {
  -webkit-padding-start: 0;
  box-sizing: border-box;
  margin-bottom: 1.05em;
  /* 67px is the height of the header's background image. */
  min-height: 67px;
  overflow: hidden;
  padding-bottom: 20px;
  padding-top: 20px;
  position: relative;
}

#header > h1 {
  background: -webkit-image-set(
      url('../../app/theme/default_100_percent/extensions_section.png') 1x,
      url('../../app/theme/default_200_percent/extensions_section.png') 2x)
      0 20px no-repeat;
  display: inline;
  margin: 0;
  padding-bottom: 40px;
  padding-left: 75px;
  padding-top: 40px;
}

html[dir=rtl] #header > h1 {
  background: -webkit-image-set(
      url('../../app/theme/default_100_percent/extensions_section.png') 1x,
      url('../../app/theme/default_200_percent/extensions_section.png') 2x)
      right no-repeat;
  padding-left: 0;
  padding-right: 95px;
}

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

#disabled-container {
  font-size: 120%;
  padding-bottom: 1.5em;
}

#disabled-header {
  color: red;
  font-weight: bold;
}

.content {
  font-size: 88%;
  margin-top: 5px;
}

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

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

.section-header > table tr {
  vertical-align: center;
}

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

.section-header-title {
  font-weight: bold;
}

.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;
}

.show-in-tmi-mode {
  overflow: hidden;
}

body.hide-tmi-mode-initial .show-in-tmi-mode {
  height: 0 !important;
  opacity: 0;
}

body.hide-tmi-mode .show-in-tmi-mode {
  -webkit-transition: all 100ms ease-out;
  height: 0 !important;
  opacity: 0;
}

body.show-tmi-mode-initial .show-in-tmi-mode {
  opacity: 1;
}

body.show-tmi-mode .show-in-tmi-mode {
  -webkit-transition: all 100ms ease-in;
  opacity: 1;
}

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

.tmi-mode-image {
  margin-top: 2px;
  padding-left: 5px;
  padding-right: 5px;
}

.tmi-mode-link {
  margin-right: 3px;
  white-space: nowrap;
}

.tmi-mode-link a {
  font-size: 97%;
}

.tmi-mode {
  -webkit-padding-start: 10px;
  background: rgb(244, 246, 252);
  border-bottom: 1px solid rgb(237, 239, 245);
  font-size: 89%;
  padding-bottom: 0.8em;
  padding-top: 0.8em;
  width: 100%;
}

.component-disabled {
  background-color: #f0f0f0;
  color: #a0a0a0;
}

.component > tr > td {
  padding-bottom: 4px;
  padding-top: 5px;
  vertical-align: top;
}

.component > table {
  width: 100%;
  border-collapse:collapse
}

.plugin-file {
  padding-bottom: 5px;
  padding-top: 5px;
}

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

.critical {
  color: red;
}

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

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

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

/* Use tables for layout, so eliminate extra spacing. */
.plugin-details table {
  -webkit-border-horizontal-spacing: 0;
  -webkit-border-vertical-spacing: 0;
}

.plugin-details {
  -webkit-padding-start: 1em;
}

/* Separate the inital line, Description, Location, and MIME Types lines. */
.plugin-details > div {
  padding-top: 0.1em
}

/* Align rows of tables along the top. */
.plugin-details tr {
  vertical-align: top;
}

/* Separate columns by 1em for the most part. */
.plugin-details td+td {
  -webkit-padding-start: 1em;
}

/* Make the MIME Types tables smaller. */
.plugin-details .mime-types {
  font-size: 95%;
}

/* Separate the header from the contents in each MIME Types table. */
.plugin-details .mime-types .header td {
  border-bottom: 1px solid black;
  padding-bottom: 0.1em;
}

/* Separate the columns for tables used for horizontal listings only a bit. */
.hlisting td+td {
  -webkit-padding-start: 0.4em;
}

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

.always-allow {
  -webkit-margin-start: 30px;
}

button {
  font-size: 104%;
}
