/* Grid
*******************************************************************************/

.rf_item {
	position: relative;
	display: block;
	margin: 10px 0;
	z-index: 1;
}
.rf_item.rf_active {
	z-index: 2;
}

.rf_tpl {
	display: none !important;
}

.rf_item input {
	outline: none !important;
}
.rf_field input {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
}

.rf_clearboth::before,
.rf_clearboth::after {
	content: '';
	display: block;
	width: 100%;
	height: 0;
	float: none;
	clear: both;
}

/* Icons
*******************************************************************************/

.rf_icon {
	position: relative;
	display: inline-block;
	width: 16px;
  height: 16px;
  font-size: 0;
  text-align: center;
}

/* Fieldset
*******************************************************************************/

fieldset {
	margin: 20px 0;
	padding: 10px 20px;
	border: 1px solid #ddd;
	border-radius: 3px;
}
legend {
	padding: 0 5px;
	font-size: 14px;
}

/* Сетка поля
*******************************************************************************/

.rf_grid {
	display: table;
	width: 100%;
	height: 50px;
	border: 1px solid #ddd;
	border-radius: 3px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: all 300ms linear;
	transition: all 300ms linear;
}
.rf_cell {
	display: table-cell;
	vertical-align: middle;
}
.rf_before,
.rf_after {
	width: 40px;
	text-align: center;
	cursor: pointer;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.rf_before {
	padding-left: 10px;
}
.rf_field {
	position: relative;
	padding: 0 10px;
}
.rf_after {
	padding: 0 10px;
}
.rf_clear + .rf_after,
.rf_field + .rf_after {
	padding-left: 0;
}
.rf_disabled .rf_before,
.rf_disabled .rf_after {
	cursor: default;
}

/* Очистка поля
*******************************************************************************/

.rf_clear {
	cursor: pointer;
	width: 30px;
	text-align: center;
	opacity: 0;
}
.rf_item:hover .rf_clear {
	opacity: 1;
}
.rf_clear:hover {
	opacity: .5 !important;
}
.rf_disabled .rf_clear {
	display: none !important;
}

/* Переключатель видимости пароля
*******************************************************************************/

.rf_showhide {
	cursor: pointer;
	width: 40px;
	text-align: center;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
	font-size: 0;
}
.rf_showhide .rf_showhide_on {
	display: none;
}
.rf_showhide.rf_active .rf_showhide_on {
	display: block;
}
.rf_showhide.rf_active .rf_showhide_off {
	display: none;
}
.rf_item:hover .rf_showhide {
	opacity: 1;
}
.rf_showhide:hover {
	opacity: .5 !important;
}

/* Генератор паоля
*******************************************************************************/

.rf_generate {
	cursor: pointer;
	width: 40px;
	text-align: center;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
	font-size: 0;
}
.rf_generate:hover {
	opacity: .5 !important;
}
.rf_item:hover .rf_generate {
	opacity: 1;
}

/* Number
*******************************************************************************/

.rf_type_number input {
	-moz-appearance: textfield;
}
.rf_type_number input::-webkit-outer-spin-button,
.rf_type_number input::-webkit-inner-spin-button {
  -webkit-appearance: none;
}
.rf_type_number .rf_field {
	padding-right: 40px;
}
.rf_type_number .rf_signs {
	width: 40px;
	font-size: 0;
	text-align: center;
}
.rf_type_number .rf_sign {
	cursor: pointer;
	position: relative;
	height: 24px;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
	box-sizing: border-box;
}
.rf_type_number .rf_plus {
	padding: 6px 0 2px;
}
.rf_type_number .rf_minus {
	padding: 2px 0 6px;
}
.rf_type_number:hover .rf_sign {
	opacity: 1;
}
.rf_type_number .rf_sign:hover {
	opacity: .5;
}

.rf_type_number .rf_sign svg {
	width: 12px;
	margin: 2px;
}
.rf_type_number .rf_icon_sign_down svg {
	-webkit-transform: rotate(180deg);
	transform: rotate(180deg);
}

/* Buttons
*******************************************************************************/

.rf_item input,
.rf_item button {
	cursor: pointer;
	background: none;
	border: none;
	outline: none !important;
}
.rf_item input::-moz-focus-inner,
.rf_item button::-moz-focus-inner {
	border: none;
}

.rf_type_reset,
.rf_type_button,
.rf_type_submit,
.rf_type_image {
	cursor: pointer;
	display: inline-block;
}
.rf_type_reset .rf_cell,
.rf_type_button .rf_cell,
.rf_type_submit .rf_cell {
	width: auto;
	padding: 0 15px;
}
.rf_type_image .rf_cell {
	width: auto;
	padding: 0;
}
.rf_type_reset input,
.rf_type_button input,
.rf_type_submit input,
.rf_type_image input {
	cursor: pointer;
}
.rf_type_reset:hover,
.rf_type_button:hover,
.rf_type_submit:hover,
.rf_type_image:hover {
	background: #eee;
}

/* Checkbox
*******************************************************************************/

.rf_type_checkbox .rf_field {
	width: 20px;
	padding: 0;
}
.rf_type_checkbox .rf_grid {
	height: 20px;
	border: none;
}
.rf_type_checkbox input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.rf_type_checkbox .rf_caption {
	cursor: pointer;
	padding-left: 10px;
}

.rf_type_checkbox .rf_checkbox_out {
	position: relative;
	cursor: pointer;
	width: 20px;
	height: 20px;
	padding: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.rf_type_checkbox .rf_checkbox_in {
	cursor: pointer;
	position: absolute;
	top: 2px;
	left: 2px;
	width: 14px;
	height: 14px;
	background: #ddd;
	border-radius: 3px;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
}
.rf_type_checkbox.rf_checked .rf_checkbox_in {
	opacity: 1;
}

.rf_checkbox_icon_empty,
.rf_checkbox_icon_checked {
	cursor: pointer;
}
.rf_checkbox_icon_empty,
.rf_type_checkbox.rf_checked .rf_checkbox_icon_checked {
	display: inline-block;
}
.rf_checkbox_icon_checked,
.rf_type_checkbox.rf_checked .rf_checkbox_icon_empty {
	display: none;
}

.rf_type_checkbox .rf_checkbox_out .rf_checkbox_icon_checked {
	display: block;
	text-align: center;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
}
.rf_type_checkbox .rf_checkbox_out .rf_checkbox_icon_checked::before {
	margin: 0;
}
.rf_type_checkbox.rf_checked .rf_checkbox_out .rf_checkbox_icon_checked {
	opacity: 1;
}

/* Radio
*******************************************************************************/

.rf_type_radio .rf_field {
	width: 20px;
	padding: 0;
}
.rf_type_radio .rf_grid {
	height: 20px;
	border: none;
}
.rf_type_radio input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.rf_type_radio .rf_caption {
	cursor: pointer;
	padding-left: 10px;
}

.rf_type_radio .rf_radio_out {
	cursor: pointer;
	width: 20px;
	height: 20px;
	padding: 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 50%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
.rf_type_radio .rf_radio_in {
	cursor: pointer;
	position: absolute;
	top: 4px;
	left: 4px;
	width: 12px;
	height: 12px;
	background: #ddd;
	border-radius: 50%;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
}
.rf_type_radio.rf_checked .rf_radio_in {
	opacity: 1;
}

.rf_radio_icon_empty,
.rf_radio_icon_checked {
	cursor: pointer;
}
.rf_radio_icon_empty,
.rf_type_radio.rf_checked .rf_radio_icon_checked {
	display: inline-block;
}
.rf_radio_icon_checked,
.rf_type_radio.rf_checked .rf_radio_icon_empty {
	display: none;
}

.rf_type_radio .rf_radio_out .rf_radio_icon_checked {
	display: block;
	text-align: center;
	opacity: 0;
	-webkit-transition: all 200ms linear;
	transition: all 200ms linear;
}
.rf_type_radio .rf_radio_out .rf_radio_icon_checked::before {
	margin: 0;
}
.rf_type_radio.rf_checked .rf_radio_out .rf_radio_icon_checked {
	opacity: 1;
}

/* Placeholder
*******************************************************************************/

.rf_field input[placeholder]::-webkit-input-placeholder {
	opacity: 1;
	color: #999;
	font-size: 13px;
}
.rf_field input[placeholder]::-moz-placeholder {
	opacity: 1;
	color: #999;
	font-size: 13px;
}

.rf_field input[placeholder]:focus::-webkit-input-placeholder {
	color: transparent;
}
.rf_field input[placeholder]:focus::-moz-placeholder {
	color: transparent;
}

.rf_placeholder {
	position: absolute;
	color: #999;
	background: #fff;
	opacity: 0;
	visibility: hidden;
	z-index: 2;
	-webkit-transition: all 300ms linear;
	transition: all 300ms linear;
	box-sizing: border-box;
}
.rf_placeholder.rf_shown {
	opacity: 1;
	visibility: visible;
	top: 0;
	left: 10px;
	padding-left: 0;
	padding-top: 5px;
	line-height: 1;
	font-size: 10px;
	-webkit-transform: none;
	transform: none;
}
.rf_placeholder.rf_shown + input {
	padding-top: 15px;
}

/* Select
*******************************************************************************/

.rf_type_select {
	width: 100%;
}
.rf_type_select select {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
}
.rf_type_select.rf_native select {
	visibility: visible;
	z-index: 1;
}
.rf_type_select .rf_field {
	cursor: pointer;
}
.rf_select_toggle {
	cursor: pointer;
	width: 40px;
	text-align: center;
}
.rf_disabled .rf_field,
.rf_disabled .rf_select_toggle {
	cursor: default;
}
.rf_icon_select_toggle svg {
	width: 12px;
	margin: 2px 0 0;
}
.rf_type_select.rf_native .rf_clear {
	display: none;
}

.rf_select_dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 100%;
	margin: 5px 0 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	box-shadow: 0 0 5px rgba(0, 0, 0, .2);
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all 300ms linear;
	transition: all 300ms linear;
	box-sizing: border-box;
}
.rf_select_dropdown.rf_shown {
	opacity: 1;
	visibility: visible;
}

.rf_select_filter {
	border-bottom: 1px solid #ddd;
}
.rf_select_filter input {
	display: block;
	width: 100%;
	height: 40px;
	line-height: 40px;
	padding: 0 10px;
	box-sizing: border-box;
	border: none;
	font-size: 14px;
}

.rf_select_options {
	position: relative;
	max-height: 150px;
	overflow: auto;
}
.rf_select_option {
	cursor: pointer;
	padding: 0 10px;
	line-height: 30px;
	border-top: 1px solid #ddd;
	-webkit-transition: all 100ms linear;
	transition: all 100ms linear;
}
.rf_select_option:first-child {
	border: none;
}
.rf_select_option.rf_disabled {
	cursor: default;
	opacity: .8;
}
.rf_select_option.rf_not_found {
	cursor: default;
	font-style: italic;
}
.rf_select_option.rf_selected {
	font-weight: bold;
}

.rf_type_select .rf_values {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin: -10px 0 0;
	padding: 0 0 0 10px;
	overflow: hidden;
	line-height: 20px;
	white-space: nowrap;
	box-sizing: border-box;
}
.rf_type_select .rf_has_value .rf_placeholder + .rf_values {
	margin: -2px 0 0;
}
.rf_type_select .rf_has_value .rf_values::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 30px;
	height: 100%;
	display: block;
	background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#ffffff', GradientType=1);
}
.rf_type_select .rf_value {
	display: inline-block;
	vertical-align: bottom;
}
.rf_type_select .rf_no_value .rf_value {
	line-height: 20px;
	color: #999;
	font-size: 13px;
}
.rf_type_select .rf_has_value .rf_value {
}
.rf_type_select .rf_has_value .rf_value_sep {
	display: inline-block;
	vertical-align: bottom;
}
.rf_type_select .rf_no_value .rf_placeholder {
	opacity: 0;
	visibility: hidden;
}
.rf_type_select .rf_has_value .rf_placeholder {
	opacity: 1;
	visibility: visible;
}

/*.rf_filter {
	position: absolute;
	padding: 10px;
}
.rf_filter input {
	display: block;
	width: 100%;
	height: 30px;
	border: 1px solid #ddd;
	box-sizing: border-box;
}*/

/* Other
*******************************************************************************/

.rf_field input::-ms-clear {
  display: none;
}

/* Search
*******************************************************************************/

.rf_type_search input {
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
}
.rf_type_search input::-webkit-search-decoration,
.rf_type_search input::-webkit-search-cancel-button,
.rf_type_search input::-webkit-search-results-button,
.rf_type_search input::-webkit-search-results-decoration {
  -webkit-appearance: none;
}
.rf_type_search .rf_submit {
	width: 40px;
}
.rf_type_search button {
	display: block;
	width: 100%;
	height: 48px;
	padding: 0;
	text-align: center;
}
.rf_search_result {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	margin-top: 5px;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all 300ms linear;
	transition: all 300ms linear;
	-webkit-box-shadow: 0 0 5px rgba(0,0,0,.9);
	box-shadow: 0 0 5px rgba(0,0,0,.2);
}
.rf_item.rf_active .rf_search_result.rf_shown {
	opacity: 1;
	visibility: visible;
}
.rf_search_result_item {
	-webkit-transition: all 100ms linear;
	transition: all 100ms linear;
}
.rf_search_result_item:hover {
	opacity: .7;
}

.rf_icon_search svg {
	margin: 4px 0 0;
}

/* Files
*******************************************************************************/

.rf_type_file {
	cursor: pointer;
}
.rf_type_file input {
	cursor: pointer;
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.rf_file {
	cursor: default;
	position: relative;
	margin-top: 5px;
	padding: 5px 60px 5px 5px;
	line-height: 20px;
	border: 1px solid #ddd;
	border-radius: 3px;
}
.rf_file::after {
	content: '';
	display: block;
	width: 100%;
	height: 0;
	float: none;
	clear: both;
}
.rf_file_number {
	position: relative;
	display: inline-block;
	padding-right: 4px;
}
.rf_file_number::after {
	content: '.';
	position: absolute;
	bottom: 0;
	right: 0;
	display: block;
}
.rf_file_size {
	display: inline-block;
}
.rf_file_name {
	width: 100%;
}
.rf_file_type {
	width: 100%;
}
.rf_file_image {
	position: absolute;
	top: 5px;
	right: 5px;
	width: 50px;
}
.rf_file_image img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
}
.rf_type_file .rf_placeholder {
	opacity: 1;
	visibility: visible;
	top: 0;
	left: 0;
	padding-top: 0;
	padding-left: 10px;
	width: 100%;
	line-height: 48px;
	font-size: 13px;
}
.rf_type_file.rf_has_files .rf_placeholder {
	opacity: 0;
}
.rf_type_file.rf_has_files .rf_placeholder.rf_shown {
	opacity: 1;
	padding-top: 5px;
	line-height: 1;
}
.rf_type_file.rf_has_files .rf_shown + input + .rf_field_value {
	position: relative;
	padding-top: 15px;
}
.rf_type_file.rf_has_files .rf_field_value {
	z-index: 10;
}

/* Date
*******************************************************************************/

.rf_date_toggle {
	cursor: pointer;
	width: 40px;
	text-align: center;
}
.rf_disabled .rf_date_toggle {
	cursor: default;
}
.rf_icon_date_toggle svg {
	margin: 4px 0 0;
}

.rf_type_date input {
	display: block;
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
}
.rf_type_date input::-webkit-clear-button {
	-webkit-appearance: none;
}

.rf_calendar {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	max-width: 280px;
	margin: 5px 0 0;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 3px;
	box-shadow: 0 0 5px rgba(0, 0, 0, .2);
	opacity: 0;
	visibility: hidden;
	-webkit-transition: all 300ms linear;
	transition: all 300ms linear;
	box-sizing: border-box;
}
.rf_calendar.rf_shown {
	opacity: 1;
	visibility: visible;
}

.rf_calendar_head {
	padding: 10px 0;
	text-align: center;
	border-bottom: 1px solid #ddd;
}
.rf_calendar_head_cell {
	cursor: pointer;
	display: inline-block;
	margin: 0 10px;
	line-height: 20px;
	border-bottom: 1px dashed;
	transition: all 200ms linear;
}
.rf_calendar_head_cell.rf_active {
	cursor: default;
	border-bottom-color: transparent;
}
.rf_calendar_head_cell.rf_disabled {
	cursor: default;
	border-bottom-color: transparent;
}

@media (min-width: 1024px) {
	.rf_calendar_head_cell:hover {
		border-bottom-color: transparent;
	}
}

.rf_calendar_cell {
	cursor: default;
	float: left;
	box-sizing: border-box;
	line-height: 30px;
	font-size: 14px;
}
.rf_calendar_cell.rf_active {
	cursor: pointer;
}
.rf_calendar_cell.rf_current {
	cursor: default;
	font-weight: 600;
}
.rf_calendar_cell.rf_picked {
	cursor: default;
	line-height: 28px;
	border: 1px solid #eee;
}
.rf_calendar_cell.rf_active:hover {
	background: #eee;
}

.rf_calendar_body {
	display: none;
	padding: 5px;
}
.rf_calendar_body.rf_active {
	display: block;
}

.rf_calendar_dow .rf_calendar_cell {
	cursor: default;
}
.rf_calendar_dow .rf_calendar_cell:hover {
	background: none;
}

.rf_days .rf_calendar_cell {
	width: 14.28%;
	text-align: center;
}
.rf_days .rf_weekend {}

.rf_months .rf_calendar_cell {
	width: 25%;
	line-height: 40px;
	text-align: center;
}
.rf_months .rf_picked {
	line-height: 38px;
}

.rf_years .rf_calendar_cell {
	width: 33.33%;
	line-height: 40px;
	text-align: center;
}
.rf_years .rf_picked {
	line-height: 38px;
}

.rf_calendar_nav {
	display: table;
	width: 100%;
	border-top: 1px solid #ddd;
}
.rf_calendar_nav_cell {
	cursor: pointer;
	position: relative;
	display: table-cell;
	vertical-align: middle;
	width: 40px;
	height: 40px;
	padding: 0;
}
.rf_calendar_nav .rf_prev {
	float: left;
}
.rf_calendar_nav .rf_next {
	float: right;
}
.rf_calendar_nav .rf_today {
	width: auto;
	text-align: center;
}
.rf_calendar_nav .rf_today_inner {
	display: inline-block;
}
.rf_calendar_nav .rf_icon {
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -8px 0 0 -8px;
}

/*
*******************************************************************************/