html, body {
  height: 100%;
}

.card-header {
  background-color: #234890 !important;
}

/* Form Errors */
.errorlist {
  list-style-type: none;
  padding-left: 0;
  margin-bottom: 0.5rem;
  color: #dc3545;  /* Bootstrap danger color */
  font-size: 0.875rem;
}

.errorlist li {
  margin-bottom: 0.25rem;
}

/* Style for form field with errors */
.form-control.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

/* Non-field errors styling */
.form-errors {
  margin-bottom: 1rem;
}

.center-children, .mode-header, .center-header {
  text-align: center;
}

.other-textbox + .other-textbox, .mode ~ .carpool, select + textarea {
  margin-top: 2px;
}

.draw-header, .instructions-header, .privacy-header {
  font-weight: bold;
  text-decoration: underline;
}

.instructions em, .question-attention {
  text-decoration: underline;
}

label[class=error], .errorlist-jq-validation {
  color: red;
  font-weight: bold;
}

.errorlist-jq-validation {
  display: none
}

.other-position, .other-option, .other-barrier {
  display: inline;
  width: 50%
}

.hidden {
  display: none;
}

.progress-status {
  margin-bottom: 10px;
}

.progress-branch {
  font-weight: bold;
}

tr.slider-row > td {
  padding-top: 3rem;
  padding-right: 5rem;
  padding-bottom: 4rem;
}

.noUi-tooltip {
  font-size: 0.7em;
}


/* Map Classes */
.route-map {
  height: 400px;
  width: 100%;
  margin: 20px 0;
  border: 1px solid #ddd;
  border-radius: 5px;
}

.map-inputs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
  margin-bottom: 10px;
}

.map-inputs .form-group {
  flex: 1;
  min-width: 200px;
}

.calculate-route-btn {
  height: 38px;
}

.selected-route-info {
  margin-top: 15px;
}

@media (max-width: 768px) {
  .input-group {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  
  .input-group > * {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    border-radius: 4px !important;
  }
  
  .input-group-prepend,
  .input-group-append,
  .input-group-text {
    width: 100% !important;
    display: block !important;
    white-space: normal !important;
    text-align: left !important;
  }
  
  /* Fix border radius when stacked */
  .input-group > .form-control:not(:first-child),
  .input-group > .custom-select:not(:first-child) {
    border-top-left-radius: 4px !important;
    border-bottom-left-radius: 4px !important;
  }

  /* Map Classes */
  .route-map {
    height: 300px;
  }
  
  .map-inputs {
    flex-direction: column;
  }
  
  .map-inputs .form-group {
    width: 100%;
  }
  
  .calculate-route-btn {
    width: 100%;
  }
}
