.mosaic-alert {
	--mosaic-alert-tone: #2b4acb;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1rem 1.1rem;
	border: 1px solid color-mix(in srgb, var(--mosaic-alert-tone) 35%, transparent);
	border-inline-start: 4px solid var(--mosaic-alert-tone);
	border-radius: 0.5rem;
	background: color-mix(in srgb, var(--mosaic-alert-tone) 10%, #fff);
}

.mosaic-alert--success { --mosaic-alert-tone: #1b7f46; }
.mosaic-alert--warning { --mosaic-alert-tone: #a96300; }
.mosaic-alert--error { --mosaic-alert-tone: #b3261e; }

.mosaic-alert__icon {
	display: inline-flex;
	flex: none;
	margin-block-start: 0.1em;
	color: var(--mosaic-alert-tone);
	font-size: 1.35rem;
}

.mosaic-alert__body {
	flex: 1 1 auto;
	min-inline-size: 0;
}

.mosaic-alert__title {
	margin: 0;
	font-weight: 700;
}

.mosaic-alert__title + .mosaic-alert__text {
	margin-block-start: 0.25rem;
}

.mosaic-alert__text {
	margin: 0;
}

.mosaic-alert__close {
	flex: none;
	display: inline-flex;
	padding: 0.25rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-size: 1.1rem;
	opacity: 0.7;
}

.mosaic-alert__close:hover,
.mosaic-alert__close:focus-visible {
	opacity: 1;
}

.mosaic-alert__close:focus-visible {
	outline: 2px solid currentColor;
}

.mosaic-alert.is-closed {
	display: none;
}
