.custom_radio,
.custom_checkbox {
	cursor: pointer;
	display: inline-block;
	font-size: 0;
	line-height: 1;
	margin-right: 4px;
	overflow: hidden;
	vertical-align: middle;

	& + label {
		vertical-align: middle;
	}

	html.rtl & {
		margin-left: 4px;
		margin-right: 0px;
	}
	
	.toolbar & {
		vertical-align: middle !important;
	}
	
	&.disabled,
	&.disabled {
		cursor: default;
	}
	
	input {
		.opacity(0);

		float: left;
		margin-right: -13px; // equals to icon width for fix androud native brauser
		margin-top: -30px;
		
		html.rtl & {
			float: right;
		}
	}
	
	.icon {
		background: #ffffff;
		border: 1px solid #b4b5b6;
		border-radius: 2px;
		color: #5a6269;
		display: inline-block;
		height: 13px !important;
		line-height: 13px !important;
		text-align: center;
		vertical-align: top;
		width: 13px !important;
		
		.init-icon-font();
		
		&:before {
			display: inline-block;
			font-size: 10px;
			line-height: inherit;
			vertical-align: baseline;
			
			.toolbar & {
				font-size: 12px !important;
				height: 12px !important;
				width: 12px !important;
			}
		}
		
		.disabled& {
			color: #cccccc;
			border: 1px solid #cccccc !important;
			background: #f5f5f5;
		}
	}
}

.custom_checkbox.checked .icon:before {
	content: "\e61c";
}

.custom_radio {
	.icon {
		border-radius: 50%;

		&:before {
			margin: -1px 0 0 -1px;
		}
	}
	
	&.checked .icon:before {
		content: "\e61b";
	}
}

.custom_switcher {
	background: #ffffff;
	border: 1px solid #cccccc;
	border-radius: 3px;
	display: inline-block;
	font-size: 0px;
	
	.text {
		border-right: 1px solid #cccccc;
		display: inline-block !important;
		font-size: 9pt;
		padding: 5px 5px;
	}
	
	label {
		&.checked {
			background: #6fa8de;
			color: #ffffff;
			display: inline-block;
		}
		
		&:first-child .text {
			padding-left: 7px;

			html.rtl & {
				border: 0px;
				padding-right: 7px;
			}
		}
		
		&:last-child .text{
			border: 0px;
			padding-right: 7px;

			html.rtl & {
				border-right: 1px solid #cccccc;
				padding-right: 5px;
			}
		}
	}
	
	input {
		display: none;
	}
}
