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

%include ../shared/compacttheme.inc.css

:root {
   /* Matches the #browser-border-start, #browser-border-end color */
  --chrome-nav-bar-separator-color: rgba(10, 31, 51, 0.35);
}

/* The window background is white due to no accentcolor in the lightweight
   theme. It can't be changed to transparent when there is no compositor
   (Win 7 in classic / basic theme), or else dragging and focus become
   broken. So instead just show the normal titlebar in that case, and override
   the window color as transparent when the compositor is available. */
@media (-moz-windows-compositor: 0) {
  #main-window[tabsintitlebar] #titlebar:-moz-lwtheme {
    visibility: visible;
  }

  #main-window {
    background: var(--chrome-background-color) !important;
  }
}

@media (-moz-windows-compositor) {
  #main-window {
    background: transparent !important;
  }
}

#toolbar-menubar {
  text-shadow: none !important;
}

@media (-moz-windows-glass) {
  .tabbrowser-tab {
    background-color: var(--chrome-background-color);
  }
}

@media (-moz-os-version: windows-win7),
       (-moz-os-version: windows-win8) {
  /* It'd be nice if there was an element in the scrollbox's inner content
     that collapsed to the current width of the tabs. Since there isn't we
     need to handle overflowing and non-overflowing tabs separately.

     In the case of overflowing tabs, set a border-top on the entire container,
     otherwise we need to set it on each element individually */
  #main-window[sizemode=normal] .tabbrowser-tabs[overflow="true"] {
    background-clip: padding-box;
    border-top: 1px solid var(--chrome-nav-bar-separator-color);
    border-inline-end: 1px solid var(--chrome-nav-bar-separator-color);
  }

  /* Add a border to the left of the first tab (or scroll arrow).  Using .tabbrowser-tabs
     instead of #TabsToolbar because it will work even in customize mode. */
  #main-window[sizemode=normal] .tabbrowser-tabs {
    background-clip: padding-box;
    border-inline-start: 1px solid var(--chrome-nav-bar-separator-color);
    border-inline-end: 1px solid transparent;
  }

  #main-window[sizemode=normal] .tabbrowser-tabs:not([overflow="true"]) .closing-tabs-spacer {
    background-clip: padding-box;
    border-inline-start: 1px solid var(--chrome-nav-bar-separator-color);
  }

  /* Use default window colors when in non-maximized mode */
  #tabbrowser-tabs,
  #TabsToolbar,
  #browser-panel,
  #titlebar-content {
    background: transparent;
  }

  /* Ensure that the entire background is styled when maximized/fullscreen */
  #main-window:not([sizemode="normal"]):not([customizing]) #browser-panel {
    background: var(--chrome-background-color) !important;
  }

  /* The menu items need to be visible when the entire background is styled */
  #main-window:not([sizemode="normal"]) #main-menubar {
    color: var(--chrome-color);
    background-color: transparent;
  }

  #main-window[sizemode="maximized"] #main-menubar > menu:not(:-moz-window-inactive) {
    color: inherit;
  }

  /* Use proper menu text styling in Win7 classic mode (copied from browser.css) */
  @media (-moz-windows-compositor: 0),
         (-moz-windows-default-theme: 0) {
    :root[tabsintitlebar]:not([inFullscreen]) {
      --titlebar-text-color: CaptionText;
    }

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

    #main-window[tabsintitlebar] #main-menubar > menu {
      color: inherit;
    }
  }
}

/* Restored windows get an artificial border on windows, because the lwtheme background
 * overlaps the regular window border. That isn't the case for us, so we avoid painting
 * over the native border with our custom borders: */
#browser-panel {
  /* These are !important to avoid specificity-wars with the selectors that add borders here. */
  background-image: none !important;
  border-top: none !important;
}

#navigator-toolbox {
  /* The side borders on the toolbox also look out-of-place because we don't paint over
   * the native background color at all, and these are !important for the same reason as above. */
  border-left: none !important;
  border-right: none !important;
}

/* Disable dragging like in the default theme: */
#main-window[tabsintitlebar] #navigator-toolbox > toolbar:not(#toolbar-menubar):not(#TabsToolbar):-moz-lwtheme {
  -moz-window-dragging: no-drag;
}

@media (-moz-os-version: windows-win10) {
  .titlebar-button:-moz-lwtheme {
    -moz-context-properties: stroke;
    stroke: currentColor;
  }
  #titlebar-min:-moz-lwtheme {
    list-style-image: url(chrome://browser/skin/window-controls/minimize.svg);
  }
  #titlebar-max:-moz-lwtheme {
    list-style-image: url(chrome://browser/skin/window-controls/maximize.svg);
  }
  :root[sizemode="maximized"] #titlebar-max:-moz-lwtheme {
    list-style-image: url(chrome://browser/skin/window-controls/restore.svg);
  }
  #titlebar-close:-moz-lwtheme {
    list-style-image: url(chrome://browser/skin/window-controls/close.svg);
  }
}

