/* Edge-Frfox - tweaks/hide-tabs-bar.css
 * https://github.com/bmFtZQ/edge-frfox */

/*
  MARK: Hide tabs toolbar
*/
@media (-moz-bool-pref: "uc.tweak.hide-tabs-bar"),
(-moz-bool-pref: "uc.tweak.hide-tabs-bar.no-window-controls") {
  /* Only hide the tabs toolbar if one of the following sidebar extensions is
   * active: Sidebery, Tree Style Tab, or Tab Center Reborn. */
  :root:not([customizing]):has(#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden])),
  :root:not([customizing]):has(#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:not([hidden])),
  :root:not([customizing]):has(#sidebar-box[sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"]:not([hidden])) {
    /* Height of navbar, used for determining height and position of window controls */
    --uc-navbar-height: 38px;
    /* Drag space next to the window controls, allows you to move the window more easily */
    --uc-titlebar-drag-space: 40px;

    /* Hide the tabs */
    #TabsToolbar {
      visibility: collapse !important;
    }

    /* Fix issue with missing window controls. */
    &[tabsintitlebar] #titlebar {
      will-change: auto !important;
    }

    /* Add some padding to the top of the navbar */
    &[tabsintitlebar] #nav-bar {
      padding-top: var(--uc-tab-top-margin, 0) !important;
    }

    /* Set background colour of the menu bar to maintain consistency with the navbar */
    @media not (-moz-bool-pref: "uc.tweak.floating-tabs") {
      #toolbar-menubar {
        background-color: var(--toolbar-bgcolor) !important;
        color: var(--toolbar-color) !important;
      }
    }

    /* Make sure window controls are removed in full screen mode. */
    &[inDOMFullscreen] #TabsToolbar .titlebar-buttonbox,
    &[inFullscreen] #navigator-toolbox[style*="margin-top"] #TabsToolbar .titlebar-buttonbox {
      visibility: collapse !important;
    }

    /* Disable the replacement window controls if tweak is enabled. */
    @media not (-moz-bool-pref: "uc.tweak.hide-tabs-bar.no-window-controls") {
      /*
        MARK: macOS styles
      */
      @media (-moz-platform: macos) {
        /* Offset navbar contents to make space for the window controls */
        &[tabsintitlebar]:not([inFullscreen]) #nav-bar {
          padding-left: calc(70px + var(--uc-titlebar-drag-space)) !important;

          /* Remove the padding from the side of the navbar */
          #nav-bar-customization-target > :is(toolbarbutton, toolbaritem):first-child {
            padding-inline-start: 0 !important;
          }
        }

        /* Positioning of the window controls */
        #TabsToolbar .titlebar-buttonbox-container {
          visibility: visible !important;
          position: fixed !important;
          height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0px));
          margin: 0 !important;
          top: 0;
          left: 0;

          .titlebar-buttonbox {
            margin-inline: calc((var(--uc-navbar-height) + var(--uc-tab-top-margin, 0px) - 14px) / 2) !important;
          }
        }
      }

      /*
        MARK: Windows styles
      */
      @media (-moz-platform: windows) {
        /* Offset navbar contents to make space for the window controls */
        &:where([inFullscreen], [tabsintitlebar]) #nav-bar {
          padding-inline-end: calc(140px + var(--uc-titlebar-drag-space)) !important;

          /* Remove the padding from the side of the navbar */
          #PanelUI-menu-button {
            padding-inline-end: 0 !important;
          }
        }

        /* Positioning of the window controls */
        :where(#toolbar-menubar[inactive]) + #TabsToolbar .titlebar-buttonbox {
          visibility: visible !important;
          position: fixed !important;
          top: 0;
          inset-inline-end: 0;
          height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0)) !important;
          z-index: 100 !important;
          color: var(--toolbar-color) !important;
        }
      }

      /*
        MARK: Linux/GTK styles
      */
      @media (-moz-gtk-csd-minimize-button),
      (-moz-gtk-csd-maximize-button),
      (-moz-gtk-csd-close-button) {
        /* Width of single window control button. */
        --uc-window-control-btn: 34px;

        /* Navbar space reserved for one button. */
        --uc-window-controls-width: var(--uc-window-control-btn);

        /* Navbar space reserved for two buttons. */
        @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button),
        (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-close-button),
        (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) {
          --uc-window-controls-width: calc(var(--uc-window-control-btn) * 2);
        }

        /* Navbar space reserved for three buttons. */
        @media (-moz-gtk-csd-minimize-button) and (-moz-gtk-csd-maximize-button) and (-moz-gtk-csd-close-button) {
          --uc-window-controls-width: calc(var(--uc-window-control-btn) * 3);
        }

        /* Offset navbar contents to make space for the window controls */
        &:where([inFullscreen], [tabsintitlebar]) #nav-bar {
          /* Window controls on the right. */
          @media not (-moz-gtk-csd-reversed-placement) {
            padding-inline-end: calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) !important;

            /* Remove the padding from the side of the navbar */
            #PanelUI-menu-button {
              padding-inline-end: 0 !important;
            }
          }

          /* Window controls on the left. */
          @media (-moz-gtk-csd-reversed-placement) {
            padding-inline-start: calc(var(--uc-window-controls-width, 0px) + var(--uc-titlebar-drag-space)) !important;

            /* Remove the padding from the side of the navbar */
            #nav-bar-customization-target > :is(toolbarbutton, toolbaritem):first-child {
              padding-inline-start: 0 !important;
            }
          }
        }

        /* Positioning of the window controls */
        :where(#toolbar-menubar[inactive]) + #TabsToolbar .titlebar-buttonbox {
          visibility: visible !important;
          position: fixed !important;
          top: 0;
          height: calc(var(--uc-navbar-height) + var(--uc-tab-top-margin, 0)) !important;
          z-index: 100 !important;
          inset-inline: auto 0;

          @media (-moz-gtk-csd-reversed-placement) {
            inset-inline: 0 auto !important;
          }
        }
      }
    }
  }
}

/*
  MARK: Sidebar styles
*/
#sidebar-box:where([sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden])),
#sidebar-box:where([sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:not([hidden])),
#sidebar-box:where([sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"]:not([hidden])) {
  --sidebar-background-color: var(--toolbar-bgcolor) !important;
  --sidebar-text-color: var(--toolbar-color) !important;
  --sidebar-border-color: var(--chrome-content-separator-color) !important;
  position: relative !important;

  /* Floating tabs tweak uses the tab toolbar background instead. */
  @media (-moz-bool-pref: "uc.tweak.floating-tabs") {
    --sidebar-background-color: var(--lwt-accent-color) !important;
    --sidebar-text-color: var(--lwt-text-color) !important;

    &:-moz-window-inactive {
      --sidebar-background-color: var(--lwt-accent-color-inactive) !important;
      --sidebar-text-color: var(--lwt-text-color-inactive) !important;
    }
  }

  #sidebar-header {
    border-bottom: 0 !important;
    padding: 10px 4px 0 !important;
    overflow: hidden;
    position: relative;

    #sidebar-switcher-target,
    #sidebar-close {
      width: auto !important;
      height: 28px !important;
      padding: 0 8px !important;
      border: none !important;
      margin-inline: 0 !important;
    }

    #sidebar-spacer {
      min-width: 8px !important;
    }
  }

  /* Sidebar positioned on the left. */
  &:not([positionend]) {
    border-inline-end: 1px solid var(--sidebar-border-color);
    /* Use less padding on the side with the border. */
    padding-inline: 4px 3px;
  }

  /* Sidebar positioned on the right. */
  &[positionend] {
    border-inline-start: 1px solid var(--sidebar-border-color);
    /* Use less padding on the side with the border. */
    padding-inline: 3px 4px;
  }

  /* Rounded corners tweak optimisations. */
  @media (-moz-bool-pref: "uc.tweak.rounded-corners") {
    /* Remove padding and border from sidebar. */
    &:not([positionend]),
    &[positionend] {
      border-inline: none;
      padding-inline: 0;
    }

    @media (-moz-bool-pref: "uc.tweak.theme.sidebery") {
      border-radius: 0 !important;
      box-shadow: none !important;

      &:not([positionend]) {
        padding-inline-end: 3px;
      }

      &[positionend] {
        padding-inline-start: 3px;
      }
    }

    #sidebar-header {
      padding-top: 4px !important;
    }
  }
}
