/* general */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font: 16px/1.4 'Mulish', sans-serif;
  color: #333;
  background: #e3e9ff;
}

p {
  margin: 0 0 20px;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

button:focus,
input[type="text"]:focus {
  outline: none;
}

#wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
}

.invitation {
  background: #fff;
  border-radius: 5px;
  box-shadow: 5px 5px 20px -5px rgba(0, 0, 0, 0.2);
  margin: 50px auto;
  max-width: 800px;
}

/* header */
#header {
  background: #70b3ff;
  color: #fff;
  padding: 20px 30px;
  border-radius: 5px 5px 0 0;
}

#header h1 {
  font-size: 24px;
  font-weight: 400;
}

/* main */
.main {
  padding: 30px;
}

/* invite form */
#inviteForm {
  position: relative;
  margin: 0 0 20px;
}

#inviteForm input {
  border: 1px solid #eee;
  padding: 10px 100px 10px 10px;
  width: 100%;
  height: 50px;
  font: 16px/1.4 'Mulish', sans-serif;
  color: #333;
}

#inviteForm button {
  padding: 0 1em;
  font: 16px/1.4 'Mulish', sans-serif;
  background: #70b3ff;
  color: #fff;
  border-radius: 0;
  border: 0;
  cursor: pointer;
  position: absolute;
  right: 5px;
  top: 5px;
  height: 40px;
  transition: opacity 0.3s linear;
}

#inviteForm button:hover {
  opacity: 0.7;
}

/* show hide */
.showHide {
  margin: 0 0 20px;
}

.showHide input[type="checkbox"] {
  margin: 0 0 0 5px;
}

/* invited list */
#invitedList li {
  padding: 20px;
  margin: 0 0 10px;
  border-radius: .2em;
  border: 1px solid #eee;
}

#invitedList li span,
#invitedList li input[type="text"] {
  font: 20px/1.4 'Mulish', sans-serif;
  margin: 0 0 5px;
  display: block;
}

#invitedList li input[type="text"] {
  border: 1px solid #eee;
  padding: 10px 100px 10px 10px;
  width: 100%;
  height: 50px;
  color: #333;
}

#invitedList li label {
  font-size: 14px;
  display: block;
  margin: 0 0 10px;
  color: rgba(112, 112, 112, .55);
}

#invitedList li label input[type="checkbox"] {
  margin: 0 0 0 5px;
}

#invitedList li button {
  font-size: 14px;
  margin: 0 5px 0 0;
  border-radius: 3px;
  padding: 5px 10px;
  color: white;
  background: #70b3ff;
  border: 0;
  cursor: pointer;
  transition: opacity 0.3s linear;
}

#invitedList li button:last-child {
  background: #ff7f7f;
}

#invitedList li button:hover {
  opacity: 0.7;
}

/* 
responded 
---------
*/
#invitedList li.responded {
  transition: 0.4s;
  border-color: #70b3ff;
}

#invitedList li.responded label,
#invitedList li.responded span {
  transition: 0.4s;
  color: #70b3ff;
}

@media only screen and (max-width: 840px) {
  .invitation {
    margin: 20px;
  }
}

@media only screen and (max-width: 640px) {

  body,
  #inviteForm input,
  #inviteForm button {
    font-size: 14px;
  }

  #header h1 {
    font-size: 20px;
  }

  #invitedList li span,
  #invitedList li input[type="text"] {
    font-size: 16px;
  }

  #invitedList li button {
    font-size: 12px;
  }
}