/* Shared V3 status and tab contracts. Feature styles may position these components only. */
.v3-status-badge,
mark.v3-status-badge,
span.v3-status-badge {
    --v3-status-tone: var(--v3-neutral-foreground);
    --v3-status-icon: var(--v3-neutral-grey);
    --v3-status-border: var(--v3-neutral-border);
    --v3-status-fill: transparent;
    max-width: 100%;
    min-height: 26px;
    display: inline-flex;
    align-items: center;
    gap: var(--v3-space-1);
    border: 1px solid var(--v3-status-border);
    border-radius: calc(var(--v3-radius-sm) - var(--v3-space-1));
    color: var(--v3-status-tone);
    background: var(--v3-status-fill);
    padding: 3px var(--v3-space-2);
    font-family: var(--v3-font-body);
    font-size: var(--v3-type-caption);
    font-style: normal;
    font-weight: var(--v3-weight-strong);
    letter-spacing: normal;
    line-height: 1.25;
    text-decoration: none;
    text-transform: none;
    white-space: normal;
}

.v3-status-badge.v3-status-badge--compact {
    min-height: 24px;
    padding-block: 2px;
    font-size: var(--v3-type-caption);
}

.v3-status-badge > .v3-icon {
    flex: 0 0 auto;
    align-self: center;
    font-size: 0.95em;
    line-height: 1;
    color: var(--v3-status-icon);
}

.v3-status-badge > span,
.v3-status-badge > em {
    min-width: 0;
    overflow-wrap: anywhere;
}

.v3-status-badge > em {
    display: inline-flex;
    align-items: center;
    color: currentColor;
    margin: 0;
    font-size: inherit;
    font-style: normal;
    font-weight: var(--v3-weight-medium);
    line-height: inherit;
    opacity: 0.82;
}

.v3-status-badge > em::before {
    content: "\00b7";
    margin-right: var(--v3-space-1);
    opacity: 0.72;
}

.v3-status-badge.v3-status-badge--positive,
.v3-status-badge.v3-status-badge--good,
.v3-status-badge.v3-status-badge--green,
.v3-status-badge.v3-status-badge--above,
.v3-status-badge.v3-status-badge--in,
.v3-status-badge.v3-status-badge--available,
.v3-status-badge.v3-status-badge--complete {
    --v3-status-tone: var(--v3-success-foreground);
    --v3-status-icon: var(--v3-athletic-green);
    --v3-status-border: var(--v3-success-border);
    --v3-status-fill: transparent;
}

.v3-status-badge.v3-status-badge--warning,
.v3-status-badge.v3-status-badge--watch,
.v3-status-badge.v3-status-badge--amber,
.v3-status-badge.v3-status-badge--orange,
.v3-status-badge.v3-status-badge--below,
.v3-status-badge.v3-status-badge--excused,
.v3-status-badge.v3-status-badge--sick {
    --v3-status-tone: var(--v3-warning-foreground);
    --v3-status-icon: var(--v3-warning-orange);
    --v3-status-border: var(--v3-warning-border);
    --v3-status-fill: transparent;
}

.v3-status-badge.v3-status-badge--danger,
.v3-status-badge.v3-status-badge--concern,
.v3-status-badge.v3-status-badge--red,
.v3-status-badge.v3-status-badge--critical,
.v3-status-badge.v3-status-badge--unavailable,
.v3-status-badge.v3-status-badge--injured {
    --v3-status-tone: var(--v3-danger-foreground);
    --v3-status-icon: var(--v3-danger-red);
    --v3-status-border: var(--v3-danger-border);
    --v3-status-fill: transparent;
}

.v3-status-badge.v3-status-badge--info,
.v3-status-badge.v3-status-badge--blue {
    --v3-status-tone: var(--v3-signal-blue);
    --v3-status-icon: var(--v3-signal-blue);
    --v3-status-border: color-mix(in oklch, var(--v3-signal-blue) 58%, transparent);
    --v3-status-fill: color-mix(in oklch, var(--v3-signal-blue) 10%, transparent);
}

.v3-status-badge.v3-status-badge--neutral,
.v3-status-badge.v3-status-badge--missing,
.v3-status-badge.v3-status-badge--empty,
.v3-status-badge.v3-status-badge--none,
.v3-status-badge.v3-status-badge--withdrawn {
    --v3-status-tone: var(--v3-neutral-foreground);
    --v3-status-icon: var(--v3-neutral-grey);
    --v3-status-border: var(--v3-neutral-border);
    --v3-status-fill: transparent;
}

.v3-tab-list {
    min-width: 0;
    display: flex;
    align-items: stretch;
}

.v3-tab,
.v3-tab-list > .v3-tab {
    min-width: 0;
    min-height: var(--v3-control-standard);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--v3-space-2);
    border: 0;
    color: var(--v3-app-muted, var(--v3-athlete-muted, var(--v3-text-muted)));
    background: transparent;
    padding: 0 var(--v3-space-3);
    font-family: var(--v3-font-body);
    font-size: var(--v3-type-label);
    font-weight: var(--v3-weight-heavy);
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition:
        color var(--v3-transition),
        background var(--v3-transition),
        border-color var(--v3-transition),
        box-shadow var(--v3-transition);
}

.v3-tab:hover:not(:disabled):not([aria-disabled="true"]),
.v3-tab-list > .v3-tab:hover:not(:disabled):not([aria-disabled="true"]) {
    color: var(--v3-app-text, var(--v3-athlete-text, var(--v3-text)));
}

.v3-tab[aria-selected="true"],
.v3-tab[aria-current="page"],
.v3-tab.is-active,
.v3-tab-list > .v3-tab[aria-selected="true"],
.v3-tab-list > .v3-tab[aria-current="page"],
.v3-tab-list > .v3-tab.is-active {
    color: var(--v3-accent-foreground);
}

.v3-tab:focus-visible,
.v3-tab-list > .v3-tab:focus-visible {
    z-index: 1;
    outline: none;
    box-shadow: var(--v3-focus-ring);
}

.v3-tab:active:not(:disabled):not([aria-disabled="true"]),
.v3-tab-list > .v3-tab:active:not(:disabled):not([aria-disabled="true"]) {
    background: transparent;
}

.v3-tab:disabled,
.v3-tab[aria-disabled="true"],
.v3-tab-list > .v3-tab:disabled,
.v3-tab-list > .v3-tab[aria-disabled="true"] {
    opacity: 0.52;
    cursor: not-allowed;
}

.v3-tab[hidden] {
    display: none;
}

.v3-tab > em {
    min-width: 20px;
    min-height: 20px;
    display: inline-grid;
    place-items: center;
    border-radius: calc(var(--v3-radius-sm) - var(--v3-space-1));
    color: var(--v3-app-text, var(--v3-athlete-text, var(--v3-text)));
    background: var(--v3-app-panel-muted, var(--v3-athlete-panel-soft, var(--v3-surface-soft)));
    padding-inline: var(--v3-space-1);
    font-size: var(--v3-type-caption);
    font-style: normal;
    font-weight: var(--v3-weight-strong);
    line-height: 1;
}

.v3-tab > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.v3-tab-list--underline {
    align-items: end;
    gap: var(--v3-space-5);
    border-bottom: 1px solid var(--v3-app-border, var(--v3-athlete-border, var(--v3-border)));
}

.v3-tab-list--underline .v3-tab {
    position: relative;
    min-height: var(--v3-control-standard);
    border: 0;
    border-radius: 0;
    padding-inline: 0;
}

.v3-tab-list--underline .v3-tab::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    border-radius: var(--v3-radius-pill);
    background: transparent;
}

.v3-tab-list--underline .v3-tab[aria-selected="true"]::after,
.v3-tab-list--underline .v3-tab[aria-current="page"]::after,
.v3-tab-list--underline .v3-tab.is-active::after {
    background: var(--v3-accent-border);
}

.v3-tab-list--segmented {
    gap: var(--v3-space-1);
    border: 1px solid var(--v3-app-border, var(--v3-athlete-border, var(--v3-border)));
    border-radius: var(--v3-radius-sm);
    background: var(--v3-app-panel-soft, var(--v3-athlete-panel-soft, var(--v3-surface-soft)));
    padding: var(--v3-space-1);
}

.v3-tab-list--segmented .v3-tab {
    border-radius: calc(var(--v3-radius-sm) - var(--v3-space-1));
}

.v3-tab-list--segmented .v3-tab[aria-selected="true"],
.v3-tab-list--segmented .v3-tab[aria-current="page"],
.v3-tab-list--segmented .v3-tab.is-active {
    color: var(--v3-app-text, var(--v3-athlete-text, var(--v3-text)));
    background: var(--v3-app-panel, var(--v3-athlete-panel, var(--v3-surface)));
    box-shadow: var(--v3-shadow-border);
}

.v3-tab-list--segmented .v3-tab::after {
    content: none;
}

.v3-tab-list--equal > .v3-tab {
    flex: 1 1 0;
    white-space: normal;
}

.v3-tab-list--compact .v3-tab {
    min-height: var(--v3-control-compact);
    padding-inline: var(--v3-space-2);
    font-size: var(--v3-type-caption);
}

.v3-tab-list--scroll {
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    scroll-padding-inline: var(--v3-space-4);
    touch-action: pan-x;
    -webkit-overflow-scrolling: touch;
}

.v3-tab-list--scroll::-webkit-scrollbar {
    display: none;
}

.v3-tab-list--scroll > .v3-tab {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

@media (max-width: 680px) {
    .v3-tab-list .v3-tab,
    .v3-tab-list--compact .v3-tab {
        min-height: var(--v3-control-phone);
    }
}

@media (prefers-reduced-motion: reduce) {
    .v3-tab {
        transition: none;
    }
}
