/*
 * Smart Table
 * Progressive enhancement for enterprise tables that are actually wide/long.
 * Small and print/report-only tables keep their native layout.
 */
:root {
  --smart-table-scroll-track: var(--surface-tertiary, #edf5f8);
  --smart-table-scroll-thumb: var(--brand-300, #82d5f5);
  --smart-table-scroll-thumb-hover: var(--brand-800, #006d9c);
  --smart-table-edge-shadow: rgba(7, 87, 121, .2);
  --smart-table-head-surface: var(--brand-50, #f2fbff);
  --smart-table-head-text: var(--text-primary, #163a4a);
}

.smart-table-scrollbar {
  position: relative;
  z-index: 8;
  width: 100%;
  height: 17px;
  display: none;
  overflow-x: auto;
  overflow-y: hidden;
  background: var(--smart-table-scroll-track);
  border-bottom: 1px solid var(--border-default, #d8e9f1);
  scrollbar-width: auto;
  scrollbar-color: var(--smart-table-scroll-thumb) var(--smart-table-scroll-track);
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.smart-table-scrollbar.is-visible {
  display: block;
}

.smart-table-scrollbar:focus-visible {
  outline: 3px solid rgba(0, 173, 239, .24);
  outline-offset: -3px;
}

.smart-table-scrollbar__track {
  height: 1px;
  pointer-events: none;
}

.smart-table-scrollbar::-webkit-scrollbar,
.smart-table--enhanced::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

.smart-table-scrollbar::-webkit-scrollbar-track,
.smart-table--enhanced::-webkit-scrollbar-track {
  background: var(--smart-table-scroll-track);
  border-radius: 999px;
}

.smart-table-scrollbar::-webkit-scrollbar-thumb,
.smart-table--enhanced::-webkit-scrollbar-thumb {
  min-width: 42px;
  background: var(--smart-table-scroll-thumb);
  border: 2px solid var(--smart-table-scroll-track);
  border-radius: 999px;
}

.smart-table-scrollbar::-webkit-scrollbar-thumb:hover,
.smart-table--enhanced::-webkit-scrollbar-thumb:hover {
  background: var(--smart-table-scroll-thumb-hover);
}

.smart-table--enhanced {
  position: relative;
  min-width: 0;
  max-width: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
  scrollbar-color: var(--smart-table-scroll-thumb) var(--smart-table-scroll-track);
  -webkit-overflow-scrolling: touch;
}

.smart-table--viewport:not(.smart-table--native-viewport) {
  max-height: var(--smart-table-max-height, clamp(360px, 62dvh, 720px));
}

.smart-table--enhanced.has-left-overflow:not(.has-right-overflow) {
  box-shadow: inset 13px 0 12px -14px var(--smart-table-edge-shadow);
}

.smart-table--enhanced.has-right-overflow:not(.has-left-overflow) {
  box-shadow: inset -13px 0 12px -14px var(--smart-table-edge-shadow);
}

.smart-table--enhanced.has-left-overflow.has-right-overflow {
  box-shadow:
    inset 13px 0 12px -14px var(--smart-table-edge-shadow),
    inset -13px 0 12px -14px var(--smart-table-edge-shadow);
}

.smart-table--viewport table thead th {
  position: sticky;
  top: var(--smart-table-head-top, 0px);
  z-index: 5;
}

.smart-table--viewport table thead th.smart-table-header--needs-surface {
  color: var(--smart-table-head-text);
  background: var(--smart-table-head-surface);
}

.smart-table-sticky-cell {
  position: sticky !important;
  left: var(--smart-table-sticky-left, 0px);
  z-index: 6 !important;
  background: var(--surface-primary, #fff) !important;
  box-shadow: 1px 0 0 var(--border-default, #d8e9f1);
}

thead .smart-table-sticky-cell {
  z-index: 12 !important;
  background: var(--smart-table-head-surface) !important;
}

.smart-table--shift-scrolling {
  scroll-behavior: auto;
}

/* DailyHospitalSettings: the fixed save bar must never hide the last row. */
#whs-panel-functional .smart-table--viewport,
#whs-panel-metrics .smart-table--viewport,
#whs-panel-workforce .smart-table--viewport {
  --smart-table-max-height: clamp(280px, 44dvh, 520px);
  padding-bottom: 86px;
  scroll-padding-bottom: 86px;
}

@media (max-width: 760px) {
  /* These settings tables intentionally become stacked cards on mobile. */
  .whs-table-scroll.smart-table--enhanced {
    max-height: none;
    overflow: visible;
    scrollbar-gutter: auto;
    box-shadow: none;
  }

  .whs-table-scroll + .smart-table-scrollbar,
  .whs-table-shell > .smart-table-scrollbar {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .smart-table--enhanced,
  .smart-table-scrollbar {
    scroll-behavior: auto !important;
  }
}

@media print {
  .smart-table-scrollbar {
    display: none !important;
  }

  .smart-table--enhanced,
  .smart-table--viewport {
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    scrollbar-gutter: auto;
  }

  .smart-table--enhanced table thead th,
  .smart-table-sticky-cell {
    position: static !important;
    left: auto !important;
    box-shadow: none !important;
  }
}
