* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  font-family: 'Roboto', sans-serif;
}

.other {
  color: gray;
  font-style: italic;
  margin-left: 5px;
}

#search {
  z-index: 2;
  background-color: #F44336;
  margin: 0 auto;
  width: 100%;
  position: fixed;
  box-shadow: 0 0.5px 1.5px rgba(0, 0, 0, 0.06), 0 0.5px 1px rgba(0, 0, 0, 0.12);
}

.school-kiemm #search {
  background-color: #DE403B;
}

#search .top-bar {
  position: relative;
  margin: 0 auto;
  max-width: 600px;
  padding: 10px;
  display: flex;
}

#search .input-wrapper {
  position: relative;
  flex-grow: 1;
  color: #FFFFFF;
}

#search input[type='search'] {
  display: block;
  background-color: #f6695e;
  color: inherit;
  border-radius: 2px;
  width: 100%;
  display: block;
  outline: none;
  border: 0;
  padding: 16px;
  font-size: 16px;
  transition: box-shadow 200ms ease-in-out;
}

#search input[type='search']:focus {
  background-color: #FFFFFF;
  color: #212121;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

#search input[type='search']:focus+button {
  color: #212121;
}

input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-results-button, input[type="search"]::-webkit-search-results-decoration {
  display: none;
}

input[type="search"]::-ms-clear {
  width: 0;
  height: 0;
}

button::-moz-focus-inner {
  border: 0;
}

/* WebKit, Blink, Edge */

input::-webkit-input-placeholder {
  color: #FFCDD2;
}

input:focus::-webkit-input-placeholder {
  color: #757575;
}

/* Mozilla Firefox 4 to 18 */

input:-moz-placeholder {
  color: #FFCDD2;
  opacity: 1;
}

input:focus:-moz-placeholder {
  color: #757575;
}

/* Mozilla Firefox 19+ */

input::-moz-placeholder {
  color: #FFCDD2;
  opacity: 1;
}

input:focus::-moz-placeholder {
  color: #757575;
}

/* Internet Explorer 10-11 */

input:-ms-input-placeholder {
  color: #FFCDD2;
}

input:focus:-ms-input-placeholder {
  color: #757575;
}

li:hover {
  background-color: lightgray;
  cursor: pointer;
}

.selected {
  background-color: lightgray;
}

#schedule {
  overflow: auto;
}

body.searched #search-space-filler {
  height: 70px;
}

.autocomplete-wrapper {
  background-color: white;
}

.autocomplete {
  max-width: 600px;
  margin: 0 auto;
  padding: 0;
}

.autocomplete li {
  list-style: none;
  padding: 10px;
}

#week-selector {
  z-index: 1;
  background-color: #F44336;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
  color: white;
}

.school-kiemm #week-selector {
  background-color: #DE403B;
}

#week-selector .week-wrapper {
  max-width: 600px;
  padding: 10px !important;
  margin: 0 auto;
  display: flex;
  -js-display: flex;
  padding: 10px 0;
}

#week-selector .current {
  display: flex;
  flex-grow: 1;
  align-items: center;
  justify-content: center;
}

#week-selector .current.changed {
  font-weight: bold;
}

#week-selector button {
  background: transparent;
  color: white;
  border: 0px;
  padding: 5px 10px;
  border-radius: 2px;
}

input {
  -webkit-appearance: none;
}

#search .fav {
  position: absolute;
  font-size: 1.8em;
  color: inherit;
  right: 8.5px;
  top: 8.5px;
  border: 0;
  padding: 4px;
  border-radius: 2px;
  background: none;
  display: none;
}

body.searched #search .fav {
  display: block;
}

#week-selector button:focus, #search #overflow-button:focus, #search .fav:focus {
  outline: none;
  background-color: #D32F2F;
}

#search #overflow-button {
  background: none;
  border: none;
  padding: 3px 9px;
  color: white;
  border-radius: 2px;
}

.hidden {
  display: none !important;
}

ul a {
  color: inherit;
  text-decoration: none;
}

#search .title {
  display: none;
}

body:not(.no-input) {
  overflow-y: scroll;
}

body.no-input #week-selector {
  display: none;
}

@media screen and (min-height: 400px) {
  body.no-input {
    background-color: #ececec;
  }
  body.no-input #search {
    height: 100%;
    background-color: #ececec;
    box-shadow: none;
  }
  body.no-input #search button {
    display: none;
  }
  body.no-input #search #overflow-button {
    position: absolute;
    display: block;
    top: 0;
    right: 0;
    color: #757575;
  }
  body.no-input #search .print-page {
    display: none;
  }
  body.no-input #search #overflow-button:focus {
    background-color: inherit;
    color: #212121;
  }
  body.no-input #search .logo-metis {
    background-image: url(/icons/logo.png);
    /* virtual center: http://javier.xyz/visual-center/ */
    transform: translate(-8%, -3%);
  }
  body.no-input #search .logo-kiemm {
    background-image: url(/icons/logo.svg);
  }
  body.no-input #search .logo {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    height: 100px;
    width: 100px;
    margin: 0 auto;
  }
  body.no-input #search .title {
    display: block;
    font-size: 55px;
    padding-bottom: 32px;
  }
  body.no-input #search .title .text {
    text-align: center;
    line-height: 55px;
  }
  body.no-input #search .top-bar {
    position: static;
    display: block;
    margin-top: 50vh;
    transform: translateY(-75%);
  }
  body.no-input #search input[type='search'] {
    background-color: #FFF;
  }
  /* WebKit, Blink, Edge */
  body.no-input #search input::-webkit-input-placeholder {
    color: #757575;
  }
  /* Mozilla Firefox 4 to 18 */
  body.no-input #search input:-moz-placeholder {
    color: #757575;
    opacity: 1;
  }
  /* Mozilla Firefox 19+ */
  body.no-input #search input::-moz-placeholder {
    color: #757575;
    opacity: 1;
  }
  /* Internet Explorer 10-11 */
  body.no-input #search input:-ms-input-placeholder {
    color: #757575;
  }
  body.no-input .tooltip {
    display: block;
    position: absolute;
    background-color: white;
    padding: 15px;
    margin: 32px 8px;
    border-radius: 2px;
    left: 16px;
    right: 16px;
  }
  body.no-input .tooltip::before {
    content: '';
    width: 24px;
    height: 24px;
    background-color: white;
    top: -12px;
    position: absolute;
    transform: rotate(45deg);
    z-index: -1;
  }
}

.tooltip {
  display: none;
}

@media screen and (max-width: 600px) {
  table table tr {
    display: flex;
    flex-direction: column;
  }
  table * {
    padding: 0;
    line-height: 13px;
    font-size: 13px;
  }
}

.error {
  text-align: center;
  margin-top: 100px;
  padding: 16px;
}

body.week-selector-not-visible #search {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
}

body.week-selector-not-visible #week-selector {
  box-shadow: inherit;
}

.print {
  display: none;
}

#notification {
  max-width: 600px;
  padding: 10px;
  margin: 0 auto;
}

#notification .box {
  display: flex;
  background-color: #e0e0e0;
  padding: 8px;
  border-radius: 2px;
  align-items: center;
}

#notification .text {
  padding-left: 8px;
}

.grow {
  flex-grow: 1;
}
