fieldset {
  padding: 1em;  
  border: 1px solid #aaa;
  background: #eee;
}

legend {
  font-weight: bold;
}

label {
  display: block;
  font-weight: bold;
  margin-bottom: 0.5em;
}

input[type="date"],
input[type="email"],
input[type="number"],
input[type="password"],
input[type="tel"],
input[type="text"],
input[type="url"] {
  border: 1px solid #aaa;
  padding: 0.25em;
  border-radius: 3px;  
  box-shadow: inset 0 1px 7px rgba(0, 0, 0, 0.1);
}

input[type="email"]:hover, input[type="email"]:focus,
input[type="number"]:hover, input[type="number"]:focus,
input[type="password"]:hover, input[type="password"]:focus,
input[type="tel"]:hover, input[type="tel"]:focus,
input[type="text"]:hover, input[type="text"]:focus,
input[type="url"]:hover, input[type="url"]:focus {
  outline: none;
  border: 1px solid #4d90fe;
  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3);
  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.3);
}

select {
  -webkit-appearance: button;
  -webkit-border-radius: 3px;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  -webkit-padding-end: 20px;
  -webkit-padding-start: 8px;
  -webkit-user-select: none;
  background-image: url("../images/select.png"),
                    -webkit-linear-gradient(#fafafa, #f4f4f4 40%, #e5e5e5);
  background-position: center right;
  background-repeat: no-repeat;
  border: 1px solid #aaa;
  color: #555;
  font-size: inherit;
  margin: 0;
  overflow: hidden;
  padding-top: 2px;
  padding-bottom: 2px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

select:enabled:hover {
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  background-image: url("../images/select.png"),
                    -webkit-linear-gradient(#fefefe, #f8f8f8 40%, #e9e9e9);
  color: #333;
}


button,
input[type="button"],
input[type="submit"] {
  -webkit-border-radius: 3px;
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  -webkit-user-select: none;
  background: -webkit-linear-gradient(#fafafa, #f4f4f4 40%, #e5e5e5);
  border: 1px solid #aaa;
  color: #444;
  font-size: inherit;
  margin-bottom: 0;
  min-width: 4em;
  padding: 3px 12px;
}

button:hover ,
input[type="button"]:hover ,
input[type="submit"]:hover {
  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  background: #ebebeb -webkit-linear-gradient(#fefefe, #f8f8f8 40%, #e9e9e9);
  border-color: #999;
  color: #222;
}

button:active,
input[type="button"]:active,
input[type="submit"]:active {
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
  background: #ebebeb -webkit-linear-gradient(#f4f4f4, #efefef 40%, #dcdcdc);
  color: #333;
}

button:focus,
input[type="button"]:focus,
input[type="submit"]:focus,
select:focus {
  -webkit-box-shadow: inset 0 1px 2px white,
      0 1px 2px rgba(0, 0, 0, .2),
      0 0 1px #c0c0c0,
      0 0 1px #c0c0c0,
      0 0 1px #c0c0c0;
  -webkit-transition: border-color 200ms;
  /* We use border color because it follows the border radius (unlike outline).
   * This is particularly noticeable on mac. */
  border-color: rgb(64, 128, 250);
  outline: none;
}