html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
body {
  font-size: 15pt;
  font-family: sans, sans-serif;
  color: #56595f;
  perspective: 120vh;
}
@media (min-resolution: 120dpi) and (max-width: 480px) and (orientation: portrait), (min-resolution: 120dpi) and (orientation: landscape) {
  body {
    font-size: 12pt;
  }
}
@media (min-resolution: 192dpi) and (min-width: 1300px) {
  body {
    font-size: 20pt;
  }
}
@media (min-resolution: 240dpi) and (min-width: 1500px) {
  body {
    font-size: 25pt;
  }
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}
a img {
  border: none;
}
.cf {
  *zoom: 1;
}
.cf:before,
.cf:after {
  content: " ";
  display: table;
}
.cf:after {
  clear: both;
}
.siteContent {
  display: block;
}
.wrapper {
  margin: 0 auto;
  box-sizing: border-box;
  max-width: 1180px;
}
@keyframes logoSpinner {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes shake {
  10%,
  90% {
    transform: translate3d(-1px, 0, 0);
  }
  20%,
  80% {
    transform: translate3d(2px, 0, 0);
  }
  30%,
  50%,
  70% {
    transform: translate3d(-4px, 0, 0);
  }
  40%,
  60% {
    transform: translate3d(4px, 0, 0);
  }
}
.intro {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #333333 url(/images/bg-starting.jpg) center no-repeat;
  background-size: cover;
}
.intro .logo {
  width: 50vw;
  height: 50vw;
  max-width: 50vmin;
  max-height: 50vmin;
  background: rgba(20, 20, 20, 0.7);
  margin: 20vmin auto 0;
  border-radius: 100%;
  position: relative;
}
.intro .logo:before {
  content: '';
  box-sizing: border-box;
  border: 5px dashed rgba(255, 255, 255, 0.2);
  animation: logoSpinner 30s linear infinite;
  position: absolute;
  border-radius: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transition: opacity .3s;
}
.intro .logo img {
  width: 80%;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.intro form {
  max-width: 20em;
  width: 90%;
  margin: 2em auto 1em;
}
.intro form input,
.intro form button {
  padding: .6em 2.4em;
  margin: .6em 0;
  box-sizing: border-box;
  border: none;
  background: #ffffff;
  color: #56595f;
  font-size: 1.5em;
  display: block;
  width: 100%;
  outline: none;
  transition: all .3s;
}
.intro form input {
  background-color: rgba(255, 255, 255, 0.7);
}
.intro form input::-webkit-input-placeholder {
  color: #56595f;
  opacity: 1;
}
.intro form input::-moz-placeholder {
  color: #56595f;
  opacity: 1;
}
.intro form input:-ms-input-placeholder {
  color: #56595f;
  opacity: 1;
}
.intro form input:-moz-placeholder {
  color: #56595f;
  opacity: 1;
}
.intro form.state-error input {
  box-shadow: 0 0 10px 4px rgba(139, 0, 0, 0.9);
  animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}
.intro {
  transition: all .3s;
  pointer-events: auto;
  opacity: 1;
  transform-origin: center top;
  transform-style: preserve-3d;
}
.intro form {
  transition: all .3s;
  transform: translate(0, 50%) scale(1.2);
  opacity: 0;
  pointer-events: none;
}
body.state-ready .intro .logo {
  margin-top: 5vmin;
  max-width: 30vmin;
  max-height: 30vmin;
}
body.state-ready .intro .logo:before {
  opacity: 0;
}
body.state-ready .intro form {
  opacity: 1;
  transform: translate(0, 0) scale(1);
  pointer-events: auto;
}
body.state-authenticated .intro {
  transform: translateY(60%) scale(0.8);
  opacity: 0;
}
body.state-authenticated .intro,
body.state-authenticated .intro input,
body.state-authenticated .intro button,
body.state-authenticated .intro form {
  pointer-events: none;
}
.spinner {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 99;
  background-color: rgba(0, 0, 0, 0.8);
  opacity: 0;
  pointer-events: none;
  transition: opacity .1s;
}
.spinner .logo {
  width: 50vw;
  height: 50vw;
  max-width: 50vmin;
  max-height: 50vmin;
  background: rgba(20, 20, 20, 0.7);
  margin: 20vmin auto 0;
  border-radius: 100%;
  position: relative;
}
.spinner .logo:before {
  content: '';
  box-sizing: border-box;
  border: 5px dashed rgba(255, 255, 255, 0.2);
  animation: logoSpinner 30s linear infinite;
  position: absolute;
  border-radius: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transition: opacity .3s;
}
.spinner .logo img {
  width: 80%;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
body.state-waiting .spinner {
  opacity: 1;
  pointer-events: auto;
}
body > .menu {
  z-index: 90;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
body > .menu .cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(86, 89, 95, 0.8);
}
body > .menu .pane {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 90%;
  background-color: #ffffff;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  overflow: auto;
}
body > .menu .pane #closeMenu,
body > .menu .pane .item {
  padding: 3.5vh 1vw;
  display: block;
  border-bottom: 1px solid #dcdcdc;
  margin-left: 2vw;
  cursor: pointer;
}
body > .menu .pane #closeMenu {
  font-weight: bold;
  padding-top: 2em;
  padding-bottom: 2em;
}
body > .menu .pane #closeMenu .icon {
  display: inline-block;
  height: 1em;
  margin-right: 3em;
  vertical-align: baseline;
}
body > .menu .pane #closeMenu .icon img {
  height: 100%;
}
body > .menu .pane .item {
  padding-left: 3em;
  box-sizing: border-box;
}
body > .menu .pane .item.active {
  margin-left: 1vw;
  border-left: 1vw solid #56595f;
  font-weight: bold;
  background-color: #dcdcdc;
}
body > .menu .pane #logout {
  margin-top: auto;
  background-color: #dcdcdc;
  text-align: center;
  padding: 1em;
  font-weight: bold;
}
body > .menu {
  pointer-events: none;
  opacity: 0;
  transition: all .3s;
}
body > .menu .cover {
  opacity: 0;
  transition: inherit;
}
body > .menu .pane {
  transition: inherit;
  transform: translateX(-100%);
  box-shadow: 0 0 0 rgba(86, 89, 95, 0.8);
}
body.state-menu > .menu {
  pointer-events: auto;
  opacity: 1;
}
body.state-menu > .menu .cover {
  opacity: 1;
}
body.state-menu > .menu .pane {
  transform: translateX(0);
  box-shadow: 0 0 2vw rgba(86, 89, 95, 0.8);
}
.app {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
}
.app .navbar {
  height: 3em;
  background-color: #444a59;
  position: fixed;
  padding: 0;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  align-items: center;
}
.app .navbar a {
  display: inline-block;
  text-align: center;
  height: 1em;
  min-width: 1em;
  margin: 0 1em;
}
.app .navbar a img {
  height: 100%;
}
.app .navbar .ref {
  margin: 0 auto;
  height: 1.5em;
}
.app .screens {
  position: absolute;
  top: 3em;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 80;
}
.app .screens > * {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
  pointer-events: none;
}
.app .screens [data-screen] * {
  pointer-events: none;
}
.app .screens form .successTarget {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  display: none;
  opacity: 0;
}
.app .screens .main {
  display: flex;
  flex-wrap: wrap;
  opacity: 0;
}
.app .screens .main .title,
.app .screens .main .bt {
  width: 100%;
  padding-left: 1em;
  padding-right: 1em;
  box-sizing: border-box;
}
.app .screens .main .title {
  color: #ffffff;
  height: 4em;
  display: flex;
  align-items: center;
  background: #6b717c url(/images/bg-title.jpg) center no-repeat;
  background-size: cover;
}
.app .screens .main .bt {
  height: calc(50% - 2em);
  display: flex;
  justify-content: center;
  align-content: center;
  flex-wrap: wrap;
  background: center no-repeat;
  background-size: cover;
}
.app .screens .main .bt span {
  text-align: center;
  width: 100%;
  color: #ffffff;
  text-transform: uppercase;
  font-weight: 900;
  font-size: 1.7em;
}
.app .screens .main .bt .icon {
  height: 5vh;
  margin-top: 1em;
}
.app .screens .main .bt .icon img {
  height: 100%;
}
@media (orientation: landscape) {
  .app .screens .main .bt {
    height: calc(100% - 4em);
    width: 50%;
  }
}
.app .screens[data-show="main"] .main {
  pointer-events: auto;
  opacity: 1;
}
.app .screens .greenhouses {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .greenhouses .title {
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-pomiary.jpg) center no-repeat;
  background-size: cover;
}
.app .screens .greenhouses .data {
  overflow: auto;
}
.app .screens .greenhouses .data .item {
  display: block;
}
.app .screens .greenhouses .data .item a {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .greenhouses .data .item a .name {
  padding: .5em 1em;
  background-color: #dcdcdc;
  min-width: 20vw;
  text-align: right;
}
.app .screens .greenhouses .data .item a .icon {
  height: 1.2em;
}
.app .screens .greenhouses .data .item a .icon img {
  height: 100%;
}
.app .screens .greenhouses .data .item.stub {
  display: none;
}
.app .screens .greenhouses .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .greenhouses .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background-color: #37a836;
}
@media (orientation: landscape) {
  .app .screens .greenhouses .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="greenhouses"] .greenhouses {
  pointer-events: auto;
  opacity: 1;
}
.app .screens .measurements {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .measurements .title {
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-pomiary.jpg) center no-repeat;
  background-size: cover;
}
.app .screens .measurements .data {
  overflow: auto;
}
.app .screens .measurements .data .item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  cursor: pointer;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .measurements .data .item .name {
  padding: .5em 1em;
  background-color: #dcdcdc;
  min-width: 20vw;
  text-align: right;
}
.app .screens .measurements .data .item .icon {
  height: 1.2em;
}
.app .screens .measurements .data .item .icon img {
  height: 100%;
}
.app .screens .measurements .data .item.stub {
  display: none;
}
.app .screens .measurements .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .measurements .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background-color: #37a836;
}
@media (orientation: landscape) {
  .app .screens .measurements .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="measurements"] .measurements {
  pointer-events: auto;
  opacity: 1;
}
.app .screens .addMeasurement {
  opacity: 0;
  transition: all .3s;
}
.app .screens .addMeasurement .title {
  display: block;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-pomiary.jpg) center no-repeat;
  background-size: cover;
}
.app .screens .addMeasurement form {
  overflow: auto;
}
.app .screens .addMeasurement form label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .addMeasurement form label .name {
  font-size: .9em;
}
.app .screens .addMeasurement form label .name small {
  display: block;
  font-size: .6em;
  color: #9e9e9e;
}
.app .screens .addMeasurement form label input {
  border: none;
  background: #dcdcdc;
  padding: 1em 2em;
  max-width: 30vw;
  box-sizing: border-box;
  outline: none;
}
.app .screens .addMeasurement form .abort,
.app .screens .addMeasurement form .submit,
.app .screens .addMeasurement form .sproutsLink {
  text-align: center;
  padding-top: 1em;
}
.app .screens .addMeasurement form .abort > *,
.app .screens .addMeasurement form .submit > *,
.app .screens .addMeasurement form .sproutsLink > * {
  display: inline-block;
  border: none;
  color: #ffffff;
  padding: 1em 2em;
  font-size: 1em;
  text-transform: uppercase;
  font-weight: 900;
}
.app .screens .addMeasurement form .sproutsLink > * {
  background-color: #56595f;
  color: #ffffff;
}
.app .screens .addMeasurement form .submit > * {
  background-color: #37a836;
}
.app .screens .addMeasurement form .abort > * {
  background-color: #ce4141;
  margin-bottom: 2em;
}
.app .screens[data-show="addMeasurement"] .addMeasurement {
  opacity: 1;
  pointer-events: auto;
}
.app .screens .sprouts {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .sprouts .title {
  display: block;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-pomiary.jpg) center no-repeat;
  background-size: cover;
  flex: 0 0 auto;
}
.app .screens .sprouts .data {
  overflow: auto;
}
.app .screens .sprouts .data .item,
.app .screens .sprouts .data .new {
  display: block;
  align-items: center;
  padding: 1em;
  cursor: pointer;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .sprouts .data .item > .name,
.app .screens .sprouts .data .new > .name {
  font-size: 1.3em;
}
.app .screens .sprouts .data .item label,
.app .screens .sprouts .data .new label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  border: solid transparent;
}
.app .screens .sprouts .data .item label .name,
.app .screens .sprouts .data .new label .name {
  font-size: .9em;
}
.app .screens .sprouts .data .item label .name small,
.app .screens .sprouts .data .new label .name small {
  display: block;
  font-size: .6em;
  color: #9e9e9e;
}
.app .screens .sprouts .data .item label input,
.app .screens .sprouts .data .new label input {
  border: none;
  background: #dcdcdc;
  padding: 1em 2em;
  max-width: 30vw;
  box-sizing: border-box;
  outline: none;
}
.app .screens .sprouts .data .item .submit,
.app .screens .sprouts .data .new .submit {
  text-align: center;
  padding-top: 1em;
}
.app .screens .sprouts .data .item .submit > *,
.app .screens .sprouts .data .new .submit > * {
  display: inline-block;
  border: none;
  color: #ffffff;
  padding: 1em 2em;
  font-size: 1em;
  text-transform: uppercase;
  font-weight: 900;
  background-color: #37a836;
}
.app .screens .sprouts .data .item.stub,
.app .screens .sprouts .data .new.stub {
  display: none;
}
.app .screens .sprouts .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .sprouts .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background: #f5ba41;
  background: linear-gradient(to right, #fdcd55 0%, #f5b941 100%);
}
@media (orientation: landscape) {
  .app .screens .sprouts .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="sprouts"] .sprouts {
  opacity: 1;
  pointer-events: auto;
}
.app .screens .statuses {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .statuses .title {
  width: 100%;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-statusy.jpg) center no-repeat;
  background-size: cover;
  flex: 0 0 auto;
}
.app .screens .statuses a {
  width: 100%;
  flex: 1 0 30%;
  position: relative;
  border-left: 2vw solid;
  box-sizing: border-box;
  padding: 2em;
  color: #ffffff;
  font-weight: 700;
}
.app .screens .statuses a:nth-of-type(1) {
  background: #f5ba41;
  background: linear-gradient(to right, #fdcd55 0%, #f5b941 100%);
  border-color: #f5ba41;
}
.app .screens .statuses a:nth-of-type(2) {
  background: #ea6048;
  background: linear-gradient(to right, #ec6e55 0%, #e9563f 100%);
  border-color: #e9573f;
}
.app .screens .statuses a:nth-of-type(3) {
  background: #de4655;
  background: linear-gradient(to right, #e95463 0%, #dc4453 100%);
  border-color: #dc4453;
}
.app .screens .statuses a .name {
  float: left;
}
.app .screens .statuses a .icon {
  margin-top: 1em;
  display: inline-block;
  height: 3em;
  max-height: 7vh;
  float: left;
  clear: left;
}
.app .screens .statuses a .icon img {
  height: 100%;
}
.app .screens .statuses a .arrow {
  display: inline-block;
  height: 2em;
  float: right;
}
.app .screens .statuses a .arrow img {
  height: 100%;
}
@media (orientation: landscape) {
  .app .screens .statuses a {
    padding: 1em 2em;
    flex-basis: 20%;
    display: flex;
    align-items: center;
  }
  .app .screens .statuses a .name,
  .app .screens .statuses a .arrow,
  .app .screens .statuses a .icon {
    float: none;
    clear: none;
  }
  .app .screens .statuses a .name {
    order: 2;
  }
  .app .screens .statuses a .icon {
    margin-top: 0;
    margin-right: 2em;
    min-width: 3em;
    text-align: center;
    order: 1;
  }
  .app .screens .statuses a .arrow {
    margin-left: auto;
    order: 3;
  }
}
.app .screens[data-show="statuses"] .statuses {
  pointer-events: auto;
  opacity: 1;
}
.app .screens .addHive {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .addHive .title {
  display: block;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  padding: 1em 2em;
  background: #f5ba41;
  background: linear-gradient(to right, #fdcd55 0%, #f5b941 100%);
  flex: 0 0 auto;
}
.app .screens .addHive .data {
  overflow: auto;
}
.app .screens .addHive .data .item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  cursor: pointer;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .addHive .data .item .name {
  padding: .5em 1em;
  background-color: #dcdcdc;
  min-width: 20vw;
  text-align: right;
}
.app .screens .addHive .data .item .icon {
  display: inline-block;
  height: 2em;
  width: 2em;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}
.app .screens .addHive .data .item .icon img {
  height: 100%;
}
.app .screens .addHive .data .item.stub {
  display: none;
}
.app .screens .addHive .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .addHive .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background: #f5ba41;
  background: linear-gradient(to right, #fdcd55 0%, #f5b941 100%);
}
@media (orientation: landscape) {
  .app .screens .addHive .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="addHive"] .addHive {
  opacity: 1;
  pointer-events: auto;
}
.app .screens .pests {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .pests .title {
  width: 100%;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  padding: 1em 2em;
  background: #ea6048;
  background: linear-gradient(to right, #ec6e55 0%, #e9563f 100%);
  flex: 0 0 auto;
}
.app .screens .pests .data {
  overflow: auto;
}
.app .screens .pests .data .item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  cursor: pointer;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .pests .data .item .name {
  padding: .5em 1em;
  max-width: 80vw;
  text-align: left;
}
.app .screens .pests .data .item .icon {
  height: 1.2em;
}
.app .screens .pests .data .item .icon img {
  height: 100%;
}
.app .screens .pests .data .item.stub {
  display: none;
}
.app .screens .pests .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .pests .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background: #ea6048;
  background: linear-gradient(to right, #ec6e55 0%, #e9563f 100%);
}
@media (orientation: landscape) {
  .app .screens .pests .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="pests"] .pests {
  opacity: 1;
  pointer-events: auto;
}
.app .screens .addPest {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .addPest .title {
  display: block;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  padding: 1em 2em;
  background: #ea6048;
  background: linear-gradient(to right, #ec6e55 0%, #e9563f 100%);
  flex: 0 0 auto;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.app .screens .addPest .data {
  overflow: auto;
}
.app .screens .addPest .data .item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  cursor: pointer;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .addPest .data .item .name {
  padding: .5em 1em;
  background-color: #dcdcdc;
  min-width: 20vw;
  text-align: right;
}
.app .screens .addPest .data .item .icon {
  display: inline-block;
  height: 2em;
  width: 2em;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}
.app .screens .addPest .data .item .icon img {
  height: 100%;
}
.app .screens .addPest .data .item.stub {
  display: none;
}
.app .screens .addPest .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .addPest .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background: #ea6048;
  background: linear-gradient(to right, #ec6e55 0%, #e9563f 100%);
}
@media (orientation: landscape) {
  .app .screens .addPest .closeScreen {
    padding: .3em 0;
  }
}
.app .screens[data-show="addPest"] .addPest {
  opacity: 1;
  pointer-events: auto;
}
.app .screens .legend {
  opacity: 0;
  transition: all .3s;
  overflow: hidden;
}
.app .screens .legend h1 {
  animation: dancer 10s infinite;
  transform-origin: center;
  text-align: center;
}
@keyframes dancer {
  0% {
    transform: scale(1) translateY(0) rotate(0deg);
  }
  50% {
    transform: scale(2) translateY(5em) rotate(360deg);
  }
  100% {
    transform: scale(1) translateY(0) rotate(720deg);
  }
}
.app .screens[data-show="legend"] .legend {
  opacity: 1;
}
.app .screens .synchronization {
  opacity: 0;
  transition: all .3s;
  display: flex;
  flex-direction: column;
}
.app .screens .synchronization .title {
  width: 100%;
  font-weight: 900;
  font-size: 1.3em;
  color: #ffffff;
  text-transform: uppercase;
  padding: 1em 2em;
  background: url(/images/bg-bt-statusy.jpg) center no-repeat;
  background-size: cover;
  flex: 0 0 auto;
}
.app .screens .synchronization .closeScreen {
  text-align: center;
  padding: 2em 0;
}
.app .screens .synchronization .closeScreen .bt {
  font-size: 1.1em;
  cursor: pointer;
  display: inline-block;
  padding: 1em 3em;
  text-transform: uppercase;
  font-weight: bold;
  color: #ffffff;
  background-color: #37a836;
}
@media (orientation: landscape) {
  .app .screens .synchronization .closeScreen {
    padding: .3em 0;
  }
}
.app .screens .synchronization form {
  overflow: auto;
}
.app .screens .synchronization form label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em;
  border: solid transparent;
  border-width: 0 4vw;
  border-bottom: 1px solid #dcdcdc;
}
.app .screens .synchronization form label .name {
  font-size: .9em;
}
.app .screens .synchronization form label .name small {
  display: block;
  font-size: .6em;
  color: #9e9e9e;
}
.app .screens .synchronization form label input {
  border: none;
  background: #dcdcdc;
  padding: 1em 2em;
  max-width: 30vw;
  box-sizing: border-box;
  outline: none;
}
.app .screens .synchronization form .abort,
.app .screens .synchronization form .submit,
.app .screens .synchronization form .sproutsLink {
  text-align: center;
  padding-top: 1em;
}
.app .screens .synchronization form .abort > *,
.app .screens .synchronization form .submit > *,
.app .screens .synchronization form .sproutsLink > * {
  display: inline-block;
  border: none;
  color: #ffffff;
  padding: 1em 2em;
  font-size: 1em;
  text-transform: uppercase;
  font-weight: 900;
}
.app .screens .synchronization form .sproutsLink > * {
  background-color: #56595f;
  color: #ffffff;
}
.app .screens .synchronization form .submit > * {
  background-color: #37a836;
}
.app .screens .synchronization form .abort > * {
  background-color: #ce4141;
  margin-bottom: 2em;
}
.app .screens[data-show="synchronization"] .synchronization {
  pointer-events: auto;
  opacity: 1;
}
.toast {
  position: fixed;
  right: 0;
  bottom: 20vh;
  left: 0;
  pointer-events: none;
  z-index: 101;
  text-align: center;
  perspective: 120vh;
}
.toast .msg {
  color: #ffffff;
  font-size: .7em;
  background-color: rgba(0, 0, 0, 0.9);
  box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.8);
  border-radius: 2px;
  padding: 1em 2em;
  max-width: 70vw;
  display: inline-block;
  transition: all .3s, opacity .05s .25s;
  opacity: 0;
  transform-origin: 50% 0;
  transform: rotateX(90deg) translateY(-120%) scale(0.6);
}
.toast.visible .msg {
  opacity: 1;
  transition: all .3s, opacity .05s;
  transform: rotateX(0deg) translateY(0) scale(1);
}
