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

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

div#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;
}

div.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 {
  width: 100%;
}

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

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

.plugin > tr > td {
  padding-bottom: 4px;
  padding-top: 5px;
}

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

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

.critical {
  color: red;
}

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

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

.no-plugins {
  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. */
.plugin-actions {
  -webkit-padding-start: 5px;
  margin-bottom: 0.2em;
  margin-top: 0.2em;
}

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

button {
  font-size: 104%;
}
