html, body {
  margin: 0;
  padding: 0;
  height: 100%;
}

#main {
  margin-left: auto;
  margin-right: auto;
  width: 780px;
  height: 430px;
  position: relative;
  border: 1px solid #FFF;
}

#info {
  width: 740px;
  font-family: sans;
  margin-top: 10px;
  margin-bottom: 10px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.5em;
}

#info h1 {
  margin-top: 0.2em;
  font-weight: normal;
}

#sample, #sample2 {
  width: 780px; 
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  margin-bottom: 10px;
  
  font-family: sans;
  font-size: 1.5em;
}

#game {
  font-size: 1.5em;
  margin-left: auto;
  margin-right: auto;
}

#sample table, #sample2 table {
  margin-left: auto;
  margin-right: auto;
}

#sample2 {
  max-height: 360px;
  height: expression(this.clientHeight > 200 ? "360px" : "auto");
  overflow: auto;
}

#results, #time_entry, #message {
  font-size: 1.5em;
  padding: 15px;
  border: #ACA;  
}

#results {
  font-size: 1.2em;
  margin-top: 40px;
  width: 750px;
  margin-left: auto;
  margin-right: auto;

}

#message {
  text-align: center;
  vertical-align: middle;
  color: #A00;
  width: 600px;
  margin-left: auto;
  margin-right: auto;

}
  
#time_entry h1 {
  margin-top: 0;
}

#time_entry {
  text-align: center;
}

#lesson, #topic {
  margin: 0;
  padding: 0;
  padding-left: 30px;
  background: #FAFAFA;
  font-size: 1.5em;
}

#topbox {
  position: relative;
}

#layout {
  position: absolute;
  right: 20px;
  top: 3em;
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-size: 0.8em;
}

#debug {
  position: absolute;
  right: 5px;
  top: 0.1em;
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-size: 0.6em;
  color: #FAFAFA;
}

#clock {
  position: absolute;
  right: 40px;
  top: 0.6em;
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-size: 0.8em;
  color: #000;
  font-weight: bold;
  
  display: none;
}

#lesson {
  padding-top: 10px;
}

#topic {
  border-bottom: 1px solid #AAA;
  padding-bottom: 10px;
  font-weight: normal;
}

.box {
  width: 50px;
  height: 50px;
  background-image: url(../img/border_tl.gif);
  background-color: #FAFAFA;
  position: absolute;
  font-family: courier monospace;
  font-size: 0.8em;
}

.box.base {
  background-color: #FEFEFE;
    
}

.tab {
  background-image: url(../img/bg_tab.gif);
  width: 70px;
}

.space {
  background-image: url(../img/bg_space.gif);
  width: 350px;
}

.caps {
  background-image: url(../img/bg_caps.gif);
  width: 90px;
}

.ret {
  background-image: url(../img/bg_ret.gif);
  width: 100px !important;
}

.plus {
  background-image: url(../img/bg_plus.gif);
  height: 95px !important;
}

.shift {
  background-image: url(../img/bg_shift.gif);
  width: 110px;
}

.shift2 {
  background-image: url(../img/bg_shift2.gif);
  width: 130px;
}

.disabled {
  color: #FFF;
  background-color: #FFF;
}

#numeric_keyboard {
  position: relative; 
  height: 250px; 
  width: 200px; 
  margin: 10px;
  margin-left: auto;
  margin-right: auto;
}

#numeric_keyboard .box {
  padding-left: 10px;
  padding-top: 5px;
  
  width: 40px;
  height: 45px;  
}

#keyboard {
  position: relative; 
  height: 250px; 
  width: 740px; 
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
}

#next_button, #start_button {
  padding: 5px 10px 5px 10px;
  font-size: 1.1em;
  position: absolute;
  bottom: 10px;
  right: 20px;
  width: 10em;
}

#start_button {
  width: 20em;
}

#exit_button, #contents_button {
  padding: 5px 10px 5px 10px;
  font-size: 1.1em;
  position: absolute;
  bottom: 10px;
  left: 20px;
  width: 15em;
}

#exit_button {
  width: 8em;
}

.err {
  background: #F00;
}

.omitted {
  background: #F88;
}

#keyboard .tl, #keyboard .tr, #keyboard .bl, #keyboard .br {
  position: absolute;
  width: 20px;
  height: 20px;
  margin-left: 10px;
  margin-top: 5px;
}

.tl {
  left: 0;
  top: 0;
}

.tr {
  left: 20px;
  top: 0;
}

.bl {
  left: 0;
  top: 20px;
}

.br {
  left: 20px;
  top: 20px;
}

.sample_grid span {
  display: block;
  height: 25px; 
  width: 15px;  
  margin-top: 6px;
}

span.enter {
  background: url(../img/cr.gif) no-repeat;
}

span.tabkey {
  background: url(../img/tab.png) no-repeat;
}
span.tabkey-line {
  background: url(../img/tab-line.png) repeat-x;
}

.sample_grid {
  border-collapse: collapse;
  border: 1px solid #AAA;
  padding: 0;
  margin: 1px 0 10px 1px;
  font-family: Courier New, monospace;
  font-weight: bold;
}

.sample_grid td {
  height: 37px; 
  width: 15px;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid #AAA;
}

#results h1 {
  font-weight: normal;
  font-variant: small-caps;
  font-size: 1.5em;
}

#results th, #results td {
  text-align: left;
  vertical-align: top;
  padding: 5px 1em 5px 0;
  border-bottom: 1px solid #EEE;
  border-top: 1px solid #EEE;
}

.minor {
  font-size: small;
}

#results table {
  border-collapse: collapse;
}

#clock img {
  position: relative;
  top: 3px;
}

.na, .complete, .incomplete {
  padding-left: 20px;
}

.na {
  background: url(../img/na.png) no-repeat 0px 6px;
}

.complete {
  background: url(../img/finished.png) no-repeat 0px 6px;
} 

.incomplete {
  background: url(../img/notstarted.png) no-repeat 0px 6px;
}

#game {
  margin-top: 150px;
}

#game td {
  border: none;
}

#textbox {
  margin-top: 5em;
  text-align: center;
}

#textbox textarea {
  font-family: sans;
  font-size: 1.5em;
  padding: 5px;
  border: 1px solid #AAA;

}

