/* Jeder Abschnitt mit Abstand nach unten */
.hv-upload-section { margin-bottom: 1.5em; }

/* Fettdruck für Abschnitts-Überschriften und Labels */
.section-title,
.hv-upload-section > label,
.checkbox-grid label {
  font-weight: 600;
  display: block;
  margin-bottom: 0.5em;
}

/* Drag&Drop‐Zonen */
.hv-dropzone {
  border: 2px dashed #0073aa;
  padding: 1em;
  text-align: center;
  position: relative;
  cursor: pointer;
  margin-bottom: 0.5em;
}
.hv-dropzone.hover { background: #e3f2fd; }
.hv-dropzone input {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  opacity: 0; cursor: pointer;
}

/* Dateiliste mit Löschen-Button */
.hv-file-list { list-style: none; margin: 0.5em 0 1em; padding: 0; display: block; }
.hv-file-list li {
  display: inline-flex; align-items: center; background: #bbdefb; color: #333;
  font-size: 1rem; padding: 0.3em 0.6em; border-radius: 12px; margin: 0.2em;
}
.hv-file-list li button {
  background: none; border: none; margin-left: 0.5em; cursor: pointer; font-size: 1em; line-height: 1;
}

/* Radio-Group für Frist */
.hv-radio-group { margin-left: 1em; margin-bottom: 0.5em; }
.hv-radio-group label { display: inline-flex; align-items: center; margin-right: 1em; }
.hv-radio-group input[type="radio"] { margin-right: 0.5em; }

/* Bemerkungs-Textarea */
#hv-comments {
  width: 100%; min-height: 4em; padding: 0.5em; border: 1px solid #ccc; border-radius: 4px;
  margin-top: 0.5em; margin-bottom: 1em;
}

/* Checkbox-Grid */
.checkbox-grid label { display: block; margin-bottom: 0.8em; }

/* Submit-Button */
.submit-button {
  background: #0073aa; color: #fff; padding: 0.6em 1.2em; border: none; border-radius: 4px; cursor: pointer;
}

/* Fortschrittsanzeige */
.hv-progress { margin-top: 1em; background: #eee; border-radius: 4px; overflow: hidden; }
.hv-progress-bar { width: 0; height: 0.5em; background: #3A3A3A; transition: width 0.3s ease; }
.hv-progress-text { margin-top: 0.5em; font-weight: 600; }

/* Status-Text */
#hv-upload-status { margin-top: 1em; font-weight: 600; }

/* Popup für Erfolg */
#hv-success-popup {
  display: none; position: fixed; left: 50%; top: 15%; transform: translateX(-50%);
  background: #FFFFFF; color: #3A3A3A; padding: 1.2em 2.2em; font-size: 1.25em;
  border-radius: 18px; box-shadow: 0 6px 24px #0003; z-index: 99999; opacity: 0; transition: opacity 0.4s;
}

/* === NEU: Layout für Frist + Kalender nebeneinander === */
.hv-frist-row { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }
.hv-frist-left { flex: 1 1 320px; min-width: 280px; }
.hv-calendar-wrap { flex: 0 0 320px; min-width: 280px; }

/* Kalender bei „24h“ sperren */
.hvk-lock .hvk-day.selectable { pointer-events: none; opacity: .5; }

/* Mobile Feintuning */
@media (max-width: 640px) {
  .hv-calendar-wrap { flex-basis: 100%; }
}
#hv-upload-status.hv-error { color:#a00; }
#hv-upload-status.hv-pulse { animation: hvPulse .6s ease-in-out 1; }
@keyframes hvPulse {
  0% { outline: 0; box-shadow: 0 0 0 0 rgba(170,0,0,.0); }
  30% { outline: 2px solid rgba(170,0,0,.35); box-shadow: 0 0 0 6px rgba(170,0,0,.12); }
  100% { outline: 0; box-shadow: 0 0 0 0 rgba(170,0,0,.0); }
}
