$item-min-height: rem(16px);
$item-min-width: rem(50px);
$item-vertical-padding: $item-min-height / 2;
$focus-state-box-shadow-color: rgba(92, 106, 196, 0.8);

.Biblio-Tabs {
  display: flex;
  margin: 0;
  padding: 0;
  border-bottom: border();
  list-style: none;
}

.Biblio-Tabs--fitted {
  .Biblio-Tabs__TabContainer {
    flex: 1 1 100%;
  }

  .Biblio-Tabs__Tab {
    padding: 0;
  }

  .Biblio-Tabs__Title {
    width: 100%;
    padding: spacing(tight) spacing();
  }
}

.Biblio-Tabs--fillSpace {
  .Biblio-Tabs__TabContainer {
    flex: 1 1 auto;
  }
}

.Biblio-Tabs__TabContainer {
  display: flex;
  margin: 0;
  padding: 0;
}

.Biblio-Tabs__Tab {
  @include unstyled-link;
  @include unstyled-button;
  @include text-style-body;
  @include text-emphasis-subdued;
  position: relative;
  justify-content: center;
  width: 100%;
  min-width: 100%; // IE11 fix for overflowing flex items from parent container
  margin-top: 1px;
  margin-bottom: -1px;
  padding: 0 spacing();
  outline: none;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;

  &:hover {
    .Biblio-Tabs__Title {
      @include text-emphasis-normal;
      text-decoration: none;
      border-bottom: border-width(thicker) solid color('sky');
    }
  }

  &:focus {
    box-shadow: inset 0 0 2px 0 $focus-state-box-shadow-color,
      0 0 2px 0 $focus-state-box-shadow-color;

    .Biblio-Tabs__Title {
      @include text-emphasis-normal;
      border-bottom: border-width(thicker) solid color('indigo', 'light');
    }
  }

  &:visited {
    color: color('ink', 'lighter');
  }

  &.Biblio-Tabs__Tab--selected {
    // stylelint-disable-next-line selector-max-class
    .Biblio-Tabs__Title {
      border-bottom: border-width(thicker) solid color('indigo');
    }
  }
}

.Biblio-Tabs__Tab--selected {
  @include text-emphasis-normal;
}

.Biblio-Tabs__Title {
  display: block;
  padding: spacing() 0 (spacing() - border-width(thicker)) 0;
  border-bottom: border-width(thicker) solid transparent;
  min-width: $item-min-width;
}

.Biblio-Tabs__Panel {
  display: block;

  &:focus {
    outline: none;
  }
}

.Biblio-Tabs__List {
  list-style: none;
  margin: 0;
  padding: spacing(tight) 0;
}

.Biblio-Tabs__Item {
  @include unstyled-link;
  @include unstyled-button;
  display: block;
  width: 100%;
  min-height: $item-min-height;
  padding: $item-vertical-padding spacing();
  text-align: left;
  cursor: pointer;

  &:active {
    @include state(active);

    &:hover {
      @include state(active, hover);

      // stylelint-disable-next-line selector-max-specificity
      &:focus {
        @include state(active, hover, focused);
      }
    }
  }

  &:hover {
    @include state(hover);

    &:focus {
      @include state(hover, focused);
    }
  }

  &:focus {
    @include state(focused);
  }

  &::-moz-focus-inner {
    border: none;
  }
}

.Biblio-Tabs__DisclosureTab {
  display: none;
}

.Biblio-Tabs__DisclosureTab--visible {
  display: flex;
}

.Biblio-Tabs__DisclosureActivator {
  @include recolor-icon(color('ink', 'lighter'));
  position: relative;
  justify-content: center;
  height: 100%;
  padding: 0 spacing();
  background-color: transparent;
  cursor: pointer;
  border: none;
  outline: none;
  text-align: center;
}

.Biblio-Tabs__TabMeasurer {
  display: flex;
  visibility: hidden;
  height: 0;
}
