/* Common */
	form {
		max-width: 40em;
	}

	input[type=radio], input[type=checkbox] {
		vertical-align: middle;
	}

	textarea,
	input,
	select,
	button,
	.button,
	.control_button {
		border: 2px solid #ccc;
		padding: 3px;
		margin: 0 4px 0 0;
	}

	textarea:focus,
	input:focus,
	select:focus,
	button:focus,
	.button:focus,
	.control_button:focus {
		border-color: #f96;
		box-shadow: none;
		outline: 0;
	}

	input[type=file] {
		border: none ! important;
	}

	input[type=submit],
	input[type=button],
	button,
	.button,
	.control_button {
		background: #ccc;
		font-weight: bold;
		cursor: pointer;
		line-height: 1;
	}

	input[type=submit]:hover,
	input[type=button]:hover,
	button:hover,
	.button:hover,
	.control_button:hover {
		background: #fc9;
		border-color: #fc9;
	}

	textarea, input[type=text] {
		width: 100%;
	}

	[readonly],
	[readonly]:focus {
		background: inherit;
	}

	.initial_selected { /* dev rules */
		border: 1px dashed pink;
	}

/* Layout */
	.fields.unselected,
	.sheet.unselected {
		display: none;
	}
	.fields_em {
		padding: 0;
		margin: 0 0 2em;
	}
	.fields_label {
		margin: 0 0 1em;
		padding: 5px 10px;
		background: #eee;
	}

	.field {
		padding: 5px 10px;
		margin: 1em 0;
	}
	.field_label {
		margin: 0 0 5px;
	}
	.field_control {
		margin: 0;
		padding: 0;
	}

	.option label {
		margin-right: 1em;
	}

/* Dependencies */
	.changed > .fields_label, .fields_label.changed,
	.field.changed .field_label label, .option.changed label, label.changed { /* dev rules */
		text-decoration: underline;
	}
	.invalid > .fields_label, .fields_label.invalid,
	.field.invalid input, .field.invalid textarea, input.invalid, textarea.invalid {
		color: red;
	}
	.valid > .fields_label, .fields_label.valid,
	.field.valid input, .field.valid textarea, input.valid, textarea.valid {
		color: green;
	}
	.required > .fields_label, .fields_label.required,
	.field.required label, label.required {
		font-weight: bold;
	}
	.disabled {
		opacity: 0.45;
	}
	.disabled .disabled {
		opacity: 1;
	}

/* Control button */
	.control_button {
		display: inline-block;
		padding: 1px 3px;
		cursor: pointer;
		line-height: 1;
		min-width: 8px;
		min-height: 12px;
		vertical-align: text-middle;
	}

	.control_button_dropdown:before {
		content: '\25bc';
	}
	.control_button_inc:before {
		content: '+';
	}
	.control_button_dec:before {
		content: '\2212';
	}

/* Tabs sheets*/
	.tab {
		display: inline-block;
		padding: 2px 10px;
		margin: 0 0 10px;
	}
	.selected.tab {
		background: #eec;
	}

	.sheet {
		margin: 0 0 30px;
		padding: 10px;
		border: 2px solid #ddb;
	}

/* Password */
	.control_button_password:before {
		content: '\a9';
	}
	.control_button_password_view:before {
		opacity: 0.5;
	}

/* Datetime */
	.date_control {
		white-space: nowrap;
		text-decoration: none;
	}
	.datetime .hours, .datetime .minutes {
		width: 2em;
		margin: 0 2px;
	}
	.datetime .hours {
		text-align: right;
	}
	.time_spliter:before {
		content: ':';
	}
	.date .control_button_dec, .date .control_button_inc,
	.datemonth .control_button_dec, .datemonth .control_button_inc,
	.datetime .control_button_dec, .datetime .control_button_inc {
		display: none;
	}

/* Number */
	.number .field_control input {
		width: 10em;
	}

/* Repeated -- dev rules */
	.repeated {
		border: 1px dashed #ccc;
	}
	.repeated_template {
		border: 1px dashed #c00;
	}
