/* Version: 20 */
/* 20: added "selectedRow" rule on tr > td */
/* 19: css sort arrow */
/* 18: IE link rendering */
/* 11-17: Remove background-image in favour of css-linear-gradient(...) */
.grouping_table > tbody > tr.group_header {
	vertical-align:middle;
	font-weight:500;
	font-size:1em;
	vertical-align:top;
}
.grouping_table > tbody > tr.group_header > td {
	color: #222;
	border-bottom: 2px solid #cfcfcf;
	padding-top: 1em;
	padding-left: .5em;
}
.grouping_table > tbody > tr.group_header > td:first-child {
	white-space:nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 0;
}
.grouping_table > .hidden,
.grouping_table > * > tr.hidden {
	display:none;
}
.grouping_table > * > tr.hidden td {
	display:none;
}
.grouping_table > tbody {
	vertical-align:top;
}
.grouping_table > thead > tr > th,
.grouping_table > tfoot > tr > th {

	background: #f5f5f5;

	font-weight:normal;
	font-size:1em;
	vertical-align:middle;

	/* force height */
	padding: 7px .75em;
	white-space:nowrap;

	color: #555;
	font-weight: 500;
}

/* IE applies :visited to void href's */
.grouping_table > * > tr > th > a,
.grouping_table > * > tr > th > a:link, 
.grouping_table > * > tr > th > a:visited {
	color: #555;
	font-weight: 500;
}

.grouping_table > * > tr > th[align=left], 
.grouping_table > * > tr > th.align-left {
	text-align: left;
	padding-left:8px;
	padding-right:.75em;
}
.grouping_table > * > tr > th[align=left] > span.sort-arrow,
.grouping_table > * > tr > th.align-left > span.sort-arrow {
	margin-right:-5px;
}
.grouping_table > * > tr > th[align=right], 
.grouping_table > * > tr > th.align-right {
	text-align: right;
	padding-left:.75em;
	padding-right:8px;
}
.grouping_table > * > tr > th[align=right] > span.sort-arrow,
.grouping_table > * > tr > th.align-right > span.sort-arrow {
	margin-right:-2px;
}

.grouping_table > * > tr > th[align=center], 
.grouping_table > * > tr > th.align-center {
	text-align: center;
	padding-left:.75em;
	padding-right:.75em;
}
.grouping_table > * > tr > th[align=center] > span.sort-arrow,
.grouping_table > * > tr > th.align-center > span.sort-arrow {
	margin-right:-5px;
}
.grouping_table > * > tr {
	line-height: normal;
}
.grouping_table > * > tr > td {
	padding: 6px 8px;
}

.grouping_table.sortcol-highlight > thead > tr > th.sortcol {
	background: #d3e8f6;
}
.grouping_table > thead > tr > th > .expand_all_button {
	margin-right: 4px;
}
.grouping_table > thead > tr > th > .check_all_button {
}

.grouping_table > * > tr.group_header > td > span.group-title {
	-webkit-user-select: none;
		-moz-user-select: none;
			-ms-user-select: none;
				user-select: none;
	text-transform:capitalize;
}
.grouping_table > * > tr.group_header > td > span.expand-toggle 
{
	cursor:pointer;
	padding-left:1em;
	background-position:left center;
	background-repeat:no-repeat;
	background-image:url('../../system/img/xp_plus.png');
}
.grouping_table > * > tr.group_header > td > span.expand-toggle.expanded
{
	background-image:url('../../system/img/xp_minus.png');
}
.grouping_table > * > tr.section_header > td,
.grouping_table > * > tr.section_header > th
{
	background-color: #efefef;
	background-image: none;

	font-weight: normal;
	font-size: 1em;

	padding: 7px 8px;
	
	vertical-align: middle;
}

.whitegloss,
.grouping_table > * > tr > th.whitegloss {
	background: #f5f5f5;
}
.icegloss,
.grouping_table > * > tr > th.icegloss,
.grouping_table > * > tr > th.current {
	background: #d3e8f6;
}
.icegradient,
.grouping_table > * > tr > th.icegradient {
	background-color: #d3e8f6;
	background-image: none;
	background-image: -webkit-linear-gradient(top, #eef5f9, #c0dff4);
	background-image:    -moz-linear-gradient(top, #eef5f9, #c0dff4);
	background-image:      -o-linear-gradient(top, #eef5f9, #c0dff4);
	background-image:         linear-gradient(top, #eef5f9, #c0dff4);
}

.graygradient,
.grouping_table > * > tr > th.graygradient {
	background-color: #f5f5f5;
	background-image: none;
	background-image: -webkit-linear-gradient(top, #f9f9f9, #e3e4e6);
	background-image:    -moz-linear-gradient(top, #f9f9f9, #e3e4e6);
	background-image:      -o-linear-gradient(top, #f9f9f9, #e3e4e6);
	background-image:         linear-gradient(top, #f9f9f9, #e3e4e6);
}

.grouping_table .sort-arrow {
	box-sizing: border-box;
	display: inline-block;
	width: 11px;
	height: 11px;
	border: none;
	vertical-align: middle;
	margin-left: 4px;
	cursor: pointer;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 8px;
}
.grouping_table .sort-arrow.sort-asc {
	background-image: url("../../system/img/sarwUp.svg");
	background-position: center calc(50% - 1px);
}
.grouping_table .sort-arrow.sort-desc {
	background-image: url("../../system/img/sarwDn.svg");
	background-position: center calc(50%);
}

table.grouping_table > thead > tr > * > .sort-link {
	display: inline-block;
	vertical-align:middle;
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 8px;

	overflow: hidden;
	text-overflow: ellipsis;
}
table.grouping_table > thead > tr > .sortcol > .sort-link {
	padding-right: 11px;
	margin-right: -5px;
}
table.grouping_table > thead > tr > .sortcol > .sort-link.sort-link-asc,
table.grouping_table > thead > tr > .sortcol.sort-asc > .sort-link {
	background-image: url("../../system/img/sarwUp.svg");
}
table.grouping_table > thead > tr > .sortcol > .sort-link.sort-link-desc,
table.grouping_table > thead > tr > .sortcol.sort-desc > .sort-link {
	background-image: url("../../system/img/sarwDn.svg");
	background-position: right calc(50% + 1px);
}
table.grouping_table > thead > tr > *.no_group:not(.sortable) > a.sort-link {
	text-decoration: none;
	cursor: default;
}

.grouping_table > tbody > tr.selectedRow > * {
	color: HighlightText;
	background-color: Highlight;
}
.grouping_table > tbody > tr.selectedRow a, 
.grouping_table > tbody > tr.selectedRow a:visited, 
.grouping_table > tbody > tr.selectedRow a:hover {
	color:HighlightText;
}

.grouping_table > thead > tr,
.grouping_table > tbody.grouptable-select-section {
	-webkit-user-select: none;
		-moz-user-select: none;
			-ms-user-select: none;
				user-select: none;
}
.grouping_table > tbody.grouptable-select-section > tr {
	cursor: pointer;
}

/* border-radius mod */
table.grouping_table {
	border-radius: inherit;
	border-spacing: 0;
}
table.grouping_table > thead,
table.grouping_table > thead > tr:first-child {
	border-top-left-radius: inherit;
	border-top-right-radius: inherit;
}
	table.grouping_table > thead > tr:first-child > td:first-child,
	table.grouping_table > thead > tr:first-child > th:first-child {
		border-top-left-radius: inherit;
	}
	table.grouping_table > thead > tr:first-child > td:last-child,
	table.grouping_table > thead > tr:first-child > th:last-child {
		border-top-right-radius: inherit;
	}

	table.grouping_table.auto-ellipsis > tbody > tr:not(.grid-row-editor) > * {
		max-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: normal;
	}
	table.grouping_table.nowrap > tbody > tr > *,
	table.grouping_table.auto-ellipsis.nowrap > tbody > tr:not(.grid-row-editor) > *,
	table.grouping_table > tbody > tr.nowrap > *,
	table.grouping_table.auto-ellipsis > tbody > tr:not(.grid-row-editor).nowrap > *,
	table.grouping_table > * > tr > *.nowrap,
	table.grouping_table.auto-ellipsis > tbody > tr:not(.grid-row-editor) > *.nowrap {
		white-space: nowrap;
	}
	
@media screen {

	/* 
	Sticky-header mod styles 
	NOTE: Only apply this for screen. Does not work for print.
	*/
	table.grouping_table.sticky-header[rules]:not([rules="none"]) {
		border-collapse: separate !important;
		border-spacing: 0;
	}
	table.grouping_table.sticky-header > thead > tr:nth-child(n+2) > *,
	table.grouping_table.sticky-header > tbody > tr > *,
	table.grouping_table.sticky-header > tfoot > tr:nth-child(n+2) > * {
		border-top: none;
	}
	table.grouping_table.sticky-header > thead > tr > *:not(:last-child),
	table.grouping_table.sticky-header > tbody > tr > *:not(:last-child),
	table.grouping_table.sticky-header > tfoot > tr > *:not(:last-child) {
		border-right: none;
	}
	table.grouping_table.sticky-header > thead {
		position: sticky;
		top: 0;
		background: #fff;
	}
	table.grouping_table.sticky-header > tfoot {
		position: sticky;
		bottom: 0;
		background: #fff;
	}
	/* 
		sticky-header w/flex-height MOD, experimental; 
		use for height-constrained scenarios (100% of parent or fixed-height)
		when the footer needs to be aligned with the bottom of the container
	*/
	table.grouping_table.sticky-header.flex-height > tbody:last-of-type {
		/* fill remaining space */
		height: 100%;
	}
		table.grouping_table.sticky-header.flex-height > tbody:last-of-type:after {
			/* inject a non-visible 'row' that consumes the remaining space */
			content: '';
			display: table-row;
			height: 100%;
		}
}

/* Fixed-header styles, DEPRECATE */
table.grouping_table.fixed-header {
}
table.grouping_table.fixed-header > tbody {
	display:block;
	height:0;
	overflow-y:scroll;
	overflow-x:auto;
	box-sizing:border-box;
}
table.grouping_table.fixed-header > thead, 
table.grouping_table.fixed-header > thead > tr,
table.grouping_table.fixed-header > tbody > tr {
	display:table;
	width:100%;
	table-layout:fixed; 
	box-sizing:border-box;
}
table.grouping_table.fixed-header > thead > tr > th,
table.grouping_table.fixed-header > tbody > tr > td {
	border-top-color:transparent;
	white-space:nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
table.grouping_table.fixed-header > thead > tr > th:last-child {
	border-right-width: 1px;
	border-right-style: solid;
}
/* quick-fix for height bloat when using inline chkbox */
table.grouping_table > tbody > tr > * > input[type=checkbox],
table.grouping_table > thead > tr > * > input[type=checkbox],
table.grouping_table > tfoot > tr > * > input[type=checkbox] {
	margin-top:0;
	margin-bottom:0;
}

/* wait-progress mod */
table.grouping_table > caption.progress-loading {
	-webkit-box-sizing: border-box;
	   -moz-box-sizing: border-box;
			box-sizing: border-box;
	overflow: visible;
	overflow-x: clip;
	z-index: 100;
	position: sticky;
	top: 0;
    height: 0;
	display: table-caption;
	caption-side: top;
}
	table.grouping_table > caption.progress-loading:after {
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
				box-sizing: border-box;

		content: '';
		display: block;
		height: 3px;
		background-color: rgba(5, 155, 206, 0.1);
	}
	table.grouping_table > caption.progress-loading > div.runner {
		-webkit-box-sizing: border-box;
		   -moz-box-sizing: border-box;
				box-sizing: border-box;
	
		width: 100%;
		height: 100%;
		
		background: -webkit-linear-gradient(90deg, rgba(5,155,206,0.1), rgb(124,184,237));
		background:    -moz-linear-gradient(90deg, rgba(5,155,206,0.1), rgb(124,184,237));
		background:			linear-gradient(90deg, rgba(5,155,206,0.1), rgb(124,184,237));

		animation: progress-loading-wait-animation 1s infinite linear;
		transform-origin: 0% 50%;
		display: inline-block;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		height: 3px;
	}
	@keyframes progress-loading-wait-animation {
		0% {
			transform:  translateX(0) scaleX(0);
		}
		40% {
			transform:  translateX(0) scaleX(0.4);
		}
		100% {
			transform:  translateX(100%) scaleX(0.5);
		}
	}

table.grouping_table.disabled > * > tr:not(.selectedRow) > *,
table.grouping_table.disabled > * > tr:not(.selectedRow) > th > a,
table.grouping_table.disabled > * > tr:not(.selectedRow) > th > a.link,
table.grouping_table.disabled > * > tr:not(.selectedRow) > th > a:visited,
table.grouping_table.disabled > tbody > tr.group_header > td {
	color: GrayText;
}

table.grouping_table:not(.disabled) > * > tr:not(.selectedRow).disabled > * {
	color: GrayText;
}

table.grouping_table > caption.empty-message {
	display: none;
	visibility: hidden;
	color: graytext;
	font-style: italic;
	line-height: 4em;
	caption-side: bottom;
}

table.grouping_table:not(:has(tbody:not(.hidden):not(:empty))) > caption.empty-message {
	display: table-caption;
	visibility: visible;
}
