/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

@import url("chrome://global/skin/");

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");

%include ../shared/browser.inc.css

:root {
  --titlebar-text-color: currentColor;

  --tabs-border: threedshadow;

  --toolbar-non-lwt-bgcolor: -moz-dialog;
  --toolbar-non-lwt-textcolor: -moz-dialogtext;
  --toolbar-non-lwt-bgimage: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15));
  --toolbar-bgcolor: var(--toolbar-non-lwt-bgcolor);
  --toolbar-bgimage: var(--toolbar-non-lwt-bgimage);

  --toolbarbutton-vertical-text-padding: calc(var(--toolbarbutton-inner-padding) - 1px);
  --toolbarbutton-border-radius: 2px;
  --toolbarbutton-icon-fill-opacity: 1;

  --panel-separator-color: ThreeDLightShadow;
  --arrowpanel-dimmed: hsla(0,0%,80%,.3);
  --arrowpanel-dimmed-further: hsla(0,0%,80%,.45);
  --arrowpanel-dimmed-even-further: hsla(0,0%,80%,.8);

  --urlbar-separator-color: ThreeDLightShadow;

  --toolbox-border-bottom-color: ThreeDShadow;
}

@media (-moz-windows-default-theme) {
  :root {
    --tabs-border: rgba(0,0,0,.3);

    --toolbar-non-lwt-bgcolor: #f9f9fa;
    --toolbar-non-lwt-textcolor: #0c0c0d;
    --toolbar-non-lwt-bgimage: none;

    --toolbarbutton-icon-fill-opacity: .7;

    --panel-separator-color: hsla(210,4%,10%,.14);

    --toolbox-border-bottom-color: #e1e1e2;
  }
}

:root:-moz-lwtheme {
  --tabs-border: rgba(0,0,0,.3);

  --toolbar-bgcolor: rgba(255,255,255,.4);
  --toolbar-bgimage: none;

  --toolbox-border-bottom-color: rgba(0,0,0,.3);
}

#menubar-items {
  -moz-box-orient: vertical; /* for flex hack */
}

#main-menubar {
  -moz-box-flex: 1; /* make menu items expand to fill toolbar height */
}

/* Hides the titlebar-placeholder underneath the window caption buttons when we
   are not autohiding the menubar. */
#toolbar-menubar:not([autohide="true"]) + #TabsToolbar > .titlebar-placeholder[type="caption-buttons"] {
  display: none;
}

:root[sizemode="normal"][chromehidden~="menubar"] #toolbar-menubar ~ #TabsToolbar,
:root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] ~ #TabsToolbar {
  margin-top: var(--space-above-tabbar);
}

/* Add 4px extra margin on top of the tabs toolbar on Windows 7. */
@media (-moz-os-version: windows-win7) {
  :root[sizemode="normal"][chromehidden~="menubar"] #toolbar-menubar ~ #TabsToolbar,
  :root[sizemode="normal"] #toolbar-menubar[autohide="true"][inactive] ~ #TabsToolbar {
    margin-top: calc(var(--space-above-tabbar) + 4px);
  }
}

#navigator-toolbox,
#navigator-toolbox > toolbar {
  -moz-appearance: none;
}

#navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar) {
  background-color: var(--toolbar-bgcolor);
  background-image: var(--toolbar-bgimage);
  background-clip: padding-box;
  color: var(--toolbar-color, inherit);
}

#toolbar-menubar,
#TabsToolbar {
  color: var(--titlebar-text-color);
}

@media (-moz-windows-compositor: 0),
       (-moz-windows-default-theme: 0) {
  /* Please keep the menu text colors in this media block in sync with
   * compacttheme.css, minus the :not(:-moz-lwtheme) condition - see Bug 1165718.
   */
  :root[tabsintitlebar]:not([inFullscreen]):not(:-moz-lwtheme) {
    --titlebar-text-color: CaptionText;
  }

  :root[tabsintitlebar]:not([inFullscreen]):not(:-moz-lwtheme):-moz-window-inactive {
    --titlebar-text-color: InactiveCaptionText;
  }
}

@media (-moz-windows-compositor: 0) {
  #main-window[tabsintitlebar] #titlebar:-moz-lwtheme {
    visibility: hidden;
  }

  #main-window[tabsintitlebar] #titlebar-content:-moz-lwtheme {
    -moz-binding: url("chrome://global/content/bindings/general.xml#windowdragbox");
    visibility: visible;
  }

  /* Top-level menu appearance has transparent background, so the text color
     needs to be inherited from our custom menubar too. */
  #main-window[tabsintitlebar] #main-menubar > menu:not(:-moz-lwtheme) {
    color: inherit;
  }
}

/**
 * In the classic themes, the titlebar has a horizontal gradient, which is
 * problematic for reading the text of background tabs when they're in the
 * titlebar. We side-step this issue by layering our own background underneath
 * the tabs. Unfortunately, this requires a bunch of positioning in order to get
 * text and icons to not appear fuzzy.
 */
@media (-moz-windows-classic) {
  /**
   * We need to bump up the z-index of the tabbrowser-tabs so that they appear
   * over top of the fog we're applying for classic themes, as well as the nav-bar.
   */
  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) #tabbrowser-tabs {
    position: relative;
    z-index: 2;
  }

  #main-window[tabsintitlebar] #TabsToolbar:not(:-moz-lwtheme) {
    position: relative;
  }

  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) #TabsToolbar:not(:-moz-lwtheme)::after {
    /* Because we use placeholders for window controls etc. in the tabstrip,
     * and position those with ordinal attributes, and because our layout code
     * expects :before/:after nodes to come first/last in the frame list,
     * we have to reorder this element to come last, hence the
     * ordinal group value (see bug 853415). */
    -moz-box-ordinal-group: 1001;
    box-shadow: 0 0 50px 8px ActiveCaption;
    content: "";
    display: -moz-box;
    height: 0;
    margin: 0 50px;
    position: absolute;
    pointer-events: none;
    top: 100%;
    width: -moz-available;
  }

  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) #TabsToolbar:not(:-moz-lwtheme):-moz-window-inactive::after {
    box-shadow: 0 0 50px 8px InactiveCaption;
  }

  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) toolbar[customindex]:not(:-moz-lwtheme),
  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) #PersonalToolbar:not(:-moz-lwtheme) {
    position: relative;
  }

  /* Need to constrain the box shadow fade to avoid overlapping layers, see bug 886281. */
  #main-window[tabsintitlebar]:not([sizemode=fullscreen]) #navigator-toolbox:not(:-moz-lwtheme) {
    overflow: -moz-hidden-unscrollable;
  }

  #main-window[tabsintitlebar][sizemode="normal"] > #tab-view-deck > #browser-panel:-moz-lwtheme {
    /* Render a window top border: */
    background-image: linear-gradient(to bottom,
          ThreeDLightShadow 0, ThreeDLightShadow 1px,
          ThreeDHighlight 1px, ThreeDHighlight 2px,
          ActiveBorder 2px, ActiveBorder 4px, transparent 4px);
  }

  /* End classic titlebar gradient */

  #main-window[tabsintitlebar]:not([inFullscreen]) :-moz-any(#TabsToolbar, #toolbar-menubar) toolbarbutton:not(:-moz-lwtheme) {
    color: inherit;
  }
}

#TabsToolbar:not([collapsed="true"]) + #nav-bar {
  /* Position the toolbar above the bottom of background tabs */
  position: relative;
  z-index: 1;
}

#nav-bar {
  border-top: 1px solid var(--tabs-border) !important;
}
@media (-moz-windows-compositor: 0) {
  #TabsToolbar[collapsed="true"] + #nav-bar {
    border-top-style: none !important;
  }
}

#print-preview-toolbar:not(:-moz-lwtheme) {
  -moz-appearance: toolbox;
}

#browser-bottombox:not(:-moz-lwtheme) {
  background-color: -moz-dialog;
}

/* ::::: titlebar ::::: */

#main-window[sizemode="normal"] > #titlebar {
  -moz-appearance: -moz-window-titlebar;
}

#main-window[sizemode="maximized"] > #titlebar {
  -moz-appearance: -moz-window-titlebar-maximized;
}

@media (-moz-windows-classic) {
  #main-window[tabsintitlebar][sizemode="normal"] > #tab-view-deck > #browser-panel > #navigator-toolbox > #toolbar-menubar {
    margin-top: 4px;
  }
}

/* The button box must appear on top of the navigator-toolbox in order for
 * click and hover mouse events to work properly for the button in the restored
 * window state. Otherwise, elements in the navigator-toolbox, like the menubar,
 * can swallow those events. It will also place the buttons above the fog on
 * Windows 7 with Aero Glass.
 */
#titlebar-buttonbox {
  z-index: 1;
}

.titlebar-placeholder[type="caption-buttons"] {
  margin-left: 22px; /* space needed for Aero Snap */
}

/* titlebar command buttons */

#titlebar-min {
  -moz-appearance: -moz-window-button-minimize;
}

#titlebar-max {
  -moz-appearance: -moz-window-button-maximize;
}

#main-window[sizemode="maximized"] #titlebar-max {
  -moz-appearance: -moz-window-button-restore;
}

#titlebar-close {
  -moz-appearance: -moz-window-button-close;
}

@media not all and (-moz-windows-classic) {
  #titlebar-min {
    margin-inline-end: 2px;
  }
}

/* ::::: bookmark menus ::::: */

menu.bookmark-item,
menuitem.bookmark-item {
  min-width: 0;
  max-width: 32em;
}

.bookmark-item:not(.subviewbutton) > .menu-iconic-left {
  margin-top: 0;
  margin-bottom: 0;
}

.bookmark-item > .menu-iconic-left > .menu-iconic-icon {
  padding-inline-start: 0px;
}

/* ::::: bookmark items ::::: */

.bookmark-item  {
  list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.svg");
}

.bookmark-item[container] {
  list-style-image: url("chrome://global/skin/icons/folder-item.png");
  -moz-image-region: rect(0px, 32px, 16px, 16px);
}

.bookmark-item[container][open] {
  -moz-image-region: rect(16px, 32px, 32px, 16px);
}

.bookmark-item[container][livemark] {
  list-style-image: url("chrome://browser/skin/livemark-folder.png");
  -moz-image-region: auto;
}

.bookmark-item[container][livemark] .bookmark-item {
  list-style-image: url("chrome://browser/skin/places/livemark-item.png");
  -moz-image-region: rect(0px, 16px, 16px, 0px);
}

.bookmark-item[container][livemark] .bookmark-item[visited] {
  -moz-image-region: rect(0px, 32px, 16px, 16px);
}

.bookmark-item[container][query] {
  list-style-image: url("chrome://browser/skin/places/query.png");
  -moz-image-region: auto;
}

.bookmark-item[query][tagContainer] {
  list-style-image: url("chrome://browser/skin/places/tag.png");
  -moz-image-region: auto;
}

.bookmark-item[query][dayContainer] {
  list-style-image: url("chrome://browser/skin/places/calendar.png");
  -moz-image-region: auto;
}

.bookmark-item[query][hostContainer] {
  list-style-image: url("chrome://global/skin/icons/folder-item.png");
  -moz-image-region: rect(0px, 32px, 16px, 16px);
}

.bookmark-item[query][hostContainer][open] {
  list-style-image: url("chrome://global/skin/icons/folder-item.png");
  -moz-image-region: rect(16px, 32px, 32px, 16px);
}

.bookmark-item[cutting] > .toolbarbutton-icon,
.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-icon {
  opacity: 0.5;
}

.bookmark-item[cutting] > .toolbarbutton-text,
.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-text {
  opacity: 0.7;
}


%include ../shared/bookmarked-notification.inc.css
%include ../shared/toolbarbuttons.inc.css
%include ../shared/toolbarbutton-icons.inc.css
%include ../shared/menupanel.inc.css

.unified-nav-back[_moz-menuactive]:-moz-locale-dir(ltr),
.unified-nav-forward[_moz-menuactive]:-moz-locale-dir(rtl) {
  list-style-image: url("chrome://browser/skin/menu-back.png") !important;
}

.unified-nav-forward[_moz-menuactive]:-moz-locale-dir(ltr),
.unified-nav-back[_moz-menuactive]:-moz-locale-dir(rtl) {
  list-style-image: url("chrome://browser/skin/menu-forward.png") !important;
}

/* ::::: fullscreen window controls ::::: */

#minimize-button,
#restore-button,
#close-button {
  -moz-appearance: none;
  border: none;
  margin: 0 !important;
  padding: 6px 12px;
  -moz-context-properties: stroke;
  stroke: currentColor;
  color: inherit;
}

#minimize-button {
  list-style-image: url(chrome://browser/skin/window-controls/minimize.svg);
}

#restore-button {
  list-style-image: url(chrome://browser/skin/window-controls/restore.svg);
}

#minimize-button:hover,
#restore-button:hover {
  background-color: hsla(0,0%,0%,.12);
}

#minimize-button:hover:active,
#restore-button:hover:active {
  background-color: hsla(0,0%,0%,.22);
}

#TabsToolbar[brighttext] > #window-controls > #minimize-button:hover,
#TabsToolbar[brighttext] > #window-controls > #restore-button:hover {
  background-color: hsla(0,0%,100%,.12);
}

#TabsToolbar[brighttext] > #window-controls > #minimize-button:hover:active,
#TabsToolbar[brighttext] > #window-controls > #restore-button:hover:active {
  background-color: hsla(0,0%,100%,.22);
}

#close-button {
  list-style-image: url(chrome://browser/skin/window-controls/close.svg);
}

#close-button:hover {
  background-color: hsl(355, 86%, 49%);
  stroke: white;
}

#close-button:hover:active {
  background-color: hsl(355, 82%, 69%);
}

@media (-moz-os-version: windows-win7) {
  #window-controls {
    -moz-box-align: start;
    margin-inline-start: 4px;
  }

  #minimize-button,
  #restore-button,
  #close-button {
    -moz-appearance: none;
    border-style: none;
    margin: 0;
    /* Important to ensure this applies even on toolbar[brighttext] */
    list-style-image: url("chrome://global/skin/icons/windowControls.png") !important;
    /* Also override background color to a avoid hover background styling
     * leaking through around the image. */
    background-color: transparent !important;
    padding: 0;
    -moz-context-properties: unset;
  }

  #minimize-button {
    -moz-image-region: rect(0, 16px, 16px, 0);
  }

  #minimize-button:hover {
    -moz-image-region: rect(16px, 16px, 32px, 0);
  }

  #minimize-button:hover:active {
    -moz-image-region: rect(32px, 16px, 48px, 0);
  }

  #restore-button {
    -moz-image-region: rect(0, 32px, 16px, 16px);
  }

  #restore-button:hover {
    -moz-image-region: rect(16px, 32px, 32px, 16px);
  }

  #restore-button:hover:active {
    -moz-image-region: rect(32px, 32px, 48px, 16px);
  }

  #close-button {
    -moz-image-region: rect(0, 48px, 16px, 32px);
    -moz-appearance: none;
    border-style: none;
    margin: 2px;
  }

  #close-button:hover {
    -moz-image-region: rect(16px, 48px, 32px, 32px);
  }

  #close-button:hover:active {
    -moz-image-region: rect(32px, 48px, 48px, 32px);
  }

  #close-button {
    -moz-image-region: rect(0, 49px, 16px, 32px);
  }

  #close-button:hover {
    -moz-image-region: rect(16px, 49px, 32px, 32px);
  }

  #close-button:hover:active {
    -moz-image-region: rect(32px, 49px, 48px, 32px);
  }

  #minimize-button:-moz-locale-dir(rtl),
  #restore-button:-moz-locale-dir(rtl),
  #close-button:-moz-locale-dir(rtl) {
    transform: scaleX(-1);
  }
}

/* ::::: Location Bar ::::: */

%include ../shared/urlbar-searchbar.inc.css

#urlbar,
.searchbar-textbox {
  font-size: 1.15em;
}

@media (-moz-windows-default-theme: 0) {
  #urlbar:not(:-moz-lwtheme):not([focused="true"]),
  .searchbar-textbox:not(:-moz-lwtheme):not([focused="true"]) {
    border-color: ThreeDShadow;
  }
}

#urlbar[focused="true"],
.searchbar-textbox[focused="true"] {
  border-color: Highlight;
}

html|*.urlbar-input:-moz-lwtheme::placeholder,
.searchbar-textbox:-moz-lwtheme > .autocomplete-textbox-container > .textbox-input-box > html|*.textbox-input::placeholder {
  opacity: 1.0;
  color: #777;
}

.urlbar-textbox-container {
  -moz-box-align: stretch;
}
.urlbar-input-box {
  margin: 0;
}

/* ::::: URL Bar Zoom Reset Button ::::: */
@keyframes urlbar-zoom-reset-pulse {
  0% {
    transform: scale(0);
  }
  75% {
    transform: scale(1.5);
  }
  100% {
    transform: scale(1.0);
  }
}

#urlbar-zoom-button {
  -moz-appearance: none;
  color: inherit;
}

#urlbar-search-footer {
  border-top: 1px solid var(--panel-separator-color);
  background-color: var(--arrowpanel-dimmed);
}

#urlbar-search-settings {
  -moz-appearance: none;
  -moz-user-focus: ignore;
  color: GrayText;
  margin: 0;
  border: 0;
  padding: 8px 20px;
  background: transparent;
}

#urlbar-search-settings:hover {
  background-color: var(--arrowpanel-dimmed);
}

#urlbar-search-settings:hover:active {
  background-color: var(--arrowpanel-dimmed-further);
}

.urlbar-display {
  margin-top: 0;
  margin-bottom: 0;
  margin-inline-start: 0;
  color: GrayText;
}

%include ../shared/urlbarSearchSuggestionsNotification.inc.css

#search-container {
  min-width: calc(54px + 11ch);
}

/* identity box */

#identity-box:not(:active):-moz-focusring {
  outline: 1px dotted;
  outline-offset: -3px;
}

%include ../shared/identity-block/identity-block.inc.css

/* autocomplete */

%include ../shared/autocomplete.inc.css
%include ../shared/urlbar-autocomplete.inc.css

#PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] {
  border-top: 1px solid ThreeDShadow;
}

.ac-title {
  font-size: 14px;
}

.ac-tags {
  font-size: 12px;
}

html|span.ac-tag {
  border-radius: 2px;
  border: 1px solid transparent;
  padding: 0 1px;
}

.ac-separator,
.ac-url,
.ac-action {
  font-size: 12px;
}

html|span.ac-emphasize-text-title,
html|span.ac-emphasize-text-tag,
html|span.ac-emphasize-text-url {
  font-weight: 600;
}

@media (-moz-windows-default-theme) {
  .ac-title:not([selected=true]) {
    color: hsl(0, 0%, 0%);
  }

  .ac-separator:not([selected=true]) {
    color: hsl(0, 0%, 50%);
  }

  .ac-url:not([selected=true]) {
    color: hsl(210, 77%, 47%);
  }

  .ac-action:not([selected=true]) {
    color: hsl(178, 100%, 28%);
  }

  html|span.ac-tag {
    background-color: hsl(216, 0%, 88%);
    color: hsl(0, 0%, 0%);
  }

  .ac-tags-text[selected] > html|span.ac-tag {
    background-color: hsl(0, 0%, 100%);
    color: hsl(210, 80%, 40%);
  }
}

@media (-moz-windows-default-theme: 0) {
  .ac-separator:not([selected=true]),
  .ac-url:not([selected=true]),
  .ac-action:not([selected=true]) {
    color: -moz-nativehyperlinktext;
  }

  html|span.ac-tag {
    background-color: -moz-FieldText;
    color: -moz-Field;
  }

  .ac-tags-text[selected] > html|span.ac-tag {
    background-color: HighlightText;
    color: Highlight;
  }
}

.ac-type-icon[type=bookmark] {
  list-style-image: url("chrome://browser/skin/bookmark.svg");
  -moz-context-properties: fill;
  fill: #b2b2b2;
}

.ac-type-icon[type=bookmark][selected][current] {
  fill: white;
}

.ac-type-icon[type=keyword],
.ac-site-icon[type=searchengine] {
  list-style-image: url(chrome://global/skin/icons/autocomplete-search.svg);
  -moz-context-properties: fill;
  fill: GrayText;
}

.ac-type-icon[type=keyword][selected],
.ac-site-icon[type=searchengine][selected] {
  fill: highlighttext;
}

.ac-type-icon[type=switchtab],
.ac-type-icon[type=remotetab] {
  list-style-image: url("chrome://browser/skin/urlbar-tab.svg");
  -moz-context-properties: fill;
  fill: #b2b2b2;
}

.ac-type-icon[type=switchtab][selected],
.ac-type-icon[type=remotetab][selected] {
  fill: white;
}

.autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) {
  color: GrayText;
}

.autocomplete-treebody::-moz-tree-cell-text(suggesthint, treecolAutoCompleteComment),
.autocomplete-treebody::-moz-tree-cell-text(suggestfirst, treecolAutoCompleteComment)
{
  color: GrayText;
  font-size: smaller;
}

.autocomplete-treebody::-moz-tree-cell(suggesthint) {
  border-top: 1px solid GrayText;
}

/* bookmarking panel */

#editBookmarkPanelStarIcon {
  list-style-image: url("chrome://browser/skin/places/starred48.png");
  width: 48px;
  height: 48px;
}

#editBookmarkPanelTitle {
  font-size: 130%;
}

#editBookmarkPanelHeader,
#editBookmarkPanelContent {
  margin-bottom: .5em;
}

/* Implements editBookmarkPanel resizing on folderTree un-collapse. */
#editBMPanel_folderTree {
  min-width: 27em;
}

/* ::::: content area ::::: */

%include ../shared/sidebar.inc.css

#sidebar-box {
  background-color: -moz-Field;
  color: -moz-FieldText;
}

#sidebar-header {
  border-bottom: 1px solid ThreeDLightShadow;
}

.sidebar-splitter {
  border-color: ThreeDLightShadow;
}

.browserContainer > findbar {
  background-color: -moz-dialog;
  color: -moz-DialogText;
  text-shadow: none;
}

/* Tabstrip */

#TabsToolbar {
  min-height: 0;
  padding: 0;
  margin-bottom: calc(-1 * var(--tab-toolbar-navbar-overlap)); /* overlap the nav-bar's top border */
}

%include ../shared/tabs.inc.css

/* tabbrowser-tab focus ring */
.tabbrowser-tab:focus > .tab-stack > .tab-content {
  outline: 1px dotted;
  outline-offset: -6px;
}

/* Tab DnD indicator */
.tab-drop-indicator {
  list-style-image: url(chrome://browser/skin/tabbrowser/tabDragIndicator.png);
  margin-bottom: -9px;
  z-index: 3;
}

/* Tab close button */
.tab-close-button {
  -moz-appearance: none;
  border: none;
}

/* All tabs menupopup */

.alltabs-item[selected="true"] {
  font-weight: bold;
}

/* Bookmarks toolbar */
#PlacesToolbarDropIndicator {
  list-style-image: url(chrome://browser/skin/places/toolbarDropMarker.png);
}

toolbarbutton.bookmark-item[dragover="true"][open="true"] {
  -moz-appearance: none;
  background: Highlight !important;
  color: HighlightText !important;
}

/* rules for menupopup drop indicators */
.menupopup-drop-indicator-bar {
  position: relative;
  /* these two margins must together compensate the indicator's height */
  margin-top: -1px;
  margin-bottom: -1px;
}

.menupopup-drop-indicator {
  list-style-image: none;
  height: 2px;
  margin-inline-end: -4em;
  background-color: Highlight;
}

%include ../shared/notification-icons.inc.css

.popup-notification-body[popupid="addon-progress"],
.popup-notification-body[popupid="addon-install-confirmation"] {
  width: 28em;
  max-width: 28em;
}

.addon-install-confirmation-name {
  font-weight: bold;
}

html|*.addon-webext-perm-list {
  margin-block-end: 0;
  padding-inline-start: 10px;
}

.addon-webext-perm-text {
  margin-inline-start: 0;
}

.popup-notification-description[popupid="addon-webext-permissions"],
.popup-notification-description[popupid="addon-installed"] {
  display: none;
}

.addon-webext-perm-notification-content,
.addon-installed-notification-content {
  margin-top: 0;
}

#addon-webext-perm-header {
  /* Align the text more closely with the icon by clearing some top line height. */
  margin-top: -1px;
  margin-inline-start: 0;
}

#addon-installed-notification-header {
  /* Align the text more closely with the icon by clearing some top line height. */
  margin-top: -1px;
}

.addon-webext-name {
  display: inline;
  font-weight: bold;
  margin: 0;
}

.addon-addon-icon,
.addon-toolbar-icon {
  width: 14px;
  height: 14px;
  vertical-align: bottom;
  margin-bottom: 1px;
  -moz-context-properties: fill;
  fill: currentColor;
}

.addon-addon-icon {
  list-style-image: url("chrome://mozapps/skin/extensions/extensionGeneric-16.svg");
}

.addon-toolbar-icon {
  list-style-image: url("chrome://browser/skin/menu.svg");
}

/* Notification icon box */

.notification-anchor-icon:-moz-focusring {
  outline: 1px dotted -moz-DialogText;
}

/* Translation infobar */

%include ../shared/translation/infobar.inc.css

notification[value="translation"] {
  min-height: 40px;
}

@media (-moz-windows-default-theme) {
  notification[value="translation"],
  notification[value="translation"] button,
  notification[value="translation"] menulist {
    min-height: 30px;
    color: #545454;
  }

  notification[value="translation"] {
    background-color: #EEE;
  }

  notification[value="translation"] button,
  notification[value="translation"] menulist {
    padding-inline-end: 1ch;
  }

  notification[value="translation"] menulist {
    border: 1px solid #C1C1C1;
    background-color: #FFF;
  }

  notification[value="translation"] button {
    border: 1px solid #C1C1C1;
    background-color: #FBFBFB;
  }

  notification[value="translation"] button,
  notification[value="translation"] menulist,
  notification[value="translation"] menulist > .menulist-label-box {
    margin-inline-start: 1ch;
    margin-inline-end: 1ch;
  }

  notification[value="translation"] button:hover,
  notification[value="translation"] button:active,
  notification[value="translation"] menulist:hover,
  notification[value="translation"] menulist:active {
    background-color: #EBEBEB;
  }

  notification[value="translation"] button[anonid="translate"] {
    color: #FFF;
    background-color: #0095DD;
    box-shadow: none;
    border: 1px solid #006B9D;
  }

  notification[value="translation"] button[anonid="translate"]:hover,
  notification[value="translation"] button[anonid="translate"]:active {
    background-color: #008ACB;
  }

  notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker,
  notification[value="translation"] menulist > .menulist-dropmarker {
    list-style-image: url("chrome://browser/skin/toolbarbutton-dropdown-arrow.png");
  }

  notification[value="translation"] button > .button-box,
  notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker {
    padding: 0;
    margin-inline-start: 3ch;
  }

  notification[value="translation"] button:not([type="menu"]) > .button-box {
    margin-inline-end: 3ch;
  }
}

.translation-menupopup {
  -moz-appearance: none;
}

/* Bookmarks roots menu-items */
#subscribeToPageMenuitem:not([disabled]),
#subscribeToPageMenupopup {
  list-style-image: url("chrome://browser/skin/feeds/feedIcon16.png");
}

#bookmarksToolbarFolderMenu,
#BMB_bookmarksToolbar,
#panelMenu_bookmarksToolbar {
  list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.png");
  -moz-image-region: auto;
}

#menu_unsortedBookmarks,
#BMB_unsortedBookmarks,
#panelMenu_unsortedBookmarks {
  list-style-image: url("chrome://browser/skin/places/unsortedBookmarks.png");
  -moz-image-region: auto;
}

/* Status panel */

.statuspanel-label {
  margin: 0;
  padding: 2px 4px;
  background-color: -moz-dialog;
  border: 1px none ThreeDLightShadow;
  border-top-style: solid;
  color: -moz-dialogText;
  text-shadow: none;
}

@media (-moz-windows-default-theme) {
  .statuspanel-label {
    background-color: #f9f9fa;
    color: #444;
  }
}

.statuspanel-label:-moz-locale-dir(ltr):not([mirror]),
.statuspanel-label:-moz-locale-dir(rtl)[mirror] {
  border-right-style: solid;
  /* disabled for triggering grayscale AA (bug 659213)
  border-top-right-radius: .3em;
  */
  margin-right: 1em;
}

.statuspanel-label:-moz-locale-dir(rtl):not([mirror]),
.statuspanel-label:-moz-locale-dir(ltr)[mirror] {
  border-left-style: solid;
  /* disabled for triggering grayscale AA (bug 659213)
  border-top-left-radius: .3em;
  */
  margin-left: 1em;
}

%include ../shared/fullscreen/warning.inc.css
%include ../shared/ctrlTab.inc.css
%include ../shared/plugin-doorhanger.inc.css

/* Error counter */

#developer-toolbar-toolbox-button[error-count]:before {
  color: #FDF3DE;
  min-width: 16px;
  text-shadow: none;
  background-image: linear-gradient(#B4211B, #8A1915);
  border-radius: 1px;
  margin-inline-end: 5px;
}

/* Customization mode */

%include ../shared/customizableui/customizeMode.inc.css

/**
 * This next rule is a hack to disable subpixel anti-aliasing on all
 * labels during the customize mode transition. Subpixel anti-aliasing
 * on Windows with Direct2D layers acceleration is particularly slow to
 * paint, so this hack is how we sidestep that performance bottleneck.
 */
#main-window:-moz-any([customize-entering],[customize-exiting]) label {
  transform: perspective(0.01px);
}

#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="left"] {
  margin-right: -2px;
}

#customization-tipPanel > .panel-arrowcontainer > .panel-arrowbox > .panel-arrow[side="right"] {
  margin-left: -2px;
}

/* End customization mode */

/* Private browsing indicators */

/**
 * Currently, we have two places where we put private browsing indicators on
 * Windows. When tabsintitlebar is enabled, we draw the indicator in the titlebar.
 * When tabsintitlebar is disabled, we draw the indicator at the end of the
 * tabstrip. The titlebar indicator is the fiddliest of the bunch, since we
 * want the bottom border of the image to line up with the bottom of the window
 * caption buttons. That's why there's so much special-casing going on in here.
 */
.private-browsing-indicator {
  display: none;
  pointer-events: none;
}

#private-browsing-indicator-titlebar {
  display: block;
  position: absolute;
  /* Need to ensure this gets positioned on top of the position:relative #navigator-toolbox
   * in case the dark/light themes give that item a background. */
  z-index: 1;
}

#main-window[privatebrowsingmode=temporary][tabsintitlebar] #private-browsing-indicator-titlebar > .private-browsing-indicator {
  display: block;
}

#main-window[privatebrowsingmode=temporary]:-moz-any([inFullscreen],:not([tabsintitlebar])) #TabsToolbar > .private-browsing-indicator {
  display: -moz-box;
}

#TabsToolbar > .private-browsing-indicator {
  background: url("chrome://browser/skin/privatebrowsing-mask-tabstrip.png") no-repeat center -3px;
  margin-inline-start: 4px;
  width: 48px;
}

/* Bug 1008183: We're intentionally using the titlebar asset here for fullscreen
 * mode, since the tabstrip "mimics" the titlebar in that case with its own
 * min/max/close window buttons.
 */
#private-browsing-indicator-titlebar > .private-browsing-indicator,
#main-window[inFullscreen] #TabsToolbar > .private-browsing-indicator {
  background: url("chrome://browser/skin/privatebrowsing-mask-titlebar.png") no-repeat center 0px;
  margin-inline-end: 4px;
  width: 40px;
  height: 20px;
  position: relative;
}

@media (-moz-windows-classic) {
  /**
   * We have to use top instead of background-position in this case, otherwise
   * the bottom of the indicator would get cut off by the bounds of the
   * private-browsing-indicator element.
   */
  #main-window[sizemode="normal"] > #titlebar > #titlebar-content > #titlebar-buttonbox-container > #private-browsing-indicator-titlebar > .private-browsing-indicator {
    top: 4px;
  }
}

@media (-moz-os-version: windows-win7) {
  @media (-moz-windows-glass) {
    #main-window[sizemode="normal"] > #titlebar > #titlebar-content > #titlebar-buttonbox-container > #private-browsing-indicator-titlebar > .private-browsing-indicator {
      top: 1px;
    }
    #main-window[sizemode="maximized"] > #titlebar > #titlebar-content > #titlebar-buttonbox-container > #private-browsing-indicator-titlebar > .private-browsing-indicator {
      top: -1px;
    }
  }

  /**
   * This next block targets Aero Basic, which has different positioning for the
   * window caption buttons, and therefore needs to be special-cased.
   */
  @media (-moz-windows-default-theme) {
    @media (-moz-windows-compositor: 0) {
      #main-window[sizemode="normal"] > #titlebar > #titlebar-content > #titlebar-buttonbox-container > #private-browsing-indicator-titlebar > .private-browsing-indicator {
        background-image: url("chrome://browser/skin/privatebrowsing-mask-titlebar-win7-tall.png");
        height: 28px;
      }
    }
  }
}

/* End private browsing indicators */

%include ../shared/UITour.inc.css

#UITourTooltipButtons {
  /**
   * Override the --arrowpanel-padding so the background extends
   * to the sides and bottom of the panel.
   */
  margin-left: -10px;
  margin-right: -10px;
  margin-bottom: -10px;
}

%include ../shared/contextmenu.inc.css

/* Make menu items larger when opened through touch. */
panel[touchmode] .PanelUI-subView .subviewbutton,
menupopup[touchmode] menu,
menupopup[touchmode] menuitem {
  padding-top: 12px;
  padding-bottom: 12px;
}

panel[touchmode] .PanelUI-subView #appMenu-edit-controls > .subviewbutton,
panel[touchmode] .PanelUI-subView #appMenu-zoom-controls > .subviewbutton-iconic {
  padding-inline-start: 12px;
  padding-inline-end: 12px;
}

#contentAreaContextMenu[touchmode] > #context-navigation > menuitem {
  padding-top: 7px;
  padding-bottom: 7px;
}

#context-navigation {
  background-color: menu;
  padding-bottom: 4px;
}

#context-sep-navigation {
  margin-inline-start: -28px;
  margin-top: -4px;
}

%include browser-aero.css

.browser-extension-panel > .panel-arrowcontainer > .panel-arrowcontent {
  padding: 0;
  overflow: hidden;
}

@media (-moz-os-version: windows-win7) {
  .cui-widget-panelview[id^=PanelUI-webext-] {
    border-radius: 4px;
  }
}

.webextension-popup-browser,
.webextension-popup-stack {
  border-radius: inherit;
}

.contentSelectDropdown-ingroup > .menu-iconic-text {
  padding-inline-start: 20px;
}

#ContentSelectDropdown > menupopup {
  background-color: -moz-field;
  -moz-border-top-colors: GrayText;
  -moz-border-right-colors: GrayText;
  -moz-border-bottom-colors: GrayText;
  -moz-border-left-colors: GrayText;
}

#ContentSelectDropdown > menupopup > menucaption,
#ContentSelectDropdown > menupopup > menuitem {
  padding: 0 6px;
  border-width: 0;
  font: -moz-list;
}

#ContentSelectDropdown > menupopup > menucaption > .menu-iconic-text,
#ContentSelectDropdown > menupopup > menuitem > .menu-iconic-text {
  /* Padding should follow the 4/12 ratio, where 12px is the default font-size
     with 4px being the preferred padding size. */
  padding-top: .3333em;
  padding-bottom: .3333em;
}

#ContentSelectDropdown > menupopup > menucaption > .menu-iconic-text {
  font-weight: bold;
}

#ContentSelectDropdown > menupopup > menuitem[_moz-menuactive="true"][disabled="true"] {
  color: GrayText;
  background-color: unset;
}

#ContentSelectDropdown > menupopup > menucaption {
  background-color: buttonface;
}

#ContentSelectDropdown > menupopup > menucaption[disabled="true"] {
  color: GrayText;
}

#ContentSelectDropdown > .isOpenedViaTouch > menucaption > .menu-iconic-text,
#ContentSelectDropdown > .isOpenedViaTouch > menuitem > .menu-iconic-text {
  /* Touch padding should follow the 11/12 ratio, where 12px is the default
     font-size with 11px being the preferred padding size. */
  padding-top: .9167em;
  padding-bottom: .9167em;
}

/* Prevent movement in the restore-tabs-button when it's clicked. */
.restore-tabs-button:hover:active:not([disabled="true"]) {
  padding: 3px;
}
