[hidden] {
  display: none !important;
}

:host {
  position: relative;
  box-sizing: border-box;
}
:host *, :host *:before, :host *:after {
  box-sizing: inherit;
}

/**
 * @prop --divider-color: The color of the divider that separates tab navigation buttons from panels.
 * @prop --active-color: The color of the active tab marker.
 */
:host {
  --divider-color: var(--flow-color-step-100, #e6e6e6);
  --active-color: var(--flow-color-primary, #389DFF);
  display: block;
}

.tab-group {
  display: flex;
  border: solid 1px transparent;
  border-radius: 0;
}
.tab-group .tab-group__tabs {
  display: flex;
  position: relative;
}
.tab-group .tab-group__active-tab-indicator {
  position: absolute;
  transition: var(--flow-transition-fast, 150ms) transform ease, var(--flow-transition-fast, 150ms) width ease;
}
.tab-group:not(.focus-visible) ::slotted(flow-tab) {
  --focus-ring: none;
}

.tab-group--horizontal-scroll .tab-group__nav-container {
  position: relative;
  padding: 0 var(--flow-spacing-x-large, 1.75rem);
}

.tab-group__scroll-button {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  bottom: 0;
  width: var(--flow-spacing-x-large, 1.75rem);
}

.tab-group__scroll-button--left {
  left: 0;
}

.tab-group__scroll-button--right {
  right: 0;
}

.tab-group--top {
  flex-direction: column;
}
.tab-group--top .tab-group__nav-container {
  order: 1;
}
.tab-group--top .tab-group__nav {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.tab-group--top .tab-group__nav::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.tab-group--top .tab-group__tabs {
  flex: 1 1 auto;
  position: relative;
  flex-direction: row;
  border-bottom: solid 2px var(--divider-color);
}
.tab-group--top .tab-group__active-tab-indicator {
  bottom: -2px;
  border-bottom: solid 2px var(--active-color);
}
.tab-group--top .tab-group__body {
  order: 2;
}

.tab-group--bottom {
  flex-direction: column;
}
.tab-group--bottom .tab-group__nav-container {
  order: 2;
}
.tab-group--bottom .tab-group__nav {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.tab-group--bottom .tab-group__nav::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.tab-group--bottom .tab-group__tabs {
  flex: 1 1 auto;
  position: relative;
  flex-direction: row;
  border-top: solid 2px var(--divider-color);
}
.tab-group--bottom .tab-group__active-tab-indicator {
  top: calc(-1 * 2px);
  border-top: solid 2px var(--active-color);
}
.tab-group--bottom .tab-group__body {
  order: 1;
}

.tab-group--left {
  flex-direction: row;
}
.tab-group--left .tab-group__nav-container {
  order: 1;
}
.tab-group--left .tab-group__tabs {
  flex: 0 0 auto;
  flex-direction: column;
  border-right: solid 2px var(--divider-color);
}
.tab-group--left .tab-group__active-tab-indicator {
  right: calc(-1 * 2px);
  border-right: solid 2px var(--active-color);
}
.tab-group--left .tab-group__body {
  flex: 1 1 auto;
  order: 2;
}

.tab-group--right {
  flex-direction: row;
}
.tab-group--right .tab-group__nav-container {
  order: 2;
}
.tab-group--right .tab-group__tabs {
  flex: 0 0 auto;
  flex-direction: column;
  border-left: solid 2px var(--divider-color);
}
.tab-group--right .tab-group__active-tab-indicator {
  left: calc(-1 * 2px);
  border-left: solid 2px var(--active-color);
}
.tab-group--right .tab-group__body {
  flex: 1 1 auto;
  order: 1;
}