body {
  background: #f5f8f7;
}

.card {
  border: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

#standort-map {
  height: 300px;
}

.bewertung-detail-map {
  width: 100%;
  height: 230px;
  border-radius: 0.375rem;
  overflow: hidden;
}

.foto-list-item {
  min-width: 0;
}

.foto-list-main {
  flex: 1 1 auto;
  min-width: 0;
}

.foto-list-thumb {
  flex: 0 0 120px;
  width: 120px;
}

.foto-list-main .img-thumbnail,
.foto-list-main .badge {
  flex: 0 0 auto;
}

.foto-list-name {
  flex: 1 1 0;
  min-width: 0;
  width: 0;
}

.foto-list-link {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.foto-list-actions {
  flex: 0 0 auto;
}

.foto-list-thumb-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  background: #f8f9fa;
}

.foto-preview-list .list-group-item {
  position: relative;
}

.foto-preview-badge {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 1;
}

.foto-preview-remove {
  flex: 0 0 auto;
}

@media (max-width: 576px) {
  .foto-list-item {
    align-items: stretch !important;
  }

  .foto-list-main {
    gap: 0.75rem !important;
  }

  .foto-list-main .img-thumbnail {
    width: 96px !important;
    height: 96px !important;
  }

  .foto-list-thumb {
    flex-basis: 96px;
    width: 96px;
  }
}

@media (max-width: 576px) {
  .bewertung-detail-map {
    height: 190px;
  }
}

.map-provider-mapbs map-bs {
  display: block;
  width: 100%;
  height: 100%;
}

#wizard-controls {
  display: none !important;
}

.view-mode-step #wizard-controls {
  display: block !important;
}

.view-mode-step #wizard-controls {
  display: flex !important;
}

.wizard-controls-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.wizard-controls-nav {
  flex: 1 1 auto;
  justify-content: center;
  gap: 0.5rem;
  margin: 0;
}

.wizard-controls-nav .nav-link {
  min-width: 2.5rem;
  text-align: center;
}

@media (max-width: 768px) {
  .wizard-controls-row {
    flex-wrap: wrap;
    justify-content: center;
  }

  .wizard-controls-nav {
    order: 3;
    flex-basis: 100%;
  }
}

.view-mode-step .wizard-step {
  display: none;
}

.view-mode-step .wizard-step.is-active {
  display: block;
}

.wizard-step-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.wizard-step-header-indicator {
  flex: 0 0 auto;
  color: var(--bs-secondary-color);
  font-size: 0.875rem;
  font-weight: 400;
}

.view-mode-compact .wizard-step {
  display: block;
}

.view-mode-compact .wizard-step-header-indicator {
  display: none;
}

.autocomplete-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 1080;
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  display: none;
  max-height: 280px;
  overflow-y: auto;
}

.autocomplete-menu .autocomplete-item {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #f1f3f5;
  background: #fff;
  color: #111827;
  text-align: left;
  padding: 0.5rem 0.75rem;
  font-weight: 500;
}

.autocomplete-menu .autocomplete-item:last-child {
  border-bottom: 0;
}

.autocomplete-menu .autocomplete-item:hover,
.autocomplete-menu .autocomplete-item:focus {
  background: #f8f9fa;
}

.autocomplete-meta {
  font-size: 0.8rem;
  color: #374151;
  font-weight: 400;
}

#baumart-autocomplete-lat:empty,
#baumart-autocomplete-de:empty {
  display: none;
}

@keyframes frage-row-move-highlight {
  0%,
  60% {
    box-shadow: inset 0 0 0 9999px rgba(209, 231, 221, 0.95);
  }
  100% {
    box-shadow: inset 0 0 0 9999px rgba(209, 231, 221, 0);
  }
}

#fragen-table-body tr.frage-row-moved > td {
  animation: frage-row-move-highlight 3s ease-out 1;
}

.transient-banner-wrap {
  position: fixed;
  top: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2000;
  width: min(92vw, 860px);
  pointer-events: none;
}

.transient-banner {
  pointer-events: auto;
  margin: 0;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2);
  animation: transient-banner-slide-in 0.2s ease-out;
}

.transient-banner.is-hiding {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

@keyframes transient-banner-slide-in {
  from {
    opacity: 0;
    transform: translateY(-12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Help popover icon: render at 32px but keep the label the same height as
   plain-text labels, so fields stay aligned and are not pushed down. */
.help-icon {
  width: 32px;
  height: 32px;
  margin-top: -8px;
  margin-bottom: -8px;
  vertical-align: middle;
}
