.button {
	align-items: center;
	align-self: flex-start;
	border: var(--component-border-width-md) solid transparent;
	border-radius: var(--component-radii-md);
	cursor: pointer;
	display: inline-flex;
	flex-grow: 0;
	flex-shrink: 0;
	justify-content: center;
	padding: 1ex;
	padding: var(--component-spacing-md, 1ex);
	text-align: center;
	vertical-align: baseline;
	white-space: nowrap;
	width: -moz-fit-content;
	width: fit-content;
	transition-property: background-color, stroke-color, color;
	transition-duration: 150ms;
	transition-timing-function: ease;
	aspect-ratio: 1;
}

.button:disabled {
	pointer-events: none;
	opacity: 0.5;
}

.button:focus-visible {
	box-shadow: var(--shadows-focus);
	outline: none;
}

.size-small {
	padding: var(--component-spacing-2xs);
	height: var(--size-control-small);
	font: var(--font-label-sm);
}

.size-medium {
	padding: var(--component-spacing-xs);
	height: var(--size-control-medium);
	font: var(--font-label-sm);
}

.size-large {
	padding: var(--component-spacing-sm);
	height: var(--size-control-large);
	font: var(--font-label-sm);
}

.emphasis-high {
	border-color: var(--bg);
}

.emphasis-medium {
	border-color: var(--stroke-subtle);
}

.children {
	display: flex;
	align-items: center;
	justify-content: center;
}

.children-loading {
	opacity: 0;
}

.icon-container {
	flex-shrink: 0;
	display: flex;
}

.text {
	display: inline-flex;
	padding: 0 var(--component-spacing-xs);
}

.spinner-container {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
