/* v4.3.5 */
.scroll-table-container {
  max-height: 500px;
  width: fit-content;     /* will always "just" fit content (unless smaller than min-width) */
  overflow-y: auto;       /* vertical scroll */
  border: solid 2px #a8a8a8;
}

.scroll-table-container table {
  width: 100%;                /* table should fill container width, excluding scroll bar */
  border-collapse: separate;  /* for proper formatting with fixed headers */
  border-spacing: 0;
  border: none;               /* there is already a border on the container */
}

.scroll-table-container thead {
  min-height: 39px;
  position: sticky;   /* make the header fixed in place */
  top: 0px;
  z-index: 2;
}

.scroll-table-container thead tr {
  height: 39px;
}

.scroll-table-container thead :is(th, td) {
  background-color: #687787;
  border-color: #aaaaaa;
}

.scroll-table-container thead tr:nth-last-child(1) :is(th, td),
.scroll-table-container thead tr:nth-last-child(2) :is(th, td)[rowspan="2"],
.scroll-table-container thead tr:nth-last-child(3) :is(th, td)[rowspan="3"] {
  border-bottom: solid 3px #a8a8a8;   /* set the border of the last header row */
}

.scroll-table-container tbody td {
  white-space: nowrap;
  padding: 6px 24px;
}

.scroll-table-container.no-top-border {border-top: none;}

.scroll-table-container.tall-tb               {max-height: 600px;}
.scroll-table-container.wide-tb               {min-width: 600px;}
.scroll-table-container.wide-tb      tbody td {padding: 6px 10px;}
.scroll-table-container.short-header thead td {white-space: nowrap;}

.scroll-table-container.group-altrn-rows tbody tr:nth-child(4n+1),
.scroll-table-container.group-altrn-rows tbody tr:nth-child(4n+2) {
  background-color: #e1e1e1;
}

.scroll-table-container.altrn-rows tbody tr:nth-child(odd) td:not([rowspan]),
.scroll-table-container.altrn-rows tbody tr:nth-child(odd) td[rowspan="1"] {
  background-color: #e1e1e1;
}