/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is the Extension Manager UI.
 *
 * The Initial Developer of the Original Code is
 * the Mozilla Foundation.
 * Portions created by the Initial Developer are Copyright (C) 2010
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *   Blair McBride <bmcbride@mozilla.com>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

#addons-page {
  -moz-appearance: none;
  padding: 18px;
  background-color: Window;  
  background-image: -moz-linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 160px),
                    -moz-linear-gradient(-moz-dialog, Window 160px);
  color: WindowText;
}

#view-port-container {
  /* Needed to allow the radius to clip the inner content, see bug 595656 */
  /* Disabled because of bug 623615
  overflow: hidden;
  */
  background-color: -moz-Field;
  color: -moz-FieldText;
  border: 1px solid ThreeDShadow;
  border-radius: 5px;
}


/*** global warnings ***/

.global-warning-container {
  overflow-x: hidden;
}

.global-warning {
  -moz-box-align: center;
  padding: 0 8px;
  font-weight: bold;
}

.global-warning-text {
  color: -moz-FieldText;
}

#addons-page[warning] .global-warning-container {
  background-color: rgba(255, 255, 0, 0.1);
  background-image: url("chrome://mozapps/skin/extensions/stripes-warning.png");
  background-repeat: repeat-x;
}

#detail-view .global-warning {
  padding: 4px 12px;
  border-bottom: 1px solid ThreeDShadow;
  min-height: 41px;
}

@media all and (max-width: 600px) {
  .global-warning-text {
    display: none;
  }
}

/* Plugins aren't yet disabled by safemode (bug 342333),
   so don't show that warning when viewing plugins. */
#addons-page[warning="safemode"] .view-pane[type="plugin"] .global-warning-container,
#addons-page[warning="safemode"] #detail-view[loading="true"] .global-warning-container {
  background-color: inherit;
  background-image: none;
}


/*** notification icons ***/

.warning-icon {
  list-style-image: url("moz-icon://stock/gtk-dialog-warning?size=menu");
  width: 16px;
  height: 16px;
  margin: 3px 0;
}

.error-icon {
  list-style-image: url("moz-icon://stock/gtk-dialog-error?size=menu");
  width: 16px;
  height: 16px;
  margin: 3px 0;
}

.pending-icon,
.info-icon {
  list-style-image: url("moz-icon://stock/gtk-dialog-info?size=menu");
  width: 16px;
  height: 16px;
  margin: 3px 0;
}

/*** view alert boxes ***/

.alert-container {
  -moz-box-align: center;
}

.alert-spacer-before {
  -moz-box-flex: 1;
}

.alert-spacer-after {
  -moz-box-flex: 3;
}

.alert {
  -moz-box-align: center;
  padding: 10px;
  font-size: 12px;
  border: 1px solid ThreeDShadow;
  border-radius: 8px;
  color: WindowText;
  background-color: Window;
  background-clip: padding-box;
}

.alert .alert-title {
  font-weight: bold;
  font-size: 200%;
  margin-bottom: 15px;
}

.alert .addon-control {
  margin: 1em 2em;
}

.loading {
  list-style-image: url("chrome://global/skin/icons/loading_16.png");
  padding-left: 20px;
  padding-right: 20px;
}

/*** category selector ***/

#categories {
  -moz-appearance: none;
  border: none;
  -moz-margin-end: -1px;
  background-color: transparent;
  position: relative;
  margin-top: 41px;
}

.category {
  -moz-appearance: none;
  border-width: 1px;
  -moz-border-end-width: 0;
  border-style: solid;
  border-color: transparent;
  padding: 10px 4px;
  -moz-box-align: center;
  overflow: hidden;
  min-height: 0;
  color: WindowText;
}

.category:-moz-locale-dir(ltr) {
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
}

.category:-moz-locale-dir(rtl) {
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
}

.category[disabled] {
  border-top: 0;
  border-bottom: 0;
  height: 0;
  opacity: 0;
  -moz-transition-property: height, opacity;
  -moz-transition-duration: 1s, 0.8s;
}

.category:not([disabled]) {
  height: 52px;
  -moz-transition-property: height, opacity;
  -moz-transition-duration: 1s, 0.8s;
}

.category[selected] {
  background-color: -moz-Field;
  color: -moz-FieldText;
  border-color: ThreeDShadow;
}

.category-name {
  font-size: 150%;
}

/* Maximize the size of the viewport when the window is small */
@media all and (max-width: 800px) {
  .category-name {
    display: none;
  }
}

.category-badge {
  background-color: Highlight;
  padding: 2px 8px;
  margin: 6px 0;
  border-radius: 10000px;
  color: HighlightText;
  font-weight: bold;
  text-align: center;
}

.category-badge[value="0"] {
  visibility: hidden;
}

.category-icon {
  width: 32px;
  height: 32px;
  -moz-margin-start: 6px;
}

#category-search > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-search.png");
}
#category-discover > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-discover.png");
}
#category-languages > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-languages.png");
}
#category-searchengines > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-searchengines.png");
}
#category-extensions > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-extensions.png");
}
#category-themes > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-themes.png");
}
#category-plugins > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-plugins.png");
}
#category-availableUpdates > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-available.png");
}
#category-recentUpdates > .category-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/category-recent.png");
}


/*** header ***/

#header {
  margin-bottom: 18px;
}

.nav-button {
  min-width: 0;
}

#back-btn:-moz-locale-dir(ltr) {
  list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar");
}

#forward-btn:-moz-locale-dir(ltr) {
  list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar");
}

#back-btn:-moz-locale-dir(rtl) {
  list-style-image: url("moz-icon://stock/gtk-go-back-rtl?size=toolbar");
}

#forward-btn:-moz-locale-dir(rtl) {
  list-style-image: url("moz-icon://stock/gtk-go-forward-rtl?size=toolbar");
}

#back-btn[disabled="true"]:-moz-locale-dir(ltr) {
  list-style-image: url("moz-icon://stock/gtk-go-back-ltr?size=toolbar&state=disabled");
}

#forward-btn[disabled="true"]:-moz-locale-dir(ltr) {
  list-style-image: url("moz-icon://stock/gtk-go-forward-ltr?size=toolbar&state=disabled");
}

#back-btn[disabled="true"]:-moz-locale-dir(rtl) {
  list-style-image: url("moz-icon://stock/gtk-go-back-rtl?size=toolbar&state=disabled");
}

#forward-btn[disabled="true"]:-moz-locale-dir(rtl) {
  list-style-image: url("moz-icon://stock/gtk-go-forward-rtl?size=toolbar&state=disabled");
}

#header-utils-btn {
  min-width: 4.5em;
}

#header-utils-btn .toolbarbutton-icon {
  list-style-image: url("moz-icon://stock/gtk-preferences?size=toolbar");
}

#header-utils-btn:-moz-focusring > .button-box {
  border: none;
}

#header-search {
  margin: 0;
}

.view-header {
  padding: 4px;
  margin: 0;
  min-height: 41px;
  background-color: ThreeDHighlight;
  border-bottom: 1px solid ThreeDShadow;
}


/*** sorters ***/

.sort-controls {
  -moz-appearance: none;
}

.sorter[checkState="1"] .button-icon {
  display: -moz-box;
  list-style-image: url("moz-icon://stock/gtk-sort-descending?size=16");
}

.sorter[checkState="2"] .button-icon {
  display: -moz-box;
  list-style-image: url("moz-icon://stock/gtk-sort-ascending?size=16");
}


/*** discover view ***/

.discover-spacer-before,
.discover-spacer-after {
  -moz-box-flex: 1;
}

#discover-error .alert {
  max-width: 45em;
  -moz-box-flex: 1;
}

.discover-logo {
  list-style-image: url("chrome://mozapps/skin/extensions/discover-logo.png");
  -moz-margin-end: 15px;
}

.discover-title {
  font-weight: bold;
  font-size: 24px;
  font-family: MetaWebPro-Book, "Trebuchet MS", sans-serif;
  margin: 0 0 15px 0;
}

.discover-description {
  text-align: justify;
  margin: 0 0 15px 0;
}

.discover-footer {
  text-align: justify;
}


/*** list ***/

.list {
  -moz-appearance: none;
  margin: 0;
  border: none;
  background-color: transparent;
}

.addon {
  border-bottom: 1px solid ThreeDLightShadow;
  padding: 5px;
}

.addon[selected] .text-link,
.addon[selected] .button-link {
  color: inherit;
}

.details {
  cursor: pointer;
  margin: 0;
  -moz-margin-start: 10px;
}

.icon-container {
  width: 48px;
  height: 48px;
  margin: 3px 7px;
  -moz-box-align: center;
  -moz-box-pack: center;
}

.icon {
  list-style-image: url("chrome://mozapps/skin/extensions/extensionGeneric.png");
  max-width: 48px;
  max-height: 48px;
}

.addon[active="false"] .icon {
  filter: url("chrome://mozapps/skin/extensions/extensions.svg#greyscale");
}

.addon-view[type="theme"] .icon {
  list-style-image: url("chrome://mozapps/skin/extensions/themeGeneric.png");
}

.addon-view[type="locale"] .icon {
  list-style-image: url("chrome://mozapps/skin/extensions/localeGeneric.png");
}

.addon-view[type="plugin"] .icon {
  list-style-image: url("chrome://mozapps/skin/plugins/pluginGeneric.png");
}

.name-container {
  font-size: 150%;
  margin-bottom: 0;
  font-weight: bold;
  -moz-box-align: end;
  -moz-box-flex: 1;
}

.creator {
  font-weight: bold;
}

.addon-view[active="false"]:not([selected]) {
  color: GrayText;
}

.description-container {
  -moz-margin-start: 6px;
  -moz-box-align: center;
}

.description {
  margin: 0;
}

.warning,
.pending,
.error {
  -moz-margin-start: 48px;
  -moz-box-align: center;
}

.content-container,
.basicinfo-container {
  -moz-box-align: start;
}

.addon[status="installing"] > .content-container {
  -moz-box-align: stretch;
}

.advancedinfo-container,
.update-info-container {
  -moz-box-align: center;
}

.update-available {
  -moz-box-align: end;
}

.install-status-container {
  -moz-box-pack: end;
  -moz-box-align: end;
}

.name-outer-container {
  -moz-box-pack: center;
}

.relnotes-toggle-container,
.icon-outer-container {
  -moz-box-pack: start;
}

.status-container,
.control-container {
  -moz-box-pack: end;
}

.addon-view:not([selected]) .warning {
  color: #90792E;
}

.addon-view:not([selected]) .error {
  color: #7C322B;
}

.addon-view:not([selected]) .pending {
  color: #4F7939;
}

.addon[active="false"] {
  background-image: -moz-linear-gradient(rgba(135, 135, 135, 0.2),
                                         rgba(135, 135, 135, 0.1));
}

.addon-view[notification="warning"] {
  background-image: url("chrome://mozapps/skin/extensions/stripes-warning.png"),
                    -moz-linear-gradient(rgba(255, 255, 0, 0.04),
                                         rgba(255, 255, 0, 0));
  background-repeat: repeat-x;
}

.addon-view[notification="error"] {
  background-image: url("chrome://mozapps/skin/extensions/stripes-error.png"),
                    -moz-linear-gradient(rgba(255, 0, 0, 0.04),
                                         rgba(255, 0, 0, 0));
  background-repeat: repeat-x;
}

.addon-view[pending="enable"],
.addon-view[pending="upgrade"],
.addon-view[pending="install"] {
  background-image: url("chrome://mozapps/skin/extensions/stripes-info-positive.png"),
                    -moz-linear-gradient(rgba(0, 255, 0, 0.04),
                                         rgba(0, 255, 0, 0));
  background-repeat: repeat-x;
}

.addon-view[pending="disable"],
.addon-view[pending="uninstall"] {
  background-image: url("chrome://mozapps/skin/extensions/stripes-info-negative.png"),
                    -moz-linear-gradient(rgba(128, 128, 128, 0.04),
                                         rgba(128, 128, 128, 0));
  background-repeat: repeat-x;
}

.addon .relnotes-container {
  -moz-box-align: start;
  height: 0;
  overflow: hidden;
  opacity: 0;
  -moz-transition-property: height, opacity;
  -moz-transition-duration: 0.5s, 0.5s;
}

.addon[show-relnotes] .relnotes-container {
  opacity: 1;
  -moz-transition-property: height, opacity;
  -moz-transition-duration: 0.5s, 0.5s;
}

.addon .relnotes-header {
  font-weight: bold;
  margin: 10px 0;
}

.addon .relnotes-toggle {
  -moz-appearance: none;
  border: none;
  background: transparent;
  font-weight: bold;
  cursor: pointer;
  list-style-image: url("moz-icon://stock/gtk-go-down?size=16");
}

.addon .relnotes-toggle > .button-box > .button-icon {
  display: -moz-box;
}

.addon[show-relnotes] .relnotes-toggle {
  list-style-image: url("moz-icon://stock/gtk-go-up?size=16");
}


/*** search view ***/

#search-filter {
  padding: 5px 20px;
  font-size: 120%;
  overflow-x: hidden;
  border-bottom: 1px solid ThreeDShadow;
}

#search-filter-label {
  font-weight: bold;
}

#search-allresults-link {
  margin-top: 1em;
  margin-bottom: 2em;
}

/*** detail view ***/

#detail-view[active="false"] .fade {
  opacity: 0.6;
}

#detail-view .loading {
  opacity: 0;
}

#detail-view[loading-extended] .loading {
  -moz-box-align: center;
  -moz-box-pack: center;
  opacity: 1;
  -moz-transition-property: opacity;
  -moz-transition-duration: 1s;
}

.detail-view-container {
  padding: 0 2em 2em 2em;
  font-size: 110%;
}

#detail-notifications {
  margin-top: 1em;
  margin-bottom: 2em;
}

#detail-notifications .warning,
#detail-notifications .pending,
#detail-notifications .error {
  -moz-margin-start: 0;
}

#detail-icon {
  -moz-margin-end: 10px;
  max-width: 64px;
  max-height: 64px;
}

#detail-summary {
  margin-bottom: 2em;
}

#detail-name-container {
  font-size: 200%;
}

#detail-screenshot {
  -moz-margin-end: 2em;
  max-width: 300px;
  max-height: 300px;
}

#detail-desc-container {
  margin-bottom: 2em;
}

#detail-desc, #detail-fulldesc {
  -moz-margin-start: 6px;
  /* This is necessary to fix layout issues with multi-line descriptions, see
     bug 592712*/
  outline: solid transparent;
  white-space: pre-wrap;
  min-width: 10em;
}

#detail-fulldesc {
  margin-top: 1em;
}

#detail-contributions {
  border-radius: 5px;
  border: 1px solid ThreeDShadow;
  margin-bottom: 2em;
  padding: 1em;
  background: ThreeDHighlight;
}

#detail-contrib-description {
  font-style: italic;
  margin-bottom: 1em;
}

#detail-contrib-suggested {
  color: GrayText;
}

#detail-grid {
  margin-bottom: 2em;
}

.detail-row[first-row="true"],
.detail-row-complex[first-row="true"] {
  border-top: none;
}

.detail-row,
.detail-row-complex {
  border-top: 1px solid ThreeDShadow;
  -moz-box-align: center;
}

.detail-row-value {
  -moz-margin-start: 0;
}

#detail-controls {
  margin-bottom: 1em;
}

#detail-view[active="false"]:not([pending]):not([notification]) {
  background-image: -moz-linear-gradient(rgba(135, 135, 135, 0.1),
                                         rgba(135, 135, 135, 0));
}


/*** creator ***/

.creator > label {
  -moz-margin-start: 0;
  -moz-margin-end: 0;
}

.creator > .text-link {
  margin-top: 1px;
  margin-bottom: 1px;
}


/*** rating ***/

.meta-rating {
  -moz-margin-start: 0;
  -moz-margin-end: 0;
  vertical-align: text-top;
}

.meta-rating[showrating="average"] > .star {
  list-style-image: url("chrome://mozapps/skin/extensions/rating-not-won.png");
  padding: 0 1px;
}

.meta-rating[showrating="user"] > .star {
  list-style-image: url("chrome://mozapps/skin/extensions/rating-unrated.png");
  padding: 2px 3px;
}

.meta-rating > .star[on="true"],
.meta-rating[showrating="user"] > .star[hover] {
  list-style-image: url("chrome://mozapps/skin/extensions/rating-won.png");
  padding: 0 1px;
}


/*** download progress ***/

.download-progress {
  width: 200px;
}

.download-progress .start-cap,
.download-progress .end-cap {
  display: none;
}

.download-progress .progress {
  padding: 0;
  margin: 0;
  border: none;
}

.download-progress .cancel {
  -moz-appearance: none;
  background-color: ButtonFace;
  padding-bottom: 1px;
  -moz-padding-start: 2px;
  border-width: 1px;
  border-style: solid;
  border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
  border-radius: 10000px;
  min-width: 16px;
  width: 16px;
  height: 16px;
  margin: 3px;
}

.download-progress .cancel:hover {
  background-color: -moz-ButtonHoverFace;
}

.download-progress .cancel {
  list-style-image: url('chrome://mozapps/skin/extensions/cancel.png');
}

.download-progress .status-container {
  -moz-box-align: center;
}


/*** install status ***/

.install-status {
  -moz-box-align: center;
}


/*** check for updates ***/

#updates-container {
  -moz-box-align: center;
}

#updates-installed,
#updates-downloaded {
  font-weight: bold;
}

#update-selected {
  margin: 12px;
}


/*** buttons ***/

.addon-control[disabled="true"] {
  display: none;
}

.addon-control.enable {
  list-style-image: url("moz-icon://stock/gtk-yes?size=button");
}

.addon-control.disable {
  list-style-image: url("moz-icon://stock/gtk-no?size=button");
}

.addon-control.remove {
  list-style-image: url("moz-icon://stock/gtk-remove?size=button");
}

.addon-control.preferences {
  list-style-image: url("moz-icon://stock/gtk-preferences?size=button");
}

.addon-control.install,
.addon-control.update {
  list-style-image: url("moz-icon://stock/gtk-save?size=button");
}

.button-link {
  -moz-appearance: none;
  background: transparent;
  border: none;
  text-decoration: underline;
  color: -moz-nativehyperlinktext;
  cursor: pointer;
  min-width: 0;
  margin: 0 6px;
}

.button-link:active {
  color: -moz-activehyperlinktext;
}

.header-button .toolbarbutton-text {
  display: none;
}

