form {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
	display: block;
}

form,
form * {
	font-family: Consolas, Monaco, Courier New, Courier, monospace;
	font-size: 12px;
}

.fRow {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
	margin-bottom: 1.0rem;
	display: flex;
	justify-content: space-between;
	align-items: start;
	flex-wrap:wrap;
}

.formInfoLabel {
	width: 100%;
	clear: both;
	text-align: right;
	font-size: 10px;
	font-style: italic;
}

.validationMessage,
.validationErrors {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
	background-color: var(--mfw-red);
	color: #ffF;
	padding: 7px 1.4rem 5px;
	margin-bottom: 1.0rem;
}

.validationMessage {
	background-color: var(--mfw-blue);
}

.locationHeader {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
	background-color: var(--mfw-green);
	color: #ffF;
	padding: 7px 1.4rem 5px;
	margin-bottom: 1.0rem;
	font-size: 20px;
	text-align: center;
}


.fRow.fRow-right {
	justify-content: flex-end;
}

.fRow label,
form input[type="text"],
form input[type="number"],
form input[type="email"],
form input[type="password"],
form input[type="date"],
form select,
form textarea,
form .SumoSelect,
form .SumoSelect > .CaptionCont {
	position: relative;
	float: left;
	width: 100%;
}


.fRow label {
	padding: 4px 10px 4px 0;
}

form input[type="text"],
form input[type="number"],
form input[type="email"],
form input[type="password"],
form input[type="date"],
form select,
form textarea,
form .SumoSelect > .CaptionCont {
	flex:1;
	color: #fff;
	background-color: var(--mfw-theme-bg);
	padding: 5px;
	transition: background-color 200ms ease-out 0ms;
}

form input[disabled],
form input[readonly],
form textarea[readonly],
form textarea[disabled] {
	background-color: var(--mfw-theme-bg-lighter) !important;
}

form .SumoSelect { flex: 1; }

.formTable form input[type="text"],
.formTable form input[type="number"],
.formTable form input[type="email"],
.formTable form input[type="password"],
.formTable form input[type="date"],
.formTable form select,
.formTable form textarea,
.formTable form .SumoSelect,
form .SumoSelect > .CaptionCont {
	flex:unset;
}


.SumoSelect > .CaptionCont > label > i {
	position: absolute;
	top: 9px;
	right: 5px;
	left: auto;
	bottom: auto;
	background-image: none;
	width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #fff;
}
.SumoSelect.open > .CaptionCont > label > i {
	border-top: none;
	border-bottom: 8px solid #fff;	
}



.labels,
.sorter form:first-of-type {
	padding-right: 77px;
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
} 

.labels {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
}

.labels.sortable {
	padding-left: 15px;
}

.labels label {
	position: relative;
	float: left;
	font-weight: bold;
}

.labels label,
.formTable form input[type="text"],
.formTable form input[type="number"],
.formTable form input[type="email"],
.formTable form input[type="date"],
.formTable form select,
.formTable form textarea,
.formTable form div.col,
.formTable form .SumoSelect > .CaptionCont {
	min-width: 100px;
	width: var(--mfw-col-width);
	padding: 3px;
	font-size: 11px;
	margin-right: 5px;
}

.labels label:last-of-type { margin-right: 0; }
.formTable form:last-child { margin-right: 0; }

.formTable form input[type="number"] {
	min-width: 30px;
}
.formTable form div.col {
	position: relative;
	float: left;
	text-align: center;
}

.formTable form .SumoSelect {
	min-width: 100px;
	margin-right: 5px;
	width: var(--mfw-col-width);
}
.formTable form .SumoSelect > .CaptionCont { 
	width: 100%;
	margin-right: 0;
}



.sorter input[type="submit"],
.sorter form.formX {
	position: absolute;
	right: 0;
	top: 0;
}

.sorter form:not(.formX) input[type="submit"] {
	right: 20px;
}




.formTable form input[type="text"],
.formTable form input[type="number"],
.formTable form input[type="email"],
.formTable form input[type="date"],
.formTable form select,
.formTable form textarea,
.formTable form .SumoSelect > .CaptionCont {
	margin-bottom: 5px;
}


form input[type="text"]:focus,
form input[type="number"]:focus,
form input[type="password"]:focus,
form input[type="email"]:focus,
form input[type="date"]:focus,
form select:focus,
form textarea:focus,
form .SumoSelect.open > .CaptionCont {
	background-color: #393B3E;
}

@media(max-width:500px){
	.fRow label { width: 100% !important; }
	.fRow input,
	.fRow select { width: 100% !important; }
}


.SumoSelect.open > .optWrapper {
	top: 30px;
	box-shadow: 0 0 10px rgba(0,0,0,0.3);
	border:none;
	border-radius: 0;
	color: #fff;
	background-color: var(--mfw-theme-bg);
}

.SumoSelect > .optWrapper > .options li.opt {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
	border-radius: 0 !important;
	border-bottom: 1px #6f6f6f solid;
}

.SumoSelect .select-all.partial > span i,
.SumoSelect .select-all.selected > span i,
.SumoSelect > .optWrapper.multiple > .options li.opt.selected span i {
	background-color:var(--mfw-yellow);
}

@media(hover:hover){
	.SumoSelect > .optWrapper > .options li.opt:hover {
		background-color: #393B3E;
	}
}


a.button,
input[type="submit"]
{
	color: var(--mfw-theme-bg);
	border: 2px var(--mfw-theme-bg) solid;
	background-color: transparent;
	padding: 0.5em 1em 0.5em 1em;
	position: relative;
	float: right;
	cursor:pointer;
	transition: background-color 200ms ease-out 0ms, color 200ms ease-out 0ms;
}

.responsiveTable input[type="submit"],
.formTable input[type="submit"] {
	font-size: 11px;
	padding: 1px 5px;
	margin-right: 5px;
	clear: none;
	float: left;
}
.responsiveTable form.formX input[type="submit"],
.formTable form.formX input[type="submit"] {
	margin-right: 0;
}

form.formX {
	width: 20px;
}

@media(hover:hover)
{
	a.button:hover,
	input[type="submit"]:hover {
		background-color: var(--mfw-theme-bg);
		color: var(--mfw-theme-app-bg);
	}
}
a.button:active,
input[type="submit"]:active {
	background-color: #393B3E;
	color: var(--mfw-theme-app-bg);
}

/* sorter */
#sortWrap,
.sorter,
.sortPlaceHolder {
	position: relative;
	float: left;
	clear: both;
	width: 100%;
}
 

#sortWrap,
.sortWrapGroup { 
	transition: filter 200ms ease-out 0ms;
	margin-bottom: 10px;
}


#sortWrap.blocked,
.sortWrapGroup.blocked {
	pointer-events: none;
	filter: blur(3px);
}

.sorter { 
	background-color: #fffff0;
	border-bottom: 1px var(--mfw-theme-border) solid;
	margin-bottom: 5px;
}
.sorter.sortable {
	padding-left: 16px;
}

.sorter::before {
	content:'';
	background-image: url(../../../pic/icon_sort.svg);
	background-repeat: no-repeat;
	background-size: 100% auto;
	width: 12px;
	height: 12px;
	display: block;
	position: absolute;
	left: 0;
	top: 5px;
	opacity: 0.5;
	transition: opacity 100ms ease-out 0ms;
	cursor: ns-resize;
}

@media(hover:hover){
	.sorter:hover::before {
		opacity: 1;
	}
}

.sortPlaceHolder {
	background-color: #E1E1D4;
	height: 45px;
}