.crm-container table:not(.crm-inline-edit-form,
.crm-table-group-summary) {
  border: var(--crm-table-outside-border);
  background: var(--crm-table-bg-color);
  box-shadow: var(--crm-shadow-block);
  margin: 0 0 var(--crm-l-reg);
  border-collapse: collapse;
  width: 100%;
  max-width: 100%;
}
.crm-container table thead {
  background-color: var(--crm-table-header-bg-color);
}
.crm-container th,
.crm-container table thead.sticky th,
.crm-container table.dataTable thead th,
.crm-container tr.columnheader td {
  background-color: var(--crm-table-header-bg-color);
  border-bottom: var(--crm-table-header-border-bottom);
  color: var(--crm-table-header-color);
  font-weight: bold;
  padding: var(--crm-table-padding);
  text-align: left;
}
.crm-container table:not(thead) tr {
  border-bottom: var(--crm-table-row-border);
  background-color: var(--crm-table-row-bg-color);
}
.crm-container td,
.crm-container table.dataTable thead td {
  padding: var(--crm-table-padding);
}
.crm-container table.selector td {
  border-right: var(--crm-table-column-border);
}
.crm-container table td:has(.btn-slide),
.crm-container table:not(.crm-info-panel) td:not(.crm-case-date):has(.action-item) {
  text-align: right;
}
.crm-container table.crm-mailing-ab-table td:has(.action-item) {
  text-align: unset;
}
.crm-container table.form-layout td:has(details) {
  padding: 0;
}
.crm-form-block .form-item table,
.crm-form-block .form-item table tr,
.crm-container .crm-form-block:not( .crm-report-field-form-block,
.crm-group-search-form-block,
#map-field,
#payLaterOptions,
.crm-membership-form-block,
.crm-contribution-form-block,
.crm-case-caseview-form-block,
.crm-case-activity-form-block) table:not(#preview-counts),
.crm-container .crm-form-block:not( .crm-report-field-form-block,
.crm-group-search-form-block,
.crm-membership-form-block,
.crm-contribution-form-block,
.crm-case-caseview-form-block,
.crm-case-activity-form-block) table:not(#preview-counts) tr,
.crm-container .crm-accordion-body table.form-layout-compressed,
.crm-container .crm-search-form-block table.form-layout-compressed,
.crm-container .crm-case-activity-form-block > table,
.crm-container table.no-border,
.crm-container table.no-border tr,
.crm-container table#crm-activity-view-table,
.crm-container .crm-report-form-block table.form-layout-compressed {
  box-shadow: none;
  border: 0 solid transparent;
  background: transparent;
}
.crm-container .crm-form-block.crm-report-field-form-block table,
.crm-container .CRM_Contribute_Form_ContributionCharts #chartData table,
.crm-container .crm-case-caseview-form-block table {
  box-shadow: none;
}
.crm-selection-reset {
  padding: var(--crm-l-medium) 0;
  margin-bottom: var(--crm-l-medium);
  display: block;
}

/* Sticky header */
.crm-sticky thead > tr > th,
.crm-container table thead.sticky {
  background-color: var(--crm-table-header-bg-color);
}
.crm-container thead div.sticky-header {
  height: var(--crm-l-reg);
}
.crm-sticky thead,
.crm-container thead div.sticky-header {
  border-bottom: 2px solid #cfcec3;
  background-color: var(--crm-table-header-bg-color);
  z-index: 10;
}
.crm-sticky thead {
  position: sticky;
  top: var(--crm-menubar-bottom);
  box-shadow: 0 2px 2px -1px #cfcec3;
}

/* Data Tables */
.crm-container .dataTables_wrapper :is(.dataTables_length,.dataTables_filter,.dataTables_info,.dataTables_processing,.dataTables_paginate),
.crm-container .dataTables_wrapper .dataTables_paginate :is(.paginate_button.disabled,.paginate_button.disabled:hover,.paginate_button.disabled:active) {
  color: var(--crm-text-color) !important; /* vs jqueery.dataTables.css */
}

/* Nested table */

.crm-container .crm-child-row table {
  box-shadow: none;
  border: var(--crm-table-nested-border);
}
.crm-container .crm-child-row > td:has(table) {
  padding: var(--crm-table-nested-padding);
}
.crm-container tr.crm-child-row:hover {
  background-color: transparent;
}
.crm-container tr.crm-child-row > td {
  box-shadow: inset 0 10px 8px -10px rgba(0,0,0,.3), inset 0 -11px 8px -9px rgba(0,0,0,.15);
  background: var(--crm-table-inset-bg-color);
}

/* Nested, inset table - groups page */

tbody .crm-row-child td {
  box-shadow: inset 0 10px 8px -10px rgba(0,0,0,.15);
  background: var(--crm-table-inset-bg-color);
}
tbody .crm-row-child:hover td {
  background: color-mix(in srgb, var(--crm-table-inset-bg-color) 95%, #000 5%);
  cursor: var(--crm-link-hover-cursor);
}
tbody .crm-row-child ~ .crm-row-child td {
  box-shadow: none;
}
tbody .crm-row-child:not(:has(~ .crm-row-child)) td {
  box-shadow: inset 0 -11px 8px -9px rgba(0,0,0,.15);
}

/* Compressed table */
.crm-container table.form-layout-compressed {
  width: var(--crm-table-compressed-width);
  border: var(--crm-table-outside-border);
  background: var(--crm-table-bg-color);
  box-shadow: var(--crm-shadow-block);
  margin: var(--crm-l-medium) 0 var(--crm-l-large);
}
.crm-container table.form-layout-compressed th {
  background: transparent;
  border: none;
  padding: var(--crm-table-padding);
}
.crm-container .crm-form-block > .form-layout-compressed {
  /* handles double box/border issue when table is in a form block */
  box-shadow: none;
  border: 0 solid transparent;
  background: transparent;
}

/* Advance search compressed table */
#search-status table.form-layout-compressed {
  background: var(--crm-container-bg-color);
  width: 100%;
  border: 0;
  padding: var(--crm-padding-reg);
  border-radius: var(--crm-l-radius);
  margin: 0;
}
#search-status table.form-layout-compressed tr {
  border: 0;
}
#search-status table.form-layout-compressed td {
  padding-inline: var(--crm-padding-reg);
}
#search-status table.form-layout-compressed tr:first-of-type td,
#search-status table.form-layout-compressed tr:last-of-type td {
  padding-block: var(--crm-padding-reg);
}

/* Report table */
.crm-container table.report {
  width: auto;
}
.crm-container table.report td {
  border: var(--crm-table-row-border);
  background-color: var(--crm-table-row-bg-color);
}
.crm-container tr.columnheader-dark th {
  background-color: var(--crm-primary-color);
  color: var(--crm-primary-text-color);
}

/* Batch entry table */
.crm-container .crm-grid-table {
  display: table;
  border-collapse: collapse;
  border: var(--crm-table-outside-border);
  background-color: var(--crm-table-bg-color);
}
.crm-container .crm-grid-row,
.crm-container .crm-grid-header {
  display: table-row;
}
.crm-container .crm-grid-header {
  white-space: nowrap;
}
.crm-container .crm-grid-cell {
  display: table-cell;
  border-right: 1px solid var(--crm-table-column-border);
  padding: var(--crm-table-padding);
  vertical-align: top;
}

/* Fees tables (contribs/events) */
.crm-container table#map-field-table {
  width: auto;
  border: var(--crm-table-outside-border);
  margin-top: var(--crm-padding-reg);
}

/* Pay later table (nested inside another table) */

.crm-container table#payLater table#payLaterOptions.form-layout {
  border: var(--crm-table-nested-border);
  background: var(--crm-table-bg-color);
}

/* Striped rows */

tbody.scrollContent:has(.alternateRow),
.crm-container table:has(.odd-row,.even-row),
.crm-container table.dataTable tbody,
.crm-container .table-striped > tbody {
  --crm-striped-bg-color: var(--crm-table-row-bg-color);
}
.crm-container table.dataTable:is(.stripe,.display) tbody tr.odd:not(.disabled),
.crm-container table tbody:has(.odd,.even,.even-row,.odd-row) tr:not(.disabled),
.crm-container .table-striped > tbody > tr:not(.disabled) {
  background-color: var(--crm-striped-bg-color) !important;
}
.crm-container table.dataTable:is(.stripe,.display) tbody tr.even:not(.disabled),
.crm-container table tr.even-row:not(.disabled),
tbody.scrollContent tr.alternateRow:not(.disabled),
.crm-container .table-striped > tbody > tr:nth-of-type(2n):not(.disabled) {
  --crm-striped-bg-color: color-mix(in srgb, var(--crm-table-row-bg-color) 0%, var(--crm-table-row-alternate-bg-color) var(--crm-table-row-alternate-mix));
}
.crm-container table.dataTable.hover tbody tr.odd:hover,
.crm-container table.dataTable.display tbody tr.odd:hover,
.crm-container table.row-highlight tr:hover,
.crm-container .crm-row-selected,
.crm-container .odd-row:hover,
.crm-container .odd:hover,
.crm-container .table tr:has(.crm-search-ctrl-select-row:checked),
.crm-container .table-striped > tbody > tr:hover {
  --crm-striped-bg-color: var(--crm-table-row-hover-color);
}
.crm-container table.dataTable.hover tbody tr.even:hover,
.crm-container table.dataTable.display tbody tr.even:hover,
.crm-container table.row-highlight tr.even-row:hover,
.crm-container table.row-highlight tr.even:hover,
.crm-container table tr.even-row.crm-row-selected,
.crm-container .even.crm-row-selected,
.crm-container table tr.even-row:hover,
.crm-container .even:hover,
tbody.scrollContent tr.alternateRow:hover,
.crm-container .table.table-striped tr:nth-of-type(2n):has(.crm-search-ctrl-select-row:checked),
.crm-container .table-striped > tbody > tr:nth-of-type(2n):hover {
  --crm-striped-bg-color: color-mix(in srgb, var(--crm-table-row-hover-color) 100%, #000 6%);
}
.crm-container table.dataTable.display tbody tr > .sorting_1,
.crm-container table.dataTable.order-column.stripe tbody tr > .sorting_1 {
  background-color: color-mix(in srgb, var(--crm-striped-bg-color) 100%, var(--crm-table-row-alternate-bg-color) var(--crm-table-row-alternate-mix)) !important;
}

/* Table bg colours */

.crm-container .table {
  width: 100%;
  max-width: 100%;
  margin-bottom: var(--crm-l-reg-1);
}
.crm-container .table > :is(thead,tbody,tfoot) > tr > :is(th,td) {
  padding: var(--crm-table-padding);
}
.crm-container .table > tbody + tbody {
  border-top: var(--crm-table-header-border-bottom);
}
.crm-container .table-condensed > :is(thead,tbody,tfoot) > tr > :is(th,td) {
  padding: var(--crm-l-small-1);
}
.crm-container .table-bordered {
  border: var(--crm-table-outside-border);
}
.crm-container .table-bordered > :is(thead,tbody,tfoot) > tr > :is(th,td) {
  border: var(--crm-table-outside-border);
}
.crm-container .table-bordered > thead > tr > th,
.crm-container .table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.crm-container .table > :is(thead,tbody,tfoot) > :is(tr > td.active,tr > th.active,tr.active > td,tr.active > th) {
  background-color: var(--crm-table-row-bg-color);
}*/
.crm-container .table-hover > tbody > :is(tr > td.active:hover,th.active:hover,tr.active:hover > td,tr:hover > .active,tr.active:hover > th) {
  background-color: var(--crm-table-row-hover-color);
}
.crm-container .table td.success,
.crm-container .table th.success,
.crm-container .table tr.success > td,
.crm-container .table tr.success > th,
.crm-container table tr.crm-row-ok,
.crm-container table tr.crm-row-ok > td {
  background-color: var(--crm-alert-success-bg-color);
  color: var(--crm-alert-success-text-color);
}
.crm-container .table-hover > tbody > tr > td.success:hover,
.crm-container .table-hover > tbody > tr > th.success:hover,
.crm-container .table-hover > tbody > tr.success:hover > td,
.crm-container .table-hover > tbody > tr:hover > .success,
.crm-container .table-hover > tbody > tr.success:hover > th,
.crm-container table tr.crm-row-ok:hover > td,
.crm-container table tr.crm-row-ok > td:hover {
  background-color: var(--crm-alert-success-border-color);
}
.crm-container .table td.warning,
.crm-container .table th.warning,
.crm-container .table tr.warning > td,
.crm-container .table tr.warning > th {
  background-color: var(--crm-alert-warning-bg-color);
  color: var(--crm-alert-warning-text-color);
}
.crm-container .table-hover > tbody > tr > td.warning:hover,
.crm-container .table-hover > tbody > tr > th.warning:hover,
.crm-container .table-hover > tbody > tr.warning:hover > td,
.crm-container .table-hover > tbody > tr:hover > .warning,
.crm-container .table-hover > tbody > tr.warning:hover > th {
  background-color: var(--crm-alert-warning-border-color);
}
.crm-container .table td.danger,
.crm-container .table th.danger,
.crm-container .table tr.danger > td,
.crm-container .table tr.danger > th,
.crm-container table tr.error > td,
.crm-container table tr.error,
.crm-container table tr.crm-row-error,
.crm-container table tr.crm-row-error > td {
  background-color: var(--crm-alert-danger-bg-color);
  color: var(--crm-alert-danger-text-color);
}
.crm-container .table-hover > tbody > tr > td.danger:hover,
.crm-container .table-hover > tbody > tr > th.danger:hover,
.crm-container .table-hover > tbody > tr.danger:hover > td,
.crm-container .table-hover > tbody > tr:hover > .danger,
.crm-container .table-hover > tbody > tr.danger:hover > th,
.crm-container table tr.crm-row-error:hover > td,
.crm-container table tr.crm-row-error > td:hover {
  background-color: var(--crm-alert-danger-border-color);
}
.crm-container .table td.info,
.crm-container .table th.info,
.crm-container .table tr.info > td,
.crm-container .table tr.info > th {
  background-color: var(--crm-alert-info-bg-color);
  color: var(--crm-alert-info-text-color);
}
.crm-container .table-hover > tbody > tr > td.info:hover,
.crm-container .table-hover > tbody > tr > th.info:hover,
.crm-container .table-hover > tbody > tr.info:hover > td,
.crm-container .table-hover > tbody > tr:hover > .info,
.crm-container .table-hover > tbody > tr.info:hover > th {
  background-color: var(--crm-alert-info-border-color);
}
.crm-container .table-responsive {
  min-height: .01%;
  overflow-x: auto;
}

/* Responsive table */

@media screen and (max-width: 767px) {
  .crm-container .table-responsive,
  .crm-container table {
    width: 100%;
    margin-bottom: var(--crm-l-reg);
    overflow-y: hidden;
    border: var(--crm-table-outside-border);
    display: contents; /* expirmental addition to provide more responsive behaviour */
  }
  .crm-container .table-responsive > .table {
    margin-bottom: 0;
  }
  .crm-container .table-responsive > .table > :is(thead,tbody,tfoot) > tr > :is(th,td) {
    white-space: nowrap;
  }
  .crm-container .table-responsive > .table-bordered {
    border: 0;
  }
  .crm-container .table-responsive > .table-bordered > :is(thead,tbody,tfoot) > tr > :is(th,td):first-child {
    border-left: 0;
  }
  .crm-container .table-responsive > .table-bordered > :is(thead,tbody,tfoot) > tr > :is(th,td):last-child {
    border-right: 0;
  }
  .crm-container .table-responsive > .table-bordered > :is(tbody,tfoot) > tr:last-child > :is(th,td) {
    border-bottom: 0;
  }
}
