body {
  /*
   * most browsers have a default size that is too
   * large for most people, so as a result most people
   * set font-size of the page to a little smaller.
   * I'm just following the trend here.
   */
  font-size: .8em;
  font-family: sans-serif,Arial,Geneva,Helvetica,Lucida Sans,Trebuchet,Verdana;
  /*
   * In order to get the wrapper to the center of the page
   * you have to set text-align to center here and then in
   * the wrapper reset the text-align to left and set margins
   * to auto on the sides.
   */
  text-align: center;
  margin: 0;
}

h1 {
  text-align: right;
  text-transform: uppercase;
  border-bottom: #000 2px solid;
  font-size: 1em;
  line-height: 1.2em;
  font-weight: normal;
  margin: 0;
  padding: 0;
}

/*
 * This is so the whole page fits within 800x600 res.
 * If you wantto change this width change the width
 * of .col_left and .col_right appropriately.
 * If you want a fluid width it's a bit more difficult,
 * contact me if you want that.
 */
.wrapper {
  width: 780px;
  text-align: left;
  margin: 2em auto;
}

.col_left {
  width: 560px;
  float: left;
/*
 * This rule is so we can get the h1 "title"
 * onto the same line as the "description" line
 */
  margin-top: -1.5em;
}

.col_right {
  width: 210px;
  float: right;
  /*
   * Set the margin-top here so that it doesn't
   * overlap the h1 "title".
   */
  margin-top: 1em;
}

.pic {
  border: 1px solid #000;
  padding: 5px;
  width: 200px;
  height: 200px;
}

table {
  border-collapse: collapse;
  margin: .5em 0;
  width: 100%;
  /*
   * This clear is mainly for the "character notes"
   * table which is below everything and spans the width.
   */
  clear: both;
}

th {
  text-transform: uppercase;
  border-bottom: #000 1px solid;
  font-size: .8em;
  font-weight: normal;
  vertical-align: bottom;
  padding: 0;
}
th.h2 {
  border-bottom: #000 2px solid;
  font-size: 1.2em;
  line-height: .70em;
  font-weight: bold;
  margin-top: 1.6em;
}
td {
  border-bottom: #000 1px solid;
  vertical-align: bottom;
  padding: 0;
  /* We have to set some widths because the text inputs
   * will not influence the size of those cells since they
   * are positioned absolutely.
   */
  width: 22em;
  height: 2em;
  padding: 0 1em;
}
td.small {
  width: 4em;
}
td.medium {
  width: 8em;
}
.numeric {
  text-align: right;
}

/*
 * If we set the width of the input text boxes to 100% and then
 * add a padding or margin, then it makes the textbox larger than
 * 100% and kind of voids the purpose of a margin or padding.
 * So we add a span around the inputs and then set the span to 100%
 * width and then we can set a margin or padding in the inputs.
 * Now however we have to get the text box the width of the span.
 * So, we set the span to position relative and the inputs we set
 * to position absolute and then tack the left and right edges of
 * the text boxes to the left and right edges of the spans.
 */
input, textarea {
  position: absolute;
  left: 0;
  right: 0;
  border: none;
  margin: 0 .6em;
  padding: .2em 0;
  bottom: 0;
}

span {
  position: relative;
  display: block;
  width: 100%;
  height: 2em;
}

/*
 * This is for the cells with textareas in them
 */
td.tall {
  height: 6em;
}
span.tall {
  height: 6em;
}
.tall textarea {
  height: 5.8em;
}

/*
 * The .grid class is for the tables with the black headers.
 */
.grid {
  border: #000 1px solid;
}

.grid th.h2 {
  line-height: 1em;
  font-size: 1em;
  background-color: #000;
  color: #fff;
  padding: .2em;
  text-align: center;
}

.grid td {
  border: #000 1px solid;
  padding: 0 .5em;
}

th.h3 {
  height: 2em;
  vertical-align: middle;
  text-align: center;
}

.grid input {
  margin: 0;
}

.grid .last {
  border-right: 1px solid #000;
}

/*
 * The .grid2 class is for the stats on the right. (health, endurance)
 */
.grid2 {
  border-collapse: separate;
  border-spacing: 2px;
}

.grid2 th {
  background-color: #000;
  color: #fff;
  padding: .2em;
  border: 2px solid #000;
  line-height: 2em;
  font-weight: bold;
  margin: 0;
  vertical-align: center;
  text-align: center;
}
.grid2 th.h3 {
  background-color: #fff;
  line-height: .70em;
  color: #000;
  font-weight: normal;
  vertical-align: bottom;
  border: none;
}

.grid2 td {
  border: 2px solid #000;
  padding: 0;
}

.grid2 span {
  padding: 0;
  margin: 0;
}

input,textarea {
  /*border: 1px solid #f88;*/
}
