/* Rechtlicher Footer – auf allen Seiten identisch, Optik/Abstand wie login.html .login-legal */
.legal-footer{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.55rem;
  margin-top:0px;
  margin-bottom:20px;
  font-size:.7rem;
  color:#999;
  text-align:center;
}
.legal-footer a{
  color:#888;
  text-decoration:none;
}
.legal-footer a:hover{
  color:#111;
  text-decoration:underline;
}
.legal-footer-sep{
  color:#c8c8cf;
}

/* Formularfehler-Markierung (Lastenheft Punkt 34) */
.field-error.form-control,
.field-error.form-select{
  border-color:#e5007d !important;
  background:rgba(229,0,125,.04) !important;
  box-shadow:0 0 0 .2rem rgba(229,0,125,.08) !important;
}
.dropzone.field-error{
  border-color:#e5007d !important;
  background:rgba(229,0,125,.04) !important;
}
.ios-row.field-error{
  border-radius:.85rem;
  outline:2px solid rgba(229,0,125,.55);
  outline-offset:2px;
  margin-bottom:20px;
}
.form-error-banner{
  display:none;
  border:1px solid rgba(229,0,125,.35);
  background:rgba(229,0,125,.06);
  color:#a5005e;
  border-radius:1rem;
  padding:.9rem 1.1rem;
  font-size:.85rem;
  font-weight:700;
  margin-bottom:1rem;
}
.form-error-banner.show{display:block}
.form-success-banner{
  display:none;
  border:1px solid rgba(20,150,90,.35);
  background:rgba(20,150,90,.07);
  color:#106b45;
  border-radius:1rem;
  padding:1.1rem 1.25rem;
  font-size:.9rem;
  font-weight:700;
  margin-bottom:1rem;
}
.form-success-banner.show{display:block}

/* Upload-Fortschritt (Lastenheft Punkt 36-40) */
.upload-progress-wrap{
  display:none;
  margin-top:.9rem;
}
.upload-progress-wrap.show{display:block}
.upload-progress-label{
  display:flex;
  justify-content:space-between;
  font-size:.76rem;
  font-weight:700;
  color:#555;
  margin-bottom:.4rem;
}
.upload-progress-track{
  height:.55rem;
  border-radius:999px;
  background:#eeeef1;
  overflow:hidden;
}
.upload-progress-bar{
  height:100%;
  width:0%;
  background:#e5007d;
  border-radius:999px;
  transition:width .15s ease;
}
