/*
 Theme Name:     Divi Child-Theme
 Theme URI:      http://www.elegantthemes.com
 Description:    Divi Child-Theme
 Author:         Divi.world
 Author URI:     https://divi.world
 Template:       Divi
 Version:        1.0.0
*/
 
/* =Ab hier kannst du deine CSS-Anpassungen eintragen
------------------------------------------------------- */

input[type="date"] {
	background-color: #fff;
    border: 1px solid #bbb;
    padding: 2px;
    color: #4e4e4e;
}

Abstand Tabelle zur Überschrift
form#lsbv-cases-form {
    margin-top: -30px;
}

/* Container: dezenter Rahmen + Scrollbar bei kleinen Screens */
/* Container: Begrenzung auf 300px + Scrollbar */
.table-container {
    margin-top: 1.5rem;
    padding: 0.5rem;
    border: 1px solid #e2e4e7;
    border-radius: 6px;
    max-height: 600px;  /* Höhenbegrenzung und vertikaler Scrollbalken */
    overflow-y: auto;  /* Vertikaler Scrollbalken ab 300px */
    overflow-x: auto;  /* Horizontaler Scrollbalken bei breiten Tabellen bleibt erhalten */
    
    /* Ermöglicht Sticky Header innerhalb dieses Containers */
    position: relative; 
}

/* Sticky Header: Damit die Spaltenüberschriften beim Scrollen oben stehen bleiben */
.table-container table thead th {
    position: sticky;
    top: -8px; /* Leichtes Offset wegen des Paddings im Container */
    z-index: 10;
    background: #f6f7f9; /* Hintergrundfarbe muss deckend sein */
    box-shadow: inset 0 -1px 0 #dcdfe5; /* Ersatz für border-bottom, da border bei sticky oft flackert */
}

/* Tabellen kompakt & modern (gilt für widefat UND humbee-table) */
.table-container .widefat,
.table-container .humbee-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.9rem;
}

/* Kopfzeile – Umbruch erlaubt + Text oben ausrichten */
.table-container .widefat thead th,
.table-container .humbee-table thead th {
  padding: 6px 8px;
  font-weight: 600;
  background: #f6f7f9;
  border-bottom: 1px solid #dcdfe5;
  text-align: left;
  white-space: normal;     /* Umbruch */
  word-break: break-word;  /* lange Begriffe umbrechen */
  vertical-align: top;     /* Text oben */
}

/* Zeilen */
.table-container .widefat tbody tr:nth-child(even),
.table-container .humbee-table tbody tr:nth-child(even) {
  background: #fafbfc;
}

.table-container .widefat tbody td,
.table-container .humbee-table tbody td {
  padding: 4px 2px;              /* wenig Abstand = platzsparend */
  border-bottom: 1px solid #f0f1f3;
}

/* Inputs in beiden Tabellen: kompakt, einheitlich */
.table-container .widefat input[type="text"],
.table-container .widefat input[type="date"],
.table-container .humbee-table input[type="text"],
.table-container .humbee-table input[type="date"],
.table-container .humbee-table .humbee-input {
  width: 100%;
  box-sizing: border-box;
  padding: 3px 6px;
  font-size: 0.85rem;
  border: 1px solid #cfd3da;
  border-radius: 4px;
  background-color: #ffffff;
  outline: none;
}

.table-container .widefat input[type="text"]::placeholder,
.table-container .widefat input[type="date"]::placeholder,
.table-container .humbee-table input[type="text"]::placeholder,
.table-container .humbee-table input[type="date"]::placeholder,
.table-container .humbee-table .humbee-input::placeholder {
  color: #a0a4aa;
  font-size: 0.8rem;
}

/* Fokuszustand */
.table-container .widefat input[type="text"]:focus,
.table-container .widefat input[type="date"]:focus,
.table-container .humbee-table input[type="text"]:focus,
.table-container .humbee-table input[type="date"]:focus,
.table-container .humbee-table .humbee-input:focus {
  border-color: #2271b1;
  box-shadow: 0 0 0 1px rgba(34, 113, 177, 0.15);
}

/* Mobile: Schrift minimal kleiner */
@media (max-width: 768px) {
  .table-container .widefat,
  .table-container .humbee-table {
    font-size: 0.8rem;
  }

  .table-container .widefat thead th,
  .table-container .humbee-table thead th {
    font-size: 0.8rem;
  }
}

/* Breitere Titel-Spalte */
.table-container table.widefat td input[name$="[titel]"],
.table-container table.widefat th:nth-child(2) {
    width: 15em !important;    /* gewünschte Breite */
}
.humbee-textarea-autosize {
    display: block;
    width: 100%;
    height: 23px;        /* feste Starthöhe: 1 Zeile */
    min-height: 23px;
    max-height: 120px;   /* wächst bei Bedarf */
    padding: 4px 6px;
    font-size: 14px;
    line-height: 1.3;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    resize: none;        /* Benutzer kann nicht manuell ziehen */
    overflow: hidden;    /* wichtig für Autosize */
    white-space: pre-wrap;
}
/* Fehlermarkierung bei nicht ausgefüllten Feldern*/
.table-container .field-error {
    border-color: #d63638 !important;   /* WP-Error-Rot */
    background-color: #ffe6e6 !important;
}

/* Contact Form zum Upload Bildungsprogramme */
/* Wrapper für das Formular (nur optisch, nicht zwingend) */
.et_pb_text_9 .wpcf7-form {
    max-width: 700px;
    margin: 24px 20px 0px 20px;
    padding: 16px 20px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f9fafb;
    box-sizing: border-box;
}

/* Grundabstände */
.et_pb_text_9 .wpcf7-form p {
    margin: 0 0 12px;
}

/* Label */
.et_pb_text_9 .wpcf7-form label {
    display: block;
    font-weight: 500;
    font-size: 14px;
    color: #1f2933;
    margin-bottom: 4px;
}

/* Wrapper um die Felder */
.et_pb_text_9 .wpcf7-form .wpcf7-form-control-wrap {
    display: block;
}

/* Basis-Style für Inputs & Textareas */
.et_pb_text_9 .wpcf7-form input[type="email"],
.et_pb_text_9 .wpcf7-form input[type="text"],
.et_pb_text_9 .wpcf7-form input[type="file"],
.et_pb_text_9 .wpcf7-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.4;
    background-color: #ffffff;
    color: #111827;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

/* Fokuszustand */
.et_pb_text_9 .wpcf7-form input[type="email"]:focus,
.et_pb_text_9 .wpcf7-form input[type="text"]:focus,
.et_pb_text_9 .wpcf7-form input[type="file"]:focus,
.et_pb_text_9 .wpcf7-form textarea:focus {
    outline: none;
    border-color: #0099d5;
    box-shadow: 0 0 0 1px rgba(0, 153, 213, 0.15);
}

/* Textarea – kompakte Grundhöhe erzwingen */
.et_pb_text_9 .wpcf7-form textarea {
    height: 60px !important;     /* Initiale Höhe */
    min-height: 60px !important; /* Untergrenze */
    max-height: 300px;           /* optional */
    resize: vertical;            /* Nutzer kann aufziehen */
    overflow-y: auto;            /* Scrollbar bei langem Inhalt */
    line-height: 1.4;
}


/* Datei-Upload etwas „cleaner“ */
.et_pb_text_9 .wpcf7-form input[type="file"] {
    padding: 6px 6px;
    background-color: transparent;
}

/* Submit-Button im gleichen Stil wie dein blauer Button */
.et_pb_text_9 .wpcf7-form .wpcf7-submit {
    margin-top: 8px;
    background: #0099d5;
    color: #ffffff;
    border: 1px solid #0088bf;
    border-radius: 4px;
    padding: 8px 18px;
    font-size: 120%; /* 20% größer */
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    transition:
        background 0.15s ease,
        box-shadow 0.15s ease,
        border-color 0.15s ease;
}

/* Hover ohne Springen */
.et_pb_text_9 .wpcf7-form .wpcf7-submit:hover {
    background: #008ec7;
    border-color: #007aa9;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.18);
}

/* Active */
.et_pb_text_9 .wpcf7-form .wpcf7-submit:active {
    background: #007fb3;
    border-color: #006b95;
    box-shadow: none;
}

/* Fokusrahmen für Tastaturbedienung */
.et_pb_text_9 .wpcf7-form .wpcf7-submit:focus-visible {
    outline: 2px solid #4cc7ff;
    outline-offset: 2px;
}

/* Disabled-State (falls CF7 das nutzt) */
.et_pb_text_9 .wpcf7-form .wpcf7-submit:disabled {
    opacity: 0.55;
    cursor: default;
    box-shadow: none;
}

/* Response / Fehlermeldungen unter dem Formular */
.et_pb_text_9 .wpcf7 .wpcf7-response-output {
    margin: 12px 0 0;
    padding: 8px 10px;
    border-radius: 4px;
    font-size: 13px;
}

/* Erfolgs-Style */
.et_pb_text_9 .wpcf7 .wpcf7-mail-sent-ok {
    border-left: 3px solid #16a34a;
    background-color: #ecfdf3;
    border-color: #16a34a;
}

/* Fehlermeldung */
.et_pb_text_9 .wpcf7 .wpcf7-validation-errors,
.et_pb_text_9 .wpcf7 .wpcf7-acceptance-missing {
    border-left: 3px solid #dc2626;
    background-color: #fef2f2;
    border-color: #dc2626;
}




/* Humbee-Tabelle: breiter als der Viewport, Container scrollt */
.table-container .humbee-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;    /* nicht mehr fixed */
  font-size: 0.9rem;
  min-width: 1600px;     /* sorgt dafür, dass horizontale Scrollbar erscheint */
}

/* Kopfzeile – wie vorher: Umbruch + Text oben */
.table-container .humbee-table thead th {
  padding: 6px 8px;
  font-weight: 600;
  background: #f6f7f9;
  border-bottom: 1px solid #dcdfe5;
  text-align: left;
  white-space: normal;
  word-break: break-word;
  vertical-align: top;
}

/* Zeilen */
.table-container .humbee-table tbody tr:nth-child(even) {
  background: #fafbfc;
}

.table-container .humbee-table tbody td {
  padding: 4px 6px;
  border-bottom: 1px solid #f0f1f3;
}

/* Inputs kompakt */
.table-container .humbee-table input[type="text"],
.table-container .humbee-table input[type="date"],
.table-container .humbee-table .humbee-input {
  width: 100%;
  box-sizing: border-box;
  padding: 3px 6px;
  font-size: 0.85rem;
  border: 1px solid #cfd3da;
  border-radius: 4px;
  background-color: #ffffff;
  outline: none;
}

.table-container .humbee-table .humbee-input:focus,
.table-container .humbee-table input[type="text"]:focus,
.table-container .humbee-table input[type="date"]:focus {
  border-color: #2271b1;
  box-shadow: 0 0 0 1px rgba(34, 113, 177, 0.15);
}

/* Sinnvolle Mindestbreiten pro Spalte */
.table-container .humbee-table thead th:nth-child(1) { min-width: 70px; }   /* Kursnummer */
.table-container .humbee-table thead th:nth-child(2) { min-width: 220px; }  /* Titel */
.table-container .humbee-table thead th:nth-child(3) { min-width: 120px; }  /* Ort */
.table-container .humbee-table thead th:nth-child(4),
.table-container .humbee-table thead th:nth-child(5) { min-width: 110px; }  /* Beginn/Ende */
.table-container .humbee-table thead th:nth-child(6) { min-width: 100px; }  /* Uhrzeit */
.table-container .humbee-table thead th:nth-child(7) { min-width: 110px; }  /* Anzahl Termine */
.table-container .humbee-table thead th:nth-child(8) { min-width: 110px; }  /* Anzahl Termine */

/* Teilnehmer- und Alters-Spalten schmal halten */
.table-container .humbee-table thead th:nth-child(9),
.table-container .humbee-table thead th:nth-child(10),
.table-container .humbee-table thead th:nth-child(11),
.table-container .humbee-table thead th:nth-child(12),
.table-container .humbee-table thead th:nth-child(13),
.table-container .humbee-table thead th:nth-child(14),
.table-container .humbee-table thead th:nth-child(15) {
  min-width: 90px;
  text-align: right;
}
/* Kursleiter */
.table-container .humbee-table thead th:nth-child(16) {
  min-width: 90px;
}
/* Kursleiter */
.table-container .humbee-table thead th:nth-child(17) {
  min-width: 90px;
}

/* Letzte Spalte = Bildungsprogramm (egal an welcher Position) */
.table-container .humbee-table thead th:last-child {
  min-width: 150px;
}

/* Mobile: Schrift eine Spur kleiner, Scrollbar bleibt erhalten */
@media (max-width: 768px) {
  .table-container .humbee-table {
    font-size: 0.8rem;
  }

  .table-container .humbee-table thead th {
    font-size: 0.8rem;
  }
}
/* Veröffentlichung + Medium nebeneinander */
.lsbv-global-fields {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.lsbv-global-field {
    margin: 0;
}

.lsbv-global-field--grow {
    flex: 1;
}

.lsbv-global-field--grow input[type="text"] {
    width: 100%;
    box-sizing: border-box;
}

/* Rechtsbündiger Hinweis-Text unter der Tabelle */
.lsbv-hint-text {
    text-align: right;
    font-size: 0.85rem;
    font-style: italic;
    color: #666;
    margin: 10px 0 5px 0;
    display: block;
}

/* Erfolgsmeldung im Veranstaltungen-Cases-Formular hervorheben */
#lsbv-cases-messages .notice.notice-success {
    margin-top: 14px;
    border: 2px solid #1f8f48 !important;
    border-left-width: 7px !important;
    border-radius: 10px;
    background: linear-gradient(135deg, #eafcf1 0%, #f6fff9 100%) !important;
    box-shadow: 0 8px 18px rgba(31, 143, 72, 0.18);
    padding: 14px 16px !important;
}

#lsbv-cases-messages .notice.notice-success p {
    margin: 0 !important;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    color: #0f5132;
}

#lsbv-cases-messages .notice.notice-success p::before {
    content: "Erfolgreich";
    display: inline-block;
    margin-right: 10px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #1f8f48;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    vertical-align: middle;
}
/* Speichern Button */
button.button.button-primary {
    margin-top: 20px;
    background: #0099d5 !important;
    color: #ffffff !important;
    border: 1px solid #0088bf !important;
    border-radius: 4px;
    padding: 8px 16px;
    font-size: 120%;         /* +20% Schriftgröße */
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    transition:
        background 0.15s ease,
        box-shadow 0.15s ease,
        border-color 0.15s ease;
}

/* Hover ohne Bewegung */
button.button.button-primary:hover {
    background: #008ec7 !important;
    border-color: #007aa9 !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.18);
}

/* Active */
button.button.button-primary:active {
    background: #007fb3 !important;
    border-color: #006b95 !important;
    box-shadow: none;
}

/* Fokus */
button.button.button-primary:focus-visible {
    outline: 2px solid #4cc7ff;
    outline-offset: 2px;
}

/* Disabled */
button.button.button-primary:disabled {
    opacity: 0.55;
    cursor: default;
    box-shadow: none;
}


/* Error bei Fehlerroutine Alter und Geschlecht */

.humbee-error-field {
    border-color: #d63638 !important;   /* WP-Error-Rot */
    background-color: #ffe6e6 !important;
}

.humbee-validation-message {
    margin-top: 8px;
}

.et_pb_with_border.et_pb_module.et_pb_code.et_pb_code_0.et_pb_text_align_center {
    font-size: 120%;
}

/* Ansichtstabelle auf Anmeldeseite */

/* ===== Ansichtstabelle auf Anmeldeseite (kleine humbee-table-71) ===== */

/* Container: kein horizontales Scrollen, volle Breite */
#anmeldungen .table-container {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: visible !important;  /* überschreibt globales overflow-x:auto */
}

/* Kleine humbee-Tabelle im Bereich "Anmeldungen" */
#anmeldungen .humbee-table-71 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;        /* hebt min-width:1600px der globalen Regel auf */
    table-layout: fixed !important;  /* gleichmäßige Spaltenbrechnung */
    border-collapse: collapse;
}

/* Zellen kompakt, passend zum restlichen Design */
#anmeldungen .humbee-table-71 th,
#anmeldungen .humbee-table-71 td {
    padding: 6px 8px;
    font-size: 14px;
    line-height: 1.3;
    text-align: left;
    vertical-align: top;
    white-space: normal;          /* Umbruch grundsätzlich erlaubt */
    overflow-wrap: anywhere;
    min-width: 0 !important;      /* globale min-width je Spalte neutralisieren */
}

/* Titel-Spalte (2. Spalte): breiter + Umbruch */
#anmeldungen .humbee-table-71 th:nth-child(2),
#anmeldungen .humbee-table-71 td:nth-child(2) {
    width: 30% !important;
}

/* Restliche Spalten: teilen sich den verbleibenden Platz gleichmäßig */
#anmeldungen .humbee-table-71 th:nth-child(1),
#anmeldungen .humbee-table-71 td:nth-child(1),
#anmeldungen .humbee-table-71 th:nth-child(3),
#anmeldungen .humbee-table-71 td:nth-child(3),
#anmeldungen .humbee-table-71 th:nth-child(4),
#anmeldungen .humbee-table-71 td:nth-child(4),
#anmeldungen .humbee-table-71 th:nth-child(5),
#anmeldungen .humbee-table-71 td:nth-child(5),
#anmeldungen .humbee-table-71 th:nth-child(6),
#anmeldungen .humbee-table-71 td:nth-child(6),
#anmeldungen .humbee-table-71 th:nth-child(7),
#anmeldungen .humbee-table-71 td:nth-child(7),
#anmeldungen .humbee-table-71 th:nth-child(8),
#anmeldungen .humbee-table-71 td:nth-child(8),
#anmeldungen .humbee-table-71 th:nth-child(9),
#anmeldungen .humbee-table-71 td:nth-child(9), {
    width: 9% !important;        /* grob gleiche Breite je Spalte */
}
/* Speichern-Button NUR im Bereich Anmeldungen entfernen */
#anmeldungen form.humbee-bulk-form button.button.button-primary {
    display: none !important;
}

/* ===== Drag & Drop Upload Dropzone (CF7 Plugin) ===== */
.et_pb_text_9 .codedropz-upload-wrapper,
.et_pb_text_9 .codedropz-upload-handler,
.et_pb_text_9 .codedropz-upload-container {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.et_pb_text_9 .codedropz-upload-handler {
    border: 2px dashed #cbd5e1;
    border-radius: 4px;
    background-color: #f9fafb;
    padding: 8px 10px;
    text-align: center;
    transition: border-color 0.15s ease, background-color 0.15s ease;
    box-sizing: border-box;
}

.et_pb_text_9 .codedropz-upload-handler:hover {
    border-color: #0099d5;
    background-color: #f0f9ff;
}

.et_pb_text_9 .codedropz-upload-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
}

.et_pb_text_9 .codedropz-upload-inner h3 {
    font-size: 14px;
    font-weight: 500;
    color: #1f2933;
    margin: 0;
    padding: 0;
}

.et_pb_text_9 .codedropz-upload-inner span {
    font-size: 14px;
    color: #6b7280;
}

.et_pb_text_9 .cd-upload-btn {
    display: inline-block;
    padding: 8px 10px;
    background: #ffffff;
    color: #0099d5 !important;
    border: 1px solid #0099d5;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.et_pb_text_9 .cd-upload-btn:hover {
    background: #f0f9ff;
    border-color: #0088bf;
    color: #0088bf !important;
}

.et_pb_text_9 .dnd-upload-counter {
    display: block;
    font-size: 14px;
    color: #6b7280;
    padding: 4px 10px;
    text-align: right;
}


