* {
  margin: 0;
  padding: 0;
}
html, body {
  width: 100%;
  height: 100%;
}

/******************************************************************************/

.before, .after {
  width: 100%;
}
.before {
  height: 100%;
}
.after {
  display: none;
  background-color: #000;
}

/******************************************************************************/

.drop-zone {
  display: table;
  width: 100%;
  height: 100%;
  background-color: #dedede;
  text-align: center;
}
.drop-zone span {
  display: table-cell;
  vertical-align: middle;
  font-size: 1em;
}

/******************************************************************************/

.info {
  position: fixed;
  padding: 10px 0 0 30px;
  color: #fff;
}

.output {
  padding: 20px;
  padding-top: 60px;
  background-color: #000;
}
/* Clearfix */
.output:before, .output:after { content: ""; display: table; }
.output:after { clear: both; }

.column {
  margin: 0 20px 0 10px;
  float: left;
}

.bar {
  width: 165px;
  background-image: url("../res/grid.svg");
  background-position: right bottom;
  background-repeat: repeat-y;
}
.bar.empty {
  background: none;
}

.bar-number {
  float: left;
  width: 35px;
  height: 100%;
  background: #777;
  border: solid #fff;
  border-width: 1px 1px 0 1px;
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
.bar-number span {
  position: absolute;
  width: 35px;
  color: #fff;
  font-size: 10px;
  text-align: center;
  line-height: 20px;
}

.note {
  position: absolute;
  width: 15px;
  height: 4px;
}
.note-r { width: 25px; background: #f00; }
.note-w { background: #fff; }
.note-b { background: #08f; }

.note.long { width: 11px; }
.long.note-r { width: 21px; background: #f00; }
.long.note-w { background: #fff; }
.long.note-b { background: #08f; }

.bpm {
  position: absolute;
  margin-left: 35px;
  width: 130px;
  border-bottom: 1px solid #0f0;
}
.bpm span {
  display: block;
  margin-left: 132px;
  font-size: 8px;
  color: #0f0;
}
