form { width: 500px; }
form * { font-size: 100%; font-family: sans-serif; font-size: 12px; }
form p.description { margin-left: 1em; margin-right: 1em; }
form a.cancel { color: #FF0000; }

/* Field Containers and Padding */
form ul { margin: 0; padding: 0; }
form ul li { clear: both; padding: 1em; overflow: hidden; margin: 0; list-style: none; }
form ul li:hover { background: #FFFFE0; }
form ul li.error:hover { background: #FFE0E0; }
form.no_hover ul li:hover { background: none; }
form.no_hover ul li.error:hover { background: #FFE0E0; }
form.no_padding li { padding: 0 0 1em; }

/* Columns */
form .half_left,
form .half_right { width: 50%; padding-left: 0; padding-right: 0; margin: 0; }
form .half_left { clear: left; float: left; }
form .half_right { clear: none; float: right; }
form div.half_container { padding: 0 1em; overflow: visible; }
form span.half_left div.half_container { padding: 0 1em 0.5em 0;  }
form span.half_right div.half_container { padding: 0 0 0.5em 1em; }
form span.half_left.last,
form span.half_left.last div.half_container,
form span.half_right.last,
form span.half_right.last div.half_container,
form span.full.last { padding-bottom: 0; }

/* Labels and Inlining */
form label { line-height: 1; font-weight: bold; display: block; color: #000000; margin: 0 0 0.5em; white-space: nowrap; }
form label span.req { color: #C00000; float: none; margin: 0 0 0 0.5em; line-height: 1; display: inline; padding: 0; }
form span label { font-size: 85%; color: #404040; font-weight: normal; margin: 0.3em 0 0 0; display: block; }
form span label.choice { font-size: 100%; color: #000000; white-space: nowrap; display: inline; margin: 0; }
form span { line-height: 20px; float: left; margin: 0; padding: 0 0.4em 0 0; display: block; }
form span.full { width: 100%; margin: 0; padding: 0 0 0.5em; }

/* Fields */
form input.text,
form textarea,
form select { background: #FFFFFF; border-width: 1px; border-style: solid; border-color: #727272 #B4B4B4 #DADADA #B4B4B4; }
form input.text { height: 16px; padding: 2px 0 0; overflow: hidden; }
form input.choice { margin-right: 0; }
form textarea { padding: 2px 0; }
form select { height: 20px; padding: 2px 0; }
form ul.choices { margin: 0; padding: 0; }
form ul.choices li { list-style: none; margin: 0; padding: 0; white-space: nowrap; }
form ul.choices li:hover { background: transparent; }
form ul.choices.inline li { display: inline; margin: 0 1em 0 0; }
form ul.choices label { display: inline; font-weight: normal; }
form ul.choices input { margin: 0; }
form .disabled { -moz-opacity:0.66; opacity:0.66; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=66); }

/* Form Errors */
form ul li.error { background: #FFE0E0; }
form ul .error label,
form ul .error label.choice { color: #C00000; }
form ul .error span label { color: #E07070; }
form ul .error input.text,
form ul .error textarea,
form ul .error select { border-color: #993939 #BA5A5A #CD6D6D #BA5A5A; background: #FFF7F7; }

/* Field Widths */
form input.full,
form textarea.full,
form select.full { width: 100%; margin: 0; }
form input.large,
form textarea.large,
form select.large { width: 75%; }
form input.medium,
form textarea.medium,
form select.medium { width: 50%; }
form input.small,
form textarea.small,
form select.small { width: 25%; }

/* Fieldsets */
form fieldset { border: 1px solid #E0E0E0; padding: 0; margin: 0; }
form legend { font-weight: bold; margin: 0 0.5em; padding: 0 0.5em; color: #404040; font-size: 125%; }

/* Optional Field Sizes */
form.large { width: 650px; }
form.large * { font-size: 18px; }
form.large span { line-height: 28px; }
form.large input.text { height: 22px; padding: 4px 0 0; }
form.large textarea { padding: 3px 0 0; }
form.large select { height: 28px; padding: 4px 0; }
form.large legend { font-size: 20px; }
form.xlarge { width: 800px; }
form.xlarge * { font-size: 24px; }
form.xlarge span { line-height: 38px; }
form.xlarge input.text { height: 30px; padding: 6px 0 0; }
form.xlarge textarea { padding: 4px 0 0; }
form.xlarge select { height: 38px; padding: 6px 0; }
form.xlarge legend { font-size: 26px; }
form.large span label,
form.xlarge span label { font-size: 85%; }
form.large legend,
form.xlarge legend { font-size: 125%; }