.upload_statement {
  border-radius: 4px;
  border: 3px dashed #c3c7ca;
  background: #FFF;
  padding: 0;
  margin: 0;
  position: relative;
  color: #c3c7ca;
  min-height: 250px;
  text-align: center;
  width: 490px;
  height: 280px;
}

.upload_statement .upload,
.upload_statement .uploaded,
.upload_statement .uploading {
  display: none;
}

.upload_statement.upload .upload {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.upload_statement .upload i {
  background: url(/static/img/upload.png) no-repeat 50% 100%;
  display: block;
  flex-grow: 1;
  min-height: 55px;
}

.upload_statement .upload h3 {
  font-size: 23px;
  margin: 0;
  padding: 0;
  color: #c3c7ca;
  flex-grow: 0.15;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}

.upload_statement .upload span {
  display: block;
  font-size: 13px;
  padding: 0;
  flex-grow: 0.15;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}

.upload_statement .upload .button {
  width: 140px;
  margin: 0 auto;
  flex-grow: 0.5;
}

.upload_statement .upload .file[type=file] {
  height: 100%;
  width: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

.upload_statement.uploading .uploading {
  display: flex;
  justify-content: center;
  align-content: center;
  flex-direction: column;
  flex-grow: 1;
  font-size: 23px;
}

.upload_statement.uploading .uploading:before {
  content: ".";
  color: transparent;
  display: block;
  width: 100%;
  min-height: 50px;
  height: 35%;
  background: url(/static/img/spinner.png) 50% 50% no-repeat;
  animation: spin 0.5s steps(12, end) infinite;
  background-size: 30px 30px;
}

.upload_statement.uploaded .uploaded {
  display: flex;
  justify-content: center;
  align-content: center;
  flex-direction: column;
  flex-grow: 1;
  font-size: 23px;
}

.upload_statement.over {
  background: #eaeef2;
  border-color: #74b2f0;
  color: #487aea;
}

.upload_statement.over h3 {
  color: #000;
}