/* src/MonolithAccessControl.Central.Admin.Client/wwwroot/css/grid-layout.css */
.mac-grid-workspace { position: relative; min-width: 0; min-height: 0; display: flex; flex-direction: column; flex: 1 1 auto; }
.mac-grid-workspace[aria-busy="true"] > :not(.mac-grid-restoring-status) { visibility: hidden; pointer-events: none; }
.mac-grid-restoring-status { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; color: var(--mud-palette-text-secondary); background: var(--mud-palette-surface); border-radius: 8px; }
.mac-grid-workspace > :is(.mud-table,.edge-admin-mud-table-wrap,.central-table-wrap) { min-height: 0; display: flex; flex-direction: column; flex: 1 1 auto; }
.mac-grid-workspace .mud-table-container { min-height: 0; flex: 1 1 auto; }
.mac-grid-workspace .mud-table-container:has(.mud-table-empty-row) { display: grid !important; grid-template-rows: minmax(0, 1fr); }
.mac-grid-workspace .mac-persistent-table:has(.mud-table-empty-row) { display: flex; flex-direction: column; min-height: 100%; }
.mac-grid-workspace .mac-persistent-table:has(.mud-table-empty-row) > thead { flex: 0 0 auto; }
.mac-grid-workspace .mac-persistent-table:has(.mud-table-empty-row) > tbody { flex: 1 1 auto; height: auto !important; display: flex; flex-direction: column; }
.mac-grid-workspace .mac-persistent-table tr:has(.mud-table-empty-row) { flex: 1 1 auto; height: auto !important; }
.mac-grid-workspace .mac-persistent-table .mud-table-empty-row { display: flex; align-items: stretch; padding: 0 !important; }
.mac-grid-workspace .mac-persistent-table .mud-table-empty-row > div { display: flex; flex: 1 1 auto; align-items: stretch; margin: 0 !important; }
.mac-grid-workspace .mac-persistent-table .mud-table-empty-row :is(.edge-grid-empty-state,.central-empty-state) { height: auto !important; flex: 1 1 auto; }
.mac-persistent-table { display: block; width: var(--mac-grid-width); min-width: 100%; }
.mac-persistent-table > :is(thead,tbody,tfoot) { display: block; }
.mac-persistent-table > :is(thead,tbody,tfoot) > tr { display: grid !important; grid-template-columns: var(--mac-grid-columns); min-width: 100%; }
.mac-persistent-table > :is(thead,tbody,tfoot) > tr > :is(th,td) { box-sizing: border-box; width: auto !important; min-width: 0 !important; max-width: none !important; overflow: hidden; }
.mac-persistent-table thead { position: sticky; top: 0; z-index: 2; background: var(--mud-palette-surface); }
.mac-grid-column-header { display: flex; width: 100%; min-width: 0; gap: 4px; align-items: center; padding-inline-end: 8px; font: inherit; }
.mac-grid-column-header > .mac-grid-header-tooltip { display: flex; flex: 1 1 auto; min-width: 0; }
.mac-persistent-table th:has(.mac-grid-column-header) { position: relative; }
.mac-grid-column-header > .mud-tooltip-root:has(> .mac-grid-resize) { position: absolute; inset-inline-end: 0; top: 0; bottom: 0; display: flex; align-items: center; width: 8px; margin: 0; padding: 0; }
.mac-grid-sort { display: flex; align-items: center; justify-content: space-between; gap: 4px; min-width: 0; flex: 1 1 auto; text-align: start; }
.mac-grid-sort > span:first-child,.mac-grid-column-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mac-grid-header-action { display: flex; align-items: center; justify-content: space-between; width: 100%; min-width: 0; gap: 4px; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: start; cursor: grab; min-height: 28px; }
.mac-grid-dragging { opacity: .55; }
.mac-grid-sort-indicator { color: var(--mud-palette-primary); width: 12px; flex: 0 0 12px; }

/* The insertion edge matches the saved visual column order in both UI projects. */
.mac-persistent-table th[data-grid-drop-edge]::after {
    content: "";
    position: absolute;
    top: 2px;
    bottom: 2px;
    width: 8px;
    z-index: 3;
    pointer-events: none;
    color: var(--mud-palette-primary);
    background: linear-gradient(currentColor, currentColor) center / 3px 100% no-repeat,
                linear-gradient(currentColor, currentColor) top / 8px 3px no-repeat,
                linear-gradient(currentColor, currentColor) bottom / 8px 3px no-repeat;
}
.mac-persistent-table th[data-grid-drop-edge="before"]::after { inset-inline-start: 0; }
.mac-persistent-table th[data-grid-drop-edge="after"]::after { inset-inline-end: 0; }
@media (forced-colors: active) {
    .mac-persistent-table th[data-grid-drop-edge]::after { forced-color-adjust: none; color: Highlight; }
}
.mac-grid-column-header button:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: 1px; border-radius: 4px; }
.mac-grid-resize { display: block; box-sizing: border-box; width: 8px; height: 28px; cursor: col-resize; touch-action: none; border-inline-end: 1px solid var(--mud-palette-divider); }
.mac-grid-resize:focus { outline: none; }
.mac-grid-resize:focus-visible { border-inline-end: 3px solid var(--mud-palette-primary); }
@media (forced-colors: active) {
    .mac-grid-resize:focus-visible { forced-color-adjust: none; border-inline-end-color: Highlight; }
}
.mac-grid-layout-status { display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 6px 8px; color: var(--mud-palette-warning-darken); background: var(--mud-palette-surface); font-size: .75rem; }
.mac-grid-layout-status button { border: 1px solid var(--mud-palette-divider); border-radius: 8px; background: var(--mud-palette-surface); color: var(--mud-palette-primary); min-height: 32px; padding: 4px 8px; }

.mac-grid-tooltip { pointer-events: none; max-width: min(240px, calc(100vw - 16px)); white-space: normal; overflow-wrap: anywhere; }
.mac-grid-tooltip:not(.mud-popover-open) { display: none !important; }

.mac-grid-workspace:has(> .mac-persistent-table) { overflow: auto; }
.mac-grid-workspace > .mac-persistent-table { width: var(--mac-grid-width) !important; }

/* Persisted columns keep their headers and horizontal table flow on narrow screens. */
.mac-grid-workspace .mac-persistent-table > :is(thead,tbody,tfoot) > tr > :is(th,td)::before { content: none !important; }
.mac-grid-workspace .mud-table-smalldevices-sortselect { display: none !important; }

/* Selection follows the visual column index without changing Blazor-owned DOM order. */
table > tbody > tr > :is(td,th) { --mac-grid-selection-inset: 0px; }
table > tbody > tr > :is(td,th):is([aria-colindex="1"],:first-child:not([aria-colindex])) { --mac-grid-selection-inset: 3px; }
/* A reused spanning detail cell can retain its previous accessibility column index. */
table > tbody > tr:has(> [colspan]:not([colspan="1"])) > :is(td,th) { --mac-grid-selection-inset: 0px; }
table > tbody > tr:has(> [colspan]:not([colspan="1"])) > :is(td,th):first-child { --mac-grid-selection-inset: 3px; }

/* Grid cells retain full-row backgrounds while their contents align centrally. */
table > :is(thead,tbody,tfoot) > tr > :is(td,th) { vertical-align: middle !important; }
.mac-grid-workspace .mac-persistent-table > :is(thead,tbody,tfoot) > tr > :is(td,th) { align-content: center; }
.mac-grid-workspace .mac-persistent-table.mac-grid-empty { width: 100% !important; min-width: 0 !important; display: flex; flex-direction: column; flex: 1 1 auto; }
.mac-grid-empty > thead { flex: 0 0 auto; }
.mac-grid-empty > tbody { display: flex; flex-direction: column; flex: 1 1 auto; }
.mac-grid-empty > tbody > tr { flex: 1 1 auto; }
.mac-grid-empty > tbody > tr > :is(td,th) { display: flex; align-items: stretch; padding: 0 !important; }
.mac-grid-empty > tbody > tr > :is(td,th) > div { display: flex; flex-direction: column; flex: 1 1 auto; margin: 0 !important; }
.mac-grid-empty :is(.edge-grid-empty-state,.central-standard-empty-state) { flex: 1 1 auto; height: auto !important; }
.mac-grid-workspace:has(.mac-grid-empty),.mac-grid-workspace .mud-table-container:has(.mac-grid-empty) { overflow-x: hidden; }

/* Central list headers use the release catalog's typography and semantic surfaces. */
:root {
    --central-grid-header-height: 34px;
    --central-grid-header-padding-inline: 12px;
}
#app .mac-main .mac-grid-workspace table > thead > tr > th:has(.mac-grid-column-header),
#app .mac-main .central-grid-editor table > thead > tr > th,
#app .mac-main table.central-grid-editor > thead > tr > th {
    min-height: var(--central-grid-header-height) !important;
    height: var(--central-grid-header-height) !important;
    padding: 0 var(--central-grid-header-padding-inline) !important;
    border-bottom: 1px solid var(--central-card-divider);
    color: var(--central-control-muted) !important;
    background: var(--central-control-surface-soft) !important;
    font-family: var(--central-grid-font-family) !important;
    font-size: var(--central-grid-header-font-size) !important;
    font-weight: var(--central-grid-header-font-weight) !important;
    line-height: 1.4 !important;
    letter-spacing: normal !important;
    text-align: start !important;
    text-transform: none !important;
}
#app .mac-main .mac-grid-workspace table > thead > tr {
    height: var(--central-grid-header-height) !important;
    min-height: var(--central-grid-header-height) !important;
}
.mac-grid-header-action:active { cursor: grabbing; }
.mac-grid-header-action { user-select: none; }

#app .mac-main .mac-grid-column-header,
#app .mac-main .mac-grid-column-header :is(button, span, div) {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;
    text-transform: none !important;
}
