.mosaic-table__caption {
	margin: 0 0 0.75rem;
	color: var(--mosaic-color-headings, inherit);
	font-size: 1.15rem;
	font-weight: 600;
}

.mosaic-table__scroll {
	overflow-x: auto;
	border: 1px solid var(--mosaic-color-border, #d5d9e2);
	border-radius: 0.5rem;
}

.mosaic-table__scroll:focus-visible {
	outline: 2px solid var(--mosaic-color-primary, #2b4acb);
	outline-offset: 2px;
}

.mosaic-table__table {
	width: 100%;
	border-collapse: collapse;
	text-align: start;
}

.mosaic-table__table th,
.mosaic-table__table td {
	padding: 0.75rem 1rem;
	border-block-end: 1px solid var(--mosaic-color-border, #d5d9e2);
	text-align: start;
	vertical-align: top;
}

.mosaic-table__table thead th {
	background: var(--mosaic-color-primary, #2b4acb);
	color: #fff;
	font-weight: 600;
	white-space: nowrap;
}

.mosaic-table__table tbody tr:last-child th,
.mosaic-table__table tbody tr:last-child td {
	border-block-end: 0;
}

.mosaic-table__table tbody th {
	font-weight: 600;
}

.mosaic-table--striped tbody tr:nth-child(even) {
	background: var(--mosaic-color-surface, #f5f6fa);
}

.mosaic-table__table tbody tr.is-highlight {
	background: var(--mosaic-color-surface, #eef1fd);
	font-weight: 600;
}

@media (max-width: 40rem) {
	.mosaic-table--stack .mosaic-table__table thead {
		position: absolute;
		inline-size: 1px;
		block-size: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}

	.mosaic-table--stack .mosaic-table__table,
	.mosaic-table--stack .mosaic-table__table tbody,
	.mosaic-table--stack .mosaic-table__table tr,
	.mosaic-table--stack .mosaic-table__table th,
	.mosaic-table--stack .mosaic-table__table td {
		display: block;
	}

	.mosaic-table--stack .mosaic-table__table tr {
		border-block-end: 2px solid var(--mosaic-color-border, #d5d9e2);
	}

	.mosaic-table--stack .mosaic-table__table td[data-label]:not([data-label=""])::before {
		content: attr(data-label) ": ";
		font-weight: 600;
	}
}
