/* ManagementDataTable: canonical table foundation for Management surfaces. */
.management-data-table {
  --management-surface: var(--appadel-surface-elevated);
  --management-surface-strong: var(--appadel-surface-interactive);
  --management-ink: var(--appadel-text-primary);
  --management-muted: var(--appadel-text-secondary);
  --management-border: var(--appadel-border-subtle);
  --management-accent: var(--appadel-brand-primary);
  --management-radius-control: var(--appadel-radius-control);
  --management-space-tight: var(--appadel-spacing-inline-tight);
  --management-space-control: var(--appadel-spacing-control-gap);
  --management-space-content: var(--appadel-spacing-content-gap);
  --management-data-table-block-padding: var(--management-space-tight);
  --management-data-table-inline-padding: var(--management-space-content);
  background: var(--management-surface);
  border: 1px solid var(--management-border);
  border-radius: var(--management-radius-control);
  color: var(--management-ink);
  container-type: inline-size;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.management-data-table:focus-visible {
  box-shadow: var(--appadel-interaction-focus-ring);
  outline: none;
}

.management-data-table__table {
  background: var(--management-surface);
  border-collapse: collapse;
  color: inherit;
  font-size: var(--appadel-typography-size-supporting);
  margin: 0;
  min-width: 760px;
  width: 100%;
}

.management-data-table--compact .management-data-table__table { min-width: 560px; }
.management-data-table--wide .management-data-table__table { min-width: 760px; }
.management-data-table--extra-wide .management-data-table__table { min-width: 960px; }
.management-data-table--analytical .management-data-table__table { min-width: 780px; }
.management-data-table--fit .management-data-table__table { min-width: 0; table-layout: fixed; }
.management-data-table--fit .management-data-table__cell--primary { min-width: 8rem; width: auto; }
.management-data-table--balanced-columns .management-data-table__cell { min-width: 0; }
.management-data-table--balanced-columns .management-data-table__cell--primary-compact { width: 7rem; }
.management-data-table--balanced-columns .management-data-table__cell--primary-medium { width: 8.5rem; }

.management-data-table--contained { overflow-x: hidden; }
.management-data-table--desktop-only { display: none; }
.management-data-table--mobile-only { display: block; }

.management-data-table__caption {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.management-data-table__cell {
  background: var(--management-surface);
  border-bottom: 1px solid var(--management-border);
  box-sizing: border-box;
  color: var(--management-ink);
  padding: var(--management-data-table-block-padding) var(--management-data-table-inline-padding);
  text-align: start;
  vertical-align: middle;
}

.management-data-table__head .management-data-table__cell {
  background: var(--management-surface-strong);
  color: var(--appadel-brand-primary);
  font-size: var(--appadel-typography-size-caption);
  font-weight: var(--appadel-typography-weight-heading);
  text-transform: uppercase;
  white-space: nowrap;
}

.management-data-table__body .management-data-table__row:last-child .management-data-table__cell { border-bottom: 0; }
.management-data-table__body .management-data-table__row:hover .management-data-table__cell { background: var(--management-surface-strong); }

.management-data-table__cell--primary { min-width: 12rem; width: 34%; }
.management-data-table__cell--text { min-width: 10rem; }
.management-data-table__cell--text-wide { min-width: 9rem; width: 9rem; }
.management-data-table__cell--text-extra-wide { min-width: 9.5rem; width: 9.5rem; }
.management-data-table__cell--narrow { min-width: 7rem; width: 7rem; }
.management-data-table__cell--short { min-width: 5.5rem; width: 5.5rem; }
.management-data-table__cell--metric { min-width: 5.5rem; width: 5.5rem; }
.management-data-table__cell--single-line { white-space: nowrap; }
.management-data-table__cell--numeric { font-variant-numeric: tabular-nums; text-align: center; }
.management-data-table__cell--compact { min-width: 4rem; width: 4rem; }
.management-data-table__cell--ultra-compact { min-width: 3.25rem; width: 3.25rem; }
.management-data-table__cell--metric-data { min-width: 60px; width: 60px; }
.management-data-table__cell--metric-dense { min-width: 52px; width: 52px; }
.management-data-table__cell--age { min-width: 54px; width: 54px; }
.management-data-table__cell--code { min-width: 88px; width: 88px; }
.management-data-table__cell--date { min-width: 108px; width: 108px; }
.management-data-table__cell--points { min-width: 84px; width: 84px; }
.management-data-table__cell--actions-standard { min-width: 156px; width: 156px; }
.management-data-table__cell--status,
.management-data-table__cell--actions { white-space: nowrap; }
.management-data-table__cell--actions { text-align: end; }

.management-data-table__ellipsis {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.management-data-table__equal-parts {
  align-items: center;
  display: flex;
  min-width: 0;
}

.management-data-table__equal-part {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.management-data-table__fixed-separator {
  flex: 0 0 auto;
  padding-inline: var(--management-space-tight);
}

.management-data-table__sort {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  gap: var(--management-space-tight);
  justify-content: inherit;
  padding: 0;
  position: relative;
  text-align: inherit;
  text-transform: inherit;
  white-space: nowrap;
  width: 100%;
}

.management-data-table__cell--numeric .management-data-table__sort { justify-content: center; }
.management-data-table__sort--numeric { justify-content: center; text-align: center; }
.management-data-table__sort-indicator {
  inset-inline-end: 0;
  position: absolute;
}
.management-data-table__sort:is(:hover, :focus-visible) { color: var(--management-accent); }
.management-data-table__sort:focus-visible { box-shadow: var(--appadel-interaction-focus-ring); outline: none; }

.management-data-table__state {
  border: 1px solid var(--management-border);
  border-radius: var(--management-radius-control);
  color: var(--management-muted);
  margin: 0;
  padding: var(--management-space-content);
}

.management-data-table__state--loading { color: var(--management-muted); }
.management-data-table__state--empty { color: var(--management-muted); }
.management-data-table__state--error { border-color: var(--appadel-feedback-danger); color: var(--appadel-feedback-danger); }

.management-data-table--compact {
  --management-data-table-block-padding: var(--management-space-tight);
  --management-data-table-inline-padding: var(--management-space-control);
  --management-data-table-numeric-columns: 1;
}

.management-data-table--numeric-2 { --management-data-table-numeric-columns: 2; }
.management-data-table--numeric-3 { --management-data-table-numeric-columns: 3; }
.management-data-table--numeric-4 { --management-data-table-numeric-columns: 4; }

@media (max-width: 900px) {
  .management-data-table__table { font-size: var(--appadel-typography-size-caption); }

  .management-data-table--fit {
    --management-data-table-block-padding: var(--management-space-tight);
    --management-data-table-inline-padding: var(--management-space-tight);
  }
  .management-data-table--fit .management-data-table__cell--primary { min-width: 0; width: auto; }
  .management-data-table--balanced-columns .management-data-table__cell--primary-compact { width: auto; }
  .management-data-table--balanced-columns .management-data-table__cell--primary-medium { width: auto; }
  .management-data-table--fit .management-data-table__cell--narrow { min-width: 5rem; width: 5rem; }
  .management-data-table--fit .management-data-table__cell--short { min-width: 3.5rem; width: 3.5rem; }
  .management-data-table--fit .management-data-table__cell--metric { min-width: 2.75rem; width: 2.75rem; }
  .management-data-table--fit .management-data-table__cell--ultra-compact { min-width: 2.75rem; width: 2.75rem; }
  .management-data-table--fit .management-data-table__cell--metric-data { min-width: 34px; width: 34px; }
  .management-data-table--fit .management-data-table__cell--metric-dense { min-width: 31px; width: 31px; }
  .management-data-table--fit .management-data-table__cell--mobile-hidden { display: none; }

  .management-data-table--sticky-primary .management-data-table__cell--primary {
    left: 0;
    max-width: 10rem;
    min-width: 7.375rem;
    position: sticky;
    z-index: 3;
  }
  .management-data-table--sticky-primary .management-data-table__head .management-data-table__cell--primary {
    background: var(--management-surface-strong);
    z-index: 4;
  }

  .management-data-table__cell[data-mobile-label] { font-size: 0; }
  .management-data-table__cell[data-mobile-label]::before {
    content: attr(data-mobile-label);
    font-size: var(--appadel-typography-size-caption);
  }

  .management-data-table--compact .management-data-table__table {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    table-layout: fixed;
    width: 100%;
  }

  .management-data-table--compact :is(.management-data-table__head, .management-data-table__body) { display: block; }
  .management-data-table--compact .management-data-table__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) repeat(var(--management-data-table-numeric-columns), 3.25rem);
    width: 100cqi;
  }

  .management-data-table--compact .management-data-table__cell--mobile-hidden { display: none; }
  .management-data-table--compact .management-data-table__cell[data-mobile-label] { font-size: 0; }
  .management-data-table--compact .management-data-table__cell[data-mobile-label]::before {
    content: attr(data-mobile-label);
    font-size: var(--appadel-typography-size-caption);
  }
  .management-data-table__sort[data-mobile-label] { font-size: 0; }
  .management-data-table__sort[data-mobile-label]::before {
    content: attr(data-mobile-label);
    font-size: var(--appadel-typography-size-caption);
  }
  .management-data-table__sort[data-mobile-label] .management-data-table__sort-indicator {
    font-size: var(--appadel-typography-size-caption);
  }
  .management-data-table--compact .management-data-table__cell--primary {
    min-width: 0;
    width: auto;
  }
  .management-data-table--compact .management-data-table__cell--compact { min-width: 0; width: auto; }
}

@media (max-width: 767px) {
  .management-data-table__cell--mobile-points { min-width: 42px; width: 42px; }
  .management-data-table__cell--mobile-actions { min-width: 132px; width: 132px; }
  .management-data-table__cell--mobile-actions-compact { min-width: 64px; width: 64px; }
}

@media (max-width: 575.98px) {
  .management-data-table--phone-fit { overflow-x: hidden; }
  .management-data-table--phone-fit .management-data-table__table {
    min-width: 0;
    table-layout: fixed;
  }
  .management-data-table--phone-fit .management-data-table__cell--primary { min-width: 0; width: 50%; }
  .management-data-table--phone-fit .management-data-table__cell--compact { min-width: 0; width: 12.5%; }
  .management-data-table--phone-fit .management-data-table__cell--phone-hidden { display: none; }
  .management-data-table--phone-fit .management-data-table__cell {
    padding-inline: var(--appadel-spacing-inline-tight);
  }
  .management-data-table--phone-fit .management-data-table__sort[data-phone-label] > span:first-child { display: none; }
  .management-data-table--phone-fit .management-data-table__sort[data-phone-label]::before {
    content: attr(data-phone-label);
  }
  .management-data-table--phone-fit .management-data-table__sort-indicator { display: none; }
}

@media (min-width: 768px) {
  .management-data-table--desktop-only { display: block; }
  .management-data-table--mobile-only { display: none; }
}
