.required::before {
  color: rgba(224, 69, 95, 1);
  content: '* ';
}

input, textarea {
  display: block;
  width: 100%;
  font-size: 1rem;
  color: #495057;
  line-height: 1.5;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: .25rem;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  padding: .375rem .75rem 6px 12px;
}

input:not(.mdc-text-field__input):focus, textarea:focus {
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
}

input:not(.mdc-text-field__input):disabled {
  background-color: #e9e9e9;
}

.form-group {
  margin: 30px 0;
}

.form-title {
  display: block;
  font-weight: bolder;
  margin-bottom: 12px;
}

.input-helper {
  margin-bottom: 12px;
}

.input-helper i {
  display: block;
  color: #555;
  font-size: 0.9rem;
  margin: 5px 0;
}

.entry__button input {
  width: calc(100% - 50px);
}

.entry, .entry-add {
  margin: 25px 0;
  position: relative;
}

.entry .select-type {
  margin-right: 5px;
  width: 22.5%;
}

.entry .select-depart {
  margin-right: 5px;
  width: 22.5%;
}

.entry .select-instructor {
  margin-right: 5px;
  width: 26%;
}

.entry .select-coord {
  margin-right: 5px;
  width: 22%;
}

.entry .mdc-icon-button {
  position: absolute;
  right: -10px;
  top: -7px;
}

.entry-add select {
  width: 20%;
}

select {
  padding: 6px 5px;
}

ol h4 {
  font-weight: 500;
  margin-bottom: 10px;
}

ol {
  padding-left: 1em;
}

.custom-form textarea, .custom-form input[type="text"] {
  width: calc(100% - 75px);
}

.custom-form.input-compact .entry {
  margin: 5px 0;
}

.delete-btn {
  color: rgba(224, 69, 95, 1);
}

.grade-entry {
  display: grid;
  grid-template-columns: 100px 2fr 80px .75fr 50px;
  grid-column-gap: 1em;
}

.grade-entry label {
  text-align: right;
  margin-top: 15px;
}

.grade-entry input {
  display: inline;
}

.form-section {
  margin-top: 20px;
}

.grid-7 {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /*grid-column-gap: 1em;*/
}

.full {
  display: grid;
  grid-template-columns: 15% 85%;
}

.full input[type="text"] {
  display: inline;
  width: 100%;
}

.half {
  display: grid;
}

/* meeting time instructors */
.half div select {
  width: 100%;
  margin: 5px 0;
}

.left {
  grid-template-columns: 30% 60% 10%;
}

.right {
  grid-template-columns: 10% 30% 60%;
}

.right label {
  padding-right: 20px;
}

.half.left > label, .half.right > label, .full > label {
  margin-top: 10px;
}

.half input[type="date"], .half input[type="time"] {
  display: inline;
  width: auto;
}

ul li {
  line-height: 1.5;
  text-align: justify;
}

.due {
  font-weight: bold;
  color: red;
}