div.gmForm form {
  margin: 0;
  padding: 0;
}

div.gmForm h2 {
  font-size: 1.2em;
}

div.gmForm .gem_form_required {
  padding: 0 .25em;
}

#gem_form_required_marker {
  padding: 0 .5em .5em .5em;
}

div.gmForm li.horizontal { float: left; }

div.gmForm .boolean_checkbox label, 
div.gmForm .boolean_checkbox input,
div.gmForm .radio_boolean label.boolean_radio, 
div.gmForm .radio_boolean input {
  display:inline;
}

div.gmForm li.inline_checkbox { padding-top: 2.3em; }

div.gmForm input.text,
div.gmForm textarea {
  width: 100%;
}

div.gmForm textarea {
  min-height: 100px;
  line-height: 1em;  
}

div.gmForm fieldset {  
  float: left;  
  clear: both;  
  width: 800px;  
  margin: 0 0 -1em 0;  
  padding: 0 0 1em 0;  
  border-style: none;  
  border-top: 1px solid #ccc;
  background: url() left top repeat-x;
}

div.gmForm div.has_many { padding: 0 20px 30px 20px; }
div.gmForm div.has_many h2 { font-size: 1em; font-weight: bold }
div.gmForm div.has_many ul { margin: 10px 0 0 0; padding: 0; background: #ececec; } 
div.gmForm div.has_many ul li { border-top: 1px solid #ccc; margin: 0; padding: 2px;}

div.gmForm div.has_many_row { padding: 10px; background: #ececec; border-top: 1px solid #ccc;  }
div.gmForm div.has_many_row h4 { font-size: 1em; font-weight: bold; margin: 0; padding: 0; }
div.gmForm div.has_many_row ul { margin: 5px 0; padding: 0;  } 
div.gmForm div.has_many_row ul li { border: none; display: inline; padding: 2px; }
div.gmForm div.has_many_row ul li a { color: red; }
div.gmForm div.has_many_create_button { padding: 10px; float: left; }

div.gmForm div.has_many_form { background:#ececec; }
div.gmForm div.has_many_form ol { padding-top: 0; }



div.gmForm legend {
  padding: 0;
  background: none;
  border: none;
}

div.gmForm h2 { color: #333; font-size: 135%; padding-top: 10px; }

div.gmForm legend span {  
position: absolute;  
margin-top: 0.5em;
padding: 0 5px;
font-size: 1.25em;
color: green;
font-family: georgia, arial;
}

div.gmForm label,
div.gmForm div.labeldiv {
  display: block;
  line-height: 1.8;
  vertical-align: top;
  font-weight: bold;
}
div.gmForm fieldset ol {
  margin: 0;
  padding: 3em 1.4em 1em 1em;
}
div.gmForm fieldset li {
  list-style: none;
  padding: 5px;
  margin: 0;
}
div.gmForm fieldset fieldset {
  border: none;
  margin: 3px 0 0;
}
div.gmForm fieldset fieldset legend {
  padding: 0 0 5px;
  font-weight: normal;
}
div.gmForm fieldset fieldset label {
  display: block;
  width: auto;
}
div.gmForm em {
  font-weight: bold;
  font-style: normal;
  color: #f00;
}

div.gmForm fieldset fieldset label {
  margin-left: 123px; /* Width plus 3 (html space) */
}

/*-------------------------------------------------------------- 
- Validation Errors                                            -
---------------------------------------------------------------*/

div.gmForm .gem_form_element_error {
  color: red;
}

div.gmForm div#gem_form_error {
border-top: 1px solid red;
background: #ececec;
width: auto;
padding: .5em 1em;
margin-bottom: 1em;
}

div.gmForm div#gem_form_error h2 {
  color: red;
  margin: 0;
  padding: 0;
  font-size: 1.2em
}

div.gmForm div#gem_form_error ul {
  margin: 0;
  padding: .5em 2em;
  list-style: square;
}

/*-------------------------------------------------------------- 
- Submit Area                                                  -
---------------------------------------------------------------*/

div.gmForm fieldset.submit {
  border: none;
  padding-top: 10px;
  padding-bottom: 30px;
  clear: both;
  text-align: right;
}

div.gmForm fieldset.submit ul {
  margin: 0;
  padding: 0 30px 0 0;
}

div.gmForm fieldset.submit ul li {
  display: inline;
  list-style: none;
  margin: 0;
  padding: 0;
}

/*-------------------------------------------------------------- 
- Radiolist                                                    -
---------------------------------------------------------------*/

div.gmForm .radiolist label {
  display: inline;
  font-weight: normal;
}

div.gmForm .radiolist {
  margin: 0;
  padding: 0;
}

/*-------------------------------------------------------------- 
- Checklist                                                    -
---------------------------------------------------------------*/

div.gmForm .checklist {
  border: 1px solid #ccc;
  list-style: none;
  height: 8em;
  overflow: auto;
  width: 30em;
  padding: 8px;
}

div.gmForm .checklist, 
div.gmForm .checklist li { 
  margin: 0;
  padding: 0;
}


div.gmForm h3.checklist_label {
  clear: both;
  padding-top: 8px;
  color: #000;
}

div.gmForm .checklist label, 
div.gmForm h3.checklist_label {
  font-size: 100%;
  font-weight: bold;
}

div.gmForm h3.checklist_label {
  margin: 0;
  padding: 0;
}


div.gmForm ul.checklist li label {
  padding-left: 0;
  font-weight: normal;
  display: inline;
  line-height: 1.4em;
}

div.gmForm ul.checklist li:hover {
  background: #003366;
  color: #FFFFFF;
}

div.gmForm ul.checklist {
  background: #fff;
  margin-top: 2px;
}

div.gmForm li.unbreakable input, div.gmForm li.unbreakable label {
  display: inline;
}

div.gmForm div.checklist_label {
  font-weight: bold;
}

div.gmForm ul.checklist li {
  border-bottom: 1px solid #CCC;
  padding: 2px;
}

div.gmForm ul.checklist li input {
  display: inline;
}

div.gmForm .clear { clear: both; }

/* application specific */
#budget { padding: 10px; }

div.gmForm p.description { padding: 3em .4em 0 .4em; }
#budget .has_many_row, #budget .has_many_form { margin-left: 10px; margin-right: 10px; }
div.gmForm h3.sub_total,
div.gmForm h3.total,
div.gmForm h3.grand_total {
float: right;
margin: 0;
padding: 10px 20px;
font-size: 1em;
font-weight: normal;
color: green;
}

div.gmForm h3.grand_total { padding: 10px 30px; font-size: 1.2em; }
div.gmForm h3.total { font-weight: bold }
div.has_many_set { border: 1px dotted #ccc; padding: 20px; margin-top: 10px; }
div.has_many_set h3 { font-size: 1.1em; font-weight: bold; padding: 0; margin: 0; color: #333; }
div.has_many_set h4 { font-size: 1em; font-weight: normal; padding: 10px; margin: 4px 0 0 0; color: #333; }