/*forms*/
form
{
	font-size: 0;
	border-radius: 4px;
	overflow: hidden;
}
label, .subsection, input, textarea, button, select
{
	display: inline-block;
	font-family: Tahoma, Verdana, sans-serif;
	font-size: 14px;
	margin: 0;
	border: none;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
/*widths*/
form
{
	width: 100%;
	max-width: 100%;
}
label
{
	width: var(--dimension-large);
}
input, textarea, select
{
	width: calc(100% - var(--dimension-large));
}
form input:last-child
{
	margin-bottom: 0;
}
input[type=submit], button
{
	width: 100%;
}
input[type=checkbox] + label, 
input[type=radio] + label
{
	width: 100%;
	padding-right: calc(100% - var(--dimension-large) + var(--spacing-medium));
	overflow: hidden;
}
input[type=checkbox] + label::before, input[type=checkbox] + label::after, 
input[type=radio] + label::before, input[type=radio] + label::after
{
	left: var(--dimension-large);
	width: calc(100% - var(--dimension-large));
}
input[type="datetime-local"]
{
	padding: 0px 0px 0px 4px;
}
input[type="hidden"]
{
	display: none;
}
/*labels*/
label, .form-subsection
{
	background-color: var(--label-bg);
	padding: var(--spacing-small) var(--spacing-medium);
	text-align: right;
	vertical-align: top;
}
label a
{
	color: var(--label-link-color);
}
label a:visited
{
	color: var(--label-link-visited-color);
}
label a:hover
{
	color: var(--label-link-hover-color);
}
label a:active
{
	color: var(--label-link-active-color);
}
/** /
.subsection
{
	width: 100%;
	font-size: 13px;
	margin-bottom: 1px;
}
/**/
/*inputs*/
input, textarea
{
	padding: var(--spacing-small) var(--spacing-medium);
}
textarea
{
	resize: none;
}
select
{
	padding: calc(var(--spacing-small) / 2);
}
option
{
	padding: var(--spacing-small) calc(var(--spacing-medium) / 2);
}
input, textarea, select
{
	margin-bottom: var(--spacing-extra-small);
}
input:last-child, textarea:last-child, select:last-child
{
	margin-bottom: 0px;
}
/*buttons*/
button
{
	border-radius: var(--border-radius-small);
}
button a
{
	display: inline-block;
	width: 100%;
	height: 100%;
}
/*special inputs*/
label[data-type="textarea"], textarea
{
	height: var(--dimension-medium);
	vertical-align: top;
}
input[type=submit], button
{
	cursor: pointer;
	font-weight: bold;
	color: var(--color-desaturated-medium-dark);
}
button a, button a:hover, button a:active, button a:visited
{
	color: inherit;
	text-decoration: none;
}
input[type=checkbox], 
input[type=radio]
{
	display: none;
}
input[type=checkbox] + label, 
input[type=radio] + label
{
	position: relative;
	margin-bottom: var(--spacing-extra-small);
}
input[type=checkbox] + label::before, input[type=checkbox] + label::after, 
input[type=radio] + label::before, input[type=radio] + label::after
{
	background-repeat: no-repeat;
	background-position: center;
	display: block;
	position: absolute;
	top: 0;
	font-size: 0;
	content: "";
	height: 100%;
	cursor: pointer;
}
input[type=checkbox] + label::before,
input[type=radio] + label::before
{
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAAsSAAALEgHS3X78AAAAG3RFWHRTb2Z0d2FyZQBDZWxzeXMgU3R1ZGlvIFRvb2zBp+F8AAAAMklEQVQoz2P8z4AfMP5HplDAf0a4DON/CAdd739GBgbG/zikYUpGFRCvgGBQExFZ+AAA6jpEATz71IcAAAAASUVORK5CYII=);
	background-color: var(--input-bg);
}
input[type=checkbox] + label::after, 
input[type=radio]:not(:checked) + label::after
{
	display: none;
}
input[type=checkbox]:checked + label::after
{
	display: inline-block;
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAACXBIWXMAAAsSAAALEgHS3X78AAAAG3RFWHRTb2Z0d2FyZQBDZWxzeXMgU3R1ZGlvIFRvb2zBp+F8AAAAeUlEQVQ4y82TQRLAIAgDQ/3/kyteqsUoojc578pEQBRnJXcIWR85ELImvKhKKGRNANCUQKj4rywFi1fFCDaah5sOfTQPbwJH8/BP4Gg+DohOXvPxSQeuHh8yRDj9Uox3g1tFdbZ1XIRwvXkeG/fAE984IN6pK2/aVgHJ5FgBnA4IyQAAAABJRU5ErkJggg==);
}
input[type=radio]:checked + label::after
{
	display: inline-block;
	background-image: url(dot.png);
	background-position: 50% -1px;
}
input[type=file], input[type=date]
{
	padding: 0px;
}
input[type=file]
{
	vertical-align: top;
}
.form-file
{
	display: inline-block;
	position: relative;
	width: 100%;
	height: auto;
	margin-bottom: var(--spacing-extra-small);
	text-align: left;
	overflow: hidden;
}
.form-file label
{
}
.form-file input
{
	opacity: 0;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 0px;
	padding: 0px 0px calc(1em + 8px) 0px;
	margin: 0px;
	cursor: pointer;
}
.form-file .file-selection
{
	display: inline-block;
	width: calc(100% - var(--dimension-large));
	background-color: var(--input-bg);
	height: auto;
	padding: var(--spacing-small) var(--spacing-medium);
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	font-size: 14px;
	color: var(--input-color);
}
.form-file input:valid + .file-selection::after
{
	content: attr(data-file-selected);
}
.form-file input:invalid + .file-selection::after
{
	content: attr(data-file-not-selected);
}
.form-error
{
	margin-bottom: var(--spacing-medium-small);
	padding: var(--spacing-small) var(--spacing-medium);
	background-color: var(--color-error);
	color: var(--color-desaturated-light);
	border-radius: var(--border-radius-small);
	text-align: left;
}
/*submenu below form*/
form + .submenu
{
	margin-top: var(--spacing-medium);
}
/*form and table adjascent*/
form + form,
form + table,
table + form,
a + br + table,
table + button,
table + a button
{
	margin-top: var(--spacing-medium);
}
.submenu + form
{
	margin-top: var(--spacing-medium);
}
/*gecko idiosyncracies*/
@-moz-document url-prefix() {
    option
	{
		padding: 0px;
	}
}
