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

/* Only hide the tabs toolbar if one of the following sidebar extensions is
 * active: */
/* Sidebery */
:root:not([customizing]):has(#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:not([hidden])),
/* Tree Style Tab */
:root:not([customizing]):has(#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:not([hidden])),
/* Tab Center Reborn */
: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;
  }

  /* macOS specific positioning */
  @media (-moz-platform: macos) {
    /* Offset navbar contents to make space for the window controls */
    &[tabsintitlebar] #nav-bar:not([inFullscreen]) {
      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;
      }
    }
  }

  /* Windows specific positioning */
  @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;
    }

  }

  /* Linux/GTK specific positioning, only needed if there is at least one window
   * control button. */
  @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;
      }
    }
  }

  /* Sidebar tweaks */
  --sidebar-background-color: var(--toolbar-bgcolor) !important;
  --sidebar-text-color: var(--toolbar-color) !important;
  --sidebar-border-color: var(--chrome-content-separator-color) !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;
    }
  }

  /* Use :where() to lower specificity. */
  :where(&) #sidebar-box {
    position: relative;
    border-radius: 0 !important;
    box-shadow: none !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;
      }

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

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

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