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

html.loading * {
  transition-duration: 0ms !important;
}

html:not(.focus-outline-visible)
:enabled:focus:-webkit-any(input[type='checkbox'], input[type='radio']) {
  /* Cancel border-color for :focus specified in widgets.css. */
  border-color: rgba(0, 0, 0, 0.25);
}

.no-scroll {
  overflow-y: hidden;
}

#extension-settings.showing-banner {
  margin-top: 45px;
}

/* Developer mode */

#dev-controls {
  -webkit-margin-end: 0;
  height: 0;
  overflow: hidden;
}

#dev-controls.animated {
  transition: height 150ms;
}

.dev-mode #dev-controls {
  border-bottom: 1px solid #eee;
}

#dev-controls > * {
  padding: 8px 3px;
}

#dev-controls .button-container {
  -webkit-padding-end: 12px;
  -webkit-padding-start: 12px;
  display: flex;
  flex-wrap: wrap;
}

#dev-controls button {
  white-space: nowrap;
}

#dev-controls .button-container button:not(:last-of-type) {
  -webkit-margin-end: 5px;
}

#dev-controls-spacer {
  flex: 1;
}

.extension-code {
  border: 1px solid #ccc;
  display: flex;
  font-family: monospace;
  overflow: auto;
  white-space: pre;
}

.extension-code > * {
  padding: 3px;
}

.extension-code-line-numbers {
  align-self: flex-start;
  background-color: rgba(240, 240, 240, 1);
  border-right: 1px solid #ccc;
  color: rgba(128, 128, 128, 1);
  flex-shrink: 0;
  text-align: right;
}

.extension-code-empty {
  background-color: #eee;
  display: inline-block;
  line-height: 100px;  /* Vertically centers text and serves as min-height. */
  text-align: center;
  width: 100%;
}

.extension-details > .developer-extras > div,
.extension-details > .permanent-warnings > div {
  margin: 5px 0;
}

.dependent-extensions-message,
.suspicious-install-message {
  line-height: 150%;
}

#page-header > .page-banner > .page-banner-gradient {
  -webkit-margin-end: 0;
}

#header-controls {
  /* Reserve enough space to match .location-text + .trash */
  min-width: 130px;
  right: 16px;
}

html[dir='rtl'] #header-controls {
  left: 16px;
  right: auto;
}

#page-header > h1::after {
  -webkit-margin-end: 0;
}

#extension-settings #page-header {
  /* These values match the .page values. */
  -webkit-margin-end: 24px;
  min-width: 576px;
}

/* Contents */

#extension-settings {
  max-width: 738px;
}

#no-extensions-message {
  font-weight: bold;
}

#no-extensions {
  margin-top: 3em;
}

#suggest-gallery {
  -webkit-padding-start: 10px;
}

#footer-section {
  background: url(chrome://theme/IDR_WEBSTORE_ICON_32) no-repeat left center;
  background-size: 32px 32px;
  font-size: 1.25em;
  margin: 24px 12px 12px 12px;
}

html[dir=rtl] #footer-section {
  background: url(chrome://theme/IDR_WEBSTORE_ICON_32) no-repeat right center;
}

#footer-section > a {
  -webkit-margin-start: 42px;
  line-height: 32px;
}

.extension-list-item-wrapper {
  margin: 12px 0;
  padding: 12px;
}

.extension-list-item {
  background-repeat: no-repeat;
  background-size: 48px 48px;
  display: -webkit-box;
  min-height: 48px;
}

.extension-list-item a {
  -webkit-margin-start: 0.5em;
  display: inline-block;
}

html[dir='rtl'] .extension-list-item {
  background-position-x: 100%;
}

.extension-title {
  -webkit-padding-end: 20px;
  -webkit-user-select: text;
  color: rgb(48, 57, 66);
  display: inline;
  font-size: 14px;
  font-weight: 500;
}

.inactive-extension .extension-title {
  color: inherit;
}

.extension-version {
  -webkit-padding-end: 7px;
  font-size: 13px;
  font-weight: 400;
}

.extension-description,
.corrupt-install-message {
  -webkit-padding-end: 5px;
  font-size: 13px;
  margin: 5px 0;
  white-space: normal;
}

.corrupt-install-message {
  color: rgb(196, 42, 23);
}

.action-links {
  margin-bottom: 0.5em;
}

.action-links a {
  -webkit-margin-end: 1em;
  -webkit-margin-start: 0;
}

.action-links .errors-link {
  align-items: center;
  display: inline-flex;
  vertical-align: bottom;
}

.extension-details {
  -webkit-box-flex: 1;
  -webkit-padding-end: 7px;
  -webkit-padding-start: 60px;
  padding-top: 6px;
}

.extension-description,
.extension-version,
.extension-list-item-wrapper.inactive-extension .extension-details,
.location-text,
.blacklist-text,
.enable-checkbox input:disabled + .enable-checkbox-text {
  color: rgb(115, 119, 122);
}

.enable-controls {
  /* Matches right: position of dev controls toggle. */
  -webkit-margin-end: 0;
  position: relative;
}

.enable-controls > .controlled-setting-indicator {
  width: 23px;
}

.enable-controls > .controlled-setting-indicator > div {
  left: 11px;
  right: 11px;
}

/* We use x[is='action-link'] here so that we get higher specifity than the
 * action link rules without resorting to the Dark Side (!IMPORTANT). */
.terminated-reload-link[is='action-link'],
.corrupted-repair-button[is='action-link'] {
  /* Matches width of trash. */
  -webkit-margin-end: 30px;
}

.checkbox {
  display: inline-block;
}

.enabled-text {
  font-weight: bold;
}

.extension-list-item-wrapper.inactive-extension .enabled-text,
.extension-list-item-wrapper:not(.inactive-extension) .enable-text,
.extension-list-item-wrapper.inactive-extension .optional-controls,
.extension-list-item-wrapper.inactive-extension .butter-bar {
  display: none;
}

.optional-controls .checkbox {
  -webkit-margin-end: 12px;
}

.load-path > span {
  word-wrap: break-word;
}

.terminated-reload-link,
.corrupted-repair-button {
  display: inline-block;
  padding-top: 7px;
}

.install-warnings a {
  -webkit-margin-start: 0;
}

.butter-bar,
.install-warnings,
.extension-warnings {
  border-radius: 3px;
  line-height: 150%;
  margin: 8px 0;
  padding: 8px 12px;
}

.butter-bar {
  background: rgb(255, 242, 153);
}

.install-warnings,
.extension-warnings {
  background: pink;
}

.install-warnings ul,
.extension-warnings ul {
  margin: 0;
}

.error-collection-control {
  -webkit-margin-start: 5px;
}

#extension-settings:not(.dev-mode) .developer-extras,
#extension-settings:not(.dev-mode) .error-collection-control {
  display: none;
}

#font-measuring-div {
  /* Remove from the flow and hide. */
  position: absolute;
  visibility: hidden;
}

.extension-commands-config {
  float: right;
}

html[dir=rtl] .extension-commands-config {
  float: left;
}

/* Overlays */

#overlay {
  z-index: 5;
}

#overlay .page:not(.showing) {
  display: none;
}

#drop-target-overlay {
  color: rgb(48, 57, 66);
  font-size: 18px;
  text-align: center;
}

#drop-target-overlay div {
  margin: 1em;
}

.location-text,
.blacklist-text {
  display: block;
  width: 100px;
}

.enable-checkbox {
  /* Reserve enough space to match .location-text */
  min-width: 100px;
}

/* Trash */

#extension-settings .trash {
  height: 22px;
  opacity: 0.8;
  position: relative;
  right: -8px;
  top: 6px;
  transition: opacity 200ms;
  vertical-align: top;
}

html[dir='rtl'] #extension-settings .trash {
  left: -8px;
  right: auto;
}

.extension-list-item:not(:hover) .trash:not(:focus) {
  opacity: 0;
}

.extension-list-item-wrapper.may-not-remove .trash {
  visibility: hidden;
}

/* In case the extension is policy controlled the trash icon must be hidden by
 * setting display:none rather than only setting visibility:hidden to completely
 * remove it from the layout and make space for the controlled indicator.
 * TODO(cschuet): rather than hide always replace it with something meaningful.
 */
.extension-list-item-wrapper.controlled .trash {
  display: none;
}

/* Supervised users */

.page:not(.profile-is-supervised) .profile-is-supervised-banner,
.profile-is-supervised .more-extensions-link {
  display: none;
}

.profile-is-supervised-banner .page-banner-text {
  background-image: url(../../../../ui/webui/resources/images/warning.svg);
}

/* Sideload Wipeout */

.sideload-wipeout-learn-more {
  text-decoration: none;
}

.sideload-wipeout-banner .page-banner-text {
  -webkit-padding-start: 8px;
  background-image: none;
}

.extension-highlight {
  background-color: rgba(0, 0, 0, .05);
}
