table,
.d-table {
	width: 100%;
}
th, .th, td, .td, .d-table-cell {
	padding: 0.2em 0.4em;
}

tr:nth-child(odd) td {
	background: #e8e8e8aa;
}
tr:nth-child(even) td {
	background: #ffffffaa;
}

th,
.th {
	font-weight: bold;
}
td.value-format--bool,
.td.value-format--bool {
	text-align: center;
}
td.value-format--bool .fa-check,
.td.value-format--bool .fa-check {
	color: var(--chart-task-pass);
}
td.value-format--bool .fa-xmark,
.td.value-format--bool .fa-xmark {
	color: var(--default-grey);
}
tbody tr:not(.group-header-row):nth-child(odd),
.row-group .d-table-row:not(.group-header-row):nth-child(odd) {
	background: #88888811;
}

/* for partial columns, match identation on all fragments */
td .partial-col:has(.indentation) + .partial-col,
.td .partial-col:has(.indentation) + .partial-col {
	padding-left: 20px;
}
td .partial-col:has(.indentation + .indentation) + .partial-col,
.td .partial-col:has(.indentation + .indentation) + .partial-col {
	padding-left: 40px;
}

.group-header-row {
	background: var(--brand-element-bg);
	color: var(--brand-text-color);
}

.row-group tr:not(.group-header-row) td:first-child,
.row-group .tr:not(.group-header-row) .td:first-child,
.row-group .d-table-row:not(.group-header-row) .td:first-child {
	padding-left: 2em;
}

/* =============================
 * tablesorter overrides 
 * ============================= 
 */
 
/* replace chevron images with chevron symbols from FA (font awesome)
 * it's better performance and we already have fa anyway, may as well use it */
 
.tablesorter thead .tablesorter-headerAsc,
.tablesorter thead .tablesorter-headerDesc,
.tablesorter-bootstrap thead .tablesorter-headerUnSorted:not(.sorter-false) {
	background-image: none;
	position: relative;
}
.tablesorter thead .tablesorter-headerAsc,
.tablesorter thead .tablesorter-headerDesc {
	background: var(--default-light-grey) !important;
}

.tablesorter thead .tablesorter-headerAsc:after,
.tablesorter thead .tablesorter-headerDesc:after,
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):before,
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):after {
    font-family: var(--fa-style-family, "Font Awesome 6 Free");
    font-weight: 900;
    -webkit-font-smoothing: antialiased;
    display: var(--fa-display, inline-block);
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
    position: absolute;
    top: 50%;
    right: 6px;
    margin-top: -0.5em;
    font-size: 12px;
	width: 12px;
	color: var(--brand-color-secondary);
}
.tablesorter thead .tablesorter-headerAsc:after,
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):before {
	content: "\f077";
}
.tablesorter thead .tablesorter-headerDesc:after,
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):after {
	content: "\f078";
}

.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):before {
	margin-top: -0.75em;
}
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):after {
	margin-top: -0.15em;
}
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):before,
.tablesorter thead .tablesorter-headerUnSorted:not(.sorter-false):after {
	opacity: 0.5;
}
.tablesorter thead .select-all:before,
.tablesorter thead .select-all:after {
	content: "" !important; 
}

tr:has(.colspan-full) td:not(.colspan-full) {
	display: none;
}

table .col-entity-actions {
	position: relative;
}
table .col-entity-actions .ajax-progress.ajax-progress-throbber {
	position: absolute;
	left: 100%;
	margin-inline-start: 0.5em !important;
	height: 100%;
	align-items: center;
}
tr.valign-top td {
	vertical-align: top;
}

table.column-borders th:not(:last-child),
table.column-borders td:not(:last-child) {
	border-right: 1px solid #ddd;
}
table {
	caret-color: transparent;
}
table * {
	caret-color: var(--default-dark);
}