/* /Components/Assignment/BillingTab.razor.rz.scp.css */
[b-v8jvshv1uo] .mud-tab {
    padding: 0 32px !important;
}
/* /Components/GridFilterSelect.razor.rz.scp.css */
/* Rows must stay exactly 40px tall: the dropdown list is virtualized with
   ItemSize="40", and any variable row height breaks Virtualize's spacer math. */
.grid-filter-select-item[b-94oraraytd] {
    height: 40px;
    align-items: center;
    box-sizing: border-box;
    overflow: hidden;
}

.grid-filter-select-item[b-94oraraytd]  .mud-input-control-boolean-input {
    flex: 1 1 auto;
    min-width: 0;
}

.grid-filter-select-item[b-94oraraytd]  .mud-checkbox {
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    margin: 0;
}

/* MudText renders its own markup, which does not receive this component's
   CSS isolation scope attribute, so it must be targeted through ::deep. */
.grid-filter-select-item[b-94oraraytd]  .grid-filter-select-item-text {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.25rem;
}

.grid-filter-select-item:hover[b-94oraraytd] {
    background-color: var(--mud-palette-action-default-hover);
}
/* /Components/SaveFiltersToolbar.razor.rz.scp.css */
/*
 * IMPORTANT: this component is placed inside various parent flex containers
 * (some MudStack Wrap="Wrap.Wrap", some Wrap="Wrap.NoWrap"). The flex-wrap
 * line-breaking algorithm decides whether an item fits on the current line
 * using its flex-basis size, evaluated *before* flex-shrink is applied.
 * Using "flex: 1 1 auto" (basis = auto = content width) means the browser
 * measures this row by the width of all its chips and, if that doesn't fit,
 * wraps the *entire row* onto a new line instead of shrinking it - which is
 * what pushed tabs/other controls down. Using flex-basis: 0 (see
 * .filters-toolbar-row and .chip-scroll-container below) makes the item's
 * "size" for wrapping purposes effectively 0, forcing it to shrink to the
 * remaining space and scroll horizontally instead of wrapping.
 */
.save-filters-toolbar[b-x1hs2q377b] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    width: auto;
    max-width: 100%;
}

/*
 * The named-filter dropdown, delete/edit icons, and "Add Filter" button are
 * rendered by <NamedFilterControls> as several top-level elements (no wrapper
 * of their own). Grouping them in this flex-none row keeps them snug next to
 * each other regardless of how much the chip row below grows/shrinks.
 */
.named-filter-controls[b-x1hs2q377b] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
}

.filters-toolbar-row[b-x1hs2q377b] {
    display: flex;
    align-items: center;
    gap: 0;
    flex: 1 1 0% !important;
    min-width: 0;
    overflow: hidden;
}

.chip-scroll-container[b-x1hs2q377b] {
    display: flex;
    flex-wrap: nowrap;
    flex: 1 1 0%;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    min-width: 0;
}

.chip-scroll-container[b-x1hs2q377b]::-webkit-scrollbar {
    display: none;
}
