.dx-checkbox {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	margin: 15px 0;

	&:first-of-type {
		margin-top: 0;
	}

	.label-text {
		font-family: Roboto;
		font-style: normal;
		font-weight: normal;
		font-size: 12px;
		line-height: 18px;
		color: var(--theme-core-text-color);
	}

	input[type='checkbox'] {
		// Hide default appearance
		-webkit-appearance: none;
		appearance: none;

		// Custom appearance
		margin: 0 8px 0 0;
		width: 16px;
		height: 16px;
		border: 1px solid var(--theme-core-control-border-color);
		border-radius: 2px;
		background-color: var(--theme-core-control-background-color);
		flex-shrink: 0;
	}

	// Hide checkmark initially
	input[type='checkbox']::before {
		display: none;
	}

	// Fill in background on check
	input[type='checkbox']:checked {
		background-color: var(--theme-core-control-background-color);
	}

	// Display checkmark on check
	input[type='checkbox']:checked::before {
		display: block;
		position: relative;
		top: 7px;
		left: 3px;
		font-size: 9px;
		line-height: 0;
		color: var(--theme-core-control-punch-color);

		// genesys-dev-icons app-check
		content: '✓';
		font-family: genesys-dev-icons !important;
		font-style: normal;
		font-weight: normal !important;
		font-feature-settings: normal;
		font-variant: normal;
		text-transform: none;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
	}

	// Hover - checkbox
	input[type='checkbox']:not(:disabled):hover {
		border-color: var(--theme-core-control-punch-color);
	}

	// Focus - checkbox
	input[type='checkbox']:not(:disabled):focus {
		outline: var(--theme-core-control-focus-color) solid 2px;
	}
	// Disable default focus outline
	input[type='checkbox']:not(:disabled):focus-visible {
		outline: 0;
	}

	////// RADIO

	input[type='radio'] {
		// Hide default appearance
		-webkit-appearance: none;
		appearance: none;

		// Custom appearance
		margin: 0 8px 0 0;
		width: 16px;
		height: 16px;
		border: 1px solid var(--theme-core-control-border-color);
		border-radius: 8px;
		background-color: var(--theme-core-control-background-color);
		flex-shrink: 0;
	}

	// Hide radio button initially
	input[type='radio']::before {
		display: none;
	}

	// Display filled radio button
	input[type='radio']:checked::before {
		content: '';
		display: block;
		width: 10px;
		height: 10px;
		border-radius: 8px;
		position: relative;
		top: 2px;
		left: 2px;
		background-color: var(--theme-core-control-punch-color);
	}

	// Hover - radio button
	input[type='radio']:not(:disabled):hover {
		border-color: var(--theme-core-control-punch-color);
	}

	// Focus - radio button
	input[type='radio']:not(:disabled):focus {
		outline: var(--theme-core-control-focus-color) solid 2px;
	}
	// Disable default focus outline
	input[type='radio']:not(:disabled):focus-visible {
		outline: 0;
	}

	&.disabled {
		cursor: not-allowed;

		input {
			border-color: var(--theme-core-control-disabled-border-color);
			cursor: not-allowed;
		}

		// Fill in background on check
		input:checked {
			background-color: var(--theme-core-control-disabled-background-color);
			cursor: not-allowed;
		}
	}
}

.dx-label .dx-checkbox .label-text {
	margin: 0;
}
