.error {color:red}
p#form_error {text-align:center; margin-bottom:1em;}
.center {text-align:center}
input.error {border: solid 2px red; color:#000}
textarea.error {border: solid 2px red; color:#000;}
form label {
	width: 120px; /* label width *//* label margin = (input left margin) - (label width) */
	margin-right: 10px; /* label margin */
}
form label.long, form p.label {
	margin-left: 120px; /* subjective */
	width: 390px; /* (textarea width) + (label width) + (label margin) - (left margin) */
}
form label span {
	color: #900; /* color of required asterisk */
}
form input, form textarea, form select {
	margin-left: 130px; /* (label width) + (label margin) */
	width: 400px; /* subjective */
}
form textarea {
	width: 400px; /* subjective, recommend: (3/2)(input width) */
}
form p.desc {
	margin-left: 130px; /* (label width) + (label margin) */
}
form .checks label {
	margin-left: 140px; /* (label width) + 2(label margin) */
}
form .checks input {
	margin-left: 130px; /* (label width) + (label margin) */
}

/*
	The following makes Internet Explorer 6.x play nicely.
	These fix the double float margin bug.
*/
* html form .checks input {
	margin-left: 70px;  /* (1/2)((label width) + (label margin)) */
}
* html form .checks label {
	margin-left: 130px; /* (label width) + (label margin) */
	height: 1em;
}
form {
	margin: 0 0 1em;
}

form label {
	/*
		A label must precede the form element in the HTML
		You must keep the top padding for some browsers to keep the label and the form element looking on the same line
	*/
	float: left;
	text-align: right;
	padding-top: 0.2em;
	font-weight: bold;
	font-size: 1em;
}

form label.long {
	/*
		If your label text does not fit in the left-hand side, consider this class
	*/
	float: none;
	display: block;
	text-align: left;
}

form label.long:after {
	content: "";
}

form input, form textarea, form select {
	/*
		These items must immediately follow the LABEL item associated with it and followed by a BR (see below).
		The following width must be 10pixels wider than the width of the LABEL.
	*/
	display: block;
	margin-bottom: -0.5em;
}
form select[multiple="multiple"] {
	/*
		Mozilla has some weird concept of how to display multiple select boxes.
		For some reason, display: block; does not affect it.
		For more information, see https://bugzilla.mozilla.org/show_bug.cgi?id=342531
		This fixes that problem. DON'T FORGET YOUR BR TAG AFTER SELECT!
	*/
	margin-left: 0px;
}
form br {
	/*
		Always include a BR tag at the end of a line of items -- generally immediately following one of an INPUT, SELECT or TEXTAREA.
		Within div.checks, include the BR after the LABEL
	*/
	clear: left;
}

form input[type="radio"], form input[type="checkbox"],
form input[type="hidden"] {
	/*
		Keeps Mozilla browsers (and others) from making the RADIO and CHECKBOXES too wide and/or tall.
		Also removes unnecessary borders from these browsers (They don't respond as expected)
	*/
	width: auto;
	height: 0.8em;
	border: 0;
}

form input[type="hidden"] {
	/*
		Firefox doesn't want to make them actually hidden, so I'll force it.
	*/
	display: none;
}

form p.desc {
	/*
		Use this immediately following an item that needs a longer description than can be handled by the LABEL.
		The left margin should be the same as INPUT, TEXTAREA and SELECT objects.
	*/
	display: block;
	margin-top: -0.4em;
	margin-bottom: 1em;
	font-style: italic;
	font-size: 0.9em;
}


/*
	The following section is for reversing the display of CHECKBOX and RADIO INPUTs.
	Surround the section of items with <fieldset class="checks"></fieldset> or <div class="checks"></div>.
	It is highly recommended to use FIELDSET over DIV when there are multiple items.
	In the section, the INPUT precedes the LABEL and the BR comes last (after the label).
*/
form .checks label {
	/*
		Overrides for previously defined stuff and changes.
		Left margin must be 10pixels more than "form input, form select" etc.
	*/
	float: none;
	width: auto;
	clear: none;
	display: block;
	text-align: left;
	height: 2em;
	padding-top: 0;
	margin-bottom: -1em;
}

form .checks label:after {
	/*
		Makes the ":" not generated after the LABEL.
	*/
	content: "";
}

form .checks input {
	/*
		Left margin is the same value as "form input, form select" etc.
	*/
	float: left;
	text-align: right;
	margin-bottom: 0.5em;
	width: auto;
}

/*
	End reverse checks/radios section
*/


/*
	I found my own IE CSS display bug. I call it the "IE sucks, so it redraws the top border all over the fieldset like a jerk bug."
*/
* html form fieldset p.desc, * html form .checks p.desc { margin-top: 0; }
* html form p.desc { margin-top: -1em; }
* html form input, * html form textarea, * html form select,
* html form .checks input, * html form .checks label {
	margin-top: 0;
	margin-bottom: 0;
}
* html form fieldset br {
	/*
		Hooray! We have a fix!
		For some crazy reason, IE lets me style its BR tag.
	*/
	line-height: 0.5em;
	font-size: 0.5em;
}
