/* ===== Tabs Component ===== */

/* Container — column layout, token variables flow down */
.ui-tabs {
    display: flex;
    flex-direction: column;
}

.ui-tabs-surface {
    display: flex;
    flex-direction: column;
}

.ui-tabs-header,
.ui-tabs-body {
    position: relative;
}

/* TabList — horizontal row of tab triggers */
.ui-tablist {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--tabs-border);
    padding: 0;
    margin: 0;
}

/* Tab trigger — button-reset with token-driven colors */
.ui-tab {
    all: unset;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--tabs-background);
    color: var(--tabs-foreground);
    border: none;
    border-bottom: 2px solid transparent;
    padding: 10px 20px;
    font-family: inherit;
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    line-height: var(--font-lineheight-body);
    cursor: pointer;
    position: relative;
    bottom: -2px; /* overlap the tablist border */
    transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
    white-space: nowrap;
    user-select: none;
}

.ui-tab:hover {
    color: var(--tabs-foreground);
    background: color-mix(in srgb, var(--tabs-foreground) 3%, transparent);
}

.ui-tab:focus-visible {
    outline: 2px solid var(--tabs-focus-ring);
    outline-offset: 2px;
    border-radius: 4px 4px 0 0;
}

/* Active tab — indicator line + active colors */
.ui-tab.active {
    color: var(--tabs-foreground);
    border-bottom-color: var(--tabs-border);
    font-weight: var(--weight-semibold);
}

/* Panel — content area below the tab strip */
.ui-tabpanel {
    padding: 16px 0;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .ui-tab {
        transition: none;
    }
}

/* ===== Segmented Variant ===== */

.ui-tabs.variant-segmented {
    --tabs-horizontal-inset: 24px;
    --tabs-radius: 40px;
    --tabs-border-width: 1px;
}

.ui-tabs.variant-segmented .ui-tabs-surface {
    padding-left: var(--tabs-horizontal-inset);
    padding-right: var(--tabs-horizontal-inset);
}

.ui-tabs.variant-segmented .ui-tabs-header {
    position: relative;
    background: transparent;
    display: flex;
    align-items: flex-end;
    gap: 0;
    /* Keep overlap behavior scoped to the active tab. */
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0;
    z-index: 3;
}

.ui-tabs.variant-segmented .ui-tablist {
    display: flex;
    gap: 0;
    align-items: flex-end;
    isolation: isolate;
    padding: 0;
    padding-left: 0;
    margin: 0;
    margin-left: 0;
    border-bottom: none;
}

.ui-tabs.variant-segmented .ui-tab {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--tabs-tab-width, auto);
    min-height: 64px;
    padding: 12px 28px 12px 28px;
    background: var(--tabs-segmented-tab-background);
    border: var(--tabs-border-width) solid var(--tabs-segmented-tab-border);
    border-bottom: none;
    border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: 2px 0 0 var(--tabs-segmented-tab-shadow);
    color: var(--tabs-segmented-tab-foreground);
    font-size: var(--text-md);
    font-weight: var(--weight-regular);
    margin-right: calc(-1 * var(--tabs-border-width));
    margin-bottom: calc(-1 * var(--tabs-border-width));
    bottom: auto;
    z-index: 2;
    transition: none;
}

.ui-tabs.variant-segmented .ui-tab::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: var(--tabs-border-width);
    background: var(--tabs-segmented-tab-border);
    z-index: 1;
}

.ui-tabs.variant-segmented .ui-tab:hover {
    background: var(--tabs-segmented-tab-hover-background);
    color: var(--tabs-segmented-tab-hover-foreground);
    border-color: var(--tabs-segmented-tab-hover-border);
}

.ui-tabs.variant-segmented .ui-tab:active {
    background: var(--tabs-segmented-tab-pressed-background);
    color: var(--tabs-segmented-tab-pressed-foreground);
}

.ui-tabs.variant-segmented .ui-tab:has(+ .ui-tab.active) {
    box-shadow: none;
}

.ui-tabs.variant-segmented .ui-tab:has(+ .ui-tab.active)::before {
    content: "";
    position: absolute;
    top: 0;
    right: -2px;
    bottom: calc(var(--tabs-border-width) + 1px);
    width: calc(var(--tabs-radius) + 2px);
    border-top-right-radius: var(--tabs-radius);
    border-right: 2px solid var(--tabs-segmented-tab-shadow);
    clip-path: inset(0 0 calc(100% - var(--tabs-radius)) 0 round 0 var(--tabs-radius) 0 0);
    pointer-events: none;
    z-index: 3;
}

.ui-tabs.variant-segmented .ui-tab:focus-visible {
    border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;
}

.ui-tabs.variant-segmented .ui-tab:focus {
    outline: none;
}

.ui-tabs.variant-segmented .ui-tab[disabled] {
    background: var(--tabs-segmented-tab-disabled-background);
    color: var(--tabs-segmented-tab-disabled-foreground);
    border-color: var(--tabs-segmented-tab-disabled-border);
    cursor: not-allowed;
    opacity: 0.6;
}

.ui-tabs.variant-segmented .ui-tab.active {
    background: var(--tabs-segmented-tab-active-background);
    border-color: transparent;
    border-bottom: none;
    box-shadow: none;
    color: var(--tabs-segmented-tab-active-foreground);
    overflow: visible;
    z-index: 1;
}

.ui-tabs.variant-segmented .ui-tab.active::after {
    bottom: -1px;
    height: calc(var(--tabs-border-width) + 1px);
    background: var(--tabs-segmented-tab-active-background);
    z-index: 10;
}

.ui-tabs.variant-segmented .ui-tab.active::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: calc(var(--tabs-border-width) + 1px);
    left: 0;
    border: var(--tabs-border-width) solid var(--tabs-segmented-tab-active-border);
    border-bottom: none;
    border-radius: var(--tabs-radius) var(--tabs-radius) 0 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: 2px 0 0 var(--tabs-segmented-tab-active-shadow);
    pointer-events: none;
    z-index: 11;
}

.ui-tabs.variant-segmented .ui-tab.active:not(:first-child)::before {
    left: var(--tabs-border-width);
    border-left: none;
}

.ui-tabs.variant-segmented .ui-tabs-body {
    position: relative;
    background: var(--tabs-segmented-body-background);
    border: var(--tabs-border-width) solid var(--tabs-segmented-body-border);
    border-radius: var(--tabs-radius);
    border-top-left-radius: 0;
    box-shadow: 4px 4px 0 var(--tabs-segmented-body-shadow);
    padding: 56px 24px 24px 24px;
    margin-top: 0;
    z-index: 2;
}

.ui-tabs.variant-segmented .ui-tabpanel {
    padding: 0;
    background: transparent;
}
