/*
 * Variables
 */
/*
 * Box-sizing
 */
*, *:before, *:after {
  box-sizing: border-box; }

/*
 * Typography
 */
* {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit; }

html, body {
  font-family: 'Quicksand', sans-serif;
  font-size: 16px;
  font-weight: 300; }

h1, .h1 {
  font-size: 1.5rem;
  font-weight: 700;
  padding-bottom: 0.4em; }
  @media (min-width: 1600px) {
    h1, .h1 {
      font-size: 2rem; } }

b, .b {
  font-weight: 700; }

p {
  line-height: 1.2;
  margin-bottom: 0.5em; }
  p:last-child {
    margin-bottom: 0; }

a {
  color: inherit;
  outline: none !important;
  -moz-outline-style: none;
  text-decoration: underline;
  text-decoration-style: dashed; }
  a:hover {
    text-decoration-style: solid; }

/*
 * Body
 */
body {
  overflow: hidden; }

/*
 * Overlays
 */
.overlay {
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  color: white; }
  .overlay.error-overlay {
    display: none;
    top: 0;
    z-index: 9999;
    background-color: #de2537; }
    .overlay.error-overlay.visible {
      display: block; }
  .overlay.info-overlay {
    top: 100%;
    z-index: 9000;
    background-color: #54b0cc; }
    .overlay.info-overlay.animated {
      transition: 0.4s ease-out; }
    .overlay.info-overlay.visible {
      top: 0; }
  .overlay .overlay-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 800px;
    padding: 1rem;
    text-align: center; }

@media not screen, (orientation: portrait), (max-width: 1023px), (max-height: 755px) {
  #device-error-overlay {
    display: block; } }

#intro-overlay #intro-logo {
  width: 200px;
  height: auto;
  margin-bottom: 2rem; }
#intro-overlay #accept-intro {
  display: inline-block;
  padding: 1rem;
  margin-top: 1rem;
  background-color: transparent;
  border: 3px solid white;
  border-radius: 6px;
  color: white;
  font-weight: 700;
  transition: 0.2s ease-out;
  -webkit-appearance: none;
  -moz-appearance: none; }
  #intro-overlay #accept-intro:hover {
    background-color: white;
    color: #54b0cc; }

/*
 * Content styles
 */
#content-wrapper {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  height: 100vh; }
  #content-wrapper #sidebar {
    display: flex;
    flex-direction: column;
    overflow: auto;
    background-color: #54b0cc;
    color: white;
    width: 400px; }
    @media (min-width: 1600px) {
      #content-wrapper #sidebar {
        width: 500px; } }
    #content-wrapper #sidebar #header {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      position: sticky;
      top: 0;
      z-index: 1000;
      padding: 1rem;
      background-color: #54b0cc; }
      #content-wrapper #sidebar #header #page-title {
        margin-bottom: 0; }
      #content-wrapper #sidebar #header #logo {
        width: auto;
        height: 2rem; }
        @media (min-width: 1600px) {
          #content-wrapper #sidebar #header #logo {
            height: 2.5rem; } }
    #content-wrapper #sidebar #parameter-form {
      padding: 1rem; }
      #content-wrapper #sidebar #parameter-form label {
        display: inline-block;
        margin-bottom: 0.5rem;
        font-weight: 700; }
      #content-wrapper #sidebar #parameter-form .parameter-description {
        margin-bottom: 0.5rem; }
      #content-wrapper #sidebar #parameter-form hr {
        border-color: white;
        border-width: 1px;
        margin-top: 1.5rem;
        margin-bottom: 1.5rem; }
      #content-wrapper #sidebar #parameter-form .range-wrapper {
        position: relative;
        padding-right: 3rem;
        padding-top: 0.8rem;
        padding-bottom: 0.8rem; }
        #content-wrapper #sidebar #parameter-form .range-wrapper .rangeslider {
          height: 0.5rem;
          background-color: white;
          box-shadow: none; }
          #content-wrapper #sidebar #parameter-form .range-wrapper .rangeslider .rangeslider__fill {
            background-color: #9ccb89;
            box-shadow: none; }
          #content-wrapper #sidebar #parameter-form .range-wrapper .rangeslider .rangeslider__handle {
            width: 2rem;
            height: 2rem;
            top: -0.75rem;
            background-color: white;
            background-image: none;
            border: none;
            box-shadow: none; }
            #content-wrapper #sidebar #parameter-form .range-wrapper .rangeslider .rangeslider__handle:after {
              content: none; }
        #content-wrapper #sidebar #parameter-form .range-wrapper .range-value {
          position: absolute;
          right: 0;
          top: 50%;
          transform: translateY(-50%);
          width: 3rem;
          text-align: center;
          font-weight: 700; }
      #content-wrapper #sidebar #parameter-form .radios-wrapper {
        display: flex;
        flex-direction: row;
        margin-top: 1rem; }
        #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper {
          padding: 0.25rem 0.5rem;
          border-right: 1px solid white; }
          @media (min-width: 1600px) {
            #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper {
              padding-left: 1rem;
              padding-right: 1rem; } }
          #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper:first-child {
            padding-left: 0; }
          #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper:last-child {
            padding-right: 0;
            border-right: none; }
          #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper input[type="radio"] {
            display: none;
            width: 0;
            height: 0;
            pointer-events: none; }
          #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper label {
            position: relative;
            font-weight: 500;
            padding-left: 1.4rem;
            margin-bottom: 0; }
            #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper label:before, #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper label:after {
              content: '';
              position: absolute;
              left: 0;
              top: 50%;
              width: 1rem;
              height: 1rem;
              border-radius: 50%;
              border: 1px solid white; }
            #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper label:before {
              transform: translateY(-50%); }
            #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper label:after {
              transform: translateY(-50%) scale(0);
              transition: 0.4s ease-out;
              background-color: white; }
          #content-wrapper #sidebar #parameter-form .radios-wrapper .radio-wrapper input[type="radio"]:checked + label:after {
            display: block;
            transform: translateY(-50%) scale(1); }
    #content-wrapper #sidebar #summary-calculation {
      display: flex;
      flex-grow: 1;
      align-items: center;
      padding: 1rem 0;
      margin: 0 1rem; }
      #content-wrapper #sidebar #summary-calculation #summary-calculation-box {
        width: 100%;
        padding: 1rem;
        border: 3px solid white; }
        #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table {
          padding: 0.5rem;
          text-align: left; }
          #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table th, #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table td {
            vertical-align: middle; }
          #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table th {
            padding-right: 1rem; }
          #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table tr:not(:last-child) th, #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table tr:not(:last-child) td {
            padding-bottom: 0.5rem; }
          #content-wrapper #sidebar #summary-calculation #summary-calculation-box #summary-calculation-table .result {
            font-weight: 700; }
    #content-wrapper #sidebar #footer {
      display: flex;
      padding: 1rem; }
      #content-wrapper #sidebar #footer #address {
        flex-grow: 1; }
      #content-wrapper #sidebar #footer #open-intro {
        display: inline-block;
        width: 2rem;
        height: 2rem;
        background-color: transparent;
        border: 3px solid white;
        border-radius: 100%;
        text-align: center;
        vertical-align: middle;
        color: white;
        font-weight: 700;
        transition: 0.2s ease-out;
        -webkit-appearance: none;
        -moz-appearance: none; }
        #content-wrapper #sidebar #footer #open-intro:hover {
          background-color: white;
          color: #54b0cc; }
  #content-wrapper #chart-wrapper {
    flex-grow: 1; }

/*# sourceMappingURL=main.css.map */
