/* src/MonolithAccessControl.Central.Admin.Client/wwwroot/css/segmented-tabs.css */

/* Central uses unboxed A2 segments with the shared button dimensions. */
:root {
    --mac-tab-height: 44px;
    --mac-tab-compact-height: 34px;
    --mac-tab-gap: 2px;
    --mac-tab-content-gap: 4px;
    --mac-tab-radius: 8px;
    --central-tab-gap: var(--mac-tab-gap);
    --central-tab-radius: var(--mac-tab-radius);
    --edge-tab-gap: var(--mac-tab-gap);
}

.mac-segmented-tabs {
    --mac-tab-size: var(--mac-tab-height);
    --mac-tab-accent: var(--mud-palette-primary);
    --mac-tab-surface: var(--mud-palette-surface);
    --mac-tab-ink: var(--mud-palette-text-primary);
    --mac-tab-muted: var(--mud-palette-text-secondary);
    --mac-tab-rail: color-mix(in srgb, var(--mud-palette-primary) 4%, var(--mud-palette-surface));
    --mac-tab-border: color-mix(in srgb, var(--mud-palette-primary) 15%, var(--mud-palette-lines-default));
    --mac-tab-selected-border: color-mix(in srgb, var(--mud-palette-primary) 38%, var(--mud-palette-lines-default));
    --mac-tab-hover: color-mix(in srgb, var(--mud-palette-primary) 5%, var(--mud-palette-surface));
    --mac-tab-soft: color-mix(in srgb, var(--mud-palette-primary) 10%, var(--mud-palette-surface));
    min-width: 0;
    max-width: 100%;
}

:is(.theme-dark, [data-theme="dark"]) .mac-segmented-tabs {
    --mac-tab-accent: color-mix(in srgb, var(--mud-palette-primary) 58%, white);
    --mac-tab-surface: color-mix(in srgb, var(--mud-palette-primary) 12%, var(--mud-palette-surface));
    --mac-tab-rail: color-mix(in srgb, var(--mud-palette-primary) 5%, var(--mud-palette-background));
    --mac-tab-selected-border: color-mix(in srgb, var(--mac-tab-accent) 42%, var(--mud-palette-lines-default));
    --mac-tab-soft: color-mix(in srgb, var(--mud-palette-primary) 22%, var(--mud-palette-surface));
}

.mac-segmented-tabs.mac-segmented-tabs--compact {
    --mac-tab-size: var(--mac-tab-compact-height);
}

/* The repeated class wins over legacy page rules without changing content panels. */
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs:not(.mud-tabs),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--mac-tab-gap) !important;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs:not(.mud-tabs) {
    flex: 0 1 auto;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--mac-tab-border) transparent;
    scroll-padding-inline: 4px;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact:not(.mud-tabs),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > .mud-tabs-tabbar {
    width: fit-content;
    padding: 0 !important;
}

/* Wrapping is opt-in for short quick-filter groups that must remain fully visible. */
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs.mac-segmented-tabs--wrap:not(.mud-tabs) {
    flex-wrap: wrap !important;
    overflow: visible;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar {
    flex: 0 0 auto;
    margin-bottom: var(--mac-tab-content-gap) !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tabs-tabbar-inner {
    min-width: 0;
    min-height: 0 !important;
    width: 100%;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tabs-tabbar-wrapper {
    gap: var(--mac-tab-gap) !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    align-items: center;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab {
    box-sizing: border-box;
    position: relative;
    display: inline-flex;
    flex: 0 0 auto !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    height: var(--mac-tab-size) !important;
    min-height: var(--mac-tab-size) !important;
    margin: 0 !important;
    padding: 0 16px 0 20px !important;
    border: 1px solid transparent !important;
    border-radius: var(--mac-tab-radius) !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--mac-tab-muted) !important;
    font-family: inherit;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 20px !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none;
    white-space: nowrap !important;
    cursor: pointer;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a):is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab:is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]) {
    border-color: var(--mac-tab-selected-border) !important;
    background: var(--mac-tab-surface) !important;
    color: var(--mac-tab-accent) !important;
    font-weight: 600 !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a):is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"])::before,
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab:is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"])::before {
    content: "";
    position: absolute;
    inset-inline-start: 7px;
    top: 50%;
    width: 3px;
    height: 20px;
    border-radius: 3px;
    background: var(--mac-tab-accent);
    transform: translateY(-50%);
    pointer-events: none;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > :is(button, a),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > .mud-tabs-tabbar .mud-tab {
    padding-inline: 12px !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > :is(button, a):is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > .mud-tabs-tabbar .mud-tab:is(.active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]) {
    background: var(--mac-tab-soft) !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > :is(button, a)::before,
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs--compact > .mud-tabs-tabbar .mud-tab::before {
    content: none !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a):hover:not(:disabled, .mud-disabled, [aria-disabled="true"], .active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab:hover:not(:disabled, .mud-disabled, [aria-disabled="true"], .active, .mud-tab-active, [aria-selected="true"], [aria-current="page"]) {
    background: var(--mac-tab-hover) !important;
    border-color: var(--mac-tab-border) !important;
    color: var(--mac-tab-ink) !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a):focus-visible,
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab:focus-visible {
    outline: 2px solid var(--mac-tab-accent) !important;
    outline-offset: -3px !important;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a):is(:disabled, .mud-disabled, [aria-disabled="true"]),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab:is(:disabled, .mud-disabled, [aria-disabled="true"]) {
    opacity: .45;
    cursor: default;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a) .mud-icon-root,
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab .mud-icon-root {
    flex: 0 0 auto;
    width: 16px !important;
    height: 16px !important;
    font-size: 16px !important;
    color: inherit;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > :is(button, a) :is(.central-statistics-tab-count, .edge-statistics-tab-count, .approval-quick-filter-count),
:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab :is(.central-statistics-tab-count, .edge-statistics-tab-count, .approval-quick-filter-count) {
    flex: 0 0 auto;
    min-width: 18px;
    padding: 0 5px;
    border: 0;
    border-radius: 8px;
    background: var(--mac-tab-soft);
    color: inherit;
    font-size: 10px;
    font-weight: 500;
    line-height: 18px;
}

:is(#app, .mud-dialog) .mac-segmented-tabs.mac-segmented-tabs > .mud-tabs-tabbar .mud-tab-slider {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .mac-segmented-tabs > :is(button, a),
    .mac-segmented-tabs > .mud-tabs-tabbar .mud-tab { transition: none !important; }
}

@media (forced-colors: active) {
    .mac-segmented-tabs { --mac-tab-accent: Highlight; --mac-tab-selected-border: Highlight; }
}
