.pill-tabs {
    --pill-radius: 50px;

    display: flex;
    justify-content: center;
    gap: 0;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    background-color: color-mix(in srgb, var(--background) 65%, transparent);
    border: 1px solid var(--ncs-container-strong);
    padding: 4px;
    border-radius: 100px;
    position: relative;
    transition: background-color 0.3s ease, border-color 0.3s ease;
    z-index: 1;

    .pill-tab {
        --pill-padding-block: 0.65rem;
        --pill-padding-inline: 1.2rem;
        
        padding: var(--pill-padding-block) var(--pill-padding-inline);
        border: none;
        cursor: pointer;
        font-weight: 500;
        font-size: var(--font-sm);
        transition: all 0.25s ease;
        background: transparent;
        color: var(--text);
        opacity: 0.8;
        border-radius: var(--pill-radius);
        position: relative;
        z-index: 2;
        text-align: center;
        white-space: nowrap;
        min-width: max-content;
        overflow: hidden;
        font-family: inherit;

        &:hover {
            opacity: 1;
        }

        &[data-active] {
            background-color: var(--ncs-container-weak);
            color: var(--ncs-primary-contrast);
            opacity: 1;
        }

        &::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 50%;
            width: 0;
            height: 2px;
            background-color: var(--ncs-primary);
            transition: width 0.3s ease, left 0.3s ease;
            transform: translateX(-50%);
            opacity: 0;
        }

        &:hover::after {
            width: 30%;
            opacity: 0.5;
        }

        &[data-active]::after {
            width: 2rem;
            max-width: calc(50% - var(--pill-padding-inline));
            opacity: 1;
        }
    }
}

.pill-tabs-inverted {
    background-color: var(--background);
    border-color: var(--ncs-container-strong);

    .pill-tab {
        &:hover {
            background-color: var(--ncs-container-weak);
        }

        &[data-active] {
            background-color: var(--ncs-primary);
            color: var(--ncs-on-primary);
        }

        &[data-active]::after {
            opacity: 0;
        }
    }
}

@media (max-width: 991px) {
    .pill-tabs:not(.iframe-mode-tabs) {
        &:not(.ignore-responsive) {
            justify-content: center;
            flex-wrap: nowrap;
            width: 100%;
            gap: 0.45rem;
            padding: 0;
            overflow-x: auto;
            overflow-y: hidden;
            border-radius: 0;
            background-color: transparent;
            border-color: transparent;
            touch-action: pan-x;
            overscroll-behavior-x: contain;
            scroll-snap-type: x proximity;
            scroll-padding-inline: 0 1rem;
            scrollbar-width: none;
            --pill-tabs-edge-fade: 5rem;

            &[data-overflow] {
                justify-content: flex-start;
            }

            &[data-overflow][data-overflow-right]:not([data-overflow-left]) {
                mask-image: linear-gradient(
                    to right,
                    var(--ncs-container-weak) 0,
                    var(--ncs-container-weak) calc(100% - var(--pill-tabs-edge-fade)),
                    transparent 100%
                );
            }

            &[data-overflow][data-overflow-left][data-overflow-right] {
                mask-image: linear-gradient(
                    to right,
                    transparent 0,
                    var(--ncs-container-weak) var(--pill-tabs-edge-fade),
                    var(--ncs-container-weak) calc(100% - var(--pill-tabs-edge-fade)),
                    transparent 100%
                );
            }

            &[data-overflow][data-overflow-left]:not([data-overflow-right]) {
                mask-image: linear-gradient(
                    to right,
                    transparent 0,
                    var(--ncs-container-weak) var(--pill-tabs-edge-fade),
                    var(--ncs-container-weak) 100%
                );
            }

            .pill-tab {
                flex: 0 0 auto;
                min-width: max-content;
                padding: 0.72rem 1rem;
                text-align: center;
                border-radius: 999px;
                white-space: nowrap;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-height: 44px;
                scroll-snap-align: start;
                opacity: 1;
            }
        }

        &:not(.pill-tabs-inverted):not(.ignore-responsive) {
            .pill-tab {
                background-color: var(--ncs-container-weak);
                border: 1px solid var(--ncs-container-strong);

                &[data-active] {
                    background-color: var(--background);
                    border-color: var(--ncs-container-strong);
                }
            }
        }

        &.pill-tabs-inverted:not(.ignore-responsive) {
            .pill-tab {
                background-color: var(--background);
                border: 1px solid var(--ncs-container-strong);

                &[data-active] {
                    background-color: var(--ncs-primary);
                    border-color: var(--ncs-primary);
                }
            }
        }
    }

    .dark-mode {
        .pill-tabs:not(.iframe-mode-tabs) {
            &:not(.ignore-responsive) {
                background-color: transparent;
            }
        }
    }
}

@media (max-width: 768px) {
    .pill-tabs:not(.iframe-mode-tabs) {
        &:not(.ignore-responsive) {
            gap: 0.4rem;
            padding: 0;

            .pill-tab {
                border-radius: 999px;
                padding: 0.68rem 0.95rem;
                min-height: 44px;
            }
        }
    }
}

@media (max-width: 480px) {
    .pill-tabs:not(.iframe-mode-tabs) {
        &:not(.ignore-responsive) {
            padding: 0;

            .pill-tab {
                padding: 0.64rem 0.86rem;
                min-height: 42px;
                border-radius: 999px;
            }
        }
    }
}

.dark-mode {
    .pill-tabs {
        background-color: var(--ncs-container-weak);

        .pill-tab {
            color: var(--text);
            background-color: transparent;

            &:hover:not([data-active]) {
                background-color: var(--ncs-container-weak);
            }

            &[data-active] {
                background-color: var(--background);
                color: var(--ncs-primary);
            }
        }
    }

    .pill-tabs-inverted {
        background-color: var(--background);

        .pill-tab[data-active] {
            background-color: var(--ncs-primary);
            color: var(--ncs-on-primary);
        }
    }
}

.pill-tab-label-short {
    display: none;
}

@media (max-width: 991px) {
    .pill-tab .pill-tab-label {
        display: none;
    }

    .pill-tab .pill-tab-label-short {
        display: inline;
    }
}

@media (prefers-reduced-motion: reduce) {
  .pill-tabs .pill-tab {
    transition-property: background-color, color, opacity;
  }

  .pill-tabs .pill-tab::after {
    transition: none;
  }
}
