.odata-grid-search {
    width: 180px;
    min-width: 180px;
    transition: width 0.2s ease, min-width 0.2s ease;
}

.odata-grid-search:focus-within {
    width: 320px;
    min-width: 320px;
}

/* Header hover: keep layout stable, move title upward, and fade actions into the title slot. */
.odata-grid-host {
    --odata-grid-header-hover-height: 40px;
    --odata-grid-header-title-scale: 0.7;
    --odata-grid-header-title-shift: -20px;
    --odata-grid-header-actions-shift: 6px;
    position: relative;
}

.odata-grid-load-error {
    position: absolute;
    z-index: 20;
    top: 8px;
    left: 8px;
    right: 8px;
}

.odata-grid-loading-overlay {
    background-color: color-mix(in srgb, var(--mud-palette-surface) 18%, transparent) !important;
}

.odata-grid-loading-overlay .mud-overlay-content {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.odata-grid-host .odata-grid-surface .mud-table-head th {
    --odata-grid-header-inline-align: flex-start;
    --odata-grid-header-title-margin-left: 0;
    --odata-grid-header-title-margin-right: 0;
    --odata-grid-header-actions-left: 0;
    --odata-grid-header-actions-right: auto;
    --odata-grid-header-title-origin: left center;
    position: sticky !important;
    top: 0;
    z-index: 6 !important;
    background-color: var(--mud-palette-surface) !important;
    background-clip: padding-box;
    box-shadow: 0 1px 0 color-mix(in oklab, var(--mud-palette-lines-default) 72%, transparent);
}

.odata-grid-host .odata-grid-surface .mud-table-head {
    position: relative;
    z-index: 6;
    isolation: isolate;
}

.odata-grid-host .odata-grid-surface .mud-table-head th.mud-table-cell-align-center,
.odata-grid-host .odata-grid-surface .mud-table-head th.odata-col-action-header {
    --odata-grid-header-inline-align: center;
    --odata-grid-header-title-margin-left: auto;
    --odata-grid-header-title-margin-right: auto;
    --odata-grid-header-actions-left: 0;
    --odata-grid-header-actions-right: 0;
    --odata-grid-header-title-origin: center center;
}

.odata-grid-host .odata-grid-surface .mud-table-head th.mud-table-cell-align-right {
    --odata-grid-header-inline-align: flex-end;
    --odata-grid-header-title-margin-left: auto;
    --odata-grid-header-title-margin-right: 0;
    --odata-grid-header-actions-left: auto;
    --odata-grid-header-actions-right: 0;
    --odata-grid-header-title-origin: right center;
}

.odata-grid-host .odata-grid-surface .mud-table-head th .column-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--odata-grid-header-hover-height);
}

.odata-grid-host .odata-grid-surface .mud-table-head th .column-header .sortable-column-header {
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-height: var(--odata-grid-header-hover-height);
    max-width: 100%;
    justify-content: inherit;
    text-align: inherit;
    transform-origin: left center;
    transition: transform 0.16s ease, opacity 0.16s ease;
}

.odata-grid-host .odata-grid-surface .mud-table-head .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-head .mud-table-cell *,
.odata-grid-host .odata-grid-surface .mud-table-head th .column-header,
.odata-grid-host .odata-grid-surface .mud-table-head th .sortable-column-header {
    font-weight: 600;
}

.odata-grid-host .odata-grid-surface .mud-table-head th .column-header .column-options {
    position: absolute;
    left: var(--odata-grid-header-actions-left);
    right: var(--odata-grid-header-actions-right);
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(-50% + var(--odata-grid-header-actions-shift)));
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.odata-grid-host .odata-grid-surface .mud-table-head th:hover .column-header .sortable-column-header,
.odata-grid-host .odata-grid-surface .mud-table-head th:has(.column-options :focus-visible) .column-header .sortable-column-header {
    width: fit-content;
    max-width: 100%;
    margin-left: var(--odata-grid-header-title-margin-left);
    margin-right: var(--odata-grid-header-title-margin-right);
    justify-content: center;
    text-align: center;
    transform-origin: var(--odata-grid-header-title-origin);
    transform: translateY(var(--odata-grid-header-title-shift)) scale(var(--odata-grid-header-title-scale));
    opacity: 0.92;
}

.odata-grid-host .odata-grid-surface .mud-table-head th:hover .column-header .column-options,
.odata-grid-host .odata-grid-surface .mud-table-head th:has(.column-options :focus-visible) .column-header .column-options {
    justify-content: center;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%);
}

/* MudDataGrid renders its built-in settings menu after ToolBarContent. */
.odata-grid-host .odata-grid-surface > .mud-table-toolbar > .mud-menu {
    position: relative;
    margin-left: 8px;
    padding-left: 12px;
}

.odata-grid-host .odata-grid-surface > .mud-table-toolbar > .mud-menu::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 20px;
    background: color-mix(in oklab, var(--mud-palette-lines-default) 78%, transparent);
    transform: translateY(-50%);
}

/* MudBlazor exposes applied state on the filter and sort icons in each header. */
.odata-grid-host .odata-grid-surface .mud-table-head th:has(.filter-button.filtered) .sortable-column-header,
.odata-grid-host .odata-grid-surface .mud-table-head th:has(.sort-direction-icon.mud-direction-asc) .sortable-column-header,
.odata-grid-host .odata-grid-surface .mud-table-head th:has(.sort-direction-icon.mud-direction-desc) .sortable-column-header {
    color: var(--mud-palette-primary) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-head th.odata-grid-column-grouped .sortable-column-header {
    color: var(--mud-palette-primary) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-head th .filter-button.filtered,
.odata-grid-host .odata-grid-surface .mud-table-head th .sort-direction-icon.mud-direction-asc,
.odata-grid-host .odata-grid-surface .mud-table-head th .sort-direction-icon.mud-direction-desc {
    color: var(--mud-palette-primary) !important;
}

/* Keep button text unchanged; tint only toolbar button icons. */
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button .mud-button-label,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-button-label {
    color: inherit !important;
}

.odata-grid-toolbar-actions,
.odata-grid-toolbar-slot,
.odata-grid-file-actions,
.odata-grid-file-actions__menu,
.odata-grid-file-actions__menu > .mud-menu-activator {
    display: inline-flex;
    align-items: center;
}

.odata-grid-file-actions {
    gap: 4px;
}

.odata-grid-toolbar-actions-host .odata-grid-toolbar-button.mud-button-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-button-root {
    height: 32px;
    min-height: 32px;
    margin: 0;
    padding-block: 0;
    align-items: center;
    line-height: 32px;
}

.odata-grid-toolbar-actions-host .odata-grid-toolbar-button .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button .material-icons,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-button-root .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-icon-button .mud-icon-root {
    color: var(--mud-palette-text-secondary) !important;
    width: 20px;
    height: 20px;
    font-size: 20px;
}

.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger .material-icons {
    color: var(--mud-palette-error) !important;
}

.odata-grid-toolbar-actions-host .odata-grid-toolbar-button:hover .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button:focus-visible .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button:hover .material-icons,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button:focus-visible .material-icons,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-button-root:hover .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-button-root:focus-visible .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-icon-button:hover .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-slot .mud-icon-button:focus-visible .mud-icon-root {
    color: var(--mud-palette-text-primary) !important;
}

.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger:hover .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger:focus-visible .mud-icon-root,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger:hover .material-icons,
.odata-grid-toolbar-actions-host .odata-grid-toolbar-button--danger:focus-visible .material-icons {
    color: var(--mud-palette-error) !important;
}

.odata-grid-toolbar-icon {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0 !important;
    aspect-ratio: 1 / 1;
    border-radius: 999px !important;
    background-color: transparent !important;
    box-sizing: border-box;
}

.odata-grid-toolbar-icon:hover {
    background-color: var(--mud-palette-action-default-hover) !important;
}

.odata-grid-host {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
    padding: 2px;
    box-sizing: border-box;
}

/* Restore MudDataGrid's native elevation; the host application styles MudPaper globally. */
.odata-grid-host .odata-grid-surface.mud-paper {
    border: 0 !important;
    box-shadow: var(--mud-elevation-1) !important;
}

.odata-grid-host .mud-data-grid,
.odata-grid-host .odata-grid-surface,
.odata-grid-host .mud-table-container {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.odata-grid-host .mud-table-container {
    max-height: var(--odata-grid-max-height, min(60vh, 640px));
    overflow: auto;
    overscroll-behavior: contain;
    isolation: isolate;
}

/* Some pages provide filtering and refresh at the page level. In that case the
   grid toolbar is intentionally absent, while column filtering and paging stay available. */
.odata-grid-host--toolbar-hidden .odata-grid-surface > .mud-table-toolbar {
    display: none !important;
}

.odata-grid-host .mud-table-root {
    width: max-content;
    min-width: 100%;
}

/* Keep the pager at a stable bottom edge. The table body is the only scrolling region,
   so a short result set simply leaves usable whitespace instead of a redundant scrollbar. */
.odata-grid-host--fill-height .odata-grid-surface {
    height: var(--odata-grid-height, var(--odata-grid-max-height, min(60vh, 640px)));
    max-height: var(--odata-grid-max-height, min(60vh, 640px));
    display: flex;
    flex-direction: column;
}

.odata-grid-host--fill-height .odata-grid-surface > .mud-table-container {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-x: auto;
    overflow-y: auto;
}

.odata-grid-host--fill-height .odata-grid-surface > .mud-table-pagination {
    flex: 0 0 auto;
    margin-top: auto;
}

.odata-grid-host .mud-table-root .mud-table-head,
.odata-grid-host .mud-table-root .mud-table-body {
    width: 100%;
}

.odata-grid-host .odata-grid-surface .mud-table-body {
    position: relative;
    z-index: 0;
}

.odata-grid-host .mud-table-root:has(.mud-table-empty-row) table,
.odata-grid-host .mud-table-root:has(.mud-table-empty-row) .mud-table,
.odata-grid-host .mud-table-root:has(.mud-table-empty-row) .mud-table-container > table,
.odata-grid-host .mud-table-empty-row,
.odata-grid-host .mud-table-empty-row > td,
.odata-grid-host .mud-table-empty-row > .mud-table-cell {
    width: 100% !important;
    min-width: 100% !important;
}

.odata-grid-empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 240px;
    padding: 24px;
    box-sizing: border-box;
    text-align: center;
}

/* ODataGrid rows: component-scoped zebra striping via host + */
.odata-grid-host {
    --odata-grid-row-bg-odd: var(--mud-palette-surface);
    --odata-grid-row-bg-even: color-mix(in oklab, var(--mud-palette-surface) 86%, var(--mud-palette-lines-default) 14%);
    --odata-grid-row-bg-hover: var(--dashboard-nav-hover, color-mix(in oklab, var(--mud-palette-action-default-hover) 80%, var(--mud-palette-primary) 20%));
}

.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(odd),
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(odd) > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(odd) > td {
    background-color: var(--odata-grid-row-bg-odd) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(even),
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(even) > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:nth-of-type(even) > td {
    background-color: var(--odata-grid-row-bg-even) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:hover,
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:hover > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:hover > td {
    background-color: var(--odata-grid-row-bg-hover) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row > td {
    border-bottom-color: color-mix(in oklab, var(--mud-palette-lines-default) 70%, transparent) !important;
}

/* Keep action-column header centered across OData pages.
   MudDataGrid header text is wrapped by inner flex containers, so text-align alone is insufficient. */
.odata-grid-host th.odata-col-action-header {
    text-align: center !important;
    width: 1% !important;
    min-width: max-content !important;
    white-space: nowrap !important;
}

.odata-grid-host th.odata-col-action-header .column-header,
.odata-grid-host th.odata-col-action-header .mud-table-sort-label,
.odata-grid-host th.odata-col-action-header .mud-table-cell-wrapper {
    width: auto;
    justify-content: center !important;
    text-align: center !important;
}

.odata-grid-host td.odata-col-action-cell,
.odata-grid-host td.odata-col-action-cell > .mud-table-cell-wrapper {
    width: 1% !important;
    min-width: max-content !important;
    white-space: nowrap !important;
    text-align: center !important;
}

.odata-grid-host td.odata-col-action-cell .odata-grid-action-cell-content {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: auto;
    min-width: max-content;
    white-space: nowrap;
}

.odata-grid-host th.odata-col-action-header--sticky,
.odata-grid-host td.odata-col-action-cell--sticky {
    position: sticky !important;
    right: 0;
    z-index: 2;
}

.odata-grid-host th.odata-col-action-header--sticky {
    top: 0;
    z-index: 8 !important;
    background-color: var(--mud-palette-surface) !important;
    box-shadow: -1px 0 0 0 color-mix(in oklab, var(--mud-palette-lines-default) 70%, transparent);
}

.odata-grid-host td.odata-col-action-cell--sticky,
.odata-grid-host td.odata-col-action-cell--sticky > .mud-table-cell-wrapper {
    background-color: inherit !important;
    box-shadow: -1px 0 0 0 color-mix(in oklab, var(--mud-palette-lines-default) 70%, transparent);
}

.odata-grid-host td.odata-col-action-cell .mud-icon-button,
.odata-grid-host th .column-header .column-options .mud-icon-button {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0 !important;
    flex: 0 0 32px;
    aspect-ratio: 1 / 1;
    border-radius: 999px !important;
    box-sizing: border-box;
}

/* Group row: slightly stronger than zebra rows, still palette-native */
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row:has(.mud-table-row-expander),
.odata-grid-host .odata-grid-surface .mud-table-body .mud-table-row > td[colspan]:has(.mud-table-row-expander) {
    background-color: color-mix(in oklab, var(--mud-palette-surface) 84%, var(--mud-palette-primary) 16%) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active > td,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"],
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"] > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"] > td {
    background-color: color-mix(in oklab, var(--mud-palette-primary) 10%, var(--mud-palette-surface) 90%) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active > td:first-child,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"] > td:first-child {
    box-shadow: inset 4px 0 0 var(--mud-palette-primary) !important;
}

.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active:hover,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active:hover > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row.odata-grid-row-active:hover > td,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"]:hover,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"]:hover > .mud-table-cell,
.odata-grid-host .odata-grid-surface .mud-table-body > .mud-table-row[aria-selected="true"]:hover > td {
    background-color: color-mix(in oklab, var(--mud-palette-primary) 15%, var(--mud-palette-surface) 85%) !important;
}

.odata-grid-host--row-view .odata-grid-surface .mud-table-body .mud-table-row {
    cursor: pointer;
}

.odata-grid-host .odata-grid-surface .mud-table-pagination {
    padding: 0 !important;
}

/* ODataGrid hover-tip component */
.odata-grid-hover-tip-trigger {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.odata-grid-hover-tip-overlay {
    position: fixed;
    z-index: 1400;
    padding: 4px 8px;
    border-radius: 4px;
    border: none;
    background-color: var(--mud-palette-gray-darker, #616161);
    color: var(--mud-palette-dark-text, #fff);
    box-shadow: var(--mud-elevation-3, 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12));
    font-size: .75rem;
    line-height: 1.35;
    text-align: left;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    user-select: text;
    pointer-events: auto;
}

/* ODataGrid text-cell component */
.odata-grid-cell-ellipsis {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
}

.odata-grid-cell-max-lg {
    max-width: 32.5rem;
}


/* A grid page owns the remaining workspace height. Its headers and filters keep
   their natural size while the grid consumes the rest without page scrolling. */
.odata-grid-page {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100%;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.odata-grid-page > .odata-grid-host {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    --odata-grid-height: 100% !important;
    --odata-grid-max-height: 100% !important;
}

.odata-grid-page > .odata-grid-host > .odata-grid-surface,
.odata-grid-tabs .odata-grid-host > .odata-grid-surface {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0;
    overflow: hidden;
}

.odata-grid-page > .odata-grid-host > .odata-grid-surface > .mud-table-container,
.odata-grid-tabs .odata-grid-host > .odata-grid-surface > .mud-table-container {
    /* MudDataGrid writes its Height parameter onto this element. In a column
       flex layout that percentage must not also become the content-sized flex
       basis, otherwise changing 20 rows to 50 rows grows the whole page and a
       sticky table header can cover the tab bar. A zero basis makes this the
       only scrolling region while toolbar, tab bar and pager keep their size. */
    flex: 1 1 0;
    height: 0 !important;
    min-height: 0;
    max-height: none;
    overflow-x: auto;
    overflow-y: auto;
}

/* Shared tab-and-grid page shell. Consumers declare panels and grids only;
   spacing, height ownership and the visual seam stay consistent everywhere. */
.odata-grid-tab-page,
.odata-grid-tabs,
.odata-grid-tabs > .mud-tabs-panels,
.odata-grid-tabs > .mud-tabs-panels > .mud-tab-panel.mud-tab-panel-active:not(.mud-tab-panel-hidden) {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.odata-grid-tab-page--fill {
    height: 100%;
    max-height: 100%;
}

.odata-grid-tab-page:not(.odata-grid-tab-page--fill) {
    min-height: 480px;
}

.odata-grid-tabs > .mud-tabs-panels > .mud-tab-panel {
    gap: 0;
    margin: 0;
    padding: 0 !important;
}

.odata-grid-tabs > .mud-tabs-tabbar {
    overflow: hidden;
    border-top-left-radius: var(--mud-default-borderradius);
    border-top-right-radius: var(--mud-default-borderradius);
}

.odata-grid-tabs .odata-grid-host {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0 !important;
}

/* Complete the fixed-height chain through MudTabs. These explicit zero-basis
   flex items prevent hidden/active panel row content from participating in the
   page's intrinsic height when the page-size selector changes. */
.odata-grid-tab-page--fill > .odata-grid-tabs,
.odata-grid-tabs > .mud-tabs-panels,
.odata-grid-tabs > .mud-tabs-panels > .mud-tab-panel.mud-tab-panel-active:not(.mud-tab-panel-hidden) {
    height: 100%;
    max-height: 100%;
    min-height: 0;
    overflow: hidden;
}

.odata-grid-tabs > .mud-tabs-tabbar,
.odata-grid-host > .odata-grid-surface > .mud-table-toolbar,
.odata-grid-host > .odata-grid-surface > .mud-table-pagination {
    flex: 0 0 auto;
}

.odata-grid-tabs .odata-grid-host .odata-grid-surface.mud-paper {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    box-shadow: none !important;
}

.odata-grid-tabs > .mud-tabs-panels,
.odata-grid-tabs > .mud-tabs-panels > .mud-tab-panel,
.odata-grid-tabs .odata-grid-host,
.odata-grid-tabs .odata-grid-host .mud-data-grid,
.odata-grid-tabs .odata-grid-host .mud-table,
.odata-grid-tabs .odata-grid-host .mud-table-container,
.odata-grid-tabs .odata-grid-host .mud-table-root {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* When a host page does not own a full flex-height chain, keep every grid at the
   same viewport-aware working height instead of collapsing to its row content. */
.odata-grid-host--fill-height {
    min-height: min(var(--odata-grid-height, 360px), 100%);
}

.odata-grid-range-filter {
    min-width: 240px;
    padding: 8px;
}
